Maya improved inverse foot rig

Yet another old tutorial that needs a new space

Hi All…
..the purpose of this tutorial is to achieve a better functioning Inverse Foot setup.
The Inverse Foot structure is built to give your character a better tool to avoid the foot from slipping on a ground plane and also to improve the basic controls of your foot’s joints rotations.
We will achieve this by upgrading the basic foot chain to support a more functional toe control and by changing some of the default constrain types. The basic idea is to switch the required orient constraints with aim constraints, then add an extra controller to the aiming of the original foot’s ball joint.

I will go through the setting of the basic inverse foot structure and I will add the new variations during the description of this process.
In a successive tutorial I will upgrade this Inverse Foot to work for a more complex foot, like the claw of a bird.

I am confident some of you may be already working with this procedure, but I have not seen any tutorial about it posted yet…. so here it is:….

STEP 1 – Build the Foot chain, the Inverse Foot chain and the controllers.

From now on I will use a text color scheme to differentiate between the original foot (blue), the inverse foot (red) and extra elements (green) and make the tutorial easier to follow.

1- Set your Skeleton/Joint Tool options to default and change the Auto Joint Orient option to NONE.

2- Create a humanoid leg from the side view and rename all the joints as following (L = left, R = right. We will work with the left leg for now)
(Remember to give the chain a slight bending, but keep it as parallel to the main axis as possible, to help Maya to understand the rotation scheme and to eventually facilitate the constrain process)

L_leg
L_knee
L_ankle
L_ball
L_toe

3- From the same view, create an Inverse Foot chain, trying to be as close as possible to the structure of your original foot:

L_invf_ROOT
L_invf_TOE
L_invf_BALL
L_invf_ANKLE

4- You will now have to move your inverse foot under your model’s left foot from the front view, unless you left foot is exactly at coordinates 0. After you move it under the original foot, it is important to point snap (V) all its joints to match the position of the corresponding original foot. To achieve that with the maximum control, make sure you switch to Pivot Point editing mode (insert key).

5- Add a Rotate Plane IKhandle to the original leg chain from the L_leg to
the L_ankle joint and call it L_legIKH.

6- Create a locator (or any element you prefer to use), name it TOE_CTRL,
point snap (V) it to the L_invf_TOE, Modify/Freeze its Transformations and parent it under the same L_invf_TOE.

7- Add another locator (or any element you prefer to use), name it L_INVF,
point snap (V) it to the L_invf_ROOT
You will use this locator to fix the Inverse Foot rotation and to control rotation and movements of the entire Inverse Foot as well with the help of some set driven keys.

8- Select the L_INVF, snap (V) its Pivot Point to the Inverse Foot’s L_ankle and Modify/Freeze its Transformations.

9- Finally, parent the L_invf_ROOT under the L_INVF.

In this way you achieve two main results:

The rotation of the L_INVF is set at the correct position, the ankle (that is the center of gravity for the foot) and the Inverse Foot chain is now easier to see and
to select.

10- Add a third locator (or any element you prefer to use), name it LlegPV,
short for Pole Vector, position it in front the L_knee, Modify/Freeze its Transformations and parent it under the L_INVF

STEP 2 – Setup the constraints.

11- Use the L_invf_ANKLE to Point Constrain the L_legIKH.
(Always select the constrainer first and then element you want to constraint.)

12- Use the L_invf_TOE to Aim Constrain the L_ball .
To achieve this, make sure the Aim Constrain’s Aim Vector is set to match the direction of the axis that goes from the L_ball towards the L_invf_TOE.
Opposite axis direction is entered as a negative 1.

Make also sure the Aim Constraint’s Up Vector matches the axis pointing up in your L_ball and that World Up Type is set to NONE.

IE: If the L_ball is pointing to the L_invf_TOE along the X axis, set the first field in the Aim Constraint’s Aim Vector to 1 and the
other two (Y and Z) to zero. If the L_ball is pointing to the L_invf_TOE along the X axis but towards the opposite direction, set the first
field in the Aim Constraint’s Aim Vector to -1 and the other two (Y and Z) to zero.

If the L_ball up axis is Y, set the second field in the Aim Constraint’s Up Vector to 1 and the other two (X and Z) to zero.

13- Use the TOE_CTRL to Aim Constrain the L_ball as well and apply the same consideration as in the previous procedure.

14- Use the L_invf_BALL to Aim Constrain the L_ankle

15- Use the LlegPV to Pole Vector constrain the L_legIKH

STEP 3 – Setup the Set Driven Keys.

You can now add Set Driven Keys or your espressions to the setup.
Add all the elements you may want to animate in your character left leg as Set Driven Keys to your controllers, to avoid having to deal with the skeleton once you start animating. That will allow you to focus more on the animation itself instead of navigating around your hierarchy.

16- Select the L_INVF and add two extra attributes to its transform node: BALLrot and TOErot.

17- Open the Set Driven Key option box and use L_INVF/BALLrot to control the rotation of the L_invf_BALL.
Also use L_INVF/TOErot to control the rotation of the L_invf_TOE.

STEP 4 – Channel Control.

Make sure you set your L_INVF and your TOE_CTRL‘s channel box to display/unlock only the required attributes, to avoid confusion while animating. The extra step that only professionals do….
In my Inverse Foot setup this is what I ended up having as attributes. Make sure you move your TOE_CTRL only up and down.

Again, an extra advantage from this setup is a more natural rotation in the character’s foot when the skeleton is jumping or, let’s say, flying. You also have an extra and more direct control on the rotation of the toe bone, which you could not bend downwards in the default Inverse Foot setup. Finally, you have an icon (possibly a colored coded curve) as a the main controller of your foot, that is easy to see and to select from any angle.

Grab a Maya scene with a sample of this inverse foot.

Enjoy

No Comments

Sorry, the comment form is closed at this time.

Maya improved inverse foot rig

Yet another old tutorial that needs a new space

Hi All…
..the purpose of this tutorial is to achieve a better functioning Inverse Foot setup.
The Inverse Foot structure is built to give your character a better tool to avoid the foot from slipping on a ground plane and also to improve the basic controls of your foot’s joints rotations.
We will achieve this by upgrading the basic foot chain to support a more functional toe control and by changing some of the default constrain types. The basic idea is to switch the required orient constraints with aim constraints, then add an extra controller to the aiming of the original foot’s ball joint.

I will go through the setting of the basic inverse foot structure and I will add the new variations during the description of this process.
In a successive tutorial I will upgrade this Inverse Foot to work for a more complex foot, like the claw of a bird.

I am confident some of you may be already working with this procedure, but I have not seen any tutorial about it posted yet…. so here it is:….

STEP 1 – Build the Foot chain, the Inverse Foot chain and the controllers.

From now on I will use a text color scheme to differentiate between the original foot (blue), the inverse foot (red) and extra elements (green) and make the tutorial easier to follow.

1- Set your Skeleton/Joint Tool options to default and change the Auto Joint Orient option to NONE.

2- Create a humanoid leg from the side view and rename all the joints as following (L = left, R = right. We will work with the left leg for now)
(Remember to give the chain a slight bending, but keep it as parallel to the main axis as possible, to help Maya to understand the rotation scheme and to eventually facilitate the constrain process)

L_leg
L_knee
L_ankle
L_ball
L_toe

3- From the same view, create an Inverse Foot chain, trying to be as close as possible to the structure of your original foot:

L_invf_ROOT
L_invf_TOE
L_invf_BALL
L_invf_ANKLE

4- You will now have to move your inverse foot under your model’s left foot from the front view, unless you left foot is exactly at coordinates 0. After you move it under the original foot, it is important to point snap (V) all its joints to match the position of the corresponding original foot. To achieve that with the maximum control, make sure you switch to Pivot Point editing mode (insert key).

5- Add a Rotate Plane IKhandle to the original leg chain from the L_leg to
the L_ankle joint and call it L_legIKH.

6- Create a locator (or any element you prefer to use), name it TOE_CTRL,
point snap (V) it to the L_invf_TOE, Modify/Freeze its Transformations and parent it under the same L_invf_TOE.

7- Add another locator (or any element you prefer to use), name it L_INVF,
point snap (V) it to the L_invf_ROOT
You will use this locator to fix the Inverse Foot rotation and to control rotation and movements of the entire Inverse Foot as well with the help of some set driven keys.

8- Select the L_INVF, snap (V) its Pivot Point to the Inverse Foot’s L_ankle and Modify/Freeze its Transformations.

9- Finally, parent the L_invf_ROOT under the L_INVF.

In this way you achieve two main results:

The rotation of the L_INVF is set at the correct position, the ankle (that is the center of gravity for the foot) and the Inverse Foot chain is now easier to see and
to select.

10- Add a third locator (or any element you prefer to use), name it LlegPV,
short for Pole Vector, position it in front the L_knee, Modify/Freeze its Transformations and parent it under the L_INVF

STEP 2 – Setup the constraints.

11- Use the L_invf_ANKLE to Point Constrain the L_legIKH.
(Always select the constrainer first and then element you want to constraint.)

12- Use the L_invf_TOE to Aim Constrain the L_ball .
To achieve this, make sure the Aim Constrain’s Aim Vector is set to match the direction of the axis that goes from the L_ball towards the L_invf_TOE.
Opposite axis direction is entered as a negative 1.

Make also sure the Aim Constraint’s Up Vector matches the axis pointing up in your L_ball and that World Up Type is set to NONE.

IE: If the L_ball is pointing to the L_invf_TOE along the X axis, set the first field in the Aim Constraint’s Aim Vector to 1 and the
other two (Y and Z) to zero. If the L_ball is pointing to the L_invf_TOE along the X axis but towards the opposite direction, set the first
field in the Aim Constraint’s Aim Vector to -1 and the other two (Y and Z) to zero.

If the L_ball up axis is Y, set the second field in the Aim Constraint’s Up Vector to 1 and the other two (X and Z) to zero.

13- Use the TOE_CTRL to Aim Constrain the L_ball as well and apply the same consideration as in the previous procedure.

14- Use the L_invf_BALL to Aim Constrain the L_ankle

15- Use the LlegPV to Pole Vector constrain the L_legIKH

STEP 3 – Setup the Set Driven Keys.

You can now add Set Driven Keys or your espressions to the setup.
Add all the elements you may want to animate in your character left leg as Set Driven Keys to your controllers, to avoid having to deal with the skeleton once you start animating. That will allow you to focus more on the animation itself instead of navigating around your hierarchy.

16- Select the L_INVF and add two extra attributes to its transform node: BALLrot and TOErot.

17- Open the Set Driven Key option box and use L_INVF/BALLrot to control the rotation of the L_invf_BALL.
Also use L_INVF/TOErot to control the rotation of the L_invf_TOE.

STEP 4 – Channel Control.

Make sure you set your L_INVF and your TOE_CTRL‘s channel box to display/unlock only the required attributes, to avoid confusion while animating. The extra step that only professionals do….
In my Inverse Foot setup this is what I ended up having as attributes. Make sure you move your TOE_CTRL only up and down.

Again, an extra advantage from this setup is a more natural rotation in the character’s foot when the skeleton is jumping or, let’s say, flying. You also have an extra and more direct control on the rotation of the toe bone, which you could not bend downwards in the default Inverse Foot setup. Finally, you have an icon (possibly a colored coded curve) as a the main controller of your foot, that is easy to see and to select from any angle.

Grab a Maya scene with a sample of this inverse foot.

Enjoy