Joints

Maya Rigging Basics

[iframely]http://www.youtube.com/watch?v=5UIUGfAF_UI[/iframely]

Todays Class

Joint Placement
Joints Unique Properties (Joint Orient)
Local Rotation Axis
Sizing Joints
Mirroring Joints

We’ll be placing joints for this Far Cry 3 female character. She can be downloaded here for free with textures.
http://www.3dxtras.com/3dxtras-free-3d-models-details.asp?prodid=10444

 

JOINT PLACEMENT

Joint Placement is absolutely crucial to the success of our characters poses. Test joint placement and don’t be afraid to move joints if things look wrong. Some joint placement is counter intuative, but there’s not that much to remember.

 

Google 3d Body

The Google Body Project, (now the Zygote Body) show’s us human skeleton anatomy in 3d in our browsers. This is a great place to start for human joint placement. Keep in mind sometimes bones pivot from the inner edge (eg the spine) so don’t take joint placement too literally.

Zygote Body

Zygote Cow

 

Joint Placement in the human body

Center of Gravity (COG) – In the center of hips lower belly
Spine – slightly towards the back, but not too far back. Spines bend from the inside edge.
Thighs (hips)
– centered high into the hips of he body and directly above the knee. When the leg does the splits the groin should nicely touch the ground.
Knee – Central mid bump of the knee
Elbow – towards the back point of the elbow
Shoulder – high and wide
Knuckles – deep into the hand not at the finger intersections
Fingers – mid
Extra Hand joints – towards the back of the hand and are only used in subtle circumstances
Wrist – central
Clavicle – slightly to the front and near the center of the body, below the shoulder, each side slightly offset.
Toes – deep into the foot, pivot is mostly from the ball
Ball – low and center
Ankle – near the bump of the ankle and centered
Head – center and just below the ear
Jaw – slightly below and in fron of the ear, top teeth are fixed to the head and bottom to the jaw, though in cartoony circumstances we can move around.
Thumb – Be sure to have three joints, the base of the thumb is quite close to the wrist and near the outside edge.
Neck – centered, a touch towards the back

[iframely]http://www.youtube.com/watch?v=BrK8WlBXIhc[/iframely]

Some interesting videos regarding the jaw and neck placement
http://www.youtube.com/watch?v=3-7albLzIJE
http://www.youtube.com/watch?v=3auwsNz9kgA

 

Easy to mistake placement and proportions in a regular human

– The neck is high up just under the ear
– The relationship of the upper arm (humerus) to forearm (ulna/radius) is 10:8 so the forearm is noticeably shorter especially in posing.
100% UpperArm
80% Forearm
http://www.pinterest.com/pin/326722147940625124/
and
http://www.pinterest.com/pin/326722147940625106/
– The relationship of the thigh (femur) to calf (tibia) is 100:82 so the thigh is noticeably shorter especially in posing.
100% Thigh (femur)
82% Calf (tibia)
http://www.pinterest.com/pin/326722147940625106/
– The hand’s knuckles are much deeper into the hand
– The first bone in the fingers is longer than the second which is in turn longer than the third. a ratio of 5:3:2, however due to the last joint and the meat on the end of the finger you could say it’s more like 5:3:2.3
http://www.pinterest.com/pin/326722147940625681/
http://www.pinterest.com/pin/326722147940516967/
and
http://www.pinterest.com/pin/326722147939962460/
– It’s common to rig the big toe with two joints and toes with three
http://www.pinterest.com/pin/326722147940477270/
– The shoulder pivot is slightly high in regular humans
– The elbow pivot is slightly to the back of the arm

 

Joint Placement in Cartoony Characters

Joints can be placed very centrally in Cartoony Characters as can be seen in the joint placement for big buck bunny

 

Joint Placement in Games

some info on joint placement in games regarding the spine
http://www.lifelikeandbelievable.com/blog/backbone-animation/

 

Nodes In Maya Introduction

Maya uses what we call a node based system for linking attributes for different functionality.

We can see the same nodes in a variety of UI formats including

Channel Box (Screen Right)
Outliner (Window > Outliner)
Attribute Editor (ctrl a)
Hypershade (Window > rendering editors > Hypershade)
Hypergraph (Window > Hypergraph: Connections)
Node Editor (Window > Node editor)
And more

[iframely]http://www.youtube.com/watch?v=wx2f4Co6vjo[/iframely]

 

The Difference Between Joints and Other Objects

All 3d objects have a transform node, the transform node varies slightly. Joints are unique because they have a

“Joint Orient” Attribute

Other objects do not posses this. Joints can also be used with ik and work well with skinning.

 

Zeroing Out Objects, Joints and Null Objects

The following video demonstrates how zeroing out objects works differently for regular objects and for joints. We discuss the use of Freeze Transforms and null objects

Freeze Transform = Modify > Freeze Transform
Locator = Create > Locator
Groups = Edit > Group
Empty Groups (null) = Create > Empty Group

[iframely]http://www.youtube.com/watch?v=GMYISHpuxo4[/iframely]

 

Creating Joints

Joints can be created using Animation Menu > Skeleton > Joint Tool

 

Joint Xray Mode

You can see the joints through the mesh with the switch in the panel menu

Shading > X-Ray Joints

 

Modifying Joints

It’s good to move joints in the pivot mode, that way you can move joints individually rather than affecting the hireachy.

hotkey = insert (PC) or home (mac)

You can also create one joint and parent later
parent = p
unparent = shift p

[iframely]http://www.youtube.com/watch?v=W-oW0GGrIXk[/iframely]

 

Inherit Scale Option

By default joints don’t inherit scale from one another. But we can choose to disable this in some circumstances. Note they still inherit scale from groups.

[iframely]http://www.youtube.com/watch?v=Wd9a4TV14f4[/iframely]

 

Adjusting Joint Size

Joints Size can be globally adjusted at
Display > Animation > Joint Size…

Individual joint sizes can be adjusted in the channel box under the attribute for each joint called “radius”

[iframely]http://www.youtube.com/watch?v=i3wobKiHtMY[/iframely]

Local Rotation Axis

We want to have all our rotation values zero’d when we bind joints to our mesh. First we need to set how our joints orients at their zero point. We use Local Rotation Axis to help us visualise this.

Local Rotation Axis allows us to see how our default zero’d out joint orientation is sitting.

 

Displaying Joint Local Rotation Axis

You can display the local rotation axis of joints in
Display > Transform Display > Local Rotation Axis (toggle)

or in the Orient Joint Window as a button
Animation Menu > Skeleton > orient Joint (option box)

From the show menu Local Rotation Axis are displayed as Handles.

[iframely]http://www.youtube.com/watch?v=h1pnekEl24w[/iframely]

 

Orient Local Rotation Axis Manually

To rotate the Local Rotation Axis manually click on the icon “Select by Component type” then right clicking on the “?” icon. Be sure to be in “Local” or “World” rotation modes, not in “Gimbal”.

To rotate the Local Rotation Axis by script you can open the script editor, rotate the local rotation mode and you will see something like the code being recorded…

rotate -r -os -4.703295 -8.631096 20.802082 ;

This stands for

rotate -r -os x y z ;

simply replace the x y and z with the number you wish to rotate

[iframely]http://www.youtube.com/watch?v=OmEFbGcmAME[/iframely]

 

The Joint Orient Tool

The Orient Joint Tool allows us to set our default rotation positions for our joints. Usually the default values are fine. We may have to change the Secondary Axis World Orientation to + or – depending on your joints.

The Toggle Local Axis Visibility button is handy to see what the selected joints are doing.

Tweak the roll of the joints manually as the section above.

[iframely]http://www.youtube.com/watch?v=yT5VEMobbDc[/iframely]

 

The Joint Orient Tool – Controlling Flipped Joints

Sometimes we can get into troubles with the Joint Orient Tool, in particular maya might get confused in spiral type shapes where an axis always wants to point outwards. To fix we can change our up axis to a negative value. See the video below.

[iframely]http://www.youtube.com/watch?v=ytWRGIxcPRs[/iframely]

 

Mirroring Joints

We only have to create joints for one side of the body in a symmetrical character, you can mirror the joints with the joint tool. Be sure to set the local rotation axis first before mirroring.

It’s handy to name joints ending with the prefix _jnt and for each side _jnt_L or _jnt_R

We can auto rename _jnt_L to _jnt_R when we mirror

To open the Mirror Joint Options go to
animation menu > skeleton > Mirror joint (option box)

Mirror Across: YZ
We usually work on the characters left side first and if they’ve been modelled correctly we’ll be mirroring across the x axis, so set the axis to… YZ

Mirror function: Behaviour
Should be set to “Behaviour” most of the time. This mirrors the rotations with the rotation manipulator and is good for animation.

Search For: _jnt_L
Replace with: _jnt_R

[iframely]http://www.youtube.com/watch?v=9KQDVPW_soE[/iframely]

 

Quadraped Ref

Zygote – Cow
http://open-3d-viewer.googlecode.com/svn/trunk/web/index.html#nav=2.37,-2.35,211.06

Life Of Pi – Tiger
https://vimeo.com/59873460

Narnia – Lion
http://www.youtube.com/watch?v=g9041v0usEc
http://www.youtube.com/watch?v=ws0qopkkkmc
http://www.youtube.com/watch?v=90ldMHlgLzw

Instructor

Andrew Silke

Install

1. Download the Week03_Joints.zip and unzip
2. Open 01_JointStart.mb

Leave a reply