Jump to content

Blender 3D: Noob to Pro/Advanced Tutorials/Advanced Animation/Guided tour/Const/ik

From Wikibooks, open books for an open world

The IK solver

[edit | edit source]

The IK solver constraint is a wonderful tool for all animators. IK stands for "Inverse Kinematic" and is the opposite of FK (Forward Kinematic).

  • FK: You have a dependency to the root of the chain. In Blender, a FK chain is a chain of bones connected together. You have to animate the bones rotation one by one to get it animated. It takes longer, but gives you entire control over the rig.
  • IK: Both ends are roots. All bones in the chain are trying to rotate to keep both ends on targets. Now this Constraint got most of the attention during Animation refactoring, hopefully we have a lot of toys to play with now.

The IK solver has a special shortcut in Posemode to be added easily to a bone. If you select a bone and press 'CTRL-IKEY', You get a little menu asking for more info on the new constraint, the target: to a new empty object or without target. It's now possible to work without target. Though you have less freedom (no rot feature, difficult parent relationship).

You can also select the target and then the IK constraint holder and press CTRL-IKEY. With this way of selecting ensure that your target is selected, but the bone you want to apply the constraint to is active (the last one selected). The menu will then let you add a constraint to the current bone with a target. If the target would itself be part of the IK chain, you get an error message - so make sure the target bone is not connected to the bone you want to add the constraint to.

It's also possible to remove all IK constraints from selected objects or bones with 'ALT-IKEY'.


Q: 'CTRL-IKEY' doesn't seem to do anything

A: Either the 3D Window is out of focus (R-click in empty space to solve) or you're not in Pose Mode ('CTRL-TAB', selected bone will be magenta in color)

A: In the 2.48 version of Blender, the shortcut is 'SHIFT-I'

The Constraint Panel

[edit | edit source]

  • You can rename the constraint.
  • You can select which Object or bone will be the target. Don't forget Tab completion.
  • The Rot button let you tell Blender to use the rotation of the target to influence the rest of the chain:

  • The Tip button lets you tell Blender which part of the bone is the target, the Tip or the Root. It's interesting to use tip, because this way the Bone holding the IK constraint can be used to deform geometry.

  • Len lets you tell Blender the length of the chain the IK solver will try to rotate. If set to 0, the entire chain will enter in the constraint. If for example the len is 4, only the 4 last bones of the chain will try to touch the target.

  • Also If you set len to 0 and your chain's root is a child of another bone, The IK solver will reach and rotate all the bones until it gets to the end of the parent relationship. If all the bones are linked up to a master root, then all other sub-branches will be affected. If there is another IK target in other sub-branchs of the rig, Blender will try to mix them. This concept of multiple IK targets in a rig is called Tree IK and can be used to get completely automated animations. For example like a doll: if you pull one hand, all the body will follow. In the 3D-view you'll see a yellow line from the IK solver to the root of the chain it covers. This line appears when you select the bone containing the IK solver.

  • PosW and RotW let you tell Blender if this IK solver will influence the final result more of less in the case of a Tree IK setup. With these options it's possible to use an IK solver just for location and an other one just for rotation.
  • Tolerance and iterations are performance and precision options. IK solving is done in more than one pass, the more passes you calculate, the more accurate results you get. The tolerance is the distance from the IK solver to the target you can accept. If Blender manages to place the target near enough, it will stop doing iterations. The Iterations value is a hard limit you set to limit the time blender can reach on each IK solver per frame. Try to set it to a very low value to know why Blender needs more than one pass ;).
  • You can set the general influence this constraint will have over bones, and it's animatable.

Where To Use It

[edit | edit source]

In any chain of bones you don't want to animate by hand but you want both ends to be at precise location. The best example is a leg: The leg is connected to the body and to the foot. You don't need to animate the 2 bones in the legs, just place the body and the foot, the leg will follow automagically.

Degree Of Freedom

[edit | edit source]

In DOF it is now possible to set it for bones in an IK chain. This way you can set what will block where. This is very useful when doing a mechanical rig as you can limit the move or better, lock completely an axis.

  • There you can set a limit on each axis, or completely Lock it.
  • No limit gives it complete freedom (which is the same as [min:0 max:360] or [min:0 max:0]).
  • The stiffness lets you tell Blender if an axis is more difficult to rotate than the rest. If all bones have a stiffness of 1 on X and you try to curve that chain in a way that all bones need to turn on X to follow the target, the Solving will find really weird poses to find a way to touch the target without rotating on X.