IK-Chain Debugging


Posted on Nov. 5, 2020, 9:35 a.m. by crute • Last updated on Nov. 5, 2020, 11:21 p.m.

IK chains have a set of rules they need to follow:

1. IK-Target must NOT be part of the IK-Chain. This will lead to a "cyclic dependency", or a chicken-or-egg problem.

IK-Chain with Dependency Cycle Stuttering While Moving

This stutter is the result of the solver going through the iterations and having to correct the parent position after every move of the child.
This video explains the problem and how to find and fix them quite nicely: https://youtu.be/NDlO48ai9FU

2. IK-Chain Length must be defined, otherwise the solver will go all the way to the Root Bone.

IK Bone Constraint Chain Length

The Default value of 0 will make all bones up the chain part of the IK, until it reaches a disconnected one.

3. To find a stable solution to the placement, the IK-Solver needs a direction in which to bend. This is called a Pole Target. The Pole Target must NOT be part of the IK-Chain. Unparent it from the chain to avoid dependency cycles.

enter image description here

The Pole Target Bone is usually extracted by extrusion from an IK-Chain Bone, just make sure to unparent it from the IK-Chain, if you go that way. You probably want to still keep it parented to your armatures the Root Bone.

4. The Bone chain should NOT be perfectly straight. Minor amounts of bend will suffice.

Tweaking IK Bend Minimally to Get More Stable Bends

Simply introduce a minute amount of bend by moving one of the bone heads in Edit Mode and the IK-Solver will behave much better.

5. If the Chain is not bending in the right direction, even after adding a Pole Target, this direction can be adjusted either by the Roll of the bones in the chain, or by using the Pole Angle Parameter in the IK-Constraint.

Pole Angle Parameter in IK-Chain Constraint

The "Pole Angle" Input Field will only appear in the constraint once you have given it an actual Pole Bone. If your bones are aligned to world axes the pole angle values should be multiples of 90°. If you want to automate your rig a lot, it can be advisable to not use the pole angle adjustment but to set the chain's bone roll in such a way that the X-Axis points towards the pole. This will make the driver expressions a lot simpler.

6. Parenting the Pole Target to the IK-Handle is useful. It prevents the Pole Target from flying off and it will inherit the rotation from the handle which is often the correct orientation already.

For a more sophisticated setup, follow this LevelPixelLevel tutorial: https://youtu.be/suP14lYWpN8