Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3ds Max 6 Bible (2004).pdf
Скачиваний:
55
Добавлен:
17.08.2013
Размер:
50.02 Mб
Скачать

Chapter 36 Animating Characters 893

The Source File and Source Object buttons open a file dialog box where you can load the animation sequence. The file dialog box for these buttons can open files with the .ANM, .XML, or

.MAX extensions. The Source Object dialog box opens a Select Objects dialog box where you can select a specific object that includes the animation sequence.

For the animation range, you can select to replace the current animation or paste the animation sequence into the current animation. You can also select to filter the animation sequence by attributes including Transforms, Modifiers, and so on. Click the Merge Animation button to complete the merging.

If you use an animation sequence on a bone structure that is different than the source, then you can use the Object Mapping rollout, shown in Figure 36-6. This rollout lists the Source Object and the Current Objects side by side. All the bones that are animated are shown in red. You can save these mappings and load them to other objects. Mappings are saved with the .MAM extension.

Figure 36-6: The Object Mapping rollout defines how one object maps to another.

Using Character Animation Techniques

When it comes to character animation, several techniques can really help. Keeping these points in mind as you animate characters can make a difference:

Use Dynamics: Dynamic packages like reactor can provide incredibly realistic motion based on physical properties. Learning to use this powerful tool for even the most basic animation sequences is worth the effort.

Learn by Example: If you’re working on a cartoon character, then by all means, watch cartoons. Traditional cartoons understand and invented the language of cartoon motion including squash and stretch, exaggerated motion, or scaling eyes large to indicate surprise. If your character motion is more realistic, find the motion, videotape it, and watch it over and over to catch the subtle secondary motion.

894 Part VIII Character Animation

Use Background Animations: The Viewport Background can load animation clips, which can make positioning characters to match real motion easy. This is a poor man’s motion capture system.

Include Secondary Motion: The primary motion of a character is often the main focus, but you can enhance the animation by looking for secondary motion. For example, when a person walks, you see his legs take the steps and his arms moving opposite the legs’ motion, but secondary motion includes his hair swishing back and forth and shoelaces flopping about.

Use the Flex Modifier: The Flex modifier gives soft-bodies, such as tails, hair, ears, and clothing, the realistic secondary motion needed to make them believable.

Use the Morph Modifier: The Morph modifier can be used to morph a character between two poses or to morph its face between the different phonemes as the character talks.

Use IK: The next chapter covers this in detail, but here’s a quick tip: Having a character move by positioning its foot or hand is often much easier than pushing it into position.

Use the Spring Controller: Another good way to get secondary motion is to use the Spring Controller. This controller works well with limbs.

Add Randomness with the Noise Controller: Often, perfect animation sequences don’t look realistic, and using the Noise Controller can help to make a sequence look more realistic, whether the Noise Controller is applied to a walking sequence or to the subtle movement of the eyes.

Use Manipulators: Manipulators can be created and wired to give you control over the animation values of a single motion, such as opening and closing the character’s eyes.

Summary

Characters are becoming more and more important in the Max world and can be saved as separate files just like Max scene files. This chapter covered the following topics:

Creating and saving characters

Managing the various parts of a character

Controlling various skin poses

Merging animation sequences between different characters

Inverse kinematics is a powerful animation feature that is worth the time to use. In the next chapter, you get a chance to work with this feature.

 

 

 

Using Inverse

Kinematics

Kinematics is a branch of mechanics that deals with the motions of a system of objects, so inverse kinematics would be its evil

twin brother that deals with the non-motion of a system of objects. Well, not exactly.

In Max, a system of objects is a bunch of objects that are linked together. After a system is built and the parameters of the links are defined, the motions of all the pieces below the parent object can be determined as the parent moves using kinematic formulas.

Inverse kinematics (IK) is similar, except that it determines all the motions of objects in a system when the last object in the hierarchy chain is moved. The position of the last object, such as a finger or a foot, is typically the one you’re concerned with. Using IK, you can then use these solutions to animate the system of objects by moving the last object in the system.

Forward versus Inverse Kinematics

Before you can understand inverse kinematics (IK), you need to realize that another type of kinematics exists — forward kinematics. Kinematic solutions only work on a kinematic chain, which you can create by linking children objects to their parents.

Cross-

Chapter 8, “Grouping and Linking Objects,” covers linking objects

Reference

and creating kinematic chains.

 

Forward kinematics causes objects at the bottom of a linked structure to move along with their parents. For example, consider the linked structure of an arm, where the upper arm is connected to a forearm, which is connected to a hand, and finally to some fingers. Using forward kinematics, the lower arm, hand, and fingers all move when the upper arm is moved.

37C H A P T E R

In This Chapter

Understanding forward and inverse kinematics

Using interactive and applied IK methods

Setting thresholds

in the IK panel of the Preference Settings dialog box

Learning to work with the HI, HD, and IK Limb solvers

896 Part VIII Character Animation

Having the linked children move with their parent is what you would expect and want, but suppose the actual object that you wanted to place is the hand. Inverse kinematics (IK) enables child objects to control their parent objects. So, using inverse kinematics, you can drag the hand to the exact position you want, and all other parts in the system follow.

Forward kinematics in Max involves simply transforming linked hierarchies. Anytime you move, rotate, or scale a linked hierarchy, the children move with the parent, but the child object can also be transformed independent of its parent.

Creating an Inverse Kinematics System

Before you can animate an inverse kinematics system, you need to build and link the system, define joints by positioning pivot points, and define any joint constraints you want.

Building and linking a system

The first step in creating an inverse kinematics system is to create and link several objects together. You can create links using the Link button on the main toolbar.

With the linked system created, position the child object’s pivot point at the center of the joint between it and its parent. For example, the joint between an upper and lower arm would be at the elbow, so this is where the pivot point for the lower arm should be located.

Cross-

Chapter 8, “Grouping and Linking Objects,” covers creating linked systems, and Chapter 10,

Reference

“Transforming Objects — Translate, Rotate, and Scale,” covers moving pivot points.

 

After you create the linked system and correctly position your pivot points, open the Hierarchy panel and click the IK button. Several rollouts open that let you control the IK system, including the Object Parameters rollout shown in Figure 37-1.

Figure 37-1: The IK rollouts let you control the binding of an IK system.

Chapter 37 Using Inverse Kinematics 897

Selecting a terminator

Because child objects in an inverse kinematics system can cause their parents to move, moving a child could cause unwanted movements all the way up the system to the root object. For example, pulling on the little finger of a human model could actually move the head. To prevent this, you can select an object in the system to be a terminator.

A terminator is the last object in the IK system that is affected by the child’s movement. Making the upper arm a terminator would prevent the finger’s movement from affecting any objects above the arm.

To set a terminator, select an object and then enable the Terminator option in the Object Parameters rollout.

For Interactive IK mode, you can also enable the Auto Termination option included in the Auto Termination rollout. The Number (#) of Links Up value sets the terminator a specified number of links above the current selection.

Defining joint constraints

The next step is to define the joint constraints, which you specify in the Sliding Joints and Rotational Joints rollouts. By default, each joint has six degrees of freedom, meaning that the two objects that make up the joint can each move or rotate along the X, Y, or Z axes. The axis settings for all other sliding and rotational joints are identical. Defining joint constraints enables you to constrain these motions in order to prevent unnatural motions, such as an elbow bending backward. To constrain an axis, select the object that includes the pivot point for the joint and, in the appropriate rollout, locate the section for the axis that you want to restrict and deselect the Active option. If an axis’s Active option is deselected, the axis is constrained. You can also limit the motion of joints by selecting the Limited option.

When the Limited option is selected, the object can move only within the bounds set by the From and To values. The Ease option causes the motion of the object to slow as it approaches either limit. The Spring Back option lets you set a rest position for the object; the object returns to this position when pulled away. The Spring Tension sets the amount of force that the object uses to resist being moved from its rest position. The Damping value sets the friction in the joint, which is the value with which the object resists any motion.

Note

As you enter values in the From and To fields, the object moves to that value to show visually

 

the location specified. You can also hold down the mouse on the From and To values to cause

 

the object to move temporally to its limits. These settings are based on the current Reference

 

Coordinate system.

Copying, pasting, and mirroring joints

Defining joint constraints can be work — work that you wouldn’t want to have to duplicate if you didn’t have to. The Copy and Paste buttons in the Object Parameters rollout enable you to copy Sliding Joints or Rotational Joints constraints from one IK joint to another.

To use these buttons, select an IK system and click the Copy button; then select each of the joints to be constrained in a similar manner, and click the Paste button. There is also an option to mirror the joints about an axis. It is useful for duplicating an IK system for opposite arms or legs of a human or animal model.

898 Part VIII Character Animation

Binding objects

When using applied IK, you need to bind an object in the IK system to a follow object. The IK joint that is bound to the follow object then follows the follow object around the scene. The bind controls are located in the Hierarchy panel under the Object Parameters rollout. To bind an object to a follow object, click the Bind button in the Object Parameters rollout and select the follow object.

In addition to binding to a follow object, IK joints can also be bound to the world for each axis by position and orientation. This causes the object to be locked in its current position so that it won’t move or rotate along the axis that is selected. You can also assign a Weight value.

When the IK computations determine that two objects need to move in opposite directions, the solution favors the object with the largest Weight value.

The Unbind button eliminates the binding.

Understanding precedence

When Max computes an IK solution, the order in which the joints are solved determines the end result. The Precedence value (located in the Object Parameters rollout) lets you set the order in which joints are solved. To set the precedence for an object, select the object and enter a value in the Precedence value setting. Max computes the object with a higher precedence value first.

The default joint precedence for all objects is 0. This assumes that the objects farthest down the linkage move the most. The Object Parameters rollout also includes two default precedence settings. The Child to Parent button sets the precedence value for the root object to 0 and increments the precedence of each level under the root by 10. The Parent to Child button sets the opposite precedence, with the root object having a value of 0 and the precedence value of each successive object decreasing by 10.

Tutorial: Building an extensible arm linkage

As an example of a kinematics system, we design a simple arm linkage composed of six struts. To the end of this linkage, we attach a rubber spider on a string. (This contraption is perfect for surprising your coworkers in the office.)

To create an inverse kinematics system for an extensible arm, follow these steps:

1.Open the Extensible arm with spider.max file from the Chap 37 directory on the CD-ROM.

This file includes a spider model on the end of a string with several strut objects. The pivot points for the positioned objects have already been moved.

2.Click the Select and Link button on the main toolbar, and link the spider to the string object by selecting the spider and dragging from the spider to the cylinder. The spider then becomes the child to the string object. Next link the string to the last strut and so on back to the first strut.

Chapter 37 Using Inverse Kinematics 899

3.Next we need to define the joint constraints for the system. Open the Hierarchy panel, and click the IK button. In the Object Parameters rollout, select the first strut and enable the Terminator, Bind Position, and Bind Orientation options; doing so prevents the first strut from moving anywhere. In the Sliding and Rotational Joint rollouts, deactivate

all the axes except for the Rotational Z Axis. When this is done, the Active box for the Rotational Z Axis is the only one selected. Then click the Copy buttons for both joint types in the Object Parameters rollout, select each of the other struts in turn, and click both Paste buttons. This copies the joint constraints from the first strut to the other strut objects. For the string object, make all Rotational Joint axes active.

4.To test the system, select the Interactive IK button in the Inverse Kinematics rollout and select and move the spider.

All the struts rotate together as the spider moves.

Figure 37-2 shows the struts bending to follow the spider as it is moved downward. Notice for this system that the first strut doesn’t move or rotate and that all the struts can be rotated only along the Z axis, but that the spider can move freely within the range of the string. With the Interactive IK mode disabled, any object can be moved and/or rotated and only the links are enforced.

Figure 37-2: The objects in this scene are part of an inverse kinematics system.