• home
  • forum
  • my
  • kt
  • download
  • Character Rigging In Maya - Part 3

    Author: 2007-06-23 19:01:27 From:

    Create a Nurbs Circle, and then Scale it to 4.5 in the X, Y and Z channels. Snap it to the Head joint, then rename it to Head_Control, the freeze transformations and delete all history. Change the wireframe colour to Green. We'll only really be using the Rotate X, Y and Z for the Head, so lock the other channels, and then use the Channel Control to hide them. The main reasoning behind using a Head_Control over standard joint rotation animation is this method can be used to eliminate the need to animate the counter movements of the head when moving the body. Thereby making it much faster to animate since it's something we don't need to worry about. We're going to get a little complicated here, so make sure you follow the instructions as carefully as possible, open the Outliner, and find your Head joint, press CTRL + D to duplicate it, rename duplicated version to Head_Joint_Constraint, select the Head_Joint_Constraint and the Head_Joint, and then go to Constrain > Orient, select the Head_Joint_Constraint, and then the Head_Control, then press P to parent it and you can hide it if you wish, but not the Head_Control. Select the Head_Control, then press CTRL + G to group it, press W to make sure your in MOVE mode, and then press the INSERT key to go into PIVOT mode, using Point Snapping, snap to the Head joint, press Insert again to come out of pivot mode, now rename the group to Head_Control_Group. Nearly there, select the Head_Control_Group, and duplicate it, then delete all the contents, so that you are only left with an empty group, rename this to Head_Control_Group_Constraint, now with Head_Control_Group_Constraint still selected, also select Head_Control_Group and then go to Constrain > Point, now parent Head_Control_Group_Constraint to the Neck Joint. Now, select your COG_Control and rotate it around, you'll notice that the Head joint always stays up over when moving left, right, forward and back. And if you select the Head_Control, you'll notice that you also have seperate control of the head movements. Select the Head_Control and add it to the Rig_Controls Layer.







    Download the rig with the spine and head setup here : -




    Select them both and add them to your Rig_Controls Layer. Select the L_Clavicle_Control, then lock the channels for everything but Translate Y and Translate Z, and then use the Channel Control to make the locked one's non-keyable. Do the same for the R_Clavicle_Control too. Before we add full control of the shoulders / clavicle to the control objects, we'll set up our arms beforehand, lastly add them to the Rig_Controls Layer. With the arms, I'm going to be using an IK Rig, a lot of people use a rig on the arms that can switch between FK and IK, in this case, I want to keep things fairly simple, so I'm just going to be using the IK setup. Just like the knees we're going to use some elbow constraints, so download these objects first, import them into Maya, colour them as before, left and right colours, and add them to the Rig_Controls Layer, (note I've also colour coded the wireframe for the polygonal constraints too) : -


    {Elbow Constraint Objects - Maya 4.5 Only - Zip File}







    From the menu, select Skeleton > IK Handle Tool, then select the Left_Shoulder joint and then the Left_Wrist joint, do the same on the other side, selecting Right_Shoulder and Right_Wrist joints. Open the Outliner, select the ikHandle1 and rename it ikHandle_LWrist, and do the same for the ikHandle2 naming it ikHandle_RWrist, select them both and add them to the Skeleton_L Layer. Then select the L_Elbow_PV_Constraint and then the ikHandle_LWrist and then go to Constrain > Pole Vector, and then do the same on the other side for R_Elbow_PV_Constraint and ikHandle_RWrist. You'll notice that when you do this, the hands may offset themselves slightly out of sync with where they should be, so using any method you want, either by rotating the hand joint or using nurbs guide curves again, move them or snap them back into where you'd like them. If you need to do this, don't forget to re-orient the joints using the script we used earlier too, I'd recommend starting from the clavicle joints on each side. If your having problems doing this, you can download a scene here with this stage set up for you : -





    Because we've added an Attribute to control the Twist, we won't be needing the elbow constraints displayed any more, so select them both, and press CTRL + H to Hide them or alternately, it's up to you, lock all channels, and make them non-keyable, which is what I've done.



    Let's return back to the shoulders, create a Locator, rename it LClavicle_Locator and snap it to the Left_Shoulder joint, add it to the Rig_Controls Layer, select the LClavicle_Locator and then the Left_Shoulder joint and then go to Constrain > Point. Now, parent the locator to the L_Clavicle_Control, create another locator, name it RClavicle_Locator and repeat the same process again. Then parent both L and R Clavicle_Control's to the COG_Control, just so they follow when rotating.



    The Hands now, create a Nurbs Circle, rotate it 90 on the Z Axis, and Scale it 1.3 in X, Y and Z, rename it to L_Hand_Control, colour it accordingly for the left side and then snap it to the Left_Wrist joint. Duplicate it, rename it R_Hand_Control and snap it to the Right_Wrist joint, colour accordingly, freeze transforms on both, delete all history, add them both to the Rig_Controls Layer. Select the L_Arm_Control and Point Constrain it to the L_Hand_Control, do the same for the R_Arm_Control and the R_Hand_Control. Select the L_Hand_Control and lock the channels for the Translate X, Y, Z Scale X, Y, Z and Visibility and then make them non-keyable, do the same for the R_Hand_Control. Open the Connection Editor, Reload Left for the L_Hand_Control, Reload Right for the Left_Wrist Joint, connect the rotations : -








    Do the same for the R_Hand_Control and Right_Wrist joint. Now let's move onto the finger and thumb rigging. We'll start by doing the Left Hand and then move onto the Right Hand.


    The Fingers





    We're now going to add some extra attributes to the Left and Right Hand_Control objects that will allow us to animate our fingers and thumb for the character. Select the L_Hand_Control, and add the following new attributes : -

    Add these attributes first, but with no minimum and maximum values : -







    We now need to connect all these attributes via the connection editor, so open the editor up, and then Reload Left for the L_Hand_Control, we now have a number of things to connect up, so here's the list, just remember to reload right for each item : -








    Now you're going to need to do the same for the R_Hand_Control, the values will change for the opposite side, so here's a list for the right side : -






    and then in the Connection Editor : -







    That's it select either your L or R Hand_Control, and check everything is working ok, by selecting what you want to check in the Channel Editor, and middle mouse scrubbing backwards and forwards in the Persp view, or any other view, note you can select more than 1 item to test, for instance, try selecting Inner_Curl_Base, Inner_Curl_Middle and Inner_Curl_Top and then scrubbing you'll see the whole finger correspond hopefully. Well, that was quite an intensive part to the tutorial, but at least we've now finished with the main body rigging, note you can use these same principles applied to a character's toes, toe spread, etc You can download the rig, rigged up to this point here : -


    {Rigging Scene - With Arms And Hands Completed - Maya 4.5 Only - Zip File}







    Before we move onto the actual binding process, and the creation of blendshapes and so on, we need to create the final part of our rig, and that's the rigging for the eyes, which would mean both eyes together, seperately, and for pupil dilation : -


    Rigging The Eyes





    Before we continue on the rig the eyes, there's a couple of small things we need to do first. Open the outliner, and expand the Character group, you can make the the Character_L Layer non-templated now too if you wish for better visualisation, now select the Nose and Head objects, then from the menu select Polygons > Combine, you will end up with one object called polySurface1, with polySurface1 still selected, select the Inner_Mouth_Group Group, and then again, go to Polygons > Combine, then go to Edit > Delete By Type > History, to remove all of the empty nodes. Rename polySurface1 to Head, and then add it to the Character group, to do this, within the outliner, middle mouse drag it over the top of the Character group to make it a child of the parent. Now add it back to the Character_L Layer. Now, select both the Eye_Left and Eye_Right groups, and then middle mouse drag them both over the Head object to parent them to it. Finally, with the Head selected, press W to make sure your in Move mode, then press INSERT to go into PIVOT mode, then point snap the pivot of the head to the Head joint, template the Charater_L Layer to make things a bit easier when snapping to the joint. Ok, we're now ready to rig the eyes, download the following file and import it into your scene, then colour it green if it isn't already and add it to the Rig_Controls Layer, it should be named Main_Eye_Controls : -






    If they're not already, you can untemplate the Curve_Guides Layer, as we'll be using the last two nurbs curve guides when we rig the eyes. We don't need our Nurbs_Guide curves anymore, as I've used the guides to create the control object above already, right mouse click over Curve_Guides Layer, and then select Select Objects, the press DELETE, and then right-click over it again and choose delete. Expand the Head_Control_Group with Outliner, and then parent the Main_Eye_Controls to the Head_Control. Let's set up this controller now, so it actually does something when selected, select the Main_Eye_Controls, lock and make non-keyable the Rotate Z, Translate X, Y, Z, the Scale X, Y, Z and the visibility. Select the Main_Eye_Controls again, and then open the Connection Editor, Reload Left, then within the Outliner, find the head object, and expand it, and then select the Eye_Left group, and then Reload Right. Connect the rotation values of both : -







    Do the same for the Eye_Right group too, then Close the Window. Select the Main_Eye_Controls, then select Modify > Centre Pivot, just so our pivot point is in the correct location. Let's add an attribute now for the pupil dilation, select the Main_Eye_Controls, and add a new attribute called Pupil_Dilation, min = 0.5 and max = 1.4 : -



    Open the outliner, expand the Character group, find the Head and then expand that, select both the Eye_Left and Eye_Right group. In the Persp view, press F to Fit them fully into view then select Show > Isolate Select > View Selected so that we only have the eyes viewable, select the corneas on the front of both eyes, go to Modify > Centre Pivot, and move them up out of the way for now, so that we can concentrate on the main parts : -






    Select the Left Eye and then press F to Fit it, select the pupil and iris and select Modify > Centre Pivot, then select Display > Nurbs Components > Edit Points, press Insert for both and snap both pivots to the central CV of the Iris : -





    Select all of the eye, press 1 for lowest display, then rotate your view so that you are inside the eye looking through it, you can switch off Edit Points now :-






    Select the L_Eye_Iris, and then select the following CV's :





    With them still selected, right click over the the L_Eye_Pupil, and select the Middle CV, then go to Edit Nurbs > Selection > Grow CV Selection, Press G to repeat it again, and again, and one more time to make sure, this is to make sure we grab all the overlapping CV's where the Pupil and Iris meet, once you've done this, deselect the CV's that are outside of the original selection you made, you should now have something like this : -





    Go to Deform > Create Cluster, don't worry about the Cluster not displaying as we're still in Isolate Selected mode, now repeat this process for the other eye. Once you've done the right eye, select both the cornea objets that you originally moved up out of the way and move them back, I moved mine up 1 on the Translate Y, so setting this value back to 0 will put them back into the original position. select Show > Isolate Select > View Selected so that we have all of our objects displaying again, then open the outliner, find the two clusters and rename them as Left_Pupil_Cluster and Right_Pupil_Cluster. You can add them both to the Rig_Controls Layer. Go to the Connection Editor, Reload Left for the Main_Eye_Controls and for Reload Right, load the Left_Pupil_Cluster, and then connect the Pupil_Dilation to the Scale X, Y and Z, then Reload Right for the Left_Pupil_Cluster, and again connect the Scale X, Y and Z to the Pupil_Dilation : -






    Select the Left_Pupil_Cluster, and press CTRL + A to bring up it's attributes, within the Cluster attributes section, turn on Relative, do the same for the Right_Pupil_Cluster. Select the Left and Right Pupil_Clusters and press CTRL + H to Hide them. Close the window, that's it, that's the eyes now rigged. The Head isn't quite finished yet, but it is finished in terms of rigging, the extras that we will use for the head will be the actual Blendshapes for facial animation, we'll look at that shortly.









    Rigging Scene - With Eyes Done - Maya 4.5 Only - Zip File (348kb)

    Just about ready to start our actual binding, but we will finish here and next time look at Blendshapes

    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