Autodesk 3ds Max 3ds Max - 2008 User Manual

Page 1
Autodesk 3ds Max
Help: Volume 2
®
®
2008
Page 2
©
2007 Autodesk, Inc. All rights reserved. Except as otherwise permitted by Autodesk, Inc., this publication, or parts thereof, may not be
reproduced in any form, by any method, for any purpose. Certain materials included in this publication are reprinted with the permission of the copyright holder. Portions Copyrighted © 2005 Microsoft Corporation. All rights reserved. Portions Copyrighted mental images GmbH 1989-2005. This software contains source code provided by mental images GmbH. Portions Copyright Max HTR created 2003-2005 by Motion Analysis. Portions zlib © 2007 TinyXml. REALVIZ Copyright © 2006 REALVIZ S.A. All rights reserved. JPEG software is copyright © 1991-1998, Thomas G. Lane. All Rights Reserved. This software is based in part on the work of the Independent JPEG Group. Portions Copyrighted © 2005 Blur Studio, Inc. Portions Copyrighted © 1989-2005 Joseph Alter, Inc. Credit to Joe Alter, Gonzalo Rueda, and Dean Edmonds. Certain patents licensed from Viewpoint Corporation. This product includes Radiance software (http://radsite.lbl.gov/radiance) developed by the Lawrence Berkeley National Laboratory (http://www.lbl.gov). Copyright © 1990-2005. The Regents of the University of California through Lawrence Berkeley National Laboratory. All rights reserved. OpenEXR Bitmap I/O Plugin © 2003-2005 SplutterFish, LLC. OpenEXR © 2003 Industrial Light and Magic a division of Lucas Digital Ltd. LLC. Zlib © 1995-2003 Jean-loup Gaily and Mark Alder Portions Copyrighted © 2000-2005 Size8 Software, Inc. Portions Copyrighted © 2006 IntegrityWare, Inc. Portions © Copyrighted 1999-2005 Havok.com Inc. (or its licensors). All Rights Reserved. Portions Copyright 1998-2003 by Neil Hodgson. All Rights Reserved. Portions of this software Point Cache 2 © 2005-2006 Blizzard Entertainment, Inc. Portions Copyrighted © 2003 ATI Technologies, Inc. All Rights Reserved. Permission to use, copy, modify, and distribute this software and it documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. Portions Copyrighted © 1991, 1999 Free Software Foundation, Inc. Refer to GNU Lesser General Public License at http://www.gnu.org/licenses/lgpl.html. Copyright © 1991-1994 by Arthur D. Applegate. All Rights Reserved. No part of this source code may be copied, modified or reproduced in any form without retaining the above copyright notice. This source code, or source code derived from it, may not be redistributed without express written permission of the author. Portions Copyrighted © 1999, 2000 NVIDIA Corporation. This file is provided without support, instructions or implied warranty of any kind. NVIDIA makes no guarantee of its fitness for a particular purpose and is not liable under any circumstances for any damages or loss whatsoever arising from the use or inability to use this file or items derived from it. Portions Copyrighted © 2006 NVIDIA Corporation. The following are registered trademarks or trademarks of Autodesk, Inc., in the USA and other countries: 3DEC (design/logo), 3December, 3December.com, 3ds Max, ActiveShapes, Actrix, ADI, Alias, Alias (swirl design/logo), AliasStudio, Alias|Wavefront (design/logo), ATC, AUGI, AutoCAD, AutoCAD Learning Assistance, AutoCAD LT, AutoCAD Simulator, AutoCAD SQL Extension, AutoCAD SQL Interface, Autodesk, Autodesk Envision, Autodesk Insight, Autodesk Intent, Autodesk Inventor, Autodesk Map, Autodesk MapGuide, Autodesk Streamline, AutoLISP, AutoSnap, AutoSketch, AutoTrack, Backdraft, Built with ObjectARX (logo), Burn, Buzzsaw, CAiCE, Can You Imagine, Character Studio, Cinestream, Civil 3D, Cleaner, Cleaner Central, ClearScale, Colour Warper, Combustion, Communication Specification, Constructware, Content Explorer, Create>what's>Next> (design/logo), Dancing Baby (image), DesignCenter, Design Doctor, Designer's Toolkit, DesignKids, DesignProf, DesignServer, DesignStudio, Design|Studio (design/logo), Design Your World, Design Your World (design/logo), DWF, DWG, DWG (logo), DWG TrueConvert, DWG TrueView, DXF, EditDV, Education by Design, Extending the Design Team, FBX, Filmbox, FMDesktop, Freewheel, GDX Driver, Gmax, Heads-up Design, Heidi, HOOPS, HumanIK, i-drop, iMOUT, Incinerator, IntroDV, Inventor, Inventor LT, Kaydara, Kaydara (design/logo), LocationLogic, Lustre, Maya, Mechanical Desktop, MotionBuilder, ObjectARX, ObjectDBX, Open Reality, PolarSnap, PortfolioWall, Powered with Autodesk Technology, Productstream, ProjectPoint, Reactor, RealDWG, Real-time Roto, Render Queue, Revit, Showcase, SketchBook, StudioTools, Topobase, Toxik, Visual, Visual Bridge, Visual Construction, Visual Drainage, Visual Hydro, Visual Landscape, Visual Roads, Visual Survey, Visual Syllabus, Visual Toolbox, Visual Tugboat, Visual LISP, Voice Reality, Volo, and Wiretap. The following are registered trademarks or trademarks of Autodesk Canada Co. in the USA and/or Canada and other countries: Backburner, Discreet, Fire, Flame, Flint, Frost, Inferno, Multi-Master Editing, River, Smoke, Sparks, Stone, Wire. mental images is a registered trademarks of mental images GmbH in the U.S.A. and/or other countries. clothfx™ is a trademark of Size8 Software, Inc. Havok.com™ is a trademark or registered trademark of Havok.com Inc. or its licensors. Intel is a registered trademark of Intel Corporation. All other brand names, product names or trademarks belong to their respective holders.
Disclaimer
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. Thats 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 arent 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 View Provides 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 parameters 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 spheres 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 spheres 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 spheres 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 View Opens 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, its 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 objects 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 Z Creates an explicit key on the designated position axis.
Key Rotation X, Y, or Z Creates an explicit key on the designated rotation axis.
Key Scale X, Y, or Z Creates 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 objects 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.
PRS Parameters Rollout
Select an object > Motion panel > Parameters > PRS Parameters rollout
3050 | Chapter 13 Animation
Page 53
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 cant 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.
Interface
See Audio Controller Dialog on page 3198
Barycentric Morph Controller
Select an object. > Create panel > Geometry > Compound Objects > Morph
Barycentric Morph Controller | 3061
Page 64
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 Types Sets 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 Types Sets 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 youre 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:
[radius * cos(360*NT), radius * sin(360*NT), 0]+boxposn.
7 Click Evaluate, and then click Close.
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 youre 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 its [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 cylinders 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 cylinders position controller; Height (= 70) is the cylinders 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
Layer Controller | 3087
Page 90
Select layer-enabled object. > Motion Panel > Parameters > Position/Rotation/Scale
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 con­troller before you en­able 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 af­fects a point 3 branch.
The Layer controller af­fects 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 con­troller
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...