Help with the floor constraint!

I have never been able to get this damn constraint working, yet, I have had blends with a working floor constraint, but have never been able to figure out why theirs work and mine doesn’t. Included is a test blend of mine with the non-working floor constraint. If someone can make it work and re-upload it so I can see what I’ve been doing wrong ever since this constraint was built into blender (i’ve been using blender since close to when it first released, and since the constraint came in at 2.4 I believe, I have not been able to get it).

test.blend (156 KB)

I guess you are having problems using the Floor to constraint along with armatures … First of all you need to understand that the constraint uses the center of an object as the target of the constraint, and in the case of an armature bone this is the “head” tip (the end where in the octahedron display is wider) .

So in your test file where you have applied the constraint to what would be the shin (which you call foot for some reason) won’t be affected by the constraint until the head tip tries to cross the plane’s center … So you grab the root bone in the armature and move it down … but the bone doesn’t stop and the whole thing just passes through …

The second thing to know is that because of the armature’s parenting hierarchy constraints like Floor to will not work . The inherited transforms only go one way, from parent to child . The only constraint that “breaks” this behavior is the IK solver (which you have, but it is target-less) . Auto IK also breaks this behavior, but only for linked bones …

So the way to use the Floor constraint is to add targets to the IK solvers and give the targets the Floor to constraint, not the foot/shin bone . This way the character’s leg/foot will not fall through the floor . This applies too btw to the relatively new Shrinkwrap constraint as well …

Here is a “fixed” version of your file … I made the target bones the child of the body/root (unconnected) so you can move the entire rig and not loose track of them … Just move the body down until the targets hit the floor plane .


test._fixed.blend (158 KB)