Inspired 3D: Creating and Understanding Skeletons and Kinematics

Michael Ford and Alan Lehman take us through the step-by-step process of planning the setup of a 3D character. While these steps may sound time consuming the authors assure us it will pay off in the end! The third of several excerpts from the book, Inspired 3D Character Setup.
Posted In | Magazines: VFXWorld

[Figures 14, 15 & 16] A combination of Forward and Inverse Kinematic systems (left) was built for “Charlie.” Forward Kinematics (top right) is based on relationships in a simple parent/child hierarchy. Inverse Kinematics (bottom left)works like an arm being controlled by a marionette’s string as it defines the angle and position of the arm by moving a goal. In this case the goal is the end of the string.

 

Inverse Kinematics (IK)
Inverse kinematics is a system of joints that are goal-directed, meaning that the animator positions the end of the system, and the software solves for the position and orientation of all the joints in the affected hierarchy. IK provides the animator an easy way to automatically create poses in characters that must walk, stand, or interact with objects in their environment. You set the position of an IK handle in the 3D space, which automatically defines the angle of the joints that are controlled by that IK handle. The computer then interpolates the rotations of the arms for you. This method is similar to manipulating a marionette or string puppet, as shown in Figure 16.

The body of the puppet hangs from a string and another string controls the hand. As you move the string controlling the hand away from the body, the jointed links of the elbow open and close as the arm and the hand extend. When the angle is at its most open (180 degrees), the arm is straight. When you place the hand close to the shoulder, the angle is close to 0 degrees where the arm is most bent. The computer likewise calculates the orientation and position of the joints in your IK arm based on the “length” of the two arm bones and the distance between the start and end points of the system. This is known as an inverse kinematics solver. Inverse kinematics solvers involve some complex math, and you may be wondering, “How in the world am I going to understand how an IK solver works if I can’t even balance my checkbook?” Don’t worry — we’ll try to make the explanation as easy as possible to understand.

An IK solver is a node that uses an algorithm in the software to calculate joint angles based on other information you provide through the manipulation of the parts of the solver. Let’s dissect what the computer knows when you build an IK skeleton. In all of the examples, we’ll be talking about a two-bone skeleton/three-joint skeleton, but in reality, IK will work on more than two joints. IK works because the solver knows the length of the joints and the distance from the start to the end of the system. The distance from the start and end of the joints is illustrated in Figure 17.

Think of these three lengths as the sides of a triangle. By knowing the lengths of all three sides of a triangle, you can derive any of the three angles in that triangle. Unfortunately, the way in which the IK solution is ultimately derived is actually much more complicated than we can explain in detail here, but what the triangle example does is demonstrate how you can take known information and convert it to a valuable element of another solution.

To think visually about how IK is solved in a two-bone/three-joint system, think of a triangle. The solution is based on three things, the length of each side of the triangle. From these lengths, you can determine any angle. Let’s try it:

    1. In the front view, build a two-joint chain (choose Skeleton > Joint Tool).

    2. Next, choose Skeleton > IK Handle Tool.

    3. In the Perspective window, select the top joint and then select the tip of the bottom joint to create an IK handle.

    4. Select and move the IK handle.







Comments

  No comments. Be the first to comment below.


Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • Use <!--pagebreak--> to create page breaks.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.