Jahirul Amin's latest Maya tutorial focuses on rigging the fingers, with in-depth written guidelines and a 50-minute video guide
to download assets to accompany this tutorial
Maya rigging: Introduction to rigging
Maya rigging: Introduction to rigging a human torso
Maya rigging: Introduction to rigging the neck and the head
Maya rigging: Introduction to rigging the shoulder and the arms
Maya rigging: Introduction to rigging the hands
Maya rigging: Introduction to rigging the legs
Maya rigging: Introduction to rigging the feet
In this tutorial, we will add all the controls to pose the fingers, and also finish off the leg by adding the ability to twist it. Taking advantage of the hierarchy that we created for each control, we can add layers of functionality for the animator, giving them choices to best decide how he/she wants to animate. The first level of control will let the animator pose all the fingers in one hit. Allowing animators to create poses quickly and simply is very useful during the blocking stage of the animation when roughing out ideas. The second level of control will allow the animator to pose each finger or the thumb individually, and the final level of control will be to individually pose each phalange. (Phalanges are the separate bones of the fingers or toes). These 2 latter layers of control allow the animator to refine the poses, which is necessary if you need to wrap the fingers around objects, for example.
We will create a new control to house all the attributes to pose the fingers first, and then drive the movement through the Set Driven Key tool. If you have yet to get used to this tool, I think that moment has come, so prepare for über-levels of SDK madness.
So, with fingers at the ready…
Finishing the leg
Something I forgot to add during the last tutorial is the ability to twist the IK leg, so let's do that before we take care of the fingers. Start by selecting l_leg_IK_ctrl and going Window > General Editors > Connection Editor. This should pop the l_leg_IK_ctrl into the Outputs column. Now select l_leg_IK and hit Reload Right in the Connection Editor window. In the Outputs column, highlight ‘legTwist' and in the Inputs column, highlight ‘twist'. Repeat the step for the right leg.
Adding the ability to twist the IK leg
In the interest of consistency, the next thing I did was to edit the current setup when twisting the IK foot using the rotX, rotY and rotZ attributes that are housed on the l_leg_IK_ctrl and the r_leg_IK_ctrl. Where we left it last time, using the rotY attribute when both controls were selected resulted in both feet rotating in the same direction, as did the twist using the rotZ attribute. To fix this, I selected l_ankle_loc and r_ankle_loc, highlighted the rotate channels for both locators, held down the RMB and went Break Connections. Next, I created the following expression in the Expression Editor:
l_ankle_loc.rotateX = l_leg_IK_ctrl.rotX ;
l_ankle_loc.rotateY = l_leg_IK_ctrl.rotY ;
l_ankle_loc.rotateZ = l_leg_IK_ctrl.rotZ ;
r_ankle_loc.rotateX = r_leg_IK_ctrl.rotX ;
r_ankle_loc.rotateY = r_leg_IK_ctrl.rotY *-1;
r_ankle_loc.rotateZ = r_leg_IK_ctrl.rotZ *-1;
You can create this as one expression or separate the left side from the right side as I did. Try out the result by using the rotY and rotZ attribute and you should see the difference.
Using an expression to get consistent behavior when twisting the IK foot control
Creating the finger controls
In the Top view, use the CV Curve Tool (with Curve degree to set 3 Cubic) to draw around the palm of the hand. Then use the CV Curve Tool to draw around each finger individually and the thumb. You should now have 6 different curve shapes sitting on the grid in the perspective view. Quickly go in and name them accordingly as so: l_thumb_ctrl, l_index_ctrl, l_middle_ctrl, l_ring_ctrl, l_pinky_ctrl and l_fingers_ctrl (the palm shape).
Now select l_thumb_ctrl, l_index_ctrl, l_middle_ctrl, l_ring_ctrl, l_pinky_ctrl and parent them under l_fingers_ctrl. With l_fingers_ctrl selected, go Modify > Center Pivot and then position, scale and rotate it so it sits closely to the hand geometry. When you are happy with the placement, go Modify > Freeze Transformations to tidy up the Channel Box and give it a greenish color using the Drawing Overrides in the Attribute Editor. Then parent l_fingers_ctrl under l_palm_ctrl so it will follow along with the hand. The last thing to do is in the Channel Box: highlight all the Translate, Rotate and Scale attributes for all the new controls and go RMB > Lock and Hide Selected. We will add some custom attributes in the next step.
The setup for the finger controls