It's that time again when somebody asks about IK feet and floor constraints

Given how much Google pointed me to this board, I figure it’s used to it by now.

From what I’ve gathered, IK chains take precedence over Floor constraints, essentially ensuring that they can’t be used for skinned animation. Most of the threads I’ve dug into are over five years old and concern old builds; has some workaround been devised in the meantime?

That question is for bones in particular, but in the absolute best case, I’d like some way to keep every vertex of my skinned model above the floor, and prevent it from clipping into itself.

This is game related, isn’t it? Try the game subforum.

It’s not for the game engine, I’m actually exporting to Unity. I’m just wondering if there’s some way to constrain space for animation.

Unity is a game engine, isn’t it? You’ll find more knowledgeable people over in the game subforum.

Some points I would like to make:

  1. You statement “From what I’ve gathered, IK chains take precedence over Floor constraints, essentially ensuring that they can’t be used for skinned animation” is not true by any stretch of the imagination.
    Have you ever tried adding a Limit Location Constraint to your IK target bones?
    Have you ever tried adding a Follow Path or other such constraint to your IK target bones?
    IK constraints take precedence over virtually everything, but that does not mean that the target bones cannot be constrained.

  2. I have no difficulty whatsoever in keeping the vertices of my meshes where I want them - it means applying some logic and thinking to the problem, but it seems you want a “no effort” solution rather than thinking about placement and constraints.

  3. What is the purpose of your question, you provide so little information it is impossible to answer it.

Question:

What exactly do you mean by “Constrain Space”? Surely you should be asking about containing “substance” within “space”, that we can help you with.

And finally:

You will get much more from this forum if you put much more in, like sample blend files, images, accurate descriptions of the problem, etc/ etc.

Cheers, Clock.

Not on the target bones (I use targetless IK) but I did try Limit Location, and it only works when directly grabbing the affected bones (the feet, in this case).

Have you ever tried adding a Follow Path or other such constraint to your IK target bones?

I did try other constraints (Follow Path in particular I haven’t quite figured out), with no effect that I’m looking for.

I have no difficulty whatsoever in keeping the vertices of my meshes where I want them - it means applying some logic and thinking to the problem, but it seems you want a “no effort” solution rather than thinking about placement and constraints.

Yup. As with IK limits, I’m going for the immediate effort of setting up something that’ll take less of it down the line. I’m trying to set up a generic human rig for me to to work off of.

What exactly do you mean by “Constrain Space”? Surely you should be asking about containing “substance” within “space”, that we can help you with.

Yeah, that. I wanted to avoid saying “clamp” because I saw a completely different constraint called that.

My .blend is attached, as advised.

genericLowPolyHuman.blend (646 KB)

Have you tried the Makehuman programme to make your character and Rigify to rig it? Someone has already done all the hard work for you…

I have just looked at your blend file - ALL your IK constraints are invalid, that’s what the red box means as shown in my picture below:


You have NO targets so the IK’s won’t work. You must add target bones and use the tail of these as you IK target. Take a look at the manual pages for IK constraints, or get yourself MakeHuman and activate the Rigify add-on, this will get you going in the right direction. Also you should have a “root” bone on the floor to which you IK targets are to be parented, this allows you to manipulate the entire character or various parts individually.

Next issue is that your mesh is all tris (three sided faces) - not a quad (four sided face) in sight - not good.

Finally you bone naming convention is not good. Bones should be of the order “arm_upper.L” “arm-upper.R” ,etc. (note the .L and .R bits…) this will greatly assist you in posing your character as it allow you to “Paste Opposite” to reverse the pose for walking for example. Can I suggest you read the Gus tutorial here:

http://wiki.blender.org/index.php/Doc:2.6/Tutorials/Your_First_Animation/2.Animation

This will get you going in the right direction. Also you have bad edge loops and no Sub-division Modifier to make your vertex count low and your render smooth.

If you look at your mesh in Weight Paint mode and select the bones in the vertex groups panel, you will see that you weights are all over the place.

Sorry to be critical, but you need to hear all this to get back on track.

Cheers, Clock.

Just noticed one other thing - here’s the test:

Rotate one of the bones, like the left shin bone, round and round and then press escape - the bone should return to its rest position - your doesn’t this means constraint errors or cyclic dependency errors, both need fixing I am afraid.

Not holding a thing against you, though I will mention that I’m actually intending on a low-poly game asset, nothing to be rendered.

I actually had suspicions that I was botching my IK, but I’d gathered that target fields were specifically for something to point at, which I don’t need any of. The page on the Floor constraint also mentioned targets. Is there a special contraint for targetless IK that I don’t know of?

Incidentally, I read some documentation suggesting that _L/_R and .L/.R were equivalent, but I was thinking of making the switch anyway, so there’s that.

Pole targets in the IK chain are things for bones to point at… (very brief explanation) Another option is a Track To constraint, where you can make an object point towards another along one specified axis.

Can you tell me what exactly you want to achieve in the animation, then I can advise as to whether you should use an IK of FK (forward Kinematics) rig. The advantage of Rigify is that you can switch it between the two, this is harder to do with you own rig, in my experience.

The purpose of IK in a character is to be able to move one bone - the target - then the leg or arm will respond appropriately, i.e. you move the foot and the shin and thigh move correctly. With FK you move the thigh yourself, then the shin, then angle the foot.

Cheers, Clock.

I just need basic IK, so I can drag limbs in place. I’ve already made characters with it without much of a problem, so I was convinced that’s what targetless IK was for.

If you are just doing a basic rotation of bones within the rig, like bringing the knee up or swinging the arm forward, you do not need to have the IK constraints in place. IK is about getting chains of bones to behave in an ordered manner.

Here is an explanation of targetless Ik I was given:

A little trick I learned was to add an IK constraint to a FK bone without a target to give you sort of an Auto-IK. Blender has an auto-IK option in the toolshelf as a check box, when enabled, the bones act like they are IK bones, the end of the chain is where bones are unconnected.

It works like this: shoulder bone, upper arm bone is an unconnected child, lower arm bone connected child, hand is connected child. Enable auto-IK, grab the hand bone and the arm acts as an IK chain without a pole target. Downside is you have to enable that, and then disable when moving to something you don’t want auto-IK on, like a spine bone. PITA to use.

Add an IK constraint without a target to an FK hand bone, set the chain len to 3 and you get the same effect. Easy and nothing to turn off and on…

Does this help you?

Cheers, Clock.

I do know of auto-IK, but I’ve got very deliberate chain lengths for each bone, and AFAIK auto-IK ignores that.

Just did a small test and auto-IK does seem to take rotational range into account, so I might be able to settle for that if it makes the Floor constraint work.

Lo, it doesn’t. It does function with the Limit Location constraint, though, so I’m partway through.

My last nitpick is making it so that all bones are kept above Z 0 at all times, instead of only when directly manipulated.