Limit rotation is a no go on a constrained Bone

Hi I am trying to find an answer as to why limit rotation is having no effect on a constraint controlled bone ie IK , Damped, or track to options. It works fine without the constraints active ?

ps: I have tried the constraint above and below the tracking constraints


Limit_Rotation.blend (103 KB)

IK is not limited, but Track constraint is correctly limited. Maybe a bug?
r 35899


Limit_Rotation_Track.blend (103 KB)

Hi thanks for having a look, if it is a bug that would explain a lot I’ve got release version 36339 at the moment, just seems strange that you wouldn’t be able to use a limit rotation constraint on an Ik bone .

Sorry to bump the thread, my whole post was retarded so I’m editing to say thank you dddjef, I have had the same problems and I’ll have to use Track To more often.

This is not a bug . The IK “Legacy” solver constraint over rides/ignores all other constraints when calculating an IK chain, especially on rotation limits . This has been the case with the IK constraint likely since the IK constraint was introduced . You have to go to the “Bone” context and tick on the XYZ rotation limit and copy/paste the limits you want to apply (you even get visual feedback in the 3D view) .

The IK “Legacy” solver constraint will calculate other constraints (with the exception of rotation) in a target-less IK chain (aka Auto IK), but only after the IK calculations have been done, making it less then optimal for animation .

Even the new iTaSC IK solver requires that you do this for rotation limits even though the iTaSC solver was added as one of last year’s (?) GSoC projects to enable other constraints on a bone in an IK chain to influence how the IK chain behaves mostly for more accurate robotics simulations (I haven’t played with it too much so I don’t know exactly how constraints other then rotation work with it yet) . You can access the iTaSC IK flavor via the Bone -> Inverse Kinematics and hit the name field with “Legacy” (on by default) written in it if you want to play with adding constraints (excluding rotation) .

Rotation is a special case with regard to IK solvers, since that is what IK solvers do (calculate how a bone rotates relative to the the IK target depending on the chain length) .

The transition to the 2.5X series has not added a whole lot of changes to the constraints side of the animation system . Not all unexpected results mean that there is a bug in the code .


Limit_Rotation_IK_legacy.blend (103 KB)Limit_Rotation_iTaSC_only.blend (103 KB)

Vertex Pusher

Thanks for taking time out to explain and include examples as well :cool: , I wish I had a good in depth rigging book that explains all constraint’s with examples but alas I’m yet to come across one. Untill then its back to trying to reverse engineer the cool rigs and heaps of trial and error :spin:

PS anyone got an example of controlling the visibility of bone layers with out python would be great to be able to have FK or IK bone layer’s visibility controlled by the IK FK switch.