Rigging a robot with floor constraint?

Hi guys, this will be my first post here! I knew I would get around to making use of this forum once I hit a major hurdle, maybe someone can help. I have an awesome robot model I’ve rigged up with IK control bones. He’s got four legs with three bones each, and a single bone that controls his abdomen. Each moving part is its own mesh. None of the bones deform the meshes, instead each bone is the parent of its own mesh object, all in a logical fashion. I should mention right away that this is my first rig aside from a few basic test rigs.

The problem I’ve encountered is that there is no good way for the floor constraint to help with a rig consisting of multiple meshes(?). I discovered that the IK control bone with a floor constraint doesn’t stop the legs themselves from piercing the floor. Instead they can and will pierce the floor and continue to track the control bone.

SO, thinking I was being smart, I moved the origin of the feet to their bottom-most vertex, and applied the floor constraint to the foot objects themselves, which did indeed stop the feet, but eventually causes them to separate from the next mesh up in the chain.

Thinking I was smarter still, over several hours, I added distance constraints to all the objects so that all the joints would stay together, only to discover that ultimately the kinematics will always override constraints on their child objects. Should have seen that coming, but hey, it’s my first time.

So now I’m wondering - is it possible to rig a model with separate meshes for each part (like a robot) to be unbreakable once constraints are involved? OR, what is the best practice for constraining the feet of such a creation to the floor?

Ideally, in this scenario at least, blender would splay the feet apart before breaking the joints, or just stop you from transforming when it would break the joints, but I doubt that’s possible or desirable in most situations.

Ideas, please? Thanks in advance, I’ve already learned a LOT here just by lurking.

you can write all you want, what people (willing to help) need is a .blend file, than we can talk. :expressionless:

Here’s the blend if anyone is willing to take a look. :slight_smile:

Never tried to share one before. The following text is supposed to be pasted inside, but just in case I dunno what I’m doing, here it is again:

For simplicity, I butchered the model down to its bones and the meshes attached to them. Earlier I also removed all distance constraints that were applied to each joint, because they weren’t doing what I wanted/expected.

The issue here is that when a Floor constraint is applied to the red control bones for the legs, the leg mesh can and does pass through the floor when dragging the green arrow far enough down on Z. I can’t apply a floor constraint to the leg bones. When the Floor constraint is applied to the leg objects themselves, the desired result is achieved until the next bone’s envelope is exceeded, at which point the joint splits somewhere up the chain.

I was using ‘RIG -> Floor_Bone’ as my floor constraint target. RIG -> Floor_Bone is locked on the Z axis, but the other two follow the main bone. Sorry for not having the original scenario to play with, I didn’t think I’d need it once I discovered it didn’t work.

What I want - which may not be possible - is a way to keep the feet above 0 on the Z axis while still having full control over the hieght of the green arrow. (To achieve what I’m wanting as of right now, I’d have to manually adjust every keyframe to make sure the feet aren’t poking through the ground plane.)

Thanks for any help and suggestions - knowing me I’m probably missing some fundamental element of the formula here.


spider.blend (549 KB)

comment: I am learning 2.5 and am not good at it (yet), but I am going to stick to it so it might take a little bit longer to get the rig right

Question: you made this rig in 2.4X yes, cause there is some incompatibility

advise: NAME YOUR BONES, I spent one hour plus (with pleasure btw) just naming the bones and shapes, to clear the rig up.


rule of thumb number one if you start to rig,

still with kind regards, Hewi

I’ve gotten this far,
still need to solve your puzzle of feet penetrating floor, interesting …


spider_adjust.blend (234 KB)

It is very very kind of you to spend so much time trying to help me! You’ve already gone above and beyond what I would’ve expected anyone to do. I truly didn’t mean to ask anyone to help me discover a solution - rather I was hoping someone might read this post or glance at the .blend and already have an answer from past experience. I do appreciate that you’re trying to help, but I insist that you don’t trouble yourself any further. Unless of course you’re enjoying yourself, in which case I certainly won’t argue. Thanks again, but don’t let it distract or frustrate you.

Oh, and yes, I’m still using 2.49. Downloaded it just a couple months before the 2.5 alpha was released. I know that naming bones is very wise, but there were only 13 at first, and I was in a hurry to test out whether the IKs would keep it from smashing through the floor. Unfortunately, I haven’t found a solution yet either. Let me know if you solve that, but please feel free to drop it once it becomes more of a chore than a learning experience. I’ve already started trying to animate as it is, but it is indeed frustrating when the rig/model keeps poking through the ground plane in an obvious way. Also, I’m not sure if it was because of the version difference or if you deleted the meshes, but there weren’t any in the file you attached.

Anyways, we need a guru to drop in this thread and shine some light on this situation!! :slight_smile:

it occurs to me that a possible workaround for this situation might be to have build my armature with the abdomen in it’s lowest possible position. Then I could put a constraint on the abdomen to keep it from moving so far down that it pushes the legs through the floor. Of course, that won’t work unless the legs stay more or less splayed-out, but that’s actually what I was going to aim for when animating/posing anyway. Barring a better solution, I think I’ll give that a shot tomorrow.

The only other thing I can think of is using a series of constraints to force the leg IK’s to splay out the lower the abdomen gets, but I dunno if that’s possible. Might require python or who knows what. Anyway, don’t lose any sleep over it - I won’t be!

I am ejoying, I will try to solve it and yes, that blender GURU would com in handy now

again the reason why I didn’t crack it yet is because I am ‘stubernly’ using blender 2.5, and it is also more learning than frustration, honestly

keeping you posted

(ps: most likely, the time I cracked you won’t be needing it any more lol)

You could always try out this insect armature. It seems to work in 2.5.


++insect_armature.blend (121 KB)


Here’s the blend file of the solved rig. I rebuild it from scratch and guess what ,I didn’t name the bones :D, but it is working

I also did not redo the shapes of the CTRL bones but have fun I’d say

It is still a mistery to me why the one you’ve entered is still not working, must be some incompatibility??



spider.blend (63.2 KB)

hewi, you’re my blender hero! This is 100% perfect! It’s exactly the behavior I wanted from the rig. I’m going to make a backup of it before I tinker with it and parent the meshes, etc. I don’t know what you did that made the difference, but it certainly worked like a charm. I started the rig from scratch three times, and never got this behavior, so maybe you know something I missed.
The goat you sacrificed to the blender gods did not die in vain - I vow to learn from whatever magic you worked on this thing. I can’t thank you enough, but I hope a great big thank-you will suffice. Thank you for going above and beyond in assisting a stranger; I assure you I will pay it forward. Also I can share whatever final animation I come up with - I’m planning a short 1 or 2 minute film - I’ll send you a link if and when it’s finished.

Cheers and thanks a lot ~ now I’m off to see if I can figure out how you did it!
Happy blending!

my pleasure

regards, Hewi