Building A Complete Human Character Rig In Maya
Today we're kicking off a new multi-part Tuts+ premium tutorial that will teach you how to construct a complex, fully realized character rig using Maya's built in tool set. Author Soni Kumari will walk you through the entire process from start to finish and give you a detailed, in-depth lesson on what it takes to build a intuitive rig from scratch. Through-out the project you'll learn how to construct the rig, skin your character and setup controllers for each body part.
Also available in this series:
- Building A Complete Human Character Rig In Maya
- Building A Complete Human Character Rig In Maya, IK And Spline IK With Cluster Deformers
- Building A Complete Human Character Rig In Maya, Creating The Leg Controls
- Building A Complete Human Character Rig In Maya, Spinal Controls
- Building A Complete Human Character Rig In Maya, Hand Controls
- Building A Complete Human Character Rig In Maya, Global Control and Skinning
In the first part we will learn how to setup joints for the whole body.
Start Maya and open the "Char_Mesh 01.mb" file which is provided with this tutorial. Now in the Channel Box/Layer Editor tab, click on the option indicated by the arrow of the selected character mesh. It is very necessary to freeze the character mesh so that it won’t create any problem while creating the bone setup.
To jump to the Side view, press and hold down the Space Bar and Right click with the mouse button on the Maya icon in the center of the view panel menu, and drag onto Side View and release the mouse button. By doing so, you will jump to the side view.
In the side view, click on the Menu Mode Tab, and select the Animation menu set. Your current menu will be changed into animation menu mode.
Now let’s start making the skeleton setup. Go to Skeleton Menu > Joint Tool and click on the rectangle box. By doing so, the Tool Settings panel will be opened.
In the Joint Tool Settings panel, click on the Reset Tool tab first to make everything default.
Now it’s time to start drawing joints or bones for the character’s leg. With the Joint Tool selected, zoom in on the leg part as shown in the image and start drawing bones from the hip area of the character and then by clicking at the knee, heel, foot and finally the toe tip and then press the Enter Key to finish drawing the joints.
Now rename the joints as it is very important to identify joints for the rig and skin bind. Select joint 1 and open the Outliner window. To open the Outliner window, click on the Window Menu and click on the Outliner command in the dropdown menu as shown in the image below.
In the Outliner window, explore the joints hierarchy. Now double click on joint 1 and rename all joints in sequence as L_ Thigh_joint, L_Knee_joint, L_Heel_joint, L_Toe_joint and L_ToeTip_joint as shown in the images below.
After renaming the joint chain for the left leg, switch to the front panel by holding down the Space Bar and Right Clicking on the Maya icon in the center of the view panel menu, and dragging onto Front View as done in step 2. By doing so you will be in the front view panel as shown in the image below.
The Purpose of jumping into the front view is to place the joints inside the left leg. Select the Move Tool and push it in the X axis to keep the joints inside the left thigh. Just like this you have to adjust the lower leg joints too.
In this step we will orient each joint of the leg. Select L_Thigh_joint and press Ctrl+A one or two times, the joint Attribute Editor panel opens on the right side in Maya interface as shown in the image below. With the Attribute Editor opened, slide the vertical bar a little bit down so it shows the joint orient options.
Now it’s time to orient each joint according to the leg position. To do so, hold down Ctrl+Right Mouse button and click and drag on the Z axis value box, you will see the joint rotates either clockwise or counter clockwise and the value also decreases or increases according to it. In this case the Z axis value is -85.840.
Again jump to the Perspective view where the left foot joint is, which also needed to be oriented. Note: To jump to the perspective viewport follow the same instructions as written in step 2.
With the L_Heel_joint selected, open the Attribute Editor and do the same as we did in step 11. But here we will orient in the Y axis. View the joint group panel in the Attribute Editor and Hold down Ctrl+Right mouse button and drag the Y axis orientation value. In this case the value is -5.850. You can see the joints are now fitted accordingly to the character’s foot.
After positioning the joints according to the character’s leg position, the next step is very important which is to match the joint’s Local Rotation Axis in one direction flow. To do so, select the main thigh joint and click on the Select by Component type button on the Status Bar. The joints will be changed into one component mode.
Now, again on the Status Bar , click on the Miscellaneous Components button. You will notice the joints are showing Local Rotation Axis in the center of each one. The result will be like what's shown in the image shown below. Notice, the joint's Local Rotation Axis are not in one directional flow.
To match the Local Rotation Axis in one directional flow, first properly check which joint to manipulate according to the other joints Local Rotation Axis. To do so, first press “E” on the Keyboard to select the Rotate Tool, and then select the L_Knee_joint. Here the L_Knee_joint does not match with all axis, except the X axis according to the thigh and the heel joints.
With the Rotate tool selected, click with the Left mouse button on the X axis rotation (Red Wire) and drag horizontally to adjust the Local Rotation Axis according to the thigh or the heel joints. Perform the same action with the Toe Tip joint too.
And this is an image of the final result with the Local Rotation Axis gizmo orientation matched in one direction.
Now with the joints selected, on the Status Bar click on the Select by Object button and then the joints will be in Object mode once again. The next step would be to mirror the entire left leg joint for right leg with the appropriate name. So press the W key on the key board to select the Move Tool.
Click on the Skeleton Menu in the main Menu Bar and select the Mirror Joint option box to open the Mirror Joint options dialog box.
In the Mirror Joint options dialog box, first check on the Mirror Across YZ radio button, then in the Replacement names for duplicated joints group, type (L_) inside the Search for: box. Just like this, the Replace with: box should be filled with (R_) for right leg joints. Finally click on the Mirror button.
Notice, the right leg joints are mirrored to the left leg and also renamed for each joint in sequence as R_ Thigh_joint, R_Knee_joint, R_Heel_joint, R_Toe_joint and R_ToeTip_joint. Next we have to create the spine joints.
Jump to the side view once again to create the spine joints.
Again click on Skeleton and select the Joint Tool. Start drawing joints from the hip portion to the head including the skull. There are a total of 9 joints and rename all of them as follows Root_joint, Spine_1, Spine_2, Spine_3, Spine_4, Spine_5, Neck_joint, Head_joint and Skull_joint.
With the Root_Joint selected, orient the joint’s Local Rotation Axis. First click on the Select by Component type button on the Status Bar. And also click on the Miscellaneous Components button.
The spine joints are showing in component mode, notice that in the entire joints hierarchy only three joints are not following the axis like the rest of the joints, so do the same as we did in step 17. Select the Rotate Tool and then select the Spine_2 and Spine_3 joints, and rotate and fix the Local Rotation Axis to match the rest of the joints (as shown in the images below.)
Now with the Root Joint selected, click on the Status Bar and click on the Select by object button, and the joints will then be in Object mode once again. Now we will start creating the hand joints.
To start creating the hand joints, jump to the Top View and zoom in on the left hand area to start drawing the hand joints.
Select the Joint tool again, and first click at the left side of the character's head parallel to the clavicle area, then next click at the arm, elbow, middle wrist and finally the end of wrist. Then press Enter key to finish with the Joint tool. Now rename all joints as follows L_Clavicle_joint, L_Arm_joint, L_Elbow_joint, L_Wrist_joint and L_Hand_joint.
Now jump into the Perspective viewport. In the perspective view you can see all the hand joints are placed on the grid.
With the L_Clavicle_joint selected, move it upward in the Y axis around the left hand. Notice that the joints are not matched exactly inside the hand.
To match the joints properly inside the hand, select the L_Arm_joint and open the Attribute Editor while pressing Ctrl+A on the key board. The Attribute Editor will be opened. In the Attribute Editor panel, see the “Joint Orient group” and while holding the Ctrl key on the keyboard, just drag the Right Mouse up to a value of (-2.840) in the Z axis joint orient box. (the values may differ in your case.)
Again jump into the Top View to create the finger joints.
In this step we have to reduce the joint radius value. If the Attribute Editor for the Joint Tool is not open, press Ctrl+A on key board to open the Joint Tool Attribute Editor panel. In the Bone Radius Setting group, type a value of (0.1000) in the Short bone radius box.
Now start creating joints from the root of the thumb to the tip (as shown in the image) and then click Enter on keyboard to finish with the joint tool.
Rename all the thumb joints as L_Thumb_joint 1, L_Thumb_joint 2, L_Thumb_joint 3, and L_Thumb_joint 4 respectively in the outliner window.
Again press Y on the keyboard to first select the Joint Tool, and start drawing for the index finger. After finishing all joints for the index finger, press the Enter key to finish with the Joint Tool.
Keep doing the same thing to complete drawing the joints for the middle (as shown.)
Again draw joints for the ring and small finger and do as we have done in previous steps and finish with the joint drawing. The result should be something like in the image below.
Now, jump into the Perspective view again to align the fingers joints around hand. In the Perspective view, zoom out to see all the joints. They are lying on the grid.
Open the Outliner window to rename all the fingers joints. Click on the Window Menu and choose the Outliner command. In the outliner window click on each Plus button to display the joints hierarchy, then Rename each joint one by one.
All joints should be Renamed as depicted in the image below.
Now zoom to the finger joints in the Perspective view, and select all the root joints of the fingers (L_Thumb_joint_1, L_Index_1, L_Middle_1, L_Ring_1 and L_Pinky_1).
Select the Move Tool and try to place all the joints inside the fingers. But, this is not possible and will not work properly, because all the finger joints are straight in the X direction and the character’s finger mesh is in a curve shape.
So first select the L_Thumb 1 joint and navigate for a proper view angle. Press Ctrl+A on the keyboard to open the Joint Tool Attribute Editor panel and slide the slider down to view the joint orient fill box for rotation X,Y and Z. Either type in a value of -35.520 for the Z axis, otherwise press and hold the Ctrl key + Left mouse click on the Z axis fill box and drag it left or right for your preferred value.
Now for the Index finger joint to be placed properly according to the finger’s curve and direction, look for the index finger.
With the first joint selected, in the Z joint orientation box, press and hold the Ctrl key + Left mouse click on the Z axis fill box and drag it left or right for your preferred value. In this case, a value of -13.390 has been used.
Again select the second joint of the index finger and do same as in Step 46, use a value of -15.350 (or whatever you feel is best in your case.)
Select the third joint of index finger and repeat the process again.
In this image you can see that the selected third middle finger joint is not long enough according to the finger's mesh. So select the last middle finger's joint, and Press the W key on your keyboard to select the Move Tool.
Now before doing the next step, we will quickly see how to change an object’s pivot point in Maya. For that, select Polygon Cube in the self menu tab or go to Create>Polygon Primitives>Cube.
Now create a box or cube in the perspective view and press the W key to bring up the Move Tool. The Move Tool's Transform gizmo is in the center of the box.
Again select the Move Tool, press the E key and rotate the box. You will notice the box rotates around it's Center Pivot. (Press Ctrl+Z to undo.).
To transform the Pivot Point, Press the Insert key or Hold down the D key, you will see the transform gizmo's icon changed to the Transform Pivot point. Now drag and move the Gizmo in any direction you want.
Now press the Insert key again, or release the D key and rotate again. This time you will notice that the box rotates around the transformed or moved pivot point.
Now let’s take it to the next level and see how this works with the joints. Jump to the side view, select the joint tool and create a joint chain as shown in the image below. To adjust it into a leg shape, press W to select the Move Tool and press and hold down the D key while selecting the second joint of the joint chain.
Now drag the selected joint. You will notice that the selected joint doesn’t transform any of the other joints, but moves itself. So after drawing joints we can adjust each drawn joint chain without moving any other joint. Now the same process will be use in the next step.
Now let’s go back to our main project. Hold down the D key on the keyboard and you will notice the Move Tool has changed to Pivot Mode (as shown in the image below.) Click on the gizmo (yellow squire box) and drag it down to the finger's mesh to the tip. And finally release the D key.
Do the same steps to orientate all the finger joints. The final result should be something similar to what's shown in the image below.
Now watch for the local orientation axis setting. Select all the root joints of the fingers while holding down the Shift key, then click on the root joint of each finger joint - L_Thumb_joint_1, L_Index_1, L_Middle_1, L_Ring_1 and L_Pinky_1. Then click on the Select by Component button in the Status Line, and also click on the Miscellaneous Component button.
Zoom in on all the finger's joint chains and observe the orientation of the joint chain. You will notice that all Local rotation axises are pointing in one direction. So match them properly, using the same process we did in Step 18.
Click on the Select by object button, and the joints will be in Object mode once again.
Now before we start parenting all the chain joints, we will look at how parenting works. So first save the main file and then close it. Let’s open a new Maya file. Create a Polygon cube, and duplicate it by pressing Ctrl+D three times (this will duplicate the cube three times.) Arrange the cubes one after another, and after opening the Outliner window you can see that all the cubes are not connected to each other.
Select pCube2 and by pressing and holding the Shift key, select pCube1, then press the P key and notice the Outliner window. The pCube1 has now become the parent of pCube2. Now click on plus sign in the Outliner window to expand the chain as shown in the image.
Again select pCube3, and then pCube2 and press the P key. Also select pCube4 and then pCube3 and press the P key. After parenting all the pCubes, the hierarchy will be something like shown in the image below.
Now we will experiment the same thing with joints. Select the Joint Tool and click anywhere on the grid, then press the Y key to keep the Joint Tool selected, and again click two more times (hence create a total four joints.)
Select joint2, then select joint1 and press the P key. This makes joint1 the parent of joint2. In other words joint2 will be the child of joint1.
Now let’s go back to the main file once again. Open it and select all the finger root joints.
Now with all the finger root joints selected, press Sift+Left mouse button click, and select the Left_Hand_joint as shown in the image below.
Now we will start parenting the finger joints, because all the finger joints are not connected to the hand joints. So with the joints selected, press the P key to parent the joints.
Now select the L_Clavicle_joint as shown in the image.
With the L_Clavicle_joint selected, go to the main menu bar and click on the Skeleton>Mirror joint options box. This will open the Mirror join options dialog box.
Notice, in the Mirror joint options, the previous settings are filled in as well. So click on the Mirror button at the bottom of the Mirror joint option box.
Now all of the character's right hand joints are also created, as well as the left hand joints with the naming R_Clavicle_joint, R_Arm_joint etc... The only thing left to do, is to parent all the separate joint parts.
To parent the joints, select the right hand joints (R_Clavicle_joint) then hold down the Shift key and click on the L_Clavicle_joint to select the left hand joints. At last select the Spine_5 joint (because the last selected joint will be the parent of both clavicle joints.) With all the joints selected, press the P key to parent the Spine_5 joint.
Both hand joints are now parented with the spine joint. Make sure by selecting the Root_joint and trying to move it. All upper joints will be moving with this too. Now press Ctrl+Z to undo.
Again first select both the R_Thigh_joint and the L_Thigh_joint one by one, then select the Spine_1 joint (while holding down the Shift key.)
And press the P key to parent them with the spine joint. Now all the joints are connected with the Root joint.
Now let’s examine whether all the joint chains are connected with the Root_joint or not. Select the Root_joint and move it out horizontally or vertically.
It works fine! So finally press Ctrl+Z to undo/restate the skeleton to the original pose. This completes all the steps for Part 1, now you will be able to create the skeleton for a human rig.