Inverse Kinematics For Beginners

ik_blender

In Blender, an armature is an object used to deform the geometry of a 3D model in controlled sections without directly modifying its geometry. Posing is the action of modifying the rotation or location of the parts of an armature.

An armature is formed from a hierarchy of connected bones. A bone is a straight segment with a spherical joint at each end. Each joint has a separate role:

  • The head is the origin of the bone's rotation.
  • The tail moves along the circumference of the bone's rotation.
  • The bone as a whole serves as the radius of its rotation.

A chain of bones is composed of alternating head and tail connections. This order results in a sequence of parent and child connections:

  • A parent bone is the origin of rotation for all child bones connected to its tail.
  • A child bone cannot rotate its parent bone.
  • The first parent bone in an armature is the root bone.

Forward and Inverse Kinematics

Blender can use two methods to calculate the spatial orientations of bones:

  • Forward Kinematics: The orientation of n parent bones determines the orientation of 1 child bone.
  • Inverse Kinematics: The orientation of 1 child bone determines the orientation of n parent bones.

Forward Kinematics is impractical for posing complex armatures since it requires you to adjust each individual bone separately. Fortunately, Blender provides a set of bone constraints. A constraint is a property applied to an object to control its movement in relation to other objects. The Inverse Kinematics (IK) constraint reverses the order of Forward Kinematics and enables you to move the tail of one bone while its parent bones are automatically oriented.

IK Constraint : Target and Pole

An IK constraint is made up of two objects which control the tail and the head of a bone:

  • The target moves the tail of a bone while its parent bones are automatically oriented.

  • The pole anchors a bone's head to control the roll of the armature. This can be used to pose the elbow and knee joints of a character.

Add an IK constraint to an armature

In this example, an IK constraint is added to the armature shown below:

1. Create the target object

  1. Enter Edit Mode.
  2. Select the tail of ik_bone. Extrude a new bone perpendicular to ik_bone.
  3. Under Properties > Bone, rename the new bone to target.
  4. Select target. Under Properties > Bone > Relations, uncheck Connected.
  5. Set the parent of target to head.

  • Both the target and the pole should be disconnected from the rest of the armature.
  • Connections are separate from parent-child relations. A parent bone can still control a disconnected child bone from any distance.

2. Create the pole object

  1. In Edit Mode, create a new bone pole from the head of ik_bone.
  2. Select pole. Under Properties > Bone > Relations, uncheck Connected.
  3. Clear the parent of pole.
  4. Move pole upwards perpendicular to ik_bone so that its head is not overlapping ik_bone's head.

  • The distance between pole and the head of ik_bone can be adjusted during animation.
  • pole can be a child of target if you want target to control its position. Otherwise, pole should not have a parent connected to the armature.

3. Apply an IK constraint to the armature

  1. In Pose Mode, select ik_bone.
  2. Under Properties > Bone Constraints, select Inverse Kinematics from the drop-down menu.
  3. Set Target to Armature and Bone to target.
  4. Set Pole Target to Armature and Bone to pole.
  5. Set Chain Length to 4.

  • Pole Angle can adjust the initial rotation of ik_bone (45ยบ intervals are recommended).
 

When you move target, it will control the tail of ik_bone while its parent bones are automatically positioned. When you move pole, it will rotate the head of ik_bone.

Comments