Rigging - Limit and Lock constraints not working

Hi, and thanks in advance if anyone can help with this…

I have model that I’m rigging and I’m trying to use the Limit and Lock constrints built into the ‘Armature Bones’ panel. The bones affected are all part of IK chains, but for some reason using the Limit and Lock functions fails to do anything at all.

And I mean anything at all.

According to the tutorials I’ve seen this should work right off the bat, ie. I’ve followed all the steps (creating a chain, setting an IK constraint, setting a chain length) to unlock the Limits and Locks, but they don’t affect the model in the viewport at all. The visualisation does work, but no limiting and no locking is happening.

Is this purely some sort of visualisation tool or is it meant to lock and limit rotation?

If it does work is there something I’ve missed like a specific button or option that needs to be on?

Thanks again for any help with this.

It should (and does) work as described. Can you post your .blend file so we can have a look at it?

Here’s an image to illustrate the problem. Apparently the .blend is too large to upload here (1.5mb). I’m not sure how to crunch the file down, any pointers?

As you can see from the image the bone is part of an IK chain (which unlocks the Lock and Limit options) and the Limit Z button is on. The allowed area is set and the arc is visible but for whatever reason it just doesn’t stick.


Standard question applies, then: did you normalize the roll in your armature bones (Ctrl-N) before beginning to rig with constraints, etc.?

I’ll try that, looking through the tutorial I noted it wasn’t mentioned at all. Thanks.

Edit: Doesn’t appear to have helped, but I’ll try unrigging and then re-rigging the model to the armature.

Re-edit: … Which doesn’t appear to have helped either :frowning:

Can’t you just Append that armature by itself into a new file, then post it? That’ll be very very small.

Sure thing!


Denim_Armature.blend (170 KB)

Here’s the problem:
When you use an IK constraint in targetless mode, like you have on the hand, the rest of the bones in the chain are free to move as though there is no constraint. So, when you select that forearm bone and rotate it, it moves just like it should. Those lock and limits only function during an IK calculation. If you grab the hand and move the whole arm with it, you’ll see that the elbow joint obeys the limits.

If you assign a regular target to that IK constraint, you will not be able to rotate the arm joint by itself anymore, and therefore won’t experience this. The theory is that when you’re posing joints by hand, it should be up to you how far to bend it. Your own brain and skill makes that call. But when you let the computer do it via IK, it needs to know the limits.

If you really want to prevent it from bending that way under any circumstances, you should:

  • lock the transformation around two of the rotation axes in the Transform Properties panel
  • assign a true Limit Rotation constraint to that bone and configure it properly.

You’re a saint, dude, thank you so much :slight_smile:

I initially started out with proper constraints on the respective bones in the armature, but I made a silly assumption that the Limits and Locks in the Armature Bones panel were shortcuts for the same thing. I figured it was a better implementation for what’s essentially a common purpose. Since this rig is meant for an animation and not a still I want as much control as possible from a simple a rig as possible.

I’ll set up those constraints again, and thanks again :slight_smile: