Foot Tutorial
a tutorial by Calvin
Introduction
I have attempted to replicate the functionality of Ludwig’s Foot
Rig, but without using the action constraint.
I think I think I accomplished the goal, here is the blend
file if you wish to judge for yourself, before enduring the
hardships of following a tutorial.
The following tutorial is NOT ment for first time blender users, so I'll
be just throwing out terms at you... hoping you know how to do it.
[update] If you are indeed
a beginner, I've just discovered that a
tutorial by YogYog has a similar rig (at least the beginning
part) in a hopely more descriptive manner. Once completed that you should
have enough knowledge to come back and complete my tutorial.. 
Getting Ready
Bones in an IK chain have a tendency to continue in the rotation they
are in. So before you start rigging something I would recommend Deforming
your mesh in the following way.

Here is a simple Leg rig.
- The Hip.L bone is parented to the LowerBody
bone.
- The Thigh.L bone is parented to the Hip.L
bone, but it not connected.
- The Thigh.L bone has an "IK
Solver" Constraint at ChainLength 1, to the IKKnee.L
bone.
- The Shin.L bone is pareted and connnected
to the Thigh.L bone.
- The Shin.L bone has an "IK
Solver" Constraint at ChainLength 2, to the IKLeg.L
bone.
Blend: 01.blend
Create two more bones.
- The toe.L bone, and the Foot.L bone.
- Parent and connect the IKLeg.L bone to the Foot.L bone.
Go into Pose Mode and try to rotate the Foot.L bone. The Foot.L bone now
controls the IKLeg.IK bone!
But we have a slight problem, there is no limitation
to the Foot.L bone. As you recall in the Ludwig rig, Sketchy added a roll
bone in the back which was able to limit the rotation/roll.
Blender has a limiting feature, but it can ONLY be appied to a bone in
an IK chain. So we need to make the Foot.L bone part of a chain of somekind,
in order to do so we will now create another IK bone.
Because we are going to be using the Rotation feature of an "IK Solver"
Constright, the IK bone must have an exact rotation of the Foot.L bone
at default and be positioned at the Tip of the Foot.L bone. The following
is a little trick to get that done.

- Snap your Cursor the the tip of the Foot.L bone.
- Change pivot to 3d Cursor.
- Select the Foot.L bone duplicate and rotate 180 degrees.

- Change the pivot back to median point, and rotate again 180 degress.
- Change the name to FootRoll.L
Now Apply the following "IK Solver"
Constraint to the Foot.L Bone.

Now go into Pose mode and try to Rotate the FootRoll.L bone. Yep, pretty
much the same thing!
Side note: Some people don't like to accidently rotate
along a different axis, using the transform window you can lock the rotation
of axis you don't intend to animate. Heck, you can take it a step furthur
and lock the location. Since we are going to only use the FootRoll.L bone
for the rotation sake.

Now click on the Foot.L Bone, notice that you now have limiting features:

We are going to be limiting the X Axis.
- Click on the Limit X Button.

- Notice that Blender has a visual presentation of where that limit will
occur.
- We don't want the bone go back any further, so we set the Min at 0.0.
We we want it to stop at about 70 degrees, so we set the Max to that.
- Enable the "Lock Y Rot" and the "Lock Z Rot."
Now try to rotate the FootRoll.L bone. TaDA!
Now lets create an All masterful FootRoot.L
bone that will tie everything together.
- Parent the toe.L
bone to the FootRoot.L bone.
- Parent the FootRoll.L bone to the FootRoot.L
bone.
- Parent the Foot.L bone to the FootRoot.L
bone.
Blend: 02.blend
Now go ahead an experiment!
######################################## Intermission
############################################
Now try to move
the UpperBody Bone, high up.
Notice that the Shin.L bone disattachs from the IKLeg.L bone, and leaves
the foot behind. A non-lazy person will look at this and say, just move
the FoorRoot.L bone. But as you probabley recall ludwig's foot continues
on it's journey with the shin.L bone.
In order to accomplish this task we need to create 4 more bones. 2 bones
being the duplicates of the toe and foot bones, and 2 for parenting sake.
What we are going to do is create extra bones that will always be attached
to the shin.L bone, but copy the transformation of our setup.
- Snap your cursor
at at the tip of the Shin.L bone.
- Create a bone, called ShinAttach.L
- Parent and connect the ShinAttach.L to
the Shin.L
This bone will follow the Shin.L bone whereever it goes, we will later
attach things to it.
- Root starting at the same place create another bone. Call it DeformAttach.L
To this bone the duplicates of the foot and toe bones will be parented
to later.
- Parent this bone to the IKLeg.L bone.
- Go into Pose Mode, Select DeformAttach.L
bone and add a Copy Location Constraint to
copy the location of the ShinAttach.L bone.
Now the fun part,
- Select the
Toe.L and Foot.L
bones.
- Duplicate them.
- Grab them and move down a bit. (Hold shift while moving, we want to
snap them back in place later.)
- Select the original toe and shin bones, and click "H" for
hide. Or you can put them in a different layer.
- Rename the duplicate bones:
Toe.L.001 to DeformToe.L
Foot.L.001 to DeformFoot.L
- Snap Bone back into place. (Again hold shift while moving.)
- Parent both of the bones to DeformAttach.L
Go into Pose Mode
- Add a Copy Rotation constraint
to DeformToe.L to copy the rotation of Toe.L
ALMOST DONE!
- Click on your Mesh and rename your Vertex Groups to use these Duplicate/Deform
bones!
- Now either hide, or move into a different layer the bones we are not
going to be using.
 |
 |
| Choose
which layer to place the bone in. |
Choose
which layers to display!
Hold Shift key to display more then one. |
Blend: 03.blend
######################################## Intermission
############################################
hehehehe...
ok, the Ludwig Foot Rig has another feature, when the FootRoll.L
bone is rotated the other way... the foot rotates at the back tip of the
foot. This is important because when a character walks, it's leg/ankle
bends to compensate for the fact that the foot is on the ground: being
the toe, or the back of the foot. Well, alright lets do this thing!
First off, good thing we hid all the other bones or this would be really
confusing... 
- Create a new bone, root at the back tip of our shoe and tip at the root
of the toe.L Bone. Lets call it Backtoe.L
Parenting TIME!
- Parent Backtoe.L to FootRoot.L
- Parent Toe.L to Backtoe.L
- Parent Foot.L
to Backtoe.L (if following
along with included blend files, should be in 2nd layer.)
- Snap your cursor at the root of the FootRoll.L
bone.
- Create another bone, call it BackRoll.L

- Parent BackRoll.L
to FootRoll.L
As mentioned before, the effecting bone must have the same
rotation as the effected bone. We are not using the FootRoll.L
as our effecting bone because it has a different rotation, heck it's even
pointing the wrong way. But, since we want to utilize the FootRoll.L
rotation, we parent the BackRoll.L bone to
it.
Go into Pose Mode
- Add an IK Solver Constraint to Backtoe.L
with BackRoll.L
acting as the IK bone. (We want the rotation of BackRoll.L to effect the
rotation of Backtoe.L)
- Now that Backtoe.L
is an IK bone, you can set a Rotation limit.
Now try to rotate the FootRoll.L bone.
What happens is that when the FootRoll.L
button rotates one way the limits of the Foot.L
bone allow it to rotate in that direction, but when ithe FootRoll.L
bone rotates the other way the limits of the Backtoe.L
bone allow it to rotate in that other direction.
If there was no limits set, both the Foot.L
bone and the Backtoe.L bone would rotate
at the same time. But through limits we turn on and off the bones we want
to rotate.
Blend: 04.blend
[update] Little bug discovered,
this is a simple fix.
Even though I tried to disable the position aspect of the IK
Solver Constraint effecting the Backtoe.L
bone, the position of the BackRoll.L still
seems to effect the rotation of the Backtoe.L
bone. In order to fix this, we'll just go ahead an mimic the position.
- Select the BackRoll.L
bone and move it down, so the Root matches up with Backtoe.L's
Root. (The length does not matter.)

Blend: 05.blend
############################### Conclusion #######################################
I am not sure whether this turned out any easier or any less complex then
what Sketchy did with his foot rig. But I'm happy I found a different
way to do the same thing.
|