Blending Forward and Inverse Kinematics

Sometimes neither FK nor IK will do the job for us. FK will give us high-quality animation, especially when coupled with motion capture. But the cycles will be canned, and thus behaviors like reaching out or placing feet on the ground properly will be impossible. On the other hand, IK can help us in these situations, but solving a full body animation using IK will often yield unnatural animation. A human body is full of micromovements and nuances that IK will fail to simulate, and there is a great deal of physics involved as well. IK cannot compete with the quality of motion-capture data, and motion capture cannot provide us with the adaptiveness of IK.

Clearly, the solution is to blend both mechanisms. After all, techniques are just that: techniques. Our goal is not IK or FK per se, but the creation of realistic character movement. Thus, we want high-quality characters that can interact with their environment realistically. This problem was also encountered by the movie industry some years ago, and specific methods were devised to take advantage of the best of both worlds. One interesting technique that I'd like to take a second to explain involves mixing FK and IK on a bone-by-bone basis, making bones closer to the root more FK-oriented and bones closer to the terminals more geared toward IK. After all, both methods output the same kind of data, usually in the form of quaternions.

Take a human arm, for example, and imagine that we want the character to shake hands with another character of variable height realistically. If you think about it, this usually involves raising your shoulder more or less and changing the orientation of the elbow. Now, imagine that we have a very good FK animated character with its arm motionless. All we have to do to take advantage of this cycle and still create the IK handshake is to make joints closer to the hand more influenced by IK and less by FK. The shoulder would have most of its control under FK with a little IK thrown in. The elbow would mix the two solutions in equal parts, whereas the wrist would almost totally be controlled by IK.

To compute this, we can use CCD on top of an FK animation, making joints more stiff as we reach higher in the hierarchy. The chest, for example, will be immovable; the shoulder will have a rotation factor that is half of what the elbow has; and so on. This way IK will be weighted with FK, and both animation systems can coexist on the same platform. Such an approach was used in The Lord of the Rings movies, because FK provided very good overall movements (such as walking and fighting). But IK was required in the terminals to ensure good interaction with the environment.

Core Techniques and Algorithms in Game Programming2003
Core Techniques and Algorithms in Game Programming2003
Year: 2004
Pages: 261 © 2008-2017.
If you may any questions please contact us: