My 2010 project was the first time I’d attempted any character rigging / animation. The leraning curve was steep, and to meet dealines I felt I was only able to “half learn” what was really required to succesully animate a character. As a result I left the experience with an lingering sence of bewilderment, and felt rather apprehensive about tackling the task again. Now, within my current Ocean project, it has finally come time to insert a lead character. It was time to conquer my character rigging demons!
In order to overcome my fear of rigging, I decided I was basically going to re-learn how to build a control rig and bind it to a character mesh, mindfull of all the pitfalls that my first rigging experience presented. Tune in, sit back, and let me explain how to build a character rig the right way!
Stage 1: Modelling my Character
I set about modelling my character using polygons and subdividing to smooth the surface of his skin. Basic primitives were used (A sphere for the head, cylenders for the limbs etc) with edge loops being added to areas that either required detail or that would be deforming once the character was rigged.
The number of edges around the outside of a limb was kept consistent with the number of edges that ran around the “hole” that it was to be attached to. This way, limbs could be lined up and tidily sewn onto the torso, etc.
One technique that I will remember from this stage is that for when modelling a deforming joint, add 3 edgeloops. One for where the joint will pivot, and one edgeloop either side of it to hold the geometry.
Stage 2 – Beginning to Rig
It was finally time. I had to start rigging this dude.I started by locking off my character mesh and blocking out a basic skeleton shape over the top.
I started with one of the legs, which consisted of four bones: One each for the Toe, Ball of the Foot, Heel, Knee and Hip. Then it was on to the spine, which was made up of six bones: Hip, Back, Chest, Neck, Head, and Top of the Head. A new hip rigging technique was applied, which would attach the leg to the spine, and alow for appreopriate hip deformation. The arms were created using two bones each, and then the hands were made by constucting five fingers with four joints each, then parenting these all to each of the arm’s wrist bones.
Stage 3 – Grappling With Ik vs. Fk
Ahhh Forward Kinematics vs. Inverse Kinematics. I suspect this is where I went wrong with my project last year, for I was attempting to animate my character using only Forward Kinematics. Now I can see the importance of using both.
‘Forward Kinematics’ rely on transormations UP the joint heirarchy. For e.g, to make a hand move using FK, you would have to first have to rotate the shoulder joint. then the elbow and wrist joints – hoping the the hand ended up in the position you wanted it to.
‘Inverse Kinematics’ however, let you grab the hand and place it exactly where you want it to be. All of the joints between will then be rotated and positioned automatically. Sooo much quicker than rotating individual joints and hoping for the best.
With this knowledge under my belt, I went about applying some IK controls to my characters limbs. For the legs I ran one IK controller from the thigh to the ankle. For the arms I ran IK controllers from the shoulders down to the wrists.
Stage 4 – Reverse Foot Rig?
An entirely new approach to rigging a character’s feet presented itself to me via a video tutorial. This technique was termed the ‘Reverse Foot Control Rig’ and is used to achieve more effective control over the roll of the feet and how they stick to the ground.
Basically this consisted of a seperate foot rig that was then snapped ontop of the existing one, then using various constraints is locked to the existing foot rig/IK handle. Custom attributes and ‘Set Driven Keys’ are also used to link the two foot rigs’ animation together.
Stage 5 – Constraints and Controls
Another new concept that presented itself was with regards with how to control my character rig. Instead of animating transformations on the actual skeleton joints themselves, this time I would build curves that would sit outside the mesh and function as ‘Controls’ to the various joints throughout my character’s skeleton. The control shapes would have the skeleton joints constrained to them, so manipulating the position/rotation of the control shape would cause the paticular skeleton joints to follow.
I’d heard this term allot, though never fully grasped the concept of what it related to. A ‘Constraint’ is an action in Maya that links the behaviour of one object to another. It can be grouped with Set Driven Keys, Direct Connections (Via Maya’s Connection Editor), and Expressions as a means of creating “Reactive Animation”.
Basically, you have a Target Object, and a Constrained Object. The Constrained Object is locked to the Target Object via whichever type of Constraint you select.
1.) Select target object 2.) Select constraned object. 3.) Select type of Constraint via the Animation–>Constraints menu
Once the basic concept was grasped, there was nothing to it really. I’d select the control curve next to a joint, (this would be the target object) then the joint itself (this would be the constrained object) and place a constraint on it.
Once a control was set in place and constrained to a joint, I’d rename it, zero it’s transformations, delete it’s construction history and hide/lock unwanted channels in it’s channel editor controls.
Stage 6: Time to start binding the skin!
Maya 2011 has a new “Interactive Skinning” binding tool, which certainly removed allot of the hassle from binding my character mesh to my rig/skelton. This new system operated by placing capsules around areas of the character mesh that can be scaled in order to select how much influence each joint has on an area of the mesh.
Joint influence is shown using a colour scale running from Blue –>Green –> Yellow –>Red, where Blue represents no influence (0), and red absolute influence (1).
This tool works amazingly for blocking in rough skin weights. Fine tuning weights can be then performed in a number of different ways:
1.) Use the Component Editor – Select an object and enter Component Selection Mode. Select the vertices on the mesh that are to be weighted, and enter the Componenet Editor. In this window select the “Smooth Skin” tab, select the particular joint along the top row, then select the vertices down the columb. Enter a numerical weight value and press enter to set the weight on these vertices. Note: This method seems to work best we adding or removing complete influence from vertices. Try to stick to 0 or 1 in this mode.
2.) Good ol’ Paint Weights Tool – This is what I primarily used last year for weighting my entire model, though now I can see that it’s much better suited to tidying up weighting. One workflow that I adopted this time that worked wonders was this: Paint in absolute weight for joint ‘A’ (Paint value 1). Now paint in an absolute weight for joint ‘B’ (Also paint value 1). Return to joint ‘A’ and set your paint value to 0. This will act to remove influence. Now remove any of joint ‘A’s weight from the area that needs to be effected by joint ‘B’
And that’s it. Thanks to my taking a bit more time to grasp some fundamental key concepts (Constraints, Ik/Fk, Custom Attributes, Set Driven Keys etc), my fears of character rigging were succesfully conquered. though it did take some time, I now feel allot more confident in the process of setting up a character rig for animation. Check out my dude!