3D Animation Workshop: Lesson 60: Movin' on Up
Lesson 60 - Movin' on Up - Part 1
In the past three lessons we got a character built, boned and walking using inverse kinematics. We added some upper body elements like a twisting spine as well.
But once we start to use the arms and hands, things get very complicated rather quickly. The reason is obvious if you take a moment to consider your anatomy. The legs have a limited range of motion compared to the arms, in part because of the way the joints and constructed and in part because the feet generally must remain on the ground. By contrast, the arms can move about in all directions with great flexibility. They rotate more freely and in different ways than do the legs. And there is simply no comparison between human hands and human feet. Even putting aside the magnificent operation of the human fingers, the wrist is much more flexible than the ankle, and the thumb is almost a separate limb with considerable rotational range.
Nor is the matter only anatomical. The arms and hands are used for expression in a way that lower body is not. Many arm and hand gestures amount to a kind of speech, as when we wave "hello" or beckon with a crooked finger. The movement of the arms and hands telegraphs emotion and expression.
Animating upper body movement is very difficult. It begins with posing. If you can get your character into the necessary poses, you can animate between them. This is not to underestimate the considerable difficulties in getting the precise timing necessary to create convincing motion. But simply getting the model properly posed into its extremes of motion takes both considerable practice and a good command of the principles underlying your rotational tools.
Rotations are, by far, the most difficult aspect of 3D animation. The mathematical principles are tough to learn, and are even harder to assimilate to the point where they become intuitive. Lightwave, the application we are using here, has a single approach to rotations. Studio MAX has two. Lightwave's approach, like that of every other program I know, stores rotational data in three separate channels, representing rotation around the x, y and z axes. Storing data in this manner requires that the three component rotations be applied in a regular order, but this requirement can produce a range of confusing constraints on the animator. MAX has an alternative method that avoids the order-of-rotations problems, and thus makes it very easy to pose limbs with freedom and animate between them. But the downside is serious. This "quaternion" approach in MAX cannot be reflected in animation graphs, and animation without graphs is a tough business. For many people--I dare say, most--the advantage of unrestricted rotations is overwhelmed by the disadvantage of working without graphs. Thus, most people using MAX find it necessary to use the controller (Euler XYZ) that handles rotations in three component axes.
|To Continue to Parts 2 and 3, Use Arrow Buttons||
Created: Feb. 15, 1999
Revised: Feb. 15, 1999