• home
  • forum
  • my
  • kt
  • download
  • Character Rigging in Maya - Part 2

    Author: 2007-06-23 19:05:41 From:

    Select the LHip joint, and then Shift Select the COG joint, now press P to parent the LHip to the COG Joint, a bone will appear between them : -







    Now do the same with the Left_Clavicle and Neck joint, and then again with the first joint on each of the fingers and the thumb and parent to the Left_Hand joint, you'll end up with something like this : -







    Ok, we've now set up and parented all of our joints, now there's one last thing to do now before we've finished with the skeleton, and that's to Mirror our Joints from the Left Side over to the Right Side. Select the Left_Clavicle joint and then from the menu select Skeleton > Mirror Joint and open the options box, within the options, select YZ as the Mirror options and Orientation as the Mirror Function : -








    Select Mirror, and you should now have the right arm set up, including the parented joint :-










    Do the same for the mirrored reverse foot and also for the mirrored arm including all the fingers and thumb. A bit of tedious task but worthwhile in the long run. In cases where you have a number 1 at the end of the name, just remove it. That's it, we're officially finished with the skeleton setup, now we can move onto the juicy part, the rigging.....



    The Rigging Process





    Now we'll start the actual rigging process, now before we continue, I'd just like to point out that you should be used to saving your work quite often, and getting into the habit of creating new files, just so your not saving over the same file again and again, and if it crashes you'll have no backup. Anyway, back to the subject matter, we'll first begin with our characters legs, seeing as how we already have the reverse foot joints in place. Now, just for the rigging controls and so on, create a new layer, and call it Rig_Controls.

    The Legs

    First, we need to create some poly objects, select CREATE > POLYGON PRIMITIVES > CONE, and in the channel box, change the values so that they are the same as the following diagram : -






    In the side view, snap the object to the knee joint : -






    Press CTRL + D to Duplicate the object, and in the PERSP view, snap to the other knee, now select both objects, and in the Channel Box again, change the Translate Z for each to 5. This will move the knee controllers in front of the Knees. Select MODIFY > FREEZE TRANSFORMATIONS, and then EDIT > DELETE BY TYPE > HISTORY. Add both objects to the newly created Rig_Controls Layer, select the Cone in front of the Left Knee and rename it to LKnee_PV_Constraint, and again select the Cone in front of the Right Knee, and then rename that one to RKnee_PV_Constraint. One more thing, open your Hypershade, and create two new Lambert materials, rename them Left_LambertM and Right_LambertM, make the Left_LambertM a Red Colour, and the Right_LambertM a Yellow Colour, now apply the materials to the appropriate Knee Controllers, don't worry, it doesn't mean anything, it's just a quick visual way of determining left and rights sides : -






    We're now going to create the first part of our IK Setup for the leg, select SKELETON > IK HANDLE, you now need to select the LHip Joint, and then the LAnkle joint, select the IKHandle once done and rename it to ikHandle_LAnkle : -







    Now, do the same on the other side, RHip to RAnkle joints, select the IKHandle and rename it to ikHandle_RAnkle. Select both IKHandles and add them to the Rig_Controls Layer. Select the geometry LKnee_PV_Constraint, and then SHIFT - SELECT the ikHandle_LAnkle. Now select CONSTRAIN > POLE VECTOR, now select the LKnee_PV_Constraint and try moving it left and right, you'll find the knee is constrained to it, press Z to undo any movements you may have added. Do the same now for the RKnee_PV_Constraint and ikHandle_RAnkle. For the rest of the leg setup, I'm going to go through the process for the left leg, and then you can repeat the process yourself for the right leg. Select the LReverse_Foot joint, if you've been following this tutorial it's Translate X, Y and Z values in the channel box will be about X = 2.243, Y = 0 and Z = -0.44, make a note of what the X value is and then change the X value to 5, this is just to get it out of the way whilst we are working on the other joints, now select SKELETON > IK HANDLE TOOL, and open the options box, and change the IKRP Solver to IKSC Solver (Single Chain Solver) : -







    Once you've done that, select the LAnkle joint and then the LBall joint, the ikSC Solver will be created, select it and rename it to ikHandle_LBall, and then add it to the Rig_Controls layer. Add another IK SC Solver from the LBall joint to the LToe Joint, rename it ikHandle_LToe and add it to the Rig_Controls layer. Remembering the value you noted earlier for the LReverse_Foot, type it in and put it back to it's default position. Select the ikHandle_LAnkle and then SHIFT - SELECT the LReverse_Ankle, and then press P to Parent them, if it's easier for you, you can do this in the Outliner. Now do the same for the ikHandle_LBall and the LReverse_Ball, and then again for the ikHandle_LToe and the LReverse_Toe. Select the LReverse_Foot Joint, and try moving it around, you'll find you now have control of the whole foot, try moving it backwards and forwards, and also try moving the knee controller with it, you'll see straightaway the benefit of using a reverse foot setup. Once you are happy with what you have, repeat the whole process for the Right Leg.







    We don't really want to be selecting joints every time we animate, we ideally want things as easy as possible to just visually grab and away you go. We have vsiual objects that we can grab for the Knee controls, now, let's set up some for the Reverse Foot Setups for the left and right sides. First off, rather than this becoming a modelling tutorial, download the following scene file :-


    {Feet Controllers - Maya 4.5 - Zip File}



    Once you've downloaded the file, unzip it and then import it into the current scene. Once you've imported the scene in, you will notice two new controllers at the base of the feet, note they are coloured, first thing to do is add them to the Rig_Controls layer, if you have coloured this layer, remove it, otherwise the wireframe colouring won't work, and both controllers will appear the same colour. Note, if you load them in, and they are two different colours, just recolour them again, by using DISPLAY > WIREFRAME COLOUR, add the two colours you require, red and yellow and click on Default. You should have something like this now within Maya : -






    Now the easy part, select the LReverse_Foot, and SHIFT - SELECT the LFoot_Control, then press P to Parent it, do the same for the RReverse_Foot and the RFoot_Control, now grab either controller and try moving it around, you'll notice that we now have full control for each leg for both left and right sides. Remember to press Z to undo the last command, just to make sure you go back to your original location each time. Now, just some more small things to do before we carry on with the foot setup, select the LKnee_PV_Constraint, you'll notice that in the Channel Editor you have access to Translate X, Y and Z, Rotate X, Y and Z, and Scale X, Y, Z, and the only one we will be using when animating is actually the Translate X Channel, so we need to set this up so that we don't have loads of uncessary keyframes being set on the other channels, and also to keep our Graph Editor a lot more tidier, so in essence, we only want that Channel to be accessible. So, select the LKnee_PV_Constraint, now left mouse drag over the following channels : -








    The right click over your selection, and choose Lock Selected, you'll notice they become greyed out, now try scaling or rotating the object, the manipulators that usually appear for Scale or Rotate are also greyed out, now that would be fine, but let's tidy this up further, with it still selected, select WINDOW > GENERAL EDITORS > CHANNEL CONTROL, you'll have two sections, Keyable and Non - Keyable, select the same channels you had selected in the channel editor in the Keyable section : -







    And then press the MOVE >> button, you'll now notice in the Channel Editor that you now only have the Translate X channel to choose from and animate with, making things much easier and more logical for you to work with, now repeat this for the RKnee_PV_Constraint. You can now also do the same for LFoot_Control and RFoot_Control, from these two, we probably won't be using Scale X, Y, Z and Visibility, so get rid of them too. Ok, now we can return to setting up the rest of our foot setup : -



    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 : -





    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.






    Next time, we'll add a control for our Head : -


    Conclusion:





    We are half way through now, in Part 3 we will be adding a control for our character's Head.




    Downloads:



    Download file [2.3MB]

    discuss this topic to forum

    relation tutorial

    No relevant information

    Category

      Animation (19)
      Modeling (34)
      Character Setup (12)
      Textures and Materials (17)
      Effects (4)
      Tips and Techniques (3)
      Getting Started (3)
      Using Tools and Scripts (0)
      Lighting (5)

    New

    Hot