THIS PUBLICATION AND THE INFORMATION CONTAINED HEREIN IS MADE AVAILABLE BY AUTODESK, INC. "AS IS." AUTODESK, INC., DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE REGARDING THESE MATERIALS.
Published by:
Autodesk, Inc.
111 Mclnnis Parkway
San Rafael, CA 94903, USA
Page 3
Animation
13
3ds Max gives you a variety of different ways to create animation, and a wealth of tools for
managing and editing animation. See the following links for documentation of some of the
animation methods in 3ds Max:
■ Animation Concepts and Methods on page 3002 provides information about basic animation
with 3ds Max.
■ Animation in 3ds Max is accomplished by means of controllers; Working with Controllers
on page 3025 gives you an overview of how they work. For specifics about controllers, see
Animation Controllers on page 3058 .
■ A special type of animation controller is the constraint; for details, see Animation
Constraints on page 3212 .
■ A powerful method for creating sophisticated, procedural animation is covered in Wire
Parameters on page 3247 .
■ For animating characters both humanoid and other, as well as complex mechanical
assemblies, it's important to know about Hierarchies and Kinematics on page 3255 .
■ Track View on page 3426 gives you access to powerful tools for analyzing and editing
animation.
■ Animation Utilities on page 3718 can help ease tedious animation tasks.
■ When animating a number of different objects the same way, or transferring animation
from one object to another, it's useful to know the information covered in Saving and
Loading Animation on page 6870 .
■ The Motion Mixer on page 3620 is a powerful tool for combining individual movements
into complex animations.
■ Another way of combining animation segments is the Animation Layers on page 3089
system.
3001
Page 4
Animation Concepts and Methods
With 3ds Max, you can create 3D computer animation for a variety of
applications. You can animate characters or vehicles for computer games, or
you can animate special effects for film or broadcast . You can create animation
for serious purposes such as medical illustration or forensic presentation in
the courtroom. Whatever reason you have to animate, you'll find 3ds Max a
capable environment for achieving your goals.
The basic way to animate is quite simple. You animate the transform
parameters of any object to change its position, rotation, and scale over time.
Turning on the Auto Key on page 7344 button, then moving the time slider
places you in a state in which any changes you make will create animation
for the selected objects in the viewport.
Animation is used throughout 3ds Max. You can animate the position, rotation,
and scale of an object , and almost any parameter setting that affects an object's
shape and surface. You can link objects for hierarchical animation, using both
forward and inverse kinematics, and you can edit your animation in Track
View on page 3426 .
This section discusses the basics of creating animation. It looks briefly at a
comparison between computer animation and classic hand-drawn animation,
and then describes the creation of keyframed animation. The following topics
are covered here:
Animation Concepts on page 3003
Using Auto Key Mode on page 3007
Using Set Key Mode on page 3010
Viewing and Copying Transform Keys on page 3016
Controlling Time on page 3019
Setting Time Segments on page 3021
Moving Through Time on page 3023
Choosing a Frame Rate and Playback Speed on page 3024
3002 | Chapter 13 Animation
Page 5
Animation Concepts
Animation is based on a principle of human vision. If you view a series of
related still images in quick succession, you perceive them as continuous
motion. Each individual image is referred to as a frame.
A frame is a single image in an animated film.
Traditional Animation Method
Historically, the main difficulty in creating animation has been the effort
required of the animator to produce a large number of frames. One minute
of animation might require between 720 and 1800 separate images, depending
on the quality of the animation. Creating images by hand is a big job. That’s
where the technique of keyframing comes in.
Most of the frames in an animation are routine, incremental changes from
the previous frame directed toward some goal. Traditional animation studios
realized they could increase the productivity of their master artists by having
them draw only the important frames, called keyframes. Assistants could then
figure out what belonged on the frames in between the keyframes. The
in-between frames were called tweens.
Animation Concepts | 3003
Page 6
Once all of the keyframes and tweens were drawn, the images had to be inked
or rendered to produce the final images. Even today, production of a traditional
animation usually requires hundreds of artists to generate the thousands of
images needed.
The frames marked 1,2, and 3 are key frames. The other frames are tweens.
The 3ds Max Method
This program is your animation assistant. As the master animator, you create
the keyframes that record the beginning and end of each animated sequence.
The values at these keyframes are called keys. The software calculates the
interpolated values between each key to produce the completed animation.
3ds Max can animate just about any parameter in your scene. You can animate
modifier parameters, such as a Bend angle or a Taper amount, material
parameters, such as the color or transparency of an object, and much more.
Once you have specified your animation parameters, the renderer takes over
the job of shading and rendering each frame. The result is a high-quality
animation.
3004 | Chapter 13 Animation
Page 7
The object's position at 1 and 2 are the keyframed models at different times. The
computer generates the in-between frames.
Comparing Frames and Time
Traditional animation methods, and early computer animation programs, are
rigidly locked to the concept of producing animation frame by frame. This is
okay if you always work in a single format or do not need to specify an
animated effect at a precise time.
Unfortunately, animation comes in many formats. Two of the more common
formats are film at 24 frames per second (FPS) and NTSC video on page 7863
at 30 FPS. Also, the need for accurate time-based animation versus frame-based
animation is critical as animation becomes more common for scientific and
legal presentation.
Animation Concepts | 3005
Page 8
Different animation formats have differing frame rates.
3ds Max is a time-based animation program. It measures time, and stores your
animation values, with an internal precision of 1/4800 of a second. You can
configure the program to display time in a format best suited for your work,
including traditional frames format. See Time Configuration on page 7359 .
Many of the examples in the following sections describe time using the frames
method for the sake of tradition and familiarity. Keep in mind that you are
really animating using a very precise time-based method, and frames aren’t
created until you instruct the software to render your animation.
Identifying Animation Tools
You can locate the basic animation tools in the following areas of the interface:
3006 | Chapter 13 Animation
Page 9
Track ViewProvides detailed animation editing capabilities in several floating
or dockable windows. See Track View on page 3426 .
Track Bar Provides quick access to keyframes and interpolation controls.
Can be expanded for function curve editing. See Track Bar on page 7315 .
Motion Panel Use this panel to adjust transform controllers that affect all
position, rotation, and scale animation. See Working with Controllers on
page 3025 .
Hierarchy Panel Use this panel to adjust all parameters governing the linkage
of two or more objects. These include inverse kinematics parameters and pivot
point adjustments. See Hierarchy Panel on page 7453 .
Time Controls Use these controls to move through time in the viewport
displays. You can move to any point in time, and play animations in the
viewports. The time controls, documented in Animation and Time Controls
on page 7342 , include:
■ Time slider on page 7312
■ Auto Key button on page 7344
■ Set Key buttons on page 7347
■ Animation playback buttons on page 7355
■ Current frame field on page 7358
■ Key Mode toggle on page 7358
■ Time Configuration button on page 7359
To get started with animation, see Using Auto Key Mode on page 3007 .
Using Auto Key Mode
Start creating an animation by turning on the Auto Key button, setting a
current time, and then changing something in your scene. You can change
the position, rotation, or scale of an object, or change almost any setting or
parameter.
When you make a change, a key storing the new value for the changed
parameter is created at the current time. If that key was the first animation
key created for the parameter, a second animation key is also created at time
0 to hold the parameter’s original value.
Using Auto Key Mode | 3007
Page 10
Keys are not created at time 0 until you create at least one key at another time.
After that, you can move, delete, and re-create keys at time 0.
Turning Auto Key on has the following effect:
■ The Auto Key button, the time slider, and the border of the active viewport
turn red to indicate you are in animation mode.
■ Keys are created whenever you transform an object or change an animatable
parameter.
■ Keys are created whenever you transform an object.
■ The time slider sets the time where keys are created.
To begin animating an object:
1 Click Auto Key to turn it on.
2 Drag the time slider to a time other than 0.
3 Transform an object.
4 Do one of the following:
■ Transform an object.
■ Change an animatable parameter.
For example, if you have a cylinder that has not been animated yet, it has no
keys. If you turn on Auto Key, and at frame 20 you rotate the cylinder 90
degrees about its Y axis, rotation keys are created at frames 0 and 20. The key
at frame 0 stores the original orientation of the cylinder, while the key at
frame 20 stores the animated orientation of 90 degrees. When you play the
animation, the cylinder rotates 90 degrees about its Y axis over 20 frames.
Modeling Without Animating
Just as you can animate at any time by turning Auto Key on, you can also
model at any time in your animation without creating animation keys.
3008 | Chapter 13 Animation
Page 11
The results of changing an object or any other parameters with Auto Key off
varies according to whether or not the object or parameters have been
animated yet.
■ If you create a new object, or change an object parameter that has not
been animated yet, you can work at any time with Auto Key off. The
changes you make are constant through the entire animation.
For example, you might animate an object bouncing around your scene
and then decide to create pads for the object to land on. To do that, you
drag the time slider to a time when the bouncing object hits the ground,
and make sure Auto Key is off before you proceed. You can then create a
pad under the bouncing object and repeat the process at the next time
where it hits the ground. Because Auto Key was off, it does not matter at
what time the pad objects were created. They remain inanimate through
the entire animation.
■ If you change an object or parameter that is already animated, while Auto
Key is off, the amount of change is applied equally across all the animation
keys.
For example, you might animate a sphere’s radius to be 15 at frame 0, 30
at frame 10, and 50 at frame 20. If you drag the time slider to frame 10,
turn Auto Key off, and increase the sphere’s radius from 30 to 40, the
change in the radius is applied to the other two keys as well. Because you
increased the radius by 10 units with Auto Key off, all radius keys are
increased by 10 units. The sphere’s radius is now 25 at frame 0, 40 at frame
10, and 60 at frame 20.
If Auto Key had been on when you changed the radius, it would have been
an animated change applied only to the key at frame 10.
Identifying What Can Be Animated
Because most parameters in 3ds Max can be animated, the easiest way to find
out if something can be animated is just to try it. Usually, if you want to
animate a parameter, it can be animated.
Sometimes you need to know in advance if you can animate a parameter. If
so, you can use Track View. The Track View Hierarchy list displays every
parameter that can be animated. You might also need to add a controller to
a track before it can be animated. See Track View on page 3426 and Animation
Controllers on page 3058 .
Using Auto Key Mode | 3009
Page 12
Using Set Key Mode
The Set Key animation system is designed for the professional character
animator who wants be able to try out poses and then commit those poses to
keyframes intentionally. It can also be used by any animator to set keys on
specific tracks of objects. This way of working allows more control than the
Auto Key method, because it gives you the chance to try out ideas and discard
them quickly without having to undo work. It lets you pose your character,
and selectively key certain tracks on certain objects through the use of Key
Filters and Keyable tracks in Track View.
NOTE Although the following information uses the example of animating a
character, it also applies to animating a complex mechanical assembly.
Straight-Ahead and Pose-to-Pose
Traditional animation is created one of two ways, either straight-ahead
animation or pose-to-pose animation. Straight-ahead animation is drawn
starting from the beginning and then additional frames are drawn sequentially
thereafter, moving straight ahead in time. Pose-to-pose animation is created
by drawing the important frames first, (extremes and breakdowns), and then
the intervening frames are filled in later.
Once a character has been correctly drawn for a specific frame, pose-to-pose
animation requires that all the keyable tracks needs to be keyframed. This
creates a pose of the character that will not be affected if animation for the
character is edited at other points in time. If all the animatable tracks are keyed
in the extremes, the in-betweening work will not destroy any of those poses.
Set Key and Pose-to-Pose Animation
The number of objects and tracks that require keying for a character, even a
simple character, is not something that can be easily handled manually. Set
Key makes this process easier by listing all the tracks that are parts of the
character that have to be keyed when you want to fix a pose and create a
snapshot in time. Keyable tracks let you determine which tracks can be keyed,
then Key filters let you work on them selectively, placing keys on only the
tracks you want.
Differences Between Set Key and Auto Key Modes
Set Key mode differs from Auto Key in a number of ways.
3010 | Chapter 13 Animation
Page 13
In Auto Key mode, the workflow is to turn on Auto Key, move to
a point in time, then transform objects or change their parameters. All changes
register as keyframes. When you turn off Auto Key mode, you no longer are
creating keys. Changes made to objects when Auto Key mode is off are applied
globally to the animation. This is referred to as Layout mode.
In Set Key mode, the workflow is similar, but the behavior is
fundamentally different. Turn on Set Key mode, then move to a point in time.
Before you transform or change object parameters, you determine the tracks
you want to set keys on using Keyable icons in Track View and Filters. Once
you know what you plan to key, you try out poses in the viewport (transform
the objects, change parameters, and so forth).
When you like what you see, click the large Set Keys button or press K
on the keyboard to set a key. If you don't do this, no keys are set.
If you move to another point in time, your changes are lost and have no effect
on your animation. For example, if you find that you have a posed character,
but at the wrong frame in time, you can hold down Shift and the right-mouse
button and drag the time slider to the correct frame without losing your pose.
Using Set Key with Inverse Kinematics
Choosing IK Parameters in Key Filters allows you to use Set Key to keyframe
inverse kinematics. This lets you set keys for IK goals and end effectors using
Set Key as well as other IK parameters such as Swivel Angle or Twist.
As always, when using Set Key, you can selectively keyframe tracks by
combining Keyable icons in Track View with Key Filters.
Set Key doesn't currently support IK/FK Enabling, so don't try to keyframe the
Enable button using the Set Key button or the keyboard shortcut. Use the
Auto Key method when you want to work with IK/FK blending.
Using Set Key with Materials
If you select Materials in Key Filters, you can use Set Key to create keys for
materials. Be forewarned that you need to use Keyable Icons to limit the tracks
which get keyed. If you simply turn on Materials and set a key, you will place
keys on every Material track, something you probably don't want to have
happen.
Using Set Key Mode | 3011
Page 14
Using Set Key with Modifiers and Object Parameters
When you want to set a key on an object's parameters, and you have the
Object Parameters Key Filter selected, every parameter will receive a key, unless
you have turned off the parameter track in the Controller window of Track
View using Keyable icons. It might be easier to simply Shift+right-click the
parameter spinner to set the key.
Also make sure both Modifiers and Object Parameters are turned on in the
Filters dialog on page 3508 when you are keyframing a modifier gizmo.
Additional Set Key Tools
Additional Set Key Tools are found in the Customize User Interface dialog on
page 7489 . On the Keyboard panel, choose Set Key Tools from the Category
field. Here, you can set keyboard shortcuts to clear the Set Key buffer, as well
as create keys on just a single axis for a transform.
Using Set Key with Sub-Object Animation
When using Set Key with sub-object animation, you must first assign a
controller before creating a key. Sub-objects do not have a default controller
assigned upon creation. The controller is assigned by animating at the
sub-object level.
Other Methods to Set Keys
You can also set position, rotation, and scale keys by right-clicking the Frame
Indicator of the time slider. To set keys on parameters that have spinners,
hold down the Shift key and right-click to set a key using the existing parameter
value.
Procedures
To use Set Key animation:
1 Turn on the Set Key button.
When the button is red you are now in Set Key mode.
This is a mode where you can try out ideas before you commit to them.
2 Open Track View (either Curve Editor or Dope Sheet).
3012 | Chapter 13 Animation
Page 15
3 Click the Show Keyable button on the Track View toolbar.
4 Turn off all the other tracks you don't want to keyframe.
The red key means the track will be keyed. If you click the red key,
it turns to a gray key, which means that track will not be keyed.
TIP You can toggle multiple tracks as keyable by using the Controller menu
> Keyable command.
When you are finished, minimize or close Track View.
5 Click the Key Filters button, and turn on the Filters to
choose the tracks you want keyframed.
Position, Rotation, and Scale are on by default.
You can use the Key Filters button to work on individual tracks selectively.
For example, if you are in Track View and the Rotation and Position tracks
of a character's arm are keyable, you can use the key filters to turn off the
Position filter and only work on the Rotation tracks.
6 Move the time slider to another point in time, transform your objects or
adjust parameters in the command panels to create animation.
This does not yet create keyframes.
7 Click the Set Keys button or press K on the keyboard to set a key.
When the button turns red, it sets a key which appears on the time
ruler. The keys are color coded to reflect which tracks are being keyed.
If you don't click Set Keys and you move to another point in time, the
pose is lost.
Using Set Key Mode | 3013
Page 16
TIP To move the pose to another point in time, use the right mouse button
to press and drag the time slider. This lets you move to another frame number
without losing the pose.
To animate a vertex using Set Key:
1 Create an editable spline.
2 Select a vertex.
3 Turn on Set Key mode.
4 Move the selected vertex.
5 Click the Set Keys button.
Now a controller has been assigned to the vertex. From this point forward,
you can animate.
To set a key on every keyable track of an object:
1 Select the object for which you need to set keys.
2 On the Key Filters dialog, click All.
3 Click the Set Keys button or press K on the keyboard.
Spinner Right-Click Menu
To open the spinner right-click menu, right-click the editable field of an
animatable parameter. This menu provides options for cutting, copying, and
pasting values, wires, and animation tracks between various object parameters.
It also allows you to show the parameter in Track View on page 3426 or in the
Parameter Wiring dialog on page 3249 .
Interface
With the exceptions of Undo and Select All, each of the following commands
takes effect on the parameter you right-click. It's not necessary to first click
in the value field.
3014 | Chapter 13 Animation
Page 17
Undo Reverses the effect of the last action.
Cut Removes highlighted text to be pasted elsewhere.
Copy Copies highlighted text to be pasted elsewhere.
Paste Inserts cut or copied text into the editable field.
Delete Removes highlighted text.
Select All Highlights all text within the active editable field.
NOTE In order for Select All to work, the text cursor must be active in the field
that you right-click to open the menu. For best results, first click in the field, and
then right-click the field and choose Select All.
Copy Animation Copies the animation controller, including all animation
keys, to a buffer, which you can then assign elsewhere by pasting.
Paste Animation - Copy Assigns a copy of animation controller in the buffer
to the right-clicked field.
Paste Animation - Instance Assigns an instance on page 7818 of the copied
animation controller to the right-clicked field.
Paste Animation - Wire Opens a Parameter Wiring dialog on page 3249 with
the copied parameter and the paste destination parameter selected. This is
equivalent to creating a wire parameter on page 3247 in the viewport between
two parameters.
Spinner Right-Click Menu | 3015
Page 18
Edit Wire Opens the Parameter Wiring dialog on page 3249 expanded and
positioned to show the wire controller assigned to the selected parameter.
NOTE Edit Wire is available only if a two-way connection on page ? is currently
applied on the right-clicked parameter.
Show in Track ViewOpens a Track View - Curve Editor window, titled
“Selected,” expanded and positioned to show the selected parameter. This is
very useful for fast access to a particular curve or track.
Show in Parameter Wire dialog Opens a Parameter Wiring dialog expanded
and positioned to show the selected parameter.
Viewing and Copying Transform Keys
The viewports display white brackets around objects that have transform keys
at the current time. These key brackets only appear in viewports using the
wireframe shading method.
Use the Track View to view all key types. You can also see all keys for the
current selection in the track bar on page 7315 .
For example, suppose you animate a sphere by moving it at frame 20, and
scale and rotate it at frame 50. When you drag the time slider, white brackets
appear around the sphere at frames 50, 20, and 0, and keys appear at the same
frames in the track bar.
If you then apply a modifier such as Bend, and animate its Angle setting at
frame 40, you won't see a white bracket around the sphere at frame 40, but
track bar displays a key for the Bend animation.
3016 | Chapter 13 Animation
Page 19
Controlling Key Bracket Display
Animation panel of the Preference Settings dialog
You can control the display of key brackets using options in the Preference
Settings dialog > Animation panel on page 7564 .
Creating Transform Keys with the Time Slider
You can use the time slider on page 7312 to create transform keys by copying
transform values from one time to another. To specify the type of key to create
and the source and destination time for the key values, right-click the time
slider to display the Create Key dialog.
Viewing and Copying Transform Keys | 3017
Page 20
You set parameters in the Create Key dialog:
Source Time Specifies the time from which transform values will be copied.
Destination Time Specifies the time where the key will be created.
Position, Rotation, Scale Determine which transform key values will be
copied to the destination time.
When you click OK, new keys for the specified transforms are created at the
destination time, using values from the source time. Keys do not have to exist
at the source frame, because the interpolated values at the frame are used.
You might find it easier to create and manipulate keys with the track bar on
page 7315 .
When Auto Key mode is on, you can right-click and drag the time slider at
the same time. When you do this, the Source time uses the frame number
that you were on when you pressed the mouse button, and the Destination
time accepts the frame number that you move the time slider to.
When Set Key mode is on, you can right-click and drag the time slider to move
to another frame in time, without losing your character pose. If you find you
have posed your character on the wrong frame, simply right-click and drag
the time slider, and the pose will be copied to the new frame. Click Set keys
to set keys for the pose on the new frame.
Creating Position Lock Keys and Rotation Lock Keys
Creating a lock key creates a key with Linear interpolation. If you create the
lock key while an existing key is selected, it changes that key's interpolation
from Smooth to Linear. (Different types of interpolation are described in
Bezier Controllers on page 3063 .)
You can create a lock key for position or for rotation.
3018 | Chapter 13 Animation
Page 21
Lock keys are useful when you want an object to be stationary, but smooth
interpolation is causing it to "wobble" on its stationary spot.
To create a lock key:
1 From the Customize menu, choose Customize User Interface.
2 On the Customize User Interface dialog, click the Quads tab, and then,
from the drop-down list at the upper right of the dialog, choose
Animation.
3 Click the upper left quadrant of the four gray squares that define the
quad menus.
The quad turns yellow.
4 In the Action list to the left, find Create Position Lock Key. Drag it to the
window on the right below any menu item. Choose Save and click OK
to apply this and close the dialog.
5 (Optional.) Select a key.
6 Alt+right-click the object you're animating.
NOTE The Auto Key button need not be on.
7 From the quad menu that appears, choose Create Position Lock Key .
You can also create keyboard shortcuts for these two commands. Create
Position Lock Key and Create Rotation Lock Key are main user interface
shortcuts. See Keyboard Shortcuts on page 7645 .
Controlling Time
You create animation by changing your scene over time. You can exercise
great control over time, as follows:
■ How time is measured and displayed.
■ The length of the active time segment (the part of the animation in which
you're currently working).
■ How much time is covered by each rendered frame of your animation.
Other issues in the topics which follow describe how to move through time
and how to view animation in the viewports.
Controlling Time | 3019
Page 22
Choosing the Time Display Format
When you start 3ds Max, the default time display is in frames, but you can
use alternative time-display formats. For example, you might want to see time
in seconds and minutes.
You can specify different time-display formats using the Time Configuration
dialog on page 7359 > Time Display group settings. When you change the time
display format, you not only change the way that time is shown in all parts
of the software, but you also change the method with which you access time.
You can use these time display formats:
3020 | Chapter 13 Animation
Page 23
Frames Displays time in whole frames.
This is the default display mode. The amount of time covered by a single frame
depends on your choice for the current frame rate. For example, in NTSC video
each frame represents 1/30th of a second.
SMPTE Displays time using the Society of Motion Picture and Television
Engineers format.
This is the standard time-display format for most professional animation work.
From left to right, the SMPTE format displays minutes, seconds, and frames,
delineated by colons. For example, 2:16:14 represents 2 minutes, 16 seconds,
and 14 frames.
FRAME:TICKS Displays time using frames and the program's internal time
increment, called "ticks."
There are 4,800 ticks per second, so you can actually access time intervals as
small as 1/4800 of a second.
MM:SS:TICKS Displays time in minutes (MM), seconds (SS), and ticks,
delineated by colons. For example, 2:16:2240 represents 2 minutes, 16 seconds,
and 2,240 ticks.
Setting Time Segments
The active time segment specifies a block of working time. You might think
of it as a window in time that you use to focus on a specific part of your
animation.
Specifying an Active Time Segment
You specify the active time segment by setting the Start Time and End Time
for the segment on the Time Configuration dialog on page 7359 .
You can change the active time segment whenever you want without affecting
the keys you've already created. For example, if you have keys scattered over
a range of 1000 frames, you can narrow your active time segment to work
only on frames 150-300.
Changing the active time segment has the following effect:
■ Restricts the range of time you can access using the time slider on page
7312 .
Setting Time Segments | 3021
Page 24
■ Restricts the range of time displayed when using the animation playback
buttons.
The default setting for the active time segment runs from frames 0 to 100, but
you can set it to any range.
You can also increase the active time segment using the track bar on page
7315 .
Rescaling the Active Time Segment
You use the Re-scale Time button on the Time Configuration dialog on page
7359 to change your entire animation based on the active time segment.
Use Re-scale Time as follows:
■ Scale all animation in the active time segment to fit within a new time
range.
■ Move the entire animation to a new time.
Click Re-scale Time and then enter new Start Time and End Time values on
the Re-scale Time dialog. When you click OK all the animation in the active
time segment is moved and scaled to fit the new Start Time and End Time
settings. Any animation outside the active time segment is moved to match
the new active time segment boundaries.
For example, say you have an animation from frame 0 to frame 300 and an
active time segment starting at frame 100 and ending at frame 200. Use Re-scale
Time to set the new Start Time to frame 200 and the new End Time to frame
250. Clicking OK gives you the following result:
■ Animation in the active time segment moves forward 100 frames and
shrinks to a length of 50 frames. The new active time segment is from
frames 200 to 250.
■ Animation in the frames preceding the original active time segment moves
forward 100 frames to connect to the start of the new active time segment.
■ Animation in the 100 frames after the original active time segment moves
forward 50 frames to connect to the end of the new active time segment.
You can also rescale the active time segment using the track bar on page 7315
.
3022 | Chapter 13 Animation
Page 25
Moving Through Time
You can move to any time in your active time segment by using either the
time slider on page 7312 , or the Current Frame field on page 7358 in the time
controls area. You can also move through time using the playback control
buttons.
Using the Time Slider
The time slider shows you the current time, and lets you move to any time
in your active time segment.
To change the current time using the time slider, do one of the following:
1 Drag the time slider.
2 Click in the empty track to either side of the time slider.
3 Click the increment arrows at either end of the time slider.
When you click in the slider track, the time slider jumps to the time where
you clicked. This is a faster method of moving through time than dragging
the time slider.
The time slider displays the current time, followed by a slash (/), followed by
the total time in the active time segment. For example 25/100 means frame
25 of 100 frames. The current time also appears in the current time field. If
your scene has been animated, it’s played back in all viewports as you drag
the time slider.
You can use the < and > keys on the keyboard to advance the time slider a
frame at a time. When Key mode is on, this will advance to the next keyframe.
Moving to an Exact Time
The Current Time field always displays the current time. You can also enter
a time value and press Enter to move to that time.
Using the Time Control Buttons
You use the Time Control buttons to move forward and backward in time and
to play your animation in one or more viewports. They work like VCR controls
that you use to move through frames and to start and stop animation playback.
The Time Control buttons include four buttons for moving through time and
a center flyout for controlling animation playback:
Moving Through Time | 3023
Page 26
Go To Start on page 7354
Previous Frame/Key on page 7355
Play/Stop on page 7355
Next Frame/Key on page 7357
Go To End on page 7357
They work like VCR controls that you use to move through frames and to
start and stop animation playback.
Choosing a Frame Rate and Playback Speed
The frame rate of an animation is expressed in frames per second (FPS). This
is the number of frames the software displays and renders for every second of
real time.
Because the program stores your animation keys using real time using an
internal precision of 1/4800 of a second, you can change the frame rate for
your animation at any time without affecting your animation timing.
For example, if you create three seconds of animation using the NTSC video
frame rate of 30 FPS, you will have a 90-frame animation. If you later discover
you need to output to PAL video, at 25 frames per second, you can switch to
that frame rate, and your animation is now set to 75 frames of output. No
change in the timing of your animation has occurred. Only the number of
frames that 3ds Max will display and render has changed.
Setting the Frame Rate
You use the settings in the Time Configuration dialog on page 7359 > Frame
Rate group to switch back and forth between frame rates at any time.
NTSC: U.S. and Japanese video standard of about 30 frames per second.
PAL: European video standard of 25 frames per second.
Film: Movie standard of 24 frames per second.
Custom: Frame rate set in the FPS parameter.
3024 | Chapter 13 Animation
Page 27
Configuring Animation Playback
You use settings in the Time Configuration dialog on page 7359 > Playback
group to specify the playback speed, and the number of viewports that play
the animation.
Real Time: Animation plays at the selected playback speed, skipping frames,
if necessary, to maintain the correct speed. Turn this off and the animation
will play every frame without trying to maintain the correct speed. The
different playback speeds are also useful when using the Motion Capture
utility on page 3721 .
Active Viewport Only: Animation plays only in the active viewport. Turn this
off and the animation will play in all four viewports at once.
Speed: Choose one of these options to multiply the frame rate by the selected
speed.
Direction: When Real Time is off you have the option to change the direction
of the animation playback. Choosing Reverse will play the animation from
end to start. Choosing Pingpong will play the animation from start to end,
and then end to start.
Loop: When Loop is turned off, the animation will play once and stop.
Viewport Playback Speed
The ability of the program to play your animation at a specified rate depends
on many things, including the complexity of the scene, the number of objects
moving in the scene, the geometry display mode, and so on. The worst case
is a camera move in shaded mode, in which the viewport is filled with detailed
geometry. In such cases, it’s best to simplify the viewport display, using either
wireframe display or, in extreme cases, box display mode.
Naturally, it takes more computing power to display your animation in four
viewports, and playback smoothness is reduced. When Active Viewport Only
is on, you can switch active viewports during playback either by clicking the
label of an inactive viewport, or by right-clicking in an inactive viewport.
Working with Controllers
Everything you animate in 3ds Max is handled by a controller. A controller
is a plug-in that handles the storage and interpolation of all animated values.
Working with Controllers | 3025
Page 28
The default controllers are:
■ Position: Position XYZ
■ Rotation: Euler XYZ
■ Scale: Bezier Scale
TIP For fast access to key info or controller parameters, double-click a controller
track name on the Motion panel or Track View hierarchy window . This productivity
enhancement can help speed your work when fine-tuning animation.
Although 3ds Max has many different types of controllers, much of the
animation is handled by the Bezier controller on page 3063 . Bezier controllers
interpolate between keyframes in a smooth curve. You can adjust the key
interpolation of these interpolations through the keys on the track bar or in
Track View. This is how you can control acceleration, hesitation and other
types of motion.
The default controller for Rotation is Euler XYZ, which breaks the rotation
down into three individual Bezier Float tracks. The default controller for
Position is Position X,Y,Z. The Scale controller default is Bezier.
NOTE If you load files made in earlier versions of the software, their existing
controllers will be maintained.
WARNING Be aware that Euler rotations behave differently than TCB rotations.
If you are used to using TCB controllers, you can reassign TCB Rotation as the
controller and you will get the same behavior you are used to.
3ds Max has a specialized type of controller, called a constraint, that is
commonly used to help automate the animation process. A constraint can be
used to control an object’s position, rotation, or scale through a binding
relationship with another object.
You apply constraints and controllers using commands on the Animation
menu. When you assign a controller from this menu, a weighted list controller
is automatically applied, with the controller you've selected appearing first in
the list. The weighted list controller gives you the ability to blend controllers,
similar to a nonlinear animation system. If you assign a controller through
the Motion panel or Track View, it replaces the existing controller, rather than
creating a list controller. You can do that manually if you are working in the
Motion panel or Track View.
3026 | Chapter 13 Animation
Page 29
This section explains techniques for working with controllers. For details about
the parameters and use of each controller type, see Animation Controllers
on page 3058 .
Understanding Controllers
Controllers are plug-ins that handle all of the animation tasks in 3ds Max,
including:
■ Storing animation key values.
■ Storing procedural animation settings.
■ Interpolating between animation key values.
Most animatable parameters don't receive a controller until you animate them.
As soon as you change an animatable parameter at any frame other than 0
with the Auto Key button on, or click in its track using Curve Editor > Add
Keys, a default controller is assigned to the parameter.
Accessing Controllers
There are two places where you work directly with controllers:
■ Track View: Controllers are indicated in the Hierarchy list by
the various controller icons. Each controller has its own individual icon.
Using Track View, in either Curve Editor or Dope Sheet mode, you can
view and work with the controllers for all objects and all parameters. See
Track View on page 3426 .
■ Motion panel: Contains special tools for working with transform
controllers. The Motion panel contains many of the same controller
functions as the Curve Editor, plus controls necessary for working with
special controllers such as IK Solvers. Using the Motion panel you can view
and work with the transform controllers of a single selected object. See
Motion Panel on page 7455 .
Understanding Controllers | 3027
Page 30
Categories of Controllers
There are two main categories of controllers. These categories are easy to
identify when looking at the Track View - Curve Editor Hierarchy list.
Single-Parameter Controllers: Control animation values of a single parameter.
Regardless of whether the parameter has a single component, such as the
number of sides of a cylinder, or multiple components, such as the RGB values
of a color, the controller is handling a single parameter.
Compound Controllers: Combine or manage multiple controllers. Compound
controllers include high-level Transform controllers , such as PRS on page
3145 , the Euler XYZ Rotation controller on page 3076 , the Transform Script
controller on page 3186 , and the List controller on page 3119 .
A compound controller appears in the Hierarchy list as a controller icon with
subordinate-level branches of other controllers.
Controllers and Constraints
In addition to controllers, the software can animate using constraints. These
items are located in the Animation > Constraints menu. The constraints include
the following: Attachment, Surface, Path, Link, Position, Orientation, and
LookAt.
When you assign a controller in the Motion panel or in Track View, you will
see these constraints appearing in the list of available controllers. You can
assign them the same as the other controllers, but they are also assignable
from the Animation > Constraints submenu. For more information, see
Animation Constraints on page 3212 .
NOTE If you assign a controller using the Animation > Controller submenu, a list
controller is automatically applied to the object, with the selected controller applied
beneath the list controller. This is different than controllers that are applied via
the Motion panel.
Viewing Controller Types
You can view the controller type assigned to a parameter in both the Curve
Editor and in the Motion panel. Before you can view the controller types in
Track View, you must do the following:
1 On the Curve Editor toolbar, click the Filters icon. Then in the
Filters dialog > Show group, turn on Controller Types.
3028 | Chapter 13 Animation
Page 31
You can then see the name of the Controller type in the Hierarchy view.
2 Assign controllers to parameters. You can do this on the Assign
Controller rollout of the Motion panel, or through the right-click menu
in the Hierarchy list in Track View.
The Parameters mode of the Motion panel always displays the transform
controller types for the selected object.
Reading Controller Types
You can tell a lot about how a parameter is animated by looking at the
controller type.
Parameter Name: Is always visible and is always to the right of the controller
icon. It tells you what is animated.
Interpolation Type: Usually follows the parameter name. It tells how animation
values are calculated. The label Diffuse: Bezier Color indicates a Diffuse color
parameter using Bezier interpolation with Color data.
Data Type: Usually follows the interpolation type. It tells what type of data
is used. The label Height: Linear Float indicates a Height parameter using
Linear interpolation with a floating point value.
Changing Controller Properties
Certain controllers, including procedural ones like Noise on page 3139 , do not
use keyframes. For this type of controller, you can analyze and change your
animation by editing controller parameters by means of a Properties dialog.
The controller type determines whether or not the controller displays a
properties dialog and the type of information displayed.
Using Curve Editor you can view controller properties dialogs for multiple
tracks simultaneously. The following rules govern viewing multiple controller
properties dialogs:
■ Each track displays only one properties dialog in each Track View window.
■ When properties dialogs for multiple tracks are visible, only one dialog
can be active.
Changing Controller Properties | 3029
Page 32
■ Properties dialogs for tracks that use keys are disabled unless keys are
selected.
Changing Controller Properties
Some controllers do not use keys, using instead a properties dialog that affects
the entire animation. Such controllers are usually parametric controllers like
Noise, or compound controllers like List.
To view controller properties in Curve Editor:
Do one of the following:
■ Highlight the label for a parametric or compound controller, right-click
the label, and then choose Properties from the shortcut menu to display
the properties dialog.
The dialog title identifies the controller type, the item or object name, and
the parameter. For example: Noise Controller:-Box01\Position
■ Double-click the label.
You can also view global properties for some transform controllers in the
Motion panel. The same controls described above apply.
Controller properties can also be viewed from the track bar on page 7315 .
Right-click any key and choose Controller Properties.
Changing Controller Key Information
Some controllers interpolate between keys that you set on specific frames.
Such controllers are always single parameter controllers such as a Bezier Float
controller for Height or TCB for Rotation. These controllers use a Key Info
dialog that contains settings for one of more selected keys.
To view key information in the Curve Editor:
■ Right-click a key to display the Key Info dialog.
If more than one key is highlighted, Key Info displays common information
for all of the selected keys. Settings that contain values indicate values
common to all of the selected keys. Settings that are blank indicate values
that change from key to key.
Viewing key information in the Motion panel always displays the settings for
a single transform key.
3030 | Chapter 13 Animation
Page 33
To view key information for transform controllers in the Motion panel:
1 Select an object.
2 On the Motion panel, click Parameters, if it's not already active.
3 Click Position, Rotation, or Scale on the Parameters rollout.
If the transform controller uses keys, Key Info rollouts appear below the
Parameters rollout.
To view key information for transform controllers in the track bar:
1 Select an animated object.
2 Right-click any key in the track bar.
3 From the right-click menu, choose the property to inspect (e.g., Sphere01:
X Position), or, if available, choose Controller Properties.
Changing Controllers That Do Not Display Properties
Some controller types do not display any properties in Track View or the
Motion panel. You change the animation values of these controllers using
the Auto Key button in the viewports and using the tools in the Curve Editor
Keys and Curves menus, and in the track bar.
Assigning Controllers
Every parameter has a default controller type that gets assigned the moment
the parameter is animated. You can choose from multiple controller types for
any parameter and change controllers after the parameter is animated.
Assigning Controllers in Track View
You can assign controllers to any animatable parameter in the Curve Editor
by selecting controller items and then choosing Assign Controller on the
Controller menu.
You can also assign controllers to any animatable parameter in the Track View
— Curve Editor by selecting the parameter in the Hierarchy List then
right-clicking and choose Assign Controller from the quad menu.
You can also assign the same controller type to a selection of multiple
parameters as long as all the selected parameters can use the same type of
Assigning Controllers | 3031
Page 34
controller. For example, you could select the Length, Width, and Height
parameters for multiple Box objects and assign the same controller type to all
of them. This is because they all use controllers that work on floating point
data.
If a parameter has already been animated, then assigning a new controller has
one of the following effects:
■ The existing animation values are recalculated to produce a similar
animation with the new controller. For example, replacing TCB Position
with Bezier Position closely preserves the animation.
■ The existing animation values are discarded. For example, replacing Smooth
Rotation with Noise Rotation discards the Smooth Rotation animation
values.
Assigning Controllers in the Motion Panel
You can assign controllers on the Motion panel by selecting an object and
then, on the Assign Controller rollout, choosing a controller and clicking the
Assign Controller button. You can change the controllers of only one selected
object.
Assigning Controllers Using the Animation Menu
You can assign controllers using the Animation menu. All the controllers and
constraints are available by going to the menu bar and choosing Animation,
and then selecting the type of Controller you want and picking the controller
from the submenu that displays.
When you assign a controller in this method, a list controller is automatically
assigned, and the controller you have selected appears as the first entry in the
list. This automatic list controller assignment does not occur if you assign
controllers using the Motion panel or Track View. Weighted list controllers
allow you to blend between various tracks by animating the weights.
TIP You can use the Animation menu to assign the same type of controller
or constraint to several different objects at once. Just select the objects and then
choose the controller or constraint from the Animation menu.
NOTE If an assigned constraint requires designating an additional subject, such
as a Path constraint, a rubber-band line extends from the first selected object to
the mouse cursor after choosing the constraint. To complete the assignment,
position the cursor over a qualifying target object and click.
3032 | Chapter 13 Animation
Page 35
Copying and Pasting Controllers
Right-click any blank area on the Track View toolbars, then choose Show
Toolbars > Controllers: Track View. This displays the Controller toolbar with
buttons for quick access to controller tools.
Click Copy and Paste on the Track View toolbar to copy and
paste controllers. For a general discussion of using Copy and Paste, see Copying
and Pasting Items on page 3567 .
To copy and paste controllers in the Curve Editor, select the controller track
to copy, then right-click and choose Copy from the Track View quad menu.
Navigate the Hierarchy list to the target object, select the track, right-click
and choose Paste.
Rules for using Copy and Paste are as follows:
■ You can copy only single controllers. Compound controllers like List or
PRS Transform controllers are considered single controllers for Copy and
Paste operations.
■ You can paste a copied controller into one or more controllers using the
same data type.
■ You can choose to make an instance or a copy of the pasted controller.
■ You can choose to convert other controller instances in the scene
automatically.
Clicking Paste displays the Paste dialog, with three controls for determining
how the Paste operation is carried out.
Copy Pastes the controller as a copy.
Instance Pastes the controller as an instance of the source controller. Any
change you make to either controller will affect the other.
For example, you can paste a box's Length controller as an instance into its
Height and Width parameters. This makes the box a cube. Changing either
of the Length, Width, or Height parameters changes the other two.
Paste Target: Replace All Instances When selected, all instances of the target
controller receive the paste controller, whether or not they are selected. This
keeps all instances of the target controller as instances. When off, the target
controller is made unique and the remaining instances are unchanged.
Assigning Controllers | 3033
Page 36
Specifying Default Controllers
You can specify the permanent defaults for controller types and controller
settings to match the way you prefer to work. The following defaults are written
to the 3dsmax.ini file:
■ The default controller used for each data type
■ The default controller settings
Specifying Default Controllers
You specify default controllers by choosing Controller > Assign from on the
Track View menu (see Assigning Controllers on page 3031 ). When you choose
a controller in the Assign Controller dialog you have the option to click Make
Default before clicking OK.
Clicking Make Default assigns the chosen controller as the default for all
parameters using that data type. It has the following effects:
■ The default controller is listed at the bottom of the Assign Controller dialog.
■ Many different parameters might share the same data type. For example,
selecting the Length parameter of a Box and specifying Linear Float as the
default sets the default controller for all parameters that use the Float data
type. This includes, Width, Camera FOV, and Scale Deformation Curves.
■ Default controller choices are written to the 3dsmax.ini file and become
the default for all new scenes.
■ Previously assigned controllers are not affected.
Specifying Default Controller Values
You can specify the default settings for many controller types, or reset
controllers to their factory settings on the Preferences dialog.
To specify default controller settings:
1 Choose Customize menu > Preferences.
2 In the Preferences dialog > Animation panel > Controller Defaults group,
click Set Defaults to display the Set Controller Defaults dialog.
3 From the list of available controllers, choose a controller type and click
the Set button to display the default settings supported by the selected
3034 | Chapter 13 Animation
Page 37
controller. For example, with a Bezier controller you can set the In and
Out tangents.
NOTE The default Rotation controller is Euler XYZ, not TCB (Quaternion) as
in earlier versions of the software. The default Position controller is now
Position XYZ, instead of TCB Position. Only Scale is still Bezier as a default.
Euler XYZ Rotation behaves quite differently from TCB. It gives you three
function curves to manipulate, but does not allow rotations of greater
than 180 degrees between keys. If you are used to working with TCB
controllers, you can change the default rotation controller back to TCB.
Once you click OK, the controller defaults are changed. Changes to the
controller default settings are written to your 3dsmax.ini file and become the
defaults for all newly assigned controllers and all new scenes.
You can also revert to the original program defaults for all controllers by
clicking Preference Settings dialog > Animation panel > Controller Defaults
group > Restore To Factory Settings.
General-Purpose Controllers
The following controllers are general purpose in that you can apply them to
parameters of different data types, yet they behave in essentially the same
way for those different parameters.
Within certain general-purpose controllers there might be variations according
to the data type used by a parameter.
See Animation Controllers on page 3058 for detailed descriptions of controller
properties.
Bezier Controllers
Bezier controllers on page 3063 interpolate between keys using an adjustable
spline curve; they are the default controller for most parameters.
Use Bezier controllers to provide fully adjustable interpolation between keys.
Bezier controllers support the following options:
■ Adjustable tangent handles.
■ Step tangents for abrupt changes from one key to the next.
General-Purpose Controllers | 3035
Page 38
■ Constant velocity control.
You can adjust the key interpolation by choosing among different tangent
types in the Key Info dialog. .
TCB Controllers
The TCB controller on page 3183 produces curve-based animation like Bezier
controllers. However, TCB controllers use fields to adjust the Tension,
Continuity, and Bias of the animation.
Use TCB controllers when you want adjustable, curved interpolation between
keys, and you want to use TCB style controls. TCB rotation controllers were
the default controller type in versions 4 and earlier.
Linear Controllers
The Linear on page 3118 controller interpolates between animation keys by
evenly dividing the change from one key value to the next by the amount of
time between the keys.
Use Linear controllers when you want motion to have a rigid, mechanical
look.
Noise Controllers
The Noise on page 3139 controller produces random, fractal-based animation
over a range of frames. Noise controllers are parametric; they do not use keys.
Noise controllers have many possible uses; as in the following examples:
■ Use Noise whenever you need completely random animation around a
given value. For example, use a Noise Rotation controller when you want
an object to wobble in place. A common use for a noise controller is the
creation of camera shake.
■ Use Noise in a List controller to apply variations to the result of another
controller. For example, use a List controller to combine Noise Position
with Bezier Position. The Bezier controller moves the object while the
Noise controller makes the object shake and stray a little from the
trajectory.
3036 | Chapter 13 Animation
Page 39
XYZ Controllers
The XYZ controllers such as Euler XYZ on page 3076 and Position XYZ on page
3144 are specifically designed so that you have three separate curves, one for
each axis. This allows you to independently view and control the curves
individually. This has advantages over rotation controllers like TCB that do
not display function curves at all. XYZ controllers are now the default for
rotation animation.
You can adjust the interpolation between keys using the Key Info dialog.
Audio Controllers
The Audio controller on page 3060 converts the amplitude of a recorded sound
file or real-time sound wave into values that can be used by an animated
parameter.
Use the Audio controller to synchronize parameter values with a sound file.
For example, use an Audio controller for a Multiplier Curve to scale a parameter
in sync with a sound.
Special-Purpose Controllers
The controllers described in this topic are also applied to parameters of different
data types, but they are used for special purposes.
List Controllers
The List controller on page 3119 combines multiple controllers into a single
effect. It is a compound controller with tools for managing the order in which
its internal controllers are calculated. List controllers are weighted, by
animating the weights of the different layers you can create an effective
non-linear animation system.
Use List controllers to combine controllers as in the following examples:
■ Combine Noise Rotation and TCB Rotation controllers to introduce random
orbital motion as an object rotates.
■ Combine Bezier Position and Path Constraint to make an object follow a
path with manually keyframed variation away from the path.
When you apply any controller from the Animation menu, a list controller
is automatically placed on the object and the selected controller placed
first in the list.
Special-Purpose Controllers | 3037
Page 40
For hands-on experience using weighted list controllers see
ms-its:3dsmax_t.chm::/WSf742dab04106313363d7aea112a19e2fe5-7ff9.htmthe
bouncing ball exercise in the tutorials .
Expression/Script Controllers
You write custom code for Expression controllers on page 3079 and Script
controllers on page 3173 in an Expression or Script controller dialog. You specify
parameters using mathematical expressions, functions, and variables. The
code can include values based on the controllers of other objects in the
animation.
NOTE You can replicate some functions of Expression and Script controllers without
having to write code by using parameter wiring or Reaction controllers. See
Parameter Wiring Dialog on page 3249 and Reaction Controllers on page 3147 .
See also
Expression Controller Techniques on page 3086
Trigonometric Functions on page 309
Vectors on page 312
Motion Capture Controllers
A Motion Capture controller controls parameters in real time from the input
of external devices. Currently supported devices are mouse, keyboard, MIDI
device and joystick. Each device has specific properties that must be set:
■ After assigning the motion-capture controller, open the controller Properties
dialog and bind the type of peripheral device and set device parameters.
■ Use the Motion Capture utility on page 3721 to test and record captured
motion.
Explicit Axis Keys
The XYZ controllers assign an individual track to the X, Y, and Z components
of the position, rotation, or scale of an object. However, the controllers always
assign three keys (one for each axis), by default.
In previous versions of the software, you had to manually edit the keys in
order to create explicit axis keys. However, there are now actions available
3038 | Chapter 13 Animation
Page 41
from the Customize User Interface dialog on page 7489 that let you create
explicit keys with the touch of a button.
When an explicit key is created on an axis, any keys on the two remaining
axes (at the selected time) will be deleted.
An explicit axis key can only be assigned to objects that already have an XYZ
controller assigned to their position, scale, or rotation tracks.
You can also use Keyable Icons to turn on or off tracks for editing. This allows
you to set keys on only specified PRS X, Y or Z axes as well. See Keyable Icons
on page 3486 .
See also:
■ Position XYZ Controller on page 3144
■ General-Purpose Controllers on page 3035
■ Euler XYZ Rotation Controller on page 3076
■ Scale XYZ Controller on page 3171
Interface
NOTE These commands are not available in the default user interface. You can
use the Customize User Interface dialog to assign a keyboard shortcut to them or
add them to your toolbars or menus if you want to use them.
Key Position X, Y, or ZCreates an explicit key on the designated position
axis.
Key Rotation X, Y, or ZCreates an explicit key on the designated rotation
axis.
Key Scale X, Y, or ZCreates an explicit key on the designated scale axis.
Float Controllers
The following controllers are available only for parameters that use the Float
data type.
Float Controllers | 3039
Page 42
On/Off Controller
An On/Off controller on page 3142 controls parameters using binary on and
off values. The On/Off track displays a solid blue color in frames that are on,
and the background in frames that are off. The on/off state of the parameter
switches every time you add a key.
Use for binary parameters such as the Smooth object parameter, or for Visibility
tracks.
Boolean Controller
The Boolean Controller is a variation on the On/Off controller. It provides a
similar functionality, but with one significant difference. The on/off state of
the parameter does not switch automatically every time you add a key. This
allows you to effectively add keys in the middle of a sequence without creating
unintended drastic changes.
Waveform Controller
A Waveform controller on page 3190 generates values by combining periodic
waveforms. You can specify different types of waveforms and add waveforms
together to create complex animation.
Waveform was originally created to control blinking lights. Use it for any
value that you want to vary in a regular, oscillating pattern.
Controlling Transforms
Transform controllers are compound controllers. They set the type and
behavior of the controllers used for Position, Rotation, and Scale.
You assign Transform controllers using either Track View — Curve Editor or
the Motion panel. Compound Transform controllers do not display properties
in Track View. You can access the parameters of Transform controllers only
in the Motion panel.
Position/Rotation/Scale Controller
The Position/Rotation/Scale (PRS) controller on page 3145 is a simple Transform
controller applicable for most objects. When applied the PRS Transform
controller sets up default Bezier Position, TCB Rotation, and Bezier Scale
controllers.
3040 | Chapter 13 Animation
Page 43
Use a PRS controller whenever you want a standard transform set up or when
you want single function curve control over the Position, Rotation, and Scale
controllers.
NOTE PRS controller is no longer the default controller applied to all objects. The
latest version of the software uses Position XYZ and Euler XYZ as the new default
controllers for position and rotation transforms.
Transform Script Controller
The Transform Script controller on page 3186 contains all of the information
contained in a PRS Controller in one scripted matrix value. Instead of having
three separate tracks for position, rotation, and scale, all three values can be
simultaneously accessed from one script controller dialog. Because the
transform values are defined by a script, they are easier to animate.
The value of the controller script must be a matrix3 value. A matrix3 value is
a 4x3 3D transformation matrix. For more information, see the Matrix3 Values
topic in the MAXScript Reference.
XRef Controller
The XRef controller on page 3194 lets you externally reference any type of
Transform controller from another scene file. When you assign this controller
to your object, it nests the source controller, making it only accessible for
playback. You can use the XRef controller either on its own, or combine it
with an XRef Object on page 6732 .
Controlling Position
Below the Transform controller on page 7712 is the Position controller. Position
is a data type that can use most of the standard controllers such as Bezier,
TCB, and Noise.
The controllers described in this topic can be used only as position controllers.
XYZ Controller
The XYZ controller breaks a Position controller into three separate Bezier Float
controllers. Each of the X, Y, and Z components of position receives its own
track.
Controlling Position | 3041
Page 44
Use the XYZ controller when you want to have separate key patterns or
controller types for each position component.
See Euler XYZ Rotation Controller on page 3076 , Position XYZ Controller on
page 3144 , and Scale XYZ Controller on page 3171 .
Controlling Rotation
Below the Transform controller is the Rotation controller. Rotation is a data
type that can use most of the standard controllers such as TCB, Linear, and
Noise.
Rotations in 3D are very complex. Even the standard controller types behave
differently when used for rotation. The most common way of calculating
rotations in 3D animation uses four components to define rotation about an
arbitrary axis. This is the quaternion method.
The benefits of using quaternion rotation include:
■ It produces a direct one-to-one relationship between the quaternion values
and how objects interactively rotate in the scene.
■ It produces smoother rotation than other methods.
The drawbacks of using quaternion rotation include:
■ Rotation values in key information can be difficult to understand.
■ Quaternion rotation controllers do not display function curves in Track
View — Curve Editor. For this reason Euler XYZ is now the default rotation
controller assigned to all objects.
You can use the following controllers only as rotation controllers.
Smooth Rotation
Use Smooth Rotation on page 3178 when you want rotation to have a smooth
and natural look. Smooth rotation uses nonadjustable curved interpolation,
and has the following characteristics:
■ You can move keys in Track View to change timing.
■ You can directly rotate objects in the viewports to change rotation values.
■ You cannot display controller or key properties, or function curves.
3042 | Chapter 13 Animation
Page 45
Euler XYZ Rotation
Use the Euler XYZ Rotation controller on page 3076 when you want individual
function curve control for each axis of rotation. Euler XYZ is a compound
controller that combines separate, single-value float controllers to specify an
angle of rotation about each of the X, Y, and Z axes. Euler XYZ Rotation is
the default controller applied to all objects.
Euler XYZ is not as smooth as quaternion rotation, but it is the only rotation
type that you can use to edit rotation function curves.
Euler angles are well suited for animating mechanical rotations. They can also
be a good choice for an object in an inverse kinematics chain because IK
Rotational joints are defined as Euler angles. X, Y, and Z function curves
displayed by this controller in Track View represent rotations in "world" or
"parent" space which is the rotation system used by most 3D animation
packages.
Customers upgrading from earlier versions of the program might find some
difficulty in adapting to using Euler XYZ rotation controllers. If you find
yourself experiencing unexpected rotation behavior, this might be the reason.
Reassign TCB rotation as the default rotation controller and you will be able
to regain your customary workflow.
Controlling Colors
You can animate colors in 3ds Max just like most other parameters. There are
two data types used for controlling colors.
Point3: A general-purpose, three-component data type that works with RGB
color values. It uses most of the standard controllers.
Color: A special data type designed specifically for working with RGB and HSV
color values. Color uses the Bezier and RGB controllers.
Color Point3 Controller
You can assign any of a variety of Point3 controllers to a material's color
channels, including Point3 Expression, Point3 List, Color RGB (described later
in this topic), and so on. When using Point3 controllers for color parameters,
an important issue is behavior of the Key Value fields, labeled X, Y, Z. They
store color values using only the RGB color model.
■ The X value field stores Red color values.
Controlling Colors | 3043
Page 46
■ The Y value field stores Green color values.
■ The Z value field stores Blue color values.
The Point3 Key Value fields do not clamp at the valid color range of 0 to 255.
Values that drop below 0 or exceed 255 are ignored by the color parameter
but are still displayed in Track View.
Bezier Color Controller
The Bezier Color controller (see Bezier Controllers on page 3063 ) is a data type
that uses Bezier key interpolation. You can use RGB or HSV color models with
the Bezier Color controller.
The choice of color model is global for all keys used by the controller. You
can switch between color models anytime and color key values are correctly
converted.
The Color Value fields are limited to a range of 0 to 255. You can drag the
color keys above 255 in Track View Curve Editor, but the values are clamped
at 255.
Color RGB Controller
Assign a Color RGB controller on page 3074 to break a Color controller into
three separate Bezier Float controllers. Each of the R, G, and B components
of color uses its own track.
Use the Color RGB controller when you want to have separate key patterns
or controller types for each color component.
Morph Controllers
You can choose from two morph controllers: Cubic and Barycentric; they
manage how morph targets blend from one target to another. Morphing can
also be achieved by applying a Morpher modifier on page 1473 to an object.
Cubic Morph Controller
A Cubic Morph controller is a TCB-style controller. It uses Tension, Continuity,
and Bias controls much like the generic TCB controller.
The Cubic Morph controller manages only the interpolation from one morph
target to the next. If you want to add Morph keys or change the morph target,
3044 | Chapter 13 Animation
Page 47
you must use the Pick Targets and Current Targets rollouts on page 639 in the
Modify panel.
Barycentric Morph Controller
The Barycentric Morph controller on page 3061 is also a TCB controller like
the Cubic Morph controller, except that instead of each key representing a
single target, each key represents a series of weights for all targets. A Barycentric
Morph key represents a new object which is a blending of all targets.
You can adjust each morph key to percentages of the available morph targets,
creating subtle adjustments in the animation.
You can also click Add Keys in Track View to create new Barycentric Morph
keys. The added keys contain interpolated values for all targets.
Motion Panel Commands
Trajectories
Select an object > Motion panel > Trajectories
Motion Panel Commands | 3045
Page 48
Scooter following a trajectory
The Trajectories rollout displays the path an object travels over time. Controls
to convert splines into trajectories, trajectories into splines, and to collapse
any transform controller into editable keys are also available by choosing
Motion panel > Trajectories.
NOTE The state of the Trajectory check box under Display in the Object Properties
dialog on page 245 (and on the Display panel > Display Properties rollout) controls
whether trajectories will be visible for an object.
Using trajectories, you can do the following:
■ Display the 3D path for selected object’s position tracks.
■ Insert and delete keys from the path.
■ Move, rotate, and scale keys on the path.
■ Convert the path to a spline object.
■ Derive a new path from a spline object.
■ Collapse transforms.
3046 | Chapter 13 Animation
Page 49
Values under Sample Range are used in the Spline Conversion and Collapse
Transform functions.
NOTE You can assign the four principal Trajectories functions to keyboard shortcuts
and other custom UI items. The following actions are available via Customize User
Interface on page 7489 :
■ Trajectory Add Key Mode Toggle: Enters and exits Add Key mode on
page 3049 .
■ Trajectory Delete Key : Activates the Delete Key on page 3049 function
on a one-time basis.
■ Trajectory Key Mode Toggle: Enters and exits the Keys sub-object level
for direct editing of animation keys via transformation of the trajectory
keys.
■ Trajectory Toggle: If one or more objects are selected, this enters and
exits Trajectories mode on the Motion panel.
Procedures
To display an object’s trajectory:
1 Select an animated object that moves over time.
2 Right-click the object and choose Properties.
Trajectory is not available.
3 In the Display Properties group, click By Layer to change this button to
By Object. Skip this step if By Object is already displayed.
Trajectory becomes available.
4 Turn on Trajectory, then click OK.
The Trajectory is displayed as a red line with white squares and dots. The
white squares are keys, the white dots are in-betweens.
To add a key to a trajectory:
1 Select an object.
2 Display the trajectory by following the previous steps.
3 In the Motion panel, click Trajectories.
4 Click Sub-Object to activate Keys and enable editing.
Motion Panel Commands | 3047
Page 50
5 Click Add Key.
The button highlights.
6 Click the trajectory.
Wherever you click the trajectory a key will be added.
7 Right-click the key and select Key Info from the right-click menu.
In the Key Info dialog, you can change the In and Out values for the
in-betweens on either side of the key. This allows you to use the trajectory
key to create the illusion of hesitation or acceleration.
You can click repeatedly to add many keys in this mode.
To delete a key from a trajectory:
1 Select a key on a trajectory. You can click it, or use window selection.
2 Be sure Add Key is turned off in the Trajectories rollout of the Motion
panel.
3 Click Delete Key in the Trajectories rollout of the Motion panel.
The key is deleted.
To transform keys on a trajectory:
1 Select one or more objects.
2 On the Motion panel, click Trajectories.
3 Click Sub-Object to activate Keys and enable editing.
4 Select one or more keys and use the transform tools on the Main toolbar
to move, rotate, or scale the selected keys.
3048 | Chapter 13 Animation
Page 51
Interface
Sub-Object Enables key editing. Use the Move, Rotate, and Scale transforms
to change the location of a key(s) displayed on a trajectory.
Trajectories rollout
Delete Key Deletes the selected key(s) from the trajectory.
Add Key Adds key(s) to the trajectory. This is a modeless tool. When you
click this button once, you can then add any number of keys by clicking the
trajectory line in the viewport one or more times in succession. To exit Add
Key mode, click the button again.
Sample Range group
Start Time/End Time Specifies the interval for the conversion. If you're
converting from position keyframes to a spline object, this is the time interval
for which the trajectory will be sampled. If you're converting from a spline
object to position keys, this is the interval over which the new keys will be
placed.
Samples Sets the number of samples for the conversion. When converting
in either direction, the source is sampled at regular intervals, and keys or
control points are created on the target object.
Motion Panel Commands | 3049
Page 52
Spline Conversion group
Convert To/Convert From Converts keyframe position tracks to and from
spline objects. This enables you to create a spline trajectory for an object and
then convert that spline to keyframes for that object's position track in order
to do various keyframe-specific functions (such as applying constant velocity
to the keys and normalizing the time). Or, you can convert an object's position
keyframes into a spline object.
TIP Convert To and Convert From can be used to move an object along a path
without using a path constraint.
Collapse Transform group
Generates keys based on the current transformation of the selected object.
You can apply this for any type of transform controller assigned to an object,
but the main purpose of this function is to "collapse" a parametric transform
effect, such as one generated by a Path constraint, into standard, editable keys.
Collapse Collapses the transform of the selected object.
Position, Rotation, Scale Specifies which transforms you want to collapse.
You must choose at least one check box to activate the Collapse button.
The PRS Parameters rollout provides tools for creating and deleting keys. PRS
stands for the three basic transform controllers: Position, Rotation, and Scale.
Procedures
To create a PRS transform key:
1 Select an object in the viewports.
2 Drag the time slider to the frame where you want to place a key.
3 On the Motion panel, choose Parameters > PRS Parameters rollout.
4 Click one of the following buttons under Create Key PRS Parameters
rollout:
■ Click Position to create a Position key.
■ Click Rotation to create a Rotation key.
■ Click Scale to create a Scale key.
If a particular Position, Rotation, or Scale controller doesn't use keys,
then that button is not available under Create Key. For example, you
can’t create Position keys if you're using a Noise Position controller.
Interface
Create Key/Delete Key Creates or deletes a move, rotate, or scale key at the
current frame. These buttons become active or inactive depending on the
existence of a key type at the current frame.
For example, if you're on a frame containing a Scale key, the Scale button is
inactive in the Create column because a key already exists. At the same time,
the Position and Rotation buttons are inactive in the Delete column because
there are no keys of that type to delete.
Motion Panel Commands | 3051
Page 54
Position/Rotation/Scale Determines the contents of the Key Info rollouts
that appear below the PRS Parameters rollout on the Motion panel.
Key Info (Basic) Rollout/Dialog
Select an animated object > Motion panel > Parameters > Key Info (Basic)
rollout
Select an animated object. > Right-click a key on the track bar. > Choose a
controller track.
Make a selection. > Hierarchy panel > IK button > Key Info (Basic) rollout
Curve Editor > Right-click a key.
Parameter Collector on page 285 > Click a Properties button.
The Key Info (Basic) rollout or dialog changes the animation value, time, and
interpolation methods of one or more selected keys.
The following parameters are available with the Bezier controller, which is
the default position controller. The Key Info controls for a TCB position
controller are different.
See also:
■ Key Info (Advanced) Rollout/Dialog on page 3056
Procedures
To set the tangent type for a key:
1 Select an object and open the Key Info (Basic) rollout.
2 Use the arrows in the upper-left corner of the dialog to select a key.
3 Choose a tangent type from the In or Out tangent flyouts.
3052 | Chapter 13 Animation
Page 55
Interface
Key number Shows the current key number. Click the right or left arrows
to go to the next or previous key.
Time Specifies at what time the key occurs.
Time Lock Prevents horizontal key movement in Track View Edit modes.
Value Adjusts the position of the selected object at the current key.
NOTE In the Key Info dialog for the Bezier Scale controller , a Lock button is
displayed beside the X Scale spinner. If you click Lock X, only the X value affects
all three axes of scale. The Y and Z values are ignored and their function curves
are not displayed. When X is locked, the Y and Z values aren't affected by changes
in the X value. If you click Lock X when all three axes are at identical values, alter
the X value, and then unlock X. The Y and Z values remain where they were while
X retains its new value.
Key Tangent Flyouts With Bezier controller types, sets the interpolation
properties of the In tangent and Out tangent of the key. For details, see
Tangent Types on page 3054 .
Motion Panel Commands | 3053
Page 56
Tangent Copy buttons Use the arrow buttons at either side of the Key
Tangent flyouts to copy the tangent type between the tangents of the current
key or between the tangents of the previous and next key.
■ The left arrow of the In tangent copies to the Out tangent of the previous
key.
■ The right arrow of the In tangent copies to the Out tangent of the current
key.
■ The left arrow of the Out tangent copies to the In tangent of the current
key.
■ The right arrow of the Out tangent copies to the In tangent of the next
key.
Tangent Types
Key Info (Basic) dialog/rollout on page 3052 > In/Out Tangent Type flyouts
Status bar > Animation controls > Default In/Out Tangents For New Keys
flyout
Select an animated object > Motion panel > Parameters > Key Info (Basic)
rollout
You can adjust the tangent type of the Bezier transforms. This means you can
adjust the interpolation between keyframes to create particular motion effects.
By manipulating tangent types, you can make something hesitate, speed up,
slow down, or even stand still. Each key has two tangents: one to define the
interpolation before the key, and a second to define interpolation following
the key.
TIP You can also set the default tangent type through the Default In-Out Tangents
For New Keys on page 7351 flyout. By doing so, each new key created with Set Key
Mode or Auto Key Mode follows the curve interpolation set by the default tangent
type.
Smooth Creates smooth interpolation through the key.
Linear Creates linear interpolation at the key.
3054 | Chapter 13 Animation
Page 57
A linear tangent affects the curve near the key only. Full linear interpolation
between two keys occurs only when the Out tangent of the first key and the
In tangent of the next key both use a linear tangent.
Step Creates binary interpolation from one key to the next. Step
tangents require a matched set between the Out tangent of one key and the
In tangent of the next key.
Choosing Step for the In tangent of the current key also sets the Out tangent
of the previous key to Step. Likewise, choosing Step for the Out tangent of
the current key also changes the In tangent of the next key to Step.
Using Step tangents, the outgoing value of a key is held constant until the
time of the next key is reached. The value then abruptly jumps to the value
of the next key. Use this tangent when you want to animate On/Off switching
or instantaneous changes from one value to the next.
Slow Causes the interpolated rate of change to slow down around
the key. A slow In tangent decelerates as it approaches the key. A slow Out
tangent begins slow and accelerates as it leaves the key.
Fast Causes the interpolated rate of change to speed up around the
key. The effect is the opposite of using slow. A fast In tangent accelerates as
it approaches the key. A fast Out tangent begins fast and decelerates as it leaves
the key.
Custom Displays adjustable tangent handles at the key in Function
Curves mode in 3ds Max.
Flat Tangent Displays a smooth interpolation type designed to
eliminate overshoot with no editable handles. Tangent slopes automatically
take the most direct route to the next key value.
See also:
■ Default In/Out Tangents For New Keys on page 7351
Motion Panel Commands | 3055
Page 58
Key Info (Advanced) Rollout/Dialog
Select an animated object. > Motion panel > Parameters > Key Info (Advanced)
rollout
Make a selection. > Hierarchy panel > IK button > Key Info (Advanced) rollout
Select an animated object in the viewport. > Right-click a key in track bar. >
Choose the name of the controller track such as Sphere01: Z Position. > Key
Info dialog > Click Advanced.
Parameter Collector on page 285 > Click a Properties button. > Key Info dialog
> Click Advanced.
The Key Info (Advanced) rollout or dialog lets you control velocity in three
ways:
■ You can specify the absolute velocity at a key using the In/Out fields.
■ You can average velocity over a time period using Normalize Time.
■ With certain controller types, you can force constant velocity from one
component key to the next using Constant Velocity.
If you are creating Path animation, you can force constant velocity by placing
a Normalize Spline modifier on page 1511 on the spline used as a path.
See also:
■ Key Info (Basic) Rollout/Dialog on page 3052
Procedures
To set normalize time for a key:
1 Select an object and choose a key to Normalize.
You can use the arrows in the Key Info (Basic) rollout to step through
Keyframes.
2 In the Key Info (Advanced) rollout, click Normalize Time.
The key is moved in time to average the velocity through the key.
3056 | Chapter 13 Animation
Page 59
Interface
In/Out The In field is the rate of change as the parameter approaches the
key. The Out field is the rate of change as the parameter leaves the key.
■ These fields are active only for keys using the Custom tangent type on
page 3054 .
■ The number in the field is the rate of change expressed as parameter units
per tick. By changing the two values for X, Y, and Z you are changing the
length and angle of the tangent handle.
Lock button Changes one Custom tangent by changing the other an equal
but opposite amount. For example, if you click the Lock button and the In
value is 0.85, then the Out value is -0.85.
Normalize Time Averages the position of the keys in time and applies them
to any consecutive blocks of selected keys. Useful if you have an object that
speeds up and slows down repeatedly, and you want to smooth out the motion.
Constant Velocity When on, interpolates values between the key and the
next one so that the object moves at a constant velocity across that curve
segment. Available only with certain controller types, such as Bezier.
Free Handle Used for automatically updating the length of the tangent
handle. When this is turned off, the length of the tangent is at a fixed
percentage from its neighboring key. As you move a key, the handles adjust
to stay the same percentage away from the neighboring keys. When this is
turned on, the handle lengths are based on time lengths.
Motion Panel Commands | 3057
Page 60
Animation Controllers
Track View > Select a track in the Track View hierarchy. > Track View menu
bar > Controller menu > Assign > Choose a controller in the dialog.
Animation menu > Constraints/Transform Controllers/Position
Controllers/Rotation Controllers/Scale Controllers> Choose a controller.
Select an object. > Motion panel > Assign Controller rollout > Select a track.
> Assign Controller > Choose a controller in the dialog.
Controllers, like constraints on page 3212 , handle the animation tasks in a
scene, including:
■ Storing animation key values
■ Storing procedural animation settings
■ Interpolating between animation key values
An object or parameter doesn't receive a controller until you animate it. As
soon as you change an animatable parameter with Auto Key on, or add a key
on page 3539 in Track View - Dope Sheet on page 3426 , the software assigns a
controller to the parameter. The software chooses a default type for the
controller, depending on the animation. You can change the default controller
to another type.
The animation controllers are organized in the following categories:
■ Float controllers: for animating floating-point values
■ Point3 controllers: for animating three-component values such as colors
or 3D points
■ Position controllers: for animating positions of objects and selection sets
■ Rotation controllers: for animating rotation of objects and selection sets
■ Scale controllers: for animating the scale of objects and selection sets
■ Transform controllers: for animating general transforms (position, rotation,
and scale) of objects and selection sets
To change an assigned controller, use Controller > Assign on page 3515 in Track
View or in the Motion panel on page 7455 .
The controllers and constraints are:
3058 | Chapter 13 Animation
Page 61
Attachment Constraint on page 3213
Audio Controller on page 3060
Bezier Controllers on page 3063
Barycentric Morph Controller on page 3061
Block Controller on page 3066
Boolean Controller on page 3072
Color RGB Controller (Point3 XYZ Controller) on page 3074
Euler XYZ Rotation Controller on page 3076
Expression Controller on page 3079
Inverse Kinematics (IK) on page 3299
Layer Controller on page 3087
Limit Controller on page 3106
Linear Controller on page 3118
List Controller on page 3119
Link Constraint on page 3233
LookAt Constraint on page 3237
Motion Capture Controller on page 3128
Master Point Controller on page 3126
Noise Controller on page 3139
On/Off Controller on page 3142
Orientation Constraint on page 3244
Path Constraint on page 3222
Position Constraint on page 3228
Position XYZ Controller on page 3144
PRS Controller on page 3145
Reaction Controllers on page 3147
Scale XYZ Controller on page 3171
Script Controller on page 3173
Slave Parameters Dialog (Block Controller) on page 3209
Animation Controllers | 3059
Page 62
Smooth Rotation Controller on page 3178
Spring Controller on page 3178
Surface Constraint on page 3218
TCB Controllers on page 3183
Transform Script Controller on page 3186
Waveform Controller on page 3190
See also:
■ Working with Controllers on page 3025
■ Animation Constraints on page 3212
Audio Controller
Main toolbar > Curve Editor (Open) > Select a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Audio
Graph Editors > Track View – Curve Editor > Select a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Audio
Use the Audio controller to drive the animation of almost any parameter in
the software. The Audio controller converts the amplitude of a recorded sound
file or real-time sound wave into values that can animate an object or
parameter.
With the Audio controller, you have full control over sound channel selection,
base threshold, oversampling, and parameter range.
The Audio controller works with most parameters in Track View, including:
■ Transforms
■ Float values
■ Point3 values (color)
Audio controller assigned to the scale track of
this object
3060 | Chapter 13 Animation
Page 63
Procedures
To animate the Z axis scale of a box using a sound file:
1 Create a box.
2 In the Track View hierarchy, select the Scale track.
3 On the Track View menu, click Controller > Assign, and choose the
AudioScale controller.
The Audio Controller dialog appears.
4 Select Choose Sound, and select a .wav file.
5 In the Base Scale group, set the Z field to 0.
6 In the Target Scale group, set the Z field to 600.
7 Close the Audio Controller dialog and play the animation.
The box scale is animated along the Z axis.
TIP If you want to hear the sound as the animation plays, include the same
audio file in the Sound Track on page 3468 . (Sound Track in the Track View
hierarchy)
In the Time Configuration dialog, turn on Real Time.
The Barycentric on page 7724 Morph controller is automatically applied when
a morph object is created in Create > Geometry > Compound Objects > Morph.
Morph targets are selected and keys are created at different times to morph
the original object into the shape of the Morph Targets.
NOTE The Morpher modifier provides an alternative to the Morph controller to
morph objects.
The Barycentric Morph controller represents each key as a series of weights
for all targets. One barycentric key represents a new object which is a blending
of all targets.
You can adjust each morph key to various percentages of the available morph
targets. This lets you create subtle adjustments in the animation.
You can add keys between existing morph keys. The added keys contain
interpolated values for all targets.
To access the key properties dialog, select the Morph track, select one of its
keys, and click Properties to display the Key Info dialog.
See also:
■ Morph Compound Object on page 639
■ Morpher Modifier on page 1473
Procedures
See Morph Compound Object on page 639 and Barycentric Morph Controller
Key Info Dialog on page 3203
Interface
After assigning the Barycentric Morph controller in Create panel > Compound
Objects > Morph, then morph parameters for the controller display in the
Modify panel and in the Barycentric Controller Key Info dialog, which is
displayed by right-clicking over a morph key in Track View — Dope Sheet or
the track bar.
See Morph Compound Object on page 639 for Morph parameters.
3062 | Chapter 13 Animation
Page 65
Bezier Controllers
Main toolbar > Curve Editor (Open) > Select a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Bezier
Graph Editors > Track View – Curve Editor > Select a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Bezier
The Bezier controller is the most versatile controller available in the program.
Bezier controllers interpolate between keys using an adjustable spline curve.
They are the default controller for most parameters.
Use Bezier controllers whenever you want fully adjustable interpolation
between keys. Bezier is the only controller that supports the following:
■ Dragging tangent handles
■ Step tangents for abrupt changes from one key to the next
■ Constant velocity controls
Procedures
To set the tangent type for a key:
1 Select an object that has some animation keys and open the Key Info
(Basic) rollout in the Motion panel.
2 Use the arrows to select a key.
3 Choose a tangent type from the In or Out tangent flyouts.
To normalize time for a key:
1 Select an object, and then choose a key to normalize.
You can use the arrows in the Key Info (Basic) rollout to step through
keyframes.
2 On the Motion panel, in the Key Info (Advanced) rollout, click Normalize
Time.
The key is moved in time to average the velocity through the key.
Bezier Controllers | 3063
Page 66
Interface
Motion panel > Parameters > Key Info (Basic) rollout
A Key Info dialog with identical parameters to this rollout is available by
right-clicking a key in Track View or the track bar.
Key number Shows the current key number. Click the right or left arrows
to go to the next or previous key.
Time Specifies when in time the key occurs.
Time Lock Controls dragging the key horizontally in Track View edit modes.
X/Y/Z Adjusts the position of the selected object at the current key.
Key Tangent Two flyouts set the interpolation properties of the in tangent
and out tangent of the key.
Choosing Bezier Tangent TypesSets the tangent types for one or more keys
in the same track using the In and Out tangent flyouts.
See Tangent Types on page 3054 for detailed information on each of the
available tangent choices.
Tangent Copy Copies the tangent type between the tangents of the current
key or between the tangents of the previous and next key. Use the arrow
buttons on either side of the Key Tangent flyouts.
The left arrow of the In tangent copies to the Out tangent of the previous key.
The right arrow of the In tangent copies to the Out tangent of the current
key.
The left arrow of the Out tangent copies to the In tangent of the current key.
3064 | Chapter 13 Animation
Page 67
The right arrow of the Out tangent copies to the In tangent of the next key.
Choosing Bezier Tangent TypesSets the tangent types for one or more keys
in the same track using the In and Out tangent flyouts.
Bezier Scale Controller (Lock X) Causes the X value to affect all three axes
of scale. The Y and Z values are ignored and their function curves are not
displayed.
When X is locked, the Y and Z values are not affected by changes in the X
value. If you lock X when all three axes are at identical values, alter the X
value, and then unlock X, the Y and Z values remain where they were while
X retains its new value.
Motion panel > Parameters > Key Info (Advanced) rollout
Controls in the rollout affect velocity in three ways:
■ Control the absolute velocity at a key using the In/Out values
■ Average velocity over a specified amount of time using Normalize Time
■ Force constant velocity from one component key to the next using
Constant Velocity
In/Out The In field displays the rate of change as the parameter approaches
the key. The Out field displays the rate of change as the parameter leaves the
key.
Bezier Controllers | 3065
Page 68
These fields are active only for keys using the Custom tangent type.
The number in the field is the rate of change expressed as parameter units per
Tick. By changing the two values for X, Y, and Z you are changing the length
and angle of the tangent handle.
Lock button When on, changing one Custom tangent changes the other by
equal but opposite amount. For example, if the Lock button is on and the In
value is 0.85, then the Out value is -0.85.
Normalize Time Averages the position of the keys in time and is applicable
to any consecutive blocks of selected keys. Useful if you want to smooth out
the motion and have an object that speeds up, slows down, speeds up, and
slows down.
Constant Velocity Interpolates values between a key and the next one in a
way that makes the object move at a constant velocity across that curve
segment.
Free Handle Used for automatically updating the length of the tangent
handle. When this is turned off, the length of the tangent is at a fixed
percentage from its neighboring key. As you move a key, the handles adjust
to stay the same percentage away from the neighboring keys. When this is
turned on, the handle lengths are based on time lengths.
Create Position Lock Key / Create Rotation Lock Key Makes the incoming
handle of the current key linear, and the out going handle of the previous
key linear. This is to prevent overshoot from the spline interpolation.
To use these two features, you must first create a keyboard shortcut in
Customize > Customize User Interface. Look for Create Position Lock Key and
Create Rotation Lock Key in the keyboard shortcut list and assign a key. Or
you can also add these commands to the quad menu.
Block Controller
Main toolbar > Curve Editor (Open) > Expand Global Tracks in the Track View
hierarchy. > Block Control
Graph Editors > Track View – Curve Editor > Expand Global Tracks in the
Track View hierarchy. > Block Control
3066 | Chapter 13 Animation
Page 69
A Block controller is a global List controller on page 3119 that allows you to
combine several tracks from multiple objects over a range of time, and group
them as "Blocks." These Blocks are then used to re-create the animation
anywhere in time. Blocks can be added, removed, scaled, moved graphically
in Track View, and saved. Blocks can represent either absolute or relative
animation.
For example to animate a hand forming a guitar chord, all the rotations of
the fingers and hand can be saved as a block. This block can then be used to
recreate the hand and finger position, rotation, and animation whenever the
chord is played in an animation.
Essentially, block controllers allow you to build up libraries of animations and
apply them to objects as you choose.
TIP Euler Rotations will give you better results than TCB Rotation controllers when
you are working with blocks. Block controllers blend clips in a relative repeat
manner. If your motions do not loop exactly, your rotations start to drift. Also note
that block controllers only work with Keyframe controllers (non-procedural).
Master Block Parameters Dialog
After assigning a Master Block, right-click the MasterBlock track to display the
Master Block Parameters dialog on page 3205 . This is the first step in creating
a block.
With this dialog, you can save blocks and then load them later. Blocks are
saved as BLK files.
Track View Pick Dialog
The Track View Pick dialog on page 3211 is displayed when track selection is
necessary; for example, when you click Add in the Master Block Parameters
dialog. Select tracks in the dialog to include in a block. Valid tracks are shown
as darker.
Block Controller | 3067
Page 70
Block Parameters Dialog
After you create a block by clicking Add in the Master Block Parameters dialog
and then selecting tracks in the Track View Pick dialog, clicking OK in the
Track View Pick dialog displays the Block Parameters dialog on page 3204 .
Attach Controls Dialog (Loading Blocks)
The Attach Controls dialog on page 3201 is displayed when you click Load in
the Master Block Parameters dialog. Tracks in blocks saved previously can be
mapped to tracks in the current scene.
Slave Parameters Dialog (Slave Controller)
Every time a block is created, all tracks within the block are assigned a slave
controller, which allows the MasterBlock to transfer key data. The slave
controller tracks appear with the original tracks you used to create the block.
See Slave Parameters dialog on page 3209 .
MasterBlock Subtracks
Below the main MasterBlock track are subtracks. The first of these is always
Blend. The remaining subtracks are initially copies of the tracks used to create
the block.
Blend track Lets you animate the influence of the block. You can reduce the
block's influence by creating Blend keys with values less than 1.0. Default=1.0.
Block-specific subtracks Display the block name and its associated tracks.
Initially these are copies of the tracks used to create the block. You can edit
keys on these tracks to change the block's behavior.
3068 | Chapter 13 Animation
Page 71
Block Key Properties Dialog
Relative Motion Toggles between relative and absolute motion.
Start, End Set the first and last frames for this instance of the block (this
scales the block instance).
Procedures
Example: To create a block:
1 Animate two objects moving in the viewports. Make the final keyframe
for the objects frame 10.
2 Open Track View — Dope Sheet.
3 On the Track View hierarchy, expand Global Tracks, expand Block
Control, and then select Available.
Available is the track below the Block Control track.
4 From the Track View toolbar, choose Controller menu > Assign, select
Master Block in the dialog, and then click OK.
The Master Block Parameters dialog automatically displays.
5 Click Add on the Master Block Parameters dialog.
6 On the Track View Pick dialog, expand the tracks for the two animated
objects.
7 While holding down Ctrl, click the X,Y,Z Position tracks for both objects,
and then click OK.
8 On the Block Parameters dialog, type a name in the name field.
Block Controller | 3069
Page 72
Choose a name that will remind you of the animation in this block.
9 Set the End value to 10, and then click OK.
The Block will contain animation between frame 0 and frame 10.
10 Click OK to close the Master Block Parameters dialog.
The block has been created, and you can now use it.
■ Once a block is added, a slave controller is added to the controllers
on the original tracks. This enables communication between the track
and the Block controller.
■ With the Blend track (below the MasterBlock track in the Track View
hierarchy) you can animate how much of the block animation will
be in effect. Negative values reverse the animation.
■ Controllers that each block uses are listed under the block name. This
allows you to adjust the data for a particular block.
Example continued: To use a block:
1 In the Dope Sheet Key window, right-click the MasterBlock track.
A pop-up menu displays the name of blocks already created.
2 Select the name of the block you created earlier.
The Block is displayed in the Key window.
3 Drag the Block to start at frame 20, and click Play.
The animation repeats at frame 20.
You can create a number of blocks for different periods of an object's
animation, and use them at different locations in the MasterBlock track.
To move an inserted block:
■ In the Key window, select the block and then drag it left or right.
To scale (resize) an inserted block:
■ Select the key at the lower left or right corner of the block, and then drag
left or right.
To create a copy of a block:
■ Hold down Shift, and draft the block.
3070 | Chapter 13 Animation
Page 73
This creates a new instance of the block, which you can place at a different
time.
To remove an inserted block:
■ Click to select the block, then press Delete.
Interface
Inserted blocks appear in the Key window to the right of the MasterBlock controller
in the hierarchy under Global Tracks.
Block Control track Displays in Track View under Global Tracks.
To create a MasterBlock Control, expand Block Control, select Available, and
choose Controller > Assign.
MasterBlock Track Displays in Track View after you assign a Master Block
controller to an available track.
You can right-click the track in the Key window. This displays a pop-up menu
that shows the name of blocks that have been created. Choosing a block inserts
the block into the MasterBlock track. The dialog also has an entry, Properties,
that displays the Master Block Parameters dialog.
In the MasterBlock track, inserted blocks display as colored rectangles. The
name of the block appears at the center. In the lower left and right corners
are keys that indicate the beginning and end of the block's animation. Below
the name of the block is the letter “R” for relative, or “A” for absolute. Click
and drag the center of a block to move it in time. Select a key in the corner
of a Block to move one edge of the block (scale time).
Block Controller | 3071
Page 74
Right-click an inserted lock to display the Block Key Properties dialog (described
below).
Boolean Controller
Main toolbar > Curve Editor (Open) > Select a track containing a float value
in the Track View hierarchy > Track View menu bar > Controller menu >
Assign > Boolean controller
Graph Editors > Track View – Dope Sheet > Select a track containing a float
value in the Track View hierarchy > Track View menu bar > Controller menu
> Assign > Boolean controller
The Boolean controller is similar to the On/Off controller on page 3142 . By
default, it is assigned to tracks (such as an object's Visibility track) that provide
only binary on and off control.
NOTE The Boolean controller is useful for controlling the Enabled state in the
History Independent (HI) IK system on page 3331 .
It differs from the On/Off controller in two ways: first, each key has its own
float value, either 1.0 or 0.0, signifying its on or off state. This enhancement
leads to the second component that differentiates the Boolean controller from
its On/Off cousin: the ability to lay down sequential keys without inadvertently
changing the on/off state of any keys downstream.
3072 | Chapter 13 Animation
Page 75
The Boolean controller can be assigned to any parameter that would normally
be controlled by a float or boolean class controller, such as sphere's Hemisphere
or Smooth track.
Boolean controller key values can be changed in on of two ways: through
Track View's Dope Sheet editor or through MAXScript.
NOTE Although the Boolean controller displays a function curve in Track View's
Curve Editor, it does not display keys. Key time and value must be changed in the
Dope Sheet editor.
Procedures
To assign a Boolean controller and add keys:
1 Open Track View's Dope Sheet editor and select any track that would
normally be assigned a float or boolean class controller.
2 Right-click and select Assign Controller. Pick the Boolean controller from
the Assign Controller dialog, and click OK
3 From the main Track View toolbar, select the Add Keys button and
click anywhere on the selected track.
New keys with a value of 0.0 are added.
To change Boolean controller key values in Track View:
1 Open the Track View Dope Sheet editor and select a track that contains
a Boolean controller.
2 Select any key and type 1.0 or 0.0 into the key value field at the bottom
of the Track View dialog.
NOTE Values greater than 0.0 will automatically be clamped to 1.0
Boolean Controller | 3073
Page 76
To change Boolean controller key values via MAXScript:
■ Enter the following into either the MAXScript Listener or Mini
Listener:<node>.<animatable_property>.keys[<index_integer>].value =
<float> where <node> is the object containing the Boolean-controlled
parameter (for example, $Sphere01, <animatable_property> is the parameter
itself (for example, Smooth, <index_integer> is the actual sequential number
of the key in the key array, and <float> is either 1.0 or 0.0.
Color RGB Controller (Point3 XYZ Controller)
Main toolbar > Curve Editor (Open) > Select a material color track in the Track
View hierarchy. > Track View menu bar > Controller menu > Assign > Color
RGB
Graph Editors > Track View – Curve Editor > Select a material color track in
the Track View hierarchy. > Track View menu bar > Controller menu > Assign
> Color RGB
The Color RGB controller splits the R, G, and B components into three separate
tracks. You can use this controller with color tracks. By default, each track is
assigned a Bezier Float controller. The Bezier Float controller is a single
parameter controller.
NOTE The Color RGB and the Point3 XYZ controllers are identical in function,
except that the labels of their tracks are RGB and XYZ respectively. Point3 XYZ
controllers can be used for functions such as Noise Strength, and the FFD modifier.
3074 | Chapter 13 Animation
Page 77
Procedures
Example: To animate the background color of a rendered animation:
1 Open Track View – Curve Editor.
2 In the Track View hierarchy, expand the Environment track and then
select Background Color.
3 On the Track View menu, click Controller > Assign and select the Color
RGB controller.
4 Expand the Background Color track.
5 On the Track View toolbar, click Add Keys.
6 Add three keys along the red track at frames 0, 50, 100.
7 Right-click one of the keys to display the Bezier Float dialog. Change the
key values to 0, 400, and 0, respectively.
To see the background color change, move the time slider to the same
frame as the key that is being adjusted and render the scene. To see the
color change in an animated fashion, you must render the animation.
Although you can set values over 255 in the value field, the actual color
value stops at 255.
Interface
Bezier Float controller properties.
See Bezier Controller on page 3063 for a description of these parameters.
Color RGB Controller (Point3 XYZ Controller) | 3075
Page 78
Euler XYZ Rotation Controller
Main toolbar > Curve Editor (Open) > Select a rotation track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Euler XYZ
Graph Editors > Track View – Curve Editor > Select a rotation track in the
Track View hierarchy. > Track View menu bar > Controller menu > Assign >
Euler XYZ
Select an object in the viewport > Motion Panel > Assign Controller rollout >
Select the rotation track. Euler XYZ is assigned as the default controller.
The Euler XYZ Rotation controller is a compound controller that combines
separate, single-value float controllers to specify an angle of rotation about
each of the X, Y, and Z axes. Euler XYZ is not as smooth as quaternion rotation
(used by the TCB Rotation controller), but it is the only rotation type that you
can use to edit rotation function curves.
The Euler XYZ Rotation controller assigns individual tracks to the X, Y, and
Z components of position, rotation, and scale transforms. However, the
controller assigns three keys (one for each axis), by default. To avoid this, you
can use Customize User Interface on page 7489 actions to create explicit axis
keys. These are available in the Main UI group > Set Key Tools category.
The Gimbal reference coordinate system on page 902 is intended for use with
this controller. With other coordinate systems, rotating about one axis always
changes at least two tracks. With Gimbal rotation, rotating about one axis
changes only one track, making it easier to edit function curves.
Euler versus TCB Rotation
Euler rotation offers several advantages over the TCB Rotation controller,
which was the default rotation controller prior to 3ds Max 5. Euler rotation
provides function curves, while TCB does not. Euler rotation allows for three
separate curves that can be manipulated in the Curve Editor. TCB rotations
can be controlled only with tension, continuity, and bias settings, making it
difficult to keyframe and manipulate X, Y, and Z rotation independently.
3076 | Chapter 13 Animation
Page 79
On the other hand, TCB rotation allows for rotation greater than 180 degrees
on a given keyframe. If you turn on the Rotation Windup on page 3186 option,
you can get rotation values greater than 360 degrees.
TIP If you’re used to working with TCB rotation, you might find it difficult to adapt
to the Euler workflow. In that case, you might want to assign TCB as the default
rotation controller. See Specifying Default Controllers on page 3034 .
Euler Rotation and the Waveform Float Controller
Because the Euler Rotation controller uses radians, unit adjustments should
be made when other controllers are applied to Euler axes. For example, the
Waveform Float controller has a default amplitude of 100 in the Characteristic
Graph. When the Waveform Float controller is applied to an Euler axis, the
default amplitude is 100 radians. This sets the Amplitude setting to 5729.598
(the number of degrees in 100 radians).
Euler Rotation and the Noise Float Controller
When a Noise Float controller is applied to an Euler axis, the default Strength
setting is 286.479 or 50 percent of 10 radians in degrees (maximum deflection).
Euler Rotation and the MIDI Motion Capture Controller
When a MIDI Motion Capture controller is applied, the Parameter Scaling is
taken in radians so that the Max. default setting of 1.0 results in an upper
boundary of 57.2958 degrees.
Procedures
Example: To use Euler XYZ Rotation:
1 Create a box.
2 Go to the Motion panel and make sure the assigned rotation controller
is Euler XYZ. If not, highlight the Rotation track in the Assign Controller
rollout list, click Assign Controller, and then choose Euler XYZ in the
Assign Controller dialog list. Click OK.
3 Turn on Auto Key.
4 At the bottom of the PRS Parameters rollout, click Rotation.
5 On the Euler Parameters rollout, click the X rotation axis button, if
necessary.
Euler XYZ Rotation Controller | 3077
Page 80
6 In the Create Key group of the PRS Parameters rollout, click Rotation.
The software creates a rotational key.
7 Move the time slider to frame 50.
8 Again, in the Create Key group of the PRS Parameters rollout, click
Rotation.
9 On the Key Info (Basic) rollout, enter 500 in the Value field.
10 On the Euler Parameters rollout, click the Z rotation axis button and then
enter 90 in the Value field of the Key Info (Basic) rollout.
Play the animation. The box rotates 500 degrees around the X axis and
90 degrees around the Z axis. In this case the X-axis rotation takes place
first, and then Z-axis rotation.
To use Euler XYZ with List controllers for local rotation control:
You can mimic the local Euler rotation controller (available in earlier versions
of the software) by combining a list controller with an Euler XYZ rotation
controller.
1 Select the object for which you want to have local rotational control. For
example, create a teapot and a dummy.
2 Animate the dummy.
3 Open the Motion Panel.
4 In the Assign Controller rollout, select the Rotation transform, then assign
a LookAt controller to teapot, with the dummy assigned as the LookAt
Target.
You now have an object with rotation controlled through the dummy.
5 With the Rotation: LookAt controller selected in the window, again
choose Assign Controller and pick Rotation List.
Now there is a list controller, with the LookAt Constraint applied as the
first rotation controller in the list.
6 Scroll down in the window and select the entry labelled Available, then
again click Assign Controller.
7 Choose Euler XYZ.
You now have a list controller with a LookAt Rotation as the first
controller and an Euler XYZ as the second controller.
3078 | Chapter 13 Animation
Page 81
8 In the Rotation List rollout, highlight Euler XYZ in the Layers window,
then click Set Active.
9 In the Euler Parameters rollout, change the Axis Order to ZYX.
Now you can animate the rotation independent of the LookAt rotation
control. It should now behave the same as the Local Euler controller that
was available in versions 4 and earlier.
Interface
Euler parameters are displayed in the Motion panel.
The Euler parameters rollout is displayed when Rotation is selected in the
PRS Parameters rollout on page 3145 .
Axis Order Selects the order that rotations are calculated. The default is X,Y,Z
order, where the X axis is rotated first.
X Displays controller properties for X axis rotation angle.
Y Displays controller properties for Y axis rotation angle.
Z Displays controller properties for Z axis rotation angle.
Each axis uses its own independent controller using the float data type. For
example, the X and Y Rotation axes could use Bezier Float controllers, while
the Z rotation axis uses a Noise Float controller.
Expression Controller
Main toolbar > Curve Editor (Open) > Select a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Expression
Graph Editors > Track View – Curve Editor > Select a track in the Track View
hierarchy. > Track View menu bar > Controller menu > Assign > Expression
Animation menu > Position or Scale controller > Expression
Expression Controller | 3079
Page 82
Interface on page 3084 Procedures on page 3081
The Expression controller lets you use mathematical expressions to control
the following animation aspects:
■ Object parameters such as length, width, and height
■ Transform and modifier values such as an object's position coordinates
You can constrain values by basing them on the controller values of other
objects in the scene.
An expression is a mathematical function that returns a value. 3ds Max
evaluates the expression once for each frame of an animation, generating
values that can change from frame to frame.
You can create and manage Expression controllers in Track View on page
3426 and on the Motion panel on page 7455 . You can assign expressions to the
following kinds of scene elements:
ControllerScene element
Any numeric creation parameterCreation parameters
Transforms
Modifiers
Materials
3080 | Chapter 13 Animation
Position [X, Y, Z]
X Rotation
Y Rotation
Z Rotation
Scale [X%, Y%, Z%]
Any numeric modifier parameter (including
creation parameters)
Colors [R, G, B]
Any numeric material parameter
Page 83
NOTE Expression controllers can work only with the individual XYZ components
of Euler rotation. You can't assign an expression to TCB Rotation or other kinds of
rotation controllers.
See also:
■ Expression Techniques on page 299
■ Expression Controller Techniques on page 3086
■ Trigonometric Functions on page 309
■ Vectors on page 312
Procedures
To assign a constant value to a variable:
1 Highlight the variable name in the Scalars or Vectors list.
2 Click Assign To Constant.
A new dialog opens.
3 On the dialog, enter the new value (or, in the case of a vector, values) for
the constant, and then click OK.
To assign a controller to a variable:
1 Highlight the variable name in the Scalars or Vectors list.
2 Click Assign To Controller.
The Track View Pick subdialog is displayed, showing the track hierarchy.
The dialog display is similar to the Track View hierarchy.
3 Highlight the track for the variable to use, and then click OK.
Example: To create an expression that moves a sphere in a precise circle:
1 Create a sphere with Radius=15.0.
You'll use Track View to create the Expression controller.
2 In the active viewport, right-click the sphere and click Curve Editor.
Expression Controller | 3081
Page 84
3 In the Hierarchy list, scroll down to the Objects branch and, if necessary,
expand Sphere01 the branch so the sphere's Position track is visible. Click
the Position label to highlight it.
4 In the Hierarchy list, right-click the Position label and then choose Assign
Controller
The Assign Controller dialog opens.
5 Choose Position Expression from the list of controller types, and then
click OK.
The Expression Controller dialog opens.
NOTE You can also open the Expression Controller dialog with Track View
> Controller menu > Properties.
6 Replace the default expression by typing the following position expression
in the Expression field:
[100*cos(360*NT), 100*sin(360*NT), 0]
The expression specifies a circular path for the sphere. NT is a variable
that means normalized time. Movement based on NT happens exactly
once per the active time segment, regardless of how many frames are in
the animation.
7 Click Evaluate.
8 Play the animation. The sphere moves in a circle about the world origin
(0,0,0). The radius of the circular path is 100 units.
Example continued: To change the radius of the circle:
The two 100s in the position expression from the previous procedure specify
the radius. To adjust the radius of the circle's path, create a symbolic variable
to represent the radius. The variable has a constant value that is easy to edit.
1 Reopen Track View and the Expression Controller dialog if necessary.
2 In the Name field of the Expression Controller dialog, type radius Make
sure Scalar is chosen, and then click Create.
The variable name "radius" appears in the Scalars list of the dialog.
3 Click Assign To Constant.
A dialog titled "radius" opens.
4 Enter 150 in the Value field, and then click OK.
3082 | Chapter 13 Animation
Page 85
The radius variable is now 150.
Next you'll use the new variable in the expression.
Example continued: To replace the literal value with the variable name:
1 In the Expression field, change 100 to radius in both places. The
expression should now look like this:
[ radius*cos(360*NT), radius*sin(360*NT), 0]
2 Click Evaluate.
3 Play the animation. The sphere moves in a circle about the world origin
(0,0,0). The radius of the circular path is 150 units.
Example continued: To make the sphere rotate about a box:
1 Create a box about 40 units square, and animate its position over three
or four keyframes.
2 Select the sphere.
3 In the Name field of the Expression Controller dialog, enter boxposn.
Choose Vector, and then click Create.
The name "boxposn" is displayed in the Vectors list in the lower-left area
of the dialog.
Variable names are case sensitive; the variable name should be lower case.
4 Click Assign to Controller.
The Track View Pick dialog is displayed. It shows the object hierarchy as
it appears in the left side of Track View-Dope Sheet.
5 In the Hierarchy list, highlight the Position controller for Box01 and then
click OK.
6 In the Expression field, add boxposn as an offset:
Play the animation again. The sphere moves in a circle around the box
and follows the box wherever it moves.
Expression Controller | 3083
Page 86
Interface
TIP You can resize the dialog by dragging an edge or a corner.
Create Variables group
Name The variable name.
Scalar/Vector Choose the type of variable to create.
Create Creates the variable and adds it to the appropriate list.
You must enter a name and specify a type before clicking Create.
Delete Deletes the highlighted variable in the Scalar or Vector list.
Rename Renames the highlighted variable in the Scalar or Vector list.
First highlight the variable in the list; this places the name in the Name field.
Edit the name in the Name field, and then click Rename; the new name
replaces the previous one in the list.
Variable Parameters group
Tick Offset Contains an offset value.
A tick is 1/4800 of a second. If a variable has a non-zero tick offset, that value
is added to the current time.
3084 | Chapter 13 Animation
Page 87
Expression group
Type an expression in the Expression box.
The expression must be a valid mathematical expression. The result is either
a three-value vector for a vector expression (position, scale, or point3) or a
scalar value for a float expression.
Description group
Type text in this group to document an expression. For example, you can
describe user-defined variables.
Function List Displays a list of Expression controller functions.
In the list, p, q, and r represent scalar values or scalar expressions; V and W
represent vector values or vector expressions.
Save Saves an expression. Expressions are saved as files with a ..xpr file name
extension.
Load Loads an expression.
A saved expression does not include variable definitions or values. After loading
the expression, you need to redefine them.
Debug Displays the Expression Debug window.
This window shows the values of all variables, and the value of the expression.
When you change the variables or move the time slider, the Debug window
automatically updates so you can interactively view what's happening with
the expression. The values for frames (F), normalized time (NT), secs (S), and
ticks (T) are also displayed.
Evaluate Evaluate the expression for each frame in the animation.
There is no explicit assignment (= or := operator) as in a conventional
programming language; the assignment is implicit and takes place over time.
If the expression has a syntax error, an error message is displayed. The error
message is the first part of the expression itself. The last character in the error
message is the point of the error. This is usually where the error actually is,
unless the problem is that opening and closing parentheses (or the braces for
vectors) don't match. In this case, evaluation can proceed further before the
error is detected.
Close Closes the Expression Controller dialog.
Expression Controller | 3085
Page 88
Expression Controller Techniques
This topic summarizes some useful expression techniques. The following topics
review trigonometric functions and vector arithmetic. If you’re familiar with
these subjects you can skip the review topics. Use these expressions when you
have applied an Expression controller using the Assign Controller rollout in
the Motion panel.
Commonly Used Expressions
This topic lists some expressions that you might find useful in situations when
you animate.
Circular Path
[ Radius * cos(360*Time),
Radius * sin(360*Time), 0 ]
where Time is one of the predefined time variables such as NT or S.
If you make the two Radius values unequal, you get an elliptical path.
If you specify a nonzero Z component, the path is no longer planar.
Following Another Object
[X, Y, Z] + Position
where Position is the Position controller of the second object.
The vector [X, Y, Z] can be an offset from the second object. (If it’s [0,0,0], the
two objects occupy the same position.) It can also be a vector expression that
specifies some movement in itself.
Keeping an Object Between Two Objects
(Position1 + Position2) / 2
where Position1 and Position2 are the Position controllers of two objects.
The divisor 2 constrains the object to be halfway between the two other objects.
Other values constrain the object to other locations.
Bouncing Between Other Objects
(1+sin(360*Time))/2 * (Pos1-Pos2) + Pos2
3086 | Chapter 13 Animation
Page 89
where Time is one of the predefined time variables such as NT or S; Pos1 and
Pos2 are the Position controllers of two other objects.
The subexpression (1+sin(360*Time))/2 is a value that oscillates between 0
and 1 over time. (Pos1-Pos2) is the vector between the two other objects.
Multiplying the two and then adding Pos2 as an offset locates the object along
this vector.
Changing the Number of an Object’s Segments Based on Camera
Distance
This expression varies the number of segments in a cylinder based on the
distance of a camera. It is assigned to the cylinder’s Segments creation
parameter.
if ( (length(Camera-Myself) > 35),
3 + (50*Height) / length(Camera-Myself),
MaxSegs)
where Camera is the position controller of the camera; Myself is the cylinder’s
position controller; Height (= 70) is the cylinder’s height; MaxSegs (=100) is
the maximum number of segments.
When the camera is closer, more segments make the cylinder smoother; when
the camera is distant, the smoothing is less important and fewer segments
render more quickly.
The if() function returns its second argument if the first argument is true;
otherwise, it returns its third argument. In this example, if the camera is more
than 35 units away from the cylinder, the expression calculates the number
of segments; if the camera is 35 units away or closer, the number of segments
is the MaxSegs constant.
The values in the second argument are chosen so that as the distance decreases
toward the threshold of 35, the number of segments increases toward MaxSegs.
The addition "3+" ensures that the cylinder always has at least three segments,
even when the division rounds to zero (Segments is an integer).
NOTE To the expression, it doesn’t matter whether the camera is moving, or the
cylinder, or both.
Layer Controller
Main toolbar > Curve Editor (open) > Highlight a Layer controller track and
right-click > Properties
The Layer Controller dialog provides commands and options related to the
Layer controllers in your scene, which the system automatically assigns for
you when you enable animation layers on page 3089 on an object.
Unlike other controllers, you cannot assign a Layer controller explicitly to a
track; you first need to enable layers via the Animation Layers toolbar on
page 7293 or the Controller menu of the Curve Editor.
The Layer controller dialog has similarities to the List controller on page 3119
dialog. You can refer to it for complementary informations on some of the
options.
Animation Layers and Autodesk VIZ
Although the Animation Layers feature is not available in Autodesk VIZ, VIZ
can load and save objects that use this feature without any data loss. The Layer
controllers continue to exist in VIZ, and can even be viewed and edited in
Track View, although editing of the animation-layer data is not recommended
if the objects are to be returned to 3ds Max.
TIP For best results with objects that are to be brought into Autodesk VIZ, collapse
on page 3103 any animation layers before saving the objects.
Interface
There are two types of dialogs based on whether you assign a Layer controller
to a position or scale track, or to a rotation track.
3088 | Chapter 13 Animation
Page 91
List Window Displays all Layer controllers for the selected object, along with
their respective weight value.
Set Active Determines on which layer your animation keys are set. The active
controller is marked with an arrow in the list.
TIP You can also switch between active layers from the drop-down list on the
Animation Layers on page 3089 toolbar.
Delete Deletes the highlighted controller. A confirmation dialog prompts
you before.
Copy Copies the highlighted controller's data and enables Paste.
Paste Puts the copied content onto the highlighted controller.
Weight Sets the effects of the highlighted Layer controller
Average Weights When on, the weight values of all the controllers in the
list. Available only when you assign a Layer controller to a position track.
Default=off.
Pose to Pose Enables blending among controllers in the list. Available only
when you assign a Layer controller to a rotation track. Default=off.
Refer to the List controller on page 3119 for more information on this option.
Blend Euler As Quat When on, exposes the rotation axis order for blending
the Euler controllers, which can prove useful for controlling gimbal on page
896 . Available only when you assign a Layer controller to a rotation track.
Default=off.
X/Y/Z Order Sets the order in which the system calculates each rotation
axis. Available only when Blend Euler As Quat is on.
Disable Removes the Layer controller from the select object and reverts the
animation keys on the Base Layer to the original controller.
NOTE You have to delete or collapse (available on the Animation Layers on page
3089 toolbar) all layers above the Base Layer before you can disable it.
Animation Layers
Right-click unused area of any toolbar. > Animation Layers
Animation menu > Animation Layers
Layer Controller | 3089
Page 92
Animation layers let you combine multiple animation tracks on the same
object. You can use layers to store your animation experiments as you try
them out, turning them on or off to your liking. To enable, add, and control
layers, use commands from the Animation Layers toolbar.
Using animation layers is comparable to using both the List Controller on
page 3119 and biped layer system on page 4322 , while it is more flexible and
simpler for the animators to use.
Enabling Animation Layers
When you enable animation layers on page 3101 for a selected object by turning
them on in the Enable Anim Layers dialog, 3ds Max assigns a Layer controller
on page 3087 to the animation tracks.
When 3ds Max adds a Layer controller, it copies the original controller into
its first layer (called Base Layer), preserving any animation data it may already
contain.
NOTE The Base Layer is not a new layer; it is on the same level as any other
controller track.
3090 | Chapter 13 Animation
Page 93
NOTE If you layer-enable a controller but do not see a Layer controller appear in
the Track View hierarchy window, open and close the Enable Anim Layers dialog
again.
The original controller before you enable animation layers
The Layer controller nests
the original controller in its
Base Layer.
To revert from a Layer controller to the original controller, click Disable Anim
Layer on page 3103 on the Animation Layers toolbar. However, if your object
contains more than one animation layer, you first need to either delete or
collapse them before you can disable the Base Layer.
TIP You can also disable a Layer controller through the Layer Controller dialog
on page 3087 .
NOTE Turning off a track in the Enable Anim Layers dialog does not disable it.
You can assign a Layer controller either at the leaf level of a controller track
(such as a material's Diffuse Color track), or at a branch level (such as a Position
track).
The Layer controller affects a point 3 branch.
The Layer controller affects a leaf track.
Layer Controller | 3091
Page 94
If the selected object already has a list controller track when you enable layers,
that list controller is preserved within the Base Layer of the new Layer
controller.
The original List controller
The new Layer controller
nests the List Controller.
NOTE You cannot nest a Layer controller within a List controller or another Layer
controller.
Working with Animation Layers
The animation layers list works as follows (Refer to the procedure section
below on page 3095 for common workflow examples):
■ The list displays all existing layers for the selected object. If the object isn't
layer-enabled, “(Enable Layers)” appears instead.
■ By default, the Base Layer is the active layer when you first layer-enable
an object. This means that it stores all future animation keys.
■ Every subsequent layer you create becomes the new active layer and appears
after the previous one in the list.
■ When you select an object, its active layer is automatically chosen. When
expanded, the drop-down list highlights the active layer.
3092 | Chapter 13 Animation
Page 95
■ When you select multiple objects that have different active layers,
“(Multiple Active Layers)” appears.
The drop-down list displays all common layers (that is, with the same
name); layers not common to all are unavailable.
When you select multiple objects, layers not
common to all are unavailable on the
drop-down list.
■ You can turn on or off any layer in the expanded list by clicking its light
bulb icon. Turning off a layer hides its animation without deleting it.
To toggle a layer, click its light bulb icon.
■ You can include or exclude any layer from the output track by clicking its
plus/minus sign icon. The output track contains the sum of all included
layers. You can use this track to control other objects' tracks via MAXScript
and parameter wiring.
Layer Controller | 3093
Page 96
To toggle a layer's inclusion in the output track, click the plus/minus
sign icon.
TIP For a procedure that demonstrates how to use this option, see Example:
To link two objects with wire parameters using the Layer Controller's output
track: on page 3097 .
Each animation layer has a global weight value which, when changed, impacts
every controller within that active layer. Similar to the List controller on page
3119 , you can animate a layer's weight and toggle the visibility of the resulting
keys in the Track Bar using the Track Bar Filter menu on page 7322 .
When you add a new animation layer on page 3105 , you can pick a name
already in use by an existing layer; this links both layers' weight track, which
is now instanced.
Using Merged or XRef Scenes Containing Layers
When you merge on page 6854 or externally reference on page 6755 a source
scene (or object) containing layers into your master scene, the system adds
the incoming layers to the master scene's layer list.
3094 | Chapter 13 Animation
Page 97
NOTE All animations within an incoming XRef object or scene is preserved within
an XRef controller on page 3194 . You cannot edit them unless you merge the XRef
object or XRef controller into your master scene.
If a layer name from the merged or XRef scene matches one from the master
scene, both layers become synchronized ; that is, the weight track is instanced
to both of them.
Collapsing Layers
Collapsing a layer merges keys if any of these conditions are met:
■ the two controllers are of similar types (Bezier, Float, TCB, etc.).
■ they have the same tangent type.
■ the Blend Euler As Quat option of the Layer Controller dialog on page 3087
is turned off.
However, many factors can cause a collapse per frame (that is, setting a key
on every frame):
■ If one controller type is TCB (Quaternion) and the other is Bezier (Euler).
■ If the Blend Euler As Quat option of the Layer Controller dialog on page
3087 is turned on, and both rotation controllers are Euler-driven.
■ If the Blend Euler As Quat option of the Layer controller is turned off, and
both rotation controllers are Euler-driven, but both have different tangent
types.
■ If either controller is non-keyable.
Procedures: Integrating Animation Layers in a Worklow
The following sequence of procedures illustrate how you can use animation
layers in your workflow to quickly create and combine different animation
tracks together for the same object. You should be familiar with the basics of
animation and key creation before going through the following steps.
Example: To enable layers:
1 Create a teapot, and then turn on Auto Key and set position keys on the
X axis at frames 0, 15, and 30.
Layer Controller | 3095
Page 98
2 Open the Curve Editor on page 3441 and locate the teapot's Position track
in the hierarchy window.
3 Choose Animation > Animation Layers to open the Animation Layers
toolbar.
4 Make sure the teapot is selected, then click Enable Anim Layers.
5 On the Enable Anim Layers dialog, turn on only the Position track, and
click OK.
The new Layer controller now nests your teapot's animation.
Example: To add a layer and change its controller type:
This continues from the previous procedure, in which you enabled layers for
an animated object.
1 Click Add Anim Layer on the Animation Layers toolbar.
2 On the Create New Animation Layer dialog, enter "Noise Layer” as name,
and click OK.
This adds the new animation layer under the Base Layer in the hierarchy
list.
3 In the hierarchy window of the Curve Editor on page 3441 , Highlight Noise
Layer and right-click it.
4 From the contextual menu, choose Assign Controller and pick a Noise
Position controller.
5 This opens the Noise Controller dialog. Leave the options as they are and
close the dialog.
Two different controllers are now driving the teapot's position.
3096 | Chapter 13 Animation
Page 99
Example: To turn a layer on and off:
This procedure discusses turning existing layers on and off. It continues from
the previous procedure.
1 On the Animation Layers toolbar, expand the drop-down list.
The list currently contains both the original base layer and Noise Layer
from the previous procedure.
2 Move your cursor across the list and click the light bulb icon next to Noise
Layer.
This turns off the layer and hides the Noise controller track from the rest
of the tracks.
3 Drag the time slider and notice how the teapot does not shake anymore.
4 Try turning on and off both layers in the list to see the results.
Example: To link two objects with wire parameters using the Layer Controller's
output track:
This procedure refers to a simple way to use the output track to control a cube's
position through wire parameters. It continues from the previous procedure.
1 Make sure both layers listed on the Animation Layers toolbar are on, as
indicated by the light bulb icons.
2 Create a box next to the teapot.
3 Right-click it and choose Wire Parameters from the quad menu.
4 Navigate through the pop-up menu and choose Z Position.
Layer Controller | 3097
Page 100
5 A dashed line appears. Click the teapot and choose the X Output Track
from the pop-up menu.
6 The Parameter Wiring dialog on page 3249 opens, with the two highlighted
parameters. Click the left directional arrow button to control the cube's
position using the teapot's animation.
3098 | Chapter 13 Animation
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.