## Setting up an Inverse foot:

This is one I seem to stumble upon often, it is actually pretty simple once you know what to do (I guess its the same with anything ;)  )

I'll explain it like I like to do it.

First you need a leg:

now you need an inverse foot, its built in the 'opposite direction', starting with an 'imaginary' lower-ankle (I call this inv_foot)

 make sure that the distance between the individual joints matches the original leg, I made both with grid-snap on, so it was simple, you could also use vertex-snap whn you make inv_toe,inv_ball and inv_ankle and snap them to the original joints, then move them down a bit afterwards so they are easy to select.

Next you need to put ik-handles on your 'real' leg and foot:

 Here I used a SC (Single Chain) solver, but you might aswell use a RP (RotatePlane) solver, in fact this would give you much more control of then legs movement, especially the knee. It goes from the 'hip' to the 'ankle' Next create a SC ik handle from the 'ankle' to the 'ball' Then a ik handle from the ball to the toe. Now the leg and foot is completely controlled by the 3 ik handles

Now the inverse foot get into action, to make this work you need to constrain each of the ikhandles in turn to its corresponding inverse-foot joint.

 First select the joint to constrain to #1 (in this example the inv_toe joint) Then select the ik handle to constrain #2. Then do a Constrain->PointConstrain. The result should look like this.

Repeat this for the final two ik-handle/joint pairs:

Now the setup is actually finished, the i just move the inverse_foot up a bit to make the foot 'lie' flat on the ground (x-z plane):

Now test the setup:

 you can rotate the inverse_foot you can rotate the inverse_toe and finally you can roate the inverse_ball. NOTE! the 'Character Animation in Maya' book states that you can use the inverse_ankle to rotate the foot, this is not true!!!!

Additional setup

I usually turn on the SelectionHandle for the inverse_foot

Then I go into component mode and selects the handle

Then I move it a little 'out' and down to make it easy to select the inverse_foot node

Then sometimes I do this for the inverse_toe and inverse_ball, aswell , and simply do animation by keyframing rotation.
This gives good flexibility (you can make the foot flex etc.)

Other times I setup two extra attributes on the inverse_foot node, a toe-roll ans ball-rool attribute, then I use 'SetDrivenKey' to let there two control the roll (rotation) of the twon nodes, this has the advantage that all foot animation happen on the inverse_foot node. But is slightly less flexible.