Page MenuHome

Inverse Kinematic constraints only work for first bone
Needs Triage, NormalPublic

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 750 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71

Blender Version
Broken: version: 2.91.0, branch: master, commit date: 2020-11-25 08:34, hash: rB0f45cab862b8
Worked: (newest version of Blender that worked as expected)

Short description of error
When using the tools meant to constrain the rotation of bones involved in the IK chain it seems to only apply to the first one. In the example file bone 2 has lock IK X,Y, and Z as well as the limit rotation contraints for X,Y, and Z for good measure. Bone 2 is the one with the IK chain of 2 applied and bone 1 is clearly effected but with the limits and locks applied it shouldn't be moving at all and yet it does.

Exact steps for others to reproduce the error
see that IK locks are applied to bone 1, move the Target bone around and observe that indeed the locks are not being applied.

Event Timeline

AFAIK this is intended behavior. See the manual on the Limit Rotation constraint.

This transform does not constrain the bone if it is manipulated by the IK solver. For constraining the rotation of a bone for IK purposes, see the “Inverse Kinematics” section of Bone properties.

all it says is "This transform does not constrain the bone if it is manipulated by the IK solver. For constraining the rotation of a bone for IK purposes, see the “Inverse Kinematics” section of Bone properties" which is true for the first bone in the IK chain but as I've demonstrated in this example, it doesn't get applied for any bone after the first one.

my complaint wasn't that limit rotation didn't limit the rotation for the IK solver (although personally this would make sense to me, but I'm sure there is some rational behind why IK constraints are separated) I only included the rotation constraints to show that its not an alternate solution to getting the end result I'm looking for which is having bone 1 be constrained while using IK solver.