IK Solvers

An IK solver creates an inverse kinematic solution to rotate and position links in a chain. It applies an IK Controller to govern the transforms of the children in a linkage. You can apply an IK solver to any hierarchy of objects. You apply an IK solver to a hierarchy or part of a hierarchy using commands on the Animation menu. Select an object in the hierarchy, choose an IK solver, and then click another object in the hierarchy to define the end of the IK chain.

Bones system with HI IK solver applied

Each type of IK solver has its own behavior and workflow, as well as its own specialized controls and tools that display in the Hierarchy and Motion panels. IK solvers are plug-ins, so programmers can expand IK capabilities of 3ds Max by customizing or writing their own IK solvers.

3ds Max ships with four different IK solvers. The two most commonly used are History Independent (HI) and History Dependent (HD). To see both working side by side, play the following video:

In the preceding video, robot arm 1 uses HI IK, while robot arm 2 uses HD IK. The end effectors for both are animated identically. Notice the different IK solutions the two algorithms use to reach the same points in space.

How Does an IK Solver Work?

An IK solver generally operates in this way: an inverse kinematic chain is defined on part of the hierarchy, say from the hip to the heel, or the shoulder to the wrist of a character. At the end of the IK chain is a gizmo, called the goal. The goal can be repositioned or animated over time in a variety of ways, often using linkage, parameter wiring or constraints. No matter how the goal is moved, the IK solver attempts to move the pivot of the last joint in the chain (also called the end effector) to meet the goal. The IK solver rotates the parts of the chain to stretch out and reposition the end effector to coincide with the goal.

Using an IK solver to animate an arm

Frequently, the end effector is constrained to the ground plane. For example, you might "pin" the toes as the heels lift in a character walk cycle. Then the movement of the root of the chain poses the legs up from the toes.

Four plug-in IK solvers ship with 3ds Max:

Note: 3ds Max also provides two other methods of inverse kinematic manipulation of hierarchies, which don't depend on a solver: Interactive IK and Applied IK.

IK with Bones

While you can apply an IK solver to any hierarchy of objects, a system of Bones combined with an IK solver is a good way to animate a character.

A bones system is a jointed, hierarchical linkage of bone objects. Bones are used as an armature on to which objects are linked. If you use the skin modifier, you can "skin" an object to the bones, so the animation of the bones deforms the mesh that models a character. If you have a jointed character, you can use linkage or constraints so the bones animate the mesh.

Animating bones with skin causes the skin to stretch or shrink.

Animating bones with skin causes the skin to stretch or shrink.

Turning Other Objects into Bones

Any object can be turned into a bone object. Select the object, choose Animation Bone Tools. On the Object Properties rollout, turn on Bone On. You can then choose Show Links Only to replace the display of the objects with the bones. This can be useful if you have a geometrically intensive hierarchy to animate. The interactive viewport response will be much quicker when the geometry is hidden and displayed only at links.

You can display any object as a bone object. Select the object, then choose Animation Bone Tools. This opens the Bone Tools floater. On the Object Properties rollout, turn on Bone On. Then go to the Display panel, and on the Link Display rollout turn on Display Links and Link Replaces Object, which displays the bones instead of the object. This can be useful if you have a geometrically intensive hierarchy to animate. The interactive viewport response is faster when the geometry is hidden and displayed as links only.

Any object hierarchy can be displayed as bones.

Any object hierarchy can be displayed as bones.

Any object hierarchy can be displayed as bones.

Bones can scale, squash and stretch over time. See Using Objects as Bones.

Link Display

You can use Display Links and Link Replaces Object to display the links instead of the object. These settings are found on the Link Display rollout on the Display panel. This can be useful if you have a geometrically intensive hierarchy to animate. The interactive viewport response is faster when the geometry is hidden and displayed only at links.

Advantages of Animating Bones with IK

It is possible to animate a character's motion through forward kinematics, rotating each limb into position from the shoulder to the fingers, and the hips to the toes. But it's a lot quicker and more realistic to use inverse kinematics to simulate the foot interacting with the ground. And it is a lot easier to control when you need to make changes to the animation. Rather than having keyframes on every bone in the chain, you have to make changes to only one node, to change the animation of the entire chain.

On the other hand, it is common for animators to use IK for the legs and FK for the torso and the arms. FK offers a bit more control for posing the upper body. It is not necessary to use IK for every character animation task. Using the HI IK solver allows you to jump back and forth easily between FK and IK.

How to Apply an IK Solver

You can apply an IK solver when you create a Bones system, or from the Animation menu:

Where to Adjust the IK Solver

You adjust IK solver settings in the Motion and Hierarchy panels:

Procedures

To add an IK solver to a hierarchy or bones system:

  1. Create a bones system or any other linked hierarchy of objects.
  2. Select a bone or an object where you'd like the IK chain to start.
  3. Choose Animation menu IK Solver, and then choose the IK solver:
    • HI Solver for character animation
    • HD Solver for mechanical assemblages with sliding joints
    • IK Limb Solver for two-bone chains
    • Spline IK Solver for improved control of intricate, multiple-bone structures
  4. Click where you want the IK chain to end.

    If you are using the IK Limb Solver, you must apply the IK Solver to control only two bones.

    The IK solver appears in the viewport.

To create a bones hierarchy that uses an IK solver:

  1. Go to the Create panel, click (Systems), and click Bones.
  2. On the IK Chain Assignment rollout, choose an IK solver from the list.
  3. Turn on Assign To Children.
  4. Click and drag in a viewport to create the bones. Right-click to stop bone creation.

    The bones are created with the IK solver already applied.

    Note: If you use the Spline IK solver, a Spline IK Solver dialog opens where you can make special settings for the spline and helpers used by the solver.

To display a hierarchy of objects as bones:

  1. Select the hierarchy of objects in the viewport.
  2. From the Animation menu, choose Bone Tools.

    This Opens the Bone Tools dialog.

  3. Expand the Object Properties rollout.
  4. In the Bone Properties group, turn on Bone On.
  5. On the Display panel, scroll down to Link Display and expand it.
  6. On the Link Display rollout, turn on Display Links, and Link Replaces Object.

    The objects disappear and the links are displayed as bones.