Maya Rigging Basics
Joints Unique Properties (Joint Orient)
Local Rotation Axis
We’ll be placing joints for this Far Cry 3 female character. She can be downloaded here for free with textures.
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.
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
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.
– 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)
– 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
– It’s common to rig the big toe with two joints and toes with three
– 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
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)
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
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
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
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.
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”
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.
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
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.
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.
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
Life Of Pi – Tiger
1. Download the Week03_Joints.zip and unzip
2. Open 01_JointStart.mb