IK walker rig capable of handling terrain; curves; stairs without slipping

Terrain Walker Experiments.blend (4 MB)

I made this a few months ago and have mostly moved on to other projects since then so I may not describe it as well as I ought to, but I still thought this might be of interest to others.

The two walkers worth looking at are General Walker.001 on layer 14 and Toe Walker on layer 15. General Walker goes over a track that shows many different types of situations where a character may need to walk; Toe Walker doesn’t cover the same variety but is General Walker updated with bones for toe segments.
There’s a whole bunch of little tricks I shoved in to get these working precisely the way I wanted them to, but the key is replacing the forward axis of motion with a curve (or several curves in sequence, as the case may be.) For the terrain, there are a number of bones that must be shrinkwrapped to the surface in order for the foot to be properly aligned with the slope. If done properly, the walk cycle can be animated more or less automatically and the character can walk up and down hills, in knotted paths, or up and down stairs (even stairs that change slope) without its feet slipping on the ground.

No, neither of the demonstrators actually have legs connecting their bodies to their feet. But all the controls needed to control leg motion like this are in place; I can and have implemented this on characters that do have legs.

If this is of interest to anyone, and if you want something explained, feel free to ask. I will answer provided I don’t forget about this topic!

This is interesting, I would love to see an animation

Is the leg rig included in the file?

No, I don’t think so; this is mainly a demonstration of a system to enhance IK leg rigs like this: (http://www.youtube.com/watch?v=CDbZzEFbmkA) - the “foot” bone in that tutorial is what the bones “Foot.L” or “Foot.R” on General Walker would be on a more complete rig. But I don’t have a more complete version for publication, not yet, at least.

Oh ok. I was just wondering