Character Rigging In Maya

Select the LFoot_Control, we're now going to add some extra useful attributes to our Left Foot Controller, I'll take you through what to set up with the Left Foot, and then you can just repeat the same functions for the Right Foot.  So, with the LFoot_Control still selected, select MODIFY > ADD ATTRIBUTE, the Add Attribute Window will appear, in the Attribute Name, Type Heel_Roll, and give it a Minimum Value of -45, and a maximum value of 45 : -

In case your wondering why -45 and 45 for the values, let me first tell you how I calculate them,  I'm adding an extra attribute to my foot controller that controls the roll of the heel, so I select not the controller, but the actual Left Reverse Foot joint, and then I test it's rotations to see how much I will require, -45 and 45 are about as much a I need for the Heel to rotate comfortably when animating, so that is the values I use.  Click OK, now, all we've done is added the attribute name to the Left Foot Control, you'll notice it within the Channel Editor, now we need to actually set up the connection, so with the LFoot_Control selected, select WINDOWS > GENERAL EDITORS > CONNECTION EDITOR,  then select RELOAD LEFT to load the LFoot_Control, now select your LReverse_Foot joint, and then click on RELOAD RIGHT : -

If you have a long list within each window, go to Left Display, and switch off Show Non Keyable, and then do the same for the Right Display.  Now in the LFoot_Control, click on the Heel_Roll attribute we have set up, and in the LReverse_Foot, select Rotate X : -

Close the window,  now select your LFoot_Control object, and then in the Channel Editor, select your Heel_Roll Attribute, with it still selected, go back to your Persp view and move the mouse Left and Right on the screen, you'll notice you now have control of the Heel Rotation through your LFoot_Control.  Now we need to add some more commonly used attributes to the left foot, using the techniques shown above, add the following attribute, Heel_Pivot with a Minimum of -30, and a maximum of 75, using the Connection Editor, connect the Heel_Pivot to the Rotate Z of the LReverse_Foot.  Again, add another attribute called Heel_Lean, with a minimum of -45 and a maximum of 20, then in the Connection Editor, connect Heel_Lean to the LReverse Foot's Rotate Y.  That's the heel controls added to the LFoot_Control now, but we haven't yet finished, create another attribute called Ball_Roll, with a minimum of 0 and a maximum of 50, open up the connection editor like befoe and load up the LFoot_Control, now select the LReverse_Foot and then press the down arrow key 2 times until you have the LReverse_Ball joint selected, then Reload Right, then connect the Ball_Roll attribute to the Rotate X of the LReverse_Ball joint.

That's the heel and ball taken care of, now we just need to sort out the toes,  select the LFoot_Control and add a new attribute called Toe_Roll with a minimum of 0 and a maximum of 50, then in the connection editor, do the same as before, but this time you should be loading the LReverse_Toe joint, then connect the Toe_Roll to the Rotate X.  Next attribute to be added should be called Toe_Pivot and have minimum of -40 and a maximum of 30, then in the connection editor, do the same as before, loading the LReverse_Toe joint, then connect the Toe_Pivot to the Rotate Z.  That's all we'll require for the feet, unless you need a more complicated setup involving toes and so on, but this tutorial is designed to give you the basic understanding so that you can then go on and create your own rigs.  Now,  you'll have to repeat all the above steps for the right foot, taking into account your minimum and maximum values may change from left to right.  The one's changing will be the Heel_Pivot = Min -75, Max 30, Heel_Lean = Min -20, Max 45, and Toe_Pivot = Min -30 and Max 40.

Once you've finished on the RFoot_Control, we now need to one more thing, select the LKnee_PV_Constraint, then SHIFT - SELECT the LFoot_Control and then Press P To Parent them together, do the same on the other side, select the RKnee_PV_Constraint and SHIFT - SELECT the RFoot_Control and then press P to Parent them.  Ok, believe it or not, we're now done with the legs.  

Download the rig with the legs already setup here : -

Character Rig Skeleton Setup With Legs Done - Maya 4.5 Only - Zip File (284kb)

Now that we've finished with the legs, we'll finish off the rest of the rigging on the lower body before we move onto the spine and upper body rigging.  First off, we need to create our characters main pick controller, essentially, the one controller that will select the whole character and everything else attached to it so we can easily rotate the whole character around and face another direction, or place the character where we want in a scene, so, first off, select the COG joint, and using the same principles as we discussed earlier, in the channel editor, select Scale X, Y and Z, And Visibility and right click over them and select LOCK SELECTED, then open up the Channel Control, Window > General Editors > Channel Control and then move the Scale X, Y, Z, And Visibility into the Non-Keyable section.  Now create a Nurbs Circle, Create > Nurbs Primitives > Circle, Scale it 7.5 in the X, Y and Z Channels.  Rename it to Character_World, then freeze transformations and delete all history.  Using DISPLAY > WIREFRAME COLOUR, make it a green colour, don't forget to add it to your defaults, and then add it to the Rig_Controls Layer,  that's it for that part, we'll be returning to that controller towards the end of the tutorial to actually connect it to our fully rigged character and give us the ability to move the entire character anywhere we wish.  Now, let's build our Hip Controller, to save you the time, I've already built one for you, you can download it here : -

Nurbs Curve - Hip Control Visual Icon - Maya 4.5 Only - Zip File (35kb)

Once downloaded, unpack it, import it into your scene, and if it doesn't come across with the wireframe coloured green, make it green, and then add it to the Rig_Controls Layer, I've already snapped it to the  COG joint, it should already be named Hip_Control, and you should now have something similar to this diagram : -

We need to connect our hip movements now to our Hip_Control, which is very easily done, open up the Outliner, select the COG joint, then Shift - Select the Hip_Control, then press P to Parent them together.  Note, I've already taken the liberty of removing the scale, x, y, z and visibility options for the Hip_Control.  And finally, select the LKnee_PV_Constraint and then Shift - Select the Hip_Control, and then press P to Parent them, do the same for the RKnee_PV_Constraint too, this will aid in the knees following the hips when using the Hip_Control.  That's it, select your Hip_Control controller, and have a little play, you should now have full control of the characters hip movements.  Now we can move onto the upper body rigging, starting with the spine.

Rigging The Spine

Rigging the actual Spine is quite an easy process, and to keep things simple, I've purposely kept away from more complicated techniques, which, you yourself can look at when you are feeling a bit more confident about your rigging knowledge.  From the menu, select Skeleton > ikSpline Handle Tool, then select the Spine_A joint, and then the SpineC joint to draw an ikSpline Handle between them.  Open up the Outliner, and select the newly created ikHandle, and rename it to Back_ikHandle, then with the middle mouse button, drag it over the top of the COG_Control, this will have the affect of parenting it, then expand the COG_Control, and find the Spline, it should be named curve1, rename it to Back_Spline, and with it still selected, select Display > Nurbs Components > Cvs, now select the top CV, then go to Deform > Create Cluster, then rename it to Shoulder_Cluster, it's probably an idea to keep the Outliner open here, then select the next one down, create another Cluster, and rename it to Middle_Spine_Cluster, then the next one down, create a Cluster and rename it to Lower_Spine_Cluster : -

Select the COG_Control, and add two new attributes, Spine_Roll - Minimum = -180, Maximum = 180, and Spine_Twist - Minimum = -180, Maximum = 180.  Then open the Connection Editor, and Reload Left for the COG_Control, and Reload Right for the Back_ikHandle, then connect the Spine_Twist to the Twist on the Back_ikHandle, and then connect the Spine_Roll to the Roll on the Back_ikHandle.  In the Outliner, select all of the Clusters, and parent them to the COG_Control, and then expand the COG_Control, select them again and add them to the Rig_Controls Layer.  Select the first Cluster you create, the Shoulder_Cluster, we only really need Translate X, and Translate Z when animating, so lock it's channels for all the rest, and then use the Channel Control to move them into the Non-Keyable area so that they don't display as we discussed earlier on the tutorial if you need to refer back how to do this.  Do exactly the same for the Middle_Spine_Cluster and Lower_Spine_Cluster.  Add the Back_ikHandle to the Skeleton_L Layer.  We need to create a better way of selecting those Clusters for the spine, so select the Shoulder_Cluster, and then press CTRL + A to open the Attribute Editor for it, set the Cluster Attributes to Relative (Specifies whether the cluster deformation occurs only when the cluster deformer handle itself is transformed (moved, rotated, or scaled). With Relative on, only transformations to the cluster deformer handle itself cause deformation effects. Transformations to any objects parented to the handle do not cause deformation effects. With Relative off, transformations to objects parented to the cluster deformer handle can cause deformation effects), select the Shoulder_Cluster tab, and then expand the Display Section, select Display Handle, and in the Numeric boxes, change the third one's current values to -5, so that the Handle actually resides outside of the characters body, and hence easier to grab.  Now do the same for the Middle_Spine_Cluster and the Lower_Spine_Cluster using the same -5 value.

Now we'll add a control for our Head : -

Character Rigging Tutorial - Fifth Page

 

Steven J. Tubbrit
(c) Copyright