Hey guys! new user here :D.
I was trying to make an animation of a character walking, when i noticed the famous foot sliding problem, and the fact that is very tedious to animate on an uneven ground. So, i started messing around with blender. This is what i have got so far.
here is the improved walk.blend (552 KB) it talks by itself there is a demo animation in it.
this semi-automatic method allows to:
- animate a character walking without feet sliding
- make your character walk on an uneven ground
- animate soft body turns or changes of direction, as the character turns around on his feet, like real life, instead of rotating on his center point, what looks like standing on a spinning table or something
Unlike most rigs, the foot controller bones are not parented to the root bone, but the root bone IS parented TO the foot controller bones (via a Child Of constraint to each foot controller, with an influence of 50%)
My method uses 6 extra bones, 2 for “step” controllers (parents of the leg ik’s) which are constrained to the ground via shrinkwrap (project), they also move the root bone. 2 more bones for foot ik, and 2 more bones for toes floor.
the leg ik bones have a floor constraint to the step bones. this prevents heels from passing through the ground.(remember that step bones are shrinkwrapped to the ground)
the toes floor are for… well, i dont have to explain that these are children of the step bones, and are also shrinkwrapped to the ground.
and last, but not least, the foot ik bones. These are children of the lower leg or shin bone, and they have a floor constraint to the toes floor bones.
additional information: for a walk animation, there is absolutely no need to move the foot ik bones (only raising and lowering it, no forward or sideways motion)
*The upper leg does NOT inherit rotation
*there is no need to animate every feet raise/low. Just animate the steps with the right timing, create an action for leg ik bones with the same timing, and increase the repeat value on the NLA editor. Same applies for arms and hands motion.
*DO NOT try to use this method with empties or objects. it only works for armatures.
sorry if bad english
edit: the rotation option in the child of constraints of the root bone (x, y, and z) is DISABLED, instead, i use a driver on the y rotation with two variables, one for each foot. see details in blend file.
Please tell me any ideas to improve it, or any issue if you found it.
improved walk.blend (554 KB)