With nearly 40 minutes of video tutorial and written guidelines, Jahirul's latest in-depth guide to rigging in Maya focuses on the feet.
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
In this tutorial, we will be finishing off the IK legs by creating the setup for the reverse foot. The reverse foot allows us to create all the necessary motion needed for a foot to plant and take off during a walk, a run or any other type of locomotion where the foot comes in contact with a ground or wall plane. We will also add extra attributes to allow the foot to twist from the heel and from the tip of the toes. Twisting from these points allows you to very easily animate a character boogying or preparing to deliver a tornado kick to the head.
Along with the reverse foot, we will also create a knee control in the same manner that we did the elbow. We will also add a feature that allows the animator to choose if he or she wishes the knee control to automatically follow the foot control or not. Having the knee control follow the foot can sometimes be useful as it is one way of minimizing the tendency for the knee to flip out. But a negative of having the knee control follow the foot is that it becomes harder to lock the knee off and hold its position. Giving the animator both options allows him or her to choose what best suits their style of animating.
So, let's play footsie?
Locators, Locators, Locators
The bulk of the reverse foot will be driven through a series of locators organized in a hierarchy, allowing the foot to pivot from different positions. To create the first locator, go Create > Locator and rename it l_heel_loc. If it is a bit small, increase the Local Scale in the Channel Box, under SHAPES. We want to position this locator at the back of the foot as well as orient the locator to match the angle of the foot.
First, parent the l_heel_loc under l_ankleTwist_jnt, zero out the translate and rotate attributes and then un-parent the locator. Now translate the locator down slightly and towards the heel of the foot. To make it easier, activate Snap to Points (hold down the V key) and snap it to one of the vertices on the back of the foot.
With l_heel_loc selected, hit Ctrl+D to duplicate it and then rename it l_ball_loc. Use Snap to Points to snap it to l_ball_jnt.
You may want to hide the geometry to do this so it does not snap to any points on the mesh. Duplicate l_ball_loc and rename the new locator l_toeFlap_loc. Leave this locator in its current position. Now duplicate l_toeFlap_loc and rename it l_toeEnd_loc. Use Snap to Points to snap this locator to l_toeEnd_jnt.
We now need 2 more locators for the inside and the outside of the foot. Duplicate l_toeFlap_loc and rename it l_footInner_loc. Translate this to the widest part of the inside of the foot, then duplicate l_footInner_loc and rename it l_footOuter_loc. Position this locator on the widest part of the outside of the foot.
We should now have a total of 6 locators spread around the foot.
The six locators placed around the foot
Reverse foot hierarchy
Time to create the hierarchy for the foot. First parent l_footOuter_loc under l_heel_loc. Then parent l_footInner_loc under l_footOuter_loc. Now parent l_toeEnd_loc under l_footOuter_loc. Lastly, select both l_ball_loc and l_toeFlap_loc and parent them under l_toeEnd_loc.
Now it's time to parent the IK handles under the relevant locator to make the reverse foot possible. Parent l_ball_IK and l_toe_IK under l_toeFlap_loc, then parent lleg_IK under l_ball_IK. Rotate the locators to test if the hierarchy has been created correctly. We now want to create a new locator to allow us to rotate the foot from the ankle.
Go Create > Locator and rename the locator l_ankle_loc. With the new locator selected, hit Ctrl+G and call that group l_ankle_loc_offset. Parent l_ankle_loc_offset under l_ankleTwist_jnt, zero out the translate and rotate attributes and then un-parent it. Now parent l_heel_loc under l_ankle_loc and then parent l_ankle_loc_offset under l_leg_IK_ctrl.
The hierarchy for the reverse foot