A SIMPLE BUT VERSATILE IK
At last count, there were at least a dozen different tutorials on the web for rigging a foot system. Most of these incorporate somewhat sophisticated expressions, and the majority of those are written specifically to handle walking or running. If you decide you want your character to fall down, throw it's legs in the air, or some other atypical action, you may be out of luck - requiring you to disable the expressions or build a different rig altogether.
This approach is relatively simple - all it requires is a number of iK handles and groups with specifically placed pivot points. The resulting behavior is very much like the "reverse foot rig", but without the exta joints. Without any expressions, you must do a bit more manual keyframing for some specific actions, but at the same time this allows for more versatile control and range of movement.
First, draw a skeleton for the leg: A joint at the hip, knee, and ankle - then be sure the foot has two joints in it from the ankle to the ball, and ball to toe.
Note the ankle joint is placed where the model's ankle would actually be, and the ball-to-toe bone runs more parallel to the ground plane.
Now add your IK handles.
Create an IK handle from the hip to the ankle (the type is your choice, but you probably want to use the ikRPsolver so you can use pole vector constraints later on.) Name this "ikHandle_heel"
Using the ikSCsolver,
add a second IK handle from the ankle to the ball.
Add a third ikSCsolver
IK handle from the ball to the toe.
Now to start grouping the IK handles into a heirarchy.
Select the "ikHandle_heel" and group it to itself. Name the group node "ball".
Press the "insert" key to move the pivot point of the group node to the center of the foot's "ball" joint. ("ctrl-v" to snap it in place.)
Exit pivot point mode by pressing the "insert" key again.
(Note as we go along how group nodes are working as new pivot points.)
Select the new "ball" group and also select the "ikHandle_toe". Group these two nodes together and name the new group "toe".
Snap the pivot point of the new "toe" group to the toe joint.
Select the new "toe" group and also select the "ikHandle_ball". Group these two nodes together and name the new group "heel".
Place the pivot point of the new "heel" group at the location where the heel of the model's foot actually touches the floor. (Compare the location of the manip in this image with the first image above that shows the boot geometry.)
This is the top level group node of your new foot rig! You might name it "heel_left" depending on how many legs your character has.
Study how the heirarchy works in the outliner - yours should look like the inset image here - the order is very important.
When you animate this rig - you will NEVER MOVE OR KEYFRAME THE IKHANDLES. Instead, you will always move or rotate the group nodes "heel", "toe", or "ball".
To complete the rig and it's ease of use, select all three group nodes and then "Display > Component Display > Selection Handles".
Go into component
editing mode and turn on the "+" icon to select only the handles
and move them out to the side of the foot so that it is easy to see them
outside of your model.
Try selecting the "toe" group and rotating it on X (as seen in this view - if you built your leg along the front view you may need to rotate on Z). You should get a nice action of the foot standing up on its toes running all the way up through the leg.
Select the heel group to move the entire foot around. Select the root of the skeleton (the hip) and pull the leg upwards and you should get a nice "roll" of the foot as it peels off the floor.
Remember: only set keys on the group nodes. For the heel group (the top node) you will set keys on translation and sometimes rotation.. For the toe and ball you only do rotations. Usually, you will set rotation keys on either the toe or the ball, depending on the action, but probably not both. (Don't do more work than necessary.)
Now that our shoes are tied, we're off!
If you want to see some movies of how the leg can move:
shuffle - moving the entire foot (heel node) on Z.
jumping - pulling the character up on Y.
rotate toe on X - for rolling the foot up on tip-toe, etc.
rotate toe on Y - nice action for cigarette crushing, etc.
rotate ball on X - rolling variation that keeps ball and toes more firmly on the ground.