Autodesk 3ds Max 2009 Help Volume 2 3dsmax En Vol2
User Manual: autodesk 3ds Max - 2009 - Help Volume 2 Free User Guide for Autodesk 3ds Max Software, Manual
Open the PDF directly: View PDF
.
Page Count: 2577
| Download | |
| Open PDF In Browser | View PDF |
Autodesk 3ds Max ® ® 2009 Help: Volume 2 © 2008 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 Copyright © 2005 Microsoft Corporation. All rights reserved. Portions Copyright Max HTR created 2003-2005 by Motion Analysis. REALVIZ Copyright © 2006 REALVIZ S.A. All rights reserved. Portions of this software JSR-184 Exporter Copyright © 2004 Digital Element, Inc. 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 Copyright © 2005 Blur Studio, Inc. Portions Copyright © 1999-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. Portions Copyright © 1990-2007 Info-ZIP. All rights reserved. For the purposes of this copyright and license, "Info-ZIP" is defined as the following set of individuals: Mark Adler, John Bush, Karl Davis, Harald Denker, Jean-Michel Dubois, Jean-loup Gailly, Hunter Goatley, Ed Gordon, Ian Gorman, Chris Herborth, Dirk Haase, Greg Hartwig, Robert Heath, Jonathan Hudson, Paul Kienitz, David Kirschbaum, Johnny Lee, Onno van der Linden, Igor Mandrichenko, Steve P. Miller, Sergio Monesi, Keith Owens, George Petrov, Greg Roelofs, Kai Uwe Rommel, Steve Salisbury, Dave Smith, Steven M. Schweda, Christian Spieler, Cosmin Truta, Antoine Verheijen, Paul von Behren, Rich Wales, Mike White. This software is provided "as is," without warranty of any kind, express or implied. In no event shall Info-ZIP or its contributors be held liable for any direct, indirect, incidental, special or consequential damages arising out of the use of or inability to use this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the above disclaimer and the following restrictions: 1) Redistributions of source code (in whole or in part) must retain the above copyright notice, definition, disclaimer, and this list of conditions. 2) Redistributions in binary form (compiled executables and libraries) must reproduce the above copyright notice, definition, disclaimer, and this list of conditions in documentation and/or other materials provided with the distribution. The sole exception to this condition is redistribution of a standard UnZipSFX binary (including SFXWiz) as part of a self-extracting archive; that is permitted without inclusion of this license, as long as the normal SFX banner has not been removed from the binary or disabled. 3) Altered versions--including, but not limited to, ports to new operating systems, existing ports with new graphical interfaces, versions with modified or added functionality, and dynamic, shared, or static library versions not from Info-ZIP--must be plainly marked as such and must not be misrepresented as being the original source or, if binaries, compiled from the original source. Such altered versions also must not be misrepresented as being Info-ZIP releases--including, but not limited to, labeling of the altered versions with the names "Info-ZIP" (or any variation thereof, including, but not limited to, different capitalizations), "Pocket UnZip," "WiZ" or "MacZip" without the explicit permission of Info-ZIP. Such altered versions are further prohibited from misrepresentative use of the Zip-Bugs or Info-ZIP e-mail addresses or the Info-ZIP URL(s), such as to imply Info-ZIP will provide support for the altered versions. 4) Info-ZIP retains the right to use the names "Info-ZIP," "Zip," "UnZip," "UnZipSFX," "WiZ," "Pocket UnZip," "Pocket Zip," and "MacZip" for its own source and binary releases. Portions relating toOpenEXR Bitmap I/O Plugin © 2003-2005 SplutterFish, LLC. Portions relating to OpenEXR © 2003 Industrial Light and Magic a division of Lucas Digital Ltd. LLC. Portions relating to Zlib © 1995-2004 Jean-loup Gaily and Mark Alder Portions Copyright © 2000-2005 Size8 Software, Inc. Portions Copyright © 1988-1997 Sam Leffler. Portions Copyright © 1991-1997 Silicon Graphics, Inc. Permissions to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. Portions Copyright © 2006 IntegrityWare, Inc. Portions © Copyright 1999-2005 Havok.com Inc. (or its licensors). All Rights Reserved. See http://www.havok.com for details. Portions Copyright © MAX2Obj and Obj2Max created 1996-2001 by Harald A. Blab. Portions developed by Digimation, Inc. for the exclusive use of Autodesk, Inc. Portions Copyright 1998-2003 by Neil Hodgson. 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 of this software, Point Cache 2 are copyright © 2005-2006 Blizzard Entertainment, Inc. Portions Copyright © 2003 ATI Technologies, Inc. All Rights Reserved. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and derivative works and that both the copyright notice and this permission notice appear in support documentation, and that the name of ATI Technologies, Inc. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. Portions Copyright © 1994 F. Kenton Musgrave. Portions of this software are 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 Copyright ©1995, 1996 Guy Eric Schalnat, Group 42, Inc. Portions Copyright ©1996, 1997 Andreas Dilger. Portions Copyright © 1989, 1991, 1993 Aladdin Enterprises. All rights reserved. Portions Copyright © 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 Copyright © 2006 NVIDIA Corporation. Portions Copyright 1990-1991 by Thomas Knoll. Copyright 1992-1995 by Adobe Systems, Inc. Portions Copyright 1993-1996, Adobe Systems, Incorporated. All rights reserved worldwide. This software contains source code provided by mental images GmbH. Portions Copyright Guruware OBJio © 2007 http://www.guruware.at Portions Copyright Orbaz Technologies © 2007 Portions Copyright Mathew Kaustinen © 2007 Trademarks 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, Exposure, 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, Mudbox, NavisWorks, ObjectARX, ObjectDBX, Open Reality, Opticore, Opticore Opus, PolarSnap, PortfolioWall, Powered with Autodesk Technology, Productstream, ProjectPoint, ProMaterials, Reactor, RealDWG, Real-time Roto, Recognize, Render Queue, Reveal, Revit, Showcase, ShowMotion, SketchBook, SteeringWheels, StudioTools, Topobase, Toxik, ViewCube, 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, Wiretap, and WiretapCentral. 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, and Wire. 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. Space Warps and Particle Systems 14 Space warps and particle systems are additional modeling tools. Space warps are “force fields” that deform other objects, creating the effect of ripples, waves, blowing wind, and so on. Particle systems generate particle sub-objects for the purpose of simulating snow, rain, dust, and so on. (You use particle systems primarily in animations.) See also: ■ Space Warp Objects on page 2685 ■ Particle Flow on page 2795 ■ Non-Event-Driven Particle Systems on page 3002 Space Warp Objects Create panel > Space Warps Space warps are nonrenderable objects that affect the appearance of other objects. Space warps create force fields that deform other objects, creating the effect of ripples, waves, blowing wind, and so on. Space warps behave somewhat like modifiers, except that space warps influence world space, rather than object space, as geometric modifiers do. When you create a space warp object, viewports show a wireframe representation of it. You can transform the space warp as you do other 3ds Max objects. The position, rotation, and scale of the space warp affect its operation. 2685 Surfaces deformed by space warps Left: Bomb Right: Ripple Rear: Wave A space warp affects objects only when the objects are bound to it on page 2691. The warp binding appears at the top of the object's modifier stack. A space warp is always applied after any transforms or modifiers. When you bind multiple objects to a space warp, the space warp's parameters affect all the objects equally. However, each object's distance from the space warp or spatial orientation to the warp can change the warp's effect. Because of this spatial effect, simply moving an object through warped space can change the warp's effect. You can also use multiple space warps on one or more objects. Multiple space warps appear in an object's stack in the order you apply them. NOTE You can take advantage of the AutoGrid feature to orient and position new space warps with respect to existing objects. See AutoGrid on page 2597 for details. 2686 | Chapter 14 Space Warps and Particle Systems Space Warps and Supported Objects Some types of space warps are designed to work on deformable objects, such as geometric primitives, meshes, patches, and splines. Other types of warps work on particle systems such as Spray and Snow. Five space warps (Gravity, PBomb, Wind, Motor, and Push) can work on particle systems and also serve special purposes in a dynamics simulation. In the latter case, you do not bind the warps to objects, but rather assign them as effects in the simulation. On the Create panel, each space warp has a rollout labeled Supports Objects Of Type. This rollout lists the kind of objects you can bind to the warp. Basics of Using Space Warps Follow these general steps to use space warps: 1 Create the space warp. 2 Bind objects to the space warp. Click Bind To Space Warp on the main toolbar (available from the Select And Link flyout), and then drag between the space warp and the object. The space warp has no visible effect on your scene until you bind an object, system, or selection set to it. 3 Adjust the space warp's parameters. 4 Transform the space warp with Move, Rotate, or Scale. The transforms often directly affect the bound object. You can animate space warp parameters and transforms. You can also animate space warp effects by animating transforms of an object bound to the warp. Particle Leakage and Deflector Space Warps A deflector is a space warp that acts as a barrier to particles in particle systems. Occasionally stray particles can leak through a deflector under the following circumstances: ■ When a particle happens to hit the deflector too near the end or beginning of a time interval, and numerical error in the solution doesn't report a hit Space Warp Objects | 2687 ■ When a particle hits too near the edge of a face referenced by a UDeflector, and neither face finds it ■ When a particle is moving quickly and first appears too close to the deflector, so the very first update cycle within the particle system takes it past the deflector without the deflector ever seeing it Often this isn't a problem because the particles bounce off solid objects, so you don't see the errant particles. When it does cause problems, you can use a planar deflector instead of a UDeflector, a collection of planars to approximate the mesh, or a simple mesh to replace the planar. The solutions vary, so where one has a glitch the other might work just fine. If particles are moving fast and the deflector is in a particular position (for example, it might be too close to the emitter) many particles can leak through defectors. Sometimes you can fix this leakage by changing the particle system's Subframe Sampling setting or the particle speed. Other times you must reposition the deflector farther away from the emitter. In addition, particles imbued with bubble motion on page 3067 can leak through deflectors, particularly when set to high amplitudes. To avoid this, use alternative methods of implementing bubble-like motion, such as varying speed (see Particle Generation Rollout on page 3049), setting a higher angle for the stream spread with spray systems (see Spray Particle System on page 3016, Super Spray Particle System on page 3025), or using larger particles with an animated texture map. Space Warp Categories There are four categories of space warps, available via the list on the Create panel's Space Warps category. Forces These space warps are used to affect particle systems and dynamics systems. All of them can be used with particles, and some can be used with dynamics. The Supports Objects of Type rollout indications which systems each space warp supports. 2688 | Chapter 14 Space Warps and Particle Systems Motor Space Warp on page 2696 Push Space Warp on page 2691 Vortex Space Warp on page 2701 Drag Space Warp on page 2706 Path Follow Space Warp on page 2717 PBomb Space Warp on page 2712 Displace Space Warp on page 2727 Gravity Space Warp on page 2721 Wind Space Warp on page 2724 Deflectors These space warps are used to deflect particles or to affect dynamics systems. All of them can be used with particles and with dynamics. The Supports Objects of Type rollout indicates which systems each space warp supports. PDynaFlect Space Warp on page 2738 POmniFlect Space Warp on page 2732 SDynaFlect Space Warp on page 2745 SOmniFlect Space Warp on page 2743 UDynaFlect Space Warp on page 2748 UOmniFlect Space Warp on page 2746 SDeflector Space Warp on page 2751 Space Warp Objects | 2689 UDeflector Space Warp on page 2754 Deflector Space Warp on page 2757 Geometric/Deformable These space warps are used to deform geometry. FFD(Box) Space Warp on page 2760 FFD(Cyl) Space Warp on page 2767 Wave Space Warp on page 2777 Ripple Space Warp on page 2781 Displace Space Warp on page 2727 Conform Space Warp on page 2785 Bomb Space Warp on page 2789 Modifier-Based These are space-warp versions of object modifiers (see Modify Panel on page 7633). Read more about these in Modifier-Based Space Warps on page 2793. Bend Modifier on page 1208 Noise Modifier on page 1573 Skew Modifier on page 1668 Taper Modifier on page 1811 Twist Modifier on page 1837 Stretch Modifier on page 1752 Procedures To create a space warp: 1 On the Create panel, click Space Warps. The Space Warps panel is displayed. 2 Choose a category of space warp from the list. 3 On the Object Type rollout, click a space warp button. 2690 | Chapter 14 Space Warps and Particle Systems TIP You can take advantage of the AutoGrid feature to orient and position new space warps with respect to existing objects. For details, see AutoGrid on page 2597. 4 Drag in a viewport to create the space warp. See the topics for the various space warps for further details. Bind to Space Warp Main toolbar > Bind to Space Warp Use the Bind to Space Warp button to attach the current selection to a space warp on page 8132 or vice versa. Procedures To bind the current selection to a space warp: 1 Select an object 2 Click Bind to Space Warp. 3 Drag a line from the selected object to the space warp object. You can also press H to select the space warp by name. The space warp object flashes for a moment to show that the bind was successful. Forces Push Space Warp Create panel > Space Warps > Forces > Object Type rollout > Push Create menu > Space Warps > Forces > Push Bind to Space Warp | 2691 Push disperses a cloud of particles The Push space warp applies a force to either particle systems on page 2795 or dynamics systems on page 3852. The effect is slightly different, depending on the system. ■ Particles: Applies a uniform, unidirectional force in a positive or negative direction. A positive force moves in the direction of the pad on the hydraulic jack. The breadth of the force is infinite, perpendicular to the direction; you can limit it using the Range option. ■ Dynamics: Provides a point force (also called a point load) away from the pad of the hydraulic jack icon. A negative force pulls in the opposite direction. In dynamics, applying a force is the same as pushing something with your finger. 2692 | Chapter 14 Space Warps and Particle Systems Push viewport icon Procedures To create a Push space warp: 1 On the Create panel, click Space Warps. Choose Forces from the list, and then on the Object Type rollout, click Push. 2 Drag in a viewport to define the size. The Push warp appears as a hydraulic jack icon. Forces | 2693 Interface 2694 | Chapter 14 Space Warps and Particle Systems Timing group On Time/Off Time The numbers of the frames in which the space warp begins and ends its effect. Because Push moves the particles to which it's applied over time, no keyframes are created. Strength Control group Basic Force The amount of force exerted by the space warp. Newtons/Pounds This option specifies the units of force used by the Basic Force spinner. A pound is about 4.5 Newtons, and one newton is one kilogram-per-second-squared. When Push is applied to particle systems, these values have only subjective meaning because they depend on the built-in weighting factors and time scaling used by the particle system. However, when used in a dynamics system, the value listed is precisely the value used. Feedback On When on, the force varies depending on the speed of the affected particles relative to the specified Target Speed. When off, the force remains constant, regardless of the speed of the affected particles. Reversible When on, if the particle's speed exceeds the Target Speed setting, the force is reversed. Available only if you turn on Feedback On. Target Speed Specifies the maximum speed in units per frame before the Feedback takes effect. Available only if you turn on Feedback On. Gain Specifies how quickly the force adjusts to approaching the target speed. If set to 100 percent, the correction is immediate. If set lower, a slower and "looser" response occurs. Available only if you turn on Feedback On. NOTE Setting Gain above 100 percent can result in over-correction, but is sometimes necessary to overcome damping from other system settings, such as IK damping. Periodic Variation group These settings introduce variations into the force by affecting the Basic Force value randomly. You can set two waveforms to produce a noise effect. Enable Turns on the variations. Period 1 The time over which the noise variation makes a full cycle. For example, a setting of 20 means one cycle per 20 frames. Forces | 2695 Amplitude 1 The strength of the variation (in percent). This option uses the same types of units as the Basic Force spinner. Phase 1 Offsets the variation pattern. Period 2 Provides an additional variation pattern (a second wave) to increase the noise. Amplitude 2 The strength of the variation of the second wave (in percent). This option uses the same types of units as the Basic Force spinner. Phase 2 Offsets the variation pattern of the second wave. Particle Effect Range group Lets you restrict the Push effect's range to a specific volume. This affects particle systems only; it has no effect on dynamics. Enable When on, limits the range of the effect to a sphere, displayed as a tri-hooped sphere. The effect falls off increasingly as the particles near the boundary of the sphere. Range Specifies the radius of the range of the effect, in units. Display Icon group Icon Size Sets the size of the Push icon. This is for display purposes only, and does not alter the Push effect. Motor Space Warp Create panel > Space Warps > Forces > Object Type rollout > Motor Create menu > Space Warps > Forces > Motor 2696 | Chapter 14 Space Warps and Particle Systems Motor disperses a cloud of particles The Motor space warp works like Push on page 2691, but applies rotational torque to the affected particles or objects rather than a directional force. Both the position and orientation of the Motor icon affect particles, which swirl around the Motor icon. When used in dynamics, the position of the icon relative to the affected object has no effect, but the orientation of the icon does. Forces | 2697 Motor viewport icon (with particle system on the left) Procedures To create a motor space warp: 1 On the Create panel, click Space Warps > Forces > Motor. Choose Forces from the list, then on the Object Type rollout, click Motor. 2 Click and drag in a viewport to define the size. The Motor warp appears as a box-shaped icon with an arrow indicating the direction of the torque. 2698 | Chapter 14 Space Warps and Particle Systems Interface Timing group On Time/Off Time The numbers of the frames in which the space warp begins and ends its effect. Because Motor moves the objects to which it's applied over time, no keyframes are created. Strength Control group Basic Torque The amount of force exerted by the space warp. N-m/Lb-ft/Lb-in Specify the unit of measure for the Basic Torque setting, using common world measurements of torque. N-m stands for Newton meters, Lb-ft stands for pound-force feet, and Lb-in stands for pound-force inches. Feedback On When on, the force varies depending on the speed of the affected objects relative to the specified Target Speed. When off, the force remains constant, regardless of the speed of the affected objects. Reversible When on, if the object's speed exceeds the Target Speed setting, the force is reversed. Available only if you turn on Feedback On. Target Revs Specifies the maximum revolutions before the feedback takes effect. Speed is specified in units traveled per frame. Available only if you turn on Feedback On. Forces | 2699 RPH/RPM/RPS Specifies the units of measure for Target Revs in revolutions per hour, minute, or second. Available only if you turn on Feedback On. Gain Specifies how quickly the force adjusts to approaching the target speed. If set to 100%, the correction is immediate. If set lower, a slower and "looser" response occurs. Available only if you turn on Feedback On. NOTE Setting Gain above 100% can result in over-correction, but is sometimes necessary to overcome damping from other system settings, such as IK damping. Periodic Variation group These settings introduce variations into the force by affecting the Basic Torque value randomly. You can set two waveforms to produce a noise effect. Enable Turn on to enable the variations. 2700 | Chapter 14 Space Warps and Particle Systems Period 1 The time over which the noise variation makes a full cycle. For example, a setting of 20 means one cycle per 20 frames. Amplitude 1 The strength of the variation (in percent). This option uses the same types of units as the Basic Torque spinner. Phase 1 Offsets the variation pattern. Period 2 The next two spinners provide an additional variation pattern to increase the noise. Amplitude 2 The strength of the variation of the second wave in (percent). This option uses the same types of units as the Basic Torque spinner. Phase 2 Offsets the variation pattern of the second wave. Particle Effect Range group Lets you restrict the Motor effect's range to a specific spherical volume. This affects particles systems only; it has no effect on dynamics. Enable When on, limits the range of the effect to a sphere, displayed as a tri-hooped sphere. The effect falls off increasingly as the particles near the boundary of the sphere. Range Specifies the radius of the range of the effect, in units. Display Icon group Icon Size Sets the size of the Motor icon. This is for display purposes only, and does not alter the Motor effect. Vortex Space Warp Create panel > Space Warps > Forces > Object Type rollout > Vortex Create menu > Space Warps > Forces > Vortex The Vortex space warp applies a force to particle systems on page 2795, spinning them through a whirling vortex, and then moving them down a long, thin spout or vortex well. Vortex is useful for creating black holes, whirlpools, tornadoes, and other funnel-like objects. The space warp settings let you control the vortex shape, the well characteristics, and rate and range of particle capture. The shape of the vortex is also affected by particle system settings, such as speed. Forces | 2701 Particle stream caught in a vortex Procedures To create a Vortex space warp: 1 On the Create panel, click Space Warps. Choose Forces from the list, and then click Vortex. 2 Determine which world axis you want the vortex to spiral around, and then drag in the appropriate viewport to create the space warp. For example, if you want the vortex to spin around the vertical world axis, create the space warp in the Top viewport. You can rotate the warp later to change the vortex direction, and animate the warp orientation. 2702 | Chapter 14 Space Warps and Particle Systems The Vortex warp appears as a curved-arrow icon in the plane you drag in, with a second, perpendicular arrow indicating the axis of rotation as well as the direction of the well. This second axis is called the drop axis. NOTE The position of the space warp plays an important role in the results. The vertical position affects the shape of the vortex, and the horizontal position determines its location. If you want the particles to spiral around the particle emitter, place both at the same location. Forces | 2703 Interface Timing group Time On/Time Off The frame numbers at which the space warp becomes active and becomes inactive. 2704 | Chapter 14 Space Warps and Particle Systems Vortex Shape group Taper Length Controls the length of the vortex, as well as its shape. Lower settings give you a "tighter" vortex, while higher settings give you a "looser" vortex. Default=100.0. Taper Curve Controls the shape of the vortex. Low values create a vortex with a wide, flared mouth, while high values create a vortex with nearly vertical sides. Default=1.0. Range=1.0 to 4.0. Capture and Motion group This group contains basic settings for Axial Drop, Orbital Speed, and Radial Pull, with Range, Falloff, and Damping modifiers for each. Unlimited Range When on, Vortex exerts full damping strength over an unlimited range. When off, the Range and Falloff settings take effect. Axial Drop Specifies how quickly particles move in the direction of the drop axis. Range The distance from the center of the Vortex icon, in system units, at which Axial Damping has its full effect. Takes effect only when Unlimited Range is turned off. Falloff Specifies the distance beyond the Axial Range within which Axial Damping is applied. Axial Damping is strongest at the Range distance, decreases linearly out to the limit of the Axial Falloff, and has no effect beyond that. Takes effect only when Unlimited Range is turned off. Damping Controls the degree to which particle motion parallel to the drop axis is restrained per frame. Default=5.0. Range=0 to 100. For subtle effects, use values of less than 10%. For more overt effects, try using higher values that increase to 100% over the course of a few frames. Orbital Speed Specifies how quickly the particles rotate. Range The distance from the center of the Vortex icon, in system units, at which Orbital Damping has its full effect. Takes effect only when Unlimited Range is turned off. Falloff Specifies the distance beyond the Orbital Range within which Orbital Damping is applied. Orbital Damping is strongest at the Range distance, decreases linearly out to the limit of the Orbital Falloff, and has no effect beyond that. Takes effect only when Unlimited Range is turned off. Forces | 2705 Damping Controls the degree to which orbital particle motion is restrained per frame. Smaller values produce a wide spiral, while larger values produce a thin spiral. Default=5.0. Range=0 to 100. Radial Pull Specifies the distance from the drop axis at which the particles rotate. Range The distance from the center of the Vortex icon, in system units, at which Radial Damping has its full effect. Takes effect only when Unlimited Range is turned off. Falloff Specifies the distance beyond the Radial Range within which Radial Damping is applied. Radial Damping is strongest at the Range distance, decreases linearly out to the limit of the Radial Falloff, and has no effect beyond that. Takes effect only when Unlimited Range is turned off. Damping Controls the degree to which Radial Pull is restrained per frame. Default=5.0. Range=0 to 100. CW/CCW Determines whether particles rotate clockwise or counterclockwise. Display group Icon Size Specifies the size of the icon. Drag Space Warp Create panel > Space Warps > Forces > Object Type rollout > Drag Create menu > Space Warps > Forces > Drag The Drag space warp is a particle motion damper that reduces particle velocity by a specified amount within a specified range. The damping can be applied linearly, spherically, or cylindrically. Drag is useful for simulating wind resistance, transfers into dense media (like water), impacts with force fields, and other, similar situations. With each damping type, you can control the damping effect along several vectors. The damping is also affected by particle system settings, such as speed. NOTE To create a uniform drag effect, the default value for all directional parameters is 5.0%. 2706 | Chapter 14 Space Warps and Particle Systems Drag slows down a stream of particles. Procedures To create a Drag space warp: 1 On the Create panel, click Space Warps. Choose Forces from the list, and then click Drag. 2 Drag in a viewport to create the space warp. The space warp appears initially as a box within a box, indicating that it's using the default Linear Damping mode. 3 To apply the damping spherically or cylindrically, choose Spherical Damping or Cylindrical Damping in the command panel. Forces | 2707 NOTE The position and orientation of the space warp plays an important role for all three damping types. 4 Change the settings for the current damping type as necessary. 2708 | Chapter 14 Space Warps and Particle Systems Interface Forces | 2709 Timing group Time On/Time Off The frame numbers at which the space warp becomes active and becomes inactive. Damping Characteristics group This group lets you choose Linear Damping, Spherical Damping, or Cylindrical Damping, plus a set of parameters for each. Unlimited Range When on, Drag exerts full damping strength over an unlimited range. When off, the Range and Falloff settings for the current damping type take effect. ■ Linear Damping Motion for each particle is separated into vectors for the space warp's local X, Y, and Z axes. The area over which damping is exerted for each vector is an infinite plane whose thickness is determined by the corresponding Range setting. X Axis/Y Axis/Z Axis Specifies the percentage of particle motion along the local Drag space warp axis that's affected by the damping. Range Sets the thickness of the "range plane," or the infinite plane perpendicular to the specified axis. Takes effect only when Unlimited Range is turned off. Falloff Specifies the distance beyond the X, Y, or Z Range within which Linear Damping is applied. Damping is strongest at the Range distance, decreases linearly out to the limit of the Falloff, and has no effect beyond that. While Falloff takes effect only beyond the Range, it is measured from the center of the icon, and always has a minimum value equal to the Range value. Takes effect only when Unlimited Range is turned off. ■ Spherical Damping When Drag operates in Spherical Damping mode, its icon is a sphere within a sphere. Particle motion is broken up into radial and tangential vectors. Damping is applied for each vector within a spherical volume whose radius is set by the Range setting, when Unlimited Range is off. Radial/Tangential Radial specifies the percentage of particle motion toward or away from the center of the Drag icon that's affected by the damping. Tangential specifies the percentage of particle motion across the body of the Drag icon that's affected by the damping. 2710 | Chapter 14 Space Warps and Particle Systems Range Specifies the distance from the center of the Drag icon, in system units, within which damping is in full effect. Takes effect only when Unlimited Range is turned off. Falloff Specifies the distance beyond the Radial/Tangential Range within which Linear Damping is applied. Damping is strongest at the Range distance, decreases linearly out to the limit of the Falloff, and has no effect beyond that. While Falloff takes effect only beyond the Range, it is measured from the center of the icon, and always has a minimum value equal to the Range value. Takes effect only when Unlimited Range is turned off. ■ Cylindrical Damping When Drag operates in Spherical Cylindrical mode, its icon is a cylinder within a cylinder. Particle motion is broken up into radial, tangential, and axial vectors. Damping is applied within a spherical volume for the radial and tangential vectors and on a planar basis for the axial vector. Radial/Tangential/Axial Damping controls the percentage of particle motion toward or away from the center of the circular portion of the icon (Radial), across the radial vector (Tangential), or along the length of the icon's long axis (Axial) that's affected by the damping, on a per-frame basis. Range Specifies the distance from the center of the Drag icon, in system units, within which Radial and Axial damping are in full effect. Range also specifies the thickness of the infinite plane that governs the range of Axial damping. Takes effect only when Unlimited Range is turned off. Falloff Specifies the distance beyond the Radial/Tangential/Axial Range within which Linear Damping is applied. Damping is strongest at the Range distance, decreases linearly out to the limit of the Falloff, and has no effect beyond that. While Falloff takes effect only beyond the Range, it is measured from the center of the icon, and always has a minimum value equal to the Range value. Takes effect only when Unlimited Range is turned off. Display group Icon Size Specifies the size of the icon. Forces | 2711 PBomb Space Warp Create panel > Space Warps > Forces > Object Type rollout > PBomb Create menu > Space Warps > Forces > PBomb The PBomb space warp creates an impulse wave to blow up a particle system, as distinguished from the Bomb space warp on page 2789, which blows up geometry. The PBomb is particularly well suited to the Particle Array (PArray) system with Particle Types set to Object Fragments. This space warp also applies an impulse as a dynamics effect. The general usage is as follows: ■ Create a particle system (recommended: a PArray system on page 3042 set to Object Fragments). ■ Create a PBomb and use Bind to Space Warp on page 2691 to bind it to a non-event-driven particle system. Be sure to bind the PBomb to the particle system and not to the distribution object. Or, if using Particle Flow, use a Force operator on page 2946 to apply the space warp to the particle system. ■ Adjust the parameters of both the PBomb and the particle system. Right: PBomb viewport icon 2712 | Chapter 14 Space Warps and Particle Systems Above: PArray particle system Below: Torus knot used as the PArray's distribution object Effect of blowing up the torus knot Procedures Example: To use PBomb with PArray: You can use the Particle Bomb bound to a Particle Array to blow an object into fragments. The following steps demonstrate the basic setup. Begin by binding a particle array to an object, and setting parameters. 1 Create the object you want to blow up. 2 Create a PArray and use Pick Object to assign the object to blow up as the PArray object-based emitter. 3 In the Basic Parameters rollout > Viewport Display group, choose Mesh to display the fragments as mesh objects in the viewports. Forces | 2713 4 On the Particle Generation rollout of PArray, set Speed and Divergence to 0.0. This prevents PArray from moving the particles, letting PBomb do the work. 5 On the Particle Generation rollout, set Life to the length of the active time segment, so that the fragments appear during the entire animation. 6 In the Particle Type rollout > Particle Types group, choose Object Fragments. In the Object Fragment Controls group, choose Number of Chunks, and set the Minimum to about 50, depending on your distribution object and the effect you want. Now create a particle bomb, and bind it to the particle array. 1 In the Space Warps panel > Particles & Dynamics category, click the PBomb button and drag in a viewport to create the PBomb icon. 2 Use Bind to Space Warp to bind the PArray icon to the PBomb icon. (Don't bind the distribution object by mistake.) 3 Select the PBomb icon and move to the Modify panel. 4 In the Explosion Parameters group, set Blast Symmetry to Spherical, Start Time to 10, Duration to 1, and Strength to 1.0. Choose Linear, if it's not already chosen. 5 Drag the time slider between frames 9 and 20 to see the effect. 6 Go to frame 12 and try out various settings. Notice that increasing Strength expands the explosion effect at the current frame. If you decrease Range enough, the bomb no longer affects all or part of the object (depending on the placement of the PBomb icon). Test the three Blast Symmetry settings by placing the bomb in the center of the object and then seeing the different blast patterns. Once you get an explosive effect you like, you can return to the PArray settings, add spin or thickness to the fragments, and so on. 2714 | Chapter 14 Space Warps and Particle Systems Interface Blast Symmetry group These options specify the shape, or pattern of the blast effect. Spherical The blast force radiates outward from the PBomb icon in all directions. The icon looks like a spherical anarchist's bomb. Cylindrical The blast force radiates outward from and normal to the central axis, or core of the cylindrical icon. The icon looks like a stick of dynamite with a fuse. Planar The blast force radiates both up and down, perpendicular to the plane of the planar icon. The icon looks like a plane with arrows pointing up and down along the direction of the blast force. Chaos The blast forces vary for each particle or each frame, an effect similar to Brownian motion, with a rate of change in the direction of force equal to Forces | 2715 the rendering interval rate. Note: This setting is effective only when the Duration spinner is set to 0. Explosion Parameters group Start Time The frame number at which the impulse forces are first applied to the particles. Duration The number of frames, beyond the first, over which the forces are applied. This value should typically be a small number, such as between 0 and 3. Strength The change in velocity along the blast vector, in units per frame. Increasing Strength increases the speed with which the particles are blown away from the bomb icon. Unlimited Range The effects of the bomb icon reach all bound particles throughout the scene. This option ignores the Range setting (which specifies the distance of the PBomb effect). Linear The impulse forces decay linearly between the full Strength setting to a value of 0 at the specified Range setting. Exponential The impulse forces decay exponentially between the full Strength setting to a value of 0 at the specified Range setting. Range The maximum distance, in units, over which the PBomb icon affects the bound particle system. If the Range is large enough to reach only a portion of the particle system, only that part of the system is affected. If you turn on Range Indicator (see following), the extent of the range is indicated by a tri-hooped sphere. If you choose Unlimited Range, this parameter has no effect. Display Icon group These options affect the visual display of the PBomb icon. Icon Size Alters the overall size of the PBomb icon. Range Indicator Displays a wireframe sphere that indicates the volume of the particle bomb's influence. If you choose Unlimited Range, turning this on has no effect. 2716 | Chapter 14 Space Warps and Particle Systems Path Follow Space Warp Create panel > Space Warps > Forces > Object Type rollout > Path Follow Create menu > Space Warps > Forces > Path Follow Particles following a spiral path The Path Follow space warp forces particles to follow a spline path. Procedures To create a Path Follow space warp: 1 On the Create panel, click Space Warps. Choose Forces from the list, then on the Object Type rollout, click Path Follow. 2 Click and drag in a viewport to define the size. The Path Follow warp appears as a box-shaped icon containing curved lines that indicate hypothetical paths. To set up and use Path Follow: 1 Create a shape consisting of a single spline. (You can use shapes with multiple splines, but the software uses only one spline for the path.) 2 Create a particle system and set its parameters to emit particles over a range of frames. Forces | 2717 3 On the Create panel, click Path Follow, and drag in a viewport to create the Path Follow icon (a cube with wavy lines). The display and position of this icon don't affect the particles. 4 On the Basic Parameters rollout, click Pick Shape Object and select the spline you created earlier. 5 Bind the Path Follow icon to the particle system. 6 Adjust the Path Follow parameters to create the particle movement you want. NOTE You can further animate the particle effect by animating the spline vertices. TIP To adjust the position of the path or particle system while maintaining access to the Path Follow parameters, turn on Modifier Stack rollout > Pin Stack while the Path Follow space warp is selected. If the particles don't follow the emitter after it's moved, then change any PathFollow parameter, and the motion will be corrected. 2718 | Chapter 14 Space Warps and Particle Systems Interface Forces | 2719 Current Path group Lets you choose the path for the particles, and specify the range of influence of the Space Warp. Object Displays the name of the currently assigned path. Pick Shape Object Click this, and then click a shape in the scene to select it as a path. You can use any shape object as a path; if you select a multiple-spline shape, only one the lowest-number spline is used. You can also use NURBS curves as paths. Unlimited Range When off, the range of influence of the space warp is limited to the value set in the Distance spinner. When on, the space warp influences all bound particles in the scene, regardless of their distance from the path object. Range Specifies the range of influence when Unlimited Range is off. This is the distance between the path object and the particle system. The position of the Path Follow space warp's icon is ignored. Motion Timing group These controls affect how long particles are influenced by Path Follow. Start Frame The frame at which Path Follow begins to influence the particles. Travel Time The time each particle takes to traverse the path. Variation The amount by which each particle's travel time can vary. Last Frame The frame at which Path Follow releases the particles and no longer influences them. Particle Motion group The controls in this area determine the motion of particles. Along Offset Splines The distance between the particle system and the path alter the effect of the particle motion. If the first vertex of the spline is at the birthplace of the particle, the particle follows the spline path. If you move the path away from the particle system, the particles are affected by the offset. Along Parallel Splines Particles follow a copy of the selected path, parallel to the particle system. In this mode, the position of the path relative to the particle system does not matter. The orientation of the path, however, affects the particle stream. 2720 | Chapter 14 Space Warps and Particle Systems Constant Speed When on, all particles travel at the same speed. Stream Taper Causes particles to converge or diverge toward the path over time, or to simultaneously converge and diverge. You specify the effect by choosing Converge, Diverge, or Both (see following). This provides a tapering effect over the length of the path. Variation The amount by which Stream Taper can vary for each particle. Converge When Stream Taper is greater than 0, the particles move in toward the path as they follow the path. The effect is that the stream tapers from larger to smaller over time. Diverge Provides the opposite effect of Converge. The particles diverge from the path over time. Both Splits the particle stream, causing some particles to converge and others to diverge. Stream Swirl Specifies the number of turns by which particles spiral about the path. In conjunction with Stream Taper, alters the diameter of the spiral. Stream Swirl is generally more effective when you choose Along Offset Splines. Variation The amount by which each particle can vary from the Spiral value. Clockwise Particles spiral in a clockwise direction. Counterclockwise Particles spiral in a counterclockwise direction. Bidirectional The stream is split so that particles spiral in both directions. Uniqueness group Provides a seed number for unique generation of the particle pattern. Seed Specifies the seed number for the current Path Follow. Display Icon group Affects the display of the Path Follow icon. Icon Size Specifies the size of the Path Follow icon. Does not alter the Path Follow effect. Gravity Space Warp Create panel > Space Warps > Forces > Object Type rollout > Gravity Forces | 2721 Create menu > Space Warps > Forces > Gravity Particles falling because of gravity The Gravity space warp simulates the effect of natural gravity on particles generated by a particle system. Gravity is directional. Particles moving in the direction of the gravity arrow accelerate. Particles moving against the arrow decelerate. In the case of spherical gravity, motion is toward the icon. Gravity can also be used as an effect in dynamics simulations. See Dynamics Utility on page 3852. Gravity effect on snow Procedures To create gravity: 1 On the Create panel, click Space Warps. Choose Forces from the list, then on the Object Type rollout, click Gravity. 2 Drag in a viewport. 2722 | Chapter 14 Space Warps and Particle Systems The Gravity icon appears. For planar gravity (the default), the icon is a wireframe square with a direction arrow on one side. For spherical gravity, the icon is a wireframe sphere. The initial direction of planar gravity is along the negative Z axis of the construction grid that is active in the viewport where you drag. You can rotate the gravity object to change the direction. Interface Force group Strength Increasing Strength increases the effect of gravity; that is, how objects move in relation to the Gravity icon's direction arrow. Strength less than 0.0 creates negative gravity, which repels particles moving in the same direction and attracts particles moving in the opposite direction. When Strength is set to 0.0, the Gravity space warp has no effect. Decay When Decay is set to 0.0, the Gravity space warp has the same strength throughout world space. Increasing the Decay value causes gravity strength to diminish as distance increases from the position of the gravity warp object. Default=0.0. Planar Gravity effect is perpendicular to the plane of the Gravity warp object throughout the scene. Forces | 2723 Spherical Gravity effect is spherical, centered on the Gravity warp object. This choice is effective for creating water fountain or planetary effects. Display group Range Indicators When on, and when the Decay value is greater than 0.0, icons in the viewports indicate the range at which the force of gravity is half the maximum value. For the Planar option, the indicators are two planes; for use the Spherical option, the indicator is a double-hooped sphere. Icon Size Size of the Gravity warp object icon, in active units. You set the initial size when you drag to create the Gravity object. This value does not change the gravity effect. Wind Space Warp Create panel > Space Warps > Forces > Object Type rollout > Wind Create menu > Space Warps > Forces > Wind Wind changing the direction of the spray of a fountain 2724 | Chapter 14 Space Warps and Particle Systems The Wind space warp simulates the effect of wind blowing particles generated by a particle system. Wind is directional. Particles moving in the direction of the wind arrow accelerate. Particles moving against the arrow decelerate. In the case of spherical wind, motion is toward or away from the icon. Wind is similar in effect to the Gravity space warp, but has added parameters for turbulence and other features characteristic of wind in the natural world. Wind can also be used as an effect in dynamics simulations. See Dynamics Utility on page 3852. Wind effect on snow and spray Procedures To create wind: 1 On the Create panel, click Space Warps. Choose Forces from the list, then on the Object Type rollout, click Wind. 2 Drag in a viewport. The wind icon appears. For planar wind (the default), the icon is a wireframe square with a direction arrow coming out of one side. For spherical wind, the icon is a wireframe sphere. The initial direction of planar wind is along the negative Z axis of the construction grid that is active in the viewport where you drag. You can rotate the wind object to change the direction. Forces | 2725 Interface Force group These settings are comparable to the Gravity parameters. Strength Increasing Strength increases the wind effect. Strength less than 0.0 creates a suction. It repels particles moving in the same direction and attracts particles moving in the opposite direction. When Strength is 0.0, the Wind warp has no effect. Decay When Decay is set to 0.0, the Wind warp has the same strength throughout world space. Increasing the Decay value causes wind strength to diminish as distance increases from the position of the Wind warp object. Default=0.0. Planar Wind effect is perpendicular to the plane of the Wind warp object, throughout the scene. 2726 | Chapter 14 Space Warps and Particle Systems Spherical Wind effect is spherical, centered on the Wind warp object. Wind group These settings are specific to the Wind space warp. Turbulence Causes particles to change course randomly as the wind blows them. The greater the value, the greater the turbulence effect. Frequency When set greater than 0.0, causes turbulence to vary periodically over time. This subtle effect is probably not visible unless your bound particle system generates a large number of particles. Scale Scales the turbulence effect. When Scale is small, turbulence is smoother and more regular. As Scale increases, turbulence grows more irregular and wild. Display group Range Indicators When the Decay value is greater than zero, icons appear in the viewports that represent the range at which the force of wind is half the maximum value. When you use the Planar option, the indicators are two planes; when you use the Spherical option, the indicator is a double-hooped sphere. Icon Size Size of the Wind warp object icon, in active units. You set the initial Icon Size value when you drag to create the wind object. This value does not change the wind effect. Displace Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > Displace Create menu > Space Warps > Geometric/Deformable > Displace Forces | 2727 Displace used to change the surface in the container The Displace space warp acts as a force field to push and reshape an object's geometry. Displace affects both geometry (deformable objects) and particle systems. There are two basic ways to use the Displace space warp: ■ Apply the gray scale of a bitmap to generate the displacement amount. Black areas of the 2D image are not displaced. Whiter areas push outward, causing a 3D displacement of geometry. ■ Apply displacement directly by setting displacement Strength and Decay values. The Displace space warp works similarly to the Displace modifier, except that, like all space warps, it affects world space rather than object space. Use the Displace modifier when you need to create detailed displacement of a small number of objects. Use the Displace space warp to displace particle systems, a large number of geometric objects at once, or an object relative to its position in world space. For geometry, the detail of the displacement depends on the number of vertices. Use the Tessellate modifier to tessellate faces you want to show in greater detail. 2728 | Chapter 14 Space Warps and Particle Systems Displace space warp on a patch and the bitmap it uses Procedures To create a Displace space warp: 1 On the Create panel, click Space Warps. Choose Geometric/Deformable from the list, and then on the Object Type rollout, click Displace. 2 Drag in a viewport to create the Displace warp object, which appears as a wireframe. Its shape depends on the active mapping parameter settings. Regardless of the mapping, a single drag creates the space warp. 3 Bind the space warp to an appropriate object. To assign a bitmap to a displace space warp: 1 Select the Displace warp object. 2 In the Parameters rollout > Displacement group, click the Bitmap button (labeled "None" by default). Use the selection dialog to choose a bitmap. 3 Set the Strength value. Vary the strength of the field to see how the bitmap displaces the object's geometry. Forces | 2729 Interface Displacement group These are the basic controls for Displace space warps. 2730 | Chapter 14 Space Warps and Particle Systems Strength When set to 0.0, the Displace warp has no effect. Values greater than 0.0 displace object geometry or particles away from the position of the Displace space warp object. Values less than 0.0 displace geometry toward the warp. Default=0.0 Decay By default, the Displace warp has the same strength throughout world space. Increasing Decay causes displacement strength to diminish as distance increases from the position of the Displace warp object. Default=0.0 Luminance Center By default, the Displace space warp centers the luminance by using medium (50%) gray as the zero displacement value. Gray values greater than 128 displace in the outward direction (away from the Displace warp object) and gray values less than 128 displace in the inward direction (toward the Displace warp object). You can adjust the default using the Center spinner. With a Planar projection, the displaced geometry is repositioned above or below the Planar gizmo. Default=0.5. Range=0 to 1.0. Image group These options let you choose a bitmap and map to use for displacement. Bitmap (Labeled "None" by default.) Click to assign a bitmap or map from a selection dialog. After you choose a bitmap or map, this button displays the bitmap's name. Remove Bitmap Click to remove the bitmap or map assignment. Blur Increase this value to blur or soften the effect of the bitmapped displacement. Map group This area contains mapping parameters for a bitmapped Displace warp. The mapping options are comparable to those options used with mapped materials. The four mapping modes control how the Displace warp object projects its displacement. The warp object's orientation controls where in the scene the displacement effect will appear on bound objects. Planar Projects the map from a single plane. Cylindrical Projects the map as if it were wrapped around the cylinder. Spherical Projects the map from a sphere, with singularities at the top and bottom of the sphere, where the bitmap edges meet at the sphere's poles. Shrink Wrap Truncates the corners of the map and joins them all at a single pole, creating one singularity. Forces | 2731 Length, Width, Height Specify the dimensions of the bounding box of the space warp gizmo. Height has no effect on planar mapping. U/V/W Tile The number of times the bitmap repeats along the specified dimension. The default value of 1.0 maps the bitmap once; a value of 2.0 maps the bitmap twice, and so on. Fractional values map a fractional portion of the bitmap in addition to copies of the whole map. For example, a value of 2.5 maps the bitmap two and one-half times. Flip Reverses the orientation of the map along the corresponding U, V, or W axis. Deflectors POmniFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > POmniFlect POmniFlect is a planar version of the omniflector type of space warp. It provides enhanced functionality over that found in the original Deflector space warp, including refraction and spawning capabilities. 2732 | Chapter 14 Space Warps and Particle Systems POmniFlect viewport icon Procedures To create a POmniFlect space warp: 1 On the Create panel, click Space Warps. Choose Deflectors from the list, then on the Object Type rollout, click POmniFlect. 2 Drag in a viewport to create the planar icon. NOTE Because particles bounce off the icon, the size of the icon affects particle deflection. 3 Apply the deflector to the particle system using the appropriate method: ■ If using Particle Flow on page 2795, specify the deflector in the Collision test on page 2960 or Collision Spawn test on page 2964 parameters. ■ If using a non-event-driven particle system on page 3002, bind on page 2691 the particle system to the deflector icon. Deflectors | 2733 4 Position the POmniFlect icon to interrupt the particle stream. 5 Adjust the POmniFlect parameters as necessary. 2734 | Chapter 14 Space Warps and Particle Systems Interface Deflectors | 2735 Timing group The two spinners specify the start frame and end frame of the deflection effect. Time On/Off Time On specifies the frame at which the deflection begins, and Time Off specifies the frame at which the deflection ends. Reflection group These options affect the reflection of particles from the space warp. The POmniFlect can reflect or refract particles, or perform a combination of the two. Reflects Specifies the percentage of particles to be reflected by the POmniFlect. See also Refracts, later in this topic, for methods of combining the two effects. Bounce This is a multiplier that specifies how much of the initial speed of the particle is maintained after collision with the POmniFlect. Using the default setting of 1.0 causes the particle to rebound with the same speed as it collides. A real-world effect would usually be less than 1.0. For a “flubber” effect, set greater than 1.0. Variation Specifies the variation of Bounce applied to the range of particles. For example, a Variation of 50% applied to a Bounce setting of 1.0 would result in randomly applied Bounce values ranging from 0.5 to 1.5. Chaos Applies a random variation to the bounce angle. When set to 0.0 (no chaos), all particles bounce off the POmniFlect surface perfectly (like banking pool balls). A non-zero setting causes the deflected particles to scatter. Refraction group These settings are similar to those in the Reflection group, but these affect the refraction of particles as they pass through the POmniFlect, causing the direction of the particles to change. Refracts Specifies the percentage of particles not already reflected that will be refracted by the POmniFlect. NOTE The Refracts value affects only those particles not already reflected because the reflected particles are processed before the refracted particles. Thus, if you set Reflects to 50% and Refracts to 50%, you would not get a 50/50 split of particles. Rather, half the particles would be reflected, and then half the remainder (25% of the total) would be refracted. The remaining particles either pass through without being refracted or are passed on to Spawn Effects. 2736 | Chapter 14 Space Warps and Particle Systems To get a 50/50 split of reflection and refraction, set Reflects to 50% and Refracts to 100%. Pass Vel Specifies how much of a particle’s initial speed is maintained after passing through the POmniFlect. The default setting of 1 retains the initial speed is retained, so there’s no change. A setting of 0.5 reduces the speed by half. Variation Specifies the variation of Pass Velocity applied to the range of particles. Distortion Controls the angle of refraction. A value of 0 means there’s no refraction. A value of 100% sets the angle of the particles to be parallel with the POmniFlect surface. A value of −100% sets the angle perpendicular to the surface. The Distortion effect is reversed when particles strike the POmniFlect from the back side. NOTE Distortion and Refraction do not work properly when particles strike the POmniFlect surface at exactly 90 degrees. In this case, any positive Distortion settings cause a scattering of particles, while negative values have no effect. Variation Specifies a range of variation of the Distortion effect. Diffusion Applies a diffusion effect to the refraction by randomly modifying each particle’s Distortion angle by the Diffusion angle. This effectively scatters the particles into a hollow cone. Variation Specifies a range of variation of the Diffusion value. Common group Friction The amount by which particles are slowed as they move along the deflector surface. A value of 0% means they're not slowed at all. A value of 50% means they're slowed to half their original speed. A value of 100% means they stop moving when they strike the surface. Default=0%. Range=0% to 100%. TIP To have particles slide along a deflector surface, set Bounce to 0. Also, unless influenced by a force such as Wind or Gravity, particles meant to slide should strike the surface at an angle other than 90 degrees. Inherit Vel (Velocity Inheritance) Determines how much of a moving POmniFlect’s speed is applied to reflected or refracted particles. Deflectors | 2737 For example, if Inherit Vel is 1.0, particles with no motion that are hit by a moving PomniFlect inherit the speed of the POmniFlect at the point of collision. Spawn Effects Only group These settings affect only particles set to Spawn On Collision that do not either reflect or refract from the omniflector. See Particle Spawn Rollout on page 3069. The Spawns percentage spinner works like the Reflects and Refracts percentage spinners, but is the third in line to be processed. Thus, if either Reflects or Refracts are set to 100%, no particles are affected by these settings. Note also that reflective or refractive particles spawn upon collision, regardless of the settings in this group. Spawns Specifies the percentage of particles that can use spawn effects. Pass Vel Specifies how much of the particle’s initial speed is maintained after passing through the POmniFlect. Variation Specifies the variation of the Pass Velocity setting applied to the range of particles. Display Icon group Width/Height Specify the width and height of the POmniFlect icon. This is for display purposes only and does not influence the deflector effect. PDynaFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > PDynaFlect PDynaFlect (planar dynamics deflector) is a planar version of the dynaflector, a special class of space warp that lets particles affect objects in a dynamics situation. For example, if you want a stream of particles to strike an object and knock it over, like the stream from a firehose striking a stack of boxes, use a dynaflector. NOTE You use dynaflectors in the same way as omniflectors; that is, you can use them as deflectors alone, with no dynamics simulation. Because they take physics into account, dynaflectors are slower than omniflectors. Therefore, it is recommended that you use dynaflectors only when a dynamics simulation is involved. 2738 | Chapter 14 Space Warps and Particle Systems PDynaflect viewport icon Procedures Many dynaflector parameters are the same as those for omniflectors. However, the procedure of associating the dynaflector with both the particle system and the object to be affected is more complex than the simple binding used by omniflector. To create a particle/dynamics system: 1 Create or load a scene containing a non-event-driven particle system on page 3002 and an object to be affected by the particles (hereafter called "the object"). Position and orient the two as desired so that the particles strike the object. ■ The icon for the particle system must be visible in at least one non-disabled viewport. ■ On the Basic Parameters rollout of the particle system, set Percentage of Particles to 100%. Otherwise, only those particles displayed in the viewport will be calculated. Deflectors | 2739 2 On the Create panel, click Space Warps. Choose Deflectors from the drop-down list, and then click one of the dynaflector buttons (PDynaFlect, SDynaFlect, or UDynaFlect). Drag in a viewport to create the deflector. 3 Do either of the following: ■ If using a PDynaFlect or SDynaFlect, position the space warp icon where the particles strike (or will strike) the object. Resize and orient it as needed. Also, link the PDynaFlect or SDynaFlect as a child of the object. This step isn't absolutely necessary, but allows the deflector to follow the object as it moves. ■ 4 5 If using a UDynaFlect, go to the Modify panel > Parameters rollout, click the Pick Object button, and then select the object. The position of the space warp icon doesn't matter, and it's not necessary to link the two. Bind the particle system to the dynaflector using the toolbar Bind to Space Warp button on page 2691. Go to the Utilities panel and open the Dynamics utility. 6 On the Dynamics rollout, click New to create a new simulation. 7 Click Edit Object List, and add the object to the dynamics simulation. 8 Click Edit Object. On the Edit Object dialog, click Assign Object Effects and assign the dynaflector to the object. 9 On the Dynamics rollout, turn on the Update Display w/Solve check box above the Solve button. 10 Solve the simulation. 2740 | Chapter 14 Space Warps and Particle Systems Interface Timing group The two spinners specify the start frame and end frame of the deflection effect. Deflectors | 2741 Time On/Off Time On specifies the frame at which the deflection begins, and Time Off specifies the frame at which the deflection ends. Particle Bounce group These settings affect the reflection of particles from the space warp. Reflects Specifies the percentage of particles to be reflected by the PDynaFlect. This affects both the particles and the dynamics reaction of the object struck by the particles. The more particles that strike the affected object, the more force applied to that object. If set to 0.0, the particles have no effect on the object. Bounce This is a multiplier that specifies how much of the initial speed of the particle is maintained after collision with the PDynaFlect. Using the default setting of 1.0 causes the particle to rebound with the same speed as it collides. A real-world effect would usually be less than 1.0. For a "flubber" effect, set greater than 1.0. Variation Specifies the variation of Bounce applied to the range of particles. For example, a Variation setting of 50% applied to a Bounce setting of 1.0 would result in randomly applied Bounce values ranging from 0.5 to 1.5. Chaos Applies a random variation to the bounce angle. When you set Chaos to 0.0 (no chaos), all particles bounce off the PDynaFlect surface perfectly (like banking pool balls). A non-zero setting causes the deflected particles to scatter. Friction The amount by which particles are slowed as they move along the deflector surface. A value of 0% means they're not slowed at all. A value of 50% means they're slowed to half their original speed. A value of 100% means they stop moving when they strike the surface. Default=0%. Range=0% to 100%. TIP To have particles slide along a deflector surface, set Bounce to 0. Also, unless influenced by a force such as Wind or Gravity, particles meant to slide should strike the surface at an angle other than 90 degrees. Inherit Vel (Velocity Inheritance) Determines how much of a moving PDynaFlect’s speed is applied to reflected or refracted particles. For example, if Inherit Vel is 1.0, particles with no motion that are hit by a moving PDynaFlect inherit the speed of the PDynaFlect at the point of collision. 2742 | Chapter 14 Space Warps and Particle Systems Physical Properties group These options let you set the mass of each particle. Mass Specifies the mass based on the chosen unit. gram One gram equals 1/1000 kg or 22/1000 Lbm at a gravity of 1.0. Kg One kg (kilogram) equals 1000 grams or 2.2 Lbm at a gravity of 1.0. Lbm One Lbm (pounds-mass) equals 5/11 kg or 454 5/11 grams at a gravity of 1.0. (Pounds-mass, the amount of mass in one pound of weight, is dependent on gravity. For pounds-mass values at a gravity other than 1.0, multiply the pounds-mass value by the gravity factor.) Display Icon group Width/Height Specify the width and height of the PDynaFlect icon. This is for display purposes only and does not influence the deflector effect. SOmniFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > SOmniFlect SOmniFlect is the spherical version of the omniflector type of space warp. It provides more options than the original SDeflector. Most settings are the same as those in POmniFlect on page 2732. The difference is that this space warp provides a spherical deflection surface rather than the planar surface. The only settings that are different are in the Display Icon area, in which you set the Radius, instead of the Width and Height. Deflectors | 2743 NOTE Opposite sides of the deflectors reverse the distortion effect. Thus, a refracted particle passing through the SOmniFlect hits its outside surface first, and then its inside surface. A positive Distortion value warps the particles toward the perpendicular; then, as the particles pass through the inside surface, the same positive Distortion value warps them toward the parallel. SOmniFlect viewport icon Procedures To create an SOmniFlect space warp: 1 On the Create panel, click Space Warps. Choose Deflectors from the list, then on the Object Type rollout, click SOmniFlect. 2 Drag in a viewport to create the spherical icon. NOTE Because particles bounce off the icon, the size of the icon affects particle deflection. 2744 | Chapter 14 Space Warps and Particle Systems 3 Apply the deflector to the particle system using the appropriate method: ■ If using Particle Flow on page 2795, specify the deflector in the Collision test on page 2960 or Collision Spawn test on page 2964 parameters. ■ If using a non-event-driven particle system on page 3002, bind on page 2691 the particle system to the deflector icon. 4 Position the SOmniFlect icon to interrupt the particle stream. 5 Adjust the SOmniFlect parameters as necessary. SDynaFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > SDynaFlect The SDynaFlect space warp is a spherical dynamics deflector. It’s like the PDynaFlect on page 2738 warp, except that it’s spherical, and its Display Icon spinner specifies the icon's Radius value. SDynaFlect viewport icon Deflectors | 2745 UOmniFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > UOmniFlect UOmniFlect, the universal omniflector, provides more options than the original UDeflector. This space warp lets you use any other geometric object as a particle deflector. The deflections are face accurate, so the geometry can be static, animated, or even morphing or otherwise deforming over time. NOTE Some particle “leakage” can occur with this deflector, particularly when you use many particles and a complex deflector object. To avoid this, perform a test render to check for leaking particles, and then add POmniFlects to catch the strays. UOmniFlect viewport icon 2746 | Chapter 14 Space Warps and Particle Systems Procedures To use the UOmniFlect space warp: To use a universal omniflector, you need a minimum of three objects in the scene: 1 The particle system 2 The UOmniFlect space warp 3 The object used as the deflector 4 Add or select an object used as the deflector. 5 Create a particle system whose particles intersect the deflector object. 6 On the Create panel, click Space Warps. Choose Deflectors from the list, and then click UOmniFlect. 7 Click and drag in a viewport to place the space warp icon. NOTE The size and position of the UOmniFlect icon do not alter the effect. 8 Apply the deflector to the particle system using the appropriate method: 9 ■ If using Particle Flow on page 2795, specify the deflector in the Collision test on page 2960 or Collision Spawn test on page 2964 parameters. ■ If using a non-event-driven particle system on page 3002, bind on page 2691 the particle system to the deflector icon. On the Modify panel > Parameters rollout > Object-Based OmniFlector group, click Pick Object, and then select the object to use as a deflector. 10 Adjust the particle system and UOmniFlect parameters as necessary. Deflectors | 2747 Interface Parameters rollout The settings for the UOmniFlect are the same as those for POmniFlect on page 2732, with the following additions: Object-Based OmniFlector group Lets you choose the object to use as a deflector. Item Displays the name of the selected object. Pick Object Click this, and then select any renderable object to use as a deflector. Display Icon group Icon Size Specifies the size of one side of the square UOmniFlect icon. UDynaFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > UDynaFlect The UDynaFlect space warp is a universal dynamics deflector that lets you use the surface of any object as both the particles deflector and the surface that reacts dynamically to the particle impact. The procedures and options for using UDynaFlect are the same as for PDynaFlect on page 2738, with the following changes and additions. 2748 | Chapter 14 Space Warps and Particle Systems UDynaFlect viewport icon NOTE When you use UDynaFlect, you must indicate the object to be affected with the Pick Object button. Linking is not necessary. Deflectors | 2749 Interface 2750 | Chapter 14 Space Warps and Particle Systems Object-Based DynaFlector group Lets you choose the object to use as a deflector. Item Displays the name of the selected object. Pick Object Click this, and then select any renderable object to use as a deflector. Display Icon group Icon Size Specifies the size of the UDynaFlect icon. SDeflector Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > SDeflector Create menu > Space Warps > Deflectors > SDeflector The SDeflector space warp serves as a spherical deflector of particles. SDeflector viewport icon (with particle system on the left) Deflectors | 2751 SDeflector repelling particles Procedures To create an SDeflector: 1 On the Create panel, click Space Warps. Choose Deflectors from the list, then on the Object Type rollout, click SDeflector. 2 Drag in a viewport to create the spherical icon. NOTE Because particles bounce off the perimeter of the spherical icon, the size of the icon affects particle deflection. 3 Apply the deflector to the particle system using the appropriate method: ■ If using Particle Flow on page 2795, specify the deflector in the Collision test on page 2960 or Collision Spawn test on page 2964 parameters. ■ If using a non-event-driven particle system on page 3002, bind on page 2691 the particle system to the deflector icon. 4 Position the SDeflector icon to interrupt the particle stream. 2752 | Chapter 14 Space Warps and Particle Systems 5 Adjust the SDeflector parameters as necessary. Interface Particle Bounce group These settings determine how the deflector affects the bound particles. Bounce Determines the speed with which particles bounce off the deflector. At 1.0, the particles bounce at the same speed as they approach. At 0, they don't deflect at all. Variation The amount by which each particle can vary from the Bounce setting. Chaos The amount of variation from the perfect angle of reflection (found when Chaos is set to 0.0). 100% induces a variation in reflection angle of up to 90 degrees Friction The amount by which particles are slowed as they move along the deflector surface. A value of 0% means they're not slowed at all. A value of 50% means they're slowed to half their original speed. A value of 100% means they stop moving when they strike the surface. Default=0%. Range=0% to 100%. Deflectors | 2753 TIP To have particles slide along a deflector surface, set Bounce to 0. Also, unless influenced by a force such as Wind or Gravity, particles meant to slide should strike the surface at an angle other than 90 degrees. Inherit Vel (Velocity Inheritance) When the value is greater than 0, the motion of the deflector affects particles as well as the other settings. For example, to animate the SDeflector passing through a passive array of particles, turn up this value to affect the particles. Display Icon group This option affects the display of the icon. Diameter Specifies the diameter of the SDeflector icon. This setting also alters the effect of the deflection, because particles bounce off the perimeter of the icon. The scale of the icon also affects the particles. UDeflector Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > UDeflector Create menu > Space Warps > Deflectors > UDeflector 2754 | Chapter 14 Space Warps and Particle Systems Particles scatter when they strike a UDeflector object The UDeflector is a universal deflector that lets you use any object as a particle deflector. Procedures To create a UDeflector: 1 On the Create panel, click Space Warps. Choose Deflectors from the list, then on the Object Type rollout, click UDeflector. 2 In a viewport, drag out a rectangle to add a UDeflector warp to the scene. 3 On the command panel, click the Pick Object button and select an object to be a particle deflector. Deflectors | 2755 4 Apply the deflector to the particle system using the appropriate method: ■ If using Particle Flow on page 2795, specify the deflector in the Collision test on page 2960 or Collision Spawn test on page 2964 parameters. ■ If using a non-event-driven particle system on page 3002, bind on page 2691 the particle system to the deflector icon. 5 Position the UDeflector icon to interrupt the particle stream. 6 Adjust the UDeflector parameters as necessary. Interface Object-Based Deflector group Specifies the object to use as a deflector. 2756 | Chapter 14 Space Warps and Particle Systems Item Displays the name of the selected object. Pick Object Click this, and then click any renderable mesh object to be used as a deflector. Particle Bounce group Bounce Determines the speed with which particles bounce off the deflector. At 1.0, the particles bounce at the same speed as they approach. At 0, they don't deflect at all. Variation The amount by which each particle can vary from the Bounce setting. Chaos The amount of variation from the perfect angle of reflection (found when Chaos is set to 0.0). 100% induces a variation in reflection angle of up to 90 degrees. Friction The amount by which particles are slowed as they move along the deflector surface. A value of 0% means they're not slowed at all. A value of 50% means they're slowed to half their original speed. A value of 100% means they stop moving when they strike the surface. Default=0%. Range=0% to 100%. TIP To have particles slide along a deflector surface, set Bounce to 0. Also, unless influenced by a force such as Wind or Gravity, particles meant to slide should strike the surface at an angle other than 90 degrees. Inherit Vel (Velocity Inheritance) When greater than 0, the motion of the deflector affects particles as well as the other settings. For example, to animate the SDeflector passing through a passive array of particles, turn up this value to affect the particles. Display Icon group Icon Size This spinner displays and lets you change the size of the icon. Deflector Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > Deflector Create menu > Space Warps > Deflectors > Deflector Deflectors | 2757 Two streams of particles striking two deflectors The Deflector space warp acts as a planar shield to repel the particles generated by a particle system. For example, you can use Deflector to simulate pavement being struck by rain. You can combine a Deflector space warp with a Gravity space warp to produce waterfall and fountain effects. See also: ■ SDeflector Space Warp on page 2751 ■ UDeflector Space Warp on page 2754 Procedures To create a deflector: 1 On the Create panel, click Space Warps. Choose Deflectors from the list, then on the Object Type rollout, click Deflector. 2 Drag in a viewport to define the deflection area. 2758 | Chapter 14 Space Warps and Particle Systems The deflector appears as a wireframe rectangle. 3 Apply the deflector to the particle system using the appropriate method: ■ If using Particle Flow on page 2795, specify the deflector in the Collision test on page 2960 or Collision Spawn test on page 2964 parameters. ■ If using a non-event-driven particle system on page 3002, bind on page 2691 the particle system to the deflector icon. Interface The deflector's effect is controlled mainly by its size and orientation in the scene, relative to the particle system that is bound to it. You can also adjust how strongly the deflector deflects particles. Bounce Controls the speed at which particles bounce off the deflector. At a setting of 1.0, particles bounce off the deflector at the same speed they struck it. At 0.0, particles do not bounce at all. At values between 0.0 and 1.0, particles bounce off the deflector at a speed reduced from their initial speed. At values greater than 1.0, particles bounce off the deflector at a speed greater than their initial speed. Default=1.0. Deflectors | 2759 Variation The amount by which each particle can vary from the Bounce setting. Chaos The amount of variation from the perfect angle of reflection (found when Chaos is set to 0.0). 100% induces a variation in reflection angle of up to 90 degrees Friction The amount by which particles are slowed as they move along the deflector surface. A value of 0% means they're not slowed at all. A value of 50% means they're slowed to half their original speed. A value of 100% means they stop moving when they strike the surface. Default=0%. Range=0% to 100%. TIP To have particles slide along a deflector surface, set Bounce to 0. Also, unless influenced by a force such as Wind or Gravity, particles meant to slide should strike the surface at an angle other than 90 degrees. Inherit Vel (Velocity Inheritance) When the value is greater than 0, the motion of the deflector affects particles as well as the other settings. For example, if you want an animated SDeflector passing through an array of particles to affect the particles, turn up this value. Width Sets the deflector's width. Length Sets the deflector's length. Geometric/Deformable FFD(Box) Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > FFD(Box) Create menu > Space Warps > Geometric/Deformable > FFD(Box) Free-form deformations (FFDs) provide a method of deforming an object by adjusting the control points of a lattice. The offset position of the control points to the original lattice source volume causes the distortion of the affected object. The FFD(Box) space warp is a box-shaped lattice FFD object similar to the original FFD modifiers. This FFD is available as both an object modifier and a space warp. For information on the object-modifier version, see FFD (Box/Cylinder) Modifiers on page 1460. 2760 | Chapter 14 Space Warps and Particle Systems You create FFD space warps as separate objects similarly to the way you create standard primitives: by dragging the mouse in the viewport. The result is a lattice of control points. The source lattice of an FFD modifier is fitted to the geometry it's assigned to in the stack. This might be a whole object or a sub-object selection of faces or vertices. Because FFD space warps are separate objects, they carry their own adjustable dimension parameters among the creation parameters. You can apply object modifiers to space warp objects. For example, you can use the Linked XForm modifier with a space-warp FFD. Geometric/Deformable | 2761 Object and object surrounded by an FFD lattice 2762 | Chapter 14 Space Warps and Particle Systems Moving control points in the lattice deforms the object. Procedures To use the FFD(box) space warp: 1 On the Create panel, click Space Warps. Choose Geometric/Deformable from the list, then on the Object Type rollout, click FFD(Box). 2 Drag in a viewport to create the base. Release the mouse button, and then move the mouse to define the height of the FFD lattice. Click to finish the lattice. 3 Bind the lattice to the object you want to deform. 4 Determine the relative placement of the lattice to the object. If the lattice is to be outside of the object, turn on All Vertices. To affect only those vertices inside the lattice, choose Only In Volume, and position the lattice accordingly. Geometric/Deformable | 2763 5 In the modifier stack display, choose Control Points as the sub-object level for FFD(box). 6 Adjust the control points. NOTE The distortion effect of an FFD modifier is based on the positional offset of the control points from their original positions in the source volume. If you don't move control points, there is no effect on the target object. Keep this in mind when using space-warp version of the FFD. If you're using the Deform group > All Vertices option, once you've distorted the object you can set the Falloff value to adjust how much the lattice affects the object, based on distance. This is particularly useful if the lattice is animated to approach or move away from the target object. When Falloff is set to 0, all the vertices are affected, regardless of distance. NOTE When you're at the base-parameters level of an FFD modifier in the Stack, the Show End Result button is turned off and spring-loaded, as it is in an Edit Mesh modifier. 2764 | Chapter 14 Space Warps and Particle Systems Interface Geometric/Deformable | 2765 This rollout lets you set the size and resolution of the lattice, and how it displays and deforms. Dimensions group These options let you adjust the unit dimensions of the source volume, and specify the number of control points in the lattice. Note that the point dimensions are displayed beside the modifier name in the Stack list. Length, Width, Height These three spinners display and let you adjust the length, width, and height of the lattice. To create the space warp, you drag the mouse in the same way that you would to create a standard Box primitive. Note that these spinners don't exist in the object-modifier version of the FFD. Label Displays the current number of controls points in the lattice (for example: 4x4x4). Set Number of Points Displays a dialog containing three spinners labeled Length, Width, and Height, plus OK/Cancel buttons. Specify the number of control points you want in the lattice, and then click OK to make the change. NOTE Make changes to the dimensions before you adjust the positions of the lattice control points. When you change the number of control points with this dialog, any adjustments you've already made to the control points are lost; however, you can undo this use of the dialog. Display group These options affect the display of the FFD in the viewports. Lattice When turned on, lines are drawn connecting the control points to make a grid. Although viewports can become cluttered when these extra lines are drawn, they help to visualize the lattice. Source Volume When on, the control points and lattice are displayed in their unmodified state. This display is helpful when you're adjusting the source volume to affect specific vertices that lie within or without it. See the All Vertices and Only in Volume options, later in this topic. Deform group These options provide controls that specify which vertices are affected by the FFD. Only In Volume Only vertices that lie inside the source volume are deformed. Vertices outside the source volume are not affected. 2766 | Chapter 14 Space Warps and Particle Systems All Vertices All vertices are deformed regardless of whether they lie inside or outside the source volume, depending on the value in the Falloff spinner. The deformation outside the volume is a continuous extrapolation of the deformation inside the volume. The deformation can be extreme for points far away from the source lattice. Falloff This spinner, enabled only when you choose All Vertices, determines the distance from the lattice that the FFD effect will decrease to zero. When this spinner is set to 0, it's effectively turned off, and there is no falloff; that is, all vertices are affected regardless of their distance from the lattice. The units of the Falloff parameter are specified relative to the size of the lattice: A falloff of 1 means that the effect will go to 0 for points that are a lattice width/length/height away from the lattice (depending on which side they are on). Tension/Continuity Lets you adjust the tension and continuity of the deformation splines. Although you can't see the splines in an FFD, the lattice and control points represent the structure that controls the splines. As you adjust the control points, you alter the splines (which move through each point). The splines, in turn, deform the geometry of the object. By altering the tension and continuity of the splines, you alter their effect on the object. Selection group These options provide additional methods of selecting the control points. You can toggle the state of any combination of the three buttons to select in one, two, or three dimensions at once. All X, All Y, All Z When one of these buttons is on and you select a control point, all control points along the local dimension specified by the button are selected as well. By turning on two buttons, you can select all control points in two dimensions. About Displays a dialog with copyright and licensing information. FFD(Cyl) Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > FFD(Cyl) Create menu > Space Warps > Geometric/Deformable > FFD(Cyl) Free-form deformations (FFDs) provide a method of deforming an object by adjusting the control points of a lattice. The offset position of the control Geometric/Deformable | 2767 points to the original lattice source volume causes the distortion of the affected object. The FFD(Cyl) space warp uses a cylindrical array of control points in its lattice. This FFD is available as both an object modifier and a space warp. For information on the object modifier version, see FFD (Box/Cylinder) Modifiers on page 1460. You create FFD space warps as separate objects similarly to the way you create standard primitives: by dragging the mouse in the viewport. The result is a lattice of control points. The source lattice of an FFD modifier is fitted to the geometry it's assigned to in the stack. This might be a whole object or a sub-object selection of faces or vertices. Because FFD space warps are separate objects, they carry their own adjustable dimension parameters among the creation parameters. You can apply object modifiers to space warp objects. For example, you can use the Linked XForm modifier with a space-warp FFD. Procedures Example: Create an animated tablecloth: Finished tablecloth using FFD (Cyl) space warp 2768 | Chapter 14 Space Warps and Particle Systems This example shows how to use the FFD(Cyl) space warp to create a tablecloth that flies in and drapes itself over a table. Begin by creating the table and tablecloth. 1 Create a table from two cylinders. Make the table top with a radius of 30 units, and a height of 2 units. Make the "table stand" cylinder with a radius of 3 and a height of 60. 2 Make a tablecloth from a box 100 units square and 0.5 units in height. Increase Length and Width Segments to 30, and keep Height Segments at 1. 3 Position the tablecloth so it's level with or slightly above the table top, and a little less than 100 units to the left of the table edge, as seen from the Top view. 4 Apply a nice wood grain to the table, and a checker to the tablecloth. (Set the checker tiling to about 15x15, and choose any color for the checkers.) Now, set up a cylindrical FFD space warp that will form the drape of the tablecloth over the table. 1 From the Create panel > Space Warps > Geometric/Deformable, choose FFD(Cyl). 2 In the Top viewport, create a cylindrical FFD space warp, centered on the table top, with a radius of 45 and a height of 5. 3 Click the Set Number of Points button and, in the Set FFD Dimensions dialog, set Side points to 12, Radial points to 5, and Height points to 2. 4 Move the entire FFD lattice up until it's just over the surface of the table, as seen from the Front viewport. Geometric/Deformable | 2769 Next, adjust the control points of the lattice to drape over the table. 1 Zoom Extents All Selected. 2 On the Modify panel, in the stack display (below "Modifier List"), click the FFD(cyl) item so it turns yellow. This means you've enabled direct access to the FFD space warps control point sub-objects. 3 In the FFD Parameters rollout > Selection group, turn on All X. This lets you select control points around the perimeter of the FFD cylinder. 4 In the Top viewport, use the Select and Move tool on page 959 and region-select the two visible control points of the two outer rings of control points at the nine-o'clock position. (This is easier shown than described. You can actually region-select any number of vertices in the two outer concentric rings of vertices. Because All X is on, all control points for the two rings will be selected.) 5 On the status bar, click the Selection Lock Toggle button to lock the selection. In the Front viewport, drag the selected points halfway down the height of the table. 6 Unlock the selection, and then region-select any control point in the outer ring to select all points in the outer ring. 2770 | Chapter 14 Space Warps and Particle Systems 7 Lock the selection and, in the Front viewport, drag the outer ring of points down to the floor. You now have a truncated cone shape over the table. 8 Unlock the selection. In the Top viewport, again select all the control points in the two outer rings. 9 Scale the selected control points in, until the radius of the inner ring of points is slightly larger than the table top. 10 Select only the outer ring of points, and scale them so their radius is slightly larger than the inner ring. If necessary, move the points, as seen from the Front viewport, down to touch the floor again. You now have a lattice of control points draped over the table. In this next series of steps, you'll bind the tablecloth to the FFD lattice, and then animate it to move over the table. 1 In the stack display, click the FFD(cyl) entry again to exit the sub-object level. It turns gray. 2 In the main toolbar, click the Bind to Space Warp button, and drag between the FFD and the tablecloth. Geometric/Deformable | 2771 3 Select the FFD lattice. 4 Choose Deform group > All Vertices. The tablecloth is immediately deformed because all vertices are now affected, including those outside the lattice volume, and Falloff is set to 0. A falloff value of 0 means that the distance of the vertices from the lattice doesn't matter. Any number greater than 0, however, limits the effect. 5 Set the Falloff spinner to 0.4. No longer influenced by the FFD space warp, the tablecloth returns to its square shape. 6 Turn on Auto Key, and go to frame 100. 7 In the Top viewport, select the tablecloth, and move it until it's centered over the table. 8 As the tablecloth nears the table, it droops down to the floor, sweeps up and over the table, and finally drapes itself over the table. 9 As you move the time slider back and forth and examine the animation, you might find that the bottom of the tablecloth is deformed to the point where it's hanging below the floor. To fix this, turn off Auto Key, go to frame 100, select the lower ring of control points, and move them up 2772 | Chapter 14 Space Warps and Particle Systems until the tablecloth is at the height you want it. You can also adjust the position of the other control points to create drapes, and so on. 10 On the Display command panel > Hide by Category rollout, turn on Space Warps to hide the FFD space warp. 11 Set up appropriate lights and a camera, and play your animation. Geometric/Deformable | 2773 Interface 2774 | Chapter 14 Space Warps and Particle Systems This rollout lets you set the size and resolution of the lattice, and how it displays and deforms. Dimensions group These options let you adjust the unit dimensions of the source volume, and specify the number of control points in the lattice. Note that the point dimensions are displayed beside the modifier name in the Stack list. Radius, Height These two spinners display and let you adjust the length, width, and height of the lattice. To create the space warp, drag the mouse in the same way that you would to create a standard Cylinder primitive. Note that these spinners don't exist in the object-modifier version of the FFD. Label Displays the current number of controls points in the lattice (for example: 4x8x4). Set Number of Points Displays a dialog containing three spinners labeled Side, Radial, and Height, plus OK/Cancel buttons. Specify the number of control points you want in the lattice, and then click OK to make the change. Side The number of control points around the perimeter of the lattice. Radial The number of control points, radially, from the center to the outer perimeter of the lattice. Height The number of control points along the height of the lattice. NOTE Make changes to the dimensions before you adjust the positions of the lattice control points. When you change the number of control points with this dialog, any adjustments you've already made to the control points are lost; however, you can undo this use of the dialog. Display group These options affect the display of the FFD in viewports. Lattice When on, lines are drawn connecting the control points to make a grid. Although viewports can become cluttered when these extra lines are drawn, they help to visualize the lattice. Source Volume When on, the control points and lattice are displayed in their unmodified state. This display is helpful when you're adjusting the source volume to affect specific vertices that lie within or without it. See the All Vertices and Only in Volume options, later in this topic. Geometric/Deformable | 2775 Deform group These options provide controls that specify which vertices are affected by the FFD. Only In Volume When on, only vertices that lie inside the source volume are deformed. Vertices outside the source volume are not affected. This is the default choice. All Vertices When on, all vertices are deformed regardless of whether they lie inside or outside the source volume, depending on the value in the Falloff spinner. The deformation outside the volume is a continuous extrapolation of the deformation inside the volume. Note that the deformation can be extreme for points far away from the source lattice. Falloff This spinner, enabled only when you choose All Vertices, determines the distance from the lattice that the FFD effect will decrease to zero. When this spinner is set to 0, it's effectively turned off, and there is no falloff; that is, all vertices are affected regardless of their distance from the lattice. The units of the Falloff parameter are specified relative to the size of the lattice: A falloff of 1 means that the effect will go to 0 for points that are a lattice width/length/height away from the lattice (depending on which side they are on). Tension/Continuity Lets you adjust the tension and continuity of the deformation splines. Although you can't see the splines in an FFD, the lattice and control points represent the structure that controls the splines. As you adjust the control points, you alter the splines (which move through each point). The splines, in turn, deform the geometry of the object. By altering the tension and continuity of the splines, you alter their effect on the object. Selection group These options provide additional methods of selecting control points. You can toggle any combination of the three buttons to select in one, two, or three dimensions at once. All X, All Y, All Z When one of these buttons is on and you select a control point, all control points along the local dimension specified by the button are selected as well. By turning on two buttons, you can select all control points in two dimensions. About Displays a dialog with copyright and licensing information. 2776 | Chapter 14 Space Warps and Particle Systems Wave Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > Wave Create menu > Space Warps > Geometric/Deformable > Wave The Wave space warp creates a linear wave through world space. It affects geometry and behaves the same as the Wave modifier on page 2000. Use the Wave space warp when you want the wave to affect a large number of objects, or to affect an object relative to its position in world space. Geometric/Deformable | 2777 Using a wave to deform a box See also: Ripple Space Warp on page 2781 ■ Procedures To create a Wave space warp: 1 On the Create panel, click Space Warps. Choose Geometric/Deformable from the list, then on the Object Type rollout, click Wave. 2 Drag in a viewport to define the initial size of the wave object icon. The icon is displayed as a flat mesh wireframe. 3 Release the mouse button to set the icon size; then move the mouse to define the initial amplitude of the wave. 4 Click to set the wave amplitude. 2778 | Chapter 14 Space Warps and Particle Systems Interface The initial amplitude sets both Amplitude 1 and Amplitude 2. Set these parameters to unequal values to create a cross wave. Wave group These options control the wave effect. Amplitude 1 Sets wave amplitude along the wave warp object's local X axis. Amplitude 2 Sets wave amplitude along the wave warp object's local Y axis. Amplitude is expressed in units. The wave is a sine wave along its Y axis and parabolic along its X axis. Another way to think of the difference between the amplitudes is that Amplitude 1 is at the center of the wave gizmo and Amplitude 2 is at the edge of the gizmo. Wave Length Sets the length of each wave along the wave's local Y axis, in active units. Geometric/Deformable | 2779 Phase Offsets the phase of the wave from its origin at the wave object's center. Whole values have no effect; only fractional values do. Animating this parameter makes the wave appear to travel through space. Decay When set to 0.0, the wave has the same amplitude or amplitudes throughout world space. Increasing the Decay value causes amplitude to diminish as distance increases from the position of the wave warp object. Default=0.0. Display group These options control the geometry of the Wave warp gizmo. In some cases, such as when the two Amplitude values differ, they change the effect of the wave. Sides Sets the number of side segments along the wave object's local X dimension. Segments Sets the number of segments along the wave object's local Y dimension. Divisions Adjusts the size of the wave icon without altering the wave effect as scaling would. Flexibility parameter (Modify panel) The Wave space warp also has a Flexibility parameter that you can adjust individually in each bound object's stack, at the Wave Binding level. The parameter belongs to each binding; it doesn't appear with the Wave warp parameters. 2780 | Chapter 14 Space Warps and Particle Systems Flexibility Makes the bound object more or less responsive to the wave by multiplying the amplitude by this value. Ripple Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > Ripple Create menu > Space Warps > Geometric/Deformable > Ripple Geometric/Deformable | 2781 Using a ripple to deform a surface The Ripple space warp creates a concentric ripple through world space. It affects geometry and behaves the same as the Ripple modifier on page 1655. Use the Ripple space warp when you want the ripple to affect a large number of objects, or to affect an object relative to its position in world space. See also: Wave Space Warp on page 2777 ■ Procedures To create a Ripple space warp: 1 On the Create panel, click Space Warps. Choose Geometric/Deformable from the list, then on the Object Type rollout, click Ripple. 2 Drag in a viewport to define the initial size of the ripple object icon. The icon is displayed as a wireframe spider web. 2782 | Chapter 14 Space Warps and Particle Systems 3 Release the mouse button to set the icon size, and then move the mouse to define the initial amplitude of the ripple wave. 4 Click to set the wave amplitude. Interface The amplitude value set by dragging applies equally in all directions. The ripple's Amplitude 1 and Amplitude 2 parameters are initially equal. Set these parameters to unequal values to create a ripple whose amplitude varies relative to the local X and Y axes of the space warp. Ripple group Amplitude 1 Sets ripple amplitude along the ripple warp object's local X axis. Amplitude is expressed in active units. Amplitude 2 Sets ripple amplitude along the ripple warp object's local Y axis. Amplitude is expressed in active units. Geometric/Deformable | 2783 Wave Length Sets the length of each wave, in active units. Phase Offsets the phase of the wave from its origin at the ripple object's center. Whole values have no effect; only fractional values do. Animating this parameter makes the ripple appear to travel through space. Decay When set to 0.0, the ripple has the same amplitude or amplitudes throughout world space. Increasing the Decay value causes amplitude to diminish as distance increases from the position of the ripple warp object. Default=0.0. Display group The options control display of the Ripple warp object's icon. They don't change the effect of the ripple. Circles Sets the number of circles in the ripple icon. Segments Sets the number of segments (pie slices) in the ripple icon. Divisions Adjusts the size of the ripple icon without altering the ripple effect as scaling would. Flexibility parameter (Modify panel) The Ripple space warp also has a Flexibility parameter that you can adjust individually in each bound object's stack, at the Ripple Binding level. The parameter belongs to each binding; it doesn't appear with the Ripple warp parameters. 2784 | Chapter 14 Space Warps and Particle Systems Flexibility Makes the bound object more or less responsive to the wave by multiplying the amplitude by this value. Conform Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > Conform Create menu > Space Warps > Geometric/Deformable > Conform The Conform space warp modifies its bound object by pushing its vertices in the direction indicated by the space warp icon, until they hit a specified target object, or until the vertices move a specified distance from their original position. After creating a Conform space warp, you specify a target object in the Conform parameters, and then bind the Conform to the object you want to deform. You rotate the Conform icon to specify the travel direction (toward the target object). The vertices of the deformed object move until they hit the target object. Geometric/Deformable | 2785 There is also a Conform compound object on page 731 that provides additional methods of conforming one object to another. Conform viewport icon (a surface is below it) Procedures Example: Using the Conform space warp: Begin by making two objects. 1 Create a terrain by making a wide, flat box with plenty of Length and Width segments (or a quad patch). Apply a Noise modifier and adjust its parameters to result in a bumpy terrain (not mountainous, but low and irregular). 2 Create a short, wide cylinder whose radius is about one-eighth the area of the box (like a coin). You'll animate the cylinder to float diagonally over the surface of the terrain. 3 Set Cap Segments in the cylinder to 4, and position the cylinder to float over the terrain. 4 Set the object color of the cylinder to contrast with the color of the terrain. 5 Move the cylinder inside one corner of the terrain as seen from the Top viewport. Turn on Animate, move to frame 100, and move the cylinder to the opposite corner of the terrain. 2786 | Chapter 14 Space Warps and Particle Systems The coin/disk moves from one corner of the terrain to the other. The terrain will become the target object, and the cylinder the deformed object. The next step is to create the Conform space warp and bind it to the cylinder. 1 On the Create panel, choose Space Warps, and then, from the drop-down list, choose Geometric/Deformable. Click the Conform button. 2 In the Top viewport, in the center of the terrain, drag outward to create the Conform space warp. 3 Click the Pick Object button, and then click the terrain box. 4 In the Front viewport, drag the space warp up until it's above the cylinder. As seen in the Front viewport, the terrain is at the bottom, the cylinder is between the terrain and the space warp, and the space warp is at the top. 5 Bind the space warp to the cylinder. The cylinder becomes a disk that seems to be painted on the surface of the terrain. 6 Drag the time slider to see the cylinder/disk move across the box, following the terrain. Because the vertices are pushed almost to the level of the terrain, the faces of the two object might intersect. In the following steps, you'll fix this by adjusting the standoff distance between the target surface and the pushed vertices. Then you'll go on to affect only selected vertices in the cylinder. 1 Select the Conform space warp, and open the Modify panel. 2 Set Standoff Distance to 3. You can now clearly see the surface of the disk above the terrain. 3 Set the Standoff Distance to 20. The disk floats 20 units above the terrain. Next, change the affected vertices. 4 Select the disk/cylinder. 5 In the modifier stack display, click the Cylinder item so it's highlighted in gray. 6 Apply a Mesh Select modifier. Geometric/Deformable | 2787 7 At the Vertex sub-object level, in the Front viewport, region-select the bottom cap vertices of the cylinder. 8 Remain at the sub-object level, and in the stack display click the Conform Binding item. 9 In the viewport, select the Conform icon. 10 In the Modify panel, turn on Use Selected Vertices. Now that only the bottom cap vertices are selected, the rest of the cylinder is restored. If you adjust the viewing angle and play the animation, you'll see that the bottom face of the cylinder follows the terrain, while the rest of the cylinder retains its shape. Interface 2788 | Chapter 14 Space Warps and Particle Systems Wrap To Object group These options provide controls to select the target object. Pick Object Click this, and then select an object in the scene. The object you select becomes the barrier against which the bound object's vertices will be pushed. Object Displays the name of the picked object. Move Vertices group These options affect how the vertices are moved. Default Projection Distance The distance a vertex in the bound object moves from its original location if it does not intersect the target object. Standoff Distance The distance maintained between the vertex and the surface of the target object. For example, if set to 5, the vertices can be pushed no closer than 5 units from the surface of the target object. Use Selected Vertices When on, only the sub-object selection of vertices on the Stack are pushed. When off, all vertices in the object are pushed regardless of the Stack selection. Display group Icon Size Specifies the size of the icon. Bomb Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > Bomb Create menu > Space Warps > Geometric/Deformable > Bomb The Bomb space warp explodes objects into their individual faces. Geometric/Deformable | 2789 Right: Bomb viewport icon Left: Torus knot Effect of exploding the torus knot Procedures To create a Bomb space warp: 1 On the Create panel, click Space Warps. Choose Geometric/Deformable from the list, and then on the Object Type rollout, click Bomb. 2 Create mesh objects to be exploded. 2790 | Chapter 14 Space Warps and Particle Systems 3 On the toolbar, click the Bind to Space Warp button. 4 Drag the mouse between each object and the Bomb space warp. 5 Adjust Bomb parameters to achieve different effects. Interface Explosion group Strength Sets the power of the bomb. Larger values make the particles fly farther. The closer an object is to the bomb, the greater the effect of the bomb. Geometric/Deformable | 2791 Spin The rate at which fragments rotate, in revolutions per second. This is also affected by the Chaos parameter (which causes different fragments to rotate at different speeds), and by the Falloff parameter (which causes the force of the explosion to be weaker the farther the fragment is from the bomb). Falloff The distance from the bomb, in world units, of the effect of the bomb. Fragments past this distance are not affected by the Strength and Spin settings, but are affected by the Gravity setting. For example, this is useful for blowing up the base of a building, and having the top of the building topple. To see the effect, place a bomb at the base of a tall cylinder with many height segments, and adjust Falloff to be less than the height of the cylinder. Falloff On Turn on to use the Falloff setting. The falloff range appears as a yellow, tri-hooped sphere. Fragment Size group These two parameters define the number of faces per fragment. Any given fragment will have a number of faces, randomly determined, between the Min and Max values. Min Specifies the minimum number of faces per fragment to be randomly generated by the "explosion." Max Specifies the maximum number of faces per fragment to be randomly generated by the "explosion." General group Gravity Specifies the acceleration due to gravity. Note that gravity is always in the direction of the world Z axis. You can have negative gravity. Chaos Adds random variation to the explosion to make it less uniform. A setting of 0.0 is totally uniform; 1.0 is a realistic setting. A value greater than 1.0 makes the explosion extra chaotic. Range=0.0 to 10.0. Detonation Specifies the frame at which the bomb goes off. Bound objects are unaffected before this time. Seed Change to alter randomly generated numbers in the bomb. You can achieve a different bomb effect by changing Seed while maintaining the other settings. Although you can animate strength and gravity, the equations used for projectile motion assume they are constant. Therefore, the motion will not 2792 | Chapter 14 Space Warps and Particle Systems be physically correct, but it might look interesting. Also, if the bomb object is in motion during the blast, the result is not physically correct. Modifier-Based Space Warps Create panel > Space Warps > Modifier-Based Create menu > Space Warps > Modifier-Based Modifier-based space warps duplicate the effects of standard object modifiers. Like other space warps, they must be bound to objects, and they work in world space. They are useful when you want to apply effects such as Twist or Bend to a widely scattered group of objects. Creating Modifier-Based Space Warps You create modifier-based space warps the same way that you create other space warps. Modifier-based space warps are listed on the Create panel as a separate category under Space Warps. All the modifier-based space warps use a box-shaped (nonrenderable) object. When you create one, you use the mouse in the viewport as you do when creating a Box primitive. Unlike their modifier versions, these space warps do not have sub-object levels. Modifier-Based Space Warps | 2793 Interface Gizmo Parameters rollout Gizmo Size group Length/Width/Height Let you adjust the warp object's dimensions. Deformation group Decay When is set to 0, there is no decay, and the space warp affects its bound object regardless of its distance from the object. When you increase the decay, the effect on the bound object falls off exponentially. See the topics on the individual modifiers for more information. Parameter rollout The parameters for a modifier-based space warp are identical to those of the modifier on which the space warp is based: Bend Modifier on page 1208 Taper Modifier on page 1811 Noise Modifier on page 1573 Twist Modifier on page 1837 Skew Modifier on page 1668 Stretch Modifier on page 1752 2794 | Chapter 14 Space Warps and Particle Systems Introduction to Particle Systems Particle systems are useful for a variety of animation tasks. Primarily, they're employed when animating a large number of small objects using procedural methods; for instance, creating a snowstorm, a stream of water, or an explosion. 3ds Max provides two different types of particle systems: event-driven and non-event-driven. The event-driven particle system, also known as Particle Flow on page 2795, tests particle properties, and, based on the test results, sends them to different events. Each event assigns various attributes and behaviors to the particles while they're in the event. In the non-event-driven systems on page 3002, particles typically exhibit similar properties throughout the animation. IMPORTANT Particle systems can involve a great many entities, each of which is potentially subject to any number of complex calculations. For this reason, when using them for advanced simulations, you should have a very fast computer and as much memory as possible. Also, a powerful graphics card helps speed the display of particle geometry in the viewports. Even so, it’s still easy to overburden the system; if you encounter loss of responsiveness, wait for the particle system to finish its calculations, and then reduce the number of particles in the system, implement a cache, or use other methods to optimize performance. Which Particle System to Use? Having access to a wealth of particle systems in 3ds Max leads to the need to decide which system to use for a particular application. In general, for a simple animation, such as falling snow or a water fountain, setup is faster and easier with a non-event-driven particle system. With more complex animations, such as an explosion that generates different types of particles over time (for example: fragments, fire, and smoke), use Particle Flow for greatest flexibility and control. Particle Flow Particle Flow is a versatile, powerful particle system for 3ds Max. It employs an event-driven model, using a special dialog called Particle View on page 2811. In Particle View, you combine individual operators on page 8069 that describe particle properties such as shape, speed, direction, and rotation over a period of time into groups called events on page 7966. Each operator provides a set of parameters, many of which you can animate to change particle behavior Introduction to Particle Systems | 2795 during the event. As the event transpires, Particle Flow continually evaluates each operator in the list and updates the particle system accordingly. To achieve more substantial changes in particle properties and behavior, you can create a flow on page 7983. The flow sends particles from event to event using tests on page 8147, which let you wire on page 8170 events together in series. A test can check, for example, whether a particle has passed a certain age, how fast it's moving, or whether it has collided with a deflector. Particles that pass the test move on to the next event, while those that don't meet the test criteria remain in the current event, possibly to undergo other tests. NOTE Operators and tests are known collectively as actions on page 7897. Following are the principal sections in the Particle Flow documentation: Using Particle Flow on page 2796 Particle Flow User Interface on page 2811 Actions on page 2838 See also: ■ Non-Event-Driven Particle Systems on page 3002 How Particle Flow Works Particle View on page 2811 is the primary interface for building and modifying Particle Flow systems. The first event in the system is always a global event, whose contents affect all particles in the system. It has the same name as the Particle Flow source icon. By default, the global event contains a single Render operator that specifies rendering properties for all particles in the system. You can add other operators here to have them act globally, such as Material, Display, and Speed. When you use an operator globally, be sure not to use the same operator locally (that is, in any other events in the system) to avoid potential conflicts. The global event also serves as the Particle View representation of the particle system. You can create a new system by duplicating this event, or by adding an Empty Flow or Standard Flow. Conversely, if you clone the Particle Flow icon in a viewport, or add a new PF Source, the new system appears in Particle View as well. The second event is called the birth event, because it must contain a Birth operator. The Birth operator should exist at the top of the birth event, and in 2796 | Chapter 14 Space Warps and Particle Systems no other place. The default birth event also contains a number of operators that act locally to specify properties of particles while in that event. The default particle system provides a basic global event and birth event that serve as a useful starting point for creating your own system. If you like, you can instead start with an empty system that lets you build a particle system from scratch. 1. Event display 2. Particle diagram 3. Global event Particle Flow | 2797 4. Birth event 5. Depot To add an action to the particle diagram, you drag it to the event display from the depot (the area at the bottom of the Particle View dialog). If you drag an action to an event, you can add it to the event or replace an existing action, depending on where you drop it. If you drop it in an empty area, it creates a new event. Then, to customize the action, you click its event entry, and then edit its settings in the parameters panel at the side of Particle View. To add complexity to the particle system, you can add a test to an event, and then wire the test to another event. You can adjust the test parameters to affect particle behavior, as well as determine whether specific conditions exist. When particles meet these conditions, they become eligible for redirection to the next event. Particle Flow provides a number of tools for determining where in the system particles currently reside, including the ability to change particle color and shape on an event-by-event basis. You can also easily enable and disable actions and events, and determine the number of particles in each event. To speed up checking particle activity at different times during the animation, you can cache particle motion in memory. Using these tools, plus the ability to create custom actions with scripting, you can create particle systems of a level of sophistication previously unachievable. The Life of a Particle Another way of looking at Particle Flow is from the perspective of an individual particle. Each particle first comes into existence, or is born, via the Birth operator on page 2844, which lets you specify when to start and stop creating particles, and how many to create. The particles first appear at an object called an emitter. By default, the emitter is the Particle Flow source icon using the Position Icon operator on page 2850, but you can alternatively use the Position Object operator on page 2853 to specify that particles should be born on the surface of or within any mesh object in the scene. After being born, particles can remain stationary at the emission point, or start moving in two different ways. First, they can move, physically, within the scene at a speed and in a direction specified by various actions. These are typically Speed operators, but other actions can also affect particle motion, including Spin on page 2863 and Find Target on page 2970. In addition, you can use the Force operator on page 2946 to affect their motion with outside forces. 2798 | Chapter 14 Space Warps and Particle Systems 1. Particle immediately after creation, with no speed. 2. The Speed operator sets the particle in motion. 3. The particle continues moving until acted upon by another action. The second way that particles move is logically, from event to event through the particle diagram, as constructed in Particle View on page 2811. Each event can contain any number of operators that can affect, in addition to motion, a particle's surface appearance, its shape and size, and others. The particles start out in the birth event, which typically is the first event after the global event. During a particle's residence in an event, Particle Flow evaluates each of the event's actions from top to bottom, once per integration step, and makes any applicable changes to the particle. If the event contains a test, Particle Flow determines whether the particle tests True for the test's parameters, such as whether it has collided with an object in the scene. If it does, and if the test is wired to another event, Particle Flow sends the particle to the next event. If it doesn't, the particle remains in the current event, and may be further acted upon by its operators and tests. Thus, each particle exists in only one event at a time. An action in an event can change the particle shape (1), or the particle spin (2), or spawn new particles (3). Particle Flow | 2799 Actions can also apply forces to particles (1), specify collision effects (2), and alter surface properties (3). In this way, the particle continues to travel through the system. Due to the flexible nature of schematic construction in Particle Flow, a particle may be redirected to the same event several times. But at some point, you might want the particle's life to end. For this purpose, you'd use the Delete operator on page 2848 or the Collision Spawn test on page 2964 or Spawn test on page 2991. Otherwise, the particle lives throughout the entire animation. Particle age can be used to kill a particle. As a particle moves through the system, it's accompanied by a number of channels. For example, each particle has a speed channel that defines how fast it moves, and a material ID channel that lets Particle Flow know which sub-material to apply to it. However, the material itself is not defined by a channel, but by a Material operator that acts locally or globally. Properties that are defined by channels persist, unless altered by an action. For example, the Material Dynamic operator on page 2925 can change a particle's material ID. In effect, by setting up a particle diagram and modifying how particles look and act during the animation, you’re deciding how channel values change based on events and animation keyframes. 2800 | Chapter 14 Space Warps and Particle Systems Particle Flow FAQ This topic offers answers to a number of questions users commonly ask when first learning to use Particle Flow. The first section contains links to all the questions, and the subsequent sections contain the questions and answers organized by category. Question List How does Particle Flow handle time? on page 2802 When I go to a different frame, the software sometimes seems to freeze for a while. What's going on? on page 2803 Is there a way to pre-calculate portions of a particle simulation, as in "baking" the animation? on page 2803 What else can I do to optimize performance? on page 2804 How do I use Particle Flow to make an object explode? on page 2804 How can I control the accuracy of the Particle Flow simulation? on page 2804 Can I use MAXScript to affect particles? on page 2804 Can I use more than one object as instanced geometry? on page 2805 How can I exclude particles from certain light sources? on page 2805 How do I open Particle View without clicking Particle View button on the command panel? on page 2805 Do I need multiple Particle Views to manage more than one particle system? on page 2805 Can I selectively disable or "turn off" portions of a particle system? on page 2805 I sometimes see events named “Action Recovery” in Particle View. Where did they come from? on page 2806 How do I animate action parameters? on page 2806 How can I synchronize an animated bitmap texture to particle age? on page 2806 Do I still need to bind my Particle Flow particles to space warps? on page 2806 How do I make particles follow a path? on page 2806 Can I use Snapshot or dynamics with Particle Flow? on page 2807 Particle Flow | 2801 How do I use motion blur with Particle Flow? on page 2807 How do I use the Particle Age and Particle MBlur maps with Particle Flow? on page 2807 I’m trying to apply Particle Flow to an animation created with a dynamics system. Why am I getting strange results such as unexpected spawning of particles? on page 2808 How can I make all particles appear in the first frame while giving them different ages? on page 2808 How can I specify the time frame in which animated parameters are applied to particles? on page 2808 How can I apply bubble motion to particles? on page 2808 How can I branch an event to several other events? on page 2809 Does it matter which order I put actions in an event? on page 2809 How can I tell which particles are in a certain event? on page 2810 Why do my particles lose their material when they move to another event? on page 2810 Can I have an event receive input from multiple events? on page 2810 I changed an operator setting, but it doesn't seem to have any effect on the particle system. on page 2810 Can an event be isolated in Particle View and not connected to anything? on page 2811 General How does Particle Flow handle time? Parameters that measure time in Particle Flow, such as Birth on page 2844 > Emit Start/Stop and Age Test on page 2958 > Test Value, are specified in frames. However, Particle Flow is always aware of the current system frame rate (fps), and if you change this rate, it adjusts all time-related parameters to keep the same timing. For instance, if you set Test Value to 60 when you're using the NTSC frame rate (30 fps), and then switch to PAL (25 fps), Particle Flow automatically changes the value to 50, so the age that's tested for is still two seconds. On the other hand, rate parameters, such as Speed, are measured in units per second, so they don't change when you go to a different frame rate. 2802 | Chapter 14 Space Warps and Particle Systems When I go to a different frame, the software sometimes seems to freeze for a while.What's going on? Most of the animation in Particle Flow is history dependent; that is, to be able to draw the particles in a particular frame, the program needs to know what happened in all previous frames. Normally, when you change a parameter value, the program needs to recalculate all frames between the start and the current frames. Or, if you go to a different frame, Particle Flow must recalculate one or more animation frames. If you go forward, it must calculate the frames between the current frame and the one you go to. So, for example, if you just go to the next frame, relatively little calculation is needed. But if you go backward, even only by one frame, it must calculate all frames from the start of the animation to the frame you go to. If a lot of calculation is needed, there is a delay. Meanwhile, the software displays a message like “PF Source 01 Update xx% (Press Esc to cancel)” in the status bar, so you can get an idea of how the recalculation is progressing. If, when you see this message, you press the Esc key, Particle Flow displays an alert with the message “Click OK to turn off PF Source 01.” If you click OK, the recalculation stops, giving you the opportunity to optimize the animation. For example, you could reduce the number of particles for testing purposes. You must turn the source back on to continue. If you click Cancel, the calculation continues. TIP An easy way to speed up recalculation and rendering of particles is by adjusting the total number of particles. To do this, select the Particle Flow source icon, and then go to the Modify panel > Emission rollout > Quantity Multiplier group. Here you can increase or decrease by percentage the total number of particles, separately for viewport display and rendering. TIP To speed up animation playback when you're not adjusting parameters, use the Cache operator (see the following item). Is there a way to pre-calculate portions of a particle simulation, as in "baking" the animation? Yes. Particle Flow's Cache operator on page 2935 lets you store all or part of a particle animation in memory, and then play back the animation from memory rather than having to recalculate particle motion. This makes it much faster to jump between different parts of the animation. You can even save the cached animation to disk as part of the scene file. Particle Flow | 2803 What else can I do to optimize performance? Particle Flow can place heavy processing and resource demands on your computer. For optimal performance, the most important thing you can do is to use the fastest available CPU. Also, when using particle systems with many particles, install as much memory as possible in your computer, especially if you're using caching. Other ways to improve performance include reducing the percentage of viewport particles with the Quantity Multiplier setting, and temporarily disabling flows and actions that you're not currently working with. When making parameter changes, return to the first frame and play forward, or set Particle View > Options menu > Update Type to “Forward”. That way, if you change a setting, the particle system is not forced to recalculate its state from the very beginning. The change will affect only animation from the current frame forward. On the other hand, the result could be misleading, because you won’t be able to see the difference right away. Also, be cautious when using spawning; it can quickly create very large numbers of particles, especially when you use the By Travel Distance option in the Spawn test on page 2991. How do I use Particle Flow to make an object explode? Particle Flow doesn't have a fragmentation operator, but by utilizing PArray in a Birth Script operator, you can implement fragmentation in Particle Flow. You can find an example scene, with a commented script operator, in the file scriptfragmentationwithcache.max, on the install disc in the directory Samples\Scenes\Version6Features\Scenes\Particle Flow\Fragments. How can I control the accuracy of the Particle Flow simulation? On the command panel > System Management rollout on page 2835 of the PF Source icon, you can adjust the integration step independently for viewport playback and rendering. The smaller the integration step, the more times Particle Flow calculates particle motion per frame, resulting in greater accuracy at the cost of calculation time. Can I use MAXScript to affect particles? Yes. Particle Flow includes a Script operator on page 2953 and test on page 2990, as well as a Birth Script operator on page 2847, that let you fully customize the particle system. Each scriptable action includes a sample script, which also lists all relevant scriptable functions. You can also control parameters of the 2804 | Chapter 14 Space Warps and Particle Systems Force operator on page 2946 and Keep Apart operator on page 2894 with script wiring, described in the respective topics. In addition, you can execute a script at each integration step, and another just before each frame is viewed or rendered; see Script rollout on page 2836. Can I use more than one object as instanced geometry? Yes. With the Shape Instance operator on page 2904, you can use groups, hierarchies, and objects consisting of multiple elements, with each members of the combined object constituting a separate particle. These objects can be emitted in a specific order, or in a random order. For example, you can use a text object, with the letters emitted in the order in which they appear in the text. How can I exclude particles from certain light sources? To prevent particles from being affected by a light source, use the light’s Exclude function, found on the General Parameters rollout (Modify panel), to specify any events containing particles to be excluded. Specifying the PF Source XX object (default name) has no effect; you must specify all objects listed as PF Source XX->Event XX. Particle View How do I open Particle View without clicking Particle View button on the command panel? Press the 6 key. It might be necessary to first turn on the Keyboard Shortcut Override Toggle. Do I need multiple Particle Views to manage more than one particle system? No: All particle systems appear in Particle View. You can scroll and zoom the event display to see the different systems. Can I selectively disable or "turn off" portions of a particle system? Yes. Particle View gives you a number of different ways of doing this. You can click an action's icon or an event's light-bulb icon to turn it off, or use the right-click menu, or use Edit menu's Turn On and Turn Off commands. Also, Particle Flow | 2805 if you press Esc while Particle Flow is calculating, the software gives you the opportunity of turning off the entire particle system, thus immediately returning control of the software to you. You can then analyze the system to determine the area of slowdown, optimize or simplify the particle flow, and then recalculate the animation. I sometimes see events named “Action Recovery” in Particle View. Where did they come from? When you merge a scene containing Particle Flow data, you can import entire events and isolated actions. If you merge an action without its events, the software places it in an event named “Action Recovery.” Animation How do I animate action parameters? Use the same Auto Key on page 3083 method as with animating any other parameter in 3ds Max. NOTE Avoid animating Particle Flow parameters with Set Key mode or with Shift+right-click. Also, to see animation keys for actions in the track bar, make sure the Particle Flow source icon is selected. How can I synchronize an animated bitmap texture to particle age? Use the Material Dynamic operator on page 2925 in conjunction with the Bitmap 2D map on page 5795. You'll find a procedure that describes the method in detail here on page ?. Do I still need to bind my Particle Flow particles to space warps? No; you use the Collision test on page 2960, Collision Spawn test on page 2964, or Force operator on page 2946 to affect particle motion with 3ds Max space warps. The ability to do this on a global and local (per-event) basis gives you much greater control over how space warps affect the particles than with previous systems. How do I make particles follow a path? You can use the Speed By Icon operator on page 2876 or the Find Target test on page 2970, assigning the icon or target to a spline path. You'll find illustrative procedures in both topics. 2806 | Chapter 14 Space Warps and Particle Systems Can I use Snapshot or dynamics with Particle Flow? No. The Snapshot tool is not currently compatible with Particle Flow, nor is reactor or the legacy dynamics system. How do I use motion blur with Particle Flow? You can apply motion blur on a per-event basis by editing the event's object properties on page 305 with the right-click menu in Particle View, or on a global basis by editing the global event's object properties. In the Particle View dialog, highlight the event to edit and then right-click and choose Properties. On the Object Properties dialog, edit the Motion Blur group settings. Alternatively, you can apply motion blur to an entire Particle Flow system without the need to set properties by using the multi-pass motion blur effect on page 5234 with a camera. NOTE You can also use Object Properties to set other properties for events and the particle system, as with any object in 3ds Max. Do this only within Particle View, not using the source icon in the viewports (right-click menu > Properties or Edit menu > Object Properties). NOTE When using Object Motion Blur, if an event contains a Material Dynamic operator that uses a material with a Particle Age, Particle MBlur, or Bitmap map, the event should not also contain a Delete operator, or a Spawn or Collision Spawn test. Also, the event should not contain any tests that are wired to another event. The only exception to this is the Age Test operator when set to Absolute Time without any variation; that is, all particles leave the event at the same time. This applies to the use of Object Motion Blur only; there are no restrictions with Image Motion Blur. How do I use the Particle Age and Particle MBlur maps with Particle Flow? To use the Particle Age map with Particle Flow, you must use the Delete operator to give the particles a finite life span. For further information, see Delete Operator on page 2848. Also note the following: ■ Particle Age, Particle MBlur and a Bitmap map containing an animated bitmap can be used only with Material Dynamic operator on page 2925, with Same As Particle ID turned on. You'll find procedures for using Bitmap and Particle Age at this topic. Particle Flow | 2807 ■ The particle material cannot be a submaterial; it must be the main material. ■ In the non-event-driven particle systems in 3ds Max, Particle MBlur is used with a control named Direction Of Travel\MBlur and an accompanying Stretch parameter. In Particle Flow, you can replicate the stretching effect by using a Scale operator, turning off Scale Factor > Constrain Properties, and scaling the particle along one axis. I’m trying to apply Particle Flow to an animation created with a dynamics system.Why am I getting strange results such as unexpected spawning of particles? The dynamics system probably generates rotation keys using the Euler XYZ controller. To avoid interpolation discontinuities, change the rotation controller for such objects to TCB Rotation. How can I make all particles appear in the first frame while giving them different ages? Use a negative frame range in the Birth operator on page 2844. For example, to get a particle-age spread of 30 frames, set Emit Start to -29 and Emit Stop to 0. How can I specify the time frame in which animated parameters are applied to particles? You can animate many of the Particle Flow parameter values with keyframing. In most actions, you can choose the time frame by which to apply this animation to the particles from a drop-down list labeled Sync By. You can apply this animation to particles in the time frame of the entire animation, or at a specific time of each particle's life (particle age), or based on the length of time the particle has been in the current event. See the individual operator and test topics for details. How can I apply bubble motion to particles? Although Particle Flow doesn't have the bubble motion option on page 3067 found in PArray, you can simulate the effect by following this procedure: 1 Add an object to serve as particle geometry and a dummy helper object on page 2615. 2 Position the dummy away from the center of the particle geometry object and link on page 3342 your particle geometry to the dummy so that the 2808 | Chapter 14 Space Warps and Particle Systems dummy is the parent object (that is, drag from the geometry object to the dummy). The distance between the pivots on page 3475 of the two objects determines the radius of the bubble motion. 3 In Particle View, add a Shape Instance operator on page 2904 and a Spin operator on page 2863 to the event in which the bubble motion is to occur. 4 Click the Shape Instance operator and specify the dummy object as the particle geometry object. 5 Click the Spin operator and set appropriate values for Spin Rate and Variation. For Spin Axis, keep the default setting of Random 3D. The result is particle motion in which the particles bob about while moving along their paths, similar to bubble motion. Events How can I branch an event to several other events? Particle Flow includes several Split tests, which let you send some particles to another event based on quantity, selection, or source. You can use any number of these in a single event to send parts of the particle stream to different events, and then use a Send Out test on page 2990 to redirect the remaining particles to another event. Keep in mind that any tests subsequent to the first can work only with particles remaining in the event, not necessarily all particles that begin in the event. Does it matter which order I put actions in an event? It depends. If an event contains two or more operators of the same type, such as Shape, the last one overrides the rest. If an event contains two or more tests, they are evaluated and particles redirected in the order in which the tests appear. However, if two actions in an event control the same properties, the interaction is more complex. An action that works on a continuous basis will typically prevail over one that affects particles only when they first enter the event. For example, both the Find Target test on page 2970 and Speed operator on page 2871 can control particle speed and direction, but the test works continuously, while the operator takes effect only once. If an event contains both, particle speed and direction will be primarily controlled by the test, in general, even if the operator comes after the test. However, the operator's settings will still have some influence over particle behavior, particularly if its Speed value is Particle Flow | 2809 significantly higher than that of the test. For a list of actions’ effective time frames, see Action Time Frames on page 2839. Also, if you're testing for a specific condition that can be affected by other actions in an event, be sure to place the test after the actions. For example, in an event with a Force operator on page 2946 and a Collision test on page 2960, place the Collision test after the Force operator. This avoids the possibility of the force pushing particles past the deflector before the software can test for the collision, which would allow the particles to penetrate the deflector. In general, place tests at the end of the event. How can I tell which particles are in a certain event? One way is to set the Type option for the Display operator on page 2943 in each event to a different choice. For example, the first event could use Ticks, the second Circles, and the third Lines. This way the particles change appearance in the viewports as they move from event to event. You can also use the Display operator to change particle colors, to further distinguish them. Another way is to select all particles in a certain event. Select the Particle Flow source icon, and then go to the Modify panel > Selection rollout and click the Event icon. You can then click an event in the Select By Event list to highlight all of its particles in the viewports. Why do my particles lose their material when they move to another event? A material is a static property of an event. It does not travel along with the particles from event to event. A particle's material ID does, but its material does not. If you want particles always to use the same material, define the material in the global event on page 7997 with a Material operator on page 2918 or a Shape Instance operator on page 2904. Otherwise, you need to define it in each local event. Can I have an event receive input from multiple events? Particle Flow lets you wire any number of tests to a single event. I changed an operator setting, but it doesn't seem to have any effect on the particle system. A similar operator in the global event might be overriding your local operator. By default, Particle Flow evaluates local operators first, and then global operators. If a global operator affects the same property, such as speed, as a 2810 | Chapter 14 Space Warps and Particle Systems local one, the particle system will use the value set by the global operator. You can set local operators to override global ones by choosing Particle View > Options menu > Action Order > Globals First. Can an event be isolated in Particle View and not connected to anything? Yes, but it won't affect the particle system at all. Particle Flow User Interface Particle View Select a Particle Flow source icon > Modify panel > Setup rollout > Click Particle View (or press 6). Create panel > Geometry > Particle Systems > Object Type rollout > Click PF Source. > Setup rollout > Click Particle View (or press 6). Particle View provides the main user interface for creating and modifying particle systems in Particle Flow. The main window, known as the event display, contains the particle diagram, which describes the particle system. A particle system consists of one or more events wired together, each of which contains a list of one or more operators on page 2841 and tests on page 2956. Operators and tests are known collectively as actions. The first event is called the global event, because any operators it contains can affect the entire particle system. The global event always has the same name as the Particle Flow icon; by default, this is PF Source ## (starting with 01 and counting upward). Following this is the birth event, which must contain a Birth operator on page 2844 if the system is to generate particles. By default, the birth event contains this operator as well as several others that define the system's initial properties. You can add any number of subsequent events to a particle system; collectively, the birth event and additional events are called local events. They're called this because a local event's actions typically affect only particles currently in the event. You use tests to determine when particles are eligible to leave the current event and enter a different one. To indicate where they should go next, you wire the test to another event. This wiring defines the schematic, or flow, of the particle system. Particle Flow | 2811 By default, the name of each operator and test in an event is followed by its most important setting or settings in parentheses. Above the event display is a menu bar, and below is the depot, containing all actions available for use in the particle system, as well as a selection of default particle systems. TIP The easiest way to open Particle View is by pressing the 6 key. It's not necessary to first select a Particle Flow icon. 1. Menu bar 2. Event display 3. Parameters panel 4. Depot 5. Description panel 6. Display tools 2812 | Chapter 14 Space Warps and Particle Systems Particle View comprises the following elements: ■ The menu bar on page 2813 provides functions for editing, selection, adjusting the view, and analyzing the particle system. ■ The event display on page 2822 contains the particle diagram, and provides functions for modifying the particle system. ■ The parameters panel contains rollouts for viewing and editing parameters of any selected actions. Basic functionality is identical to that of rollouts on the 3ds Max command panels, including usage of the right-click menu. To toggle display of the parameters panel, choose Display menu > Parameters. ■ The depot contains all Particle Flow actions, as well as several default particle systems. To see an item's description, click its entry in the depot. To use an item, drag it into the event display on page 2822. The contents of the depot fall into three categories: operators on page 2841, tests on page 2956, and flows on page 2954. To toggle display of the depot, choose Display menu > Depot. ■ The Description panel displays a brief description of the highlighted depot item. To toggle display of the description panel, choose Display menu > Description. ■ The icon-based display tools in the bottom-right corner of the Particle View dialog let you pan and zoom the event display window. For descriptions, see Display menu on page 2819. Particle View Menu Bar Select a Particle Flow source icon. > Modify panel > Setup rollout > Click Particle View (or press 6). Create panel > Geometry > Particle Systems > Object Type rollout > Click PF Source. > Setup rollout > Click Particle View (or press 6). The menu bar provides access to a number of important Particle View functions. Particle Flow | 2813 Procedures To render only particles in specific events: 1 In Particle View, highlight the events containing the particles you want to render. 2 Choose Select menu > Assign Selection To Viewport. 3 Render using one of the Render Type on page 6095 > Selected options. To bring a Particle Flow setup into a different scene: 1 In Particle View, highlight the events containing the particles you want to merge with a different scene. For example, to designate only a particular flow, you might highlight its global event, and then choose Select menu > Select Downstreams. 2 Choose Select menu > Save Selected, and use the file dialog to specify a file to save. NOTE Any scene objects on which Particle Flow depends are also saved. For instance, if a Shape Instance operator on page 2904 in one of the highlighted events refers to a certain object, that object is saved along with the designated events. 3 Open or create the scene with which the saved Particle Flow setup will be combined, and then use Merge on page 7058 to merge the file from step 2. 2814 | Chapter 14 Space Warps and Particle Systems Interface Edit menu Each of the first three commands on this menu presents a submenu containing all actions. Choose the command, and then choose an action from the submenu. NOTE The Undo and Redo commands are available from the main 3ds Max Edit menu, and their default keyboard shortcuts are the same: Ctrl+Z and Ctrl+Y, respectively. New Adds a new event containing the chosen action to the event display. Insert Before Inserts the chosen item above each highlighted action. Available only when one or more actions are highlighted. Append To Inserts the chosen item at then end of each highlighted event. Available only when one or more events are highlighted. Turn On All Turns on all actions and events. Turn Off All Turns off all actions and events. Turn On Selected Turns on any highlighted, turned-off actions or events. Available only when one or more highlighted items are turned off. Particle Flow | 2815 Turn Off Selected Turns off any highlighted, turned-on actions or events. Available only when one or more highlighted items are turned on. Make Unique Converts an instanced action to a copy that's unique to its event. Available only when one or more instanced actions are highlighted. Wire Selected Wires one or more highlighted tests to a highlighted event, or one or more highlighted global events to a highlighted birth event. Available only when one or more tests and a single event are highlighted, or when one or more global events and a single birth event are highlighted. Copy Copies any highlighted events, actions, and wires to the paste buffer. Keyboard equivalent: Ctrl+C. Paste Pastes the contents of the paste buffer to the event display. Keyboard equivalent: Ctrl+V. The result of copying and then pasting multiple items depends on what you copied: ■ If you copied multiple actions, pasting adds them all to a single new event, even if they originally came from different events. ■ Copying multiple events or wires pastes them exactly as copied. ■ If you copied a combination of actions and events, pasting creates a new event for each group of actions from a single event. For example, if you highlight event A, some actions from event B, and some actions from event C, copying and then pasting would add three events: a copy of event A, a second event with the actions from event B, and a third event with the actions from event C. Paste Instanced Pastes the contents of the paste buffer to the event display, making instances of any pasted actions and their originals. For the results of pasting multiple copied items, see Paste, above. Delete Deletes any highlighted items. Keyboard equivalent: Delete. Deleting an event also deletes all of its actions. Rename Lets you enter a new name for any single highlighted item in the event display. Available only when one action or test is highlighted 2816 | Chapter 14 Space Warps and Particle Systems Select menu By default, the Select tool is active when Particle View is open, as indicated by the arrow-shaped mouse cursor. You can use this tool to highlight, move, and copy events, actions, tools, and wires. You can also use the commands on this menu to highlight all elements, no elements, or elements by category. NOTE When you render using any of the Selected options, the software renders only events that are selected in the viewports. You can use the last three commands on this menu to manage and coordinate selection of events and flows between Particle View and the viewports. This also applies to use of the Views menu > Shade Selected command. Select Tool Activates the Select tool. Choose this to return to the Select tool after using interactive tools for panning and zooming the event display. Alternatively, simply right-click anywhere in the event display to activate the Select tool. Select All Highlights all items in the event display. Particle Flow | 2817 Select None Deselects all items in the event display. Alternatively, click an empty area in the event display. Select Actions Highlights all operators and tests in the event display. Select Operators Highlights all operators in the event display. Select Tests Highlights all tests in the event display. Select Events Highlights all events in the event display. Select Wires Highlights all wires in the event display. Select Downstreams Highlights all events after currently highlighted events. Available only when one or more events are highlighted. Save Selected Saves only highlighted elements in the event display to a .max file. You can then open this file, or combine it with an existing scene with File menu > Merge. NOTE The Particle View > Save Selected command saves all items selected in Particle View and in the scene. So if a PF Source icon is selected in the scene, then this command will save its global event as well as any birth events associated with it. if you want to save only parts of a Particle Flow setup, first unselect everything in the scene. Also, if an action references an object (for example, a Shape Instance operator on page 2904 uses a geometry object), and the action or its parent event is highlighted when you use Save Selected, then the reference object is saved as well. Get Selection From Viewport Highlights global events whose source icons are selected in the viewports. Assign Selection To Viewport Transfers an event selection to the viewports. Use this to render only particles in specific events. First, in Particle View, highlight the events to render. Next, choose this command, and finally, render using one of the Render Type on page 6095 > Selected options. Sync Source/Events Selection In Viewport Selects all events of any source icons selected in the viewports. You can then propagate this selection to Particle View with the Get Selection From Viewport command. Use this function to render a specific particle flow using one of the Render > Selected options. 2818 | Chapter 14 Space Warps and Particle Systems Display menu The first five commands on this menu are also available as icons, in the Display tools section on the right side of the bottom border of the Particle View dialog. Each command's Display tools icon is shown below. Pan Tool Drag in the event display to move the view. The mouse cursor changes to a hand icon. You can also pan the view by dragging with the middle mouse button or wheel button held down. To exit this mode, right-click in the event view or choose the command again. Zoom Tool Drag in the event display to zoom the view. The mouse cursor changes to a magnifying-glass icon. Drag upward to zoom in, or downward to zoom out. To exit this mode, right-click in the event view or choose the command again. Zoom Region Tool Drag in the event display to define a zoom rectangle. The mouse cursor changes to the image of a magnifying glass inside a zoom region. When you release the mouse button, the display zooms to show only the area defined by the region. To exit this mode, right-click in the event view or choose the command again. Zoom Extents Sets the zoom to show the entire particle diagram in the event display. Particle Flow | 2819 No Zoom Sets the zoom to the default level. This is the level displayed when you first open Particle View in a given session. Parameters Toggles display of the parameters panel, on the right side of the Particle View dialog. Default=on. Depot Toggles display of the depot, below the Particle View dialog. Default=on. Description Toggles the Description panel, to the right of the depot. Default=on. The Description panel displays a brief description of any action highlighted in the depot. Options menu This menu contains a number of options useful in analyzing and debugging particle systems. Default Display Determines whether the Display operator is applied locally or globally to new particle systems and events. Default=Local. ■ Global When you create a new particle system, Particle Flow adds a single Display operator to the global event. It does not add a Display operator to each new event. ■ Local Particle Flow adds a Display operator to each new event. This lets you easily distinguish particles in different events in the viewports. Action Order For predictable results, don't use similar actions in the global and local events. However, if comparable actions do exist in both the global event and other events, Particle Flow applies them to the system in the order specified here. Typically, the effect that's applied last is the one that's visible in the particle system. Default=Locals First. For example, consider a situation in which the global event contains a Shape operator set to Cube, and the other events in the same system contain Shape operators set to Tetra or Sphere. By default, Particle Flow applies the global 2820 | Chapter 14 Space Warps and Particle Systems Shape operator last at each integration step, overwriting any local shapes, so all particles would be cubes. But if you set Action Order to Globals First, the local shapes are applied last, and particles appear as tetrahedrons or spheres, depending on which event they're in. ■ Globals First At each integration step, Particle Flow first applies actions in the global event, and then actions in the other (local) events. Typically, the result is that actions in the local events override comparable actions in the global event. ■ Locals First At each integration step, Particle Flow first applies actions in the local events, and then actions in the global event. Typically, the result is that actions in the global event override comparable actions in the local events. Update Type This setting determines how Particle Flow updates the system when you change a parameter during playback. Because the state of the particle system at any given frame can depend on events in previous frames, using the Complete option can provide a more accurate depiction of the result of the change, at a cost in speed; it takes more time to recalculate the entire system starting at the first frame. Default=Complete. ■ Complete When you change a setting during playback, Particle Flow updates the entire system, starting at the first frame. ■ Forward When you change a setting during playback, Particle Flow updates the system starting at the current frame. Track Update Provides options for visualizing the particle system status in Particle View. ■ Particle Count Adds a tab above each event that shows the number of particles in the event. The global event's count shows the total number of particles in the particle system. Use this, in addition to the ability to display particles differently in each event, to trace particle progress through the system. ■ Update Progress Highlights each action in color whenever Particle Flow evaluates it. The highlighting is very fast, but this option can add significant computational overhead to the particle system, with the result that real-time playback might skip a greater number of frames. To see all frames, turn off Time Configuration > Real Time. Particle Flow | 2821 Use Dynamic Names When on, action names in events are followed by their most important setting or settings, in parentheses. When off, only the names appear. Default=on. Particle View Event Display Select a Particle Flow source icon. > Modify panel > Setup rollout > Click Particle View (or press 6). Create panel > Geometry > Particle Systems > Object Type rollout > Click PF Source. > Setup rollout > Click Particle View (or press 6). The event display on page 7968 in Particle View contains the particle diagram, and provides a complete range of intuitive functions for editing the particle system. NOTE A number of these functions are also available from the event display right-click menu on page 2825, as well as the menu bar on page 2813. Editing the Particle Diagram and Particle System Interactive functionality in event display includes the following: General ■ To add an action to the particle system, drag it from the depot to the event display. If you drop it in an empty area of the event display, it creates a new event. If you drag it to an existing event, the result depends on whether a red line or a blue line appears when you drop it. If a red line, the new action replaces the underlying action. If a blue line, the action is inserted in the list. ■ To edit an action's parameters, click its name in an event. The parameters appear on the right side of Particle View. If not, it means the parameters panel is hidden; to display it, choose Display menu > Parameters. ■ To wire a test to an event, drag from its test output, the blue dot that by default sticks out to the left of the test, to the event's event input, which sticks out from the top, or vice-versa. Similarly, you can wire a global event to a birth event by dragging between the source output on the bottom of the global event and the event input. The mouse cursor 2822 | Chapter 14 Space Warps and Particle Systems changes to the first depicted image when you can begin this operation, and to the second image when you can complete it. ■ To pan or zoom the event display, use the controls available from the Display menu on page 2819, the right-click menu on page 2825, or as icons at the bottom-right of the dialog. Modifying Actions and Events in the Event Display ■ To change the color used by a Display operator, click its color swatch to the right of its name. ■ To toggle an operator (that is, turn it off and on), click its icon in the event. The mouse cursor changes to the depicted image when this action is possible. A turned-off operator does not affect the particle system, and appears as gray in the event list; however, its parameters are still available for editing. Toggling an instanced operator doesn't affect its other instances. ■ To toggle an event (that is, turn it off and on), click the light-bulb icon next to its name in the title bar. Turning off an event is equivalent to turning off all of its operators and tests, although you cannot turn the operators and tests back on individually. The event's items do not affect the particle system, and appear as gray in the event list. All particles entering a turned-off event are immediately passed on to the next event, if any. ■ To make a test result always True or False, click its icon's left or right side, respectively. The mouse cursor changes to the first image at the left (with the left-pointing arrow) when you can click for always True, and to the second image at the left (without the left-pointing arrow) when you can click for always False. Particle Flow | 2823 The test icon changes to a green or red light bulb to indicate current functionality: green for always True, and red for always False. To return to the original functionality, click the icon again. The mouse cursor changes to the depicted image when this action is possible. Selecting, Moving, and Copying ■ To copy an action or event, first press and hold the Shift key and position the mouse cursor over the item to copy. When the plus sign (+) appears next to the mouse cursor arrow, drag the item to a new location. When you release the mouse button, the Clone Options dialog appears; choose Copy or Instance and click OK. In the Clone Options dialog, the Event And Particle System group is unavailable, as a reminder that you cannot instance these elements. Reference is not an option when cloning Particle System elements. Cloning an event or particle system simply creates a new event or particle system containing clones of the original's actions. Any instanced actions have identical properties. Changing one instance's values changes them all. On the other hand, copied actions can have different values. To clone multiple items, highlight them all before Shift+dragging. If you attempt to clone a combination of actions and events, or actions from different events, the result depends on where you start dragging from. If you drag a highlighted action, you'll clone only actions from that event. If you drag an event, only highlighted events are cloned. NOTE When you highlight an instanced action, Particle View indicates all of its other instances by changing their background color to a lighter shade of gray. ■ To move an event, drag its title bar, or the icon of any of its actions. If you drag the event to an edge of the display, and scrolling is possible, the display window will automatically scroll in that direction. ■ To resize an event, drag its right edge. ■ To highlight multiple items, drag a rectangle around them, or Ctrl+click them individually. 2824 | Chapter 14 Space Warps and Particle Systems ■ To delete an event, action, or wire, highlight it and then press Delete. Be sure the Particle Dialog is active, or you might inadvertently delete a selection in the scene instead. ■ To move an action, drag its name (not its icon) to the new location. If you drag the event to an edge of the display, and scrolling is possible, the display window will automatically scroll in that direction. If you drag an action to an event, you can insert the action or replace an existing action, depending on where you position the mouse cursor before releasing the button. A blue line (before releasing) indicates that it will be inserted at that location, and a red line indicates that it will replace the underlying action. If you drag the action to an empty space in the event display, it will form a new event, and, by default, the system will add a new Display operator. NOTE Particle Flow doesn't let you perform illegal operations. For instance, a Birth operator must always be the first item in a birth event on page 7924; the system doesn't let you position it elsewhere. You can place a Birth operator in an isolated event, but you can't then wire that event into a particle system, except in parallel with another birth event. For more information, see the Birth operator topic on page 2844. ■ To move a test output or switch it to the opposite side of the event, drag from just inside the test output to the desired new location. The mouse cursor changes to the depicted image when this operation is possible. Getting Information ■ To see a renamed action's original type, position the mouse cursor over its event list entry until the tooltip appears. ■ To see a brief description of an action, click it in the depot. The description appears on the Description panel, to the right of the depot. Event Display Right-Click Menu Select a Particle Flow source icon. > Modify panel > Setup rollout > Click Particle View (or press 6). > Right-click in event display. Particle Flow | 2825 Create panel > Geometry > Particle Systems > Object Type rollout > Click PF Source. > Setup rollout > Click Particle View (or press 6). > Right-click in event display. The event display right-click menu provides handy access to a number of contextual commands. The contents of the menu, as well as the results of its commands, depend in some cases on where you click, in other cases on what's highlighted, and in still other cases, on both. In the following descriptions, “item” means an action or event, or, in some cases, a wire. Interface Insert Displays a submenu of all actions, and when you choose a new action, inserts it where you originally right-clicked. Available only when you right-click over an event or action. If you right-click over an action, and then insert an action, the inserted action replaces the old one. If you right-click above or below an action (no tooltip appears), the new action is added to the event at that location. If you right-click over an event, the action is inserted at the first available position. Append Displays a submenu of all actions, and when you choose a new action, inserts it at the end of the event. Available only when you right-click over an event or action. Turn On Turns on the event or action under the mouse cursor. Available only when the item under the mouse cursor is turned on. To affect an event, the mouse cursor must be over its title bar. Turning on a highlighted item affects all highlighted items. Turn Off Turns off the event or action under the mouse cursor. Available only when the item under the mouse cursor is turned off. To affect an event, the mouse cursor must be over its title bar. Turning off a highlighted item affects all highlighted items. Make Unique Converts an instanced action to a copy that's unique to its event. Available only when the mouse cursor is over an instanced action. If you right-click over a highlighted, instanced action, Make Unique affects all such actions. Wire Wires one or more highlighted tests to a highlighted event, or one or more highlighted global events to a highlighted birth event. Available only when one or more tests and a single event are highlighted, or when one or 2826 | Chapter 14 Space Warps and Particle Systems more global events and a single birth event are highlighted, and when you right-click over an eligible, highlighted item. Copy Copies any highlighted events, actions, and wires to the paste buffer. Available only when the mouse cursor is over an highlighted action, but affects all highlighted items. Paste Pastes the contents of the paste buffer to the event display at the mouse cursor. If the cursor is over a list, and you copied actions, the actions are added to the event. If the cursor is over an empty area of the event display, the software creates a new event containing the pasted actions. A copied event can be pasted only in an empty area of the event display. The result of copying and then pasting multiple items depend on what you copied and the position of the mouse cursor: ■ If you copied multiple actions, pasting adds them all to the event under the mouse cursor, or, if the cursor is over an empty area, to a new event, even if they originally came from different events. ■ Copying multiple events and/or wires pastes them exactly as copied, but in this case Paste is available only when the mouse cursor is over an empty area. ■ If you copied a combination of actions and events, you can paste them only when the mouse cursor is over an empty area. Pasting creates a new event for each group of actions from a single event. For example, if you highlight event A, some actions from event B, and some actions from event C, copying and then pasting would add three events: a copy of event A, a second event with the actions from event B, and a third event with the actions from event C. Paste Instanced Pastes the contents of the paste buffer to the event display, making instances of any pasted actions and their originals. For the results of pasting multiple copied items, and the limitations based on mouse position, see Paste, above. New Add a new item to the event display from the submenu. The submenu contents are identical to that of the depot. Available only when the mouse cursor is over an empty area. Delete Deletes the item under the mouse cursor. Available only when the mouse cursor is over an item. If the mouse cursor is over a highlighted item, choosing Delete deletes all highlighted items. Particle Flow | 2827 Rename Lets you rename the item under the mouse cursor. Enter a new name from the keyboard. Properties Opens the Object Properties dialog for the event under the mouse cursor. Available only when the mouse cursor is over the title bar of a highlighted event. Particle Flow lets you set object properties on a per-event basis. This lets you set attributes such as Hide, Renderable, and Motion Blur separately for each event. Alternatively, you can set properties for the entire particle system from the global event. For more information, see Object Properties on page 305. NOTE Set properties for events and the particle system only within Particle View, not via the source icon in the viewports (using the right-click menu > Properties or Edit menu > Object Properties). Use Script Wiring Lets you use a script to specify certain parameters in the Force operator on page 2946 and Keep Apart operator on page 2894. This command appears only when you right-click either of the specified, highlighted operators in an event. Comments Lets you add comments to each action and event, and view existing comments. Available only when the mouse cursor is over an action or the title bar of an event. Choosing Comments opens a window for entering text from the keyboard. Begin typing, and click OK to finish. A commented event or action has a red triangle near its name to indicate the presence of the comment. You can click this triangle to open the comment. Commented actions; click the triangle to view a comment. 2828 | Chapter 14 Space Warps and Particle Systems NOTE A comment is specific to the action or event to which it's applied. If you copy a commented event or action, the comment is not included in the copy, because it's probably not applicable to the copy. Pan Switches to the Pan tool. Drag in the event display to change the view; right-click to exit. Available only when you click over an empty area of the event display. Zoom Switches to the Zoom tool. Drag upward in the event display to zoom in, and downward to zoom out; right-click to exit. Available only when you click over an empty area of the event display. Zoom Region Switches to the Zoom Region tool. Drag a rectangle in the event display to specify the area to zoom into; right-click to exit. Available only when you click over an empty area of the event display. Particle Flow Source Add a Particle Flow system to the scene. > Create panel Select a PF Source icon. > Modify panel Particle View on page 2811 > Click a global event (title bar). > Parameters panel The Particle Flow source is the viewport icon for each flow on page 7983, and also serves as the default emitter. By default, it appears as a rectangle with a Particle Flow | 2829 central logo (see above illustration), but you can change its shape and appearance using the controls described below. When you select a source icon in the viewport, the Particle Flow emitter-level rollouts appear on the Modify panel. Alternatively, click the title bar of a global event in Particle View to highlight it, and to access the emitter-level rollouts from the parameters panel on the right side of the Particle View dialog. Use these controls for setting global attributes, such as icon properties and the maximum amount of particles in the flow. The particle source icon is roughly equivalent to the corresponding global event on page 7997 in Particle View. They have the same name, but selecting one does not select the other. If you delete a particle source icon from the scene, the software converts the global event to an isolated local event in Particle View, retaining its operators with their settings intact. Any other events in the system remain in Particle View, along with their wiring. However, if you delete a global event, the software also removes any local events used exclusively by that system, as well as the corresponding particle source icon. To retain the local events, first delete the wire from the global event, and then delete the global event. If you clone a particle source in a viewport with Shift+transform or Edit menu > Clone, an equal number of copies of the global event appear in Particle View, each wired to the original birth event on page 7924. The Clone Options dialog offers only the Copy option. However, if you clone a global event in Particle View, the Clone Options dialog also lets you create instances of the cloned operators and tests. It's not possible to create instances of global and local events, so these options are unavailable in the Clone Options dialog, as a reminder. Also, global events cloned in Particle View are not automatically wired to the original birth event. Interface Modifier stack In the modifier stack, expanding the hierarchy of a Particle Flow source object provides access to two sub-object levels: Particle and Event. For further information, see Selection rollout on page 2833. 2830 | Chapter 14 Space Warps and Particle Systems Setup rollout Use these controls to turn the particle system on and off, and to open Particle View. NOTE This rollout appears only on the Create and Modify panels, not on the Particle View dialog > parameters panel. Enable Particle Emission Turns the particle system on and off. Default=on. You can also turn off all particle flows in Particle View with Edit menu > Turn Off All, or a specific particle flow by right-clicking its global event's title bar and choosing Turn Off. Particle View Click to open the Particle View dialog on page 2811. Emission rollout Sets the physical characteristics of the emitter (particle source) icon, and the percentage of particles produced in the viewports and when rendering. Particle Flow | 2831 Emitter Icon group Logo Size Sets the size of the Particle Flow logo, which appears at the center of the source icon, as well as the arrow that indicates the default direction of particle motion. By default, the logo size is proportional to that of the source icon; with this control, you can make it larger or smaller. This setting affects only the viewport display of the logo; changing it has no effect on the particle system. Icon Type Choose the basic geometry of the source icon: Rectangle, Box, Circle, or Sphere. Default=Rectangle. This choice matters only if you use the source icon as the particle emitter. The available size settings depend on which icon type you choose, and, again, are important only if you use the source icon as an emitter. The default icon type is Rectangle. If you add a particle system, and then change the icon type to Box, the icon continues to resemble a rectangle. To make it look like a box, increase the Height setting. Length/Diameter Sets the length of the Rectangle and Box icon types, and the diameter of the Circle and Sphere icon types. Width Sets the width of the Rectangle and Box icon types. Unavailable with the Circle and Sphere icon types. Height Sets the height of the Box icon type. Available only with the Box icon type. Show Logo/Icon Turns display of the logo (with arrow) and icon on and off, respectively. These settings affect only the viewport display of these items; they have no effect on the particle system. Quantity Multiplier group These settings determine the percentage of the total number of particles in each flow on page 7983 that are actually produced in the viewports and at render time. They don't affect the percentage of particles that are visible; those are determined by the Display operator on page 2943 and Render operator on page 2951. You can use them to quickly decrease or increase the number of particles consistently throughout all events in the particle system. The maximum setting, 10,000%, lets you multiply the number of particles generated by the flow by 100. 2832 | Chapter 14 Space Warps and Particle Systems The total number of particles is determined by the combined effects of the following operators and tests: Birth on page 2844, Birth Script on page 2847, Delete on page 2848, Collision Spawn on page 2964, and Spawn on page 2991. Scripted operators and tests can also affect this number. Viewport Sets the percentage of the total number of particles in the system produced in the viewports. Default=50.0. Range=0.0 to 10000.0. Render Sets the percentage of the total number of particles in the system produced at render time. Default=100.0. Range=0.0 to 10000.0. Selection rollout Use these controls for selecting particles on a per-particle or event basis. Selection of particles at the Event level is for debugging and tracking purposes. Particles selected at the Particle level can be acted upon by the Delete operator on page 2848 and the Split Selected test on page 3000. You cannot directly manipulate selected particles with standard 3ds Max tools such as Move and Rotate. NOTE This rollout appears only on the Modify panel, not on the Create panel or Particle View dialog > parameters panel. Particle Flow | 2833 Particle Lets you select particles by clicking them or dragging a region. Event Lets you select particles by event. At this level, you can select all particles in one or more events by highlighting the event(s) in the Select By Event list on page 2834, or in the viewports with standard selection methods. To convert a selection from the Event level to the Particle level for use with the Delete operator or Split Selected test, use Get From Event Level on page 2834. Selected particles appear in the viewports in red (if not geometry), in the form designated by the Display operator > Selected setting on page 2946. Select by Particle ID group Each particle has a unique ID number, starting with 1 for the first particle and counting up. Use these controls to select and deselect particles by their ID numbers. Available only at the Particle selection level. TIP You can display particle IDs in the viewports by turning on Display operator > Show Particle IDs. ID Use this to set the ID number of the particle you want to select. You can set only one number at a time. Add After setting the ID number of a particle to select, click Add to add it to the selection. By default, selecting a particle doesn't deselect any others. Remove After setting the ID number of a particle to deselect, click Remove to remove it from the selection. Clear Selection When on, clicking Add to select a particle deselects all other particles. Get From Event Level Click to convert an Event-level selection to the Particle level. Available only at the Particle level. Select By Event This list shows all events in Particle Flow, and highlights selected events. To select all of an event's particles, click its list entry, or use standard viewport-selection methods. # Particles Selected Shows the number of selected particles. 2834 | Chapter 14 Space Warps and Particle Systems System Management rollout Use these settings to limit the number of particles in the system, and to specify the frequency of updating the system. Particle Amount group Upper Limit The maximum number of particles the system may have. Default=100000. Range=1 to 10000000. TIP You can have more than 10,000,000 particles in a single system by using multiple particle sources and wiring them to the same birth event. Note, however, that Particle Flow is limited to sending a maximum of 5,000,000 particles per event to the renderer. Integration Step group At each integration step, Particle Flow updates the particle system, applying each active action to particles in its event. A smaller integration step can improve accuracy, at the cost of calculation time. These settings let you apply different integration steps to the particle animation in the viewports and at render time. In most cases, the default Integration Step settings work fine. One instance in which increasing the integration-step frequency might help is when fast-moving particles that should collide with a deflector penetrate it instead. Viewport Set the integration step for animation playback in the viewports. Default=Frame (once per animation frame). Range=1/8 Frame to Frame. Render Set the integration step at render time. Default=Half Frame (twice per animation frame). Range=1 Tick to Frame. There are 4,800 ticks in a second; thus, at the NTSC video rate of 30 frames per second, there are 160 ticks per frame. Particle Flow | 2835 Script rollout This rollout lets you apply a script to the particle system at each integration step, as well as after the last integration step of each frame you view. Use an Every Step Update script to set up history-dependent properties, and a Final Step Update script to set up history-independent properties. Every Step Update group The Every Step Update script is evaluated at the end of each integration step, after all actions in the particle system are evaluated, and all particles are finally in their respective events. When, for example, you are setting up Material ID according to a particle index, it is important to be sure that particles are not about to jump to another event. When you set up history-dependent properties, such as speed, it is important to do that at every integration step, because otherwise the final position would be quite different. Enable Script Turn on to cause a script in memory to be executed at each integration step. You can modify this script by clicking the Edit button, or load and use a script file with the remaining controls in this group. The default script modifies particle speed and direction, causing particles to follow a wavy path. Edit Click this button to open a text-editor window with the current script. When Use Script File is off, this is the default Every Step Update script (3dsmax\scripts\particleflow\example-everystepupdate.ms). When Use Script File is on, this is the loaded script, if you've loaded one. If you haven't, clicking Edit displays the Open dialog. 2836 | Chapter 14 Space Warps and Particle Systems Use Script File When on, you can load a script file by clicking the button below. [button] Click this button to display an Open dialog that lets you specify a script file to load from disk. After you load a script, the name of script file appears on the button. Final Step Update group The Final Step Update script is executed after the last integration step has been completed for each frame that you view (or render). For example, if you play the animation in the viewport with Real Time turned off, Particle Flow runs this script at each frame, immediately before the particle system is rendered to the viewport. However, if you simply jump to a different frame, the script is run once only, so if the script assumes a certain history, you might get unexpected results. For this reason, it's best to use the Final Step Update script to modify history-independent properties. For example, if no operators in the system depend on the material indices, you could use it to modify the material index. In this case there's no need to set those indices in every intermediate integration step. Also, you can set up a position channel in the Final Step Update script if you know the analytical expression for the position. Enable Script Turn on to cause a script in memory to be executed after the final integration step. You can modify this script by clicking the Edit button, or load and use a script file with the remaining controls in this group. The default script modifies particle speed and direction, causing particles to follow a bulb-shaped path. Edit Click this button to open a text-editor window with the current script. When Use Script File is off, this is the default Final Step Update script (3dsmax\scripts\particleflow\example-finalstepupdate.ms). When Use Script File is on, this is the loaded script, if you've loaded one. If you haven't, clicking Edit displays the Open dialog. Use Script File When on, you can load a script file by clicking the button below. [button] Click this button to display an Open dialog that lets you specify a script file to load from disk. After you load a script, the name of script file appears on the button. Particle Flow | 2837 Particle Flow Keyboard Shortcuts To use Particle Flow keyboard shortcuts, the Keyboard Shortcut Override Toggle on the main toolbar must be turned on. To view and customize these shortcuts, open the Customize User Interface dialog from the Customize menu, and then, from the Group drop-down menu, choose Particle Flow. Particle Flow Function Keyboard Shortcut Description Copy Selected In Particle View* Ctrl+C Particle Emission Toggle ; Toggles active status of all particle systems. Particle View Toggle 6 Toggles Particle View dialog. Paste In Particle View* Ctrl+V Select All In Particle View* Ctrl+A Selects all events, actions, and wires. Selected Particle Emission Toggle Shift+; Toggles active status only of particle systems whose icons are selected in the viewports. * These functions are specific to Particle View. It is recommended that you use Customize User Interface to change their keyboard shortcuts only, and not assign them to toolbars, quads, or menus. Actions The Particle Flow components for creating particle systems are known collectively as actions. These are subdivided into three main categories: ■ Operators on page 2841 ■ Flows on page 2954 2838 | Chapter 14 Space Warps and Particle Systems ■ Tests on page 2956 Action Time Frames Most actions in Particle Flow operate on particles in either of two time frames: once, when the particle first enters the event, or on a continuous basis, potentially changing particle behavior at each integration step. Some actions can work only in one time frame, while others can work on an instantaneous or continuous basis, depending on their settings. The tables below list each action with its time frame. Operators Operator Time Frame Birth n/a Birth Script n/a Delete n/a Force Continuous Keep Apart Continuous Mapping Continuous Material Dynamic Continuous Material Frequency Once Material Static Once Position Icon Once, except continuous with Lock On Emitter Particle Flow | 2839 Operator Time Frame Position Object Once, except continuous with Lock On Emitter Rotation Once, except continuous with Speed Space Follow Scale Once, except continuous with Absolute and Relative options Script Operator Depends on script Shape Once Shape Facing Continuous Shape Instance Once, except continuous with Animated Shape Shape Mark Once, except continuous with Align To Surface Animation Speed Once Speed By Icon Continuous Speed By Surface Depends on setting Spin Once, except continuous with Speed Space Follow n/a=not applicable Tests Most tests in Particle Flow function only as tests. At each integration step, they check each particle for the specified conditions, and then return the test 2840 | Chapter 14 Space Warps and Particle Systems result: True or False. So, as tests, they work on a continuous basis. For example, Age Test checks each particle's age at every integration step, because particles might not reach the specified age until remaining in the event for a while, and also because another action in the event might change or reset particle age. The principal exceptions to this are the Split tests, which test each particle only when it first enters the event. That is, a Split test splits the particle stream only once for each particle that enters the event. Any particles that remain in the event are not subject again to being split off from the stream by the same test. Also, the Send Out test performs no test, but simply moves particles along to the next event. Some tests also function as operators, in that they directly affect particle behavior. These are the ones listed here, and the specified time frame is related to the operator functionality, not the test. Test Time Frame Collision Spawn Continuous Find Target Continuous Go To Rotation Continuous Script Test Depends on script Spawn Continuous, except once with Once Operators The operator is the basic element of the particle system; you combine operators into events to specify the particles' characteristics over a given period of time. Operators let you describe particle speed and direction, shape, appearance, and more. The operators reside in two groups in the Particle View depot, and within each group appear in alphabetical order. Each operator's icon has a blue background, except for the Birth operators, which have a green background. The first group contains operators that directly affect particle behavior, such as transformation. Particle Flow | 2841 The second group, found at the end of the depot listing, contains four operators that serve more of a utility function: Cache, for optimizing particle-system playback; Display, for determining how particles appear in the viewports; Notes, for adding comments; and Render, for specifying render-time characteristics. The Particle Flow operators in the Particle View depot The primary operators in Particle Flow are: Birth Operator on page 2844 Birth Script Operator on page 2847 Delete Operator on page 2848 Force Operator on page 2946 Keep Apart Operator on page 2894 Mapping Operator on page 2932 Material Dynamic Operator on page 2925 Material Frequency Operator on page 2923 2842 | Chapter 14 Space Warps and Particle Systems Material Static Operator on page 2920 Position Icon Operator on page 2850 Position Object Operator on page 2853 Rotation Operator on page 2861 Scale Operator on page 2865 Spin Operator on page 2863 Select and Uniform Scale on page 963 Script Operator on page 2953 Shape Operator on page 2900 Shape Facing Operator on page 2901 Shape Instance Operator on page 2904 Shape Mark Operator on page 2911 Speed Operator on page 2871 Speed By Icon Operator on page 2876 Speed By Surface Operator on page 2886 The utility operators are: Cache Operator on page 2935 Display Operator on page 2943 Notes Operator on page 2950 Render Operator on page 2951 See also: ■ Flows on page 2954 ■ Tests on page 2956 Particle Flow | 2843 Birth and Death Birth Operator Particle View on page 2811 > Click Birth in an event or add a Birth operator to the particle system and then select it. The Birth operator enables creation of particles within the Particle Flow system using a set of simple parameters. In general, use Birth as the first operator in any event connected directly to a global event on page 7997; this is called the birth event on page 7924. You can specify a total number of particles, or a rate of particles born per second. You can also tell the system when to begin emitting particles, and when to stop. NOTE The Birth operator must always come at the beginning of a particle stream; the system doesn't let you position it elsewhere. You can place a Birth operator in an isolated event, but you can't then wire that event in series with a stream that already uses a Birth operator. However, you can wire multiple Birth operators, each in its own event, into a particle stream with an existing Birth operator, in parallel. The following procedure illustrates this. If you need to create particles midstream, use the Spawn Test on page 2991 or Collision Spawn Test on page 2964 test. See also: ■ Birth Script Operator on page 2847 Procedures To use the Birth operator: This procedure demonstrates the impossibility of using multiple Birth operators in series, and shows how to use multiple Birth operators in parallel. 1 Start or reset the software, and add a new PF Source object to the scene. 2 Press 6 to open Particle View. The default particle system contains a Birth operator as the first action in the birth event. 3 Try to drag the Birth operator elsewhere in Event 01. 2844 | Chapter 14 Space Warps and Particle Systems You can't. As you drag over the different actions in Event 01, a red line appears at the top of the event, showing that the Birth operator will be placed here, no matter where you release the mouse button. 4 Try to drag a new Birth operator from the depot to Event 01. As in the previous step, the only place you can drop the Birth operator is at the top of the event, replacing the existing Birth operator. 5 From the depot, drag the Birth operator to an empty area in the event display. Particle Flow creates a new birth event, Event 02, containing the Birth operator and a Display operator. 6 Wire the output of the global event, PF Source 01, to the event input of Event 02. Each birth event must be associated with a global event to be able to generate particles. 7 From the depot, add a Send Out test at the end of both Event 01 and Event 02. 8 Try to wire the test output of Event 02 to the event input of Event 01. Particle Flow doesn't let you, because this would result in two Birth operators in series. 9 Try to wire the test output of Event 01 to the event input of Event 02. Again, Particle Flow doesn't let you, because this would result in two Birth operators in series. 10 Drag a Speed operator to an empty area of the event display. Particle Flow creates a new event, Event 03. 11 Wire the test output of Event 01 to the event input of Event 03. 12 Wire the test output of Event 02 to the event input of Event 03. There's no problem wiring the two birth events to a single, third event. The birth events exist in the particle stream in parallel, each generating particles independently and then feeding its particle stream into a common event, where the two streams are combined. If the second birth event had its own global event, you could, at any point further downstream, separate the streams back out according to their origin using the Split Source test on page 3001. To do this, delete the wire from PF Source 01 to Event 02, add an Empty Flow on page 2954 to the system, and then wire it to Event 02. Particle Flow | 2845 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Emit Start The frame number at which the operator begins emitting particles. Emit Stop The frame number at which the operator stops emitting particles. NOTE The Emit Start and Emit Stop values are tied to the system frame rate. If you change the frame rate, Particle Flow automatically adjusts the Emit values accordingly. For example, if you set Emit Start to 120 and Emit Stop to 300 using the default NTSC frame rate (30 fps), and then switch to PAL (25 fps) using the Time Configuration dialog, you've reduced the frame rate to 5/6 of the original value. Thus, Particle Flow automatically uses the same ratio to adjust the Emit settings, resulting in an Emit Start value of 100 and an Emit Stop value of 250. This allows the particle system to retain the timing you specify, no matter which frame rate you use. NOTE With Subframe Sampling off, such adjustments are rounded off to the nearest integer frame number. With Subframe Sampling on, fractional frame values that result from such adjustments will be used, but not displayed. Amount To specify the total number of particles emitted by the operator, choose Amount, and then set the quantity of particles. Using the Amount option, the first particle is always emitted at the Emit Start frame, and the last particle is always emitted at the Emit Stop frame. Particles emitted between these endpoints appear at equal intervals within the emission period. For example, if you set Amount to 3, the second particle is emitted halfway through the emission period. To determine the number of particles emitted per frame when using Amount, divide the Amount value by the number of emission frames (Emit Stop-Emit Start+1). 2846 | Chapter 14 Space Warps and Particle Systems Rate To specify the number of particles emitted per second, choose Rate, and then set the value. The operator emits this number of particles per second starting at the Emit Start frame and ending at the Emit Stop frame. If you specify a birth rate value that isn’t an integer multiple of the system frames-per-second value (set in the Time Configuration dialog), Particle Flow uses interpolation to determine when to emit particles. For example, if you use the system default rate of 30 frames per second, and set the birth rate to 4, the system would emit each particle at intervals of seven or eight frames if Subframe Sampling is off, or at intervals of 7.5 frames if Subframe Sampling is on. Total The calculated total number of particles emitted by the operator. Subframe Sampling Turning this on helps avoid particle "puffing" by emitting particles at a much higher subframe resolution (that is, throughout each frame), rather than using the relatively coarse frame resolution. Default=on. "Puffing" is the effect of emitting separate "puffs" or clusters of particles, rather than a continuous stream. This effect is especially noticeable when the emitter is animated. Turn off Subframe Sampling to cause particles to be emitted exactly at frame times. This makes it easier to sort particles by their age later. TIP If, when using the Collision on page 2960 or Collision Spawn test on page 2964, you experience an irregular particle stream, try turning off Subframe Sampling. Birth Script Operator Particle View on page 2811 > Click Birth Script in an event or add a Birth Script operator to the particle system and then select it. The Birth Script operator enables creation of particles within the Particle Flow system using a MAXScript script. The script can use any program functionality available to MAXScript. The default script (3dsmax\scripts\particleflow\example-scriptbirth.ms) emits particles for 100 frames in a wavy, circular path. To see this, turn off or delete any Speed and Position operators in the event. See also: ■ Birth Operator on page 2844 Particle Flow | 2847 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Edit Script Click this button to open the current script in a MAXScript Editor window. For detailed information about the MAXScript utility, open the MAXScript Reference, available from Help menu > MAXScript Reference. Emit Start The frame number at which the operator begins emitting particles. Uniqueness group The Uniqueness setting provides a randomization seed that the script can use or ignore. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Delete Operator Particle View on page 2811 > Click Delete in an event or add a Delete operator to the particle system and then select it. Use the Delete operator to remove particles from the particle system. By default, particles live “forever,” that is, for the duration of the animation. The Delete operator lets you give them a finite life span. This is useful for eliminating particles once they've served their purpose in the animation. The Delete operator is also necessary when using the Particle Age map, which, when incorporated into the Material Dynamic operator, applies different materials to particles depending on their age. Because the map works on the basis of a percentage of the particle's life span, you need to use a Delete operator 2848 | Chapter 14 Space Warps and Particle Systems to define the particles' maximum age. For an example of usage, see Material Dynamic operator on page 2925. Interface The user interface appears in the Parameters panel, on the right side of the Particle View dialog. Remove group Choose whether to delete all particles, selected particles, or particles past a specific age. The Uniqueness setting enables randomization of maximum particle age using the By Particle Age > Variation setting. All Particles Deletes all particles in the event immediately. Selected Particles Only Deletes particles selected at the Particle sub-object level in the event immediately. See Selection rollout on page 2833. By Particle Age Deletes particles in the event after they've existed for a specific length of time, with an optional random variation. Choosing this makes the Life Span and Variation settings available. Life Span The number of frames of life allowed to the particles. After this period, they're deleted. Default=60. Variation The maximum amount by which Life Span may vary. To get each particle's actual life span, this value is multiplied by a random number between -1.0 and 1.0, and then added to Life Span. Default=10. Particle Flow | 2849 Uniqueness group The Uniqueness setting enables randomization of maximum particle age using the By Particle Age > Variation setting. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Transforms Position Icon Operator Particle View on page 2811 > Click Position in an event or add a Position operator to the particle system and then select it. By default, particles are born, or emitted, from the Particle Flow icon. This topic uses the term emitter to refer to this icon. Use the Position Icon operator to control the initial placement of particles on the emitter. You can set the emitter to emit particles from its surface, volume, edges, vertices, or center. And, if you animate the emitter, you can cause its motion to be imparted to the particles it emits. Alternatively, you can use Position Object on page 2853 to emit particles from any other object. 2850 | Chapter 14 Space Warps and Particle Systems Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Lock On Emitter When on, causes all particles to remain at their initial positions on the emitter. In effect, they're “glued” to the emitter. When off, each particle's birth position is determined by the emitter's current location. Default=off. Inherit Emitter Movement When on, the software sets each particle's rate and direction of motion to that of the emitter at the time of birth. When off, the emitter movement doesn't affect that of the particles. Available only when Lock On Emitter is off. Default=off. NOTE If a Speed operator exists later in the event, it overrides any motion imparted by Inherit Emitter Movement. Multiplier Determines, as a percentage, the extent to which particles inherit the emitter's motion. Available only when Inherit Emitter Movement is on. Default=100. To have the particles move half as fast as the emitter, set Multiplier to 50. To have them move the same speed, use the default setting of 100. To make the particles move twice as fast as the emitter, set Multiplier to 200. Particle Flow | 2851 Location group The Location drop-down list lets you specify where on the emitter the particles appear. You can create a variety of emission behaviors by varying the icon type on page 2832, Location setting, and direction of emission. Default=Volume. ■ Pivot Emits particles from the center of the icon. ■ Vertices For the Box and Rectangle icon types, emits particles from the corners of the icon. For the Sphere icon type, emits particles from the six intersections of the three circles that define the sphere. For the Circle icon type, emits particles from the center. ■ Edges ■ Surface Emits particles from random points on the surface of the icon. ■ Volume icon. Emits particles from random points within the volume of the Emits particles from random points along the edges of the icon. Distinct Points Only Limits emission to a specific number of points (see Total, below) on the specified Location type. Emission points are still randomized; change the Uniqueness setting to alter these. Total Sets the number of emission points. Available only when Distinct Points Only is on. Default=10. Subframe Sampling When on, the operator acquires animation of the emitter icon on a tick basis (every 1/4800th of a second) rather than a frame basis. This provides greater precision in allowing the particle positions to follow animation of the emitter icon. Default=off. Uniqueness group The Uniqueness setting lets you alter the randomization of emission points. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. 2852 | Chapter 14 Space Warps and Particle Systems Position Object Operator Particle View on page 2811 > Click Position Object in an event or add a Position Object operator to the particle system and then select it. By default, particles are born, or emitted, from the Particle Flow icon. The Position Object operator lets you emit particles from any other object or objects in the scene instead. This topic uses the term emitter to refer to an object or objects used to emit particles with this operator. For example, use it to create a meteor's fiery trail. Use the Position Object settings to control the initial placement of particles on the emitter. You can set the emitter to emit particles from its surface, volume, edges, vertices, or pivot, or from a sub-object selection. You can also control particle emission with a material applied to the object. Alternatively, you can use the Position Icon operator on page 2850 to emit particles from the Particle Flow icon. NOTE Typically, you would use Position Object in a birth event, so the particles appear initially at the emitter object(s). If you use it in a non-birth event, the particles jump to the designated emitter(s) upon entering the event. This could be useful for a teleportation effect. TIP The default speed operator, Speed on page 2871, typically uses the Particle Flow icon to control the direction of the particle flow, so if the emitter object(s) and the icon aren't coincident and aligned, you might get unexpected results. For better control over the direction of particle movement when using Position Object, use the Speed By Surface operator on page 2886 instead and designate as Surface Geometry the same object(s) as with Position Object. Procedures To use Position Object: 1 Create a Particle Flow system and one or more mesh objects to use as emitters. Animate the emitter objects and set particle system parameters as necessary. 2 In Particle View, add a Position Object operator to the birth event, replacing the Position Icon operator if one exists. Click the operator to display its parameters. Particle Flow | 2853 3 In the Emitter Objects group, click Add, and then select an object to serve as the emitter. Alternatively, click By List and then use the Select Emitter Objects dialog to designate one or more objects as emitters. 4 Use the Location drop-down list to choose where the particles should appear on the emitter: surface, vertices, and so forth. 5 Set other options as necessary. For example, if you want the particles to use the same motion as the emitter at the time of emission, turn on Inherit Emitter Movement. Or if you're using an emitter object whose shape is animated, turn on Animated Shape. 2854 | Chapter 14 Space Warps and Particle Systems Interface Particle Flow | 2855 The user interface appears in the parameters panel, on the right side of the Particle View dialog. Lock On Emitter When on, causes all particles to remain at their initial positions on the emitter. In effect, they're “glued” to the emitter. When off, each particle's birth position is determined by the emitter's current location. Default=off. Inherit Emitter Movement When on, the software sets each particle's speed and direction of motion to those of the emitter at the time of birth. When off, the emitter movement doesn't affect that of the particles. Available only when Lock On Emitter is off. Default=off. NOTE If a Speed operator exists later in the event, it overrides any motion imparted by Inherit Emitter Movement. Multiplier Determines, as a percentage, the extent to which particles inherit the emitter's motion. Available only when Inherit Emitter Movement is on. Default=100. To have the particles move half as fast as the emitter, set Multiplier to 50. To have them move the same speed, use the default setting of 100. To make the particles move twice as fast as the emitter, set Multiplier to 200. Variation Determines, as a percentage, the extent to which inherited emitter motion can vary per particle. To determine the final multiplier for each particle, the Variation value is multiplied by a random number between -1.0 and 1.0, and then added to the Multiplier value. Default=0. Emitter Objects group Use these controls to assign objects to be used as particle emitters. The list in this group shows the objects, or reference geometry, that the operator uses as emitters. If you don't assign any objects, Particle Flow uses the world origin (0,0,0) as the emitter source. With more than one emitter object, the division of particles among the objects depends on which option you choose for Location. If you set Location to Pivot, then each object has one emission point and each object emits the same number of particles (total number of particles/number of objects). But if you set Location to any other option, each object emits a number of particles proportionate to the number of available emission points per object. For instance, if you set Location to Volume, then a larger object will emit more particles than a smaller one. Similarly, with Location set to Vertices, an object with 100 vertices will emit twice as many particles as an object with 50. 2856 | Chapter 14 Space Warps and Particle Systems If you delete from the scene an object designated as an emitter, its entry in the list is replaced with “”. Use the Add and Remove buttons to edit this list. Add Adds an object to the list. Click Add, and then click an object in the viewport. By List Adds multiple objects to the list. Click By List to open the Select Emitter Objects dialog. This works just like Select From Scene on page 228: Highlight the objects to use as emitters, and then click the Select button. Remove Removes an object from the list. Highlight the object in the list, and then click Remove. Animated Shape Turn on to allow particles to emit from the surface of an object whose form is animated by morphing or with modifiers. Subframe Sampling When on, the operator acquires animation of the emitter shape on a tick basis (every 1/4800th of a second) rather than a frame basis. This provides greater precision in allowing the particle positions to follow animation of the emitter object's form. Location group The Location drop-down list lets you specify where on each emitter the particles appear. This choice applies to all emitter objects. Default=Surface. The Selected Vertices/Edges/Faces options in this list let you emit particles from a specific part of the emitter object by using an existing sub-object selection. To create this selection, first convert the object to an editable mesh or poly, or apply a Mesh Select or Poly Select modifier (or equivalent), select the sub-objects that are to emit particles, and then choose the corresponding Location option. If the software doesn't find a sub-object selection, it uses all sub-objects of the indicated type. Pivot Emits particles from the original position of the emitter object's pivot. Moving the pivot does not affect this option. Vertices Emits particles from randomly selected vertices of the emitter objects. Edges Emits particles from random points along the edge sub-objects of the emitter objects. Surface Emits particles from random points on the surface of the icon. Volume Emits particles from random points within the volume of the icon. Selected Vertices Emits particles from the current vertex sub-object selection. Particle Flow | 2857 Selected Edges Emits particles from the current edge sub-object selection. Selected Faces Emits particles from the current face or polygon sub-object selection. You can modify the Location choice with any combination of the following: Surface Offset Lets you specify a range of distances from the object surface for particle placement. Surface Offset is unavailable when Location is set to Pivot or Volume. Use the Min and Max parameters to set the range. NOTE Negative values offset the particles below the surface. Min/Max When Surface Offset is on, these let you specify the range of offset distances from the object surface. The Min value cannot exceed the Max value, and vice-versa. If you try to raise Min above Max, or lower Max below Min, both values change equally. Density by Material Varies emission over the emitter surface based on properties of the material applied to the emitter. For example, if the object is assigned a black-and-white checkered diffuse map and you choose the Grayscale option, particles are emitted only from the white checks. IMPORTANT For material-influenced emission to appear properly in the viewports, two conditions are required: ■ At least one viewport must be set to a shaded display mode. ■ The material or map must have Show Map In Viewport turned on in the Material Editor. The options are as follows: ■ Grayscale The software internally converts the material-based coloring (diffuse) to grayscale, and then emits more particles in lighter areas and fewer in darker areas. 2858 | Chapter 14 Space Warps and Particle Systems The box emitter is mapped with a gradient. With Position Object set to Density By Material > Grayscale, the particles appear with greater frequency in the lighter areas of the box. ■ Opacity Particles are more likely to appear on opaque areas than on transparent areas. ■ Grayscale & Opacity Combines the two: More particles appear on light, opaque areas than on dark, transparent areas. ■ Red/Green/Blue Considers only the specified color channel. The higher its value at any given pixel, the more likely particles are to appear there. Use Sub-Material When on, uses a sub-material from the Multi/Sub-Object material assigned to the emitter to define density values. This option allows usage of “invisible” materials for particle placement. If the emitter uses a Multi/Sub-Object material but its geometry doesn't use the ID Particle Flow | 2859 that corresponds to one of the sub-materials, the sub-material doesn't appear. However, the operator can use it to calculate the density of particle placement. The software assumes the material to be applied to the entire object surface. Mtl ID Specifies the material ID of the sub-material to be used for particle emission. Separation When on, the software attempts to keep the particles apart by the amount specified in Distance. The likelihood of successfully separating particles depends on the number of particles, the specified distance, and the Attempts Max value. Distance Specifies the distance, in system units, by which the software should try to keep the particles separate. Default=1.0. Distinct Points Only Limits emission to a specific number of points (see Total, below) on the specified Location type. Emission points are still randomized; change the Uniqueness setting to alter these. Total Sets the number of emission points. Available only when Distinct Points Only is on. Default=10. If Location Is Invalid group Delete Particles When on, if the software cannot place a particle according to the current option, it deletes the particle. When off, particle placement is undefined; that is, it depends on other variables. Default=off. If the number of particles is more important than the position on the object, leave this off. However, if exact placement is of higher priority than the number of particles, turn Delete Particles on. Uniqueness group The Uniqueness setting enables randomization of placement on the emitters. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Attempts Max When using the Separation option, this specifies the maximum number of times Particle Flow will try to set particle positions that maintain the requested distance. If unsuccessful within this number of attempts, particles might be closer together than the requested distance. Also affects placement with Density By Material using either of the Grayscale options. 2860 | Chapter 14 Space Warps and Particle Systems Rotation Operator Particle View on page 2811 > Click a Rotation operator in an event or add a Rotation operator to the particle system and then select it. The Rotation operator lets you set and animate particle orientation during an event, with optional random variation. You can apply orientation in any of five different matrices: two random and three explicit. For some options you can set a degree of random variation or divergence from the specified orientation. To cause particles to spin, use the Spin operator on page 2863. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Orientation Matrix group The Orientation Matrix setting includes options that give particles random orientations, or let you specify orientation in any of three different ways. Default=Random 3D. Random 3D Gives each particle an arbitrary, random 3D orientation. Random Horizontal Gives each particle an arbitrary, random 3D orientation about the Z axis only. Rotation about the X and Y axes doesn't change (unless Divergence is used), so the particles remain vertical. Particle Flow | 2861 World Space Orientation is specified in the world coordinate space. Use the X/Y/Z settings to specify the orientation for all particles. Speed Space The coordinate space for particle orientation is determined by the particles' direction upon entering the event. By default, using the Speed operator on page 2871 > Along Icon Arrow option, particles are aimed straight down when born. Use the X/Y/Z settings to specify the orientation for all particles. Speed Space Follow The coordinate space for particle orientation is determined continually while the particles are in the event. Thus, by default, particles constantly reorient themselves to “aim” in the direction they're traveling. For example, if you add a Find Target test on page 2970 to the end of the default Event 01, move the target sideways, and set Rotation to Speed Space Follow, the particles start out pointing straight down, as oriented by the Speed operator, and then gradually reorient themselves to point in the direction they're traveling: toward the target. Use the X/Y/Z settings to specify the orientation for all particles. The Divergence setting is unavailable when using Speed Space Follow. X/Y/Z Set the basic orientation about the particles' local axes. Unavailable with the Random 3D and Random Horizontal options. Divergence Defines the range of variation (in degrees) for particle orientation. The actual deviation is calculated at random within this range. Unavailable with the Random 3D or Speed Space Follow option. Default=0.0. Restrict Diverg[ence] To Axis When on, lets you use the Divergence Axis controls to set the axis to which divergence will be applied. When off, the software uses a random axis for each particle. Unavailable with the Random 3D or Speed Space Follow option. Default=off. Divergence Axis Use the X/Y/Z settings to set the axis to which divergence will be applied. Default=1,0,0. Range=-1.0 to 1.0. To specify one of the world axes, set the corresponding parameter to any non-zero value, and the others to 0. A negative value flips the axis. The numeric values come into play when you want to use an axis that's not aligned with the X, Y, or Z axis. In that case, you specify multiple non-zero values whose effect is relative to one another. For example, if you want the axis to be oriented halfway between the positive X and Y axes, you would set X and Y to the same positive amount. The actual value doesn't matter. Similarly, to set the axis to 30 degrees (1/3 of the angle) from the X axis to the Y axis, you'd set the Y value to twice that of the X value. For example, X=0.2 and Y=0.4, or X=0.5 and Y=1.0. 2862 | Chapter 14 Space Warps and Particle Systems Uniqueness group The Uniqueness setting affects the randomization of orientation with the Random 3D and Random Horizontal options, and also Divergence. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Spin Operator Particle View on page 2811 > Click a Spin operator in an event or add a Spin operator to the particle system and then select it. The Spin operator gives an angular velocity to particles in an event, with optional random variation. Spin is applied once per event per particle, except when using the Speed Space Follow option; however, the settings can be animated. To simply specify particle orientation, use the Rotation operator on page 2861. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Spin Rate The rate of revolution in degrees per second. Particle Flow | 2863 Variation The maximum amount, in degrees per second, by which the spin rate can vary. The actual variation is calculated once, at random, for each particle. Spin Axis group The Spin Axis setting includes options that let you apply the spin on a random or specific axis, with optional random variation of the spin axis. Default=Random 3D. Random 3D Spins each particle about an arbitrary, random 3D axis. World Space The spin axis is specified in the world coordinate space. Use the X/Y/Z settings to specify the spin axis. Particle Space The spin axis is specified in the local coordinate space of each particle. Use the X/Y/Z settings to specify the spin axis. Speed Space The coordinate space for particle orientation is determined by the particles' direction upon entering the event. The X axis is aligned with the particle direction, while the Z axis is perpendicular to the X axis and is pointed upward with respect to world space as much as possible. Use the X/Y/Z settings to specify the orientation for all particles. Speed Space Follow The coordinate space for particle orientation is determined by the particles' direction throughout the event. Use this option to allow particles that change direction during the event to keep the spin axis aligned with their direction. The X axis is aligned with the particle direction, while the Z axis is perpendicular to the X axis and is pointed upward with respect to world space as much as possible. Use the X/Y/Z settings to specify the orientation for all particles. X/Y/Z Use these to set the spin axis. Unavailable for the Random 3D option. Default=0,0,1. Range=-1.0 to 1.0. To specify a single axis, set the corresponding parameter to any non-zero value, and the others to 0. A negative value flips the axis, and reverses the direction of rotation. The numeric values come into play when you give more than one axis a non-zero value, in which case their effect is relative to one another. For example, if you want the spin axis to be oriented halfway between the positive X and Y axes, you would set X and Y to the same positive amount. The actual value doesn't matter. Similarly, to set the spin axis to 30 degrees 2864 | Chapter 14 Space Warps and Particle Systems (1/3 of the angle) from the X axis to the Y axis, you'd set the Y value to twice that of the X value. For example, X=0.2 and Y=0.4, or X=0.5 and Y=1.0. Divergence Defines the range of variation (in degrees) for spin-axis orientation. The actual deviation is calculated at random within this range. Unavailable for the Random 3D option. Default=0. Range=0 to 180. Uniqueness group The Uniqueness setting affects the randomization of spin rate variation, spin axis with the Random 3D option, and Divergence with the other options. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Scale Operator Particle View on page 2811 > Click a Scale operator in an event or add a Scale operator to the particle system and then select it. The Scale operator lets you set and animate particle size during an event, with optional random variation. Options for how scaling and animation are applied give this operator a great deal of flexibility. Procedures Example: To animate particle scale: This procedure gives an overview of animating particles to grow for 30 frames, remain at full size for the next 30 frames, and then shrink for 30 frames. It also gives an option for having the particles pulsate in size during the middle period. To follow this procedure, you should be familiar with the basic usage of Particle Flow and Track View. 1 Set up a default Particle Flow system. Set the Shape operator to Sphere, and set the Display operator to Geometry. 2 Add a Send Out test to Event 01. 3 Add a new Scale operator to the event display, creating a new event. Set the new event's Display operator to Geometry, and make sure it's a different color than the one in Event 01. 4 Wire the Send Out test in Event 01 to Event 02. Particle Flow | 2865 5 In the Event 02 > Scale operator, set Type to Absolute, and animate the Scale Factor values from 10 to 100 over frames 0 to 30. In the Animation Offset Keying group, set Sync By to Event Duration. 6 Add an Age Test to Event 02. Set it to Event Age, set Test Value to 30, and Variation to 0. In this event, particles grow from 10 percent of their original size to full size over the first 30 frames of their existence, which is the same as their duration in the event. At that point, they'll be eligible to move to the next event. 7 Use a new Scale operator to create a new event, Event 03. Set the new event's Display operator to Geometry, and make sure it's a different color than the others. 8 Wire the Age Test in Event 02 to Event 03. 9 In the Event 03 > Scale operator, Set Type to Absolute, and in the Animation Offset Keying group, set Sync By to Event Duration. 10 Copy and paste the Age Test as an instance from Event 02 to Event 03. Particles in Event 03 remain at full scale for 30 frames, and then move on to the next event. 11 Use a new Scale operator to create a new event: Event 04. Set the new event's Display operator to Geometry, and make sure it's a different color than the others. 12 Wire the Age Test in Event 03 to Event 04. 13 In the Event 04 > Scale operator, set Type to Absolute, and animate the Scale Factor values from 100 to 10 over frames 0 to 30. In the Animation Offset Keying group, set Sync By to Event Duration. 14 Copy and paste the Age Test as an instance from Event 03 to Event 04. In this event, particles shrink from full size to 10 percent of their original size over 30 frames. 15 Play the animation. Next, you'll use a Noise controller to cause the particles in Event 03 to pulsate in size. 16 Add a second Scale operator to Event 03, below the existing Scale operator. Set it to Relative Successive, and set Sync By to Event Duration. The name of this operator should be Scale 04. 2866 | Chapter 14 Space Warps and Particle Systems 17 In Particle view, right-click the Scale Factor X % parameter field on the Scale 04 rollout, and choose Show In Track View. The Curve Editor opens with the X Scale Factor parameter highlighted. 18 Right-click the X Scale Factor item and choose Assign Controller from the menu. 19 In the Assign Float Controller dialog, double-click Noise Float. The Noise Controller dialog opens. 20 Set Strength to 200, and to the right of Strength, turn on the >0 check box. 21 Copy this controller, and then paste it as instances to Y Scale Factor and Z Scale Factor. Although the Scale operator defaults to constraining all scale factors to the same value, thus scaling particles uniformly, changing controllers in Track View works on a per-parameter basis. 22 Play the animation. This time, the particles grow in size for 30 frames, then pulsate in size for the next 30 frames, and then shrink from the size at the end of Event 03 to 10 percent of that over the next 30 frames. Particle Flow | 2867 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Type The scaling Type setting includes options that let you scale particles once in an event or repeatedly, and apply scaling as an absolute or relative factor. Default=Overwrite Once. Overwrite Once Sets the scale one time only as an absolute percentage value, disregarding any previous scaling. To produce a range of different birth sizes, and specify the scaling explicitly, use Overwrite Once with animated scale factors. Inherit Once Sets the scale one time only as a percentage of existing scaling. The existing scaling should be specified with a previous Scale operator, the 2868 | Chapter 14 Space Warps and Particle Systems Scale setting in the Shape operator on page 2900, or a Shape Instance operator on page 2904. For instance, if you previously used Scale with Overwrite Once to scale particles' birth size within a range, and then want to scale them to half their previous size, use Inherit Once and set Scale Factor to 50%. Absolute Sets the scale continuously, while the particle is in the event, as an absolute percentage value, disregarding any previous scaling. Use Absolute if you want to animate the particles' scale explicitly. Relative First Sets the scale continuously, while the particle is in the event, as a percentage of existing scaling. The existing scaling should be specified with a previous Scale operator, or a Shape Instance. Use Relative First when you want to scale the particles relative to the scaling at which they enter the event, and optionally animate the scaling, or before a Relative Successive operator. Relative Successive Scales the particles continuously, relative to scaling set earlier in the same event. NOTE Always precede Relative Successive in the same event with an operator that modifies the scale channel all the time, such as a Scale operator set to Absolute or Relative First, or a Shape Instance operator with the Scale check box turned on (it's on by default). Scale Factor group The operator performs scaling on each particle's local axes. It can scale particles on a single axis or on any combination of axes. X/Y/Z Sets the scaling as a percentage of the particle's current size. To scale uniformly, turn on Constrain Proportions, and then change any axis setting. Range=0 to 10000000. Default=100. Constrain Proportions When on, retains the current ratio of scale factor settings, so that changing any axis setting changes all of them. Default=on. Scale Variation group X/Y/Z Sets the scaling variation as a percentage of the particle's previous size. To scale uniformly, turn on Constrain Proportions, and then change any axis setting. Range=0 to 100. Default=0. Constrain Proportions When on, retains the current ratio of scale variation settings, so that changing any axis setting changes all of them. Default=on. Particle Flow | 2869 Bias Lets you choose how to distribute the scaling variation within the specified range or ranges. Default=None. ■ None No bias; scaling variation is distributed equally through the range. ■ Centered Scaling variation is concentrated near the middle of the range; that is, at 0.0%. With this choice, scaling will occur more frequently with low percentage values than with ones near the values you set. In other words, most scaling variants will be close to the specified scaling value. ■ Towards Minimum Scaling variation is concentrated near the lower end of the range (base-variation); that is, most scaling variants will be smaller than the scaling value. ■ Towards Maximum Scaling variation is concentrated near the upper end of the range (base+variation); that is, most scaling variants will be larger than the scaling value. Animation Offset Keying group If you animate the Scale Factor or the Scale Variation settings or both, the software can begin applying this animation to all particles as of the start frame of the animation or the first frame of the current event, or to each particle based on its age. For instance, if you set Sync By to Particle Age, and set Scale Factor keys at frames 0 and 30, then the software will animate the scaling factor for each particle between its birth and its 30th frame of existence, if the particle is in the scaling event or a prior event. Following this example, any particle that has already reached its 30th frame of existence before reaching the event will enter the event fully scaled. That is, the software will apply the Scale Factor value that you set at frame 30 to each particle aged 30 or above at the moment it enters the scaling event. However, any particle that leaves the scaling event before reaching age 30 will stop scaling as of its exit frame. In other words, with respect to particles in other events, animation of action parameters is retroactive, but not post-active. Alternatively, if you set Sync By to Absolute Time, the scaling is animated from frame 0 to frame 30 of the animation, regardless of particle age, and even if no particles are in the event at that time. Or, if you set Sync By to Event Duration, the scaling animation is applied to each particle as of the time that it enters the event. 2870 | Chapter 14 Space Warps and Particle Systems NOTE With the Overwrite Once and Inherit Once scaling types, scaling always occurs with respect to the entire animation; that is, in Absolute Time mode. Thus, when either of those scaling types is in effect, the Sync By setting is unavailable. Also, if you animate Scale Factor or Scale Variation when using Overwrite Once or Inherit Once, it doesn't cause scaling animation in the particles, but rather applies one-time scaling to particles born during that period. For instance, if you animate Scale Factor on all three axes from 100% to 200% over frames 0 to 30, particles born at frame 0 are normal size, particles born at frame 15 are one-and-one-half times normal size, and particles born at frame 30 (and thereafter) are twice normal size. Sync By Choose the time frame for applying animated parameters: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Uniqueness group The Uniqueness setting affects the randomization of scale variation. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Speed Speed Operator Particle View on page 2811 > Click Speed in an event or add a Speed operator to the particle system and then select it. This is the default Speed operator, which appears in the first event when you create a new Particle Flow icon. It provides basic controls over particle speed and direction. Directional controls provided by the Speed operator are based on the position and orientation of the Particle Flow icon. For best results when using other Particle Flow | 2871 objects as emitters, use the Speed By Surface Operator on page 2886 operator instead. See also: ■ Speed By Icon Operator on page 2876 ■ Keep Apart Operator on page 2894 Procedures Example: To change particles' speed: The Speed operator works on an instantaneous basis: It sets each particle's speed once only, when it enters the event. Even if you animate the Speed value, each particle moves at a constant rate of speed, defined by the value at the time it enters the event. This procedure demonstrates a trick you can use to change particle speed with an animated Speed value, thanks to Particle Flow's looping ability. 1 Create a default particle system, and position it at the top of the Perspective viewport. 2 Play the animation. The particles fall downward at the default rate: 300 units per second. 3 Add a Send Out test at the bottom of Event 01. 4 Add a Speed operator to an empty area of the event display. This creates a new event. 5 Turn on Auto Key, and move the time slider to frame 30. 6 In Particle View, click the new Speed 02 operator, and then in the Particle View parameters panel, set Speed to 0. This animates the Speed value from 300 at frame 0 to 0 at frame 30. 7 Turn off Auto Key. 8 Wire the Send Out test in Event 01 to Event 02. 9 Play the animation. The particles born later move slower, but all still move at a constant rate of speed. 2872 | Chapter 14 Space Warps and Particle Systems 10 Add a Send Out test at the end of Event 02. 11 Create a new event using an Age Test. Click the Age Test to display its parameters, and then set the following: ■ Event Age ■ Test Value=1 ■ Variation=0 12 Wire the Send Out test in Event 02 to Event 03. 13 Wire the Age Test in Event 03 to Event 02. 14 Play the animation. All the particles slow down simultaneously and eventually come to a stop. Here's how it works: As each particle enters Event 02, its speed is set to the current Speed value in the Speed operator. Particle Flow then sends the particle immediately to Event 03, where it sits for one frame. Event 03 then returns the particle to Event 02, whose Speed value is now lower. Particle Flow perceives the returned particle as newly entering the event, so it changes its speed to the current Speed value. Thus, the particles continually return to Event 02 one frame later than before, and are assigned a progressively lower speed. If you wanted the particles to do something else after they stop, you could add a Speed Test to Event 02, above the Send Out test, set Test True If Particle Value to Is Less Than Test Value, and set Test Value to a very low value, such as 0.01. Then wire the Speed Test to a different event. Particle Flow | 2873 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Speed The particle speed in system units per second. Default=300. A positive Speed value moves the particles in the direction determined by the Direction setting; a negative Speed value moves the particles in the opposite direction. NOTE Speed sets each particle's speed once only: when the particle enters the event (or is born, in the case of a birth event). If you animate the Speed value, particle speed does not vary: rather, each particle is given a constant speed equal to the current Speed value when it enters the event. Variation The amount by which particle speed can vary, in system units per second. Default=0.0. To obtain each particle's speed, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Speed value. For example, if Speed=300 and Variation=100, then each particle's speed would be between 200 and 400. Direction group The Direction drop-down list lets you specify which way the particles go after they're born. Default=Along Icon Arrow. In most cases, the actual direction also depends on the icon orientation. The primary exception is when Position > Location is set to Pivot. 2874 | Chapter 14 Space Warps and Particle Systems Particle movement is always in a straight line unless influenced by other factors. Along Icon Arrow Particles move parallel to the icon arrow. Rotate the icon to change the direction. Icon Center Out Each particle moves along an imaginary line drawn between the particle's location and the icon center. With the flat icon types (Rectangle and Circle), this results in all the particles moving in one plane, unless you increase Divergence above 0.0. With icons that have height (Box and Sphere), the particles move outward in three dimensions. Particles at the center, as is the case when the Position operator's Location parameter is set to Pivot, arbitrarily move along the world X axis. Icon Arrow Out Each particle moves along an imaginary line drawn between the particle's location and the icon arrow. The line is perpendicular to the icon arrow, which is considered an infinite line for this purpose. With the flat icon types (Rectangle and Circle), this results in all the particles moving in one plane, unless you increase Divergence above 0.0. With icons that have height (Box and Sphere), the particles move outward in a cylindrical formation. Random 3D Particles move in all directions. This option is affected by the Uniqueness setting. Random Horizontal Each particle moves in a random horizontal direction; that is, parallel to the world XY plane. This option is affected by the Uniqueness setting. Inherit Previous Uses the current direction of motion. If you choose Inherit Previous but no direction was previously specified, the speed and direction are undefined; the particles don't move. Reverse When on, the direction is reversed. Default=off. Using Reverse is the equivalent of multiplying the Speed value by -1. This option is unavailable if Random 3D or Random Horizontal is chosen. Divergence When on, spreads out the particle stream. Use the numeric setting to define the extent of the divergence, in degrees. Range=0 to 180. Default=0. The value can be animated. This option is unavailable if Random 3D is chosen. Particle Flow | 2875 TIP For a fountain-like spray, set Position > Location to Pivot, set Direction to Along Icon Arrow, set Divergence to the desired angle, and rotate the icon so its arrow points upward. Uniqueness group The Uniqueness setting enables randomization of speed variation, and randomization of direction with the Random 3D and Random Horizontal options. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Speed By Icon Operator Particle View on page 2811 > Click Speed By Icon in an event or add a Speed By Icon operator to the particle system and then select it. Click a Speed By Icon operator icon in the viewport > Modify panel Create panel > Helpers > Particle Flow > SpeedByIcon The Speed By Icon operator lets you use a special, non-rendering icon to control particle speed and direction. Speed By Icon operator icon When you add a Speed By Icon operator to the particle system in Particle View on page 2811, the Speed By Icon operator icon icon appears in the scene at the 2876 | Chapter 14 Space Warps and Particle Systems world origin (0,0,0). When animated, the operator icon's motion is imparted to the particles. If you delete the icon, the software also deletes the operator. NOTE If you add Speed By Icon from the Create panel, Particle Flow creates a separate event for the operator in the particle diagram. WARNING If you delete a Speed By Icon operator icon in the viewport, you also delete the corresponding operator in the Particle Flow system. See also: ■ Speed Operator on page 2871 ■ Speed By Surface Operator on page 2886 ■ Keep Apart Operator on page 2894 Procedures To use the Speed By Icon operator: 1 Add a Speed By Icon operator to an event. Be sure to add it after any existing Speed operators in the event. Alternatively, delete or turn off any existing Speed operators. The Speed By Icon operator icon appears at the world origin (0,0,0). 2 Animate the icon as you would any object. You can do this manually, or with a controller such as Path Constraint. See the following procedure for an example of this. The particles' motion is now under the influence of the animated icon. 3 Set the Speed By Icon parameters. With the icon selected, you can do this in the Modify panel. In general, the default Icon Animation > Sync By setting, Event Duration, works best. It causes the icon animation to be applied to the particles within the time frame of the event containing the Speed By Icon operator. Example: To send particles along a path: 1 Reset the software, and then add a Particle Flow system in the Perspective viewport. Particle Flow | 2877 2 On the Create panel, choose Shapes > Splines > Helix, and then, in the Perspective viewport, at the center of the grid, create a helix shape. Then, on the Parameters rollout, set the following: ■ Radius 1=100 ■ Radius 2=20 ■ Height=20 ■ Turns=3 ■ Bias=0 This will serve as the particle path. 3 Move and rotate the Particle Flow source icon so that it's at the start of the helical path, and aimed along the path, as shown. Get the base of the arrow as close as possible to the start of the path. 4 Open Particle View (press 6). 2878 | Chapter 14 Space Warps and Particle Systems 5 In Event 01, click the Position Icon operator and set Location to Pivot. This causes the particles to be emitted in a thin stream. 6 Insert a Speed By Icon operator at the end of Event 01. The operator icon appears at the world origin. 7 Select the operator icon, and then, from the Animation menu, choose Position Controllers > Path Constraint on page 3297. When you move the mouse cursor into the viewport, a rubber-band line joins the cursor to the icon. 8 Select the Helix object. The command panel switches to the Motion tab, and the controls indicate that the software has applied a Position List controller to the icon, with the listed controllers being a Position XYZ and a Path Constraint. You can delete the former if you like, but it doesn't make any difference for the purposes of this procedure. 9 Close Particle View, and then drag the time slider back and forth between its extents a few times. TIP The best way to view the results is from the Top viewport. The particles follow the path fairly closely, but diverge noticeably at the end of the path, where the turns are tightest. Correcting divergence in tight turns typically requires an increase in the acceleration limit. Particle Flow | 2879 The particle stream diverges from the path at its endpoint. 10 Stop at frame 100. This will let you see the results of changing the Speed By Icon parameters as you make the changes. 11 Open the Modify panel, and, if necessary, select the Speed By Icon operator icon. The operator parameters appear on the Modify panel. This is the case with any action that uses a unique icon, and lets you adjust the parameters without using Particle View. 12 On the Parameters rollout, use the Accel Limit spinner to slowly increase the value as you observe the changes to the particle path. As you approach a value of 150, the end of the particle path comes closer and closer to the Helix. You shouldn't see much change above 150. 2880 | Chapter 14 Space Warps and Particle Systems The endpoints now coincide. 13 Drag the time slider again. The particle path remains similar to that of the Helix for the entire duration of the animation. With other setups, you might need to use different values for Influence %, and for paths with tight twists and turns, you might need to increase Accel Limit as well. You might be wondering why you didn't simply replace the default Speed operator with the Speed By Icon operator. To see why not, try this: 14 Go to frame 100, open Particle View, and click the Speed 01 operator's icon to turn it off. Play the animation. The entire particle path is offset from the Helix, so it's difficult to tell how closely it follows the latter's curves. 15 Try adjusting the Speed By Icon's Accel Limit and Influence % setting to get the particles to follow the helical path more closely. It's not easy. You get more reliable results using the Speed operator to set the initial speed, and then Speed By Icon to set the particle path. Particle Flow | 2881 To use the Use Icon Orientation option: The Use Icon Orientation option applies arc-like motion to the particles based on rotation animation of the icon. To best understand how it works, it's necessary to isolate its influence by eliminating any potentially conflicting factors. 1 Reset the software, and then add a Particle Flow system in the Perspective viewport. Set its position to the world origin: (0,0,0). 2 Open Particle View and click the Birth operator. Set Emit Stop=0. This causes all particles to appear at frame 0. 3 Click the Speed operator and press the Delete key to delete it. 4 Drag a Speed By Icon operator from the Depot to the end of Event 01. The Speed By Icon operator icon appears at the world origin. 5 6 Select the Speed By Icon operator icon, and then right-click the icon and choose Rotate from the menu. Go to frame 20, turn on Auto Key, and rotate the icon 180 degrees about the X axis. Turn off Auto Key. 7 Drag the time slider. The particles aren't affected by the icon animation. Because the Speed By Icon operator icon is selected, the operator's parameters appear on the Modify panel. 8 On the Modify panel, turn on Use Icon Orientation. Drag the time slider again. This time, the particles move in unison with the icon rotation, as if they were glued to an infinite plane coincident with the icon. 9 Go to frame 10, select the Particle Flow source icon (not the Speed By Icon operator icon), and then right-click the icon and choose Move from the menu. Move the icon straight up, on the Z axis, about 100 units. As you drag upward, the particles move away from the icon. 10 Drag the time slider again. This time the particles move in an arc around the icon. 2882 | Chapter 14 Space Warps and Particle Systems 11 Try moving and rotating the two icons, playing the animation each time you make a change. Also set Emit Stop back to 30. As you can see, the possibilities with just this simple setup are myriad. In combination with the many other variables and options in Particle Flow, they're endless. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. When the icon is selected, the parameters also appear on the Modify panel. Accel(eration) Limit The maximum amount, in system units per second per second, by which the particles' speed can change in order to match the speed of the operator icon. Default=100.0. If the operator icon changes speed or direction rapidly, increase this value to let the particles follow it more closely. Particle Flow | 2883 TIP Use a lower Accel Limit value for smooth motion, and a higher value when greater accuracy is needed, such as when the particles should hit a small target. You can animate this setting (use Sync By > Event Duration) to specify different appropriate values, depending on the required results. Influence % Determines the mix of the previous speed with the speed of the operator icon. Default=100.0. Range=0.0 to 100.0. At the default value of 100, the speed is controlled only by that of the icon. At 0, the icon speed doesn't affect particle speed at all. At in-between values, the mix proportion is determined by the Influence % value. Speed Variation Enables random variation of the particles' speed, so they don't all move at exactly the same rate as the icon. Turn this on, and then set the minimum and maximum percentages of variation. Default=off. Using Speed Variation can help keep the particles from bunching up as they travel along the animation path. Note, however, that each individual particle's speed doesn't vary; it travels at a constant speed. Min %/Max % Set the minimum and maximum percentages, respectively, of particle speed variation. Default=50.0 (Min %), 100.0 (Max %). For example, if you set Min % to 50 and Max % to 200, the particles will vary in speed between half and two times the speed of the icon. Use Icon Orientation Applies animation of the icon's orientation to the particles. By default, Speed By Icon controls particle motion only by animation of the icon's position. If you turn on Use Icon Orientation, the software also applies rotation of the icon to the particle motion. In essence, this motion is circular, and its extent depends on the distance between each particle and the icon. Default=off. The best way to understand how this works is by using it. To try out Use Icon Orientation, see this procedure on page ?. Steer Towards Trajectory Particles farther away than the Distance value from the icon are moved directly toward the icon. Default=off. Distance Sets the distance between the particles and the operator icon beyond which Steer Towards Trajectory takes effect. Default=10.0. Parameters Animation group If you animate the operator settings, the software can begin applying this animation to all particles as of the start frame of the animation or the first frame of the current event, or to each particle based on its age. For instance, 2884 | Chapter 14 Space Warps and Particle Systems if you set Sync By to Particle Age, and set Speed Variation keys at frames 0 and 30, then the software will animate the speed variation for each particle born while the event is active between its birth and its 30th frame of existence. Alternatively, if you set Sync By to Absolute Time, the speed variation is animated from frame 0 to frame 30 of the animation, even if no particles are in the event at that time. Or, if you set Sync By to Event Duration, the speed variation animation is applied to each particle as of the time that it enters the event. For further information, see Animation Offset Keying group on page 2870. Sync By Choose the time frame for applying animated parameters: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle relative to the frame at which it first enters the event. Icon Animation group The software can begin applying animation of the Speed By Icon operator icon to all particles as of the start frame of the animation or the first frame of the current event, or to each particle based on its age. For an explanation, see Animation Offset Keying group on page 2870. Sync By Choose the time frame for applying animation of the icon to the particles: ■ Absolute Time Any keys set for icon motion are applied at the actual frames for which they're set. ■ Particle Age Any keys set for icon motion are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for icon motion are applied to each particle relative to the frame at which it first enters the event. Icon Size Sets the size of the operator icon. This setting is for visibility only; it doesn't affect particle behavior. Uniqueness group The Uniqueness setting enables randomization of the speed variation range. Particle Flow | 2885 Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Speed By Surface Operator Particle View on page 2811 > Click Speed By Surface in an event or add a Speed By Surface operator to the particle system and then select it. The Speed By Surface operator lets you control particle speed and direction with any object or objects in the scene. This is in contrast to the default Speed operator on page 2871, which uses the Particle Flow icon to control particle speed and direction. Speed By Surface also provides options for controlling speed by materials in the scene, and continuous speed control. Typically, you use Speed By Surface to assign speed and direction characteristics based on the objects used as emitters with the Position Object operator on page 2853. That is, you assign the same objects as emitters with Position Object and as Surface Geometry objects with Speed By Surface. TIP For greater control over particle motion on the surface, apply a Speed operator on page 2871 before the Speed By Surface operator in the same event. Use the Speed operator to specify particle direction on the surface, and the Speed By Surface operator to adjust the vertical component of the speed vector to follow the contour of the surface. See also: ■ Speed By Icon Operator on page 2876 ■ Keep Apart Operator on page 2894 Procedures Example: To use Speed By Surface: The Speed By Surface operator offers a wealth of possibilities for usage. This procedure will lead you through several examples, but you're encouraged to explore the operator further on your own to learn more about it. 1 Start or reset the software, and add a Particle Flow system. Position the source icon at the world origin (X/Y/Z=0), and set the icon's Length and Width values both to 30. 2886 | Chapter 14 Space Warps and Particle Systems 2 Add a Cylinder primitive to the scene. Position it above the source icon: X/Y=0 and Z=30. Set Radius=20 and Height=40. 3 Play the animation, and then stop. The particles move downward, using the default starting setup. 4 Open Particle View and add a Speed By Surface operator to the end of Event 01. Click the operator in the event to display its parameters panel in Particle View. 5 In the Surface Geometry group, click Add, and then select the cylinder. 6 Play the animation again, and then stop. The particles still move downward. 7 Go to frame 15, so you can see the particles, and then slowly move the cylinder downward along the Z axis, while watching the particles in the Perspective and Front viewports. Stop when the emitter is above the cylinder. As the bottom of the cylinder passes below the emitter, more and more particles start moving on the XY plane rather than perpendicular to it. That's because they eventually become closer to one of the vertical sides of the cylinder, rather than the bottom, at which point they move perpendicular to the vertical sides. When the top becomes the closest side, the particles again move vertically, but upward instead of downward. 8 Move the cylinder back up until the emitter is at its vertical center. Then, on the Modify panel, click the lower part of the Sides spinner to decrease the number of sides, one at a time. Each time you click, the particle streams traveling outward change, to move perpendicular to the vertical sides as they change position. You might also try rotating the cylinder, and note that the particle streams also rotate, like the spokes of a wheel. 9 In the Speed By Surface parameters, change Direction to Out Of Surface, and then move the cylinder up and down. The overall behavior doesn't change much. Out Of Surface becomes more useful when you use the Control Speed Continuously option, as you'll observe shortly. 10 In the Speed By Surface parameters, change Direction to Parallel To Surface, and then move the cylinder up and down. Now the particle behavior is effectively opposite of that with the other two options. When the particles are closer to the top or bottom, they Particle Flow | 2887 move along the XY plane, and when they're closer to the vertical sides, they move downward. If you want them to move upward instead, set Speed to a negative value. Next, you'll discover how the Control Speed Continuously option alters particle behavior. 11 In the Speed By Surface parameters, choose Control Speed Continuously, and then drag the time slider. The particles spread out from the emitter, and then start orbiting the cylinder in a roughly cylindrical overall formation. The software continually checks to see which side of the cylinder a particle is closest to, and, if necessary, changes its direction to make it travel parallel to that side. You can affect the size of the particles' orbits by changing their speed. Lastly, you'll see how to contain particle motion within the cylinder. 12 Make the cylinder considerably larger: Radius=60 and Height=90. Activate the Perspective viewport, if necessary, and then press F3 to set it to Wireframe view. 13 In Particle View, click the Speed 01 operator and set Direction to Random 3D. 14 Click the Speed By Surface operator. Set Speed to 300 if necessary. In the Direction group, choose Out Of Surface, and then drag the time slider. After exiting the emitter, the particles always move away from the nearest surface, with the result that they end up milling about in the center of the cylinder. 15 Gradually increase the Speed value, up to 1,000 or so. The particles start to spread out vertically, and eventually start moving so fast that they escape the cylinder. You can make them stay inside the cylinder by letting them accelerate more quickly, so they can turn before moving past the nearest surface. 16 Increase the Accel Limit setting until the particles no longer exit the cylinder. 17 Try giving the particles more room to move about in by increasing the size of the emitter. Also try changing other settings throughout the particle system to see their effects. The possibilities don't end here, and the more you experiment, the more you'll learn about how this powerful operator works. 2888 | Chapter 14 Space Warps and Particle Systems Interface Particle Flow | 2889 The user interface appears in the parameters panel, on the right side of the Particle View dialog. The first setting lets you choose whether the operator controls speed once or continuously. Set Speed Once The operator sets the speed for each particle once: when the particle enters the event. Control Speed Continuously The operator sets particle speed throughout the event. When you choose this option, the Continuous Speed Control group on page 2893 becomes available. Speed The particle speed in system units per second. Default=300. With the Control Speed Continuously option, you can turn off Speed. This causes Particle Flow to use the current particle speed. Using a negative Speed value causes particles to move in the opposite direction of that effected by a positive speed. Variation The amount by which particle speed can vary, in system units per second. Default=0.0. To obtain each particle's speed, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Speed value. For example, if Speed=300 and Variation=100, then each particle's speed would be between 200 and 400. Surface Geometry group Use these controls to assign objects to affect particle speed and direction. The list in this group shows the objects, or reference geometry, that the operator uses to control speed and direction. If you don't assign any objects, the current particle speed and direction are not affected. You can assign multiple Surface Geometry objects, but if they're not all emitters as well, the results can be difficult to interpret. In general, assign the same objects as Surface Geometry that your system uses as emitters. TIP For optimal performance, when moving particles with respect to high-polygon objects, create a low-poly proxy version to use as surface geometry, link it as a child of the high-poly object if necessary, and then hide the low-poly proxy. Use the Add and Remove buttons to edit this list. 2890 | Chapter 14 Space Warps and Particle Systems Add Adds an object to the list. Click Add, and then click an object in the viewport. By List Adds multiple objects to the list. Click By List to open the Select Surface Objects dialog. This works just like Select From Scene on page 228: Highlight the objects to use to control speed and direction, and then click the Select button. Remove Removes an object from the list. Highlight the object in the list, and then click Remove. Animated Shape Turn on to allow particles to follow the surface of an object whose form is animated by morphing or with modifiers. Subframe Sampling When on, the operator acquires animation of the Surface Geometry shape on a tick basis (every 1/4,800th of a second) rather than a frame basis. This provides greater precision in allowing the particle positions to follow animation of the Surface Geometry object's form. Speed by Material Varies particles' existing speed and direction based on properties of the material applied to each Surface Geometry object. For example, if an object is assigned a black-and-white checkered diffuse map and you choose the Grayscale Multiplier option, particles near the white-checked areas move faster than those from the black-checked areas. NOTE For material-influenced speed to appear properly in the viewports, two conditions are required: at least one viewport must be set to a shaded display mode, and the material or map must have Show Map In Viewport turned on in the Material Editor. The options are as follows: ■ Grayscale Multiplier Lets material luminance control speed, with darker areas producing slower particles and lighter areas producing faster ones. The software multiplies the luminance of the material near each particle, converted to a percentage, by the particle's current speed. A luminance of 0 converts to 0%, of 128 converts to 50%, and of 255 converts to 100%. For example, if the speed of a particle traveling at 50 units per second is influenced by a pixel whose luminance is 90, the resulting speed is 90/255*50, or about 17.6 units per second. ■ Signed Grayscale Works like Grayscale Multiplier, but the multiplier can be negative as well, causing reversal of motion. Signed Grayscale uses a material luminance value of 128 as the midpoint, and assigns it a multiplier of 0%. Luminance values from 0 to 127 result in multipliers of -100% to Particle Flow | 2891 about -1%, respectively, and values of 129 to 255 result in multipliers of about 1% to 100%, respectively. ■ RGB as World XYZ Mult. Works like Grayscale Multiplier, but uses the intensity of the material's red, green, and blue channels to affect particle speed on the world X, Y, and Z axes, respectively. So, for example, if the material pixel is pure red, that is, its RGB value is (255,0,0), then the particle will retain its current speed on the world X axis, but its speed on the Y and Z axes will be reduced to 0. Similarly, a medium-yellow pixel (128,128,0) will cause speed on the world X and Y axes to be reduced by half, and will cut speed on the Z axis to 0. ■ RGB as Local XYZ Mult. Works like RGB as World XYZ Mult., but uses the object's local coordinates rather than world coordinates. Use Sub-Material When on, uses a sub-material from the Multi/Sub-Object material assigned to the Surface Geometry object to define speed. This option allows usage of “invisible” materials for controlling particle speed. If the emitter uses a Multi/Sub-Object material but its geometry doesn't use the ID that corresponds one of the sub-materials, the sub-material doesn't appear. However, the operator can use it to calculate the density of particle placement. The software assumes the material to be applied to the entire object surface. Mtl ID Specifies the material ID of the sub-material to be used for particle speed control. Direction group The Direction drop-down list lets you specify which way the particles go after they're born. Default=Surface Normals. In most cases, the actual direction also depends on the icon orientation. The primary exception is when Position > Location is set to Pivot. Particle movement is always in a straight line unless influenced by other factors. Surface Normals Each particle moves along a line perpendicular to the nearest face. The direction the surface faces doesn't matter. Out Of Surface Particles move away from the closest face. 2892 | Chapter 14 Space Warps and Particle Systems TIP You can use this option to confine particles to the interior of an object. Position the emitter inside the object, designate the object as the Surface Geometry, choose Control Speed Continuously, and choose Out Of Surface. Each time a particle comes close to a surface, it turns to travel directly away from the surface. Control the particles' travel range with the Speed setting, but keep in mind that particles moving very fast might “escape” their container. If this happens, increase the Accel Limit setting; this lets the particles turn more quickly. Parallel To Surface Each particle travels parallel to the nearest face. To make particles orbit an object, use this with Control Speed Continuously, and set appropriate Continuous Speed Control values (see the following section). Divergence When on, spreads out the particle stream. Use the numeric setting to define the extent of the divergence. Range=0 to 180. Default=0. The value can be animated. This option is unavailable if Control Speed Continuously is chosen. TIP For a fountain-like spray, set Position > Location to Pivot, set Direction to Along Icon Arrow, set Divergence to the desired angle, and rotate the icon so its arrow points upward. Continuous Speed Control group When you choose the Control Speed Continuously option, these controls become available. Basically, these controls let the particles move about within the region of the Surface Geometry object rather than in a straight line away from the emitter. Accel Limit Sets the maximum acceleration. The higher this value, the more quickly particles can turn and change speed. TIP Use a lower Accel Limit value for smooth motion, and a higher value when greater accuracy is needed, such as when the particles should hit a small target. You can animate this setting (use Sync By > Event Duration) to specify different appropriate values, depending on the required results. Unlimited Range When on, the surface controls speed and direction of particles at any distance. When off, particles must be within a specified range. Default=on. Range The maximum distance, in system units, between the particles and controlling surface. The Surface Geometry will not control particles beyond this distance. Particle Flow | 2893 Falloff Zone The distance, in system units, beyond the Range value within which the Surface Geometry exerts partial control over particles. The degree of control diminishes from 100% at the Range distance to 0% at the Range+Falloff Zone distance. Animation Offset Keying group Choose the time frame for applying animated parameters. For an explanation, see Animation Offset Keying group on page 2870. Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Uniqueness group The Uniqueness setting enables randomization of speed variation, and randomization of direction with the Random 3D and Random Horizontal options. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Keep Apart Operator Particle View on page 2811 > Click Keep Apart in an event or add a Keep Apart operator to the particle system and then select it. The Keep Apart operator, a member of the Speed operator family, lets you apply forces to particles to cause them to separate, in order to prevent or minimize collisions among particles. Alternatively, you can use a negative force to keep particles from separating too much. The operator works by controlling particle speed and acceleration. NOTE Keep Apart doesn't use particle geometry; rather, it creates a spherical force field centered on the pivot of each particle. You can adjust the size of the force field by changing the particle size. 2894 | Chapter 14 Space Warps and Particle Systems TIP In certain cases, the default settings might not be sufficient to keep particles from interpenetrating. For increased separation, use higher values for Force and Accel Limit, choose Relative To Particle Size, and increase the Core % value. See also: ■ Speed Operator on page 2871 ■ Speed By Surface Operator on page 2886 ■ Speed By Icon Operator on page 2876 Script Wiring rollout This rollout appears in the parameters panel below the main operator rollout after you highlight the operator, right-click it, and then choose Use Script Wiring. Thereafter, a check mark appears next to the Use Script Wiring in the right-click menu, and the rollout appears whenever you highlight the operator. To turn off script wiring, choose Use Script Wiring again from the right-click menu. Script wiring lets you use a script to control the Force and Range parameters, which you normally specify in the operator's parameters. Place a Script operator on page 2953 before the Keep Apart operator in the event, and then use it to define values in the particleFloat and particleVector channels. For an example of a script that sets particleFloat values, see particleFloat Sample Script on page 2947. On the Script Wiring rollout, choose either of the following: Use Script Float As Choose either of the following: ■ Not Used Particle Flow uses the Force setting on page 2898 specified in the Parameters rollout. ■ Influence value. Particle Flow applies the script particleFloat value to the Force Use Script Vector As Choose one of the following. Choosing Absolute Size Range or Relative Size Range makes the Range settings on the Parameters rollout unavailable. ■ Not Used Particle Flow uses the Range on page 2898 settings specified in the Parameters rollout. Particle Flow | 2895 ■ Absolute Size Range Particle Flow applies the script particleVector values to the Absolute Size Range values. The X component of the vector value is used for the core radius, and the Y component for the falloff radius. ■ Relative Size Range Particle Flow applies the script particleVector values to the Relative Size Range values. The X component of the vector value is used for the core percent, and the Y component for the falloff percent. 2896 | Chapter 14 Space Warps and Particle Systems Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Particle Flow | 2897 Force The amount of force applied to the particles. Use positive values to separate particles, or negative values to move them closer together. Default=100.0 Accel(eration) Limit When on, lets you set a maximum acceleration value that can be applied to particles' motion. When off, the software uses any necessary acceleration. Default=on, 1000.0. TIP Use a lower Accel Limit value for smooth motion, and a higher value when greater accuracy is needed, such as when the particles should hit a small target. You can animate this setting (use Sync By > Event Duration) to specify different appropriate values, depending on the required results. Speed Limit When on, lets you set a maximum speed value that can be applied to particles' motion. When off, the software uses any necessary speed. Default=off, 600.0. Range group You can set a volume and falloff within which the force takes effect, either as absolute distances or relative to particle size. Default=Absolute Size. Absolute Size Choose this to set the core radius and falloff zone as absolute distances, in system units. Core Radius The distance from each particle's pivot point, in system units, within which the force is applied at full strength. Default=10.0 Falloff Zone The distance beyond the core radius, in system units, over which the force diminishes from full strength to 0. Default=10.0 Relative to Particle Size Choose this to set the core radius and falloff zone as percentages, relative to the radius of each particle. The particle radius is determined by measuring the distance from the pivot point to the farthest corner of its bounding box. Core % The distance from each particle, as a percentage of the particle radius, within which the force is applied at full strength. Default=200.0 Falloff % The distance beyond the core radius, as a percentage of the radius, over which the force diminishes from full strength to 0. Default=100.0 Variation % The amount by which range values can vary randomly, as a percentage of the specified values. The software uses the same random variation value for both Core and Falloff values, whether absolute or relative. Default=0.0 For example, if you choose Absolute Size, set Core Radius to 40 and Falloff Zone to 20, and set Variation % to 50, then each particle's actual core radius 2898 | Chapter 14 Space Warps and Particle Systems will be a random number in the range 20 to 60, and the falloff zone a random number in the range 10 to 30. For each particle, the software uses the same Variation % value, so if Core Radius is determined to be 20, then Falloff Zone would be 10. Scope group By default, the Keep Apart force keeps particles only in the current event (that is, the event that contains the Keep Apart operator) apart from each other when used locally, or particles in each event in the current flow on page 7983 apart when used globally. These settings let you alternatively keep particles away from particles in other events or flows without affecting the behavior of latter. Default=Current Event. Current Event Keeps particles in the current event only away from each other. When used globally, keeps particles in each event in the current flow apart from each other, but not apart from particles in other events in the flow. Current Particle System Keeps particles in the current event away from each other, and away from all other particles in the current flow on page 7983. The particles not in the current event are not influenced by the Keep Apart operator. When used globally, keeps apart and influences all particles in the current flow. Selected Events Keeps particles in the current event away from all particles in the events highlighted in the list below this choice. Particles not in the current event are not influenced by the Keep Apart operator. When used globally, keeps all particles in the current flow apart from all particles in the events highlighted in the list below this choice, but influences only particles in the current flow. After choosing this option, click items in the list to highlight them. Selected Particle Systems Keeps particles in the current event away from all particles in the flows on page 7983 highlighted in the list below this choice. The particles not in the current event are not influenced by the Keep Apart operator. When used globally, keeps all particles in the current flow apart from all particles in the flows highlighted in the list below this choice, but influences only particles in the current flow. After choosing this option, click items in the list to highlight them. Uniqueness group The Uniqueness setting enables randomization of the Range on page 2898 > Variation % calculations. Particle Flow | 2899 Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Shape Shape Operator Particle View on page 2811 > Click Shape in an event or add a Shape operator to the particle system and then select it. Shape is the default operator for defining the geometry used in the particle system. You can use it to specify particles in the shape of pyramids, cubes, spheres, or vertices, as well as particle size. NOTE All primitive particles created with Shape have pivot points in their geometric centers. See also: ■ Shape Instance Operator on page 2904 ■ Shape Facing Operator on page 2901 ■ Shape Mark Operator on page 2911 Interface Shape Sets the shape of the particles to Vertex or one of three geometric primitives. Default=Pyramid. ■ Vertex Use this option to create non-rendering particles whose sole attribute is their location. This can be useful when using script operators. 2900 | Chapter 14 Space Warps and Particle Systems ■ Tetra These tetrahedron-shaped particles have a four triangular sides. Having only four polygons, the tetra is the simplest of the rendering particle shapes. ■ Cube ■ Sphere Creates spherical particles. The sphere has the most polygons of the rendering particle shapes, and its orientation isn't obvious. These box-shaped particles have six square sides, all the same size. Size Sets the overall size of the particles in system units. Default=10.0 Setting Size=0 makes the particles invisible. Scale Turn on to set the size of the particles as a percentage of the Size value. Use the numeric field to set the Scale percentage value. Default=100. Scale is animatable, while Size is not. Also, turning on Scale creates the scale data that any Scale operators further on in the flow can work with. Shape Facing Operator Particle View on page 2811 > Click Shape Facing in an event or add a Shape Facing operator to the particle system and then select it. The Shape Facing operator creates each particle as a rectangle that always faces a particular object, camera, or direction. For effects like smoke, fire, water, bubbles, or snowflakes, use Shape Facing with a material containing appropriate opacity and diffuse maps. By default, the particles' top and bottom sides are parallel to the horizontal plane. The Orientation setting lets you change this default alignment. NOTE For the Shape Facing operator to be able to calculate the particle orientation, it must know the current particle position. For this reason, always place the Shape Facing operator below a Position operator in an event. See also: ■ Shape Operator on page 2900 ■ Shape Instance Operator on page 2904 ■ Shape Mark Operator on page 2911 Particle Flow | 2901 Interface Look At Camera/Object group Use this control for defining the camera or object toward which the particle will face. This object is known as the Look At object. For the technically minded, the facing is maintained by keeping each particle's local Z axis pointed at the Look At object, or when Use Parallel Direction is on, aligned with the vector between the Particle Source icon and the Look At object. Name After picking a Look At object, its name appears here. Pick Camera or Object Click this button, and then select a camera or object in the scene to use as the Look At object. The mouse cursor changes to a cross shape when positioned over a valid object. 2902 | Chapter 14 Space Warps and Particle Systems Use Parallel Direction When off, all particles continuously rotate to stay facing toward the Look At object. Each particle's orientation varies because its location differs from those of the others. When on, all particles face in the same direction, defined by an imaginary line between the Particle Source gizmo center and the Look At object. Default=off. Size/Width group Use these settings to specify the coordinate system for setting the size, as well as the size parameters. The numeric settings in this group are not animatable. In World Space Sets the absolute size in system units, using the World coordinate system. Units With the In World Space option, sets the particle size in system units. Range=0 to 1000000000. Default=1. In Local Space Sets particle size relative to the existing size, in local space. The software uses the dimensions of the existing shape to determine the size of the “facing rectangle.” Inherited % Sets the facing particles' size as a percentage of the existing size. Range=0 to 100. Default=100. In Screen Space Sets the facing particles' size as a percentage of the screen width. The actual size of each particle changes as necessary throughout the animation, depending its distance from the camera, to maintain a constant size from the camera's point of view. This option is available only when the Look At object is a camera, and Use Parallel Direction is off. Proportion % Sets the particle size as a percentage of the screen width. Default=1. Variation % Sets the percentage by which particle size can vary. Default=0. Pivot At Specifies the part of the particle around which rotation is performed when maintaining the facing direction. The choices, available from the drop-down list, are Top, Center, and Bottom. Default=Center. With Top and Bottom, the center of the corresponding side is used as the particle center for rotation. This option is useful, for example, when particles are lying on a surface, and each particle is an explosion. In this situation, you'd probably want the entire particle rectangle to appear above the surface, so you'd set Pivot At to Bottom. W/H Ratio Defines the aspect (width-to-height) ratio of the shape rectangle. Particle Flow | 2903 Adjust this ratio to that of the particle-map imagery. For the commonly used TV aspect ratio of 4:3, set W/H Ratio=1.33. The parameter is not animatable. Range=0.001 to 1000. Default=1 (square particles). This value is not animatable. Orientation Use this drop-down list to choose how particles rotate on the axes not specified by the Look At direction. Default=Align to Horizon. Align to Horizon Keeps the top edge aligned with the horizon (the world XY plane). Align to Speed Follow Uses the right side of each particle as the leading edge, so the top and bottom edges are aligned with the direction of particle motion. Random Orients the top edge at random. Allow Spinning To spin the particles, choose this option, and in the same event use a Spin operator on page 2863. In the latter, set Rotation Axis to Particle Space and use the default axis values: X=0, Y=0 , Z=1. Uniqueness group The Uniqueness setting enables changing the randomization of the size/width variation. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Shape Instance Operator Particle View on page 2811 > Click Shape Instance in an event or add a Shape Instance operator to the particle system and then select it. Shape Instance lets you use any reference object on page 8107 in the scene as particles. You can effectively define only one reference object per event, but the object can comprise any number of sub-objects, each of which Particle Flow can treat as a separate particle. Also, using tests, you can divide the particle stream into multiple branches and define a different particle shape for each. As the name of the operator indicates, reference geometry is instanced into the particle system. Thus, any physical changes you make to the original 2904 | Chapter 14 Space Warps and Particle Systems geometry are reflected instantly in the particle system. If you hide the original geometry, the particles still appear. However, if you delete the original geometry, the particles are deleted as well. Using Transform-Animated Reference Objects You can create animated particle shapes by animating the reference object with modifiers, and then turning on Animated Shape on page 2910. However, Shape Instance ignores any rotational and positional transformations applied directly to the reference object; it uses only the pure scale component. For example, if you scale an object non-uniformly using the View reference coordinate system, the result might skew the object's shape. Because the skewing is the by-product of a rotational transform, it wouldn't be reflected in the particles' shape. However, modifiers and comparable functions that contain transformations applied to the reference object are reflected in the instanced particles. For example, if you want particles to use rotational transforms applied to the reference object, use the Reset XForm function on the reference object. Reset XForm is available from the Utilities panel. TIP Particle Flow can, however, use rotational and positional animation applied to descendant objects in a hierarchy, when you use the entire hierarchy as a single particle. To do this, create a hierarchy, animate the descendant objects, and then designate the parent as the reference object. Do not turn on Separate Particles For > Object And Children. You'll find a procedure illustrating this, below. When using an animated reference object, it is recommended that you hide the reference object after instancing it in the particle system. See also: ■ Shape Operator on page 2900 ■ Shape Facing Operator on page 2901 ■ Shape Mark Operator on page 2911 Procedures Example: To use the reference object's rotational and positional animation in the particle system: 1 Create an object you want to use as the particle shape, such as a teapot, and a Dummy helper object. 2 Animate the teapot using the Move and Rotate tools. Particle Flow | 2905 3 Use the Align tool to center the teapot to the dummy. This step isn't necessary, but it can help to obtain more consistent results. 4 Link the teapot as a child of the dummy (drag from the teapot to the dummy). You can use any object as the parent, but using a dummy, which doesn't render, lets you animate all instanced particles visible in the final animation. 5 Create a default Particle Flow system. 6 In Particle View, delete the Rotation operator. 7 Replace the Shape operator with a Shape Instance operator. 8 In the Shape operator parameters, designate the dummy as the Particle Geometry Object. 9 Turn on Animated Shape. 10 For sequential animation, which can be more interesting visually, in Animation Offset Keying, set Sync By to Particle Age or Event Duration. 2906 | Chapter 14 Space Warps and Particle Systems Interface Particle Geometry group Use this control for defining the object to be used as the particle geometry. This object is known as the reference object. [button] Click this button, and then select a geometry object in the scene to be used as the particle shape. The mouse cursor changes to a cross shape when positioned over an object that's valid for use as a reference object. Valid objects Particle Flow | 2907 include multi-shape objects such as groups and hierarchies; see Separate Particles For group on page 2908. After picking a reference object, its name appears on the button. You can use almost any geometry object as a reference object. By default, the operator automatically converts closed splines to rendering geometry by “filling in” the area defined by the shape outline. To use the shape outline instead, select the original shape and, on the Modify panel > Rendering rollout, turn on Display Render Mesh. You needn't turn on Renderable, but changes to all other Rendering rollout settings, such Thickness and Sides, are reflected in the rendered particles. Particle Flow does not automatically “fill in” open shapes such as Line (non-closed) and Arc. To render these shapes when using them as particles, turn on Modify panel > Rendering rollout > Display Render Mesh. If a Shape Instance operator is in effect for which the geometry object is not defined, and the viewport display type is set to Geometry, then the particles appear in the viewports as X characters. NOTE If a multi-shape object used as a reference object comprises objects both with and without materials applied, and Acquire Material is on, Particle Flow will apply the first available material to any objects without materials applied. NOTE You can use a NURBS surface as a reference object, but not a NURBS curve. To use a NURBS curve as particle geometry, first convert it to a surface using a method such as the Cap function. TIP For best results, when using an animated reference object, it's highly recommended that you hide the original object before rendering, or use Object Properties to turn off its Renderable check box. NOTE If using a group as a reference object, make sure the group is closed before selecting it. Selecting an open group will add only the group member you click, not the entire group. Separate Particles For group 3ds Max provides a number of methods for combining disparate objects into single entities, including grouping, building hierarchies with linking, and attaching. By default, when using such a multi-shape object as particle geometry, each particle comprises all member objects. Alternatively, you can instruct Particle Flow to treat each member object as a separate particle with these options. When on, the software uses each member object as a single particle, in left-to-right order according to its X-axis position, by default. So, for 2908 | Chapter 14 Space Warps and Particle Systems example, if you create text in the Front viewport, assign it as reference geometry, and turn on Object Elements, the letters come out in the proper order. You can vary the order randomly by turning on Multi-Shape Random Order on page 2910. You can turn on any combination of Separate Particles items. All are off by default. Group Members When on, group members are treated as separate particles. Object and Children When on, linked objects are treated as separate particles. Object Elements When on, element sub-objects of a single mesh object are treated as separate particles. Vertices/Faces Show the number of vertices and triangles per particle. If the reference geometry is multi-shape and the appropriate check boxes in the Separate Particles are on, then these displays show an average vertex/face count. Number of Shapes Shows number of different particle shapes. This number is always 1 unless the reference geometry is multi-shape and the appropriate check boxes in the Separate Particles For group are on, in which case this displays the number of resulting different shapes. Scale (%) Specifies a uniform scaling factor for all particles. Range=0 to 100000. Default=on, 100. The center of scaling for multi-shape object members treated individually depends on how the objects are combined. For grouped and linked objects, the scaling is done about the objects' pivot points. For object elements, the scaling center is the geometric center of each object; that is, the averaged location of all the vertices. This value cannot be animated. To animate particle size, use the Scale operator on page 963. Variation (%) Specifies a randomized percentage of scaling variation. Use the Uniqueness setting to change the randomization. Range=0 to 100. Default=0. This value cannot be animated. To animate scaling variation, use the Scale operator on page 2865 operator. Acquire Mapping When on, all mapping data from the reference object is transferred to particles. Default=on. Acquire Material When on, material data from the reference object is transferred to particles. Default=on. Particle Flow | 2909 If the reference object is a group, with different materials applied to the group members, the software creates a new Multi/Sub-Object material containing all of the materials and uses it as the particle material. TIP Because materials are “sticky” in Particle Flow, if you turn off Acquire Material after specifying a reference object with an attached material, the material remains applied to the particles. To avoid applying the instanced shape's material to the particles, turn off Acquire Material before specifying the reference object. Multi-Shape Random Order When on, assigns shapes to particles in random order. When off, Particle Flow emits each shape in the multi-shape object as a single particle, in the order of the shape's X coordinate. In other words, the shape with the lowest X-axis coordinate is emitted first, then the one with the next highest, and so on. The option is available only if at least one of Separate Particles For group check boxes is on. Default=off. For example, if you want the particles to spell out a word or phrase, use extruded text created in the Front viewport as the reference object, turn on Separate Particles For > Group Elements, but leave Multi-Shape Random Order off. Animated Shape When on, particles use any animation in the reference object, including cyclic animation applied with the Parameter Curve Out-of-Range Types controls. When off, the particles are not animated. With this option, you can use the Animation Offset Keying controls to specify how to synchronize the reference-object animation with the particles. See the next section. NOTE A particle that uses this option is animated only while in the event containing the Shape Instance operator. If it moves to another event that doesn't contain a shape operator, it keeps the same shape, but the animation stops. The easiest way to keep the animation going from event to event is to place the Shape Instance operator in the global event on page 7997. Otherwise, you need to place the operator in each event in which the particle should be animated. Acquire Current Shape When on, Particle Flow acquires the particle shape from the reference object as each particle enters the event. Thus, if the reference object is animated, particles that enter at different times get different shapes. However, these shapes are not animated. When the option is off, the shape is acquired from frame 0. Default=off. This option is available only when Animated Shape is off. 2910 | Chapter 14 Space Warps and Particle Systems Animation Offset Keying group These controls are available only when Animated Shape is on. Sync By Lets you choose how to synchronize reference-object animation with the particles. ■ Absolute Time All particles have the same shape at any given moment. ■ Particle Age Animation of the reference object is synchronized with particle age: Frame 0 of the reference-object animation corresponds to the frame of each particle's birth. ■ Event Duration Frame 0 of the reference-object animation corresponds to the moment the particle enters the event. Rand Offset When on, randomly varies the start of each particle's animation. Use the numeric setting to specify the number of frames by which the animation start can vary. Update Particle Shape Refreshes instanced particle shapes from the reference object. Use this after changing an object in a hierarchical reference object. In most cases, Particle Flow automatically updates instanced particles when changes are made to the reference object. However, in some cases, when you change an object deep in a hierarchy, the particle instances might not be updated. In such a case, click Update Particle Shape to refresh the instances. Uniqueness group The Uniqueness setting enables changing the randomization of the scale variation, animation offset, and the multi-shape random order. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Shape Mark Operator Particle View on page 2811 > Click Shape Mark in an event or add a Shape Mark operator to the particle system and then select it. Use the Shape Mark operator to replace each particle with either a rectangle or a box cut out from the particle geometry with an image mapped onto it. The image can be animated and the animation can be synchronized with particle events. Particle Flow | 2911 A typical application of Shape Mark would be to leave marks after particles impact objects in the scene. For example, when a torpedo hits a boat and explodes, you could use Shape Mark to leave scorch marks on the boat surface. TIP By default, the mark left by Shape Mark is always rectangular, no matter what shape the particles are. To leave a differently shaped mark, choose the Shape group > Rectangle option, and use a material on page 2918 in the same event with transparent areas to define the mark's outline. For example, apply a Mask map to the material's Opacity channel, and to the map's Mask channel, apply a bitmap containing an alpha channel. On the Bitmap Parameters rollout, set Mono Channel Output to Alpha. NOTE With its default settings, the Shape Mark operator can generate coplanar faces, which the mental ray renderer cannot render well. If you want to use mental ray rendering with Shape Mark, adjust the operator's settings as follows: ■ In the Shape group, choose Box Intersection. ■ Set Surface Offset to 0.01. ■ Set Offset Variation to 0.005. ■ Set Vertex Jitter to 0.002. With these settings, faces are no longer coplanar, and the mental ray renderer gives better results. See also: ■ Shape Operator on page 2900 ■ Shape Instance Operator on page 2904 ■ Shape Facing Operator on page 2901 Procedures Example: To use Shape Mark: 1 Determine which object is to receive the marks; this will be the contact object. Apply a deflector to this object. 2 Set up your particle system with an event that causes particles to collide with the contact object deflector. 3 At the end of this event, add a Collision test on page 2960. 2912 | Chapter 14 Space Warps and Particle Systems 4 In the Collision test, designate the deflector from step 1. 5 Create a new event with the Shape Mark operator, and wire the Collision test to this event. 6 In the Shape Mark operator > Contact Object group, designate the object from step 1. Change the other Shape Mark settings as necessary. Now, when the particles strike the contact object, they disappear, leaving marks on the object. If you want the particles to bounce after leaving marks, rather than disappearing, use a Collision Spawn test on page 2964 instead, and turn off its Delete Parent check box. The spawned particles become the marks, and the original particles remain in the first event. 7 Optionally, add a Material operator to define the surface characteristics of the marks. Particle Flow | 2913 Interface 2914 | Chapter 14 Space Warps and Particle Systems Contact Object group Use this control for defining the object on which marks are to be left. [button] Click this button, and then select an object in the scene to use as the contact object. The mouse cursor changes to a cross shape when positioned over a valid object. After picking a contact object, its name appears on the button. Align to Surface Animation When on, Shape Mark takes into account surface changes due to vertex animation of the contact object. If Shape on page 2916 is set to Rectangle, then the mark changes its orientation and position to appear be stuck to the surface of the contact object. If Shape is set to Box Intersection, then the mark changes shape along with that of the contact object. When off, only transformation of the contact object is taken into consideration. Default=off. Turn this on only if there is significant vertex animation at the contact point, such as with an animated water surface. WARNING This option requires significant CPU and memory resources. Orientation group Align To Depending on the setting for Shape on page 2916, Shape Mark creates either a rectangle or a box cutout on the contact geometry. The Orientation setting specifies how the shape is oriented. In the mark's local coordinate system, the X axis is Length, the Y axis is Width, and with the box cutout, Z is height. The Z axis is perpendicular to the surface of the object at the contact point. The alignment choices are as follows: ■ Speed The Length direction is parallel to the projection of the particles' speed vector onto the contact plane. ■ Particle X/Y/Z The Length direction is parallel to the projection of the particle's local coordinate axis X, Y, or Z, respectively, as the particle moves toward the contact object. ■ Random Uses a random Length direction in the contact plane. Divergence Applies a range of random variation, in degrees, to the orientation of the Length direction. Unavailable when using the Random option. Particle Flow | 2915 Size group Use these settings to specify the coordinate system for setting the size of the mark, as well as the size parameters. The numeric settings in this group are not animatable. In World Space Sets the absolute size of the mark in system units, using the World coordinate system. Width/Length With the In World Space option, sets the particle dimensions in system units. Range=0 to 1000000000. Default=1.0. In Local Space Sets the mark size relative to the existing particle size, in local space. The software uses the dimensions of the existing shape to determine the size of the “facing rectangle.” Inherited % Sets the percentage of the mark size, relative to the existing particle size. Range=0 to 100. Default=100.0. Variation % Sets the percentage by which particle size can vary. Default=0.0. Impact Angle Distortion When on, increases the Length value of the mark according to the particle's angle of approach. This effectively stretches the mark shape if particle approaches the contact geometry at a low angle. Available only when Align To is set to Speed. Default=off. For example, if a drop of paint hits a surface perpendicularly, it creates a circular mark, but if it hits the surface at a lower angle, the resulting shape is an ellipse. Distor(tion) Max % Sets the maximum percentage by which the software may stretch the mark. Available only when Impact Angle Distortion is on. Default=1000. With very low angles of approach, the stretching factor can become very high. For example, value 500% means that the stretching factor cannot exceed 5. Shape group These settings let you specify the mark-making object as a rectangle or a box. Default=Rectangle. Rectangle The mark shape is a two-faced rectangle. When using a material with Shape Mark, always choose this option. Box Intersection With this option, the software creates a box for each particle that leaves a mark, and derives the mark shape from a Boolean intersection between the contact object and the box. 2916 | Chapter 14 Space Warps and Particle Systems Box Height Sets the height of the box used with the Box Intersection method. Available only with Box Intersection. Default=10.0. Allow Multiple Elements When on, particles can leave marks on all parts of contact objects that contain multiple elements. When off, a particle marks only the first element it collides with. Available only with Box Intersection. Default=off. Particles falling onto a two-element cylinder Left: Allow Multiple Elements is off; Right: Allow Multiple Elements is on. Continuous Update When on, the shape of the mark is recalculated at each frame, according to the current positions of the particle and the contact surface. This option can consume a great deal of CPU time. Available only with Box Intersection. Generate Mapping Coords. Allows correct application of the shape mark when using a mapped material. Default=on. If you're not using a mapped material, you can save memory by turning this off. Pivot Offset % Shifts the position of the shape mark along its length dimension with respect to the pivot of the impacting particle. Default=0.0. Range=-50.0 to 50.0. By default, the center of the mark's length dimension coincides with the point where the particle's pivot strikes the contact object. This setting lets you offset the mark's position to anywhere along its length. NOTE The width dimension and the Box Intersection's height dimension are always centered at the intersection of the particle pivot and the contact object's surface. Surface Offset Specifies the distance of the shape mark above the contact object's surface. Default=0.001. Particle Flow | 2917 The mark is slightly elevated above the contact geometry to achieve the visual effect of the mark spot overlapping the contact geometry. This parameter is not animatable. Offset Variation Specifies the maximum extent of a random variation in the actual surface offset among particles. Default=0.0. Adjusting this value can help to alleviate rendering artifacts with overlapping marks. Vertex Jitter Specifies the maximum extent of a random variation in the positions of vertices of marks created using the Box Intersection method. Available only with the Box Intersection method. Default=0.0. Adjusting this value can help to alleviate rendering artifacts with overlapping marks. Uniqueness group The Uniqueness setting enables changing the randomization of the size/width variation. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Materials and Mapping in Particle View Particle Flow provides three operators for applying materials to particles. To give the same appearance to all particles throughout an event, use Material Static Operator on page 2920. If you're using a compound material such as Multi/Sub-Object on page 5720, you can assign different sub-materials to different particles with the Material Frequency operator on page 2923. And to assign materials that change in appearance over time, use the Material Dynamic operator on page 2925. Related to this is the Mapping operator on page 2932, which lets you give the same mapping coordinates to the entire surface of each particle in an event, thus using a single pixel from a material to color the particles. By animating the mapping coordinates, you can cause the particles to change color over time. This is particularly effective with a gradient material. The Bitmap map on page 5795, used in conjunction with Material Dynamic, lets you assign different frames from an image sequence to particles based on the particle age, among other effects. 2918 | Chapter 14 Space Warps and Particle Systems Following are some items to keep in mind when using materials with Particle Flow: ■ A material is a static property of an event. It does not travel along with the particles from one event to the next. A particle's material ID does, but its material does not. If you want particles always to use the same material, define the material in the global event on page 7997 with a Material operator or a Shape Instance operator on page 2904. Otherwise, you need to define it in each local event. ■ The primitive particle shapes available with the Shape operator on page 2900 do not have mapping coordinates. The Mapping operator on page 2932 applies the same mapping coordinates to each particle's entire surface, so it's not suitable in this situation. If you want to apply image-based materials to particles, use Shape Instance on page 2904 instead. ■ If you use a Material operator with Shape Instance on page 2904, be sure to apply mapping coordinates to the reference object(s) on page 8107. You can do this by making sure the object's Generate Mapping Coords option is on (if available), or applying a UVW Map modifier on page 1931 or Unwrap UVW modifier on page 1841. If you don't apply mapping coordinates, the system generates a Missing Map Coordinates warning when you render the scene. ■ If you use an object with a material already applied as a reference object on page 8107 for instanced particles, you don't need a Material operator in the same event. However, the material appears only in the event containing the Shape Instance operator on page 2904; it does not persist from event to event. ■ If you use the Cache operator on page 2935 with Update set to Always, toggling the Material Editor > Show Map In Viewport switch causes Particle Flow to recalculate the cache. ■ You can drag a material from the Material Editor to a Particle Flow source icon, but the material will not have any effect on the system. You must use a Material operator or Shape Instance to apply materials to particles in Particle Flow. ■ Once you've assigned a material to a Material operator, the material shows up in the Material Editor as “hot”; that is, triangles appear in the corners of its sample slot. However, because of the nature of the Particle Flow data structure, the Material Editor functions Select By Material and Get Material > Browse From Selected do not work correctly with Particle Flow systems. You can, however, use Get Material > Browse From Scene. Particle Flow | 2919 Material Static Operator Particle View on page 2811 > Click Material Static in an event or add a Material Static operator to the particle system and then select it. The Material Static operator lets you give particles material IDs that remain constant throughout the event. It also lets you assign a material to each particle based on its material ID. The operator can assign the same material ID to all particles, or different IDs to successive particles on a cyclical or random basis. The most common usage of this latter capability is with a Multi/Sub-Object material, for applying a different material to each particle. See also: ■ Materials and Mapping in Particle View on page 2918 ■ Material Frequency Operator on page 2923 ■ Material Dynamic Operator on page 2925 Interface 2920 | Chapter 14 Space Warps and Particle Systems The user interface appears in the parameters panel, on the right side of the Particle View dialog. Assign Material When on, the operator assigns a material to the particles. Default=on. [button] Use this button to assign a material to the operator. Click the button and then use the Material/Map Browser to choose the material. Alternatively, drag the material from a Material Editor sample slot to the button. After you assign a material to the operator, its name appears on the button. Assign Material ID When on, the operator defines a material ID number for each particle. Default=off. Show In Viewport When on, the material is shown applied to the particles in the viewports. Assignment Method The Material Static operator gives you a choice of three different methods for assigning Material IDs to particles: Material ID Assigns the same material ID to all particles. Use the numeric field to set the ID value. Cycle Assigns each particle a material ID in the range 1 to N, where N=# Sub-Materials, in increasing sequential order. The first ID assigned is 1, then 2, then ..., then N, then 1 again, and so on. Random Assigns each particle a random material ID in the range 1 to N, where N=# Sub-Materials. # Sub-Materials The highest ID number assigned to particles using the Cycle or Random option. In general, set this to the same number of sub-materials in the Multi/Sub-Object material. If you set it to a smaller number, the operator will use only that many sub-materials, starting with the first and counting upward. NOTE The software automatically sets this value to the number of sub-materials in the material, once only, the first time you apply the material to the operator. Any subsequent changes in the material itself, or applying a different material to the operator, will not change or update the setting. Particle Flow | 2921 Rate group These settings let you choose the basis on which the operator changes material ID assignments, and specify the rate of change. Per Second Sets the number of times per second that the assigned material ID is incremented. If this value is the same as the rate at which particles enter the event, then one ID is assigned per particle. If it's lower, then multiple particles are given the same ID, or if it's higher, then the software increments the assigned ID faster than 1 per particle. For instance, if particles enter the event at intervals of 1/60 of a second, and Per Second=30, then each pair of particles will be assigned the same ID. Or if particles enter the event at intervals of 1/15 of a second, and Per Second=30, then the ID is incremented (or changed randomly) twice per particle. Per Particle Sets the number of particles that must appear before material ID assignment changes. For example, If you set Per Particle=3, the material ID changes every three particles. If you set Per Particle to a number less than 1.0, the software then moves through the sub-material list more rapidly than one (or more) particle per ID. That is, the software divides this value into 1.0, and adds the result to the current material ID to obtain the next one. For example, with eight sub-materials, if you set Per Particle=0.33, and use the Cycle option, the following series of IDs will result: 1, 4, 7, 2, 5, 8, 3, 6, 1, ... In general, this option is useful only with the Cycle option. Loop When on, and the last ID has been assigned, the software loops back around to the first ID and continues the cycle. When off, the software assigns the last cycle ID to all subsequent particles. Available only with the Cycle assignment method. Default=on. For example, say you want the first eight particles that enter the event to use different materials, and all subsequent particles to use a ninth material. To do so, you would create a nine-sub-material Multi/Sub-Object material and assign it to the Material Static operator. Turn on Assign Material ID, choose the Cycle assignment method, and set # Sub-Materials=9. For Rate, use the default settings of Per Particle and 1.0. Lastly, turn off Loop. Uniqueness group The Uniqueness setting varies the sequence of assigned IDs with the Random option. Seed Specifies a randomization value. 2922 | Chapter 14 Space Warps and Particle Systems New Calculates a new seed using a randomization formula. Material Frequency Operator Particle View on page 2811 > Click Material Frequency in an event or add a Material Frequency operator to the particle system and then select it. The Material Frequency operator lets you assign a material to an event, and specify the relative frequency with which each sub-material appears on the particles. Typically, the material is a Multi/Sub-Object or other compound material, and you specify the frequency by setting a percentage for each of up to 10 different sub-materials (or material ID). The software assigns IDs to particles in a random sequence, based on these percentages. You can also use other materials that use sub-materials, such as Double Sided and Top/Bottom. See also: ■ Materials and Mapping in Particle View on page 2918 ■ Material Static Operator on page 2920 ■ Material Dynamic Operator on page 2925 Particle Flow | 2923 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Assign Material When on, the operator assigns a material to the particles. Default=on. [button] Use this button to assign a material to the operator. Click the button and then use the Material/Map Browser to choose the material. Alternatively, drag the material from a Material Editor sample slot to the button. After you assign a material to the operator, its name appears on the button. Assign Material ID When on, the operator defines a material ID number for each particle, and enables the remaining parameters. Default=on. In general, this should remain on. Particle Flow uses the material ID with compound materials to know which sub-material to assign to a particle. 2924 | Chapter 14 Space Warps and Particle Systems Show In Viewport When on, the material is shown applied to the particles in the viewports. # Sub-Materials Displays the number of sub-materials in the assigned material. Material ID #1–10 Specifies the relative likelihood of particles to be assigned the corresponding material ID. Assign values for all IDs, or sub-materials, in the material that you want to have applied to the particles. So, for example, with a Multi/Sub-Object material containing five sub-materials, you'd set values for Material IDs #1-5. This value is not absolute, but relative to the other settings. To follow the previous example, if you wanted all five materials to appear with equal frequency, you'd set the same non-zero value for Material IDs #1-5; the actual value wouldn't matter. On the other hand, if you wanted the materials to appear with decreasing frequency, you'd set the lower Material ID settings to relatively higher values; say 100, 80, 50, 33, and 10. In this case, each particle would twice as likely to be assigned material ID 1 as it would material ID 3, and one-tenth as likely to be assigned ID 5 as it would ID 1. The actual sequence of material ID assignments is random, and can be varied by changing the Uniqueness Seed setting. Uniqueness group The Uniqueness setting varies the random sequence of assigned IDs. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Material Dynamic Operator Particle View on page 2811 > Click Material Dynamic in an event or add a Material Dynamic operator to the particle system and then select it. The Material Dynamic operator lets you give particles material IDs that can vary during the event. It also lets you assign a different material to each particle based on its material ID. When used with an animated texture on page 7907, this lets you assign a different frame or map to each particle based on its total age or the amount of time it has spent in the current event. In this context, one example of an animated texture is a material that uses a multi-frame bitmap, such as an AVI file, as the Diffuse Bitmap map on page 5795. Other examples of animated textures are materials that use the Particle Age map on Particle Flow | 2925 page 5889 or the Particle MBlur map on page 5891. Alternatively, you can use different sub-materials from a compound material such as Multi/Sub-Object. NOTE When using Object Motion Blur, if an event contains a Material Dynamic operator that uses a material with a Particle Age/MBlur/Bitmap map, the event should not also contain a Delete operator, or a Spawn or Collision Spawn test. Also, the event should not contain any tests that are wired to another event. The only exception to this is the Age Test operator when set to Absolute Time without any variation; that is, all particles leave the event at the same time. This applies to the use of Object Motion Blur only; there are no restrictions with Image Motion Blur. See also: ■ Materials and Mapping in Particle View on page 2918 ■ Material Static Operator on page 2920 ■ Material Frequency Operator on page 2923 Procedures Example: To assign animation frames to particles based on age: 1 Prepare a file to be used as the animated bitmap. This can be a multiple-frame format such as AVI, or an image file list (IFL file) that points to a sequence of still images. With the latter, you can use images in a format such as Targa that contain predefined alpha channels to specify particle opacity selectively. 2 Open the Material Editor, and assign a Bitmap map as the Diffuse map. 3 Use the Select Bitmap Image File dialog to assign the file from step 1 as the bitmap. This dialog appears automatically when you first assign a Bitmap map; alternatively, click the Bitmap button on the map's Bitmap Parameters rollout. 4 On the map's Time rollout, turn on Sync Frames To Particle Age. 5 If you want to use the image background or alpha channel to define transparency, on the Maps rollout, copy this map to the Opacity slot, and set the parameters accordingly. 2926 | Chapter 14 Space Warps and Particle Systems 6 At the material level, turn on Show Map In Viewport. 7 Add a camera to the scene and set it up as desired. Activate the Perspective viewport and press the C key to set the viewport to show the camera view. 8 Create a default Particle Flow system. 9 Open Particle View. 10 Replace the Shape operator with a Shape Facing operator. Using this operator makes it easier to see the animation. 11 Click the Shape Facing operator, and in its rollout, click the Look At Camera/Object button, and then select the camera. 12 In the Size/Width group, increase In World Space > Units to about 15. 13 Add a Material Dynamic operator to Event 01, and assign it the material from the beginning of this procedure. 14 Turn on Show In Viewport. 15 In the Animated Texture group, make sure Same As Particle ID is chosen, and turn on Reset Particle Age. Always choose Same As Particle ID with an animated texture, and one of the Sub-Material Rotoscoping options when using a compound material. Turning on Reset Particle Age causes the software to set particles to age 0 as they enter the event. In this example, the particles are born in the event, so technically it's not necessary to turn on Reset Particle Age. However, it's a good habit to get into to ensure that the animation always plays from the first frame. 16 Play the animation. In the viewport, the bitmap animation advances as the particles move, but all the particles show the same frame, regardless of age. This is anomalous behavior related to the limitations of viewport interactivity. The particles render correctly, however. 17 Render the animation. As each particle is born, it begins displaying the animation from the first frame. At each frame, each particle's age is incremented, and it displays the next frame from the applied map. Particle Flow | 2927 Example: To use the Particle Age map: The Particle Age map on page 5889 applies up to three different colors or maps to particles throughout their life span, gradually changing from one to the next as the particles age. This effect can be used, for example for sparks flying from a fire: At first they're yellow; then, as they cool down, they turn red, and finally they become gray ashes. In order for Particle Age to know how far a particle has progressed through its life span, the particle has to be given a finite life. You do this using the Delete operator on page 2848. 1 Start or reset the program, and add a Particle Flow system. 2 Open Particle View and the Material Editor. Position them side by side. 3 In Particle View, add a Material Dynamic operator and a Delete operator to Event 01. For Particle Age to work, the Delete operator must be in the same event as the Material Dynamic operator. Alternatively, you can add the Delete operator to the global event on page 7997 so that it affects every event. 4 Click the Delete operator, and in the parameters panel, choose By Particle Age, and set Life Span=100 and Variation=0. This gives each particle a life span of 3 1/3 seconds. 5 Click the Material Dynamic operator. 6 In the Material Editor, assign a Particle Age map as the Diffuse map. On the Particle Age Parameters rollout, set three different colors, such as red, green, and blue. Also change the Age percentage values as necessary. For example, if you want each particle to show the second color a third of the way through its life instead of halfway, change Age #2 to 33. 7 Drag the active material from its sample slot to the material button on the Material Dynamic parameters rollout in Particle View. When the Instance (Copy) dialog appears, click OK to accept the default choice: Instance. 8 In the Material Dynamic parameters, make sure Assign Material ID is on. If it isn't, the particles all change color at the same time. There's no need to turn on Show In Viewport; the Particle Age map doesn't appear in the viewports. 9 Render the animation, or a few representative frames. As each particle falls, it gradually changes color, with the oldest particles changing first. 2928 | Chapter 14 Space Warps and Particle Systems TIP You needn't actually delete the particles to use this method. There are several ways to avoid this. You could set Life Span to a higher number than the length of the animation, and then, in the Particle Age map parameters, lower the Age #2 and Age #3 settings. Or, if you're using a local Delete operator, you could use an Age test on page 2958 to move the particles into another event just before they're scheduled to be deleted. In that case, to avoid an abrupt color change, you might want to add to subsequent events a Material Static operator on page 2920 with a material that uses the same final color or map as the Particle Age map. Interface Particle Flow | 2929 The user interface appears in the parameters panel, on the right side of the Particle View dialog. Assign Material When on, the operator assigns the specified material (see next parameter) to the particles. Default=on. [button] Use this button to assign a material to the operator. Click the button and then use the Material/Map Browser to choose the material. Alternatively, drag the material from a Material Editor sample slot to the button. After you assign a material to the operator, its name appears on the button. Assign Material ID When on, the operator defines a material ID number for each particle. Default=on. In general, this should remain on. Particle Flow uses the material ID with the Particle Age map to find the particle's other properties, including its life span and current age. And it uses the material ID with compound materials to know which sub-material to assign to a particle. Show In Viewport When on, the material is shown applied to the particles in the viewports when the particles are displayed as geometry. Assignment Method The Material Dynamic operator lets you assign Material IDs to particles in several different ways, depending on whether you're using an animated texture or a compound material. Default=Same As Particle ID. Animated Texture group Same As Particle ID Assigns the same material ID to a particle as its particle ID. Choose this when using a material containing an animated texture, such as a Bitmap, Particle Age, or Particle MBlur map. NOTE Particle Flow assigns Particle IDs consecutively to particles at birth, starting with 0. Although the highest possible Particle ID is over 2,000,000,000, the highest possible material ID is 65535. Thereafter, the numbering sequence starts again at 0. Thus, when using a Particle Age map in a material assigned to the Material Dynamic operator, for best results, use a total of 65,536 particles or fewer. Reset Particle Age When on, sets each particle's age to 0 when it enters the event. When using an animated material with a Bitmap map, turn this on to ensure that the animation always plays from the first frame. 2930 | Chapter 14 Space Warps and Particle Systems Randomize Age Offset When on, the software varies the difference between the particle age and the starting material ID at random. The maximum difference is determined by the Max Offset parameter. Max Offset The maximum number of frames by which the software can randomly vary particle age. Sub-Material Rotoscoping group These settings let you choose the basis on which the operator changes material ID assignments when using a compound material such as Multi/Sub-Object, and specify the rate of change. Material ID Assigns the same material ID to all particles. Use the numeric field to set the ID value. Cycle Assigns each particle a material ID in the range 1 to N, where N=# Sub-Materials, in increasing sequential order. The first ID assigned is 1, then 2, continuing to increment each by 1 until N; then 1 again, and so on. Random Assigns each particle a random material ID in the range 1 to N, where N=# Sub-Materials. # Sub-Materials The highest ID number assigned to particles using the Cycle or Random option. In general, set this to the same number of sub-materials in the Multi/Sub-Object material. If you set it to a smaller number, the operator will use only that many sub-materials, starting with the first and counting upward. NOTE The software automatically sets this value to the number of sub-materials in the material, once only, the first time you apply the material to the operator. Any subsequent changes in the material itself, or applying a different material to the operator, will not change or update the setting. Rate Per Sec(ond) Sets the number of times per second that the assigned material ID is incremented. If this value is the same as the rate at which particles enter the event, then one ID is assigned per particle. If it's lower, then multiple particles are given the same ID, or if it's higher, then the software increments the assigned ID faster than 1 per particle. For instance, if particles enter the event at intervals of 1/60 of a second, and Per Second=30, then each pair of particles will be assigned the same ID. Or if particles enter the event at intervals of 1/15 of a second, and Per Second=30, then the ID is incremented (or changed randomly) twice per particle. Particle Flow | 2931 Loop When on, and the last ID has been assigned, the software loops back around to the first ID and continues the cycle. When off, the software assigns the last cycle ID to all subsequent particles. Available only with the Cycle assignment method. Default=off. For example, say you want the first eight particles that enter the event to use different materials, and all subsequent particles to use a ninth material. To do so, you would create a nine-sub-material Multi/Sub-Object material and assign it to the Material Dynamic operator. Choose the Cycle assignment method, and set # Sub-Materials=9. Set the Rate Per Sec value to the rate at which particles enter the event. Lastly, turn off Loop. Sync By Choose the time frame for applying animated parameters. Available only with the Material ID and Cycle options. ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Rand Offset When on, the software varies the difference between the particle age and the assigned material ID at random. The maximum difference is determined by the numeric parameter. Available only with the Material ID and Cycle options. Uniqueness group The Uniqueness setting varies the sequence of assigned IDs with the Random option, and the offset with the Randomize Age Offset option. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Mapping Operator Particle View on page 2811 > Click Mapping in an event or add a Mapping operator to the particle system and then select it. The Mapping operator lets you assign a constant UVW mapping to the entire surface of the particles. It works in conjunction with a map specified in a material operator in the current event. By animating the mapping coordinates, 2932 | Chapter 14 Space Warps and Particle Systems you can vary the location on the material map from which the particle color is taken, thus changing the particle color in a predictable way over time. The Mapping operator was designed primarily to be used with gradient maps, although you can use it with any map you like. The procedure below describes a recommended method for using the Mapping operator. See also: ■ Material Static Operator on page 2920 ■ Material Frequency Operator on page 2923 ■ Material Dynamic Operator on page 2925 Procedures Example: To animate particle coloring using the Mapping operator: 1 Open the Material Editor, and create a material that uses Gradient Ramp as the Diffuse map. 2 On the map's Gradient Ramp Parameters rollout, make sure Gradient Type is set to Linear. 3 Create a colorful gradient. The Mapping operator uses the colors in left-to-right order as the U value increases from 0.0 to 1.0. 4 Add a Particle Flow Source object to the scene. 5 Open Particle View. 6 In Event 01, click the Speed operator and set Speed to 100. 7 In Event 01, click Display and set Type to Geometry. 8 Add a Material Static operator to Event 01, and then click the operator in the event. 9 Drag the material you created from its Material Editor sample slot to the button (labeled “None”) on the Material Static parameters rollout in Particle View. 10 Add a Mapping operator to Event 01, and then click the operator in the event. Particle Flow | 2933 11 On the Mapping rollout in Particle View, turn on Show Map In Viewport. 12 Go to frame 100 and turn on Auto Key. 13 On the Mapping rollout in Particle View, set Map Values > U=1.0. 14 For Sync By, choose Particle Age. 15 Turn off Auto Key, and click Play Animation. As each particle is born and falls, its U mapping coordinate gradually changes from 0.0 to 1.0, while its color changes to match the corresponding position across the Gradient Ramp map. To vary the effect, try changing the Gradient Type setting, and animate the V and W values as well. Or, for more sophisticated effects, assign animation controllers such as Noise Float to the Mapping coordinate values, or wire them to other changing parameters in the scene (Animation menu > Wire Parameters > Parameter Wire Dialog). TIP In the Material Editor, it's easier to see the result of the Gradient Type choice if you set Sample Type to Cube. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. 2934 | Chapter 14 Space Warps and Particle Systems Map Values group U/V/W Set the coordinates on the map from which the particle color is taken. One pixel from this location is used to color the entire particle. In general, U and V represent the horizontal and vertical dimensions, respectively, beginning at the upper-left corner of the map, and W is useful only with three-dimensional maps, in which context it specifies depth. Sync By Choose the time frame for applying animated parameters. For further information, see Animation Offset Keying group on page 2870. ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Channel group The Channel setting determines whether the mapping is applied to a map channel or to a vertex color channel. Map Channel The mapping is applied to the specified map channel. Vertex Color Channel The mapping is applied to the particles' vertex color channel. Show Map In Viewport The map coloring is visible in the viewports. Additional Operators Cache Operator Particle View on page 2811 > Click Cache in an event or add a Cache operator to the particle system and then select it. The Cache operator records and stores particle states to memory. When it's in effect, the first time you play or go to a frame, the particle motion up to and including the frame is calculated and recorded in the cache. Thereafter, playing the frame or any previous frames uses the data in the cache, rather Particle Flow | 2935 than recalculating the particle action. This is particularly useful with large or complex particle systems, where playback, and particularly backtracking, are slow because of the large amount of processing required. With caching on, the particle system needs to be calculated only once for each frame, and thereafter playback and moving among frames is significantly faster. To cache an entire flow, add a Cache operator to the global event. To cache an individual local event, add a Cache operator to it. To determine how best to implement caching in your particle system, turn on Particle View > Track Update > Update Progress, and then play the animation or go to a frame relatively distant from the current frame. Observe the particle diagram, and watch for events with actions that highlight longer than a fraction of a second, or events with more activity than the rest. Any such events could benefit from caching. NOTE Use no more than one Cache operator per event, unless you’re using two: one set up for viewports, and the other for rendering. Similarly, don’t use global and local Cache operators in the same flow, unless one is set up for viewports, and the other for rendering. TIP When using real-time playback, if playback isn't fast enough, you can use the Cache operator to speed it up. For best results, set the Viewport integration step to the same value as the real-time playback speed, and set cache sampling to Integration Step. For example, if the real-time playback speed is set to 1/4x, then the Viewport Integration Step for viewport should be also set to 1/4 Frame, and the Cache operator Sampling parameter should be set to Integration step. Thus, because real-time playback is showing four times as many frames per second, and the Cache operator has stored four times as many frames per second, the two are synchronized. If the real-time playback speed is set to 2x or 4x, set the Viewport Integration Step to Frame. Procedures Example: To use the Cache operator: 1 Start or reset the software, and then add a Particle Flow system. 2 Open Particle View. 3 In Particle View, go to Options menu > Track Update and turn on Update Progress. This lets you monitor calculation of the particle system by highlighting actions in Particle View as the system executes them. 2936 | Chapter 14 Space Warps and Particle Systems 4 In Particle View, Add a Keep Apart operator on page 2894 to Event 01. Keep Apart is a fairly calculation-intensive operator. 5 Go to frame 100 by clicking the right end of the time slider track. There is a delay as the system calculates all particle motion between frames 0 and 100. This is necessary because Particle Flow is a history-dependent system. At the same time, the actions in the system highlight briefly in Particle View as they're executed at each frame. 6 Go to frame 50 by clicking the center of the time slider track. There is a another delay as the system calculates all particle motion between frames 0 and 50. 7 In Particle View, drag a Cache operator from the depot to Event 01. Insert it anywhere in the event. When you release the mouse button, there is a delay as the Cache operator automatically caches particle motion from the start of the animation to the current frame. Meanwhile, each action highlights briefly at each frame. 8 Go to frame 20 or so. The only operators that highlight are Cache (very fast) and Display; there is no delay for calculation. All frames between 0 and 50 have been cached. 9 Go to frame 100. The delay this time is a result of caching particle motion for frames 50 to 100. 10 Jump to different frames, and drag the time slider. All particle motion is now cached, so no delays occur. But if you change a setting's value, the Cache operator automatically recalculates and stores the particle motion. 11 Go to frame 100, and then, in Particle View, click the Keep Apart operator and use the keyboard to change the Falloff Zone value to 8.0. By default, the Cache operator automatically updates the cache when you change any parameters it stores. Thus, when you change the Falloff Zone value at frame 100, it recalculates and recaches the entire animation. Next, you'll briefly explore how manual caching works. 12 Click the Cache operator and set Update to Manually. The Cache operator no longer updates the stored data automatically when you change a parameter. Particle Flow | 2937 13 Click the Keep Apart operator, change the Falloff Zone value to 9.0, and then drag the time slider. There is no delay, because the animation is still playing back from the cached data. However, the cached data is now invalid, because you changed a parameter in the particle system. 14 Click the Cache operator, and in the Manual Update group, click Update. The software closes Particle View, updates the cache for the active segment, and then reopens Particle View. The cached data is now accurate. Other manual update options let you update the cache for the entire animation or a custom frame range. As you can see, the Cache operator is quite powerful. When present and active, by default it overrides recalculation of the particle system, except when you change any action parameters, whereupon it automatically updates the cached data. Used appropriately, it can save a good deal of time in setting up and testing particle systems. 2938 | Chapter 14 Space Warps and Particle Systems Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Use At Caches particle motion when playing back in the viewports, or at render time, or both. Default=Viewport. IMPORTANT Choose the Viewport/Render option only when using the same number of particles in the viewports and for rendering (see Quantity Multiplier group on page 2832). Otherwise, unpredictable results can occur. Particle Flow | 2939 Update If you change a parameter in the particle system, the cached data might become invalid. This setting determines whether Particle Flow should update the cache automatically, or let you do it manually. Default=Always. ■ Always Changing any parameter under the Cache operator's purview causes it automatically to update stored data from the start of the current range (see next parameter) to the current frame. ■ Manually Updating occurs only when you click the Update button, or clear the cache and then move to a different frame. Range Sets the frame range within which the Cache operator operates. Default=Active Segment. ■ Complete The software caches the entire animation. ■ Active Segment The software caches only frames in the active segment, as defined by the Start Time and End Time settings on the Time Configuration dialog. This is the frame range shown on the track bar. You can also change the active segment by holding down Alt and Ctrl and dragging the track bar with the left, middle, or right mouse button. ■ Custom The software caches only frames in the custom range, as defined by the Cache operator's Start Time and End Time settings (see following). NOTE If you cache only part of the animation, Particle Flow calculates particle behavior in subsequent, non-cached frames using the cached data. For example, if you cache frames 0 to 50, and then jump to frame 60, Particle flow will calculate frame 51 based on the cached data, and frames 52 to 60 based on each previous frame. Start/End Time The first and last frames of the range considered for caching when Range=Custom (see above). Default=0, 30. NOTE The frame range time frame is in absolute time; that is, in terms of the entire animation. If you use a Cache operator locally, and specify a frame range during which no particles are present in the event, Particle Flow won't use the cache. Sampling Determines how often the Cache operator samples and caches the animation. Default=Every Frame. ■ Every Frame The software caches animation data once per frame. ■ Integration Step The software caches animation data at each integration step, using the Integration Step setting as specified in the Use At setting 2940 | Chapter 14 Space Warps and Particle Systems (see above). If Use At is set to Viewport/Render, it uses lower of the two Integration Step values. For example, if Viewport is set to Half Frame, and Render to 1/8 Frame, the sampling rate would be eight per frame. ■ Every Nth Frame The software caches animation data at frame intervals specified by the N value, below. N Determines the frame interval for caching when Sampling (above) is set to Every Nth Frame. Default=5. For example, with N set to the default value of 5, the cache stores animation data for every fifth frame. Cache Test Results When caching particle data, this caches the results of test actions as well. Default=on. This is important if Cache is used as a local operator, and the next event doesn’t have a Cache operator. For the next event to work properly, it should receive particles from the current event. Those particles result from the activity of a test action. The Cache operator can record the test activity to play it back later. If the Cache operator is used as a global operator, there is no need to cache the test results. This is because the system has cache data for every event, and is able to jump to an arbitrary frame without the need for test results. Save Cache with File When on, the software Includes the cached data with scenes that you save to disk. This can significantly increase the size of saved files, but saves the time of recalculating the particle motion upon reloading the file. Default=off. Normally, the cache data is saved only in disk files that you create with the Save or Save As commands. You can also instruct the software to include cached data with other types of files using the two following options. Save Cache with Hold Saves cached data in the Hold file, created with Edit menu > Hold. Default=off. Manual Update group These controls let you update or clear the cache manually within a frame range, or clear the entire cache. Update Calculates particle motion within the current range (defined below) and stores it in the cache, replacing any existing cached data. Available only when Range is set to Active Segment or Custom. During the update, the software temporarily closes Particle View and displays a Cache Update Progress bar, while moving the time slider through the cached Particle Flow | 2941 range. At the same time, by default, the animation plays in the viewports. To prevent this, and speed calculation, turn off Update Viewports. If the cache runs out of memory during a manual update, Particle Flow halts the update operation and displays an alert. Click OK to continue, and then, if possible, increase the Limit value before updating the cache again. Clear Deletes any cached data. After you clear the cache buffer, if you go to a different frame or change any action parameters, the software automatically caches particle motion even if Update is set to Manually. Range Sets the frame range within which the Cache operator recalculates data when you click Update. Default=Active Segment. ■ Complete The software clears the cache for entire animation. Choosing Complete makes the Update button unavailable; this option is for clearing the cache only. To update the entire animation, set the active segment or the custom range to encompass all frames, and then use the corresponding choice and click Update. ■ Active Segment The software updates the cache only for frames in the active segment, as defined by the Start Time and End Time settings on the Time Configuration dialog. This is the frame range shown on the track bar. You can also change the active segment by holding down Alt+Ctrl and dragging the track bar with the left, middle, or right mouse button. ■ Custom The software updates the cache only for only frames in the custom range, as defined by the Start Time and End Time settings (see following). Start/End Time The first and last frames of the range that's updated when Range=Custom (see above). Defaults=0, 30. Update Viewports When on, the animation plays in the viewports during manual updating of the cache. Turn this off to disable playing the animation in the viewports during manual caching; this can speed up the caching process, especially with large or complex particle systems. Default=on. Memory Used (K) group The Cache operator stores data in system memory; you can specify an upper limit for the amount of memory it uses. If the Limit setting and the amount of cached data exceeds the available free memory, the computer system might 2942 | Chapter 14 Space Warps and Particle Systems use virtual (hard disk-based) memory instead, which slows down the caching. If Particle Flow fills the cache, any remaining frames are calculated on the fly. This group also lets you monitor the amount of memory used for caching data. Limit The maximum amount of system memory used to cache particle data, in kilobytes. Default=100,000, or 97.6 MB. Total The amount of memory currently used by the cached data, in kilobytes. Read-only. NOTE Even animation frames with no particles will probably consume a certain amount of cache memory. The reason for this is that the cache also stores states for randomly calculated values such as Variation, to ensure that particle activity is consistent across a rendering network, and with machines that might not have regular access to all frames. Current Frame The amount of memory used by the data cached for the current frame, in kilobytes. Read-only. Display Operator Particle View on page 2811 > Click Display in an event or add a Display operator to the particle system and then select it. The Display operator lets you specify how particles appear in the viewports. The default display mode is Ticks, which is the simplest, and thus the fastest to display. It's useful for animations that use a large number of particles. At the opposite end of the complexity spectrum is the Geometry option, which lets the software depict particles as their actual shapes. In addition, the Display operator provides a variety of simple shapes that provide fast feedback in testing animation, as well as the ability to easily distinguish among particles in different events. It also lets you set the percentage of visible particles. By default, Particle Flow automatically inserts a new Display operator in each local event you add to the system. Alternatively, you can choose Particle View > Options menu > Default Display > Global. With this option, the software automatically inserts a Display operator in new global events, but does not add one to new local events. Particles in any local event that doesn't contain a Display operator don't appear in the viewports, unless an associated global event contains a Display operator (that is, a global Display operator). If a particle is affected by multiple Display Particle Flow | 2943 operators (for example, both global and local operators) simultaneously, the software generates all viewport particle representations at the same time. See also: ■ Render Operator on page 2951 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Type Choose how particles appear in the viewports. The two-dimensional particle markers depict position only. Geometry shows how particles will actually render, in three dimensions; Lines shows speed and direction of motion; and Bounding Boxes reflects scale and orientation. In the following list, each choice's description is preceded by the number of dimensions used by each particle representation: ■ None Particles do not appear in the viewports. ■ Dots (0D) Each particle appears as a single pixel. ■ Ticks (2D) Each particle appears as a + sign. ■ Circles ■ Lines (1D) Each particle appears as a line, one pixel thick. The line's length indicates particle speed, and its orientation reflects the direction of motion. Use this option for fast, accurate feedback when experimenting with the Speed operators. (2D) Each particle appears as a small circle. 2944 | Chapter 14 Space Warps and Particle Systems TIP When using the Lines display type with the OpenGL display driver, slow-moving particles might not appear properly in the viewports. In such cases, to see all particles, add a second Display operator in the same event and set its Type to Dots. ■ Bounding Boxes (3D) Each particle appears as a bounding box. Use this option for a good representation of the final animation, at a slight cost in computational speed. ■ Geometry (3D) Each particle appears as its actual geometry. Use this option for the best representation of the final animation, at the greatest cost in computational speed. ■ Diamonds ■ Boxes ■ Asterisks (2D) Each particle appears as an asterisk (*). ■ Triangles (2D) Each particle appears as a small triangle. (2D) Each particle appears as a diamond. (2D) Each particle appears as a small square. Visible % Specifies the percentage of particles visible in the viewports. This option lets you speed up viewport redrawing by reducing the number of visible particles. Show Particle IDs When on, each particle's unique index number is visible in the viewports. Particles are numbered in the order of their birth, starting with 1 for the first particle born. [color swatch] Shows the color for particles displayed using options other than Geometry, as well as for the particle IDs. The software chooses a different color at random for each Display operator added to the system. In addition to the Type options, using different colors helps to distinguish among particles in different events. To change the color, click the color swatch and use the Color Selector dialog to choose a new color. If a system has a global Display operator, and you select its Source icon in a viewport, then you can change the color of the global Display operator from the color swatch on the Modify panel. However, changing the global Display operator's color in Particle View does not change the color of the swatch on the Modify panel. Particle Flow | 2945 NOTE When a Particle Flow source icon is selected, all of its non-selected particles, other than those shown as geometry, are colored white in the viewports. To see all assigned particle colors, deselect the particle system. Selected Choose how selected particles on page 2833 appear in the viewports. The choices are the same as for Type, above. Force Operator Particle View on page 2811 > Click a Force operator in an event or add a Force operator to the particle system and then select it. The Force operator lets you influence particle motion with one or more space warps from the Forces category. Use this operator along with different forces to simulate the effects of wind, gravity, and so on. The following force space warps work with the Force operator: ■ Displace on page 2727 ■ Drag on page 2706 ■ Gravity on page 2721 ■ Motor on page 2696 ■ PBomb on page 2712 ■ Push on page 2691 ■ Vortex on page 2701 ■ Wind on page 2724 NOTE By default, the influence of these space warps on Particle Flow particles is equivalent to their influence on the 3ds Max 2 particle systems: PArray, Super Spray, Blizzard, and PCloud. To obtain an influence on Particle Flow particles equivalent to that of the 3ds Max 1 particle systems Snow and Spray, set Influence on page 2949 to 100.0. TIP To make the particles follow a path, use the Speed By Icon operator on page 2876 and use Path Constraint to assign its icon to the path. For a procedure, see Example: To send particles along a path: on page 2877. To employ deflectors for particle dynamics, with or without the Force operator, use the Collision test on page 2960 and Collision Spawn test on page 2964. 2946 | Chapter 14 Space Warps and Particle Systems Script Wiring rollout This rollout appears in the parameters panel below the main operator rollout after you highlight the operator, right-click it, and then choose Use Script Wiring. Thereafter, a check mark appears next to the Use Script Wiring in the right-click menu, and the rollout appears whenever you highlight the operator. To turn off script wiring, choose Use Script Wiring again from the right-click menu. Script wiring lets you use a script to control parameters that you normally specify in the operator's parameters. Place a Script operator on page 2953 before the Force operator in the event, and then use it to define values in the particleFloat channel. You'll find an example script below. Use Script Float As Choose either of the following: ■ Not Used Particle Flow uses the Influence setting on page 2949 specified in the Parameters rollout. ■ Influence Particle Flow applies the script to the Influence setting. particleFloat Sample Script NOTE See this topic in the online User Reference for the particleFloat sample MAXScript code. Procedures To affect particle motion with force space warps: 1 Add one or more force space warps to the scene, and set them up as necessary. 2 In Particle View, add a Force operator to any events in which particles are to be affected by the forces. To affect particles in all events, add the Force operator to the PF Source instead. 3 Highlight the Force operator, and then use the Add or By List button to apply the force space warps to the operator. Particle Flow | 2947 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Force Space Warps group This group displays the forces currently in effect, and let you add and remove forces. [List] Shows the forces that apply to this operator. If more than three forces apply, a scroll bar appears at the right side of the list. If you delete a listed space warp from the scene, its name is replaced in the list by the entry “ ”. NOTE Particle Flow applies the forces to particle motion in the order in which the space warps appear in the list; the effect is cumulative in top-to-bottom order. First, the topmost space warp is applied to particle motion, then the second space warp is applied to the result of the first space warp, and so on. Changing the order can alter the final result. Add Click this button, and then select a force space warp in the scene to add it to the end of the list. 2948 | Chapter 14 Space Warps and Particle Systems By List Click this button, and then use the Select Force Space Warps dialog to add one or more space warps to the list. The space warps must already exist in the scene. The software adds space warps to the list in same order in which they appear in the dialog. To effect a different order, use the Add button to add them one at a time. Remove Highlight a space warp in the list, and then click this button to remove it from the list. Any removed space warps remain in the scene. Force Field Overlapping Determines how multiple forces that occupy the same volume of space affect the particles. With Additive, the forces are combined according to their relative strengths. With Maximum, only the force with the greatest strength affects the particles. For example, you might apply Wind and Gravity space warps to particles, and set their Strength parameters to 1.5 and 1.0, respectively. If you choose Additive, the Wind space warp will have approximately 50 percent more influence over the particles than the Gravity space warp. But if you choose Maximum, only the Wind space warp will affect the particles. Influence Specifies the strength with which the force or forces are applied to the particles as a percentage. Default=1000.0. A negative Influence value reverses the force effects. NOTE By default, the influence of the Force space warps on Particle Flow particles is equivalent to their influence on the 3ds Max 2 particle systems PArray, Super Spray, Blizzard, and PCloud. To obtain an influence on Particle Flow particles equivalent to that of the 3ds Max 1 particle systems Snow and Spray, set Influence=100.0. Offset Influence group Choose the time frame for applying animated parameters. For an explanation, see Animation Offset Keying group on page 2870. Sync By Choose the time frame for applying animated parameters: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Particle Flow | 2949 Notes Operator Particle View on page 2811 > Click Notes in an event or add a Notes operator to the particle system and then select it. The Notes operator lets you add a textual comment to any event. It doesn't have any direct effect on the particle system, but it helps you keep track of the overall function of each event. NOTE You can also add a comment directly to an event or action by right-clicking it and choosing Comments. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. The interface is a simple text box. Click in the box and enter your text. 2950 | Chapter 14 Space Warps and Particle Systems Render Operator Particle View on page 2811 > Click a Render operator in an event or add a Render operator to the particle system and then select it. The Render operator provides controls related to rendering particles. You can specify the form that rendered particles are to take, and how to convert the particles to individual mesh objects for rendering purposes. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Type Lets you render particles as bounding boxes or geometry, or disable the particle system at render time, or enable the particle system but prevent it from sending renderable particles to the 3ds Max renderer. Default=Geometry. ■ None The particle system (or event, if used locally) is considered non-renderable, and therefore is never evaluated during render. ■ BoundingBox Particles render as boxes whose sizes represent the particle geometry extents. Use this option with complex particle systems to speed up test renders. ■ Geometry Particles render with their actual geometry. Use this option with simpler particle systems, and for the final render. ■ Phantom Use this option when you want Particle Flow to function normally, calculating the animation at each frame, but not to render geometry directly. An example would be when you're using a Final Step Particle Flow | 2951 Update script on page 2837 to pass data from the particle system to other objects in the scene. Visible % The percentage of particles that render. Range=0 to 100. Default=100. Lower this value for faster rendering of complex particle systems. You can also reduce the number of particles in the system at render time with the Quantity Multiplier > Render setting on page 2832. Render Result group These settings determine how the system converts particles to mesh format for rendering. By default, the software renders all particles as a single mesh per event, which provides for the most efficient operation under most conditions. However, in some situations each particle should be converted to an individual mesh object by turning on Mesh Per Particle. For example, with particles each of whose face count exceeds 10,000, it's most efficient to render a mesh per particle. Alternatively, you can opt to combine particles into multiple meshes by specifying a face count and number of particles per mesh. Certain renderers might require a non-default setting for Render Result. Consult the renderer documentation for further information. NOTE The number of particles Particle Flow can handle per frame is limited only by system resources, but each single mesh is allowed a maximum of 5,000,000 faces or vertices. If the total number of faces or vertices in a mesh exceeds 5,000,000, Particle Flow ignores particles beyond this limit. Single Mesh Sends the renderer one mesh object comprising all particles in the system. Multiple Meshes Sends the renderer the specified number of mesh objects, each containing the specified number of particles. If the result of dividing the total number of particles by the Particles p/Mesh value is less than the specified Mesh Count value, some of the meshes might contain few or no faces. This is a compromise method of operation, and can be used with renderers that cannot handle all particles in a single mesh, but can deal with groups of particles of a certain size. Mesh Count The maximum number of mesh objects that Particle Flow will send to the renderer. Particles p/Mesh The number of particles that each mesh object will comprise. Mesh Per Particle Sends the renderer a separate mesh for each particle. 2952 | Chapter 14 Space Warps and Particle Systems This is the least efficient method of operation, but might be required by certain renderers. NOTE With the default scanline and mental ray renderers, this method does not support rendering of particles born after the start of the rendered frame sequence. In general, use Mesh Per Particle only with renderers that require it. Script Operator Particle View on page 2811 > Click Script Operator in an event or add a Script Operator to the particle system and then select it. The Script operator enables control of particles within the Particle Flow system using a MAXScript script. The script can use any program functionality available to MAXScript. When you add a new Script operator, it contains a default script that slows particles, and then, when they are slow enough, splits off the first 50 particles into a stream traveling in a negative direction on the world X axis, and the remainder traveling in the opposite direction. TIP You can use MAXScript to align particle scale with the underlying bitmap, thus providing a “scale bitmap” function. This requires a sandwich with three operators: two Script operators, and a Speed By Surface operator in between. The first Script operator reads the current speed vector into the MXVector channel, thus caching the current speed. The Speed By Surface operator changes the speed according to the underlying bitmap. And the second Script operator reads the speed channel into a temporary variable, restores the speed from the MXVector channel (the cached value), and uses the temporary variable to define the scale. This way, the original speed is restored, and the scale value is defined by the bitmap. Interface Particle Flow | 2953 The user interface appears in the parameters panel, on the right side of the Particle View dialog. Edit Script Click this button to open the current script in a MAXScript Editor window. For detailed information about the MAXScript utility, open the MAXScript Reference, available from Help menu > MAXScript Reference. Uniqueness group The Uniqueness setting provides a randomization seed that the script can use or ignore. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Flows The flows category contains two operators for creating initial particle system setups. These are: Empty Flow on page 2954 Standard Flow on page 2955 See also: ■ Operators on page 2841 ■ Tests on page 2956 Empty Flow Particle View on page 2811 > depot Empty Flow provides a starting point for a particle system consisting of a single global event containing a Render operator. This lets you build a system completely from scratch, without having first to delete the default operators provided by the Standard Flow system. To use Empty Flow, drag it from the depot to the event display. In Particle View, this creates a global event containing a single Render operator. If the Global default display option is active in the Particle View > Options menu, 2954 | Chapter 14 Space Warps and Particle Systems the global event will also contain a Display operator. Adding an Empty Flow also creates a Particle Flow Source icon in the viewports, at the world origin (0,0,0). NOTE If an orthogonal viewport is active when you add an Empty Flow to the system, the software orients the new source icon parallel to the plane of the active viewport, with the default emission direction pointing forward. For example, if the Front viewport is active, the icon is oriented parallel to the XZ plane in the world coordinate system, with the default emission direction along the positive Y axis. If a Camera or Perspective viewport is active, Particle Flow uses the default orientation: parallel to the XY plane, pointing in the negative Z direction. See also: ■ Standard Flow on page 2955 Standard Flow Particle View on page 2811 > depot Standard Flow provides a starting point for a particle system consisting of a global event containing a Render operator, wired to a birth event containing a Birth, a Position, a Speed, a Rotation, a Shape, and a Display operator, with all parameters set to default values. This is the same system that the software creates automatically when you add a Particle Flow icon to the viewport. To use Standard Flow, drag it from the depot to the event display. In Particle View, this creates the particle system described above. If the Global default display option is active in the Particle View > Options menu, the global event will also contain a Display operator. Adding a Standard Flow also creates a Particle Flow Source icon in the viewports, at the world origin (0,0,0). NOTE If an orthogonal viewport is active when you add a Standard Flow to the system, the software orients the new source icon parallel to the plane of the active viewport, with the default emission direction pointing forward. For example, if the Front viewport is active, the icon is oriented parallel to the XZ plane in the world coordinate system, with the default emission direction along the positive Y axis. If a Camera or Perspective viewport is active, Particle Flow uses the default orientation: parallel to the XY plane, pointing in the negative Z direction. See also: ■ Empty Flow on page 2954 Particle Flow | 2955 Tests The basic function of a test in Particle Flow is to determine whether particles satisfy one or more conditions, and if so, make them available for sending to another event. When a particle passes a test, it is said to “test True.” To send eligible particles to another event, you must wire the test to that event. Particles that don't pass the test (“test False”) remain in the event and are repeatedly subjected to its operators and tests. Or, if the test isn't wired to another event, all particles remain in the event. You can use several tests in an event; the first test checks all particles in the event, and each test after the first checks only particles that remain in the event. One test, Spawn, doesn't actually perform a test, but simply creates new particles from existing ones, and sets the new particles' test result to True so they're automatically eligible for redirection to another event. And the Send Out test simply sends all particles to the next event by default. Some tests can also serve as operators, in that they contain parameters that modify particle behavior. If you don't wire a test to another event, it functions only as an operator; the test aspect doesn't affect particle flow. TIP Always place a test at the end of its event, unless you have specific reasons for placing it elsewhere. That way, all preceding actions can take effect during each integration step before the test is evaluated. All the tests are grouped together in the Particle View depot, and are listed in alphabetical order. All test icons are the same: a yellow diamond containing a simplified diagram of an electrical switch. 2956 | Chapter 14 Space Warps and Particle Systems The Particle Flow tests in the Particle View depot The tests are: Age Test on page 2958 Collision Test on page 2960 Collision Spawn Test on page 2964 Find Target Test on page 2970 Go To Rotation Test on page 2981 Scale Test on page 2987 Script Test on page 2990 Send Out Test on page 2990 Spawn Test on page 2991 Speed Test on page 2995 Split Amount Test on page 2998 Split Selected Test on page 3000 Particle Flow | 2957 Split Source Test on page 3001 See also: ■ Operators on page 2841 ■ Flows on page 2954 Age Test Particle View on page 2811 > Click Age Test in an event or add Age Test to the particle system and then select it. Age Test lets the particle system check whether a specific amount of time has passed since the start of the animation, or how long a particle has existed, or how long a particle has been in the current event, and branch accordingly. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. The first interface element is a drop-down list that lets you choose the type of age to test. Default=Particle Age. ■ Absolute Age Tests the current frame number in the animation. 2958 | Chapter 14 Space Warps and Particle Systems ■ Particle Age Tests the current age of each particle in frames. This is the default test type. ■ Event Age Tests the current duration of the current event in frames. Test True if Particle Value Lets you specify whether the test passes particles on to the next event if the age test succeeds or fails. Default=Is Greater Than Test Value By default, Age Test returns True if the value tested for exceeds the Test Value quantity, but you can alternatively choose Is Less Than Test Value. For example, if you use the Absolute Age test type and set Test Value=60 and Variation=0, and choose Is Less Than Test Value, then particles will move to the next event only until frame 60. After frame 60, any remaining particles stay in the current event unless another test returns True. Test Value The specific frame number, particle age (in frames), or event duration (in frames) to test for. Default=30. This value cannot be animated. Variation The number of frames by which the value tested for can vary randomly. Default=5. This value cannot be animated. To obtain the actual test value for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Test Value setting. For example, if Test Value=300 and Variation=10, then tested value for each particle would be between 290 and 310. Subframe Sampling Turning this on helps avoid particle "puffing" when passing particles to the next event by testing the time at a much higher subframe resolution (that is, throughout each frame), rather than using the relatively coarse frame resolution. Default=on. "Puffing" is the effect of creating separate "puffs" or clusters of particles, rather than a continuous stream. Turn off Subframe Sampling to cause the test to be executed exactly at frame times. Uniqueness group The Uniqueness setting enables randomization of the test value variation. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Particle Flow | 2959 Collision Test Particle View on page 2811 > Click Collision in an event or add Collision to the particle system and then select it. Collision tests for particles that collide with one or more specified Deflector space warps. It can also test whether a particle has slowed down or sped up after one or more collisions, has collided more than once, and even whether it will collide with a deflector in a specified number of frames. The Collision test supports all deflector space warps except the DynaFlect deflectors: ■ POmniFlect on page 2732 ■ SOmniFlect on page 2743 ■ UOmniFlect on page 2746 ■ SDeflector on page 2751 ■ UDeflector on page 2754 ■ Deflector on page 2757 TIP When testing for collisions with multiple deflectors, for best results, place all the deflectors in a single Collision test. This tests for collisions with all the deflectors simultaneously, and helps avoid possible missed collisions. See also: ■ Collision Spawn Test on page 2964 Procedures Example: To test for particles slowing down after one or more collisions: In the real world, particles bouncing repeatedly against a surface lose kinetic energy at each collision, and slow down gradually. Rather than testing for a specific number of bounces, you can use the Is Slow After Collision(s) to test whether particle speed has sunk below a specific level. 1 Start or reset 3ds Max. Set the animation length to 500 frames. 2960 | Chapter 14 Space Warps and Particle Systems 2 Add a Gravity space warp and a Deflector space warp. Decrease the deflector's Bounce setting below 1.0, and increase the Variation and Chaos values above 0.0. Set the deflector's Width and Length to 500. 3 Create a default Particle Flow system. Position the emitter directly above the deflector. 4 Add a Force operator on page 2946 to the end of Event 01 and add the Gravity space warp to the Force operator. 5 Create a new event with a Display operator on page 2943, and change the display type to a different choice than is used in Event 01. 6 Add a Collision test to Event 01, below the Force operator, and wire it to the new event. 7 In the Collision test settings, add the deflector. Choose Is Slow After Collision(s), and set Speed Min=100 (assuming you're using the default initial speed of 300). 8 Play the animation. You might need to adjust one or more settings before seeing the expected behavior. After several bounces, the particles change in appearance and move steadily away from the deflector, indicating that they've entered the second event. Of course, you can set any behavior you like in this event. In the next step, you'll see what happens when actions in an event are not in the right order. 9 In Event 01, move the Collision test above the Force operator, and then play the animation. Quite a few particles leak through the deflector. This happens because the software first tests the particles for a collision, and then applies the Gravity force. The particles that are approaching the deflector and are very close to it are being tested for a collision, which tests False because they haven't actually struck the deflector yet. The software then applies the gravity, which pushes them past the deflector, making them no longer eligible for testing for collision. Generally speaking, it is best to keep Force operators above Collision tests in each event to ensure that particles don't leak through the deflector. Particle Flow | 2961 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Deflectors group This group displays the deflectors currently in effect, and let you add and remove deflectors. [list] Shows the deflectors that apply to this operator. If more than three deflectors apply, a scroll bar appears at the right side of the list. If you delete a listed space warp from the scene, its name is replaced in the list by the entry “ ”. 2962 | Chapter 14 Space Warps and Particle Systems Add Click this button, and then select a Deflector space warp in the scene to add it to the list. By List Click this button, and then use the Select Deflectors dialog to add one or more space warps to the list. The space warps must already exist in the scene. Remove Highlight a deflector in the list, and then click this button to remove it from the list. Any removed space warps remain in the scene. Test True If Particle group Choose the condition under which the test will pass particles on to the next event, and then adjust the associated setting or settings. Default=Collides. Collides Choose this option, and then set Speed according to how particle speed should be affected by the collision. Speed Choose one of the following. Default=Bounce. ■ Bounce The speed and direction after collision is determined by the deflector properties. ■ Continue ■ Stop ■ Random Particle speed and direction are unaffected by the collision. Particle speed is set to 0 after the collision. Particles bounce off the deflector in random directions. Is Slow After Collision(s) The test succeeds if, after collision, particle speed is less than the Speed Min value. With this choice, particle behavior with respect to the deflector(s) is the same as with the Collides > Bounce option. Speed Min Particles traveling at less than this speed, in system units per second, test True and become eligible for moving to the next event. Default=1.0. Is Fast After Collision(s) The test succeeds if, after collision, particle speed is greater than the Speed Max value. With this choice, particle behavior with respect to the deflector(s) is the same as with the Collides > Bounce option. Speed Max Particles traveling faster than this speed, in system units per second, test True and become eligible for moving to the next event. Default=1000.0. Particle Flow | 2963 Collided Multiple Times The test becomes True after a particle collides a specific number of times. The particle is moved to the point of the last collision and then redirected to the next event. # Times The number of times a particle must collide in order to test True. Speed Determines speed and direction after the specified number of collisions. See above for explanations of the choices. Will Collide The software extrapolates particle motion in a linear fashion, based on the current direction and speed, and the test becomes True if the results suggest that the particle will collide with the deflector during a specified time interval. The particle is redirected to the next event without updating its speed or position. # Frames The number of frames ahead during which the software looks for an impending collision. Uniqueness group The Uniqueness setting enables randomization of the Random options in the Speed drop-down lists. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Collision Spawn Test Particle View on page 2811 > Click Collision Spawn in an event or add Collision Spawn to the particle system and then select it. Collision Spawn creates new particles from existing ones that collide with one or more Deflector space warps. You can specify different post-collision behavior for the colliding particles and their offspring. Each spawned particle is born at the same location as its parent, and has the same orientation and shape. Collision Spawn can give the spawned particles a different speed and scaling factor. If you wire the Collision Spawn test to another event, spawned particles are sent to that event, where you can specify different properties for the new particles. Examples of Collision Spawn usage include marks or explosions resulting from collisions between particles and objects. To achieve these effects, you can use Collision Spawn in conjunction with the Shape Mark on page 2911 and Shape Facing on page 2901 operators. 2964 | Chapter 14 Space Warps and Particle Systems The Collision Spawn test supports all deflector space warps except the DynaFlect deflectors: ■ POmniFlect on page 2732 ■ SOmniFlect on page 2743 ■ UOmniFlect on page 2746 ■ SDeflector on page 2751 ■ UDeflector on page 2754 ■ Deflector on page 2757 TIP When testing for collisions with multiple deflectors, for best results, place all the deflectors in a single Collision Spawn test. This tests for collisions with all the deflectors simultaneously, and helps avoid possible missed collisions. See also: ■ Collision Test on page 2960 ■ Spawn Test on page 2991 Particle Flow | 2965 Interface 2966 | Chapter 14 Space Warps and Particle Systems The user interface appears in the parameters panel, on the right side of the Particle View dialog. In the context of Collision Spawn, a parent is the original particle from which new particles are spawned. Test True for group These check boxes let you specify which particles, if any, should become eligible for redirection to the next event upon satisfaction of the test conditions. NOTE After a particle tests True, the Collision Spawn test no longer tests the particle for collision. If you simply want particles to spawn every time they collide, turn either or both of these off and use a different test for redirection. Parent Particles When on, parent particles qualify for redirection when the test conditions are met. Default=on. When using the Spawn On First Collision option on page 2968, Parent Particles is available only when Delete Parent is off. This option is also available when using the Spawn On Each Collision option on page 2968. In this case, parent particles test True only after colliding the number of times specified by the Until # value. Spawn Particles When on, spawned particles qualify for redirection when the test conditions are met. Default=on. Deflectors group This group displays the deflectors currently in effect, and let you add and remove deflectors. [list] Shows the deflectors that apply to this operator. If more than three deflectors apply, a scroll bar appears at the right side of the list. If you delete a listed space warp from the scene, its name is replaced in the list by the entry “ ”. Add Click this button, and then select a Deflector space warp in the scene to add it to the list. By List Click this button, and then use the Select Deflectors dialog to add one or more space warps to the list. The space warps must already exist in the scene. Particle Flow | 2967 Remove Highlight a deflector in the list, and then click this button to remove it from the list. Any removed space warps remain in the scene. Spawn Rate And Amount group Use these settings to specify when particles are to spawn and other values related to how many particles are spawned. Spawn On First Collision Particles spawn only the first time they collide with a deflector. Delete Parent When on, deletes each original particle from which a new one is spawned. Available only with the Spawn On First Collision option. Spawn On Each Collision Particles spawn on each of multiple collisions, up to a limit specified with the Until # parameter. Until # The maximum number of collisions by the parent particles that produce spawned particles. Available only with the Spawn On Each Collision option. Default=3. When Test True For > Parent Particles is on, parent particles test True only after colliding the number of times specified by the Until # value. Spawnable The percentage of particles in the current event that will spawn new particles. This is determined once for each particle, when it enters the event. However, the parameter is animatable. Default=100.0. For values other than 100.0, Spawnable uses a randomized selection process, which is affected by the Uniqueness Seed value. For example, with five parent particles, Offspring #=1, and Spawnable=80.0, you might get any number of spawned particles between two and five for each collision. The average per spawning would be four, however. Offspring # The number of new particles the system creates from each parent particle for each spawning event. Default=1. Variation The amount by which the Offspring # value can vary randomly. Default=0.0. To obtain the actual test value for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then applies the result as a percentage of the Offspring # setting. For example, if Offspring #=20 and Variation=10, then the actual number of offspring for each particle would be between 18 and 22. 2968 | Chapter 14 Space Warps and Particle Systems Sync By Choose the time frame to use when animating Offspring # and Variation: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. ■ Restart Particle Age When on, sets the age of each newly spawned particle at 0. When off, each spawned particle inherits its parent's age. Default=on. Speed group Lets you specify the behavior of spawned particles, as well as their speed in absolute terms or relative to the parents' speed, with optional random variation. The direction of a spawned particle is always in relation to that of its parent, but you can set a Divergence so they eventually spread out. Default=Inherited. Parent Specify the parent's behavior. Available only when Delete Parent is off. ■ Bounce The speed and direction after collision is determined by the deflector properties. ■ Continue Particle speed and direction are unaffected by the collision. Offspring Specify the behavior of the newly spawned particles. ■ Bounce The speed and direction of offspring after collision is determined by the deflector properties. ■ Continue Speed and direction of offspring are unaffected by the collision. In Units Choose this to specify the speed of spawned particles in system units per second. Default=100.0. A positive value inherits the parent's direction; a negative value reverses it. Inherited Choose this to specify each spawned particle's speed as a percentage of its parent's speed. Default=100.0 A positive value inherits the parent's direction; a negative value reverses it. Variation The amount by which a spawned particle's speed can vary randomly. Default=0.0. Particle Flow | 2969 To obtain the actual speed for each spawned particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the particle's speed as specified or inherited. For example, if a particle's speed is 100 units/second and Variation=20, then the tested value for each particle would be between 80 and 120 units/second. Divergence When on, spreads out the stream of spawned particles. Use the numeric setting to define the extent of the divergence in degrees. Range=0 to 180. Default=0. Size group Scale Factor The amount of uniform scaling to apply to each spawned particle, as a percentage of its parent's size. Default=100.0. Variation The amount by which a spawned particle's scale can vary randomly. Default=0.0. To obtain the actual scaling for each spawned particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Scale Factor value. For example, if Scale Factor=100 and Variation=20, then each spawned particle would be between 80 and 120 percent of its parent's size. Uniqueness group The Uniqueness setting enables randomization of the Spawnable result, when less than 100.0, as well as of the Variation values. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Find Target Test Particle View on page 2811 > Click Find Target in an event or add Find Target to the particle system and then select it. Select a Find Target icon in the viewport. > Modify panel > Parameters rollout Create panel > Helpers > Particle Flow > Find Target By default, Find Target sends particles to a specified target or targets. Upon reaching a target, the particles become eligible for redirection to another event. You can specify that the particles should use a particular speed or time frame 2970 | Chapter 14 Space Warps and Particle Systems in moving toward the target. You can also specify where on the target the particles should go. Alternatively, you can use Find Target as a simple proximity test: If a particle comes within a certain distance of its target, it becomes eligible for redirection to the next event. Find Target icon When you add a Find Target test to the particle system in Particle View on page 2811, a spherical Find Target icon appears in the scene at the world origin (0,0,0). You can use this icon as a target, or you can use one or more mesh objects in the scene as targets. To display the Find Target parameters on the Modify panel, select the icon. If you delete the icon, the software also deletes the test. NOTE If you add Find Target from the Create panel, Particle Flow creates a separate event for the test in the particle diagram. TIP In a particle loop, all particles end up at their respective starting positions, enabling seamless repetition of the resulting animation. You can make particle loops with Particle Flow using a Script operator and a Find Target operator. At the start of the loop, the Script operator should read all particle positions and write them into the MXS Vector channel. Then, at the end of the loop, set the Find Target operator to Control by Time, set Timing to Absolute Time, set Time to the end of the loop, and in the Target group, set Point to By Script Vector. Particle Flow will direct particles to the previously cached position at the specified frame. Particle Flow | 2971 Script Operator Example NOTE See this topic in the online User Reference to view the script operator sample MAXScript code. 2972 | Chapter 14 Space Warps and Particle Systems Interface Particle Flow | 2973 The user interface appears in the parameters panel, on the right side of the Particle View dialog. Control By ... The drop-down list at the top of the parameters panel lets you choose whether to send particles to a target by specifying the speed and acceleration, or by specifying the amount of time they should take. Alternatively, by choosing No Control, you can test particles' distance from a target. ■ Control By Speed Specify speed and acceleration settings for the particles to follow while traveling to the target. Use the Control By Speed group to set the parameters. ■ Control By Time Specify time-based settings for the particles to follow while traveling to the target. Use the Control By Time group to set the parameters. ■ No Control With this option, Find Target functions only as a proximity test. When a particle comes within the specified distance of the target, the particles become eligible for redirection to the next event. NOTE When you choose No Control, the Find Target test does not affect particle speed or direction. Test True If Distance To group These settings let you choose which distance the Find Target test measures and specify the measured distance. You can choose Target Pivot or Target Point, and specify a distance with the Is Less Than setting. Target Pivot Measures the distance between the particle and the target pivot. If the particles are directed to the outside of the target and the Is Less Than value is small, this condition might never be satisfied. Target Point Measures the distance between the particle and the target point on page 2978. Is Less Than When particles are closer than this distance from target pivot or point, they test True and become eligible for redirection to the next event. Measured in scene units. NOTE If you set Is Less Than to 0, the particles might never test True. This might be desirable for an animation of, for example, bees buzzing around a flower but not landing on it. In this case, you might want to use a low value for Accel Limit so the bees don’t circle too close to the flower. 2974 | Chapter 14 Space Warps and Particle Systems Control By Speed group Use these settings to specify speed and acceleration parameters when using Control By Speed or Speed Then Time. This group is available only when using Control By Speed. Use Cruise Speed When on, the software gives you explicit control over particle speed and speed variation. When off, the software calculates particle speed automatically using the Accel Limit value. Default=on. Speed Particle speed in scene units per second. Default=300.0. Variation The amount by which the actual Speed value can vary randomly. Default=0.0. To obtain the actual speed for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then applies the result as a percentage of the Speed setting. For example, if Speed=200 and Variation=10, then the actual speed for each particle would vary randomly between 190 and 210. Accel Limit Sets the acceleration limit. This value impacts the inertia and speed of the particles. Default=1000.0. The default acceleration limit value is based on the default Speed value of 300.0. If you change the Speed value, it is recommended that you also change the Accel Limit value proportionately. TIP Use a lower Accel Limit value for smooth motion, and a higher value when greater accuracy is needed, such as when the particles should hit a small target. You can animate this setting (use Sync By > Event Duration) to specify different appropriate values, depending on the required results. Ease In % Controls the rate by which particles slow down when it approaches the target point. The software calculates the final speed with this formula: (100% - Ease In) * Speed. Therefore, if the Ease In value is 100%, a particle should approach the target with a speed of 0, and if Ease In is 0%, the particle doesn't slow down at all when approaching the target. At intermediate values, the speed is calculated according to the distance to the target point, as linear interpolation between the initial (cruise) speed, and the final speed. When a particle enters the event, the distance to the target point is calculated and later used for the interpolation. Default=0.0. Particle Flow | 2975 Sync By Choose the time frame to use when animating Speed, Variation, and Accel Limit: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Control By Time group Lets you specify the amount of time particles should take to reach the target. This group is unavailable when using Control By Speed. Timing Determines how the software applies the specified timing, defined by the Time and Variation values. The possible options are: ■ Absolute Time Time refers to the overall time of the system. Each particle will reach its target at the frame number specified by Time. ■ Particle Age Time refers to the time elapsed since the birth of the particle. Each particle will reach its target when its age reaches the value specified by Time. ■ Event Duration Time refers to the time elapsed since the particle entered the current event. Each particle will reach its target when it has been in the current for the number of frames specified by Time. Time The number of frames particles should take to reach the target. Default=60. 2976 | Chapter 14 Space Warps and Particle Systems Variation The number of frames by which Time can vary randomly. Default=5. To obtain the actual time to the target for each spawned particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Time value. For example, if Time=60 and Variation=20, then the time to target for each particle would be between 40 and 80 frames. Subframe Sampling Turning this on helps avoid particle "puffing" by timing particles at a much higher subframe resolution (that is, throughout each frame), rather than using the relatively coarse frame resolution. Default=on. "Puffing" is the effect of clustering particles, rather than producing a continuous stream. This effect is especially noticeable when the emitter is animated. Use Docking Speed Lets you specify particles' speed when they reach the target. A particle might be required to reach the target from a specific direction at a specific speed. When Use Docking Speed is off, the software calculates a path for particles to reach the target in the shortest distance with the least acceleration along the path. When Use Docking Speed is on, the software calculates particles' final speed when they reach the target using the Speed and Variation parameters. Therefore if you want a “smooth landing,” set Speed to 0.0. Default=off. Speed The speed of particles when they reach the target in scene units per second. Default=100.0. Variation The amount by which the actual Speed value can vary randomly. Default=0.0. Target group By default, Find Target uses its own target icon, but you can use these controls to designate other scene objects as targets instead. Icon Use the Find Target icon as the target. Each Find Target test has its own target icon. Even if you don't use it as a target, it still influences particle behavior if you set the docking type to Parallel, Spherical, or Cylindrical. Mesh Objects Use one or more scene mesh objects as targets. Choose this to make the list and list-management buttons available. If you designate more than one target, the target used by each particle is determined by the choice in the Object drop-down list on page 2979 in this group. Particle Flow | 2977 [list] Shows the mesh objects used as targets. If more than three target objects apply, a scroll bar appears at the right side of the list. Add Click this button, and then select a mesh object in the scene to add it to the list as a target. By List Click this button, and then use the Select Target Objects dialog to add one or more mesh objects to the list. The objects must already exist in the scene, and the dialog shows only eligible objects. Remove To remove a target object from the list, first highlight it and then click this button. Any removed objects remain in the scene. Sync By Choose the time frame to use when sending particles toward animated objects when using Animated Shape or Follow Target Animation: ■ Absolute Time immediately. Animation derived from the target is applied to particles ■ Particle Age Animation derived from the target is applied to particles at the corresponding frames of each particle's existence. ■ Event Duration Animation derived from the target is applied to particles is applied to each particle starting when it first enters the event. Animated Shape Turn on to allow particles to target the surface of an object whose form is animated by scaling, by morphing, or with modifiers. This requires more computation, because the destination must be updated at every integration step. Follow Target Animation Turn on to allow particles to follow a moving target; that is, a target whose location is animated. This requires more computation, because the destination must be updated at every integration step. Point Lets you specify where on its target a particle should land. ■ Random Each particle targets a random point on the target. ■ Closest Surface surface. ■ By Script Vector The target point or points are defined using a Script operator that defines values in the particleVector channel. The Script operator can be anywhere upstream of the Find Target test. Each particle targets the nearest point of the target’s 2978 | Chapter 14 Space Warps and Particle Systems NOTE When using By Script Vector to target absolute positions, such as vertex locations, be sure to set Target to Icon. If you set it to Mesh, the positions specified by the script will be relative to the position of the mesh object. This latter option is useful for placing scripted targets on the surface of a moving object. Object With multiple mesh targets, lets you specify how the software should choose among them. Available only when targeting more than one object. ■ Random For each particle, the software chooses a target object at random. ■ Closest Pivot For each particle, the software chooses as its target the object whose pivot is nearest to the particle. ■ Closest Surface For each particle, the software chooses as its target the object whose surface is nearest to the particle. ■ Least Deviation For each particle, the software chooses as its target the object that requires the least change in its current direction (or resteering) to reach. ■ By Script Integer For each particle, the choice of a targeted object is defined by a script operator that sets an index. This index corresponds to a target-object entry position in the target list. See Script Operator Example on page 2972. Lock On Target Object When on, the software calculates each particle's target object once: when the particle enters the event. Thereafter, the particle is “locked on” to its target object. When off, the software can continually recalculate the target object for each particle. Available only when multiple target objects are designated. For example, if you set particles to target the closest surface, due to the target animation and particle movement, the definition of the closest surface is constantly changing. Thus the particle may change the target object due to the circumstances. NOTE Each time Find Target sets a target object, it “locks on” to a specific point on that object. This point can change only if the target object changes. Thus, with a single target object, the target point always remains constant relative to the target object. That is, if the target object or its surface is animated, and Follow Target Animation or Animated Shape is on, the absolute coordinates of the target point may change. Particle Flow | 2979 NOTE When Lock On Target Object is off, more calculation is required because the system might have to recalculate each particle's optimal target point in each frame. Docking Direction group Docking type Lets you specify from which direction particles should approach targets. ■ None Specified No docking constraints. Particles reach their targets in the most efficient way, based on their assigned parameters and their current attributes. ■ Along Icon Arrow arrow. The final direction is the same as the Find Target icon NOTE When using this option, arrows appear on the Find Target icon to indicate the direction particles will use for docking. You can change the docking direction by reorienting the icon. This applies even when using mesh objects as targets. ■ Icon Spherical icon. The final direction points toward the center of the operator NOTE When using this option, arrows appear on the Find Target icon to indicate the directions particles will use for docking. You can change the docking directions by reorienting the icon. This applies even when using mesh objects as targets. ■ Icon Cylindrical The final direction points toward the icon arrow as a line, thus forming a cylindrical field with the arrow as the cylinder's main axis. NOTE When using this option, arrows appear on the Find Target icon to indicate the directions particles will use for docking. You can change the docking directions by reorienting the icon. This applies even when using mesh objects as targets. ■ Surface Normals Each particle reaches its target point from a direction perpendicular to the surface at that point. 2980 | Chapter 14 Space Warps and Particle Systems NOTE When using this option, arrows appear on the Find Target icon to indicate that particles will use surface normals for docking; the actual directions they will use depends on the target surface. This applies even when using mesh objects as targets. Distance The distance from the target at which particles begin docking behavior. This includes the docking direction, and, when using Control By Time, the docking speed. Icon Size Set the size of the Find Target icon. This affects particle behavior when using the icon as the target. Color Coordinated When on, the Find Target icon uses the color of the event containing the test as defined by its local Display operator, if one exists. This applies even if the Display operator is turned off. When off, the Find Target icon uses the default Test Gizmos color as defined in Customize User Interface > Colors > Particle Flow. Default=on. Turn on Color Coordinated to make it easier to spot the Find Target icon, because the particles in the event use the same color as the icon. Uniqueness group The Uniqueness setting enables randomization of the Random options and the Variation options. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Go To Rotation Test Particle View on page 2811 > Click Go To Rotation in an event or add Go To Rotation to the particle system and then select it. The Go To Rotation test enables a smooth transition in the rotational component of a particle, so that the particle can gradually rotate to a specific orientation over a specific period. An example of its usage would be with falling leaves, which spin chaotically as they fall, but land on a flat side rather than an edge. The test aspect lets you direct the particle to a new event when the transition period ends. To set a target orientation, place the Go To Rotation test before an orientation-type operator (Rotation on page 2861 or a Script operator on page Particle Flow | 2981 2953 if it defines the rotation channel) in the same event. In this situation, the Go To Rotation test can grab the particle rotational component before the orientation-type operator overwrites it. The Go To Rotation operator modifies the particle orientation and spinning in the post-evaluation cycle. For an example, see the procedure below. WARNING The Go To Rotation test is not compatible with the Spin, Shape Facing, and Shape Mark operators. Do not use any of these operators in the same event with a Go To Rotation test. NOTE You can define the transition period only in terms of time. You cannot set the test to come to a specific rotation by the time of another test, such as a collision test. Also, limited control is provided over the axis of spinning when a particle comes to the final rotation. Procedures Example: To make falling particles land smoothly, face up: This procedure assumes a basic knowledge of Particle Flow usage. 1 In the Perspective viewport, add a Particle Flow system and raise its icon about 80 units on the Z axis. 2 In Event 01, make the following changes: ■ Birth > Amount=50 ■ Speed=100 ■ Shape=Cube (or use Shape Instance with a custom object, such as a coin-shaped cylinder) ■ Display > Type=Geometry This reduces the number of particles and slows them down, making it easier to see what's going on. 3 Add a Spin operator on page 2863 to Event 01, and set both Spin Rate and Variation to 150. This gives the particles random spinning behavior as they fall. 4 Add an Age test to the end of Event 01, and set Test Value=15. This allows each particle to fall and tumble for 15 frames before Go To Rotation takes effect. 2982 | Chapter 14 Space Warps and Particle Systems 5 From the Depot, drag a Go To Rotation test to an empty area in Event Display. Set Duration=15 and keep all other default settings. 6 Insert a Rotation operator immediately after the Go To Rotation test. Choose Random Horizontal as the orientation matrix. Keep the other default settings. The Go To Rotation test will use this as the final orientation for the particles. 7 Use a Speed event to create a third event. Set Speed=0.0. This stops the particles at the end of the animation. 8 In both new events, set Display > Type=Geometry. 9 Wire the Age Test in Event 01 to Event 02, and then wire the Go To Rotation test in Event 02 to Event 03. 10 Play the animation. The particles tumble chaotically as they fall for about 30 frames, and then come to a smooth stop, facing up. Particle Flow | 2983 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Test True When group Transition Period Ends When on, the particles test True at the end of the specified transition period, and become eligible for redirection to the next event. When off, particles will not go to the next event, even if wired. Turn off to disable the test aspect of Go To Rotation. Default=on. Transition By group Determines how the software applies the specified timing, defined by the Time and Variation values. Default=Event Duration. 2984 | Chapter 14 Space Warps and Particle Systems The possible options are: ■ Absolute Time Time refers to the overall time of the system. Each particle will reach its target orientation at the frame number specified by Time. ■ Particle Age Time refers to the time elapsed since the birth of the particle. Each particle will reach its target orientation when its age reaches the value specified by Time. ■ Event Duration Time refers to the time elapsed since the particle entered the current event. Each particle will reach its target orientation when it has been in the current for the number of frames specified by Time. Duration The number of frames particles should take to reach the target orientation. Default=30. Variation The number of frames by which Duration can vary randomly. Default=0. To obtain the actual time to the target orientation for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Duration value. For example, if Duration=60 and Variation=20, then the time to target orientation for each particle would be between 40 and 80 frames. Target Rotation group When you use an orientation-type operator with Go To Rotation, this setting lets you determine whether the test sets the target orientation on a one-time or ongoing basis. Default=Constant. Constant Defines that the orientation-type operator sets a constant orientation for a particle. For example, when using a Rotation operator set to an orientation matrix other than Speed Space Follow, the Go To Rotation operator would acquire the target orientation only once, and then use it as its goal. Changing Defines that the orientation-type operator sets a changing rotation for a particle. At each frame the desirable final rotation may be different. For example, if you use the test with a Rotation operator set to Speed Space Follow, the test will adjust the particle rotation constantly to aim at the changing final rotation. Particle Flow | 2985 Target Rotation Spin group Defines the angular velocity for each particle when it reaches the target orientation. Match Initial Spin Sets the angular velocity at the end of the transition period to the same as the angular velocity when particle enters the event. NOTE The axis of rotation might still be different, because it is calculated on the fly to let the particle come to the target orientation. Spin Rate Defines each particle's angular velocity, in degrees per second, when it reaches the target orientation. Available only when Match Initial Spin is off. Default=0.0. For a smooth transition to the target orientation, set to 0.0. Variation Defines a random variation in the Spin Rate value when a particle reaches the target orientation. Default=0.0. To obtain the final angular velocity for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Spin Rate value. For example, if Spin Rate=6.0 and Variation=1.0, then the final angular velocity for each particle would be between 5.0 and 7.0 degrees per second. Ease In % Defines a curve in achieving the final spin rate. Default=0.0 When set to 0.0, the test produces a linear interpolation between the initial and final spin rate, and when set to 100.0, the final spin rate is achieved earlier. For the smoothest approach to the target orientation, set Spin Rate and Variation to 0.0, and Ease In to 100.0. Transition End group Stop Spinning When on, halts particle rotation when it reaches the target orientation. Default=on. Even with Spin Rate spinner set to 0.0, we recommend that you keep this check box on to avoid slow spinning at the end, due to computational averaging and marginal errors. Uniqueness group The Uniqueness setting enables randomization of the Variation options. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. 2986 | Chapter 14 Space Warps and Particle Systems Scale Test Particle View on page 2811 > Click Scale Test in an event or add Scale Test to the particle system and then select it. Scale Test lets the particle system check particle scaling, or particle size before or after scaling, and branch accordingly. The test provides a variety of axis options for measuring scale or size. You can use this test to cause a change in behavior based on size. For example, a bubble could grow to a certain size, and then pop. Or an object could shrink in size until it falls under the influence of a force, like wind. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Particle Flow | 2987 Type Choose the type of measurement to test. You can test actual scaling, or the size before or after scaling. Default=Scale. For example, if the X-axis size of a particle's bounding box starts out at 10 system units, and you then use the Scale operator to scale it by 150% on the X axis, the pre-scale size is 10, and the post-scale size is 15. And, of course, the scale is 150. NOTE The software measures particle size based on each particle’s bounding-box dimensions in the particle's local coordinate space. With the low-polygon Shape options Tetra and Sphere, the result of this measurement might not be the same as the Shape operator’s Size value. ■ PreScale Size Tests the size before scaling. ■ PostScale Size Tests the size after scaling. ■ Scale Tests the scaling percentage. Axis Choose the axis to measure. Default=Average. ■ Average Obtains an average measurement by adding the sizes on all three axes and then dividing by three. ■ Minimum ■ Median Uses the middle dimension in order of size. For example, if the particle dimensions are X=5, Y=6, Z=12, then the number compared to Test Value would be 6. ■ Maximum ■ X/Y/Z Uses the smallest dimension. Uses the largest dimension. Uses the specified dimension. Test True if Particle Value Lets you specify whether the test passes particles on to the next event if the speed test succeeds or fails. Available for all tests except True When Accelerates/Decelerates. Default=Is Greater Than Test Value. By default, Scale Test returns True if the value tested for exceeds the Test Value quantity, but you can alternatively choose Is Less Than Test Value. For example, if you set Type to Scale and set Test Value=150 and Variation=0, and choose Is Less Than Test Value, a particle will move to the next event only when its scaling factor is less than 150%. Size group These settings are available when Type is set to PreScale Size or PostScale Size. 2988 | Chapter 14 Space Warps and Particle Systems Test Value The specific size to test for. Default=10.0. Variation The amount by which the value tested for can vary randomly. Default=0.0. To obtain the actual test value for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Test Value setting. For example, if Test Value=10 and Variation=5, then the tested value for each particle would be between 5 and 15. Scale group These settings are available when Type is set to Scale. Test Value The specific scaling factor to test for. Default=100%. Variation The amount by which the value tested for can vary randomly. Default=0.0%. To obtain the actual test value for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Test Value setting. For example, if Test Value=100% and Variation=10%, then the tested value for each particle would be between 90% and 110%. Test Value Offset Keying group Sync By Choose the time frame to use when animating Test Value and Variation: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Uniqueness group The Uniqueness setting enables randomization of the test value variation. Available only when either Variation value exceeds 0.0. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Particle Flow | 2989 Script Test Particle View on page 2811 > Click Script Test in an event or add a Script Test operator to the particle system and then select it. Script Test lets you test particle conditions using a MAXScript script. The script can use any program functionality available to MAXScript. The default test script tests for the presence of all particles within a spherical volume of radius 20. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Edit Script Click this button to open the current script in a MAXScript Editor window. For detailed information about the MAXScript utility, open the MAXScript Reference, available from Help menu > MAXScript Reference. Uniqueness group The Uniqueness setting provides a randomization seed that the script can use or ignore. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Send Out Test Particle View on page 2811 > Click Send Out in an event or add Send Out to the particle system and then select it. 2990 | Chapter 14 Space Warps and Particle Systems The Send Out test simply sends all particles to the next event, or, conversely, keeps all particles in the current event. Use Send Out when you simply want to send particles to another event without any conditions. TIP You can temporarily convert any test to Send Out. To specify that a test should send all particles out without any conditions, click the left side of its icon in Particle view; the icon changes to a green light bulb to indicate that all particles automatically test True. Or, if you click the right side of the icon, it changes to a red light bulb, indicating that all particles test False and thus will stay in the current event. To revert to the test's original function, click its icon again. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Test True For Lets you specify whether the test passes all particles on to the next event or keeps them in the current event. Default=All Particles. ■ All Particles All particles are passed on to the next event. ■ No Particles All particles are retained in the current event. Spawn Test Particle View on page 2811 > Click Spawn in an event or add Spawn to the particle system and then select it. Spawn creates new particles from existing ones. Each spawned particle is born at the same location as its parent, and has the same orientation and shape. Spawn can give the spawned particles a different speed and scaling factor. If you wire the Spawn test to another event, spawned particles are sent to that event, where you can specify different properties for the new particles. Spawn is a test only in that it sends the spawned particles to another event (if wired); it doesn't actually test any properties. All particles that encounter Spawn are immediately affected by it. Thus, if you want particles to spawn based on the results of a test, use a different test that branches to an event Particle Flow | 2991 containing the Spawn. In such a case, you might want to then send the spawned particles to yet another event, or the particles will continually respawn. Alternatively, to spawn particles after a collision, use Collision Spawn Test on page 2964. See also: ■ Collision Spawn Test on page 2964 Interface 2992 | Chapter 14 Space Warps and Particle Systems The user interface appears in the parameters panel, on the right side of the Particle View dialog. In the context of Spawn, a parent is the original particle from which new particles are spawned. Spawn Rate And Amount group Use these settings to specify how often particles are to spawn, the measurement system to use, and other values related to how many particles are spawned. Once Particles spawn one time only. For each existing particle, one new one is born. Delete Parent When on, deletes each original particle from which a new one is spawned. Available only with the Once option. Per Second Lets you specify a number of particles to spawn every second. For example, if you use the default Rate setting of 10.0, at 30 fps a new particle is born every three frames. Rate The number of particles to spawn per second. Available only with the Per Second option. By Travel Distance Lets you spawn new particles at regular intervals over the path of a moving parent particle. Step Size The system spawns a new particle every time the parent moves this distance, in system units. Spawnable The percentage of particles in the current event that will spawn new particles. This is determined once for each particle, when it enters the event. However, the parameter is animatable. Default=100.0. For values other than 100.0, Spawnable uses a randomized selection process, which is affected by the Uniqueness Seed value. For example, with five parent particles, Offspring #=1, and Spawnable=80.0, you might get any number of spawned particles between two and five. The average per spawning would be four, however. Offspring # The number of new particles the system creates from each parent particle for each spawning event. Default=1. Variation The amount by which the Offspring # value can vary randomly. Default=0.0. To obtain the actual test value for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then applies the result as a percentage of the Offspring # setting. For example, if Offspring Particle Flow | 2993 #=20 and Variation=10, then the actual number of offspring for each particle would be between 18 and 22. Sync By Choose the time frame to use when animating Rate, Step Size, Offspring #, and Variation: ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Restart Particle Age When on, sets the age of each newly spawned particle at 0. When off, each spawned particle inherits its parent's age. Default=on. Speed group Lets you specify the speed of spawned particles in absolute terms or relative to the parents' speed, with optional random variation. The direction of a spawned particle is always in relation to that of its parent, but you can set a Divergence so they eventually spread out. Default=Inherited. In Units Choose this to specify the speed of spawned particles in system units per second. Default=100.0. A positive value inherits the parent's direction; a negative value reverses it. Inherited Choose this to specify each spawned particle's speed as a percentage of its parent's speed. Default=100.0 A positive value inherits the parent's direction; a negative value reverses it. Variation The amount by which a spawned particle's speed can vary randomly. Default=0.0. To obtain the actual speed for each spawned particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the particle's speed as specified or inherited. For example, if a particle's speed is 100 units/second and Variation=20, then the tested value for each particle would be between 80 and 120 units/second. Divergence When on, spreads out the stream of spawned particles. Use the numeric setting to define the extent of the divergence in degrees. Range=0 to 180. Default=0. 2994 | Chapter 14 Space Warps and Particle Systems Size group Scale Factor The amount of uniform scaling to apply to each spawned particle, as a percentage of its parent's size. Default=100.0. Variation The amount by which a spawned particle's scale can vary randomly. Default=0.0. To obtain the actual scaling for each spawned particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Scale Factor value. For example, if Scale Factor=100 and Variation=20, then each spawned particle would be between 80 and 120 percent of its parent's size. Uniqueness group The Uniqueness setting enables randomization of the Spawnable result, when less than 100.0, as well as of the Variation values. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Speed Test Particle View on page 2811 > Click Speed Test in an event or add Speed Test to the particle system and then select it. Speed Test lets the particle system check particle speed, acceleration, or the rate of circular travel, and branch accordingly. The test provides a number of variants that let you test speed or acceleration on specific axes, or simply whether the particle is accelerating or decelerating. Particle Flow | 2995 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. The first interface element is a drop-down list that lets you choose the type of measurement to test: ■ Velocity Magnitude Tests the particle velocity, in system units per second, without consideration of direction. This is the default test type. ■ Velocity X/Y/Z Tests the particle velocity on the specified axis, in system units per second, using the world coordinate system. An example of this option would be with fireworks: As the particles move upward, their velocity on the world Z axis is positive. When the reach the top of their trajectory and begin to move downward, their velocity on the world Z axis slows to 0, and then becomes negative. If you choose Velocity Z and Is Less Than Test Value, and set Test Value to 0.0, you can send particles to another event at the moment they begin to move downward. ■ Acceleration Magnitude Tests the particle acceleration (change in velocity), in system units per second per second, without respect to direction. ■ Acceleration X/Y/Z Tests the particle acceleration (change in velocity) on the specified axis, in system units per second per second, using the world coordinate system. ■ Steering Rate Tests the circular component of particle travel in degrees per second, without consideration of rotation or spinning. 2996 | Chapter 14 Space Warps and Particle Systems For example, if a particle travels along a parabolic path, its motion has both linear and circular components. The circular component is greatest at the top of the parabola. If a particle travels in a full circle in one second, the rate is 360; if it travels in a half circle, the rate is 180. Potential usage: When a particle is forced to turn too sharply, it might explode or change its type of movement. For example, missiles chase a jet fighter, which maneuvers to elude the missiles. The missiles are forced to change their course rapidly, but the missile construction cannot stand the fast change in steering, so the missiles blow up or disintegrate. TIP You can test steering rate by setting the particle speed with Speed By Icon on page 2876, and linking the Speed By Icon operator icon to a circular path. ■ True When Accelerates is increasing in value. Returns a True value when the particle velocity ■ True When Decelerates is decreasing in value. Returns a True value when the particle velocity Test True if Particle Value Lets you specify whether the test passes particles on to the next event if the speed test succeeds or fails. Available for all tests except True When Accelerates/Decelerates. Default=Is Greater Than Test Value. By default, Speed Test returns True if the value tested for exceeds the Test Value quantity, but you can choose Is Less Than Test Value as well. For example, if you use the Velocity Magnitude test type and set Test Value=200 and Variation=0, and choose Is Less Than Test Value, then particles will move to the next event only when they travel faster than 200 units per second. Any particles traveling 200 units per second or slower stay in the current event unless they later exceed that speed or another test returns True. Test Value The specific speed or acceleration to test for. The unit of measurement depends on the type of test; see above. Default=300.0. Variation The amount by which value tested for can vary randomly. Default=0.0. To obtain the actual test value for each particle, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Test Value setting. For example, if Test Value=300 and Variation=10, then tested value for each particle would be between 290 and 310. Particle Flow | 2997 Sync By Choose the time frame to use when animating Test Value and Variation. For further information, see Animation Offset Keying group on page 2870. ■ Absolute Time Any keys set for parameters are applied at the actual frames for which they're set. ■ Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence. ■ Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event. Uniqueness group The Uniqueness setting enables randomization of the test value variation. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Split Amount Test Particle View on page 2811 > Click Split Amount in an event or add Split Amount to the particle system and then select it. The Split Amount test lets you send a specific number of particles to the next event, keeping all remaining particles in the current event. You can split the particle stream by a specific number or percentage, or by every Nth particle. With a specific number of particles, the splitting takes place once per event, but you can animate the percentage and “every Nth” values to vary the amount of split-off particles over time. 2998 | Chapter 14 Space Warps and Particle Systems Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Test True For group Lets you choose how to split the particle stream. Default=Fraction Of Particles, 50%. Fraction Of Particles Split the particle stream on a percentage basis, specified with the Ratio value. With Ratio greater than 0.0, whether a particular particle is split off depends on a randomization factor; change this with the Uniqueness Seed value. Ratio Specify the percentage of particles that will test True. Animatable. Default=50.0. Available only with the Fraction Of Particles option. Every Nth Particle Splits off a regular sample of particles. N Specify how often to split off a particle. Animatable. Default=3. For example, enter 8 to split off every eighth particle. Available only with the Every Nth Particle option. First N Particles Splits off the number of particles specified as the N value (below), starting with the first particle to enter the event, and retains the rest. Particle Flow | 2999 Particles After N First Splits off all particles starting with the first one after N particles, as specified with the N parameter (below). All particles starting with the first to enter the event up to N are retained in the event. N Specify the number of particles to split off, with First N Particles, or to retain in the event, with Particles After N First. Available only with the First N Particles or the Particles After N First option. Per Emission Source When on, the software applies the N value for the options First N Particles and Particles After N First separately for each emission source. Use this option with multiple Particle Flow sources converging into a single Split Amount test. Uniqueness group The Uniqueness setting enables randomization of particle retention with the Fraction Of Particles option. Seed Specifies a randomization value. New Calculates a new seed using a randomization formula. Split Selected Test Particle View on page 2811 > Click Split Selected in an event or add Split Selected to the particle system and then select it. The Split Selected test lets you split the particle stream based on particles' selection status. For information about selecting particles, see Selection rollout on page 2833. NOTE This test considers only particles selected at the Particle sub-object level. To use all particles in an event at a specific frame, go to that frame, go to the Event sub-object level, and highlight the event. Then go to the Particle sub-object level, and on the Selection rollout, click Get From Event Level. Interface 3000 | Chapter 14 Space Warps and Particle Systems The user interface appears in the parameters panel, on the right side of the Particle View dialog. Test True If Particle group Lets you choose how to split the particle stream. Default=Is Selected. Is Selected All selected particles are eligible for redirection to another event. Is Not Selected All non-selected particles are eligible for redirection to another event. Split Source Test Particle View on page 2811 > Click Split Source in an event or add Split Source to the particle system and then select it. The Split Source test lets you split the particle stream based on particles' origin. You can specify that particles from one or more specific Particle Flow sources should or should not be eligible for redirection to the next event. Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. Particle Flow | 3001 Test True If Particle group Lets you choose how to split the particle stream. Default=Is From Selected Source. Is From Selected Source All particles from sources highlighted in the Selected Emission Sources list are eligible for redirection to another event. Is Not From Sel(ected) Source All particles from sources not highlighted in the Selected Emission Sources list are eligible for redirection to another event. Selected Emission Sources Lists all emission sources in the system. Highlight the sources to be considered by the test. Non-Event-Driven Particle Systems Create panel > Geometry > Particle Systems Create menu > Particles Fountain spray created as a particle system 3002 | Chapter 14 Space Warps and Particle Systems Non-event-driven particle systems provide relatively simple, straightforward methods for generating particle sub-objects over time for the purpose of simulating snow, rain, dust, and so on. You use particle systems primarily in animations. 3ds Max provides six built-in, non-event-driven particle systems: Spray Particle System on page 3016 Snow Particle System on page 3020 Super Spray Particle System on page 3025 Blizzard Particle System on page 3029 PArray Particle System on page 3042 PCloud Particle System on page 3034 NOTE You can take advantage of the AutoGrid feature to orient and position new particle systems with respect to existing objects. For details, see AutoGrid on page 2597. See also: ■ Particle System Usage on page 3004 ■ Creating a Particle Emitter on page 3006 ■ Particle Flow on page 2795 Interface Snowstorm created as a particle system Non-Event-Driven Particle Systems | 3003 This topic describes only the general properties of particle systems. Other plug-in particle systems might be available in your configuration. The built-in particle systems share these controls: Emitter Specifies where in the scene the particles are generated. The emitter is the particle system's main sub-object. It doesn't render. Particles appear on the surface of the emitter and fall (or drift, drop, flurry, spray) from the emitter in a particular direction. Timing The timing parameters control the dynamics of particles in the system. They specify how quickly particles appear, how quickly they disappear, whether the emission rate is constant, and so on. Particle-specific parameters These parameters are specific to the kind of particle system. Examples are particle size and speed. Rendering properties These parameters are also specific to the kind of particle system. There are options for displaying particles in viewports and rendering them in scenes and animations. Particles do not necessarily appear the same in renderings as they do in viewports. You can modify and animate particle system parameters. You can also affect particle system behavior with space warps on page 2685. In addition, you can deform particle systems with the Mesher compound object on page 837. NOTE Particles can participate in dynamics simulations. Particle System Usage You create particle systems when you want to model an object or effect that can best be described as a large collection of similar objects behaving in a similar fashion. Obvious examples of such effects include rain and snow, but other equally valid examples include water, smoke, ants, and even crowds of people. On the Create panel, click Spray, Snow, Super Spray, Blizzard, PArray, or PCloud to create a particle system. Spray and Snow exist primarily for compatibility with earlier releases of 3ds Max, and are superseded by Super Spray and Blizzard. To create a particle system, first choose Create menu > Particles > Spray or Snow. 3004 | Chapter 14 Space Warps and Particle Systems These are the basic steps for creating a particle system: 1 Create a particle emitter. All particle systems require an emitter. Some particle systems use the particle system icon as the emitter while others use an object you select from the scene as the emitter. 2 Determine the number of particles. You set parameters such as birth rate and life span to control how many particles can exist at any given time. 3 Set particle shape and size. You can select from many standard particle types (including metaballs) or you can select an object to be emitted as a particle. 4 Set initial particle motion. You can set the speed, direction, rotation, and randomness of particles as they leave the emitter. Particles can also be affected by animation of the emitter. 5 Modify particle motion. You can further modify the motion of particles after they leave the emitter by binding the particle system to a space warp in the Forces group, such as Path Follow, or make them bounce off a deflector in the Deflectors space warp group, such as UDeflector. IMPORTANT When you use forces and deflectors together, always bind the forces before the deflectors. TIP If the particles don't follow the emitter after it's moved, then change any Path Follow parameter on page 2717. The motion will be applied to the particles. Rain and Snow Create rain and snow using Super Spray on page 3025 and Blizzard on page 3029. These particle systems are optimized for droplet (Super Spray) and tumbling flake (Blizzard) effects. Add space warps such as Wind on page 2724 to create spring rains or winter storms. Bubbles Create bubbles by using the Bubble Motion options of Super Spray on page 3025. If you require good rendering speed, consider using constant or tetra particles. If you require bubble detail, consider using opacity-mapped facing particles, instanced spheres, or metaparticles. Non-Event-Driven Particle Systems | 3005 Flowing Water You generate flowing liquid effects by setting Super Spray on page 3025 to generate closely packed metaparticles. The metaparticles blob together forming a stream. Add a Path Follow on page 2717 space warp to send the stream down a trough. Explosions Particle Array (PArray) on page 3042 uses another object as its particle emitter. You can set the particle type to use fragments of the emitter object to simulate the object exploding. Volume Effects Particle Cloud (PCloud) on page 3034 constrains its particles within a specified volume. You can use Particle Cloud to generate bubbles in a glass of soda, or bees buzzing inside a jar. Crowds Super Spray on page 3025, Blizzard on page 3029, Particle Array on page 3042, and Particle Cloud on page 3034 can use instanced geometry as their particle type. You can create a stream of ants, a flock of birds, or a cloud of dandelion seeds using instanced geometry particles. Creating a Particle Emitter After you choose a particle system type to add, you create the particle system icon in the scene. The icon serves different purposes depending on the type of particle system. As an emitter: The icon defines the starting location and direction of the particles. Spray, Snow, Super Spray, Blizzard, and Particle Cloud use the icon as the particle emitter. As a placeholder: The icon serves only to hold the parameters for the particle system. The particles are emitted from another selected object. Particle Array and Particle Cloud use the icon as a placeholder. You can choose whether Particle Cloud uses its icon or another selected object as the emitter. 3006 | Chapter 14 Space Warps and Particle Systems Procedures To create emitter icons: ■ Drag in a viewport to set the size and orientation of the particle emitter icon for Spray, Snow, Super Spray, Blizzard, and Particle Cloud. Spray, Snow, Blizzard, and Particle Cloud use the icon size as the area of particle emission. Super Spray emits particles from its center regardless of its icon size. All particle systems align the particle direction with the Z axis of the creation grid. To create placeholder icons: 1 Drag in a viewport to set the size of the placeholder icon for Particle Array and Particle Cloud. The size and location of the particle system icon has no effect on the particles. 2 After placing the particle system icon, click Pick Object on the Basic Parameters rollout to select the object to use as the particle emitter. Using Materials with Particle Array The material that appears on the particles comes from one of three places: ■ The particle system itself ■ The material assigned to the distribution object (PArray only) ■ The material assigned to the instanced objects Non-Event-Driven Particle Systems | 3007 3008 | Chapter 14 Space Warps and Particle Systems Particles with various materials assigned to them You make this choice in the Material Mapping and Source group near the bottom of the Particle Type rollout. Choose Icon to use the material assigned to the particle system, choose Picked Emitter to use the material assigned to the distribution object, or choose Instanced Geometry to use the material assigned to the instanced objects. Note that this third option is available only when Instanced Geometry is the current particle type (selected in the Particle Types group at the top of the Particle Type rollout). NOTE SuperSpray and Blizzard don't have distribution objects. PCloud has a distribution object but you can't get the material from it. In these cases, a radio button lets you use the material from the instanced geometry. Only PArray lets you get the material from the distribution object. IMPORTANT A particle-system object, like any other object, can carry only a single material at any time. Thus, if you choose either Picked Emitter or Instanced Geometry, an instance of the chosen material is actually copied to the particle system, overwriting the material assigned to the emitter. If you want to restore the emitter material, choose Icon, and then reassign the material from the Material Editor or the Browser. No matter what choice you make, if the material used is not mapped, then all particles take on the surface properties of the material, regardless of which object is used as the source of the material. Non-Event-Driven Particle Systems | 3009 Achieving Particle Motion Blur Particle motion blur is actually the result of varying the opacity and the length of particles based on their speed. To accomplish this requires coordination between material assignment and the settings in the particle systems. Follow these instructions: ■ Use the Particle MBlur map on page 5891 in the material that you assigned to the particles. For best results, assign it as an opacity map. ■ Make sure that the particle system, PArray, PCloud, and Super Spray, or Spray, supports the Particle MBlur map. ■ Choose Rotation and Collision rollout > Spin Axis Controls group > Direction of Travel/Mblur option. ■ In this same group, set the Stretch spinner greater than 0 to stretch the particles as a percent of their length based on the particle Speed setting. ■ Use the correct type of particle. MBlur works on all particle types except Constant and Facing. NOTE Instanced objects with multi/sub-object materials cannot be image motion blurred. Using Mapped Materials with Particle Systems Mapped materials affect particles differently, depending on the source of the material. 3010 | Chapter 14 Space Warps and Particle Systems Particles with a diffuse-mapped material When you choose Icon, the mapping coordinates of the material are applied across the V (vertical) axis, from V=0 (the bottom edge of the map) to V=1 (the top edge of the map). The bottom edge of the map is applied at the birth of the particle, and the top edge at either the death of the particle (if Time is on) or the distance of the particle at its death (if Distance is on). The Time spinner specifies the number of frames from birth that it takes to complete one mapping of a particle. Thus, if set to 15, the particle uses the bottom edge of the map at its birth, and moves through to the top edge of the map at frame 15. The Distance spinner specifies the distance, in units, from birth that it takes to complete one mapping of a particle. Thus, if set to 50, as the particle moves along the normal vector, it displays the bottom edge of the map at birth, and the top edge at 50 units along the normal vector. The one exception to this is when you use the Tetra particle type. In this case, each particle is always constantly mapped with V=0 at the head and V=1 at the tail. When you choose Picked Emitter, the particles take on the color of the object at the point at which they're created. If the mapped surface is yellow where the particle emerges, then the particle is yellow. Again, Tetra particles are an exception and the distribution-object material is mapped from head to tail. Non-Event-Driven Particle Systems | 3011 Fragment particles use the same technique, with additional options when the Thickness setting is greater than 0. When Thickness is 0, all faces in the fragment are mapped the same as the portion of the object surface from which they're derived. When Thickness is greater than 0, the outer faces of the fragment copy the surface of the distribution object, and are assigned the material ID specified in the Outside ID spinner in the Particle Type rollout > Fragment Materials group. The thickness edges use the Edge ID number, and the inner faces use Backside ID. Thus, by assigning a multi/sub-object material to the object-based emitter, you can specify a different material for the outer fragment surfaces, the edges, and the inner surfaces. Note that the Outside ID spinner defaults to a value of 0, which means "use whatever material is currently assigned." Change this to a specific sub-material number to assign a sub-material to the outside edges of the fragments. Using Multi/Sub-Object Materials with Particle Systems Particles with a Multi/Sub-Object material 3012 | Chapter 14 Space Warps and Particle Systems If the assigned material is a Multi/Sub-Object material, particles are affected in the following ways, depending on the source of the material: ■ Icon: In most cases, each particle, at its birth, is assigned a different sub-material, cycling through each available sub-material. For example, if there are only three sub-materials, the first particle receives sub-material #1, the second #2, the third #3, the fourth #1, and so on. The exceptions to this are as follows: ■ MetaParticles use only the first sub-material. ■ Object fragments are born at once, so all of them use only the first sub-material. ■ Picked Emitter: When used with object fragments as particles, each particle uses the three ID numbers in the Fragment Materials group. If this source is used with the other particle types, the particles are assigned sub-materials in the same way as when Icon is chosen. ■ Instanced Geometry: When used with Instanced Geometry particles, each particle is assigned a sub-material in exactly the same way as the source object, so each particle looks just like the source object. When used with other particle types, the particles are assigned sub-materials in the same way as when Icon is chosen. NOTE Instanced objects with Multi/Sub-Object materials cannot be image motion blurred. Using Spawned Particles The examples in this topic start you out with a very simple spawning using the Super Spray particle system. Example: Setting up the particle system: 1 In the Perspective viewport, create a pyramid that's 5 units in all dimensions. 2 Create a cylinder with a radius and height of 3, and 6 sides. 3 In the center of the Perspective viewport, create a Super Spray emitter. 4 Set Speed in the Particle Motion group (Particle Generation rollout) to 3.0. Non-Event-Driven Particle Systems | 3013 5 On the Particle Type rollout, choose Instanced Geometry, then in the Instancing Parameters group click Pick Object, and select the pyramid. 6 In the Viewport Display group of the Basic Parameters rollout, choose Mesh and set the Percentage of Particles to 100. 7 On the Particle Generation rollout, choose Use Rate, and set the spinner to 1. 8 Set Emit Start and Emit Stop to 0, set Display Until to 100, set Life to 10, and leave Variation at 0. 9 Under Particle Size, set Grow For and Fade For to 0. 10 Drag the time slider between frames 0 and 15. A single pyramid particle emerges from the emitter, moves up, and then dies and disappears at frame 10. Example: Adding spawning effects: 1 On the Particle Spawn rollout, choose Spawn on Death. 2 Leave Spawns spinner at 1, and set the Multiplier to 2. 3 Set the Direction Chaos spinner to 50. 4 Drag the time slider slowly over frames 8 to 25 (approximately). At frame 10, two pyramids appear at the death of the original particle (because of the Multiplier setting), and move off in different directions (because of the Direction Chaos setting). All particles die after frame 20 because only one generation of spawned particles is specified. 5 Set Spawns to 4, and the Multiplier to 4. 6 Drag the time slider over frames 8 to 50. With each spawned generation the particles increase exponentially. Example: To mutate the objects: 1 In the Object Mutation Queue group, click Pick Object, and then select the cylinder. The name of the cylinder appears in the list window. 2 Click Pick Object and select the pyramid. Then click Pick Object again, and select the cylinder. Your list now reads: Cylinder01, Pyramid01, Cylinder01. 3014 | Chapter 14 Space Warps and Particle Systems 3 Drag the time slider over frames 0 to 50. The pyramid appears over frames 0 to 10, then changes to four cylinders at frame 11, then 16 pyramids at the next spawning, and so on. Using Interparticle Collision Particles colliding and then rebounding You can set up particles to detect collisions with each other. This can be useful when the particles are meant to model solid objects such as marbles. Procedures Example: To create particles that collide with each other: 1 Create a Super Spray particle emitter, and place a Deflector space warp on page 2757 a short distance from it with the surface of the deflector perpendicular to the stream of the particles. Bind the deflector to the Super Spray. Non-Event-Driven Particle Systems | 3015 2 Set the Super Spray values as follows: ■ Off Axis: 1, Spread: 1, Off Plane: 180, Spread: 180 ■ Mesh: chosen, Percent of Particles: 100 ■ Particle Quantity: Use Rate chosen and set to: 1 ■ Speed: 3, Variation: 100% ■ Emit Start: 0, Emit Stop: 5, Display Until: 100, Life: 100 ■ Size: 4.0, Grow For: 0, Fade For: 0 ■ Particle Type: Sphere 3 Drag the time slider so you can see the particle spheres bounce off the deflector. Note that the rebounding particles move through each other. 4 On the Rotation & Collision rollout, turn on Enable in the Interparticle Collisions group. View the animation again. This time, the particles bounce off each other. TIP InterParticle Collisions, Deflector Binding, and Bubble Noise do not get along well together. Particles may leak through the deflector when these three are used together. Instead of bubble motion use animated mapping. Use facing particles with an animated map of a bubble, where the bubble is smaller than the map size. The bubble is animated moving around the map. This simulates bubble motion at the map level. Spray Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > Spray Create menu > Particles > Spray Spray simulates water drops such as rain, a fountain, the spray from a garden hose, and so on. 3016 | Chapter 14 Space Warps and Particle Systems Kinds of Spray NOTE SuperSpray on page 3025 is a more powerful and advanced version of Spray. It provides all the functionality of Spray, plus additional features. TIP To animate particles following a path through space, use the Path Follow space warp on page 2717. Procedures To create spray: 1 On the Create panel, make sure the Geometry button is active and Particle Systems is chosen in the object category list, then click Spray. 2 Drag in a viewport to create the Spray emitter; see Creating a Particle Emitter on page 3006. The emitter's direction vector points in the negative Z direction of the active construction plane. For example, if you create the emitter in the Top viewport, the particles will move downward in the Front and Left viewports. Non-Event-Driven Particle Systems | 3017 Interface Particles group Viewport Count Maximum number of particles displayed in viewports at any given frame. TIP Setting the viewport count less than the render count can improve viewport performance. 3018 | Chapter 14 Space Warps and Particle Systems Render Count Maximum number of particles that can appear in a single frame when you render it. Works in combination with the particle system's timing parameters. ■ When the number of particles reaches the Render Count value, particle creation is suspended until some particles die. ■ When enough particles die, particle creation resumes until Render Count is reached again. Drop Size Size of a particle in the active units. Speed Initial velocity of each particle as it leaves the emitter. Particles travel at this speed unless they are affected by a particle system space warp. Variation Varies the initial speed and direction of particles. The greater the Variation, the stronger and broader the spray. Drops, Dots, or Ticks Choose how particles are displayed in viewports. The display setting does not affect how particles are rendered. Drops are streaks that appear like raindrops, dots are points, ticks are small plus signs. Render group Tetrahedron Particles are rendered as long tetrahedrons, with the length you specify in the Drop Size parameter. Tetrahedron is the default setting for rendering. It provides a basic simulation of water drops. Facing Particles are rendered as square faces whose width and height equals the Drop Size. Facing particles always face the camera (or the user's perspective). They are provided especially for use with material maps. Use with an appropriate opacity map for bubbles or snowflakes. NOTE Facing works correctly only in a perspective or camera view. Timing group Timing parameters control the "birth and death" rates of emitted particles. At the bottom of the Timing group is a line that displays the maximum sustainable rate. This value is based on the Render Count and the lifetime of each particle. To be precise: maximum sustainable rate=Render Count/Life Because the number of particles in a frame never exceeds Render Count, if the Birth Rate exceeds the maximum rate, the system will run out of particles, Non-Event-Driven Particle Systems | 3019 pause until some die off, and then start again, generating particles in bursts or spurts. Start Number of the first frame where particles appear. Life The lifetime of each particle, in number of frames. Birth Rate The number of new particles born per frame. If this is less than or equal to the maximum sustainable rate, the particle system generates an even flow of particles. If it is greater than the maximum rate, the particle system generates particles in bursts. You can animate the Birth Rate parameter. Constant When on, Birth Rate is unavailable and the birth rate used equals the maximum sustainable rate. When off, Birth Rate is available. Default=on. Turning Constant off does not mean that the birth rate varies automatically; the birth rate remains constant unless you animate the Birth Rate parameter. Emitter group The emitter specifies the area where particles appear in the scene. It has a geometry you can display in viewports, but it isn't renderable. The emitter is displayed as a rectangle with a vector pointing out of one side. The vector shows the direction in which the system emits particles. Width and Length You implicitly set the initial value of these parameters when you drag in a viewport to create the emitter. You can adjust the values in the rollout. The space occupied by the particle system at any given time is the result of a combination of its initial parameters (such as size of the emitter, and speed and variation of emission) and any space warps that have been applied. Hide Turn on to hide the emitter in viewports. When Hide is off, the emitter is displayed in viewports. The emitter is never rendered. Default=off. Snow Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > Snow Create menu > Particles > Snow 3020 | Chapter 14 Space Warps and Particle Systems Snow simulates falling snow or confetti. The snow system is similar to Spray, but it has additional parameters to generate tumbling snowflakes, and its rendering options are different. Kinds of Snow NOTE Blizzard on page 3029 is a more powerful and advanced version of Snow. It provides all the functionality of Snow, plus additional features. TIP To animate particles following a path through space, use the Path Follow space warp on page 2717. Procedures To create snow: 1 In the Create panel, make sure the Geometry button is active and Particle Systems is selected from the object category drop-down list, then click Snow. 2 Drag in a viewport to create the Snow emitter; see Creating a Particle Emitter on page 3006. The emitter's direction vector points in the negative Z direction of the active construction plane. Non-Event-Driven Particle Systems | 3021 Interface Particles group Viewport Count Maximum number of particles displayed in viewports at any given frame. 3022 | Chapter 14 Space Warps and Particle Systems TIP Setting the viewport count less than the render count can improve viewport performance. Render Count Maximum number of particles that can appear in a single frame when you render it. Works in combination with the particle system's timing parameters. ■ When the number of particles reaches the Render Count value, particle creation is suspended until some particles die. ■ When enough particles die, particle creation resumes until Render Count is reached again. Flake Size Size of a particle in the active units. Speed Initial velocity of each particle as it leaves the emitter. Particles travel at this speed unless they are affected by a particle system space warp. Variation Varies the initial speed and direction of particles. The greater the Variation, the broader the area of snowfall. Tumble Amount of random rotation for snowflake particles. This parameter can range from 0 to 1. At 0, flakes do not rotate; at 1, they rotate the most. The axis of rotation is generated randomly for each particle. Tumble Rate Speed at which snowflakes rotate. The greater the Tumble Rate, the faster the rotation. Flakes, Dots, or Ticks Select how particles are displayed in viewports. The display setting does not affect how particles are rendered. Flakes are star-shaped snowflakes, dots are points, ticks are small plus signs. Render group Six Point Each particle is rendered as a six-pointed star. Each side of the star is a face to which you can assign a material. This is the default setting for rendering. Triangle Each particle is rendered as a triangle. Only one side of the triangle is a face to which you can assign a material. Facing Particles are rendered as square faces whose width and height equals the Drop Size. Facing particles always face the camera (or the user's perspective). They are provided especially for use with material maps. Use with an appropriate opacity map for bubbles or snowflakes. NOTE Facing works correctly only in a perspective or camera view. Non-Event-Driven Particle Systems | 3023 Timing group Timing parameters control the "birth and death" rates of emitted particles. At the bottom of the Timing group is a line that displays the maximum sustainable rate. This value is based on the Render Count and the lifetime of each particle. To be precise: maximum sustainable rate=Render Count/Life Because the number of particles in a frame never exceeds Render Count, if the Birth Rate exceeds the maximum rate, the system will run out of particles, pause until some die off, and then start again, generating bursts or spurts of particles. Start Number of the first frame where particles appear. Life The lifetime of a particle, in number of frames. Birth Rate The number of new particles born per frame. If this is less than or equal to the maximum sustainable rate, the particle system generates an even flow of particles. If it is greater than the maximum rate, the particle system generates particles in bursts. You can animate the Birth Rate parameter. Constant When on, Birth Rate is unavailable and the birth rate used equals the maximum sustainable rate. When off, Birth Rate is available. Default=on. Turning Constant off does not mean that the birth rate varies automatically; the birth rate remains constant unless you animate the Birth Rate parameter. Emitter Group The emitter specifies the area where particles appear in the scene. It has a geometry you can display in viewports, but it isn't renderable. The emitter is displayed as a rectangle with a vector pointing out of one side. The vector shows the direction in which the system emits particles. You set emitter parameters in the Emitter group of the particle system's Parameters rollout. Width and Length You implicitly set the initial value of these parameters when you drag in a viewport to create the emitter. You can adjust the values in the rollout. The space occupied by the particle system at any given time is the result of a combination of its initial parameters (size of the emitter, and speed and variation of emission) and any space warps that have been applied. 3024 | Chapter 14 Space Warps and Particle Systems Hide Turn on to hide the emitter in viewports. When off, the emitter is displayed in viewports. The emitter is never rendered. Default=off. Super Spray Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > Super Spray Create menu > Particles > Super Spray Super Spray emits a controlled spray of particles. This particle system is like the simple Spray particle system with the added power provided by all the newer particle systems. Non-Event-Driven Particle Systems | 3025 TIP To animate particles following a path through space, use the Path Follow space warp on page 2717. Super Spray viewport icon (emitter) Particles emerging from a super spray system 3026 | Chapter 14 Space Warps and Particle Systems Procedures To create a super spray particle system: 1 On the Create panel, make sure the Geometry button is active and Particle Systems is chosen in the object category list, then click Super Spray. 2 Drag in any viewport to create the Super Spray emitter icon; see Creating a Particle Emitter on page 3006. The icon appears as an intersecting plane and circle with an arrow. The initial direction of the spray (based on the orientation of the emitter icon and indicated by the icon arrow) depends on the viewport in which you create the icon. Generally, the particles spray toward you when created in an orthographic viewport, or spray upward when created in a Perspective viewport. 3 Adjust the various parameters to alter the spray effect. Interface NOTE This section describes the Particle Formation group in the Basic Parameters rollout, and the Particle Motion group in the Particle Generation rollout. These are the only controls unique to Super Spray. The other Super Spray rollouts and their contents are identical with those in Particle Array, except that Object Fragments and associated settings are not available on the Particle Type rollout. See PArray Particle System on page 3042 for details or choose from the following list for rollout information. Particle Generation Rollout on page 3049 Particle Type Rollout on page 3053 Rotation and Collision Rollout on page 3063 Object Motion Inheritance Rollout on page 3066 Bubble Motion Rollout on page 3067 Particle Spawn Rollout on page 3069 Load/Save Presets Rollout on page 3075 Non-Event-Driven Particle Systems | 3027 Basic Parameters rollout > Particle Formation group These items control the direction and spread of particles. Off Axis Affects the angle of the particle stream off the Z axis (along the plane of the X axis). Spread Affects the spread of the particles away from the emission vector (along the plane of the X axis). Off Plane Affects the angle of emission about the Z axis. This has no effect if Off Axis is set to 0. 3028 | Chapter 14 Space Warps and Particle Systems Spread Affects the spread of the particles about the Off Plane axis. This has no effect if Off Axis is set to 0. Particle Generation rollout > Particle Motion group Speed The speed of the particle at birth, in units per frame. Variation Applies a percentage of variation to the speed of emission for each particle. Blizzard Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > Blizzard Create menu > Particles > Blizzard This is an advanced version of the original Snow particle system. Non-Event-Driven Particle Systems | 3029 TIP To animate particles following a path through space, use the Path Follow space warp on page 2717. Blizzard viewport icon (emitter) Snowflake particles in a blizzard 3030 | Chapter 14 Space Warps and Particle Systems Procedures To create a blizzard particle system: 1 On the Create panel, make sure the Geometry button is active and Particle Systems is chosen in the object category list, then click Blizzard. 2 Drag in a viewport to create the Blizzard emitter; see Creating a Particle Emitter on page 3006. The icon appears as a plane with a perpendicular line pointing in the direction of emission. 3 Adjust the various parameters on the command panel. Interface This section describes the Display Icon group in the Basic Parameters rollout, the Particle Motion group in the Particle Generation rollout, and the Material Mapping and Source group in the Particle Type rollout. These are the only controls unique to Blizzard. The other Blizzard rollouts and their contents are identical with those in Particle Array, except that Object Fragments and associated settings are not available on the Particle Type rollout. See PArray on page 3042 for details or choose from the following list for rollout information. Particle Generation Rollout on page 3049 Particle Type Rollout on page 3053 Rotation and Collision Rollout on page 3063 Object Motion Inheritance Rollout on page 3066 Particle Spawn Rollout on page 3069 Load/Save Presets Rollout on page 3075 Non-Event-Driven Particle Systems | 3031 Basic Parameters rollout > Display Icon group The emitter specifies the location where particles are generated in the scene. It has a geometry you can display in viewports, but it isn't renderable. The emitter is displayed as a rectangle with a vector pointing out of one side. The vector shows the direction in which the system emits particles. You set emitter parameters on the particle system's Basic Parameters rollout, in the Display Icon group. Width and Length You implicitly set the initial value of these parameters when you drag in a viewport to create the emitter. You can adjust the values on the rollout. The space occupied by the particle system at any given time is the result of a combination of its initial parameters (such as size of the emitter, and speed and variation of emission) and any space warps that have been applied. Emitter Hidden Hides the emitter in viewports. When off, the emitter is displayed in viewports. The emitter is never rendered. Default=off. 3032 | Chapter 14 Space Warps and Particle Systems Particle Generation rollout > Particle Motion group Specifies the number, size, and motion of particles. Speed The speed of the particle at birth, in units per frame. Non-Event-Driven Particle Systems | 3033 Variation Applies a percentage of variation to the speed of emission for each particle. Tumble Amount of random rotation of the particles. Tumble Rate Speed at which the particles rotate. Particle Type rollout > Mat'l Mapping and Source group Emitter Fit Planar Maps particles at birth, based on their point of emission from the rectangular Blizzard emitter icon. The UV range of the mapped material runs from 0 to 1 over the width and length of the emitter. PCloud Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > PCloud 3034 | Chapter 14 Space Warps and Particle Systems Create menu > Particles > PCloud Use the PCloud (or Particle Cloud) particle system when you want a "cloud" of particles that fill a specific volume. PCloud can provide a flock of birds, a starfield, or a troupe of soldiers marching over terrain. You can confine the particles using basic supplied volumes of a box, sphere, or cylinder, or you can use any renderable object in the scene as a volume as long as that object has depth. Two-dimensional objects do not work with PCloud. Non-Event-Driven Particle Systems | 3035 TIP There is no automatic way to hide the object chosen as the object-based emitter. Hide it by using Hide Selected on the Display panel, or by applying a Hide key in Track View. PCloud viewport icon (default emitter) PCloud viewport icon (object-based emitter) 3036 | Chapter 14 Space Warps and Particle Systems PCloud used to form a school of fish (each fish is a particle) Procedures To create a particle cloud: 1 On the Create panel, make sure the Geometry button is active and Particle Systems is chosen in the object category list, then click PCloud. 2 Drag in a viewport to create the PCloud emitter; see Creating a Particle Emitter on page 3006. Adding a PCloud emitter works the same way as creating a box primitive: First drag out the length and width, then release the mouse button and move the mouse vertically to set the height, and then click to finish. The emitter appears with a letter "C" representing the particle cloud. 3 Adjust the various parameters on the command panel. Interface This section describes the Object-Based Emitter, Particle Formation, and Display Icon groups in the Basic Parameters rollout, and the Particle Motion group in the Particle Generation rollout. These are the only controls unique to PCloud. Non-Event-Driven Particle Systems | 3037 The other PCloud rollouts and their contents are identical with those in Particle Array, except that Object Fragments and associated settings are not available on the Particle Type rollout. See PArray on page 3042 for details or choose from the following list for rollout information. Particle Generation Rollout on page 3049 Particle Type Rollout on page 3053 Rotation and Collision Rollout on page 3063 Object Motion Inheritance Rollout on page 3066 Bubble Motion Rollout on page 3067 Particle Spawn Rollout on page 3069 Load/Save Presets Rollout on page 3075 3038 | Chapter 14 Space Warps and Particle Systems Basic Parameters rollout Object-Based Emitter group This button lets you select a renderable mesh object to use as a particle emitter. This object is used only when the Object-Based Emitter option is chosen in the Particle Formation group. Pick Object Click this, and then select a renderable mesh object to be used as a custom emitter. Object Displays the name of the picked object. Non-Event-Driven Particle Systems | 3039 Particle Formation group These options let you specify the shape of the emitter. Box Emitter Chooses a box-shaped emitter. Sphere Emitter Chooses a sphere-shaped emitter. Cylinder Emitter Chooses a cylindrical emitter. Object-Based Emitter Chooses the object selected in the Object-Based Emitter group. NOTE With regard to animation of the object-based emitter, the particles will properly fill a deformed object at frame 0, but they can't stay with the emitter while it's moving. If the emitter moves in a straight line, this can give the appearance of the cloud moving with the emitter. Display Icon group These options let you adjust the dimensions of the emitter icon when a custom object is not used as an emitter. When a custom object is used you can still resize the "Fill" icon using these options. Rad/Len Adjusts the radius of a spherical or cylindrical icon, and the length of a box icon. Width Sets the width of a box emitter. Height Sets the height of a box or cylindrical emitter. Emitter Hidden Hides the emitter. 3040 | Chapter 14 Space Warps and Particle Systems Particle Generation rollout > Particle Motion group Speed The speed of the particle at birth along the normal, in units per frame. NOTE For the correct volume effect, Speed should be set to 0. Variation Applies a percentage of variation to the speed of emission for each particle. Random Direction One of three options that affect the direction of the particles. This option emits particles in random directions. Direction Vector Specifies the direction of the particles by a vector defined by the three X, Y, and Z spinners. X/Y/Z Displays the particle direction vectors. Reference Object Emits particles in the direction of the local Z axis of a specified object. Object Displays the name of the picked object. Non-Event-Driven Particle Systems | 3041 Pick Object Click this, and then select an object in the scene to use as a reference object. This button is available only when you choose Reference Object. Variation Applies a percentage of variation to the direction when you choose either the Direction Vector or Reference Object option. This spinner is unavailable and has no effect when you choose Random Direction. PArray Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > PArray Create menu > Particles > PArray Basket used as a distribution object for random particles over its surface The PArray (Particle Array) particle system provides two types of particle effects: ■ You can use it to emit particles using a selected geometric object as the emitter template (or pattern) for the emission. This object is referred to here as the distribution object. 3042 | Chapter 14 Space Warps and Particle Systems How particles can be distributed on an object: Left: Edges Center: Vertices Right: Faces ■ You can use it to create sophisticated object explosions. TIP A good way to create explosions is to set the particle type to Object Fragments and then apply a PBomb space warp on page 2712. See also: ■ Particle System Usage on page 3004 ■ Using Materials with Particle Array on page 3007 ■ Achieving Particle Motion Blur on page 3010 ■ Using Mapped Materials with Particle Systems on page 3010 ■ Using Multi/Sub-Object Materials with Particle Systems on page 3012 Non-Event-Driven Particle Systems | 3043 ■ Using Spawned Particles on page 3013 ■ Using Interparticle Collision on page 3015 Procedures To set up a particle array: 1 Create an object that will become the distribution object, providing the emitter pattern (or exploded object) for the particle array. 2 On the Create panel, make sure the Geometry button is active and Particle Systems is chosen in the object category list, then click PArray. 3 Drag anywhere in a viewport to create the particle-system object; see Creating a Particle Emitter on page 3006. 4 On the Basic Parameters rollout, click Pick Object, and then click the object to use as the distribution object. 5 Adjust the various options in the Particle Array rollouts to achieve the effect you want. The distribution object can be any object containing renderable faces. The particle-system object does not appear in the rendered scene. Its placement, orientation or size in the scene has no influence on the particle effect. To access the Particle Array parameters after creation, open the Modify panel and select the particle-system object (or click any visible particles in the viewport). To transform or otherwise modify the distribution object, select the distribution object itself. Also, you can share a single distribution object among more than one particle-system object. The distribution object merely provides the template for the particles, which are actually generated by the particle system. Example: To assign three different mapped materials to fragments: 1 Apply mapping coordinates to the distribution object, either by turning on Generate Mapping Coords, if necessary, or by applying a UVW Map modifier on page 1931. 2 Assign a Multi/Sub-Object material on page 5720 to the distribution object. 3044 | Chapter 14 Space Warps and Particle Systems 3 Set up the first three sub-materials to be mapped materials. 4 Select the PArray icon. 5 On the Particle Type rollout in the Mat'l Mapping And Source group, choose Picked Emitter. 6 In the Particle Type rollout > Particle Types group, turn on Object Fragments. 7 Make sure the three spinners in the Fragment Materials group are set to 1, 2, and 3, respectively (or match the numbers with the sub-materials you've assigned in your multi/sub-object material). TIP Using a complex distribution object for object-fragment particles can really slow down viewport interaction. You can use a simple stand-in object as the distribution object, and then later use the File/Replace command to replace the distribution object with a more complex object of the same name. Interface Basic Parameters Rollout (PArray) on page 3045 Particle Generation Rollout on page 3049 Particle Type Rollout on page 3053 Rotation and Collision Rollout on page 3063 Object Motion Inheritance Rollout on page 3066 Bubble Motion Rollout on page 3067 Particle Spawn Rollout on page 3069 Load/Save Presets Rollout on page 3075 Basic Parameters Rollout (PArray) Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > Parray > Basic Parameters rollout The items on the Basic Parameters rollout let you create and adjust the size of the particle system, and pick the distribution object. In addition, they let you specify the initial distribution of the particles in relation to the geometry of the distribution object, and the initial velocity of the particles from the Non-Event-Driven Particle Systems | 3045 distribution object. From here, you can also specify how the particles appear in the viewport. Interface Object-Based Emitter group Pick Object After you create the particle-system object, the Pick Object button becomes available. Click this button, and then click to select an object in your scene. The selected object becomes the object-based emitter, and is used either 3046 | Chapter 14 Space Warps and Particle Systems as the source geometry over which particles form, or the source geometry used to create particles that appear to be fragments of the object. Object text field Displays the name of the picked object. Particle Formation group These options determine how standard particles are initially distributed over the surface of the object-based emitter. These controls are available only when the picked object is used as a distribution grid for standard particles, MetaParticles, or instanced geometry; see Particle Type rollout on page 3053. When Object Fragments is chosen in the Particle Type rollout, these controls are unavailable. Over Entire Surface Emits particles randomly over the entire surface of the object-based emitter. This is the default choice. Along Visible Edges Emits particles randomly from the visible edges of the object. At All Vertices Emits particles from the vertices of the object. At Distinct Points Places a specified number of emitter points randomly over the surface of the object. Total Specifies the number of emitter points used when At Distinct Points is chosen. At Face Centers Emits particles from the center of each triangular face. Use Selected SubObjects With mesh-based emitters, and to a limited extent with patch-based emitters, limits the source of the particle stream to the sub-object selection passed up the modifier stack in the object-based emitter. For example, if your emitter object is a cylinder converted to an editable mesh, and the top cap of that cylinder is selected at the Face or Polygon sub-object level, if Use Selected SubObjects is on and Particle Formation group > At Face Centers is on, the particles will stream only from the top cap of the cylinder. Default=off. The type of particle formation you specify determines the type of sub-object geometry used, as follows: ■ Over Entire Surface Faces ■ Along Visible Edges Edges ■ At All Vertices ■ At Distinct Points Vertices Faces Non-Event-Driven Particle Systems | 3047 ■ At Face Centers Faces If you’ve converted your object to an editable mesh, and selected different sub-object sections of it with vertex, edge, and face selection, as you switch particle formation options, you’ll see the particles emit from different areas of the object. NOTE Use Selected SubObjects is applicable to patch object emitters only at the patch and element sub-object levels, and is not applicable NURBS objects used as emitters. TIP You can best see the emission patterns by first setting Speed on the Particle Generation rollout > Particle Motion group to 0. Move to a frame in which the particles appear, and then choose the various particle formation options. Display Icon group Adjusts the display of the particle-system icon in the viewports. (The particle-system icon is usually called the "emitter." In this case, however, it doesn't actually emit particles, so we're avoiding the term.) Icon Size Sets the overall size of the icon, in units. Icon Hidden When on, the PArray icon is hidden in the viewports. Note that the icon does not render, in any case. Default=off. Viewport Display group Specifies how the particles are displayed in the viewports. Dots Displays the particles as dots. Ticks Displays the particles as crosses. Mesh Displays the particles as mesh objects. This results in slower viewport redraws. BBox For instanced geometry only, this displays each instanced particle, whether a single object, a hierarchy, or a group, as a bounding box. Percentage of Particles This spinner specifies the number particles displayed in the viewports as a percentage of the number of rendered particles. Default=10 percent. Set the display percentage to 100 percent if you want to see the same number of particles as will be rendered in your scene. However, this can considerably slow viewport display. 3048 | Chapter 14 Space Warps and Particle Systems Particle Generation Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Blizzard/Parray/PCloud > Particle Generation rollout Select a SuperSpray/Blizzard/Parray/PCloud emitter. > Modify panel > Particle Generation rollout Items on this rollout control when and how quickly particles form, how particles move, and the size of the particles over time. Non-Event-Driven Particle Systems | 3049 Interface Particle Quantity group In this group, you can choose one of two methods by which the number of particles is determined over time. These settings are unavailable if you set Particle Type (in the Particle Type rollout on page 3053) to Object Fragments. 3050 | Chapter 14 Space Warps and Particle Systems Use Rate Specifies a fixed number of particles emitted per frame. Use the spinner to set the number of particles formed per frame. Use Total Specifies a total number of particles formed over the life of the system. Use the spinner to set the number of particles formed per frame. The life of the system, in frames, is specified by the Life spinner in the Particle Timing group, described later in this topic. TIP Generally, Use Rate is best for a continuous flow of particles, like a trail of pixie dust, while Use Total is better for bursts of particles over a short period of time. Particle Motion group These spinners control the initial particle velocity, which is directed along the surface, edge, or vertex normals (interpolated for each emitter point). Speed The velocity of the particle at birth, along the normal, in units traveled per frame. Variation Applies a percentage of variation to the speed of emission for each particle. Divergence Applies an angular degree of variation by which each particle's velocity can vary from the emitter normal. NOTE The initial direction for a fragment cluster is the normal of the cluster's seed face. Clusters are created by choosing a single face (the seed face), and then creating a cluster outward from that face, depending on the method chosen in the Object Fragment Controls group on the Particle Type rollout. Particle Timing group These options specify when particle emission starts and stops, and the lifespan of the individual particles. Emit Start Sets the frame at which particles begin to exist in the scene. Emit Stop Sets the last frame at which particles are emitted. This setting has no effect if you choose the Object Fragments particle type. Display Until Specifies the frame at which all particles will disappear, regardless of other settings. Life Sets the lifespan in number of frames of each particle from the frame of creation. Non-Event-Driven Particle Systems | 3051 Variation Specifies the number of frames by which the life of each particle can vary from the norm. Subframe Sampling Turning on any of the three check boxes below helps avoid particle "puffing" by sampling particles at a much higher subframe resolution, instead of the relatively coarse frame resolution. Depending on your needs, you can do this over time, over motion, or over rotation. "Puffing" is the effect of emitting separate "puffs" or clusters of particles, rather than a continuous stream. This effect is especially noticeable when the emitter is animated. ■ Creation Time Enables the addition of a time offset to the equations of motion that prevents puffing in time. This setting has no effect with the Object Fragments particle type. Default=on. ■ Emitter Translation If the object-based emitter is moving in space, particles are created at integral times at positions along the geometry's path between renderable positions. This prevents puffing in space. This setting has no effect if Object Fragment particle type is on. Default=on. ■ Emitter Rotation If the emitter is rotating, turn this on to avoid puffing and produce smooth spiral effects. Default=off. IMPORTANT Each additional subframe sampling check box that you turn on progressively increases the necessary computation. In addition, the methods are listed in order of least amount of computation to most. Thus, Emitter Rotation is more costly than Emitter Translation, which is more costly than Creation Time. Particle Size group These spinners specify the size of the particles. Size This animatable parameter specifies the target size for all particles in the system, depending on the type of particle: ■ Standard Particles ■ Constant particle. ■ Object Fragments The major dimension of the particle. The dimension, in rendered pixels, of a Constant type of No effect. Variation The percentage by which the size of each particle may vary from the norm. This is applied to the Size value. Use this parameter to get a realistic mix of large and small particles. 3052 | Chapter 14 Space Warps and Particle Systems Grow For The number of frames over which the particle grows from being very small to the Size value. The result is subject to the Size/Variation value, since Grow For is applied after Variation. Use this parameter to simulate natural effects such as bubbles growing as they reach the surface. Fade For The number of frames over which the particle will shrink to 1/10th its Size setting prior to its death. This is also applied after Variation. Use this parameter to simulate natural effects such as sparks fading to ash. Uniqueness group By changing the Seed value in this spinner, you achieve different results using otherwise identical particle settings. New Randomly generates a new seed value. Seed Sets a specific seed value. Particle Type Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Blizzard/Parray/PCloud > Particle Type rollout Select a SuperSpray/Blizzard/Parray/PCloud emitter. > Modify panel > Particle Type rollout Non-Event-Driven Particle Systems | 3053 Left: A stream from a fountain Right: The same stream with various types of particles The controls on this rollout let you specify the type of particle used and the type of mapping performed on the particles. 3054 | Chapter 14 Space Warps and Particle Systems Interface Non-Event-Driven Particle Systems | 3055 Particle Types group These options specify one of four categories of particle type. Depending on which option you choose, different controls become available in the lower portion of the Particle Type rollout. Standard Particles Uses one of several standard particle types, such as triangle, cube, tetra, and so on. MetaParticles Uses Metaball particles. These are particle systems in which the individual particles blend together in blobs or streams. Object Fragments Creates particles out of fragments of an object. Object Fragments is available only with Particle Array. Choose it when you want to fracture the particle emitter object and use the pieces as particles. This option is useful for animating explosions and shattering collisions. The fragments are created at the Emit Start frame. The Use Rate, Use Total, Emit Stop, and Particle Size parameters are unavailable. Instanced Geometry Generates particles that are instances of either an object, a linked hierarchy of objects, or a group. The object is selected in the Instancing Parameters group on the Particle Type rollout. Choose Instanced Geometry when you want particles to be identical instances of another object in your scene. Instanced geometry particles are extremely effective for creating crowds, flocks, or flows of very detailed objects. Here are a few examples: ■ Instance a red blood cell and use Super Spray to animate blood flowing in an artery. ■ Instance a bird and use Particle Cloud to animate a flock of birds flying. ■ Instance a rock and use Particle Cloud to animate an asteroid field. NOTE Only one type of particle can be used for the particle system. However, you can have more than one particle array bound to a single object, and each particle array can emit a different type of particle. TIP Image motion blur, described in Object Properties on page 305 > Motion Blur group, is known not to work properly with instanced particles. Use object motion blur with instanced particles, or use image motion blur with standard particles. 3056 | Chapter 14 Space Warps and Particle Systems Standard Particles group When you choose Standard Particles in the Particle Types group, the options in this group become available. Choose one of the following options to specify the particle type: Triangle Renders each particle as a triangle. Use Triangle particles with noise opacity for steam or smoke. Cube Renders each particle as a cube. Special Each particle consists of three intersecting 2D squares. These are effective when you use a face-map material, described in Shader Basic Parameters Rollout on page 5397, optionally along with an opacity map, to create the effect of a three-dimensional particle. Facing Renders each particle as a square that always faces the view. Use with an appropriate opacity map for bubbles or snowflakes. Constant Provides a particle that remains the same size, in pixels, specified in the Size spinner. This size never changes, regardless of its distance from the camera. IMPORTANT You must render either a camera or a perspective view for Constant particles to render correctly. Tetra Renders each particle as a mapped tetrahedron. Use Tetra particles for raindrops or sparks. The default alignment of the tetra particles depends on the particle system type and emitter setup. To specify an alignment, use controls in the Rotation and Collision rollout on page 3063. SixPoint Renders each particle as a six-pointed, two-dimensional star. Sphere Renders each particle as a sphere. MetaParticle Parameters group When you choose the MetaParticles option in the Particle Types group, the options in this group become available, and metaballs are used as particles. Metaparticles take extra time to render but are very effective for spraying and flowing liquid effects. Tension Determines the tightness of the particles, with regard to their tendency to blend with other particles. The higher the Tension, the harder the blobs, and the harder it is for them to merge. Non-Event-Driven Particle Systems | 3057 Variation Specifies the percent of variation of the Tension effect. Evaluation Coarseness Specifies how accurately the metaparticle solution is calculated. The higher the coarseness values, the less calculation. However, if the coarseness is too high, there may be little or no metaparticle effect at all. Conversely, if the coarseness is set too low, the time for calculation can become extremely long. Render Sets the coarseness for metaparticles in the rendered scene. This option is unavailable when Automatic Coarseness is on. Viewport Sets the coarseness for the viewport display. This option is unavailable when Automatic Coarseness is on. Automatic Coarseness A general rule is to set the Coarseness value between 1/4 and 1/2 the size of the particles. When this item is on, the rendering coarseness is automatically set, based on the size of the particles, and the viewport coarseness is set to about twice that of the rendering coarseness. One Connected Blob When off (the default), all particles are calculated; when on, a shortcut algorithm is used that calculates and displays only those particles that are adjoining or contiguous to each other. NOTE One Connected Blob mode speeds particle calculations, but you should use it only when your metaparticles form one connected blob, as the label indicates. That is, all particles' blobs must be touching. For example, if you were to use One Connected Blob on a stream of particles containing a mass of 10 contiguous particles followed by a space, then 12 contiguous particles followed by another space, and finally 20 contiguous particles, one of the particles will be chosen, and only the mass connected to that particle will be displayed and rendered. TIP When in doubt, leave this option off. If you think all your particles are contiguous and want to save time, turn on One Connected Blob, and then display various frames to see if everything appears. Object Fragment Controls group With a particle array, when you choose the Object Fragments particle type, the items in this group become available, and the object-based emitter is exploded into fragments, rather than being used to distribute particles. NOTE To see the fragments in the viewports, choose Mesh in the Viewport Display group near the bottom of the Basic Parameters rollout on page 3045. 3058 | Chapter 14 Space Warps and Particle Systems The items in this group include a Thickness spinner, along with three option buttons that determine how the fragments are formed. TIP There is no automatic way to hide the distribution object that explodes into fragments. To create the illusion that an object is exploding, you must either set the original object to be invisible at the start of the explosion, as described in Add Visibility Track on page 3611, or move or scale the original object so it doesn't remain in view. Thickness Sets the thickness of the fragments. At 0, the fragments are single-sided with no thickness. When greater than 0, the fragments are extruded, at fragmentation time, by the amount specified. The outer and inner surfaces of the fragment use identical smoothing, which is picked up from the object-based emitter. The edges of the fragments are not smoothed. The three options that follow specify how the object fragments. All Faces Each face of the object becomes a particle. This results in triangular particles. Number of Chunks The object breaks into irregular fragments. The Minimum spinner, below, specifies the minimum number of fragments that will appear. The method of calculating the chunks may result in more fragments than specified. Minimum Determines a number of "seed" faces in the geometry. Each seed face collects connecting faces surrounding it until all available faces are exhausted. Any leftover faces become unique particles, thus increasing the minimum number of fragments. Smoothing Angle The fragments are broken based on the angles between face normals, as specified in the Angle spinner. Generally, the higher the Angle value, the fewer the number of fragments. Angle Sets the amount of smoothing angle. Non-Event-Driven Particle Systems | 3059 Instancing Parameters group 3060 | Chapter 14 Space Warps and Particle Systems These options are used when you specify Instanced Geometry in the Particle Types group. They let you generate each particle as an instance of either an object, a linked hierarchy of objects, or a group. NOTE Instanced objects can be animated, providing the animation incorporates one or more of the following types: ■ Animation of object geometry parameters, such as a sphere's Radius setting. ■ Animation of object-space modifiers, such as the Angle setting of a Bend modifier on page 1208. ■ Transform animation of a hierarchical object's children. Transform animation of the top-level parent and non-hierarchical objects is not supported. For example, if you use the toolbar Select and Rotate function on page 960 to animate a box rotating, and then use the box as instanced geometry with a particle system, the system will not use instanced box's keyframed animation. Object Displays the name of the picked object. Pick Object Click this, and then select an object in the viewport to be used as a particle. If you select an object that's part of a hierarchy and Use Subtree Also is on, then the picked object and its children become a particle. If you pick a group, all objects in the group are used as a particle. Use Subtree Also Turn this on when you want to include the linked children of the picked object in the particle. If the picked object is a group, all children of the group are included. Note that you can turn this on or off at any time to alter the particles. Animation Offset Keying Because the instanced objects can be animated, the options here let you specify the timing of the animations for the particles. None Each particle duplicates the timing of the original object. As a result, the animation of all particles will be identically timed. Birth The firstborn particle is an instance of the current animation of the source object at the moment of that particle's birth. Each subsequent particle then uses the same start time for the animation. For example, if the animation of the source object is a bend from 0 to 180 degrees, and the first particle is born at frame 30, when the object is at 45 degrees, then that particle, and all subsequent particles will be born starting at a bend of 45 degrees. Random This option is the same as None when Frame Offset is set to 0. Otherwise, each particle is born using the same animation as the source object Non-Event-Driven Particle Systems | 3061 at the time of birth, but with a random offset of frames, based on the value in the Frame Offset spinner. Frame Offset Specifies an offset value from the current timing of the source object. Mat'l Mapping and Source group Specifies how a mapped material affects the particles, and lets you specify the source of the material assigned to the particles. A detailed description of how materials affect particles is in the topic Using Mapped Materials with Particle Systems on page 3010. Time Specifies the number of frames from the birth of the particle that it takes to complete one mapping of the particle. Distance Specifies the distance, in units, from the birth of the particle that it takes to complete one mapping of the particle. NOTE Tetra particles are an exception. They always have their own local mapping from head to tail, as described in the following section. Get Material From Updates the material carried by the particle system, using the source specified by the option buttons below this button. IMPORTANT Remember to click Get Material From whenever you choose a different source option button, or whenever you assign a new material to the specified source. Only a single material (or multi/sub-object material) is carried by the particle-system object at any time. Thus, when you change sources, you actually overwrite the currently assigned material with an instance of the source material. Icon The particles use the material currently assigned to the particle system icon. NOTE The Time and Distance options are available only when you choose this option. Picked Emitter The particles use the material assigned to the distribution object. Instanced Geometry The particles use the material assigned to the instanced geometry. This option is available only when you choose Instanced Geometry in the Particle Types group. 3062 | Chapter 14 Space Warps and Particle Systems IMPORTANT When you turn on either Picked Emitter or Instanced Geometry, an instance of the material from the chosen source is copied to the emitter icon, overwriting the material originally assigned to the icon. Thus, if you've assigned a material to the particle emitter, and then switch to Picked Emitter, the material originally assigned to the icon is replaced by an instance of the material carried by the picked object. If you then return to the Icon option, the particle system does not revert to the material that was assigned the icon, but retains the material taken from the picked object. Fragment Materials group These spinners let you assign different material ID numbers to outside surfaces, the edges and the back sides of fragment particles. You can then assign different materials to the front, edge and back of the fragments by using a multi/sub-object material. Outside ID Specifies which face ID number is assigned to the outside faces of the fragments. This spinner defaults to 0, which is not a valid ID number, forcing the outside of the particle fragments to use whatever material is currently assigned to the associated faces. Thus, if your distribution object already has several submaterials assigned to its outer faces, these materials are retained by using ID 0. If you want a single, specific submaterial, you can assign it by changing the Outside ID number. Edge ID Specifies which submaterial ID number is assigned to the edges of the fragments. Backside ID Specifies which submaterial ID number is assigned to the back sides of the fragments. Rotation and Collision Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Blizzard/Parray/PCloud > Rotation and Collision rollout Select a SuperSpray/Blizzard/Parray/PCloud emitter. > Modify panel > Rotation and Collision rollout Particles often move at high rates of speed. In such cases, you might want to add motion blur to the particles to enhance their motion. Also, real-world particles typically rotate as they move, and collide with each other. Non-Event-Driven Particle Systems | 3063 The options on this rollout affect the rotation of the particles, provide motion blur effects, and control inter-particle collisions. Interface Spin Speed Controls group Spin Time The number of frames for one rotation of a particle. If set to 0, no rotation takes place. Variation The percent of variation of the Spin Time. 3064 | Chapter 14 Space Warps and Particle Systems Phase Sets the initial particle rotation, in degrees. This has no meaning for fragments, which always begin with zero rotation. Variation The percent of variation of the Phase. Spin Axis Controls group These options determine the spin axis for the particles, and provide a partial method of applying motion blur to the particles. Random The spin axis for each of the particles is random. Direction of Travel/Mblur (Not available with the Blizzard particle system.) Rotates the particles about a vector formed by the direction in which they're moving. This option also lets you apply a form of motion blur to the particles by using the Stretch spinner. For further information, see Achieving Particle Motion Blur on page 3010. Stretch When greater than 0, the particles stretch along the travel axis, depending on their speed. Specifically, the Stretch value specifies the percent of their length per each unit of the Speed setting (in the Particle Motion group). Thus, if you set Stretch to 2 while Speed is set at 10, the particles are stretched 20 percent longer than their original size along the axis of their travel. This spinner is available only when you choose Direction of Travel/Mblur. NOTE For best results when using Stretch, you should also assign the Particle MBlur map as an opacity map of the material assigned to the particle system. User Defined Uses a vector defined in the three X, Y, and Z axis spinners. X/Y/Z Axis Specifies the spin vector of the X, Y, or Z axis, respectively. These spinners are available only when User Defined is chosen. Variation The amount, in degrees, by which the spin axis of each particle may vary from the specified X Axis, Y Axis, and Z Axis settings. This spinner is available only when you choose User Defined. Interparticle Collisions group These options enable collisions between particles, and control how the collisions occur. Note that this involves intensive calculation, particularly when large numbers of particles are involved. Enable Enables inter-particle collisions in the calculation of the particle movements. Non-Event-Driven Particle Systems | 3065 Calc Intervals Per Frame The number of intervals per rendering interval, during which an inter-particle collision test is conducted. The higher the value, the more accurate the simulation, but the slower the simulation will run. Bounce The degree to which speed is recovered after a collision. Variation The percentage of random variation of the Bounce value, applied to the particles. Object Motion Inheritance Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Blizzard/Parray/PCloud > Object Motion Inheritance rollout Select a SuperSpray/Blizzard/Parray/PCloud emitter. > Modify panel > Object Motion Inheritance rollout Each particle's position and direction of movement are determined by the position and orientation of the emitter at the time the particle is created. If the emitter is moving through the scene, particles are scattered along the emitter's path. Use these options to affect the motion of the particles by the motion of the emitter. Procedures Example: To observe object motion inheritance: 1 Create a Super Spray particle system. 2 Animate the emitter moving sideways (perpendicular to the direction of the particle stream) between frames 1 and 15. 3 Play the animation while observing it from the Top viewport. The emitter stops at frame 15, while the particles it has emitted up to that point continue moving along the diagonal between the emitter's path and that of the particles. The remaining particles move straight out from the emitter. 4 On the Object Motion Inheritance rollout, set Influence to 50. 5 Play the animation again. 3066 | Chapter 14 Space Warps and Particle Systems This time, only some of the particles inherit the emitter's motion, while the rest move straight out from the emitter. Note that the latter form a diagonal stream because each particle emerges at a subsequent point on the emitter path. Interface Influence The percent of particles that inherit the motion of the object-based emitter at the moment of particle formation. For example, when this is set at 100 (the default), all particles travel along with a moving object; when it's set at 0, none of the particles are affected by the translation of the object and fall behind its movement. Multiplier Modifies the amount by which the emitter motion affects the particle motion. This can be a positive or negative number. Variation Provides a percentage of variation of the Multiplier value. Bubble Motion Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Parray/PCloud > Bubble Motion rollout Select a SuperSpray/Parray/PCloud emitter. > Modify panel > Bubble Motion rollout Bubble motion provides the wobbling effect you see in bubbles rising underwater. Typically, it's used when the particles are set to rise in thin streams. Bubble motion is similar to a waveform, and the Bubble Motion parameters let you adjust the amplitude, period, and phase of the bubble "wave." NOTE The bubble motion is not affected by space warps, so you can use a space warp to control the direction of the particle flow without altering the local, wobbling bubble effect. Non-Event-Driven Particle Systems | 3067 TIP InterParticle Collisions, Deflector Binding, and Bubble Noise do not get along well together. Particles may leak through the deflector when these three are used together. Instead of bubble motion, use animated mapping. Use facing particles with an animated map of a bubble, where the bubble is smaller than the map size. The bubble is animated moving around the map. This simulates bubble motion at the map level. Interface Amplitude The distance the particle moves off its usual velocity vector as it travels. Variation The percent of Amplitude variation applied to each particle. Period The cycle time for one complete oscillation of a particle through the bubble "wave." A recommended value might be 20 to 30 intervals. NOTE Bubble motion is measured in time, not in rate, so a very large Period value means the motion takes a long time to complete. Thus, there is no motion, effectively. Period is therefore set to a very large default value so that the default motion of this type is none. Variation The percent of Period variation for each particle. Phase The initial displacement of the bubble pattern along the vector. Variation The percent of Phase variation for each particle. 3068 | Chapter 14 Space Warps and Particle Systems Particle Spawn Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Blizzard/Parray/PCloud > Particle Spawn rollout Select a SuperSpray/Blizzard/Parray/PCloud emitter. > Modify panel > Particle Spawn rollout The options on the Particle Spawn rollout let you specify what happens to particles when they die, or when they collide with a particle deflector. Using the options on this rollout, you can have particles generate additional generations of particles upon collision or death. Non-Event-Driven Particle Systems | 3069 Interface Particle Spawning Effects group Choose one of these options to determine what happens to the particles at either collision or death. 3070 | Chapter 14 Space Warps and Particle Systems None Uses none of the spawning controls, and the particles act as they normally would. That is, upon collision, they either bounce or stick, depending on Particle Bounce settings in the deflector, and on death they disappear. Die After Collision Particles disappear when they strike a deflector to which they're bound, such as the SDeflector. Persist The life, in frames, that the particle will persist after the collision. Setting this to 0 (the default) causes particles to vanish immediately after the collision. Variation Varies the Persist value of each particle, when Persist is greater than 0. This lets you "feather" the dying off of particle density. Spawn on Collision Spawn effects take place upon collision with a bound deflector. Spawn on Death Spawn effects take place at the end of each particle's life. Spawn Trails Particles are spawned from existing particles at each frame of that particle's life. The Multiplier spinner specifies the number of particles that are spawned from each particle. The base direction of the spawned particles is opposite that of the parent's velocity. The Scale, Direction, and Speed Chaos factors are applied to that base direction. NOTE If the Multiplier is greater than 1, at least one of the three Chaos factors must be greater than 0 in order to see the additional spawned particles. Otherwise, the multiples will occupy the same space. WARNING This option can produce many particles. For best results, begin by setting Particle Quantity on the Particle Generation rollout to Use Rate and to 1. Spawns The number of spawns beyond the original particle generation. For example, if this is set to 1, and you're spawning at death, one spawning will occur beyond the original lifespan of each particle. Affects Specifies the percentage of particles that will spawn. Reducing this reduces the number of particles that produce spawned particles. Multiplier Multiplies the number of particles spawned at each spawning event. Variation Specifies a percentage range by which the Multiplier value will vary, frame by frame. Non-Event-Driven Particle Systems | 3071 Direction Chaos group Chaos Specifies the amount by which the direction of the spawned particle can vary from the direction of the parent particle. A setting of 0 means no variance. A setting of 100 causes the spawned particle to travel in any random direction. A setting of 50 causes the spawned particle to deviate from its parent's path by up to 90 degrees. Speed Chaos group These options let you vary the spawned particles' speed randomly in relation to their parents' speed. Factor This is the range of a percentage of change in the speed of the spawned particle relative to its parent. A value of 0 means no change. Slow Applies the speed factor randomly to slow the speed of the spawned particles. Fast Randomly speeds up particles based on the speed factor. Both Some particles speed up, while others slow down, based on the speed factor. Inherit Parent Velocity Spawned particles inherit the speed of their parents, in addition to the effect of the speed factor. Use Fixed Value Uses the Factor value as a set value, rather than as a range applied randomly to each particle. 3072 | Chapter 14 Space Warps and Particle Systems Scale Chaos group These options apply random scaling to the particles. Factor Determines a random percentage range of scaling of the spawned particles relative to their parents, and dependent on the options below. Down Randomly scales down spawned particles to be smaller than their parents, based on the Factor value. Up Randomly scales up spawned particles to be larger than their parents. Both Scales spawned particles both larger and smaller than their parents. Use Fixed Value Uses the Factor value as a fixed value, rather than a range of values. Lifespan Value Queue group These options let you specify a list of alternative lifespan values for each spawned generation of particles. The spawned particles use these lifespans Non-Event-Driven Particle Systems | 3073 rather than the lifespan specified for the original particles in the Life spinner on the Particle Generation rollout on page 3049. List window Displays a list of lifespan values. The first value on the list is used for the first generation of spawned particles, the next value is used for the next generation, and so on. If there are fewer values on the list than there are spawnings, then the last value is used repeatedly for all remaining spawnings. Add Adds the value in the Lifespan spinner to the list window. Delete Deletes the currently highlighted value in the list window. Replace Lets you replace a value in the queue with a value in the Lifespan spinner. To use, first place a new value in the Lifespan spinner, then select the value in the queue you want to replace, and click the Replace button. Lifespan Use this to set a value, and then click the Add button to add the value to the list window. Object Mutation Queue group The options in this group let you switch between instanced-object particles with each spawning (as set with the Spawns spinner). These options are available only if Instanced Geometry is the current particle type. List window Displays a list of objects to be instanced as particles. The first object on the list is used for the first spawning, the second for the second spawning, and so on. If there are fewer objects on the list than there are spawnings, then the last object on the list is used for all remaining spawnings. Pick Click this, and then select an object in the viewport to add to the list. Note that the type of object you use is based on the settings in the Instancing Parameters group of the Particle Type rollout. For example, if you've turned on Subtree in that group, you can pick object hierarchies. Likewise, if you've picked a group, you can use groups as your spawned particles. Delete Deletes the currently highlighted object in the list window. Replace Replaces an object in the queue with a different object. Select an object in the queue to enable the Replace button. Click Replace, and then pick an object in the scene to replace the highlighted item in the queue. 3074 | Chapter 14 Space Warps and Particle Systems Load/Save Presets Rollout Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > SuperSpray/Blizzard/Parray/PCloud > Load/Save Presets rollout Select a SuperSpray/Blizzard/Parray/PCloud emitter. > Modify panel > Load/Save Presets rollout These options let you store preset values that can be used in other, related particle systems. For example, after setting parameters for a PArray and saving it under a specific name, you can then select another PArray system, and load the preset values into the new system. Interface Preset Name An editable field in which you can define a name for your settings. Click the Save button to save the preset name. Saved Presets Contains all the saved preset names. A number of presets are included with 3ds Max; to see what they do, create a particle system, load a preset, and play back the animation. Some of the presets, such as Particle Array's Shimmer Trail, are most effective with moving particle systems. Load Loads the preset currently highlighted in the Saved Presets list. Alternatively, double-click the preset name in the list to load it. Non-Event-Driven Particle Systems | 3075 Save Saves the current name in the Preset Name field and places it in the Saved Presets window. Delete Deletes the selected items in the Save Presets window. NOTE Animated parameter values subsequent to frame 0 are not stored. 3076 | Chapter 14 Space Warps and Particle Systems Animation 15 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 3078 provides information about basic animation with 3ds Max. ■ Animation in 3ds Max is accomplished by means of controllers; Working with Controllers on page 3101 gives you an overview of how they work. For specifics about controllers, see Animation Controllers on page 3133. ■ A special type of animation controller is the constraint; for details, see Animation Constraints on page 3287. ■ A powerful method for creating sophisticated, procedural animation is covered in Wire Parameters on page 3322. ■ For animating characters both humanoid and other, as well as complex mechanical assemblies, it's important to know about Hierarchies and Kinematics on page 3330. ■ Track View on page 3503 gives you access to powerful tools for analyzing and editing animation. ■ Animation Utilities on page 3795 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 7074. ■ The Motion Mixer on page 3698 is a powerful tool for combining individual movements into complex animations. ■ Another way of combining animation segments is the Animation Layers on page 3164 system. 3077 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 7549 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 3503. 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 3079 Using Auto Key Mode on page 3083 Using Set Key Mode on page 3086 Viewing and Copying Transform Keys on page 3092 Controlling Time on page 3095 Setting Time Segments on page 3097 Moving Through Time on page 3098 Choosing a Frame Rate and Playback Speed on page 3100 3078 | Chapter 15 Animation Animation Concepts Animation is based on a principle of human vision. If you view a series of related still images in quick succession, you perceive them as continuous motion. Each individual image is referred to as a frame. A frame is a single image in an animated film. Traditional Animation Method Historically, the main difficulty in creating animation has been the effort required of the animator to produce a large number of frames. One minute of animation might require between 720 and 1800 separate images, depending on the quality of the animation. Creating images by hand is a big job. That’s where the technique of keyframing comes in. Most of the frames in an animation are routine, incremental changes from the previous frame directed toward some goal. Traditional animation studios realized they could increase the productivity of their master artists by having them draw only the important frames, called keyframes. Assistants could then figure out what belonged on the frames in between the keyframes. The in-between frames were called tweens. Animation Concepts | 3079 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. 3080 | Chapter 15 Animation 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 8059 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 | 3081 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 7565. Many of the examples in the following sections describe time using the frames method for the sake of tradition and familiarity. Keep in mind that you are really animating using a very precise time-based method, and frames aren’t created until you instruct the software to render your animation. Identifying Animation Tools You can locate the basic animation tools in the following areas of the interface: 3082 | Chapter 15 Animation Track View Provides detailed animation editing capabilities in several floating or dockable windows. See Track View on page 3503. Track Bar Provides quick access to keyframes and interpolation controls. Can be expanded for function curve editing. See Track Bar on page 7531. Motion Panel Use this panel to adjust transform controllers that affect all position, rotation, and scale animation. See Working with Controllers on page 3101. 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 7661. 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 7548, include: ■ Time slider on page 7528 ■ Auto Key button on page 7549 ■ Set Key buttons on page 7552 ■ Animation playback buttons on page 7561 ■ Current frame field on page 7563 ■ Key Mode toggle on page 7564 ■ Time Configuration button on page 7565 To get started with animation, see Using Auto Key Mode on page 3083. Using Auto Key Mode Start creating an animation by turning on the Auto Key button, setting a current time, and then changing something in your scene. You can change the position, rotation, or scale of an object, or change almost any setting or parameter. When you make a change, a key storing the new value for the changed parameter is created at the current time. If that key was the first animation key created for the parameter, a second animation key is also created at time 0 to hold the parameter’s original value. Using Auto Key Mode | 3083 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 effects: ■ The Auto Key button, the time slider, and the border of the active viewport turn red to indicate you are in animation mode. ■ Whenever you transform an object or change an animatable parameter, the software creates keys at the current frame, as indicated by the time slider position. 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 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. TIP To change the default start frame to 1, or to disable automatic start-frame recording, use the Animation Preferences > Auto Key Default Frame controls on page 7776. 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. 3084 | Chapter 15 Animation 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 is off, the frame at which you create the pad objects does not matter. They remain present and inanimate through the entire animation. ■ If you change an object or parameter that is already animated, while Auto Key is off, the amount of change is applied equally across all the animation keys. For example, you might animate a sphere’s radius to be 15 at frame 0, 30 at frame 10, and 50 at frame 20. If you drag the time slider to frame 10, turn Auto Key off, and increase the sphere’s radius from 30 to 40, the change in the radius is applied to the other two keys as well. Because you increased the radius by 10 units with Auto Key off, all radius keys are increased by 10 units. The sphere’s radius is now 25 at frame 0, 40 at frame 10, and 60 at frame 20. If Auto Key had been on when you changed the radius, it would have been an animated change applied only to the key at frame 10. Identifying What Can Be Animated Because most parameters in 3ds Max can be animated, the easiest way to find out if something can be animated is just to try it. Usually, if you want to animate a parameter, it can be animated. Sometimes you need to know in advance if you can animate a parameter. If so, you can use Track View on page 3503. The Track View Hierarchy list displays every parameter that can be animated. You might also need to add a controller on page 3133 to a track before it can be animated. Using Auto Key Mode | 3085 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 transform objects 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. 3086 | Chapter 15 Animation 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 | 3087 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 3585 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 7697. 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). 3088 | Chapter 15 Animation 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 | 3089 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 3503 or in the Parameter Wiring dialog on page 3324. 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. 3090 | Chapter 15 Animation 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 8014 of the copied animation controller to the right-clicked field. Paste Animation - Wire Opens a Parameter Wiring dialog on page 3324 with the copied parameter and the paste destination parameter selected. This is Spinner Right-Click Menu | 3091 equivalent to creating a wire parameter on page 3322 in the viewport between two parameters. Edit Wire Opens the Parameter Wiring dialog on page 3324 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 7531. 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. 3092 | Chapter 15 Animation 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 7772. Creating Transform Keys with the Time Slider You can use the time slider on page 7528 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 | 3093 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 7531. 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 3138.) You can create a lock key for position or for rotation. 3094 | Chapter 15 Animation 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 top-left quadrant of the four gray squares that comprise 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 7857. 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 | 3095 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 7565 > 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: 3096 | Chapter 15 Animation 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 7565. 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 7528. ■ Restricts the range of time displayed when using the animation playback buttons. Setting Time Segments | 3097 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 7531. Rescaling the Active Time Segment You use the Re-scale Time button on the Time Configuration dialog on page 7565 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 7531. Moving Through Time You can move to any time in your active time segment by using either the time slider on page 7528, or the Current Frame field on page 7563 in the time 3098 | Chapter 15 Animation controls area. You can also move through time using the playback control buttons. Using the Time Slider The time slider shows you the current time, and lets you move to any time in your active time segment. To change the current time using the time slider, do one of the following: 1 Drag the time slider. 2 Click in the empty track to either side of the time slider. 3 Click the increment arrows at either end of the time slider. When you click in the slider track, the time slider jumps to the time where you clicked. This is a faster method of moving through time than dragging the time slider. The time slider displays the current time, followed by a slash (/), followed by the total time in the active time segment. For example 25/100 means frame 25 of 100 frames. The current time also appears in the current time field. If your scene has been animated, it’s played back in all viewports as you drag the time slider. You can use the < and > keys on the keyboard to advance the time slider a frame at a time. When Key mode is on, this will advance to the next keyframe. Moving to an Exact Time The Current Time field always displays the current time. You can also enter a time value and press Enter to move to that time. Using the Time Control Buttons You use the Time Control buttons to move forward and backward in time and to play your animation in one or more viewports. They work like VCR controls that you use to move through frames and to start and stop animation playback. The Time Control buttons include four buttons for moving through time and a center flyout for controlling animation playback: Go To Start on page 7560 Previous Frame/Key on page 7560 Play/Stop on page 7561 Moving Through Time | 3099 Next Frame/Key on page 7563 Go To End on page 7563 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 7565 > 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. Configuring Animation Playback You use settings in the Time Configuration dialog on page 7565 > 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 3100 | Chapter 15 Animation different playback speeds are also useful when using the Motion Capture utility on page 3798. 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. The default controllers are: ■ Position: Position XYZ ■ Rotation: Euler XYZ ■ Scale: Bezier Scale Working with Controllers | 3101 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 3138. Bezier controllers interpolate between keyframes in a smooth curve. You can adjust the key interpolation of these interpolations through the keys on the track bar or in Track View. This is how you can control acceleration, hesitation and other types of motion. The default controller for Rotation is Euler XYZ, which breaks the rotation down into three individual Bezier Float tracks. The default controller for Position is Position X,Y,Z. The Scale controller default is Bezier. NOTE If you load files made in earlier versions of the software, their existing controllers will be maintained. WARNING Be aware that Euler rotations behave differently than TCB rotations. If you are used to using TCB controllers, you can reassign TCB Rotation as the controller and you will get the same behavior you are used to. 3ds Max has a specialized type of controller, called a constraint, that is commonly used to help automate the animation process. A constraint can be used to control an object’s position, rotation, or scale through a binding relationship with another object. You apply constraints and controllers using commands on the Animation menu. When you assign a controller from this menu, a weighted list controller is automatically applied, with the controller you've selected appearing first in the list. The weighted list controller gives you the ability to blend controllers, similar to a nonlinear animation system. If you assign a controller through the Motion panel or Track View, it replaces the existing controller, rather than creating a list controller. You can do that manually if you are working in the Motion panel or Track View. This section explains techniques for working with controllers. For details about the parameters and use of each controller type, see Animation Controllers on page 3133. 3102 | Chapter 15 Animation 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 You can work directly with controllers in two different places: ■ 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 3503. ■ 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 7663. 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. Understanding Controllers | 3103 Compound Controllers: Combine or manage multiple controllers. Compound controllers include high-level Transform controllers, such as PRS on page 3220, the Euler XYZ Rotation controller on page 3151, the Transform Script controller on page 3261, and the List controller on page 3194. 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 3287. 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. 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. 3104 | Chapter 15 Animation 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 3214, 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. ■ 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. Changing Controller Properties | 3105 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 7531. 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. 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. 3106 | Chapter 15 Animation 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 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. Assigning Controllers | 3107 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. 3108 | Chapter 15 Animation 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 3645. 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 | 3109 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 3107). 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 3110 | Chapter 15 Animation 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 3133 for detailed descriptions of controller properties. Bezier Controllers Bezier controllers on page 3138 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 | 3111 ■ 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 3258 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. Linear Controllers The Linear on page 3193 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. For a rigid, mechanical motion, use Linear controllers. Noise Controllers The Noise on page 3214 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. XYZ Controllers The XYZ controllers such as Euler XYZ on page 3151 and Position XYZ on page 3219 are specifically designed so that you have three separate curves, one for each axis. This allows you to independently view and control the curves 3112 | Chapter 15 Animation 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 3135 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 3194 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. Expression/Script Controllers You write custom code for Expression controllers on page 3154 and Script controllers on page 3248 in an Expression or Script controller dialog. You specify Special-Purpose Controllers | 3113 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 3324 and Reaction Controllers on page 3222. See also Expression Controller Techniques on page 3161 Trigonometric Functions on page 370 Vectors on page 373 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 3798 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 from the Customize User Interface dialog on page 7697 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. 3114 | Chapter 15 Animation 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 3563. See also: ■ Position XYZ Controller on page 3219 ■ General-Purpose Controllers on page 3111 ■ Euler XYZ Rotation Controller on page 3151 ■ Scale XYZ Controller on page 3246 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. On/Off Controller An On/Off controller on page 3217 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. Float Controllers | 3115 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 3265 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 3220 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. 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. 3116 | Chapter 15 Animation Transform Script Controller The Transform Script controller on page 3261 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 3269 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 6936. Controlling Position Below the Transform controller on page 7908 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. 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 3151, Position XYZ Controller on page 3219, and Scale XYZ Controller on page 3246. Controlling Position | 3117 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 3253 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. Euler XYZ Rotation Use the Euler XYZ Rotation controller on page 3151 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 3118 | Chapter 15 Animation 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. Two data types are available 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. ■ The Y value field stores Green color values. ■ The Z value field stores Blue color values. Controlling Colors | 3119 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 3138) 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 3149 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 1545 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, you must use the Pick Targets and Current Targets rollouts on page 709 in the Modify panel. 3120 | Chapter 15 Animation Barycentric Morph Controller The Barycentric Morph controller on page 3137 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 Scooter following a trajectory Motion Panel Commands | 3121 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 305 (and on the Display panel > Display Properties rollout) controls whether trajectories will be visible for an object. Using trajectories, you can do the following: ■ Display the 3D path for selected object’s position tracks. ■ Insert and delete keys from the path. ■ Move, rotate, and scale keys on the path. ■ Convert the path to a spline object. ■ Derive a new path from a spline object. ■ Collapse transforms. 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 7697: ■ Trajectory Add Key Mode Toggle page 3124. ■ Trajectory Delete Key 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. 3122 | Chapter 15 Animation : Enters and exits Add Key mode on : Activates the Delete Key on page 3124 function on 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. 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. Motion Panel Commands | 3123 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. 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. 3124 | Chapter 15 Animation 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. 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. Motion Panel Commands | 3125 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 The PRS Parameters rollout provides tools for creating and deleting keys. PRS stands for the three basic transform controllers: Position, Rotation, and Scale. Procedures To create a PRS transform key: 1 Select an object in the viewports. 2 Drag the time slider to the frame where you want to place a key. 3 On the Motion panel, choose Parameters > PRS Parameters rollout. 4 Click one of the following buttons under Create Key PRS Parameters rollout: ■ Click Position to create a Position key. ■ Click Rotation to create a Rotation key. ■ Click Scale to create a Scale key. If a particular Position, Rotation, or Scale controller doesn't use keys, then that button is not available under Create Key. For example, you can’t create Position keys if you're using a Noise Position controller. 3126 | Chapter 15 Animation 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. 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 347 > 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. Motion Panel Commands | 3127 See also: ■ Key Info (Advanced) Rollout/Dialog on page 3131 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. 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. 3128 | Chapter 15 Animation 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 3129. 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 3127 > 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. Motion Panel Commands | 3129 TIP You can also set the default tangent type through the Default In-Out Tangents For New Keys on page 7557 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. 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. 3130 | Chapter 15 Animation 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 7557 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 347 > 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 1583 on the spline used as a path. See also: ■ Key Info (Basic) Rollout/Dialog on page 3127 Motion Panel Commands | 3131 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. 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 3129. ■ 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. 3132 | Chapter 15 Animation 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. 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 3287, 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 3617 in Track View - Dope Sheet on page 3503, 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 Animation Controllers | 3133 ■ 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 3593 in Track View or in the Motion panel on page 7663. The controllers and constraints are: Attachment Constraint on page 3288 Audio Controller on page 3135 Bezier Controllers on page 3138 Barycentric Morph Controller on page 3137 Block Controller on page 3142 Boolean Controller on page 3147 Color RGB Controller (Point3 XYZ Controller) on page 3149 Euler XYZ Rotation Controller on page 3151 Expression Controller on page 3154 Inverse Kinematics (IK) on page 3374 Layer Controller on page 3162 Limit Controller on page 3181 Linear Controller on page 3193 List Controller on page 3194 Link Constraint on page 3308 LookAt Constraint on page 3312 Motion Capture Controller on page 3203 Master Point Controller on page 3201 Noise Controller on page 3214 On/Off Controller on page 3217 Orientation Constraint on page 3319 Path Constraint on page 3297 3134 | Chapter 15 Animation Position Constraint on page 3303 Position XYZ Controller on page 3219 PRS Controller on page 3220 Reaction Controllers on page 3222 Scale XYZ Controller on page 3246 Script Controller on page 3248 Slave Parameters Dialog (Block Controller) on page 3284 Smooth Rotation Controller on page 3253 Spring Controller on page 3253 Surface Constraint on page 3293 TCB Controllers on page 3258 Transform Script Controller on page 3261 Waveform Controller on page 3265 See also: ■ Working with Controllers on page 3101 ■ Animation Constraints on page 3287 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. Audio Controller | 3135 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 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 3545. (Sound Track in the Track View hierarchy) In the Time Configuration dialog, turn on Real Time. Interface See Audio Controller Dialog on page 3273 3136 | Chapter 15 Animation Barycentric Morph Controller Select an object. > Create panel > Geometry > Compound Objects > Morph The Barycentric on page 7920 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 709 ■ Morpher Modifier on page 1545 Procedures See Morph Compound Object on page 709 and Barycentric Morph Controller Key Info Dialog on page 3278 Barycentric Morph Controller | 3137 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 709 for Morph parameters. 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. 3138 | Chapter 15 Animation 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. 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. Bezier Controllers | 3139 See Tangent Types on page 3129 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. 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 3140 | Chapter 15 Animation 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. 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. Bezier Controllers | 3141 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 A Block controller is a global List controller on page 3194 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 3280. This is the first step in creating a block. 3142 | Chapter 15 Animation 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 3286 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 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 3279. Attach Controls Dialog (Loading Blocks) The Attach Controls dialog on page 3276 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 3284. 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. Block Controller | 3143 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. 3144 | Chapter 15 Animation 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. Block Controller | 3145 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). 3146 | Chapter 15 Animation 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 3217. 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 3407. 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. Boolean Controller | 3147 The Boolean controller can be assigned to any parameter that would normally be controlled by a float or boolean class controller, such as a 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 3148 | Chapter 15 Animation To change Boolean controller key values via MAXScript: ■ Enter the following into either the MAXScript Listener or Mini Listener: . .keys[ ].value = where is the object containing the Boolean-controlled parameter (for example, $Sphere01, is the parameter itself (for example, Smooth, is the actual sequential number of the key in the key array, and 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. Color RGB Controller (Point3 XYZ Controller) | 3149 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 3138 for a description of these parameters. 3150 | Chapter 15 Animation 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 7697 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 973 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. Euler XYZ Rotation Controller | 3151 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 3261 option, you can get rotation values greater than 360 degrees. TIP If you’re used to working with TCB rotation, you might find it difficult to adapt to the Euler workflow. In that case, you might want to assign TCB as the default rotation controller. See Specifying Default Controllers on page 3110. 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. 3152 | Chapter 15 Animation 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. Euler XYZ Rotation Controller | 3153 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 3220. 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 3154 | Chapter 15 Animation Interface on page 3159 Procedures on page 3156 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 3503 and on the Motion panel on page 7663. You can assign expressions to the following kinds of scene elements: Scene element Controller Creation parameters Any numeric creation parameter Transforms Position [X, Y, Z] X Rotation Y Rotation Z Rotation Scale [X%, Y%, Z%] Modifiers Any numeric modifier parameter (including creation parameters) Materials Colors [R, G, B] Any numeric material parameter Expression Controller | 3155 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 361 ■ Expression Controller Techniques on page 3161 ■ Trigonometric Functions on page 370 ■ Vectors on page 373 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. 3156 | Chapter 15 Animation 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. Expression Controller | 3157 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. 3158 | Chapter 15 Animation 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. Expression Controller | 3159 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. 3160 | Chapter 15 Animation Expression Controller Techniques This topic summarizes some useful expression techniques. The following topics review trigonometric functions and vector arithmetic. If you’re familiar with these subjects you can skip the review topics. Use these expressions when you have applied an Expression controller using the Assign Controller rollout in the Motion panel. Commonly Used Expressions This topic lists some expressions that you might find useful in situations when you animate. Circular Path [ Radius * cos(360*Time), Radius * sin(360*Time), 0 ] where Time is one of the predefined time variables such as NT or S. If you make the two Radius values unequal, you get an elliptical path. If you specify a nonzero Z component, the path is no longer planar. Following Another Object [X, Y, Z] + Position where Position is the Position controller of the second object. The vector [X, Y, Z] can be an offset from the second object. (If it’s [0,0,0], the two objects occupy the same position.) It can also be a vector expression that specifies some movement in itself. Keeping an Object Between Two Objects (Position1 + Position2) / 2 where Position1 and Position2 are the Position controllers of two objects. The divisor 2 constrains the object to be halfway between the two other objects. Other values constrain the object to other locations. Bouncing Between Other Objects (1+sin(360*Time))/2 * (Pos1-Pos2) + Pos2 Expression Controller | 3161 where Time is one of the predefined time variables such as NT or S; Pos1 and Pos2 are the Position controllers of two other objects. The subexpression (1+sin(360*Time))/2 is a value that oscillates between 0 and 1 over time. (Pos1-Pos2) is the vector between the two other objects. Multiplying the two and then adding Pos2 as an offset locates the object along this vector. Changing the Number of an Object’s Segments Based on Camera Distance This expression varies the number of segments in a cylinder based on the distance of a camera. It is assigned to the cylinder’s Segments creation parameter. if ( (length(Camera-Myself) > 35), 3 + (50*Height) / length(Camera-Myself), MaxSegs) where Camera is the position controller of the camera; Myself is the cylinder’s position controller; Height (= 70) is the cylinder’s height; MaxSegs (=100) is the maximum number of segments. When the camera is closer, more segments make the cylinder smoother; when the camera is distant, the smoothing is less important and fewer segments render more quickly. The if() function returns its second argument if the first argument is true; otherwise, it returns its third argument. In this example, if the camera is more than 35 units away from the cylinder, the expression calculates the number of segments; if the camera is 35 units away or closer, the number of segments is the MaxSegs constant. The values in the second argument are chosen so that as the distance decreases toward the threshold of 35, the number of segments increases toward MaxSegs. The addition "3+" ensures that the cylinder always has at least three segments, even when the division rounds to zero (Segments is an integer). NOTE To the expression, it doesn’t matter whether the camera is moving, or the cylinder, or both. Layer Controller Main toolbar > Curve Editor (open) > Highlight a Layer controller track and right-click > Properties 3162 | Chapter 15 Animation 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 3164 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 7508 or the Controller menu of the Curve Editor. The Layer controller dialog has similarities to the List controller on page 3194 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 3178 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. Layer Controller | 3163 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 3164 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 3194 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 967. 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 3164 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 3164 | Chapter 15 Animation 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 3194 and biped layer system on page 4403, while it is more flexible and simpler for the animators to use. Enabling Animation Layers When you enable animation layers on page 3176 for a selected object by turning them on in the Enable Anim Layers dialog, 3ds Max assigns a Layer controller on page 3162 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. Layer Controller | 3165 NOTE If you layer-enable a controller but do not see a Layer controller appear in the Track View hierarchy window, open and close the Enable Anim Layers dialog again. The original controller before you enable animation layers The Layer controller nests the original controller in its Base Layer. To revert from a Layer controller to the original controller, click Disable Anim Layer on page 3178 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 3162. NOTE Turning off a track in the Enable Anim Layers dialog does not disable it. You can assign a Layer controller either at the leaf level of a controller track (such as a material's Diffuse Color track), or at a branch level (such as a Position track). The Layer controller affects a point 3 branch. 3166 | Chapter 15 Animation The Layer controller affects a leaf track. If the selected object already has a list controller track when you enable layers, that list controller is preserved within the Base Layer of the new Layer controller. The original List controller The new Layer controller nests the List Controller. NOTE You cannot nest a Layer controller within a List controller or another Layer controller. Working with Animation Layers The animation layers list works as follows (Refer to the procedure section below on page 3170 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. Layer Controller | 3167 ■ 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. 3168 | Chapter 15 Animation 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 3172. 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 3194, 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 7538. When you add a new animation layer on page 3180, 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 7058 or externally reference on page 6959 a source scene (or object) containing layers into your master scene, the system adds the incoming layers to the master scene's layer list. Layer Controller | 3169 NOTE All animations within an incoming XRef object or scene is preserved within an XRef controller on page 3269. 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 3162 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 3162 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. 3170 | Chapter 15 Animation 2 Open the Curve Editor on page 3518 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 3518, 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. Layer Controller | 3171 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. 3172 | Chapter 15 Animation 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 3324 opens, with the two highlighted parameters. Click the left directional arrow button to control the cube's position using the teapot's animation. Layer Controller | 3173 7 Click Connect and close the window. Drag the time slider and notice how the cube's position in Z matches the teapot's layered animation in X. 8 Select the teapot and expand the layer list from the Animation Layers toolbar. 9 Click the plus sign icon next to the Noise Layer. This excludes the layer from the output track. 10 Drag the time slider again. The cube doesn't move erratically like the teapot. Try including and excluding both layers in the list to see the results. 3174 | Chapter 15 Animation Example: To copy and paste a layer and update an active layer: This procedure continues from the previous procedure and focuses solely on the teapot. 1 Make sure the teapot is selected and choose Base Layer from the animation layers list to make it active. 2 Click Copy Anim Layer on the Animation Layers toolbar to buffer this layer and the data it contains. 3 Click Paste New Layer. On the Rename Anim Layer dialog, enter “Changes on Z axis” as name and click OK. This new layer becomes the active layer. 4 While Auto Key is on, move the teapot on the Z axis at frames 5 and 20. This animation update only affects the position tracks of the active layer. Example: To collapse a layer: This procedure continues from the previous procedure. 1 In the animation layers list, turn off Noise Layer. Then, choose Changes on Z axis to make it active. 2 Click Collapse Anim Layer on the Animation Layers toolbar. This merges the layer onto the next available one (Base Layer), skipping Noise Layer, which is off. 3 Turn Noise Layer back on in the list. Layer Controller | 3175 Interface Enable Anim Layers Assigns a Layer controller to tracks you specify. NOTE Enabling animation layers does not create a new layer, but rather transfers all chosen controller tracks to the Base Layer. This opens the Enable Anim Layers dialog, which, similar to the Set Key Filters dialog on page 3086, lets you turn on tracks you want to assign a Layer controller to. The Position, Rotation, and Scale tracks are on by default. NOTE Once you turn on a track, you can turn it off only by disabling the respective Layer controller. If you enable animation layers for an object that has animation loaded in the Motion Mixer on page 3698, the following dialog opens: 3176 | Chapter 15 Animation Remapping is necessary in this case because enabling Animation Layers causes the full controller names to change. For example, if a sphere's X position track before enabling Animation Layers is Sphere01\Transform\Position\X Position, then after enabling animation layers it might change to Sphere01\Transform\Position\Base Layer\X Position (the layer name is inserted into the controller name). If you accept the default dialog option, to create the new map files automatically, 3ds Max automatically generates any necessary XMM files on page 7083 with the same names as the XAF files and places them in the same directory as the original map files, or if no map files exist, in the same directory as the XAF files. Thereafter, when you open this scene file the map file is loaded automatically and no additional mapping is required. However, if you turn off Automatically Create The New Map Files? before clicking OK, no map files are generated, and the next time you open the scene file you're prompted to create map files. Without map files, the animation doesn't appear correctly. Select Active Layer Objects Selects all objects in your scene containing the active layer. [animation layer list] Displays all existing layers for the selected object. Each layer in the list contains toggle icons to turn it on or off, as well as include or exclude it from the controller's output track. See Working with Animation Layers on page 3167 for more details. [weight] Sets a global weight for the active layer, which affects If the active layer is shared by several objects (ex. Base Layer), changing its weight affects them all. Anim Layer Properties Opens the Layer Properties dialog on page 7451, which lets you set global options for layers. Layer Controller | 3177 Add Anim Layer Opens the Create New Animation Layer dialog on page 3180, which lets you specify settings related to the new layer. This adds a new layer to every track that has a Layer controller. Delete Anim Layer Removes the active layer, along with the data it contains. A confirmation dialog prompts you before deletion. NOTE You cannot delete the Base Layer. Alternatively, Click Disable Anim Layer on page 3178 to removes the Layer controller entirely. Copy Anim Layer Copies the active layer's data and enables Paste Active Anim Layer and Paste New Layer. Paste Active Anim Layer Overwrites the active layer's controller type and animation keys with the copied data. NOTE You cannot paste a copied layer from one object onto another'. Paste New Layer Creates a new layer with the copied layer's controller type and animation keys. Opens the Rename Anim Layer dialog, in which you can use the default layer name or enter your own. Collapse Anim Layer Collapses the active layer to the one below it, as long as it is not turned off. If it is, the collapsed layer cycles through the list until it finds an available layer. NOTE Collapsing a layer does not remove the Layer controller. Click Disable Anim Layer to remove it. Disable Anim Layer Removes the Layer controller from the selected object. The animation keys on the Base Layer revert to the original controller. A dialog prompts for confirmation. NOTE Before you can disable the Base Layer, you have to delete or collapse all layers above. 3178 | Chapter 15 Animation Layer Properties Dialog Right-click unused area of any toolbar. > Animation Layers > Create New Animation Layer This dialog provides global options in regards to collapsing animation layers on page 3164 and isolating the active layer from the rest. Interface Collapse To Sets the controller type for when you collapse a controller track onto a non-keyable controller track, such as a Noise controller. ■ Bezier or Euler On collapse, the resulting track is assigned either a Position XYZ controller (for a Position track), a Bezier Scale controller (for a Scale track), or an Euler XYZ controller (for a Rotation track). ■ Linear or TCB On collapse, the resulting track is assigned either a Linear controller (for Position and Scale tracks) or a TCB controller (for a Rotation track). ■ Default On collapse, the resulting track is assigned a default controller based on the original controller track. Refer to Specifying Default Controllers on page 3110 for more details. Per Frame Collapse Range Sets the range to cover when you collapse a layer. NOTE For best results, turn off Collapse to Keys Only, When Possible; otherwise, based on the collapsed layer's controller and tangent type, the system might collapse to keys instead. ■ Current When chosen, a key is set on every frame of your scene's animation range when you collapse a layer. Layer Controller | 3179 ■ Range When chosen, a key is set on every frame of the animation range you specify. Start/End Sets the collapse range boundaries. Collapse To Keys Only, When Possible When you collapse a layer, the keys are merged only when the respective controllers are of the same type, same tangent types, and Blend Eulers As Quats is on. Default=on. Mute Layers Above Active Layer When on, you see the effects of the layers only up to the active layer, inclusively. This is similar to the Visible Before/After options of the biped Layers rollout on page 4403. Create New Animation Layer Dialog Right-click unused area of any toolbar. > Animation Layers > Create New Animation Layer This dialog lets you choose both the name and controller type of the new layer. Interface Layer Name Lists all available layers in your scene. You can use the default name, enter a custom name, or pick one from the list. If you choose an existing layer from the list, it inherits that layer's name and weight properties. Refer to Working with Animation Layers on page 3167 for more details. TIP You can rename a layer after it is added from the Layer Controller dialog on page 3162. NOTE All animation layer names persist in the Layer Name list even after you delete their host object. Resetting the scene clears the list. 3180 | Chapter 15 Animation [controller type] Determines the controller type to assign to each track within the animation layer. ■ Duplicate the Active Controller Type The new layer's controller type becomes the same as the one from the active layer, on a per-track basis. For example, if a track in the active layer has a Noise controller, adding a new layer copies that controller type. ■ Use Default Controller Type When chosen, the new layer's controller does not take into account the active layer's controller type and instead uses the original track's type. Limit Controller Main toolbar > Curve Editor (Open) > Highlight a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Float Limit Graph Editors > Track View - Curve Editor > Highlight a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Float Limit The Limit controller lets you specify upper and lower limits to available controller values, thus restricting the potential value range of the controlled track. For example, in a character rig you could use this to restrict rotation on finger joints so the fingers can't bend backward. Basically, once a track is limited, and the limit is active, you can't set a value for the track beyond the limit. You can apply a Limit controller to any other type of controller; the limited controller (that is, the original controller) then appears as a child of the Limit controller in the Track View hierarchy. The Limit controller lets you specify upper and lower limits to available controller values, thus restricting the potential value range of the controlled track. For example, in a mechanical assembly you could use this to restrict rotation on a part so that it doesn't rotate beyond its standard range of motion. Basically, once a track is limited, and the limit is active, you can't set a value for the track beyond the limit. You can apply a Limit controller to any other type of controller; the limited controller (that is, the original controller) then appears as a child of the Limit controller in the Track View hierarchy. Because the Limit controller doesn't change the original controller, you can easily switch back and forth between the original and the limited animation by toggling the limits. But if you collapse on page 3549 the Limit controller, the result is the limited animation, and the original animation is no longer available. Limit Controller | 3181 Use of the Limit controller makes it faster to set up and create animation. It eliminates the need for expressions or scripts to do the same thing, this improving the ease with which you can set up automation in hierarchies and rigs, creating effects such as avoiding collision, FK joint limits, etc. For example, a Technical Director might want to assign limits to float values that animators will adjust to make posing easier, enforce standards, or prevent inconsistencies and mistakes. A TD could use limits for: ■ light intensity ■ finger rotation ■ position extents for sliding drawers ■ camera field-of-view ■ limiting patch resolution to that supported by the game engine Character riggers can use limits to create complex relationships or shortcuts in rigs. Examples include: ■ Wire wrist-twist bones to the rotation of the hand, but limit the rotation of the wrist-twist or hand to stop short of any flipping that might occur. ■ Prevent unnatural translation of a spline IK helper by causing limit values for its local position tracks to react to the angle or distance of the helper from surrounding helpers. ■ React to when IK is disabled, and match the limits of the solver in FK. ■ Limit the position of the IK chain swivel-angle target for the knee so that it can never go behind the character. That is, the target is linked to character’s root. Use Cases Following is a brief list of examples of specific uses for the Limit controller: ■ Select the Y Rotation tracks of all finger bones in a character's hands and assign a Limit controller. Use Set Key mode to pose the fingers at the extremes of their ranges of motion and then use the right-click menu on page 3192 > Set Upper/Lower Limit commands to limit the fingers' motion. NOTE Limits are included for Set Key via the Other category. 3182 | Chapter 15 Animation ■ You apply a Noise controller to the X Rotation track of a window shutter object to make it rattle, but the object intersects the building at the lower end of its motion range. Apply a Limit controller to the track and set the Lower Limit value to prevent the intersection. ■ Following from the previous example, say the wind tears the window shutter from the building at frame 100. If the Noise controller is in a Float List with a Bezier Float, you can weight the noise to 0 at frame 100, when the shutter is torn from the building by the wind, at which point the animator will key the animation. Limits are unnecessary after frame 100. At frame 99, you'd use Set Lower Limit. Then, at frame 100, you'd edit the Lower Limit value to set the limit to much lower, essentially removing the limit. Finally, you would set keyframes to animate its movement past frame 100. Limitations of the Limit Controller It's important to be aware of the following limitations of Limit controllers: ■ Limit controllers do not limit IK joints. All IK solvers use their own limits, and ignore Limit controllers. Interactive IK uses the current controllers, but it also has its own limits, so using Limit controllers with interactive IK will produce unpredictable results. ■ The Limit controller currently supports only Float controllers. Thus, the Limit controller is currently available only under the name Float Limit. ■ Upper and lower limits values are expressed in the same units or coordinates as those used by the limited controller. Thus, for example, Float limits on an X Position track are in local coordinates, not in global coordinates. Procedures Example: To use the Limit controller: 1 Start with an animated object, and open Curve Editor. In this example, the teapot position was animated on the X axis between extents of about -45 to 40, and on the Y axis between extents of about -80 and 54. Limit Controller | 3183 2 Assign the Float Limit controller to a track. In this example, we'll assign it to the X Position track. This opens the Float Limit Controller dialog, where you can set limits and other values, but you might find it easier to do this interactively, so for now just accept the defaults by closing the dialog. The track retains its original name (X Position, in this example), but the icon has changed to indicate that it's now a Limit controller, and is expandable (see illustration in following step). 3 Expand the track. The hierarchy contains a child track, named Limited Controller, and a new, expandable child branch named Limits. 4 Click the X Position track and then the Limited Controller track to compare them. 3184 | Chapter 15 Animation Because the original X-axis movement falls within the default limits, the two tracks are identical. 5 Scrub the animation until the X-axis position is where you want to set a limit. In this example, the position is about -20, where we'll set a lower limit. 6 Highlight the X Position track, and then right-click and from the right-click menu choose Limit Controller > Set Lower Limit. Limit Controller | 3185 The graph curve is now clipped below the lower limit. When you scrub the animation, the object doesn't move beyond that position. 7 Again scrub the animation, stop where you want to set the upper limit, right-click the X Position track, and choose Limit Controller > Set Upper Limit. 3186 | Chapter 15 Animation In this example, we've set it at about 13. The graph curve is now clipped above the upper limit and below the lower limit. The resulting motion is likewise constrained. 8 Scrub the animation. The motion on the X axis is limited at both extremes; wherever the object originally moved beyond the limits, it now behaves as though it's hitting a wall. 9 Again compare the two tracks. The Limit Controller (X Position) track clearly shows the upper and lower clipping, while the Limited Controller track shows the original motion. The original motion still exists as the Limited Controller track; you can restore it temporarily by toggling the Limit controller. 10 Highlight the X Position track, and then right-click and choose Limit Controller > Toggle Limit. Now, when you scrub the animation, the object moves as before. 11 Choose Limit Controller > Toggle Limit again to restore the limits You can copy the Limit controller in two ways: the limits only, or the limits and motion combined. First, you'll copy the limits only. 12 Highlight the Y Position track and note how its curve differs from that of the X Position track. Limit Controller | 3187 13 Highlight the X Position track, and then right-click and choose Limit Controller > Copy Limit Only. 14 Highlight the Y Position track, and then right-click and choose Limit Controller > Paste Limit Only. When the Paste dialog opens, click OK to confirm the paste as a copy. Now the Y Position track is also limited, using the same extents as the X Position track, but retaining its original underlying motion. To verify this, compare the Y Position track with its child Limited Controller track. Next, you'll copy the entire limited X Position track to the Z Position track, including motion and limits. The Z Position track currently is not animated. 15 Highlight the X Position track, and then right-click and choose Copy. 16 Highlight the Z Position track, and then right-click and choose Paste. Compare the X and Z Position tracks and both their child Limited Controller tracks. Each corresponding pair of curves is identical. The motion appears as though the object is hitting the inside edge of a box. Finally, we'll cover the Smoothing Buffer settings. By default, sharp corners are created wherever a curve is limited, causing abrupt changes in motion. You can smooth off these corners with the Smoothing Buffer parameters, resulting in more natural-looking motion. 17 Highlight the X Position track, and then right-click it and choose Properties. This reopens the Float Limit Controller dialog. 18 Use the Upper Limit group > Smoothing Buffer spinner to increase the Smoothing Buffer value as far as it can go. As you increase the value, the corners of the upper limit on the graph become smoother. 3188 | Chapter 15 Animation Note that there's an upper limit to this value; in this case, it's 34.434. This limit is determined by the values of the other three settings on the dialog. 19 Try increasing the Lower Limit group > Smoothing Buffer. It's not possible with the upper smoothing value at its maximum. 20 Decrease the upper smoothing value, and then increase the lower smoothing value. Now you get smoothing at both the upper and lower limits. Interface The Limit Controller interface comprises the Float Limit Controller dialog and several-right-click menu items. Limit Controller | 3189 Float Limit Controller dialog The Float Limit Controller dialog opens when you first assign the Limit controller, or when you right-click a highlighted Limit-controller track and choose Properties. Enable Toggles the Limit controller. When off, the original values of the limited track are in effect. When on, the original values are limited by the Upper Limit and Lower Limit values. NOTE You can enable and disable all Limit controllers in the scene simultaneously with the Toggle Limits command, available from the 3ds Max Animation menu. If some Limit controllers are on and the rest are off, Toggle Limits turns them all on. Upper Limit Group Enable Toggles the upper limit set by the controller. When off, no upper limit is imposed. Default=on. [Upper Limit value] The highest value permitted by the Limit controller. Any values above this value in the original controller are clipped; that is, they're set to this value, unless smoothing is in effect. Default=1000.0. You can animate this value via keyframing and other standard methods, and manipulate this animation in Track View via the Upper Limit track in the controller's Limits branch. 3190 | Chapter 15 Animation Smoothing Buffer Specifies a smoothing value, so that clipped values at the beginning and end of a clipped range gradually increase and decrease instead of leveling off abruptly. The maximum total smoothing is determined by the Upper and Lower Limit values. (Upper Limit > Smoothing Buffer value) + (Lower Limit > Smoothing Buffer value) cannot exceed this total. For the smoothest possible results at the upper and lower extents of the clipping, set either Smoothing Buffer value to the maximum amount, and then back it off to half that value and set the other Smoothing Buffer to the same amount. You can animate the Smoothing Buffer value via keyframing and other standard methods, and manipulate this animation in Track View via the Upper Smoothing track in the controller's Limits branch. Lower Limit Group Enable Toggles the lower limit set by the controller. When off, no lower limit is imposed. Default=on. [Lower Limit value] The lowest value permitted by the Limit controller. Any values below this value in the original controller are clipped; that is, they're set to this value, unless smoothing is in effect. Default=-1000.0. You can animate this value via keyframing and other standard methods, and manipulate this animation in Track View via the Lower Limit track in the controller's Limits branch. Smoothing Buffer Specifies a smoothing value, so that clipped values at the beginning and end of a clipped range gradually decrease and increase instead of leveling off abruptly. The maximum total smoothing is determined by the Upper and Lower Limit values. (Upper Limit > Smoothing Buffer value) + (Lower Limit > Smoothing Buffer value) cannot exceed this total. For the smoothest possible results at the upper and lower extents of the clipping, set either Smoothing Buffer value to the maximum amount, and then back it off to half that value and set the other Smoothing Buffer to the same amount. You can animate the Smoothing Buffer value via keyframing and other standard methods, and manipulate this animation in Track View via the Lower Smoothing track in the controller's Limits branch. Limit Controller | 3191 Limit Controller right-click menu To access the Limit Controller right-click menu, highlight a Limit Controller track in the Track View hierarchy, and then right-click the track and move the cursor to the Controllers quadrant > Limit Controller menu item. NOTE After using Copy Limit Only on a Limit controller track, you can apply a new Limit controller with the same limits to any track by invoking Paste Limit Only. Toggle Limit Turns the Limit controller on and off. This is the same as the Enable check box on page 3190 on the Float Limit Controller dialog. Set Upper Limit Sets a value/key in the Upper Limit track at the current frame equal to the value at the current frame of the limited track. If there is only one key, the value of the limit is constant over time. 3192 | Chapter 15 Animation Set Lower Limit Sets a value/key in the Lower Limit track at the current frame equal to the value at the current frame of the limited track. If there is only one key, the value of the limit is constant over time. Remove Limit Deletes the Limit controller, restoring the original controller without limits. Copy Limit Only Copies only the Limit values and ignores the limited controller of the highlighted track. Paste Limit Only Applies only the copied Limit values, or adds a Limit controller with the copied values if one doesn't exist, while retaining the values of the original limited track. As with pasting copied controller tracks, you can paste the Limit values as a copy or an instance of the copied Limit controller, with the option to replace all instances of the paste target. Linear Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Linear Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View toolbar > Controller menu > Assign > Linear Animation menu > Position, Rotation or Scale controllers > Linear The Linear 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. Linear controllers do not display a properties dialog. The only information stored in a linear key are the time and animation values. Use Linear controllers whenever you want a very regular, even transition from one key to the next. For example, use a Linear controller for: ■ A color parameter to change from one color to another at a constant rate of change. ■ Transforms to produce mechanical, robot-like motion. Linear Controller | 3193 Procedures To assign a Linear controller: 1 Select an animated object. 2 In the Motion panel > Parameters > Assign Controller rollout, select the Position track in the list window. 3 Click Assign Controller, and then select Linear Position in the Assign Controller dialog. The animated object has a mechanical motion. You can also assign this controller in Track View. Interface No Properties dialog is available for Linear controllers. You can, however, move keys in Track View to change the animation. Time Change linear key time. Move keys horizontally in Track View Edit Keys or Function Curves mode. Value Change linear animation values by moving keys vertically in Track View Function Curves mode, change the parameter value in the viewport with Auto Key on. List Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > List Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View toolbar > Controller menu > Assign > List Select an object in the viewport > Motion panel > Assign Controller rollout > Highlight either Position, Rotation or Scale controller > Assign Controller button > choose Position List, Rotation List or Scale List. 3194 | Chapter 15 Animation The List controller 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. Controllers are evaluated in top-to-bottom order. In addition, you can specify a Weight setting for each controller in the list to determine its relative influence. When you assign a List controller to a parameter, the current controller is moved one level below the List controller; it becomes the first controller in the list. A second parameter, named Available, is added below the List controller. This is an empty placeholder for the next controller you add to the list. By default, each listed controller's Weight setting is set to 100.0. This setting can be changed to increase or decrease the effect the controller has on an object. When you assign a controller using the Animation menu, a list controller is automatically assigned as a default, with the chosen controller placed first in the list. This behavior differs from when you assign a controller in the Motion Panel or Track View, where only the specified controller is assigned. You can animate List controller weights to achieve the equivalent of a non-linear animation system. Each list controller track can hold different values from frame to frame that you can turn on or off, or blend between by animating the weights. Procedures Example: To use the List controller to combine two controllers: 1 Create a box, and then turn on Auto Key. 2 Create a simple animation containing three position keys. 3 On the Motion panel > Parameters > Assign Controller rollout, click the position track. 4 Highlight the Position transform and click Assign Controller. List Controller | 3195 5 Choose the Position List in the Assign Position Controller dialog. Click OK. 6 Click the plus sign in the Position track to expand the track. A Position XYZ track and a track labeled Available are now visible. 7 Click the track named Available and then click the Assign Controller button. 8 Choose Noise Position in the Assign Controller dialog, and then click OK. The Noise Controller dialog opens. 9 Play the animation. The box follows the original animated path but vibrates randomly. Experiment with different Weight settings for each controller and see the results. Interface Motion panel > Parameters > List rollout List Window Displays all the controllers in a list, with evaluation order from top to bottom. The controller at the top of the list is evaluated first; lower controllers are layered onto the result of higher controllers. 3196 | Chapter 15 Animation Set Active Determines which controller is affected by interactive changes in the viewport. The current active controller is marked with an arrow in the list. For example, you have an object using a Position List, with Noise Position and Bezier Position in the list. The Bezier Position controller handles the general motion path of the object, while the Noise Position controller adds a random shake to the motion. ■ If Bezier Position is the active controller, you can freely move the object in the scene. ■ If Noise Position is the active controller, you cannot move the object because Noise is not an interactive controller. Delete Deletes the selected controller. Cut Removes the selected controller and stores it in a temporary clipboard. The clipboard contents are only held until you paste the controller, close the List Controller dialog, or exit the Motion panel. Paste Puts the contents of the controller clipboard in the position above the selected controller. The clipboard is empty after pasting. Weight Exaggerate or minimize the effects of a controller by increasing or decreasing its weight value. Default=100.0. Average Weights When on, the weight values of all the controllers in the list are averaged. Available only for the Position List and Scale List controllers. Default=off. Pose to Pose Enables blending among controllers in the list. Available only for the Rotation List controller. Default=off. When off, the List controller weights each rotation individually and adds up the weighted rotations for the final effect. You animate by stacking layers on top of layers, and then weighting in and out their effect. This is the default behavior. When on, each pose is blended with the results from the previous controllers in the list. This method is not additive, but is instead true pose-to-pose blending. Adjusting the weight of a controller in the list will blend to and from that pose (controller in list). If the last weight is 100.0, then adjusting the weights of the previous poses in the list won't have any effect because the last pose has full effect. This is a stack-based approach that is best used for nonlinear animation (NLA) effects. You can paste motion clips or even single-frame poses onto new layers and use the weights to blend the poses together. List Controller | 3197 Editable Name Field Select one of the controllers in the list window of the Controller list, and then enter a descriptive name in this field. This field lets you rename the controller so it's easier to identify. Local Euler XYZ Rotation Controller This controller is no longer available. You can, however, still edit objects that were assigned this controller previously. The Local Euler Rotation controller is similar to the Euler XYZ Rotation controller on page 3151, but the angles are with respect to the rotated object's local coordinate system. With the standard Euler Rotation controller, angles are with respect to parent coordinates. Parameters for this controller are displayed in the Motion panel. The Local Euler XYZ Rotation controller has three rotation tracks to control rotation on the X, Y, and Z axes. Setting an X axis rotation key will not create keys in the Y and Z tracks on the same frame; each track can be keyed independently. The rotation order of the axes is set in the Motion panel. Interface The Local Euler parameters are displayed in the Motion panel. Euler Parameters rollout This rollout is displayed when you select Rotation in the PRS Parameters rollout on page 3220. Axis Order Sets the order that rotations are calculated in the list. 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. 3198 | Chapter 15 Animation 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. Look At Controller Create or select an object that contains a Target component, such as a target spotlight or camera. > Motion panel > Look At Parameters rollout The Look At controller is automatically assigned as a transform animation controller upon creation of objects that contain targets, including Target Camera, targeted lights (including IES Sun/Sky) and the Tape helper. It cannot be assigned by the user. To assign the equivalent of a Look At controller to an object, use a LookAt constraint on page 3312. NOTE A targeted object's pitch and heading are adjusted by moving the target, so the only orientation setting that can be controlled directly by the user is Roll, or bank. Example: To prevent flipping of targeted objects during rotation: 1 Add a Target Camera object on page 5205. 2 Activate the Move tool and use the coordinate display on page 7541 to position the camera and target at 0,0,0 and 80,0,0, respectively. 3 Add a Dummy object on page 2615 and position it at 0,0,0. 4 Use Select And Link to link the camera to the dummy, and then link the camera target to the dummy. At this point, the dummy is parent to both the camera and its target. 5 Rotate the dummy about its Y axis, and watch the camera. As the target passes through the zenith and nadir of its orbit, the camera flips. 6 Select the camera and go to the Motion panel. On the Look At Parameters rollout, turn on Use Target As Up Node. 7 Again rotate the dummy about its Y axis. The camera no longer flips. Look At Controller | 3199 Interface After you create or select an object that contains a Target component, you can access the object's Look At properties on the Motion panel. In this rollout you can change the target, create and delete animation keys, set the axis, and adjust other, related parameters. Create Key Sets a position, roll (orientation), or scale key at the current frame, depending on which button you click. Delete Key Deletes a position, roll (orientation), or scale key at the current frame, depending on which button you click. Pick Target Lets you set a target other than the default Target object. Click this button, and then select the new object to use as a target. Thereafter, the new target controls the object's orientation. The original target remains in the scene, and can be deleted or used as a Dummy helper. 3200 | Chapter 15 Animation Axis Specifies the local axis that looks at the target. The Flip check box is used to flip the directions of the axis. Use Target as Up Node When turned on, the controller forces the object on which it acts (source node) to keep one of its local axes aligned with the look-at direction (the vector between the source node and the target node). it also prevents the source node from rotating around the look-at direction, to avoid flipping about the object's local Z axis. The flipping behavior is most commonly seen when the line between a targeted object and its target is close to vertical; that is, their positions on the World Z axis are nearly the same. The option works by aligning one of the source node's local axes with one of the target node's local axes. These axes are picked automatically by the software. NOTE This feature lets you properly manipulate Luminaire assemblies . It also provides for trouble-free operation when you i-drop on page 7160 manufacturer luminaire assemblies. TIP In some cases, the object will flip 90 or 180 degrees even when the Use Target As Up Node option is turned on. This behavior occurs due to the fact that the axis alignment is automatic. To resolve this, apply a roll angle to the object with the coordinate display. Position/Roll/Scale These three buttons let you specify the other rollouts that appear for this controller. In all three cases, the Key Info (Basic) on page 3127 and Key Info (Advanced) on page 3131 rollouts appear. When Position is active, an additional Position XYZ Parameters rollout lets you specify the position axis. Master Point Controller Main toolbar > Curve Editor (Open) > Expand tracks on an object with animated vertices or vectors in the Track View hierarchy. > Master Point Controller Graph Editors > Track View – Curve Editor > Open Track View > Expand tracks on an object with animated vertices or vectors in the Track View hierarchy. > Master Point Controller The Master Point controller is assigned automatically whenever control points, vertices, or vectors (tangent handles) are animated in the sub-object mode of an Editable Spline, Editable Patch, Editable Mesh, Editable Poly, NURBS surface, Master Point Controller | 3201 or FFD. By allowing you to select and move all the sub keys, visually correlate keys to points in the viewports, and change key properties quickly, this controller helps to manage the numerous tracks created when animating vertices, control points, and vectors. The Master Point controller is displayed as a track with green keys in Track View. Sub tracks below the Master track contain all the animated vertices, control points, and vectors. Procedures Example: To animate vertices, viewing the Master Point controller track: 1 In the Front viewport, create a sphere. 2 Right-click the sphere and select Convert to Editable Mesh in the dialog. 3 On the Editable Mesh > Selection rollout, click Vertex. 4 On the Editable Mesh > Soft Selection rollout, click Use Soft Selection. 5 Turn on Auto Key, and move the time slider to frame 10. 6 In the viewports, select and move some vertices on the sphere. A key appears on the track bar at frame 10. 7 Right-click the sphere, and select Curve Editor in the dialog. Track View — Curve Editor is displayed with the sphere at the top of the Controller window. 8 Change modes to Dope Sheet and expand all the sphere tracks in the Track View hierarchy. The Master Point Controller track is displayed, with tracks for the animated vertices below it. 3202 | Chapter 15 Animation Interface Master Track Keys While in the Track View – Dope Sheet, selecting a master key (green) selects all the sub keys at that frame. If hundreds of vertices are animated, collapse the master track so that only the master track is visible. Moving the green keys will move all the sub keys. Master Track Key Info dialog Right-click a green master key in Track View to display the Master Track Key Info dialog on page 3282. Motion Capture Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View toolbar > Controller menu > Assign > Motion Capture Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Motion Capture You can control an object's position, rotation, or other parameters using an external device with the Motion Capture controller. Motion Capture Controller | 3203 NOTE Rotation Motion Capture uses Euler rotations with an X, Y, Z axis order and is subject to the limitations of Euler rotations. See Euler XYZ Rotation Controller on page 3151. The Motion Capture System To use motion capture in 3ds Max, you follow these steps: 1 In Track View — Dope Sheet or Motion panel, you assign motion capture animation controllers to the specific tracks you want controlled by external devices. 2 After assigning the motion capture controller, you open the Properties dialog for the track and bind the type of peripheral device(s) that you want. Currently supported devices are mouse, keyboard, MIDI device, and joystick. Each device has specific properties. 3 After binding the devices, adjust their settings and parameters in the lower portion of the Track Properties dialog. These controls vary depending on the type of device. 4 In the Utilities panel, access the Motion Capture utility. You can test and record your motion for any combination of tracks over any range of frames. 5 When you assign a Motion Capture controller, the previously assigned controller is maintained as a child of the Rotation controller. You can continue to adjust the rotation of the object using standard transform controls, while still making motion-capture control available. Procedures To use your mouse as an input device to animate the position of a box: 1 Create a box. 2 In Motion panel > Assign Controller, select the position track for the box in the list window, and then click the Assign Controller. 3 Select Position Motion Capture in the Assign Position Controller dialog, and then click OK. 4 Select X Position in the Motion Capture dialog, select mouse input device, and then click OK. 3204 | Chapter 15 Animation NOTE You can open the Motion Capture dialog by selecting the Position track in the Assign Controller list window, and then right-click and select Properties. 5 In the Mouse Input Device rollout, make sure that horizontal is turned on and Scale is set to 1. 6 In Utilities panel > Motion Capture, click Box01 > Position in the Track list window. Click Start in the Record Controls group. Real-time recording is in effect; move the mouse horizontally back and forth. The box moves back and forth along the X axis. Play the animation to view the recorded movement. By default, a key is generated at every frame. Interface Right-click the transform track in the Track View - Dope Sheet hierarchy to display the Motion Capture Properties dialog. Position Motion Capture rollout X, Y, Z Position Click an axis's button to display a Choose Device dialog, which lets you pick a motion-capture device from a list of alternatives: keyboard, joystick, mouse, or MIDI. Choose Device dialog Select a device from a list of devices. Edit Bindings XYZ Displays device controls in the device rollout in the lower part of the Motion Capture dialog. If no device has been assigned to an axis, this option is not available. Motion Capture Controller | 3205 Track Name Names the Motion Capture Data track. This overrides the default naming convention. Mouse Input Device rollout This rollout controls animation using the horizontal or vertical motion of the mouse. The available settings include: Horizontal/Vertical Specifies which mouse motion drives the animation. Scale Scales the relative effect of the mouse movement to the animation response. Spinner Value=float, 0 to 999,999 Flip Flips the direction of the response relative to the mouse movement. For example, if moving the mouse horizontally to the right produces a clockwise effect on a Rotation controller, activating Flip will reverse the rotation to counterclockwise. Keyboard Input Device rollout This rollout lets you assign most keyboard keys to drive the animation. 3206 | Chapter 15 Animation Assign Click and then press any key. The assigned key is displayed in the list window at right. List Open the list to select a key. Envelope Graph group The Envelope Graph group displays a representation of the amplitude curve over time. Envelope Parameters group These options specify the time the envelope of the action takes effect. This relates to the duration of pressing and releasing the key. Attack Specifies the time, after pressing the key, for the value to reach its maximum level. Decay Specifies the time, after having reached maximum, for the value to fall to that specified by the Sustain spinner. Sustain After the Attack and Decay, specifies the value sustained until you release the key. Motion Capture Controller | 3207 Release After releasing the key, specifies the time for the value to fade out to zero. Parameter Scaling group Provides controls for setting the scale of the envelope and the range of the output value. Time Specifies the scale of the Attack, Decay, and Release parameters. The value represents the number of seconds for 1 unit. For example, if this value is 1.0, then an Attack value of 1.0 equals 1 second. Range Sets the maximum output value of the controller. NOTE This controller ignores the state of the Ctrl, Alt, and Shift keys. Joystick Input Device rollout The Joystick Input Device driver was designed for the Microsoft Sidewinder joystick, which contains more controls than the standard joystick. You can use this device driver for standard joysticks as well. X, Y, Z Specifies which joystick direction drives the animation. (Standard joysticks provide X and Y axes only. The Sidewinder provides the Z axis when you twist the joystick.) Throttle On the Sidewinder, this is a slider next to the stick. Scale Scales the relative effect of the joystick action to the animation response. Spinner Value=float, 0 to 999,999 Flip Flips the direction of the response. Accumulate When off, the joystick position represents an absolute position, and you're limited to the "rectangle" defined by the limits of the joystick. When the joystick returns to its rest position, the value generated returns to zero. When on, the joystick represents a change in the current position. Moving the joystick forward, for example, can cause an object to start moving, and it will continue to move until you return the joystick to its rest position. 3208 | Chapter 15 Animation Joystick Buttons group Point-of-View Hat (Left-Right, Up-Down) A mini joystick on the tip of the main joystick that specifies the direction of the animation 1, 2, 3, 4 Specifies one of four buttons in the Sidewinder joystick. They work similarly to the Point-of-View Hat, except that each button increases a direction value only while pressed. When you release the button, the value returns to zero (centered). Inc./Dec One of three options that are only available when one of the numbered joystick button options is turned on. This option (Increment/Decrement) means that the value is incremented when the button is down, and decremented when the button is up. Inc When on, the value increments when the button is down, and stays at that value when the button is released. Absolute When on, the assigned parameters jumps to the value set in the Speed spinner when the button is down, and then jumps back to zero when the button is released. Use this for on/off animations, such as blinking lights. Speed Controls the rate at which the value changes when using either the Point-of-View Hat or the four buttons. When using a button option and the Absolute option, this specifies the value that's output when the button is pressed. Spinner Value=float, -999,999 to 999,999 Increment Based On Direction group Motion Capture Controller | 3209 This group provides controls that let you derive the direction of movement from a Rotation controller. These options are used primarily when you're animating a first-person flythrough such as when you're controlling a camera. NOTE The items in this group are only available when Accumulate is selected in the Joystick Axis group. Controller Assigns a Rotation Motion Capture controller where the direction will be derived. Typically, this would be the Rotation controller of the camera you're moving. NOTE You can only use a Rotation Motion Capture controller here. Clear Removes the assigned controller. Direction X/Y/Z Specifies the local axis that will be used as the direction. For a Free Camera, for example, this would be Z, because the camera points in the Z direction. However, if you had a car that pointed along its Y axis, you'd use Y. Component X/Y/Z Specifies which edit binding to use. Match this to the Edit Binding button in the Device Bindings group. For example, if the Y Edit Binding button is selected, choose the Y Component option. 3210 | Chapter 15 Animation MIDI Device rollout MIDI Channel group This group contains 16 buttons. You can assign a channel to your MIDI device. MIDI Trigger group Here, you define the type of MIDI event (message) that will drive the motion. There are four options; Note, Velocity, Pitch Bend and MIDI controller. Motion Capture Controller | 3211 NOTE Turn on to let the note number or pitch define the output value. The value is derived from where the note falls within the Note Range, specified in the group below. When the note is at the bottom of the range, the value takes on the Min value specified in the Parameter Scaling group. When the note is at the top of the range, the value takes on the Max value from the same group. Anything in between is interpolated between the Min and Max values. (Note that Min doesn't have to be less than Max.) The generated value will slide around as different keys are pressed. The harder a key is pressed, the faster the value changes. Speed Defines how fast the value changes as keys are pressed. Velocity Determines the output value based on the velocity that the note pressed. The notes set in the Note Range group specify which notes are valid to press. The value takes on the Min value until a key within the Note Range is pressed. When the key is pressed, the value approaches the Max value based on how hard the key was pressed. (The value actually travels along a parabola toward the Max value.) Sustain Defines how long it takes the value to move through the parabola. Variable Sustain duration is scaled by how hard the key is pressed. Pitch Bend Value is defined by the MIDI instrument's pitch bend knob. The Note Range doesn't apply in this case and is not available. MIDI Controller Specifies a note event when you're hooked up to a different type of MIDI controller than the typical keyboard. For example, if you're using a MIDI slider box, you would select the MIDI Controller option, and then use the # spinner to specify the note event for the specify slider. Note Range group Turn on Note or Velocity, and then set the note range here. A value is derived from where the note falls within the Note Range. Low Note Set a note and octave for the lower range. High Note Set a note and octave for the higher range. See Note parameter in the MIDI Trigger group, above. Parameter Scaling group Contains the Min and Max spinners, which specify the range of generated values. See Note and Velocity above. 3212 | Chapter 15 Animation MIDI Channel Viewer Displays a dialog that lets you test your MIDI device to see which MIDI channel is receiving events and which notes are being triggered. Midi Viewer Dialog MIDI Channel group Provides a column of 16 buttons and progress bars representing the 16 MIDI channels. Select the channel where you want to view note activity. The channel progress bars light up when any channel has an event. Motion Capture Controller | 3213 MIDI Note group The 11 Octave buttons let you select which octave you want to view. When a note is played in that octave, a corresponding progress bar lights up in the Note column. MIDI Controller When using a different type of MIDI controller, such as a slider box, you can specify a note event, and then watch the corresponding progress bar light up when you activate that event. (You can find the correct note number by activating the event while watching the Note Number field in the group below.) Channel Displays the currently selected channel. This is one of four text fields that display all of the values being generated by the MIDI device as you activate an event. Event Displays the type of MIDI event being sent. For example: Note On: 9 Note Off: 8 Pitch Bend: 14 MIDI Controller: 11 Velocity Displays the velocity, which has a different meaning depending on the event. For the most common event, a note being pressed, this value represents the velocity at which the key was struck. Other events, however, might generate a continuous value. For example, a pitch bend event transmits the position of the pitch bend. Note Number Displays the corresponding note number for the event. When you're using a non keyboard MIDI device, such as a slider box, you can use this to identify the note number of a specific slider. Noise Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Noise Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Noise 3214 | Chapter 15 Animation The Noise controller produces random, fractal-based animation over a range of frames. Noise controllers are parametric; they work on a range of frames, but do not use keys. When you assign a Noise controller in Track View or the Motion panel, it is initially applied to all frames in the current time segment. You can change the range of frames by dragging the Noise range bar in Track View. ■ 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. ■ Use Noise as part of a compound List controller to apply noise 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 through your scene while the Noise controller makes the object shake and stray a little from the path. Procedures Example: To apply a Noise controller to a rotation track: 1 Create a box in any viewport. 2 In the Motion panel > Parameters > Assign Controller rollout, select the rotation track in the list window. 3 Click Assign Controller. 4 Select Noise rotation from the list of controllers. The Noise Controller dialog automatically opens. 5 Play the animation. The box rotates randomly around all three axes. Because the non-modal Noise Controller dialog is still open, you can adjust parameters and see the results in real time. Noise Controller | 3215 Interface Characteristic Graph Shows a stylized graph of how changing Noise properties affects the Noise curve. Seed Starts the noise calculations. Changing the seed creates a new curve. Frequency Controls the peaks and valleys of the noise curve. The useful range is from 0.01 to 1.0. High values create jagged, heavily oscillating noise curves. Low values create soft, gentle noise curves. Strength fields Sets the value range for noise output. These values can be animated. The number and meaning of the fields vary with different parameter data types. Some typical field arrangements are: ■ XYZ fields for Position and Point3 keys ■ XYZ percentage fields for Scale keys ■ A single value field for Float keys >0 Value constraint Forces Noise values to stay positive. Each strength field has its own >0 constraint. When on, the application of the Strength field is changed. Noise values will range from 0 to the value of Strength; most values will hover around Strength/2. 3216 | Chapter 15 Animation Ramp In Sets the amount of time Noise takes to build to its full strength. A value of 0 causes Noise to start immediately at full strength at the start of its range. Any other value causes Noise to start at 0 strength and then build to full strength by the elapsed time set in the Ramp In field. Ramp Out Sets the amount of time Noise takes to fall to 0 strength. A value of 0 causes Noise to stop immediately at the end of its range. Any other value causes Noise to fall off to 0 strength by the end of its range. The value in the Ramp Out field sets the amount of time before the end of the range that Noise begins to fall off. Fractal Noise Generates noise using a fractal Brownian motion. The main value of using Fractal Noise is that it activates the Roughness field. Roughness Changes the roughness of the Noise curve (when Fractal Noise is turned on). Where Frequency sets the smoothness of the overall Noise effect, Roughness changes the smoothness of the Noise curve itself. On/Off Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > On/Off Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > On/Off The On/Off controller provides binary on and off control. It is similar to the Boolean controller on page 3147. For example, you can apply an On/Off controller to the Visibility track of an object. On/Off Controller | 3217 You can view the curve for this controller in the Function Curve display, but it's not editable. In addition, there's no Properties dialog for this controller. NOTE When you load a scene from version 1.x of the software that contains a Visibility controller, the controller is automatically converted to an On/Off controller. See also: ■ Boolean Controller on page 3147 Procedures Example: To use the On/Off controller to control an object's visibility: 1 Create a cylinder, and open Track View. 2 In Track View, select the Cylinder track and click Tracks > Visibility Track > Add. A Visibility and Transform track are now added. 3 Select the track named Visibility . 4 From the Track View toolbar > Controller menu > Assign and select On/Off in the Assign Controller dialog. Click OK. If you change modes to Dope Sheet, note that the entire track region is filled by a blue bar. 5 Click the Add Keys button in Track View — Dope Sheet and add a key at frame 20. The blue bar stops at frame 20. 6 Add another key at frame 60. The track is now blue again following frame 60. 7 Add some additional keys in the Visibility Track. Each added key reverses the on/off blue pattern following the added key. TIP You can select two or more keys and copy them to different positions. This allows you to create even intervals for the On/Off effect. Interface You assign the On/Off Controller in Track View. 3218 | Chapter 15 Animation The On/Off track displays a solid blue color in frames that are On, and no blue in frames that are Off. When you add a key to an On section of the track, the section following that key is turned off. When you add a key to an Off section, the following section is turned on and colored blue. Position XYZ Controller Main toolbar > Curve Editor (Open) > Select a position track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Position XYZ The Position XYZ controller splits the X, Y, and Z components into three separate tracks (similarly to the Euler XYZ Rotation controller on page 3151). This provides separate control of the three tracks when referenced from Expression controllers. The Position XYZ controller assigns three keys (one for each axis), by default. In earlier versions of 3ds Max, you had to edit the keys manually in order to create explicit axis keys. However, there are now actions available from the Customize User Interface dialog on page 7697 that let you create explicit axis keys using Set Key Mode on page 3086. Procedures Example: To use the Position XYZ and Noise controller together: 1 Create a sphere. 2 In the Motion panel > Parameters > Assign Controller rollout, select the Position track of the sphere. 3 Click Assign Controller and choose Position XYZ. Position XYZ Controller | 3219 4 Turn on Auto Key and create three keys that move the sphere on the XY plane. 5 In the Assign Controller rollout, expand the position track and select Z Position. 6 Click Assign Controller, and then select Noise Float. 7 Play the animation. The sphere moves around the keys that were created earlier. The random up and down movement in the Z axis is generated by the noise controller on the Z track. This effect can also be created using the List Controller to combine controllers. Interface Motion panel > Parameters > Position XYZ Parameters rollout X Displays controller properties for X axis transformation. Y Displays controller properties for Y axis transformation. Z Displays controller properties for Z axis transformation. When you select an axis, a Key Info (Basic) and Key Info (Advanced) rollout is available to change values. A Bezier Float Controller is assigned to each track by default. Use Key Info (Basic) and Key Info (Advanced) to control how the keys behave. See Bezier Controller on page 3138. PRS Controller Main toolbar > Curve Editor (Open) > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Position/Rotation/Scale 3220 | Chapter 15 Animation Graph Editors > Track View – Curve Editor > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Position/Rotation/Scale The Position/Rotation/Scale (PRS) controller is the default Transform controller for most objects. Use it for all general-purpose transforms. Procedures To create PRS Transform keys: 1 Select an object. 2 Click Motion panel > Parameters. 3 Drag the time slider to the frame where you want to place a key. 4 On the PRS Parameters rollout, in the Create Key group, click one of the following: ■ 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 does not use keys, then that button is not available in the Create Key group. For example, you cannot create Position Keys if a Noise Position controller is being used. PRS Controller | 3221 Interface Motion panel > PRS Parameters rollout Create Key/Delete Key The six buttons in the PRS Parameters rollout let you create or delete a transform 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. Position/Rotation/Scale Determines the contents of the Key Info rollouts that appear below the PRS Parameters rollout in the Motion panel. Reaction Controllers Track View > Highlight a track in the Track View hierarchy. > Assign a Reaction-type controller (e.g., Position Reaction). Select an object. > Motion panel > Assign Controller rollout > Highlight a track. > Click Assign Controller > Choose a Reaction-type controller (e.g., Position Reaction). 3222 | Chapter 15 Animation The Reaction controller is a procedural controller that lets a parameter react to changes in any other parameter in 3ds Max. Typically, most of the setup involving Reaction controllers is done with the Reaction Manager dialog on page 3228. You use the dialog to define a master, which is an object that controls other objects, and, for each master, any number of slaves, which are objects the master controls. Alternatively, you can assign a Reaction controller directly to a slave object using Track View or the Motion panel (as you would any other controller), and then use Reaction Manager to specify its master and other parameters. Reaction controllers come in five different types: Position Reaction, Rotation Reaction, Point3 Reaction, Scale Reaction, and Float Reaction. You can assign a Reaction controller to any animatable track in the scene. Reaction is not based on time, but rather on other variables in your scene such as position or rotation. You can use a Reaction controller to turn on a light as an object nears a given point. Muscles can bulge as an arm bone rotates. A ball can squash automatically as the ball's Z position nears the ground plane. Feet can rotate as their heels are lifted from the floor. A particle system can be triggered by any given event. Morph target percentages can be controlled by events. NOTE The Reaction controllers replace the Reactor controllers found in previous versions of 3ds Max. If you load a file containing a Reactor controller into this version of 3ds Max, the Reactor controller is converted to a Reaction controller, with all settings and reactions fully intact. See also: ■ Using Manipulators with Reaction Controllers on page 3244 Reaction Controllers | 3223 Procedures Example: To make the position of a sphere react to the position of a box: This procedure shows an alternate way to use a Reaction controller. The recommended workflow is to do most of the setup in the Reaction Manager dialog: See Example: To use the Reaction Manager dialog: on page 3229. NOTE Objects don't need to be animated to use Reaction controllers. This procedure starts with animation to make the reaction easier to see. 1 On the left side of the Top viewport, create a box about 30 units on a side. 2 Animate the box from position (-100,0,0) at frame 0 to position (100,0,0) frame 100. 3 In the Front viewport, create a sphere slightly above the box. Position the sphere at (-100,0,50). 4 5 Go to the Motion panel, and on the Assign Controller rollout, click the Position track to highlight it. On the Assign Controller rollout, click the Assign Controller button. 6 On the Assign Position Controller dialog, click Position Reaction to highlight it, and then click OK. This opens the Reaction Manager dialog on page 3228. The Reactions list shows that the sphere is assigned as a slave, but no master is assigned. A Reaction controller uses a master's motion to control any number of slaves. 7 Right-click the “Unassigned” line at the top of the Reactions list. From the menu, choose Replace Master. 3224 | Chapter 15 Animation This places you in a Pick mode where you can choose a motion track from any object in the scene to act as master. 8 In any viewport, click the box (Box01). A pop-up menu appears. 9 From the pop-up menu, choose Transform > Position > X Position. The “Unassigned” text is replaced by a master track labeled “Box01 / X Position”. Also, a new state, State01, appears in the States list. This is an example of the basis of the control mechanism used by the Reaction controller: For each master/slave combination, you can specify any number of states defined by values for the master and slave tracks. The first state, created automatically when you added the master, specifies that when the box is at -100 on the X axis, the sphere should be at (-100,0,50). In this case, you're controlling three parameters (the sphere position on all three axes) with one (the box position on the X axis). More typically you'd use one-to-one master/slave-parameter ratios. NOTE Reaction Manager also defines a state automatically when you assign a new slave to a master. Reaction Controllers | 3225 Next you'll create a second state that tells the sphere how to move on multiple axes as the box moves on one. 10 Move the time slider to frame 50. The box moves to the midpoint of its animated trajectory. The sphere remains where it is. 11 On the Reaction Manager dialog, click the Create State button. This creates a new state (State02) using the current positions of the box and sphere. 12 Try moving the sphere in the Front viewport. You can't move the sphere because it's under the full control of its master, the box. Similarly, you can't change its position using the Coordinate Display fields on the status bar. However, you can change the sphere's position using the Reaction Manager's editing tools. 13 On the Reaction Manager dialog, click the Sphere01 / Position entry to highlight it, if necessary, and then click the Edit Mode button. 14 Position the sphere at (0,0,100). The position updates in the Sphere01 / Position line under State02. Also, the Reaction Manager graph shows the change in values of the slave's (sphere) X and Z position values as the master box's X position changes. On the graph, as in Track View, red=X, green=Y, and blue=Z. 3226 | Chapter 15 Animation 15 Click the Edit Mode button again to turn it off, and then scrub the time slider. As the box moves between frames 0 and 50, the sphere rises to the position specified in the second state. For the third and final state, you'll have the slave move in a different direction over the second half of the master's motion. 16 Go to frame 100, and then create a new state. 17 In the States list, click the new state or its slave track to highlight it. 18 Turn on Edit Mode. Position the sphere at (0,–100,100), and then turn off Edit Mode. 19 Scrub the time slider between frames 0 and 100. Over the first 50 frames, the sphere moves between the first two states, and over the second half of the animation, the sphere moves between the second and third states. To conclude the procedure, you'll demonstrate that the sphere is responding only to the box's X position, regardless of animation. 20 Go to frame 0. Select the box, and then press and hold the Alt key and right-click the box. This opens the Animation quad menu. Reaction Controllers | 3227 21 From the Set (lower-right) quadrant, choose Delete Selected Animation. This command deletes all animation keys for the current selection. 22 Now move the box in all three dimensions. Any change in the Y or Z position has no effect on the sphere. However, moving the box between -100 and 100 on the X axis, no matter what the Y or Z position, results in changing the sphere's position as specified in the Reaction controller. This procedure gives you a hint of the Reaction controller's power. You can find another procedure showing additional aspects of the Reaction Manager in: Example: To use the Reaction Manager dialog: on page 3229. Interface After assigning a Reaction controller, right-click the track and then choose Properties, or choose Animation > Reaction Manager, to open the Reaction Manager dialog on page 3228. Reaction Manager Dialog Animation menu > Reaction Manager Track View > Highlight a track in the Track View hierarchy. > Assign a Reaction-type controller (e.g., Position Reaction). Select an object. > Motion panel > Assign Controller rollout > Highlight a track. > Click Assign Controller > Choose a Reaction-type controller (e.g., Position Reaction). Use the Reaction Manager dialog for setting up and modifying Reaction controllers on page 3222. Reaction Manager lets you add and delete masters and slaves, define states for reactions, use a graph to view and modify reactions with curves, and more. NOTE If you assign a Reaction controller while Reaction Manager is open, the dialog closes. To reopen it, choose Animation menu > Reaction Manager. If you use Reaction Manager often, it's recommended that you assign a keyboard shortcut to the command. 3228 | Chapter 15 Animation Procedures Example: To use the Reaction Manager dialog: The purpose of this procedure is to show you different ways to use Reaction Manager. Before trying it, we suggest that you first follow the introductory procedure in the Reaction Controllers topic: Example: To make the position of a sphere react to the position of a box: on page 3224. 1 Start or reset 3ds Max. 2 In the Perspective viewport, add a box and a sphere object. Also add a Slider manipulator on page 2643, and give it the label Slider. The viewport should resemble the following illustration: You'll use the slider to control two slaves separately: Negative values for the box X position, and positive values for the sphere's Hemisphere parameter. 3 On the Create panel > Parameters rollout, set Minimum to -100.0. The slider's current value is 0. 4 Open the Reaction Manager dialog from the Animation menu and position it so you can see the Perspective viewport. Reaction Controllers | 3229 At this point, the dialog is empty. 5 On the upper toolbar, click Add Master, and then click the Slider manipulator in the Perspective viewport. 6 On the pop-up menu that appears, choose Object (Slider) > value. In the Reactions list, the master entry Slider01 / value appears. 7 On the upper toolbar, click Add Slave, and then click the box in the Perspective viewport. 8 On the pop-up menu that appears, choose Transform > Position > X Position. In the Reactions list, the slave entry Box01 / X Position appears under the master entry. Also, a new state appears in the States list for the newly added slave track. This simply says that, when the slider value is 0, the box's X position should be what it is currently. However, a reaction needs at least two states to be meaningful. You'll learn how to accomplish this shortly. Next, you'll discover a different way to add a slave track. 9 In the Perspective viewport, select the sphere. 10 On the upper toolbar, click Add Selected. This causes the pop-up menu to appear at the mouse cursor. 11 From the pop-up menu, choose Object (Sphere) > Hemisphere. The sphere's Hemisphere track is added as a slave of the slider, and a new state for the two is added to the States list. You now have two states in the States list, but in both cases the state value (that is, the slider value) is the same, so you really need only one. You can resolve this by adding the Hemisphere slave track to the first state and then eliminating the second state. 12 In the Reactions list, click the Sphere01 / Hemisphere entry, and in the States list, click the State01 entry. 3230 | Chapter 15 Animation 13 On the center toolbar, above the States list, click the Append Selected button. This adds the Hemisphere track to State01. Now you can delete the second, superfluous state. 14 In the States list, click the State02 entry, and then on the toolbar above the States list, click the Delete State button. State02 goes away. Currently, the box is where you created it, but you might want it to start out at a different location. However, because the box is a slave of the slider, you can't move it freely on the X axis. You'll use Reaction Manager to set the X position of the box to a specific value. 15 In the States list, position the click and hold the mouse cursor over the Box01 / X Position > Value entry. Reaction Controllers | 3231 NOTE Your value probably differs from that shown in the illustration. 16 Drag upward to increase the value, or downward to decrease the value. Change the value to about -50.0. You might find it difficult to set an exact value by dragging, which changes only the tenths (and higher) value. You can use the keyboard to specify a more exact value. 17 Double-click the value. The value highlights and becomes an keyboard-editable field. 18 Enter -50 and press Enter or Tab. The value now displays as -50.000. You can use the same mouse and keyboard methods to change state (master) values as well. Next you'll learn how to use Create Mode to create new states freely. First you'll set a new state to move the box leftward for negative slider values. 19 Try moving the box on the X axis. You can't do it, because it's slaved to the slider value. 20 Above the States list, click the Create Mode button. When Create Mode is on, you can change master and slave properties and use the current properties to create new states. 3232 | Chapter 15 Animation 21 On the main toolbar, click Select And Manipulate, and then drag the slider pointer all the way to the left, so the slider value reads -100.0. 22 In the Reactions (upper) list, click the Box01 / X Position entry to highlight it, and then move the box about -50 units on the X axis, to about X=-100. Highlighting the slave entry lets you manipulate the slaved value interactively in the viewport while Create Mode is on. Then, when you click Create State, a new state is created for that slave only. If you highlight the master instead, you can manipulate all slaves freely, but then clicking Create State creates a new state for all slaves. Reaction Manager is a complex tool, so in general it's best to keep the data as simple as possible. 23 Click Create State. Reaction Manager adds a new state, State02, with the state (slider) value at -100.0 and the box at its new X position. 24 Turn off Create Mode and move the slider left and right to see how it affects the box position. Next you'll set a new state so the right half of the slider range affects the sphere's Hemisphere value. 25 Select the sphere and go to the Modify panel. The Hemisphere parameter is unavailable, because it's slaved to the slider value. Reaction Controllers | 3233 26 Turn on Create Mode, and then and in the Reactions list, click the Sphere01 / Hemisphere entry. The Hemisphere parameter is now available. 27 On the Modify panel, set Hemisphere to 0.75. 28 In the Perspective viewport, drag the slider all the way to the right. 29 Click Create State. Reaction Manager adds a third state, State03, with the state (slider) value at 100.0 and the Sphere01 / Hemisphere value at 0.750. Also, if you click Slide01 / value in the Reactions list, you can see in the graph showing the slider value on the horizontal axis and the two reactions on the vertical axis. The scale between the two differs greatly, so the Hemisphere reaction on the right side of the graph looks like a straight line, but if you click the Sphere01 / Hemisphere slave entry in the Reactions list, the graph shows a steady rise from 0.0 to 0.75. 30 Turn off Create Mode and then drag the slider in both directions. Over the left half of the slider range, the box moves along the X axis, and over the right half of the range, the sphere's Hemisphere value changes. To finish the procedure, you'll experiment with using the graph to change a reaction. 3234 | Chapter 15 Animation 31 If you haven't already, click the Sphere01 / Hemisphere slave entry in the Reactions list, and then click Zoom Extents button below the graph. 32 Click the Add Point button, and then click the middle of the graph curve (it's the red, diagonal line). This adds a new point to the curve and a new state in the States list. 33 Click the Move button, and then drag the new point upward so it's above the right-hand endpoint. 34 Drag the slider again. As the slider moves from 0 to 100, the Hemisphere value increases so much that the sphere disappears, and then decreases so you can see the upper fourth of the sphere. This has been a brief tour of some of the capabilities of the Reaction Manager dialog. For further information, consult the reference, below. Reaction Controllers | 3235 Interface The Reaction Manager dialog interface consists of three parts: the Reactions list, the States list, and the graph. Each has its own toolbar or toolbars. Each list contains rows and columns; the column headings employ standard Windows functionality. To resize a column, drag the divider to the right of its heading, or auto-size a column to fit its widest entry by double-clicking the right-side heading divider. To change the vertical size of a list section, drag the horizontal divider at the bottom of the list, and to scale all three 3236 | Chapter 15 Animation sections proportionally, drag the bottom of the dialog. You can also resize the dialog by dragging a corner or a side. You can use standard methods to highlight list items for further actions. Highlight a single item by clicking it. Highlight multiple consecutive items by clicking the first item and then Shift+clicking the last. Use Ctrl+click to highlight non-contiguous items and to toggle highlighting of a single item. In most cases, if a cell in the Reactions list or the States list contains a single numeric value, you can change the value by dragging vertically on the cell. Click and hold on the number in the cell, and then move the mouse upward to increase the value or downward to decrease it. The exception to this are the Start and End values for master objects; you can change these values only by modifying a slave's Start or End value. You can also modify a one-value field by double-clicking it and then editing it with the keyboard. If a field contains multiple numeric values, you must manipulate the object directly in the viewports or the appropriate dialog. The dialog also has a right-click menu on page 3243 for managing reactions and states, available by right-clicking anywhere on the dialog except in the graph section. NOTE A master is an object that you can use to control other objects via Reaction controllers, and a slave is an object controlled by a master. Reactions list The Reactions list displays a hierarchical view of the master-slave relationships of objects with Reaction controllers in the scene. You can use its controls to add and delete masters and slaves, change start and end frames, and toggle usage of the graph curve. These controls are available both on the toolbar above the list and in the list itself. Add Master Places you in Add Master mode. Click an object in a viewport, and then use the pop-up menu to choose an animation track to use Reaction Controllers | 3237 as master. Alternatively, choose a track in Track View or from the Motion panel > Assign Controller rollout list. Using the pop-up menu, you can choose only a track at the end of the menu hierarchy; for example, Transform > Position > X Position. If you choose the object name from the top of the menu, Reaction Manager lists it as World Space Position, so that you can use its three-dimensional position in the World coordinate system to control its slaves. To use a Position or Rotation track for the master, click Add Master and then click the track in Track View or the Motion panel > Assign Controller rollout list. In the latter case, the object must already be selected in the viewports before clicking Add Master in order for it to show up on the Assign Controller rollout list. If using Track View, you can open the Track View dialog before or after clicking Add Master. TIP If you use Track View or Motion panel to assign a Reaction controller to an animation track, the object shows up in Reaction Manager without a master (“Unassigned”). To assign a master, right-click the highlighted “Unassigned” label, and then choose Replace Master from the context menu. Finally, choose the master track. Add Slave Places you in Add Slave mode, letting you assign a slave track to the currently highlighted master in the Reactions list. Highlight a master and then click Add Slave. Click an object in a viewport, and then use the pop-up menu to choose an animation track to use as slave. Alternatively, choose a track in Track View or from the Motion panel > Assign Controller rollout list. Available only when a master is highlighted in the Reactions list. To add multiple slaves, click Add Slave and then press H to open the Pick Object dialog. Highlight the objects to add, and then click Pick. The pop-up menu then appears, prompting you to choose an animation track to use as slave. The same track is used from each object. Alternatively, select the objects and then use Add Selected (see following). If multiple masters are highlighted when you add a slave or slaves, the slave is added to the first master in the list. If any states are highlighted in the States list, the new slave or slaves are added to the highlighted states. If no states are highlighted in the States list, Reaction Manager creates a new state with the added slave or slaves. Add Selected Lets you add slave tracks to the current master for any selected objects in the viewports. Opens a pop-up menu from which you can choose a track. If multiple objects are selected, this track is added as a slave 3238 | Chapter 15 Animation for each selected object. Available only when a master is highlighted in the Reactions list and at least one object is selected in the viewports. If multiple masters are highlighted, the slaves are added to the first master in the list. If any states are highlighted in the States list, the new slave or slaves are added to the highlighted states. If no states are highlighted in the States list, Reaction Manager creates a new state with the added slave or slaves. Delete Selected Deletes any items highlighted in the Reactions list. If you delete a slave, any related state definitions are deleted from the States list, although the states themselves remain. If you delete a master, all of its slaves and any related states are also deleted. Show Selected When on, displays data in the Reactions list only for objects selected in the viewports. This lets you restrict display reaction setups to objects of immediate interest, without having to scroll through long lists of parameters. When off, shows all objects and states, regardless of viewport selection status. If the master is selected in the viewport, Show Selected shows all slaves in the Reaction list whether or not they're selected. Update Selection Refreshes the list contents based on the current selection. Available only when Show Selected is on and the viewport selection has changed. Start/End These columns show the first and last animation frames for which the master-slave relationship is in effect. These default to the active time segment on page 7898. Use standard methods on page 3237 to change these values. If multiple slaves assigned to the same master have different Start or End values, the master's Start and End fields are blank. Curve This column shows an X when the graph curve on page 3242 is used to modify Strength, Influence, and Falloff. To specify these numerically in the States list, click the field to toggle the X. Available for slaves only. Reaction Controllers | 3239 States list A state describes interaction between a master and its slaves. In each state, you specify a value or values for the master track, and corresponding values for each slave. Then, as a master-track value changes in the scene, the slaved values follow along according to the states' specifications. The States list shows all states for the highlighted reaction in the Reactions list. Any member of a reaction (master and/or slaves) can be highlighted in the Reactions list for its states to appear in the States list. If members of multiple reactions are highlighted, the States list reflects values for the first highlighted reaction only. You can use tools in the States list to add and modify states and their names. To change a state name, click the text twice, slowly (don't double-click). Or, if the state name already highlighted, just click it once. The text highlights and a box appears around it to show that you can now edit it. You can rename only state names, not the indented slave tracks. You can change values for single-numeric-value slaves in this list by dragging vertically on the value. The following reference describes changing values interactively in the viewports using the States list controls. Other controls are described in the introduction to this topic. Create Mode Use primarily to create new states interactively. To use it, turn on Create Mode, adjust values for the current reaction (master and slaves) in the viewports, and then click Create State. You can repeat this to create any number of new states quickly and efficiently. The difference between creating a state in or out of Create mode is that, in Create mode you can manipulate the reaction tracks for all objects, whereas with it off you can manipulate the reaction track only for the master. 3240 | Chapter 15 Animation Create State Adds a new state to the States list for the current reaction, using the current values for the master and slave parameters. When you create a state, the software gives it a default name (State##) and lists its slave tracks, indented, under the state name. The contents of the new state depend on what's highlighted in the Reactions list. If the master is highlighted, a new state specifies values for the state (i.e., master track) and all of its slaves. If one or more slaves are highlighted in the Reactions list, the new state specifies values for the master and only the highlighted slaves. Append Selected Adds a slave or slaves to a state in which they don't currently participate. To use, highlight one or more slave tracks in the Reactions list, highlight a state in the States list, and then click Append Selected. Edit Mode When on, you can change slave values interactively in the current state by manipulating slave objects in the viewports or by editing their values on a rollout. Available only when at least one item in the States list is highlighted. If you highlight a slave name, you can edit its value for the current state. If you highlight a state name and then click Edit Mode, you can edit any of its slave tracks. To exit this mode and test the new values, click Edit Mode again. As you manipulate the object, the value is updated immediately and the new value is displayed in the States list. If slaves in multiple states are highlighted, values are updated for those in the first state only. Set State Updates the highlighted state (master track) to its current value. To use this option, highlight the master track in the Reactions list and the state in the States list. Manipulate the master object in the viewports, and then click Set State to update the state value. Available only when a state is highlighted in the States list. Delete State Deletes any items highlighted in the States list. Value This column shows the current value or values for the state: the master parameter(s) on the State## line and the slave parameter(s) on each slave line Reaction Controllers | 3241 within a state. You can edit a single value (not groups of three in parentheses) by dragging vertically on the value in the table. The following three parameters, which appear as columns in the States list, apply to slaves and are normally controlled via the graph curve. They're available only if the slave has Curve turned off in the Reactions list. These parameters are based on the fact that states can influence one another, so that you get a blending between them. Strength This is a biasing factor that affects a state's relative influence when one or more states overlap. A greater Strength value influences a value towards a state and a smaller one influences the value away from it. Influence The distance from the master state’s value to the maximum extent of its range of influence. Falloff The rate of change in the slave state (its speed) as the master goes from a state to the maximum extent of its range of influence. Graph Reaction Manager's graph displays curves that graph the master values on the horizontal axis and slave values on the vertical axis. It shows data of all states for items highlighted in the Reactions list. If a master is highlighted, the graph shows states curves for all its slaves. If one or more slaves are highlighted, but the master isn't, the graph shows data for those slaves only. You can edit data using the graph by dragging points. The graph controls are similar to those found in other graphs in 3ds Max, such as the Material Editor Output rollout on page 5774. The toolbar above the graph offers functions for moving and scaling points on the graph, as well as 3242 | Chapter 15 Animation inserting new ones (that is, new states). The same functions are available by right-clicking the graph, and if you right-click a graph point, you can set it to Corner and two different Bezier types. If you select a Bezier point, you can reshape the curve by moving its handles. You can drag a region to select multiple points, and then edit them together. Use the toolbar under the graph for panning and zooming the graph. Right-click menu Reaction Manager's right-click menu provides quick access to a number of commonly used functions. It also contains the Replace Master function, which is unavailable elsewhere in the dialog interface. To open the right-click menu, right-click anywhere on the Reaction Manager dialog except in the graph section. Add Master Places you in Add Master mode. Click an object in a viewport, and then use the pop-up menu to choose an animation track to use as master. Alternatively, choose a track in Track View or from the Motion panel > Assign Controller rollout list. For more information, see Add Master on page 3237. Replace Master Lets you replace the current master. Use the standard method to choose another master as described in Add Master on page 3237. Use this function to specify a master when you open Reaction Manager by assigning a Reaction controller to a slave. NOTE If you replace a master with multiple states, Reaction Manager deletes all existing states except the default one. In essence, replacing a master is like starting over. Add Slave Lets you add a slave to the current master. For details, see Add Slave on page 3238. Add Selected Lets you add selected objects as slaves to the current master. For details, see Add Selected on page 3238. Delete Selected Deletes any items highlighted in the Reactions list. For details, see Delete Selected on page 3239. Create States Mode Lets you create states on the fly by manipulating objects in the viewports. For details, see Create Mode on page 3240. Create State Adds a new state to the States list for the current reaction. For details, see Create State on page 3241. Reaction Controllers | 3243 Append Selected Adds a slave to a state in which the slave doesn't currently participate. To use, highlight a slave in the Reactions list, highlight a state in the States list, and then choose Append Selected. Set State Updates the highlighted state (master track) to its current value. For details, see Set State on page 3241. Delete State Deletes any highlighted items in the States list. Edit Slave State Mode Lets you change slaves' values in the current state. For details, see Edit Mode on page 3241. Show in Track View Opens Track View, displaying reaction tracks for highlighted slaves and masters only. Show in Schematic View Opens Schematic View, with reaction tracks expanded for highlighted slaves and masters. Using Manipulators with Reaction Controllers The Position Reaction and Rotation Reaction controllers on page 3222 let you perform certain functions via manipulators in the viewports. Manipulators for Reactor Controllers Reaction controllers for position and rotation tracks have graphic manipulators to help you adjust their settings. Other Reaction controllers, such as point3, scale, and float, do not have manipulators. Manipulators are visible and usable while the Select and Manipulate button on page 2613 is turned on. This button is on the default main toolbar on page 7499. When you move the mouse over a manipulator, the manipulator turns red to show that dragging or clicking it will have an effect. TIP Use the Reaction controller manipulators in a wireframe viewport. (See Viewport Right-Click Menu on page 7576.) Also, for the Position Reaction controller, you might have to change viewports to see a particular manipulator clearly. 3244 | Chapter 15 Animation Position Reaction controller The Position Reaction controller has a set of manipulators to control (or simply display) different reaction values. Reaction cycle manipulator: Click this to cycle among the various reactions in the Reactions list. The display of the manipulators and indicators changes to show their settings for the active reaction. This manipulator is a small yellow circle that appears in the lower-left corner of the active viewport, near the icon for coordinate axes. Influence manipulator: Drag in a viewport to change the manipulator's size, which changes the reaction's range of influence. This manipulator is a yellow sphere that turns red when you can drag it. At the center of the Influence manipulator is the Reaction Value manipulator. Reaction Value manipulator: Drag in a viewport to change the reaction value, which for a position track is an XYZ location. This manipulator is a light blue sphere that appears at the center of the Influence manipulator. Object Pivot indicator: Shows the pivot point location of the master object. This indicator is a dark blue sphere. You can't manipulate it. Reaction State manipulator: Drag to adjust the reaction state. For position reactions, the reaction state is an XYZ location that the slave object approaches, depending on the animation of the master object and the Influence value. This manipulator is a small green square. Reaction State indicator: Shows the reaction state value. This indicator is independent of the square green Reaction State manipulator, which you can drag in viewports. As you drag the green square, the indicator follows it. This indicator is a small dark-blue dot. Rotation Reactors The Rotation Reaction controller has a single manipulator, which controls the reaction's Influence parameter. Influence manipulator: Drag in a viewport to change the manipulator angle, which changes the reaction's range of influence. Reaction Controllers | 3245 Procedures To use manipulators for a position or rotation Reaction controller: (Point3, scale, and float Reaction controllers don't have manipulators.) 1 Select the object that has the Reaction controller assigned to it. 2 On the default Main toolbar, click Select And Manipulate. The manipulators appear in viewports. 3 In the active viewport, drag or click manipulators to adjust the reaction parameters. When you move the mouse over a manipulator, the manipulator turns red to show that dragging or clicking it will have an effect. TIP Use the reactor manipulators in a wireframe viewport. (See Viewport Right-Click Menu on page 7576.) Also, for the Position Reaction controller, you might have to change viewports to see a particular manipulator clearly. The specific manipulators and their use are described below. Scale XYZ Controller Main toolbar > Curve Editor (Open) > Select a scale track in the Track View hierarchy > Track View menu bar > Controller menu > Assign > Scale XYZ Graph Editors > Track View – Curve Editor > Select a scale track in the Track View hierarchy > Track View menu bar > Controller menu > Assign > Scale XYZ The Scale XYZ controller has independent float controllers for each scale axis of an object's transform. With three separate tracks for scale, you can create scale keys for each axis independently, change interpolation settings for a 3246 | Chapter 15 Animation single axis, or assign a controller on an axis. For example, after applying a Scale XYZ controller, you could apply a Noise or Waveform controller to an axis to animate that axis independently. The Scale XYZ controller assigns three keys (one for each axis), by default. In previous versions of the software, you had to edit the keys manually in order to create explicit axis keys. However, there are now actions available from the Customize User Interface dialog on page 7697 that let you create explicit axis keys on page 3114. TIP Open Track View to view and edit the three scale tracks. Procedures Example: To assign the Scale XYZ controller to an object: 1 In the Top viewport, create a sphere. 2 Right-click over the sphere and choose Curve Editor from the quad menu. Track View - Curve Editor opens with the sphere as the first item in the hierarchy. 3 In the Track View hierarchy, click the Scale track. 4 From the Track View menus, choose Controller > Assign and select Scale XYZ from the Assign Controller dialog. Three tracks are displayed and are available to control the object's scale. 5 In the Track View hierarchy, click the Z Scale track, click Controller > Assign from the Track View menus, and then choose Noise Float from the dialog. The Noise Controller dialog automatically displays. 6 Click Play. The sphere changes scale along the Z axis, controlled by the Noise controller. Interface After applying the Scale XYZ controller to an object, Scale XYZ parameters appear in a rollout on the Motion panel. Scale XYZ Controller | 3247 Scale Axis Adjusts an axis using controls in the Motion panel > Key Info rollout. An axis should already have a key to adjust. To create keys, either turn on Auto Key and scale the object, or click Scale in the Create Key group on the PRS Parameters rollout. Script Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Script Graph Editors > Track View - Curve Editor > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Script The following Script controllers are available in the software: ■ Float Script - float controller ■ Position Script - position Point3 controller ■ Point3 Script - Point3 controller ■ Rotation Script - rotation Quaternion controller ■ Scale Script - scale Point3 controller ■ Transform Script on page 3261 − matrix3 PRS controller The Script controllers work similarly to Expression controllers on page 3154. They provide a Script Controller dialog where a script can be entered for computing the controller value. The primary advantages of Script controllers are: ■ They can use all the features of the MAXScript language, including loops, scripted functions, and path names. ■ Almost any property of any object in a scene can be used to help compute controller values, including mesh vertices, values of properties at arbitrary frame times, and other non-animatable properties that are not accessible in Expression controllers. 3248 | Chapter 15 Animation ■ They can use MAXScript global variables to communicate and coordinate with other controllers and scripts in the software. Refer to the MAXScript Reference for a complete explanation of this scripting language. Writing Controller Scripts 3ds Max interprets the text you type into the Script text box as the body of a MAXScript block expression. You can type as many expressions as you want on as many lines as you want, and they are evaluated in turn. The value of the last expression is taken as the controller value. This value must yield the right type for the controller: Float for float, Point3 for position, Quat for rotation, and so on. Because the text is inside a block expression, you can declare local variables that are visible only within the script and are temporary for one evaluation. You can also declare or access global variables that are shared with all other scripts in MAXScript and hold their values from one evaluation to the next. A controller is always evaluated by 3ds Max with respect to a specific animation time. This might be the current time slider or incrementing frame time if an animation is playing, or a rendering is under way. In the case of Script controllers, the time being evaluated is used to establish an automatic "at time" context around the controller script, so any properties you access (outside of other explicit “at time” expressions) yield the correct values for the current controller evaluation time. This means you don't have to do anything special in your scripts to work at the correct time. You can access the evaluation time with the standard MAXScript variable, currentTime. You can also reference scene property values at other times by using "at time" expressions in your scripts, as in regular MAXScript programming. Assign Nodes and Tracks to Variables When you need to refer to nodes in your scene or to animation tracks, it is recommended that you use the Script controller variable toolset to create variables to assign to any particular node or controller track. This way, if you decide to later on rename your scene objects, the script controllers using these objects are preserved because the variables maintain the link to the nodes. Otherwise, if you assign, for example, a node to a variable manually in the dialog's Expression window, that link becomes broken as soon as you rename that particular node. Script Controller | 3249 NOTE It is especially important to assign nodes and tracks to variables with the corresponding buttons when using XRef scenes and objects. Procedures Example: To keep an object centered relative to other objects in the scene during an animation: 1 Name the object that should remain centered foo and assign a Script controller to its Position track. 2 Enter foo in the Name field and click Create. The new variable is automatically added to the Variables list. 3 With the variable highlighted, click Assign Node. The Track View Pick dialog opens, listing the contents of your scene. 4 Expand the Objects hierarchy until you locate foo. Highlight it and click OK. The foo node is assigned to your variable. 5 Enter the following script in the Script Controller dialog's Expression window: local pos=[0,0,0] for o in objects where o != foo do pos += o.pos pos / (objects.count - 1) This script computes the average position of all objects, except the current one (written as foo here) by setting up a local, iterating over all objects except foo, accumulating a total position vector, and computing the average in the last line, which is the final result of the script. 3250 | Chapter 15 Animation Interface Assigning a Script controller automatically opens a Script Controller dialog where you can enter a script. You can open the dialog subsequently by right-clicking the track on the Motion panel or in the Track View hierarchy and choosing Properties, or clicking the Properties button on the Track View toolbar. TIP You can resize the dialog by dragging an edge or a corner. Create Variable group Name Lets you enter and edit the name of user variables. Create Creates a variable and adds it to the Variables list. Delete Removes the highlighted variable from the Variables list. You can also delete a variable by tying its name into the Name field and click Delete. Rename Renames the highlighted variable. Variable Parameters group Tick Offset Specifies a time offset in ticks for the current variable. When the script is evaluated, the variable's value is set from the current time plus the Tick Offset value. NOTE The Time Offset has no effect on variables that are assigned a constant. Script Controller | 3251 Variables List Lists all available variables in the controller. The following pre-defined constant variables are available in every script Controller and cannot be deleted or renamed: ■ F the current time in frames ■ NT ■ S the current time in seconds ■ T the current time in ticks the normalized time Assign Constant Opens a dialog which lets you assign a constant to the highlighted variable. Value expression Enter any MAXScript value (such as an integer, a float, an array, etc.) or expression. Value expression result Displays the results of the expression above. Evaluate Analyzes your expression at the current time. OK Assigns the value expression result to the current variable. Cancel Disregards the current value expression result and closes the dialog. Assign Track Lets you assign a controller to the highlighted variable. The controller's value is taken at the current time plus the variable's Tick Offset. Assign Controller Lets you assign a track to the highlighted variable. Assign Node Lets you assign a node to the highlighted variable. Expression text field Enter the script expression here to calculate the controller value. Description text field Enter comments regarding the functionality of the controller. Load/Save Load and save scripts to text files. 3252 | Chapter 15 Animation Debug Opens the Script Controller Debug Window, which displays the value of all variables used in your script. Evaluate Evaluates the script expression. The evaluation is computed for the current position of the time slider. Close Compiles and checks the controller script for errors. If no errors are found, the dialog is closed. Any problems result in a query box asking whether you want to revert the expression to the original value of the current track and close the dialog (OK), or to return to editing the expression (Cancel). Smooth Rotation Controller Main toolbar > Curve Editor (Open) > Select a rotation track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Smooth Rotation Graph Editors > Track View – Curve Editor > Select a rotation track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Smooth Rotation Animation menu > Rotation controllers > Smooth Use Smooth Rotation when you want rotation to have a smooth and natural look. Smooth rotation functions the same as Linear Rotation, but uses non-adjustable curved interpolation, and has the following characteristics: ■ Displays no controllers, key properties, or function curves ■ Move keys in Track View to change timing ■ Directly rotate objects in the viewports to change rotation values Spring Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Spring Smooth Rotation Controller | 3253 Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View toolbar > Controller menu > Assign > Spring Animation menu > Position controllers > Spring The Spring controller adds secondary dynamics effects to any point or object position. The end result is secondary mass/spring dynamics similar to Flex. This constraint adds realism to generally static animations. When you apply Spring to an animated object, its original motion is preserved and secondary, velocity-based dynamics are applied. You can control the object's mass and drag. When you first apply the controller, it constructs a virtual spring between the object's original position and where it would end up after forces are applied to it. You can adjust spring tension and dampening. Increasing the tension creates a tighter spring, while increasing the dampening smoothes out jitters in the motion. You can add external forces like Gravity on page 2721 and Wind on page 2724 to affect the motion, and also add additional objects whose motions act as springs. NOTE You can also assign the Spring controller to animated vertices in Track View: Open the object's Master Point Controller hierarchy, select the vertices, and assign the Spring controller. Interface When you assign a Spring controller to an object, its rollouts automatically appear in the Motion panel. In addition, the rollouts open in a floating dialog. If you close the dialog, you can reopen it by right-clicking the track in the Motion panel Assign Controller rollout or in the Track View hierarchy and choosing Properties, or clicking the Properties button on the Track View toolbar. 3254 | Chapter 15 Animation Spring Dynamics rollout Point group Mass The mass of the object to which the Spring controller is applied. Increasing the mass causes the "bouncing" spring motion to become more exaggerated. Drag Acts as air friction on the spring motion. A low Drag setting results in a greater "bouncing" effect, while a high Drag results in subdued bouncing. Default=1. Range=0 to 10. Springs group Add springs to an object using the Spring controller when you want the object to be affected by the motion of other objects in your scene. This effectively creates virtual springs between objects. Add Click this button, and then select one or more objects whose motion relative to the spring-controlled object will act as springs on that object. To finish adding springs, click Add again, right-click in a viewport, or press Esc. Remove Removes highlighted spring objects from the list. NOTE You cannot remove the Self Influence list entry, which is the spring-controlled object's influence on itself. Spring Controller | 3255 (List) Lists all spring objects by name, and displays each object's Tension and Dampening settings separated by a slash (/). The spring-controlled object's influence on itself appears as Self Influence, and cannot be deleted. However, you can effectively remove the object's influence on itself by setting Tension and Dampening to 0, resulting in no motion. To set Tension and Dampening for one or more objects in the list, highlight them in the list and then adjust the settings. Tension The "stiffness" of the virtual spring between the controlled object and the highlighted spring object(s). Dampening Acts as a multiplier of an internal factor that determines how quickly the object comes to rest. With the Self Influence spring, changing Dampening has the same effect as changing Drag. With other springs, Dampening affects only the movement caused by that spring. Internally, the dampening value is proportional to the tension, so as you increase the tension and make the solution more stiff, the dampening is increased to maintain system stability. Relative/Absolute With Relative chosen, changing the Tension and Dampening settings causes the new settings to be added to the existing values. With Absolute chosen, the new settings replace the existing values. 3256 | Chapter 15 Animation Forces Limits and Precision rollout External Forces group Add Click this button, and then select one or more space warps in the Forces category that are to affect the object's motion. To finish adding space warps, click Add again, right-click in a viewport, or press Esc. Remove Removes highlighted space warps from the list. (List) Lists all spring space warps by name. Calculation Parameters group Start Frame The frame at which the Spring controller first takes effect. Default=0. Iterations The accuracy of the controller application. If you get unexpected results, try increasing this setting. Default=2. Range=0 to 4. X/Y/Z Effect These settings let you control the percentage of the effect on the individual world axes. Default=100. Range=0 to 200. Spring Controller | 3257 TCB Controllers Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > TCB Graph Editors > Track View - Curve Editor > Select a track in the Track View hierarchy. > Track View toolbar > Controller menu > Assign > TCB Animation menu > Position, Rotation, or Scale > Quaternion (TCB) TCB Controllers produce curve-based animation much like Bezier controllers. However, TCB controllers do not use tangent types or adjustable tangent handles. They use fields to adjust the Tension, Continuity, and Bias of the animation. This controller works well as a Position controller in conjunction with the Motion panel > Trajectories display of an object. With sub-object keys turned on and the Key Info dialog for a key displayed (right-click and select Key Info on the selected key to display Key Info properties), you can change the parameters in the Key Info dialog and see the trajectory path change. This allows for very precise control of an object's trajectory with visual feedback. Euler XYZ is now the default rotation controller in 3ds Max. The TCB Rotation controller was the default rotation controller for files created in versions 4 and earlier. TIP Euler XYZ behaves very differently than TCB rotations. Users upgrading from versions 4 or earlier might have difficulty adapting to the differences between these controllers. If you are used to working with TCB rotations, you can reassign it to be the default rotation controller. 3258 | Chapter 15 Animation Procedures To change an Euler XYZ Rotation controller into a TCB Rotation controller: 1 Select an object animated with an Euler XYZ rotation controller. 2 In Motion panel > Parameters > Assign Controller rollout, select the Rotation track in the list window. 3 Click Assign Controller, and then select Quaternion (TCB). You can also assign this controller in Track View or from the Animation menu. Interface TCB controllers display their properties in a Key Info dialog in Track View and a single Key Info rollout in the Motion panel. Time field Specifies when in time the key occurs. Time Lock Prevents horizontal key motion in Track View edit modes. Key Value fields Stores the animation values for the key. The number and meaning of the fields vary with different parameter data types. Some typical field arrangements are: ■ XYZ fields for Position and Point3 keys ■ XYZ percentage fields for Scale keys ■ A single value field for Float keys TCB Controllers | 3259 TCB Graph Charts the effect that changing the controller properties will have on the animation. The red mark at the top of the curve represents the key. The marks to the left and right of the curve represent an even division of time to either side of the key. The TCB graph is a stylized representation of the animation around a single key. If you want to view the effect of changing TCB properties on the true animation curve, use the Function Curves mode of Track View (works only with position and scale). The following descriptions refer to both the TCB graph and the function curve as the animation curve. NOTE When you are changing the properties of a selection of multiple keys, the TCB graph is blank unless all properties are equal. Ease To Slows the velocity of the animation curve as it approaches the key. Default=0. High Ease To causes the animation to decelerate as it approaches the key. The default setting causes no extra deceleration. Ease From Slows the velocity of the animation curve as it leaves the key. Default=0. High Ease From causes the animation to start slow and accelerate as it leaves the key. The default setting causes no change of the animation curve. Tension Controls the amount of curvature in the animation curve. High Tension produces a linear curve. It also has a slight Ease To and Ease From effect. Low Tension produces a very wide, rounded, curve. It also has a slight negative Ease To and Ease From effect. The default value of 25 produces an even amount of curvature through the key. Continuity Controls the tangential property of the curve at the key. The default setting is the only value that produces a smooth animation curve through the key. All other values produce a discontinuity in the animation curve causing an abrupt change in the animation. Default=25. High Continuity values create curved overshoot on both sides of the key. Low Continuity values create a linear animation curve. Low continuity creates a linear curve similar to high tension except without the Ease To and Ease From side effect. The default setting creates a smooth continuous curve at the key. 3260 | Chapter 15 Animation Bias Controls where the animation curve occurs with respect to the key. Default=25. High Bias pushes the curve beyond the key. This produces a linear curve coming into the key and an exaggerated curve leaving the key. Low Bias pulls the curve before the key. This produces an exaggerated curve coming into the key and a linear curve leaving the key. The default setting distributes the curve evenly to both sides of the key. Rotation Windup (TCB rotation only) When on, rotation keys can be greater than 180 degrees. When off, rotation keys are always less than 180 degrees. This is useful if you want to set a single rotation key to create multiple revolutions of an object. Default=off. WARNING If you have Rotation Windup on and you insert a rotation key between two previously created rotation keys, you might get unexpected directional shifts. Rotation Windup works best if you set keys using a straight-ahead workflow. Transform Script Controller Main toolbar > Curve Editor (Open) > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Transform Script Graph Editors > Track View - Curve Editor > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Transform Script Animation menu > Transform Controllers > Script The Transform Script controller contains all of the information contained in a Position/Rotation/Scale (PRS) controller on page 3220 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. Transform Script Controller | 3261 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. Writing Controller Scripts The software interprets the text you type into the Script text box as the body of a MAXScript block expression. You can type as many expressions as you want on as many lines as you want, and they are evaluated in turn. The value of the last expression is taken as the controller value. This must yield a matrix3 value. Since the text is inside a block expression, you can declare local variables that are visible only within the script and are temporary for one evaluation. You can also declare or access global variables that are shared with all other scripts in MAXScript and hold their values from one evaluation to the next. A controller is always evaluated with respect to a specific animation time by the software. This might be the current time slider or incrementing frame time if an animation is playing, or a rendering is under way. In the case of Script controllers, the time being evaluated is used to establish an automatic "at time" context around the controller script, so any properties you access (outside of other explicit “at time” expressions) yield the correct values for the current controller evaluation time. This means you don't have to do anything special in your scripts to work at the correct time. You can access the evaluation time with the standard MAXScript variable, current Time. You can also reference scene property values at other times by using "at time" expressions in your scripts, as in regular MAXScript programming. Assign Nodes and Tracks to Variables When you need to refer to nodes in your scene or to animation tracks, it is recommended that you use the Script controller variable toolset to create variables to assign to any particular node or controller track. This way, if you decide to later on rename your scene objects, the script controllers using these objects are preserved because the variables maintain the link to the nodes. Otherwise, if you assign, for example, a node to a variable manually in the dialog's Expression window, that link becomes broken as soon as you rename that particular node. NOTE It is especially important to assign nodes and tracks to variables with the corresponding buttons when using XRef scenes and objects. 3262 | Chapter 15 Animation Create Variable group Name Lets you enter and edit the name of user variables. Create Creates a variable and adds it to the Variables list. Delete Removes the highlighted variable from the Variables list. You can also delete a variable by tying its name into the Name field and click Delete. Rename Renames the highlighted variable. Variable Parameters group Tick Offset Specifies a time offset in ticks for the current variable. When the script is evaluated, the variable's value is set from the current time plus the Tick Offset value. NOTE The Time Offset has no effect on variables that are assigned a constant. Variables List Lists all available variables in the controller. The following pre-defined constant variables are available in every script Controller and cannot be deleted or renamed: ■ F the current time in frames ■ NT ■ S the current time in seconds ■ T the current time in ticks the normalized time Assign Constant Opens a dialog which lets you assign a constant to the highlighted variable. Value expression Enter any MAXScript value (such as an integer, a float, an array, etc.) or expression. Value expression result Displays the results of the expression above. Evaluate Analyzes your expression at the current time. Transform Script Controller | 3263 OK Assigns the value expression result to the current variable. Cancel Disregards the current value expression result and closes the dialog. Assign Track Lets you assign a controller to the highlighted variable. The controller's value is taken at the current time plus the variable's Tick Offset. Assign Controller Lets you assign a track to the highlighted variable. Assign Node Lets you assign a node to the highlighted variable. Expression text field Enter the script expression here to calculate the controller value. Description text field Enter comments regarding the functionality of the controller. Load/Save Load and save scripts to text files. Debug Opens the Script Controller Debug Window, which displays the value of all variables used in your script. Evaluate Evaluates the script expression. The evaluation is computed for the current position of the time slider. Close Compiles and checks the controller script for errors. If no errors are found, the dialog is closed. Any problems result in a query box asking whether you want to revert the expression to the original value of the current track and close the dialog (OK), or to return to editing the expression (Cancel). Procedures To use a Transform Script controller: 1 Select an object. 2 Right-click to open the quad menu. 3 In Transform quadrant, click Curve Editor. 4 Select the Transform track of the selected object in Track View. 5 Select Transform Script from the Assign Transform Controller dialog and click OK. The Script Controller dialog opens. 6 Edit the matrix3 value in the Script Controller dialog, and click Evaluate when you are finished. 3264 | Chapter 15 Animation Interface After assigning a Transform Script controller, a Properties dialog is available by right-clicking the track in the Track View hierarchy and choosing Properties. Waveform Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Waveform Float Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View toolbar > Controller menu > Assign > Waveform Float The Waveform controller is a float controller that provides regular, periodic waveforms. Created originally to control blinking lights, you can use it on any float value. Waveform Controller | 3265 To view how the trajectory of an object is being affected by the Waveform controller, turn on Motion panel > Trajectories. Procedures To use the Waveform controller to animate the visibility of a sphere: 1 Create a sphere. 2 Open Track View, and select the Sphere track. 3 On the Tracks menu choose Visibility Track > Add. 4 Select the Visibility track, click Controller > Assign, and select Waveform Float. 5 Play the animation to see the effect. To use the Waveform controller to animate the radius of a sphere: 1 Create a sphere. 2 Open Track View — Dope Sheet, and expand the Object (Sphere) track. 3 Select the Radius track, click Controller > Assign, and choose Waveform Float from the Assign Controller dialog. 4 Play the animation to see the effect. Interface After assigning the Waveform controller, in Track View, right-click its track to display its properties in the Waveform Controller dialog. 3266 | Chapter 15 Animation List Window Displays waveforms in a list. Add Adds a new waveform to the end of the list. The default waveform is a sine wave with a period of 10 frames and with an amplitude of 100. Insert Inserts a new waveform before the selected waveform slot. Remove Deletes the selected waveform. This is not available when only one waveform remains. Move Up and Move Down Shifts the selected waveform up and down in the list, allowing the waveform order to be altered. Disable Disables the selected waveform. Waveform group This group provides control parameters for the currently selected waveform. TIP Using the Sphere example, you can observe the waveform in the Function Curve displays of the Track View, and watch changes in the waveform while testing the parameters described below. Name Contains the name of the waveform. Waveform Icons Specifies five waveform types: Sine, Square, Triangle, Sawtooth, and Half Sine. Inverted Flips the waveform vertically. Waveform Controller | 3267 Flipped Flips the waveform horizontally. Period Sets the number of frames to complete one waveform pattern. Spinner Value=float, 0.01 to 9,999,999 Duty Cycle For square waves only, specifies the percentage of time the square wave is "on." Default=50, Spinner Value=float, 0 to 100 Amplitude Sets the height of the wave. Spinner Value=float, 0 to 9,999,999 Phase Sets the offset of the wave. Spinner Value=float, 0 to 1 Vertical Bias group A waveform's output value can be altered by adjusting the Vertical Bias parameter. Spinner Value=float, -9,999,999 to 9,999,999 Centered Centers the waveforms vertical bias about zero. For example, a 100 unit amplitude waveform would range from -100 to 100. Auto > 0 Shifts the waveform above the zero line. Auto < 0 Shifts the waveform below the zero line. Manual Lets you set the waveform manually by adjusting the spinner. Effect group Each waveform has an Effect parameter, which can be one of the following: Add Causes the current waveform's value to be added to the previous waveform's output. This is the default. Multiply Multiplies the previous waveform's output by this waveform's value. Clamp Above Limits the previous waveform's output to be above this waveform's value. Clamp Below Limits the previous waveform's output to be below this waveform's value. Characteristic Graph Characteristic Graph shows one of three displays, controlled by the radio buttons below the display. This Wave Shows the current waveform only, independent of all other waveforms. 3268 | Chapter 15 Animation This Output Shows the output of the current waveform, including all previous waveforms. Final Output Shows the output of all the waveforms in the list. You can also see the final output by turning on the Track View — Curve Editor display for the track which has the waveform controller assigned. All displays show the output graph of the controller waveforms in a solid dark line, with the zero line drawn in a dotted gray line. Two numeric displays to the right show the high and low range of the waveform curve. The graph automatically scales vertically to fit the waveform output curve, and scales horizontally to two times the period of the longest-period waveform. XRef Controller Main toolbar > Curve Editor (Open) > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > XRef Controller Graph Editors > Track View - Curve Editor > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > XRef Controller This controller lets you externally reference any type of Transform controller on page 3116 from another scene file. The XRef controller follows the same concepts and principles as the XRef objects on page 6936 and XRef material on page 5765; it can improve upon the collaborative synergy within a production environment by letting you access animation data currently in another scene while someone else updates it. For example, while an animator works locally on a character's walk cycle, a scene integrator can externally reference it into his master scene comprised of several characters. The integrator can now regularly update his master scene with the latest changes from the source scene; if he notices a problem, the animator can make the appropriate modifications, which reflect in the master scene. XRef Controller | 3269 You can create an XRef controller with or without an XRef object: ■ You can externally reference a source object's animation without the object itself by assigning an XRef controller to your current selection on page ?. ■ You can create an XRef object, which automatically nests the source object's Transform controller in an XRef controller. The XRef Objects dialog's XRef Entities list on page 6950 lists both XRefs as separate entries. NOTE The Merge Transforms option must be off to externally reference a controller; otherwise, the controller merges with the current scene. To remove an XRef controller, you can either right-click the entry in the XRef Entities list and choose Merge in Scene from the contextual menu, or assign a new Transform controller to your object. NOTE Replacing the XRef controller with another type removes any animation it contains. Although XRef controllers are read-only in your master scene, you can add a local offset to the object's animation on page 3271. Procedures To assign an XRef controller using the Motion Panel: 1 Select an object in the current screen. 2 On the Motion Panel, click Parameters, and open the Assign Controller rollout. 3 Highlight the Transform track in the Assign Controller list. 4 Click the Assign Controller button, and then select XRef Controller from the Assign Transform Controller dialog. 5 In the Open File dialog, navigate to the file from which to externally reference the transform controller and then click Open. 3270 | Chapter 15 Animation 6 Use the XRef Merge dialog to designate the object whole transform controller you want to XReference. The software references the scene object's transform controllers from the external object's controllers. TIP You can also XReference a different controller from either another file or another object via the Parameters rollout of the XRef controller. Object's Transform Position highlighted. Object's Transform Position XReferenced. To add and reset a Transform offset to an XRef Object's Animation 1 Create a sphere at [0,0,0] and animate it from [0,0,0] to [5,5,5] 2 Save your scene, then choose File > Reset. 3 Choose File > XRef Objects. 4 In the XRef Objects dialog, make sure Merge Transforms is off, then click the Create XRef Record From File and select the scene you just saved. The sphere appears in your master scene at [0,0,0]. XRef Controller | 3271 5 Move the sphere to [10,10,10]. The sphere now translates from [10,10,10] to [15,15,15]. 6 Right-click the XRef Controller entry in the XRef Entities list of the XRef Objects dialog. 7 From the contextual menu, choose Reset PRS Offset. This removes the sphere's local offset, which now returns to its original [0,0,0] position. Interface These controls, similar to those on the XRef Object rollout on page 6973, let you change the file path, file name, and object name of the source of the XRef controller. Hightlight corresponding XRef Record in the XRef Object dialog Opens the XRef Objects dialog on page 6941 and highlights the corresponding XRef record within. File Name controls File Name field Displays the path and file name of the scene containing the source controller. You can edit this to point to a different path and file. File Name display Displays the file name only, without the path. 3272 | Chapter 15 Animation Path button Opens a file dialog from which you select a new file (either .max or .chr). Object controls Object Name field Displays the name of the source object pointed to in the source file which holds the source controller. Object Name display Displays the file name of the source object. Path button Opens an XRef Merge dialog on page 6956 pointing to the scene in the XRef File Name field. Here, you can specify a different object to be used as the XRef object. status line Displays status information regarding the XRef controller: ■ “Unresolved XRef, File Not Found”: Cannot find the scene file containing the specified object name. ■ “Unresolved XRef, Object Not Found”: Cannot find the object in the specified scene. ■ “XRef Resolved”: Both scene and object match. Controller Subdialogs Audio Controller Dialog Track View or Motion panel > Highlight a track using the Audio controller in the Track View hierarchy. > Right-click the track. > Properties Track View or Motion panel > Double-click a track using the Audio controller in the Track View hierarchy. > Properties Adding a sound track to your animation allows you to synchronize animation to sound. Add a sound track to lip-sync a character speaking, for example. Controller Subdialogs | 3273 Interface Audio File group Use this group to add and remove sound files from the controller, and to adjust amplitude. Choose Sound Displays a standard file selector dialog. You can choose WAV and AVI files. Remove Sound Removes any sound file associated with a controller. Absolute Value Controls the interpretation of sound amplitude. The value returned by the Audio controller is sample amplitude divided by maximum amplitude. Value=(sample amp.)/(maximum amp.) When Absolute Value is turned on, the maximum amplitude equals the maximum sampled amplitude from the waveform. This ensures that potential for the output value reaches the target value. 3274 | Chapter 15 Animation When off, the maximum amplitude equals the maximum potential amplitude of the waveform. Output reaches the target value only if the waveform reaches its maximum potential amplitude. The maximum potential amplitude for an 8-bit file is 128; for a 16-bit file, it's 32768. Real Time Control group Use this group to create interactive animation that's driven by sound captured from an external audio source, such as a microphone. Use these options only for interactive presentations. You can't save the real-time sound or save the animation produced by the controller. Enable Real Time Device Sets whether sound is captured from an external audio source. This option is inactive if a sound capture device is not installed in your system. When on, any selected audio file is ignored, and the controller uses sound captured by the selected device. When off, the controller uses the selected audio file. Real Time device list Displays all available real-time sound devices installed in your system. Select the device you want to use for real time sound capture. Sample group This group contains controls to filter out background noise, smooth out the waveform, and control display in Track View. Threshold Sets the bottom cut-out level as a percentage of total amplitude. Any amplitude below the threshold drops to 0.0. Threshold range is from 0.0 to 1.0. A Threshold of 0.0 has no effect on amplitude output values. A Threshold of 1.0 drops all amplitude output values to 0.0. You can use low threshold values to filter out background noise from the controller. Oversampling Smoothes the waveform. Multiple samples are averaged to remove peaks and valleys. Enter a number in the Oversampling field to calculate the average Fast Track View Controls the display of oversampling. When turned on, oversampling is ignored for the Track View display. Controller Subdialogs | 3275 When turned off, oversampling is applied to the Track View display. High oversampling values can slow the display of the waveform. Base & Target Scale groups Here you enter minimum and maximum parameter values returned by the controller. The fields you see vary by the type of parameter using the Audio controller. Float parameters are displayed in the Controller Range group with Min. and Max. fields. Vector parameters (3 components), such as Transforms, display Base and Target groups with fields for X, Y, and Z values. Base Scale Defines the float value or X, Y, and Z values returned for an amplitude of 0.0. Target Scale Defines the float value or X, Y, and Z values returned for maximum amplitude. Channel group With this group you select which channel drives the controller output value. These options are only available if you have chosen a stereo sound file. Left Uses the left channel amplitude. Right Uses the right channel amplitude. Mix Combines the two channels so that the returned amplitude is the greater value of either channel. Attach Controls Dialog (Block Controller) Track View > Global Tracks > Block Control > Click and then right-click MasterBlock track. > Properties > Load > Choose a file. > OK > Attach Controls dialog Track View > Global Tracks > Block Control > Double-click MasterBlock track. > Properties > Load > Choose a file. > OK > Attach Controls dialog This dialog is displayed when you click Load in the Master Block Parameters dialog on page 3280. Tracks in blocks previously saved can be mapped to tracks in the current scene. 3276 | Chapter 15 Animation The Incoming Controls list on the left contains all the incoming tracks. The Copy To list on the right contains all the tracks in the current scene that you will attach to. Interface Add Selects tracks in the current scene in the Track View Pick dialog on page 3286. Add Null Allows a space to be taken if you don’t want to use a particular track. Match by Node Select tracks on the left that you want to match. Click Match By Node. Then select a group of tracks that you want to match to. The system attempts to match the controls based on their names. Delete Deletes a track from the list. Move Up, Move Down Move tracks up and down to align them before attaching them. OK Imports the tracks and closes the dialog. Cancel Cancels the Load operation. Controller Subdialogs | 3277 Barycentric Morph Controller Key Info Dialog Select a Morph object > Track View - Dope Sheet > Right-click a morph key. > Barycentric Morph Controller Key Info dialog You can change morph target weighting using controls in the Barycentric Morph Controller Key Info dialog. Interface Current Key Specifies the current key that you're adjusting. Time Specifies where, in time, the current key is placed. Tension/Continuity/Bias Adjusts the TCB parameters of the key spline interpolation. TCB Spline Displays the key interpolation spline. 3278 | Chapter 15 Animation Targets Lists all morph targets for the object, along with the percentage of their influence at the current key. The total percentage of all targets is displayed below the window. You can select any target in this window, and then adjust its percentage of influence using the spinner at right. Percentage Sets the percentage of influence for the target selected in the list window. Percentage values can be negative as well as greater than 100 percent. Constrain to 100% Limits total weight of all targets to 100 percent. As you increase or decrease the percentage of a selected target, the other targets adjust accordingly. The adjustment takes the form of balancing all of the target percentages so that their relative weights remain the same. When this check box is turned off, you can adjust the weight of each target without affecting the others, and create a total that's greater or less than 100 percent. Totals greater than 100 percent cause the morph object to scale up in size, while totals less than 100 percent cause the morph object to scale down. Note that this check box is global, and not confined to a single key or track. Block Parameters Dialog (Block Controller) Track View > Global Tracks > Block Control > Click and then right-click MasterBlock track. > Properties > Master Block Parameters dialog > Add > Choose tracks in Track View Pick dialog > Click OK. > Block Parameters dialog Track View > Global Tracks > Block Control > Double-click MasterBlock track. > Properties > Master Block Parameters dialog > Add > Choose tracks in Track View Pick dialog > Click OK. > Block Parameters dialog After clicking Add in the Master Block Parameter dialog and selecting tracks in the Track View Pick dialog to create a Block, clicking OK in the Track View Pick dialog displays the Block Parameters dialog. Controller Subdialogs | 3279 Interface Name Field Names the block. Start, End Set the range of the block in frames. Color Selects a color for the Block. Displays a color selection dialog. OK Saves the parameters and closes the dialog. Cancel Closes the dialog without saving the parameters. Master Block Parameters Dialog (Block Controller) Track View > Global Tracks > Block Control > Master Block > Click and then right-click the Master Block track. > Master Block Parameters dialog Track View > Global Tracks > Block Control > Master Block > Double-click the Master Block track. > Master Block Parameters dialog After assigning a Master Block, right-click the Master Block track to open the Master Block Parameters dialog. This is the first step in creating a block. 3280 | Chapter 15 Animation Interface Add Opens the Track View Pick dialog. Use the dialog to choose tracks to include in a Block. Valid tracks are displayed in darker text. Add Selected Creates a block using the tracks already selected in the Track View hierarchy. Any invalid tracks are ignored. Select the tracks (include the Master Block track), and then right-click Master Block in the Track View hierarchy. Replace Replaces the currently selected block. Remove Remove the selected block from the list. Load Loads a block from disk. Displays the Attach Controls dialog. Map incoming tracks to tracks in your scene using controls in the Attach Controls dialog. Save Saves the current block to disk. Controller Subdialogs | 3281 Master Track Key Info Dialog (Master Point Controller) Track View - Dope Sheet > Right-click a master track key in the Dope Sheet Key window. > Master Track Key Info dialog With Track View in Dope Sheet mode, right-click a green master key of a Master Point controller on page 3201 to display the Master Track Key Info dialog. 3282 | Chapter 15 Animation Interface [key arrows] Moves to the next or previous key. Time Moves the master key to a different frame or time. Sub Keys list window Displays all the animated sub-object keys at a particular frame or time. Select Point Select a node in the List Window and the corresponding node in the viewports is selected, if the corresponding sub-object level is active. Controller Subdialogs | 3283 Key Frame Properties Displays and lets you adjust interpolation and position. See Bezier Controller on page 3138. Slave Parameters Dialog (Block Controller) Track View > Click and then right-click a slave track in the Track View hierarchy. > Properties > Slave Parameters dialog Track View > Double-click a slave track in the Track View hierarchy. > Properties > Slave Parameters dialog Every time you create a block, all tracks within the block are assigned a Slave controller, which allows the Master Block to transfer key data. The Slave controller can be assigned without being connected to a Master Block controller. Controls in the Slave Parameters dialog allow you to attach the slave to a master. If the slave is not attached to a master, a dialog is displayed listing the available master controls you can attach to. The Track View Pick dialog on page 3286 is displayed, listing the tracks you can add. Right-click a Slave controller in the Track View hierarchy to display the Slave Parameters dialog. The list window displays any assigned tracks. 3284 | Chapter 15 Animation Interface Add New Link Adds a link. Displays the Add New Link dialog with available tracks. Click a track and then click OK. Remove Link Removes the highlighted link. Collapse Control Collapses the Slave controller to a standard controller. Existing keys are copied to the new controller. OK Closes the dialog. Controller Subdialogs | 3285 Track View Pick Dialog (Block Controller) Track View > Global Tracks > Block Control > Click and then right-click MasterBlock track. > Properties > Master Block Parameters dialog > Add > Track View Pick dialog Track View > Global Tracks > Block Control > Double-click MasterBlock track. > Properties > Master Block Parameters dialog > Add > Track View Pick dialog This dialog is displayed when track selection is necessary, by clicking Add in the Master Block Parameters dialog on page 3280, for example. Select tracks in the dialog that you want to include in a Block. Valid tracks are darker. Interface Cancel Exits the Track View Pick dialog with no changes. If tracks are highlighted in the Hierarchy list, then the Block Parameters dialog on page 3279 is displayed when you click OK, to allow you to set the duration for the Block. 3286 | Chapter 15 Animation Animation Constraints An animation constraint is a special type of controller that can help you automate the animation process. You can use constraints to control an object’s position, rotation, or scale through a binding relationship with another object. A constraint requires an animated object and at least one target object. The target imposes specific animation limits on the constrained object. For example, to quickly animate an airplane flying along a predefined path, you can use a Path constraint on page 3297 to restrict the airplane’s motion to a spline. You can use keyframe animation to toggle the constraint’s binding relationship with its targets over a period of time. Common uses for constraints include: ■ Linking one object to another over a period of time, such as a character’s hand picking up a baseball bat ■ Linking an object’s position or rotation to one or several objects ■ Keeping an object’s position between two or more objects ■ Constraining an object along a path or between multiple paths ■ Constraining an object to a surface ■ Making an object point toward another object ■ Keeping an object’s orientation in relation to another There are seven types of constraints: ■ Attachment constraint on page 3288 attaches an object’s position to a face on another object ■ Surface constraint on page 3293 restricts an object’s position along the surface of another object ■ Path constraint on page 3297 restricts an object’s movement along a path ■ Position constraint on page 3303 causes the constrained object to follow the position of another object ■ Link constraint on page 3308 links the constrained object from one object to another Animation Constraints | 3287 ■ LookAt constraint on page 3312 constrains an object’s orientation so that it’s always looking at another object ■ Orientation constraint on page 3319 causes the rotation of the constrained object to follow the rotation of another object TIP You can use Schematic View to see all the Constraint relationships in a scene. Using Constraints with Bones Constraints can be applied to bones as long as an IK controller is not controlling the bones. If the bones have an assigned IK controller, you can only constrain the root of the hierarchy or chain. Attachment Constraint Animation menu > Constraints > Attachment Constraint 3288 | Chapter 15 Animation Attachment constraints keep the cylinders on the surface. The Attachment constraint is a position constraint that attaches an object's position to a face on another object (the target object doesn't have to be a mesh, but must be convertible to a mesh). By keying different attachments over time, you can animate the position of an object over the irregular surface of another object, even if that surface is changing over time. Procedures Example: To attach a cone to a bending cylinder: 1 In the Perspective viewport, create a cylinder with a radius of 20, a height of 30, and 10 height segments. Attachment Constraint | 3289 2 In the Perspective viewport, create a cone with a radius 1 of 15, a radius 2 of 5, and a height of 30. 3 Select the cylinder, apply a Bend modifier, and set the bend angle to -70 degrees. 4 Turn on Auto Key, move to frame 100, and set the bend angle to 70 degrees. The cylinder bends from one direction to the other over 100 frames. 5 Turn off Auto Key. Example continued: To assign the Attachment constraint and adjust the cone: 1 Select the cone. 2 On the Motion panel, open the Assign Controller rollout, click the Position track, click Assign Controller, and choose Attachment. The cone moves to the origin of the scene, and the Attachment Parameters rollout is displayed. 3 Click the Pick object, and then click the cylinder. The name of the cylinder is displayed above the Pick Object button. 4 Go to frame 0. Orbit the Perspective viewport so you can see the top surface of the cylinder. 5 Click Set Position, and click and drag over the faces on the top surface of the cylinder. The cone jumps to the top of the cylinder. As you drag the mouse, it jumps to whichever face you drag over. 6 Release the mouse when the cone is on the top surface of the cylinder. Example continued: To adjust the position of the cone relative to the face: 1 Drag in the face display window to position the red x relative to the triangle representing the face. (Because of the radial arrangement of cap faces in a cylinder, the upper-left corner of the displayed triangle is the center of the cylinder cap. You can turn off Edges Only for the cylinder to see this.) 2 Adjust the A and B spinners to move the cone across the surface of the face. 3290 | Chapter 15 Animation 3 Drag the time slider to various frames. As the cylinder bends back and forth, the cone remains attached to its upper surface. Continue adjusting the A and B spinners and dragging in the face display window to adjust the cone's position. 4 Remember the number in the Face spinner, and then lower the spinner value until the cone leaves the cylinder cap and begins jumping around various areas of the cylinder. The Face spinner specifies which face the cone is attached to. As you change its values, the cone moves to different faces on the cylinder. 5 Re-enter the original value in the Face spinner to return the cone to the top of the cylinder. 6 Play the animation. The cylinder bends back and forth with a cone attached to its upper cap. Interface Parameters for this constraint are available on the Motion panel after the controller has been assigned. Attach To group Object Name text Specifies the target object to which the source object is attached. Pick Object Selects and picks the target object in the viewports for the attachment. Align to Surface Fixes the orientation of the attached object to the face where it's assigned. When this is turned off, the orientation of the attached object is not affected by the orientation of the face on the target object. Attachment Constraint | 3291 Update group Update Updates the display. Manual Update Enables Update. Key Info group Current Key Displays the current key number and lets you move to another key. Time Displays the current frame, and lets you move the current key to a different frame. Position group Face Provides the index of the face to which the object is attached. Range=0 to 268435455. A/B Contains the barycentric coordinates defining the position of the attached object on the face. Range=-999,999 to 999,999. 3292 | Chapter 15 Animation (display window) Shows the position of the source object within the attachment face. You can drag within this window to adjust the position of the object relative to the face. Set Position Adjusts the placement of the source object on the target object. Drag over the target object to specify a face and a position within the face. The source object moves accordingly over the target object. TCB group All of the items in this group are the same as in other TCB controllers on page 3258. The orientation of the source object is also interpolated and affected by these settings. Tension Range=0 to 50 Continuity Range=0 to 50 Bias Range=0 to 50 Ease To Range=0 to 50 Ease From Range=0 to 50 Surface Constraint Animation menu > Constraints > Surface Constraint Surface Constraint | 3293 Animation menu > Track View > New/Open Track View > Select a position track in Track View Hierarchy. > Track View toolbar > Assign Controller > Surface Surface constraints position the weather symbols on the globe. The Surface constraint positions an object along the surface of another object. The type of object that can be used as the surface object is limited to those whose surfaces can be represented parametrically. Use the Surface constraint with the following types of objects: ■ Sphere ■ Cone ■ Cylinder ■ Torus ■ Quad Patches (single quad patches) ■ Loft object ■ NURBS object 3294 | Chapter 15 Animation The surface used is a "virtual" parametric surface, and not the actual mesh surface. Objects with a low number of segments might have a mesh surface quite different than the parametric surface. The parametric surface ignores Slice and Hemisphere options. So if the object is sliced, for example, the controlled object will position itself as if the missing portion were still there. Since the Surface constraint only works on parametric surfaces, if you apply a modifier that converts the object to a mesh, the constraint will no longer work. For example, you can't use it with a cylinder with a bend modifier applied. Procedures Example: To animate a sphere over the surface of a cylinder: 1 In the Top viewport, create a cylinder and a sphere. 2 Select the sphere, open the Motion panel, expand the Assign Controller rollout, and then expand the Transform heading in the list. 3 In the list window, click the Position item and then click Assign Controller. 4 In the Assign Position Controller dialog, choose Surface and then click OK. The Surface Controller Parameters rollout replaces the Key Info rollout. 5 Click Pick Surface, and then select the cylinder. 6 Turn on Auto Key, and place the time slider at frame 0. 7 Use the V Position spinner to move the sphere to a starting position at the bottom of the cylinder. 8 Place the time slider at frame 100. 9 Use the V Position spinner to place the sphere at the top of the cylinder. 10 Set U Position to 300. Turn off Auto Key and play the animation. The sphere moves over the surface of the cylinder in a helical path. Surface Constraint | 3295 Interface The Surface Constraint Parameters rollout is on the Motion panel. Current Surface Object group This group provides a method for selecting and then displaying the selected surface object. Text Displays the name of the selected object. Pick Surface Selects the object you want used as a surface. Surface Options group This group provides controls for adjusting the position and orientation of the object along the surface. U Position Adjusts the position of the controlled object along the U coordinates of the surface object. V Position Adjusts the position of the controlled object along the V coordinates of the surface object. No Alignment When on, the controlled object is not reoriented, regardless of its position on the surface object. 3296 | Chapter 15 Animation Align to U Aligns the local Z axis of the controlled object with the surface normal of the surface object, and the X axis with the U axis of the surface object. Align to V Aligns the local Z axis of the controlled object with the surface normal of the surface object, and the X axis is aligned with the V axis of the surface object. Flip Flips the alignment of the local Z axis of the controlled object. This check box is not available if No Alignment is turned on. Path Constraint Animation menu > Constraints > Path Constraint Path constraint positions the service platform along the side of the bridge. A path constraint restricts an object's movement along a spline or at an averaged distance between multiple splines. A path target can be any type of spline. The spline curve (target) defines a path of motion for the constrained object. Targets can be animated using any of Path Constraint | 3297 the standard translation, rotation, scale tools. Setting keys at a sub-object level of the path, such as vertex or segment, animates the path while affecting the constrained object. Multiple Targets and Weighting A constrained object can be influenced by several target objects. When using multiple targets, each target has a weight value that defines the degree by which it influences the constrained object, relative to other targets. Using Weight is meaningful (and available) only with multiple targets. A value of 0 means the target has no influence. Any value greater than 0 causes the target to influence the constrained object relative to other targets' Weight settings. For example, a target with a Weight value of 80 will have twice the influence of a target with a Weight value of 40. Procedures To assign a Path constraint: 1 Create a Sphere with a radius of 10 and a Circle with a radius of 60. 2 With the Sphere selected, choose Animation menu > Constraints > Path Constraint. You are now in select target mode. 3 In the viewport, select the Circle shape. To access the Path constraint’s parameters through the Motion panel: 1 Select the Sphere. 2 Open the Motion panel. 3 In the PRS Parameters rollout, click the Position button. The Path constraint's settings are located in the Path Parameters rollout. To assign a Path constraint through the Motion panel: 1 Create a Sphere with a radius of 10 and a Circle with a radius of 60. 2 Select the Sphere. 3 On the Motion panel and click Parameters. 4 Open the Assign Controller rollout and select the Position controller. 3298 | Chapter 15 Animation 5 Click the Assign Controller button. 6 Choose Path Constraint from the Assign Position Controller dialog. 7 On the Motion panel, click Parameters. 8 In the Path Parameters rollout, click Add Path. 9 In the viewport, select the Circle. To edit weight values: 1 Open the Create > Shapes panel and create a Line that is about 120 units long. TIP Use the diameter of the Circle to gauge the length of the Line. 2 Select the Sphere. 3 On the Motion panel, open the Path Parameters rollout. 4 Click the Add Path button and select the line. The Sphere is now affected equally by both paths since the path weighting defaults to 50 5 Adjust the Weight spinner or enter a numerical value for the weight value. To animate weight values: 1 Select the Sphere. 2 On the Motion panel, open the Path Parameters rollout. 3 Turn on the Auto Key button. 4 Select the Line01 from the Path list. 5 Place the time slider at frame 50 and change the Weight of Line01 to 75. 6 Move the time slider at frame 100 and change the Weight of Line01 to 10. 7 Select the Circle01 path and change its Weighting to 25. 8 Turn off Auto Key and play the animation. Path Constraint | 3299 To correct path constrained object flipping: When an object is assigned a path constraint and the follow box is turned on, the object will rotate as it moves along the path. Sometimes the object is subject to unwanted flipping. 1 Select the object that is flipping. 2 On the Animation menu choose Constraints > Orientation constraint, then constrain the object to another object's orientation. 3 Use the control object to adjust the flipping. Animate the orientation of the control object, while watching the flipped object at the problematic frames. 3300 | Chapter 15 Animation Interface Once you assign a Path constraint, you can access its properties on the Path Parameters rollout in the Motion panel. In this rollout you can add or delete targets, assign weighting, and animate each target's weight value. NOTE When you assign a Path constraint via the Animation menu, the software assigns a Position List controller to your object. In the Position List rollout list you will find Path Constraint. This is the actual path constraint controller. To view the Path Parameters rollout with the constraint settings, double-click Path Constraint in the list. Path Constraint | 3301 Add Path Adds a new spline path that influences the constrained object. Delete path Removes a path from the target list. Once removing the path target, it will no longer influence the constrained object Weight Assigns and animates weight values for each target. % Along Path Sets the percent that the object is positioned along the path. This duplicates the Value spinner in the track Properties dialog for the Percent track in Track View. If you want to set keys to place an object at a certain percent along the path, turn on Auto Key, move to the frame where you want the key set, and adjust the % Along Path spinner to move the object. NOTE The % Along Path value is based on the parameterization of the spline path’s U value. A NURBS curve might not have an evenly spaced U value, so a value of 50 % Along Path might not translate visually to 50 per cent of the NURBS curve’s length. Follow Aligns the object to the trajectory as it follows the contour. Bank Allows the object to bank (roll) as it negotiates the curves of the spline. Bank Amount Adjusts the amount of the banking to one side or the other, depending on whether the value is positive or negative. Smoothness Controls how rapidly the roll angle changes as the object moves through bends in the trajectory. Smaller values will make the object more responsive to subtle changes in the curve, while larger values smooth out jerking. The default value is a good value for general damping along the curve. Values below 2 tend to make the action jerky, but values around 3 can be very useful for simulating a certain degree of realistic instability. Allow Upside Down Turn on to avoid the situation in which an object flips when going around a vertically oriented path. Constant Velocity Provides a constant velocity along the path. When off, the velocity of the object along the path varies depending on the distance between the vertices on the path. Loop By default, when the constrained object reaches the end of a path it can no longer move past the end point. The loop option changes this behavior so that when the constrained object reaches the end of the path it loops back to the starting point. Relative Turn on to maintain the original position of the constrained object. The object will follow the path with an offset distance based on its original world space position. 3302 | Chapter 15 Animation Axis Defines which axis of the object is aligned to the trajectory of the path. Flip Turn on to flip the direction of the axis. The following controls are located on the Hierarchy panel while the IK button is active: Active Activates an axis (X/Y/Z). Allows the selected object to animate along the activated path. Limited Limits the range of motion allowed on an active path. Use in conjunction with the From and To spinners. Ease Causes a joint to resist motion as it approaches its From and To limits. Simulates an organic joint, or worn mechanical joint, moving or rotating freely in the middle of its range of motion but moving less freely at the extremes of its range. From and To Spinners Determine for path limits. Use in conjunction with the Limited function. Damping Applies resistance over a joint's motion along the path. Simulates the natural effect of joint friction or inertia. Position Constraint Animation menu > Constraints > Position Constraint Position Constraint | 3303 Position constraints align the elements of the robot assembly. A position constraint causes an object to follow the position of an object or the weighted average position of several objects. In order to activate, a position constraint requires an object and a target object. Once assigned the object becomes constrained to the target object’s position. Animating the target’s position causes the constrained object to follow. Each target has a weight value defining its influence. A value of 0 is equal to off. Any value greater than 0 will cause the target to influence the constrained object. Weight values can be animated to create effects such as a ball being picked up from a table. Multiple Targets and Weighting A constrained object can be influenced by several target objects. When using multiple targets, each target has a weight value that defines the degree by which it influences the constrained object, relative to other targets. Using Weight is meaningful (and available) only with multiple targets. A value of 0 means the target has no influence. Any value greater than 0 causes the target to influence the constrained object relative to other targets' Weight 3304 | Chapter 15 Animation settings. For example, a target with a Weight value of 80 will have twice the influence of a target with a Weight value of 40. For example, if a sphere is Position-constrained between two targets and each target’s weight value is 100, the sphere will maintain an equal distance between both targets even when they are in motion. If one of the weight values is 0 and the other is 50, then the sphere is influenced only by the target with the higher value. Procedures To assign a Position constraint: 1 Select the object you want to constrain. 2 Choose Animation menu > Constraints > Position Constraint. 3 Select the target object. To access the Position constraint’s parameters through the Motion panel: 1 Select the Position-constrained object. 2 On the Motion panel, on the Position list, double-click Position Constraint. The Position constraint parameters are located under the Position Constraint rollout. To edit weight values: 1 Select the constrained object. 2 On the Motion panel, on the Position list, double-click Position Constraint. The Position constraint parameters are located under the Position Constraint rollout. 3 Click a target from the list. 4 Adjust the Weight spinner or enter a numerical value for the weight value. To animate weight values: 1 Select the constrained object. Position Constraint | 3305 2 On the Motion panel, on the Position list, double-click Position Constraint. The Position constraint parameters are located under the Position Constraint rollout. 3 Click a target from the list. 4 Turn on the Auto Key button. 5 Adjust the Weight spinner or enter a numerical value for the weight value. Example: To assign a Position constraint with two targets and editing weights: 1 In the Top viewport, create a sphere, a box, and a cylinder so that the box is between the sphere and the cylinder. 2 Click to select the box, assign a Position constraint, and select the sphere as the target. 3 Click to select the box, assign a Position constraint, and select the cylinder as the target. The box is now position-constrained between the two targets. 4 In the Top viewport, move the sphere around. As the sphere moves, the box maintains an equal distance between the sphere and the cylinder. This is because the weight values for both targets are equal. By default the values are 1.00. If the sphere had a higher weight value than the cylinder, the sphere would influence the box more than the cylinder. 5 To edit the weight values, select the box. 6 Open the Motion panel and view the Position Constraint rollout. 7 Click the Cylinder’s name in list of targets. 8 Using the Weight spinner, change the value from 50 to 20. As the value decreases, the box moves closer to the sphere. 9 In the Top viewport. select the cylinder and move it around. 10 In the Top viewport, select the sphere and move it around. The sphere has more influence over the box’s movement than the cylinder. 3306 | Chapter 15 Animation Interface Once you assign a Position constraint, you can access its properties on the Position Constraint rollout in the Motion panel. In this rollout you can add or delete targets, assign weighting, and animate each target's weight value. NOTE When you assign a Position constraint via the Animation menu, the software assigns a Position List controller to your object. In the Position List rollout list you will find Position Constraint. This is the actual Position Constraint controller. To view the Position Constraint rollout, double-click Position Constraint in the list. Add position target Adds new target objects that influence the position constrained object. Delete position target Removes targets. Once a target is removed, it will no longer influence the constrained object. Weight Assigns and animates weight values for each target. Keep Initial Offset Use Keep Initial Offset to preserve the original distance between the constrained object and the target object. This prevents the Position Constraint | 3307 constrained object from snapping to the target object’s pivot. The default is Off. Link Constraint Animation menu > Constraints > Link Constraint A link constraint enables the robot arms to pass a ball. A Link constraint is used to animate an object linking from one target object to another. The Link constraint causes an object to inherit the position, rotation, and scale of its target object. An example of using a link constraint is to pass a ball from one hand to another. Assume that at frame 0 the ball is in the right hand. The hands are 3308 | Chapter 15 Animation animated to meet at frame 50, where the ball is passed to the left hand, and then spread apart until frame 100. Procedures Example: To assign a Link constraint: 1 In the Top viewport, create a sphere and a box. 2 Select the sphere. 3 Open the Motion panel. 4 Expand > Assign Controller rollout. 5 Select the Transform: Position/Rotation/Scale controller. 6 Click Assign Controller. 7 Choose Link Constraint. It is recommended that you add a Link To World before linking to any target objects. This will allow you to animate the object on its own, before the first link to a target object takes place. You can also assign Link Constraints through the Animation > Constraints submenu. To access the Link constraint’s parameters through the Motion panel: 1 Select the Link-constrained object. 2 Choose Motion panel > Link Params rollout. Example: To assign the Link constraint and animate links: 1 Move the time slider to frame 0. 2 In the Top viewport, create a sphere, a cylinder and a box. 3 Select the sphere. 4 Open the Motion panel. 5 Expand the Assign Controller rollout. 6 Select the Transform: Position/Rotation/Scale controller. 7 Click Assign Controller. Link Constraint | 3309 8 Choose Link Constraint. 9 In the Link Params rollout, click Link To World. 10 Move the time slider to frame 1. 11 Click Add Link and select the cylinder. It now becomes a target. The Link Constraint relationship is now active between the sphere and the cylinder. 12 Move the time slider to frame 50. 13 Turn on the Auto Key button and move the cylinder a good distance away from where it is. 14 Play back the animation. The sphere follows the cylinder as it moves. The sphere is link-constrained. 15 Select the sphere. 16 Move the time slider to frame 25. 17 On the Motion panel > Link Param rollout, click Add link and select the box. You have now added another target that becomes active at frame 25. 18 Turn off the Auto Key button and play back the animation. The sphere is linked to the cylinder from frame 0 to 24. It follows the cylinder until frame 25 where it links to the box. 3310 | Chapter 15 Animation Interface Once you assign a Link constraint, you can access its properties on the Link Params rollout in the Motion panel. In this rollout you can add and delete targets and animate the time at which each target becomes the active parent of the constrained object. Add Link Adds a new link target. Link Constraint | 3311 Link to World Links the object to the world (the scene as a whole). We recommend this be the first target in the list. This prevents the object from reverting to its independent creation or animation transforms if other targets are deleted from the list. Delete Link Removes a link target. Once a link target is removed, it will no longer influence the constrained object. Start Time The start time spinner is used to assign or edit the frame value of a target. Select one of the target object names in the list window and see the frame where the object becomes a parent. You can adjust the value to change when the link transfer takes place. Key Mode group NOTE The options Key Nodes and Key Entire Hierarchy have no effect unless the object you are constraining is already part of a hierarchy. If you add objects to the hierarchy after you apply the Link constraint, you have to reapply the Link constraint using the key options you desire. No Key When used, no keyframes are written to the constrained object or its targets. The link control happens without inserting any keys. Key Nodes When used, keyframes are written to the specified option. There are two options: Child and Parents. Child sets a keyframe only on the constrained object. Parents sets keyframes for the constrained object and all of its targets. Key Entire Hierarchy Sets keyframes up the hierarchy for the specified option. There are two options: Child and Parents. Child sets a keyframe only on the constrained object and its parents. Parents sets keyframes for the constrained object, its targets, and their upper hierarchy. LookAt Constraint Animation menu > Constraints > LookAt Constraint 3312 | Chapter 15 Animation LookAt constraints enable the antenna dishes to track the satellite. The LookAt constraint controls an object’s orientation so that it’s always looking at another object. It locks an object’s rotation so that one of its axes points toward the target object. The LookAt axis points toward the target, while the Upnode axis defines which axis points upward. If the two coincide, a flipping behavior may result. This is similar to pointing a target camera straight up. An example of a LookAt constraint’s use would be to constrain the eyeballs of a character to a point helper. The eyes will then always be aimed at the point helper. Animate the point helper, and the eyes follow. Even if you rotate the character’s head, the eyes maintain their lock on the point helper. Multiple Targets and Weighting A constrained object can be influenced by several target objects. When using multiple targets, each target has a weight value that defines the degree by which it influences the constrained object, relative to other targets. Using Weight is meaningful (and available) only with multiple targets. A value of 0 means the target has no influence. Any value greater than 0 causes the target to influence the constrained object relative to other targets' Weight LookAt Constraint | 3313 settings. For example, a target with a Weight value of 80 will have twice the influence of a target with a Weight value of 40. Procedures To assign a LookAt constraint: 1 Select the object you want to constrain. This is the object that will be always looking at its target. 2 Choose Animation menu > Constraints > LookAt Constraint. 3 Select the target object. To access the LookAt constraint’s parameters through the Motion panel: 1 Select the LookAt Constrained object. 2 On the Motion panel > Rotation list, double-click LookAt Constraint. The LookAt constraint parameters are located under the LookAt Constraint rollout. To edit weight values: 1 Select the constrained object. 2 On the Motion panel > Rotation list, double-click LookAt Constraint. The LookAt constraint parameters are located under the LookAt Constraint rollout. 3 Click a target from the list. 4 Use the Weight spinner or enter a numerical value to adjust the weight value. To animate weight values: 1 Select the constrained object. 2 On the Motion panel > Rotation list, double-click LookAt Constraint. The LookAt constraint parameters are located under the LookAt Constraint rollout. 3 Click a target from the list. 4 Turn on the Auto Key button. 3314 | Chapter 15 Animation 5 Use the Weight spinner or enter a numerical value to adjust the weight value. LookAt Constraint | 3315 Interface 3316 | Chapter 15 Animation Once you assign a LookAt constraint, you can access its properties on the LookAt Constraint rollout on the Motion panel. On this rollout, you can add or delete targets, assign weighting, assign and animate target weight values, and adjust other related parameters. NOTE When you assign a LookAt constraint via the Animation menu, 3ds Max assigns a Rotation List controller to your object. In the list on the Rotation List rollout, you will find LookAt Constraint, which is the constraint you assigned. To view the LookAt Constraint rollout, double-click the LookAt Constraint entry in the list. Add LookAt Target Use to add new targets that influence the constrained object. Delete LookAt Target Use to remove target objects that influence the constrained object. Weight Use to assign and animate weight values for each target. Available only when multiple targets are used. Keep Initial Offset Maintains the constrained object’s original orientation as an offset to its constrained orientation. Viewline Length Defines the length of the main viewline drawn from the pivot of the constrained object to the pivot of its target (or the average, in case of multiple targets). A negative value draws the line from the constrained object in the opposite direction of the target or targets. With a single target, the length of the viewline is determined by the distance between the constrained object and the target, as well as the Viewline Length setting. However, if Viewline Length Absolute is on, the distance between the two has no effect on the length. The color of the viewline is defined by the Target Line element in the Gizmos category of the Colors panel on page 7712 in the Customize > Customize User Interface dialog on page 7697. NOTE When multiple targets are assigned, additional viewlines drawn from the constrained object to each target object inherit the color of the respective targets. If Viewline Length Absolute is on, the length of each target-specific line is determined by its target's Weight setting and the Viewline Length value. If Viewline Length Absolute is off, the length of each line is determined by the distance between the constrained object and the respective target, as well as the Viewline Length value. An additional (main) viewline, whose length and color are determined as specified above, indicates the actual, calculated orientation. LookAt Constraint | 3317 Viewline Length Absolute When on, the software uses only the Viewline Length setting for the length of the main viewline; the distance between the constrained object and the target(s) has no effect. Set Orientation Lets you define the offset orientation of the constrained object manually. When on, you can use the Rotation tool to set the constrained object’s orientation. This orientation is then maintained as the constrained object looks at its target. Reset Orientation Sets the orientation of the constrained object back to the default. This is useful if you want to reset the constrained object’s orientation after having set the orientation manually. Select LookAt Axis Use to define the axis that looks at the target. The X,Y,Z check boxes reflect the constrained object's local coordinate system. The Flip check box reverses the directions of the local axes. Select Upnode The default Upnode is the World. Turn off World to manually select an object that defines the Upnode plane. This plane is drawn from the constrained object to the Upnode object. If the LookAt Axis and the Upnode axis coincide, the constrained object will flip. Animating the position of the upnode object will move the upnode plane. Upnode Control group: Lets you quickly flip between LookAt Upnode Control and Axis Alignment. LookAt When selected the Upnode matches the LookAt target. Axis Alignment When this is selected the Upnode Aligns to the object axis. Choose which axis (X, Y or Z) in the Source Upnode Alignment group directly below Upnode Control. Source/Upnode Alignment group Source Axis Chooses the constrained object’s axis that is to be aligned to the Upnode Axis. The Source Axis reflects the constrained object’s Local Axis. The Source Axis and LookAt Axis work together therefore the Axis used to define the LookAt Axis will be unavailable. Aligned to Upnode Axis Chooses the Upnode axis that the selected Source Axis aligns to. Note that the selected Source axis may or may not be able to completely align to the Upnode Axis. 3318 | Chapter 15 Animation Orientation Constraint Animation menu > Constraints > Orientation Constraint Orientation constraints align the awning vanes to the supporting rod. An Orientation constraint causes an object’s orientation to follow the orientation of an object or averaged orientation of several objects. An Orientation Constrained object can be any rotatable object. When constrained it will inherit its rotation from a target object. Once constrained you can not rotate the object manually. You may move or scale the object as long as its not constrained in a manner that effects the object’s position or scale controller. The target object can be any type of object. The rotation of a target object drives the constrained object. Targets can be animated using any of the standard translation, rotation, and scale tools. Orientation Constraint | 3319 Multiple Targets and Weighting A constrained object can be influenced by several target objects. When using multiple targets, each target has a weight value that defines the degree by which it influences the constrained object, relative to other targets. Using Weight is meaningful (and available) only with multiple targets. A value of 0 means the target has no influence. Any value greater than 0 causes the target to influence the constrained object relative to other targets' Weight settings. For example, a target with a Weight value of 80 will have twice the influence of a target with a Weight value of 40. Procedures To assign an Orientation constraint: 1 Select the object you want to constrain. 2 Choose Animation menu > Constraints > Orientation Constraint. 3 Select target object. To access the Orientation constraint’s parameters through the Motion panel: 1 Select the Orientation-constrained object. 2 On the Motion panel > Rotation list, double-click Orientation Controller. The Orientation constraint parameters are located on the Orientation Constraint rollout. To edit weight values: 1 Select the constrained object. 2 Open the Motion panel > Orientation Constraint rollout. 3 Click a target from the list. 4 Use the Weight spinner or enter a numerical value to set the weight value. To animate weight values: 1 Select the constrained object. 2 Open the Motion panel > Orientation Constraint rollout, and choose a target from the list. 3320 | Chapter 15 Animation 3 Turn on the Auto Key button. 4 Use the Weight spinner or enter a numerical value to set the weight value. Interface Once you assign an Orientation constraint, you can access its properties on the Position Constraint rollout in the Motion panel. In this rollout you can add or delete targets, assign weighting, assign and animate target weight values, and adjust other, related parameters. Orientation Constraint | 3321 NOTE When you assign an Orientation constraint via the Animation menu, the software assigns a Rotation List controller to your object. In the Rotation List rollout list you will find Orientation Constraint, which is the constraint you assigned. To view the Orientation Constraint rollout, double-click Orientation Constraint entry in the list. Add Orientation Target Adds new target objects that influence the constrained object. Add World as Target Aligns the constrained object to the world axis. You can weight the amount of influence that the world target has on the constrained object as you would any other target object. Delete Orientation Target Remove targets. Once removing the target, it will no longer influence the constrained object. Weight Assigns and animates weight values for each target. Keep Initial Offset Preserves the original orientation of the constrained object. When you turn off Keep Initial Offset, the object adjusts itself to match the orientation of its target or targets. Default=off. Transform Rule When an orientation constraint is applied to an object that is part of a hierarchy, this determines whether the local node transform or the parent transform will be used for the orientation constraint. Local –>Local When selected, the local node transform is used for the orientation constraint World –>World When selected, the parent or world transform will be applied, rather than the local node transform. Wire Parameters Select an object. > Animation menu > Wire Parameters > Wire Parameters Select an object. > Right-click quad menu > Transform (lower-right) quadrant > Wire Parameters Wire Parameters lets you link parameters from one object to another in the viewport, so that adjusting one parameter changes the other automatically. This enables you to set up one- and two-way connections between specified object parameters, or to control one or more objects with a dummy object containing the desired parameters. By wiring parameters, you can set up 3322 | Chapter 15 Animation custom constraints directly without having to go to Track View and assign controllers. Parameter wiring is accessible from the Animation menu and the quad menus on page 7516. The Wire Parameters command is available only if a single node is selected. Choosing the Wire Parameters command displays a hierarchical pop-up menu with levels and items corresponding to the animatable tracks that would be visible for that object in Track View. When you make a parameter selection, a dashed line, similar to that displayed in the Select and Link mode on page 3343, is drawn from the selected object to the mouse cursor. The cursor changes from an arrow to a cross whenever it is over a valid destination object. You can right-click at any time to cancel the parameter wiring. While the dashed line is displayed, you can click a destination node or on empty space in the viewport to customize the relationship between two wired parameters. If you click empty space, the Parameter Wiring dialog on page 3324 opens showing the first parameter in the left Tree View and the full scene in the right tree. Clicking a destination node (which can be the same as the originating node) displays a hierarchical pop-up menu for the destination object so you can choose the destination parameter. After you choose a second parameter, the Parameter Wiring dialog opens. You can wire one-way and two-way connections between parameters. For one-way wires, one parameter is effectively slaved to the other and its value changes as the controlling parameter changes, according to a user-defined transfer expression. The controlling parameter can be animated and adjusted as needed using all the animation tools in 3ds Max. This includes making it a controlled parameter in another parameter-wiring setup, so that you could potentially set up a chain of controlled parameters. For two-way wiring, the software assigns Wire controllers of the appropriate kinds to each of the parameters and they are cross-linked so that changing either parameter cause linked changes in the other. NOTE You should establish all object hierarchies before wiring parameters in a scene. If you change the hierarchy of an object that has a wired parameter, it will take on new parameters, which could introduce undesired results in your wired parameters. TIP Use Schematic View on page 7411 to see all the wired parameter relationships in a scene. You can also use Schematic view to wire parameters. Wire Parameters | 3323 Procedures To attach wire parameters: 1 Select the first object you want to use. 2 Choose Animation menu > Wire Parameters > Wire Parameters, or right-click the object and choose Wire Parameters. A pop-up menu displays the parameters you can link. NOTE Wire Parameters works only with parameters that can be animated. The menu options displayed depend upon the selected object and are the same options you would see for the selected object in Track View. 3 Choose the parameter you want to link to another object from the displayed menu. A dashed line appears. 4 Move the cursor to the second object you want to use. When the cursor changes from an arrow to a selection cross, you are over a valid destination object. Click to select the destination object. A pop-up menu displays the parameters to which you can link. 5 Choose the parameter you want to link from the displayed menu. The Parameter Wiring dialog on page 3324 opens, with the two parameters you selected highlighted in yellow. 6 If you like, change the parameter highlighting in the dialog, and then click the direction buttons between the two panels to determine the control direction: one way either way, or both directions (changes to either object’s selected parameters affect the other object). 7 Click Connect to complete the wiring. Parameter Wiring Dialog Animation menu > Wire Parameters > Choose parameters to wire. Select an object. > Right-click quad menu > Transform (lower-right) quadrant > Wire Parameters > Choose parameters to wire. Select an object. > Modify panel > Right-click text box portion of animatable parameter spinner. > Choose Show In Parameter Wire dialog. 3324 | Chapter 15 Animation Select an object with a wired parameter. > Modify panel > Right-click text box portion of two-way-wired on page 3328parameter > Edit Wire The Parameter Wiring dialog allows you to define the relationships for Wire Parameters on page 3322. In this dialog, you can create new one and two-way control relationships between object parameters, edit existing relationships, and create or edit expressions which define the parameter relationships. Only parameters that can be animated can be wired. Sub-objects, such as vertices, must be animated before they can be wired. Parameter wires can be used to establish connections from Manipulators on page 2636 and Custom Attributes on page 329 to objects, materials, and modifiers. NOTE Parameter Wiring is a modeless dialog on page 8045, and you can have several dialogs open at the same time. Procedures Example: To use an expression with wire parameters: 1 Create a box and a sphere in your scene. 2 Right-click the box, and from the quad menu choose Transform quadrant > Wire Parameters. 3 From the pop-up menu, choose Object (Box) > Length. A rubber-band dashed line now connects the box and the mouse cursor. 4 Click the sphere and choose Transform > Position > Z Position from the pop-up menu. The position of the sphere and the length of the box are now wired. 5 In the Parameter Wiring dialog, create a one-way wire by clicking the arrow pointing toward the box’s tree view. 6 Type abs( before Z_position, followed by a closing parenthesis, ), in the expression text box for Box01, so that the entire expressions is abs(Z_Position). 7 Click Connect. 8 Move the sphere upward along the Z axis in the viewport. Note that as the sphere moves in the viewport, the length of the box changes. Using abs() ensures that the box never has a negative length. Parameter Wiring Dialog | 3325 To control several slave parameters from one master parameter: 1 Open the Parameter Wiring dialog. 2 Choose the master parameter in the tree view. 3 Choose the first slave parameter in the other tree view. 4 Click the arrow pointing toward the slave parameter. 5 Enter the desired relationship expression in the expression text box. 6 Click Connect. 7 Keeping the master parameter selected, choose another slave parameter from the tree view. 8 Click the arrow pointing toward the slave parameter. 9 Enter the desired relationship expression in the expression text box. 10 Click Connect. You can repeat this cycle to set up as many slaves as you want. The result is a “fan” of parameter wires, so that you can control all of the slave parameters at once as you change the master parameter. To create a chain of wired parameters: 1 Open the Parameter Wiring dialog. 2 Choose the first controlling parameter in one tree view. 3 Choose the first slave parameter in the other tree view. 4 Click the arrow pointing toward the slave parameter. 5 Enter the desired relationship expression in the expression text box. 6 Click Connect. 7 Keeping the original slave parameter selected, choose the next slave parameter from the tree view. 8 Click the arrow pointing toward the new slave parameter. 9 Enter the desired relationship expression in the expression text box. 10 Click Connect. You can repeat this cycle, continuing to alternate slaves to masters as many times as you like. The result is a “daisy chain” of parameter wires, 3326 | Chapter 15 Animation so that as you modify the original master parameter, each slave parameter maintains a constant relationship with the next in a line of parameters. Interface Tree Views The dialog presents two tree views that display the animatable parameters of all of the visible objects in the scene. The names of the currently selected objects appear at the top. The tree views display the objects in the scene and allow you to select and wire all of the animatable parameters of the objects in the scene and the scene itself. The tree views are color-coded to show existing wiring. A parameter with a wire controller assigned to it (either as the member of a two-way pair or as the slave in a one-way wire) displays in red. When a wire-controlled parameter is selected, all of the parameters wired directly to it are displayed in green text in the other Tree View. In either case, if the parameter is inside a track that is not expanded, the enclosing track will display in red or green, so you can expand the tracks to find the wires. NOTE If you open the Parameter Wiring dialog by wiring two parameters, the tree views initially display only the selected objects, highlighting the parameters that you chose from the pop-up menus during the wiring procedure. If you want to expand the trees, to include all other animatable parameters in the scene, click Show All Tracks. The buttons above the tree views are: Parameter Wiring Dialog | 3327 Show All Tracks Brings you to the top of the scene object list. Find Next Parameter Finds the next wired parameter in the scene, expanding the tree if necessary to show and select it. You can browse through all existing wires by clicking this button repeatedly. NOTE If you click a wired parameter, its connections are shown in green on the other tree view. While the wired parameter is highlighted, the Show Next Wire button on the other tree cycles through the green connections only, so you can quickly find the selected wire’s connections. Refresh Tree View Content to Selected Node Shows only the node or nodes that are selected in the scene in the tree view. The nodes are shown as currently exanded. Control Direction The Parameter Wiring dialog provides three direction-control buttons between the tree views. You can choose only one of these at a time. These buttons determine the direction of control, either one-way or two-way: ■ Two-way connection [two-headed arrow] Click this to link both parameters to each other, so that changing either parameter affects the other. ■ One-way connection: right parameter controls left parameter [left arrow] The right parameter controls the left parameter. ■ One-way connection: left parameter controls right parameter [right arrow] The left parameter controls the right parameter. NOTE You can change the direction of a wire at any time by clicking the desired direction button and then clicking Connect or Update. Connect/Update The Connect/Update button changes its label depending on whether clicking it would add a new wire to previously unwired parameters (Connect) or change an existing wire’s expressions or 3328 | Chapter 15 Animation direction (Update). Changes to existing wires are only applied when you click Update. Disconnect The Disconnect button is enabled when you’ve selected parameters with an existing wire between them. It will remove the wire controller(s) and replace them with the Master parameter’s animation track (if two-way) or with default controllers (if one-way). Master parameters The Parameter Wire system provides a way for the pair of wired parameters to be animated as a single system. It does this by setting up a subcontroller on one of the parameters; any animation on this controller drives the Wire Controller pair. The animation subcontroller is always assigned to the master parameter of the wired pair. By default, this is the parameter that is clicked first in the wiring interaction. The master parameter can also be designated with the Master radio buttons beneath the tree views. The animation subcontroller appears as a nested track inside the master parameter’s track in Track View and its values directly drive and match the master parameter values. If the subcontroller is keyframable (which is the default when a two-way wiring is first established) it can be keyframed by adjustments of either of the wired parameters. This means that if you keyframe the wired pair by adjusting the non-master parameter, the values keyframed into the animation subcontroller are derived from the master parameter transfer expression. Since the wired pair can be animated through either parameter, the choice of master parameter is essentially just a convention. Transfer Expression boxes Underneath the parameter trees are the transfer expression text boxes. These expressions determine how changes to each parameter affect the other and are usually inverses of one another. For more information on expression syntax, see the topic “Script Controllers” in the MAXScript Reference. When the parameters are first wired, the default expressions are simple 1-to-1 links between the parameters. These expressions can be edited into any valid script fragment that will yield a result of the correct type for its parameter. For example, if you link a parameter such as height (which contains a float value) to a parameter such as position (which contains a point3 value), your expressions must include conversions that produce the same output value type. Parameter Wiring Dialog | 3329 For one-way wires, the Expression box for the controlling parameter is unavailable, since there is no Wire controller assigned to it. For two-way wiring, both transfer expression text boxes will be enabled. It is possible for the user to supply transfer expressions for the two parameters that are not inverses of one another, but this is of course discouraged, since the relationship of the parameters will be different depending on which one is changed first. Hierarchies and Kinematics When animating characters, mechanical assemblies, or complex motion, you can simplify the process by linking objects together to form a hierarchy on page 8002 or chain. In a linked chain, the animation of one member can affect some or all of the others, making it possible to animate a number of objects or bones at once. The term kinematics on page 8021 describes the movement or animation of the chain. There are two types of kinematics: ■ With forward kinematics on page 7987 (FK) , you transform a parent object to move its descendants (its children, their children, etc.). ■ With inverse kinematics on page 8016 (IK), you transform a child object to move its ancestors (its parent and so on up the chain). You can also use IK to make an object “stick” to the ground or another surface, while allowing the chain to rotate off the pivot of that object. Forward kinematics is the most straightforward method for animating hierarchies. Inverse kinematics requires more setup than forward kinematics, but is more intuitive for complex tasks such as character animation or intricate mechanical animation. See also: ■ Hierarchies on page 3331 ■ Animating with Forward Kinematics on page 3354 ■ Inverse Kinematics (IK) on page 3374 ■ Hierarchy Panel Commands on page 3474 3330 | Chapter 15 Animation Hierarchies Bipedal figure with part of its hierarchy diagrammed in the background One of the most useful tools in producing computer animation is the ability to link objects together to form a chain. By linking one object to another, you create a parent-child relationship. Transforms applied to the parent are also transmitted to child objects. A chain is also referred to as a hierarchy. You can find the commands to build and manipulate hierarchies in the following places in the interface: ■ The Select and Link on page 3343 and Unlink Selection on page 3344 buttons let you make and break links between objects in your scene. ■ The Bones system on page 901 in the Create panel > Systems category lets you create a hierarchy of bones. You can also create bones by choosing Bone Tools on page 915 from the Animation menu on page 7490. You can turn any hierarchy of objects into bones by selecting the hierarchy and turning on Bone Tools dialog > Object Properties rollout > Bone On. Hierarchies | 3331 ■ The Hierarchy panel on page 7661 contains commands to control how links behave. ■ The Motion panel on page 3426 contains commands to control how links behave when using an History Dependent (HD) Solver Common Uses for Hierarchies ■ Link a large collection of objects to a single parent so they can be easily animated and transformed by moving, rotating, or scaling the parent. ■ Link the target of a camera or light to another object so it tracks the object through the scene. ■ Link objects to dummy objects to create complex motions by combining multiple simple motions. ■ Link objects to simulate jointed structures to animate characters or mechanical assemblies. Parts of a Hierarchy The relationship between objects linked together in a hierarchy is analogous to a family tree. Parent Object that controls one or more children. A parent object is often controlled by another superior parent object. In the following figure, objects 1 and 2 are parent objects. Child Object controlled by its parent. A child object can also be a parent to other children. In the following figure, objects 2 and 3 (the support and hub) are children of object 1. Objects 5 (the seats) are children of object 4, the Ferris wheel. Ancestors Parent and all of the parent’s parents of a child object. In the following figure, objects 1 and 2 are ancestors of object 3. 3332 | Chapter 15 Animation The seats of the Ferris wheel are children of the wheel, which is in turn a child of the base and support objects, as shown in the following hierarchy. Descendants Children and all of the children’s children of a parent object. In the figures, all the objects are descendants of object 1. Hierarchy Collection of all parents and children linked together in a single structure. Root Single parent object that is superior to all other objects in the hierarchy. All other objects are descendants of the root object. In the figures, Object 1 is the root. Subtree All the descendants of a selected parent. In the figure below, the Rotational Hub, Ferris Wheel, and Seats represent the subtree under the Support object. Hierarchies | 3333 1. Root 2. Leaves 3. Subtree Example of a hierarchical structure Branch Path through the hierarchy from a parent to a single descendant. In the figure above, the Support, Rotational Hub, and Ferris Wheel objects comprise a branch from the root to the leaf objects (the seats). Leaf Child object that has no children. The lowest object in a branch. In the figure above, the Seat objects are leaf objects. Link Connection between a parent and its child. A link transmits position, rotation, and scale information from parent to child. Pivot Defines the local center and coordinate system for each object. You can think of a link as the connection between the pivot of a child object and the pivot of its parent. 3334 | Chapter 15 Animation Linking Strategy Before you begin linking any but the simplest hierarchy you should take a few minutes to plan your linking strategy. Your choices for the root of the hierarchy and how the branches grow out to the leaf objects will have important effects on the usability of your model. The strategy behind linking objects into a hierarchy can be reduced to two main principles: ■ The hierarchy follows a logical progression from parent to child. ■ Parent objects move less than their descendants. Within these two principles you have almost unlimited flexibility as to how you link your objects. If you think about how you intend to use the hierarchy, and link it with that use in mind, you will rarely have a problem. Progression from Parent to Child Progression from parent to child means the links do not erratically jump from object to object. If two objects touch each other they should probably be linked as parent and child. There is nothing to prevent you from linking a body in the order of: Thigh->Foot->Shin->Waist. You would probably regret such a linking strategy later. The effort to figure out how to transform objects linked in such a strange way would be quite difficult. A more logical progression would be Foot->Shin->Thigh->Waist. Using Multiple Hierarchies Rather than build a single bone chain from a hip to a toe, you can make one chain from the hip to the ankle, and then a second independent chain from the heel to the toe. You would then link the chains together to form a complete leg assembly. Because they are linked together, the leg and foot chains could be considered one chain. However, the way you animate them treats each chain separately, allowing fine control over the parts. With this type of arrangement on leg and foot chains, the foot could be made to stay on the ground while the leg bends. It also allows for independent control of the foot's rotation, pivoting on the heel or toe, which would then cause the knee to bend. Hierarchies | 3335 Parents Move Less Than Descendants Because of the way transforms are inherited from parent to child, small adjustments to a parent object might require you to adjust all of its descendants. The typical approach to linking is to choose as your root object the object that moves the least. Objects close to the root should move very little, and leaf objects should move the most. This is especially true when you are linking jointed structures like robots or machinery, or intend to use the hierarchy with inverse kinematics on page 3374. An exception to this rule occurs when you are using the root object as a handle. All of the descendants of the root are just along for the ride. Consider a tray full of objects traveling on a conveyor belt. All the objects should be children of the tray even though the tray moves much more than any of the other objects. Choosing the Root of a Hierarchy You can find the best candidate for the root of your hierarchy by asking the following question: If I move this object, should all of the other objects in the hierarchy move with it? ■ If the answer is almost always, then you are looking at a likely candidate for the root object. Examples of this type of object are a torso, a lamp base, and a tree trunk. ■ If the answer is not often, then you are probably looking at a child object. Examples of this type of object are hands, lamp shades, and tree leaves. If you move a character's hand, for example, its torso should not move. Once you have a few candidates for the root object, you can examine them in greater detail. Use these criteria to determine a good root object for your hierarchy: ■ Moving the root object usually has a great effect on all other objects in the hierarchy. ■ Conversely, the root object is mostly unaffected by movement of other objects in the hierarchy. ■ The root object is rarely animated, and is moved or rotated primarily to place the hierarchy at the correct place in the scene. 3336 | Chapter 15 Animation ■ The root object is at or near the hierarchy’s virtual center of mass. The object that best satisfies these criteria is your root object. You then create your hierarchy with all of the other objects as descendants of that root object. Linking Objects for Inverse Kinematics Inverse kinematics (IK) uses the child object as the driving force for the animation. IK is less forgiving and is highly dependent on the linking strategy for performing calculations. You need to consider two additional principles when linking hierarchies for use with inverse kinematics: ■ Links and pivot placement simulate real-world joint locations. ■ Choose an object near the structure’s center of mass, or center of gravity, as the root of the hierarchy. The center of mass in the real world is the point on an object about which reactions to external forces are applied. Hierarchies | 3337 1 and 2 each represent the root of the characters. Both structures are suitable for forward kinematics. The structure on the right is best for most inverse kinematics. The figure above shows two approaches to linking a skeletal structure. Either structure is suitable for working with forward kinematics. The structure on the right, however, is a better choice for working with inverse kinematics. ■ The root object is located near the body’s center of mass. ■ The link order more closely simulates the connections of a real body. 3338 | Chapter 15 Animation The structure on the left has the arms and torso linked to the neck. The structure on the right links the arms and neck to the torso, a more realistic approach. WARNING Be sure to avoid using non-uniform scaling on objects in a hierarchy that will be animated using IK. You will see stretching and skewing if you do. Instead do all non-uniform scaling at the sub-object level, to avoid this problem. Use Reset XForm if you have objects that exhibit this behavior. Linking Objects After Animation When you link an object to another, the link relationship between the child and its parent is determined by the position, rotation and scale of the parent and child objects when the link is made. Imagine linking a stationary sphere to an animated box. ■ At frame 0 the box is beside the sphere. ■ At frame 50 the box is 20 units away. Original animation, with ball unlinked and stationary while the box moves. Hierarchies | 3339 Linking the sphere to the box causes the sphere to move with the box. The distance between the sphere and the box depends on the frame when the link is made. Linking the sphere on different frames has the following effects: ■ Link on frame 0, and the sphere stays next to the box as it moves. ■ Link on frame 50, and the sphere stays a distance 20 units away from the box as it moves. Left: Ball linked at frame 0 follows the box on the side. Right: Ball linked at frame 50 follows the box 20 units away. Unlinking Objects After Animation When you unlink a child, its frame 0 transforms are taken from the transforms of its parent at the frame when the link is removed. Imagine a sphere linked to a box moving around the face of a clock. The box starts at 12 o'clock and travels all the way around the face over 100 frames. The figure shows a box moving in a circle with a sphere linked above it. 3340 | Chapter 15 Animation Original animation, with ball linked to follow the animated box. If you unlink the sphere, it stops following the box. The position of the sphere depends on its position, rotation or scale at the frame on which the link is removed. Unlinking the sphere on different frames has the following effects: ■ Unlink on frame 0, and the sphere stays at 12 o'clock. ■ Unlink on frame 25, and the sphere stops at 3 o'clock. ■ Unlink on frame 75, and the sphere stops at 9 o'clock. Hierarchies | 3341 Clockwise from top, position of the sphere unlinked at frame 0, 25 and 75, respectively. Linking and Unlinking Objects Use Select and Link on page 3343 and Unlink Selection on page 3344 on the toolbar to make and remove links between objects. Linking Objects The general process of creating links is to build the hierarchy from child to parent. You click Select And Link on the toolbar, select one or more objects as children, and then drag the link cursor from the selection to a single parent object. The selected objects become children of the parent object. Once objects are linked, any transformations applied to the parent are also applied to its children. For example, if you scale the parent to 150%, the size 3342 | Chapter 15 Animation of its children and the distance between the children and the parent are also scaled by 150%. Unlinking Objects Click Unlink Selection to remove the link from selected objects to their parents. Any children of the selected object are unaffected. You can quickly unlink an entire hierarchy by double-clicking the root object to select the object and all of its children. Then click Unlink Selection. Linking Animated Objects You should establish links before you begin animating objects. The linkage of objects with Select and Link cannot be animated; the link remains in force throughout the entire animation. If you want your objects to be linked during one part of the animation but not another, you can a Link constraint on page 3308 to change the linkage at specific frames. Displaying Links A complex mesh hierarchy can be displayed with the links visible, or even with the links replacing the mesh objects. To display links, first select the linked objects. On the Display panel > Link Display rollout on page 188, turn on Display Links to see the links. You can also turn on Link Replaces Object to see only the links and not the objects. Select and Link Main toolbar > Select and Link Use the Select and Link button to define the hierarchical relationship on page 8002 between two objects by linking them as child and parent. You link from the currently selected object (child) to any other object (parent). You can link an object to a closed group. When you do, the object becomes a child of the group parent rather than any member of the group. The entire group flashes to show that you've linked to the group. Hierarchies | 3343 A child inherits the transformations (move, rotate, scale) applied to the parent, but the child's transformations have no effect on the parent. If you want the child not to inherit the transforms, use the Link Inheritance (Selected) Utility on page 3372 or use the controls found in Link Info on page 3500 in the Hierarchy panel. You can also create hierarchical linkages using Schematic View on page 7407. Use the Connect button on the Schematic View toolbar to create hierarchical linkages between nodes. Procedures To link two objects: 1 Click Select and Link. 2 Drag a line from an object (the child) to any other object (the parent). NOTE You do not need to select the child object first. Unlink Selection Main toolbar > Unlink Selection Use the Unlink Selection button to remove the hierarchical relationship on page 8002 between two objects. Unlink Selection detaches a child object from its parent object. TIP You can also link and unlink hierarchies in Schematic View on page 7411. Procedures To unlink a child object from a parent object: 1 Select the child object you want to unlink. 2 Click Unlink Selection. 3344 | Chapter 15 Animation Adjusting Pivots You can think of an object's pivot point as representing its local center and local coordinate system. The pivot point of an object is used for a number of purposes: ■ As the center for rotation and scaling when the Pivot Point transform center is selected. ■ As the default location of a modifier center. ■ As the transform offset for linked children. ■ As the joint location for IK. You can adjust pivot points by clicking Pivot on the Hierarchy panel, and then using the Adjust Pivot rollout on page 3476 tools. The functions on the Adjust Pivot rollout cannot be animated. Adjusting an object's pivot on any frame changes it for the entire animation. See also: ■ Working Pivot Rollout on page 3479 Affecting Pivot Only When Affect Pivot Only is on, move and rotate transforms are applied only to the pivot of a selected object. ■ Moving or rotating the pivot does not affect the object or its children. ■ Scaling the pivot scales the object from the pivot center, but its children are unaffected. Hierarchies | 3345 Affect Pivot Only transforms the pivot without moving the object. Affecting Object Only When Affect Object Only is on, transforms are applied only to selected objects. Pivots are not affected. Moving, rotating, or scaling the object does not affect the pivot or its children. 3346 | Chapter 15 Animation Affect Object Only transforms the object without moving the pivot. Affecting Hierarchy Only When Affect Hierarchy Only is on, rotate and scale transforms are applied only to the links between objects and their children. ■ Scaling or rotating an object affects the link offsets of all its descendents without affecting the geometry of the object or its descendents. The descendents shift position because of the scaled or rotated links. Use this technique to adjust the offset relationship between linked objects. Use this technique to adjust the offset relationship between linked objects and for adjusting bones to match geometry. Hierarchies | 3347 After a hierarchy is created, you can scale the position of the children without changing the individual objects’ dimensions. 3348 | Chapter 15 Animation Rotating the hierarchy does not affect the individual objects’ orientation. Aligning Pivots Buttons on the Alignment group box of the Adjust Pivot rollout change names based on the state of Affect Object Only and Affect Pivot Only. Alignment is disabled when Affect Hierarchy Only is active. Center to Object/Pivot Moves the object, or pivot, so the pivot is at the center of the object. Align to Object/Pivot Rotates the object, or pivot, to align the pivot with the object's original local coordinate system. Align to World Rotates the object, or pivot, to align with the world coordinate system. Resetting the Pivot Click Reset Pivot to return the pivot point of a selected object to the position and orientation it held when the object was first created. Reset Pivot has no effect on the object or its children. The state of the Affect Pivot Only and Affect Object Only is ignored. Hierarchies | 3349 Viewing and Selecting Hierarchies There are a number of ways to view a hierarchy structure and select objects in it. Viewing a Hierarchy You can use these methods to view the relationships between parents and children in a linked hierarchy. ■ The Select Objects dialog on page 232 appears whenever you use a by-name selection method, such as choosing Edit menu > Select By > Name, by clicking Select By Name on the main toolbar, or by pressing the H key. To list objects hierarchically, turn on Display Subtree on the dialog. This indents children below their parent. ■ The Hierarchy list on page 3531 at the left side of the Track View window on page 3503 displays all objects using indentation to express hierarchy. Child objects are displayed indented and below their parent. An added advantage of Track View is that you can control the view by collapsing and expanding branches of the hierarchy. 3350 | Chapter 15 Animation Displaying the hierarchy in the Controller list A square icon with a plus indicates a collapsed branch under that object, while a minus indicates an expanded branch. Click a plus icon to expand a branch, or a minus icon to collapse it. TIP In complex scenes, use Curve Editor to navigate quickly through the Track View. Simply select the object in the viewport, then right-click and choose Curve Editor. The Track View — Curve Editor will appear with the selected object at the top of the window. ■ You can also use Schematic View on page 7411 to view hierarchies. In addition to showing you the structure, Schematic View contains tools for manipulating hierarchies. Hierarchies | 3351 Selecting Hierarchy Members:Ancestors and Descendants Once you have selected one or more objects in a hierarchy, you can select its direct ancestor or descendant with the Page Up and Page Down keys. ■ Page Up deselects the object and selects the object’s parent. ■ Page Down deselects the object and selects all its immediate children, but not all descendants down the chain. TIP These navigation commands are particularly useful when setting joint parameters for inverse kinematics. To select an object and all of its descendants, you can: ■ Double-click the object in a viewport. ■ Double-click the object icon in the Track View Hierarchy list on page 3531. Selecting Hierarchy Members: Siblings Available in Customize User Interface on page 7697 are the actions Select Sibling - Next and Select Sibling - Previous, which appear in the Main UI group and All Commands category. You can assign them as hotkeys, toolbar buttons, etc. We recommend assigning them to the cursor keys Right Arrow and Left Arrow, respectively; by default, those keys are not assigned keyboard shortcuts. Using one of these commands replaces the current selection with one object only at the same hierarchical level. More precisely, a sibling is defined in this context as an object of equal generational distance from the selected object's nearest parent. All objects that fit this definition are siblings, so that in asymmetrical hierarchies, object A can be a sibling of object B, but the reverse is not necessarily the case. 3352 | Chapter 15 Animation Take, for example, the asymmetrical hierarchy of dummy helper objects shown below: Hierarchy in viewport (numbers added) Hierarchy in Select From Scene dialog From the viewport image, it might appear that Dummy objects 06, 08 and 02 are siblings of each other. However, the setup is actually more complicated, because Dummy objects 02 and 08 are direct children of Dummy03, while Dummy06 is a direct child of Dummy05, which has the same hierarchical level as Dummy03: ■ Selecting Dummy06 and activating Select Sibling - Next results in Dummy08 being selected. ■ Selecting Dummy06 and activating Select Sibling - Previous results in Dummy02 being selected. ■ With Dummy02 selected, activating either Select Sibling command results in Dummy08 being selected, and the selection continues alternating for each subsequent invocation of either command. This is because 3ds Max looks only as far as the next branch above the selected object, resulting in Dummies 02 and 08 being siblings of Dummy06, but not vice-versa. Hierarchies | 3353 Defining a sibling in this way has the practical advantage of letting you, for example, cycle through the selection of all finger links on one side of a character without the selection jumping to the other hand. But cycling through siblings with an arm object selected usually results in selecting the opposite arm object. When using these commands, hidden on page 8002 and frozen on page 7989 objects can't be selected, but are considered part of the hierarchy when deciding what is and is not a sibling. Also, if a selection filter on page 208 is active, siblings that don't meet the filter's criteria cannot be selected. In all such cases, ineligible siblings are skipped in favour of a further sibling, if any exists. Customizing the Quad Menu You can customize the quad menu on page 7516 so it displays commands to select children, or ancestors, or both. From the Customize menu, choose Customize User Interface on page 7697. On the Quads on page 7704 tab, drag Select Ancestor or Select Children from the list of all commands to the quad menu. Then you can easily select children or parents with a right-click and then a click. Animating with Forward Kinematics The default method of manipulating a hierarchy uses a technique called forward kinematics on page 7987. The basic principles employed by this technique are: ■ Hierarchical linking from parent to child ■ Placement of pivot points to define the connecting joint between linked objects ■ Inheritance of position, rotation, and scale transforms from parent to child You animate the objects of a hierarchy in much the same way you animate anything else. Turn on the Auto Key button and transform members of the hierarchy at different frames. However, you need to be aware of a few special issues for animating hierarchies. 3354 | Chapter 15 Animation How Links and Pivots Work Once two objects are linked together, the child object maintains its position, rotation, and scale transforms relative to its parent object. These transforms are measured from the pivot of the parent to the pivot of the child. For example, consider the two boxes in the following figure. The larger box is the parent of the smaller. The pivots and link between the boxes are indicated to show how the link works. The link extends from the pivot of the parent and connects to the pivot of the child. You can think of the child’s pivot as being the joint between the parent and child. Parent and child objects linked by their pivot points. Animating with Forward Kinematics | 3355 Rotating the parent affects the position and orientation of the child object. 3356 | Chapter 15 Animation Rotating the child does not affect the parent. Links act as a one-way conduit to transmit the transforms of a parent object to its child object. If you move, rotate, or scale the parent, the child is moved, rotated, or scaled by the same amount. Because hierarchical links are one-way, moving, rotating, or scaling the child has no effect on its parent. The end result is that transforms applied to a child object are applied in addition to any transforms inherited from the child’s parent. Animating a Parent Object Only transforms are passed from parent to child. Animating a parent object using move, rotate, or scale animates the parent and the subtree attached to the parent. Animating a parent's modifiers or creation parameters has no effect on its descendants. Animating with Forward Kinematics | 3357 Moving the root parent moves the whole hierarchy. 3358 | Chapter 15 Animation Rotation of a parent object is passed to all the child objects. Animating a Child Object With forward kinematics, a child is not constrained by its link to a parent. You can move, rotate, and scale children independent of their parents. Animating with Forward Kinematics | 3359 Moving the last child object does not affect any of the previous objects in the hierarchy. 3360 | Chapter 15 Animation Rotating a child object in the middle of the hierarchy affects all the descendants but none of the parents. If you want to manipulate parent objects by moving the last child in the chain, use inverse kinematics on page 3374. Manipulating the Hierarchy A child object inherits the transforms of its parent, and the parent inherits the transforms of its ancestors all the way up the hierarchy to the root object. Because forward kinematics employs this method of inheritance, you must position and animate your hierarchies using a top-down method. Animating with Forward Kinematics | 3361 Manipulating the hierarchy of a leg. Consider the linked mannequin in the figure. If you want to position the mannequin’s right foot to rest on top of the soccer ball beside it, you perform the following steps: 1 Rotate the right thigh so the entire leg is above the soccer ball. 2 Rotate the right shin so the foot is near the top of the soccer ball. 3 Rotate the right foot so it is parallel with the top. 4 Repeat steps 1 through 3 until the foot is properly placed. 3362 | Chapter 15 Animation You always start transforming objects at the highest-level parent affected by the motion and work your way down the hierarchy to the last child. You have considerable control over the exact placement of every object in the hierarchy using forward kinematics. However, the process can become tedious with large and complex hierarchies. In such situations, you might want to use inverse kinematics on page 3374. Using Dummy Objects The primary use of dummy helper objects on page 2615 is to assist in creating complex motions and building complex hierarchies. Because dummies are invisible when rendered, they are an excellent choice for offset joints, connectors between objects, and handles for complex hierarchies. Dummies and Points on page 2628 can act as null objects that function as controls for transforming parts of an IK chain. Using a Dummy to Control Motion Breaking complex motions into simple components often makes it easier to go back and edit your animations. Consider a bouncing ball that moves along a path. You could animate the ball by positioning it on many frames, but it would be very difficult for you to go back and adjust the height of the bounce or the path of the ball. You have to edit the motion of the ball on many frames to make even a simple change. Using a dummy object solves this problem by breaking the motion into simple components. One component is the up and down bounce of the ball. The other is movement on the path. Animating with Forward Kinematics | 3363 Combining the bouncing motion of a ball with the forward motion of a dummy results in a moving bouncing ball. Using a Dummy as a Handle You might want to move and animate a selection of objects individually but also have the ability to transform them as a single object. A good example of this is a camera on a tripod. You want to adjust both the camera and its target individually but also want to move them together as a single unit. Procedures To create a complex bounce motion using a dummy object: 1 Start with a sphere, then create a dummy object below the sphere, and link the sphere as a child of the dummy. 2 Animate the sphere bouncing up and down above the dummy. 3 Animate the dummy moving. 3364 | Chapter 15 Animation The sphere bounces on top of the dummy object as the dummy moves around the scene. You can easily change the height and speed of the bounce by changing the sphere animation. You can change the path through the scene by changing the dummy animation. To create a camera tripod: ■ Create a dummy object below a target camera and link the camera and target as children of the dummy object. The camera and the target follow the dummy object. You can quickly position the camera by placing the dummy object and compose your view by adjusting the camera and its target. Animating Links You assign a Link constraint on page 3308 to an object to animate links from one parent to another. You use a link constraint instead of using the regular Select and Link and Unlink Selection buttons on the toolbar. (See Animation Constraints on page 3287.) An example of using a link constraint is to pass a ball from one hand to another. Assume that at frame 0 the ball is in the first hand. The hands are animated to meet at frame 50 and then spread apart until frame 100. To animate the links for the ball: 1 On the Motion panel, assign a Link constraint as the ball's Transform controller. You can also put a Link constraint on the ball from the Animation menu by choosing Constraints > Link Constraint. 2 Move the time slider to frame 0, then on the Motion panel click Add Link, and click the hand holding the ball. The ball will now move along with the hand, as if it were linked to it. 3 Move the time slider to frame 50, where you want the second hand to pick up the ball, click Add Link, then click the second hand. From this frame on, it's as if the ball were linked to the second hand. When you play back the animation, the ball travels with the first hand until frame 50, where you added the second link, then the ball is passed to the second hand for the rest of the animation. Animating with Forward Kinematics | 3365 Robot arms pass a ball from one hand to the other. Adding and Deleting Links You add and delete links on the Motion panel. Expand the Link Parameters rollout and click Add Link or Delete Link. ■ Click Add Link then click the object that you want to link to as a parent. The frame at which you add the link is the frame at which control is passed. You can change the link frame with the Start Time parameter. ■ Click the name of a parent object in the list, and then click Delete Link to remove the link. 3366 | Chapter 15 Animation Properties of the Link constraint include: ■ The Link constraint respects the link inheritance settings applied to the child object. ■ The object using a Link constraint is not a true child object. It does not appear in the subtree of any linked parent objects. ■ Objects with Link constraint do not participate in IK solutions. Link to World You can also link an object to the world using the Link to World button. This will keep the object stationary without the use of a dummy object. Just click Link to World and the world is automatically entered as a Target. Key Modes You can choose between three different key modes, which determine how keyframes are written on the linked objects as part of the link constraint. These options provide the following: No Key Mode No keys are created any of the objects involved. No keys will be visible in the track bar. Key Nodes Sets keys for some of the objects. Child applies keys to the child object only. Parents applies keys to both parents and the child object. Key Entire Hierarchy This applies keyframes to the chosen nodes and their entire hierarchies. Child keys the chosen object and the nodes in its hierarchy up to the world. Parents keys both parents and the child and all three hierarchies up to the world. Side Effects of the Link Constraint The Link constraint works to keep a child object from jumping position at the time when the link changes from one parent to another parent. Considering the previous example, the following should hold true: ■ During frames 0 to 50 the ball remains constant relative to the first hand. ■ During frames 50 to 100 the ball remains constant relative to the second hand. ■ At frame 50, the time when link control changes, the ball does not jump. Animating with Forward Kinematics | 3367 If you change the animation of the second hand at frame 75, it affects the position of the hand relative to the ball at the time of the link (frame 50). This change in relative position affects the ball over all frames where it is linked to the second hand. Therefore, as you change the position of the hand at frame 75, the child's position will also change, possibly in a counter-intuitive way. However, when playing back the animation the above three rules will hold true. Adjusting Object Transforms You use the features on the Adjust Transform on page 3483 rollout to transform objects after they have been linked without transforming descendents, and to reset an object's transform. Transforming Parent Objects You might discover, after linking a number of objects, that you need to move, rotate, or scale a parent object but you do not want to affect the object's descendents. You can transform a parent object without affecting its descendents by clicking Don't Affect Children on the Adjust Transform rollout of the Hierarchy panel. Resetting an Object's Orientation and Scale Click the Transform button in the Reset group to rotate an object's pivot to match its parent's local coordinate system. Descendents of the object are not affected. Resetting an Object's Scale Only Click the Scale button in the Reset group to set the current scale value as the selected object's base scale value. All following scale transforms are then applied using the base scale value as an absolute local scale of 100%. Consider a sphere with a radius of 20 units and a linked child object: 1 Use Uniform Scale to scale the sphere to 200%. The sphere and its child become twice as big. Scale Transform Type-In reports an Absolute Local Scale of 200% and the object's creation parameters report a radius of 20 units. The true radius of the sphere is 200% of 20 units, or 40 units. 2 Select the sphere and click Reset Scale. The sphere and its child remain the same size. Here's what has happened: 3368 | Chapter 15 Animation The 200% scale has been absorbed by the sphere as its original state. The sphere has a true radius of 40 units, Creation Parameters report a radius of 20 units, and absolute local scale is 100%. The sphere's child object accepts a local scale of 200% so it does not change in size. Resetting the scale of an object can lead to confusion because the object's true size, absolute local scale, and creation parameters no longer match up. Using the Reset Transform Utility You can also reset the orientation and scale of an object by clicking Reset XForm on page 957 on the Utilities panel on page 7671. Reset XForm takes the rotation and scale transforms of an object and places them in an XForm modifier on the modifier stack. Consider the same sphere as before with a radius of 20 units and a linked child object: 1 Use Uniform Scale to scale the sphere to 200%. The sphere and its child become twice as big. The Scale Transform Type-In reports an Absolute Local scale of 200% and Creation Parameters report a radius of 20 units. The true radius of the sphere is 200% of 20 units, or 40 units. 2 Select the sphere and click Reset XForm. The sphere remains the same size but its child reverts to its original size and position. Here's what has happened: The 200% scale has been placed in an XForm modifier on the sphere's modifier stack. The sphere has a true radius of 40 units, Creation Parameters report a radius of 20 units, and absolute local scale is 100%. The sphere's child object now sees only the 100% local scale so it reverts to its original size and position. Locking Object Transforms You can lock an object’s ability to move, rotate, or scale about any of its local axes by selecting objects and then setting options on the Locks on page 3501 rollout of the Hierarchy panel. Enabling and disabling Local transform axes is also referred to as setting degrees of freedom (DoF) for an object. If an axis is enabled, an object is free to transform about that Local axis. Animating with Forward Kinematics | 3369 The Locks rollout contains three groups: one each for Move, Rotate, and Scale. Each group contains three options, one each for the X, Y, and Z Local axes of the selected objects. ■ When turned on, the objects cannot be transformed about the selected Local axes when you directly use one of the transform tools. Objects can still be transformed by other means such as being a child of a transformed parent object or being part of an inverse kinematics chain. ■ When turned off, objects can be freely transformed about the unlocked Local axes. Animating Attachment You assign an Attachment constraint on page 3288 to cause an object to hold a position on the surface of another object. The Attachment constraint is not a hierarchical link, but it has the effect of "linking" an object to the surface of another object as follows: ■ Attach a "source" object to the face of a "target" object so that the source object acts as if it's glued to the target object, no matter how the surface of the target object is deformed. ■ Animate the Attachment parameters so that the source object moves over the surface of the target object. Unlike hierarchical linking, which considers only object transforms, an object using an Attachment constraint follows the deformations of another object based on that object's modifiers and space warp bindings. See Animation Constraints. on page 3287 Setting Attachment Parameters You use features on the Attachment Parameters rollout on the Motion panel, to pick a target object and position the source object. ■ Click Pick Object, then click the target object to perform the attachment. ■ Click Set Position and click or drag on the surface of the target object to place the source object onto the surface. If you want to move the source object along the normal of the face (move it below or above the face) click Affect Object Only on the Hierarchy panel and move the object, using Local transform coordinates. 3370 | Chapter 15 Animation ■ Turn on Align to Surface if you want to align the world Z axis of the source object with the surface normal of the target object. Even with Align to Surface selected, you can always rotate the source object to orient it the way you want in relation to the target object. If you were to align trees on an uneven terrain, you would turn off Align to Surface so that all of the trees grew upright, regardless of the angle of the terrain surface. Animating Attachment Position You can move to any frame and click Set Position to animate the source object moving across the surface of the target object. It is not necessary to turn on the Auto Key button, because you are working with an animation constraint. When you set positions for the source target on multiple frames, its attachment to the target object is only fixed at each keyframe. Frames between keys are interpolated and might not match the target surface. If you need the object to remain on the target surface, try using a Surface Constraint, rather than attachment. Test your animation, and either adjust the values of the keys, or add intermediate keys to better match the target surface. Too many keys can result in jittery movement of the source object, while too few keys might result in the source object missing the surface of the target object over some frames. Changing Link Inheritance Links can transmit transform information from a parent to a child. By default, a child inherits all of the transforms of its parent. To set an object's ability to inherit the move, rotate, and scale transforms of its parent, you use the Inherit on page 3502 rollout of the Hierarchy panel. Use its settings to limit which transforms a child inherits. The Inherit rollout is available only when you have selected a single object. When multiple objects are selected, the rollout is disabled. Setting Link Inheritance Options Set the Inherit options to release the link components between a selected object and its parent for any world axis of Move, Rotate, or Scale. The options that appear when you expand the Inherit rollout are determined by the transform controllers assigned to the selected object. Animating with Forward Kinematics | 3371 The Inherit rollout for objects using standard position, rotation, and scale controllers contains three groups: one each for Move, Rotate, and Scale. Each group contains three options, one each for the X, Y, and Z world axes. ■ When turned on, transform information from the parent is passed on to the child for the selected World axes. ■ When turned off, transform information for the selected axes is ignored by the child. Imagine you are animating a Ferris wheel that rotates on the world Y axis. The wheel is the parent and the cars are its children. You want the cars to ignore the Y axis rotation of the wheel. Otherwise, the passengers would all fall out. You use Link Info to turn off the Y axis option on the Rotation group of the Inherit rollout for each car. Using the Link Inheritance Utility The Link Inheritance on page 3372 utility works exactly the same as the Inherit rollout in the Link Info group on the Hierarchy panel, except that you can set link inheritance for multiple objects in a selection set. For example, on a Ferris wheel, you could select all of the cars and use the Link Inheritance utility to turn off Y axis rotation for all the cars at once. Link Inheritance (Selected) Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Link Inheritance (Selected) The Link Inheritance (Selected) utility constrains the links between multiple objects in a selection set for any axis of position, rotation, or scale. This utility works exactly the same as the Inherit rollout on page 3502 in the Link Info group box in the Hierarchy panel on page 7661, except that it lets you adjust link inheritance for multiple objects in a selection set, while the functions in the Hierarchy panel work only on single objects. Procedures To prevent the inheritance of X rotation in a hierarchy: ■ Select one or more objects, and then turn off X in the Rotate group of the Inherit rollout. 3372 | Chapter 15 Animation Interface XYZ Turn off any axis in the Move, Rotate, or Scale groups to prevent inheritance. When a box is turned on, transform information from the parent is passed on to the selected objects for the selected axis. When a box is turned off, transform information on that axis is ignored by the selected objects. Animating with Forward Kinematics | 3373 Inverse Kinematics (IK) Using IK to animate a leg Inverse kinematics (IK on page 8016) is a method of animating that reverses the direction of the chain manipulation. Rather than work from the root of the tree, it works from the leaves. Let's take the example of an arm. To animate an arm using forward kinematics, you rotate the upper arm away from the shoulder, then rotate the forearm, the hand from the wrist and so, on adding rotation keys for each child object. To animate the arm using inverse kinematics, you move a goal that positions the wrist. The upper and lower arms are rotated by the IK solution which 3374 | Chapter 15 Animation moves the pivot point of the wrist, called an end effector on page 7963, toward the goal. In the case of a leg, for example, the foot is constrained to the floor by the goal. If you move the pelvis, the foot stays put since the goal has not moved, and this causes the knees to bend. The entire animation is contained in keyframes for the goal and the root, without keys being applied to the individual chain objects. With inverse kinematics you can quickly set up and animate complex motions. The basic procedure involves these tasks: ■ Build a model. It could be a jointed structure or many pieces or a single continuous surface. ■ Link the jointed model together and defining pivot points, as described in Hierarchies on page 3331. For a continuous-surface model, create a Bones on page 901 structure or use a biped to animate the skin of the character. ■ Apply IK solvers on page 3382 to the jointed hierarchy. You will probably create several IK chains throughout the hierarchy, rather than just one. You might also create several independent hierarchies, rather than link everything together in one large hierarchy. For simple inverse kinematic animation you can use interactive IK, without applying any IK Solver. ■ Define joint behavior on page 3466 at the pivot points, setting limits or preferred angles, depending on the type of IK solvers you are using. Here you can set up sliding joints or rotating joints. You might also need to move the root of the hierarchy, and you might want to add control objects such as dummies or points at this point. ■ Animate the goal (in the case of an HI Solver on page 3392 or IK Limb solver on page 3444) or the end effector (in the case of the HD Solver on page 3422). This animates all the components of the IK chain. You can apply constraints on page 3287 to the goals or control objects or to the root of a chain. You can externally reference IK chains in your scene. An XRef IK chain behaves the same as a non-XRef chain, except that you cannot retarget its XRef controller on page 3269 once it is in your master scene. For more information, see XRef Objects on page 6936. Inverse Kinematics (IK) | 3375 Control Objects to Assist IK You can link a goal or an end effector to points, splines, or dummy objects that serve as quick controls to translate or rotate the end of the chain. These control objects can be linked together as well, or they can be controlled with constraints. You can also use parameter wiring to build relationships between these control objects. You can wire control objects to manipulator helpers on page 2636 or to custom attributes on page 329, creating an easily accessible interface for your animatable model. You can add further controls to manipulate the elements in the middle of the chain. NOTE In the HI Solver on page 3392, the swivel angle on page 3397 has its own manipulator, which can be animated or linked to another target object. Differences Between Forward and Inverse Kinematics Forward kinematics uses a top-down method, where you begin by positioning and rotating parent objects and work down the hierarchy positioning and rotating each child object. Basic principles of forward kinematics include: ■ Hierarchical linking from parent to child. ■ Pivot points defining joints between objects. ■ Children inheriting the transforms of their parents. These principles are fairly forgiving. As long as everything is linked together and the pivots are located at joint locations, you can successfully animate the structure. Inverse kinematics (IK) uses a goal-directed method, where you position a goal object and the program calculates the position and orientation of the end of the chain. The final position of the hierarchy, after all of the calculations have been solved, is called the IK solution. There are a variety of IK solvers that can be applied to a hierarchy. Inverse kinematics starts with linking and pivot placement as its foundation and then adds the following principles: ■ Joints can be limited with specific positional and rotational properties. 3376 | Chapter 15 Animation ■ Position and orientation of parent objects are determined by the position and orientation of child objects. Because of these additions, IK requires greater thought about how you link your objects and place pivots. Where many different solutions for linking objects may be suitable for forward kinematics, there are usually just a few good solutions for any given IK approach. Inverse kinematics is often easier to use than forward kinematics, and you can quickly create complex motions. If you need to edit those motions later, it can be simpler to revise the animation if you are using IK. It also is the best way to simulate weight in an animation. See also: ■ Inverse Kinematics Methods on page 3380 ■ IK Solvers on page 3382 ■ IK Terminology on page 3377 ■ Linking Strategy on page 3335 ■ Bones System on page 901 ■ Using Objects as Bones on page 913 IK Terminology Using inverse kinematics requires that you set parameters for a number of IK components. Brief definitions of these components follow; details are provided in other topics. NOTE 3ds Max offers a variety of inverse kinematics systems. There are four kinds of IK solvers, plus applied IK and interactive IK systems that don't use IK solvers. Not all of the following parameters are used by all the systems. IK Solvers An IK solver applies an IK solution to a kinematic chain. The kinematic chain is composed of a bones system, or a set of linked objects. Inverse Kinematics (IK) | 3377 Joints An IK joint controls how an object transforms with respect to its parent. You specify joint behavior with settings in three categories: ■ Object Pivot Point The location of an object’s pivot point defines where joint motion is applied. ■ Joint Parameters Changing the IK settings in the Hierarchy command panel determines the direction, constraints, and order of how the joint operates. ■ Parent Pivot Point The location of an object’s parent pivot point defines the origin from which the joint constraints are measured. The commands you use to place the pivot points for both the object and its parent are described in Adjusting Pivots on page 3345. Start and End Joints The start and end joints define the beginning and end of an IK chain managed by the IK solver. The hierarchy of the chain determines the direction of the chain. The pivot point of the end joint is displayed as the end effector, when end effector display is enabled. Kinematic Chain Inverse kinematics calculates the position and orientation of objects in a kinematic chain. The kinematic chain is defined as any part of a hierarchy under IK control. The IK chain starts with a selected node and consists of a start joint and an end joint. The base of the chain is either the root of the entire hierarchy, or an object that you specify as a terminator for the chain. The kinematic chain is defined when you apply an IK solver to a chain, or when you create a bone chain with an IK solver automatically applied. Goal The goal is used by the HI Solver to manipulate the end of the chain. When the goal is animated, the IK solution attempts to match the end effector (pivot point of the last child in the chain) to the goal position. When using an HD Solver, the end effector fulfills the same function as the goal. End Effector For any IK solution, you explicitly move a control object. IK calculations then move and rotate all other objects in the kinematic chain to react to the object you move. The object that you move is the goal, in an HI Solver or IK Limb Solver, or in the case of an HD Solver, an end effector on page 7963. Preferred Angle Determines which direction a joint will bend. The preferred angle establishes a base angle between chain elements when an HI Solver is applied. The IK Solution seeks this angle in calculations. Solver Plane and Swivel Angle Manipulator A plane can be defined between the start and end joints, which aids in controlling the IK solution. Adjust or animate the solver plane by changing the swivel angle manipulator when in 3378 | Chapter 15 Animation manipulate mode. This determines an up-vector handle for the chain, which can also be animated over time. You can also define a target for the swivel angle manipulator to follow. For more information, see White Paper: Swivel Angle of the HI IK Solver on page 3397. Terminators You can explicitly set the base of an HD (History-Dependent) IK chain by defining one or more objects as terminators. A terminator object stops the IK calculations so that objects higher up the hierarchy are unaffected by the IK solution. Terminator objects are also used to define hierarchies that use multiple HD IK chains. Terminator objects are not used in HI Solvers or IK Limb Solvers. In these cases the termination is determined by the end joint of the chain. Bound Objects Objects in your hierarchy can be bound to the world, or they can be bound to other objects called follow objects on page 7985. Binding allows objects in your hierarchy to be influenced by objects that are not part of the hierarchy. ■ An object bound to the world will attempt to maintain its current position and orientation. ■ An object bound to a follow object will attempt to match the position and orientation of the follow object. ■ You can bind to a follow object when you use an HD Solver, or when Applied IK is used. If you want to bind to a follow object when using an HI or IK Limb Solver, apply a position constraint between the goal and any follow object of your choice (usually a point, dummy, spline, or bone). Enabled IK (HI Solver) When using the HI Solver, you can animate with either inverse kinematics or forward kinematics (FK). When Enabled is turned on, inverse kinematics controls the chain, and keyframes are placed only on the goal. When Enabled is turned off, forward kinematic rotational keys are placed on all the bones. IK/FK Snap (HI Solver) When using the HI Solver, if you animate using both IK and FK, you might create a situation where the goal has moved away from the end of the chain, causing a jump in the animation. Pressing IK/FK Snap will result in the goal being moved back to match the position of the end effector, eliminating the jump in the animation. IK for FK pose (HI Solver) When this button is turned on, moving the goal automatically sets rotation keys for the bones. In effect, this lets you use IK manipulation to create your pose, setting FK keys. Inverse Kinematics (IK) | 3379 Inverse Kinematics Methods Inverse kinematics builds on the concepts of hierarchical linking. To understand how IK works, you must first understand the principles of hierarchical linking and forward kinematics. See Animating with Forward Kinematics on page 3354 and Inverse Kinematics (IK) on page 3374. IK Solvers IK solvers on page 3382 are specialized controllers that apply IK solutions procedurally across a range of frames. Four different IK solvers ship with 3ds Max: ■ HD (History-Dependent) Solver ■ HI (History-Independent) Solver ■ IK Limb Solver ■ Spline IK Solver TIP In order to put an IK solver on a two-bone chain, a third bone is needed. Choose the first bone, then from the Create menu click IK solver, then click the third bone in the viewport. In general, all IK solvers: ■ Work on any hierarchy. ■ Work on any hierarchy or bone structure. ■ Calculate IK solutions for all frames in real-time as you make changes. ■ Allow you to create multiple IK chains within a single hierarchy. ■ Allow you to create multiple or overlapping IK chains within a single hierarchy. ■ Display active joint axes and joint limits graphically. ■ Use a node, goal or an end effector to animate the end of a chain. ■ Use an end effector to animate the end of a chain. 3380 | Chapter 15 Animation An IK solver places keyframes only on the IK goal or end effector, as opposed to forward kinematics (or the non-solver IK methods), which place rotation keyframes on the bones or hierarchical objects themselves. Other IK Methods In addition to the IK solvers, 3ds Max provides two non–solver methods of inverse kinematic animation: Interactive IK and Applied IK. These IK methods do not apply an IK solver. NOTE These are older IK methods carried over from the earliest versions of the software. It is generally recommended that IK Solvers be used in most cases rather than Interactive or Applied IK. ■ Interactive IK on page 3459 Interactive IK gives you the ability to use IK manipulation on hierarchies without applying an IK solver. You animate your IK structure by activating Interactive IK (found in the IK panel of the Hierarchy panel and on the Hierarchy toolbar) and manually animating the position of end effectors. IK solutions are calculated only for the keyframes you set. All other motion is interpolated as set by the object's controllers. Moving the end of the chain simply adds rotational keys to the objects in the chain. The objects can have joint limits assigned, for additional control. The chain can also be terminated using the tools in the Auto Termination rollout on page 3499. ■ Applied IK on page 3462 With Applied IK, you animate follow objects and the program calculates the solution on every frame of a specified range. The IK solution is applied as standard transform animation keys. Applied IK works with any linked hierarchy of objects except for bones that use the HI Solver or the IK Limb Solver. It can combine forward kinematics with inverse kinematics on the same objects. You can apply it automatically to a range of frames, or interactively to single frames. Applied IK is fast and accurate, but it creates keys for every object in the kinematic chain, on every frame. The large number of keys can make it difficult to adjust the animation later. Use Applied IK repeatedly to adjust the animation. Inverse Kinematics (IK) | 3381 IK Solvers Select an object in a hierarchy where you want IK to start. > Animation menu > IK Solver > Apply an IK solver. > Click the object in the hierarchy where you want the IK chain to end. An IK solver creates an inverse kinematic solution to rotate and position links in a chain. It applies an IK Controller to govern the transforms of the children in a linkage. You can apply an IK solver to any hierarchy of objects. You apply an IK solver to a hierarchy or part of a hierarchy using commands on the Animation menu. Select an object in the hierarchy, choose an IK solver, and then click another object in the hierarchy to define the end of the IK chain. Bones system with HI IK solver applied Each type of IK solver has its own behavior and workflow, as well as its own specialized controls and tools that display in the Hierarchy and Motion panels. 3382 | Chapter 15 Animation IK solvers are plug-ins, so programmers can expand the software's capabilities by customizing or writing their own IK solvers. 3ds Max ships with four different IK solvers. How Does an IK Solver Work? An IK solver generally operates in this way: an inverse kinematic chain is defined on part of the hierarchy, say from the hip to the heel, or the shoulder to the wrist of a character. At the end of the IK chain is a gizmo, called the goal. The goal can be repositioned or animated over time in a variety of ways, often using linkage, parameter wiring or constraints on page 3287. No matter how the goal is moved, the IK solver attempts to move the pivot of the last joint in the chain (also called the end effector) to meet the goal. The IK solver rotates the parts of the chain to stretch out and reposition the end effector to coincide with the goal. Using an IK solver to animate an arm Frequently, the end effector is constrained to the ground plane. For example, you might "pin" the toes as the heels lift in a character walk cycle. Then the movement of the root of the chain poses the legs up from the toes. Inverse Kinematics (IK) | 3383 Four plug-in IK solvers ship with 3ds Max: ■ HI (History-Independent) Solver on page 3392 The HI Solver is the preferred method for character animation, and for any IK animation in long sequences. With HI Solvers, you can set up multiple chains in a hierarchy. For example, a character's leg might have one chain from hip to ankle, and another from heel to toe. Because this solver's algorithm is history-independent, it is fast to use regardless of how many frames of animation are involved. Its speed is the same on frame 2000 as it is on frame 10. It is stable and jitter-free in viewports. This solver creates a goal and an end effector (although the display of end effector is off by default). It uses a swivel angle on page 3397 to adjust the solver plane to position the elbow or the knee. You can display the swivel angle manipulator as a handle in the viewport, and adjust it. HI IK also uses a preferred angle to define a direction for rotation, so the elbow or knees bend correctly. ■ HD (History-Dependent) Solver on page 3422 The HD Solver is a solver well-suited to use for animating machines, especially ones with sliding parts that require IK animation. It lets you set up joint limits and precedence. It has performance problems on long sequences, so ideally use it on short animation sequences. It is good for animating machines, especially ones with sliding parts. Because this solver's algorithm is history dependent, it works best for short animation sequences. The later in the sequence it is solving, the longer it takes to calculate a solution. It allows you to bind the end effector to a follow object, and it uses a system of precedence and damping to define the joint parameters. It allows for sliding joint limits combined with IK animation, unlike the HI IK solver, which only allows for sliding joint limits when using FK movement. ■ IK Limb Solver on page 3444 The IK Limb solver operates on only two bones in a chain. It is an analytical solver that is fast in viewports, and can animate the arms and legs of a character. The IK Limb solver can be used for export to game engines. Because this solver's algorithm is history-independent, it is fast to use regardless of how many frames of animation are involved. Its speed is the same on frame 2000 as it is on frame 10. It is stable and jitter-free in viewports. This solver creates a goal and an end effector (although the display of end effector is off by default). It uses a swivel angle on page 3397 to adjust the solver plane to position the elbow or the knee. You can target the swivel angle to an another object to animate it. IK Limb Solver also 3384 | Chapter 15 Animation uses a preferred angle to define a direction for rotation, so the elbow or knees bend correctly. It also allows you to switch between IK and FK by keyframing IK Enabling, and it has a special IK for FK pose function so you can use IK to set FK keys. ■ Spline IK Solver on page 3445 The Spline IK solver uses a spline to determine the curvature of a series of bones or other linked objects. Vertices on a Spline IK spline are called nodes. Like vertices, the nodes can be moved and animated to change the curvature of the spline. The number of spline nodes can be fewer than the number of bones. This provides the ease of posing or animating a long multiple-bone structure with just a few nodes, as opposed to animating each bone individually. Spline IK provides a more flexible animation system than other IK solvers. Nodes can be moved anywhere in 3D space, so the linked structure can be intricately shaped. A helper object is automatically placed at each node when Spline IK is assigned. Each node is linked to its corresponding helper, so a node can be moved by moving the helper. Unlike the HI Solver, the Spline IK system does not use a goal. The positions of nodes in 3D space is the only factor that determines the shape of the linked structure. Rotating or scaling nodes has no effect on the spline or structure. NOTE 3ds Max also provides two other methods of inverse kinematic manipulation of hierarchies, which don't depend on a solver: Interactive IK on page 3459 and Applied IK on page 3462. IK with Bones While you can apply an IK solver to any hierarchy of objects, a system of Bones on page 901 combined with an IK solver is a good way to animate a character. A bones system is a jointed, hierarchical linkage of bone objects. Bones are used as an armature on to which objects are linked. If you use the skin modifier on page 1672, you can "skin" an object to the bones, so the animation of the bones deforms the mesh that models a character. If you have a jointed character, you can use linkage or constraints so the bones animate the mesh. Inverse Kinematics (IK) | 3385 Animating bones with skin causes the skin to stretch or shrink. Animating bones with skin causes the skin to stretch or shrink. Turning Other Objects into Bones Any object can be turned into a bone object. Right-click any object and select Properties from the quad menu on page 7516. In the Bone group, choose Bone On/Off. You can then choose Show Links Only to replace the display of the objects with the bones. This can be useful if you have a geometrically intensive hierarchy to animate. The interactive viewport response will be much quicker when the geometry is hidden and displayed only at links. 3386 | Chapter 15 Animation You can display any object as a bone object. Select the object and then choose Bone Tools from the Animation menu. This opens the Bone Tools floater. On the Object Properties rollout, turn on Bone On. Then go to the Display panel, and on the Link Display rollout turn on Display Links and Link Replaces Object, which displays the bones instead of the object. This can be useful if you have a geometrically intensive hierarchy to animate. The interactive viewport response is faster when the geometry is hidden and displayed as links only. Any object hierarchy can be displayed as bones. Any object hierarchy can be displayed as bones. Inverse Kinematics (IK) | 3387 Any object hierarchy can be displayed as bones. Bones can scale, squash and stretch over time. See Using Objects as Bones on page 913. Link Display You can use Display Links and Link Replaces Object to display the links instead of the object. These settings are found on the Link Display rollout on the Display panel. This can be useful if you have a geometrically intensive hierarchy to animate. The interactive viewport response is faster when the geometry is hidden and displayed only at links. Advantages of Animating Bones with IK It is possible to animate a character's motion through forward kinematics, rotating each limb into position from the shoulder to the fingers, and the hips to the toes. But it's a lot quicker and more realistic to use inverse kinematics to simulate the foot interacting with the ground. And it is a lot easier to control when you need to make changes to the animation. Rather than having keyframes on every bone in the chain, you have to make changes to only one node, to change the animation of the entire chain. On the other hand, it is common for animators to use IK for the legs and FK for the torso and the arms. FK offers a bit more control for posing the upper body. It is not necessary to use IK for every character animation task. Using the HI IK solver allows you to jump back and forth easily between FK and IK. 3388 | Chapter 15 Animation How to Apply an IK Solver You can apply an IK solver when you create a Bones system, or from the Animation menu: ■ Bones creation on page 901 When you create bones, turning on the Assign to Children option lets you apply an IK solver immediately. Default=Off. ■ You can apply the IK solver to a part of the skeleton using Animation menu > IK Solver. You must select the node where you want the IK chain to start, then choose Animation menu > IK Solvers and select the solver. Then click the node where you want the chain to end. The chain will be created between the pivot points of the two nodes. If you are using an IK Limb Solver, the IK goal will be placed two bones down from the highest node you've selected in the chain. Where to Adjust the IK Solver You adjust IK solver settings in the Motion and Hierarchy panels: ■ Motion panel on page 7663 When the goal of an IK chain is selected, the motion panel displays the rollouts for the individual IK solver. HI Solver Motion panel parameters adjust the swivel angle on page 3397 of the solver plane, to point the knees and elbows. Also, the controls in the IK Solver rollout let you mix periods of IK with FK (forward kinematics) through the Enabled button and the IK button. HD Solver Motion panel parameters assign, remove, and edit the end effector for the currently selected joint. You can parent the end effector to another object, and return the skeleton to an initial pose. Changing IK controller parameters in the Motion panel affects the entire HD IK chain, even when you've selected only a single bone. IK Limb Solver Motion panel parameters for the IK Limb solver are the same as for the HI Solver. Spline IK Solver Motion panel parameters allow you to activate/deactivate the solver, adjust the bones assigned to the start and end joints, adjust start and end twist angles and make twist handle display settings. Inverse Kinematics (IK) | 3389 ■ Hierarchy panel on page 7661 HI Solver When a bone is selected, the IK panel displays controls to activate and limit the rotational joints, and set a preferred angle for the joints. The preferred-angle poses of all the joints help control the direction of rotation of the limbs. When a goal is selected, the IK panel is blank. HD Solver Select the end effector of an HD IK chain. In the Hierarchy panel, click IK. The controls that appear affect the HD Solver. You will also find the tools to bind to follow objects, and set precedence and joint limits, damping and spring back. IK Limb Solver When a bone is selected, the IK panel displays controls to activate and limit the rotational joints, and set a preferred angle for the joints. The preferred-angle poses of all the joints help control the direction of rotation of the limbs. When a goal is selected, the IK panel is blank. If you select a bone before applying an IK Solver, a different set of sliding and rotational joint parameters will be displayed, but these will be replaced once an IK Solver is applied. Spline IK Solver Select the spline of an Spline IK chain. In the Hierarchy panel, click IK. The controls that appear affect the Spline IK Solver. You will also find the tools to bind to follow objects, and set precedence and joint limits, damping and spring back. The controls in the IK panel are similar to the HD Solver. Procedures To add an IK solver to a hierarchy or bones system: 1 Create a bones system or any other linked hierarchy of objects. 2 Select a bone or an object where you'd like the IK chain to start. 3 Choose Animation menu > IK Solver, and then choose the IK solver: ■ HI Solver for character animation ■ HD Solver for mechanical assemblages with sliding joints ■ IK Limb Solver for two-bone chains ■ Spline IK Solver for improved control of intricate, multiple-bone structures 3390 | Chapter 15 Animation 4 Click where you want the IK chain to end. If you are using the IK Limb Solver, you must apply the IK Solver to control only two bones. The IK solver appears in the viewport. To create a bones hierarchy that uses an IK solver: 1 Go to the Create panel, choose Systems, and click Bones. 2 On the IK Chain Assignment rollout, choose an IK solver from the list. 3 Turn on Assign To Children. 4 Click and drag in a viewport to create the bones. Right-click to stop bone creation. The bones are created with the IK solver already applied. NOTE If you use the Spline IK Solver, a Spline IK Solver dialog will open where you can make special settings for the spline and helpers used by the Spline IK solver. To display a hierarchy of objects as bones: 1 Select the hierarchy of objects in the viewport. 2 From the Animation menu > Character submenu, choose Bone Tools. This Opens the bone Tools dialog. 3 Expand the Object Properties rollout. 4 In the Bone Properties group, turn on Bone On. 5 On the Display panel, scroll down to Link Display and expand it. 6 On the Link Display rollout, turn on Display Links, and Link Replaces Object. The objects disappear and the links are displayed as bones. Inverse Kinematics (IK) | 3391 History-Independent (HI) IK Solver The HI (History-Independent) Solver does not rely on IK solutions calculated in previous keyframes in the timeline, so it is just as fast to use at frame 2000 as it is at frame 20. The HI Solver uses a goal to animate a chain. You animate the goal and the IK solver attempts to move the end effector (the pivot point of the last joint of the chain) to match the position of the goal. Often the goal is parented to other control objects such as points or dummies, splines or bones, and these control objects in turn are wired to viewport or rollout sliders. The IK solution takes place in a plane, known as the solver plane. The angle of the solver plane in world space is controlled by a parameter called the swivel angle on page 3397. The swivel angle is animatable. You can adjust it directly, or with a manipulator. The HI Solver allows for the creation of multiple or overlapping chains. This allows you to create multiple goals for additional controls. By linking the goals to points, splines, bones or dummies, you can create simple controls to animate complex chains or hierarchies. You can also use constraints on these goals or control objects, as another animation tool. Applying an HI Solver To apply an HI Solver to any part of a hierarchy select the bone or object where you want to the solver to start. Then choose Animation menu > IK Solvers > HI Solver. In the active viewport move your cursor to the bone where you want the chain to end. When you click to select that bone, the goal is drawn at the pivot point of that bone. If you want a goal at the far end of the bone, refine the bone where you want to goal to be placed. An extra bone will be added, and then choosing that bone allows you place the goal at the end. When you create bones, a small "nub" bone is automatically created at the end of the chain to assist in this process. Setting Up Multiple Chains To rig a skeleton for a human leg you could use three chains in one leg, as follows: ■ The first chain is created from the hip to the ankle. This chain controls the overall leg motion including bending of the knee. 3392 | Chapter 15 Animation ■ The second chain is created from the ankle to the ball of the foot. This chain controls the heel's up and down motion. ■ The third chain is created from the ball of the foot to the toe. When the three chains work together they help to maintain the foot’s position in space. This means it will keep the foot planted on the ground as the character’s body moves. All three IK chains in this hip-to-toe setup place goals at key positions in the foot that mimic natural foot behavior. In real life, the toe, ball of the foot, and heel can be planted on the ground or raised. Each chain has an goal that drives motion on the heel, ball of foot, and toe. Use the IK goals to raise the heel, bend the toe, move and rotate the entire foot, and maintain the foot's position in space. Overlapping Chains The IK solver system allows you to create overlapping IK chains in a single hierarchy. In a human leg, for example, you could create a chain running from the hip to the ankle, then a second chain from the knee to the ball of the foot, and a third from the ankle to the toes. Use overlapping chains, when you want to apply goals to sequential bones, but you don't want to refine the bones. Another good use for overlapping HI IK chains is to keep the goals at the bottom of the hierarchy firmly rooted in place. In the case of the leg example, the ankle, ball and toe of the foot would not move until the upper portion of the hierarchy had reached its full stretch. Inverse Kinematics (IK) | 3393 Overlapping chains make the toe stick to the ground 3394 | Chapter 15 Animation Overlapping chains make the toe stick to the ground Don't try to overlap chains with different kinds of IK solvers or you might get unpredictable results. Creating Control Objects To create control objects to animate the goals, create dummies, points, splines or other objects near the goal, then link the goal to the control object. For example in a human leg, you might have a goal at the ankle, ball of the foot, and the toe. You then create three splines under the foot, one for the heel, one for the ball and one for the toe. Link each goal to each spline, then you can animate the goals using these splines. You could also link the splines together, so that the rotation of the toe is controlled by the movement of the heel. Besides hierarchical linkage, you can now use the new Constraint system in conjunction with IK solvers. You could apply any of the constraints to create a relationship between the goals or bones and other objects. The goal could be position constrained to a dummy which is moved. Or you could create Inverse Kinematics (IK) | 3395 three bone chains that are all in the same place, and constrain one bone chain to another, then weight the constraints. Bone chains constrained together Using control objects gives you something bigger to select in the viewport. You can also use control objects to separate chains, for example in a human arm one chain could end at the wrist and another separate chain be created for the hand and fingers. The control object at the wrist serves as the root node for the hand chain, yet that chain would remain disconnected (hierarchically speaking) from the arm chain. You can create viewport sliders using the manipulator helper, and then use the viewport sliders to control the transforms of the control objects. Use wire parameters on page 3322 to hook up the sliders with the control objects. You can also create Custom Attributes to add these sliders to the object rollouts. Mixing Forward Kinematics with Inverse Kinematics The HI IK solver provides a tool for mixing FK and IK in a single animation track. There is an FK subcontroller beneath the IK controller assigned by this solver. 3396 | Chapter 15 Animation When the Enabled button is on, the FK subcontroller values are preserved but ignored. When Enabled is turned off, the FK subcontroller values apply. To access the Enabled button, select the goal and go to the Motion panel, then turn off the Enabled button. This will allow you to animate using FK rotations of the bones or hierarchy objects. IK for FK pose allows one to turn on IK in middle of FK manipulation. When the Enabled button is turned off, and IK for FK Pose is on, then selecting and moving the goal lets you use IK to create the forward kinematic keyframes. Moving the goal poses the skeleton and add rotation keys to all the objects in the chain when the Auto Key button is on. When working with IK and FK together it is possible to create a situation where the goal has moved away from the end of the chain. Use the IK/FK snap button to reposition the goal, snapping it back to the end of the chain. When AutoSnap is on, the snap happens automatically; when you touch the goal, you don't have to click the IK/FK snap button. Controlling HI IK Precision When you are animating with HI Solvers, if you find the animation of the limbs is not smooth, you should try doubling the Iterations in the Solutions group of the HI Solver Properties rollout on page 3412. You can also try reduce the Thresholds value to smooth the animation. See also: ■ IK Solver Rollout (HI Solver) on page 3407 White Paper: Swivel Angle of the HI IK Solver The fundamental requirement of HI Solver is that the solution be history-independent: the solution has to be based on the goal and other incidental parameters solely at their current states. Swivel Angle Degree of Freedom When the positional goal is given for a single chain, there remains an obvious degree of freedom: the rotation about the End Effector Axis (EE Axis). The swivel angle is used to describe this degree of freedom quantitatively. Inverse Kinematics (IK) | 3397 1. Start joint 2. End effector 3. EE axis Solver Plane Let’s call the plane passing all the joints the Solver Plane. When joints do not lie on a plane, we will define it to be the plane that (A) passes the Start Joint and End Joint and (B) is closest to the remaining joint in a certain sense. The Swivel Angle describes the degree of freedom of the Solver Plane and it constrains only the Start Joint. Zero Plane Map In order to describe the solver plane in terms of a numerical quantity, we have to agree to what 0 means. Given the end-effector position, where is the Zero (Solver) Plane? The Zero Plane Map takes as the argument EE Axis and produces the normal to the zero plane. The IK system allows individual solver plug-ins to define their own Zero Plane Maps. When not defined, the IK system provides a default one. 3398 | Chapter 15 Animation The argument to the Zero Plane Map is a unit vector to give the direction of the EE axis. Equivalently, when the EE slides along the EE axis, the solver plane should be fixed. Therefore, the Zero Plane Map defines a vector field on a sphere. Given a point on the sphere, it produces a tangential unit vector to be interpreted as the normal to the zero plane. 1. Normal to the zero plane Solver Plane Flipping It is a mathematical fact that there does not exist a continuous vector field on a sphere. No matter how hard you try, there will always be a point on the sphere where neighboring vectors change dramatically. This is where the solver plane will flip when the end effector axis approaches to it. This is because, on one hand, the history independent requirement demands us to assign a fixed vector to the singular point. On the other hand, no matter what vector is assigned, it will be dramatically different from some vectors assigned to the neighboring points. Inverse Kinematics (IK) | 3399 Intrinsic Reference Frame for the Sphere In order to define the Zero Plane Map, we need to define a reference frame for the sphere. This reference frame is intrinsic to the joint chain itself. A sphere can be defined by the center, the horizontal plane, and the meridian (zero longitude). The center is assigned to the start joint. The pose when all the joint angles assume preferred angles is particularly important. Let’s call it the preferred pose. We use the solver plane at the preferred pose as the horizontal plane. Since the swivel angle is used to control the start joint, the preferred angles at the start joint are not so intrinsic. It is also reasonable to define the horizontal plane with the solver plane that is derived by assigning zeroes to the start joint and preferred angles to the other joints. The EE axis defines the meridian. The sphere is now defined as shown in the following figure: 1. EE axis All the joints assume preferred angles. The Zero Plane Map is to be defined on this sphere. 3400 | Chapter 15 Animation The API for the plug-in solver to define its own Zero Plane Map in fact takes the EE axis and the normal to the solver plane at the preferred pose: virtual const IKSys::ZeroPlaneMap* GetZeroPlaneMap(const Point3& a0, const Point3& n0) const where a0 and n0 are the EE axis and solver plane at the preferred pose, respectively. Object of ZeroPlaneMap is a function that assigns a plane normal to each point on the sphere. Default Zero Plane Map When not provided by plug-in solvers, (the IK Solver itself is implemented as a plug-in solver) the IK system will provide a default one. This map is defined by the following rules: ■ A: For each point on the equator, the intersection of the horizontal plane and the sphere, the normal vector is defined as the vertical vector, pointing to the same direction as the normal of the solver plane at the preferred pose. ■ B: For any point on the sphere other than the north or south poles, there is a great circle that passes the point and the north, south poles. This circle hits the equator at two points. One point is closer to the given point. The normal vector at the given point is defined as derived from moving tangentially the normal at the closer point on the equator along the great circle to the point. Inverse Kinematics (IK) | 3401 Deriving the default normal to the zero plane Obviously, this method won’t extend to the north or south poles. They are the singular points. When the EE axis moves across the poles, the normal will suddenly change direction: it flips from the users’ viewpoint. Normally, the preferred pose is the one when the solver is first assigned. So, the plane on which one lays the joints corresponds to the horizontal plane here. Rule A makes sure that the chain will stay on the plane if one moves the goal on the plane. Rule B means that, when you move the goal along the great circle vertical to the equator, the chain will stay vertical, except when it passes through the poles, which are the singular points of this map. Parent Space So far, we have described things as if the whole world comprises only IK elements. In practice, the IK chain and goal might sit at points of separate transformation hierarchies. Ultimately, we need to map the position of the end effector that is described in the world to a point on the sphere. Depending how the sphere is mounted relative to the end effector position, the readings 3402 | Chapter 15 Animation of latitude and longitude are different. The parent transformation space that this sphere is to be placed in is called the Swivel Angle Parent Space, or Parent Space when the context is clear. The parent space has to be invariant with regard to the IK parameters. Right now, we provide two choices: ■ Start Joint The Swivel Angle Parent Space is the same as the parent space of the Start Joint. ■ IK Goal The Swivel Angle Parent Space is the parent space of the IK Goal. Example 1 If both the start joint and the goal are rooted directly at the world, the choice of Parent Space does not give rise to any difference. In the following example, the start joint is parented to object A. The IK chain is parented (via the start joint) at object A. Inverse Kinematics (IK) | 3403 Assume this is the pose when the IK solver is assigned. So, this is the preferred pose. The plane on that the joints are laid out is the horizontal plane of the (Zero Plane Map) sphere. ■ A: Parent Space is Start Joint. In this case, the sphere is parented to A. If A is rotated about the drawn axis, the sphere is rotated together with it. The goal is in a separate transformation hierarchy. It stays in place, and the end effector sticks to it because of the IK solution. Since the (plane) normal is fixed to the sphere, it rotates with A, too. Therefore, the whole chain appears to be rotated together with the parent object. ■ B: Parent Space is IK Goal. Suppose that the goal is parented to the world. In this case, the sphere is parented to the world and, hence, stays fixed. Since the normal is fixed to the sphere, the chain will appear stationary when A is rotated. Example 2 In the following example, we look at a case where there exists a rotation in the parent space when the IK solver is assigned. The parent space of the IK chain contains a rotation when the IK solver is assigned. Parent A contains a rotation of 90 degrees. This is an abstraction of the case when a user creates four bones without an IK solver and later assigns an IK 3404 | Chapter 15 Animation solver from Bone2 to Bone4. If we parent the chain directly to world, it would appear as shown in the right figure: the solver plane becomes horizontal. ■ A: Parent Space is Start Joint. The sphere is mounted after the rotation of A and therefore the “horizontal plane” coincides with the chain plane as shown in the viewport. The singular points are perpendicular to the Start Joint with regard to the plane. When the goal/end effector is moved on the plane, it will never hit the singular points and flip. ■ B: Parent Space is IK Goal. Again, we assume that the parent space of the goal is the world. The “horizontal plane” of the sphere becomes horizontal, as shown in the right figure. The singular points, the poles, are on the plane that joints are laid out. Therefore, when users move the goal/end effector left to right, or the other around, the end effector will move across the singular point and flip. A problem of B is that the figure on the right is never shown to the user. They have to envision it in order to understand the flipping. Example 3 This example describes what happened when Start Joint is reassigned. Suppose we have an IK chain of four bone nodes. Inverse Kinematics (IK) | 3405 1. Bone01 2. Bone02 3. Bone03 4. Bone04 The Start and End Joints are Bone01 and Bone04, respectively. Suppose the pose shown in the figure is the preferred pose and Bone01 contains a rotation. If we parent Bone02 directly to the world, the hierarchy from Bone02 will appear as in the right figure. When we reassign Start Joint to Bone02, the Zero Plane Map sphere will be based on the configuration on the right. ■ A: Parent Space is Start Joint. In this case, the sphere that is fixed to the right configuration is to be parented to Bone01 together. This will be the same as the one based on Bone01 to Bone04. Therefore, we get the same normal and chain stays stationary. ■ B: Parent Space is IK Goal. In this case, the sphere stays in the world while Bone02 is parented to Bone01. When Bone04 is moved to where it is shown on the left due to the transformation of Bone01, the observer who is fixed to the sphere that is fixed to the world will see that Bone04 moves away from the neutral position defined by the preferred pose. The algorithm then applies the Zero Plane Map to find the normal at the displaced 3406 | Chapter 15 Animation position. It generally is not perpendicular to the viewport. Therefore, we will see a flip once it takes a new Start Joint. If you delete the solver/goal and assigned a new one from Bone02 to Bone04, you will find that the chain won’t flip. Why? Assignment of Start Joint is different from creating a new IK chain/goal. Start Joint is one of many IK parameters. Reassigning it is simply the same as modifying any parameter. The rest parameters are intact. In particular, the Swivel Angle is not changed as a result of this reassignment. Creating a new IK chain/goal is different. Effort is made to ensure that the joint chain stay fixed by adjusting parameters appropriately. In particular, the Swivel Angle will be set to a value so that the solver plane keeps stationary in the viewport. HI IK Solver Rollouts (Motion Panel) IK Solver Rollout (HI Solver) Select an HI or IK Limb Solver IK Chain control (the blue cross at the end of the chain.) > Motion panel > Parameters button > IK Solver rollout The HI Solver is a history-independent solver that doesn't rely on the calculations from previous frames for the IK solution, so it is fast to use no matter the length of your animation. The history-independent solver uses a goal to manipulate the end of the chain. It uses a preferred angle that specifies a preference regarding which direction the link will rotate: positive or negative. The preferred angle can also be considered as the initial angle; that is, the angle at which the link was rotated at the time the solver was applied. The IK solution takes place in a plane, known as the solver plane. The angle of the solver plane is controlled by a parameter called the swivel angle. Inverse Kinematics (IK) | 3407 Changing the swivel angle The angle of the solver plane is actually calculated in one of two coordinate systems: the Start Joint Parent space or the IK Goal Parent space. World space is not an explicit option; however, you can easily configure the IK chain to work in world space by choosing the IK Goal Parent option and making sure that the IK goal is unlinked (i.e., has no hierarchical parent). In this case, the IK goal’s parent is the world, and therefore, the solver plane will be computed in world space. The swivel angle is animatable. You can adjust it directly, or with a manipulator. Or you can target the swivel angle to a object and animate that to affect the swivel angle. These parameters are on the IK Solver Properties rollout on page 3412. The HI Solver is designed to let the animator jump back and forth between forward and inverse kinematics quickly and conveniently, with tools to automatically enable IK and snap the goal to the end effector. 3408 | Chapter 15 Animation Procedures To turn off IK on a chain: 1 Select the goal of a chain with an HI Solver. 2 In the Motion panel IK Solver rollout, turn off Enabled. IK is now off, so you can select and rotate any of the objects in the chain. Turning IK on and off is animatable using the Auto Key button. To mix IK and forward kinematics (FK) in a single animation track: 1 Apply an HI IK Solver to a hierarchy or bone system. 2 Turn on the Auto Key button and move the time slider ahead in time. 3 Select the goal of the IK Chain, and open the Motion panel. 4 Select and move the goal to animate the IK chain with Inverse Kinematics. 5 Advance the time slider again. 6 In the IK Solver Rollout, turn off Enabled and IK for FK Pose. 7 Select and rotate the root. The entire hierarchy rotates freely. You are now adding keyframes using forward kinematics. To match the goal and the end effector positions: 1 If the goal and end effector become separated, click IK/FK Snap and the goal will move to match the end link of the chain. 2 If AutoSnap is turned on, clicking the goal will automatically perform the snap action, matching the goal and end effector positions. Inverse Kinematics (IK) | 3409 Interface IK Solver group The items in this group provide the ability to set the start and end points of the selected HI IK solver chain. There are also controls in this rollout that allow you to use IK manipulation to create forward kinematic rotational keyframes on the hierarchy objects, and there are buttons to align the goal and the end effector. 3410 | Chapter 15 Animation Solver field Allows selection of IK Solver. Choose between the HI IK Solver and the IK Limb Solver here. Any HI IK plug-in solver present at startup will appear in this list, as well. Enabled Turns IK control of the chain on and off. The HI IK Controller has an FK subcontroller. When Enabled is selected, the FK subcontroller values are overwritten by the IK controller. When Enabled is turned off, the FK values are used. You can animate Enabled On and Off. Use this to turn off the chain control by the goal, when you want to do forward rotations. IK for FK Pose Lets you turn on IK in middle of FK manipulation. When Enabled is off and IK for FK Pose is on, moving the goal will turn on IK automatically in the middle of an FK manipulation. The result of this is that all the FK subcontrollers receive values from the IK solution. Keys are placed on the hierarchy objects or the bones, not on the goal. When both Enabled and IK for FK Pose are turned off, moving the goal does not affect the chain at all. IK/FK Snap Performs an IK snap when in FK mode, and an FK snap in IK mode. IK Snap If the goal has moved away from the end of the chain, clicking IK/FK Snap moves the goal to coincide with the end link position. FK Snap The values of FK subcontrollers are suppressed by the solution of IK when IK is on (Enabled is on). Their values don't always correspond to the current pose of the chain. If you turn off Enabled, the values of FK subcontrollers will suddenly take over. This can cause the chain to jump. FK Snap, before Enabled is turned on, forces the FK subcontrollers to assume values from the current pose (which is determined by the IK.) This eliminates the jump in the chain's animation. Auto Snap When Auto Snap is on, the software automatically applies an IK/FK snap before you turn Enabled on or off. If Auto Snap is not on, you need to click IK/FK Snap before toggling Enabled, otherwise the chain will jump. Preferred Angles group Set As Pref Angles Sets the preferred angle for each bone in the HI IK chain. The current parent-space rotation of each bone is placed into its X, Y, and Z Preferred Angle rotation channels as seen in the Rotational Joint rollout of the Hierarchy|IK panel. This is useful for establishing a perfect match frame on page 8037 when transitioning between forward and inverse kinematics. Inverse Kinematics (IK) | 3411 Assume Pref Angles Copies the X, Y, and Z preferred angle channels of each bone and places them into its FK rotation subcontroller. This essentially performs the inverse operation of the Set As Pref Angles function. Bone Joints group Allows you to change the ends of the IK chain. Pick Start Joint Defines one end of the IK chain. Select from the viewport or by name (press H). Pick End Joint Defines the other end of the IK chain. The direction of the chain is defined by the hierarchy, not by Start and End Joint. Select from the viewport or by name (press H). WARNING If you change the Start or End Joints so the IK Limb Solver so there are more than two bones between the start and end, the solver will not work. Moving the IK goal does not affect the bones. TIP The order of the hierarchy determines the direction of the chain. You cannot reverse the direction of the chain by picking Bone 10 as the start and Bone 1 as the end. IK Solver Properties Rollout (HI Solver) Select end effector of an HI IK chain. > Motion panel > Parameters button > IK Solver Properties rollout Here are the additional controls for the HI IK solver. The IK Solver Plane is controlled here through the Swivel Angle, which can be animated directly or using a target object. In the Parent Space group you can choose to whether the IK goal or the start joint will be used as the parent space for the swivel angle. If IK Goal is selected (which is the default), then the Swivel Angle of the chain is defined in the parent space of its goal. If Start Joint is chosen, then the Swivel Angle will be relative to the parent space of the start joint. These two options allow a much better control of the swivel angle on a chain with two HI IK solvers. For example, the first solver on the upper part of a chain can use a Swivel Angle in the Parent Space of the Start Joint, while the second IK solver on the lower part of the chain uses the Parent Space of the IK Goal. In this case, the change of the Swivel Angle for one chain won’t change the orientation of the other one. 3412 | Chapter 15 Animation In the Thresholds and Solutions group you can refine the IK solution. The Position Threshold sets a limit in units of how far the goal can be moved from the end effector, the Rotation does the same in angle degrees. The Solutions group Iterations is the maximum number of attempts the IK solution will perform before giving up. If your IK animation seems to jitter, try increasing the Iterations to 200. Increasing the Iterations will slow down the computational time, but should produce better results. Manipulator for the Swivel Angle You can adjust the swivel angle with the spinner in this rollout, or you can adjust it with a manipulator. To do so, turn on Select and Manipulate on page 2613. The swivel angle manipulator is displayed as a handle in the viewports. Swivel angle manipulator. Inverse Kinematics (IK) | 3413 Swivel angle manipulator. When you move the mouse over the manipulator, it turns red. At this point, you can drag the manipulator to change the swivel angle. The Auto Key button can be active while you do this. You can also animate the swivel angle by using a target object. Pick an object for the target, then animating the object will animate the swivel angle. The swivel angle manipulator is a standard plane angle manipulator on page 2640. The HI Solver has its own controls for displaying this manipulator. These are on the IK Display Options rollout on page 3416. Procedures To increase the precision of an IK solution: 1 Select the goal in an HI IK chain. 2 In the IK Solver Properties rollout increase the Iterations to 200 in the solutions group. 3 Play or render the animation. 4 You can also adjust the Position and Rotation Thresholds to a smaller value. 3414 | Chapter 15 Animation Interface IK Solver Plane group Swivel Angle Controls the Solver Plane which determines the direction of the knee or elbow in a human limb. The Swivel Angle can be manipulated in the viewport by turning on Swivel Angle Display in the Display Options rollout, and then turning on Manipulate Mode. When the swivel angle manipulator is displayed in the viewport, you can interactively animate the handle to animate the solver plane. Pick Target Lets you select another object to use to animate the Swivel Angle. Use Turns the use of the Target on and off. Parent Space Defines what space the Swivel Angle is relative to. Use this on chains with multiple solvers, so the swivel angle manipulations on one chain will not affect the second. For more information, see White Paper: Swivel Angle of the HI IK Solver on page 3397. IK Goal Defines the Swivel Angle parent space relative to the IK Goal. Start Joint Defines the Swivel Angle Parent Space relative to the Start Joint. Thresholds group Use to define the tolerances the system uses for its calculations. Inverse Kinematics (IK) | 3415 Position Sets a limit in units of how far the goal can be moved from the end effector. Keep these numbers low. Rotation Sets a limit in degrees of how far the goal can be rotated away from the end effector rotation. Keep these numbers low for best results. Note that adjusting the Rotation threshold on the HI Solver and IK Limb Solver has no effect. It is up to the plug-in solver’s discretion as to whether or not they will support a rotation component in the IK solution. Solutions group Use to control the precision of the animation. Increase the iterations when the IK solution produces an animation that appears rough or jittered. Iterations The number of attempts an IK solution will make to find the best match between the goal and the end effector positions. Increase this number if you are seeing jumpy animation. IK Display Options Rollout (HI Solver) Create a bone chain > Add an HI Solver. > Motion panel Here are the controls to turn on and off a variety of gizmos in the viewport. The Goal and End effectors, the vector handle of the swivel angle manipulator, and the IK solver display itself, are all located in this rollout. Procedures To see multiple IK solvers in a single chain: 1 In a chain with multiple IK solvers, select a goal in the viewport. 2 In the IK Display Options rollout, turn on IK Solver Display Enabled. 3 Select a second goal and repeat the process. Each goal's display remains on whether it is selected or not. 3416 | Chapter 15 Animation Interface End Effector Display group Controls the appearance of the end effectors in the IK chain. Off by default. Enabled Turns the end effectors display on or off. Size Controls the size of the end effector gizmo in the viewport. Goal Display group Controls the appearance of the goals in the IK chain. On by default. Enabled Turns the goals display on or off. Size Controls the size of the goal gizmo in the viewport. Swivel Angle Manipulator group Controls the display of the swivel angle manipulator in the IK chain. Default = on. Turn this on, then turn on Manipulate mode to see the swivel angle manipulator. Enabled Turns the swivel angle manipulators on or off. Inverse Kinematics (IK) | 3417 Size Controls the size of the manipulator's handle in viewports. Length Controls the length of the manipulator in viewports. IK Solver Display group Controls the appearance of the IK Solver display, the line drawn between the start and end joints. Turn this on when you have multiple chains that you want to see at the same time. Enabled Turns on or off the IK Solver display. Sliding and Rotational Joints (HI Solver) Create a bone chain. > Apply an HI Solver > Select any bone in the chain. > Open the Hierarchy panel. > IK button Here are the controls for setting the joint limits when using the HI Solver. You can turn X, Y, or Z axes on or off, limit them, and set those limits here. This is also where the preferred angle is defined, and adjusted. The preferred angle defines the direction a chain will bend, which angle a chain will tend to rotate toward. NOTE Sliding joints are implemented in the HI Solver, but they do not take part in an IK solution. They do, however, take part during FK interactive manipulation. Use the HD Solver if you need to animate sliding joints with inverse kinematics. Procedures Example: To set the direction an IK chain will bend (preferred angle): To understand setting the preferred angle it helps to use a simple example. 1 Go to Create panel > Systems and turn on Bones. 2 Turn on Assign to Children and make sure the HI Solver is displayed in the Solver name field. 3 In the Top viewport, create a bone chain of four bones in a straight line . 4 Turn on the Auto Key button, and move the time slider to frame 50. 5 Select and move the goal so it is close to the root node. 3418 | Chapter 15 Animation 6 Select any bone in the chain. 7 On the Hierarchy panel > IK panel, open the Rotational Joint rollout. 8 There are three axes. Find the one with the preferred angle that is not zero. 9 Change the preferred angle. If it is negative make it a positive one. 10 Play the animation, see how changing the preferred angle can redefine the direction of the rotation. To set rotational joint limits on a hierarchy of objects or a bone chain: 1 Create a bone chain or a hierarchy of objects. 2 Select any object in the chain. 3 On the Hierarchy panel > IK panel, open the Rotational Joint rollout. 4 If you want to limit an axis, turn on Active and Limited, and set the values of From and To. The hierarchy will rotate in the viewport. TIP Pressing the From and To labels instantly rotates the bone to those angles. Inverse Kinematics (IK) | 3419 Interface Sliding Joints rollout X,Y, Z Axis groups Active Activates an axis (X/Y/Z). Allows the selected object to slide on the activated axis. Limited Limits the range of motion allowed on an active axis. Use in conjunction with the From and To spinners. Most joints are limited in their range of motion along an active axis. For example, a piston slides only within the length of its cylinder. From and To spinners Determine for position limits. Use in conjunction with the Limited function. Clicking the labels From and To moves the object to its limit position. Use this to check the sliding limits on an object. 3420 | Chapter 15 Animation Rotational Joints rollout X,Y, Z Axis groups Active Activates an axis (X/Y/Z). Allows the selected object to rotate about the activated axis. Limited Limits the range of rotation allowed on an active axis. Use in conjunction with the From and To spinners. Most joints are limited in their range of rotation along an active axis. For example, a wheel rotating around an axle could be limited to rotate around only one axis. From and To Spinners Determine for rotation limits. Use in conjunction with the Limited function. Clicking the labels From and To rotates the object to its limit rotation. Use this to check the rotation limits on an object. Preferred Angle Used by the HI Solver to set the initial pose for internal calculations. Determines the direction of rotation preferred by a bone. Inverse Kinematics (IK) | 3421 History-Dependent (HD) IK Solver Select a node of hierarchy or bone chain. > Animation menu > IK Solvers > HD Solver > Click a second node of chain. Animating with the HD Solver lets you use sliding joints combined with inverse kinematics. It has controls for spring back, damping, and precedence not found in the HI Solver. It also has quick tools for viewing the initial state of the IK chain. Use it for animations of machines and other assemblies. Since this is history dependent, performance is slower at the end of long animations. For lengthy scenes, use HI Solvers, if possible. Animating the End Effectors You animate a hierarchy of objects or bone structure using HD Solvers by animating special end effectors located at the bone joints. There are two types of end effectors: Position and Rotation. They are displayed as three intersecting blue lines at the joint. When you select and transform a joint that carries either end effector, only the end effector itself is transformed. The objects or bones in the chain then use IK to calculate the IK solution. Animating these end effectors is much like animating with Interactive IK except interpolation between keyframes uses correct IK solutions. Linking End Effectors to a Parent You can link HD IK end effectors to a parent to achieve results similar to using bound follow objects with Interactive and Applied IK. To link a HD IK end effector, you click Link on the Motion panel. There are two reasons to link an end effector to a parent: ■ You can rescale your entire hierarchy. If you animate a robot, and then later decide you want to scale the entire robot and its animation, link the robot's root object to a dummy, link all of the robot's end effectors to the same dummy, and then scale the dummy to scale all of the hierarchical objects as well as the animation of the end effectors. ■ You can use linked end effectors for things like feet or hands. End-effectors are automatically bound to the world, so when you move a root object in your hierarchy, the end effectors remain behind. This is good for keeping feet on the ground, but not very good for hands, where you want them to 3422 | Chapter 15 Animation move along with the character. To have hands follow the root object, link the end effectors of the hands to the root object. Linking Bones to Follow Objects You can also use follow objects instead of end effectors and bind bones to any number of follow objects using Interactive IK. If you use follow objects with HD IK, you do not need to click Apply IK. The IK solver takes care of everything automatically. See also: ■ Inverse Kinematics Rollout on page 3497 Binding Objects (HD Solver) Use the binding functions on page 3487 in the HD Solver to cause an object to attempt to maintain its position and orientation relative to the world or to another object. A bound object will resist motion in the kinematic chain until the chain is stretched near its limits and the bound object must move to complete the IK solution. In the top row, the ball is independent of the lamp. In the bottom row, the lamp head is bound to the ball's position. Setting Binding Options You can bind an object by position, orientation, or both. Once an object is bound you can set binding axes, weight, and whether the binding is absolute or relative. Inverse Kinematics (IK) | 3423 Bind Position Causes an object to attempt to maintain its location or to match the location of a follow object. Bind Orientation Causes an object to attempt to maintain its rotational orientation or to match the orientation of a follow object. Relative Changes how an object reacts to a bound follow object. See the following discussion about binding an object to a follow object. Axis and Weight Set these options to control which axes are affected by the binding and the binding’s influence over other bindings in the kinematic chain. Binding an Object to the World You can bind an object to the world if you want the object to hold its position and orientation as long as possible during IK operations. If you are animating a walking figure you want one foot to remain in place while you position the other foot. Without binding, the whole hierarchy would have a tendency to slide around when you attempt to position a foot. Binding both feet to the world ensures that the unselected foot stays in place while you position the other foot. Binding an Object to a Follow Object You can bind a selected object in your hierarchy to any other object that is not a descendant of the selected object. This other object is called the follow object. The behavior of the bound object varies depending on the state of the Relative buttons next to the bind options. ■ When Relative is inactive, the bound object tries to match the exact position and orientation of its pivot point to the position and orientation of the follow object’s pivot point. ■ When Relative is active, the bound object mimics any changes in position or rotation of the follow object but does not try to match it exactly. You might want to animate a figure that always points to another object. Bind the hand of the figure to the other object with Relative active. Turn IK on, and as you move the object, the hand and arm of the figure move to point at it. 3424 | Chapter 15 Animation Unbinding Objects If you decide that you do not want an object to be bound you can either turn off the Bind Orientation and Bind Position boxes, or unbind the object from its follow object. ■ If you turn off the binding options, you disable the effect of binding without removing the binding to a follow object. This method is handy if you decide to reposition a follow object after you have bound an object to it. ■ If you unbind an object, it permanently removes the binding to a follow object. Controlling IK Precision (HD Solver) Even with carefully defined joint precedence and joint parameters there are many valid IK solutions for any placement of an end effector. You set position and rotation thresholds to control IK precision and solution speed. ■ The threshold and iteration settings are found on the Motion panel on the IK Controller Parameters Rollout, when the end effector is selected. ■ The threshold and iteration settings for the HD solver are also found on the Inverse Kinematics tab of the Customize > Preferences dialog. Position Threshold Sets how close the end effector has to get to the follow object or cursor position to be considered a valid solution. The value expresses a distance in the current unit system. Small values increase accuracy but take longer to solve. Rotation Threshold Sets how accurately the end effector has to match the orientation of the follow object to be considered a valid solution. The value expresses a rotation angle in degrees. Small values increase accuracy but take longer to solve. Iterations Sets the maximum number of times 3ds Max repeats the IK calculations to find a valid solution. A high Iterations value increases the chance that the software can calculate a valid solution, but takes longer to complete. The following rules apply: ■ Calculations stop as soon as a valid solution is found, even if the maximum number of iterations have not been performed. Inverse Kinematics (IK) | 3425 ■ The last solution calculated is used if the maximum number of iterations is reached, regardless of whether the solution satisfies the position and rotation thresholds. Setting Applied and Interactive Thresholds You set the threshold and iterations settings as a trade-off between accuracy and speed. You have two groups of settings so you can individually tune the behavior of applied IK and interactive IK. ■ Use interactive IK if you want fast, real-time response. Your interactive IK preferences should be set for speed. ■ Use applied IK if you want the solution to match the follow objects very closely. Your Applied IK preferences should be set for accuracy. The default applied IK and interactive IK settings are shown in the following table: Thresholds Applied IK Interactive IK Position 0.100 1.000 Rotation 0.100 1.000 Iterations 50 10 See also: ■ HD Solver Motion Panel Rollouts on page 3426 HD Solver Motion Panel Rollouts Select end effector of an HD chain > Motion panel > Parameters button > IK Controller Parameters rollout To adjust the parameters for all bones or hierarchically linked objects in the chain, you select a single bone or object, and then adjust the parameters in Motion panel > Parameters to affect all the bones or objects in the hierarchy. 3426 | Chapter 15 Animation Procedures See History-Dependent (HD) IK Solver on page 3422. Interface Thresholds group These settings are the same as those in Customize menu > Preferences > Inverse Kinematics. They set the threshold for the changes in position and rotation between the end effector and the last link of the chain. Position Specifies, in units, the "slop" factor between the end effector and its associate object. This is the allowable distance between the end effector and its object, given the current IK solution. Rotation Specifies the allowable number of degrees of rotational error between a rotational end effector and its associate object. Solution group Iterations Specifies the maximum number of iterations allowed to solve the IK solution. The actual number of iterations used depends on the difficulty of the problem. This value simply puts a cap on it. Start Time and End Time Species the range of frames in which IK is solved. If the Start Time is set to 20 and the End Time is set to 80 in a 100-frame animation, and then the end effector is animated, the animation of the chain will only be correctly solved within the Start and End range. Inverse Kinematics (IK) | 3427 Initial State group When you first create a hierarchical chain, the initial position of the bones or objects is the initial state. The options here let you display, alter, or lock the initial state. When both of the options here are turned off (the default), transforming the end effector is different from transforming the other joints in the chain. When you select and transform a joint assigned an end effector, you are actually transforming the end effector, and an IK solution transforms the joints. This alters the position of the bones or objects in the viewport, but will not alter their initial state. On the other hand, when you select and transform any of the joints without end effectors, you alter their initial state. Show Initial State Shuts off the real-time IK solution. All objects in the chain are moved to their initial positions and orientations prior to any changes caused by IK calculations. The positions of the end effectors, however, are not affected. Turn on Show Initial State to view the initial state, or adjust the initial state of bones or objects using end effectors. This is useful when you set joint limits using the IK controls in the Hierarchy panel: the joints jump to their limits while you set them. When Show Initial State is off (the default), you can select and alter the initial state of bones or objects without end effectors, but when you select a bone or object with an end effector, the end effector is transformed, leading to an IK solution; the initial state of the associate object is not changed. By selecting this, you can transform the initial state of the associated object. Lock Initial State Locks all bones or objects in the chain from direct transformations. You can, however, transform the end effector of any joint to generate the IK solution without altering the initial state. Activate this when you want to avoid accidentally selecting and transforming joints that are not assigned end effectors. When Show Initial State is selected, Lock Initial State is ignored. 3428 | Chapter 15 Animation Update group The options in this group determine how the IK calculation is solved during the transformation of the end effector. Precise Solves the entire chain precisely for all frames from the Start time to the current time. When you release the mouse button, the chain will not move. Since all frames must be solved from Start to current time, the solution takes longer if the current frame is 1000 rather than 100. Fast Solves the chain only for the current frame while the mouse is moved. Releasing the mouse button solves for all frames. Although this is faster than Precise, sometimes the current-frame solution differs slightly from the all-frame solution. As a result, when you release the mouse, the objects in the chain might shift a bit. Manual With this option, the IK problem is not solved until you click Update. Update With Manual on, click to solve the IK solution. Display Joints group The options here affect the display of the joint axes and limits. When a rotational or sliding joint is active (Active is selected in the Sliding or Rotational Joints rollouts in Hierarchy > IK panels), an orange "rod" appears representing the active axis. When the joint is also limited, a pair of small orange squares appears, representing the From and To limits of the joint. If it's a sliding joint, the squares are positioned on the axis rod. If it's a rotational joint, the squares are at the ends of an orange arc. Always Displays the axis rod and joint limits for all joints in the chain at all times. Inverse Kinematics (IK) | 3429 When Selected Displays the axis rod and joint limits only on selected joints. TIP The joint icons can be difficult to see when the bones are linked to mesh objects. When animating a bone-based hierarchy, you can hide all of the objects and display and animate only the bones, which makes the joint icons more visible. This is easily done by hiding geometry by category in the Display branch. End Effectors group With the options in this group, you can add or delete Position or Rotation end effectors for any joint. Options affect only the currently selected joint. An end effector is the object that the IK chain follows to come to a solution. There are two types of end effectors: Position and Rotation. Both are displayed as three intersecting blue lines at the joint. When you select a joint that carries either or both end effectors and perform a transformation matching the type of end effector, only the end effector itself is transformed. The objects in the chain then use IK to follow and create the IK solution. When you transform a joint that does not have an end effector (or perform a type of transform that doesn't match the assigned end effector), you transform the joint itself and alter its initial state. Position Creates or deletes Position end effectors. If the node already has an end effector, only the Delete button is available. Create Creates a Position end effector for the selected node. Delete Removes the Position end effector from the selected node. Rotation Works like the Position buttons, except Rotation end effectors are created rather than Position end effectors. When you want to solve for IK rotation, add a Rotation end effector, and then use the Rotate tool to rotate the end effector. 3430 | Chapter 15 Animation End Effector Parent Links an end effector to another object in the scene. Since end effectors are not, in themselves, objects, you won't see this linkage in Track View, but the linked end effector will inherit the transformations of its parent. NOTE Apart from the root object, you can't link an end effector to an object in the hierarchy because it would create an endless loop. The position of all objects in the hierarchy depends on the position of the end effector, so the end effector can't depend on the position of an object in the hierarchy. End Effector (Display) Displays the name of the selected parent object. Link Makes a selected object a parent of the currently selected link. Unlink Unlinks the currently selected end effector from its parent. Remove IK group Delete Joint Deletes any selection of bones or hierarchical objects. Doesn't delete the IK; only the selected hierarchical members. NOTE Using the DELETE key will delete the entire hierarchy. Remove IK Chain Deletes the IK Solver from the hierarchy. Doesn't delete the objects or bones, only the IK controls. Position Displays the Key Info parameter rollouts specific for a Position end effector. This option is not active if no Position end effector is assigned. (The Key Info parameters are the same as those used for any Position controller.) Rotation Displays the parameters for an assigned Rotation end effector. This option is not active if no Rotation effector is assigned. (The Key Info parameters are the same as those used for any Rotation controller.) Inverse Kinematics (IK) | 3431 HD Joint Settings You control a joint's resistance to motion, and its tendency to return to its original position, by setting Ease, Damping, and Spring Back options. Moving telescopes with and without damping Easing a Joint at Its Limits An organic joint, or a worn mechanical joint, moves freely in the middle of its range of motion but moves less freely at the extremes of its range. Use Ease to cause a joint to resist motion as it approaches its From and To limits. For example, your forearm might move freely in the middle of its range of motion, but it resists movement when you try to squeeze it against your upper arm or extend it all the way out. Ease simulates this effect. Damping Joint Action As a joint corrodes, dries out, or is put under a heavy load, it resists motion along its active axes. Damping simulates the natural effect of joint friction or inertia. Enter a value greater than zero in the Damping field to apply resistance over a joint's full range of motion. As damping increases a joint resists motion and other joints are required to move more. A damping value of 1.0 means there is extreme resistance and a joint will not move on that axis. 3432 | Chapter 15 Animation For example, a telescope with no damping at all allows each cylinder to move to its maximum limit before the next cylinder moves. If the cylinders have damping values assigned, then each cylinder causes its parent to begin moving before it reaches full extension. Setting a Joint to Spring Back When a joint resists motion, it also has a tendency to return toward its at-rest position. You simulate this by setting Spring Back tension in the joints. As the joint moves further from its rest position, an increasingly larger force pulls the joint back, like a spring. When you set Spring Tension higher, the spring pulls harder as the joint moves farther away from its rest position. Very high settings can turn the joint into a limit, because you can reach the point where the spring is too strong to allow the joint to move any farther. See also: ■ Setting Joint Precedence (HD Solver) on page 3433 ■ Using Default Joint Precedence (HD Solver) on page 3436 ■ Choosing Child-to-Parent Precedence (HD Solver) on page 3436 ■ Choosing Parent-to-Child Precedence (HD Solver) on page 3438 ■ Setting Precedence Manually (HD Solver) on page 3440 ■ Terminating Chains (HD Solver) on page 3442 Setting Joint Precedence (HD Solver) You set Joint Precedence to control the order in which joint calculations are applied to the kinematic chain. When an IK solution is calculated, the result is dependent on the order of calculation for each joint. Inverse Kinematics (IK) | 3433 The hoof (a child) has precedence over the leg (its parent). The hoof (a child) has precedence over the leg (its parent). 3434 | Chapter 15 Animation For any given position of an end effector, there are many possible IK solutions. The three joint precedence controls in the Object Parameters rollout are: Precedence Sets joint precedence manually. Child->Parent Automatically sets joint precedence to decrease in value from child to parent. Parent->Child Automatically sets joint precedence to decrease in value from parent to child. Determining Order of Calculations You control the HD IK solution by setting joint precedence to determine which joints contribute the most to the HD IK solution and which joints contribute the least. ■ Joints with high precedence values are calculated first, and contribute more motion to the HD IK solution. ■ Joints with low precedence values are calculated last and contribute the least motion to the HD IK solution. ■ Joints with equal precedence values are calculated by order in the hierarchy. Joints closer to the end effector are calculated first and joints closer to the root are calculated last. Of all of the joint parameters, Joint Precedence is the most subtle. See also: ■ Using Default Joint Precedence (HD Solver) on page 3436 ■ Choosing Child-to-Parent Precedence (HD Solver) on page 3436 ■ Choosing Parent-to-Child Precedence (HD Solver) on page 3438 ■ Setting Precedence Manually (HD Solver) on page 3440 Inverse Kinematics (IK) | 3435 Using Default Joint Precedence (HD Solver) The default joint precedence is suitable for many HD IK solutions. It assumes that joints closest to where a force is applied (the end effector) will move more than joints farther from the force. The default joint precedence is a value of 0 for every joint: all joints have the same precedence value. This default starts calculations with the end effector and progresses up the IK chain until the base object is reached. Using methods described in the following topics you can change the default precedence values. You can also set your kinematic chain back to its default precedence. To reset the default joint precedence: 1 Select all objects in the kinematic chain. 2 On the Hierarchy panel, expand the Object Parameters rollout. 3 Set Precedence to 0. NOTE Default joint precedence occurs whenever all joints in the kinematic chain have the same precedence value. Assigning a value of 100 to all objects in the kinematic chain is exactly the same as assigning a value of 0. Choosing Child-to-Parent Precedence (HD Solver) Child–>Parent precedence causes joints closest to where a force is applied (the end effector) to move more than joints that are farther away from the force. Like the default precedence, Child->Parent precedence produces a natural result that is suitable for many IK solutions. The difference is that Child−>Parent precedence assigns unique values to each object in the kinematic chain (default precedence uses the value of 0 for every object). Child−>Parent precedence is more flexible if you want to go back and manually change precedence values. 3436 | Chapter 15 Animation The first figure shows values for child-to-parent precedence. The first figure shows values for child-to-parent precedence. Assigning Child->Parent Precedence Clicking Child−>Parent sets joint precedence based on a child having a higher precedence than its parent. The values are calculated by setting the root of Inverse Kinematics (IK) | 3437 the entire hierarchy to a precedence value of 0 and each child to a value equal to 10 times its depth from the root. You almost always assign Child->Parent precedence to an entire kinematic chain. The chain for the structure in the figure uses the body as the root object and the duck as the end effector. Each object receives a value equal to its depth from the root of the hierarchy times 10. Note that precedence value calculation is based on the root of the hierarchy whether or not the root is selected as part of the kinematic chain. You might want to assign Child->Parent precedence to just a single object in the kinematic chain. For example, if you have been manually changing precedence values, you might want to set an object to its original Child->Parent value. The value assigned to the object is equal to its depth from the root of the hierarchy times 10. Choosing Parent-to-Child Precedence (HD Solver) Parent->Child precedence causes joints closest to where a force is applied (the end effector) to move less than joints farther away from the force. This is the opposite of Child->Parent precedence. Parent->Child precedence assigns the highest precedence to the base object and the lowest precedence to the end effector. You might use this type of precedence for a number of special cases. For example: ■ When joints near the end effector are less flexible than joints near the base. You use Parent->Child precedence in conjunction with limits and damping. For more information about the latter two, see Setting Joint Resistance and Spring Back on page 3432. ■ When animating a kinematic chain where the real-world object is moved by applying force to the base of the chain. Imagine an animal's tail. Using IK you animate the tail by moving the tip of the tail. However, a real animal moves its tail using muscles at the tail's base. The real-world motion is applied from the base to the tip in a Parent->Child order. 3438 | Chapter 15 Animation The figure shows values for parent-to-child precedence. The figure shows values for parent-to-child precedence. Assigning Parent->Child Precedence Clicking Parent->Child sets joint precedence based on a child having a lower precedence than its parent. The values are calculated by setting the root of Inverse Kinematics (IK) | 3439 the entire hierarchy to a precedence of 0 and each child to a value equal to -10 times its depth from the root. You almost always assign Parent->Child precedence to an entire kinematic chain. The chain for the structure in the above figure uses the body as the root object and the duck as the end effector. Using Parent->Child precedence, the feet are assigned a precedence of -50 and the duck is assigned a precedence of -140. You might want to assign Parent->Child precedence to a single object in the kinematic chain. The value assigned to the object is equal to its depth from the root of the hierarchy times -10. Setting Precedence Manually (HD Solver) Some models and animated motions don't fit neatly into a Child->Parent or Parent->Child precedence. In such situations you can manually assign precedence values to any object in the IK chain on a joint-by-joint basis. For example: ■ Animating models with a combination of light, flexible joints and heavy, resisting joints. Imagine a model of heavy iron balls linked together with lengths of chain. Setting the precedence values of the chains higher than the precedence values of the iron balls simulates the balls' inertial resistance to motion. ■ Animating a motion where certain joints must move before other joints. Imagine a golfer's arm where the elbow should remain locked while swinging a golf club. You could accomplish this by setting the precedence of the elbow lower than the precedence of the wrist and shoulder. High precedence values are calculated before low precedence values. Precedence values that are equal are calculated in Child->Parent order. The precedence calculations only consider the relative IK values. This means that an IK chain of three objects with precedence values of 0, 30, and 200 would have the same solution if the precedence were changed to 1, 2, and 3. 3440 | Chapter 15 Animation The figures show precedence values that were assigned manually: the chain for the structure uses the body as the root object and the duck as the end effector. The figures show precedence values that were assigned manually: the chain for the structure uses the body as the root object and the duck as the end effector. Inverse Kinematics (IK) | 3441 Terminating Chains (HD Solver) The kinematic chain is automatically defined using the object you select as the end effector and working up the hierarchical tree to use the root object as the base of the kinematic chain. Sometimes you might not want the kinematic chain to go all the way to the root of the hierarchy. This is especially true when you are animating multi-limbed or branching structures, such as an octopus or a tree. Terminator option in the Object Parameters rollout You use the Terminator option in the Object Parameters rollout to stop calculation of the kinematic chain before it reaches the root object of the hierarchy. A terminator object stops calculation at the terminator's child object; the terminator itself is not affected by the IK solution. This gives you very precise control over the behavior of the kinematic chain. For example, look at the bird in the figure. The bird is linked with its body as the root of the hierarchy. If you use inverse kinematics to move the duck, all objects from the duck to the body will be affected by the IK solution. However, if you define a neck bone as a terminator object, then only the objects from the duck to the neck vertebrae are affected. 3442 | Chapter 15 Animation With a terminator in the neck, the body of the bird is not affected. With a terminator in the neck, the body of the bird is not affected. Inverse Kinematics (IK) | 3443 IK Limb Solver The IK Limb solver is specifically meant for animating the limbs of human characters; for example, the hip to the ankle, or the shoulder to the wrist. Each IK Limb solver affects only two bones in a chain, but multiple solvers can be applied to different parts of the same chain. It is an analytical solver that is very fast and accurate in viewports. To use the IK Limb solver, a bones system must have at least three bones in the chain. The goal is placed at the pivot point of the bone that is two bones away from the first selected bone. The IK Limb solver works not only with bone hierarchies, but with any linked hierarchy that has at least three elements, and is set up to model a human limb. The additional requirements are: ■ The first joint is "spherical." That is, it has three degrees of freedom. ■ The second joint is "revolute," a robotics term that means it is based on a pin and has one degree of freedom. The IK Limb solver uses the same controls as the HI Solver, so it allows for mixing periods of forward and inverse kinematics in the same animation period. It does not use the HD Solver methods of damping, precedence, and setting joint limits, instead it has a preferred angle parameter, swivel plane and IK/FK Enabling. The IK Limb solver can be exported directly to a game engine. See also: ■ IK Solver Rollout (HI Solver) on page 3407 ■ IK Solver Properties Rollout (HI Solver) on page 3412 ■ IK Display Options Rollout (HI Solver) on page 3416 ■ Sliding and Rotational Joints (HI Solver) on page 3418 Procedures To apply a IK limb solver: 1 Create a chain that has three bones. 2 Select the root of the chain. 3444 | Chapter 15 Animation 3 From the Animation menu, choose IK Solvers > IK Limb Solver. 4 In the viewport, move the mouse. You will see a dotted line attached to the cursor as you move the mouse. 5 Click the third bone in the chain, or any bone after the third bone. The IK Limb solver displays on the bone chain. The IK Limb solver only affects two bones in the chain, but you need to select the third bone to put it on the other two bones. To animate an IK limb solver chain: 1 Apply the IK Limb solver to a two bone chain, with joint limits as described above. 2 Select the goal. 3 Move or rotate the goal. Interface The Interface for the IK Limb solver is identical to that of the HI Solver. Select the goal at the end of the chain, and open the Motion panel. Here you will see the controls for the IK Limb solver. (The fourth is available from the Hierarchy > IK panel when a bone is selected.) Spline IK Animation menu > IK Solvers > Spline IK Solver Create panel > Systems > Bones > Choose SplineIKSolver from the IK Solver list. The Spline IK solver uses a spline to determine the curvature of a series of bones or other linked objects. Inverse Kinematics (IK) | 3445 You can move and animate the spline vertices to change the curvature of the spline. Usually, a helper is placed at each vertex to assist in animating the spline. The spline curvature is then passed on to the entire linked structure. The bones themselves do not change shape. Normally the number of spline vertices and bones are the same, but you can use fewer vertices for easier posing and animating a long multiple-bone structure with just a few nodes, as opposed to animating each bone individually. Spline IK provides a more flexible animation system than other IK solvers. You can position vertices/helpers anywhere in 3D space, so the linked structure can assume any shape you want to give it. A helper object is automatically placed at each vertex when Spline IK is assigned. Each vertex is linked to its corresponding helper, so a vertex can be moved by moving the helper. Unlike the HI Solver, the Spline IK system does not use a goal. The positions of helpers/vertices in 3D space is the only factor that determines the shape of the linked structure. 3446 | Chapter 15 Animation NOTE Moving the Spline IK helpers to curl the spline can sometimes cause bones to rotate or flip unexpectedly. If this happens, you can try choosing a different upnode object with the IK chain's Pick Upnode option in the IK Solver Properties rollout (see Spline IK Solver Rollouts on page 3455), or use a different IK method for your hierarchy. Applying a Spline IK Solver The Spline IK solver can be applied at the time bones are created, or after the bone structure has already been made. To apply a spline IK solver when bones are created: 1 Choose Create panel > Systems > Bones. 2 On the IK Chain Assignment rollout, set IK Solver to SplineIKSolver, and turn on both check boxes: Assign To Children and Assign To Root. By default, Assign To Root is on automatically when you turn on Assign To Children. 3 Draw the bone structure as usual. When you right-click to end the bone creation process, the Spline IK Solver dialog on page 3452 appears. Set parameters and click OK. Inverse Kinematics (IK) | 3447 3448 | Chapter 15 Animation This procedure automatically draws the spline based on your dialog selections and sets up the Spline IK system to work with the spline. The software automatically assigns a Path constraint to the root bone to constrain it to the helper/vertex at that end of the spline. To apply a Spline IK solver to an existing bone structure: 1 Create a bone structure without an IK chain. 2 Draw a spline or NURBS curve to be used by the bones. The curve can have any length and shape, and does not have to match the length or shape of the bone structure. 3 Select the bone or object where you want to the solver to start. 4 Choose Animation menu > IK Solvers > Spline IK Solver. In the viewport, move the cursor to the bone or object where you want the chain to end and click that bone. Then move the cursor to the spline and click it. Inverse Kinematics (IK) | 3449 The bone structure jumps to the spline and takes its shape, and a helper is created on the spline at each vertex. A Path constraint is automatically assigned to the root bone to constrain it to the helper/vertex at that end of the spline. 3450 | Chapter 15 Animation To specify a spline after the spline IK solver is applied: You can also apply a Spline IK solver to an existing bone structure without selecting a spline, then choose the spline later. 1 Create a bone structure without an IK chain. 2 Select the bone or object where you want to the solver to start. 3 Choose Animation menu > IK Solvers > Spline IK Solver. In the viewport, move the cursor to the bone or object where you want the chain to end and click that bone. Then right-click in the viewport to end the IK solver creation without choosing a spline. 4 Create a spline or NURBS curve to be used with the Spline IK system. It is recommended that you apply the Spline IK Control modifier on page 1741 to it and then click Create Helpers to place helpers at each vertex, making the spline easier to control. 5 Select the IK chain cross hairs and access the Motion panel. On the Spline IK Solver rollout, click Pick Shape and click the spline. Inverse Kinematics (IK) | 3451 With this method, the position constraint is not automatically assigned to the root bone, so it must be assigned manually. 6 Select the root bone. Choose Animation menu > Constraints > Path Constraint, and then click the spline. This moves the bone structure to the spline, if they're apart, and creates a Position List controller for the bone with the Path Constraint as the second (active) constraint. NOTE This also animates the bones along the path. If you don't want this, delete the second animation key. Working with the Spline IK Solver To use the Spline IK Solver, move the helpers to shape the spline. Do not move the spline. The shape of the spline is determined by the positions of the vertices, so moving the spline itself has no effect on the bone structure. If the spline is moved, it will snap back to the helpers the next time a helper is moved. However, it is recommended that you not move the spline at all. Once you have finished setting up the spline IK solver, it can be helpful to freeze the spline to avoid accidentally moving it. Moving helpers changes the shape of the spline. To twist the spline, select the spline IK chain object and go to the Motion panel to change twist angles in the IK Solver Properties rollout. See also: ■ Spline IK Solver Rollouts on page 3455 Spline IK Solver Dialog Create menu > Systems > Bones > Choose SplineIKSolver as IK Solver and turn on Assign To Children. > Create bone structure. The Spline IK Solver dialog appears after bone creation if the Spline IK Solver has been selected as the IK solver and Assign To Children is turned on. 3452 | Chapter 15 Animation This dialog sets parameters for the spline that will be created to control the bone structure. The spline, in turn, is shaped by the positions of helper objects at each knot (control point). See also: ■ Spline IK on page 3445 Inverse Kinematics (IK) | 3453 Interface Spline Options group IK Name Sets the name of the IK chain object. This object appears as a set of blue cross hairs at the end of the chain after you click OK. Auto Create Spline Automatically creates the spline used for the Spline IK solver based on the parameters on this dialog. When off, no spline is created and a spline must be manually created and assigned to the spline IK solver in order to use the solver. See Animating with the Spline IK Solver on page 3445 for a description of this procedure. Default=on. Curve Type Choose the type of curve to serve as the Spline IK control: ■ Bezier Creates a Bezier spline, similar to a spline created with the Create > Shapes > Line tool. This is the default curve type. ■ NURBS Point Creates a NURBS Point Curve, where all knots (control nodes) lie on the curve. ■ NURBS CV Creates a NURBS CV Curve, where knots (control nodes) do not necessarily lie on the curve. 3454 | Chapter 15 Animation Number of Spline Knots Vertices on the spline, or control points and CVs on the NURBS curve. You alter the spline or curve by moving and animating the knots. The number of knots sets the degree of refinement on the curve as well as the number of points that can be selected and moved to change the shape of the curve. The default value is the number of bones in the Spline IK chain. Because one purpose of a Spline IK solver is to reduce the number of objects that require animation, you might want to use a lower value, such as half the number of bones. Helper Options group Create Helpers When on, the software places one or more Point helper on page 2628 objects at each knot in the spline or curve, making it easier to move and animate the knots. You can enable more than one type of helper. When you move one helper, the others at the same location also move, as does the curve knot. Center Marker Places a small X-shaped Point helper at each knot. Axis Tripod Places a small tripod-axis-shaped Point helper at each knot. Cross Places a small cross-shaped Point helper at each knot. Box Places a small box-shaped Point helper at each knot. Size Sets the size for helpers. Constant Screen Size Keeps the sizes of helpers constant regardless of the zoom extent of the viewports. Draw On Top Displays the helpers on top of all other objects in the scene for improved visibility in busy scenes. TIP To change the display of helpers after creation, select each helper and change selections on the Modify panel. Spline IK Solver Rollouts Select a Spline IK Solver control (the blue cross at the end of the chain) > Motion panel > Parameters button Inverse Kinematics (IK) | 3455 When a Spline IK chain is selected, the options on the Motion panel can be used to change the starting and ending bones, and twist angles for the entire linked structure. To create a Spline IK Solver, see Animating with the Spline IK Solver on page 3445. See also: ■ Animating with the Spline IK Solver on page 3445 Interface Spline IK Solver rollout The options on this rollout allow you to pick a new spline for the spline IK chain, or pick new start and end joints for the chain. Spline IK Solver group Spline IK Solver Displays the name of the solver. The only available solver is Spline IK Solver. Enabled Turns control of the solver on and off. 3456 | Chapter 15 Animation Bone Joints group Pick Start Joint Picks the start joint for the Spline IK Solver and displays the object name. Pick End Joint Picks the end joint for the Spline IK Solver and displays the object name. IK Solver Properties rollout The options on this rollout set the start and end twist angles for the spline IK chain. The twist manipulators on each end of the chain show the degree of twist. Twist Start Angle Sets the twist angle for the entire chain, rotating all bones in the chain. Twist End Angle Sets the twist angle for the end joint relative to the start joint, creating a gradual twist over the entire chain. Pick Upnode When Spline IK is assigned to a bone chain, the IK system attempts to determine the “up” direction for bones, which is the direction in which the bones' back fins should point. The Spline IK Solver might interpret this direction incorrectly, causing bones to flip to one side or the other. Picking an upnode causes the “up” direction to point along the picked object's local Z axis. By default, the upnode is set to the first helper/knot on the spline, which usually causes the “up” direction to be interpreted correctly. Use Use the picked node to specify the “up” direction for the root bone. IK Display Options rollout The options on this rollout set the display of twist manipulators and the IK chain object. Inverse Kinematics (IK) | 3457 TIP To see and adjust the twist manipulators, turn on Select And Manipulate on page 2613. Twist Start group Enabled Turns on the display of the start twist manipulator. Default=on. Size Sets the size of the start twist manipulator. Default=1.0. Length Sets the length of the start twist manipulator. Default=75.0 Twist End group Enabled Turns on the display of the end twist manipulator. Default=on. Size Sets the size of the end twist manipulator. Default=1.0. Length Sets the length of the end twist manipulator. Default=75.0. Goal Display group Enabled Turns on the display of the IK goal. Default=on. 3458 | Chapter 15 Animation Size Sets the size of the IK goal. Default=30.0. IK Solver Display group Enabled Turns on the display of the IK chain object. Default=off. Interactive and Applied IK Animating with Interactive IK Select the end of a hierarchy > Hierarchy panel > IK > Interactive IK. With Interactive IK and the Auto Key button turned on, you position your model on keyframes, and the IK solution is interpolated between those keyframes. Because the IK solution accounts for multiple objects and the joints between objects, the interpolated animation of an IK object is usually different from the animation of objects without IK. TIP Interactive IK is a feature carried over from the earliest version of the software. It is recommended that you explore the IK Solver methods first, and only use Interactive IK if you find the IK Solvers will not satisfy your needs. Example of Interactive IK The following example demonstrates how an interactive IK animation works and how it might differ from what you expect. The figure shows an IK structure with its end effector resting on top of a box. The box moves in a straight line over 100 frames. Turn the Auto Key button on and then in the Hierarchy panel > IK tab, turn on Interactive IK. Move the end effector of the IK structure to rest on top of the box at frame 100. The interpolated animation of the end effector follows a natural looking curved path. You might have expected the IK bone structure to follow the same path as the box. However, the IK solution is only calculated at the keyframes. The positions and rotations of all the objects in the kinematic chain are interpolated between the keyframes to produce the curved result. To make the end effector closely follow the path of the box, you would have to add more keyframes. You can also use binding and standard applied IK. Inverse Kinematics (IK) | 3459 For information about making the end effector precisely follow the motion of the box, see Animating with Applied IK on page 3462. IK structure 3460 | Chapter 15 Animation Results of animating the box and IK structure Behavior of Objects in IK Mode As you move and rotate objects using interactive IK you notice that some objects might not be able to move or rotate about all axes. This is because the objects are constrained by the joint parameters you have set. If the joint parameters specify that motion cannot occur in a certain axis, the end of the chain will not move. Behavior of Root Objects in IK Mode An option on the Inverse Kinematics panel on page 7776 of the Preference Settings dialog enables the special case of moving and rotating root objects when IK mode is on. The name of this control is Always Transform Children Of The World. While you are transforming an end effector using IK mode, the settings for the root object’s joint parameters are used and the root object does not move with respect to the World. If you select the root object, its joint parameters are released and you can transform the root object. Inverse Kinematics (IK) | 3461 If you decide you want root objects to always use their joint parameters, you can turn off the Always Transform Children Of The World option. Single, unlinked objects are hierarchies of one. An unlinked object is its own root and is also a child of the World. Turning Always Transform Children of the World will prevent you from transforming single objects in IK mode. Animating with Applied IK Select the end of a hierarchy > Hierarchy panel > IK > Set object parameters such as Bind to Follow Object > Apply IK. Applied IK requires you bind one or more parts of your IK structure to animated follow objects. Once bound, you can select any object in your kinematic chain and click Apply IK. This calculates the IK solution for each frame of the animation and places transform keys for every object in the IK chain. The Apply IK method of animation works best when you want objects in the kinematic chain to match the motions of other objects exactly. TIP Applied IK is a feature carried over from the earliest version of the software. It is recommended that you explore the IK Solver methods first, and only use Applied IK if you find the IK Solvers won't satisfy your needs. 3462 | Chapter 15 Animation Example of Applied IK IK structure Inverse Kinematics (IK) | 3463 Animating the lamp with applied IK The illustration demonstrates how an applied IK animation works. Just as in the example in Animating with Interactive IK on page 3459, the figure shows an IK lamp structure with its head positioned over a spider. To maintain the offset distance between the lamp head and spider, the actual end effector is an invisible Dummy helper object, placed within the spider and linked to the lamp head as a child. The spider moves in a straight line over 100 frames. To bind the end effector to the spider, click Bind, and then drag a line between the two. Once the end effector is bound to the spider, it will try to match the location of its pivot point with the pivot point of the spider. Select the end effector and click Apply IK. The software matches the end effector with the box and calculates the IK solution for every frame. Playback of the animation shows that the end effector perfectly follows the box. NOTE In the above example, the end effector is an invisible Dummy helper object, which is used to maintain the offset distance between the lamp head and the spider. 3464 | Chapter 15 Animation Clearing Keys from Previous Animation If you have animated any members of the IK chain interactively, or run Apply IK previously, the existing animation keys will affect the new IK solution. Sometimes that is exactly what you want. You can use manual animation to subtly nudge the IK solution toward a particular result. However, it is more likely that you want to remove old keys in order to begin the IK calculations with a clean slate. The Clear Keys option in the Inverse Kinematics rollout controls whether or not old move and rotate animation keys are removed. Constraining the IK Solution to Specific Frames You use the Start and End fields in the Inverse Kinematics rollout to set the range of frames used to calculate the applied IK solution. Using these fields, you can restrict IK solutions to specific frames and solve for different solutions in different time segments. You can set the Start and End fields to include frames outside of the active time segment. You can also constrain an IK solution to frames where a key exists for an end effector. This is useful if you want to animate a hierarchy using end effectors but do not want keys generated on every frame. Turn on Apply Only To Keys to constrain the IK solution to frames with end effector keys. Watching Progress of the IK Solution Normally, Apply IK calculates all frames before updating the viewports. To watch the progress of Apply IK frame by frame, turn on Update Viewports on the Inverse Kinematics rollout. Updating the viewports greatly slows down the Apply IK process but it can help you troubleshoot complex animations. Inverse Kinematics (IK) | 3465 Joint Controls Setting Joint Parameters You set whether a joint behaves as a hinge, a drawer slide, or another type of joint by setting joint parameters on page 3418 for each object in the kinematic chain. Joints control the rotation and position of an object with respect to its parent. Any object has a maximum of two joint-type rollouts: One rollout contains settings to control the object's position, and the other controls the object's rotation. There can be many different types of positional and rotational joints. Which joint parameters are available is determined by the type of IK solver assigned to an object. HI Solvers, for instance, are controlled with a preferred angle setting found in the Rotational Joint parameters. HD Solvers have additional parameters for spring back, precedence, and damping, not found in the HI Solver. Any hierarchy of object or bone systems can have its joint limits defined. Select all the objects, and turn on their bone or link display. Select the bone or link and open the Hierarchy panel > IK tab. Scroll down to the Sliding and Rotational Joints. There, you can activate axes and set their individual limits. NOTE Different IK solvers use different joint limits. When using a bone system, add the IK solvers first, then set the joint limits second. Common Joint Types The most common joint types are Rotational and Sliding joints. Other common joint types are Path and Surface joints. Each joint type displays its own set of joint parameters. Rotational joints Control rotation of objects using many of the standard rotation controllers. The parameters for rotational joints set an object's ability to rotate about a given axis. For many IK structures, consider using an Euler XYZ controller on page 3151. Quaternion-based controllers tend to freeze if an object is moved beyond rotational joint limits before turning on IK. Sliding joints Control the position of objects using many of the standard position controllers. The parameters for sliding joints control whether an object can move along a given axis. 3466 | Chapter 15 Animation Surface joints Control the position of objects using Surface constraint on page 3293. The parameters control how the object travels along its assigned surface. Path joints Control the positional motion of objects using Path constraint on page 3297. The parameters for path joints control how far an object can travel along its assigned path. Using Joint Parameters The way the children behave toward one another is governed by the inheritance of the transforms down the chain. Setting joint limits on individual child objects can influence this inheritance. If three children in a row all have their rotational axes made inactive, they will not be able to rotate, and so a piece of the chain will appear stiff. Or if only one axis is made active as a sliding joint, the component can separate in space from the chain. When you are using an object with a path constraint in an IK chain you might want the path to appear as if it is part of the IK chain. You achieve this effect by linking the object using the path constraint and the path to the same parent. The path object should have no children, and other objects in the IK chain should be linked to the object using the path constraint. Inverse Kinematics (IK) | 3467 1. Base 2. Post 3. Cap 4. Ring 5. Holder 6. Handle 3468 | Chapter 15 Animation In the figure, the bead uses a path constraint to hold it to the ring. The IK chain from parent to child is Post->Cap->Bead->Handle. The ring is a child of the Cap but is not part of the IK chain. Copying and Pasting Joint Parameters You can copy and paste at the bottom of the Object Parameters rollout in the Hierarchy panel to copy and paste a complete set of joint parameters from one object to another. There are separate copy and paste functions for sliding joints and rotational joints. Each joint type saves copied parameters in separate clipboards. Inverse Kinematics (IK) | 3469 TIP Choose one of the Mirror Paste options if you want to mirror the joint parameter settings as you paste them. This is very useful when pasting from one side of an object to another, such as left arm joints to a right arm. You can also copy joint settings from a non-IK controller to an IK controller, but you can't copy from an IK controller to a non-IK controller. Activating Joint Axes You set whether an object can move or rotate about a given axis by using the Active check box in the joint rollouts. Joints have a maximum of six possible axes: three for rotation and three for position. You constrain the motion of a joint by setting which axes are active. ■ A joint with all axes active can move and rotate freely, independent of its parent. ■ A joint with all axes inactive is locked to its parent and cannot move independently. ■ The setting of IK joint axes overrides Inherit and Lock settings on the Link Info rollout. Understanding Joint Axis Orientation IK joint axes for an object are defined by the Local axes of the object’s parent. That means if you activate the X axis of an object’s rotational joint parameters, the object rotates about its parent’s X axis, not its own X axis. You might have a problem when you set joint parameters for an object whose local coordinate system is oriented 90 degrees from its parent’s coordinate system. In such a case, the rotation angle about one axis becomes indeterminate. The result is that one axis will often cause rotation about one of the other two axes. The following techniques will make setting joint parameters easier and more successful: ■ Assemble IK hierarchies with objects aligned along the World axes. ■ Consider using the Adjust Pivot on page 3476 functions to align your object pivots with either the World axes or the root object of the hierarchy. 3470 | Chapter 15 Animation ■ Set the transform managers to Parent coordinate system and Use Pivot Point Center, while setting joint parameters. This helps you see the orientation of the joint axes by displaying the parent axis icon at the selected object’s pivot point. ■ When activating joint axes, drag the From spinner up and down. This causes the object to move or rotate about the active axis and is a quick check that you chose the right axis. Activating Rotational Joints 1. Rotational links When you turn on Active for one of the X, Y, Z axes of a rotational joint, the object can rotate about that axis of its parent’s coordinate system. Joints that rotate about multiple axes are very common. A ball joint, like your shoulder, is a rotational joint active about all three axes. A pin joint, like your elbow, is a rotational joint active on a single axis. Inverse Kinematics (IK) | 3471 Activating Sliding Joints 1. Sliding axis When you turn on Active for one of the X, Y, Z axes of a sliding joint the object can move along that axis of its parent’s coordinate system. Most sliding joints are active only along a single axis. A telescope is an example of a sliding joint active on a single axis. You rarely see a sliding joint active along all three axes. If a sliding joint is active along all three axes, it moves independently from its parent. It’s almost as if there is no joint connection at all. TIP Use the HD IK Solver when you need to use sliding joints with IK. 3472 | Chapter 15 Animation Path and Surface Joints Circular path When you turn on Active for Path or Surface joints you are setting whether the object can move along the assigned path or surface. A house key on a ring is an example of an active path joint. See Path Constraint on page 3297. Limiting Joint Action Most joints are limited in their range of motion along an active axis. For example: a hinge might open only to 120 degrees; a piston slides only within the length of its cylinder. To limit the range of motion allowed on an active axis, you turn on Limited and set values for the From and To fields on the joint rollouts. You can also view joint limits in the viewport by pressing and holding the mouse button on the From or To label of a limit field. The object will move or rotate to the limit value until you release the mouse button. Inverse Kinematics (IK) | 3473 Limiting Rotational Joints Limits for a rotational joint define how far the object can rotate about its parent’s axes. The values in the From and To fields represent the rotation angle about the active axis measured from 0 degrees on the parent object. For example, an elbow joint rotates the forearm with respect to the upper arm. In the figure the limits on X axis rotation are from 0 to 135 degrees. The Y, Z axes are inactive because an elbow joint rotates about a single axis. Limiting Sliding Joints Limits for a sliding joint define how far a joint can move along its parent’s axes. The values in the From and To fields represent a distance for movement along the active axis measured from the pivot point of the parent to the pivot point of the selected object. For example, a sliding joint on a piston moves the piston in and out of the cylinder. In the figure, the limits on Z axis movement are from 10 to 90. This prevents the piston from hitting the bottom or moving past the end of the cylinder. Limiting Path and Surface Joints Limits for path and surface joints define how far along the path or surface an object can move. The values in the From and To fields represent a percentage of the total distance measured along the path or surface. For example, a path joint for a house key moves the key along a key ring. Setting the limits on the path joint at 5% to 95% prevents the key from traveling along the ring where the fob is attached. See also: ■ Sliding and Rotational Joints (HI Solver) on page 3418 Hierarchy Panel Commands Once you have set up a hierarchy using the Select and Link command on page 3343 or a system such as Bones on page 901, you can manage it using the Hierarchy panel. This command panel has three tabs: Pivot on page 3475 3474 | Chapter 15 Animation IK on page 3485 Link Info on page 3500 You use the Pivot tab to adjust the pivot points of objects in the hierarchy. You use the IK tab to manage the behavior of inverse kinematics (IK). You use the Link Info tab to apply locks or inheritance to movement within the hierarchy. See also: ■ Hierarchies and Kinematics on page 3330 ■ Inverse Kinematics (IK) on page 3374 ■ IK Terminology on page 3377 ■ Animating with Interactive IK on page 3459 ■ Animating with Applied IK on page 3462 ■ History-Dependent (HD) IK Solver on page 3422 ■ History-Independent (HI) IK Solver on page 3392 ■ IK Limb Solver on page 3444 ■ Spline IK on page 3445 Pivot Make a selection in the viewport. > Hierarchy panel > Pivot button Hierarchy Panel Commands | 3475 Every object has a pivot point that represents its local center and local coordinate system. The pivot point of an object is used for the following: ■ Functions as the center of rotation and scaling when you use the Pivot Point transform center on page 976. ■ Sets the default location of a modifier center. ■ Defines the transform relationship for the object's linked children. ■ Defines the joint location for inverse kinematics (IK) on page 3374. You can adjust the position and orientation of an object's pivot point at any time using the buttons in the Adjust Pivot rollout in the Hierarchy panel. Adjusting an object's pivot has no effect on any children linked to that object. NOTE You cannot animate the functions under the Adjust Pivot rollout. Adjusting an object's pivot on any frame changes it for the entire animation. Use caution when adjusting the pivot of an animated object. Adjusting the pivot on one frame might produce unexpected results in another part of the animation. You should adjust the pivot point to the location you want, before you start to animate, if possible. TIP Use the Link constraint on page 3308 to simulate the effect of an animated pivot. The Pivot panel has these rollouts: Adjust Pivot Rollout on page 3476 Working Pivot Rollout on page 3479 Adjust Transform Rollout on page 3483 Skin Pose Rollout on page 3485 Adjust Pivot Rollout Make a selection in the viewport. > Hierarchy panel > Pivot button > Adjust Pivot rollout You can adjust the position and orientation of an object's pivot point on page 8091 at any time using the buttons in the Adjust Pivot rollout. Adjusting an object's pivot has no effect on any children linked to that object. You cannot animate the functions under the Adjust Pivot rollout. Adjusting an object's pivot on any frame changes it for the entire animation. 3476 | Chapter 15 Animation Pivot point sets hand to the center of the clock face. Procedures To reposition an object's pivot point: 1 Select an object and then turn on Adjust Pivot rollout > Affect Pivot Only. 2 Move or rotate the pivot. You can also use Align on page 1009, Quick Align on page 1015, and Align to View on page 1021 on the toolbar to align the pivot. See Adjust Transform Rollout on page 3483 for related information. Interface Move/Rotate/Scale group Each of the buttons in the Move/Rotate/Scale group box highlights when active. This determines which part of the object is affected by the three buttons in the Alignment area, as well as the Transform and Align commands on the main toolbar. Hierarchy Panel Commands | 3477 Affect Pivot Only Affects only the pivot point of the selected objects. NOTE A Scale transform has no effect on the pivot. Affect Object Only Affects only the selected objects (and not the pivot point). Affect Hierarchy Only Applies only to the Rotation and Scale tools. It applies the rotation or scale to the hierarchy by rotating or scaling the position of the pivot point without rotating or scaling the pivot point itself. NOTE You can use this on hierarchies of 3ds Max objects, but don't use it on Bones systems. To reposition, rotate or change the size of bones in a chain, see Bones on page 901. NOTE It's important to remember that the Align, Normal Align, and Align to View functions are all affected by the state of Affect Pivot Only, Affect Object Only, and Affect Hierarchy Only. Snap mode allows you to snap the pivot to its own object, or to any other object in the scene. Alignment group The effect of these buttons depends on whether you chose Affect Pivot Only or Affect Object Only. They don't apply to Affect Hierarchy Only. If you chose Affect Pivot Only, the buttons work as follows: Center to Object Moves the pivot to the center of its object. 3478 | Chapter 15 Animation Align to Object Rotates the pivot to align with the object's transformation matrix axes. Align to World Rotates the pivot to align with the world coordinate axes. If you chose Affect Object Only, the buttons work as follows: Center to Pivot Moves the center of the object to its pivot location. Align to Pivot Rotates the object to align its transformation matrix axes with the pivot. Align to World Rotates the object to align its transformation matrix axes with the world coordinate axes. Pivot group Reset Pivot Resets the pivot point to the position and orientation it held when the object was first created. This is not affected by the state of the Affect Pivot Only and Affect Object Only buttons. Working Pivot Rollout Make a selection. > Hierarchy panel > Pivot button > Working Pivot rollout As an alternative to the object’s own pivot, you can use the working pivot for applying transforms to any object in the scene. This allows you, for example, to rotate an object about an arbitrary, persistent point in the scene without interfering with the object’s own pivot. You position and orient the working pivot using standard transform tools as well as some special options available on this rollout, and can activate it at any time. You can use it for editing geometry at the object and sub-object levels. Keep in mind, however, that the working pivot cannot be used as a transform center when creating animation (see Animation and the Transform Center on page 954). NOTE The scene contains only one working pivot, which is independent of other scene elements such as geometry. Hierarchy Panel Commands | 3479 Moving an object along the working pivot Z axis IMPORTANT Most Working Pivot tools are best used in working contexts other than the Hierarchy panel. For example, you can use it in the Modify panel context while editing mesh sub-objects. For this reason, it’s highly recommended that you use Customize User Interface on page 7697 > Main UI group > Working Pivot category actions to create a set of controls that you can use anywhere in the 3ds Max interface. For example, you could create a custom Working Pivot toolbar on page 7700 with buttons that give you access to the Working Pivot commands while editing meshes. Procedure To use Working Pivot: 1 Turn on Edit Working Pivot and use standard transform tools and/or the Place Pivot To group on page 3482 commands to place and orient the working pivot. Turn off Edit Working Pivot when done. 2 You can use the working pivot in either of two ways: ■ Turn on Use Working Pivot from either the Hierarchy panel or your custom UI control on page 3480. 3480 | Chapter 15 Animation By default, this sets the geometric center for rotate and scale transforms to Use Transform Coordinate Center on page 979; that is, the working pivot position. To specify a different transform center, use the Use Center flyout on page 975. ■ From the main toolbar > Reference Coordinate System list on page 967, choose Working. This keeps the current Use Center on page 975 setting. Interface When any of the modular tools on this rollout is active, a message to that effect appears in each viewport below the viewport name. For example, when you activate Use Working Pivot, the viewport legend reads “USE WP,” as shown in the above illustration. Edit Working Pivot When on, makes the working pivot visible in the scene and lets you transform it. When you first enter Edit Working Pivot mode, all transform tools use the Local reference coordinate system on page 967 by default. You can change the coordinate system while working in this mode, and the tool remembers the reference coordinate system for each transform. Changing the transform, for example from Move to Rotate, recalls the last coordinate system for that transform during the current Edit Working Pivot session. Exiting Edit Working Pivot restores the last active transform tool. For example, if you’re rotating an object, and you move the working pivot and then exit Edit Working Pivot mode, the Rotate tool will again be active. Hierarchy Panel Commands | 3481 NOTE While Edit Working Pivot is active, the current selection is locked to the working pivot and cannot be changed without exiting this mode. Use Working Pivot When on, lets you transform the current selection (objects or sub-objects) with respect to the working pivot. The transform gizmo, when visible, moves to the working pivot location. In this mode you typically transform the selection by manipulating the gizmo rather than the selection. This mode overrides the current transform space for all transforms. Exiting this mode restores the individual coordinate system for each transform tool. By default, this sets the geometric center for rotate and scale transforms to Use Transform Coordinate Center on page 979; that is, the working pivot position. To specify a different transform center, use the Use Center flyout on page 975. You can activate Edit Working Pivot while using the working pivot; when you exit Edit Working Pivot, Use Working Pivot mode is restored. Align To View Reorients the working pivot so that its XY plane is parallel to the active view plane and the X and Y axes are parallel to the viewport edges. Available only in Edit Working Pivot and Use Working Pivot modes. Reset Moves the working pivot to the pivot location of the selected object. With multiple selected objects, the working pivot moves to the pivot position of the last-selected object. With a sub-object selection, the working pivot moves to the geometric center of the selection (the averaged position of the selected sub-objects). If the working pivot doesn’t appear onscreen, use Reset to move it to a known location. Place Pivot To group These controls let you position the working pivot by clicking the mouse instead of with transform tools. To use, click the View or Surface button, and then click in a viewport to position the working pivot there. To exit, right-click the active viewport or click the button again. You’re then returned to the previous transform tool and working pivot mode if you were using one. View Places the working pivot in screen space without changing its depth in the screen. Thus the placement is on a grid that is parallel to the screen, intersecting the original position of the pivot. Surface Places the working pivot on a surface you click on, or, if no surface is present where you click, the construction plane. This works like AutoGrid on page 2597, and you can see the gizmo previewing the alignment to the normal 3482 | Chapter 15 Animation of the surface as you move the cursor over it. Clicking places the pivot to the surface and aligns it to the normal (unless Align To View is on; see following). Align To View When on, automatically aligns the working pivot to the current view when you place it with View or Surface. This is useful to prepare for transforms in the screen plane. Adjust Transform Rollout Make a selection. > Hierarchy panel > Pivot button > Adjust Transform rollout You can transform an object and its pivot without affecting its children using the buttons in Adjust Transform rollout. Adjusting an object's transforms has no effect on any children linked to that object. See also: ■ Adjust Pivot Rollout on page 3476 Procedures To scale a parent without scaling the children: 1 Select the parent object in a hierarchy. 2 On the Hierarchy panel click the Pivot button if it's not already on, then on the Adjust Transform rollout, click Don't Affect Children. 3 Scale the parent object. The children will remain unaffected. TIP Never use non-uniform scale at the object level for objects in a hierarchical chain. Always go to the sub-object level when you do a non-uniform scale on hierarchically linked objects. To reinitialize the scale of an object: 1 Select an object. 2 In the Adjust Transform rollout > Reset group, click Scale. The XYZ values are re-initialized to 100%. This operation prevents Non-uniform Scale inheritance if a child object is linked to this object. Hierarchy Panel Commands | 3483 Interface Move/Rotate/Scale group Don't Affect Children Limits transforms to the selected object and its axis, not to its children. This is very useful when working with bones and other hierarchies. If you need to make a particular bone or object longer or shorter, select the object and then turn on Don't Affect Children. You can readjust it and any parent objects in the hierarchy will stretch or shrink to compensate to the new dimension of the selected bone. Reset group Transform Resets the orientation of an objects local axis coordinates to align with the world coordinate system, regardless of the current orientation of the object. This does not affect descendants. When applied to closed groups, it aligns the dummy node of the parent, but keeps the children in the same place. It reorients and resizes the dummy node to correctly bind the children of the group. Scale Resets the scale values in the transformation matrix to reflect the new scale of the object. There is no visual change in the object. You can use the Scale to correct Non Uniform Scale inheritance problems. If Non Uniform Scale is inherited by a child object in a hierarchy, it can result in an undesirable deformation in the child object. To correct for this, use Reset: Scale in the Adjust Transform rollout on an object before linking. You can view the scale values of the transformation matrix of a selected object. On the toolbar, turn on Scale, then right-click any of the three toolbar Transform buttons (Move, Rotate, or Scale). 3484 | Chapter 15 Animation There is also a Reset XForm utility on page 957 to do the same tasks. Skin Pose Rollout Make a selection in the viewport. > Hierarchy panel > Pivot button > Skin Pose rollout These controls function as a copy/paste system for setting up character animation. For more information, see Skin Pose Commands on page 304. Interface Skin Pose Mode Poses the character in its skin pose and allows the skin pose to be refined. Changes to the objects when Skin Pose Mode is on affect only the skin pose, not the animation. When Skin Pose Mode is off, the structure returns to its pose at the current frame. Available only after you’ve used Set As Skin Pose on page 304 on an object. Enabled group Toggle the Position, Rotation, and Scale check boxes to enable and disable recording of the corresponding transforms when Skin Pose Mode is active. IK Make a selection. > Hierarchy panel > IK button The IK rollouts contain controls for interactive IK and the HD IK solver. Hierarchy Panel Commands | 3485 The rollouts on this panel are: Inverse Kinematics Rollout (Interactive, Applied, and HD IK) on page 3497 Object Parameters Rollout (HD Solver) on page 3486 Auto Termination Rollout (Interactive IK) on page 3499 Position XYZ Parameters on page 3219 Key Info (Basic) on page 3127 Key Info (Advanced) on page 3131 Rotational Joints (HD Solver) on page 3495 NOTE The rollouts for the HI IK and IK Limb solvers are not available while IK is chosen in the Hierarchy panel. Most controls for these solvers are found on the Motion panel. HD IK Solver Rollouts Object Parameters Rollout (HD Solver) Make a selection. > Hierarchy panel > IK > Object Parameters rollout The Object Parameters rollout lets you set IK parameters for an entire hierarchical chain. This topic covers the Terminator check box; other parameters on the Object Parameters rollout are covered in the following topics: 3486 | Chapter 15 Animation Position/Orientation/Bind to Follow Object (HD Solver) on page 3487 Precedence (HD Solver) on page 3491 Copying, Pasting, and Mirroring Joint Parameters (HD Solver) on page 3493 Sliding and Rotational Joints Rollouts (HD Solver) on page 3495 Procedures To create a terminator in any hierarchy or HD IK chain: 1 Select an object in any hierarchy or HD IK chain that you want to be the terminator. 2 In the Object Parameters rollout, turn on Terminator. The terminated objects will not move when you use Interactive, Applied, or HD IK animation. Interface Terminator Sets the base of an IK chain by defining one or more selected objects as terminators. Turn on Terminator to stop calculation of the kinematic chain before it reaches the root object of the hierarchy. A terminator object stops calculation at the terminator's child object; the terminator itself is not affected by the IK solution. This gives you very precise control over the behavior of the kinematic chain. Position/Orientation/Bind to Follow Object (HD Solver) Make a selection with an HD Solver applied. > Hierarchy panel > IK > Object Parameters rollout > Position/Orientation/Bind to Follow Object groups Use the controls in these group boxes to bind objects in a HD IK chain to the world or to follow objects. Use the various options to modify the behavior of the bindings. Use weighted and axis-specific binding controls to create different weights for each binding, and to specify which axes the bound follow object influences. Hierarchy Panel Commands | 3487 Use the R (Relative) buttons to establish a relative offset with Bind Position and Bind Orientation. Binding an Object to the World Binds an object to the world if you want the object to hold its position and orientation as long as possible during IK operations. Binding an Object to a Follow Object Binds a selected object in your IK chain to any other object that is not a descendant of the selected object. This other object is called the follow object. Procedures To bind an object to the world: 1 Select the object to be bound. 2 Click IK in the Hierarchy panel and expand the Object Parameters rollout. 3 Select one or both of the Bind boxes. ■ Turn on Bind Position to cause the object to attempt to maintain its current location. ■ Turn on Bind Orientation to cause the object to attempt to maintain its current orientation. To bind an object to a follow object: 1 Turn on Bind and select the object in a kinematic chain to be bound. Moving your mouse over an acceptable target will change the cursor to a push-pin icon. 2 Drag to the follow object and release. 3 Turn on Bind Orientation if you want the bound object to match the rotation of the follow object. Bind Position is automatically selected. Turn off an axis (Axis: XYZ). The specified axis is no longer influenced by the follow object or the New IK Position end effector. Use Weight to set the relative influence of multiple follow objects or end effectors, and thus their priority in solving the IK solution. The higher the relative Weight value, the higher the priority. 3488 | Chapter 15 Animation NOTE As you drag, a dotted line is drawn from the pivot point of the selected object to the cursor. When the cursor is over a valid follow object, it changes to a push-pin cursor. Release to set the follow object. The name of the follow object will appear in the text area. To unbind an object: ■ Select the object to unbind, and then click Unbind. In the text area, the name of the follow object is replaced with the word "None." Interface Position group Bind Position Binds the selected object in the IK chain to the world (attempts to maintain its location), or to a follow object, if one has been assigned. If a follow object has been assigned, then the translation of the follow object affects the IK solution. NOTE This check box has no effect on the HD IK Solver Position end effectors, which are always bound to their assigned joints. Orientation group Bind Orientation Binds the selected object in the hierarchy to the world (attempts to maintain its orientation), or to a follow object, if one has been Hierarchy Panel Commands | 3489 assigned. If a follow object has been assigned, then the rotation of the follow object affects the IK solution. NOTE This check box has no effect on the HD IK Solver Rotation end effectors, which are always bound to their assigned joints. R Establishes a relative position offset or rotation offset between follow object and end effector. This button has no effect on the HD IK Solver Position end effectors. They are created on top of the joint to which they're assigned, and are automatically absolute. If you move the joint away from the end effector, and want to reset the end effector to an absolute position, you can delete and then recreate the end effector. Axis X/Y/Z If one of the axes is turned off, the specified axis is no longer influenced by the follow object or the HD IK Solver Position end effector. For example, if you turn off the X axis in the Position group, movement of the follow object (or end effector) along the X axis has no effect on the IK solution, but movement along the Y or Z axis has. NOTE These do not constrain the movement of the follow object or end effector. Weight Sets the influence of the follow object (or end effector) on its assigned object, and on the rest of the chain. A setting of 0 turns off the binding. Using this value you can set the relative influence of multiple follow objects or end effectors and their priority in solving the IK solution. The higher the relative Weight value, the higher the priority. The Weight settings are relative; there's no point in using them if there's only one follow object or end effector in your IK hierarchy. However, if you have a single HD IK chain with both Position and Rotation end effectors on a single joint, you can give them different weights to give priority to either the position or rotation solution. You can adjust the Weight for multiple joints. Select two or more objects in the hierarchy, and the Weight value represents the commonality of the selection set. NOTE Differences in the Weight values only have an effect when there is no solution that satisfies two or more opposing end effectors in the chain. In this case, the end effector with the greatest weight "wins." 3490 | Chapter 15 Animation Bind To Follow Object group Controls to bind and unbind an object in an inverse kinematic chain to a follow object. (Label) Displays the name of the selected follow object. Displays the word "None" if no follow object is set. Bind Binds an object in an inverse kinematic chain to a follow object. Unbind Unbinds the selected object in a HD IK chain from its follow object. Precedence (HD Solver) Make a selection with an HD IK Solver applied. > Hierarchy panel > IK > Object Parameters rollout > Precedence You can use the three joint precedence controls to alter how the IK Solution is calculated. The default joint precedence is 0. This is suitable for many IK solutions. It assumes that joints closest to where a force is applied (the end effector) will move more than joints farther from the force. Child->Parent values are calculated by assuming the root of the entire hierarchy has a precedence value of 0 and each child has a value equal to 10 times its depth from the root. In a four-object hierarchy starting with the root, the values would be 0, 10, 20, and 30. Parent->Child values are calculated by assuming the root of the entire hierarchy has a precedence value of 0 and each child has a value equal to 10 times its depth from the root. In a four-object hierarchy starting with the root, the values would be 0, -10, -20, and -30. ■ Default joint precedence occurs whenever all joints in the kinematic chain have the same precedence value. Assigning a value of 100 to all objects in the kinematic chain is exactly the same as assigning a value of 0. ■ An IK chain of three objects with precedence values of 0, 30, and 200 would have the same solution if the precedence were changed to be 1, 2, and 3. Hierarchy Panel Commands | 3491 Procedures To assign a precedence value to an object manually: 1 Select an object in an HD IK Chain. 2 Open the Object Parameters rollout in the Hierarchy panel. 3 Enter a value in the Precedence field. To assign Child->Parent precedence to all objects in a kinematic chain: 1 Select all objects in an HD IK chain. 2 Open the Object Parameters rollout in the Hierarchy panel. 3 Click Child>Parent. To assign Parent->Child precedence to all objects in a kinematic chain: 1 Select all objects in the kinematic chain. 2 Open the Object Parameters rollout in the Hierarchy panel. 3 Click Parent->Child. To reset the default joint precedence: 1 Select all objects in the kinematic chain. 2 Open the Object Parameters rollout in the Hierarchy panel. 3 Set the value in the Precedence field to 0. Interface Three controls set precedence: Precedence Manually assigns precedence values to any object in the IK chain. High precedence values are calculated before low precedence values. Precedence values that are equal are calculated in Child>Parent order. 3492 | Chapter 15 Animation Child->Parent Automatically sets joint precedence to decrease in value from child to parent. Causes joints closest to where a force is applied (the end effector) to move more than joints farther away from the force. You almost always assign Child>Parent precedence to an entire kinematic chain. Child>Parent behaves like the default precedence settings but is more flexible if you want to go back and manually change the settings. Parent->Child Automatically sets joint precedence to decrease in value from parent to child. Causes joints closest to where a force is applied (the end effector) to move less than joints farther away from the force. You almost always assign Child>Parent precedence to an entire kinematic chain. Copying, Pasting, and Mirroring Joint Parameters (HD Solver) Make a selection. > Hierarchy panel > IK > Object Parameters rollout > Copying, Pasting, and Mirroring joint parameters Use the Copy and Paste buttons in the Object Parameters rollout to copy and paste the joint settings between IK controllers. You can also copy joint settings from a non-IK controller to an IK controller, but you can't copy from an IK controller to a non-IK controller. With an HD IK solver hierarchy, you can paste to a multiple selection of joints. Use Mirror Paste to mirror the IK joint settings about the X, Y, or Z axis during a Paste operation. It consists of four buttons: one each for the X, Y, and Z axes, and a None option that prevents mirroring altogether. You can also mirror the IK joints using the Mirror tool on the main toolbar. See also: ■ Sliding and Rotational Joints on page 3495 Procedures To copy and paste joint parameters: 1 Select an object in an inverse kinematic chain. 2 Set sliding or rotational joint parameters. Hierarchy Panel Commands | 3493 3 Click Copy in either the Sliding Joints or Rotational Joints group on the Object Parameters rollout. 4 Select a different object in the inverse kinematic chain. 5 Select an axis to mirror in the Mirror Paste group. 6 Click paste in either the Sliding Joints or Rotational Joints group on the Object Parameters rollout. Both Sliding Joints and Rotational Joints maintain separate clipboards. The copied joint parameters are saved in the clipboard until you replace them with new copied parameters. Interface Sliding Joints group Use these buttons to copy sliding joint parameters from one object to another. These buttons are not available for Path joints. Rotational Joints group Use these buttons for copying rotational joint parameters from one object to another. Mirror Paste group Use to mirror the IK joint settings about the X, Y, or Z axis during a Paste operation. 3494 | Chapter 15 Animation Sliding and Rotational Joints Rollouts (HD Solver) Make a selection. > Hierarchy panel > IK > Sliding and Rotational Joints rollouts In inverse kinematics, joints operate by allowing motion on one or more axes and restricting motion on the remaining axes. You set whether an object can move (slide) on or rotate about a given axis with the Active check box in the joint rollouts. Joints have a maximum of six possible axes: three for position and three for rotation. You constrain the motion of a joint by setting which axes are active. The setting of IK joint axes overrides any Inherit and Lock settings in Link Info on page 3500. Procedures To activate or deactivate an axis: 1 Select an object. 2 On the Hierarchy panel, click IK. 3 Expand the rollout for a joint type. 4 Turn on Active for any available axis. ■ When on, the axis is active and the object can move or rotate about that axis. ■ When off, the axis is inactive and the object cannot move or rotate about that axis. To limit a joint: 1 Select an object. 2 Click IK in the Hierarchy panel. 3 Turn on Limited for any active axis. If an axis is inactive the limits settings are ignored. ■ When on, the axis is limited and the object can move or rotate within the range set by the From and To fields. ■ When off, the axis is not limited and the object moves or rotates freely about that axis. If you turn on Limited, specify limit values in the From and To fields. When setting limits, the object transforms to the position or rotation defined by the From or To field. When you exit Hierarchy Panel Commands | 3495 the field or release the spinner, the object returns to its original position. You can also view joint limits in the viewport by pressing and holding the mouse button on the From or To label of a limit field. The object will move or rotate to the limit value until you release the mouse button. Interface Sliding/Rotational Joints rollouts The Sliding Joints rollout and Rotational Joints rollout contain similar controls for position and rotation, respectively. Also, each rollout contains identical group boxes for control of the X, Y, and Z axes. X/Y/Z Axis groups Active Activates an axis (X/Y/Z). Allows the selected object to slide on or rotate about the activated axis. Limited Limits the range of motion or rotation allowed on an active axis. Use in conjunction with the From and To spinners. Most joints are limited in their range of motion along an active axis. For example, a piston slides only within the length of its cylinder. Ease Causes a joint to resist motion as it approaches its From and To limits. Simulates an organic joint, or worn mechanical joint, moving or rotating freely in the middle of its range of motion but moving less freely at the extremes of its range. From and To Spinners Determine for position and rotation limits. Use in conjunction with the Limited function. 3496 | Chapter 15 Animation Spring Back Activates Spring Back. Each joint has a rest position. As the joint moves further from the rest position, an increasingly larger force pulls the joint back to its rest position, like a spring. Spring Back (spinner) Sets the rest position for the joint. For rotational joints, this is the orientation of the joint in degrees; for sliding joints, it's the position in units. Adjusting this is similar to adjusting the From/To spinners. You see the orientation/position while performing the adjustment, but when you release the spinner the object returns to its previous state. If you're using the HD Solver, you must turn on Show Initial State (Motion panel > IK Controller Parameters rollout) to see the effect on the geometry during the adjustment . Spring Tension Sets the strength of the "spring." Higher values cause the spring to pull harder as the joint moves further from its rest position. A setting of 0 turns off the spring; very high settings can turn the joint into a limit because you can reach the point where the spring is too strong to allow the joint to move past a certain point. Damping Applies resistance over a joint's full range of motion or rotation. Simulates the natural effect of joint friction or inertia. As a joint corrodes, dries out, or is put under a heavy load, it resists motion along its active axes. Interactive and Applied IK Rollouts Inverse Kinematics Rollout Make a selection. > Hierarchy panel > IK > Inverse Kinematics rollout The Inverse Kinematics rollout displays different controls based on IK Solvers applied to the selected hierarchy. IK Solvers are applied to the hierarchies using the Animation menu. When an HD IK Solver is applied to an IK chain the Inverse Kinematics rollout displays the controls described below. The Inverse Kinematics rollout provides controls for interactive and applied IK, as well as the controls for the HD Solver (history dependent). Use Apply IK to calculate an IK solution and generate Transform keys (move, rotate) for Hierarchy Panel Commands | 3497 all objects in an IK chain (the IK chain must include a follow object). By default, keys are created at every frame. ■ Applied IK requires that one or more parts of your IK structure be bound to animated follow objects. Once bound, you can select any object in your kinematic chain and click the Apply IK button. ■ The Apply IK method of animation works best when you want objects in the kinematic chain to match the motions of other objects exactly. An example of this would be a mechanical connection that should always appear to be attached to the follow object. Procedures To use interactive IK: 1 Build a hierarchy of objects. If you want to use Bones, be sure Assign to Children is not active when you create the Bones. 2 Select the end of the chain. 3 Go to the Hierarchy panel > IK button. 4 Scroll up to the Inverse Kinematics Rollout 5 Click Interactive IK. 6 Advance the time slider and move the end of the chain. 7 Turn off Interactive IK when you want to do forward kinematics. To use applied IK: 1 Add an HD Solver to your hierarchy. 2 Bind objects in your IK structure to follow objects. 3 Animate the follow objects. 4 Select any object in the IK structure. 5 Click IK in the Hierarchy panel and expand the Inverse Kinematics rollout. 6 Click Apply IK. TIP Be sure your Start Frame and End frames match the length of your animation. 3498 | Chapter 15 Animation Interface Interactive IK Allows for IK manipulation of hierarchies without applying an IK Solver or using a follow object. Apply IK Calculates the IK solution for each frame of the animation and creates transform keys for every object in the IK chain. A bar graph appears on the prompt line to indicate progress of the calculations. Apply Only To Keys Solves the IK solution for keyframes that already exist for one of the end effectors. Update Viewports Views the progress of Apply IK frame by frame in the viewports. Clear Keys Removes all move and rotate keys from the selected IK chain before applying IK. Start/End Sets the range of frames to calculate the applied IK solution. The default settings for Apply IK calculates the IK solution for every frame of the active time segment. Auto Termination Rollout (Interactive IK) Make a selection. > Hierarchy panel > IK button > Auto Termination rollout Hierarchy Panel Commands | 3499 The Auto Termination controls temporarily assign terminators a specific number of links up the hierarchical chain from the selected object. This only works with Interactive IK; it does not work with applied IK or with IK solvers. Procedures To use auto termination: 1 In the Auto Termination rollout, turn on Auto Termination. 2 Enter a value in the # of Links Up field. Turn on the IK button on the toolbar. 3 Select any object in an IK chain to move or rotate. Interface Interactive IK Auto Termination Turns on the auto termination feature. # of Links Up Specifies how far up the chain the termination is applied. For example, if you set this to 5, when you move any object in the hierarchy, the object that's five links up the chain from the object you're adjusting acts as a terminator. If you select a different object in the hierarchy, termination is switched to whichever object is five links up the chain from the newly selected object. A setting of 1 simply locks the hierarchy, since it terminates the joint just beyond the currently selected object. Link Info Make a selection. > Hierarchy panel > Link Info button This part of the Hierarchy panel contains two rollouts. The Locks rollout has controls to restrict the movement of objects in a particular axis. The Inherit rollout has controls to limit the transforms that a child inherits from its parent object. 3500 | Chapter 15 Animation Interface The Link Info panel has two rollouts: Locks rollout on page 3501: Locks an object's ability to Move, Rotate, or Scale about any of its local axes. Inherit rollout on page 3502: Limits what transforms a child inherits. Locks Rollout Make a selection. > Hierarchy panel > Link Info button > Locks rollout The Locks rollout contains controls that prevent transforms along particular axes. See also: ■ Inherit Rollout on page 3502 Procedures To lock all move transforms: 1 Select an object in the viewports. 2 In the Locks rollout, turn on Move group > X, Y, and Z. Only rotate and scale transforms will work. The object does not need to be part of a hierarchy. Hierarchy Panel Commands | 3501 Interface X, Y, Z Turn on any axis in the Move, Rotate, or Scale group box to lock the axis. For example, if Rotate > X and Y are turned on, you'll be able to rotate the object only around the Z axis. All locks are relative to an object's local coordinate system. Inherit Rollout Make a selection. > Hierarchy panel > Link Info button > Inherit rollout The Inherit rollout constrains the links between a selected object and its parent for any axis of position, rotation, or scale. See also: ■ Locks Rollout on page 3501 Procedures To prevent inheritance of X rotation in a hierarchy: ■ Select an object, then turn off X in the Rotate group on the Inherit rollout. 3502 | Chapter 15 Animation Interface X, Y, Z Turn off any axis in the Move, Rotate, or Scale group boxes to prevent inheritance. When you turn on an axis, transform information passes from the parent to the child for that axis. When you turn off an axis, transform information on that axis is ignored by the child. Track View Main toolbar > Curve Editor (Open) Graph Editors menu > New Track View Graph Editors menu > Track View - Curve Editor Graph Editors menu > Track View - Dope Sheet Graph Editors menu > Saved Track View > Choose a saved Track View. Right-click active viewport. > Transform quadrant > Curve Editor or Dope Sheet Viewport right-click menu > Views > Track > Choose New or a saved Track View. Track View | 3503 With Track View, you can view and edit all the keys that you create. You can also assign animation controllers to interpolate or control all the keys and parameters for the objects in your scene. Track View uses two different modes, Curve Editor and Dope Sheet. Curve Editor mode lets you display the animation as function curves. Dope Sheet mode displays the animation as a spreadsheet of keys and ranges. Keys are color-coded for easy identification. Some of the functions in Track View, such as moving and deleting keys, are also available on the track bar near the time slider, which can be expanded to show curves as well. You can dock the Curve Editor and Dope Sheet windows beneath the viewports at the bottom of the interface, or use them as floating windows. Track View layouts can be named and stored in the Track View buffer and reused. Track View layouts are stored with the MAX file. Track View — Curve Editor Track View — Dope Sheet (Edit Keys) 3504 | Chapter 15 Animation Typical Uses for Track View Track View can perform a variety of scene management and animation control tasks. Use Track View to: ■ Display a list of objects in your scene and their parameters. ■ Change key values. ■ Change key timing. ■ Change controller ranges (see procedure). ■ Change interpolation between keys. ■ Edit ranges of multiple keys. ■ Edit blocks of time. ■ Add sound to your scene. ■ Create and manage notes about the scene. ■ Change the behavior of the animation outside the range of keys. ■ Change controllers for animated parameters ■ Select objects, vertices, and hierarchies. ■ Navigate the modifier stack in the Modify panel by clicking the modifier items in the Track View Hierarchy. NOTE Tracks are created for animated vertices in Track View. A Bezier Point3 controller is the default vertex interpolation controller. See also: ■ Track View Menu Bar on page 3547 ■ Curve Editor on page 3518 ■ Dope Sheet on page 3519 ■ Track View Workspace on page 3509 ■ Time Ruler on page 3523 ■ Filters on page 3584 Track View | 3505 ■ Assign Controller on page 3593 ■ Copy Controller on page 3590 ■ Paste Controller on page 3591 ■ Make Controller Unique on page 3600 ■ Parameter Curve Out-of-Range Types on page 3601 ■ Add Note Track on page 3604 ■ Remove Note Track on page 3606 ■ Edit Keys on page 3607 ■ Track View Utilities on page 3619 ■ Select Time on page 3630 ■ Edit Ranges on page 3642 ■ Curve Editor on page 3650 ■ Status Bar/View Controls on page 3668 ■ Track View Hierarchy on page 3531 ■ Animation Controllers on page 3133 Procedures To change the frames in which a controller takes effect: When you apply a controller or constraint to an object's motion, the frame range over which controller takes effect is determined by the current active time segment on page 7898. If you then change the active time segment or the animation length, the duration of the controller's influence doesn't change. Sometimes applying a controller (such as Path Constraint) automatically sets keys that you can use to change this range. But others, such as Noise controllers, don't set keys. In such cases, follow this procedure: 1 Select the object, and then right-click it and choose Curve Editor from the menu. 2 Expand the object hierarchy to find the track or tracks to adjust. 3 From the Modes menu, choose Dope Sheet. 3506 | Chapter 15 Animation 4 On the Dope Sheet, click the Edit Ranges button. 5 Adjust the range duration by dragging its endpoints, or its position in the animation by dragging between endpoints. For more information, see Dope Sheet on page 3519. To select keys in Track View (either mode), do any of the following: 1 Click the key to select an individual key. 2 Drag a selection rectangle around keys to select multiple keys. 3 Hold down the Ctrl key and click to create discontinuous multiple key selections. NOTE If you are in Dope Sheet – Edit Ranges mode, you can use Select Time to select multiple keys. To delete keys in Track View (either mode): 1 Select keys on the curve, or on the dope sheet. 2 Press the Delete key on the keyboard to delete the selected keys. To force Track View to always display on a second monitor: If you are running a dual-monitor setup, you can force Track View to display on the right-hand monitor by editing a script. 1 Right-click the Curve Editor (Open) icon in the main toolbar, and then choose Edit Macro Script. The MAXScript script that opens the Track View – Function Curve Editor appears. 2 Locate the line that reads: if (trackviews.open "Track View - Curve Editor" layoutName:"Function Curve Layout") == true then 3 Replace that line with this one: max_window = getMaxWindowSize() --get Desktop size if (trackviews.open "Track View - Curve Editor" layoutName:"Function Curve Layout" pos:[max_window.x/2,0] height:max_window.y width:(max_window.x/2) ) == true then Track View | 3507 4 Save the script and restart 3ds Max. This should open the Track View in a new session over the right half of the desktop. Assuming that a dual-monitor setup reports twice the width, this will force the Track View on the second monitor. On a single monitor, it opens it over the right half of the monitor. Of course, you could enter your own numbers like pos:[1024,0] height:768 width:1024 in case you are running two monitors at 1024x768. To open Track View in a viewport: ■ Right-click a viewport label, and then from the menu that opens choose Views > Track > New, or click the name of a saved Track View. Working with Track View Track View is the tool that you use to see a data-driven view of your scene and animation. The standard views, such as Top, Front, User, and Camera, are geometry-driven views. These views display the surfaces of your objects and show them changing over time. Track View displays the values and timing that produce the geometry and motion you see in standard views. Using Track View, you have very precise control over every aspect of your scene. Track View has two modes: Curve Editor and Dope Sheet. The Curve Editor displays your animation as keys on function curves; editing the tangency of the keys allows control of the in-betweens. Dope Sheet displays your animation as keys and ranges on a box grid and allows you to adjust the timing of your motions. Track View keys and curves can also be displayed in the track bar. The same Key properties dialogs available on Track View can also be found on the Motion panel as well. For details about using Track View and editing animation, see the following: ■ Track View Edit Window on page 3509 ■ Track View Menu Bar on page 3547 ■ Curve Editor Toolbars on page 3572 3508 | Chapter 15 Animation ■ Dope Sheet on page 3519 ■ Dope Sheet Toolbars on page 3578 Understanding Track View Concepts The left side of Track View, called the Controller Window, presents a Hierarchy list of everything in your scene. Every object and environment effect appears in the list, along with its associated animatable parameters. Choose items from this list to apply changes to the animation values. Expand or collapse the list using manual navigation, or allow the Auto expand to determine the display in this window. The right side of Track View, called the Key window, charts the changes applied to parameters over time. Any change you make to one of these parameters when the Auto Key button is on, appears as a key in the right side of Track View. Select keys to apply changes to one or more specific keys. This section covers some of the editing functions you can use with Track View: Copying and Pasting Items on page 3645 Copying and Pasting Objects on page 3647 Making Instance and Reference Controllers and Objects Unique on page 3649 Track View Workspace Main toolbar > Curve Editor (Open) Graph Editors menu > Track View - Curve Editor Graph Editors menu > New Track View The Track View Key window displays function curves and keys when in Curve Editor mode. When in Dope Sheet mode, the tracks can be displayed as keys or ranges. You select and change animation values and timing in these windows. The Key window also indicates the active time segment. Time within the active time segment is highlighted with a light gray background. The Track View Key window is sometimes referred to as the Key window. Components of the Key window include a time slider, a time ruler, and a scale origin slider. The Track View time slider indicates the current frame and is synchronized with the viewport time slider. A time ruler at the bottom of the window can be raised to measure keys against time. A scale origin indicator Track View Workspace | 3509 (a horizontal orange line at 0) can be moved during scale value operations as a reference point for scaling. Interface The two main sections of the Track View workspace consist of the Key window and the Controller window. Controller Window The Controller window displays object names and controller tracks, and determines which curves and tracks are available for display and editing. Hierarchy items in the Controller window can be expanded and rearranged as necessary using the Hierarchy list right-click menu. The navigation tools can also be found in the Track View Options menu. Default behavior is to only show selected object tracks. Use Manual Navigation mode to collapse or expand tracks individually, or press Alt+right-click to display an alternate menu to collapse and expand tracks. 3510 | Chapter 15 Animation Controller window Key window The Key window displays the keys as either curves or tracks. The tracks can be displayed as a box graph of keys or range bars. Track View Workspace | 3511 Keys displayed as box graph (Dope Sheet - Edit Keys mode) Key Creation Keys are created using a variety of methods. Keys can be created by turning on Auto Key, moving the time slider, and then transforming the object or adjusting its parameters. Keys can also be created by right-clicking the viewport time slider to access the Create Key dialog. Keys can be created directly in Track View using Add Keys. Finally, keys can be created by turning on Set Key mode, moving to a desired frame, posing the object, then clicking Set Key. Key Display Keys are displayed as points on the function curves, or as boxes on the Dope Sheet. Keys on the Dope Sheet are color-coded for easy identification. When there are multiple tracks keyed at one frame, the boxes appear with bands of color to indicate the shared key types. Key coloration is also used to show soft selection of keys. Subframe keys (keyframes that fall between frames) are indicated as narrow rectangles within the boxes. 3512 | Chapter 15 Animation Colored keys with subframe display Keys are also displayed on the track bar below the viewport. Keys displayed on the function curves have tangency types. The tangency buttons found on the Key Tangents toolbar can be used to change the function curve keys. Use Custom tangency to show editable curve handles. Use Step tangency to freeze motion or create classic storyboard pose-to-pose blocking. Function curves can also be displayed below the track bar. Track View Workspace | 3513 Custom Tangency handles Range Bars In the Dope Sheet - Edit Ranges mode (when animation keys have been created), range bars display to indicate the range of time the animation occurs. Tools specific to working with ranges (position ranges and recouple ranges) can be found on the Ranges toolbar (off by default). Right-click the toolbar, choose Show Toolbars, and then select Range-Track View to access these tools. 3514 | Chapter 15 Animation Keys displayed as range bars (Dope Sheet - Edit Ranges mode) Function Curves Function Curves display the values of keys, and the interpolated values between keys, as a curve. These curves express how a parameter varies over time. Only animation tracks can display function curves. You can edit the curves using tangency handles on the keys to change the shape of the curve. Keys displayed as function curves (Curve Editor) Track View Workspace | 3515 Multiple curves can be viewed simultaneously by selecting tracks in the Controller window. This is especially useful when using Multiplier or Ease Curves. You can adjust the multiplier or ease curve point tangencies and watch the final result in the controller curve at the same time. Time Ruler The time ruler measures time. Markings on the ruler reflect the settings in the Time Configuration dialog. Move the time ruler up to the keys for more accurate key placement. Time ruler Track View Time Slider The current time is indicated by the Track View time slider. This is displayed as a set of blue vertical lines synchronized with the position of the viewport time slider. You can move the Track View time slider by dragging it in the Key window. Moving either time slider updates the animation in the viewports. The blue time slider also serves as a scale origin point when scaling keys in time. 3516 | Chapter 15 Animation Scale keys using time slider Scale Values Origin Line When you choose to scale key values (that is, scaling in space rather than time), a horizontal orange line appears at the 0 value on the vertical graph axis. This orange line is a scale values origin indicator, which you can move verticall to use as a reference point for scaling values. Horizontal line at the top of the illustration is the moveable scale origin line. Track View Workspace | 3517 Curve Editor Menu bar > Graph Editors > Curve Editor Menu bar > Graph Editors > New Track View > Modes > Curve Editor Main toolbar > Curve Editor (Open) Right-click the selected object in the viewport. > Curve Editor The Track View - Curve Editor is a Track View mode that allows you to work with motion expressed as function curves on a graph. It lets you visualize the interpolation of the motion, the object transformations that the software creates between the keyframes. You can easily see and control the motion and animation of the objects in the scene using tangent handles on the keys found on the curves. The Curve Editor interface consists of a menu bar, a toolbar, a Controller window, and a Key window. There is also a time ruler, and navigation and status tools at the bottom of the interface. You can loop or cycle your animation beyond its range by adding Parameter Curve Out-Of-Range Types from the Curve Editor, as well as by adding Multiplier or Ease Curve onto other animated tracks for added control. TIP curves. You can also click Show Curves in the track bar to display function 3518 | Chapter 15 Animation See also: ■ Track View Menu Bar on page 3547 ■ Curve Editor Toolbars on page 3572 Dope Sheet Menu bar > Graph Editors > Track View - Dope Sheet Menu bar > Graph Editors > New Track View > Modes > Dope Sheet Main toolbar > Curve Editor (Open) > Modes menu > Dope Sheet Right-click the selected object in the viewport > Curve Editor > Modes > Dope Sheet The Track View - Dope Sheet editor displays keyframes over time on a horizontal graph. This graphical display simplifies the process of adjusting animation timing because you can see all keys at once in a spreadsheet-like format. Classical animation technique included the use of an exposure sheet, called an “X” sheet or a Dope Sheet. The Dope Sheet was a vertical chart that served as instructions to the camera operator. Dialogue and camera actions were indicated over a numbered list that represented each shot, which became a single photographed frame of the animated movie. The classical exposure sheet also included instructions for compositing the cel drawings of animated characters over backgrounds. This device serves as inspiration for the Dope Sheet tool in 3ds Max. Dope Sheet | 3519 The 3ds Max Dope Sheet editor is similar to the classic X sheet. It displays keyframes over time, only using a horizontal graph (rather than vertical). This provides tools for adjusting the timing of your animation. Here, you can see all the keys in a spreadsheet-type interface. You can select any or all of the keys in a scene, scale them, move them, copy and paste them, or otherwise work directly here, rather than in the viewport. You can choose to select the keys for children, or subtree, or both, so you can make simple changes that affect many objects and their keys at once. A common use of Dope Sheet is to stagger the movement of a character's limbs so they don't all move simultaneously. If you have a crowd of characters, you could use Dope Sheet to shift movements so they don't all move in unison. Dope Sheet Menus and Tools In the Dope Sheet, you can select any or all of the keys in a scene, scale them, move them, copy and paste them, or otherwise work directly, rather than working with objects in viewports. You can choose to select the keys for children, or subtree or both, so you can make simple changes that affect many objects and their keys at once. Dope Sheet allows for soft-selection of keys which is very useful when working with motion capture data that has keys on every frame. Dope Sheet provides tools for working directly with time. You can select, cut, copy, paste, and insert and reverse time using the tools on the Time menu. Like the Curve Editor on page 3518, Dope Sheet has both a menu bar and toolbars to provide you quick access to tools. Dope Sheet menu bar Unlike Curve Editor, Dope Sheet has two modes: Edit Keys and Edit Ranges. These modes change the display in the Key window. Edit Keys Mode When Edit Keys is turned on, the keyframes are displayed as boxes within rectangles on a grid. The keys are color-coded to show what has been keyframed (position is red, scale is yellow, rotation is green, and so on.) 3520 | Chapter 15 Animation Colored keys Dope Sheet keys are now displayed as rectangles within boxes so you can easily spot sub-frame keys, keys that fall in-between frames. Keys that fill the boxes are on the frame, keys that are small rectangles are sub-frame. Sub-frame keys Dope Sheet, just like the Curve Editor, allows you to use soft selection on keys. This is extremely useful when you are dealing with massive quantities of keys, Dope Sheet | 3521 such as in motion-capture data files. Combine this with scaling keys for a means to manipulate motion data. Soft selection of Dope Sheet keys Edit Ranges Mode When Edit Ranges is turned on, the animation tracks are displayed as range bars; no individual keys are visible. Use Ranges when you only want to change how long something happens, or when it starts and ends, rather than when you need to manipulate particular keys within an action. Edit Ranges mode Modify Subtree and Modify Child Keys When working in Dope Sheet, you can turn on or off Modify Subtree and Modify Child Keys. These let you automatically move the keys for the children, and/or the tracks for the subtree. If you experience a slowdown while working with Dope Sheet, try turning these off, and moving the keys manually instead. Modify Subtree is on by default in Dope Sheet, but off in Curve Editor. 3522 | Chapter 15 Animation Time Editing Dope Sheet offers you a variety of tools for working directly with time. You can select a period of time, which includes all the keys within that period, and then perform different operations on that time segment. You can copy and paste time to loop animations, or reverse time so the animation plays backward. You can insert time to add a space to an animation, or delete time to shorten a motion. NOTE For Dope Sheet procedures, see the individual tools and menu choices within the links below. Dope Sheet Speed Improvements In 3ds Max, only tracks displayed in the current field of view are computed, optimizing the responsiveness of the Dope Sheet editor. Dope Sheet now temporarily retains the key caches so tracks that have already been computed as a result of the parent being computed needn't be recomputed. The cache is used instead. The default auto-navigation settings for the Dope Sheet editor now only auto-expand to the node track for the currently selected object. This reduces the number of tracks whose keys need to be displayed and also helps enforce the top-down workflow the Dope Sheet editor is designed for. See also: ■ Track View Menu Bar on page 3547 ■ Dope Sheet Toolbars on page 3578 ■ Select Time on page 3630 ■ Edit Ranges on page 3642 ■ Edit Keys on page 3607 Time Ruler Main toolbar > Curve Editor (Open) > Time Ruler (below right-hand pane) Graph Editors menu > Track View - Curve Editor/Track View - Dope Sheet > Time Ruler (below right-hand pane) Time Ruler | 3523 The time ruler at the bottom of the Track View Key window measures time. Markings on the time ruler reflect the settings in the Time Configuration dialog on page 7565. You can drag the time ruler vertically in the Key window to align it with any track. Track View Shortcuts Track View functions for which keyboard shortcuts can be set are listed below. Where there is no default keyboard listed and no button shown in the action list, a short description appears in the right column. To use Track View keyboard shortcuts, the Keyboard Shortcut Override toggle on page 7858 must be on. See also: ■ Track View on page 3503 ■ Keyboard Shortcuts on page 7857 ■ Keyboard Panel on page 7698 ■ Customize User Interface Dialog on page 7697 Track View Function Default Keyboard Shortcut Description Access Hierarchy Select Name Field Accesses the track selection field at the lower left of Track View window Access Time Field Accesses the time field at the lower left of Track View window Access Track Name Field Accesses the name of the Track View window at upper right 3524 | Chapter 15 Animation Track View Function Default Keyboard Shortcut Access Value Field Add Keys Description Accesses the value field at the lower left of Track View window A Add Note Track Add Visibility Track Align Keys Apply Ease Curve Ctrl+E Apply Multiplier Curve Ctrl+M Assign Controller C Auto Expand Animated Auto Expand Keyable Auto Expand Limits Collapse All Collapse Objects Collapse Tracks Copy Controller Ctrl+C Copy Time Track View Shortcuts | 3525 Track View Function Default Keyboard Shortcut Cut Time Delete Controller Delete Ease/Multiplier Curve Delete Note Track Delete Visibility Track Draw Curves Ease Curve Out-of-Range Types Ease/Multiplier Curve Enable Toggle Edit Keys Mode Edit Ranges Mode Edit Time Mode Edit Track Set Exclude Left End Point Toggle Exclude Right End PointToggle Expand Object Toggle 3526 | Chapter 15 Animation O (letter "o") Description Track View Function Default Keyboard Shortcut Description Expand Objects Expand Track Toggle ENTER, T Expand Tracks Filters Q Freeze Nonselected Curves Function Curves Mode Ignore Animation Range Insert Time Keyable Properties Toggle Lock Selection Spacebar Lock Tangents Toggle L Make Controller Unique U Modify Subtree Toggle Move Highlight Down Down Arrow Move Highlight Up Up Arrow Move Keys M Move Keys Horizontal Track View Shortcuts | 3527 Track View Function Default Keyboard Shortcut Description Move Keys Vertical Move Object Down Moves an object down in the hierarchy display Move Object Up Moves an object up in the hierarchy display Multiplier Curve Out-ofRange Types Nudge Keys Left Left Arrow Nudge Keys Right Right Arrow Pan P Parameter Curve Out-ofRange Types Paste Controller Paste Limit Only Paste Time Position Ranges Mode Properties Reduce Keys Remove Limit Respect Animation Range 3528 | Chapter 15 Animation Ctrl+V Track View Function Default Keyboard Shortcut Description Reverse Time Scale Keys Scale Time Scale Values Scroll Down Ctrl+Down Arrow Scroll Up Ctrl+Up Arrow Select All Select Children Select Invert Select None Select Time Select Lower Limit Set Tangents to Auto Set Tangents to Custom Set Tangents to Fast Set Tangents to Linear Set Tangents to Slow Track View Shortcuts | 3529 Track View Function Default Keyboard Shortcut Set Tangents to Smooth Set Tangents to Step Set Upper Limit Show All Tangents Show Keys on Frozen Curves Show Selected Key Stats Show Tangents Toggle Slide Keys Snap Frames S Toggle Limit Track View Utilities Zoom Z Zoom Horizontal Extents Zoom Horizontal Extents Zoom Region Zoom Selected Object Zoom Time 3530 | Chapter 15 Animation Alt+X Description Track View Function Default Keyboard Shortcut Description Zoom Value Extents Zoom Values Track View Hierarchy Main toolbar > Curve Editor (Open) > Track View Controller Window Graph Editors menu > Track View - Curve Editor/Track View - Dope Sheet The Track View Controller window displays all objects in your scene in a hierarchical fashion. You select objects in the Hierarchy list to: ■ Select object and track labels for Track View operations. ■ Select object icons to select objects in the scene. ■ Select material or map icons when working in the Material Editor. ■ Select modifiers in Track View to navigate the modifier stack in the Modify panel. See also: ■ Hierarchy Right-Click Menu on page 3538 ■ Properties (Track View Hierarchy) on page 3544 ■ Modify Subtree on page 3559 ■ Sound Options Dialog on page 3545 Track View Hierarchy | 3531 Procedures To select objects in the scene using the Track View Controller window: 1 Do one of the following to select the first object: ■ Click an object's icon to select a single object. ■ Double-click a parent object's icon to select an object and its descendants. 2 Do one of the following to select additional objects: ■ Press Shift and click an object icon to select all objects between the object and the previously selected object. ■ Press Ctrl and click an object icon to add (or remove) the object to the selection. When objects are selected in the scene, their icons are also highlighted in Track View. All objects in your scene are always displayed in Track View. However, selecting object icons in Track View follows the same rules as selecting objects in the scene: ■ You can't select the icon of a hidden object. ■ You can't select the icon of a frozen object. ■ If you select the icon of an object that is part of a closed group, the group icon and all the objects in the group are selected. To select and deselect item labels by clicking: 1 Select the first item by clicking its label. 2 Do one of the following to add or subtract from the selection: ■ Press Shift and click an item label to select all items between the item and the previously selected item. ■ Press Ctrl and click an item label to add (or remove) that item to the selection. ■ Press Alt and click an item label to select all item labels in the column. Right-clicking an item displays a right-click menu for globally selecting items in the Hierarchy list. 3532 | Chapter 15 Animation To select items in the Controller window with the right-click menu: ■ Right-click an item in the Controller window, then do any of the following: ■ Choose Select All to select all items visible in the Hierarchy list. Collapsed items are not selected. Press Ctrl and choose Select All to select only visible transform items. ■ Choose Select Invert to reverse the selection pattern. ■ Choose Select None to clear all items from the selection. ■ Choose Selected Children to select the linked descendants of a parent object. When working with function curves, you can also select a controller icon (instead of the label) to select that function curve for vertex editing. To select a material or map as the active material in the Material Editor: 1 Open the Material Editor. 2 Open the Medit Materials branch in the Hierarchy list of the Controller window and select a material. The selected material becomes the active item in the Material Editor. This is one way to navigate and select a material for editing. Example: To navigate the modifier stack in the Modify panel: 1 Create a cylinder. 2 In the Modify panel, add a Bend and a Twist modifier to the cylinder. 3 In the Track View controller window, expand the Cylinder branch. 4 Expand the Modified Object branch. 5 Click the icon of the Twist modifier. The Twist modifier is displayed on the Modify panel. 6 Click the icon of the Bend modifier in the Hierarchy list. The Bend modifier is displayed on the Modify panel. Track View Hierarchy | 3533 To highlight all tracks containing animation: 1 Create a box and a sphere. 2 Click Auto Key, go to frame 10 and move the sphere in X. 3 Go to frame 20 and move the sphere in Y. 4 Go to frame 30 and move the sphere in Z. 5 Deselect the sphere by clicking in a blank area of the viewport. 6 Open the track View — Curve Editor and press Ctrl+A. Locate in the Track View Controller window the box and sphere objects. Notice that both their icons are highlighted as well as the sphere's XYZ position tracks. 3534 | Chapter 15 Animation Interface Scene Hierarchy World World is the root of the scene hierarchy. This track collects all keys in your scene as a single range for quick global operations. By default, the World track shows the range of the Sound, Environment, Medit Materials, and Scene Materials branches. Modify Subtree in Edit Ranges mode causes the World track to include the range of all tracks in the Objects branch as well. Track View Hierarchy | 3535 NOTE The default location of the time ruler covers the World animation track. Move the time ruler to see the World track. Sound Allows you to synchronize your animation to a sound file or to a metronome. If you use a sound file, a Wave Form track is displayed in the Hierarchy list, and a waveform is displayed in the Edit window. A sound file plays on your installed sound card. You set the Metronome and the Wave Form parameters in the Sound Options dialog on page 3545. Global Tracks Allows you to store controllers for global use. Using expression controllers, for example, you could point to a controller in the Global Tracks from several other tracks. By altering the expression in the Global Tracks, all of the other tracks are changed. By pasting an instance of a controller in Global Tracks to a number of other tracks, you can change many tracks by altering the controller in Global Tracks. By default, Global Tracks contains List tracks of the different controller types. To assign a controller, open one of the List tracks, highlight the available track, and then click Assign Controller. Once the controller is assigned, you can point to it from an expression controller assigned to any other track, or you can copy and paste it to any number of matching controller types. Video Post Allows you to manage animated parameters for Video Post plug-ins. Environment Contains items that control the background and scene environment effects. Examples include Ambient Light, Background definition, Fogs, and Volumetric Lighting. Render Effects Contains tracks for the effects added in Rendering menu > Effects. After adding rendering effects, use the tracks here to animate effects parameters such as glow size and color. Render Elements Shows you what elements you've chosen to render separately via the Render Setup dialog > Render Elements rollout. Renderer Allows you to animate parameters in the renderer. After selecting a type of antialiasing in the Render dialog, you can animate various antialiasing parameters using these tracks. Global Shadow Parameters Use these tracks to change or animate shadow parameters for any light that has the Use Global Settings parameter turned on in the Shadow Parameters rollout. (Select a light, then open the Modify panel > Shadow Parameters rollout to toggle the Use Global Settings parameter). You can change shadow parameters for multiple lights simultaneously. Tracks include Map Size, Map Range, Map Bias, and Absolute Bias on page 5099. 3536 | Chapter 15 Animation Scene Materials Contains the definitions for all materials in the scene. It is empty until you begin assigning materials to objects. When you select materials in this branch, you are working with instances of materials assigned to objects in your scene. These materials might not be in any of the Material Editor samples. Medit Materials Contains global material definitions. The Medit Materials branch contains the 24 material definitions in the Material Editor on page 5284. When you select materials from this branch, you are working with global material definitions that might not yet be assigned to objects in your scene. Objects Contains a hierarchy for all the objects in your scene. When Manual Navigation on page 3561 is on, many of these categories display a small plus or minus button to expand/collapse the contents. Item Categories Each type of item in the Hierarchy list is represented by an icon. You can use these icons to quickly identify what each item represents. Objects Branches contain linked descendants of the object. Branches below contain transforms, materials, and modifiers applied to the object, as well as the object's creation parameters. Controllers They contain the animation values for parameters and are the only item in the Hierarchy list that can have a track containing keys. Every controller has an individual icon Examples of controller icons Certain types of controllers can contain other controllers. Examples of these are Transform Controllers and List Controllers. Track View Hierarchy | 3537 NOTE Controllers that have been applied to objects via the Animation menu > Controllers or Constraints submenus automatically have list controllers assigned. Controllers assigned using the Track View Controller menu or right-click Assign Controller choice on the quad menu do not apply list controllers automatically. Maps Indicates map definitions. All branches below a map definition are part of that map. This includes values used by parametric maps and other map definitions that are part of a map tree. Modifier This icon indicate modifiers and space warp bindings. Branches below a modifier contain the modifiers sub-objects and parameters. Controller Window Right-Click menu Right-click any item in the Controller window to display the right-click menu on page 3538. Use Alt + right-click to display an alternate navigation menu. Hierarchy Right-Click Menu Main toolbar > Curve Editor (Open) > Select an item in the Track View controller window and right-click > Hierarchy right-click menu The Hierarchy right-click menu contains quick-access commands for assigning, copying and pasting controllers, accessing controller properties, as well as tools for navigating, expanding and collapsing the Hierarchy list of the Controller window. 3538 | Chapter 15 Animation The Hierarchy right-click menu contains quick-access commands for expanding and collapsing the hierarchy. TIP Use Alt+right-click with quad menu tools to expand and collapse selected tracks individually. TIP The Hierarchy right-click menu displays commands related to the highlighted item while the Alt+right-click menu displays commands related to the item currently located under your mouse cursor. Interface Select All Selects all tracks that are visible in the Hierarchy list. Collapsed items are not selected. Select Invert Inverts the current Hierarchy list selection. Track View Hierarchy | 3539 TIP Inverting an empty selection is the same as selecting all. Select None Deselects all visible object tracks in the Hierarchy list. Does not apply to selected objects in the scene (object icons remain highlighted). Select Children Selects all objects descending from the selection by highlighting their icon in the Hierarchy list. Collapsed children are also selected. TIP You can also select an object's children by double-clicking its icon. Expand Objects Expands only the object branch for all descendants of the selected object. The expanded branches are not selected. 3540 | Chapter 15 Animation NOTE If you are using Auto Expand on page 3557 with the Children option turned on, all objects branches are automatically expanded. Expand Tracks Expands all branches of the selected item. Expand All Expands all branches for all descendants of the selected object. Collapse Objects Collapses only the object branch for all descendants of the selected object. Collapse Tracks Collapses all branches of the selected item. Collapse All Collapses all branches for all descendants of the selected object. Track View Hierarchy | 3541 Auto Expand Expands the Hierarchy list automatically based on submenu selection choices. Submenu choices are: Selected Objects Only, Transforms, XYZ Components, Limits, Keyable, Animated, Base Objects, Modifiers, Materials, and Children. Manual Navigation Turns off Auto Expand. Allows you to manually decide when you will collapse and what you will expand. A small minus button in a circle to the left of an item lets you collapse it. This button disappears when Auto Expand is on and Manual Navigation is off. TIP To expand or collapse individual tracks, use Alt+right-click. Load Animation Loads XML animation data from files to the highlighted track or tracks. For more information, see Saving and Loading Animation on page 7074. If any of the highlighted tracks has child tracks, animation is loaded to those tracks as well. Save Animation Saves XML animation data from the highlighted track or tracks to disk files. For more information, see Saving and Loading Animation on page 7074. If any of the highlighted tracks has child tracks, animation is saved from those tracks as well. Properties Displays the property dialog of a controller, if available. Not all controller use this dialog, and it is unavailable in these cases. Assign Controller Displays the Assign Controller dialog, which offers a list of the available controller for that selection. 3542 | Chapter 15 Animation Copy Makes a copy of the controller held in the Track View clipboard. Paste Pastes the copied controller to another object or track. Copies can be pasted as instances or as unique copies. Make Unique Changes an instanced controller into a unique one. Changes made to instanced controller are reflected in all versions of the controller, unique controllers can be individually edited without affecting anything else. Alt + Right-click Menu These commands can also be found on the right-click quad menu described above. Expand Objects Expands only the object branch for all descendants of the selected object. The expanded branches are not selected. NOTE If you are using Auto Expand on page 3557 with the Children option turned on, all objects branches are automatically expanded. Expand Tracks Expands all branches of the selected item. Expand All Expands all branches for all descendants of the selected object. Collapse Objects Collapses only the object branch for all descendants of the selected object. Collapse Tracks Collapses all branches of the selected item. Collapse All Collapses all branches for all descendants of the selected object. Select All Selects all tracks that are visible in the Hierarchy list. Collapsed items are not selected. Select Invert Inverts the current Hierarchy list selection. TIP Inverting an empty selection is the same as selecting all. Select Children Selects all objects descending from the selection by highlighting their icon in the Hierarchy list. Collapsed children are also selected. TIP You can also select an object's children by double-clicking its icon. Select None Deselects all visible object tracks in the Hierarchy list. Does not apply to selected objects in the scene (object icons remain highlighted). Properties See Properties on page 3544. Track View Hierarchy | 3543 Properties (Track View Hierarchy) Main toolbar > Curve Editor (Open) > Select an item in the Track View controller window > Hierarchy Right-click menu > Properties Graph Editors menu > Track View - Curve Editor > Track View toolbar > Controller > Properties Right-click an animated object in the viewport. > Curve Editor > Right-click the Key window. > Properties Motion panel > Assign Controller rollout > Right-click a controller track. > Properties Properties displays the Properties dialog for the selected item in the Track View. For example, this option displays the Key Info dialog for selected keys, or the Sound Options dialog on page 3545 if you select an item in the Sound Track. Some controllers, such as Noise, use the Properties dialog as their primary interface for animating parameters. Other controllers do not use the Properties dialog at all, and in those cases it is unavailable. Procedures To display properties for animation controllers: 1 Select the controller track in the Controller Window. 2 On the Controller menu choose Properties. Or you can right-click and select Properties from the Track View quad menu. To display the properties dialog for a Bezier key: The Bezier Controller is the default position controller when an object is animated. 1 In the Track View Key window, select an object's position key. 2 Right-click the key. The controller dialog is displayed. The Key Tangency choices are available from the dialog. TIP You can also change tangency handles using the tools in the Key Tangents: Track View toolbar. 3544 | Chapter 15 Animation To display the Sound Options dialog for adding a sound track: 1 In the Track View Hierarchy, select the Sound item. 2 Right-click and choose Properties. The Sound Options dialog is displayed. You can use this dialog to assign a sound file to the animation, which can be displayed in Track View or the track bar. To display the Sound Options dialog for adding a sound track: 1 In the Track View Hierarchy, select the Sound item. 2 On the Tools toolbar, click Properties, or right-click the Sound label and choose Properties. The Sound Options dialog is displayed. Sound Options Dialog Main toolbar > Curve Editor - Open > Select an item in the Track View Hierarchy and right-click. > Hierarchy right-click menu > Properties Graph Editors menu > Track View > Open Track View > Right-click a Sound track in the Track View Hierarchy. > Properties > Sound Options dialog The Sound track in the Track View Controller window contains two sound options. Use the Metronome to generate a series of beeps, or load a sound file to play back. Sound is one way to provide the timing for your animation. You can scrub the time slider to locate a particular sound, and coordinate your visuals around it. You can display this dialog by right-clicking the Sound item in the Track View controller window, or by right-clicking a sound track in the Key window. Procedures To add a sound track: 1 In the Track View Controller window, right-click a sound item and choose Properties. Track View Hierarchy | 3545 The Sound Options dialog is displayed. 2 Click Choose Sound, select a sound file, and then click OK. A Wave Form branch appears in the Track View Hierarchy. A waveform appears in the Track View Key window. 3 Turn on Real Time in the Time Configuration dialog to hear the sound track when you play your animation. Interface Audio group Choose Sound Displays a file selector where you choose a sound file. Remove Sound Deletes the waveform from Track View. Reload Sound Reloads the last loaded file. This allows the sound file to be reloaded when it has been changed by another program. Active Plays the waveform during animation play back. Metronome group The Metronome track produces a regular beat using two tones. You specify three settings in the Sound Options dialog to control the Metronome: 3546 | Chapter 15 Animation Beats per minute Sets the frequency of beats. The beats display in the Metronome tracks as black vertical bars. Default=60. Beats per measure Sets which beat is emphasized with a higher pitch tone. Emphasized beats display in the Metronome track as black pluses. For example, a setting of 4 generates a higher pitched tone every fourth beat. Default=4. Active Plays the beats during animation playback. Track View Menu Bar Track View > Menu bar A menu bar appears at the top of Track View in both Curve Editor and Dope Sheet modes and the expanded track bar layout. The Track View menu bar is contextual; it changes slightly between Curve Editor and Dope Sheet modes. The commands available on the Track View menus can also be accessed on the Curve Editor and Dope Sheet toolbars. Certain tools, however, appear only on the toolbars, and do not appear in the menus. Interface Modes Lets you choose between Curve Editor and Dope Sheet. See Modes Menu on page 3548. Controller Assigns, copies, and pastes controllers, and makes them unique. Here you also add looping. See Controller Menu on page 3548. Tracks Adds Note and Visibility tracks. See Tracks Menu on page 3552. Keys Adds, removes, slides, and scales keys. Also includes soft selection, align to cursor, and snap frame. See Keys Menu on page 3552. Curves (Curve Editor only) Applies or removes Ease and Multiplier curves. See Curves Menu on page 3555. Time (Dope Sheet only) Adjusts time. See Time Menu on page 3555. Options Controls the behavior (auto-expansion, etc.) of the Hierarchy list window. Also contains controls that improve performance. See Options Menu on page 3556. Display Affects curve, icon, and tangent display. See Display Menu on page 3562. View Contains Pan and Zoom commands. See View Menu on page 3566. Track View Menu Bar | 3547 Utilities Randomizes or creates out-of-range keys. Also selects keys by time and current value editor. See Utilities Menu on page 3566. Modes Menu Track View > Modes menu Graph Editors menu > Track View - Dope Sheet > Modes menu Main toolbar > Curve Editor (Open) > Modes The Modes menu lets you switch between the Curve Editor and Dope Sheet when working in Track View. Curve Editor Displays and allows for editing of animation function curves. Dope Sheet Displays animation as a spreadsheet of keys available for editing. Controller Menu Graph Editors menu > Track View – Curve Editor > Controller menu Graph Editors menu > Track View – Dope Sheet > Controller menu Main toolbar > Curve Editor (Open) > Track View > Controller menu The Controller menu gives you tools for working with controllers that are assigned to objects or tracks when in the Curve Editor or Dope Sheet. Assign Lets you select tracks and then assign a controller to that selection. See Assign Controller on page 3593. Delete Controller Lets you delete certain controllers, that can't otherwise be replaced (Visibility tracks, Image Motion Blur Multiplier, Object Motion Blur, On/Off). See Delete Controller on page 3597. Keyable Toggles the ability to be keyed of selected controller tracks. Use this with the Show Keyable button on the toolbar to see whether a track is keyable. Copy Puts a copy of the selected controller track into the Track View buffer. See Copy Controller on page 3590. Paste Copies the controller track in the Track View buffer onto the selected track of another object or objects. You have the option of pasting as a copy or as an instance. See Paste Controller on page 3591. 3548 | Chapter 15 Animation Collapse Controller Converts procedural animation tracks to Bezier, Euler, Linear, or TCB keyframe controller tracks. Can also be used to convert any controller to these type of controllers. Allows for key reduction by using a Samples parameter. See Collapse Controller on page 3549 Enable Anim Layer Assigns a Layer controller to each highlighted track in the hierarchy window. See Animation Layers on page 3164. NOTE You must first set keys on the desired tracks before they can be layer-enabled. Ignore Animation Range Ignores the animation range for the selected controller track. When set, the track plays independently of its range and its background changes color. See Ignore Animation Range on page 3598. Respect Animation Range Respects the animation range for the selected controller track. When set, the track plays only within its range. See Respect Animation Range on page 3599. Make Unique Lets you turn an instanced controller into a unique controller. If a controller is instanced, making changes to it will affect where ever it is copied. If the controller is unique, then changes to it will not affect anything else. See Make Controller Unique on page 3600. Out of Range Types Lets you extend the animation beyond the existing keyframes. Used primarily to loop and otherwise cycle your animation without having to copy keys. See Parameter Curve Out-of-Range Types on page 3601. Properties Displays the Properties dialog, which gives access to the key interpolation types. Different controller types will offer individual options here. For example a Position XYZ controller will offer Fast, Slow, Linear, Smooth, Step, Bezier and Auto Tangent as key options, while a TCB controller will not show any of those controls. For some controllers this is the primary gateway to the animation parameters. See Properties (Track View Key Window) on page 3618. Collapse Controller Track View > Track View menu > Controllers > Collapse Controllers The Collapse Controller tool allows you to convert procedural animation tracks into tracks with keyframes. A procedural track is an expression track, wired parameter, noise controller, or even something like a list controller. Track View Menu Bar | 3549 You can also use this tool to convert any controller track to a simple keyframed track. You can convert rotation tracks to either Euler or TCB, and collapse Position and Scale tracks to either Bezier or Linear controllers. You can collapse an entire track, or collapse a range of frames within a track by setting the Start and End frames. A Samples parameter lets you define how many frames will be placed between keys. Collapse Controller can be used to collapse any number of selected tracks at once. This functionality is similar to the Collapse button found in the Collapse Transform group of the Motion panel > Trajectories rollout on page 3121. WARNING If you are using a Path constraint with the Follow option, using Collapse Controller to collapse the position and rotation tracks will not preserve rotation properly, because additional rotation is applied by the Path constraint. If you want to collapse this kind of track, use Collapse in the Collapse Transform group of the Motion panel > Trajectories rollout instead. Procedures To collapse a procedural controller track: 1 In a viewport, select an object with a procedural controller, then right-click and choose Curve Editor from the quad menu. The Track View – Curve Editor is displayed. 2 In the Curve Editor's Controllers window, select the track you want to collapse. Then choose Controller > Collapse Controller from the Track View menu. The Collapse Controller dialog appears. 3 Change the Samples to specify the number of frames between keys. The default value of 1.0 creates a key for every other frame, which might be more than you want to work with. 4 Select the type of controller that you want the keys to use after collapsing. Position and Scale tracks collapse to either Bezier or Linear. Rotation tracks collapse to either Euler or TCB. NOTE TCB controllers will not display function curves. 5 Click OK. 3550 | Chapter 15 Animation The Key window displays the curves for the collapsed animation. The track bar displays the keys, as does the Track View – Dope Sheet. TIP If you want to collapse the controller into a weighted list controller, turn on Add To New Layer. The original controller will be stored on a layer with a weight of 0.0. It will have no effect, but will be available for future use, if need be. Interface Start Frame Sets the first frame of the range of animation to be collapsed. Default=The first frame of the original controller's active range. End Frame Sets the last frame of the range of animation to be collapsed. Default=The last frame of the original controller's active range. WARNING If you choose a range of frames smaller than the original range, the animation within the range will be collapsed, and the remaining motion will be discarded unless Add to New Layer is on. Samples Sets the granularity of the collapse operation. This value defines the number of frames between keys. Default=1.0. Collapse to Sets the type of controller the procedural track will become: ■ Bezier or Euler Controller When this is chosen, Position, Scale, and scalar parameter tracks will be assigned Bezier controllers. Rotation tracks will be assigned Euler controllers. Track View Menu Bar | 3551 ■ Linear or TCB Controller When this is chosen, Position, Scale, and scalar parameter tracks will be assigned Linear controllers. Rotation tracks will be assigned TCB controllers. NOTE TCB controllers will not display function curves. Add to New Layer When this is turned on, the collapsed controller is added as a new layer in a weighted list controller on page 3194. Default=off. This option is useful because it keeps the old controller on another layer with a weight of 0.0. This lets you restore the original animation easily if you need to. Tracks Menu Graph Editors menu > Track View - Curve Editor > Tracks menu Graph Editors menu > Track View - Dope Sheet > Tracks menu Main toolbar > Curve Editor (Open) > Tracks menu There are two types of special tracks that can be accessed from the Tracks menu. Note Track Lets you add or remove note tracks to your scene. Note tracks can be used for variety of purposes to add information to any track in Track View. See Add Note Track on page 3604. Visibility Track Lets you add or remove visibility tracks to objects your scene. You can also keyframe visibility by changing the visibility parameter in the Object Properties dialog when Auto Key is on. See Add Visibility Track on page 3611. Keys Menu Track View > Keys menu The commands on the Keys menu give you control over keys when working in either the Curve Editor or the Dope Sheet. Add Keys Adds keys in the Curve Editor or Dope Sheet. See Add Keys (Dope Sheet) on page 3617. 3552 | Chapter 15 Animation Reduce Keys Reduces the amount of keys on curves, or in edit keys mode in Dope Sheet. See Reduce Keys on page 3640. Move Moves keys either vertically (in value) or horizontally (in time). See Move Keys (Dope Sheet) on page 3613 or Move Keys (Curve Editor) on page 3652. Slide Moves keys, and adjacent keys slide away to make room for the move. See Slide Keys on page 3614. Scale Values Proportionally increase or decrease the key values (in space, not time). Use in combination with the Scale Value Origin Slider. See Scale Values on page 3655. Scale Keys - Time Proportionally increase or decrease the key values (in space, not time). Use in combination with the Scale Value Origin Slider. See Scale Keys - Time on page 3616. Use Soft Select When turned on, affects keys adjacent to a selection set of keys according to a falloff threshold. Works on Curves and Dope Sheet edit keys mode. See Use Soft Select on page 3553. Soft Select Settings Use Soft Select Settings to display the dialog that lets you control the falloff range of the soft selection. Select some keys, then watch the Track View Key window while you adjust the range value. See Soft Selection Settings on page 3554. NOTE By default, the Soft Selection dialog appears as a toolbar on the bottom of the Track View dialog. Align to Cursor Proportionally increases or decreases the key values (in space, not time). Use in combination with the Scale Value Origin Slider. See Align to Cursor on page 3610. Snap Frames When this is on, keys always snap to frames. When off, you can move keys to sub-frame positions. See Snap Frames on page 3608. Use Soft Select Track View > Keys menu > Use Soft Select When on, Use Soft Select affects keys adjacent to a selection set of keys according to a falloff threshold. This applies to both Curve Editor keys and Dope Sheet Edit Keys modes. Track View Menu Bar | 3553 To adjust the Soft Selection range and falloff, choose Soft Select Settings on the Keys menu. TIP Keys are “soft-selected” across time only (horizontally). See also: ■ Soft Selection Settings on page 3554 Procedures To soft select keys in Track View: 1 In either Dope Sheet > Edit Keys mode or in the Curve Editor, select a single key in the middle of the animation curve or graph. 2 From the Keys menu, choose Use Soft Select. 3 From the Keys menu, choose Soft Select Settings The Soft Selection Settings dialog appears. 4 Change the Range and observe the soft selection display in the keys window. Soft Selection Settings Track View menu bar > Keys > Use Soft Select Track View menu bar > Utilities > Track View Utilities > Soft Selection Settings Manager Displays a dialog with controls to adjust the range and falloff of the soft selection of keys in the Dope Sheet and Curve Editor. Interface Soft Toggles usage of the soft selection. When this is off, only the selected keys are used, the soft selection is not. 3554 | Chapter 15 Animation Range Determines the range of keys affected by the soft selection. Falloff Determines the distribution of the strength of the soft selection over the range of keys. Curves Menu Graphic Editors menu > Track View - Curve Editor > Curves menu Main toolbar > Curve Editor (Open) > Curves menu The Curves menu is only available when working in Track View's Curve Editor mode. The tools on this menu facilitate curve adjustments. Apply – Ease Curve Applies curves to selected tracks that allow you to effect the timing of the animation. See Apply Ease Curve / Apply Multiplier Curve on page 3660. Apply – Multiplier Curve Applies curves to selected tracks that allow you to effect the strength of the animation. See Apply Ease Curve / Apply Multiplier Curve on page 3660. Remove Removes Ease and Multiplier Curves. See Remove Ease/Multiplier Curve on page 3662. On/Off Turns Ease and Multiplier Curves on or off. See On/Off (Curves) on page 3662. Ease Curve Out-of-Range Types Applies Eases to Parameter Out of Range keys. See Ease Curve Out-of-Range Types on page 3663. Multiplier Curve Out-of-Range Types Applies multiplier curves to Parameter Out of Range keys. See Multiplier Curve Out-of-Range Types on page 3665. Time Menu Graph Editors menu > Track View - Dope Sheet > Time menu Use tools on the Time menu to edit, adjust, or reverse time. The Time menu is available only when Track View is in Dope Sheet mode. The commands on the Time menu are available only when Edit Keys is on. If you are using Edit Ranges, these commands will not be accessible. If you are using Edit Keys, once you select a time range, the remainder of the time menu commands will become available for use. Track View Menu Bar | 3555 Select Select a time range. Insert Add blank periods of time into a selected range. Cut Remove a time selection. Copy Copy a time selection. Includes any keys within the time selection Paste Duplicates a copied or cut selection. Reverse Rearranges the order of keys within a time range, flips time from back to start. Options Menu Track View > Options menu The Options menu contains a series of toggles and switches that control how items are handled in the Track View window. Interactive Update on page 3556 Sync Cursor Time on page 3557 Auto Expand on page 3557 Auto Select on page 3559 Auto Scroll on page 3559 Modify Subtree on page 3559 (Dope Sheet only) Modify Child Keys on page 3561 (Dope Sheet only) Manual Navigation on page 3561 Interactive Update Track View > Options menu > Interactive Update Interactive Update controls whether editing keys in Track View updates the viewports in real time. Also, turning off Interactive Update allows faster animation playback in some cases. Interactive Update When on, editing keys in Track View updates the viewports with any changes that affect the current frame while your mouse button is down. When off, the viewports are updated only after you release the mouse button. Default=Off. 3556 | Chapter 15 Animation For example, if you're at frame 10 and there are position keys at frame 0, 20, 30, and 50, then editing either a key at frame 0 or 20 with Interactive Update on potentially lets you see the changes in the viewport as you drag the key. However, editing a key at frame 50 is unlikely to cause a position change at the current frame, so you won't see any difference with Interactive Update on or off. To view the results of editing keys anywhere in Track View in real time, use Sync Cursor Time on page 3557 instead. Turning on Sync Cursor Time automatically turns on Interactive Update as well, so you can see all changes interactively. Keep this turned off when you are working in big files and moving large numbers of keys. Default=Off. In some circumstances, simply playing back an animation or dragging the time slider with Track View open, without editing keys, can cause performance issues. If you experience this, and Interactive Update is on, turn it off to improve playback performance. Sync Cursor Time Track View > Options menu > Sync Cursor Time Sync Cursor Time Snaps the time slider to the cursor position. When on, clicking the cursor in the Track View window moves the time slider to that spot in time. When you release the mouse button, the time slider jumps back to its previous position. When off, the time slider does not jump to the cursor position; you need to click the time slider and move it by hand. Default=Off. Turning on Sync Cursor Time also turns on Interactive Update on page 3556 so you can edit keys anywhere in Track View by dragging them and see your results right away. The time slider jumps to the frame at which the key resides and the viewport displays your changes in real time. Auto Expand Track View > Options menu > Auto Expand submenu Auto Expand determines the behavior of the controller window display based on choices made from a submenu. To turn Auto Expand off with a single click, choose Manual Navigation from the Options menu: The Auto Expand settings are then disregarded. Track View Menu Bar | 3557 When you are working on a specific animation task, turn off the unnecessary options to focus the controller window on what you need to see. NOTE The default auto-navigation setting for the Dope Sheet editor auto-expands only to the node track for the currently selected object. This reduces the number of tracks whose keys need to be displayed and also helps enforce the top-down workflow for which the Dope Sheet editor is designed. Interface Selected Objects Only When this is on, the controller window displays the tracks for highlighted objects only. Default=On. Transforms Expands the Hierarchy list to display the highlighted object's Transform track. Default=On. XYZ Components Expands the highlighted object's Transform track to display individual XYZ components contained in each Transform controller (such as Position and Scale). Limits Expands the highlighted object's Limits track to display its parameters (such as Upper Limit and Lower Smoothing). To be used in conjunction with the Limit Controller on page 3181. Default=On. Keyable Expands the highlighted object's Hierarchy list to display keyable tracks. You must also enable Transform or XYZ Components to see results. Also expands the Environment and Global Shadow Parameters Hierarchy lists. Animated Expands the highlighted object's Hierarchy list to display animated tracks. Base Objects Expands the highlighted object's base object track to display its parameters (such as Height/Width/Length). Modifiers Expands the highlighted object's modifier track to display modifiers applied to that object. Materials Expands the highlighted object's material track to display materials parameters. Children Expands the Hierarchy list to display all children starting from the highlighted object. 3558 | Chapter 15 Animation Auto Select Track View > Options menu > Auto Select Provides options to determine which types of tracks are selected when a Track View window is opened, or node selection changes. Options include Animated, with submenu choices of Position, Rotation and Scale. When this is turned on, animated curves are automatically selected when opening the controller window, using the submenu choices as well. Additional filtering of the controller window can be accomplished by using Filters, such as combining only selected tracks with only animated tracks. Auto Scroll Track View > Options menu > Auto Scroll submenu Provides options to control the automatic scrolling of the controller window in Dope Sheet and Curve Editor. When these are chosen, the choice is displayed at the top of the controller window. Options include Selected and Objects. Interface Selected When this is on, the controller window automatically scrolls to move the viewport selection to the top of the controller window. Objects When this is turned on, the controller window automatically scrolls to show all the objects in the scene in the controller window. Modify Subtree Track View - Dope Sheet > Dope Sheet toolbar > Modify Subtree Track View - Dope Sheet > Options menu > Modify Subtree Keys Modify Subtree lets you move and scale on all sub-tracks for any/all tracks on a node. It has two modes: Edit Keys and Edit Ranges. Track View Menu Bar | 3559 NOTE Modify Child Keys on page 3561 works similarly, but for child nodes of the current object. Modify Subtree lets you edit timing for a subset of tracks for an object, while Modify Child Keys lets you edit the timing of an entire linked structure, group, or character. Procedures To drag the ranges and linked descendants of an object: 1 In the Dope Sheet Editor, click Edit Ranges. Modify Subtree is on by default. 2 Drag the World range bar or the Objects range bar. With Modify Subtree on, a range bar is displayed in the Objects branch. The Objects branch is the default parent of all named objects in the scene. Dragging a parent Objects range bar with Modify Subtree on affects all tracks subordinate to the object and all tracks of its linked descendants. Dragging the World range bar with Modify Subtree on affects all tracks in the scene, including Sounds, Materials, and all tracks of all objects. 3 Turn Modify Subtree off. The World range bar and the Objects range bar are no longer available. In this mode you can affect the range of an individual object or track without affecting its descendants. Interface Modify Subtree (Edit Keys) Edits (cuts, pastes, or moves) keys in the parent track. Anything you do to the keys in the parental track affects the child keys as well. NOTE Adding keys only affects the current track. 3560 | Chapter 15 Animation Modify Subtree (Edit Range) Affects the tracks of an object and all of its descendent objects. When you edit the range of a parent object, the child objects are also affected. Modify Child Keys Track View - Dope Sheet > Options menu > Modify Child Keys Track View - Dope Sheet > Track View toolbar > Modify Child Keys button Provides the ability to turn changes on and off down the hierarchy when working in Dope Sheet mode. Changes that you have made to a parent object can be added to the children by clicking this toolbar button. Similarly, if you have made changes with Modify Subtree on, and you want to remove the changes from the children, clicking Modify Child Keys will remove those changes from the children that you previously made to the parent. This tool is primarily designed for use in Dope Sheet Edit Ranges mode. Modify Subtree allows you to move, scale, edit time, and so on, on all sub-tracks for any or all tracks on a node. Modify Child Keys does the same thing, but also extends to child nodes as well. Modify Subtree lets you edit timing for an object of subset of tracks on an object, while modify child keys lets you edit the timing of an entire linked structure, group, or character. Manual Navigation Main toolbar > Curve Editor (Open) > Options menu > Manual Navigation Graph Editor > Track View - Curve Editor > Right-click the controller window. > Manual Navigation. Manual Navigation turns off the Auto Scroll features of the controller window and allows you to select which tracks will display on an individual basis. The default behavior of the Controller window is to automatically display the selected object animated tracks, and to hide them when the object is not selected in the viewport. Turning on Manual Navigation changes this behavior so that deselecting the object will not make the curves disappear from view. Track View Menu Bar | 3561 When Manual Navigation is engaged, buttons appear in the Controller window next to the tracks, that allow you to expand or collapse individual containers such as objects or materials. TIP Use Alt+right-click to quickly access tools for expanding and collapsing selected tracks. To collapse individual components in the Controller window: 1 On the Graph Editors menu, choose Track View - Curve Editor. 2 Right-click the controller window and turn on Manual Navigation. 3 Click any item label in the controller window. An small minus sign within a circle appears to the left of the entry. 4 Click the minus sign in the circle. The tracks collapse. A plus sign within a circle appears. When Manual Navigation is turned off, tracks expand based on Auto-Expand choices made on the Settings > Auto Expand menu. Display Menu Track View > Curve Editor > Display menu Display is only available when Track View is in Curve Editor mode. The toggles in the Display menu let you adjust and customize how the items in the Curve Editor appear. Selected Key Stats Displays the statistics for the selected keys in the function curve window. This is useful because you only see statistics for the keys you are working on. See Show Selected Key Statistics on page 3680 All Tangents Displays all the tangent handles for all keys in the Curve Editor. Custom Icons Changes the display of the icons in the Hierarchy list from 2D to 3D shaded. Keyable Icons Displays a keyable icon that lets you define if a track is keyable or not. Red icons are keyable tracks, Black icons are not. Click the icon to toggle between these or use Keyable on the Controllers menu. See Keyable Icons on page 3563. 3562 | Chapter 15 Animation Hide Non-Selected Curves When this is on, if you deselect the object in the viewport, the function curve will also disappear from view in the Curve Editor. Default is on. See Hide/Show Non-Selected Curves on page 3565. Show Non-Selected Curves Turn this on so you can deselect an object in the viewport and still see its curves. Default is off. See Hide/Show Non-Selected Curves on page 3565 Freeze Non-Selected Curves Displays nonselected curves, but doesn't allow you to edit them. Only available when Show Non-Selected Curves is on. Default is on. See Freeze Non-Selected Curves on page 3667. Filters provides controls to filter the display in Curve Editor. There are a wide range of options to show, hide and display. See Filters on page 3584. Show All Tangents Track View > Curve Editor toolbar > Show All Tangents Curve Editor menu bar > Display > All Tangents This feature shows all tangent handles on any displayed curves. You can make changes to multiple tangent handles simultaneously by using Show All Tangents in combination with Lock Tangents. See also: ■ Show Tangents on page 3658 Keyable Icons Main toolbar > Curve Editor (Open) > Display menu > Keyable Icons Menu bar > Graph Editors > Track View - Curve Editor > Track View toolbar > Show Keyable Icons Keyable icons provide a method to tag a track so that it can receive keyframes or be exempted from keyframes. An icon is displayed in the Controller window next to the name of track to indicate whether or not the track is keyable. You can toggle the state of the icon to define the keyable property. Track View Menu Bar | 3563 You can also use the Track View Controller menu > Keyable command to make tracks keyable in a single operation. You can define keyboard shortcuts for making tracks keyable. By combining the use of keyable icons with key filters, you can use Set Key animation mode to add keyframes to just the tracks you want to work with, and avoid keyframing other tracks. Red key icon means a track is keyable. When the keyable icons are visible, click the red icon to turn off the track. Black key in a circle indicates a track is not keyable. WARNING When you are working with Set Key animation and you have used key filters to select object parameters or materials, all of the parameters will be keyed unless you turn off the track's keyable property. TIP You can assign a keyboard shortcut for making tracks keyable, by choosing Keyable Property Toggle in the Track View group, on the Keyboard panel of the Customize User Interface dialog. Procedures To make an individual track keyable: 1 Select the object in the viewport. 2 Right-click and choose Curve Editor. The Function Curve Editor opens, with the selected object tracks visible. 3 On the Track View toolbar, click Show Keyable Icons. 4 Click the red keyable icons for the tracks for which you want to prevent animation. 3564 | Chapter 15 Animation The tracks are changed, now marked with a black key in a circle. These tracks will not receive keyframes. Only the tracks marked with red keyable icons will. NOTE Keyable tracks work with both Auto Key and Set Key animation modes. To make multiple tracks keyable: 1 In Track View, with the object selected, hold down the Ctrl key and click each track to create a selection set of tracks for which you want to prevent animation. This can be for one or multiple objects TIP You can hold down the Shift key to select a group of sequential tracks at once. Alternately you can hold down the Alt key to select all tracks at the same level as a given track at once. NOTE If you select just a parent track such as Position, Controller > Keyable will toggle all of its sub-tracks, even if they’re not selected. 2 From the Controller menu, choose Keyable. The selected tracks are now defined as keyable. 3 From the Display menu, choose Keyable Icons. The keyable icon appears next to the tracks. The icon appears red for the tracks that are keyable, and black for the ones that are not. TIP Use the same procedure to make multiple tracks not keyable. The Controller > Keyable command toggles the keyability of the tracks. NOTE If you have a mixed keyable situation it will toggle the state of the first track and then set all remaining tracks to match the value of the first track Hide/Show Non-Selected Curves Main toolbar > Curve Editor (Open) > Display > Hide Non-Selected Curves or Show Non-Selected Curves These commands either hide or show function curves that are not selected in the controller window. Track View Menu Bar | 3565 When Hide Non-Selected Curves is on (the default), the curve will disappear when another track is chosen. When Show Non-Selected Curves is on, the curve will still be visible in the Key window when another track is chosen. If you turn on Show Non-Selected Curves, then you can also use Freeze Non-Selected Curves. This allows you to see the other curve but not edit it inadvertently. View Menu Track View > View menu These commands replicate those found on the Navigation toolbar in Track View. Pan Lets you move the window. See Pan (Track View) on page 3681. Zoom Lets you zoom in and out. See Zoom Track View Key Window on page 3684. Zoom Region Lets you zoom in to a rectangular area. See Zoom Region (Track View) on page 3685. Zoom Horizontal Extents Zooms to the active time segment. See Zoom Horizontal Extents on page 3682. Zoom Horizontal Extents Keys Zooms to show all keys. See Zoom Horizontal Extents on page 3682. Zoom Value Extents (Curve Editor only) Zooms vertically so that you can see the full height of the curve. Zoom Values (Curve Editor only) Zooms the contents of the keys window vertically. Drag upward to increase magnification, or downward to decrease magnification. Utilities Menu Graph Editors menu > Track View - Curve Editor > Utilities menu Graph Editors menu > Track View - Dope Sheet > Utilities menu Main toolbar > Curve Editor (Open) > Utilities menu 3566 | Chapter 15 Animation The Utilities menu on page 3619 gives you access to the Track View Utilities dialog. The dialog shows a list of tools you can use when working with keys. This menu is available in both Curve Editor and Dope Sheet modes. Randomize Keys Changes the values of selected keys randomly based on range thresholds. Use this on either values or time. For details, see Randomize Keys Utility on page 3620. Create Out of Range Keys Creates new keys for selected tracks based on Out-of-Range Parameters. Adjust the samples value to change the granularity of the key creation. For details, see Create Out of Range Keys Utility on page 3622. Track View Menu Bar | 3567 Select Keys by Time Allows you to select the keys within a time range. Turn off Clear Previous Selection to create discontinuous selection sets. For details, see Select Keys By Time Utility on page 3624. Soft Selection Settings Manager Displays a soft selection dialog at the bottom of the Track View window. For details, see Soft Selection Settings on page 3554. Euler Filter Corrects rotation anomalies by filtering Euler rotation tracks. For details, see Euler Filter on page 3625. Current Value Editor Provides transform type-in capability from within the Track View modes. Allows you to choose between absolute and relative value editing. The name of the controller appears above the axis choices. For details, see Current Value Editor on page 3627. 3568 | Chapter 15 Animation This utility starts a floating Current Value window that works for either Dope Sheet – Edit keys mode or Curve Editor. It doesn't work for Edit Ranges. Not for use with object parameters, the current value editor is intended for use primarily with Transform controllers. Track View Quad Menu Right-clicking the Key window or Hierarchy list brings up a quad menu that offers instant access to tools. The menu is context-sensitive, so its contents vary, depending on what is highlighted. For example, when the Hierarchy list is active, you can assign copy and paste controllers, and open properties which you can animate. You can set the Auto Expand and Manual Navigation controls to change the behavior of the Controller window display. The commands from the alternative quad menu (Alt+right-click) are integrated in the right-click quad menu on page 3538. The Select, Expand, and Collapse commands are therefore accessible along with the existing quad menu commands, improving workflow efficiency. Track View Menu Bar | 3569 Controller window quad menu When the keys window is active you can draw curves, add keys, move keys and scale values. You can also reduce keys. 3570 | Chapter 15 Animation Key window quad menu In the Controller window, if you hold down Alt+right-click you can display an alternate quad menu, which is also integrated with the main quad menu. This menu was available in earlier versions of the program as a default right-click menu in Track View. Alt+right-click for alternate quad menu for Controller window You can add additional commands to these quad menus. You can customize the Track View quad menu the same as any other quad menu. Procedures To customize the Track view quad menu: 1 On the Customize menu choose Customize User Interface. 2 On the Customize User Interface dialog, click the Quad tab. Track View Menu Bar | 3571 3 From the Quad pull-down menu, choose Track View Quad, or Track View Key Quad. 4 Change the Group to Track View, and then drag items from the table of actions on the left to the window in the lower right. Track View Toolbars Curve Editor Toolbars Main toolbar > Curve Editor (Open) > Curve Editor toolbar Track View - Dope Sheet > Modes menu > Curve Editor > Curve Editor toolbar The Curve Editor toolbars contain tools that are also available from the Track View menu bar. The toolbars can be floated, docked, and rearranged as you like. These include the Keys toolbar, The Key Tangents toolbar, and the Curves toolbar, all of which are displayed by default. You can also display other toolbars for quick access to additional tools. To show the hidden toolbars, right-click an empty area between toolbars, choose Show Toolbars, and then pick the toolbar you want to display. Key Tools Toolbar Filter Use this to determine what is displayed in the Controller window and the Key window. See Filters on page 3584. Move Keys Moves keys freely both horizontally and vertically on the function curve graph. See Move Keys on page 3613. Move Keys—Horizontal Moves keys only horizontally on the function curve graph. See Move Keys on page 3613. 3572 | Chapter 15 Animation Move Keys — Vertical Moves keys constrained vertically on the function curve graph. See Move Keys on page 3613. Slide Keys Use Slide Keys in the Curve Editor to move a group of keys and slide adjacent keys away as you move. See Slide Keys on page 3614. Scale Keys Use Scale Keys to compress or expand the amount of time between keyframes. Works both in Curve Editor and Dope Sheet modes. See Scale Keys - Time on page 3616. Scale Values Proportionally increases or decreases the values of the keys, rather than moving the keys in time. See Scale Values on page 3655. Add Keys Creates keys on existing curves on the function curve graph or Dope Sheet. See Add Keys (Dope Sheet) on page 3617. Draw Curves Use this to draw new curves, or revise existing ones by sketching directly on the function curve graph. See Draw Curves on page 3657. Reduce Keys Use this to reduce the amount of keys in a track. See Reduce Keys on page 3640. Key Tangency Toolbar Set Tangents to Auto Located on the Key Tangents Track View toolbar, select keys then click this button to set tangents to Auto Tangent automatically. A flyout also lets you set in tangents and out tangents individually to Auto. Selecting the handles of an Auto tangent changes them to custom, and makes them available for editing. Set Tangents to Custom Sets keys to custom tangents. Select the key then click this button to make the key handles available for editing. Set in Track View Toolbars | 3573 and out tangents individually using the flyout. Use the Shift key to break continuity when using handles. Set Tangents to Fast Sets key tangency to fast in, fast out, or both in and out, depending on your choice from the flyout. Set Tangents to Slow Sets key tangency to slow in, slow out, or both in and out, depending on your choice from the flyout. Set Tangents to Step Sets key tangency to step in, step out, or both in and out, depending on your choice from the flyout. Use step to freeze motion from one key to the next. Set Tangents to Linear Sets key tangency to linear in, linear out, or both in and out, depending on your choice from the flyout. Set Tangents to Smooth Sets key tangency to smooth. Use this to even up discontinuous motion. Curves Toolbar Lock Selection Locks the key selection. Once you have created a selection, turn this on and you can't inadvertently select something else. See Lock Selection on page 3609. Snap Frames Restricts key movement to frames. Keys that are moved will always snap to frames when this is on. When this is off, you can move a key so it falls between frames and becomes a sub-frame key. Default=on. See Snap Frames on page 3608. Parameter Out-of-Range Curves Use this to repeat keyframed motion beyond the range of the keys. Includes options for Loop, Ping Pong, Cycle, or Repeat relatively, as well as constant and linear. If you use Parameter 3574 | Chapter 15 Animation Out-of-Range types, you can later create keys using Track View > Utilities > Create Out-of-Range Keys. See Parameter Curve Out-of-Range Types on page 3601 and Create Out of Range Keys Utility on page 3622. Show Keyable Icons Displays an icon that defines a track as keyable or not. Use this to set keys only on the tracks you want to keyframe. Turning off a track in Track View also restricts the movement in the viewport. Red keys indicate keyable tracks, black keys are not keyable. See Keyable Icons on page 3563. Show Tangents Hides or displays tangent handles on the curves. Use this to hide the handles on individual curves. See Show Tangents on page 3658. Show All Tangents Hides or displays all tangent handles on the curves. Use this to hide the handles quickly when many keys are selected. See Show All Tangents on page 3563. Lock Tangents Locks the selection of multiple tangent handles, so you can then manipulate several handles at once. When Lock Tangents is off, you can only manipulate one key tangency at a time. See Lock Tangents on page 3660. Biped Toolbar These tools let you choose which animation curves to display in the Curve Editor. You can toggle between the position and rotation curves, as well as toggle the separate curves representing the X, Y, and Z axes of the current biped selection. Show Biped Position Curves Displays the position curves for the animated biped selection. Also chooses Pos Curve from the Curve Type drop-down list of the Animation Workbench Toolbar on page 4487. Show Biped Rotation Curves Displays the rotation curves for the animated biped selection. Also chooses Rot Curve from the Curve Type drop-down list of the Animation Workbench Toolbar on page 4487. Default=on. Track View Toolbars | 3575 Show Biped X Curves Toggles the X axis of the current animation or position curves. Also toggles the X button of the Animation Workbench Toolbar on page 4487. Default=on. Show Biped Y Curves Toggles the Y axis of the current animation or position curves. Also toggles the Y button of the Animation Workbench Toolbar on page 4487. Default=on. Show Biped Z Curves Toggles the Z axis of the current animation or position curves. Also toggles the Z button of the Animation Workbench Toolbar on page 4487. Default=on. Name:Track View Toolbar Name Track View lets you name the Track View. By entering a name in this field, you create a named Track View that you can recall using the Graph Editors menu > Saved Track View submenu. Also available in Dope Sheet mode. Track Selection Toolbar Zoom Selected Object Puts the currently selected object at the top of the Hierarchy list. Also available in Dope Sheet mode. See Zoom Selected Object on page 3669 for details. NOTE If multiple objects are selected, the Hierarchy list zoom is based on an alphabetical sorting. Select By Name Highlights filtered tracks in the Controller window based on the current field value. Also available in Dope Sheet mode. See Select By Name on page 3670 for details. 3576 | Chapter 15 Animation TIP You can use commas (,) to include multiple names in your selection. Track Set List Allows you to assign a name to the current track selection (referred to as a track set), and then later reselect those tracks by choosing the respective track set from the list. Also available in Dope Sheet mode. See Track Set List on page 3672 for details. You can edit track set lists via the Edit Track Set button, which opens the Track Sets Editor dialog on page 3674. Navigation Toolbar Navigation Track View provides tools to pan and zoom the Key window. You can zoom to the extents of the time or the values. Also available in Dope Sheet mode. See Status Bar/View Controls on page 3668. Key Stats Toolbar Key Stats Track View provides tools for the display and type-in transform of key values. Also available in Dope Sheet mode. Track View Toolbars | 3577 Dope Sheet Toolbars Main toolbar > Curve Editor (Open) > Modes menu > Dope Sheet > Dope Sheet toolbar These are the default toolbars that are visible when you open the Dope Sheet. Keys: Dope Sheet Toolbar Edit Keys Displays a Dope Sheet Editor mode that shows the keys as boxes on a graph. Use this to mode to insert, cut, and paste time. See Edit Keys on page 3607. Edit Ranges Displays a Dope Sheet Editor mode that shows the keyed tracks as range bars. See Edit Ranges on page 3642. Filter Use this to determine what is displayed in the Controller window and the Dope Sheet - Key window. See Filters on page 3584. Slide Keys Use Slide Keys in the Dope Sheet to move a group of keys and slide adjacent keys away as you move. Only slides keys on the same controller track. See Slide Keys on page 3614. Add Keys Creates keys on existing tracks on the Dope Sheet grid. Combine this tool with Current Value editor to adjust the key values numerically. See Add Keys (Dope Sheet) on page 3617. Scale Keys Use Scale Keys to compress or expand the amount of time between keyframes. Works both in Curve Editor and Dope Sheet modes. Uses the time slider as an origin point to or from which to scale. See Scale Keys Time on page 3616. 3578 | Chapter 15 Animation Time: Dope Sheet Toolbar Select Time Lets you select a time range. Time selections include any keys that might be included within the time range. Use Insert Time, then Select Time to choose the time range. See Select Time on page 3630. Delete Time Removes selected time from the selected tracks. Cannot be applied globally to shorten the time segment. This removes keys but leaves “blank” frames behind. See Delete Time on page 3631. Reverse Time Reverses the keys on selected tracks within a selected time segment. See Reverse Time on page 3635. Scale Time Scales the keys within a selected time segment for selected tracks. See Scale Time on page 3636 Insert Time Allows you to insert a range of frames as a time insertion. Existing keys slide out of the way to make room for inserted time. Once you have made a time selection with Insert Time, you can then use all the other time tools. See Insert Time on page 3635. Cut Time Deletes time selections from the selected tracks. See Cut Time on page 3631. Copy Time Duplicates the selected time selection so it will be available for pasting. See Copy Time on page 3632. Paste Time Adds cut or copied time selections into the selected tracks. See Paste Time on page 3633. Track View Toolbars | 3579 Display: Dope Sheet Toolbar Lock Selection Locks the key selection. Once you have created a selection, turn this on so that you cannot inadvertently select something else. See Lock Selection on page 3609. Snap Frames Restricts key movement to frames. Keys that are moved will always snap to frames when this is on. When this is off you can move a key so it falls between frames and become a sub-frame key. Default=on. See Snap Frames on page 3608. Show Keyable Icons Shows an icon that defines a track as keyable or not. Use this to set keys only on the tracks you desire to keyframe. Turning off a track in Track View will also restrict the movement in the viewport. Red keys show keyable tracks, black keys are not keyable. See Keyable Icons on page 3563. Modify Subtree When this is on, allows key manipulations to parent tracks to affect the tracks down the hierarchy. On by default in Dope Sheet mode. See Modify Subtree on page 3559. Modify Child Keys If you modify the parent without Modify Subtree on, click Modify Child Keys to apply the change to the child keys. Similarly, if you modify the parent with Modify Subtree on, Modify Child Keys toggles those changes off. See Modify Child Keys on page 3561. Name:Track View Toolbar Name Lets you name the Track View. By entering a name in this field, you create a named Track View window that you can later recall using the Graph 3580 | Chapter 15 Animation Editors menu > Saved Track View submenu. Also available in Curve Editor mode. Track Selection Toolbar Zoom Selected Object Puts the currently selected object at the top of the Hierarchy list. Also available in Curve Editor mode. See Zoom Selected Object on page 3669 for details. NOTE If multiple objects are selected, the Hierarchy list zoom is based on an alphabetical sorting. Select By Name Highlights filtered tracks in the Controller window based on the current field value. Also available in Curve Editor mode. See Select By Name on page 3670 for details. TIP You can use commas (,) to include multiple names in your selection. Track Set List Allows you to assign a name to the set of currently highlighted tracks (referred to as a track set), and then later re-select those tracks by choosing the respective track set from the list. Also available in Curve Editor mode. See Track Set List on page 3672 for details. You can edit track set lists via the Edit Track Set button, which opens the Track Sets Editor dialog on page 3674. Track View Toolbars | 3581 Navigation Toolbar Navigation Track View provides tools to pan and zoom the Key window. You can zoom to the extents of the time or the values. Also available in Curve Editor mode. See Status Bar/View Controls on page 3668. Key Stats Toolbar Key Stats Track View provides tools for the display and type-in transform of key values. Also available in Curve Editor mode. Controller Toolbar Main toolbar > Curve Editor (Open) > Right-click the starting area of a toolbar (containing two vertical bars). > Show Toolbars > Controllers : Animation Editor This toolbar contains the basic tools you need to work with controllers in Track View. This toolbar is hidden as a default. Right-click the Track View toolbar and choose Show Toolbars > Controllers: Track View to display these tools. All of these commands are always available via the Track View Controller menu. Filters Click to display the Filters dialog on page 3585, which you can use to control what Track View displays in the Controller and Key windows. 3582 | Chapter 15 Animation Copy Controller Use this to copy a controller and its animated tracks from a selected object. Paste Controller Pasts the copied or cut controller onto a new object or selection of object tracks. Assign Controller Use this to assign a new controller to an object. All objects have a default controller assigned; use this to change the default controller to a different one. Select the controller track in the Controller window, then use Assign Controller to select a new one. Delete Controller Delete a controller from an object. The controller will be replaced with a default controller. Make Controller Unique Changes an instanced controller to a unique controller. This lets you make changes to the controller without affecting any other object tracks. Procedures To display the Controller toolbar: 1 Right-click the blank area on the Track View toolbar, to the right of the Modify Child Keys button. 2 From the right-click menu, choose Show Toolbars. 3 Choose Controllers: Track View from the list. Ranges: Dope Sheet Toolbar Main toolbar > Curve Editor (Open) > Right-click the starting area of a toolbar (containing two vertical bars). > Choose Show Toolbars > Ranges : Dope Sheet. This toolbar, hidden by default, provides tools you use when working with ranges. Track View Toolbars | 3583 Edit Ranges Changes Dope Sheet to display range bars rather than tracks of keys. See Edit Ranges on page 3642. Position Ranges Adjusts the relationship between a range bar and its keys. Turning this on will allow you to see the keys while moving the range bar. Recouple Ranges Resizes the range bar to fit the first and last key of the selected track. Extras: Dope Sheet Toolbar Main toolbar > Curve Editor (Open) > Mode > Dope Sheet > Right-click the blank area of the toolbar to the right of Modify Child Keys. > Show toolbar > Extras: Dope Sheet toolbar Provides extra tools for use in Dope Sheet mode. Exclude Left End Point Prevents a key at the first frame of a selected block of time from being copied to the clipboard. Exclude Right End Point Prevents a key at the last frame of a selected block of time from being copied to the clipboard. Filters Main toolbar > Curve Editor (Open) > Track View toolbar > Filters Graph Editors menu > Track View - Curve Editor/Track View - Dope Sheet > Track View toolbar > Filters Graph Editors menu > Track View - Curve Editor/Track View - Dope Sheet > Track View menu > Display > Filters 3584 | Chapter 15 Animation Filters lets you determine which categories of items appear in Track View. When you click the Filters button, Track View's Filters dialog on page 3585 is displayed. You can also right-click the Filters button for quick selection of items. TIP You can set up a default filter configuration. Open a single Track View, set the filters the way you want them to come up, and close the Track View. Save the (empty) scene as maxstart.max. This scene file is automatically loaded when you start the program. Procedures To position a selected object at the top of the Track View Hierarchy: 1 In a viewport, right-click a selected object. 2 From the right-click menu, choose Curve Editor or Dope Sheet. Track View opens with the selected object at the top of the Track View Hierarchy. To display the animated transform tracks for an object in Track View: 1 Select an object, then open a Track View window. 2 Right-click Filters. 3 From the right-click menu, choose Animated Tracks Only. 4 Right-click Filters again. 5 From the right-click menu, choose Selected Objects Only. Interface See Filters Dialog on page 3585. Filters Dialog (Track View) Main toolbar > Curve Editor (Open) > Toolbar > Filters Graph Editors menu > Track View - Curve Editor > Display menu > Filters You use the Filters dialog to choose what to display in Track View. For example, you can limit the view to animated tracks only, or tracks for selected objects. Track View Toolbars | 3585 This dialog also controls function curve display and transform display for Position, Rotation, Scale, and X, Y, and Z axes individually. Procedures To choose filter options: 1 On the Track View toolbar, click Filters. 2 Choose any of the filter options from the dialog. Interface Show group The Show group has options to display any of the following in the Hierarchy list window: ■ Hierarchy 3586 | Chapter 15 Animation ■ Objects ■ Space Warp Bindings ■ Transforms (Position, Rotation, Scale, X/Y/Z/W axes in any combination) ■ Modified Objects ■ Base Objects ■ Controller Types (off by default) ■ Note Tracks ■ Visibility Tracks ■ Sound ■ Materials/Maps ■ Material/Parameters ■ Static Values ■ Global Tracks: non-object tracks All Sets all Show check boxes to on. None Sets all Show check boxes to off. Invert Reverses the state of all Show check boxes. Hide by Controller Type group Track View Toolbars | 3587 Hide By Controller Type contains a window displaying a list of all controller types in 3ds Max. Choose one or more controller types to prevent them from appearing in the Hierarchy list. You can use the standard multiple-selection methods of Ctrl+click, Shift+click, or drag. All/None/Invert Selects either all items in the list, none of the items in the list, or inverts the current selection. NOTE When you hide a controller, its subcontrollers (if any) are hidden as well. For example, if you hide a PRS Transform controller, its Position, Rotation, and Scale controllers are also hidden. Show Only group Animated Tracks Displays only tracks that contain animation. Only the animated tracks are shown, each with its full hierarchy, whether or not the Hierarchy switch on page 3586is on. Selected Objects Displays only items for objects selected in the scene. As you select objects in the scene, the display in the Hierarchy list changes to show the current selection. The display of sound and materials branches are not affected by this filter. Selected Tracks Displays only items that you select prior to setting this filter. All of the displayed items are left-justified in the Hierarchy list regardless of their level in the hierarchy. Visible Objects Determines whether objects that are hidden in the viewports will appear in the Track View Hierarchy. This does not consider objects with tracks, but only objects that have been hidden. Default=on. 3588 | Chapter 15 Animation Keyable Tracks Displays only tracks that can receive keys. This property is toggled using the Keyable property available on the Track View Controller menu, or by clicking the keyable icon displayed using Show Keyable Icon. Default=off. Active Layer For each object listed in the hierarchy window with animation layers on page 3164 enabled, displays only the active layer, along with all nested controllers. TIP Newly available in Customize User Interface on page 7697 are actions and icons for all six Show Only options. Find them in the Track View group; their names all start with “Filter”. Hide by Category group Contains a list of check boxes that let you hide tracks based on categories similar to those found in the Display panel. Turning on one of these hides the entire category type and any subcomponents. Function Curve Display group Track View Toolbars | 3589 Check boxes in this group, when active, specify which transforms are suppressed, for which axis, and which RGB color values are suppressed. This is only used for controllers such as the Bezier Position controller that displays all three axis with one track selected. NOTE The “W” and “A” Filters are for use with the Point4 controller. The W is simply a fourth filter for position, and the A is for use with the floating-point RGBA controller, which is based on the Point4 controller. Copy Controller Main toolbar > Curve Editor (Open) > Highlight a controller track in the controller window. > Controller menu > Copy Main toolbar > Curve Editor (Open) > Highlight a controller track in the controller window. > Right-click any blank space on the Track View toolbar > Show Toolbars > Controllers: Track View > Copy Controller Copy Controller copies the selected item to the Track View clipboard. You can use Copy and Paste to copy object and modifier tracks, controllers, objects, and containers, depending on what you are working on. The Controller tools are also available as buttons on the Controllers: Track View toolbar. This toolbar is hidden by default; to unhide right-click the toolbar and choose Show Toolbars > Controllers: Track View. Not all tracks can be copied and pasted. The basic restrictions for using Copy and Paste in Track View are: ■ Only a single selected item can be copied. ■ A copied item can only be pasted into another item of the same type. ■ A copied item can be pasted into a selection of multiple items only if all of the items are of the same type. Procedures To copy and paste a modifier: 1 In the Track View Hierarchy, highlight a modifier track. 2 From the Controller menu, choose Copy. 3590 | Chapter 15 Animation 3 Click the object track for an object in the Track View Hierarchy. 4 From the Controllers menu, choose Paste. The Paste dialog is displayed. 5 Set the options in the Paste dialog, and click OK. The pasted modifier is inserted above the object track you selected. Note that it does not replace any of the tracks in the target object. To copy and paste a controller: 1 In the Track View Hierarchy, highlight a controller track. 2 On the Track View Controllers menu, click Copy Controller. 3 Highlight the controller track for an object in the Track View Hierarchy. Make sure you choose the same type of transform that you copied. 4 From the Controllers menu, choose Paste. The Paste dialog is displayed. 5 Set the options in the Paste dialog, and click OK. The controller is pasted onto the selected object. Paste Controller Main toolbar > Curve Editor (Open) > Highlight the track you want to paste to. > Controller menu > Paste. Main toolbar > Curve Editor (Open) > Highlight the controller track in the controller window. > Right-click any blank space on the Track View toolbar > Show Toolbars > Controllers: Track View toolbar > Paste Controller Keyboard > Ctrl+V The Paste controller pastes the contents of the Copy Controller buffer. You can use the Copy and Paste buttons to copy tracks, controllers, objects, and containers. All the Controller tools can also be found on the Controllers: Track View toolbar, which is hidden by default. Right-click the toolbar, then choose Show Track View Toolbars | 3591 Toolbars > Controllers: Track View to display the icons for Assign, Copy, Paste. Delete Controller and Make Controller Unique. TIP If you need a gizmo to follow a dummy object, use Copy Controller and Paste Controller to copy the animation from the dummy to the gizmo. Procedures See Copy Controller on page 3590. Interface Paste Controller Pastes an item from the Track View clipboard. The Paste dialog contains the following options: Copy/Instance Determines whether the cloned item is a simple copy or an instance of the original. Replace All Instances When you paste to any track that contains an instanced object, replaces all instances of the object with the object on the clipboard. If off, only the object in the selected track will be replaced. Any instanced objects will remain as they are. 3592 | Chapter 15 Animation Assign Controller Main toolbar > Curve Editor (Open) > Select the controller track in the controller window. > Controller menu > Assign Main toolbar > Curve Editor (Open) > Select the controller track in the controller window. > Right-click the controller track and choose Assign Controller. Keyboard > C Use Assign Controller to assign animation controllers to any animatable parameter or track in Track View. Animation controllers provide powerful tools for animating all the objects and materials in a scene. For example, rather than keyframing the position of an object in your scene, the object can follow a spline using the Path constraint, react to any animated parameter using a Reaction controller, or move to the beat of music using the Audio controller. You can combine controllers with a List Controller. You can drive a single vertex or control point on a complex object by a variety of controllers. You can also assign controllers using the right-click menu in the Track View Controller window. Or you can assign controllers in the Motion panel, in Schematic View, and by using the Animation menu. Constraints and Controllers Technically, there is no difference between a controller and a constraint. A constraint is simply a controller that requires the use of a second object. For example, a Path constraint is a controller that requires a spline object for a path. Special-Case Controllers Special-case controllers are not assigned manually with the Assign Controller command. They are applied automatically during certain procedures. Barycentric Morph Controller is applied by selecting an object and clicking Command panel > Geometry > Compound Objects > Morph. A Master Point Controller is assigned when animating vertices, control points, or vectors in the sub-object mode of an Editable Mesh, Editable Spline, Editable Patch, NURBS surface, or FFD modifier. Track View Toolbars | 3593 Slave Controllers can be assigned manually, but is also automatically applied to selected tracks when a Block controller is created in Track View Global Tracks. A Slave controller transfers key data to a Block controller. Slave controllers are described in the Block controller topic. Available Animation Controllers and Constraints Attachment Constraint on page 3288: A Position controller that attaches an object's position to a face on another object. The target object doesn't have to be a mesh, but must be able to convert itself to a mesh. Audio Controller on page 3135: Animates a parameter or object using a sound file. Bezier Controller on page 3138: Smoothes function curves between transform keys, giving the effect of continuous, natural movement. The Bezier controller is the default controller for position and scale. Barycentric Morph Controller on page 3137: Applied during the creation of a morph object. Each morph key represents a series of weights for all morph targets. Block Controller on page 3142: Group tracks from multiple objects into Blocks. Blocks can be copied, pasted, scaled and saved. Use Blocks to quickly re-create a complex motion anywhere in an animation. Color RGB Controller on page 3149 (Point 3 XYZ Controller): Creates separate tracks for red, green, and blue. Euler XYZ Rotation Controller on page 3151: Combines separate, single-value float controllers to specify an angle of rotation about each of the X, Y, and Z axes. You can specify the order the axes are rotated. Expression Controller on page 3154: Mathematical expressions control object parameters such as length, width, and height, or transform and modifier values, such as position coordinates. IK Controller on page 3382: Assigned to a hierarchy through the use of an IK Solver. Can be automatically assigned to bones at the time of creation by using Assign to Children. Linear Controller on page 3193: Makes the function curves between each of the keyframes into straight lines. List Controller on page 3194: Combines controllers. Link Constraint on page 3308: Animates the transfer of hierarchical links from one object to another. You can, for example, have the same object passed from object to object. 3594 | Chapter 15 Animation LookAt Constraint on page 3312: Forces that object to constantly look at another. Formerly a Transform controller, this is now a rotation controller. Master Point Controller on page 3201: Automatically assigned when animating vertices, control points, or vectors in sub-object mode. This controller simplifies managing potentially hundreds of tracks in Track View. Motion Capture Controller on page 3203: Controls and records an object's motion or parameter using an external device. Supported devices are mouse, keyboard, MIDI device, and joystick. Noise Controller on page 3214: Generates random values, which you can see as peaks and valleys in the function curve. On/Off Controller on page 3217: Provides on and off control. Boolean Controller on page 3147: An improved version of the On/Off Controller that allows for adding keys without disrupting the existing keyframing. Path Constraint on page 3297: Assigns a spline as a trajectory (path) for an object so that the object follows the path. Position XYZ Controller on page 3219: Splits the X, Y, and Z components into three separate tracks. PRS Transform Controller on page 3220: Creates subcontrollers for position, rotation, and scale. Reaction Controller on page 3222: Allows an object or parameter to react to another object or parameter. For example, you can change the scale of one object based on the Z position of another object. Scale XYZ Controller on page 3246: Provides separate scale tracks for the X, Y, and Z axes. Script Controller on page 3248: Controls objects and parameters with the 3ds Max scripting language. Spring Controller on page 3253: Adds secondary dynamics effects to any point or object position. Smooth Rotation Controller on page 3253: Creates smooth rotations. Surface Constraint on page 3293: Positions an object along the surface of another object. TCB Controller on page 3258: Provides Tension, Continuity, and Bias controls for the function curves between keys. Transform Script Controller on page 3261: Provides scripted PRS control for objects. Track View Toolbars | 3595 Waveform Controller on page 3265: A float controller that provides regular, periodic waveforms. For example, blinking lights and rhythmic object motion. XRef Controller on page 3269: Lets you externally reference any type of Transform controller from another scene file. Procedures To assign an animation controller in Track View: 1 In the Track View Hierarchy, select one or more parameter items of the same type. 2 From the Controller menu, choose Assign. 3 Choose a controller type from the Assign Controller dialog. 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 Position XYZ 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. 3596 | Chapter 15 Animation Interface Assign Controller Choose a controller type from the Assign Controllers dialog. Depending on the type of track you have selected, the Choose Controller dialog displays a subset of the different types of controllers. Delete Controller Main toolbar > Curve Editor (Open) > Select a deletable track in the Controller Window. > Right-click the toolbar > Show Toolbars > Controllers: Track View > Delete Controller. Main toolbar > Open Track View > Select a deletable track in the Track View Hierarchy. > Right-click on a blank area of the Track View toolbars and choose Show Toolbars > Controllers toolbar > Delete Controller. Some node subcontrollers can be deleted. Visibility tracks, Image Motion Blur Multiplier, Object Motion Blur, and On/Off are examples of controllers that can be deleted. Most controllers, however, are not deletable. You can also delete a Visibility track by using Tracks > Visibility Tracks > Remove. Track View Toolbars | 3597 Procedures To delete a deletable controller: 1 In the Controller window, select a deletable controller. 2 On the Track View Controllers menu, choose Delete Controller. The controller is deleted. NOTE Most controllers cannot be deleted, only replaced. The Delete Controller menu item is available only if the controller track selected is an applicable type. Ignore Animation Range Track View > Select a controller track > Controller menu > Ignore Animation Range Ignore Animation Range allows a parametric, non-keyable controller track to be active throughout the entire length of the animation, independent of the track's current animation range. Choosing this option changes the track's background color to purple. This setting is active by default on all new controller tracks (turn off the Override Parametric Controller Range By Default option in the Animation Preferences on page 7772 to change it). However, controller tracks from older scenes are set to Respect Animation Range on page 3599 to maintain their original behavior. Procedures Example: To set a controller track to ignore the animation range: 1 Create a sphere. 2 On the Motion Panel > Assign Controller rollout, highlight the sphere's Position track. 3 Click the Assign Controller button, and then choose Noise Position from the Assign Controller dialog. 3598 | Chapter 15 Animation 4 The Noise Controller dialog opens. Keep the current settings and close the dialog. 5 Select the sphere, and then right-click it. From the quad menu, choose Dope Sheet. 6 Expand the hierarchy items in the Controller window until you find the sphere's Position track. 7 Drag the track's range bar until it starts at frame 10. 8 Play the animation. Because Ignore Animation Range is on by default, the sphere moves randomly even before entering the track's animation range. Respect Animation Range Track View - Dope sheet > Select a Controller track > Controller menu > Ignore Animation Range Respect Animation Range constrains a parametric, non-keyable controller track to be active only within the track's current animation range. Choosing this option changes the track's background color to gray. NOTE While Ignore Animation Range on page 3598 is the default setting (turn off the Override Parametric Controller Range By Default option in the Animation Preferences on page 7772 to change it), controller tracks from older scenes are set to this setting to maintain their original behavior. Procedures Example: To set a controller track to respect the animation range: 1 Create a sphere. 2 On the Motion Panel > Assign Controller rollout, highlight the sphere's Position track. 3 Click the Assign Controller button, and then choose Noise Position from the Assign Controller dialog. Track View Toolbars | 3599 4 The Noise Controller dialog opens. Keep the current settings and close the dialog. 5 Select the sphere, and then right-click it. From the quad menu, choose Dope Sheet. 6 Expand the hierarchy items in the Controller window until you find the sphere's Position track. 7 On the Controllers menu, choose Respect Animation Range. The background color of the track changes to gray. 8 Drag the track's range bar so it starts at frame 10. 9 Play the animation. Because Respect Animation Range is on, the sphere starts moving only when it is within the track's animation range. Make Controller Unique Main toolbar > Curve Editor (Open) > Select an instanced Controller track > Controller menu > Make Controller Unique. Keyboard: U Make Controller Unique converts an instanced clone of a controller to a copy that's unique to the current object. Objects and modifiers can also be made unique. The result depends on whether or not the data flow branches at the selected container: ■ If the data flow does not branch anywhere below the selected container, nothing happens. ■ If the data flow does branch at or below the selected container, the data flow above the branch is split from the current data flow as a unique object. The data flow from the selected container to the master object is copied and attached to the new unique object. 3600 | Chapter 15 Animation All the Controller tools can also be found on the Controllers: Track View toolbar which is hidden by default. Right-click any blank area of the Track View toolbar, then choose Show Toolbars > Controllers: Track View to display the buttons for Assign, Copy, Paste. Delete Controller and Make Controller Unique. Procedures To convert an instanced controller to a unique one: 1 Select an instanced controller. 2 On the Controllers menu choose Make Unique, or press U on the keyboard. TIP If you have instanced modifiers you can make them unique by choosing the modifier in the Modifier Stack, right-clicking and choosing Make Unique. Parameter Curve Out-of-Range Types Main toolbar > Curve Editor (Open) > Controller menu > Out-of-Range Types Graph Editors > Track View - Curve Editor > Curves: Track View Toolbar > Parameter Curve Out-of-Range Types With Parameter Curve Out-of-Range Types you can specify how an object is to behave outside the range of the keys you've defined. Use Parameters Curve Out-of-Range Types to create loops and cycles. The idea is to create a short pattern of keys that produce an animated effect, and then loop or cycle through those keys throughout the animation. Using the Parameter Curve Out-of-Range Types dialog, you select from four ways for repeating your animation and two ways for applying a linear value. TIP Use the Create Out of Range Keys utility on page 3622, found in Track View Utilities, to turn the parameter out-of-range animation into editable keyframes. Typical Steps for Using Parameter Out-of-Range Types 1 Animate an object to loop or cycle. Track View Toolbars | 3601 2 In the Curve Editor select the track you want to loop. 3 Click Parameter Out-of-Range Types to select how your animation behaves outside the time covered by the range bar. 4 Choose the type of out of range type you want in the dialog, then close it and play the animation. The Curve editor will display the loop or cycle with a dotted line. TIP You can create keys from the out of range type by using the Track View Utilities > Create Out of Range Keys. Procedures To use Parameter Out-of-Range Types to create a loop: 1 Create a Box primitive on the left side of the Front viewport. 2 Turn on Auto Key and move the time slider to frame 10. 3 Move the box to the right side of the Front viewport. 4 Open Track View, right-click Filters, and then select Animated Tracks Only. 5 Choose the Position track for the box in the Track View Hierarchy, and then click Parameter Curve Out-of-Range types. 6 In the Parameter Curve Out-of-Range Types dialog, select Ping Pong for both the in and out types and then click OK. 7 Click Play in the Viewport Controls. The box moves back and forth repeatedly. While the animation is playing, experiment by adjusting the keys in the Curve Editor, or in the Dope Sheet. 3602 | Chapter 15 Animation Interface Select from the options for repeating your animation and options for applying a linear value. Constant Holds the value of the end key of the range for all frames. Use constant when you want no animated effect before the first key of the range or after the last key. Constant is the default out-of-range type. Cycle Repeats the same animation as within the range. If the first and last keys in the range have different values, the animation will show an abrupt "jump" from the last key to the first. Use Cycle when you want an animation to repeat, but do not need the ends to match. Loop Repeats the same animation as within the range, but interpolates between the last key and first key in the range to create a smooth loop. If the first and last key are both at the extreme ends of the range, Loop will behave exactly like Cycle. If you use Position Ranges to extend the range bar beyond the keys, the added length determines the amount of time used to interpolate between the last key and the first key. Use loop with an extended range bar to produce smoothly repeating animation. Ping Pong Alternates between a forward and backward repeat of the animation within the range. Use Ping Pong when you want your animation to alternate back and forth. Track View Toolbars | 3603 Linear Projects the animation value along a line tangent to the function curve at the end of the range. Use Linear when you want the animation to enter and leave the range at a constant velocity. Relative Repeat Repeats the same animation as within the range but offsets each repetition by the value at the end of the range. Use Relative Repeat to create animations that build on each other as they repeat. Add Note Track Main toolbar > Curve Editor (Open) > Modes > Dope Sheet > Edit Keys > Tracks menu > Note Tracks > Add. With Add Note Track, you can insert a note track below a highlighted track in the Track View Hierarchy. You can make note keys and associated notes at specific time locations to keep track of what keys do. Do this by adding keys in Dope Sheet > Add Keys mode, then right-click a note key to see the Notes dialog. The information you enter will appear in the Key window under the keys. Any item in the Hierarchy list can have a note track added as a branch below it. You can add a note track to an item in any of the Track View modes. Note track for animation of door opening Once you have created a note track for an item, use Add Keys to insert note keys. Use the Notes dialog to edit the notes. You can have toolbar access to the Note Tracks by unhiding the Tools: Track View toolbar. Procedures To add a note track: 1 On the Track View Dope Sheet toolbar, click Edit Keys. 3604 | Chapter 15 Animation 2 Highlight one or more item labels in the Hierarchy list. 3 From the Tracks menu, choose Note Tracks > Add. A note track is inserted as a branch directly below each highlighted item. To add a note key to a note track: 1 Select the Note track (in Dope Sheet Edit Keys mode). 2 Click Add Keys. 3 Click a note track in the Keys Window to place a note at that particular frame. To edit notes: 1 Right-click a note key to display the Notes dialog. 2 Click inside the edit box, and then start typing. The first line of your note appears as a label to the right of the note key. Type a one- or two-word description as the first line of your note. Close the dialog using the X button at the top right corner to enter the body of the note. Interface Add Note Track Inserts a note track directly below the highlighted items in the Hierarchy list. This is available from the Tracks menu or from the Tools: Track View toolbar. Notes dialog Adds or edits notes on the animation in Track View. The first line of your note appears as a label to the right of the note key. You should type a short oneor two-word description as the first line of your note. Press Enter to start the body of the note. Press Enter or click within the text field to start the body of the note. Close the Notes dialog by clicking the X button at the top-right corner of the dialog. Track View Toolbars | 3605 Note Number Indicates which note key you are working with. Click the left arrow to move back to the previous note or the right arrow to move forward to the next note. Time Sets the time position for the note key. Change the value to move the note to a new time. Lock Key Locks the key to the Time field. When set, the key ignores all operations performed with Move, Slide, and Scale. The only way to change the key's time is to use the Time field in the Notes dialog. Remove Note Track Track View > Tracks menu > Note Track > Remove Use Remove Note Track to delete a note track and its associated keys. You can have toolbar access to Remove Note Track by unhiding the Tools: Track View toolbar. This toolbar is available only in the Curve Editor, however. The tooltip is labeled Delete Note Track. Procedures To delete a note track from items: 1 Highlight one or more note tracks in the Hierarchy list. 3606 | Chapter 15 Animation 2 From the Tracks menu, choose Note Track > Remove. Editing Keys Topics in this section relate to editing animation keys in Track View. The topics are: Edit Keys on page 3607 Snap Frames on page 3608 Lock Selection on page 3609 Align to Cursor on page 3610 Add Visibility Track on page 3611 Move Keys (Dope Sheet) on page 3613 Slide Keys on page 3614 Scale Keys - Time on page 3616 Add Keys (Dope Sheet) on page 3617 Properties (Track View Key Window) on page 3618 Edit Keys Graph Editors menu > Track View - Dope Sheet > Edit Keys Main toolbar > Curve Editor (Open) > Modes > Dope Sheet > Edit Keys Edit Keys displays your animation as a series of keys as boxes on a grid in the Key window. Dope Sheet Editor turns on Edit Keys by default. Edit Keys is useful for getting a global view of your animation because it displays animation timing for all tracks. Use this mode for key and range editing when you want to view your changes in the context of the total animation. Use Edit Keys mode to: ■ Select and change one or more keys ■ Drag range bars to change all animation in multiple tracks Editing Keys | 3607 Procedures To turn on Edit Keys mode, do one of the following: 1 If you are in Curve Editor, choose Modes > Dope Sheet. 2 If you are in Dope Sheet > Ranges, click Edit Keys on the Track View toolbar. To delete keys in Edit Keys mode: 1 Highlight the keys in the Key window. 2 Press DELETE on the keyboard to delete the selected keys. Snap Frames Main toolbar > Curve Editor (Open) > Keys menu > Snap Frames Graph Editor > Track View - Dope Sheet/Track View - Curve Editor > Keys menu > Snap Frames With Snap Frames, all key and range bar positions that are changed are forced to absolute frame increments. This includes selection sets of multiple keys. When Snap Frames is on, each key in a selection set will snap to the nearest frame when the selection is moved or scaled. Default=on. When you use the Time Display format MM:SS:Ticks, which doesn't use frames, Snap Frames snaps to time values that match frame boundaries. In Dope Sheet > Edit Keys mode, keys are displayed as a box grid. Keys that are snapped to frames are displayed as filled boxes. Keys that have been moved with snap frames off are displayed as narrow rectangles within the grid. When using the Curve Editor, a similar display is available in the track bar. Subframe keys moved with snap frame off 3608 | Chapter 15 Animation WARNING Don't turn off Snap Frames unless you have a reason to, such as the need for more precise animation timing. If you do turn off Snap Frames and move keys in Curve Editor you will create sub-frame keys, but they won't be noticeably different in Curve Editor. In some cases, sub-frame keys can lead to animation “popping,” or overly fast changes due to keys being too close together. Procedures To use Snap Frames: Snap Frames is on by default, so the following procedure only applies if you have turned off snap frames previously. 1 On the Track View Dope Sheet toolbar, click Edit Keys. NOTE This isn't an absolute necessity, but it makes it easier to see the snapping action. You can also view the snapping in the track bar in either Dope Sheet or Curve Editor mode. 2 On the Track View toolbar, turn on Snap Frames. 3 In the Track View Key window, select one or more keys. 4 Use Move Keys or Scale Keys to move keys. With Snap Frames on, each key in a selection set snaps to the nearest frame when the selection is moved or scaled. Lock Selection Track View > Curve Editor or Dope Sheet> Highlight keys > Track View toolbar > Lock Selection Keyboard > Spacebar Lock Selection toggles selection locking on and off. When a selection is locked you can't inadvertently deselect or select anything else. When a selection is Editing Keys | 3609 locked you don't have to click it to move the keys, you can click anywhere in the window to more or scale the keys. NOTE To use the Spacebar keyboard shortcut, the Keyboard Shortcut Override Toggle on page 7858 must be on. Procedures To use Lock Selection in Track View: 1 In either Dope Sheet or Curve Editor Key window, highlight one or more keys. 2 On the Track View toolbar, turn on Lock Selection, and then click and drag inside the Track View Key window. All the selected keys move regardless of where inside the Track View Key window you click and drag. Align to Cursor In either Dope Sheet or Curve Editor, select keys to align to current frame. > Keys menu > Align to Cursor Use Align to Cursor to move selected keys to the current time. Select the keys to align using Move, Slide, or Scale. Align to Cursor is useful for taking a group of scattered keys and moving them to the same time location. Align to Cursor is available in Dope Sheet and Curve Editor modes. Align Keys to Cursor ignores the state of Snap Frames, and always uses the exact time set by the time slider. Procedures To move all selected keys to the current frame: 1 Open either Curve Editor or Dope Sheet - Edit Keys mode. 2 Drag the time slider to the time where you want the keys aligned. 3610 | Chapter 15 Animation 3 Highlight one or more keys using Move Keys, Slide Keys, or Scale Keys. 4 From the Keys menu choose Align To Cursor. The leftmost selected key in each track is moved to the current time. Multiple selected keys on the same track maintain their relative distance from the leftmost key. Add Visibility Track Right-click an object in the viewport. > Curve Editor/Dope Sheet > Tracks menu > Visibility Track > Add Graph Editors menu > Track View - Dope Sheet/Track View - Curve Editor > Click the object whose visibility you want to key. > Tracks menu > Visibility Track > Add Add Visibility Track controls when you can see an object. Visibility tracks can only be added to objects. You can create a visibility track by either animating the Visibility parameter in the Object Properties dialog or by selecting an object in the Track View Hierarchy and clicking Tracks menu > Visibility Tracks > Add. In both cases a visibility track, using a Bezier float controller, is created in Track View. The visibility track displays as a child of the object in the Track View Hierarchy. NOTE In the Object Properties dialog, Rendering Control must be set to By Object in order to keyframe the Visibility using the spinner. NOTE Right-click over an object in the viewports and select Properties to display the Object Properties dialog. WARNING An object without mapping coordinates that is invisible at frame 0 will not ask for UVW Map coordinates at render time. The warning will display at the frame that the object becomes visible. This can stop a render midway, so make sure invisible objects at the beginning of your animation have mapping coordinates if necessary. Editing Keys | 3611 On and Off Visibility When you first assign a visibility track to an object, a Bezier float controller is automatically assigned; this allows gradual visibility. You can make an object appear or disappear suddenly by changing the interpolation of the visibility keys to Step tangency. Variable opacity is supported in the shaded viewports. For ease of use, the object never completely disappears from the viewports. Visibility Inheritance An object can inherit the visibility of its parent (as determined by the parent's Visibility track in the Track View). Use the Object Properties > Inherit Visibility check box to specify the visibility inheritance of an object. Groups and Visibility All members of a Group inherit the visibility of the parent when a visibility controller is assigned to the parent. Transparent materials and hidden objects have no effect on this function. Level of Detail Utility and Visibility The Level of Detail utility on page 2579 lets you construct an object that alters its geometric complexity or level of detail based on its size in the rendered image. You create several versions of the same object each with different levels of detail; you group them as one, and then assign the Level of Detail utility. This automatically creates a special LOD controller as a Visibility track. Procedures To add a visibility track to objects: 1 In Track View Curve Editor or Dope Sheet Edit Keys mode, highlight the object you want to affect in the Hierarchy list on the controller window. 2 From the Track View > Tracks menu, choose Visibility Tracks > Add. 3 Select the keys then use Controller > Properties to adjust the key values and interpolation. A value of 0 creates an invisible object, a value of 1.0 creates a fully visible object. Change the interpolation to step for sudden visibility, rather than gradual fades. 3612 | Chapter 15 Animation A visibility track appears below the selected object(s). Add and edit keys in the visibility track to control the object's visibility. To add visibility keys: 1 Once you have a visibility track assigned to the object, highlight the track. 2 On the toolbar, click Add Keys. 3 On the Track View Key window, click in a visibility track to add a key at that time location. Example: To create and animate a visibility track using the Object Properties dialog: 1 Create a box. 2 Turn on Auto Key. 3 Move the time slider to frame 10. This is the frame at which you'll set the box to disappear. 4 Right-click the object and choose Properties from the shortcut menu. 5 In the General tab, set Visibility to 0, and then click OK. 6 Scrub the time slider. The box fades. This creates a visibility track in Track View and adds a key with a value of 0 to the track. Move Keys (Dope Sheet) Dope Sheet > Keys: Track View toolbar > Move Keys Move Keys lets you reposition keys horizontally, within their own track(s), thus changing the times at which they take effect. If no keys are highlighted, you can move any key by dragging it. If multiple keys are highlighted, you can move them all the same distance by dragging one of them. Editing Keys | 3613 You can clone highlighted keys by moving them while holding down the Shift key. NOTE You can use any button on the Move Keys flyout to move keys in Dope Sheet mode, but you can move keys horizontally only. Procedures To move a selection of keys: 1 On the Keys: Dope Sheet toolbar, click Move Keys if it isn't already highlighted. It should be on by default. 2 Highlight the keys you want to move in the Key window by dragging a selection rectangle around the keys. You can also use Ctrl+click to highlight non-contiguous keys. 3 Position the mouse cursor over one of the highlighted keys, and then drag horizontally to move the keys in time. TIP Press SPACEBAR to lock the key selection. Then you don't have to drag over the selected key, but anywhere in the viewport. This is useful when you have a complex selection set of keys. Slide Keys Track View > Highlight keys in the Key window. > Track View toolbar > Slide Keys Use Slide Keys to move a group of keys (highlighted keys plus all the keys to one end of the animation). The direction that you drag determines which group of keys moves: ■ Dragging to the right moves the highlighted keys, plus all keys to the last key of the animation, forward in time. ■ Dragging to the left moves the highlighted keys, plus all keys to the first key of the animation, backward in time. 3614 | Chapter 15 Animation Slide Keys is a way to split the animation at the highlighted keys and spread the ends apart. Slide Keys is available in Edit Keys mode. You can clone keys and insert them elsewhere in your animation curve while offsetting existing keys by the length of time occupied by the cloned keys by dragging while holding down Shift. Based on the length of your selection, the existing keys to the right of the selection move forward in time (that is, to the right) to allow the new key insertion, whether you drag to the right or the left. Procedures To slide a selection of keys: 1 Click Slide Keys on the Track View toolbar. 2 Highlight one or more keys. 3 Drag to slide the keys to the right. The keys following your selection move to account for the offset produced by sliding the keys. 4 Highlight another group of keys. Editing Keys | 3615 5 Hold Shift while dragging to slide the keys to the right. The keys following your selection move to the right by the length of time occupied by the cloned keys. Scale Keys - Time Track View > Curve Editor or Dope Sheet > Track View toolbar > Scale Keys Track View > Curve Editor or Dope Sheet > Keys menu > Scale Keys - Time Scale Keys - Time moves all selected keys proportionally toward or away from the current frame. Use the Scale Keys button in either mode to change the location and amount of time covered by one or more selected keys. The scale center is defined by the current time set by the time slider. You can scale keys about any moment in time by dragging the time slider before you use Scale Keys. Procedures To use Scale Keys: 1 Select an animated object in the viewport, then right-click and choose Curve Editor. The following steps work in either Curve Editor or Dope Sheet modes. 2 Drag the time slider to the time you want to use as the scale center. 3 Click Scale Keys or from the Keys menu choose Scale Keys - Time. 4 Highlight one or more keys. 5 Drag to scale the selected keys or press and hold Shift and drag to add scaled copies of the selected keys. 3616 | Chapter 15 Animation Drag away from or toward the current time line for the following results: ■ Dragging away expands the keys from the current time. Expanding the selection increases time between the selected keys and slows that part of the animation. ■ Dragging toward shrinks the keys toward the current time. Shrinking the selection reduces time between the selected keys and accelerates that part of the animation. ■ Dragging through the current time reverses the keys and expands the keys away from the current time. TIP You can type-in the Scale Value using the first field in the Key Stats: Track View toolbar. The scale percentage is displayed in the Show Selected Key Stats field as you drag the selection. Add Keys (Dope Sheet) Track View > Dope Sheet > Track View toolbar > Add Keys Track View > Dope Sheet > Keys menu > Add Keys Add Keys inserts a key on page 8020 at the point where you click a curve or a track. Add Keys is a mode that remains active until you activate another mode. While Add Keys is on, you click in any animation track to add a key at that location in time. Procedures To add keys in Track View: 1 On the Track View toolbar, click Add Keys. 2 Click an animation track to add a key. The location where you click sets the time of the key as measured on the time ruler. Editing Keys | 3617 The value of the new key is set by one of the following conditions: ■ Keys added before the first key of a track receive the same value as the former first key. ■ Keys added between two keys receive an interpolated value based on the values of the original keys. ■ Keys added after the last key in the track receive the same value as the former last key. If you are unable to add keys to a track, check the following conditions: ■ Only animated tracks can accept keys. If you want to add a key to a track, such as an object parameter, you need to animate it first. ■ The animation controller must be a type that uses keys. Not all controllers use keys. Examples of controllers that do not use keys include procedural controllers such as Noise. ■ The animation controller must be a type that uses keys. Not all controllers use keys. Examples of controllers that do not use keys include Expression controllers, List controllers, and Parametric controllers. Properties (Track View Key Window) Track View > Highlight a single track that uses Properties. > Right-click the track. > Choose Properties on the Controllers quad. Track View > Highlight a single track that uses Properties. > Controller menu > Properties Properties displays a dialog to change animation values. The type of dialog displayed depends on the type of animation controller the selected track is using. The Properties function is unavailable if the selected track controller does not use properties, or the track selection set is incorrect. ■ A track with animation keys display a Key Info dialog on page 3127. You can change the values in the Key Info fields to change the animation value, time, and interpolation methods of one or more selected keys. ■ A track with a parametric controller, such as Noise on page 3214, displays a Properties dialog. You change the values in the Properties dialog to modify the behavior of the controller over its entire range. 3618 | Chapter 15 Animation Access the Properties dialog through the controllers quad of the right-click menu, or on the Controller menu > Properties. The same dialog is also accessible through the Motion panel. You can also display the Key Info dialog by right-clicking a key in the Key window. Parametric controller dialogs can also be displayed by right-clicking their range bars. The Properties button is unavailable in ambiguous cases, for example, when a key and a Parametric controller item are both selected. Procedures To display properties for a controller, do one of the following: 1 Highlight the track and then choose Controller menu > Properties. 2 Right-click the track, and then on the Controllers quad choose Properties. To display the Key Info dialog for a key: 1 Right-click the key in the Curve Editor Key Window. The Key Info dialog is displayed. 2 Change key properties in the dialog. Track View Utilities Track View > Utilities menu > Track View Utilities Track View Utilities displays a dialog listing plug-in Track View utilities. A typical Track View utility displays a modeless dialog (though utilities can be modal) and provides functions that can be applied across multiple selected keys and tracks. You can launch more than one utility by choosing Track View Utilities again. Available Utilities ■ Randomize Keys on page 3620: Applies random offset values to Time or Value of selected keys or selected time. ■ Create Out of Range Keys on page 3622: Creates keys in the out-of-range time of a track, when the Out of Range type is something other than Track View Utilities | 3619 Constant. Thus, it converts the specified out-of-range area to a keyed area that you can edit and adjust. Select one or more tracks, set the parameters of the utility, and click Apply. In Function Curve display mode, you must select the curve as well as the track. ■ Select Keys by Time on page 3624: Selects keys within a specified start and end range of time. Lets you select a large range of time when using the mouse might be awkward--for example, if keys are not visible in the Track View Key window. ■ Euler Filter on page 3625: Displays a dialog with controls to remove gimbal flipping from animated tracks using Euler rotation. ■ Soft Selection Settings Manager on page 3554: Displays a dialog with controls to adjust the range and falloff of the soft selection of keys in the Dope Sheet and Curve Editor. ■ Current Value Editor on page 3627: Provides transform type-in capability from within the Track View modes. Allows you to choose between absolute and relative value editing. The name of the controller appears above the axis choices. This utility launches a floating Current Value window that works for either Dope Sheet — Edit keys mode or Curve Editor. It doesn't work for Edit Ranges. Procedures To select a Track View utility: 1 Open Curve Editor, and then from the Utilities menu, choose Track View Utilities. 2 In the Track View Utilities dialog, choose from the available utilities, and click OK. Randomize Keys Utility Track View > Utilities menu > Track View Utilities > Randomize Keys Randomize Keys applies random offset values to the times and/or values of selected keys. 3620 | Chapter 15 Animation Procedures To use Randomize Keys: 1 Highlight one or more keys, or a block of time, in one or more tracks. In Dope Sheet > Edit Keys mode, all selected keys are affected. In Edit Ranges mode, the keys in the selected tracks that are within the selected range of time are affected. In Curve Editor mode, the selected keys on selected curves are affected. 2 From the Utilities menu, choose Track View Utilities, and then choose Randomize Keys. The Randomize Keys utility is displayed. 3 By default, both Randomize Time and Randomize Value are on. Turn off either if you wish. 4 Set the +/- spinners to specify the desired range of randomized offset. 5 Click Apply. Interface Randomize Time Randomly shifts values in time, based on the spinner settings. For example, if the + spinner is set to 20, and the - spinner is set to 10, the values could shift up as much as 20, and down as much as 10. + The amount of random shift in a positive direction. Track View Utilities | 3621 - The amount of random shift in a negative direction. Randomize Value Randomly shifts values, based on the spinner settings. + The amount of random shift in a positive direction. - The amount of random shift in a negative direction. Randomize group box You can apply randomization either with selected keys or with selected time. When applying to selected keys, this displays the message: "All selected keys." However, when you select a block of time in Edit Time mode on page 3628, this message is displayed: "Keys in selected tracks that are in the range: n to n." Apply Applies the specified random offset values to the selection. You can click this repeatedly for more randomization. Create Out of Range Keys Utility Track View > Utilities menu > Track View Utilities > Create Out of Range Keys Create Out of Range Keys creates keys in the out-of-range time of a track when the out of range type is something other than Constant. It converts the specified out-of-range area to a keyed area that you can edit and adjust. This utility works both in Curve Editor and Dope Sheet modes. In Curve Editor mode, you must select the curve as well as the track. Procedures To use Create Out of Range Keys: 1 In the Track View Controller window, select the Position track of an animated object. 2 On the Track View toolbar, click Parameter Curve Out-of-Range Types button to apply an out-of-range type curve to the selected track. Use any curve type except Constant (the default). 3 Click Utilities menu > Track View Utilities. In the dialog box that appears choose Create Out of Range Keys. 4 Set the desired parameters in the Create Out of Range Keys dialog. 3622 | Chapter 15 Animation 5 Click Apply. Keys are created in the out-of-range areas of the position track. The track bar expands to the boundaries of the newly created keys. Interface Time Range group Sets the time after the range for generating keys. For example, if your range of keyed animation is from frame 31 to 54, the out-of-range animation might be from 0 to 30 and from 55 to 100. Before Specifies the number of frames before the range for generating keys. In the previous example, if you set this option to 20, it would generate keys over frames 10 to 30. When you set this option to 0, no keys are generated before the range. After Specifies the number of frames after the range for generating keys. In the first example, if you set this option to 40, it would generate keys over frames 55 to 95. When you set this to option to 0, no keys are generated after the range. Samples Specifies the number of keys to be generated for both the before and after time range, based on the settings in Before and After. In the example above, if Samples is set to 20, 20 new keys would be generated over frames 10 to 30, and another 20 new keys would be generated over frames 55 to 95. Apply Generates the keys. Track View Utilities | 3623 NOTE Keys are generated only for non-constant out-of-range types. If the area before or after the range is the default, Constant type, no keys are generated in that area. Select Keys By Time Utility Track View > Utilities menu > Track View Utilities > Select Keys by Time The Select Keys By Time utility lets you select keys within a specified start and end range of time. You can select a large range of time, which might be difficult to select using the mouse in the Track View Key window for example. This utility works in Curve Editor and Dope Sheet Edit Keys modes. Procedures To use Select Keys By Time: 1 In the Controller window, highlight the tracks you want to work with. 2 On the Utilities menu choose >Track View Utilities, then choose the Select Keys By Time utility from the Track View Utilities dialog. 3 Set a range and click OK. ■ Keys within the range in the highlighted tracks are selected. ■ If you select Clear Previous Selection, all keys are cleared before the keys within the time range are selected. ■ In Dope Sheet, highlight a single track to select all keys in the descendants of the track. 3624 | Chapter 15 Animation Interface Start Time Specifies the start range for selecting keys. End Time Specifies the end range for selecting keys. The Start Time and End Time spinners are activated to match the current time selection. Clear Previous Selection Clears all keys before keys within the specified time range are selected. In Dope Sheet mode, highlight a single track to select all keys in the descendants of the track. Modify Subtree must be on for this to work. Euler Filter Track View > Utilities menu > Track View Utilities > Euler Filter This Track View utility corrects for gimbal flipping (anomalous rotation animation) in objects animated using Euler rotation on page 3151 by processing existing animation keys in selected animated tracks. It's particularly useful for cleaning up rotation artifacts when importing raw motion-capture data. This process does not break any keyed orientations. By default, the utility modifies only frames with keys on all three tracks (X, Y, and Z). By turning on Add Keys If Needed, you can perform the correction on frames with X, Y, and Z keys and also add keys at frames that contain only one or two keyed axes but require correction, resulting in X, Y, and Z keys at those frames. The default range for filtering is the current active range for the scene, which automatically appears in the utility. To isolate the operation to a specific subset Track View Utilities | 3625 of the animation, change the Start Time and End Time settings. Any changes made to the utility remain active during the current 3ds Max session. TIP The utility works in Dope Sheet mode, but it's much easier to see what it's doing if you use Curve Editor mode. Procedures To use Euler Filter: 1 Select an object animated with Euler rotation on page 3151. 2 Right-click the object, and from the quad menu choose Curve Editor. Track View opens in Curve Editor mode, with the animated tracks highlighted. 3 Make sure the rotation tracks to be filtered are highlighted in Track View. 4 From the Utilities menu in Track View, choose Track View Utilities. This opens the Track View Utilities dialog. 5 In the list of utilities, click Euler Filter and then click OK, or just double-click Euler Filter. This opens the Filter Selected Euler Tracks dialog. 6 Change the parameters as necessary, and then click OK. The utility adjusts the rotation keys to removed gimbal flipping. Interface Start/End Time The range over which the filtering should occur. Default=current animation range. Add Keys If Needed When on, the utility performs the correction on frames with X, Y, and Z keys and also adds keys at frames that contain only one or 3626 | Chapter 15 Animation two keyed axes but require correction, resulting in X, Y, and Z keys at those frames. OK Performs the filtering using the current settings. Cancel Closes the dialog without performing the filtering. Current Value Editor Track View > Utilities menu > Track View Utilities > Track View Utilities Dialog > Current Value Editor The Current Value Editor gives you a way to use numeric input to affect the values of the keys inside the Track View windows. Absolute and relative value editing let you increment changes, or apply exact values. The name of the controller whose values are being changed appears above the axis choices. This utility opens a dockable Current Value window that works for either Dope Sheet - Edit keys mode or Curve Editor. It doesn't work for Edit Ranges. Procedures To use the Current Value Editor to apply an incremental change: 1 Select the position track of an animated object. 2 Choose Utilities > Track View Utilities > Current Value Editor. 3 Turn on Relative. 4 Change the values for X, Y, or Z. The numbers you enter add a relative increment to the existing values. Track View Utilities | 3627 Interface Absolute Applies world space values to the keys. The numbers you enter are the numbers that are applied. Relative Increments the values relative to their existing value. The numbers you enter are added to the existing value. Controller type Displays the name of the controller about the X, Y, and Z fields. X, Y, Z Use these fields to input numbers for relative or absolute value editing. Edit Time Use the Edit Time tools to work directly with selected blocks of time in the Dope Sheet Editor, as opposed to working with keys and range bars. A block of time is any contiguous time segment, across one or more tracks, and is independent of key locations. Enter Edit Time mode by selecting a time segment in the Dope Sheet Editor. Once a time segment has been selected you can insert, cut, copy, paste, or reverse the time segment, including its keys. The time tools are available from the Time menu and the Time: Dope Sheet toolbar. Time tools are unavailable from the Time menu in Edit Ranges mode. In Edit Time mode, keys and range bars of your animation are there only for reference. You select blocks of time and then apply time-editing functions to your selection. 3628 | Chapter 15 Animation Edit Time Mode Controls In Edit Time mode you can perform the following tasks for one or more tracks: Select Time on page 3630 Delete Time on page 3631 Cut Time on page 3631, Copy Time on page 3632, Paste Time on page 3633 Reverse Time on page 3635 Insert Time on page 3635 Scale Time on page 3636 Exclude Left End Point on page 3637 Exclude Right End Point on page 3638 Reduce Keys on page 3640 Procedures To edit time: 1 Select the animated object in the viewport, then right-click and choose Curve Editor. This opens Track View navigated to the animated object. 2 On the Modes menu choose Dope Sheet mode. The Key window changes from curves to a key spreadsheet. 3 If Edit Keys isn't highlighted on the Keys: Dope Sheet toolbar, click it to turn it on. The next steps won't work if you have Edit Ranges on instead of Edit Keys. 4 From the Time menu, choose Select Time. 5 Expand and activate the tracks you wish to alter. For example you could select the Z Position transform track of a bouncing Box object. 6 Drag a time segment out in the Key window. A tooltip displays the selected Start and End frame numbers interactively as you drag. This selects the time segment including any keys within it. 7 Perform any of the time tool operations available from the Time Menu or the Time: Dope Sheet toolbar. Edit Time | 3629 Select Time Track View > Dope Sheet > Time menu > Select Time Track View > Dope Sheet > Time: Dope Sheet toolbar > Select Time button With Select Time you can specify a block of time by dragging in the Key window. You can then apply any of the following operations to the highlighted block (and any keys contained therein): ■ Delete Time on page 3631 ■ Cut Time on page 3631 ■ Copy Time on page 3632 ■ Paste Time on page 3633 ■ Reverse Time on page 3635 ■ Insert Time on page 3635 ■ Scale Time on page 3636 ■ Exclude Left End Point on page 3637 ■ Exclude Right End Point on page 3638 ■ Reduce Keys on page 3640 Procedures To select time: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 On the toolbar, click the Select Time button. 3 Drag in the keys window to specify time in the selected tracks. A beige bar between two yellow lines appears as you drag across the box grid of the Dope Sheet Key window. If a highlighted track does not support time operations, time selection in that track is ignored. 3630 | Chapter 15 Animation After specifying a time range, you can perform other time- and key- related operations. Delete Time Track View > Dope Sheet > Specify a time block. > Time: Dope Sheet toolbar > Delete Time button Use Delete Time to delete a selected block of time and any keys inside the selected block. Keys to the right of the deleted time move to the left. NOTE The deleted block is not copied to the clipboard. Procedures To delete a block of time: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 3 Use Select Time on page 3630 to specify a block of time. Click Delete Time. Keys in the specified time block are deleted, and any keys to the right of the block move leftward. Cut Time Track View > Dope Sheet > Specify a time block. > Time menu > Cut Track View > Dope Sheet > Specify a time block. > Time: Dope Sheet toolbar > Cut Time button Use Cut Time to delete a block of time from one or more tracks and place it in the clipboard. Before you can paste time in a track, you must have time in Edit Time | 3631 the clipboard. After specifying a block of time, place it in the clipboard with Cut Time or Copy Time on page 3632. Procedures To cut time from tracks: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 Use Select Time on page 3630 to specify a block of time. 3 Click Cut Time, or, from the Time menu, choose Cut Time. The block of time is deleted from the selected tracks and stored in the time clipboard. Keys to the right of the deleted time move left. Copy Time Track View > Dope Sheet > Specify a time block. > Time menu > Copy Track View > Dope Sheet > Specify a time block. > Time: Dope Sheet toolbar > Copy Time button Use Copy Time to copy a block of time from one or more tracks to the clipboard, after which you can paste it to other tracks. You can use the clipboard to copy time, with keys, to different places in the same track or from one track to another. For example, you can copy position keys from one object to another. Procedures To copy time from tracks: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 Use Select Time on page 3630 to specify a block of time. 3632 | Chapter 15 Animation 3 Click Copy Time, or choose Time menu > Copy. The block of time is copied to the time clipboard. The original block remains unchanged. Paste Time Track View > Dope Sheet > Specify a time block. > Cut or Copy Time > Specify a different time block. > Time menu > Paste Track View > Dope Sheet > Specify a time block. > Cut or Copy Time > Specify a different time block. > Time: Dope Sheet toolbar > Paste Time Use Paste Time to paste a block of time from the clipboard into one or more tracks. The conditions for pasting time into a track are: ■ If the block of time on the clipboard is from a single track, you can paste it into any track using the same type of controller. ■ If the block of time on the clipboard is from multiple tracks, you can paste it into a selection of multiple tracks as long as the controllers for the selected tracks include valid track types. For example, position tracks in the clipboard are pasted to position tracks in the selection. If the above conditions are not met, the Paste Time function has no effect. Time editing is available only in Dope Sheet mode; it is not available in the Function Curve Editor. In Edit Time mode, you can copy and paste controller tracks that have no animation keys. When a track has no key, its value at frame 0 is used. You must select a block of time before cutting or pasting; otherwise the time is ignored. Relative and Absolute Pasting The values of all the pasted keys are adjusted so that the first pasted key has a value equal to the value at the time of the insertion point. For example, the value of the controller at frame 50 is 10. The clipboard holds three keys spanning 50 frames with values 20, 30, and 40. When you paste the three Edit Time | 3633 keys at frame 50, the first key has a value of 20, but the insertion point has a value of 10. 3ds Max subtracts 10 from the pasted key to maintain the value at the insertion point. 3ds Max then subtracts 10 from the remaining pasted keys, resulting in three pasted keys valued at 10, 20, and 30. In addition, any keys after the insertion range are also adjusted by the net change over the range being pasted. The net change is the value of the last key pasted minus the value of the first key pasted. In this case 40-20=20. Every key after the insertion point is increased by 20. Procedures To paste time into tracks: 1 In Dope Sheet mode, after using Cut Time on page 3631 or Copy Time on page 3632, highlight one or more item labels in the Controller window to specify tracks for pasting. 2 Use Select Time on page 3630 to specify a block of time. 3 Click the Paste Time button on the Time: Track View toolbar. The Paste Track dialog opens. 4 In the Paste Track dialog, choose Paste Absolute or Paste Relative, and then click OK. Interface Options on the Paste Track dialog are as follows: Paste Absolute Replaces the current animation values with the values in the clipboard. Use this method when you want to replace one animated effect with another. 3634 | Chapter 15 Animation Paste Relative Adds the animation values in the clipboard to the current animation values. Use this method when you want to layer animation onto an existing effect. Reverse Time Track View > Dope Sheet > Specify a time block. > Time menu > Reverse Track View > Dope Sheet > Specify a time block. > Time: Dope Sheet toolbar > Reverse Time Reverse Time flips the order of keys within the selected time. You can reverse time by scaling a selection past its left edge, but this also changes the position of the selection and the remaining keys around it. Use Reverse Time to reverse keys within a designated block of time. Procedures To reverse time: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 3 Use Select Time on page 3630 to specify a block of time. Click the Reverse Time button, or choose Time menu > Reverse. The position of the selected block of time does not change, but order of keys within the block is reversed. Insert Time Track View > Dope Sheet > Time: Dope Sheet toolbar > Insert Time button Use Insert Time to interpose time into highlighted tracks. Inserting time adds time at a selected point in your animation, making existing keys slide out of the way. Edit Time | 3635 Procedures To insert time into tracks 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 On the Dope Sheet toolbar, click the Insert Time button. 3 Drag in the Key window to insert time into the tracks. TIP To insert time globally, highlight the World track, turn on the Modify Child Keys button, then insert time into the World track. Scale Time Track View > Dope Sheet > Time: Dope Sheet toolbar > Scale Time button Scale Time scales a block of time. You can scale down to fit into less time, or expand it to fill more time. Scale Time doesn't use the Track View time slider as the scale origin reference; it always scales from the first frame of the key selection. Procedures To scale time: 1 In the Dope Sheet Editor, on the Time: Dope Sheet toolbar, click Scale Time. 2 In the controller window, click item labels to highlight tracks for time editing. 3 Drag out a time block in the Key window, or use an existing block. 4 Move your cursor over the active time block in the Key window. The cursor changes to show you when you can scale. 3636 | Chapter 15 Animation 5 Do one of the following: ■ Drag to the right within the selection to expand time from the left edge of the selection. All keys to the right of the selection slide right as the selection expands. ■ Drag to the left within the selection to reduce time towards the left edge of the selection. All keys to the right of the selection slide left as the selection shrinks. ■ Drag past the left edge of the selection to reverse time and expand it with a negative scale factor. Keys inside the selection, and keys to the right of the selection, can overlap keys to the left of the selection. Exclude Left End Point Track View > Dope Sheet > Extras: Dope Sheet toolbar > Exclude Left End Point button Use Exclude Left End Point to exclude the beginning key in a selected block of time. If you paste the same block of time repeatedly, one block following the other, you can create a looping segment in your animation. To create a smooth looping animation, you need to exclude either the first or last key of the copied block to prevent keys from doubling up at the ends. The key to be excluded must be at the exact start time of the copied block of time. NOTE By default, the Extras: Dope Sheet toolbar doesn't appear in the Dope Sheet Editor. You'll find a method for displaying it in the following procedure. Procedures To animate a loop by copying and pasting keys: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 Use Select Time on page 3630 to specify a block of time. Edit Time | 3637 At least one track in the block should start with a keyframe. Also, for a smooth loop, the first and last frame of the selection should be the same. 3 Right-click an empty section of the toolbar area and choose Show Toolbars > Extras: Dope Sheet. The Exclude Left End Point and Exclude Right End Point buttons appear. 4 On the Track View toolbar, click Exclude Left End Point. 5 On the Track View toolbar, click Copy Time. The selection is copied to the clipboard, minus the first frame. 6 Click to define an insertion point in the keys window. The last position key should be your insert point. 7 Click Paste Time. The Paste Time dialog appears. 8 In the dialog choose Paste Absolute or Paste Relative. For an animated loop choose Paste Absolute, then click OK. The time, including keys, is pasted. 9 Play your animation to observe the effect. Exclude Right End Point Track View > Dope Sheet > Extras: Dope Sheet toolbar > Exclude Right End Point button If you paste the same block of time repeatedly, one block following the other, you can create a looping segment in your animation. To create a smooth looping animation, you need to exclude either the first or last key of the copied block to prevent keys from doubling up at the ends. The key to be excluded must be at the exact end time of the copied block of time. 3638 | Chapter 15 Animation NOTE By default, the Extras: Dope Sheet toolbar doesn't appear in the Dope Sheet Editor. You'll find a method for displaying it in the following procedure. Procedures To animate a loop by copying and pasting keys: 1 In Dope Sheet mode, highlight one or more item labels in the Controller window to specify tracks for time editing. 2 Use Select Time on page 3630 to specify a block of time. At least one track in the block should end with a keyframe. Also, for a smooth loop, the first and last frame of the selection should be the same. 3 Right-click an empty section of the toolbar area and choose Show Toolbars > Extras: Dope Sheet. The Exclude Left End Point and Exclude Right End Point buttons appear. 4 On the Track View toolbar, click Exclude Right End Point. 5 On the Track View toolbar, click Copy Time. The selection is copied to the clipboard, minus the first frame. 6 Click to define an insertion point in the keys window. The last position key should be your insert point. 7 Click Paste Time. The Paste Time dialog appears. 8 In the dialog choose Paste Absolute or Paste Relative. For an animated loop choose Paste Absolute, then click OK. The time, including keys, is pasted. 9 Play your animation to observe the effect. Edit Time | 3639 Reduce Keys Track View > Curve Editor or Dope Sheet > Highlight the keys to reduce in the Key window. > Keys menu > Reduce Keys Track View > Curve Editor > Highlight the keys to reduce in the Key window. > Keys: Track View toolbar > Reduce Keys Use Reduce Keys to decrease key density. Animating with inverse kinematics, or creating any complex animation, can result in many keys, which can make editing the animation difficult. In the case of applied inverse kinematics, the software generates a key on nearly every frame. Often, the same animation can be produced with fewer keys. Having fewer keys in a track makes it easier to change your animation. Reduce Keys analyzes the pattern of keys in a block of time and creates a new pattern of fewer keys that produces nearly the same animation. You specify how closely the new animation matches the original. NOTE The Reduce Keys button, depicted above, appears on the Keys toolbar only in Curve Editor, but you can add it to a Dope Sheet toolbar with Customize User Interface on page 7697. Procedures To reduce keys: 1 Select an animated object in the viewport. 2 Right-click the object and choose Curve Editor or Dope Sheet from the quad menu. 3 In the Hierarchy list, highlight the tracks whose keys you want to reduce. Reduce Keys works only on highlighted tracks. 4 Optionally, in the Key window, specify a time range within which to reduce keys. Highlight a key at either end of the range to reduce, or drag a selection rectangle around the keys you want to reduce. Alternatively, in Dope Sheet mode, highlight specific tracks and then use Select Time on page 3630 to designate a block of time within which to reduce keys. If no keys are highlighted in a highlighted track, Reduce Keys works on all keys in that track. You can use any of the above methods to specify different ranges for different highlighted tracks. 3640 | Chapter 15 Animation 5 From the Keys menu, choose Reduce Keys. The Reduce Keys dialog appears. This dialog has a single Threshold parameter. Raising the Threshold setting will increase the number of keys that are reduced. The higher the threshold, the greater the reduction. 6 Click OK to reduce the keys. Observe the results. If you are left with too few keys, press Ctrl+Z to undo, then lower the threshold and reduce the keys again. If too many keys remain, increase the threshold and reduce keys again. TIP It will take repeated experimentation to find exactly the right threshold for your particular animation. Interface Reduce Keys Displays the Reduce Keys dialog. Threshold Sets a threshold value. Higher values will result in fewer keys. OK Accepts the Threshold setting and reduces keys as follows: ■ Keys are reduced only in highlighted tracks. ■ If any of a track's keys are highlighted, reduction is performed only within the indicated range (that is, between the leftmost and rightmost highlighted key for each track). If no key is highlighted, reduction is performed on all keys in the track. Edit Time | 3641 Edit Ranges Track View > Dope Sheet > Track View toolbar > Edit Ranges Edit Ranges displays all tracks as range bars. This mode is useful for quickly scaling and sliding complete animation tracks. ■ Drag the range bar of an animation track to change all animation in that track. ■ Drag range bars in higher-level tracks to change all animation in multiple tracks. NOTE You cannot access individual key values in this mode. The Ranges: Dope Sheet toolbar contains tools for working with Ranges. Right-click an empty area adjacent to the Dope Sheet toolbar and choose Show Toolbars > Ranges: Dope Sheet to display the toolbar. Save your layout after you do. Besides the Edit Ranges button, the Ranges: Dope Sheet toolbar shows the following buttons: Position Ranges on page 3643 Recouple Ranges on page 3644 Procedures To drag the ranges of an object and all of its linked descendants: 1 On the Track View toolbar, click Edit Ranges. 2 On the Track View toolbar, click Modify Subtree. 3 In the Track View Key window, drag an Object range bar or the World range bar. With Modify Subtree on, a range bar displays in the Objects track. The Objects branch is the default parent of all objects in the scene. 3642 | Chapter 15 Animation Dragging a parent-object range bar with Modify Subtree on affects all tracks subordinate to the object and all tracks of all of its linked descendants. Position Ranges Track View > Dope Sheet > Ranges: Dope Sheet toolbar > Position Ranges Position Ranges mode allows you to position range bars independently from their associated keys and produce special effects. The process of adjusting a range bar independent of its keys is called decoupling the range. Positioning a range bar so it matches the first to last keys of a track is called recoupling the range. NOTE The Ranges: Dope Sheet toolbar doesn't appear in Track View by default. To open it, right-click an empty area adjacent to the Dope Sheet toolbar and choose Show Toolbars > Ranges: Dope Sheet. Save your layout after you do. Decouple a Range Bar You decouple a range bar for two reasons: ■ You want some keys at the start or end of an animation range not to take effect. Keys outside of the range bar are ignored during animation playback. The keys outside the range still affect interpolated values inside the range, but the applied Out-of-Range type is used to animate time outside the range bar. ■ You want to add extra time before the first key or after the last key that is not affected by the applied Out-of-Range type. Time beyond the first or last key of the track, but still within the range, uses the constant value of the nearest key within the range. Procedures To decouple a range bar from its keys: 1 Right-click an empty area adjacent to the Dope Sheet toolbar and choose Show Toolbars > Ranges: Dope Sheet. Edit Ranges | 3643 2 On the Track View toolbar, click Position Ranges. 3 In the Track View Key window, drag the entire range bar left or right of the keys, or drag either end of the range bar to make it longer or shorter than the keys. Using Out-of-Range types on page 3601 in conjunction with this procedure allows you to change the behavior of an animated loop. Positioning either end of a range bar changes the loop. Recouple Ranges Track View > Dope Sheet > Ranges: Dope Sheet toolbar > Recouple Ranges Recouple Ranges resizes the range bar so that the beginning and end of the range matches the first and last keys in the track. This is useful to quickly realign the range and the keys after editing. NOTE The Ranges: Dope Sheet toolbar doesn't appear in Track View by default. To open it, right-click an empty area adjacent to the Dope Sheet toolbar and choose Show Toolbars > Ranges: Dope Sheet. Save your layout after you do. Procedures To recouple a range: 1 Right-click an empty area adjacent to the Dope Sheet toolbar and choose Show Toolbars > Ranges: Dope Sheet. 2 On the Track View toolbar, click Position Ranges. 3 Select one or more item labels in the Hierarchy list to select tracks to be recoupled. 4 On the Track View toolbar, click Recouple Ranges. The range bars for the selected tracks are positioned to match up with the first and last keys in their track. 3644 | Chapter 15 Animation Position Ranges mode allows you to decouple the range bar from the animation keys. Recouple Ranges is a quick way to realign the range bars. Editing Tracks: Copying, Pasting, and Handling Instances and References Copying and Pasting Items You can copy and paste geometry, lights, materials, and animation controllers between items in the Track View Hierarchy list of the controller window. You can copy these categories of items in Track View: Containers Items with multiple branches that completely define something in your scene. Container items that can be copied include: ■ Material Parameters containing the Basic Parameters for a material definition. ■ Material Maps containing the entire set of maps and map parameters assigned to a material. ■ Map definitions containing a single map type with its associated parameters and coordinates. ■ Map Coordinates containing the map XYZ and UVW coordinate offset, tiling, and angle settings. ■ Map Parameters containing the parameters for a specific map type. ■ Objects, on levels below the transforms, containing creation parameters for an unmodified object. ■ Modified Object, containing modifiers applied to an object and the object-creation parameters. ■ Modifiers containing modifier parameters. Controllers These control actual animated values for each parameter. Keep in mind that when you copy containers, you are actually copying and pasting groups of related controllers. Details about copying and pasting single controllers are presented in Assigning Controllers on page 3107. Editing Tracks: Copying, Pasting, and Handling Instances and References | 3645 Whether you copy objects, materials, or controllers, the same basic principles apply. Here are restrictions for using Copy and Paste: ■ You can copy only a single highlighted item. ■ You can paste a copied item only into another item of the same type. An exception to this restriction involves pasting Object and Modified Object containers. ■ You can paste a copied item into a selection of multiple items only if all the items are of the same type. ■ When pasting items, you can choose to make an instance or a copy of the pasted item. ■ You cannot copy/paste actively linked objects. Copying Items You copy an item by highlighting it in the Controller window Hierarchy list, and then right-clicking and choosing Copy from the quad menu. If Copy is not available the selected item is not a valid copy source. 3ds Max disables Copy when the selected item is not a valid copy source or if multiple items are selected. Pasting Items Pasting items involves a few more choices than copying. You select one or more items from the Hierarchy list. If Paste is available the selected items are valid paste targets. The program disables Paste if the selected targets are not all the same type or if they do not match the type of item in the clipboard. You can use Paste as follows: ■ Paste into a single target item. ■ Paste into multiple target items. ■ Paste copies or instances. ■ Choose to convert other instances in the scene automatically. Clicking Paste on the quad menu displays the Paste dialog, with controls for determining how the Paste operation will be carried out. Copy Pastes the item in the clipboard as an independent copy. The target item will have no connection to the copied source item. 3646 | Chapter 15 Animation Instance Pastes the item in the clipboard as an instance of the copied source item. The target item will be an instance of the source item. Any change you make to either item affects the other. Replace All Instances Controls whether existing instances of the target item are also converted to the paste source or left as they are. Making Instances Unique You can convert instanced items to unique items by clicking Make Unique on page 3600 on the Controller menu. If the selected item is not an instance, or if a selection of multiple items does not contain similar instances, Make Unique is disabled. Copying and Pasting Objects In the Track View controller window you can use the Hierarchy list to copy and paste objects. This allows you to replace the geometry of one animated object with the geometry of another object. This is similar to the functionality provided by XRef objects and scenes where you have to option of defining proxy or stand-in objects. Copying and pasting objects is achieved by highlighting the Object track for the source object, copying it, then pasting it to the Object track of the target object. The Object track is found beneath the Transforms and Modified objects entries, and appears with parentheses that define the geometry type. For example, Object (Box) or Object (Editable Mesh) are two label names that might appear on the correct track for object cut and paste. Using these two container types, you can copy geometry between objects. To copy one object to other objects: 1 In the Curve Editor controller window, find the object that you want to copy from. 2 Navigate to the Object track that is beneath the Transform or Modified Object entries. The name will be something like Object (PivotDoor) or Object (Editable Mesh), for example. NOTE If the object is modified, the order of the name of its Object track in the Hierarchy list is reversed; for example, Object (Sphere) becomes Sphere (Object). Editing Tracks: Copying, Pasting, and Handling Instances and References | 3647 3 Highlight the object track you wish to copy, then right-click and choose Copy from the quad menu. 4 Navigate to the object track for the target object, highlight it, and then right-click and choose Paste. Set options in the Paste dialog, then click OK. The object is replaced with the new one in the viewport as well as in the Hierarchy list of the controller window. WARNING The original target has been completely replaced by the pasted object. Use Save Selected on page 6931 on the target object to save a copy of that object, if you think you'll need to use it again sometime. Here are some examples of how you might use object copy and paste: ■ Paste an Object to another Object to replace one simple object with another. For example, you animate the transforms of a box object and want to replace the box with a torus. ■ Paste an Object into a Modified Object to replace a complex, modified object with a simple stand-in object. For example, you model a complicated vehicle and you want to replace it with a box while you animate its transforms. Be sure to save the Modified Object to a file (using Save Selected on page 6931). ■ Paste a Modified Object into another Modified Object to replace one complex modified object with another. For example, you animated a flight of jets and want to replace them with helicopters. ■ Paste a Modified Object into an Object to replace simple stand-in objects with complex modified objects. For example, you have animated a box and now want to replace it with a complex model of a jet. Copying and Pasting Object Modifiers You can also copy and paste modifiers below the Modified Object container. Copy and paste modifiers to do the following: ■ Copy modifiers within the modifier stack of a single object. ■ Copy modifiers between objects. 3648 | Chapter 15 Animation Unlike pasting other items, modifiers do not replace the highlighted item when you click Paste. Instead, the pasted modifier is inserted above the selected item. Making Instance and Reference Controllers and Objects Unique You can convert instanced and referenced objects into unique objects by clicking Make Controller Unique on the Track View toolbar or by choosing Make Unique on the Controller menu. The result of clicking Make Unique depends on how the object was instanced or referenced, and which object container you select in the Hierarchy list. When you make an instance or reference object, you cause the data flow to branch on its way from the master object to two or more named objects. ■ In Track View, these branches usually occur at Modified Object containers and sometimes at the base Object container. ■ In Track View, instances and references are displayed in bold face. ■ In the modifier stack, these branches display as a horizontal line, called a derived object line. For descriptions of object data flow and instance objects, see Understanding Object Data Flow on page 1074. You can make an object unique by selecting a Modified Object or an Object container and clicking Make Unique on the Track View toolbar. Your result depends on whether or not the data flow branches at the selected container. ■ If the data flow does not branch anywhere below the selected container, nothing happens. ■ If the data flow does branch at or below the selected container, the data flow above the branch is split from the current data flow as a unique object. The data flow from the selected container to the master object is copied and attached to the new unique object. Editing Tracks: Copying, Pasting, and Handling Instances and References | 3649 Making a Selection of Multiple Instances Unique If you select multiple objects that are instances of each other, or share instanced modifiers, you can choose how to make them unique. After you click Make Unique, the Make Unique dialog appears, with the question, “Do you want to make the selected items unique with respect to each other?” ■ Click Yes to make each object in the selection completely unique. ■ Click No to leave the objects in the selection as instances, but to make them unique from other objects not in the selection. Curve Editor Main toolbar > Curve Editor (Open) > Highlight animated tracks. > Curves are displayed in Key Window. Graph Editors > Track View - Curve Editor > Highlight animated tracks. > Curves appear in Key window. Right-click any animated object. > Curve Editor > Curves appear in Key window. The Curve Editor displays animation as function curves, charting the controllers' changes of value over time. Highlighting a controller label displays keys for that item as vertices on the function curve. You can then highlight keys and change their values. You can add keys to function curves for tracks that are not yet animated. The curves appear as straight lines. When you add a key to a function curve, a controller is created for that track. Not all controller types display function curves. For example, a TCB Rotation controller doesn't display a function curve, while an Euler XYZ rotation controller shows individual curves for X, Y and Z. Some controllers display individual tracks for each axis, while other controllers combine the three axis values into a single curve. The Track View tools for working with function curves, found on the Curve Editor toolbars on page 3572 and menus, include the following: Move Keys (Curve Editor) on page 3652 Scale Keys on page 3654 3650 | Chapter 15 Animation Slide Keys on page 3614 Scale Values on page 3655 Add Keys (Curve Editor) on page 3655 Draw Curves on page 3657 Reduce Keys on page 3640 Show All Tangents on page 3563 Show Tangents on page 3658 Lock Tangents on page 3660 Apply Ease Curve / Apply Multiplier Curve on page 3660 Remove Ease/Multiplier Curve on page 3662 On/Off (Curves) on page 3662 Ease Curve Out-of-Range Types on page 3663 Multiplier Curve Out-of-Range Types on page 3665 Freeze Non-Selected Curves on page 3667 Bezier Tangent Handles Custom tangents You can use Bezier handles in the Curve Editor to change the shape of the trajectory through a key. To display handles on a key, right-click a key in the Track View Key Window and choose the Custom Tangents option. You can assign the Custom Tangent type only to items using a Bezier controller. This will display tangent handles on the keys that you can manipulate horizontally and vertically. Curve Editor | 3651 Procedures To display function curves: 1 Select an animated object in a viewport. 2 Right-click the active viewport and choose Curve Editor. The function curves for the object's animation are displayed in the Key window of the Function Curve Editor. 3 To display additional curves at the same time, from the Track View menu choose Settings > Manual Navigation. 4 Navigate the controller window until you see the additional tracks, and then hold down the Ctrl key and click them. The curves for all highlighted tracks are displayed together in the Key window. Move Keys (Curve Editor) Track View > Curve Editor > Track View toolbar > Move Keys flyout > Move Keys, Move Keys Horizontal, or Move Keys Vertical With the Move Keys flyout buttons in the Curve Editor, you can move one or more highlighted keys to change keys' timing, values, or both. You can clone keys by holding down Shift while dragging. The new keys are added to the existing keys on the curve. 3652 | Chapter 15 Animation You can also clone keys to replace existing keys by holding down Shift+Alt while dragging. TIP When you select keys to clone and replace others, you can include the key before the first selected key to preserve the tangent of your first copied key. Procedures To move a selection of keys: 1 In the Hierarchy list, highlight one or more tracks. Only keys in highlighted tracks appear in the Key window. By default, the Move Keys button is yellow, showing it is already on. 2 In the Track View Key window, highlight one or more keys. 3 Drag the highlighted keys to a new location, or press Shift and drag the highlighted keys to add copies at the new location. 4 Highlight another group of keys. 5 Press Shift+Alt, and drag the highlighted keys towards existing keys to replace them with copies. Interface Move Keys Moves keys in both horizontal and vertical axes, to change both timing and values. Move Keys Horizontal Constrains movement to the horizontal axis, to change timing. Move Keys Vertical Constrains movement to the vertical axis, to change values. Curve Editor | 3653 Scale Keys Track View > Curve Editor or Dope Sheet > Track View toolbar > Scale Keys Track View > Curve Editor or Dope Sheet > Keys menu > Scale Keys - Time Use Scale Keys to scale keys horizontally, changing the horizontal location and amount of time covered by selected keys. The horizontal location of the keys represents the frame in time at which the key action takes place. The scale center for scale time is the current time set by the time slider. You can scale keys about any point in time by dragging the time slider before you use Scale Keys. Procedures To scale a selection of keys horizontally: 1 Right-click an animated object and choose Curve Editor. 2 In the Hierarchy list, highlight a track. 3 Scrub the time slider on page 7528 to the frame to use as the scale center. 4 On the Track View toolbar, click Scale Keys. 5 Highlight one or more keys. 6 In the Track View Key window, drag any of the highlighted keys horizontally to scale, or press Shift and drag to add scaled copies of selected keys. 7 The scaling effect depends on the direction you drag with respect to the time slider location: ■ Drag away from the time slider location to expand keys' scaling. ■ Drag toward the time slider location to reduce keys' scaling. ■ Drag past the time slider location to reverse the keys' order and expand the keys away from the current time. 3654 | Chapter 15 Animation Scale Values Main Track View > Curve Editor > Track View toolbar > Scale Values Track View > Curve Editor > Keys menu> Scale Values Scale Values is used to proportionally increase or decrease the vertical distance between selected keys on the function curves in Curve Editor. It uses the Scale Origin Line on page 3517 as a movable reference point for the scale operation. Practically speaking, scaling values always creates spatial adjustments, rather than temporal. To scale in time, use Scale Time on page 3636 instead. NOTE Scale Values is not available in Dope Sheet mode. Procedures To scale key values: 1 Select an object in the viewport, then right-click and choose Curve Editor. 2 Highlight one or more tracks, if necessary, and then highlight the keys you want to scale. 3 On the Curve Editor toolbar, click Scale Values. The orange Scale Values Origin line appears at the 0 location on the vertical scale. 4 Drag the Scale Values Origin line to where you want to scale values from or to. 5 Drag any highlighted key vertically to scale all of them. TIP If you use Lock Selection on page 3609 after highlighting the keys, you can drag anywhere in the Key window to create the scale operation. Add Keys (Curve Editor) Track View > Curve Editor > Track View toolbar > Add Keys Curve Editor | 3655 Track View > Curve Editor > Keys menu > Add Keys When Add Keys is active, you can click anywhere on a function curve to add a key at that location on the curve. Add Keys stays active until you click another mode. If the curve is part of a multicurve controller, vertices are added to each curve at the time location where you clicked. For example, adding a key to the red X curve of a TCB Position track simultaneously adds keys to the green Y curve and the blue Z curve. TIP You can move an existing key while in Add Keys mode simply by dragging it. Adding Keys to a Multicurve Controller The value of each key is set by one of the following conditions: ■ Keys added between keys receive the interpolated value shown by the function curve at that location. ■ Keys added before the first or after the last key on the curve receive the same value as the nearest key. ■ You can change a key value and/or time while adding it by dragging after clicking the curve. Procedures To add keys to a function curve: 1 In the Hierarchy list, highlight a track. 2 On the Track View toolbar, click Add Keys. 3 Click the function curve (Curve Editor) where you want to add the key. If the highlighted curve is part of a multicurve controller, vertices are added to each curve at the time location where you clicked. For example, if you are using a Bezier Position controller, adding a key to the red X curve of a Position track simultaneously adds keys to the green Y curve and the blue Z curve. 3656 | Chapter 15 Animation Draw Curves Track View > Curve Editor > Keys: Track View toolbar > Draw Curves button Use this tool to draw new curves, or revise existing ones by sketching directly on the function curve in the Curve Editor Key window. The speed with which you draw determines how many keys are added to the curve. If there are too many keys, use Reduce Keys to make fewer keys on the curve. Procedures To draw a curve: 1 On the Curve Editor toolbar, click Draw Curves. 2 Select the track of the curve you want to draw on. 3 Move your cursor onto the curve and draw. If there are too many points after drawing curves, delete or reduce on page 3640 keys. Curve Editor | 3657 Show Tangents Track View > Curve Editor > Curves: Track View Toolbar > Show Tangents button Show Tangents lets you view adjust the tangents of highlighted vertices in Curve Editor. Custom Tangent You can assign the Custom Tangent type to any controller that displays keys on a curve. Highlight the key on the curve and then click the Set Tangents To Custom icon on the Key Tangents: Track View toolbar to display the handle controls. The tangent handles can be either continuous or discontinuous. To make a handle discontinuous, hold down the Shift key when you move it. ■ Continuous handles behave like a single lever with its pivot point at the key location. Moving either end of the handle also moves the opposite end, maintaining the continuity of the tangent. The function curve, and the animation it represents, moves smoothly through a key with continuous tangent handles. ■ Discontinuous handles behave like leaves on a hinge, with the hinge pin at the key location. Each end moves independently of the other. To convert a discontinuous tangent to a continuous tangent, change the tangent type from Custom to Smooth and then back to Custom again. This technique is performed at the key level and can affect unselected vertices if they belong to the same key as one of the selected vertices. Horizontal Bezier Handle Control When using the Custom Tangent type, a tangent handle can be moved horizontally in length away from its keyframe to affect the shape of the function curve. This affects the amount of influence the keyframe has over the interpolation between keyframes. This feature can be used to aid in the slow-in and slow-out workflow of traditional animation. For example, suppose you're animating a ball bouncing up and down on the world’s Z axis. On frame 1, the ball is on the ground; on frame 8, the ball is in the air; on frame 16 the ball is back on the ground. You 3658 | Chapter 15 Animation could adjust the tangents for frame 8 so that their length pulls more of the curve towards its keyframe and away from the keyframes on frame 1 and 16. When rendered, the ball will be more visible on screen near the top of its bounce and blurrier near the points where it touches the ground. Procedures To assign a Custom tangent type: 1 Open the Curve Editor. 2 In the Hierarchy list, highlight a track that uses any controller that displays keys on the curve. 3 Highlight one or more keys on the curve. 4 On the Key Tangents: Track View toolbar, click Set Tangents to Custom. The handles are now all Custom and available for editing. TIP If a highlighted key has Auto Tangency set, you can just move its handle to instantly convert the key to Custom. For selections of multiple keys, choose Lock Tangents, then move any handle to convert all the keys to Custom tangency. To edit the horizontal length of a Bezier handle: 1 Assign a Custom Tangent type to the key you want to edit on the function curve, or highlight a key that already has one. 2 Make sure Show Tangents is on. The toggle is located on the Track View toolbar. 3 Highlight the key on the function curve. Tangent handles appear on the highlighted keyframe. 4 Move one of the handles horizontally away from its key. Interface Show Tangents Displays the tangents of highlighted vertices, whereupon you can adjust the tangents by dragging the handle endpoints. Curve Editor | 3659 By holding down the Shift key, you can edit the tangents handles separately. Lock Tangents Track View > Curve Editor > Select keys on curves. > Curves: Track View Toolbar > Lock Tangents Lock Tangents lets you manipulate handles of multiple vertices simultaneously. When Lock Tangents is active, dragging a tangent handle affects the handles of all highlighted keys. When Lock Tangents is inactive, dragging a tangent handle affects only that handle's key. Procedures To drag discontinuous tangent handles: 1 Highlight one or more keys in the Curve Editor. Hold down the Ctrl key to add to the selection set. 2 Click Lock Tangents to set one of the following modes: ■ Off: Dragging a tangent handle affects only the single key displaying the handle. ■ On: Dragging a tangent handle affects both handles of all selected keys. Apply Ease Curve / Apply Multiplier Curve Track View > Curve Editor > Curves menu > Apply Ease Curve or Apply Multiplier Curve Apply - Ease Curve and Apply - Multiplier Curve (available from the Curves menu in the Curve Editor) create an ease curve or multiplier curve track. These tracks let you modify or intensify an existing animation track without changing the original track. ■ A multiplier curve shifts the value of the original track up or down. Adjusting the multiplier curve increases or decreases the “intensity” of the original track. 3660 | Chapter 15 Animation ■ An ease curve shifts the time of the original track left or right. Adjusting the ease curve changes time. The value of the ease curve at a particular frame is a frame value from the original track. For example, if the ease curve is 0 at frame 0 and 10 at frame 10, the original track plays at its original speed. If the ease curve value at frame 10 increases to 20, the original track plays to frame 20 by frame 10: it has been sped up by a factor of two. Once you apply an ease or multiplier curve, you can edit its keys, ranges, and properties just like any other animation track. One use of ease and multiplier curves is to blend between the effects of different controllers. This can be an aid to nonlinear editing. Procedures To apply an ease curve or a multiplier curve: 1 In the Curve Editor Hierarchy list, highlight the tracks you wish to ease or intensify. Not all controller items can receive ease or multiplier curves. For example, the Path Constraint position controller cannot receive an ease or multiplier curve, but its subordinate Percent controller can. If the highlighted controller is incapable of receiving ease or multiplier curves, nothing happens when you apply the curve. 2 From the Curves menu, choose Apply - Ease Curve or Apply - Multiplier Curve. 3 In the Controller window expand the highlighted tracks to view the ease curve. 4 Hold down the Ctrl key and click the ease curve and controller tracks. 5 Adjust the keys on the ease curve and watch the result in the controller curve. Use a Multiplier curve to intensify an effect, or an ease curve to make less of an effect. TIP Use Step interpolation to use the ease curve to turn tracks on and off. Curve Editor | 3661 Interface Apply - Ease Curve Applies a curve to alter the timing of the selected function curve. Ease curves vary the timing of a superior function curve. A normal function curve charts an animated parameter value over time. An ease curve charts changes to the timing of a function curve over time. Apply - Multiplier Curve Applies a curve to scale the value of the selected function curve. The value of a multiplier curve is a scale factor applied to the value of its superior function curve. You apply ease and multiplier curves in Curve Editor mode. Once you apply an ease or multiplier curve, you can edit its keys, ranges, and properties, as with any other animation track. Remove Ease/Multiplier Curve Track View > Curve Editor > Curves menu > Remove Remove (Ease/Multiplier Curve) lets you delete an ease or multiplier curve at any time. Procedures To delete an ease or multiplier curve: 1 In the Hierarchy list, select one or more ease or multiplier curve tracks. 2 On the Track View menu bar, choose Curves > Remove. The selected Ease or Multiplier curve is removed. TIP You can use On/Off (Curves) on page 3662 to turn off the ease or multiplier affect without removing the curve. On/Off (Curves) Track View > Curve Editor > Curves menu > On/Off Use On/Off when you want to work with the original function curve rather than a curve altered by ease and multiplier curves. A disabled curve has no effect on its assigned track, but can be enabled to restore the effect. 3662 | Chapter 15 Animation Procedures To toggle the active state of an ease or multiplier curve: 1 In the Hierarchy list, highlight one or more ease or multiplier curves. 2 From the Curves menu choose On/Off. If you also have the parent track selected (the transform that has the ease applied), you will see the difference in the curve when you turn the ease or multiplier off. Ease Curve Out-of-Range Types Track View > Curve Editor > Curves menu > Ease Curve Out-of Range Types Ease Curve Out-of-Range Types displays a dialog that lets you assign out-of-range types for the current ease curve on page 7960. Ease and multiplier curves use the same out-of-range types as other controller tracks. See Parameter Curve Out-of-Range Types on page 3601. You will usually want to use the same out-of-range type for an ease curve that you use for its superior function curve. Procedures To set the out-of-range type for an ease curve: 1 Highlight one or more ease curve items in the Hierarchy list. 2 From the Curves menu choose Ease Curve Out-of-Range Types. 3 Do one of the following. ■ Click an out-of-range type image to apply that type to both the incoming and outgoing curves of the ease curve. ■ Click the left arrow button below an out-of-range type image to apply it to only the incoming curve of the ease curve. ■ Click the right arrow button below an out-of-range type to apply it to only the outgoing curve of the ease curve. Curve Editor | 3663 Interface Constant Holds the values at the ends of the range for all frames. Use Constant when you want no animated effect before or after the range. The time value at start of the range is held for all frames before the range, and the time value at the end of the range is held for all frames after the range. Constant is the default out-of-range type for multiplier curves. Cycle Repeats the same animation as within the range. Use Cycle when you want an animation to repeat exactly. Loop Repeats the same animation as within the range but interpolates between the last key and the first key of the range to create a smooth loop. Use Loop with an extended range bar to produce smoothly repeating animation. Ping Pong Alternates between a forward and backward repeat of the animation within the range. Use Ping Pong when you want your animation to alternate back and forth. Linear Projects the animation value along a line tangent to the ease or multiplier curve at the end of the range. use linear when you want the animation to enter and leave the range at a constant velocity. Relative Repeat Repeats the same animation as within the range but offsets each repetition by the value at the end of the range. Use Relative Repeat to create animations that build on each other as they repeat. Identity Projects the ease curve along a line with a slope of 1.0 from either end of the range. This causes time to flow at a normal, constant rate outside the range of the ease curve. Use Identity when you want the ease curve to be a localized, non-repeating effect. 3664 | Chapter 15 Animation Identity for an ease curve produces an effect similar to constant for other types of curves. Identity is not available for multiplier curves; it is the default Out-of-Range type for ease curves. Multiplier Curve Out-of-Range Types Track View > Curve Editor > Curves menu > Multiplier Curve Out-of Range Types Multiplier Curve Out-of-Range Types displays a dialog that lets you assign out-of-range types for the current multiplier curve on page 8056. Ease and multiplier curves use the same out-of-range types as other function curves. You will usually want to use the same out-of-range type for a multiplier curve that you use for its superior function curve. Procedures To set the out-of-range type for a multiplier curve: 1 Highlight one or more multiplier curve items in the Hierarchy list. 2 From the Curves menu choose Multiplier Curve Out-of-Range Types. 3 Do one of the following. ■ Click an out-of-range type image to apply that type to both the incoming and outgoing curves of the multiplier curve. ■ Click the left arrow button below an out-of-range type image to apply it to only the incoming curve of the multiplier curve. ■ Click the right arrow button below an out-of-range type to apply it to only the outgoing curve of the multiplier curve. Curve Editor | 3665 Interface Constant Holds the values at the ends of the range for all frames. Use Constant when you want no animated effect before or after the range. The time value at start of the range is held for all frames before the range, and the time value at the end of the range is held for all frames after the range. Constant is the default out-of-range type for multiplier curves. Cycle Repeats the same animation as within the range. Use Cycle when you want an animation to repeat exactly. Loop Repeats the same animation as within the range but interpolates between the last key and the first key of the range to create a smooth loop. Use Loop with an extended range bar to produce smoothly repeating animation. Ping Pong Alternates between forward and backward repetition of the animation within the range. Use Ping Pong when you want your animation to alternate back and forth. Linear Projects the animation value along lines tangent to the ease or multiplier curve at the limits of the range. Use Linear when you want the animation to enter and leave the range at a constant velocity. Relative Repeat Repeats the same animation as within the range but offsets each repetition by the value at the end of the range. Use Relative Repeat to create animations that build on each other as they repeat. 3666 | Chapter 15 Animation Freeze Non-Selected Curves Track View > Curve Editor > Display menu > Show Non-Selected Curves > Freeze Non-Selected Curves Freeze Non-Selected Curves makes all non-highlighted curves uneditable. Default=On. Freeze Non-Selected Curves is a selection modifier and has the following properties: ■ Non-highlighted curves display as dashed lines. ■ You can manipulate vertices on highlighted curves only in the Edit window. ■ You highlight other curves by clicking their icons in the Hierarchy list. Turn Freeze Non-Selected Curves off when you want to be able to edit multiple curves without having to select them all. Turn Freeze Non-Selected Curves On when you have multiple vertices on multiple curves all in the same place. Procedures Example: To freeze non-selected curves: 1 Animate an object's position. 2 From the Graph Editors menu, choose Track View - Curve Editor. On the Options menu, make sure Auto Expand > Selected Objects Only/Transforms/XYZ Components are all on. The X/Y/Z position tracks are all highlighted, and their curves appear in the Key window. You can drag keys on any curve. 3 On the Display menu, make sure Hide Non-Selected Curves is on. This is the default setting. 4 In the Hierarchy list, click the X Position track icon. Now only the red X Position curve is visible. 5 From the Display menu, choose Show Non-Selected Curves. The other two curves reappear, and are editable. 6 From the Display menu, choose Freeze Non-Selected Curves. The Y Position and Z Position curves remain visible, but display as dashed lines. Curve Editor | 3667 7 Position the mouse cursor over a vertex on the Y Position or Z Position curve. The cursor doesn't change to a crosshair, indicating that you can't modify the vertex. 8 In the Hierarchy list, click the Y Position track icon and then Z Position track icon. All three remain visible, but in each case the two non-highlighted tracks display as dashed lines, and are not editable. Status Bar/View Controls Track View > Status Bar/View Controls Use the Status Bar/View Controls to control the Track View Key window and view or enter frame and key values on the Track View status bar. Track Selection: Track View toolbar Key Stats: Track View toolbar Navigation: Track View toolbar Track Selection:Track View Toolbar Zoom Selected Object on page 3669 Select By Name (Track View) on page 3670 Track Sets List on page 3672 Track Sets Editor Dialog on page 3674 3668 | Chapter 15 Animation Key Stats:Track View Toolbar Key Time Display on page 3679 Value Display on page 3680 Show Selected Key Statistics on page 3680 Navigation:Track View Toolbar Pan (Track View) on page 3681 Zoom Horizontal Extents on page 3682 Zoom Value Extents on page 3683 Zoom Track View Key Window on page 3684 Zoom Region (Track View) on page 3685 Zoom Selected Object With Track View already open to navigate to a particular object, select the object in the viewport. > Navigation: Track View toolbar > Zoom Selected Object Use Zoom Selected Object to place the currently selected object at the top of the Hierarchy list in the controller window. In Dope Sheet mode, Zoom Selected Object affects the Hierarchy list as well as the Edit window, but in the Curve Editor, it affects only the Hierarchy list. This function scrolls the hierarchy to place the track of the currently selected object at the top of the list. If the object is a child of a closed hierarchy, the hierarchy is opened to display the selected object. If more than one object is selected in the scene, the uppermost selected object in the Hierarchy list is placed at the top of the list. If no objects are selected, nothing happens. This function works only on object tracks. Procedures To place the selected object at the top of the Hierarchy list: 1 Select an object in the viewports. Status Bar/View Controls | 3669 2 Open Track View, and then click Zoom Selected Object. The object is placed at the top of the Hierarchy list. This option is handy to quickly find an object in a hierarchy, such as a character's finger, and place it at the top of the Hierarchy list. Select By Name (Track View) Track View > Curve Editor or Dope Sheet > Track Selection: Track View toolbar > Select By Name field With Select By Name you can highlight tracks in the Hierarchy window by entering the track names (including optional wildcards) in the editable field. If the Controller Type display is active in the Filters options, you can specify by controller type as well. Select By Name using wildcard 3670 | Chapter 15 Animation Notes ■ The name selection is not case-sensitive, except for text within parentheses. ■ Only those tracks that are open and displayed can be selected. ■ You can use wildcard characters. For example: Seat selects all objects with Seat in the beginning of the name. (Cone01)Position selects only the Position track under Cone01. (Cone*)Position selects the Position track under all objects that begin with "Cone" ■ You can include multiple names in your selection if you separate them with commas; for example: Cone,Box,Sphere. Procedures To highlight all the tracks in a scene: ■ Enter * in the Select by Name field in the Track Selection toolbar. All the tracks are selected at once. Example: To highlight and display Position tracks for three objects: 1 Create three boxes. By default, the boxes are named Box01, Box02, and Box03. 2 On the main toolbar, click Curve Editor (Open). 3 In the Track View Hierarchy list, expand the hierarchies for the three box objects. 4 In the Select By Name field, type (Box*)p. All the Position tracks are highlighted. 5 On the Track View toolbar, right-click Filters and choose Selected Tracks Only in the dialog. The Position tracks for the three boxes are displayed at the top of the Hierarchy list. Example: To highlight multiple tracks using comma-separated name selections: 1 Create a box. 2 On the main toolbar, click Curve Editor (Open). Status Bar/View Controls | 3671 3 In the Track View Hierarchy list, expand box01's hierarchy to see all Transform children tracks. 4 In the Select By Name field, type x pos,y rot,scale. The box's X Position, Y Rotation, and Scale tracks are highlighted. The commas placed between each name act as Boolean addition (“OR”) operators, allowing multiple names in one selection. Track Sets List Track View > Track Selection toolbar You can assign a name to the current track selection, and then later reselect those tracks by choosing the name of the respective track set from the list. Track Sets List You can also create and edit track sets with the Track Sets Editor dialog on page 3674. Using Key Filters with Track Sets If you are animating track sets using Key Filters in Set Key mode on page 7552, the filters dictate which track set members are keyable, because they take precedence over track sets. 3672 | Chapter 15 Animation Only the track set members specified in the Key Filters list are keyable. Procedures To assign a name to a track set: 1 Highlight one or more tracks in the Track View Controller window. 2 Click in the Track Set List field on the Track View toolbar on page 3572. 3 Enter a name for your track set. The name can contain any standard ASCII characters, including letters, numerals, symbols, punctuation, and spaces. NOTE Names are case-sensitive. 4 Press Enter to complete the track set. You can now highlight another combination of tracks and repeat the process to create another track set. To retrieve a track set: 1 In the Track Sets List, click the arrow. 2 On the list, click a name. Status Bar/View Controls | 3673 The respective tracks are highlighted in the Track View Controller window. To edit a track selection: You can change a track selection using track sets and the Ctrl and Alt keys. 1 Highlight one or more tracks in the Track View Controller window. 2 Open the Track Set List by clicking the arrow. 3 Press and hold Ctrl, and then click a name in the list. The track set members are added to the current track selection. 4 Press and hold Alt, and then click a name (either the same or another) in the list. The track set members are subtracted from the current track selection. To edit track sets; ■ On the Track View toolbar, click Edit Track Set to display the Track Sets Editor dialog on page 3674. Track Sets Editor Dialog Curve Editor Track Selection toolbar > Edit Track Set The Track Sets Editor dialog is a modeless dialog on page 8045 that lets you create and edit animation track groups called track sets. This feature facilitates working on multiple tracks at a time, because you can recall your tracks without the need to select them individually. TIP As your projects grow in size, you can also use track sets to help organize your animations by regrouping them under reference dates or versions such as Walk_Animation_v5.0 or Baseball_Hit_2005/07/01. Within the Track Sets Editor dialog, you can browse track set listings, add or remove tracks to/from a track set, highlight track set members based on selections from the Hierarchy list, and vice-versa. See also: ■ Track Sets List on page 3672 3674 | Chapter 15 Animation Procedures To create a track set from selected tracks: 1 In the Track View Controller window, highlight tracks to group as a track set. 2 3 Click Edit Track Set. In the Track Sets Editor dialog, click Create A New Track Set. 4 Expand the new track set. A new track set appears containing your selected tracks. To edit the contents of a track set: This procedure follows from the previous procedure, and focuses on adding and removing tracks to/from your track set. 1 In the Track View Controller window, highlight a few tracks to add to your track set. Make sure the tracks are not already part of it. Status Bar/View Controls | 3675 2 In the Track Sets Editor dialog, highlight your track set or any of its members, and then click Add The Track View Selection To The Current Track Set. The highlighted tracks are now members of your track set. 3 Click Remove The Track View Selection From The Current Track Set. The highlighted tracks are now removed from the track set. To locate tracks in the Track View or the Track Sets Editor: This procedure is a continuation of the previous procedures and explains how you can use the Track Sets Editor to quickly locate your tracks in the Hierarchy list and vice-versa. This is useful for managing scenes comprised of many tracks that span across multiple track sets. 1 Create two track sets each containing tracks. Make sure one track is common to both track sets. 2 In the Track View Controller window, highlight the common track. In the Track Sets Editor dialog, click Highlight Tracks Selected In The Track View. The common track is highlighted in both track sets. 3 Highlight another track set member and click Select The Current Track Or Track Set In The Track View. 3676 | Chapter 15 Animation The respective track in the Controller window is highlighted. Interface The Track Sets Editor dialog window displays all current track sets. To expand or collapse the track list for a set, click the plus (+) or minus (-), button next to the track set name. Create A New Track Set Adds a new track set comprising any highlighted tracks in the Hierarchy list. Only leaf on page 8002 tracks can be part of a track set. If you highlight a non-leaf parent track when the track set is created, all its children leaf tracks are added instead. Status Bar/View Controls | 3677 A track set created from a non-leaf parent track contains all children leaf tracks. NOTE If no tracks are highlighted, an empty set is created. Delete Track Sets Or Tracks Removes a highlighted track set or track set member. NOTE Deleting a track set member does not delete it in the Track View. Add The Track View Selection To The Current Track Set Combines a highlighted track from the Controller window to the current track set. Only leaf tracks can be added to a track set. If you highlight a non-leaf parent track to be added to the track set, all its children leaf tracks are added instead. Remove The Track View Selection From The Current Track Set Deletes a track set member from the current track set. The track itself must be highlighted in the Controller window. Highlight Tracks Selected In The Track View Highlights a track set member based on the current Track View selection. If a track is shared between track sets, all track set members are highlighted. Select The Current Track Or Track Set In The Track View Highlights a track in the Controller window based on the current track set member selection. 3678 | Chapter 15 Animation Key Time Display Track View > Curve Editor or Dope Sheet > Key Stats: Track View toolbar > Key Time Display (field on left) The Key Time editable field (the field on the left) displays the frame number (position in time) of the selected key. You can enter a new frame number or enter an expression to move the key to a frame. Using Expressions in the Time and Value Fields You can enter any expression in the time and value fields. The variable n stands for the key time or value. An expression can be as complex as you want, and can involve any function the expression controller on page 3154 uses. For example, you could enter an expression such as: n/2+sin(n)*40^n. The expression parsing in the time field works only when Time Configuration on page 7565 > Time Display is set to Frames. The expression parser doesn't understand SMPTE or Frame:Ticks. Procedures To move a key to a specific frame: 1 In Track View, highlight a key. 2 In the Key Time Display, enter the frame number you want to move the key to. 3 Press Enter. The key (and, in Dope Sheet mode, any associated keys) moves to the new time. To move keys ahead 10 frames: 1 In the Track View Key window, highlight keys. 2 In the Key Time field, type n+10 . Selected keys are incremented by 10 frames. Status Bar/View Controls | 3679 Value Display Track View > Curve Editor or Dope Sheet > Key Stats: Track View toolbar > Value Display (field on right) Value Display (the field on the right) displays the value, or position in space, of a highlighted key. This is an editable field. You can enter a new number or expression to change the value of selected keys. Procedures Example: To move an object in space using Value Display: 1 In the Track View (either mode) Hierarchy list, expand the Position track of an animated object. In Curve Editor mode, if Show Non-Selected Tracks is not active, highlight a track, if necessary, so the keys are visible. 2 Highlight an X, Y, or Z Position key. The Value Display shows the X, Y, or Z position key spatial value. 3 Enter the value you want in the Value Display and press Enter. The new value takes effect. If the time slider is at or near the same frame as the key, the change is visible in the viewports. Example: To add 10 to the values of specific keys: 1 In Track View, either mode, highlight the keys to edit. 2 In the Value Display field, enter n+10. Each key's value is incremented by 10. Simply entering 10 would give each key a value of 10. Show Selected Key Statistics Track View > Curve Editor > Key Stats: Track View toolbar > Show Selected Key Stats 3680 | Chapter 15 Animation Show Selected Key Statistics displays the statistics represented by the currently selected keys in the Key window of the Curve Editor. The frame number and value are displayed to the right of the key in the Key window. For example, 68, 40.620 (frame=68, value=40.620). Procedures To show selected key statistics: 1 On the Key window of the Curve Editor, select any key or set of keys. 2 On the Key Stats: Track View toolbar, click Show Selected Key Stats. The key statistics are displayed next to each key. Pan (Track View) Track View > Curve Editor or Dope Sheet > Navigation: Track View toolbar > Pan With Pan you can click and drag the Key window to move it left, right, up or down. Pan remains active until you right-click to cancel or click another option. The Pan button is yellow while active. If you have a middle mouse button, pressing it will instantly give you the Pan capability in Track View, as in the rest of the software. Drag horizontally in all modes to slide the view forward and backward in time. Drag vertically to slide the view up and down in value. Zooming and Panning with a wheel mouse You can use the wheel on a wheel mouse to zoom and pan the Track View Key window. Drag with the wheel to pan, and roll the wheel to zoom. (If you have a standard three-button mouse, use Ctrl+Alt+middle mouse button to zoom.) Status Bar/View Controls | 3681 Procedures To pan in the Key window: 1 On the Navigation: Track View toolbar, click Pan. 2 Position the mouse cursor over the Key window, and then press and drag to pan. Zoom Horizontal Extents Track View > Curve Editor or Dope Sheet > Navigation: Track View toolbar > Zoom Horizontal Extents Zoom Horizontal Extents is a flyout containing the Zoom Horizontal Extents and Zoom Horizontal Extents Keys buttons. Use Zoom Horizontal Extents to show only the active time segment on page 7898, and use Zoom Horizontal Extents Keys to show all keys, including those outside the active time segment. Procedures To display the active time segment in the Key window: ■ On the Track View status bar, select Zoom Horizontal Extents. The active time segment (lighter background color) is centered in the Key window. Interface Zoom Horizontal Extents Adjusts the magnification of the Track View Key window horizontally so that all of the active time segment is visible at once. 3682 | Chapter 15 Animation Zoom Horizontal Extents Keys Scales the Track View Key window horizontally to display the full range of all animation keys. Depending on your animation, this view could be larger or smaller than the active time segment. Zoom Value Extents Track View > Curve Editor > Navigation: Track View toolbar > Zoom Value Extents Zoom Value Extents is a flyout containing the Zoom Value Extents and Zoom Value Extents Range buttons. In Function Curves mode, Zoom Value Extents adjusts the size of the Track View Key window vertically so that you can see the full height of the curve. Zoom Value Extents Range also adjusts the window vertically but it zooms only to the height of the keyframes that are currently in view. NOTE In Dope Sheet mode, Zoom Value Extents and Zoom Value Extents Range serve no function. Procedures To zoom to the height of the curves: 1 In the Hierarchy list, highlight the tracks to display. 2 On the Track View status bar, click Zoom Value Extents. The Key window scales vertically to display the function curves. This is particularly useful if you are zoomed in and need to see all the keys again. There is no undo for view changes that occur in the Key window, so the Zoom Extents button can serve the function of resetting your view. To zoom to the height of the keyframes that are currently visible: 1 In the Hierarchy list, highlight the tracks to display. Status Bar/View Controls | 3683 2 On the Track View status bar, click Zoom Value Extents Range. The Key window scales vertically to the height of the keyframes in view. This is useful if you want to focus on working with one section of your animation curve. Zoom Track View Key Window Main toolbar > Curve Editor or Dope Sheet > Navigation: Track View toolbar > Zoom In Track View, the Zoom controls are available from a three-button flyout. You can zoom your view of time horizontally (Zoom Time), vertically (Zoom Values), or in both directions simultaneously (Zoom). Drag to the right or upward (Zoom Values) to increase magnification, or to the left or downward (Zoom Values) to decrease magnification. Zooming occurs around the cursor location. NOTE All three zoom modes work in Curve Editor, but only Zoom and Zoom Time work in Dope Sheet. TIP If you use a three-button or wheel mouse, you can also zoom uniformly by using Ctrl+Alt+middle mouse button or by scrolling with your mouse wheel in the Curve Editor. TIP You can also zoom exclusively in time (left and right) or in value (up and down) by holding down Ctrl or Shift respectively while scrolling with your mouse wheel in the Curve Editor. Procedures To zoom in on time: 1 On the Navigation: Track View toolbar, choose Zoom Time from the flyout. 2 Click and drag to the right in the Track View Key window. 3684 | Chapter 15 Animation Your view of time expands horizontally in the Key window. Interface Zoom Zooms your view of time and values simultaneously. Zoom remains active until you right-click to cancel or click another option. The Zoom button is yellow while active. Zoom Values In Curve Editor, zooms the contents of the keys window vertically. Drag upward to increase magnification, or downward to decrease magnification. Zoom Time Zooms the contents of the Key window horizontally. Zoom Region (Track View) Track View > Curve Editor or Dope Sheet > Navigation: Track View toolbar > Zoom Region Zoom Region lets you drag a region in the Key window to scale that region to fill the window. Zoom Region remains active until you right-click to cancel or click another option. The Zoom Region button is yellow while active. In Curve Editor mode, both time and value are scaled to fit the Key window. In Dope Sheet mode, only time is scaled to fit the Key window. Procedures To zoom a region of the Key window: 1 On the Navigation: Track View toolbar, click Zoom Region. 2 Drag a window in the Key window. The region zooms to fill the Key window. Status Bar/View Controls | 3685 TIP There is no undo for view changes in the Track View windows. Use the Zoom, Zoom Region, and Zoom Extents tools to navigate the Key window. Managing Track View Windows New Track View Graph Editors menu > Track View > New Track View New Track View opens a new, untitled Track View on page 3503 window. A scene in 3ds Max can have up to 13 Track View windows. You can choose these by name from the Graph Editors > Saved Track Views on page 3688 submenu. New Track View is disabled if the scene already has 13 Track View windows. You can name a Track View window by typing in the editable field at the right end of the Track View toolbar. Procedures To create a new Track View window: ■ Click Track View > New Track View. The software opens a new, untitled Track View window, regardless of whether you have closed other Track View windows. To name a Track View window: ■ Type the name in the edit box at the right end of the Track View toolbar. As soon as you type the name in, it is stored in the Saved Track Views list. Delete Track View Graph Editors menu > Delete Track View Delete Track View displays the Delete Track View dialog on page 3687, which lets you delete one or more stored Track View windows on page 3503. 3686 | Chapter 15 Animation Procedures To delete a Track View window: 1 From the Graph Editors menu, choose Delete Track View. The Delete Track View dialog opens. 2 In the Delete Track View dialog, highlight one or more Track View windows. 3 Click OK to delete the Track View windows you chose. Delete Track View Dialog Graph Editors menu > Delete Track View The Delete Track View dialog lets you delete one or more stored Track View on page 3503 windows by choosing their names from a list. Procedures To delete a Track View window: 1 Choose Track View > Delete Track View. 2 In the Delete Track View dialog, choose the name of one or more Track View windows. 3 Click OK to delete the highlighted Track View windows. Managing Track View Windows | 3687 Interface Drag a selection, use Shift+click to select additional adjacent Track View windows, or Ctrl+click to toggle a selection. Saved Track Views Graph Editors menu > Saved Track Views > Choose the named Track View from the list. Saved Track View lets you recall various Track View windows that you save by naming them. 3688 | Chapter 15 Animation It is different from saved Track View layouts, which are recalled by right-clicking the toolbar and choosing Load layout. Saved Track View windows are saved with the MAX file. Procedures To save a Track View window: 1 In either Dope Sheet or Curve Editor, enter a name in the Name: Track View field at the upper right. TIP If the Name field is not visible, right-click the toolbar and choose Show Toolbars, then choose Name: Track View from the list. This toolbar can float or dock, as you like. 2 Close Track View. 3 To recall the saved Track View window, from the Graph Editors menu, choose Saved Track Views, and then the desired window name. Track View Customization The Track View user interface is fully customizable. There are many ways you can change the UI to suit your needs. A customized Track View user interface: 1. Toolbar docked left Managing Track View Windows | 3689 2. Menu bar 3. Key window (Hierarchy list hidden) 4. Floating toolbar 5. Scroll bar 6. Toolbar docked right You can hide or display UI elements as you need to use them. Customization tools are available from the Track View menu bar or from several Track View toolbars. You can float or dock the toolbars to the top, bottom, left, or right of the application window, for example, floating a toolbar so it is closer to where you are working. To customize the Track View UI, right-click the menu bar or the blank space to the right of the Track View toolbars. A right-click menu is displayed, with commands for the tools you need to perform your customization. Track View Toolbar Right-Click Menu You can use commands on the toolbar right-click menu on page 3696 to perform most Track View UI customization tasks. Move your cursor over the blank space to the right of the Track View toolbars and right-click to display this menu. Show UI Elements Toggles on and off the display of Track View user interface elements. For example, you can hide or show the menu bar, scroll bars, the controller and keys windows, and the time ruler. Menu Bar The menu bar gives access to most of the tools also found on the toolbars. The menu bar can be displayed or hidden in the Curve Editor, Dope Sheet, or track bar. The menu bar is context-sensitive, so it changes its display depending on which Track View mode is active. Scroll Bar Standard Windows scroll bars can be displayed or hidden for the Track View window. These are useful for navigating complex or lengthy windows. 3690 | Chapter 15 Animation Use the Pan hand button to scroll when these are not visible. The middle mouse button can also be used to activate the pan hand to scroll this window. Windows There are two side-by-side display areas in Track View. They are the Controller window and the Key window. The Controller window contains the Hierarchy list with labeled tracks. The Key window displays the keys either as curves in the Curve Editor, or as boxes or ranges on a grid in Dope Sheet mode. Use Show UI Elements, available from the toolbar right-click menu, to hide either window. Time Ruler A movable time ruler is provided. To measure time, you can move the time ruler close to the keys or curves when working zoomed in. Default=on. Track View - Curve Editor Toolbars You can display Curve Editor toolbars on page 3572 for quick access to tools. The Curve Editor toolbars that you can display or hide, dock or float, from the right-click menu include the following: ■ Name toolbar Enter a name in this field to create a named Track View window. You can recall the saved Track View window by choosing Graph Editors menu > Saved Track View on page 3688 submenu. This option is also available in Dope Sheet mode. ■ Navigation toolbar Use these tools to pan on page 3681 and zoom the Key window on page 3684, or zoom to the extents of the time on page 3682 or the values on page 3683. This option is available in both Track View modes. Managing Track View Windows | 3691 ■ Key Stats toolbar Track View provides tools for the display and type-in transform of key values on page 3679. This option is also available in Dope Sheet mode. ■ Key Tangents toolbar Track View gives you quick access to different tangency types of keys on page 3573. This toolbar is most useful when floating near the curves. This option is also available in Dope Sheet mode. ■ Controllers Track View has tools to copy, paste, assign, delete, and make controllers unique on page 3582. This option is also available in Dope Sheet mode. ■ Track Selection Track View gives you tools to select tracks by typing in the name of an object on page 3668. This option is also available in Dope Sheet mode. ■ Keys Track View provides the tools to move on page 3652, scale on page 3654, and slide keys on page 3614, scale values on page 3655, add keys on page 3655, draw curves on page 3657, and reduce keys on page 3640. This toolbar also has the Filter button, which lets you limit the display in the Controller window. A similar option is available in Dope Sheet mode on page 3578 with different and fewer controls. 3692 | Chapter 15 Animation ■ Curves Track View provides tools to select and lock keys and curve handles on page 3574, as well as to make tracks keyable on page 3563, and to apply parameter curve out-of-range types on page 3601. ■ Tools Track View gives you tools to create or remove Note and visibility tracks, snap frames, lock selection, properties, and Track View utilities. This toolbar is hidden by default. Dope Sheet Toolbars There are 11 toolbars that can be displayed when in Dope Sheet mode. In addition to the ones listed above for the Curve Editor, you can also choose to display the following: ■ Keys Dope Sheet displays the tools to move, add, and scale keys on page 3578, the Filters button on page 3584, and the buttons that let you choose between Edit Keys on page 3607 and Edit Ranges on page 3642 options for Dope Sheet. ■ Time Track View provides tools to select and work with time on page 3579. Time can be selected, inserted, cut, copied, pasted, scaled, reversed, or removed. This toolbar works only in Dope Sheet mode. Managing Track View Windows | 3693 ■ Ranges Here are the tools to edit on page 3642, position on page 3643, and recouple ranges on page 3644. ■ Display Dope Sheet holds tools to modify subtree on page 3559 and modify child keys on page 3561, lock selection on page 3609, snap frames on page 3608, and display keyable icons on page 3563. Soft Selection Toolbar Both the Curve Editor and Dope Sheet Edit Keys mode take advantage of soft selection of keys. If you choose Keys menu > Use Soft Select, then choose Soft Selection Settings on page 3554, the Soft Selection Settings toolbar is displayed. This toolbar is accessible only from the Keys menu, not from the right-click menu. If you want this menu to stay visible, save a Track View layout on page ?. Track Bar You can dock the Track View windows below the time slider and track bar by choosing Dock > Bottom from the toolbar right-click menu. You can dock multiple Track View windows using this technique. You can also display a Track View window below the viewports by clicking the Open Mini-Curve Editor button at the upper left corner of the track bar. Using this method, the time slider and track bar are replaced with the Track View window. As with Dope Sheet and Curve Editor modes, you use the toolbar right-click menu to display or hide all Track View UI elements. 3694 | Chapter 15 Animation Procedures To save a Track View layout: 1 Customize the Track View layout as you want. 2 When you want to save it, right-click the Track View menu bar or the blank area at the right of the Track View toolbar, and choose Save Layout As. 3 Enter a name you will remember. To reload a saved Track View layout: 1 Right-click the Track View menu bar or the blank area at the right of the Track View toolbar and click Load Layout. 2 Choose the layout you want to display in Track View. To save a Track View window: You can save a particular Track View window, displaying to a particular set of tracks, by using the Name: Track View toolbar. ■ Enter the name for the window in the Name field. When you close the window, you can reload it by choosing Graph Editors > Saved Track Views. Then choose the named window from the list. TIP Named Track View windows are saved with a file. Named layouts are independent of the file. To restore the default Track View user interface: If you have customized your Track View user interface and want to return to the original installed version, do the following: 1 In the \ui folder within the 3ds Max install directory, locate the file trackview.bak. 2 Copy the file and rename the copy trackview.ini. 3 In Windows Explorer or My Computer, right-click and choose Properties. Make sure the Attributes is not set to Read-only. Managing Track View Windows | 3695 TIP You can also right-click the Track View title bar and choose Load Layout > Default to return to the default layout. This works only if you have not saved over the default. To add a new menu bar name to a custom Track View layout: 1 From the Customize menu, choose Customize User Interface. 2 On the Menus panel, click New to create a new menu. Enter the name of the menu in the New Menu field and click OK. 3 Using Notepad, open ui/trackview.ini, and navigate to the layout section. To affect the Curve Editor toolbar, choose the section named [default], or to affect the Dope Sheet toolbar, choose the section called [Dope Sheet layout]. 4 Change the value of the "Menu Name" entry to the name of the menu you created in step 2. Save the layout after you are done and the changes will be persistent. TIP You can also make the Dope Sheet Editor point at a renamed menu bar by using MAXScript: In the MAXScript Listener, typetrackviews.current.ui.menubar = "Dope Sheet - Menu Bar", substituting your menu bar name, and then press the Enter key. NOTE There is also a script that lets you choose menus from a list. Choose Customize menu > Customize User Interface, then on the Menus panel, set Group to Main UI and Category to Track View, and choose Load Menu Bar from the Action list. Select the Track View menu bar you want to customize from the drop-down list on the right. Drag the action to the right window and the menu bar will be customized. Track View Toolbar Right-Click Menu You can use commands on the right-click toolbar menu to perform most Track View UI customization tasks. Move your cursor over the blank space to the 3696 | Chapter 15 Animation right of the Track View toolbars and right-click. This shortcut menu's customization tools are as follows: ■ Dock Snaps the toolbars into position horizontally above or below the window, or vertically along the left or right window edge. Once toolbars are horizontally docked, they can be reordered by dragging and dropping them as you like. Also used to dock the window beneath the viewports. ■ Float Floats the selected toolbar. You can float toolbars anywhere you like. You can also drag the double bars at the left of the toolbar to float the toolbar over the viewport. ■ Hide Turns off the display of the selected user interface element. Once something is hidden, you can redisplay it using Show UI Element or Show Toolbar on this menu. ■ Load Layout Loads a saved default, named, Function Curve, Dope Sheet, or track bar layout. ■ Save Layout Saves your customized layout, creating a new default layout. When you open a new Track View, this saved layout will be displayed. NOTE To restore the default 3ds Max layout, see To save a Track View layout: on page 3695. ■ Save Layout As Saves your customized layout with a name you choose. When you've customized your layout, save it with an easily recognizable name, then you can return to it whenever you choose. Use Load layout to retrieve a saved layout. ■ Show UI Elements Toggles the display of Track View user interface elements. For example, you can hide or show the menu bar, scroll bars, the controller and Key windows, and the time ruler. ■ Add Toolbar Lets you display additional toolbars that you can create using commands the Customize User Interface pull down from the main menu bar. ■ Delete Toolbar Deletes the selected toolbar. ■ Show Toolbars hide. Lets you choose which toolbars you want to display or NOTE Some toolbars are hidden by default. Managing Track View Windows | 3697 Motion Mixer The Motion Mixer allows you to combine motion data for biped and non-biped objects. The Motion Mixer takes its design from the world of audio. When a song is recorded in a studio, each instrument is played and recorded separately. Each recording is called a track. The tracks are then put together in a sound mixer so they play simultaneously, or overlap one another. During the mixing process, the mixer operator can change the length or speed of a track, increase or reduce volume, move a track to another place in the song, or cause a track to fade in or out. The Motion Mixer works in a similar way. For any object, you can add multiple tracks on page 8150 to the mixer, each holding a separate series of motion clips 3698 | Chapter 15 Animation (BIP files on page 7923, XAF files). You can trim clips to use only part of a motion, make the clips play slower or faster, or create transitions from one clip or set of clips to another. You can also use the Motion Mixer to animate some body parts with one set of clips, and other body parts with other motions. For example, suppose you have two clips, one where the biped runs with its arms pumping by its sides, and another where the biped stands and cheers with its arms in the air. You can mix the leg and hip motions from the running motion with the arms from the cheering motion to make an animation of a biped cheering as he runs across a finish line. See also: ■ Using the Motion Mixer on page 3699 ■ Motion Mixer Interface on page 3749 Using the Motion Mixer The Motion Mixer allows you to mix motion files (BIP on page 7923 and XAF on page 7080 files) for any biped or non-biped objects. These motion files are also called clips. Using the Motion Mixer | 3699 The Motion Mixer is comparable to an audio mixer. Motion clips can be cross-faded, stretched, layered, and finally, mixed down to a single clip. The Motion Mixer works by placing motion files on tracks on page 8150. With the Motion Mixer, you can: ■ Transition or fade between motions. ■ Move motions in time. ■ Trim a motion so only part of it is used. ■ Vary the speed of a motion over time. ■ Use animation from selected biped or non-biped body parts within a motion clip. ■ Keep planted feet from sliding during foot-based transitions. To see a biped motion in the Mixer applied to the biped in the scene, you must turn on Mixer Mode from the Biped rollout on page 4331. In the Motion Mixer, motions are imported and mixed for any objects in the scene. Once motions are mixed, you can pass the mix on to other biped (if it contains BIP files) and non-biped objects (if it contains XAF files), or save the mix to a MIX file. 3700 | Chapter 15 Animation Blending Motions in the Mixer The Motion Mixer provides these types of motion blending. ■ You can blend motion from one clip to another with a transition on page 8157. Transitions in the Mixer are similar to those used in the motion flow system on page 4508. The optimization feature can automatically find the best timing for a transition between two clips. When you make a transition between foot-based clips (clips where IK constraints keep the feet planted at certain times), you can cause the transition to focus on one foot or the other. See Working with Transitions on page 3724. ■ In biped animation, if a transition between foot-based clips causes the foot to slide or pop slightly during the transition, you can fix this problem with a mixdown on page 8045 (flattening all tracks into one track). See Exporting Animation to the Biped on page 3741. ■ You can change the weight on page 3730 of clips or tracks so they affect the animation more at some times than others. See Adjusting Track Weight on page 3730. ■ You can use only the part of a clip's motion that affects specified body parts. See Filtering Mixer Tracks on page 3715. ■ When motions applied to a biped's upper body vary greatly from motions on its lower body, the Mixer automatically compensates for discrepancies in balance. See Adjusting Biped Balance in the Mixer on page 3737. NOTE Balance parameters are available only when mixing biped objects. Transitions Between Foot-Based Clips The Motion Mixer excels in its ability to maintain smoothness of motion over transitions between foot-based clips. Foot-based clips use IK constraints to keep one or both feet locked down over the course of the motion. For bipeds, the Mixer provides tools for maintaining foot positions during transitions: ■ Computing the influence of balance from the upper to the lower body. Without this, layered motion tracks will appear to be artificially combined since out since the resulting motion will be plagued by the isolation of dynamics and improper balance. Using the Motion Mixer | 3701 ■ Mixdowns allow for precise elimination of the foot sliding with the aid of knee limit filtering to unnatural knee poppimg artifacts. In short, the goal of the mixer is to assemble seamless, coherent character motion using building blocks composed from other motion fragments. For non-biped rigs and other 3ds Max objects, the Mixer provides velocity blends and sub-blends to maintain smooth and coordinated motion. Comparing the Motion Mixer and Motion Flow Both the Motion Mixer and Motion Flow on page 4508 can be used to create transitions between a consecutive series of BIP files. However, there are a few significant differences between the two features: ■ With the Motion Mixer, several BIP files can be used at the same time to affect biped motion. Compare with Motion Flow, where only one BIP file, or a transition between two consecutive BIP files, affects the biped at any given time. ■ With the Motion Mixer, you can specify that a BIP file will affect only one part of the body. This feature is not available in Motion Flow. ■ In the Motion Mixer, you can use a mixdown to automatically lock feet during transitions between biped foot-based motions. Motion Flow does not perform this function. ■ A Motion Flow network can be used in conjunction with the Crowd feature, giving the bipeds a choice of motions over the course of the simulation. The Motion Mixer does not generate motion for biped crowds. ■ A Motion Flow network can be used to randomly generate different motion scripts for one or more bipeds. This feature is not available in the Motion Mixer. Use the Motion Mixer when you want to create a specific animation for an object from several clips, or you want to specify that some motions be applied only to specific body parts. If you want to work with biped crowds or create random motion, use Motion Flow. If you're creating a straight series of transitions between motions, you can use either one. However, the Motion Mixer has additional tools for improving foot-based transitions. 3702 | Chapter 15 Animation Opening the Motion Mixer You open the Mixer by either clicking the Mixer button on the Motion panel > Biped Apps rollout on page 4330 or choosing Motion Mixer from the Graph Editors menu on page 7493. When you open the Mixer while a biped is selected, a trackgroup on page 8151, a clip track, and a balance track on page 7919 are assigned to that biped. If a non-biped object is selected, the Mixer opens empty. 1. Trackgroup 2. Clip track 3. Balance track These items are discussed in detail in the sections that follow. Procedures To access the Motion Mixer from the Motion panel: 1 Select a biped. 2 Access the Motion panel. 3 On the Biped Apps rollout on page 4330, click the Mixer button. The Motion Mixer opens, and displays the selected biped and two tracks. To learn about these tracks, see Adding Tracks to the Mixer on page 3704. Accessing the Mixer also turns on Mixer mode for the biped. Mixer mode must be on for the biped in order to see the mixed motion on the biped. Using the Motion Mixer | 3703 To display the Motion Mixer in a viewport: 1 Activate the viewport in which you want to display the Motion Mixer. 2 Right-click the viewport label, and choose Views > Extended > Motion Mixer from the pop-up menu. NOTE When the Motion Mixer is displayed in a viewport, its menu bar is not accessible. However, you can access each menu by right-clicking the corresponding element in the Mixer. To remove the Motion Mixer from a viewport: ■ Right-click a blank area of the Motion Mixer toolbar, and choose another view from the selections under Views on the pop-up menu. Adding Tracks to the Mixer In the Motion Mixer, you begin the mixing process by opening the Mixer, then adding objects to mix, and then loading motion clips to clip tracks on page 8150. One clip track is created automatically if a biped is selected while you open the Mixer, but you'll probably need more to hold all the motions you want to use with your mixed objects. When you open the Mixer while a biped is selected, a trackgroup on page 8151, a clip track, and a balance track on page 7919 are assigned to that biped. If a non-biped object is selected, the Mixer opens empty. 1. Trackgroup 2. Clip track 3. Balance track 3704 | Chapter 15 Animation This section discusses clip tracks. To learn about trackgroups, see Filtering Mixer Tracks on page 3715. For information on the balance track, see Adjusting Track Weight on page 3730. Adding and Merging Non-Biped Object to a Mix When you add a non-biped object to a mix, its keyable controllers are replaced by mixer controllers, which store the object's original animation as well as the Mixer animation. If you merge a non-biped object containing Mixer controllers into a new scene, it comes in with its mix name preserved from the original file, but without any mixed animation. Types of Clip Tracks There are two types of tracks to which you can add clips: Layer A track for a series of motions that do not need transitions between them. By default, a Layer track is created for a biped when you open the Mixer. Layer track Transition A tall track with room for two rows of clips. You can put one motion file on the top tier and another on the bottom, and place a transition in the area where the two clips overlap. Transitions on these tracks are similar to Motion Flow transitions on page 4525 between clips. Using the Motion Mixer | 3705 Transition track Each biped in the Mixer is automatically given a balance track on page 7919, used for adjusting balance between clips in Layer and Transition tracks. Clips cannot be added to the balance track. NOTE Balance tracks are only available for mixed biped objects. Procedures To add a Transition or Layer track to a trackgroup: ■ Right-click an existing track and choose one of the options for adding tracks from the pop-up menu. 3706 | Chapter 15 Animation To convert a clip track from one type to another: ■ Right-click an existing track, and choose one of the options from the pop-up menu for converting tracks. Using the Motion Mixer | 3707 To add a biped to the Motion Mixer: 1 On the Motion Mixer toolbar, click Add Biped. 2 From the Bipeds dialog, choose the biped(s) you want to add to the Motion Mixer. Several bipeds can be added to the mixer at once. When you click OK, highlighted bipeds are added to the mixer. Each is automatically assigned a trackgroup, a clip track, and a balance track. To add a non-biped object to the Motion Mixer: 1 On the Motion Mixer toolbar, click Add Max Objects. 2 From the Max Objects To Mix dialog, choose the object(s) you want to add to the Motion Mixer. TIP You can save time if you first select your objects, and then open the dialog. This way, the objects are automatically highlighted. 3 Enter a mix name or leave the default one. When you click OK, the highlighted objects are added to the mixer under a single object mix . A track is automatically assigned to the object. Importing Clips to the Mixer You can bring motion clips (BIP and XAF files) into the mixer with any of these methods: ■ Choose a file directly from the folder in which it resides. ■ Choose a file from those you have placed in the Reservoir on page 3745, a storage area for BIP and XAF files. ■ Import motion from another biped in the scene. See Working with Clips in the Mixer on page 3713. ■ Import a motion flow script. All clips imported for a single object are assigned a random, unique color. For example, all clips for one biped might be red, while those for another biped 3708 | Chapter 15 Animation are blue. The color distinction makes it easier to work with multiple bipeds and non-biped objects in the Motion Mixer. Biped rollout > Mixer Mode must be turned on in order to see the motion on the biped in viewports. This option is turned on by default when you open the Mixer from the Biped rollout on page 4331. The Motion Mixer might not display the entire active segment when it is first opened. To set the Mixer display to the extent of clips in the Mixer, click Set Range on the Motion Mixer toolbar. Preparing BIP and XAF Files To use a motion file with the Motion Mixer, it must first be saved as either a BIP or XAF file. Many BIP files come with 3ds Max; you can use these, or you can make your own. To find out how to create your own BIP files, see Loading and Saving BIP Animation on page 4300. For more information of XAF files, see Saving and Loading Animation on page 7074. Importing XAF Files Non-biped object assets are loaded into the Mixer using the Load XML Animation File dialog on page 7077, from which you pick the desired XAF motion file to import. If the motion file needs an XMM mapping file, you can either choose an existing one or open the Map Animation dialog on page 7083 to create a new file. TIP If you load multiple motion clips at the same time, you can pick a mapping file only once if all clips use the same. NOTE The Relative/Absolute and Replace/Insert options are unavailable when you import XAF files. NOTE Loading XAF clips from the Reservoir on page 3787 follows the same workflow. Interpreting Clip Names When you load a clip into the Mixer, the clip appears on the track as a solid bar, with its name displayed on the clip. Using the Motion Mixer | 3709 Other information can appear on the clip, such as the start and end frames, and the clip scale on page 3722. You can change the information that displays on the clip by clicking Preferences on the Motion Mixer toolbar, and changing the Clips options on the Mixer Preferences dialog on page 3791. You can use the same clip numerous times in the Mixer. Each version of the clip displays the name of the BIP file, followed by a number, such as 1 or 2. The name might also have the letter Z between the name and number. These suffixes tell you how the clip is interpreted by the Mixer. When you load a biped clip from a file, you have the option of setting the lowest starting foot height to Z=0 (the construction plane). If you leave this option turned on, the clip's motion will be moved in space so the biped's feet fall on the construction plane on the first frame of the clip. The letter Z appears after the clip name to indicate this setting. When you load a clip into the Mixer for the first time, the clip name is followed by the number 1. If you clone or load the same clip to another part of the Mixer, the clip will display the same number or a different number depending on whether the new clip is an instance on page 8015 or an adaptation on page 7900 of the original clip. Instances are versions of the same clip used with the same object, or different objects of the same size. Adaptations are versions of the clip used with objects of different sizes. The Mixer displays instanced clips with the same numbers, while adaptations receive sequential numbers. For example, if you clone a clip with the number 1 to a track for the same object, the new clip's name is also followed by the number 1. If you clone the clip to a object with a different size, the new clip 3710 | Chapter 15 Animation is an adaptation, and the displayed name is followed an incremental number: in this case, the number 2. If you then clone the adaptation to another track for the same object, the new clip is an instance of that clip, and will be displayed with the number 2. These numbers can help you determine which clips are instances of one another, and which are adaptations. The ability to tell instances from adaptations becomes important when you replace a clip in the Mixer with another clip. During this operation, you have the option of replacing only the selected clip, only the instances of the clip, or all instances and adaptations of the clip. NOTE Operations in the Mixer, such as cloning clips and editing clip timing, do not affect the clip sources (BIP files). Procedures To import BIP clips from a file: 1 Select a biped, and open the Motion Mixer. See Adding Tracks to the Mixer on page 3704. 2 In the Motion Mixer, highlight the track into which you want to bring the motion file. Be sure to highlight a blank area of the track and not any existing clips on the track. 3 From the Motion Mixer menu, choose Tracks > New Clips > From Files. You can also right-click the track and choose New Clips > From Files from the pop-up menu. 4 Navigate to the folder where your BIP files are stored, and select one or more BIP files. You can select as many BIP files as you like. These motions will be placed consecutively on the selected track. Files imported into the Mixer in this way are automatically placed in the Reservoir. To import clips from the Reservoir: In order to import clips from the Reservoir, you must first place them in the Reservoir. See Using the Reservoir on page 3745. 1 Highlight a blank area of the track into which you want to bring the motion(s). Using the Motion Mixer | 3711 2 From the Motion Mixer menu, choose Tracks > New Clips > From Reservoir. You can also right-click the track and choose New Clips > From Reservoir from the pop-up menu. 3 Select one or more BIP or XAF files. To import clips from a motion flow script: Motion flow scripts can be imported to a track in the Mixer. Both clips and transitions from the script are imported to the track. Before you can import motion flow to a track, the biped must have at least one motion flow script assigned to it in Motion Flow mode. See Creating a Motion Flow Script on page 4518. 1 Highlight a blank area of the track into which you want to bring the Motion Flow clips and transitions. You can choose either a transition or layer track. 2 From the Motion Mixer menu, choose Tracks > Import Motion Flow. You can also right-click the track and choose Motion Flow from the pop-up menu. 3 Choose a script from which to import motion. The clips and transitions from the script are imported to the Mixer and displayed the track. If the track was a layer track, it is converted to a transition track to accommodate the transitions imported from the script. To see the motions in the Motion Mixer on the biped in the scene: 1 Select the biped for which you want to see the current motion from the Motion Mixer. 2 Click Mixer Mode on the Biped rollout. 3 Play the animation or drag the time slider to see the motion in viewports. 3712 | Chapter 15 Animation Working with Clips in the Mixer Once you have created tracks and imported clips to the Motion Mixer, you can adjust your animation mix by moving, cloning, and replacing clips. Within the Motion Mixer, you can: ■ Move clips in time within the same track. ■ Move clips to other tracks. ■ Clone clips. ■ Slide all clips in time on a track. ■ Replace a clip with motion from a biped, a motion flow script, or another clip. To move a clip in time within a track: 1 Click Move Clips on the Motion Mixer toolbar. 2 Drag the clip and move it to another location on the track. A clip cannot be moved in such a way that it overlaps another clip. If you move a clip on top of another clip, it will return to its original location when you release the mouse. Procedures To move all clips horizontally on one track: 1 Select one or more clips. You can select multiple clips on different tracks for this operation. 2 Click Slide Clips on the Motion Mixer toolbar. 3 Move the selected clips to slide clips to the left or right. When you slide a selected clip to the right, all unselected clips to the right of the clip move to the right. When you slide a clip to the left, all unselected clips to the left move to the left. Using the Motion Mixer | 3713 To move a clip to another track: 1 Click Slide Clips on the Motion Mixer toolbar. 2 Move one clip on a track to slide all clips on the track. To replace one clip with another: After a clip is placed on a track, you can replace the clip with another clip. The new clip is scaled to fit the time of the original clip. 1 Select the clip(s) you want to replace. 2 Right-click a selected clip and choose Load Source > From Files from the pop-up menu. Select a BIP file to replace selected clips. 3 On the Mixer Clip Source Options dialog, choose whether to replace only the selected clips, or to also replace instances on page 8015 (versions of the clip on same-sized bipeds) or adaptations on page 7900 (versions of the clip on all bipeds). To clone a clip: Clips can be cloned within the same track, across tracks, and even across bipeds in the Mixer. A cloned clip retains the Z=0 status of the original clip (if this option was selected for the original clip), and any changes made to the original clip's timing. Cloning a clip to a different-sized biped creates an adaptation on page 7900 of the original clip. 1 Make sure there's enough space on the track where you want to place the cloned clips. Move clips as necessary to make room. 2 Select the clip(s) you want to clone. 3 Hold down the Shift key on your keyboard, and drag the selected clips to the new location. If there isn't enough room where you attempted to placed the cloned clips, the operations is cancelled and clips are not cloned. To replace a clip with motion from a biped in the scene: All motions used in the Motion Mixer must be saved as BIP files. When you copy animation from a biped in the scene, you must save this motion as a BIP file. 1 Place a clip in the track using any method. 3714 | Chapter 15 Animation 2 Select the clips you want to replace with biped motion from the scene. 3 From the Motion Mixer menu, choose Clips > Load Source > From Biped. The Copy Biped Animation to Clip dialog on page 3750 appears. 4 Highlight the biped from which you want to copy the animation. 5 Enter a filename for the new clip. 6 Click Copy to replace clips with the biped motion. The name of the clip in the track is replaced with the new filename. Filtering Mixer Tracks Each track in the Motion Mixer is part of a trackgroup on page 8151. Each trackgroup can be filtered so it uses motions from one set of body parts and not another. For example, you might want to use the arm motions from one motion file with the legs from another. For this purpose, you would need two separate trackgroups. There are two steps involved in filtering with trackgroups: ■ Create additional trackgroups as needed in the Mixer. Using the Motion Mixer | 3715 ■ Filter each trackgroup (set it to use some body parts but not all), and name the trackgroup appropriately. This is accomplished with the Trackgroup Filter dialogs (biped and non-biped objects). The Trackgroup Filter dialog for biped objects. 3716 | Chapter 15 Animation The Trackgroup Filter dialog for non-biped objects. When a trackgroup is created, it is given one Layer track by default. However, you can add more tracks to each trackgroup, making it possible to mix motions for each set of body parts. For example, you could create a trackgroup for the arms, and have two tracks within this trackgroup. Then you could put two completely different sets of motions on each track, and use weighting to use one track or the other at different times during the motion. See Adjusting Track Weight on page 3730. Using the Motion Mixer | 3717 Trackgroups for Spine, Legs and Arms. The Arms trackgroup has two tracks. NOTE Create only one trackgroup for each filtered set of body parts. For example, don't use two trackgroups that both filter the spine. If you do so, the trackgroup highest in the Motion Mixer is used, and the other trackgroup is ignored. Instead, use multiple tracks within the trackgroup to achieve the animation you want. Procedures To add a new trackgroup for the biped: 1 Highlight the name of an existing trackgroup. 2 Right-click the trackgroup name and choose Add Trackgroup Above or Add Trackgroup Below. 3718 | Chapter 15 Animation A new trackgroup and Layer track are added above or below the existing trackgroups. You can add more tracks to the trackgroup by right-clicking the existing track and choosing one of the options from the pop-up menu. To filter and name a trackgroup: 1 Highlight the trackgroup label at the upper left corner of the trackgroup you want to filter. By default, the trackgroup label is All, denoting that the trackgroup currently affects all biped parts. 2 From the Motion Mixer menu, choose Trackgroups > Filter. The Trackgroup Filter dialog appears. By default, all body parts are selected. Using the Motion Mixer | 3719 3 Click on body parts in the diagram to select or deselect them. You can also use the buttons below the diagram to help make the selection. For example, if the trackgroup will affect only the arms, click None to deselect all biped parts, then click the four arm boxes to select the arms. 4 Enter an appropriate name for the trackgroup at the bottom of the Trackgroup Filter dialog, such as Arms. 3720 | Chapter 15 Animation 5 Click OK to close the dialog. The new trackgroup name appears at the upper left of the track display. Using the Motion Mixer | 3721 Adjusting Clip Timing In the Motion Mixer, you can shorten clips or change their timing interactively within the track display. You can change the timing of motion clips in a number of ways: ■ Change the length of a clip without changing its speed by trimming the clip at the start or end. ■ Change the speed of an entire clip by stretching it out or shrinking it. ■ Cause varying changes in speed throughout the clip with time warps. See Adding Time Warps on page 3733. TIP When changing clip timing, it can be helpful to display start and end frame numbers and the clip time scale. To do this, click Preferences on the Motion Mixer and choose the appropriate options in the Mixer Preferences dialog on page 3791. As you choose options, the Motion Mixer display is changed interactively. Procedures To change the length of a clip without changing its speed: 1 On the Motion Mixer toolbar, click Trim Clips. 2 Drag either end of a clip to trim its length. 3722 | Chapter 15 Animation A gray bar appears on a trimmed end of a motion clip. 3 Turn off Trim Clips. The gray area disappears. TIP At any time, you can view original clip lengths in gray by turning on Trim Clips. To remove scaling or trimming from a clip in the Motion Mixer, select the clip, right-click and choose Remove Scale/Trim. Using the Motion Mixer | 3723 To change the speed of an entire clip: You can cause a motion to slow down or speed up by changing the length of the clip in the Mixer. Lengthening a clip will slow down the motion, while shortening the clip will speed it up. 1 On the Motion Mixer, click Move Clips. 2 Drag either end of the clip to extend or shorten it in time. TIP To see the ratio of the original motion time to the new time, click Preferences. In the Mixer Preferences dialog, turn on Scales. This displays the ratio on the clip next to its name. Working with Transitions When two or more clips are placed on a transition track on page 8158, you can create transitions between any two clips. A transition creates a constant, gradual change from one clip to another. 3724 | Chapter 15 Animation Clips and transitions on Transition track. Transitions are shown as dark areas between clips. To learn how to create a transition track, see Adding Tracks to the Mixer on page 3704. If you want to make a less linear blend between clips than the blend created by a transition, see Adjusting Track Weight on page 3730. Adjusting Transitions Transitions are automatically created between clips when you load the clips into a Transition track. You can adjust the start or end point of a transition by dragging either end of the transition in the Mixer. When a transition appears with hatchmarks, this indicates that the transition is invalid. This can occur when a clip's brackets are reversed, with the out-bracket before the in-bracket. You can correct this problem by dragging each end of the transition to reverse the ends. A useful transition can occur anyplace where two clips overlap. The unused part of the clip on either side of the transition appears with hatchmarks to indicate that that part of the clip will not be used in the mix. This type of transition is often used for foot-based clips, when the best place for a transition is not always at the edge of a clip. Using the Motion Mixer | 3725 Hatched parts of the clips are not used in the mix. The Motion Mixer will allow you to extend a transition into an area where two clips do not overlap. However, this transition will most likely result in undesirable motion in the mix. Transitions extending into areas where clips don't overlap can create unpredictable results. 3726 | Chapter 15 Animation For the best results, make sure all your transitions cover only areas where two clips overlap completely. To aid in making your transitions as smooth as possible, you can select transitions and use the Transitions menu > Optimize option. This feature searches the two clips to find the start and end time that will result in the smoothest transition, and adjusts the transition accordingly. If you want to snap the ends of a transition to the ends of clips, turn on Snap Clips on the Motion Mixer toolbar before dragging the transition edges. When you move or scale a clip on a transition track, by default its transitions are also moved or scaled. To prevent transitions from changing when you move or scale a clip, turn on Lock Transitions on the Motion Mixer toolbar. Using Transition Brackets On a transition track, transition brackets appear around each transition, and at the start or end of each clip that is not surrounded by a transition. Transition brackets When you load a clip onto a transition track where clips already exist, the clip creates a transition between the last clip on the track and the new clip. The transition is created at the location of the last clip's transition bracket. You can move a transition bracket to create the transition automatically exactly where you want it before loading the next clip. This feature can make it very Using the Motion Mixer | 3727 quick and easy to load a long series of clips into a transition track with correct transitions. Working with Foot-Based Transitions Much like Motion Flow, transitions in the Mixer between foot-based motion clips (clips where IK constraints keep the feet planted at various times) must be carefully placed and adjusted to make the animation look as natural as possible. The workflow depends on whether you are animating a biped, or 3ds Maxobjects such as a rigged character. Foot-Based Transitions with Biped For the most natural transitions between foot-based motions, follow this workflow: 1 Find a good place to start and end the transition. 2 Create the transition with this timing. You can also optimize the transition to fine-tune it. 3 Change the transition focus. 4 Perform a mixdown. Study both clips to find a start time and range for the transition that will result in smooth motion. Look for times when each foot has the same planting or free status in both clips. For example, a time period when both clips have the left foot planted and the right foot free is a good time range for a transition. You can fine-tune your choice of transition time by optimizing the transition. This features searches each clip, either in its entirety or near an existing transition, to find the best timing for the transition. You can improve a transition between foot-based clips by changing the transition focus on the Transition Editor dialog (Biped Object) on page 3764. In the example described above, the left foot would be chosen as the transition focus, because this would keep the left foot planted while the animation moves around it. When transitions cause a planted foot to slide or pop slightly, or force a leg to straighten unnaturally, you can use a mixdown on page 8045 to correct these problems. See Exporting Animation to the Biped on page 3741. 3728 | Chapter 15 Animation Foot-Based Transitions with 3ds Max Objects For foot-based motions, follow this overall workflow: 1 Find a good place to start and end the transition. 2 Create the transition with this timing. 3 Choose the parent object to be a velocity blend object. 4 Choose the model's feet to be sub-blend objects. 5 Optimize the transition. Procedures To create a transition between two clips: 1 Right-click an existing track to insert a Transition track or convert the current track to a Transition track. 2 Right-click the track and choose New Clips > From Files from the pop-up menu. Choose at least two clips to load. The clips are placed on the transition track with transitions between them. 3 Drag the transition to move it, or drag its ends to resize it. 4 Before adding the next clip, move the last clip's transition bracket to the next desired transition location, and then load the clip. To optimize a transition: With foot-based clips, you can use the Optimize command on page 3758 to help you find the best timing for a transition. The Optimize command exhaustively searches the specified time period for times when the foot positions match most closely. TIP A good workflow is to look at the clips individually to find the best approximate time for a transition, then use Optimize to fine-tune the timing. 1 Create a transition between clips at approximately the right location on the track. 2 Right-click the transition and choose Optimize from the pop-up menu. The Transition Optimization dialog on page 3774 appears. Using the Motion Mixer | 3729 3 Choose Search Near Existing Transition and click OK. The best transition is calculated, and the transition changes position and/or length in the Mixer to reflect the change. TIP If you aren't sure where you want the transition to take place, you can choose Search Entire Clip. This option can place the transition anywhere in the two clips. Check the motion afterward to ensure the transition takes place at an appropriate time. To change the focus on a foot-based transition with Biped animation: 1 Scrub the time slider to the middle of the transition. 2 Zoom in on the feet in any viewport. 3 Right-click the transition and choose Edit from the pop-up menu. Alternately, you can select the transition and choose Transitions > Edit from the Motion Mixer menu. The transition editor appears. In addition, two stick figures appear in viewports to show the bipeds' positions in the two clips. The yellow stick figure shows the biped's position in the first clip, while the red figure shows the second. 4 On the dialog that appears, choose a different Transition Focus from the list. As you change the Transition Focus, you will see the foot positions change. The Transition Focus sets a center or focal point for the transition, changing the biped's position slightly depending on the setting. On foot-based transitions, try different settings to bring the yellow and red skeletons closer together on a planted foot. NOTE Transitions involving planted feet often result in one or both feet sliding when they should stay planted. After setting up the transition, you can correct this problem with a mixdown. See Exporting Animation to the Biped on page 3741. Adjusting Track Weight Each track has one or more weight curves on page 8169 that you can use to mix motion from several tracks to varying degrees. The weight curve determines how much a specific track contributes to the motion within the trackgroup. 3730 | Chapter 15 Animation With weight curves, you can create several full or partial transitions between all the tracks in a trackgroup. Compare with transitions on a transition track on page 8158, which can only create a full transition between two clips. Weight curves are useful for: ■ Creating transitions between two tracks in a trackgroup. ■ Creating random motion. ■ Experimenting with transitions quickly and easily. Each track's weight curve appears as a thin black line across the top of the track. TIP If you can't see the weight curve, click Preferences to display the Mixer Preferences dialog on page 3791. Turn Weight Curves off and on and watch the display to see the weight curve appear. You access the weight curve by clicking the Weight Mode button at the right end of the track. Clicking Weight Mode on the Motion Mixer toolbar enables weight curve editing for all tracks. When Weight mode is on, you can work only with the weight curve, and not with clips. You edit a weight curve using nodes (points) on the curve. Clips on layer tracks automatically have a node at each end of each clip. A transition track has no nodes by default. Weight Curve Evaluation By default, each track's weight curve is set to a value of 1.0 across the entire track, which uses 100% of the track's motion in the mix. When you change the curve to dip to a value below 1.0, the motion on the track is mixed with Using the Motion Mixer | 3731 the motion on the track below it. For example, if you set the weight curve for two tracks in a trackgroup to 0.5, the two clips will be mixed equally. Several tracks can be stacked in a trackgroup with varying weight curves on each one. For each frame in the animation, the Motion Mixer evaluates the curve on the topmost track. If its weight curve is less than 1.0 at that frame, the Mixer evaluates the next track down, and so forth. The Motion Mixer adds up the weight curve values until the sum reaches 1.0, and disregards tracks below that point. For Transition tracks, one weight curve is used for the entire track. On Layer tracks, weight curves are set individually for each clip. Procedures To adjust a weight curve: 1 Open the Mixer, add a biped to the Mixer, and create two tracks for a trackgroup. See Filtering Mixer Tracks on page 3715. 2 Place different motion clips on the tracks. 3 For the topmost track in the trackgroup, click Weight Mode to the right of the track display. The weight curve turns red to indicate it can be edited. You have to do the next two steps only if the weight curve has no nodes, or would like to create more nodes. 4 Move the cursor over the line until a small arrow appears. Click to set a node. 5 Move the cursor and click to set more nodes on the weight curve. TIP On a transition track, you would ordinarily set a node at each end of the track, and at intervals in between. The number of nodes you set depends on the type of curve you want to make. Make as few nodes as possible to get the curve required for your animation. 6 Move the cursor over an existing node until a cross cursor appears. 7 Click and drag to move the selected node downward. The Motion Mixer mixes the motions from the topmost track with the track below it on that frame. The motions are mixed to a greater or lesser degree depending on how low you set the weight curve value for the topmost track. 3732 | Chapter 15 Animation Adding Time Warps Select a biped. > Motion panel > Biped Apps rollout > Mixer > Motion Mixer menu bar > Clips > Add Time Warp Graph Editors menu > Motion Mixer... > Clips > Add Time Warp You can cause varying changes in speed throughout a clip with a time warp. Adding a time warp to a clip allows you visually to squash and stretch time over different parts of the clip. You can use a time warp to: ■ Cause the object to do some parts of the motion quickly and others slowly. ■ Cause a particular motion within the clip to occur at a specific time. You use a time warp by picking a time within the motion clip and dragging that time's motion to another time in the same clip. The overall time of the clip is unchanged, so the object takes the same amount of time to do the entire motion, but does some parts quickly and others slowly. Dashed lines appear on a time-warped clip in the Mixer to indicate the motion speed at different points in the clip. Time warp added to topmost clip. Warping a clip's time requires two steps. First a time warp must be added to the clip with the Clips > Add Time Warp menu option. Then you turn on Editable Time Warps to see the dashed lines and adjust the clip's timing. Using the Motion Mixer | 3733 Procedures To prepare to warp a clip's time: 1 Open the Motion Mixer, add a biped to the Mixer, and load a clip on a track. See Adding Tracks to the Mixer on page 3704. 2 Scrub the time slider to find a motion you would like to occur earlier or later in the clip. Note the frame number. This frame number is the original time. 3 Scrub the time slider to find the frame on which you would like the motion to occur, and note the frame number. This frame number is the warped time. With a time warp, you will cause the motion to occur at the desired frame by moving the original time to the warped time within the clip. To warp a clip's time: 1 In the Motion Mixer, zoom in on the original time for the time warp. This is the frame number you noted in step 2 of the previous procedure. 2 In the Motion Mixer, select the clip. 3 From the Motion Mixer menu, choose Clips > Add Time Warp. The appearance of the clip does not change when a time warp is added. 4 On the Motion Mixer toolbar, click Editable Time Warps. A series of evenly spaced dashes appears on the clip. The lengths of the dashes indicate the relative speed of the clip at various points. Right now, all dashes are evenly spaced to indicate the clip is playing at its original speed from beginning to end. 3734 | Chapter 15 Animation 5 Move the cursor over the clip's horizontal center line until an arrow cursor appears. 6 At the approximate original time, click the clip to set a time warp bar. A time warp bar actually consists of two parts, a top and a bottom. 7 Click the top half the bar. The top half turns white to indicate it is selected. 8 Drag the top half of the bar to the left or right to set it to the warped time noted in step 3 of the previous procedure. This will cause the motion at the original time to occur at the warped time. TIP As you drag the top bar, watch the Frame value at the top of the Motion Mixer window to see the top bar's new frame number. Using the Motion Mixer | 3735 The lengths of the dashed lines change to indicate the new timing. Where lines are shorter, the motion will play faster. Where lines are longer, the motion will slow down. 9 Select and move the bottom bar to change the original time. Either bar can be moved to change the effect of the time warp. The length of separation between the two bars sets the degree of time-warping that will occur. When both bars are aligned, no warping occurs. To add multiple time warps to a clip: 1 You can time-warp other parts of the clip by adding more time-warp bars with the arrow cursor, then moving the new top bars. When you add a second time warp bar after editing the first, the top bar appears where you click, but the bottom bar appears in a different location. The bottom bar's location corresponds to the original time of the top bar before the clip was time-warped. NOTE You cannot move one time warp's top bar past another on the clip. 3736 | Chapter 15 Animation 2 When you have finished warping the clip's time, turn off Editable Time Warps. When Editable Time Warps is turned off, the bars and the dashed line between them remain displayed on a clip to indicate it has been time-warped. Adjusting Biped Balance in the Mixer When you use different motions on the upper and lower parts of the biped, you can create a situation where the balance in the two clips do not match one another. For example, if the arms are waving wildly in the motion used for the upper body, the hip motion should compensate to some degree to keep the biped in balance. A straight mix of this arm motion with another hip/leg motion will most likely not match up in terms of balance. Bipeds with same set of upper and lower body motions. Biped on the left has balance compensation, biped on the right does not. Using the Motion Mixer | 3737 By default, the Mixer compensates for differences in upper and lower body motion by making slight alterations to the spine and pelvis motions. If the biped bends over at the waist, for example, the pelvis will be moved to compensate for the weight shift, and the spine rotation will be lessened to help the biped keep its balance. Balance compensation is intended to make the biped's motion look as natural as possible. In the Mixer, you can control the degree of automatic balance compensation using the balance track. One balance track is automatically created for each biped as it is added to the Mixer. Balance track TIP If the balance track for a biped is not displayed, click Preferences on the Motion Mixer toolbar, and turn on Balance Curves on the Mixer Preferences dialog on page 3791. The balance track has a weight curve for adjusting the degree of automatic balance compensation between upper and lower body trackgroups. By default, the weight value of 1.0 across the balance track provides the maximum degree of compensation. You can reduce the weight curve at various points to lessen the degree of automatic balancing performed by the Mixer. NOTE Each biped can have only one balance track, and the balance track cannot be deleted. For fine adjustments to balance compensation, you can also change the parameters on the Balance Parameters dialog on page 3752, available from the Mix menu. NOTE Balance Curves and related parameters are not available for non-biped mixes. 3738 | Chapter 15 Animation Procedures To adjust balance using the balance track: 1 Add a biped to the Mixer, and create at least two trackgroups for the biped. See Filtering Mixer Tracks on page 3715. 2 Filter one trackgroup to use motion only from the spine, arms and head. See Filtering Mixer Tracks on page 3715. This trackgroup will hold the upper body motion. 3 Filter a different trackgroup to apply only to the legs, pelvis and COM tracks. This trackgroup will hold the lower body motion. 4 Add a clip with a great deal of upper body motion to the upper body track. See Importing Clips to the Mixer on page 3708. 5 Add a clip with very different lower body motion to the lower body track. 6 Click the Balance Weight Mode button at the far right of the balance track. The weight curve becomes visible at the top of the balance track. TIP If you can't see the weight curve, click Preferences to display the Mixer Preferences dialog, and turn on Weight Curves. 7 Add nodes to the weight curve, and adjust the nodes. For information on how to add nodes and edit weight curves, see Adjusting Track Weight on page 3730. Using the Motion Mixer | 3739 When the weight is set to 0.0, the Mixer will not adjust the spine and pelvis motion to compensate for differences in the upper and lower body motion. Values between 0.0 and 1.0 will adjust the balance to some degree. To fine-tune balance compensation on the pelvis and spine: The values on the Balance Parameters dialog can be used to make subtle adjustments to the biped's balance. 1 In the Motion Mixer, select the biped by clicking its name at the upper left corner of its trackgroups. 2 From the Motion Mixer menu, choose Mix > Balance Parameters. The Balance Parameters dialog appears. 3 To adjust the degree of horizontal balance compensation on the pelvis, change the Lateral Ratio parameter. Lower values make more forward/backward motion on the pelvis, while higher values use more side-to-side motion to compensate. 4 To adjust the degree to which spine rotation from the lower body motion is propagated on the upper body, change the Propagation parameter. Higher values rotate the spine links to better follow the COM and pelvis motion. 3740 | Chapter 15 Animation Bipeds with same upper and lower body motion. Biped on left has Propagation set to 0.0, biped on right with Propagation at 1.0. Exporting Animation to the Biped Once you've worked with the Motion Mixer to create an animated sequence for the biped, there are several ways to work with the finished mix. If you want to work with the mix on the current biped (rather than a another biped in the scene), you have several options: ■ If you're satisfied with the animation as it is, you can turn on Mixer Mode on the Biped rollout on page 4331 to display the mix on the biped, and simply render the scene. Using the Motion Mixer | 3741 ■ If transitions between different foot/leg motions have created small pops or jerks near the transition area, you will want to create a mixdown on page 8045 for the biped and check the mixdown before copying it to the biped. A mixdown can correct many continuity problems with feet and legs. You can correct transitions and recompute the mixdown as many times as you like. When the mixdown is satisfactory, you can copy it to the biped. If you want to use the motion with a different biped, you can copy the mixdown to the current biped, save the motion as a BIP file, and load the new BIP file onto the other biped. The mix can also be saved as a MIX (.mix) file. A MIX file on page 8045 can be loaded onto other bipeds and edited as needed in the Motion Mixer. Fixing Foot-Based Transitions with a Mixdown When you create a transition between two motions with planted feet (feet with IK constraints), the motion might not match perfectly between clips. When this occurs, a planted foot might slide or pop, or a leg might stretch unnaturally during or near the transition period. A mixdown can correct two types of problems during transitions between foot-based motions: ■ A foot sliding as it transitions from one planted motion to another. ■ A leg extending completely straight (hyper-extending) unnaturally to reach a planted position. The mixdown options on the Mixer Preferences dialog on page 3791 can help correct these problems. To access this dialog, click Preferences on the Motion Mixer toolbar. 3742 | Chapter 15 Animation To have an effect on a mixdown, these options must be set before the mixdown is computed. If Prompt for options at each Mixdown is turned on, you will be prompted to set these options each time you compute a mixdown. Otherwise, the mixdown uses the settings on the Mixer Preferences dialog. The options in the Mixdown Options group determine if and how the mixdown affects transitions between clips with planted feet. Enforce IK Constraints affects planted feet, while Filter Hyper-Extended Legs affects unnaturally straight legs. Turn on Prompt for options at each Mixdown if you want to be asked for these settings each time you do a mixdown. For more information on these options, see Mixer Preferences Dialog on page 3791. TIP You should not rely on the mixdown process to correct extreme problems with clips or transitions. For the best results, adjust transitions before a mixdown to minimize sliding feet and hyper-extending legs. See Working with Transitions on page 3724. Procedures To perform a mixdown and copy it to the biped: 1 Select the biped in the Motion Mixer by clicking the biped name at the upper left of the trackgroup set. Using the Motion Mixer | 3743 2 From the Motion Mixer menu, choose Bipeds > Compute Mixdown. If Prompt for options at each Mixdown is turned on in the Mixer Preferences dialog, you will be prompted for mixdown options. Click OK to start the mixdown. A progress bar at the bottom of the Mixer shows the progress of the mixdown process. After a few moments, a new track called Mixdown is created as the last track in the biped’s mix. You can turn the track on and off by clicking the track. When the track is solid, the Mixdown track is on (active), and the biped performs the animation in the mixdown. When the track appears with hatchmarks, the track is off (inactive), and the biped performs the animation in the raw mix. 3 Click the Mixdown track to make it active. 4 Scrub the time slider or play the animation to check the transitions. If they need correction, turn off the Mixdown track, correct the transitions, and compute the Mixdown again. Repeat until the transitions are correct. 5 With the Mixdown track active, choose Bipeds menu > Copy Mixdown to Biped. 6 Turn off Mixer Mode if it is on. The mix from the Motion Mixer is visible on the biped in viewports even though the biped is no longer in Mixer mode. 7 To save the animation as a BIP file, click Save File on the Biped rollout. To save Motion Mixer data to a MIX file: A MIX file saves the current state of the Motion Mixer data for a selected biped, including all clips, transitions, trims, scaling and time warps. It is not necessary to collapse clips before saving a MIX file. 1 Select the biped in the Motion Mixer by clicking the biped name at the upper left of the track set. 2 From the Motion Mixer menu, choose Bipeds menu > Save Mix File. Enter a filename for the .mix file, and click Save. 3744 | Chapter 15 Animation Using the Reservoir The Reservoir serves as a storage facility for motion clips on page 8051 (BIP and XAF files) that you use with the Motion Mixer. You can load clips directly into the Reservoir, and all clips that you load directly in the Motion Mixer also show up in the Reservoir. For each motion file used in the Motion Mixer, the Reservoir list shows the source (disk path and name of the file), and, under the source, shows the name of each clip or set of clips derived from that file. Using the Motion Mixer | 3745 The Motion Mixer can apply multiple adaptations on page 7900 (occurrences of the clip for different-sized bipeds) to different bipeds. In the Reservoir, the various clip adaptations are listed under the clip name. If you click a clip in the list, the window under the list displays information about the clip, including structural differences between the figure it's applied to and the figure from which the file was originally saved. A second window displays a graphical view of the biped animation; drag the slider below the window to move through the animation. 3746 | Chapter 15 Animation NOTE The preview window is available only for BIP files. TIP For best results when loading animation clips that might require remapping into the Motion Mixer, load the clips directly into Mixer tracks, rather than going through the Reservoir. This always gives you the opportunity to remap the animation data. Saving Clip Adaptations The Reservoir lets you save a unique version of an adapted clip to a new BIP file. This new file will contain the new biped's size data, so will not have to be adapted when it is loaded into the Mixer. If you are mixing long BIP files on a biped of a size other than the size used to create the BIP file, when you reload the MAX file or load a MIX file, you might have to wait while the Mixer recalculates the adaptation for the biped. You can save loading time by saving adapted clips to new BIP files and replacing the original clip in the Mixer. If you save an instanced clip from the Reservoir under a new file name, all clips in the Reservoir are renamed likewise. Procedures To access the Reservoir: On the Motion Mixer toolbar, click the Reservoir button. The Reservoir opens. ■ To add clips to the Reservoir: 1 Choose between Max Clips and Biped Clips. 2 On the Reservoir toolbar, click the New Entry button. The Open dialog appears. 3 Find the directory containing the clip files to load, highlight the desired file or files, and then click the Open button. The file loads and appears as a Source in the Reservoir list. You can then add it to a track in the Motion Mixer using the latter's New Clips > From Reservoir command. Using the Motion Mixer | 3747 To replace a clip in the Reservoir: Use the Load File command to replace a highlighted source or clip. 1 In the Reservoir list, click a single item. The software permits replacing only one source or clip at a time. 2 On the toolbar, click Load File. The Open dialog appears. 3 Find the directory containing the clip files to load, highlight the desired file, and then click the Open button. The file loads and replaces the highlighted item in the Reservoir list and the Motion Mixer. If you replace a source item, all of its clips are replaced as well. If you replace a clip, all of its references are replaced. To save an instanced clip to a new clip: Once you apply a clip instance to a different biped in Motion Mixer, the software automatically fits the motion to the biped. You can then save the modified motion from the Reservoir. 1 In the Reservoir list, highlight the clip whose motion you want to save. 2 On the Reservoir toolbar, click the Save File button. Use the Save As dialog to specify a name and location for the motion file, and then click the Save button. The motion file is saved as fitted to the biped to which the clip is applied. NOTE The motion file is saved at its original length, whether or not you changed the length of any instances of the clip in the Motion Mixer. To save multiple instanced clips from the Reservoir: 1 On the Reservoir toolbar, click Batch Save. This operation does not depend on which items are highlighted in the Reservoir list. 2 In the Save Reservoir Items dialog, turn on items you want to save. For each source/clips group, you can save the source or any combination of clips, but not both. 3748 | Chapter 15 Animation Optionally turn on Reset Names After Saving. 3 Click Save to save the specified items. To remove clips not used in the Motion Mixer from the Reservoir: If you delete all instances of a clip from the Motion Mixer, it appears in the Reservoir with a Refs value of 0. ■ On the Reservoir toolbar, click Clean to remove these clips from the Reservoir. The motion file is saved under the new name. Motion Mixer Interface Select a biped. > Motion panel > Biped Apps rollout > Mixer Graph Editors menu > Motion Mixer... The Motion Mixer is used to mix motion clips that are assigned to bipeds and non-biped objects. The concept of the Motion Mixer is based on audio mixing done in the music and sound industries. Like an audio mixer, Motion Mixer lets you add a series of tracks on page 8150 for each object in a scene. To each track you add clips on page 8051 in the form of BIP or XAF files. You can also add transitions on page 8157 to smoothly link clips together. Clips and transitions can be filtered on page 7977 so their motion affects only specified biped parts. The entirety of the clips, transitions and other clip settings for a single object in the Motion Mixer is called a mix on page 8044. As each object has its own mix, there can be several mixes in the Motion Mixer at any given time. You can save a mix as a MIX file on page 8045. For more information and procedures describing how to use the Motion Mixer, see Using the Motion Mixer on page 3699 and the topics that follow it. See also: ■ Using the Motion Mixer on page 3699 Motion Mixer Interface | 3749 Interface The Motion Mixer interface contains the following: ■ The Motion Mixer menu bar on page 3750, with five menus. ■ The Motion Mixer toolbar on page 3775, containing button-activated commands for adding bipeds, transitions, and other settings for creating a mix. ■ The Motion Mixer editor on page 3783, showing a graphical interface where the mix is built. The Motion Mixer is normally opened as a floating window. It can also be opened in a viewport, like the Asset Browser and MAXScript Listener. Motion Mixer Menus Select a biped. > Motion panel > Biped Apps rollout > Mixer Graph Editors menu > Motion Mixer... The Motion Mixer interface contains five menus located at the top of Motion Mixer window. 3750 | Chapter 15 Animation Interface Mix menu The Mix menu provides tools for managing your bipeds and non-biped objects when they are selected. If an object is already added to the Motion Mixer, right-clicking its name displays the menu. Use commands on this menu to load and save MIX files, adjust track colors and balance parameters, and activate and deactivate the Mixer mode. Edit Max Mix Object Opens the Edit Max Mix Object dialog, which lets you modify the content of the highlighted non-biped object mix. This dialog is comparable to the Max Objects To Mix dialog on page 3775 with the exception of the Bake Removed Nodes option. NOTE This dialog is only available for non-biped object mixes. Bake Removed Nodes When on, animation keys from removed objects are baked to the main timeline. Default=off. Add Trackgroup Adds a trackgroup on page 8151 to the top of the selected object's mixes. Track Color... Allows you to change the color of the clips in the selected object's mixes. Choosing this command displays a Color Selector, where you can specify the clip color. Motion Mixer Interface | 3751 Balance Parameters... Opens the Balance Parameters dialog. These values influence the effects of balance compensation on the biped's pelvis and spine when you use different motions on the upper and lower parts of the biped. See Adjusting Biped Balance in the Mixer on page 3737. NOTE This dialog is available only for biped object mixes. ■ Lateral Ratio Decreasing the Lateral Ratio to 0.0 will cause balance compensation to use only forward/backward motion on the pelvis. Increasing Lateral Ratio to 1.0 will adjust the pelvis with only side-to-side motion. Range=0.0 to 1.0; Default=0.5. ■ Propagation Affects the degree to which spine links are rotated to follow COM and pelvis rotation. When set to 0.0 (the default), spine rotation is not influenced by lower body motion. When set to 1.0, all spine links except the topmost one use the lower body motion's spine animation to some degree to better follow the COM and pelvis motion. The lowest spine link is rotated the most, and each subsequent spine link is rotated less and less. The topmost spine link is not rotated at all so arm motion will be preserved. In order for this setting to affect spine rotation, the lower body motion must have some spine animation as part of the motion clip. 3752 | Chapter 15 Animation A Propagation setting above 0.0 is appropriate when the upper body motion causes the spine to bend over a great deal during a large part of the animation. Range=0.0 to 1.0; Default=0.0. Delete Clears the selected object(s) from the Mixer. Load Mix File Opens a dialog where you can select a MIX file on page 8045 to load into the Mixer. Save Mix File Opens a dialog where you can save the current object's mix on page 8044 to a MIX file. The following Mixdown-related tools are available only for biped object mixes. Compute Mixdown Performs a mixdown on page 8045 on the selected biped(s). A Mixdown track appears at the bottom of each biped’s mix. Clicking the Mixdown track deactivates or activates it. When the Mixdown track is active, each biped inherits this single track's animation rather than the transition and layer tracks in the mix. When the Mixdown track is inactive, the biped uses the raw mix on page 8044 instead. An inactive Mixdown track (above) and an active Mixdown track (below) An inactive Mixdown track (above) and an active Mixdown track (below) A mixdown can make automatic adjustments to transitions between planted foot motions. Creating a Mixdown track makes it possible to copy the mixdown to the biped so it can be saved as a BIP file. See Exporting Animation to the Biped on page 3741. Delete Mixdown Removes the mixdown from the mix of the selected biped(s). The next three menu options are mutually exclusive; only one can be turned on at a time. Copy Mixdown to Biped Copies animation from the Mixdown track to the biped. The animation remains on the biped even after Mixer mode is turned off, and the animation can be saved as a BIP file. Motion Mixer Interface | 3753 Effect Raw Mix When this option is turned on, Mixer mode is turned on for the biped. Default=active. Effect Mixdown When this option is turned on, the mixdown track is activated. This option is available only if a mixdown has been computed. Effect Biped When this option is turned on, Mixer mode is turned off for the biped. Click Effect Raw Mix to turn Mixer Mode on again. Trackgroups menu When a trackgroup is selected, you can access the commands in the Trackgroup menu. Alternately, you can right-click a trackgroup label to open the menu. The Trackgroups menu lets you administer the bipeds in the mixer. Each biped you add to the Motion Mixer gets its own trackgroup, a selection of biped parts. Filter... Opens the Trackgroup Filter dialog where you can customize the object body parts that are included in a trackgroup mix. This command is only available when a single trackgroup is selected. For more information, see Trackgroup Filter Dialog (Non-Biped Object) on page 3781, Trackgroup Filter Dialog (Biped Object) on page 3780, or Filtering Mixer Tracks on page 3715. The Trackgroup Filter dialog for biped object mixes. 3754 | Chapter 15 Animation The Trackgroup Filter dialog for non-biped object mixes. Add Trackgroup Above Adds new trackgroups above the currently selected ones. Add Trackgroup Below Adds new trackgroups below the currently selected ones. Add Layer Track Adds a Layer track at the top of the selected trackgroups. Layer tracks hold clips to be mixed without transitions. Add Transition Track Adds a Transition track at the top of the selected trackgroups. Transition tracks hold clips that are mixed with transitions. Clips in Transition tracks will automatically spawn transitions when they overlap. Delete All Clips Clears the selected trackgroups of all clips and transitions. Delete Clears the selected trackgroups from the Motion Mixer. Tracks menu The commands in the Tracks menu are only active when you have a track, or tracks, selected in the Mixer. These menu commands are also available when you right-click a track in the Mixer window. Motion Mixer Interface | 3755 Add Layer Track Above Adds a new Layer track above the currently selected tracks. Add Layer Track Below Adds a new Layer track below the currently selected tracks. Add Transition Track Above Adds a new Transition track above the currently selected tracks. Add Transition Track Below Adds a new Transition track below the currently selected tracks. Convert to Layer Track Converts the selected Transition tracks to Layer tracks. Convert to Transition Track Converts the selected Layer tracks to Transition tracks. Optimize All Transitions All transitions on the track are optimized. New Clips > From Files Opens a dialog where you can choose one or more BIP or XAF files to add to the selected track. If a selected BIP file has been saved for this release of 3ds Max , a thumbnail is displayed in the Motion Preview where you can move the slider and get an idea of what the motion looks like. Any clip you add to a track using this method is automatically added to the Reservoir on page 3787. NOTE If you choose a BIP file that is older, you will receive a warning that the file is obsolete and should be resaved. Until the BIP file is resaved, it will not display in the Motion Preview. New Clips > From Reservoir Opens a Reservoir Files dialog where you can choose one or more BIP or XAF files listed in the Reservoir. Import Motion Flow Allows you to import clips and transitions from a motion flow script to the selected track. You can import a script only if it is active on the currently selected biped, and if it has been loaded or saved as part of an MFE file on page 8044. If scripts are available for import, the Motion Flow Scripts dialog displays a list of available scripts. The imported script replaces the currently selected track with a transition track on page 8158 containing all the clips and transitions in the script. NOTE This dialog is available only for biped object mixes. 3756 | Chapter 15 Animation NOTE If the selected track contains clips and transitions when you choose this option, these clips are removed from the track when the motion flow script is imported. Delete All Clips Deletes all the clips residing on the selected track. Delete Deletes a selected track or tracks. Clips menu The Clips menu is active when a clip is selected or when you right-click a clip in the Mixer. Some menu commands are not available when multiple clips are selected. Add Time Warp Applies the ability to be time warped to the selected clips. A time warp allows you to alter clip speeds. It gives you the ability to stretch or squeeze time for parts of selected clips. For more details and procedures, see Adding Time Warps on page 3733. Remove Time Warp Removes the ability for clips to be Time Warped and removes any existing Time Warping from selected clips. Tile View Tiles the selected clip along the width of the Motion Mixer. The number of duplicated clips depends upon the clip's length and the number of frames displayed across the Motion Mixer. For example, if a clip is 100 frames long and the number of frames across the Motion Mixer is 500, the clip will tile five times. Tile Range Tiles the selected clip along the range of the active time segment. The number of duplicated clips depends upon the clip's length and the number of frames in the active time segment. For example, if a clip is 100 frames long and the number of frames in the active time segment is 500, then the clip will tile five times. Remove Trim/Scale Removes the trim/scale from the selected clip or clips. Delete Deletes a selected clip or clips from a track. Load Source > From File Opens a dialog where you can choose a new BIP or XAF file to replace selected clips. After selecting the new clip, the Mixer Clip Source Options dialog on page 3759 is displayed. Load Source > From Biped Opens the Copy Biped Animation To Clip dialog on page 3761, where you can choose a biped from which to copy animation to selected clips. NOTE This tool is available only for biped object mixes. Motion Mixer Interface | 3757 Load Source > From Reservoir Opens the Reservoir File Groups dialog on page 3763, where you can choose a clip from the Reservoir to replace selected clips. Copy to Biped Puts the clip’s animation onto the base state of the selected biped, evident when not in Mixer or any other mode. This option is available only when a single clip is selected. NOTE This dialog is available only for biped object mixes. Collapse Saves a collapsed version of the selected clip to a new BIP file. Collapsing removes all scaling, trims, and time warps from the clip, and prompts for a new BIP file name for the collapsed version of the clip. The original selected clip is replaced by the new clip. Collapsing a clip does not affect the selected clip itself. NOTE This dialog is available only for biped object mixes. Transitions menu Select a transition track to make commands on this menu active. Right-clicking a transition also opens this menu. Edit Opens either the Mixer Transition Editor dialog (Biped Object) on page 3764 or the Mixer Transition Editor dialog (Non-Biped Object) on page 3768, based on the kind of mix the transition is applied to. The dialogs are similar to the Transition Editor on page 4558 accessed from the Motion Flow rollout. Optimize Optimizes the selected transitions. This uses optimization algorithms similar to those in Motion Flow. Convert To Loopable Clip Allows you to create a loopable clip from a transition between two clips that are clones of one another. The two clips must share the same source file, meaning they must point to the same clip in the reservoir and they must have identical time warps and scales. Although the two clips don't have to be created via cloning, it is probably the best way to create them. The loopable clip will replace the two original clips and their transition and will begin exactly one frame before the transition starts, so at that frame, the animation will appear the same as it did before you created the loopable clip. If you tile the loopable clip after you create it, it should loop perfectly. NOTE This dialog is available only for biped object mixes. 3758 | Chapter 15 Animation Motion Mixer Dialogs Mixer Clip Source Options Dialog Select a biped. > Motion panel > Biped Apps rollout > Mixer > Select clip(s). > Motion Mixer menu bar > Clips > Load Source > From File Select non-biped clip(s). > Motion Mixer menu bar > Clips > Load Source > From File The Mixer Clip Source Options dialog opens when you select one or more clips on a track and choose Load Source > From File Clips menu on page 3757. The new clip you choose replaces the selected clips. You also have the option of replacing instances on page 8015 and adaptations on page 7900 of selected clips. Motion Mixer Interface | 3759 Interface Load Animation Into: ■ The selected clips only specified clip. ■ All instances of the selected clip Replaces instances of the clip (any occurrence of the selected clip within tracks for the same biped, or other bipeds of the same size). ■ All instances and adaptations of the selected clip Replaces adaptations (any occurrence of the selected clip on all bipeds' tracks). 3760 | Chapter 15 Animation Replaces only the selected clip with the newly Method to Fit Animation to Clip: ■ Scale animation to fit clip Scales the length of the loaded clip to match the length of the clip it replaces in the track. ■ Trim animation to fit clip Trims the length of the loaded clip to match the length of the clip it replaces in the track. ■ Set clip length to animation length, shifting remaining clips in time For selected clips, changes the animation length to the loaded clip length. All clips on the track after the selected clip are shifted depending on the length of the newly loaded clip. Remove Weights Removes any existing weight curves from clips selected to be replaced. Remove Warps Removes any existing time warps from clips selected to be replaced. Copy Biped Animation to Clip Dialog Select a biped. > Motion panel > Biped Apps rollout > Mixer > Motion Mixer menu bar > Clips > Load Source > From Biped The Copy Biped Animation To Clip dialog opens when you select one or more clips on a track and choose Load Source > From Biped on the Clips menu on page 3757 The animation from the biped replaces the selected clips. NOTE This dialog is available only for biped object mixes. Motion Mixer Interface | 3761 Interface Copy Animation Into: ■ The selected clips only Only the selected clip in the track is replaced by a new clip chosen from the reservoir. ■ All instances Replaces instances on page 8015 of the clip (any occurrence of the selected clip within tracks for the same biped, or other bipeds of the same size) with the clip selected from the Reservoir. ■ All instances and adaptations Replaces any occurrence (adaptation on page 7900) of the selected clip on all bipeds' tracks in the Mixer, with the clip selected from the Reservoir. Method to Fit Animation to Clip: ■ Scale animation to fit clip Scales the length of the loaded clip to match the length of the clip it replaces in the track. ■ Trim animation to fit clip Trims the length of the loaded clip to match the length of the clip it replaces in the track. 3762 | Chapter 15 Animation ■ Set clip length to animation length, shifting remaining clips in time For selected clips, changes the animation length to the loaded clip length. All clips on the track after the selected clip are shifted depending on the length of the newly loaded clip. Remove Weights Removes any existing weight curves from clips selected to be replaced. Remove Warps Removes any existing time warps on page 3733 from clips selected to be replaced. Reservoir File Groups Dialog Select a biped. > Motion panel > Biped Apps rollout > Mixer > Motion Mixer menu bar > Clips > Load Source > From Reservoir... Graph Editors menu > Motion Mixer... > Select a non-biped object track > Motion Mixer menu bar > Clips > Load Source > From Reservoir... The Reservoir File Groups dialog opens when you select clips and choose Load Source > From Reservoir on the Clips menu on page 3757. This action replaces selected clips with the clip you choose from the Reservoir. This dialog shows a list of all the clips in the Reservoir on page 3787. Interface Motion Mixer Interface | 3763 Copy Animation Into: ■ The selected clips only Only the selected clip in the track is replaced by a new clip chosen from the reservoir. ■ All instances Replaces instances on page 8015 of the clip (any occurrence of the selected clip within tracks for the same object, or other objects of the same size) with the clip selected from the Reservoir. ■ All instances and adaptations Replaces any occurrence (adaptation on page 7900) of the selected clip on all objects' tracks in the Mixer, with the clip selected from the Reservoir. Method to Fit Animation to Clip: ■ Scale animation to fit clip Scales the length of the loaded clip to match the length of the clip it replaces in the track. ■ Trim animation to fit clip Trims the length of the loaded clip to match the length of the clip it replaces in the track. ■ Set clip length to animation length, shifting remaining clips in time For selected clips, changes the animation length to the loaded clip length. All clips on the track after the selected clip are shifted depending on the length of the newly loaded clip. Remove Weights Removes any existing weight curves from clips selected to be replaced. Remove Warps Removes any existing time warps from clips selected to be replaced. Mixer Transition Editor Dialog (Biped Object) Select a biped. > Motion panel > Biped Apps rollout > Mixer > Motion Mixer menu bar > Transitions > Edit The Mixer Transition Editor controls transitions on page 8157 on transition tracks on page 8158. When it is active, you view transitionary stick figures to aid in placing your transitions. You can use this dialog to change the start and end times of transitions, change the transition focus, and perform other functions. This dialog is very similar to the Motion Flow Transition Editor on page 4558. 3764 | Chapter 15 Animation Interface Length Sets the number of frames for the duration of the transition. Transitions are calculated by matching velocities in both clips. Smooth out abrupt velocity changes using longer transitions. Ease In Ease-in value for the source clip. Ease Out Ease-out value for the destination clip. Transition Focus Lets you specify a focus point on the biped where the transition takes place. The Mixer will attempt to match movement based on this selection. For example, if Left Foot is selected, the transition will use the left foot as a focal point during the transition, aligning the motion of the left foot in both clips as much as possible during the transition. Default=Auto. ■ Auto The transition focus is calculated by averaging the overall position of the biped as it transitions from one clip to the next. Motion Mixer Interface | 3765 ■ Center Of Mass The transition focus is based on the center of mass position of the biped as it transitions from one clip to the next. ■ Left Foot The transition focus is based on the left foot position of the biped as it transitions from one clip to the next. ■ Right Foot The transition focus is based on the right foot position of the biped as it transitions from one clip to the next. ■ Both Feet The transition focus is based on an averaged foot position of both of the biped's feet as it transitions from one clip to the next. NOTE The best way to see the differences between the transition foci is by watching the yellow and red ghosts. Preserve Height When turned on, Preserve Height will allow gradual vertical motion to accumulate from the source to the destination clip. For example, climbing stairs will loop upward. If it is turned off, the next clip is always set so that its lowest point is at z=0. This default insures that motion does not gradually float up (or down) with each additional clip. Angle Sets the direction of the destination clip. The angle of the destination clip is automatically set for best body fit between the two clips when the Start Frame values change. Use Angle to change the direction of the destination clip. Previous Transition Go to the previous transition in the transition track. Displays the previous transition in the Transition Editor, moves the time slider to the start frame of the previous transition and highlights the previous clip in the transition track. Next Transition Go to the next transition in the transition track. Displays the next transition in the Transition Editor, moves the time slider to the start frame of the next transition and highlights the next clip in the Scripts list. Optimize Transition Displays the Transition Optimization dialog on page 3774. 3766 | Chapter 15 Animation Options in the Transition Optimization dialog allow you to search for the location for the transition. Go To Start Frame Moves the time slider to the first frame of the transition. The number field shows the start frame number. Start Frame Set the transition start frame for the source and destination clips in their respective fields. Duration for the source and destination clips displays above the Start Frame fields. Rolling Keeps the clip in motion during the transition. Fixed For the source clip, this option freezes the biped at the Start Frame position during the transition. For the destination clip, this option freezes the biped at the End Frame position. If Fixes is chosen for both the source and destination clips, the transition is a gradual interpolation from one frozen pose to another. Set Start Frame Copies the value in the Frame field of the Ghost area to the Start Frame field in the Clip area. The position of the destination clip changes to match the biped body in the destination clip to the biped body in the source clip. Locate an appropriate start frame for the source and destination clips by using the Frame spinner and viewing the positions of both stick figures, then click Set Start Frame. The destination clip is rotated and positioned to match both bipeds. Use the Angle spinner to reorient the destination clip. Frame Use the Frame spinner to scrub a stick figure back and forth, which allows you to determine a start frame for the source and destination clips. Visual feedback of the stick figures is a good way to judge which start frames are needed for the source and destination clips. Motion Mixer Interface | 3767 Mixer Transition Editor Dialog (Non-Biped Object) Graph Editors menu > Motion Mixer... > Select a non-biped object clip transition. > Motion Mixer menu bar > Transitions > Edit The Mixer Transition Editor controls transitions on page 8157 on transition tracks on page 8158. You can use this dialog to change the start and end times of transitions, change the transition focus, and perform other functions. Mix transition blend objects are changeable from clip to clip, and any new transition that results from cloning or adding clips initially uses the blend options from the last clip in time. The options on this dialog are much the same as for Bipeds, except that: ■ Mix transitions for 3ds Max objects do not have ghosting or playback controls. ■ You can explicitly pick blend objects from any object being mixed in the track. ■ The sub-blend capability provides further tuning of the transition. Blending and Sub-Blending Consider a character walking around a corner. The trajectory of the character's root describes an arc, while the IK feet cycle along the ground. This clip contains a few footsteps, and is used to make a mixer cycle that should take the character around in a circle. If you set the root and the feet all to be velocity blends, the transition will result in the root continuing around the corner while the feet continue in whatever direction they were moving at transition time! That is, if the right foot was just about to hit the ground with its heel, thus pointing up a bit, it would transition upward into the next clip instead of blending in the direction that the root’s arc is taking. If you set the root to be a velocity blend and then set the feet to be sub-blends of the root, the transition results in the root continuing on its arc around the corner but with the feet blending in relation to it. That is, the upward-pointing right foot motion will blend with the foot motion in the new clip but in the direction of the arc, not in its own upward direction. 3768 | Chapter 15 Animation Interface Length Sets the number of frames for the duration of the transition. Transitions are calculated by matching velocities in both clips. Smooth out abrupt velocity changes using longer transitions. Ease In Ease-in value for the source clip. Ease Out Ease-out value for the destination clip. Source Clip and Destination Clip groups The following options let you set different parameters proper to both source and destination clips involved in the transition. Start Frame Set the transition start frame for the source and destination clips in their respective fields. Duration for the source and destination clips displays above the Start Frame fields. ■ Rolling Keeps the clip in motion during the transition. ■ Fixed For the source clip, this option freezes motion at the Start Frame position during the transition. For the destination clip, this option freezes motion at the End Frame position. If Fixed is chosen for both the source and destination clips, the transition is a gradual interpolation from one frozen pose to another. Motion Mixer Interface | 3769 Velocity Blends group A Velocity Blend object is one that has its positions blended based on velocity (like a biped's COM). Objects used for Velocity Blending are most commonly the roots of the mix hierarchy. When you pick an object for velocity blending, its animation will accumulate based on its trajectory in the scene; for example, choosing the root of a character as the blend object will ensure that the character’s animation is transitioned relatively from clip to clip, so the character keeps moving through world space instead of repeating each clip as absolute. All children of the root will follow in the transition. In some cases, you might want to use velocity blending for a child object. By default, the Transition Editor uses no velocity blend objects. IMPORTANT If you use velocity blending, pick your blend objects before you optimize the transition. Velocity Nodes list Lists the objects you have chosen for velocity blending. Select Velocity Nodes Click to display a Pick Nodes dialog on page 3772 and choose the objects to velocity blend. Delete Velocity Nodes Click to delete the highlighted objects from the list. Set Other Transition Velocity Nodes Copies the set of velocity blend objects to all other transitions in the current track. Roll When on, accumulates the roll (X) angle during the transition. When off, the angle is simply blended with the next clip. Default=on. The spinner value lets you specify an additional angle to add to the roll. Pitch When on, accumulates the pitch (Y) angle during the transition. When off, the angle is simply blended with the next clip. Default=on. The spinner value lets you specify an additional angle to add to the pitch. Yaw When on, accumulates the yaw (Z) angle during the transition. When off, the angle is simply blended with the next clip. Default=on. The spinner value lets you specify an additional angle to add to the yaw. 3770 | Chapter 15 Animation X/Y/Z When on, accumulates position in the specified axis during the transition. When off, the position is simply blended with the next clip. Default=on. Sub-Blends group In order for other world-space objects to transition within the space of the velocity blend or a child of the velocity blend, you need to specify a sub-blend. For example, think of a rig that has a root moving through world space, and also has world-space IK foot controls. In this case, you would pick the root as the velocity blend, then select the root in the list and add the foot controls as its sub-blends. The result of this will be the that root makes a smooth transition and the feet make as smooth a transition as possible in the direction that the legs are going (within the root’s space) at transition time, not in the direction that the feet themselves are going at transition time. Sub-Blend Nodes list Displays the objects chosen for sub-blending. Select Sub-blend Nodes Click to display a Pick Nodes dialog on page 3772 and choose the objects to sub-blend. Before you pick sub-blend nodes, you must first choose a velocity blend node in the upper list. Typically this is the parent of the nodes that will be sub-blends. Delete Sub-blend Nodes Click to delete the highlighted objects from the list. Set Other Transition Sub-blend Nodes Copies the set of velocity sub-blend objects to all other transitions in the current track. Previous Transition Goes to the previous transition in the transition track. Displays the previous transition in the Transition Editor, moves the time slider to the start frame of the previous transition and highlights the previous clip in the transition track. Next Transition Goes to the next transition in the transition track. Motion Mixer Interface | 3771 Displays the next transition in the Transition Editor, moves the time slider to the start frame of the next transition and highlights the next clip in the Scripts list. Current Frame Displays the current frame number. Go To Start Frame Moves the time slider to the first frame of the transition. Optimize Transition Displays the Transition Optimization dialog on page 3774. Options in the Transition Optimization dialog allow you to search for the location for the transition. IMPORTANT If you use velocity blending, pick your blend objects before you optimize the transition. OK Confirms the current settings and closes the dialog. Pick Nodes Dialog (Motion Mixer) Graph Editors menu > Motion Mixer... > Select a non-biped object clip transition. > Motion Mixer menu bar > Transitions > Edit > Mixer Transition Editor > Click the Select Velocity Nodes or Select Sub-blend Nodes button. This dialog opens when you pick nodes for velocity blending or sub-blending. If you click the Select Velocity Nodes button, the list displays only the objects being mixed in the current transition track. If you click the Select Sub-blend Nodes button, the list displays only the objects being mixed in the current transition track, except those objects that are already velocity blends. 3772 | Chapter 15 Animation Interface Search field To find an object in the list, enter the object's name and then press Enter. Node list Lists all the available objects. All Selects all objects in the list. None Selects no objects in the list. Invert Inverts the current list selection. Subtree group Display When on, the object hierarchy is shown by indenting. When off, all objects appear at the same level. Default=on. Select When on, selecting an object selects that object's children. When off, only one object at a time is selected. Default=off. Named selection sets drop-down list This list shows the scene's named selection sets on page 239. Choosing a set from this list selects its members in the Node list. Motion Mixer Interface | 3773 Transition Optimization Dialog Motion Mixer > Create a transition track. > Place clips on the track. > Right-click the transition. > Optimize > Transition Optimization dialog Motion Mixer > Create a transition track. > Place clips on the track. > Select the transition. > Transitions menu > Optimize > Transition Optimization dialog Options in the Transition Optimization dialog allow you to select the range over which the optimize algorithm will search for a transition. It can search either the whole clip, or it can search near the existing transition. You must specify the preferred length of the optimized transition. The software will try to get as close to that length as possible, still opting to give you the best length. If it searches about the existing transition, you must specify the number of frames about which it will search before and after the existing transition. Optimized transitions compute for minimum foot sliding over the range of the transition. This method of determining transitions yields very high quality results. Interface Preferred Transition Length Specify the preferred length of the optimized transition. 3774 | Chapter 15 Animation Search Entire Clip Search the entire clip for an optimized transition start frame. Search Near Existing Transition Allows animators to find good transitions that "are in the ballpark" of their existing transitions. Transitions can be fine tuned without drastically changing the animation's timing. In general, there may be several "good transitions", so this feature narrows the range of search to the ones that are near to the current settings. Search Range about Existing Transition Allows animators to set a “before” and “after” range of frames to perform a search for other transitions that are close to the selected transition. Both ranges default to 20 frames around the selected transition. Before Set a frame value to search before the existing transition. After Set a frame value to search after the existing transition. Motion Mixer Toolbar Select a biped. > Motion panel > Biped Apps rollout > Mixer Graph Editors menu > Motion Mixer... Like an audio mixer where you add music tracks and use fades and blends to transition between tracks, the Motion Mixer allows you to mix motion clips. The Motion Mixer toolbar offers commands that you use to add and delete biped and non-biped objects to and from the mixer, modify clips, and change the way tracks in the mixer are displayed. See also: ■ Adding Tracks to the Mixer on page 3704 ■ Using the Reservoir on page 3745 Interface Add Max Objects Opens the Max Objects To Mix dialog, which lists all non-biped objects in the scene. This dialog lets you add objects to be driven by your mixed animation, as well as name the mix in which they are contained. Motion Mixer Interface | 3775 This dialog is comparable to the Select Objects dialog on page 232. NOTE The default mix name is the root node with the most children in the list. NOTE Objects can be added to only one mix at a time. Once an object is part of a mix, it is removed from the list. Add Bipeds Opens the Bipeds dialog listing all the bipeds in the scene. Highlight one or several bipeds to load them into the Motion Mixer window. 3776 | Chapter 15 Animation TIP You can click-drag over all, or several adjacent bipeds in the list if you want to add multiple bipeds to the Motion Mixer. If the bipeds you want to add are not next to one another, hold down the Ctrl key while choosing the bipeds you want to add. Delete Deletes a selected biped from the Motion Mixer window. Select Lets you select bipeds, trackgroups, tracks, and clips. Move Clips Allows selection and movement (including Shift+Clone) of bipeds and trackgroups, keeping clips and transitions intact. It also allows independent horizontal movement of clips on the same track or vertical movement of clips from one biped's track to another biped's track. Slide Clips Allows horizontal movement of clips on the same track or vertical movement of clips from one biped's track to another biped's track. Sliding a clip to the right will move unselected clips which are situated to the right of the selected clip; sliding to the left will move unselected clips which sit to the left of the clip. Offset Records how many frames have been displaced. This value appears in the status area next to Slide Clips only during interactive translations, such as moving a clip or editing a time warp. The Offset value resets to zero when the translation is complete. Frame Displays the frame number under the cursor during interactive translations, such as stretching a clip or editing a time warp. When stretching Motion Mixer Interface | 3777 a clip, you can use both the Frame and Offset fields to tell you how many more or fewer frames the clip will have. Trim Clips Clips can be trimmed from their original lengths interactively. When using this mode, you can grab the edge of a clip and drag it to a new frame within the clip’s original length. This mode will display all trimmed portions of clips in the Motion Mixer as gray. See Adjusting Clip Timing on page 3722. Editable Time Warps Clips can be interactively time warped, given that they have had a time warp applied. When in this mode, you can place seams in a clip and then drag them within the clip’s original length. See Adding Time Warps on page 3733. Draggable Tracks Enables vertical movement of tracks with clips. Holding down the Shift key while moving a track creates a clone of the original track. Lock Transitions When Lock Transitions is turned off (the default), moving a clip or changing its length on a transition track affect the lengths of transitions around the clip. When Lock Transitions is turned on, transition lengths do not change when you move a clip or drag clip edges not touching the transition. You can still change a transition's length by dragging the edges of the transition itself. Set Range Matches the active segment's start and end times to the extents of the mix. Pan Pans the Motion Mixer display horizontally and vertically. Zoom Extents Stretches or shrinks the mix to fit in the current Motion Mixer display. Zoom Allows horizontal stretching and shrinking of the display of the mix. Zoom Region Zoom into a portion of a track by dragging a region selection around that part of a track. 3778 | Chapter 15 Animation Snap Frames An on/off toggle that sets the Motion Mixer to snap all adjustments to single frames. Snap Clips An on/off toggle that causes clips residing on the same track to snap together. The end frame of one clip will match the start frame of the next clip. If the first clip ends at frame 100, the start frame of the next clip will snap to frame 100. When Snap Clips is on, transition edges snap to clip edges when dragged. Preferences Opens the Mixer Preferences dialog on page 3791, where you can change display settings for clips, transitions, and frames. Reservoir Opens the Reservoir dialog on page 3787. Named selection Lets you enter a name for the current selection. This field is similar to named selections for 3ds Max objects (on the main toolbar), but unlike named object selections, you can rename an existing set. To create a named selection, select the clips for the set, enter a name in the named selectionfield, and then press Enter. You can reselect an existing selection set by choosing its name from the drop-down list. Named sets of clips in the mixer are saved with the MAX file but not with MIX files. Horizontal This button is available when the Weighting button on the motion mixer toolbar or on a trackgroup is active. It locks all movement of weight nodes to the horizontal. Vertical This button is available when the Weighting button on the motion mixer toolbar or on a trackgroup is active. It locks all movement of weight nodes to the vertical. Horizontal Vertical This button is available when the Weighting button on the motion mixer toolbar or on a trackgroup is active. It allows free horizontal and vertical movements of weight nodes. Weight Mode An on/off toggle that allows you to work with weight curves. Weight curves are useful for making smooth blends between tracks. The Weight Motion Mixer Interface | 3779 Mode button on the Motion Mixer toolbar acts as a global switch that toggles the Weight Mode buttons on every track in the Mixer. The Weight Mode button at the right end of each track toggles weighting only for that track. For more information on how weight curves work, see Motion Mixer Editor on page 3783. To find out how to use weight curves, see Adjusting Track Weight on page 3730. Trackgroup Filter Dialog (Biped Object) Select a biped. > Motion panel > Biped Apps rollout > Mixer > Trackgroups menu > Filter By default, the Motion Mixer expects that a mix you create will affect the entire biped. If you like, you can filter on page 3715 a trackgroup so clips in the mix affect only selected body parts. This functionality makes it easy for you to assign one set of BIP files to control the motion of a biped's upper body, while another set controls the lower body. For more information and procedures on the use of trackgroup filters, see Filtering Mixer Tracks on page 3715. Interface 3780 | Chapter 15 Animation The Trackgroup Filter dialog consists of a rough diagram of a biped. Selectable components display in the color specified for the trackgroup by the Track Color command on the Mix menu on page 3751. If the biped does not include parts like ponytails or props, they are unselectable. Body parts can be individually activated or deactivated by clicking them, or you can use the buttons across the bottom of the Trackgroup Filter diagram to expedite selections. Center Activates all central body parts, comprised of the spine, pelvis and horizontal movement, rotation and vertical movement icons. Arms Activates the biped's arms, comprised of the right arm, left arm, and both hand icons. Legs Activates the biped's legs, comprised of the right leg, left leg, and both foot icons. Xtras Activates the biped’s extra tails. See Xtras group on page 4432. All Activates all selectable body parts. None Deactivates all body parts. Invert Inverts the current body part selection. If everything is active, this deactivates everything, as if you clicked the None button. Trackgroup Label Field Use this field to specify a more descriptive label for a trackgroup. When you first create a trackgroup, it is labelled All. The new label entered here will appear in place of All to the left of the trackgroup. Use a unique, descriptive name to help you keep track of what body parts were filtered for the trackgroup. For example, if you selected only the pelvis and legs, you could enter Lower Body as the trackgroup label. Xtras group Lists the names of any Xtra tails the biped might have. See Xtras group on page 4432. Click the name of an extra tail to select it. Extra tails don’t appear in the biped diagram, only in this list. Trackgroup Filter Dialog (Non-Biped Object) Graph Editors menu > Motion Mixer... > Trackgroups menu > Filter By default, the Motion Mixer expects that a mix you create will affect the entire non-biped object. If you like, you can filter on page 3715 a trackgroup so clips in the mix affect only selected body parts. This functionality makes it Motion Mixer Interface | 3781 easy for you to assign one set of XAF files to control the motion of an object's upper body, while another set controls the lower body. For more information and procedures on the use of trackgroup filters, see Filtering Mixer Tracks on page 3715. Interface Search field To find an object in the list, enter the object's name and then press Enter. Object list The Trackgroup Filter dialog displays a list of objects, with the hierarchy indicated by indenting (if Subtree > Display is on, which it is by default). Objects can be individually activated or deactivated by clicking them, or you can use the buttons across the bottom of the Trackgroup Filter diagram to expedite selections. All Activates all selectable None Deactivates all body parts. Invert Inverts the current body part selection. If everything is active, this deactivates everything, as if you clicked the None button. 3782 | Chapter 15 Animation Subtree group Display When on, all body parts are listed following a hierarchy structure. Otherwise, body parts are listed on the same level. Default=on. Select When on, highlighting a body part automatically select all its children. Named selection sets drop-down list This list shows the scene's named selection sets on page 239. Choosing a set from this list selects its members in the Object list. OK Confirms selection and closes the dialog. Cancel Disregards current selection and closes the dialog. Motion Mixer Editor Select a biped. > Motion panel > Biped Apps rollout > Mixer The Motion Mixer window contains an editor where you manage everything that is added to the mix: bipeds, trackgroups, tracks, clips, and transitions. Interface The editor contains three sections: ■ Biped/Trackgroup/Track Controls on page 3784 ■ Interactive Clip Controls on page 3784 ■ Weighting Controls on page 3786 Motion Mixer Interface | 3783 Biped/Trackgroup/Track Controls The left-most section of the editor is the Biped/Trackgroup/Track Controls section. The Biped/Trackgroup/Track Controls set the number, order, display, and characteristics of those features in the mix. Bipeds and trackgroups can be selected, added, removed and repositioned. The “-” and “+” buttons collapse and expand the display of bipeds and trackgroups. The “m” button mutes a track, taking its influence out of the mix. The “s” button sets a track to solo mode, making it the only active track in the mix. Interactive Clip Controls The center section of the editor, Interactive Clip Controls, lets you manipulate the scale, time, timing, and trimming of clips and transitions. 3784 | Chapter 15 Animation The overall length of all clips and transitions in a track can be stretched or squeezed by dragging the white ends of the gray range bars along the top of each trackgroup. Drag from the middle of the range bar if the entire mix of a trackgroup needs to be moved. Likewise, clips can be moved by dragging from the middle of a clip. Clips and transitions can be shortened or lengthened by dragging either end. The range bar for each biped can also be moved or scaled to move or scale the entire mix for the biped. Transition brackets appear in Transition tracks. Where a transition exists, the brackets indicate the start and end point of the transition. If there is no transition at the end of the clip, the bracket indicates where the transition will be placed when a new clip is loaded into the track. The current time in the scene can be changed by dragging the vertical, purple timeline, a change which is reflected on the 3ds Max time slider. The vertical timeline. If a clip has a time warp applied, time can be distorted interactively in Time Warp mode: first create seams in the clip, then drag the seams to stretch or squeeze time. Motion Mixer Interface | 3785 Note the corresponding changes in the frequency of the time ticks down the center of the clip. Time warps are used to speed up or slow down a motion. Weighting Controls The weighting controls at the rightmost end of the editor let you set the weight with which a clip or track will be blended with other tracks within the same trackgroup. When Weight Mode is turned on, weights can be adjusted with a red weight curve on a clip or track. On a Layer track, each clip has its own weight curve. Each Transition track has one weight curve for the entire track. By default, each weight curve has a node at each end that can be moved to change the weight at that point. Click on the weight curve to add more nodes, and drag a node to move it. Weights can range from 0.0 (no weight) to 1.0 (full weight). The weight for the currently selected node appears to the left of the Weight Mode button. 3786 | Chapter 15 Animation You can change the weight by moving the node or by changing the spinner value. When you have mulitple weight nodes selected, and you use the spinner to set a new value, weight node values are changed relative to their original values. In this case, you cannot spin the spinner lower than 0 or higher than 1 on any one spin. If you have more than one weight node selected and you type in a weight, the weights of all nodes are changed to the new value. Weighting is evaluated across tracks in a single trackgroup. If a trackgroup has two or more tracks, the topmost track's weight is evaluated at each frame. If the weight at any frame is less than 1.0, the motion on the track is only partially used, and next track down is evaluated for its weight. If the total weight is still less than 1.0, the next track down is evaluated, and so on. In this way, motion from multiple tracks can be mixed at the same frame for the same set of body parts. The Weight Mode button at the right end of the main toolbar turns on this mode for all tracks in the Motion Mixer. For more information, see Motion Mixer Toolbar on page 3775. On a balance track, the Balance Weight Mode button appears rather than the Weight Mode button. When in Balance Weight mode, you can adjust the weight curve for the balance track on page 7919. To find out how to use Balance Weight mode, see Adjusting Biped Balance in the Mixer on page 3737. Reservoir Select a biped. > Motion panel > Biped Apps rollout > Mixer > Reservoir Graph Editors menu > Motion Mixer... > Reservoir The Motion Mixer Reservoir on page 8107 is similar to the Motion Flow Graph on page 4549, in that it acts as a holding area where clips can be listed, giving you a palette of motions to choose from. As you add clips on page 8051 to objects in the Motion Mixer window, you see them appear on a track on page 8150 and they are automatically added to the Reservoir. If you add new clips directly to the Reservoir, they are available and held for future use. See also: ■ Using the Reservoir on page 3745 Motion Mixer Interface | 3787 Interface The Reservoir comprises four parts: ■ The Reservoir toolbar on page 3789, where all the commands are located. You can choose between listing biped clips and non-biped clips. ■ The Source/Clipname list on page 3790, where motion clips (BIP and XAF files) are listed. Instances on page 8015 are grouped together in one listing, while adaptations on page 7900 are listed separately. 3788 | Chapter 15 Animation ■ The Clip Status field on page 3790, where you can gather information about the clips used in the Motion Mixer. ■ The Motion Preview on page 3791, where you can see what a motion looks like before you use it. NOTE The Motion Preview is available only when you choose the Biped Clips option. Reservoir toolbar The commands on the main Reservoir toolbar allow you to manage the clips you have in the Motion Mixer and also build up a collection of clips that you may want to use in the future. Max Clips/Biped Clips Choose to switch between a list of biped and non-biped motion assets. The Max Clips option displays XAF files while Biped Clips displays BIP files. New Entry Opens a dialog where you can choose BIP or XAF files to load into the Reservoir. You can highlight multiple files to load by holding down the Ctrl key while you click. Reload Files Reloads selected BIP or XAF files listed in the Reservoir. Load File Opens a dialog where you can choose a new BIP or XAF file to replace the selected entry. Save File Allows you to save a highlighted clip from the Reservoir. The Save As dialog is displayed and you can specify a name and location for the clip you are saving. Batch Save Opens the Save Reservoir Items dialog, where you can choose the clip or clips to save. Motion Mixer Interface | 3789 Delete Removes a highlighted clip from the Reservoir. All instances of the clip are also removed from the Motion Mixer. Clean Similar to Delete, but only removes clips from the Reservoir that are not used in the Motion Mixer. Auto Clip Names Names the clip based on the name of the motion file. Turn off to name a clip yourself. Source / Clipname list The Source / Clipname List displays all the clips you have in the Motion Mixer Reservoir. Four pieces of important information can be gathered from this list: ■ Drive location where the clips are stored. ■ Which clips are currently being used in a mix. ■ How many times each instance of a clip appears in the Mixer (Refs). ■ Which clips are simply being held in the reservoir, as opposed to being used in the Mixer. As you add clips to a track, from the Tracks menu on page 3755 or by right-clicking a track, they are automatically added to the Reservoir. If the clip is a new adaptation on page 7900, the name of the clip is assigned an incremental suffix, such as 1 or 2. The Refs (Reference) column tells you how many times a clip instance on page 8015 has been used in the Motion Mixer, or if it has not been used at all. If an instance shows a Refs value of 1 or more, it means the instance has been used that many times. If an instance shows a Refs value of zero, it means the clip was once used by one or more bipeds, but is not currently used on any tracks. If a clip has been added to the reservoir, but has never been placed in the Motion Mixer, only the source path will be listed and no Refs value is displayed. Clip Status field The Clip Status field appears at the lower left of the Reservoir and gives you information about how a particular clip has been used. You can get file information, such as the source location of the BIP or XAF file. Clip 3790 | Chapter 15 Animation information is also displayed, like the name of the clip reference as it appears in the Motion Mixer. Information about the biped structure is also listed along with the bipeds to which the clip has been adapted. Motion Preview The Motion Preview at the lower right side of the Reservoir shows a thumbnail of the selected clip. Moving the slider across the bottom gives you an idea of what the motion looks like before you add it to a track. NOTE In order for a clip to show in the Motion Preview, it must be a BIP file that has been saved for this version of 3ds Max. If you choose a BIP file that is from an older version of 3ds Max, you will see a warning that the file is obsolete and should be resaved. Until the BIP file is resaved, it will not display in the Motion Preview. NOTE The Motion Preview is available only when you choose the Biped Clips option. Mixer Preferences Dialog Select a biped. > Motion panel > Biped Apps rollout > Mixer > Preferences Graph Editors menu > Motion Mixer... > Preferences The Motion Mixer Preferences dialog lets you make changes to display settings for clips, transitions and frames. It is similar to the way you can Hide By Category on the Display panel. You can also specify mixdown options from this dialog. The settings on the Motion Mixer Preference dialog are saved in the biped.ini file, as well as with the MAX file. Motion Mixer Interface | 3791 Interface Show / Hide group These settings affect how clips appear in the Motion Mixer tracks. ■ Names When turned off, clip names do not appear on the colored clip bars in the Motion Mixer. Default=On. ■ Scales Displays the clip scale. Since clips can be resized by using tools like Move Clips, displaying the scales quickly lets you know if a clip is two times its original length or half its length. Default=Off. ■ Boundaries Turns on and off the frame numbers at the start and end of the colored clip bars. Default=On. ■ Weight Curves Toggles the display of the weighting line. It doesn't matter if the Weight button is active or not. Default=On. ■ Time Warps If a time warp has been added to a clip, this switch toggles the display of the warp on the colored clip bar. Default=On. 3792 | Chapter 15 Animation Show / Hide Transitions group The two settings affect how transitions appear in the Motion Mixer tracks. ■ Inpoints Toggles the beginning transition frame on the transition clip bar. Default=On. ■ Outpoints Displays the end transition frame on the transition clip bar. Default=Off. Show / Hide Other group These settings indicate if range bars and balance curves appear in the Motion Mixer tracks. ■ Trackgroup Rangebars Hides the gray range bar that appears along the top of each trackgroup. Default=On. ■ Balance Curves Displays the Balance Curves track. Default=On. Frame Display group These settings affect how clip boundaries and transition in/outpoints appear in the Motion Mixer. Global Displays clip start and end frames as frame numbers. Inpoints and outpoints of transitions display the frame at which transitions start and end. Default=On. Local Clip boundary values are displayed as actual lengths in frames. Along with the start and end frame number of the transition, additional values tell you by how much the transition overlaps each motion clip. Mixdown Options group These settings affect how transitions between biped object clips appear in the Motion Mixer tracks. ■ Prompt For Options At Each Mixdown When turned on, the Mixdown Options dialog is displayed when you choose Compute Mixdown from the Mix menu in the Motion Mixer. Default=On. ■ A Keyframe Per Frame When turned on, a keyframe is generated for each frame of animation when the mixdown is computed. Default=Off. Motion Mixer Interface | 3793 ■ Enforce IK Constraints When a transition occurs between two clips where the same foot or feet are planted with footsteps or planted keys, this option forces the foot/feet to stay planted during the transition. Default=On. ■ ■ Continuity Range Sets an additional transition time after the actual transition, giving the foot time to get from its planted position to its keyframed location in the next clip. Range=0 to 100; Default=6. Filter Hyper–Extended Legs Prevents a leg from straightening during a transition. This can occur when the COM moves in such a way that the foot can't reach its planted position unless the leg goes completely straight. This option corrects the problem by raising the biped's heel off the ground so the knee can bend. Default=On. ■ Max Knee Angle Sets the maximum angle that can be reached between the thigh and calf before the heel comes off the ground. An angle of 180 indicates a perfectly straight leg. A value of 160 or 170 indicates a slightly bent leg. Mixer Rollout Select a biped. > Motion panel > Biped rollout > Mixer Mode On this rollout, you can load and save MIX files (Motion Mixer files) on page 8045 . A saved MIX file can be loaded onto any biped in the scene, and motions in the mix will be automatically adapted to the biped's size. The Mixer rollout appears when Mixer Mode is turned on from the Biped rollout. Interface 3794 | Chapter 15 Animation Load File Loads a Motion Mixer file (.mix). These files include the following, which display in the Motion Mixer window when a MIX file is loaded: ■ Trackgroups Groups of tracks on page 8150 for selected parts of the biped. ■ Tracks Layer tracks on page 8021 and transition tracks on page 8158 where clips and transitions reside. ■ Clips ■ Transitions References to BIP animation files used in the mix. Connections between clips on transition tracks. NOTE Loading a MIX file does not automatically open the Motion Mixer. Click Mixer on the Biped Apps rollout to open the Motion Mixer and see the loaded mix. Save File Saves the currently selected biped's mix in the Motion Mixer to a MIX file. Animation Utilities 3ds Max provides a number of utilities, available from the Utilities panel on page 7671, to assist in animating scenes: ■ Follow/Bank Utility on page 3796 is an alternative to the Path constraint on page 3297. ■ MACUtilities Utility on page 3817 lets you convert an imported TRC motion on page 7259 into CSM format so you can map it onto a biped. ■ Camera Tracker Utility on page 3819 synchronizes a background by matching the movement of a 3ds Max camera to a real camera. ■ Camera Tracker Utility on page 3819 synchronizes a background by matching the movement of a 3ds Max camera to a real camera. ■ Dynamics Utility on page 3852 generates animation by simulating real-world physics. ■ Skin Utilities on page 3875 provide a method for copying skin data (envelopes and vertex weights) from one model to another. Animation Utilities | 3795 Follow/Bank Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Follow/Bank The Follow/Bank utility applies rotation keys to an object that already has a motion trajectory. The settings are similar to those found in the Path constraint. Use this when you have an object for which you've already assigned motion and want it to follow or bank along its trajectory, but don’t want to use a Path constraint. The utility aligns the object's X axis to the direction of motion. To change the orientation, change the pivot orientation in the Hierarchy > Pivot panel before using this utility. Although many of the settings are the same as in the Path constraint, this utility is not dynamic; you have to click the Apply Follow button each time you change an object's animation or the utility settings. When adjusting banking settings, move to the point at which the object is at the sharpest turn, then alternately click Apply Follow and adjust the banking settings to get the right affect at the extreme corner. TIP You can also use an Orientation Constraint to manually control the rotation of the object as it moves through space. While this is not automatic, it allows more fine control on individual frames than other methods. Procedures 1 On the Utilities panel, click the More button, and choose Follow/Bank from the list. 2 Adjust the options in the Follow/Bank Parameters rollout. 3 Select the objects you want to follow/bank. 4 Click the Apply Follow button. The objects orient themselves at the start frame, and follow or bank along their trajectories. 3796 | Chapter 15 Animation Interface Selected Object group Displays the name of the current selection. If more than one object is selected, "Multiple Selected" displays. Apply Follow button Apply Follow Applies the settings and generates rotation keys. Each time you click this button, rotation keys in the specified range of frames (set in the Samples group) are deleted and regenerated. Follow/Bank Utility | 3797 Follow Options group Contains the parameters that specify whether or not to use banking, and the banking settings. Bank Turn on to cause the objects to bank as well as follow the trajectory. Bank Amount Adjusts the amount of the banking to one side or the other, depending on whether the value is positive or negative. Smoothness Controls how rapidly the roll angle changes as an object moves through bends in the trajectory. Smaller values make an object more responsive to subtle changes in the curve while larger values minimize jerkiness. Allow Upside Down Avoids the situation where an object flips when going around a vertically oriented path. Samples group Specifies the range of frames over which rotation keys are generated, and the number of keys to be generated. Start Specifies the first frame rotation keys are generated. End Specifies the last frame rotation keys are generated. Samples Specifies the number of rotation keys to be generated in the specified range. Close button Close Exits the Follow/Bank utility. Motion Capture Utility Utilities panel > Utilities rollout > Motion Capture button The Motion Capture utility drives your animation using peripheral devices, such as MIDI keyboards, joysticks, and the mouse. While driving the animation, you can record it in real time. The motion capture system in 3ds Max is handled in the following way: 1 In Track View, assign motion capture animation controllers to the specific tracks you want controlled by external devices. 3798 | Chapter 15 Animation 2 After assigning the Motion Capture controller, open the Properties dialog for the track and bind the type of peripheral device(s). As an example, the Rotation Motion Capture controller has three rotational axes to which you can bind one device each. 3 After binding devices, adjust their settings and parameters in the lower portion of the Track Properties dialog. These controls vary depending on the type of device. 4 On the Utilities panel, open the Motion Capture utility. You can test and record your motion for any combination of tracks over any range of frames. The following motion-capture devices are included with 3ds Max: Mouse Input Device rollout on page 3809 Keyboard Input Device rollout on page 3810 Joystick Input Device rollout on page 3811 MIDI Device rollout on page 3814 Procedures To assign a Motion Capture controller to tracks: The first step in using motion capture is to assign motion-capture controllers to the tracks you want. 1 In the Track View hierarchy, highlight the Transform track you want. 2 Choose Controller > Assign. The Assign Controller dialog is displayed. 3 Choose Motion Capture (might start with “Position,” “Float,” “Scale,” or other), and then click OK. A Motion Capture dialog is displayed. Its title bar includes the name of the object and the track to which the controller is assigned. If a Data dialog opens instead, close it, right-click the track name, and choose Properties. Motion Capture Utility | 3799 When you assign a Motion Capture controller, the previously assigned controller is maintained as a child of the Motion Capture controller. This lets you continue to adjust the object using standard transform controls, while still making motion-capture control available. To bind and adjust devices: 1 After assigning a Motion Capture controller, determine the type of device that will drive the motion. Depending on the type of controller, you might be able to bind one or more devices. For example, a Rotation Motion Capture controller can 3800 | Chapter 15 Animation have three devices, one for each axis of rotation. On the other hand, a controller for the radius of a cylinder would have only one device to control the radius value. 2 Bind the devices in the Properties dialog for the track. To specify a device: 1 Click the Properties button while the Rotation track is selected. The Properties dialog for rotation motion capture includes three binding buttons (one for each axis.) 2 Click the Y Rotation button. In the resulting dialog, choose Mouse Input Device, and click OK. The lower half of the Properties dialog display controls specific to the new device. Assuming this is a segment that isn't attached to another object, you want the horizontal mouse movement. 3 Under Mouse Input, choose Horizontal. The Scale spinner lets you adjust the relative effect of the mouse movement to the rotation. Flip reverses the rotational direction with respect to the mouse movement. Example: To set up the Joystick controller to move a Free camera: You set up the Joystick controller to move a Free Camera around on the XY plane. The Y movement of the joystick will affect the camera's forward and backward movement, and the X movement of the joystick will rotate the camera. You'll use Increment Based On Direction to allow the Y movement to be local to the camera rather than to the world. 1 Create a Free camera in the Front viewport. 2 In Track View, assign a Rotation Motion Capture controller to the Rotation track of the camera. 3 Right-click in the Rotation track to display the Motion Capture properties dialog. 4 Click the button beside Z Rotation, and assign a Joystick Input Device. 5 Under Joystick Axis, choose the X option (if it's not already chosen). 6 Check Accumulate so that the rotation won't return to zero each time you release the joystick. Motion Capture Utility | 3801 Example: To set up the Position controllers of a camera for moving with a joystick: The rotation of the camera about its world Z axis will be controlled by the X motion of the joystick. You'll set up the Position controllers of the camera to move the camera forward and back with the Y motion of the joystick. 1 Assign a Position Motion Capture controller to the camera's Position track, and access its Properties dialog. 2 Assign a Joystick Input Device to both the X Position and Y Position buttons. 3 Click the Edit Binding X button, and then choose the Y option under Joystick Axis. 4 Check Accumulate. 5 Click the Edit Binding Y button, and also choose Y under Joystick Axis. 6 Check Accumulate. The Y motion of the joystick will now affect both the X and Y positions of the camera. Example continued: To add the increment based on direction options: If you tested the camera motion at this point, moving the joystick forward or backward along the Y would produce a diagonal motion because the Position tracks would receive equal amounts of X and Y values. Adding the Increment Based On Direction options will change this. 1 Click the X Edit Binding button. 2 Under Increment Based On Direction, click the button beside Controller. A dialog appears with a list of controllers. 3 Find and select the Rotation Motion Capture controller for the camera. 4 Set the Direction option to Z (the local axis along which the direction points). 5 Set the Component option to X (matching the Edit Binding button). 6 Click the Y Edit Binding button. 7 Click the button beside Controller, and assign the Rotation Motion Capture controller. 8 Set the Direction option to Z, then set the Component option to Y. 3802 | Chapter 15 Animation 9 Open the Motion Capture utility, turn on both tracks in the list, click the Test button, and move the camera while observing it in the Top viewport. As you move the joystick in the Y direction, the camera moves forward or backward. Moving the joystick in the X direction rotates the camera, but then, as you continue moving the joystick in the Y direction, the camera moves forward and back along its local axis. Motion Capture Utility | 3803 Interface 3804 | Chapter 15 Animation Record Controls group Tests and records your animation. The first three buttons let you control the recording directly, while the Start/Stop button lets you use a MIDI device to control the recording. Start Starts a recording using the values set under Record Range below the Track list. Stop Stops the recording before the Out frame is reached. You can also stop a recording by pressing Esc, or by pressing the right mouse button. Test Tests your motion. No recording takes place. Exit by clicking Test again, pressing Esc, or clicking the right mouse button. Play During Test When turned on, and you click Test, the animation in the scene plays in a loop while you test your motion. Note that tracks in the Motion Capture list that are selected (marked red) won’t play back because they're waiting for input from the assigned peripheral device. Start/Stop Displays the Start/Stop Trigger Setup dialog on page 3806. You can choose the type of MIDI device that will control the recording. Enable Uses the assigned MIDI device for recording instead of the Start, Stop, and Test buttons. TIP In the Time Configuration dialog, you can reduce the viewport playback speed, test or record at the lower speed, and then reset the speed to normal to view the results. Motion Capture Utility | 3805 Start/Stop Trigger Setup dialog Presets Choose the type of MIDI device. If you choose Media Control Station 2, you can use its buttons to Stop, Play, and Record. (The Media Control Station is a MIDI device containing standard VCR-style playback buttons along with a jog wheel.) By choosing Custom, you enable the remaining spinners in the dialog, where you can set specific channels and note numbers. You can also use Custom to customize the controls used by the Media Control Station. Channel Specifies the channel to which your MIDI device is assigned. Note Number The Stop, Play, and Record spinners that follow this label let you specify which note event triggers which function. ■ Stop This note event stops the playback or the recording. On the Media Control Station, this would be the square button. This is the equivalent of clicking the Stop button under the Record Controls group. ■ Play Plays the animation. This is the arrow button on the Media Control Station. ■ Record When this note is sent by itself, it's the equivalent of clicking the Test button under Record Controls. To record the motion capture, you must press both Play and Record at the same time (the equivalent of clicking the Start button under Record Controls). You can press the Play button before or after the Record button and release the Play button before or after the Record button. The recording starts when the button is released. 3806 | Chapter 15 Animation Tracks group The Tracks area displays all tracks that have been assigned Motion Capture controllers. You select the tracks that will be affected by the three buttons in the Record Controls group. Click a track to toggle its selection box on or off. Only the selected tracks displaying the red box are affected by the Record Controls group. You can select the tracks either by clicking them, or by using the All, Invert, None buttons. In addition, you can create named selection sets of tracks. To create a named selection, click the tracks you want, and then enter a name in the Edit field above the track list. To select a previously named set, open the Edit window, and select it from the list. To delete a named set, select it from the list, and then click the Delete button at the right. NOTE A specific track can be in only one named selection at a time. All Assigns all tracks to the Record Controls group. Invert When tracks are selected, assigns the unselected tracks to the Record Controls Area. None Assigns none of the tracks to the Record Controls group. By default, each track is provided a name consisting of the name of the object followed by a backslash and the name of the parameter. For example, Motion Capture Utility | 3807 Sphere01\Angle is an Angle parameter applied to one of the modifiers assigned to a sphere. You can rename the tracks in the Properties dialog, which you can access in Track View, or by double-clicking the track name in the Motion Capture utility. The upper rollout of each Properties dialog includes a Track Name field. Any name entered in the Track Name field appears in the Track list in the command panel, in the title bar of the Properties dialog, and beside the Data track in the Hierarchy list in Track View. Record Range group Specifies the frame range affected by the recording. You can also set a preroll range of frames (see below). Preroll Specifies the frame number where the animation begins playing when you press the Start button. If this number is the same or greater than the In number, the Preroll number is ignored. For example, if In: 0 and Out: 200, then a Preroll of -100 would give you 100 frames before the recording started, while a Preroll of 50 would be meaningless. If the range defined by Preroll and Out is larger than the current segment, the segment is temporarily enlarged during the recording. In Specifies the frame number where the recording begins after you click Start. Out Specifies the frame number where the recording ends after you click Start. You can stop the recording before this by clicking Stop. Live During Preroll When this is active, the motion capture is live through the preroll frames. The motion occurs, but isn't recorded. This can cause sudden motion shifts at the In frame because your live motion might not match the animation when you reach the In frame. When this option is inactive, the motion is disabled or frozen until you reach the In frame. 3808 | Chapter 15 Animation Samples group When the motion data is captured, it’s sampled at a rate relative to the current frame rate, which defaults to 30 frames per second. Increasing the frame rate increases the sample rate. The two radio buttons in this section allow you to choose one or two samples per frame. This is a shortcut that lets you sample at a field rate. If you're rendering to fields, you don't need to capture at 60 frames per second. Controllers will interpolate between the samples. Reduce Keys Reduces the keys generated by the motion capture. Threshold The value you enter in the Threshold field constrains how 3ds Max changes the selected track. The difference between the new animation and the original animation, at any frame, will be less than the threshold value. Low threshold values closely match the original animation but may not greatly reduce the number of keys. High threshold values produce the fewest keys but may not match the original animation with much accuracy. NOTE When Reduce Keys is active, there is additional calculation time after each completed recording. Mouse Input Device rollout Controls animation using the horizontal or vertical motion of the mouse. The available settings include the following: Horizontal/Vertical Specifies which mouse motion drives the animation. Motion Capture Utility | 3809 Scale Scales the relative effect of the mouse movement to the animation response (Spinner Value: float, 0 to 999,999) Flip Flips the direction of the response relative to the mouse movement. For example, if moving the mouse horizontally to the right produces a clockwise effect on a Rotation controller. Activating Flip will reverse the rotation to counterclockwise. Keyboard Input Device rollout Lets you assign most keyboard keys to drive the animation. Key Assignment group Click the Assign button, and then press any key. The assigned key appears in the list at right. Alternatively, you can open the list and select a key from it. Assign Click the Assign button, and then press any key. The assigned key appears in the lower list at right. Drop-Down List You can open the list and select a key from it. 3810 | Chapter 15 Animation Envelope Graph group Displays a representation of the amplitude curve over time. Envelope Parameters group Specifies the time over which the envelope of the action takes effect, relative to the key pressing and release. Attack Displays the time it takes after pressing the key for the value to reach its maximum level. Decay Displays the time it takes after having reached maximum for the value to fall to that specified by the Sustain spinner. Sustain After the Attack and Decay, the value specified here is sustained until you release the key. Release After releasing the key, this is the time it takes for the value to fade out to zero. Parameter Scaling Area Sets the scale of the envelope and the range of the output value. Time Specifies the scale of the Attack, Decay, and Release parameters. The value represents the number of seconds contained in 1 unit. For example, if this value is 1.0, then an Attack value of 1.0 equals 1 second. Range Sets the maximum output value of the controller. NOTE This controller ignores the state of the Ctrl, Alt, and Shift keys. TIP Because a single keyboard key can only generate either a positive or negative value, if you want to control both directions of a Bend Angle, for example, use a List controller. First, make sure there's a standard controller (such as a Bezier controller) assigned first in the list to maintain the center position. Then add two Keyboard Motion Capture controllers to the list (one assigned to one key, and the other assigned to a different key.) Set the range of one to the positive extent and the range of the other to the negative extent. Joystick Input Device rollout The Joystick Input Device driver was designed for the Microsoft Sidewinder joystick, which contains more controls than the standard joystick. You can use this device driver for standard joysticks as well. Motion Capture Utility | 3811 Joystick Axis group X, Y, Z Specifies which joystick direction drives the animation. (Standard joysticks provide X and Y axes only. The Sidewinder provides the Z axis when you twist the joystick.) Throttle On the Sidewinder, this is a slider next to the stick. Scale Scales the relative effect of the joystick action to the animation response (Spinner Value: float, 0 to 999,999) Flip Flips the direction of the response. Accumulate When turned off, the joystick position represents an absolute position, and you're limited to the "rectangle" defined by the limits of the 3812 | Chapter 15 Animation joystick. When the joystick returns to its rest position, the value generated returns to zero. When this is turned on, the joystick represents a change in the current position. Moving the joystick forward, for example, can cause an object to start moving, and it will continue to move until you return the joystick to its rest position. Joystick Buttons group Point-of-View Hat (Left-Right, Up-Down) The Sidewinder includes a mini-joystick on the tip of the main joystick. Specify the direction this joystick controls in the animation. 1, 2, 3, 4 Specifies one of four buttons in the Sidewinder joystick. They work similarly to the Point-of-View Hat, except that each button increases a direction value only while pressed. When you release the button, the value returns to zero (centered). Inc./Dec. One of three options available only when you choose one of the numbered joystick button options. This option (Increment/Decrement) means that the value is incremented when the button is down, and decremented when the button is up. Inc. When turned on, the value increments when the button is down, and stays at that value when you release the button. Absolute When turned on, the assigned parameters jumps to the value set in the Speed spinner when the button is down, and then jumps back to zero when you release the button. Use this for on/off animations, such as blinking lights. Speed Controls the rate at which the value changes when using either the Point-of-View Hat or the four buttons. When using a button option and the Absolute option, this specifies the value output when you press the button (Spinner Value: float, -999,999 to 999,999). Increment Based On Direction group Provides controls that let you derive the direction of movement from a Rotation controller. These options are used primarily when you're animating a first-person flythrough (such as when controlling a camera). NOTE The items in this area are only available when you select Accumulate in Joystick Axis. Controller Assigns a Rotation controller from which the direction will be derived. Motion Capture Utility | 3813 Clear Removes the assigned controller. Direction X/Y/Z Specifies the local axis that will be used as the direction. For a Free Camera, for example, this would be Z because the camera points in the Z direction. However, if you had a car that pointed along its Y axis, you'd use Y. Component X/Y/Z Specifies the edit binding to use. Match this to the Edit Binding button under Device Bindings. For example, if the Y Edit Binding button is selected, choose the Y Component option. MIDI Device rollout Controls animation using a MIDI device. 3814 | Chapter 15 Animation MIDI Channel group Contains 16 buttons. Click to specify the channel to which your MIDI device is assigned. MIDI Trigger group Defines the type of MIDI event (message) that will drive the motion. There are four options. NOTE When you choose this option, the note number or pitch defines the output value. The value is derived from where the note falls within the Note Range, specified in the Note Range group. When the note is at the bottom of the range, the value takes on the Min value specified under Parameter Scaling. When the note is at the top of the range, the value takes on the Max value from the same area. Anything in between is interpolated between the Min and Max values. (Note that Min doesn't have to be less than Max.) The generated value will slide around as different keys are pressed. The harder a key is pressed, the faster the value changes. The Speed setting defines how fast, overall, the value changes as keys are pressed. Velocity When you choose this option, the velocity of the note pressed determines the output value. The notes set under Note Range merely specify which notes are valid to press. The value takes on the Min value until a key within the Note Range is pressed. When the key is pressed, the value approaches the Max value based on how hard the key was pressed. (The value actually travels along a parabola toward the Max value.) The Sustain setting defines how long it takes the value to move through the parabola. When you choose Variable, the sustain length is also scaled by how hard the key was pressed. Pitch Bend The MIDI instrument's pitch bend knob defines the value. The Note Range doesn't apply in this case and is disabled. MIDI Controller Specifies a note event when you're hooked up to a different type of MIDI controller than the typical keyboard. For example, if you're using a MIDI slider box, you would select the MIDI Controller option, and then use the # spinner to specify the note event for the specify slider. Note Range group Low Note/High Note Set these to specify the low and high ends of the note range when the Note option under MIDI Trigger is turned on. Motion Capture Utility | 3815 Parameter Scaling group Contains the Min and Max spinners, which specify the range of generated values. See Note and Velocity. MIDI Channel Viewer Clicking MIDI Channel Viewer at the bottom of the MIDI Device rollout displays a dialog that lets you test your MIDI device to see which MIDI channel is receiving events, and which notes are being triggered. MIDI Channel group Provides a column of 16 buttons and progress bars representing the 16 MIDI channels. Select the channel from which you want to view note activity. The channel progress bars light up when any channel has an event. MIDI Note group The 11 Octave buttons let you select which octave you want to view. When a note is played in that octave, a corresponding progress bar lights up in the Note column. MIDI Controller # When using a different type of MIDI controller, such as a slider box, you can specify a note event, and then watch the corresponding progress bar light up when you activate that event. You can find the correct note number by activating the event while watching the Note Number field at the bottom of the dialog. Channel This is one of four text fields that display all of the values being generated by the MIDI device as you activate an event. The Channel field displays the currently selected channel. Event Displays the type of MIDI event being sent. This can be: Note On: 9 Note Off: 8 Pitch Bend: 14 MIDI Controller: 11 Velocity Displays the velocity, which has a different meaning, depending on the event. For the most common event, a note being pressed, this value represents the velocity at which the key was struck. Other events, however, might generate a continuous value. For example, a pitch bend event transmits the position of the pitch bend. 3816 | Chapter 15 Animation Note Number Displays the corresponding note number for the event. When you're using a non-keyboard MIDI device, such as a slider box, you can use this to identify the note number of a specific slider, for example. MACUtilities Utility Utilities panel > More button > MACUtilities You can use the Motion Analysis Corporation utility to convert motion data originally recorded in TRC format into CSM. This allows you to easily map the motion onto a biped. A MNM (Marker Name) file is needed to determine how to convert the marker names from the incoming data into the CSM naming convention. You can either load an existing MNM file or create a new one using the MNM Creator/Marker Selection dialog. Procedures To convert a TRC file into CSM: 1 Click the Browse... button next to Create. 2 Highlight a MNM file in the Select Mapping File... dialog. Click Open to confirm your selection. The MNM file serves as a naming convention reference for the TRC conversion. 3 Click the Browse... button over Convert TRC To CSM. 4 Highlight a folder in the Choose CSM Files Destination Folder... dialog. Click Use Path to confirm your selection. After the conversion, the resulting CSM file is saved in this folder. 5 Turn on Use MNM Filter File. 6 Turn off Use TRC Filename. 7 Click Convert TRC to CSM. A Select Source TRC Files... dialog opens. 8 Highlight a TRC file and click Open to confirm your selection. A Selected Target CSM File... dialog opens. MACUtilities Utility | 3817 9 Either highlight an existing CSM file to overwrite or enter a new filename. Click OK to confirm your selection. Your file is converted into CSM format. You can now load it onto a biped. Interface MNM Mapping File Displays the path and name of the chosen MNM file. Create Launches the MNM Creator/Marker Selection dialog, which creates a MNM file to use in the conversion process. Browse... Lets you pick a custom mapping file to use in the conversion process. CSM Output Folder Displays the folder path where the CSM file is generated. Browse... Lets you pick a folder in which 3ds Max saves the generated CSM file. Convert TRC To CSM Lets you first pick the TRC file to convert. The resulting CSM file is named after the original TRC file. 3818 | Chapter 15 Animation NOTE If Use TRC Filename is turned off, a second dialog opens so you can pick an existing CSM file to overwrite or create a new one. Options group Use MNM Filter File When on, the MNM file is used in the conversion process. Default=on. NOTE Turn off if the TRC marker names already follow the CSM standard naming convention. Batch File Conversion Enables you to pick multiple TRC files to convert. TIP Use this option to save time when you need to convert multiple TRC files. Use TRC Filename When off, you can customize the resulting CSM filename. When on, the CSM file is named after the TRC file. Available only when Batch File Conversion is off. Default=on. Translation Offset group Enable Turn on to add an offset to the resulting data's position. TRC Space/3ds max Space Choose between an offset space relative to the TRC data's root or to your scene. XYZ Sets the offset value for each position axis. Camera Tracker Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker The Camera Tracker utility animates the movement of a camera inside 3ds Max to match the movement of a real camera that was used to shoot a background movie. For detailed Reference information about each Camera Tracker Utility rollout see: Camera Tracker: Movie Rollout on page 3825 Camera Tracker: Movie Window on page 3827 Camera Tracker: Motion Trackers Rollout on page 3830 Camera Tracker Utility | 3819 Camera Tracker: Movie Stepper Rollout on page 3835 Camera Tracker: Batch Track Rollout on page 3838 Camera Tracker: Error Thresholds Rollout on page 3837 Camera Tracker: Position Data Rollout on page 3841 Camera Tracker: Match Move Rollout on page 3842 Camera Tracker: Move Smoothing Rollout on page 3845 Camera Tracker: Object Pinning Rollout on page 3847 For additional information on using the Camera Tracker Utility see: Requirements for Camera Tracking on page 3825 Camera Tracker: Troubleshooting on page 3851 Procedures To generate a camera match-move: 1 Open the working scene in 3ds Max. The scene should have a Free camera to be match-moved, as the tracker does not create one. The scene also should have a set of Point or CamPoint helper objects positioned in 3D to correspond to the tracking features. Optionally install the movie as an environment map-based background image in the match camera viewport. This is needed if you want to render a composite using the match-move or checking match accuracy. This doesn’t automatically display the background image in the viewport. Use Views > Background Image to select the background movie and display it in the viewport. 3820 | Chapter 15 Animation Real-world camera films a scene (the white dots will be tracking points). 2 Open the movie file in the Camera Tracker utility and create a set of feature tracking gizmos for each of the tracking features in the scene. Camera Tracker Utility | 3821 Resulting footage to be tracked and used as a background. 3 Position the Feature Selection box and Motion Search box for each gizmo so that they’re centered on the features and have motion search bounds large enough to accommodate the biggest frame-to-frame move of the features throughout the frames that will be tracked. 4 Associate each tracker with its corresponding scene point object. 3822 | Chapter 15 Animation The associated scene point objects are set up in 3D space based on real-world dimensions. 5 (Optional) Use the Movie Stepper rollout to set the start and stop frames for each tracker if it’s out-of-view for any of the frames that will be matched. These specify the frame range during which the tracker is visible in the scene and will be tracked as part of the matching process. This mechanism allows you to match a move in which the view passes through a field of features with only some of them (at least six) visible at any time. 6 (Optional) Set up manual keyframes for each tracker at frames in which the feature radically changes motion or shape or is briefly occluded and so might be difficult for the computer to track. If you want, you can do this after a tracking attempt indicates where tracking errors occurred. 7 Perform the feature track using the Batch Track rollout. This is often an iterative process: correcting for tracking errors by tuning start and stop frames or manually repositioning the gizmo and motion search boxes at error frames. When you reposition a gizmo at some frame, you establish a new target feature image and subsequent frames up to the next keyframe will be retracked. You can use the error detecting features in the tracker to step through possible tracking errors. When complete, this process Camera Tracker Utility | 3823 builds a table of 2D motion positions for each feature. You can save this to disk using the Save button on the Movie rollout. 8 Choose the camera that will be matched in the Match-Move rollout, select which camera parameters you want to estimate, set the movie and scene animation frame ranges and perform the match. This generates a keyframed animation of the selected camera parameters. After camera tracking, scene geometry (the character) matches the filmed background. 9 Check the match for obvious errors and review the tracker gizmo positions at these frames. You can manually adjust gizmos at these frames and the matcher interactively recomputes the camera position. 10 (Optional) Apply smoothing to selected camera parameters and recompute a compensating match for the other parameters. The Camera Tracker also has the ability to animate 3ds Max geometry to follow or match the video by following the movement of a tracker in a 2D plane. For this type of animation scene measurements aren’t required. Use the Object Pinning rollout of the Camera Tracker to create this type of tracking. 3824 | Chapter 15 Animation Requirements for Camera Tracking To use the camera tracker, you need the following: ■ Movie footage in one of the file formats that 3ds Max supports, such as AVI or MOV. If you have sequential still images, you can use an IFL (Image File List). The file selector can automatically generate an IFL file by selecting the file name and turning on the sequence button. Or use the IFL Manager Utility on page 7344 to create an IFL file. ■ A set of trackable features in the movie, such as wall markers, balls, corner points and so on, for which position measurements are known. The tracker will track most small features with good contrast to their surroundings, have a well-defined position in space, and are unique within their frame-to-frame areas of movement. There must be six or more tracking features in the scene at any one time, at least two of which must be non-coplanar with the others, for example four on the ground and two elevated or three on one wall and three on another. For maximum match accuracy, you should use as many features as you can and select the features that are distributed as widely as possible over the scene. The features don’t have to be in any particular planes. ■ A 3ds Max scene file in which a set of point objects have been created and positioned in 3D corresponding to all the tracking features in the scene. The objects should be point or CamPoint helper objects. The tracker will match-move a selected Free camera in the scene, so you need to have at least one Free camera. You can place and orient it anywhere in the scene. Camera Tracker: Movie Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Movie rollout Opens the movie for tracking. Also provides controls for the display of the movie, including fade display to improve the visibility of the trackers. Provides controls for loading and saving MOT files in which tracker information is stored. Camera Tracker Utility | 3825 Interface Movie file Selects and opens the movie that will be tracked. You can open any image file format that 3ds Max supports. If you use sequential still-image files, you will use an .ifl (image file list) file. You can create the .ifl file using the IFL Manager or using any bitmap selector dialog by choosing Sequence. When you open the movie file, it’s displayed in a Movie window. Display Movie Reopens a closed or minimized Movie window. You use the Movie window to setup and adjust feature tracking gizmos and to browse through the movie. For more details on working with the Movie window, see Motion Tracker rollout on page 3830. Show frame Allows you to step through the movie displayed in the Movie window. Alternatively, use the Movie Stepper rollout, which provides additional browsing controls. Deinterlace Causes the tracker to apply a video deinterlacing filter to the movie frames. If the movie comes from a video source and the features you’re tracking show marked interlacing, you should deinterlace the video to improve tracking accuracy. If the movie was digitized from film, you should not perform deinterlacing because the results will be less accurate. The deinterlacing is performed temporarily on loaded frames and doesn’t affect the original movie file. Off Disables deinterlacing. When no filtering is required click this. 3826 | Chapter 15 Animation Odd Interpolates using the odd lines. Even Interpolates using the even lines. Fade Display Fades the movie in a Movie window by 50 percent. Use this to see the tracker gizmos more clearly. Auto Load/ Save Saves the state of a tracking setup and any position data you’ve produced to a special file associated with each movie. Selecting Auto Load/Save Settings causes the tracker to keep this settings file up-to-date automatically as you work in the tracker. You can force a save at any time by clicking the Save button. Whenever you open a movie file in the Camera Tracker with Auto Load/Save on, the tracker reloads the state of the tracking session from this settings file. With Auto Load/Save Settings on, the tracker constructs the setting file automatically and places it in the same folder as the movie, named with the same prefix as the movie but with file type MOT. If you move the movie file to a new folder, move the MOT file with it so the tracker can find it. You can delete this file if you want to clear the settings or if the file becomes corrupted for any reason. When AutoLoad/Save is turned off, you can open a different movie file either with an empty tracker state or into the existing tracker state or save the current tracker state into a new file. The name of the current tracker file is displayed at the bottom of the Movie rollout. Save Saves the state of the tracking setup, and any position data produced to the current MOT file. Save As Saves the current setup into a new MOT file. This file becomes the destination for subsequent Save operations. Load Load the tracker setup and position data from another file. Camera Tracker: Movie Window The tracker gizmo displayed in the Movie window consists of two enclosed boxes, a central pair of cross hairs, and a tracker number. The inner box surrounds the feature that will be tracked and is called the feature bounds box. The outer box defines the frame-to-frame search and is called the motion search bounds box. You should place the central cross-hair over the feature as close as possible to the point corresponding to the placement of its scene point object. It’s this center coordinate that’s used in the camera match-move correlation between image feature and scene Point coordinates. Camera Tracker Utility | 3827 You should make the feature bounds box large enough to enclose the feature and some of the surrounding images enough to give the feature a contrasting background of several pixels. The motion search bounds defines the are in which the feature will be searched for from frame-to-frame. This bounds box moves with the feature box, so the area is relative to the current feature at each frame. It’s important to estimate this search area well. If it’s too large, the matching process will be unnecessarily slow and there’s more chance of other features in the search area making the search ambiguous; if it’s too small, tracking errors will occur. It might be useful to review the movie that will tracked on a real-time playback device like a video deck and estimate feature moves beforehand. If you set the Max Move/Frame spinner to the maximum move before creating the tracker, its motion search bounds box will be set to accommodate this move for you. You can also adjust this box at any time in the Movie window. NOTE It’s possible to change the search bounds box for different frame ranges in the movie, so you can optimize your search capabilities. See Keyframes and Position Data on page 3841. Working with the Movie Window Displays the current frame of the movie being tracked and any active tracker gizmos for that frame. You can open and close the window using the Display Movie check box in the Movie rollout or minimize it using the standard window title bar controls. When you first open a movie, 3ds Max sizes the window so it will fit on the screen and this might result in an automatic zoom out if the image is too big. You can resize the window by dragging its sides or corners. You can zoom around in and out of the window using the tracker gizmo controls. 3828 | Chapter 15 Animation Working with the Tracker Gizmos There are several ways to work with gizmos in the Movie window. ■ Selecting: You need to select a gizmo to work on it. You do this by clicking anywhere inside its bounds in the Movie window or by clicking its entry in the tracker list box in the Motion trackers rollout. The selected gizmo displays positioning handles at the corners of both its bounds boxes. You can also select a gizmo by typing its number on the keyboard. A selected gizmo has click-selection priority in the Movie window. If several gizmos overlap, they make it hard to select and adjust the gizmo you want. You can select it first in the Motion Trackers rollout list; it remains selected for adjustment when you click it in the Movie window. ■ Zooming: You can zoom in and out on the selected gizmo by pressing the I and O keys, for “in” and “out,” respectively. Each time you press I or O, the window zooms in or out by a factor of 2 and centers the selected gizmo in the window. Pressing R resets the zoom factor to 100 percent whether you have a gizmo selected or not. The Movie window has to be the active window for any keyboard commands to work. You can make it active by clicking it. ■ Tabbing: You can move among successively numbered gizmos by pressing the Tab key. If the gizmo you’re searching for is out of view, because you’re zoomed in, the image will be repositioned in the window to bring the newly selected gizmo into view. Tabbing while you’re zoomed in provides a quick way to step through the gizmos to check their fine positioning. ■ Positioning: You can reposition a gizmo by dragging anywhere within its bounding boxes, providing you don't click one of the eight box-corner handles. You can nudge a gizmo in single increments by pressing one of the arrow keys on the keyboard. The minimum increment that a gizmo will move depends on the zoom factor and the subpixel-tracking level. The increment is the smaller of either a single screen pixel in the current window or the subpixel increment selected. So, if you’re zoomed out two times and the subpixel increment is 1/16 of a pixel, the nudge increment is four image pixels, due to the zoom. However, if you’re zoomed in five times, the nudge increment is 1/16 of an image pixel, due to the subpixel level. ■ Bounds: You adjust the bounding boxes by pressing and dragging the handles of the box you want to adjust in the selected gizmo. Dragging the handles of the inner feature bounds box adjusts the opposite corner symmetrically to keep the gizmo center fixed. Camera Tracker Utility | 3829 Typically when setting up tracker gizmos you should create and position them all roughly in a zoomed-out view, then zoom in on one of them, fine-tune its position and bounds, then tab to the next gizmo and repeat. Movie Window Keyboard Shortcuts You can use the following keyboard shortcuts in the Movie window: ■ I, i: Zooms in on a selected gizmo. ■ O,o: Zooms out on a selected gizmo. ■ R, r: Resets zoom level to 100 percent. ■ Tab: Selects next numbered gizmo, cycles back to first gizmo after the last. ■ [digit]: Selects the numbered gizmo, only works for gizmos 1 to 10 (0=10). ■ Arrow Keys: Nudges the gizmo in the direction of the arrow. Camera Tracker: Motion Trackers Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Motion Trackers rollout The Camera Tracker utility's Motion Trackers rollout sets up and controls the image feature trackers. All the trackers created are listed here: showing enable check mark, tracker number, associated scene point object name, and active frame range. To select a tracker, click in the list. Provides controls for subpixel tracking as well. 3830 | Chapter 15 Animation Interface On When turned on, the feature will be tracked in the image when the movie is stepped through in the Movie Stepper, or when a full track is performed. An X appears in the tracker list when turned on. Off When turned off, the tracker will sit at the closest known position prior to the current frame. Because feature tracking is computationally intensive, sometimes it’s useful to disable the trackers you’re not working on to speed up movie stepping. All Enables all the trackers. None Disables all the trackers. New Tracker Creates a new movie feature tracker. This places a feature tracker gizmo in the center of the Movie window and a new entry in the tracker list. The new tracker takes on the parameters currently displayed under Tracker Setup. You can change these parameters after you create the tracker, but it’s often useful to set the Max Move Per Frame parameter prior to creating the new tracker as this automatically establishes an initial search bound for the tracker gizmo. Delete Tracker Deletes the selected tracker from the list and the Movie window. Tracker Setup group Sets up the parameters for the currently selected tracker. Any tracker you create will take its initial parameters from the current values in this group. Camera Tracker Utility | 3831 Scene object Associates a tracker with a scene point object that corresponds to the image feature in the Movie window. Pressing this button puts 3ds Max into standard object picking mode. When you’ve selected the object, the entry in the tracker list and the text in the button change to the name of the selected object. You can change the connected object at any time by pressing this button. It’s recommended that you use point or CamPoint helper objects, although you can use any 3ds Max object. The tracker uses the pivot point of the selected object as the correlation reference point during the match computation. When you set up a tracking project, you can make the tracker save the setup in a .mot settings file. The association between tracker and scene point object that you set up here is saved as a scene object name. If you reload the movie in the tracker, the object association is reestablished using the object's name. This means you must be careful to name the point objects uniquely, otherwise you might establish incorrect associations. Further, you must load the working scene in 3ds Max before opening the movie in the camera tracker utility, so the named objects can be found. If you happen to open the movie first, the object names in the Tracker list will all read " ". Simply reopen the movie in the tracker and it will establish the connections correctly. Match weight Sets the camera matching priority separately for each tracker. Use this to improve the match accuracy for features close to where a computer graphics generated element will be inserted. It helps to minimize sliding and jitter in that part of the scene. The match-move algorithm works by adjusting the camera to minimize the error between the feature objects seen through the camera and their associated feature points in the movie plate. With all weights set to 1, the algorithm randomly distributes the error between all the object projections and their tracking features. If you bump the Match Weight of a tracker, it redistributes 3832 | Chapter 15 Animation the error in favor of that tracker, reducing the distance between that tracker's feature and object projection, while possibly increasing the error in other trackers. If you bump weights on two or more features, the locking may progressively lessen, since the algorithm distributes the improvements between the high-weight trackers. Use weights of two to six to get a good lock. Max Move/Frame Sets the maximum number of pixels that the tracked feature moves from frame-to-frame over the entire tracking range and establishes an initial motion search bounds box for newly created trackers. You can also set this dynamically by adjusting the motion search bounds box directly in the Movie window. Resample on error You can make the tracker identify possible tracking errors and you can use this during a manual tracking review and during actual tracking to correct errors. Typical sources of error include frame-to-frame jumps greater than the search bounds, image contrast changes, or a feature changing shape over a sequence of frames, such as a corner might if the camera moves by it. The error detector is controlled by measurement thresholds set in the Error Thresholds rollout. When you place a gizmo on some frame, a keyframe is created and a new target feature image is sampled at that frame for searching in subsequent frames. Turning on Resample On Error causes the tracker to detect errors during tracking. If one is found, it backs up to the last good frame and places a new keyframe there causing a new target feature image to be sampled at that frame and continues tracking from that frame. Subpixel Tracking Usually, an image feature won’t move an integral number of pixels from frame-to-frame. With pixel-level tracking, however, the nearest estimate for a feature center is always at a pixel boundary. This can lead to camera match errors. With subpixel tracking you can zoom in on a feature and position its gizmo within a pixel. This makes the tracker attempt to track at that resolution by up-sampling the target image and search bounds, thereby improving match accuracy. You can turn on subpixel tracking selectively for each tracker by choosing a level in the Subpixel Tracking drop-down menu on the Motion Trackers rollout. This defines the resolution at which feature tracking is performed in the tracker up to 1/32 of a pixel. Two things happen when you select a subpixel level: ■ The grid over which you can position a tracker gizmo in the image window is adjusted to the new subpixel level. You can position the gizmo can be positioned inside pixels in zoomed views. You can zoom in on a tracker gizmo by selecting it and pressing the I or O key to zoom in or out, respectively. Camera Tracker Utility | 3833 ■ Feature searching is performed on internally scaled-up versions of the target image feature and portions of the search window. These versions are scaled up in inverse proportion to the subpixel level using bicubic interpolation, which allows the feature tracker to search at this scaled pixel level. When manually positioning gizmos at keyframes, it’s crucial that you zoom in enough so you can place the gizmo in the center of the feature to the degree of accuracy allowed by the selected subpixel level. If you don’t do this, the tracker won’t be able to track the correct center at the selected resolution. TIP Even though the feature is first tracked to the nearest pixel at whole pixel increments and then tracked at the subpixel level within that one pixel range, the tracking time can increase significantly in proportion to the inverse square of the subpixel level. For this reason it’s suggested that you set the subpixel level to as low as possible. Usually 1/8 of a pixel is adequate for features well distributed around the scene. Use greater levels if the features are fairly close together, or move very slowly within the frame. You can also reduce feature tracking times by making the inner feature bounds box in the gizmo as tight as you can while still retaining a couple of pixels worth of surrounding contrast. Search times are proportional to the feature bounds box size. Track Range Use these when a feature moves off-screen or is not visible in the Movie window. Set Start Sets the start of the active frame range for a tracker. Set Stop Sets the end of the active frame range for a tracker. You use the Set Start and Set Stop buttons in the Setup box together with the Movie Stepper rollout to set the active range. Pressing the buttons will set the start or stop point at the frame currently shown in the Movie Stepper. Tracker Keyframes and Position Data Any time you manually position a tracker gizmo, such as at the first frame or at some tracking error, you create a special keyframe position. The tracker never attempts to reposition these keyframes, but uses them as start points for the frames that follow them up to the next keyframe. At keyframes, you can adjust the position and the feature or search bounds. 3834 | Chapter 15 Animation During tracking, the selected feature at a keyframe is sampled and that feature becomes the search target for subsequent frames. Using any adjusted search bounds up until the next keyframe, provides the start point, target feature, and search bounds box for the frames that follow. The position data for each frame in each gizmo can be one of three possibilities: ■ A keyframe defining a new start position, target feature image, and search bounds box. ■ A tracked position. ■ Unknown. All frame positions except the first are initially unknown and will be named as tracking proceeds or gizmos are positioned. When you manually set a keyframe, any previously tracked positions following that keyframe up until the next keyframe are deleted and so become unknown. The Complete Tracking button in the Batch Track rollout searches for unknown positions in the currently enabled trackers and tracks those frames. The Check Status button in the same rollout checks for any currently unknown positions as well as tracking errors. See Batch Track Rollout on page 3838. Camera Tracker: Movie Stepper Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Movie Stepper rollout The Camera Tracker utility's Movie Stepper rollout browses through the movie during the tracking phase either to set start and stop frames, to review tracking results or to manually perform a track over a sequence of frames. The Movie Stepper rollout consists of a frame counter, a set of stepper buttons, and some option check boxes. Camera Tracker Utility | 3835 Interface Movie Frame Counter Advances the Movie window to the designated frame. VCR controls Navigates through the movie in the Movie window: << Steps to the start frame of the selected tracker. <10 Steps back 10 frames. < Steps back one frame or keyframe if Step Keyframes is turned on. > Steps forward one frame or keyframe if Step Keyframes is turned on. >10 Steps forward 10 frames, either directly or one frame at a time if the Master Track Enable check box is turned on. >> Steps forward to the end frame of the selected tracker, either directly or one frame at a time if the Master Track Enable check box is turned on. Feature Tracking If turned on, any forward steps will cause frame-by-frame feature tracking to be performed for all enabled trackers with unknown position data at the frames you previously stepped through. You can use this to perform a tracking check while testing bounds settings or to review tracked positions one frame at a time. The tracker also moves the gizmos to previously tracked positions, so you can review tracking results a few frames at a time. If you want, you can force a retrack by nudging a keyframe gizmo back-and-forth which causes the gizmos to drop all subsequent tracked positions up to the next keyframe. 3836 | Chapter 15 Animation NOTE Make sure this button is turned off if you just want to step through the movie without tracking, such as when browsing through the movie to find and place Start and Stop frames for trackers that come on screen or go off screen during the tracking range. Clear Tracking to End Removes all tracked positions and keyframes from the current stepper frame onward for the currently selected tracker. This is often helpful if you have too many errors and error correcting keyframes at the end of a track and you want to clear them and track to the end again. Step Keyframes Modifies the operations of the single-step buttons in the Movie Stepper. If turned on, the single step buttons step immediately to the next or previous keyframes, allowing you to browse through them quickly. In this mode, feature tracking is disabled. Show Track Displays a visible tracking line in the Movie window for the currently selected tracker. This button shows where the tracker has currently tracked. A red line is displayed for tracked segments, a white dashed line for segments still to be tracked. White dots are centered on each frame position with a green box around each frame position at which you or the tracker create keyframes. Live Camera Match Enabled after you set up the match parameters and select a match camera in the Match rollout. If turned on, the match camera position is recomputed and adjusted as you move gizmos in the Movie window. This can be useful for making corrections to bad match frames by adjusting the trackers or to check the effect of tracker placement on the match computations. This is best done with the nudge arrows. Turn on the 3ds Max Auto Key button to record adjusted match camera positions. Sync Animation Controls whether the scene time slider is advanced in step with the movie frames during stepping. This is sometimes useful if you have the movie set up as an animated background image in the match camera window. Check camera positioning at the same time you check feature positioning. This can slow stepping substantially, so it’s turned off by default. Camera Tracker: Error Thresholds Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Error Thresholds rollout The Camera Tracker utility's Error Thresholds rollout attempts to identify feature tracking errors by taking measurements and comparing them to the thresholds that you set up in this rollout. You can use this detection can be Camera Tracker Utility | 3837 used both during a manual tracking review (see Batch Track Rollout on page 3838) or during actual tracking to correct errors using the Resample On Error control in the Motion Trackers setup rollout on page 3830. Interface Match Error A sum-of-differences-squared measure in RGB space of the best match in the current frame to the feature target from the previous keyframe. The error shown is a percentage of the maximum possible image difference. Good matches are usually below 0.05 percent. Variance Delta The difference in RGB color variance between the feature target image and the current best match. This measures whether the target and match have similar color ranges and can compensate for mistakes made by the sum-of-differences measure. Jump Delta The tracker computes a moving average for the preceding five frames and measures the difference between that average and the jump in the current frame. If this difference exceeds the current Jump delta threshold, a potential error is flagged. If the threshold is set to five, any jump in the current frame that’s five pixels more than the average jump in the last five frames is flagged. This picks up sudden accelerations rather than just large jumps. You can adjust the thresholds as needed and enable or disabled individual measures in the detector using the check boxes to the left of each measure. Camera Tracker: Batch Track Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Batch Track rollout The Camera Tracker utility's Batch Track rollout performs feature hands-off tracking once the trackers have been set up. You can set up a set of trackers, start a batch tracking of them all, and then use the other tools in this panel to check for and review detected tracking errors. This panel also checks for tracking completion. 3838 | Chapter 15 Animation Procedures To review and correct tracking errors: 1 Select an error in the list. 2 Browse through the errors in sequence by repeatedly clicking Next, under the list. 3 When you’ve selected an error, the associated tracker gizmo is selected and brought into view and the movie is set to the frame at which the potential error was detected. 4 If there is indeed an error, adjust the gizmo in the Movie window to correct it, and place a new keyframe. 5 If inspection shows that there isn't an error, the thresholds may be set too finely, so try adjusting the associated threshold and running Check Status again. This is often a good way to calibrate the thresholds for your scene, but be careful not to increase them too much and miss a real error. 6 To clear an entry out of the list, click the Clear button. This is basically a cosmetic action that removes items from the list that you've either fixed or determined are not errors while working through the potential errors. If you perform a Check Status again, some of the errors may show up as well. Camera Tracker Utility | 3839 Interface Complete Tracking Searches for unknown positions in enabled trackers and undertakes tracking for those frames. It performs this optimally, and only tracks the frames for which enabled trackers have no position data. Tracking Status group Check Status Scans for tracking errors and untracked frames. It displays two lines of information underneath it in the Status box: Incomplete Lists the tracker numbers with untracked frames in their active frame ranges. Errors Lists the tracker numbers containing one or more tracking errors as determined by the current error threshold settings. Tracking Error Review group Displays all the potential errors in a list. For each error the list shows a tracker number, error frame and details about the error. The details include a code identifying the thresholds and the error measure. Error Codes Me Match error threshold exceeded. 3840 | Chapter 15 Animation Vd Color variance delta threshold exceeded. Jd Jump delta threshold exceeded. In each case, the number following the code is the actual error measure. You can see how the error measure compares to the current thresholds in the Error Thresholds rollout. If you adjust the thresholds in this rollout and then rerun the Check Status again, the list is refilled with those points in the tracking that exceed the newly adjusted thresholds. Next Moves to the next error in the list. Clear Clears an entry out of the list. Camera Tracker: Position Data Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Position Data rollout Interface Apply to group Contains three radio buttons that control which trackers will be operated on by the action buttons below it. Selected Tracker Operates on the currently selected tracker. Enabled Trackers Operates on all the enabled trackers in the Motion Trackers rollout. All Operates on all the trackers. Camera Tracker Utility | 3841 Clear to End Clears the position data in the trackers specified in the Apply To group from the current Movie Stepper frame onward. This is useful for clearing out and redoing a portion of the tracking. Clear All Clears all the position data in the trackers specified in the Apply To group. Show Data Opens a text window that displays the position data for the trackers specified in the Apply To box. The display includes some title lines showing the tracker number and associated tracking object followed by comma separated columns of numbers for the position data one row per frame. All rows contain at least three columns: frame number, X position, Y position. Keyframe frames also contain another eight columns: feature bounds left, top, right, and bottom, and Search bounds left, top, right, and bottom. The coordinates in decimal pixels show any subpixel tracking as decimal fractions. The text window is a standard MAXScript source editor and you can copy, edit or save the contents to file. Export Creates a text file containing position data for the trackers specified in the Apply To group. Pressing this button displays a standard Save File dialog asking for the location and name of the file you’re creating. The file type defaults to .csv, the comma-separated value format readable by Excel and other data processing applications. The format of the data is exactly as for the Show Data command described previously. Camera Tracker: Match Move Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Match Move rollout The Camera Tracker utility's Match Move rollout automatically generates a camera animation by correlating the 2D position data of the movie features gathered during the tracking phase with the associated 3D feature points in the 3ds Max scene. 3842 | Chapter 15 Animation Interface Camera Enters an object-picking mode for you to select the camera that you will match-move. You can either select the camera directly in the scene or press H to open the Select Objects dialog on page 232. Once selected, the camera name is placed in the picker button, and other buttons and controls are enabled in the utility. The selected camera is remembered in the MOT settings file and restored on reopening the movie in the camera tracker. As with the tracker point scene objects, the camera name is stored and used when reloading, so make sure it’s unique. The camera selected must be a Free camera. It can be at any position and orientation in the scene. Match group Lets you choose which camera parameters will be estimated during the match-move. Those parameters turned off will be derived from the current Camera animation or position, so it’s possible to pre-position or pre-animate Camera Tracker Utility | 3843 the match camera with known moves or parameter settings and have the matcher estimate just the missing parameters. The accuracy of the estimation process increases substantially as the number of parameters that need estimation decreases. FOV Camera FOV (field-of-view). Pan Rotation about the local camera Z axis. Tilt Rotation about the local camera X axis. Roll Rotation about the local camera Y axis. Dolly Movement along the local camera Y axis. Truck-H Movement along the local camera X axis. Truck-V Movement along the local camera Z axis. Match Range group Let’s you set the range of frames that will be matched to set up the relationship between the movie frames and the 3ds Max scene animation frames. By default, the start frames are both set to zero and the frame count is set to the smaller of the number of frames in the movie or the scene animation. Setting a different Movie Start or Animation Start frame lets you position the movie frame range relative to the animation frame range. The position data for a match will be taken from the tracker frames starting at the Movie Start spinner value and the camera will be matched and animated starting from those frames. Movie Start Sets the start of the range to be matched in the movie. Animation Start Sets the start of the range in the animation. Use this if the animation range is different from the movie range. Frame Count Sets the number of frames to be matched. Reset Ranges Reloads the maximum frame number and count ranges into the match range spinners from the current movie and 3ds Max scene settings. This is useful if you change the animation frame range in the scene while the tracker is open. Animate Displays Controls whether the 3ds Max viewport appears and if the Movie window updates frame-by-frame to show the match results. This display update can be very time-consuming, so it’s often best to leave this turned off and review the match results by looking at the Camera function curves in 3844 | Chapter 15 Animation Track View or by stepping through the 3ds Max animation a frame at a time after the match. Generate Keyframes Generates keyframes for the estimated parameters on each frame. Match-Move Starts the match process. Max. Pixel Error Displays the running maximum tracking error and frame. The error is shown in pixel fractions, and gives the largest distance between any feature and the viewed position of its associated tracking object over all the frames matched. You can use this to give a general estimate of how good the match is and the frame to investigate if errors are problematic. The pixel error display also interactively updates as you nudge tracker gizmos in Live Camera Match mode, showing the current maximum match distance for the camera; see Movie Stepper Rollout on page 3835. Note that this error might be exaggerated when you employ match point weighting, as this tends to distribute the errors toward the nonweight points. Show Errors Opens a text window containing a list of the maximum errors for each of the matched frames, so you can look over the whole set of match frames and identify which frames to check. Camera Tracker: Move Smoothing Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Move Smoothing rollout Because the match-move algorithm is not always exact and is highly susceptible to field measurement error or feature tracking errors, and because the match for each frame is computed independently, the results can be "noisy", particularly if field of view is estimated. In match-move situations where the real camera performs smooth moves, it might be useful to filter the match results to eliminate this noise. You use the Move Smoothing rollout to control and perform these smoothing operations after a match has been created. Camera Tracker Utility | 3845 Interface Channel To Smooth group Lets you choose which parameter or set of parameters to smooth. You can choose to smooth the entire Rotation or all the Position tracks at once, or you can smooth individual parameters or axes. Rotation Pan, Tilt, and Roll. Position Dolly, Truck-H, and Truck-V. FOV Camera FOV (field-of-view). Pan Rotation about the local camera Z axis. Tilt Rotation about the local camera X axis. Roll Rotation about the local camera Y axis. Dolly Movement along the local camera Y axis. Truck-H Movement along the local camera X axis. Truck-V Movement along the local camera Z axis. 3846 | Chapter 15 Animation Smooth Type group Straight line average Causes Move smoothing to generate a straight line average for each of the selected parameters. This is useful when you know a parameter is fixed, but don’t know its actual value. Examples might include field-of-view or vertical position. Use the camera matcher to initially estimate the parameter, then construct a straight line average fit and rematch the remaining parameters Low pass filter Causes Move smoothing to apply a low-pass filter to the selected parameters, eliminating high-frequency noise. Smooth amount Implements smoothing using a Gaussian low-pass filter whose width and variance are controlled by the Smooth Amount spinner. Increase this value to increase the smoothing. Smooth Range group Controls the range of frames over which the smoothing will be performed. Match-Move Range Applies the smoothing to the range of animation frames specified in the Match Move rollout. This allows you to break up a match-moving job into several frame ranges. Use this to isolate and experiment on a troublesome range of frames, without disturbing other satisfactory frames. All Frames Applies the smoothing to all the keyframes in the selected parameters. Rematch After Smooth Controls whether a compensating match-move is performed after the filtering. If this is turned on, the parameters that were smoothed are disabled in the Match rollout and another match-move is performed. Performing this rematch again is advised because it adjusts the other camera parameters to compensate for the smoothing and often results in a smoother estimation for the unsmoothed parameters. Smooth Performs the move smoothing based on the smooth type, range, and amount settings. If this button is disabled, no current match camera is assigned. Camera Tracker: Object Pinning Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Object Pinning rollout Object Pinning lets you use the 2D image feature tracking data to directly animate objects in the 3ds Max scene. This is useful for replacing moving Camera Tracker Utility | 3847 features in the scene with 3D objects when the movement is approximately planar. After the tracking data is created you can use this function to do such things as synchronizing the movement of 3D objects with feature movements in the background movie. If the 3D objects directly cover the background features, they will appear to replace them. For example, you could take the video of a juggler juggling balls and replace the balls with 3D balls of fire or synchronize the movement of an animal's head with a 3D jaw to create talking animal animations. Procedures Example: To create a juggler juggling 3D balls of fire: This assumes you already have a video of a juggler. Otherwise, find a juggler and a video camera. 1 Load a video of a juggler. 2 Create tracker gizmos to associate with the juggling balls. 3 Use the Movie Stepper to track the gizmos. 4 Go to Object Pinning and choose the tracker. 5 Under Object To Pin, associate an object with a tracker. In this case, create a 3D ball of fire using fire or an animated map to generate the fire. 6 Adjust the Pin Range, and then click the Pin button to move the object to follow the tracker. 3848 | Chapter 15 Animation Interface Choose Tracker Shows all the current trackers as set up in the Motion Trackers rollout. Use this to select the tracker whose feature movements you will use to control the pinned 3ds Max object. The feature must have been tracked already over the frames you want to use, with the Track and/or Movie Stepper rollouts. Note that the accuracy of the pinning is determined by the accuracy of the match, so subpixel tracking is highly recommended. Object To Pin Lets you choose the object in 3ds Max scene for pinning and animating. By default the tracking object associated with the selected tracker is preloaded into this button. You can use this picker if you wish to pin a different object. Pin Range group Movie Start The movie frame from which to start using tracked feature positions. Animation Start The frame in the 3ds Max animation at which to start keyframing the move of the pinned object. Frame Count The number of frames to animate. There must be enough tracked positions in the selected tracker to cover this number of frames. Camera Tracker Utility | 3849 Reset Ranges Reloads the maximum frame number and count ranges into the above spinners from the current movie and 3ds Max scene settings. Pin Space group Lets you select the plane of motion in which the keyframed pinning will occur. Screen Moves and animates the pinned object in the plane of the screen at its current depth in the scene. This is equivalent to dragging an object around in the Screen reference coordinate system in 3ds Max. Grid Moves and animates the pinned object in the plane of the currently active grid. This lets you set up an arbitrary plane of motion for the pinning by constructing a grid helper object in the desired place and making it the active grid. If you don't have a grid helper set up and active, the pinning will occur on the 3ds Max Home Grid. Pin Mode Group Lets you choose between two different pinning modes: absolute and relative. Absolute Places and moves the pinned object exactly over the tracked feature. If combined with grid space, the object is also placed and moved directly on the active grid plane. Relative Leaves the pinned object at its current position in space and moves it so that its projected position relative to the tracked feature remains the same throughout the pinning frame range. This makes it possible to animate an object that you don’t want placed exactly over a feature, or to animate an object using several features in successive frame ranges. (For example, a computer generated jaw can track an ear for some frames, then a nose for others in a talking animal shot). If combined with grid space, the object is not moved onto the grid plane, but keeps its height above the grid and is moved parallel to it. Pin Performs the actual pinning, moves the object to follow the selected feature and places a keyframe at each frame in the pin frame range. As with the other keyframing operations in the tracker, you can undo a pin using the 3ds Max Undo function. You might also find it useful to perform keyframe reduction afterwards in Track View. 3850 | Chapter 15 Animation Camera Tracker:Troubleshooting Feature Tracking Halts Immediately If the feature tracker attempts to match the first couple of frames but halts immediately, check these steps: 1 One of the enabled error thresholds might be set too low. Perform a Check Status in the Batch Track rollout and look at the reports in the Tracking Error Review list. Also try disabling the thresholds in the Error Thresholds rollout one at a time and see if this fixes the problem. Adjust the problematic threshold as needed. You can also disable error threshold checking altogether by turning off the Resample On Error check box in each of the trackers. 2 Make sure the search bounds box for each tracker is big enough to accommodate the frame-to-frame motion of the feature. This needs to be at least big enough to enclose the moved feature and the surrounding contrast area you’ve selected in the feature bounds box. 3 Make sure the scene objects are associated correctly with their trackers. You can verify this by checking the entries in the list at the top of the Motion Trackers rollout. If there is an object associated, you will see its name in the list entry, if not you will see “ ”. If you open a movie file for which you have previously set up trackers in the camera tracker before you open the associated 3ds Max scene, the objects won’t be associated with their trackers. You should make sure the correct 3ds Max scene is open then close and reopen the movie file in the Camera Tracker so that it can now find the scene objects. 4 If you have inadvertently swapped the scene objects for one or more pairs of trackers, the match-move can’t find a solution. Repeated Match-Move Errors If you get repeated camera match-move errors, here’s a list of things to check: 1 Make sure there are at least six features actively being tracked at the error frame and that at least two of them are a good distance out the plane of the others. 2 Check the tracker gizmos in the Movie window around the frame on which the error occurs to ensure that no obvious feature tracking errors exist. Camera Tracker Utility | 3851 3 If you’ve disabled any parameters in the Match section of the Match-Move rollout prior to a match-move, the camera being matched must be already set correctly in the scene for those parameters. For example, if you disable roll and FOV, you must already have set the camera to the correct FOV and roll orientation, either directly in 3ds Max, or as a result of a previous match-move. The matching algorithm uses all the “fixed” camera parameters to compute the ones being estimated and simply won’t work if they’re fixed at incorrect values. 4 You may know that some of the camera parameters don’t vary during a match sequence, but you aren’t sure of their values. One approach to this situation is to enable all parameters for an initial match and then apply a straight-line average filter to them in the Move Smoothing rollout. This automatically disables them in the Match section and with luck sets them at a good estimate of the fixed position. Dynamics Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Choose Dynamics. The term dynamics refers to a system of controls that generate keys to produce animation that simulates real-world physics. For example, using standard keyframing techniques to animate a bouncing ball, you create keys that move the ball down to the floor, squash the ball, move the ball back up, and so on. Using a dynamics system, you assign physical properties to the ball and the floor (such as friction or amount of bounce), specify which object will collide against another object (for example, the ball with the floor), place an effect (such as gravity), in the scene, and then calculate a solution over a range of frames. The result is a number of keys that produce an animation in which the ball drops due to the gravity effect, collides with the floor and reacts naturally based on its surface characteristics. NOTE As of 3ds Max 5, the preferred tool for dynamics simulation is reactor, available from the Utilities panel. The reactor plug-in lets you control and simulate complex physical scenes with ease. reactor supports fully integrated rigid and soft-body dynamics, cloth simulation, and fluid simulation. Objects and Space Warps Used to Create Dynamics Simulations A very basic simulation would involve creating a sphere and a gravity space warp, adding the sphere to a new simulation, assigning gravity as an effect 3852 | Chapter 15 Animation on the sphere and solving the simulation. The result is that the sphere falls under the force of gravity. You can use dynamics objects on page 880, dynamics space warp deflectors (PDynaFlect on page 2738, SDynaFlect on page 2745, and UDynaFlect on page 2748), and space warp forces such as Gravity on page 2721 and Wind on page 2724 to add complexity to a simulation. You can use a particle stream from a particle emitter as a force on an object: the particles can collide with and be deflected by the object, as well as move it. You can attach special dynamics objects to objects, such as Spring on page 890 to simulate the effects of a spring. You can combine effects: Wind, gravity, a spring object, collision, particle deflection and collision, as well as surface properties such as friction, can all work on an object in a simulation. For a full understanding of what dynamics can do, explore this topic and areas of 3ds Max that pertain to dynamics. Dynamics-Specific Areas in 3ds Max The Dynamics Utility (this topic) The Dynamics Utility is the main control center for dynamics simulations. You specify which objects are used in the simulation, what their interactivity is with each other and with the effects in the scene. The simulation is then "solved," generating the keyframes. The effects of collisions between objects depend on the velocity of the objects and their properties. For collision to work between two objects, each object must have the other object assigned for collision. For example, when bouncing a ball, both the floor and the ball are assigned collisions. The Material Editor: The Dynamics Properties rollout on page 5423 in the Material Editor lets you assign the dynamics properties to the surface of an object, like friction and bounce. Using a multi/sub-object material, you can have different surface properties at the face level of any object. NOTE You can override material surface dynamic properties with controls on the Edit Object dialog on page 3867 in the Dynamics utility. Dynamics Objects, Particles and Dynamics, Dynamics Interface: Special objects like Spring and Damper, Space Warp forces like Gravity and Wind, as well as Space Warp deflectors like PDynaFlect can all influence a dynamics simulation. You must create these objects and space warps first in other areas of 3ds Max before you can use them in a dynamics simulation. See the following topics for details on their creation and use: ■ Create panel > Geometry > Dynamics Objects on page 880 Dynamics Utility | 3853 You can use the Spring and Damper objects for dynamics effects. ■ Create panel > Space Warps on page 2685 > Particles and Dynamics. Effects (forces) are special space-warp objects that emulate natural phenomena, such as wind or gravity. In a dynamics simulation, you must place gravity in the scene if you want the objects in your simulation to fall. ■ Create panel > Space Warps on page 2685 > Dynamics Interface. The Dynamics Interface space warps can cause particles to deflect from and affect an object in a simulation. Combine Keyframed Objects in a Simulation: Keyframe an object and have it interact with other objects in a dynamics simulation by turning on the This Object is Unyielding check box in the Edit Object dialog for the keyframed object. Objects can bounce off of a keyframed sphere for example. Dynamics Controller: When a Dynamics simulation is solved, a new list controller is created that holds both the generated dynamics keys and the original keys. This allows you to restore your original keys, if necessary. Undo is not supported by Dynamics. For example, if a sphere is bouncing in a Dynamics simulation, and the sphere already contains position keys from a previous animation, the following tracks display in Track View: Transform Position Dynamic Position Controller Old Position Rotation Dynamic Rotation Controller Old Rotation Procedures Example: To create a basic simulation of bouncing boxes: 1 Create a thin box in the Top viewport. Have the box almost the same height and width as the viewport. This will act as the ground plane. 2 In the Front viewport, create six small boxes above the "ground" box. Position some of them to collide with each other when they fall. 3854 | Chapter 15 Animation 3 On the Create panel > Space Warps > Particles and Dynamics > Object Type rollout, click Gravity. 4 Drag in the Top viewport to create a Gravity gizmo. 5 On the Utilities panel, click Dynamics. 6 On the Dynamics rollout, click New. Dynamics00 appears in the Simulation Name field. 7 Click Edit Object List. The Edit Object List dialog displays. 8 Select all the boxes in the dialog and click the > button, then click OK. All the objects are moved to the Objects in Simulation list on the right side of the dialog. 9 On the Dynamics rollout, click Edit Object. The Edit Object dialog displays. 10 In the list under Object, choose Box01. 11 Turn on Dynamics Controls group > This Object is Unyielding. 12 Click Ok to close the Edit Object dialog. The "ground" box won’t move when the other objects collide with it. 13 On the Dynamics rollout, in the Effects group, turn on Global Effects. 14 Click Assign Global Effects, select Gravity in the dialog and click > (right arrow), then click Ok. This assigns gravity to all objects in the simulation. 15 On the Dynamics rollout, in the Collisions group, turn on Global Collisions. 16 Click Assign Global Collisions, select all the boxes in the dialog and click > (right arrow), then click OK. Collisions are active for all the boxes. 17 Turn on Update Display with Solve, and then click Solve. In the viewports the objects fall and collide with each other and the ground plane. 18 Turn on the Auto Key button, move the time slider to frame 15, and then select and move the "ground" box upward along the Z axis. Dynamics Utility | 3855 The ground will "move" during the simulation. 19 Click Solve. The keyframed "ground" box moves up and collides with the boxes. The ability of a keyframed object to be part of a simulation is one of the useful features in 3ds Max. You could use this capability to strike a ball with a bat, for example. For further experimentation, create a spring object in Create panel > Geometry > Dynamics Objects and attach the ends of the spring object to two of the boxes and then solve the simulation. The spring will stretch and follow the bouncing boxes. You can use the space warps in Create panel > Space Warps > Dynamics Interface, such as SDynaFlect (Spherical Dynamics Deflector) to cause a particle stream to "push" an object in a dynamics simulation. To remove the dynamics tracks and restore the original animation tracks in Track View: When you solve a dynamics simulation, 3ds Max creates a list controller that holds both the generated dynamics keys and the original keys. This lets you easily restore the original keys. Undo is not supported by Dynamics. To layer simulations, reverse this method. In other words, after you've solved the first simulation, copy its controllers to the old tracks, and then set up the next level of the simulation. The new simulation will base its actions on the previous one instead of overwriting it, as it normally does. You can repeat this as many times as you like to layer simulations ad infinitum. Since Undo is not supported by Dynamics, you can also use Hold and Fetch in its place. 1 In Track View, open the Position track for an object animated by a dynamics simulation. 2 Select the Old Position track, and click Copy Controller on the Track View toolbar (the second button from the left). 3 Select the Position track (the parent), and click Paste Controller (to the right of Copy Controller). 4 Click OK in the Paste dialog. The two sub-tracks and the Position parent track are replaced by a single Position track containing the original keys that were in the Old Position track. 3856 | Chapter 15 Animation Repeat the above steps with the Rotation track. To set up dynamics: 1 Assign materials to the objects included in the simulation and adjust the surface characteristics in the Dynamics Properties rollout of the Material Editor. (For a bouncing ball, you'd use this to create a rubber-like surface.) 2 If you're using a linked hierarchy, set the Move and Rotate locks in the Hierarchy/Link Info panel to limit the motion and rotation of the linked objects. 3 Create space warp effects in the scene where needed. (For a bouncing ball, you'd need a Gravity space warp.) 4 Use the Dynamics utility to create a new simulation. Specify which objects are included in the simulation, which effects influence which objects, and which objects should collide with which. (For the bouncing ball, the ball and the floor are in the simulation because one collides with the other. You assign the ball the floor to collide with each other, and assign the gravity effect to the ball.) 5 Use the Dynamics utility to specify the range of frames to which keys will be generated, and to calculate the animation and generate the keys. (In the case of a bouncing ball, a number of position and rotation keys are generated for the ball.) 6 Play the animation to see if the effect is what you were looking for. If one or more objects fly off into space, or move through objects they should have bounced off, it's likely that you need to increase the Calc Intervals Per Frame value. To reduce the number of keys generated by the Dynamics utility: When you solve a dynamics simulation, Position and Rotation keys are generated at every frame of the specified range for every object affected in the simulation. Not only does this result in an excess of keys for later editing, but it can increase the size of the .max file tremendously. The following steps show how to reduce the number of keys using Track View. 1 After solving the simulation, check the animation to make sure it's what you want, and then save that version of the scene. 2 Deselect every object in the scene. Dynamics Utility | 3857 3 In the Dynamics panel > Objects in Simulation group, click the Select Objects In Sim button. All objects included in the simulation are selected. 4 Open a Track View window, and then set its filter to show Animated Tracks Only and Selected Objects Only. 5 Right-click the top object in the Hierarchy list (Objects), and choose Expand All. Track View now shows all tracks in the simulation that have keys. 6 Go to Edit Time display mode and select all of the tracks containing keys (or right-click over the hierarchy, and choose Select All). 7 Double-click any key to select all keys in all tracks. 8 Click the Reduce Keys button, set the Threshold to what you want, and then click OK. All selected keys are reduced. 9 Save the reduced version of the scene either under a new name, or by replacing the original file. To use linked hierarchies in a simulation: When linked hierarchies are included in your simulation, you must set locks for the children in the simulation to confine the dynamics results to specific axes. Do this on the Hierarchy panel > Link Info > Locks rollout on page 3501. The Locks rollout contains three rows of check boxes affecting the XYZ axes of the three possible transforms: Move, Rotate, and Scale. The Scale transforms are ignored, and only the Move and Rotate locks are used. When a check box is turned on, that axis of the specific transform is locked. When you manipulate a forward-kinematics hierarchy directly using the Move or Rotate tools, you might not bother with the Link Info locks, because you can specify axis constraints using the X, Y , Z, and XY buttons in the toolbar. However, when you use that same hierarchy in a dynamics simulation, where there are several forces at work (gravity, wind, collisions), the only thing that maintains the linkage between the objects is the locks you set in the Link Info > Locks rollout. As a result, no matter what combination of Move and Rotate locks you use, you'll always want at least one Move lock in place, or your objects won’t really be linked. The following lists all of the combinations of Move and Rotate locks that make sense within a dynamics simulation, and the effect on the link of such 3858 | Chapter 15 Animation combinations. An asterisk (*) indicates those combinations that are more typically useful. The format of this list is as follows: X=check box on. O=check box off. One group of settings is made up of the three Move check boxes over the three Rotate check boxes. Here's an example: XXO=X and Y Move check boxes on, and Z off. OXO=Y Rotate check box on, and X and Z off. 1 1 Move Lock: Turn on any single Move. (This is like a long pin sliding in a loose, long slot.) The joint can transmit force in one direction only. The objects can slide with respect to each other in two directions and rotate freely. 2 2 Move Locks: Turn on any two Moves. (This is like a sliding ball joint; a freely rotating joint at the end of a sliding shaft, which can slide and rotate in a hole.) 3 * 3 Move Locks: Turn on three Moves. (This is like a ball joint, or the theoretical "pin joint" of the statics and dynamics texts, in that it transmits any force but never transmits any torque.) 4 1 Move + 1 Rotate (unique): Turn on any one Move and any one Rotate, but not in the same column. (This is like two long pins, parallel, sliding in a single long slot.) The joint can transmit force in one direction only and restrain rotation about the axis of the "pins." This combination is of limited application. 5 2 Moves + 1 Rotate (matching): Turn on two Moves, plus one Rotate turned on that's in the same column as one of the selected Moves. (This is the same as 1 Move + 1 Rotate, above, except that the pins can no longer slide vertically in their slot.) If the assembly rotates so that one pin travels further into the slot, the other must ride higher in the slot. This is of limited application. The possible check box combinations are: XXO XXO XOX XOX OXX OXX OXO XOO XOO OOX OOX OXO 6 * 2 Moves + 1 Rotate (complementary): Turn on two Moves, plus one Rotate that's not in the same column as any of the selected Moves. (This is a sliding universal joint like the splined output shaft between the automatic transmission of a rear-drive car and the drive shaft.) It can transmit torque and constrain translation in two directions, both Dynamics Utility | 3859 orthogonal to the axis of rotation. The possible check box combinations are: XOX XXO OXX OXO OOX XOO 7 3 Moves + 1 Rotate: Turn on three Moves plus one Rotate. (This is a universal joint without the sliding.) It's typical of automotive applications where the rear axle is located with the trailing drive shaft. This is an uncommon application. 8 * 1 Move (complementary) + 2 Rotates: Turn on one Move that's complementary to two Rotates. (This is like a hockey puck on ice.) The joint can slide anywhere on a plane, but cannot fall or tip, and it cannot leave the surface of the plane. The possible check box combinations are: XOO OXO OOX OXX XOX XXO 9 2 Moves (one complementary) + 2 Rotates: Turn on two Moves, one of which is complementary to one of the two Rotates that are selected. (This is like a hockey puck with a nail through it, and the nail is sliding along a groove in the ice.) It's free to travel in one direction, and to rotate about an orthogonal axis. One possible check box combination is: XXO XOX 10 * 2 Moves + 2 Rotates (matching): Turn on two Moves and two matching Rotates. This results in a sliding axle (a shaft that can both slide in and out of a hole, and rotate with the hole). The clear Move and Rotate axis specifies the axis along which the joint can slide and rotate. The possible check box combinations are: XXO XOX OXX XXO XOX OXX 11 * 2 Moves + 3 Rotates: Turn on two Moves and all three Rotates. (This is a prismatic or sliding joint.) The joint transmits no torque, and force in only one direction. You can use this in conjunction with the Push effect to make a hydraulic cylinder. The one clear Move specifies the axis of movement. 12 * 3 Moves + 2 Rotates: Turn on all three Moves, and any two Rotates. This is an axle (the most common type of joint.) The one clear Rotate specifies the axis of rotation. 13 All Locked: All six check boxes are on. This is a completely rigid joint. Interface Dynamics rollout Contains all of the surface dynamics controls. 3860 | Chapter 15 Animation Simulation Name Displays the name of the current simulation. You can edit the name to rename any existing simulation. You can create any number of simulations in your scene. Each must have a unique name and is stored in the .max file. For example, you might have a simulation named Bouncing Ball that bounces a ball down a flight of stairs, while another simulation named Paper Airplane flies a paper airplane across the room. List Displays the name of the current dynamics simulation, and lists all simulations in the scene. If the list contains two or more simulations, choose Dynamics Utility | 3861 one from the list to make it current. All remaining panel settings are specific to the current simulation. New Creates a new simulation. Its name consists of the word "Dynamics" appended by a number, starting with 00. This number is incremented by one for each new simulation. Remove Deletes the current simulation. Dynamic simulations can use a lot of memory. Removing old or unused simulations reduces the size of your .max files. When you remove a simulation, all timings and other settings are deleted. However, any keys generated by the simulation remain. Copy Creates a duplicate of the current dynamics simulation. All of the settings are identical to the original simulation, with the addition of “01” appended to the name. Objects in Simulation group Lets you add and remove objects from the simulation, and edit the properties of objects in the simulation. Edit Object List Displays the Edit Object List dialog on page 3873, which lets you specify which scene objects are to be included in the simulation. Edit Object Displays the Edit Object dialog on page 3867. The Edit Object dialog is the main interface for object dynamics attributes. Use this dialog to set collisions, effects, surface properties and mass for each object in the simulation. Select Objects in Sim Adds all objects in the simulation to the current selection set. One use for this function is to bring selected objects into Track View for further manipulation, keyframe reduction, and so on. Effects group Specifies which effects are included in the dynamics calculation. Effects by Object Only effects assigned to specific objects with the Edit Object dialog > Assign Object Effects button are considered in the calculation. Global Effects Only effects included in the Assign Global Effects dialog (accessed by clicking the button of the same name) are included in the calculation. Assign Global Effects Displays the Assign Global Effects dialog. 3862 | Chapter 15 Animation Select effects (space warps) in the list on the left and use the > button to move them to the list on the right. Effects thus chosen affect all objects in the simulation except unyielding ones. The Assign Global Effects dialog functions similarly to the Edit Object List dialog on page 3873. Collisions group Specifies which collisions are included in the dynamics calculation. Collisions by Object Collisions assigned to specific objects through the Edit Object dialog > Assign Object Collisions button are included in the calculation. Global Collisions Collisions assigned in the Assign Global Collisions dialog (accessed by clicking the button of the same name) are included in the calculation. Assign Global Collisions Displays the Assign Global Collisions dialog. Select the objects in the list on the left and use the > button to move them to the list on the right. All objects thus chosen collide with each other in the simulation. The Assign Global Collisions dialog functions similarly to the Edit Object List dialog on page 3873. Solve group Update Display w/ Solve Displays each frame of the solution in the wireframe viewports during the calculations. This slows down the calculation process. Solve Calculates the dynamics solution, generating keys over the range of frames specified in the Timing area. A progress bar appears in the status/prompt line. Press ESC to cancel the calculation. NOTE You cannot undo the generation of a dynamics simulation solution. If there's a chance you might want to restore the scene to its state prior to the solution, either save on page 6927 the scene or use Hold on page 264 before solving it. Timing and Simulation rollout Lets you specify the range included in the calculation, how IK is included in the simulation, and what the air density is for the simulation. Dynamics Utility | 3863 Timing group Controls how keys are generated over time. Start Time Specifies the first frame to generate keys, which is the first frame to be considered for the solution. Default=0. TIP If you set a start time that's later than a keyframe-animated object's last animation frame, you may get unexpected motion during the interim frames. For example, if you animate a box's position from frames 0 to 10, and then use the box in a dynamics simulation that starts at frame 20, the box will move between frames 10 and 20 because of the Bezier controller's default interpolation. To avoid this, before solving the simulation, set the last animation keyframe's Out tangent type to Linear or Step; see Bezier Controllers on page 3138. Alternatively, set the last key of the keyframed "input motion" after the start time of the simulation, or set a start time before the last key. End Time Specifies the last key considered for the solution. This spinner is set to the last frame of the active segment on page 7898 when you create a new 3864 | Chapter 15 Animation simulation. For example, if your active segment ends at frame 200, when you click New to create a new simulation, End Time is set to 200. Calc Intervals Per Frame Specifies how many calculations are performed for each frame of the simulation time range. Range=1 to 160. Finding the right number for this spinner is a matter of experimentation. As a general rule, the faster things are moving in the simulation, the higher you should set this value. NOTE If you find that some objects aren't colliding properly with others (they're going through them), increase the Calc Intervals Per Frame value. Keys Every N Frames Specifies the frequency with which keys are generated, per object. If this were set to 2, keys would be generated in every other frame. WARNING When you reduce the key count by increasing this setting, important information can be lost. For example, if a collision occurs on frame n, the Dynamics utility normally sets keys at frames n, n+1, and n-1. But if you've set Keys Every N Frames to 2, a keyframe for the impact itself might not be generated, while keys for the sudden reversal of motion would be generated on either side of the (missing) impact. Thus, the motion controller is left to interpolate motion in a region where the motion should be sharply defined. When this happens, motion can be incorrect and the remainder of the solve is affected. In the aforementioned example, a key describing the impact is lost and the motion controller interpolates motion so that objects that should collide actually intersect, ruining the simulation. Time Scale Slows down or speeds up the overall effect of the simulation. It applies a linear scale factor to the outside forces affecting each object (gravity, wind, and so on). The default value of 1 results in normal speed. You can scale down the simulation (make it slower) by using values below 1 (from 0.1 to 1), and you can scale up the simulation (make it faster) by using values greater than 1 (from 1 to 100). If you speed up your simulation and objects begin to behave incorrectly (going through objects, for example), increase the Calc Intervals Per Frame value to compensate. Simulation Controls group Relates to IK settings and the transfer of momentum. Use IK Joint Limits Uses the current IK joint limit settings as constraints for hierarchies in the simulation. Dynamics Utility | 3865 Use IK Joint Damping Uses the IK damping settings as constraints for hierarchies in the simulation. Air Resistance group Density percent Sets the air density in the simulation. A setting of 100 is the air at sea level. A setting of 0 is a total vacuum. When anything moves, it hits air resistance (except in space). The faster it moves, the higher the relative air resistance with the square of the speed. Thus, air resistance imposes an upper limit on the speed of things that are falling with gravity, and also makes objects tumble due to the effect of air resistance on each face of the object. Close Closes the Dynamics utility. Dynamics Properties Material Editor rollout The three spinners in the Dynamics Properties rollout in the Material Editor let you specify surface properties that affect the animation of an object upon collision with another object. If there are no collisions in your simulation, these settings have no effect. Because the Dynamics Properties rollout is available at the top level of any material (including sub-materials), you can specify different surface dynamic properties for each face in an object. There are also controls in the Dynamics utility that let you adjust the surface properties at the object level, but only the Material Editor lets you alter the surface properties at the sub-object level (through use of a Multi/Sub-Object material). As a default, the values in the Dynamics Properties rollout provide a surface that's similar to Teflon-coated hardened steel. This is with values of Bounce Coefficient equal to 1; with both Static Friction and Dynamic Friction set to 0. Bounce Coefficient Determines how far an object bounces after striking a surface (the higher the value, the greater the bounce.) A value of 1 represents a bounce in which no kinetic energy is lost. 3866 | Chapter 15 Animation Static Friction Determines how difficult it is for an object to start moving along a surface (the higher this value, the more difficult the movement). If something weighs 10 pounds and sits on Teflon (a static friction of near zero), it takes almost no force to make it move sideways. On the other hand, if it sits on sandpaper, then the static friction might be very high, around .5 to .8. Sliding Friction Determines how difficult it is for an object to keep moving over a surface (the higher this value, the more difficult for the object to keep moving). Once two objects begin to slide over one another, static friction disappears and sliding friction takes over. Generally, sliding friction is lower than static friction due to surface tension effects. For example, once steel starts sliding over brass (a value of static friction that might run from .05 to .2), the sliding friction drops to a significantly lower value: .01 to .1. Edit Object Dialog Utilities panel > Utilities rollout > More button > Dynamics > Dynamics rollout > Edit Object button > Edit Object dialog The Edit Object dialog is the main interface for setting dynamic properties for any object in the simulation. You assign dynamics properties one object at a time. Select an object in the list under Object, and then set that object's parameters. For example, you can cause the object to be affected by gravity or wind, and specify collisions with other objects. Dynamics Utility | 3867 Interface Object Displays the name of the object for which you're setting the dynamic properties. All settings in the Edit Object dialog affect the object listed here. To change the object you're affecting, open the list, and choose from a list of all objects assigned to the simulation. Dynamic Controls group Use Initial State When turned on, the simulation solves for the motion, energy, and momentum of the object at the simulation's starting frame (specified in the Start Time spinner in the Time and Simulation rollout > Timing group.) If Use Initial State is turned off, the object is assumed to be sitting motionless at the starting frame. The Dynamics utility overwrites keys. Either the object's keys are clocked with the simulation, or it's not moving (or both). If you don't solve for the initial state, the object's keys are interpolated at the instant the simulation starts and all subsequent motion comes from the interaction of the simulation itself. 3868 | Chapter 15 Animation This Object is Unyielding Lets you use keyframe-animated objects in dynamics simulations. Objects with this option turned on are immovable relative to other objects that collide with them, but can be animated (keyframed). You can animate objects with this option turned on by themselves or as part of a keyframed hierarchy. For collisions, objects with Use Initial State turned on cannot move objects with This Object is Unyielding turned on. Move Pivot to Centroid When this button is on (green) and you exit the Edit Object dialog by clicking OK, the object's pivot point is moved to its center of mass. Having the pivot aligned with the center of mass speeds up the dynamics calculation and makes manual keyframing of the objects appear more natural. However, if the pivot point is already positioned as part of a linked hierarchy, turning on Move Pivot to Centroid will alter the positioning of your hierarchical linkage. Load/Save Parameters Sets group Saves the current Edit Object parameter settings, or loads previously saved parameter settings. You can use these controls to save the settings for one object, and then apply them to another object. Set Name Accepts a new name for a parameter set. Click Save to save the parameter set with this name. Available Parameters Sets Lists previously saved parameter sets. Load Loads the selected parameter set. Save Saves the named parameter set. The saved parameter sets appear in the list. Delete Deletes the selected parameter set. Assign Effects/Collisions group Let you specify which effects in the scene will affect the current object, or which objects in the scene can collide with the current object. Assign Object Effects Displays a subdialog that lets you specify which effects in the scene will affect the current object. The dialog consists of two list windows. All effects (typically space warps) in the scene are listed in the window on the left. Select effects in the list, and then click the > button to transfer the highlighted effects to the window at right. The Assign Object Effects dialog functions similarly to the Edit Object List dialog on page 3873. Dynamics Utility | 3869 Assign Object Collisions Displays a subdialog that lets you choose which objects in the scene are considered for collision with the current object. This dialog works the same as the Assign Object Effects dialog, except that it lists only objects in the simulation. Objects included for collision in this dialog can collide with the current object. NOTE For every potential collision, you should explicitly specify both colliding objects. For example, if you specify that Box01 is to collide with Box02, you should also specify that Box02 is to collide with Box01. This is primarily for keeping track of your simulation; if you specify the collision for only one object, it works for the other as well. While it is not necessary to specify that Box02 collides with Box01, this is the only way to update the Assign Object Collision list for Box02. The Assign Object Effects dialog functions similarly to the Edit Object List dialog on page 3873. Collision Test group Specifies the type of boundary used for collision testing. Box A bounding box is used to test collision. This is the fastest method. If your object is a box or close to a box shape, this option is both fast and accurate. Cylinder A cylindrical form is used to test collision. The "height" axis of the cylinder is aligned with the local Z axis of the object. Sphere A spherical form is used to test collision. Mesh Uses the surface of the object to calculate the collision. This option is the most accurate, but also takes far longer to calculate than the previous three methods. Use this only when your object is too complex to work properly with the first three options. Recalculate Properties group Specifies when to recalculate the properties of an object that changes over the course of the animation. Specifically, the properties refer to the mass moment of the object. The mass moment of an object can be defined as the measure of how the mass in an object is distributed with respect to the center of mass of that object. Altering the mass moment changes the way an object responds to torque. If your object is changing shape over time, and you want to take this into account for the simulation, you should recalculate the properties. Never No calculation is performed beyond the first calculation for the dynamics solution. 3870 | Chapter 15 Animation Every Frame The object's properties are recalculated for every frame. Every Calc Interval The object's properties are recalculated at each "Calc Interval." You set the Calc Interval (interval of calculation) in the Time Parameters rollout; it specifies how many calculations are performed for each frame of the simulation time range. Material Editor Physical Properties group Three of an object's physical properties are taken by default from its material: bounce, static friction, and sliding friction; see Dynamics Properties Rollout on page 5423. Use these settings in this group to accept or override the material's dynamics properties. Bounce Specifies how far the object bounces after collision. Available only if Override Material Bounce is on. Override Material Bounce Enables the Bounce spinner when you want to use a specific value that's different than that assigned by the object's material. When using a multi/sub-object material, you can assign different Bounce values to the sub-materials, and thus to different faces of an object. But if you use an override value, it affects the whole object only. Copy to Object's Material Copies the value in the Bounce spinner to the material assigned to the object. Static Friction Specifies how hard it is to start moving on a surface. Available only if Override Material Static Friction is on. Override Material Static Friction Enables the Static Friction spinner when you want to use a specific value that's different than that assigned by the object's material. When using a multi/sub-object material, you can assign different Static Friction values to the sub-materials, and thus to different faces of an object. But if you use an override value, it affects the whole object only. Copy to Object's Material Copies the value in the Static Friction spinner to the material assigned to the object. Sliding Friction Sliding friction determines how hard it’s for an object to keep moving over a surface. Available only if Override Material Bounce is on. Override Material Sliding Friction Enables the Sliding Friction spinner when you want to use a specific value that's different than that assigned by the object's material. When using a multi/sub-object material, you can assign different Sliding Friction values to the sub-materials, and thus to different faces of an object. But if you use an override value, it affects the whole object only. Dynamics Utility | 3871 Copy to Object's Material Copies the value in the Sliding Friction spinner to the material assigned to the object. Physical Properties group Provides controls that specify the physical properties of the current object. Density Specifies the density of the object in grams per cc. A setting of 1 is the equivalent of water, and useful for anything wooden, plastic, or organic. The more dense an object, the slower it will react to forces. There is a direct relationship between density and mass, so when you alter the Density setting, the Mass value changes (when its automatic value is not overridden). Mass Technically, mass is the measure of how many subatomic particles are in an object. In 3ds Max, it's calculated as a result of density times volume. Mass can is the resistance to acceleration given a constant force. The greater the mass, the more resistance. The Mass value, when not overridden, is derived from the density and volume, and the volume, when automatically calculated, is affected by the Calculate Properties Using option. Override Automatic Mass Enables the Mass spinner so you can specify the object's mass. When you override the automatic value, the Mass value is no longer affected by the Density or Volume values. Mass is affected by the Calculate Properties Using options. Volume The volume of the object, measured in cubic centimeters. When automatically calculated, this value depends on the option chosen under Calculate Properties Using. Override Automatic Volume Enables the Volume spinner so you can specify the object's volume. When you override the automatic Volume value, it's no longer affected by the Calculate Properties Using options, and it no longer affects the Mass value. Calculate Properties Using options Specifies the type of geometry the simulation will use to calculate the mass, the volume, and the mass moment. When the Mass and Volume values are automatically calculated (their overrides are turned off), changing these options affects the volume, and thus the mass. Vertices Treats an object as a "point cloud," or a collection of vertices without segments. Each vertex is given a mass of 1 gram, but the object itself has no volume. 3872 | Chapter 15 Animation Surface Treats the object as a hollow shell whose thickness is 1 centimeter. The mass is derived from the surface area and the 1-centimeter thickness, but the object has no volume. Bounding Box A bounding box surrounding the extents of the object is used to calculate both the volume (of a solid bounding box) and the mass (based on the volume). Bounding Cylinder Similar to the Bounding Box option, except that a bounding cylinder is used, whose Z height axis is aligned with the local Z axis of the object. Bounding Sphere Similar to Bounding Box, except that a bounding sphere is used. Mesh Solid The geometry of the object is used to calculate both the volume and the mass, according. Property Estimate Resolution options Available only when the Mesh Solid option is chosen. The Property Estimate Resolution settings affect the accuracy with which the mass moment is calculated. This determines how accurately the rotation of the object responds to torque. Grid A sample grid is used to calculate the mass moment. The smaller the cells in the grid, the more accurate the calculation. The grid cells are measured in centimeters, regardless of the current display unit. Override Automatic Resolution Lets the Dynamics utility automatically set the grid size based on the complexity and size of the object. In addition, the lowest value that will be automatically calculated is plugged into the Grid spinner (which is also unavailable). If you want to specify your own grid value using the Grid spinner, but want some idea of where to start, turn off Automatic Resolution and then turn it back on again. Edit Object List Dialog Utilities panel > Utilities rollout > More button > Dynamics > Dynamics rollout > Edit Object List button > Edit Object List dialog The Edit Object List dialog lets you select the objects to include in a dynamics simulation. Highlight objects from the Objects in the Scene list on the left, and then click the > button to place them in the Objects in the Simulation list on the right side of the dialog. Dynamics Utility | 3873 The Exclude and Include option buttons above the right window determine whether the items listed are excluded from or included in the simulation. NOTE All the selection and inclusion dialogs in the Dynamics Utility are displayed and function similarly. Interface Objects in the Scene To add scene objects to the simulation (assuming Include is chosen), select objects from the list on the left, then use the > button to move them to the list on the right. Search Field The edit box above the Scene Objects list lets you search for object names by entering names that use wildcards. For example, searching for "sphere*" finds all objects whose names start with "sphere". 3874 | Chapter 15 Animation Objects in the Simulation To exclude objects from the simulation (assuming Include is chosen), select objects from the list on the right, then use the < button to move them to the list on the left. Exclude/Include Choose whether the simulation will exclude or include the objects named in the list on the right. If you choose Exclude, only objects in the list on the left are included in the simulation. All/None/Invert Affect the list on the left. All selects all objects, None deselects all objects, and Invert selects unselected objects and deselects selected objects. Display Subtree Turn on to indent the list according to the object hierarchy. Case Sensitive Turn on to use case sensitivity when searching for object names. Select Subtree Selects all objects in a hierarchy at the level you click and below. Selection Sets Displays a list of named selection sets. Choosing a selection set from this list selects those objects in the Scene Objects list. Clear Clears all entries from the Exclude/Include list on the right. Skin Utilities Utilities panel > More button > SkinUtilities Skin Utilities provide a method for copying skin data (envelopes and vertex weights) from one model to another. Skin Utilities work by embedding the skin data in a copy of the source mesh, then using the object copy to map the data onto the target mesh. To use Skin Utilities, you must have two meshes to which the Skin modifier on page 1672 has been applied, both in the current scene. You must have already assigned bones to the Skin modifier for both meshes. NOTE Skin Utilities work by matching bones from one character to another, so the task of copying the skin data will be greatly simplified if you name the bones in each mesh with similar naming conventions. Skin Utilities | 3875 Procedures To use Skin Utilities: 1 Load a scene that contains two skinned meshes, one from which you want to extract the skin data, the other to which you want to paste it. 2 Select the source mesh, the mesh with the correct envelopes and vertex weights. 3 Choose Utilities panel > More button > Skin Utilities. 4 Click Extract Skin Data to Mesh. A new object is created, identical to the selected object. This is a new mesh with all envelope-assigned and manually-assigned vertex weights “baked” into the mesh. The object is named with the prefix SkinData_ followed by the same name as the original object. 5 Move the skin data mesh on top of the mesh to which you would like to paste the skin data, so the two meshes are coincident. 6 If necessary, adjust the skin data object at the Vertex sub-object level to make it fit the other mesh as closely as possible. 7 Select both the skin data object, and the object to which you want to paste the data. 8 Click Import Skin Data From Mesh. The Paste Skin Data dialog appears. 9 Match up the bones by highlighting one on each side of the dialog, and clicking the left arrow to move the target bone to its match on the left side. You can also highlight several bones on each side at once, and click the left arrow to move them all over at the same time. Only bone pairs on the left side of the dialog will be pasted. 10 If the meshes' vertices do not match exactly, set the Interpolation method to Match by Face, and increase the Threshold to a unit value that will allow the meshes' faces to match up. 11 Click OK to paste the vertex weights and close the dialog. 12 Delete the skin data mesh. 3876 | Chapter 15 Animation Interface Extract Skin Data to Mesh Extracts the skin data from the selected mesh and embeds it in a new mesh named SkinData_ followed by the original object name. NOTE The skin data is stored in channels. To see the data, select the SkinData_ mesh and use the Channel Info Utility on page 6047. Import Skin Data From Mesh Opens the Paste Skin Data dialog. Before clicking this option, you must select the SkinData_ mesh and the mesh to which you want to paste the data. Skin Utilities | 3877 Paste Skin Data dialog To use the Paste Skin Data dialog, highlight matching Target Bones and Source Bones, and click the left arrow to match them. Only matched sets of bones listed under Target Bones will be mapped when you click OK. Target Bones Lists target bones available for matching, and lists matches moved from the Source Bones listing with the left arrow. Source Bones Lists source bones available for matching. Add Adds removed bones back to the source or target list. Remove Removes highlighted bones from the source or target list. 3878 | Chapter 15 Animation Remove Suffix If bone names end with an underscore followed by text, this removes the suffix from the displayed bone names from the underscore to the end of the name. Use this option to remove suffixes and make source and target bone names match, which will allow you to use the Match by Name option. Remove Prefix If bone names start with text followed by an underscore, this removes all characters from the displayed bone names up to and including the underscore. Use this option to remove prefixes and make source and target bone names match, which will allow you to use the Match by Name option. Left Arrow Matches highlighted target bones to highlighted source bones. The source bone name is moved to the left side of the dialog, where it follows the target bone name. You can also match more than one source bone to a single target bone by highlighting the target bone and the source bones and clicking the left arrow. When you click OK, only the matches listed on the left side of the dialog will be mapped. Right Arrow On a highlighted match on the left side of the dialog, removes the match and moves the source bone to the right side of the dialog. Match by Name Matches the source and target bones by name. You can use this option only if you have removed prefixes or suffixes to make the displayed source and target bone names match exactly. Threshold Sets the unit distance that the utility will search for vertex or face matches. Default=1.0. Interpolation Sets the method by which pasting will take place. Use the Match by Vertex option only if the meshes are identical. Otherwise, use Match by Face. Default=Match by Vertex. Skin Utilities | 3879 3880 reactor 16 reactor is a toolset that allows animators and artists to control and simulate complex physical scenes in 3ds Max. reactor supports integrated rigid and soft body dynamics, cloth simulation, and fluid simulation. It can simulate constraints and joints for articulated bodies. It can also simulate physical behaviors such as wind and motors. You can use all of these features to create rich dynamic environments. Once you have created an object in 3ds Max, you can assign physical properties such as mass, friction, and elasticity to it with reactor. Objects can be fixed, free, attached to springs, or attached together using a variety of constraints. By assigning physical characteristics to objects like this, you can model real-world scenarios and then simulate them to produce physically accurate, keyframed animations. After you set up your reactor scene, you can preview it quickly using the real-time simulation display window. This allows you to test and play with a scene interactively. You can alter positions of all physical objects in the scene, dramatically reducing the design time. You can then transfer the scene back into 3ds Max with a single mouse click while retaining all the properties needed for the animation. reactor frees you from having to hand-animate time-consuming secondary effects, like exploding buildings or draping curtains. reactor also supports all standard 3ds Max functionality such as keyframes and skinning, so you can use both conventional and physical animation in the same scene. Convenient utilities, such as automatic keyframe reduction, let you tweak and alter the physically generated parts of an animation after it has been created. The remainder of this chapter describes each of reactor's features in detail. Also, the included tutorials step you through creating some typical reactor scenes. Together, we hope these will help you to get the most from reactor. If you would like to find out more about dynamics simulation, see Introducing Dynamics Simulation on page 3889. 3881 Getting Started This section shows you where to find the various reactor options in 3ds Max, as well as introducing you to reactor's helper icons. You'll see how to use each of the options in the relevant section of this guide. Command Panel You can use the reactor options on the Create panel to create various reactor elements. To find most reactor objects, go to the Helpers sub-panel, and then, from the drop-down list, choose reactor. You can also find a space warp, used for water on page 4074, in Space Warps > reactor. 3882 | Chapter 16 reactor Once you've created a reactor object, selecting the object and opening the Modify panel allows you to configure its properties. | 3883 There are also three reactor modifiers, used to simulate deformable bodies on page 4024: 3884 | Chapter 16 reactor You'll find most of the remaining reactor functions on the Utilities panel. This provides access to functionality such as previewing the simulation, changing world and display parameters, and analyzing the convexity of objects. It also lets you see and edit the rigid body properties associated with objects in the scene. | 3885 NOTE The reactor menus and toolbar provide shortcuts for many of the reactor functions provided in the command panel. 3886 | Chapter 16 reactor The reactor Toolbar The reactor toolbar is a handy way to access much of reactor's functionality. It has buttons that let you quickly create constraints and other helpers, display physical properties, generate animations, and run the real-time preview. To display the reactor toolbar: 1 Right-click an empty area of the main toolbar to display a list of available toolbars. 2 Click reactor. The reactor Submenu | 3887 The main reactor submenu, available from the Animation menu, is another way to access reactor functionality. The reactor Quad Menu A further quick way to access reactor options is the reactor quad menu. To open this menu, press Shift+Alt and right-click in the active viewport. Helper Icons Many reactor elements, such as constraints and the Rigid Body Collection, have their own special helper icon that appears in the viewport when you add them to the scene. For instance, the following illustration shows the Hinge constraint icon: 3888 | Chapter 16 reactor Although the helper icon doesn't appear in your rendered scene, the icon's appearance (and in some cases, its position and orientation) will help you to set up your reactor scene correctly. When selected, reactor icons are white and are also larger than when not selected. When not selected, the icon for a valid element is blue, and for an invalid element is red. What constitutes validity depends on the particular reactor element. For instance, a hinge on page 3969 is valid if it has the correct number of objects attached to it; a Rigid Body Collection on page 3922 is valid if it's not empty. Invalid elements are excluded from the simulation, and reported as errors. Certain icons provide additional information about how the element behaves in the simulation. For example, the display for a valid hinge indicates the hinge position, and, when selected, the hinge axis and any limits you have specified for the movement of the hinged bodies. Introducing Dynamics Simulation This section gives a broad overview of physical simulation, and introduces some concepts you might find useful when working with reactor. Physical Simulation http://www.havok.comHavok’s physics technology, used in reactor, relies on a process known as physical simulation in order to provide a dynamic environment for the objects in a scene. So what exactly does physical simulation mean? It is a process that automatically determines the motion of objects according to their physical properties. It achieves this by encapsulating some physical laws, like Newton’s laws of motion, within a robust, efficient engine, which Introducing Dynamics Simulation | 3889 calculates the position of each object as time passes. In much the same way that a motion picture is composed of many individual images or frames, physical simulation splits time into small discrete steps and predicts the motion of each object during each step. The cumulative effect of all these steps is fluid, continuous, believable motion. Unlike traditional keyframe-based animation, where the animator needs to specify a set of keyframed configurations, physical simulation determines how objects move based their properties. This takes the burden from the animator, who now doesn't need to manually animate every piece in an explosion, every bone in a character stunt animation, or every vertex in a piece of cloth. In a physical simulation, physical properties such as mass and elasticity are assigned to all objects in a scene. This is then complemented with a set of external forces like gravity or wind and/or constraints, like a spring force or a ball-socket configuration. From all this information, the physics engine calculates a continuous set of states that can then be displayed in real-time, if the calculations are fast enough, or converted into keyframes to be played back later. What Does A Physics Engine Do? A physics engine like Havok has three basic tasks to perform: 1 Collision Detection Track the movement of all the objects in the scene and detect when any of them have collided. 2 Update System Determine an appropriate response for objects that have collided by resolving the collision according to the object properties and for all other (non-colliding) objects update them according to the forces acting on them. 3 Interface with Application Once reactor determines the new positions and state of all objects, it can display the objects in a 3D window or store their states in the form of keyframes. NOTE A physics engine knows nothing about how the objects it is simulating are displayed. It simulates the motion and interaction of these objects based on a physical (not graphical) description of the objects, and this information can be used to generate a display that “tracks” the simulation. 3890 | Chapter 16 reactor Given that we are talking about simulating a continuously evolving state (in other words, objects are moving and colliding and reacting all the time in general), we need to map this to a series of snapshots in order to generate an animation. In a computer game, for example, we typically want to display the world 60 times per second, because this is how frequently many graphics systems can redraw the screen. When creating an animation, we may want to store the state (that is, create a keyframe) for every frame. At 60 FPS, for example, this would also create 60 keyframes every second, What this really means is that the physics engine must be capable of evolving the world by 1/60th of a second knowing the state of all the objects at the start of this time interval and knowing the external forces acting on these objects. As an example we'll look at the simple case of a cannon ball and we’ll assume we're interested in animation at 60Hz (Hz = cycles or frames per second). Simulating a Cannon Ball Let’s forget about collisions for now, and consider only the simulation of a cannon ball immediately after it has been fired from the cannon. We know the ball’s position (and orientation, but we'll ignore this for now), speed, acceleration, and weight, and we assume we know the state of the environment (air resistance, wind force, gravity). Armed with this knowledge we can start to make predictions using a physics engine. This figure illustrates what we would like to achieve. Over a period of time the cannon ball’s rate of ascent should slow due to gravity, and it should eventually fall to the ground having traveled through a classic parabolic arc (assuming no air resistance). At a given point in time we can examine the state of the ball (its speed v and acceleration a) and knowing the external forces acting on it we can make a guess as to its change in position after a period of time has elapsed (call this period h seconds). This guess is a combination of a number of factors: ■ We assume that Newton’s laws of motion govern the motion of the ball Introducing Dynamics Simulation | 3891 ■ We assume that in the time period h all the external forces acting on the ball are constant, so air resistance and wind and gravity do not change during this time. ■ We assume that the math we use to calculate the new position is accurate In general, the first assumption is usually valid, except at relativistic or quantum scales, which we can assume should be handled by other systems. The remaining two, however, cause problems and are closely linked to the time period h over which we’re performing the calculations. We’ll now examine the effect of the size of this time period on the accuracy of the simulation. Time Steps In general, the forces acting on an object are rarely truly constant; gravity is close to being constant, but most other forces like wind and air resistance are not. So, taking the cannon ball example, imagine a windy layer in the atmosphere that the cannon ball passes through, as shown in the next figure. In the simulation on the left we assume we’re taking steps of one second; this is actually a relatively large interval for a physics simulation, but is used here to illustrate the point. We know all the forces acting on the ball at time t1 so we use some math to predict the new position and velocity at time t2, after one second has elapsed. During this period, we assume that the wind force acting on the ball is constant. In this example, we’ll calculate the new position above the region of high wind, so we’ll effectively have missed the windy bit by taking too great a jump. In the second example on the right, we’re using time steps of ½ second. In this case, after determining the new position at 3892 | Chapter 16 reactor time t2 we find the ball in the middle of the windy region. This region causes a large wind force to act on the ball which is taken into account during the next time step. At that point we reevaluate the math and determine a new position for the ball at time t3. This is different from the position determined in the simulation on the left, even though the same amount of time has been simulated in each case. In other words, the wind has blown the ball to the left a bit and has reduced the velocity of the ball In general, the smaller the time step taken, the more accurate the result at the end of the time step. Thus, to step forward in time by a large time step t it is better to split this into n steps of a smaller time interval t/n. This is also true of the math. As the simulation becomes more complex, the math required to calculate the new positions and velocities of objects in a simulation also becomes more complex, and as a result the guesses produced by the math give progressively less-accurate results. So the principle is to take small time steps, evaluate all the forces acting on the objects, determine the new positions and velocities (and other parameters) of the objects at the end of the time steps, and then start over. We end up with a series of snapshots of the state of the system as it evolves, as shown in the following illustration. Introducing Dynamics Simulation | 3893 Substeps In the previous section, we said that the physics engine passes on the necessary information to update the display after it determines the new positions for all its objects. However, what if you don't want to update the display in each simulation time step? Let's say we absolutely need to update the application once every 1/60th of a second, either because we're playing a real-time game that refreshes the screen at 60Hz. or we're creating a keyframe every frame for a 60FPS movie. This effectively means that we want to step the physics engine at intervals of 1/60th of a second. In many cases this does not present a problem, but if, hypothetically, the accuracy of the simulation was not sufficient (remember: smaller time steps mean better accuracy), then we’d like to decrease the time step even further, say to 1/120th of a second. But this would mean we generate twice the number of images/keyframes we are interested in, which is wasteful. To get around this, the Havok engine allows you to specify the number of substeps to take per key. The Substeps/Key parameter specifies the number of steps the physics engine takes before updating the application. This gives control over the granularity of the physics simulation independent of the display update or keyframe-creation frequency. So with Substeps/Key=1, reactor uses a single simulation step for each update to the 3D display. With Substeps/Key=2, reactor takes two physics steps each time before updating the application, and so on. 3894 | Chapter 16 reactor In this figure, we have specified that the physics simulation should step at intervals of 1/240th of a second, but that we create a keyframe only once every 1/60th of a second. The red spots indicate a keyframe and simulation step, the yellow spots are simulation steps only. This was achieved by instructing the physics engine to employ four substeps per key. Thus, for each four simulation steps we create only keyframe. By setting the number of substeps we can control the accuracy of the physical simulation independent of the number of keyframes created. Rigid Bodies and Deformable Bodies Rigid Bodies Havok simulates most objects in a simulation as rigid bodies. A rigid body is an object whose geometry doesn't change over the course of the simulation. You can simulate any real-world object that doesn't noticeably change its shape, from a pen to a boulder hurtling down a mountainside, as a rigid body. Simulating objects in this way facilitates rapid physical simulation in real Introducing Dynamics Simulation | 3895 time; the physics engine can make certain assumptions when detecting collisions based on the fact that the objects' shapes don't vary from simulation step to simulation step. Both the Havok 1 and Havok 3 engines can simulate rigid bodies, but Havok 3 simulations are faster and more accurate. Deformable Bodies To simulate cloth, rope, or other material whose shape changes over time, you need to use a different type of body: a deformable body. With deformable objects, collision detection becomes much more difficult, given that the object can change shape dramatically between time steps and can also attempt to collide with itself. For this reason, deformable bodies are more expensive to simulate. NOTE Only the Havok 1 engine can simulate with deformable bodies. Scale Our scientific knowledge of physics is extensive. What we are concerned with here would more accurately be described as a mechanical simulation of the interactions of objects at real-world scales. We are dealing with Newtonian mechanics; that is, the well-understood laws of motion, popularized by Sir Isaac Newton, that describe the behavior of objects under the influences of other objects and external forces. Since then we’ve discovered that these laws break down at very small (i.e. subatomic) and very large (i.e. planetary) scales. New physics systems have been devised to work with these scales (for example, relativistic and quantum), but these are beyond the scope of the reactor physics engine. The Havok physics simulation technology works at the scale of objects we interact with on a daily basis, such as chairs, cars, buildings, and footballs. By default, the engine works in units of meters and kilograms. It's important to keep in mind the scale in which you're working. For example, a common mistake people make is to start by creating a cube 100 meters on a side, and then they wonder why it takes so long to fall. A box of this size when viewed at a distance sufficient to be able to see the entire box (say 1km away) will appear to fall at the same speed as an aircraft hangar dropped from a height and viewed from a kilometer away: slowly. Changing Scale The Havok physics engine does not care what units of measurement you use when specifying the size of objects or the strength of gravity; it cares only 3896 | Chapter 16 reactor about the numbers. So you could, for instance, work in inches. However, for realistic (or at least predictable) results, it's important to be consistent. So, for instance, if you're working in meters, make sure gravity is set to an appropriate value in meters. To produce Earth-like gravity, use 9.8 m/s2. Otherwise objects might appear to fall faster or slower than you expect. NOTE Due to CPU floating-point precision, a physics engine is most accurate when dealing with numbers as close in magnitude to 1 as possible. In other words, values like 10,000,000 work poorly, as do values like 0.0000001. Therefore, for real-world scenes, when creating objects of 1*1*1 size it is most useful to be working in meters or feet, rather than centimeters/inches or kilometers/miles, in that you most often simulate objects larger than sugar cubes and smaller than football fields. It is for this reason that the default values in many physics engines are usually specified in meters. Special Features in reactor A number of reactor features enhance speed and usability. The software lets you create new and better animations that were virtually impossible without reactor, and you can set up those animations in an efficient, intuitive way. Here we present some of the main features in reactor. Two Simulation Engines From the reactor utility interface, you can choose to run your simulation with either of two engines: Havok 1 or Havok 3. Special Features in reactor | 3897 If your reaction involves cloth, rope, or soft bodies, you'll need to stick with Havok 1, the version included with previous releases of 3ds Max. However, if you're using rigid bodies only, you can take advantage of the enhanced accuracy available in Havok 3. For more information, see The reactor Utility on page 4083 and Havok 1 World/Havok 3 World Rollout on page 4087. Integrated User Interface The reactor interface is fully integrated in 3ds Max. You can access functionality in reactor through menus, quad menus and toolbars. All 2D and 3D icons follow a consistent look and feel. The reactor utility on page 4083 parameters are arranged for easy access. You can find more details in: ■ reactor on page 3881 ■ The reactor Utility on page 4083 Vertex Selection Inside reactor Modifiers The reactor modifiers for deformable bodies on page 4024: Cloth, Soft, and Rope, let you select vertices and apply constraints (fix points, keyframe points, attach to rigid body, attach to deforming mesh) to those vertices without leaving the modifier or having to apply extra modifiers. You can create and manipulate deformable constraints on page 4061 inside the modifier. 3898 | Chapter 16 reactor Cooperative Constraints reactor includes a number of cooperative constraints on page 3943 that facilitate the simulation of articulated bodies and machinery. Special Features in reactor | 3899 The Rag Doll constraint on page 3948 allows the simulation of constrained bodies with relative rotation and twist angles limits similar to those found in human and animal joints The Hinge constraint on page 3969 allows the simulation of hinges (limited or not) and hinge-like joints where movement is limited around a specified axis, like elbows and knees The Prismatic constraint on page 3982 allows the simulation of translation-only joints (limited or not) like those found in robots and machinery The Car-Wheel constraint on page 3988 is particularly suited to the simulation of wheels attached to a chassis. The wheels rotate (and can be powered) about a given axis. Limited linear motion relative to the chassis is allowed along a user-defined suspension axis. Using Point-Point constraint on page 3975 with the Limited option lets you limit the relative rotation of the attached objects by a given degree around each axis. Using Point-Point on page 3975 with the Stiff Spring option constrains both objects as though attached by a fixed-length bar (a very stiff spring). 3900 | Chapter 16 reactor Fracture Object The Fracture on page 4010 object in reactor offers excellent usability and behavior. Objects inside Fracture are standard Rigid Bodies and, as such, you can add them to constraints, assigned initial velocities, etc. You can tell pieces to break at a specific time. Constraint Manipulation and Constraint Spaces Constraints on page 3925 in general restrict the relative movement between two bodies (parent and child) or between a body (child) and the world, and use consistent, intuitive nomenclature and setup methods. Springs, linear dashpots and angular dashpots are referred as Simple Constraints on page 3930, while the other constraints (those that are grouped with a Constraints Solver on page 3945) are referred to as Cooperative Constraints on page 3943. Special Features in reactor | 3901 In reactor, you define the effect of constraints by the specifying and manipulating two constraint spaces on page 3927. Limits, such as minimum and maximum rotation angles, are defined and displayed around those spaces, which you can modify using sub-object manipulation. reactor provides tools for automatically aligning and manipulating those spaces. Storage and Access of Collision Information reactor can store information of all rigid body collisions occurred during the simulation. The information includes the objects involved, the point of collision, and the relative velocity during collision, and can be used by animators to generate particles or other effects, trigger sounds, etc. You can access the information via MAXScript and save it to a text file. 3902 | Chapter 16 reactor For more information, see Storing and Accessing Collisions on page 4019. Support for Global Collisions In reactor, you can enable or disable collisions globally instead of inside the Rigid Body Collection on page 3922. The software stores disabled collisions inside the reactor Utility on page 4083. You can disable collisions not only for rigid bodies, but also for cloth, soft and rope. And you can access disabled collisions through MAXScript. Special Features in reactor | 3903 Animatable Wind You can animate most parameters in the reactor Wind on page 4079 object, including wind speed and direction. Range and Falloff parameters let you set up the range of action for the wind. Cloth/Soft/Rope Attachments to Deforming Meshes (Skin) The Attach to DefMesh on page 4069 deformable constraint allows vertices in cloth, soft bodies, and rope to follow a non-rigid mesh such as skin. 3904 | Chapter 16 reactor Soft Selection for Cloth/Soft/Rope The deformable on page 4024 (cloth/soft/rope) modifiers in reactor can now use the soft selection flowing to that modifier and blend the current vertex animation with the reactor animation, facilitating the transition between skin-driven and reactor-driven animation Special Features in reactor | 3905 Floating Rigid Body Property Editor In reactor you can change the rigid body properties on page 3909, like mass, elasticity or friction without having to use the reactor Utility on page 4083. You can open a floating MAXScript window to modify rigid body properties from the reactor menus, quad menus, and toolbars at any time. 3906 | Chapter 16 reactor MAXScript Access Virtually all parameters and functionality in reactor are accessible through MAXScript. Animation Features reactor can automatically create list controllers (or character studio layers) to store the animation of rigid bodies. For more information, see Preview & Animation Rollout on page 4085. Also, the ragdoll script on page 4104 is aware of being applied to character studio bipeds, and, in such cases, sets up the constraints so that, when you create an animation, the biped is physically animated. reactor Helpers Create panel > Helpers > reactor reactor Helpers | 3907 Animation menu > reactor > Create Object This topic simply provides links to the various helper objects that are part of the reactor system. Interface Rigid Body Collection on page 3922 Constraint Solver on page 3945 Point-Point Constraint on page 3975 Point-Path Constraint on page 3995 Hinge Constraint on page 3969 Rag Doll Constraint on page 3948 Car-Wheel Constraint on page 3988 Prismatic Constraint on page 3982 Linear Dashpot on page 3934 Angular Dashpot on page 3939 Cloth Collection on page 4034 Deforming Mesh Collection on page 4059 Rope Collection on page 4055 3908 | Chapter 16 reactor Soft Body Collection on page 4046 Fracture on page 4010 Motor on page 4001 Plane on page 3999 Spring on page 3930 Toy Car on page 4003 Wind on page 4079 Rigid Bodies The rigid body is the basic building block of reactor simulations. You can use a rigid body in reactor to simulate any real-world object that doesn't change its shape, from a pen to a boulder hurtling down a mountainside. You can create a rigid body using any geometry in a 3ds Max scene. reactor then lets you assign the properties the object should have in the simulation, such as mass, friction, and whether the body can collide with other rigid Rigid Bodies | 3909 bodies. You can also restrict the possible movement of your rigid bodies in the simulation using constraints such as hinges and springs. This chapter shows you how to create and work with rigid bodies in reactor. It includes the following topics: Rigid Body Basics on page 3910 Rigid Body Collection on page 3922 Constraints on page 3925 Plane on page 3999 Motor on page 4001 Toy Car on page 4003 Fracture on page 4010 Storing and Accessing Collisions on page 4019 To find out how to simulate objects that change their shape over time, see Deformable Bodies on page 4024. Rigid Body Basics You can make a rigid body from any geometry in your scene. A rigid body can be a single object, or it can comprise several objects grouped together, known as a compound rigid body on page 3920. If you designate an object whose geometry changes over time as a rigid body, the simulation uses its geometry at the start frame. reactor lets you assign the physical properties that each body will have in the simulation, such as mass, friction, and whether the body can collide with other rigid bodies. You can specify a proxy geometry for a rigid body, which allows reactor to treat the rigid body as an easier-to-simulate shape for the purpose of the simulation. You can also specify how your rigid body should be displayed when previewing the simulation. An object is simulated as a rigid body after you have added it to a Rigid Body Collection on page 3922; you can edit its rigid body properties before or after you do this. This section tells you how to: Edit rigid body properties on page 3911, including ■ physical properties on page 3912 3910 | Chapter 16 reactor ■ simulation geometry on page 3914 ■ display properties on page 3920 Rigid Body Properties Utility panel > reactor > Properties Animation menu > reactor > Open Property Editor reactor toolbar > Open Property Editor button You assign physical properties, simulation geometry, and display properties to a rigid body using the Rigid Body Properties rollout or dialog. The interface consists of three rollouts or sections, each of which is described in detail in this topic. Procedures To edit the properties of a rigid body: 1 Select the appropriate object in the scene. 2 Open the Properties rollout or dialog. If the item you have selected cannot become a rigid body (for example, if it is a helper object such as a Rigid Body Collection), or if you have no object selected, the dialog still displays when you choose this option, but its controls are unavailable until you select a valid object. 3 Use the settings to specify the required properties, as described in the following sections. Rigid Body Properties | 3911 Interface Physical Properties Mass A rigid body’s mass governs how the object interacts with other objects. When its mass is set to 0.0 (the default value), the object remains fixed in space during the simulation, although other objects will be able to collide with it. For example, you could use a fixed rigid body to create a slope for other objects to roll down. Other values allow the object to move during the simulation, depending on other circumstances. A valid value for Mass is greater than or equal to 0.0. Friction The coefficient of friction for the object’s surface. This affects how smoothly the rigid body moves relative to surfaces it’s in contact with. The friction values for both objects combine to produce a coefficient for the interaction. To achieve realistic results, use values between 0.0 and 1.0. However, values up to 5.0 are accepted. Elasticity This value governs the effect collisions have on the velocities of the rigid body; in other words, how "bouncy" the object is. Like Friction, this is a pair-wise coefficient: When two objects collide, their elasticity values combine to produce a coefficient for the interaction. To achieve realistic results, use values between 0.0 and 1.0. However, values up to 5.0 are accepted. Inactive When on, the rigid body starts the simulation in an inactive state. This means it requires interaction with another object or system, or the mouse, 3912 | Chapter 16 reactor before it becomes active in the simulation. For example, if you place an object in midair, give it a mass and set it to Inactive, when the simulation starts it sits in midair until something interacts with it. Inactive objects require less computation during simulation. Disable All Collisions When on, the object doesn’t collide with other objects in the scene; it simply passes through them. Unyielding When on, the rigid body takes its motion from the animation it already has in 3ds Max, rather than the physical simulation. Other objects in the simulation can collide with it and react to its motion, but its motion is governed solely by the current animation in 3ds Max, and reactor will not create keyframes for it. Phantom A phantom object has no physical presence in the simulation. Like an object with Disable All Collisions on, it simply passes through other objects. Unlike an object with disabled collisions, however, a phantom maintains collision information about any objects that it passes through during the simulation. You can then use this collision information, for instance, to trigger sounds or other effects. You can find out how to access collision data in the Storing and Accessing Collisions on page 4019. Shell The radius of an extra "shell" around convex shapes, which reactor uses as the shape's surface for collision-detection purposes. The simulation tries to ensure that the distance between this shell and other objects is always more than zero; in other words, that the distance between the original convex shape and other objects is always more than the combined radii of the objects. Default=0.05. IMPORTANT Applies to Havok 3 only. Adding a shell to an object can improve performance. The core convex-convex collision-detection algorithm is fast when objects are not interpenetrating, and slower when they are. Adding a shell makes it less likely that the shapes themselves will interpenetrate, thus reducing the likelihood of using the slower algorithm. Using a shell is thus faster in situations that involve the risk of shapes interpenetrating; for instance, when an object is settling or sliding on a surface, when there is a stack of objects, or when many objects are jostling together. Penet. (Penetration) The amount of penetration reactor permits. To avoid trying to solve insoluble physical problems, the Havok 3 engine allows penetration between objects even if continuous physics on page ?is enabled. Default=0.05. Rigid Body Properties | 3913 IMPORTANT Applies to Havok 3 only. Quality Lets you set individual settings for each object based on the desired level of interaction. Default=Moving. IMPORTANT Applies to Havok 3 only. The available Quality settings are: ■ Debris ■ Moving ■ Critical ■ Bullet Low-importance objects used for adding visual quality. Regular objects that populate the world, such as furniture, etc. Essential objects that are never allowed to interpenetrate. Fast-moving projectiles. Simulation Geometry Lets you specify the physical representation of your object that will be used in the Havok simulation. Proxies reactor supports substituting one object for another in two different ways: geometry proxies and display proxies. Geometry proxies allow you to specify a different body’s geometry as the simulation geometry for an object. For example, you can have a complex object displayed on-screen, but replaced for simulation purposes by a box, which is much easier and faster for reactor to simulate. The box governs the movement of the object, and dictates how it collides, its position, and orientation. However, on-screen you can see the complex object in full detail. Geometry proxies are applied per object. Display proxies replace a rigid body’s display body with that of another object. Therefore, they affect display only during the real-time preview on page 4099 and do not affect animation. They are applied per rigid body, rather than per object. This means that you can create a compound rigid body of several objects and simulate these, but display an alternative mesh for the body during the preview. You can find out how to specify a display proxy in the Display on page 3920 section. 3914 | Chapter 16 reactor Convex and Concave Objects A rigid body primitive is defined as convex if, given any two points inside the object, you can always go in a straight line from one to the other without leaving the object. Convex objects include spheres, cylinders, and boxes. For example, a sphere is convex but a golf ball is concave because of the concavities (dimples) in its surface. Also, by definition, non-closed meshes (planes, hollow hemispheres) are always concave. Convex objects are faster to simulate than concave objects. Because of this, you should aim to use convex objects as often as possible for simulation. Treating concave objects as convex for simulation purposes allows you to take advantage of their faster processing time. This is the default setting for an object’s simulation geometry (Mesh Convex Hull). If you are unsure whether an object is convex or concave, you can perform a convexity test on it. With the object selected, open the reactor - Utilities menu and select Convexity Test. You can specify one of the following simulation geometry options to define how your object will be represented in the physical simulation. To view the simulation geometry for your objects in the preview, as in the following examples, select Sim Edges from the Display menu in the Preview Window. Bounding Box The object is simulated as a box whose extents are determined by the object’s dimensions. Rigid Body Properties | 3915 Bounding Sphere The object is simulated as an implicit sphere. The sphere is centered on the object’s pivot point and then minimally encloses the object’s geometry. 3916 | Chapter 16 reactor Mesh Convex Hull This is the default option. The object’s geometry is passed through an algorithm that creates a convex geometry using the geometry’s vertices, completely enclosing the geometry’s vertices. To visualize this, imagine shrink-wrapping a teapot: The teapot is concave but its shrink-wrap forms a convex hull. Rigid Body Properties | 3917 Proxy Convex Hull The convex hull of another object is used as the physical representation of the object in the simulation. For instance, you could use the convex hull of a low-poly teapot to simulate a high-poly teapot. The proxy object’s pivot point is aligned with that of the rigid body. 3918 | Chapter 16 reactor Concave Mesh The actual mesh of the object is used for simulation. Although the convex hull of an object and the object’s actual mesh may be exactly the same shape, using the convex hull simulates much more quickly, as reactor can make certain assumptions for convex objects. If you try to use Concave Mesh for a convex object you will get a warning. Not heeding such warnings could dramatically reduce the speed of your simulation. In some cases, though, you might want to ignore that warning. If, for example, you want to place objects inside a convex object, and make them collide with the internal faces of that object, you should simulate it as concave instead of convex. NOTE If you are using a standard 3ds Max plane as a rigid body (as opposed to the special reactor Plane on page 3999 object), you must set its simulation geometry to Concave Mesh. Proxy Concave Mesh Another object’s concave mesh is used as the physical representation of the object. For example, you can use a low-poly teapot to animate a highly tessellated teapot. The proxy object’s pivot point is aligned with that of the rigid body. Rigid Body Properties | 3919 Not Shared This option is active only when multiple objects with different Simulation Geometry settings are selected, and cannot be chosen by the user. Display Use Display Proxy When on and you specify a proxy object by clicking the Proxy button, reactor displays the specified proxy In the Preview Window in place of the object. Compound Rigid Bodies Rigid bodies can be made of one or more objects, or primitives. For instance, if you assign physical properties to an object in a scene and add it to a Rigid Body Collection, we say that the rigid body has one primitive. However, reactor 3920 | Chapter 16 reactor can also simulate a rigid body made up of more than one primitive. To do this, you need to group objects together using the 3ds Max Group menu. You can then add the group to the collection, and the objects in the group then become the primitives that make up the rigid body. Creating such compound rigid bodies can be useful, as it is much faster to simulate a rigid body made up of convex pieces than to simulate a more complex concave shape. In addition, the primitives that make up a compound rigid body can have different masses, so you can create rigid bodies that have nonuniform mass distribution. For example, you can create a hand axe where the head is heavier than the handle, so that if you toss the axe it spins around its head. You can do this because the Mass property on the Rigid Body Properties dialog is assigned to a specific primitive rather than an entire rigid body, unlike most of the other properties in this dialog. For single-primitive rigid bodies, this distinction is unimportant. However, in the case of a compound rigid body, the group parent is the rigid body and cannot have a Mass value assigned: Mass can be assigned only to its children, the primitives. Simulation geometry is also defined at a primitive level, so you can combine concave and convex hull geometries in a single rigid body. Procedures To create a compound rigid body: 1 Arrange the objects to use to make up your compound rigid body. 2 Select all of the objects. 3 From the Group menu, choose Group. Compound Rigid Bodies | 3921 Your objects are now all child objects of a new group parent. You can add this parent object to a Rigid Body Collection. To edit compound rigid body properties: 1 With the compound rigid body selected, choose Group > Open. 2 To edit the compound rigid body’s properties, select the parent (dummy) and go to the properties rollout of the utility or open the Rigid Body Properties dialog. You cannot edit the Mass or Simulation Geometry values for a group parent because they are primitive properties. TIP It's easier to select a group parent using the Select Objects dialog on page 232 with Display Subtree enabled: The group parent is displayed above its members. 3 To edit one of the rigid body’s primitive’s properties, select the appropriate child and go to the Properties rollout of the utility or open the Rigid Body Properties dialog. You can give this object a Mass value and, if you wish, change its Simulation Geometry setting. Specifying any other rigid body properties for a child object has no effect unless you remove the object from the group. Rigid Body Collection Create panel > Helpers > reactor > RBCollection Animation menu > reactor > Create Object > Rigid Body Collection reactor toolbar > create Rigid Body Collection button The Rigid Body Collection is a reactor helper object that acts as a container for rigid bodies. Once you have added a Rigid Body Collection to your scene, you can add any valid rigid bodies in the scene to the collection. You can find out more about rigid bodies in the Rigid Body Basics on page 3910 section. When you run the simulation, reactor examines the Rigid Body Collections in the scene and, provided the collections are not disabled, adds the rigid bodies they contain to the simulation. At a lower level, a collection also allows you to choose the mathematical method to be used for solving the rigid body behaviors for its member bodies. 3922 | Chapter 16 reactor Procedures To create and use a Rigid Body Collection: 1 Choose any of the above commands, and then click in any viewport to add the Rigid Body Collection. NOTE The icon’s position has no effect on the collection’s behavior. The collection icon is added to the scene. You can add rigid bodies to the collection in two ways: by picking or by using a selection list. 2 Add objects to the collection using either (or both) of these methods: ■ On the RB Collection Properties rollout, click the Pick button, and then in the viewport click an object to add. ■ On the RB Collection Properties rollout, click the Add button, and then use the Select Rigid Bodies dialog to specify one or more objects to add. To create a collection and add bodies in a single step: 1 Create and select the object(s) to add to the collection. 2 Create the collection using the reactor toolbar, reactor menu, or quad menu. reactor instantly places the collection in the scene and adds the selected objects to the collection. Rigid Body Collection | 3923 Interface RB Collection Properties rollout Highlight Cause the objects in the Rigid Bodies list to display momentarily in the viewports as if selected. Rigid Bodies Lists the names of the objects in the Rigid Body Collection. Pick Lets you add an object to the Rigid Body Collection. Click this button, then in the viewport move the cursor over the object you would like to add to the collection. If the object can be used as a rigid body the cursor will change from an arrow to a cross and you can select the object to add it to the collection. Add Lets you add one or more objects from the scene to the collection. Click the button to open the Select Rigid Bodies dialog. Make a selection in the provided list, and then click the Select button to add the objects to the collection. Delete Lets you remove objects from the collection. In the rigid bodies list, select the bodies you would like to remove from the collection and click this button. 3924 | Chapter 16 reactor Disabled When on, the collection and the bodies it contains are not added to the simulation. Advanced rollout ODE Solver Lets you choose the method by which reactor simulates the collection: ■ Euler The collection calculates the behavior for its rigid bodies using an Euler ODE (Ordinary Differential Equation) solver. Euler is a fast method that provides good results in most cases. ■ Runge-Kutta This method is more accurate in some cases but requires more computation. Use Runge-Kutta if you have many object connected using simple constraints on page 3930 like springs or dashpots, because those kind of systems can easily become unstable. Reset Default Values Sets values for the collection to their defaults. In this instance, it sets the ODE Solver back to its default value. Constraints With reactor, you can easily create a simple physical simulation by simply assigning rigid body properties to objects and adding them to a Rigid Body Collection. When you run the simulation, objects can fall from the sky, slide across each other, bounce off each other, and so on. However, let's say you want to simulate a real-world scene such as a person pushing open a door. How, for instance, do you make sure that the door rigid body doesn't just fall onto the ground, or that it swings out in the proper direction when pushed? To accomplish this you use constraints. These let you restrict the possible movement of objects in the physical simulation. Depending on the type of Constraints | 3925 constraint you use, you can hinge objects together, attach them together with springs that will snap back if the objects are pulled apart, or even simulate the movement of a human body joint. You can constrain objects to each other or to points in space. This section shows you how to work with constraints in reactor. It includes the following sections: Constraint Concepts on page 3926 Simple Constraints on page 3930, which includes the following topics: ■ Spring on page 3930 ■ Linear Dashpot on page 3934 ■ Angular Dashpot on page 3939 Cooperative Constraints on page 3943, which includes the following topics: ■ Constraint Solver on page 3945 ■ Rag Doll Constraint on page 3948 ■ Hinge on page 3969 ■ Point to Point on page 3975 ■ Prismatic on page 3982 ■ Car-Wheel on page 3988 ■ Point to Path on page 3995 Constraint Concepts This section introduces some common concepts that you'll need to understand to work with any of the reactor constraint types. Constraints, Simple Constraints and Cooperative Constraints You use constraints in reactor to specify limitations in the movements of objects. Without constraints, the movement of objects could be limited only by collisions and deformations. This is the case in the real world: For example, a door's movement is limited by a set of pieces that form a hinge; the collisions between those objects limit the movement of the door. The motion of two 3926 | Chapter 16 reactor objects attached by a spring is limited by the deformation of the spring. A train can move only along the path defined by a rail due to the collisions of its wheels with the rail. In many cases, though, it is preferable to specify explicitly the effect of those objects (hinge, spring, rail) rather than model them and simulate them. This is what constraints are for. A constraint lets you limit the way an object can move. Once you specify a constraint, reactor tries to enforce it during the simulation. For example, you can use a Hinge on page 3969 constraint to simulate the effect of an actual hinge on an object: No translation is allowed, and rotation is allowed around only one axis. Similarly, you can use a Spring on page 3930 constraint to simulate the effect of a spring (translation is limited to a certain length); or a Point-Path on page 3995 constraint to simulate the effect of a rail (translation and orientation are limited to follow a path). Sometimes you will have a system of many objects constrained together. For example, if you want to simulate a character falling down the stairs, you might constrain the different bones of the character using many constraints (like Rag Doll on page 3948 or Hinge on page 3969). Because all the bodies are connected, maintaining one constraint may affect the other constraints, so it is better if they are simulated together, so they are aware of each other. Thus, some constraints require you group them so they can be solved as a system. Those constraints are called Cooperative Constraints on page 3943 and are usually more stable, although they can be slightly slower to simulate. The other constraints, Simple Constrains on page 3930, cannot be grouped and therefore are more prone to instability in complex scenes, but are faster to simulate. Constraint Spaces In rigid body dynamics, each body has six degrees of freedom to move: ■ three translational degrees of freedom ■ three rotational degrees of freedom Each type of reactor constraint can remove or limit one or more of these degrees of freedom for its constrained bodies. Depending on the number and type of these limitations, we get different types of constraint, from the simple Point-Point on page 3975 constraint to the much more complicated Rag Doll on page 3948 constraint. For example, with a Point-Point constraint, the constrained objects are completely free to rotate around the constraint pivot point, but have no linear freedom relative to each other in any direction; they are attached together at the point. However, with Constraints | 3927 a Rag Doll constraint, the objects not only have no linear freedom, but their possible relative orientation is also restricted. In each constraint, these angular and linear limits are defined in terms of the constraint’s coordinate system or constraint space. Because a constraint restricts the movement of its objects relative to each other, a constraint also needs to maintain a mapping from each object’s local space to the constraint space. reactor lets you manipulate the constraint space in each object's local space separately, as you'll see in the Working With Constraint Spaces on page 3928 section. Parents and Children Each reactor constraint can have two objects: a parent object and a child object. Although two-bodied constraints actually restrict the possible movement of both bodies, it is often simpler to specify how one object is allowed to move relative to the other one, particularly when you are using limits. With reactor, you specify how the child object can move relative to the parent. For some constraints, it makes no difference which object is the parent and which is the child. For instance, if you use a Point-Point constraint to attach two objects together at a common point, it works in exactly the same way regardless of how you specify the attached objects. However, with the more complex Rag Doll constraint, which you typically use to model body joints, it's important to specify which object is the parent. This is because this constraint lets you specify a number of limits on how the child can move relative to the parent object. For example, when you move your torso, your arm always moves with it. So when modeling a shoulder joint, you would specify that the torso object is the parent, making the arm object the child. You can then specify limits on the arm's movement relative to the torso. When you constrain an object to a point in world space rather than another object, the constrained object is the child object and there is no parent object. Working With Constraint Spaces For most constraints, by default the constraint space is aligned with the child body. This means that the constraint pivot/attachment point is positioned at the child object's pivot point, and the constraint space takes its orientation from the child body's local space. The exceptions to this are the constraints with two attachment points, Springs and Stiff Springs, and the Point-Path constraint, each of which has its own default alignment. 3928 | Chapter 16 reactor You can move the constraint space relative to each of the bodies by going to the constraint's Parent Space or Child Space sub-object level in the modifier stack, and then using the Move and/or Rotate tools. The space will then maintain its position and/or orientation relative to the corresponding object during the simulation. reactor also provides some quick shortcuts for aligning constraint spaces, available with each constraint. These are: ■ Align Spaces To Child Body This is the default alignment for all constraints except Spring, the Stiff Spring variant of Point-Point, and Point-Path. ■ Align Spaces To Parent Body The constraint space is aligned with the parent body: The pivot point is positioned at the parent body's pivot point, and the constraint space takes its orientation from the parent object's local space. ■ Align Spaces To Child Space Aligns the parent and child constraint spaces with the child's constraint space. So, for instance, if you move the constraint space relative to the child, you can use this option to move the parent's constraint space into alignment with it. ■ Align Spaces To Parent Space Aligns the parent and child constraint spaces with the parent's constraint space. So, for instance, if you move the constraint space relative to the parent, you can use this option to move the child's constraint space into alignment with it. Certain constraints have additional alignment options: ■ Align Spaces To Each Body (Spring and Point-Point > Stiff Spring only) This option aligns each local constraint space (and hence the spring attachment point) with the relevant body, so each body's attachment point is at its pivot. It also sets the spring length to the current distance between the nodes. This is the default alignment for springs and stiff springs. ■ Align Parent Space To Path (Point-Path constraint only) This option aligns the parent space with the local space of the shape used for the constraint's path. This is the default parent space alignment for the Point-Path constraint. Constraints | 3929 Simple Constraints The simple constraints provided with reactor are: ■ Spring on page 3930 ■ Linear Dashpot on page 3934 ■ Angular Dashpot on page 3939 Unlike cooperative constraints, the simple constraint does not require you to add it to a Constraint Solver on page 3945 helper. Instead, reactor adds all valid simple constraints in a scene to the simulation by default. A two-bodied simple constraint is valid if it has two rigid bodies attached, while a single-bodied simple constraint is valid if it has one rigid body attached. Spring Create panel > Helpers > reactor > Spring Animation menu > reactor > Create Object > Spring reactor toolbar > Create Spring button The Spring helper lets you create a spring-like effect between two rigid bodies in the simulation, or between a rigid body and a point in space. During the simulation, the spring exerts forces on the attached bodies in an attempt to maintain its rest length. So, for instance, if the objects are pulled apart so that the spring attachment points are further apart than the rest length, the spring works to bring them back together again. You can configure a spring's behavior by specifying its stiffness, damping, and rest length. reactor also lets you choose whether the spring acts under extension (when the attachment points are pulled further apart) or compression (when the attachment points are pushed closer together) or both (the default). A spring that acts only on extension behaves as if the objects were joined with a rubber band. You do not have to add a Spring constraint explicitly to a simulation, as all valid springs in a scene are added to the simulation by default. A two-bodied spring is valid if it has two rigid bodies attached, while a single-bodied spring is valid if it has one rigid body attached. When not selected, invalid springs will be colored red in the viewport. 3930 | Chapter 16 reactor Procedures To create a spring: ■ Choose one of the above options, and then click in any viewport to add the Spring. NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the spring: 1 Create the Spring and the object(s) to connect using it. 2 If you do not want to assign a second body to the spring, turn off the Parent check box on the spring's Properties rollout if necessary. 3 Click the Child pick button and then select the object to use as the child object in one of the viewports. This attaches the Spring to the body at the body’s pivot point. 4 If the spring is two bodied, repeat step 2, using the Parent pick button to set the parent object for the spring. To create the spring and attach the objects in a single step: ■ See the Scripts on page 4103 topic. To change the attachment positions for the bodies: 1 With the Spring constraint selected, open the Modify panel. 2 In the modifier stack, open the Spring’s sub-object list. 3 Highlight the option corresponding to the object whose attachment point you want to move: Parent Space or Child Space. If the Spring is single-bodied, Parent Space allows you to move the world attachment position. 4 The appropriate space becomes active in the viewport and can be moved using the Move tool. The attachment point maintains its position relative to its corresponding object; for example, if you move the child object, its space, and hence its attachment point, moves with it. The attachment point doesn't actually have to be on the object. If you move the attachment points so that they're inside or beyond the Spring rest length, you will see the attachment points represented by Constraints | 3931 large box markers and the rest length denoted by small box markers. The difference between the two is displayed in red. 5 To reset the attachment point to the object’s pivot, reattach the object to the Spring. Alternatively, if you click the Align Spaces To Each Body button, both attachment points will be reset to their respective body's pivot. To align the parent and child constraint spaces: 1 Ensure that the constraint is selected in one of the viewports. 2 In the Align Spaces To group, click the button for your chosen alignment. You can find out more about the alignment options in the Working With Constraint Spaces on page 3928 section. Interface Modifier Stack Child Space At this sub-object level, you can select and move the constraint space for the child object, including the point relative to the child where the Spring is attached to it. When you assign a child body to the Spring, the Child Space attachment point is set to the child’s pivot point. If you alter the position of the attachment point, it maintains its new position relative to the child during the simulation. Parent Space At this sub-object level, you can select and move the constraint's second attachment point. If the spring is two-bodied, then this is the point relative to the parent where the spring is attached to it. When you assign a parent object to the Spring, the Parent Space attachment point is set to the parent object’s pivot point. If you alter the position of the attachment point, 3932 | Chapter 16 reactor it maintains its new position relative to the parent. If the spring is single-bodied, then the Parent Space's attachment point represents the point in the world where the spring is attached. Properties rollout Parent When on, the Spring has two bodies and you can designate an object to be the parent body. When off, the Spring is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the Spring. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Constraints | 3933 Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in the Working With Constraint Spaces on page 3928 section. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves along with it. Stiffness The strength of the spring; governs the force the spring applies to each attached body for each unit difference between its current length and its rest length. Values greater than or equal to 0.0 are valid. Default=10.0. Rest Length The spring applies forces to the attached objects in an attempt to reach this length. You can specify a figure in world units for this value, or you can use the Set button. The spring’s rest length is displayed in the viewports as the length of the displayed line between the two small box markers. The large box markers are the objects’ attachment points. Set Click this button to set the spring’s rest length to the current distance between the two objects’ attachment points. Damping Determines how quickly the oscillation of the spring settles down. It governs the forces applied to the connected bodies due to the relative velocities of their connection points. Valid damping values are those greater than or equal to 0.0. The default damping value is 1.0. TIP Typically, a Damping value of 1/10th of the stiffness yields good results. Act on compression When on, the spring applies forces to the attached objects when its length is less than its Rest Length. Default=on. Act on extension When on, the spring applies forces to the attached objects when its length is greater than its Rest Length. Disabled When on, the spring is not used in the simulation. Reset Default Values Click this to set Stiffness, Rest Length, Damping, Act On Extension, and Act On Compression to their respective default values. Linear Dashpot Create panel > Helpers > reactor > L Dashpot Animation menu > reactor > Create Object > Linear Dashpot 3934 | Chapter 16 reactor reactor toolbar > Create Linear Dashpot button Dashpots typically server to cushion impact. An example of a real-world linear dashpot is the hydraulic cylinder in an automobile shock absorber. The Linear Dashpot constraint lets you constrain two rigid bodies together in the simulation, or to constrain one body to a position in world space. It behaves like a heavily damped spring with zero rest length. You can specify the strength and damping, and whether collisions between the attached bodies are disabled. reactor lets you specify a dashpot attachment point in each body's local space. During the simulation, the dashpot exerts impulses on the attached bodies in an attempt to make these points match up in world space, thus keeping the bodies in the same positions relative to each other. The bodies are still free to rotate around the attachment point. You do not need to add a Linear Dashpot explicitly to a simulation, as all valid constraints in a scene are added to the simulation by default. A two-bodied dashpot is valid if it has two rigid bodies attached, while a single-bodied dashpot is valid if it has one rigid body attached. When not selected, invalid dashpots are colored red in the viewport. Procedures To create a Linear Dashpot: ■ Choose one of the above options, and then click in any viewport to add the dashpot. NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the Linear Dashpot: 1 Create the Linear Dashpot and the objects to connect using it. 2 On the linear dashpot’s Properties rollout, click the Child pick button, and then select the object to use as the child object in one of the viewports. By default, this attaches the linear dashpot to the body at the body’s pivot point. 3 If you do not want to assign a second body to the dashpot, turn off the Parent check box, if necessary. 4 If the dashpot is two-bodied, repeat step 2, using the Parent pick button to set Parent for the Linear Dashpot. Constraints | 3935 To create the constraint and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the attachment positions for the bodies: 1 With the dashpot selected, open the Modify panel. 2 In the modifier stack open the dashpot’s sub-object list. 3 Highlight the sub-object corresponding to the object in whose space you want to move the attachment point: Parent Space or Child Space. If the dashpot is single-bodied, Parent Space allows you to move the world attachment position. 4 The appropriate point becomes active in the viewport and can be moved using the Move tool. The attachment point maintains its position relative to its corresponding object; for example, if you move the child object, its space, and hence its attachment point, moves with it. The attachment point doesn't have to actually be on either object. 5 To reset the attachment point to the child object’s pivot, reattach the objects to the dashpot, or use the Align Spaces To Child Body option. To align the parent and child constraint spaces: 1 Ensure that the constraint is selected in one of the viewports. 2 In the Align Spaces To group, click the button for your chosen alignment. You can find out more about the alignment options in the Working With Constraint Spaces on page 3928 section. 3936 | Chapter 16 reactor Interface Modifier Stack Child Space At this sub-object level, you can select and move the dashpot attachment point for the child body. When you assign a child body to the dashpot, the Child Space attachment point is set to the child object’s pivot point. If you alter the position of the Child Space attachment point, it maintains its new position relative to the child during the simulation. Parent Space At this sub object level, you can select and move the dashpot attachment point for the parent body. When you assign a parent object to the dashpot, the Parent Space attachment point is set to the parent object’s pivot point. If you alter the position of the Parent Space attachment point, it maintains its new position relative to the parent during the simulation. If the dashpot is single-bodied, then the Parent Space's attachment point represents the point in the world where the dashpot will be attached. Constraints | 3937 Properties rollout Parent When on, the dashpot has two bodies and you can designate an object to be the parent body. When off, the dashpot is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the dashpot. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in the Working With Constraint Spaces on page 3928 section. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves along with it. 3938 | Chapter 16 reactor Strength Governs the size of the impulse the dashpot applies to each attached body, taking into account the distance between the attachment points. The strength value is mass-dependent. For example, a Strength value of 10 generates a different behavior when connecting two 5 kg bodies than when connecting two 50 kg bodies. Values greater than or equal to 0 are valid for this property. Default=1. Damping Determines how quickly the oscillation of the linear dashpot settles down. Damping governs the impulse applied to the connected bodies due to the relative velocities of their dashpot connection points. Valid damping values are those greater than or equal to 0 and less than or equal to 100000. Default=0.1. TIP Typically, a damping value of 1/10th of the stiffness yields good results. Allow Interpenetration When on, collisions are disabled between the dashpot’s objects, so that they can pass through each other during the simulation. Defaults=off. Disabled When on, the dashpot is not added to the simulation. Reset Default Values Click this to set Strength, Damping, and Disabled to their respective default values. Angular Dashpot Create panel > Helpers > reactor > A Dashpot Animation menu > reactor > Create Object > Angular Dashpot reactor toolbar > Create Angular Dashpot button Dashpots typically serve to cushion impact. An example of a real-world angular dashpot is a device connected to a door to keep it from slamming shut. You can use the Angular Dashpot constraint to constrain the relative orientation of two rigid bodies, or the absolute orientation of a rigid body in world space. When simulating, the dashpot exerts angular impulses on the bodies to which it is attached in an attempt to maintain the specified rotation between the objects. You can specify the dashpot’s strength and damping, and whether collisions between the system’s bodies are disabled. An angular dashpot has two sets of axes as sub-objects. For two-bodied dashpots, these are specified as offset rotations from the dashpot’s bodies. For single-bodied dashpots, one sub-object is an offset rotation and the other is Constraints | 3939 a world rotation. In a simulation, the dashpot tries to maintain a common rotation for these axes. You do not need to add angular dashpots explicitly to a simulation, as all valid dashpots in a scene are added to the simulation by default. A dashpot is valid if it has the correct number of rigid bodies attached and is enabled. When not selected, invalid dashpots are colored red in the viewport. Procedures To create an Angular Dashpot: ■ Choose one of the above options, and then click in any viewport to add the dashpot. NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the Angular Dashpot: 1 Create the dashpot and the objects to connect using it. 2 In the dashpot’s Properties rollout, click the Child pick button and then select the object to use as the child object in one of the viewports. By default, this aligns the Angular Dashpot's target orientation with the child body's local space. 3 If you do not want to assign a second body to the dashpot, turn off the Parent check box if necessary. 4 If the dashpot is two-bodied, repeat Step 2, using the Parent pick button to set Parent for the angular dashpot. To create the constraint and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the offset rotations for the bodies: 1 With the Angular Dashpot selected, open the Modify panel. 2 In the modifier stack, open the dashpot’s sub-object list. 3 Highlight the sub-object that corresponds to the offset rotation you want to change: Child Space or Parent Space. If the dashpot is single-bodied, Parent Space represents the world rotation that the dashpot works to align the Child Space with. 3940 | Chapter 16 reactor 4 The selected axis sub-object becomes active in the viewports and can be rotated using the Rotate tool. The axis maintains its offset rotation so that if you rotate the object it’s linked to, it also rotates. 5 To realign the rotation to the child body's local space, reattach the object to the dashpot. Alternatively, click the Align Spaces To Child Body button. To align the parent and child constraint spaces: 1 Ensure that the constraint is selected in one of the viewports. 2 In the Align Spaces To group, click the button for your chosen alignment. You can find out more about the alignment options in the Working With Constraint Spaces on page 3928 section. Interface Modifier Stack Child Space At this sub-object level, you can select and rotate the offset rotation for the child object. This is the rotation that the angular dashpot tries to maintain for the child body relative to the parent. When you assign a child object to the dashpot, reactor aligns Child Space to the child body's local space. If you alter the rotation of this sub-object, it maintains its new rotation relative to the child body. Parent Space At this sub-object level, you can select and rotate the offset rotation for the parent body. This is the rotation that the dashpot tries to maintain for the parent body relative to the child. When you assign the parent body to the dashpot, this rotation is aligned with the child body's local space. If you alter the rotation of this sub-object, it maintains its new rotation relative Constraints | 3941 to the parent. If the dashpot is single-bodied, this rotation represents the world rotation to which the dashpot tries to align the Child Space axis. Properties rollout Parent When on, the dashpot has two bodies and you can designate an object to be the parent body. When off, the dashpot is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the dashpot. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in the Working With Constraint Spaces on page 3928 section. 3942 | Chapter 16 reactor Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves along with it. Strength Governs the size of the impulse the dashpot will apply to each attached body, taking into account the difference in their relative offset rotations (Child Space and Parent Space). The strength value is mass dependent – for example, a strength value of 10 will generate a different behavior when connecting two 5 kg bodies than when connecting two 50 kg bodies. Values greater than or equal to 0.0 are valid for this property. Default=1.0. Damping This value affects how quickly the oscillation of the angular dashpot settles down. It governs the impulse applied to the connected bodies due to their relative angular velocities. Valid damping values are those greater than or equal to 0. Default=0.1. TIP Typically, a damping value of 1/10th of the stiffness yields good results. Allow Interpenetration When on, collisions are disabled between the dashpot’s objects: During the simulation, they can pass through each other. Default=off Disabled When on, the dashpot is not added to the simulation. Reset Default Values Click this to set Strength, Damping, and Disabled to their respective default values. Cooperative Constraints Cooperative constraints are more stable than simple constraints on page 3930, but can be more computationally expensive to simulate. For a cooperative constraint to take part in the simulation, you first need to add it to a Constraint Solver on page 3945. The solver acts as a container for the cooperative constraint in a particular Rigid Body Collection, and performs all the calculations necessary for the constraints to work together. The following constraint types are cooperative constraints: ■ Hinge on page 3969 ■ Point-Point constraint on page 3975 ■ Point-Path constraint on page 3995 ■ Car-Wheel constraint on page 3988 Constraints | 3943 ■ Prismatic constraint on page 3982 ■ Rag Doll constraint on page 3948 Common Properties The following properties are shared by all cooperative constraints: Strength and Tau These properties govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. Strength The constraint applies an impulse to each attached body in order to maintain the constraint, based on the relative velocities of the attached bodies. The Strength parameter governs the percentage of this impulse the constraint will apply to each object. If this is sufficient, then the constraint is maintained. Tau If the constraint drifts; that is, if the attached objects reach a state where the constraint isn’t satisfied, then reactor applies a corrective force to rectify this drift. An impulse is calculated to rectify the drift in a constraint system; the Tau parameter governs the percentage of the corrective impulse the constraint applies to each object. NOTE Tau is unavailable in the Havok 3 engine. Breakable Constraints A breakable constraint stops working when a specified threshold is exceeded. For example, you could use a breakable constraint to make a door that flies off its hinges when kicked hard enough. You make a constraint breakable by turning on its Breakable check box. It then ceases to exert impulses on its constrained bodies if its limits are exceeded during the simulation. 3944 | Chapter 16 reactor Breakable Turn on to make the constraint breakable. The Linear and Angular parameters apply only to Havok 1, and the Theshold parameter applies only to Havok 3. Linear The maximum linear impulse the breakable constraint can apply before it breaks. Available in Havok 1 only. Angular The maximum angular impulse the breakable constraint can apply before it breaks. Available in Havok 1 only. Threshold A generic impulse parameter that governs the overall breakability of the constraint. Larger values make the constraint harder to break. Available in Havok 3 only. Constraint Solver Create panel > Helpers > reactor > CSolver Animation menu > reactor > Create Object > Constraint Solver reactor toolbar > Create Constraint Solver button The Constraint Solver acts as a container for the cooperative constraints on page 3943 in a particular Rigid Body Collection on page 3922, and performs all the calculations necessary for the constraints to work together. For a cooperative constraint to be simulated in a scene, it must be included in a valid Constraint Solver and any of the rigid bodies it contains should be in the Rigid Body Collection associated with the solver. For a Constraint Solver to be valid it should be associated with a valid Rigid Body Collection. When not selected, an invalid Constraint Solver is red in the viewport. You can disable an entire Constraint Solver, thus disabling all of its constraints. You can also set a deactivation threshold for all the constraints in the solver, which lets you specify when you would like all the relevant rigid bodies to be deactivated. Procedures To create a Constraint Solver: ■ Choose one of the above options, and then click in any viewport to add the Constraint Solver. Constraints | 3945 NOTE The icon’s position has no effect on the constraint’s behavior. To assign a Rigid Body Collection to the solver: 1 On the Properties rollout click the RB Collection button. This enters a pick mode in which you can choose only a Rigid Body Collection. 2 In one of the viewports click the collection to assign to the Constraint Solver. The collection should contain the rigid bodies for the constraints in the solver. To add constraints to a solver: 1 Create a Constraint Solver and some cooperative constraints to add to the solver. 2 Add constraints to the solver using either (or both) of these methods: ■ On the Constraint Solver > Properties rollout, click the Pick button, and then in the viewport click a constraint helper to add. ■ On the Properties rollout, click the Add button, and then use the dialog to specify one or more constraints to add. 3946 | Chapter 16 reactor Interface Properties rollout RB Collection button Displays the name of the Rigid Body Collection assigned to the solver, if any. To assign a Rigid Body Collection to the solver, click this button and then selecting a collection in any viewport. Highlight Click this button to cause the constraints in the Constraints list to momentarily display in the viewports as if selected. Constraints Lists the names of the constraints currently in the solver. Pick Lets you add a constraint to the solver. Click this button, then in the viewport move the cursor over the constraint you would like to add to the solver. If the object can be used as a constraint, the cursor changes from an arrow to a cross and you can select the object to add it to the solver. Constraints | 3947 Add Lets you add one or more constraints from the scene to the solver. Click the button to open up the Select New Constraints To Add dialog. Make a selection in the provided list, and then add the constraints to the solver by pressing the Select button. Delete Lets you remove constraints from the solver. Highlight the constraints to remove from the solver in the Constraints list and then click this button. Deactivation Threshold Lets you specify a special deactivation threshold for all the rigid bodies constrained by the solver's constraints. Objects in a Constraint Solver are activated and deactivated together; this parameter specifies how aggressive the deactivation is. A value of 0.0 disables deactivation. For more information about deactivation, see Havok 1 World/Havok 3 World Rollout on page 4087. Disabled When on, disables all the constraints in this solver. Reset Default Values Sets Deactivation Threshold and Disabled to their respective default values. Rag Doll Constraint Create panel > Helpers > reactor > Ragdoll Animation menu > reactor > Create Object > Rag Doll Constraint reactor toolbar > Create Rag Doll Constraint button The Rag Doll constraint lets you realistically simulate the behavior of body joints, such as hips, shoulders, and ankles. Once you decide the degree of movement a joint should have, you can model it by specifying limiting values for the Rag Doll constraint. 3948 | Chapter 16 reactor The Rag Doll constraint uses the parent body as a reference when defining the limits for the motion of the child body. For example, when your torso moves, your arm always moves with it. So when modeling a shoulder joint, you would usually designate the torso as the parent body and the upper arm as the child body. You can then specify limits on the arm's movement relative to the torso, as in the above illustration: The arm is allowed to rotate relative to the torso within the grey limited cone. You can also limit the child body's ability to twist. You restrict how a Rag Doll constraint’s child can move relative to the parent using the constraint’s Twist, Cone, and Plane limits on page 3957. As with the other constraints, the constraint space for the Rag Doll joint is defined in each body's local space; you use this constraint space to define your limits. The constraint space is defined as follows: ■ The origin as the attachment point of the constraint between the child and parent bodies. Constraints | 3949 ■ A twist axis, which is the axis around which the child body can twist relative to the parent body. You use this axis to specify twist limits and the child body's permitted cone of movement. ■ A plane and plane normal centered on the attachment point; the plane serves to define further limits that restrict the child body's movement within the cone. reactor provides special limit visualizations to help you choose appropriate values for the Rag Doll. For a detailed explanation of how to define those limits, see Defining Rag Doll Limits on page 3959. reactor simulates a Rag Doll constraint if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver on page 3945. When not selected, invalid rag dolls are red in the viewport. To find out how to create an example character quickly using the Rag Doll constraint, see Scripts on page 4103. Procedures To create a Rag Doll constraint: ■ Choose one of the above options, and then click in any viewport to add the Rag Doll. NOTE For a two-bodied Rag Doll, the icon’s initial position has no effect on the Rag Doll's behavior. For a single-bodied Rag Doll, it defines the initial position of the world attachment point. You can change this afterwards. To attach objects to the Rag Doll: 1 Create the rag doll and the objects to connect using it. 2 In the rag doll’s Properties rollout, click the Child pick button. Now, in one of the viewports, select the object to use as the child object. This attaches the constraint to the selected body at the body’s pivot point. The twist axis for the constraint in the child's space is aligned to the x-axis of the child object and initially, the plane normal will be aligned to the y-axis. This constraint is more intuitive to use if the child and parent bodies are attached correctly. For example, if connecting an upper arm to a shoulder, the shoulder should be the parent and the upper arm the child. 3950 | Chapter 16 reactor 3 If you do not want to assign a parent to the constraint, turn off the Parent check box. 4 If the constraint is two bodied, repeat Step 2, using the Parent pick button to set the parent body for the constraint. By default, the constraint space in the parent's local space is also aligned with the child body. To create the constraint and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the Rag Doll positions and orientations for the bodies: 1 With the Rag Doll selected, open the Modify panel. 2 In the modifier stack open the sub-object list. 3 Access the sub-object level corresponding to the object whose constraint representation is to be altered: Parent Space or Child Space. If the rag doll is single-bodied, Parent Space represents the world attachment position and rotation of the rag doll’s axes. 4 The space, represented by just the twist axis for the child and by the twist axis, plane normal and limit visualization for the parent, becomes active Constraints | 3951 in the viewport and can be moved and rotated using the Move and Rotate tools respectively. The space maintains its position and rotation relative to its corresponding object. For example, if you move or rotate the child, Child Space moves relative to it. 5 To reset the space for an object to its default, reattach the object to the rag doll or use the Align To Child Body button. 6 You can also rotate the plane normal independent of the twist axis. To do this, set the sub-object level to Plane Rotation and you will be able to rotate the plane normal with respect to the parent’s twist axis. To change the Cone and Plane limits: 1 Ensure that you can see the limit visualization for the Rag Doll; this helps you to choose appropriate limits for your desired behavior. Visual representation of the limits is displayed at the location of the parent’s sub-object. This provides you with a graphical representation of the limited area of movement for the child relative to the parent. 2 With the rag doll selected, open the Properties rollout. NOTE You can use this rollout to specify how the limits are represented in the visualization, as well as changing the limits. 3 Change the Cone > Min and Max settings. When displayed, the cone remains symmetrical and is rotated about the plane normal by the average offset of Min and Max. For example, if Min=-10.0 and Max=20.0, the average offset is (-10+20)*0.5=5 with a cone angle of 15. In effect, we have a 15-degree symmetrical cone [-15, 15] rotated by 5 degrees, resulting in limits of [–10, 20]. If the plane normal 3952 | Chapter 16 reactor is not at 90 degrees to the twist axis, non-intuitive cone rotations can result. The rotation of the twist axis for the attached object is limited to the volume of this cone. You can view the cone on its own by ensuring that only the Show Cone option in the Properties rollout > Display group is on. 4 You can also try changing the Plane > Min and Max settings. These are limited between [-90, 0] and [0,90] respectively. Taking the Min and Max limits and sweeping those angles around the plane normal creates cones. The rotation of the attached object is then limited to within the region between the plane and these cones. You can also rotate the plane independent of the twist axis. To display the plane limits, turn on Display rollout Show Plane Limits. 5 By combining Cone and Plane limits you generate valid rotational regions for the child object relative to the parent object. This is the region represented by the Show Volume option. Constraints | 3953 NOTE Cone and plane limits limit the movement independently. As a result, it is possible to have ineffective plane limits, where the cones generated by the plane limits do not intersect the cone generated by the cone limits. Use the plane limits to reduce the level of movement provided by the cone. To change the Twist limits: 1 Select the Rag Doll helper object and open the Properties rollout. 2 The Twist settings limit the rotation of the child object about the twist axis relative to the parent object. To fix the twist of one object relative to the other, set the twist limits to [0,0]. 3 Display the Twist limits by turning on Display rollout > Show Twist. For a detailed explanation of how to define these limits, see Defining Rag Doll Limits on page 3959. 3954 | Chapter 16 reactor Interface Modifier Stack Parent Space At this sub-object level, you can move and rotate the representation of the Rag Doll for the parent body. The constraint axes are defined in the parent body's space, which means that if you alter the position or rotation of the parent, the space moves as well and maintain its offset rotation and translation with respect to the parent. When you assign a parent body to the Rag Doll, Parent Space is also aligned with the child body's local space, with the attachment point at the child body's pivot point, the twist axis aligned with the child's X axis, and the plane normal aligned to the child’s Y axis. If the Rag Doll is single-bodied, then Parent Space represents the world orientation and position of the constraint. Child Space At this sub-object level, you can move and rotate the representation of the Rag Doll for the child body. The constraint axes are defined in the child body's space, which means that if you alter the position or rotation of the child, the space moves as well and maintain its offset rotation and translation with respect to the child. When you assign a child body to the Rag Doll, the Child Space is positioned so that the attachment point coincides with the child body pivot point, and the twist axis is aligned with the child's X axis. NOTE While the Child Space sub-object has its own representation of the plane and plane normal, these are not displayed at this sub-object level, as the plane normal can be edited only in the parent body's space. Plane Rotation This sub-object level allows independent rotation of the plane normal with respect to the Parent Space. This means that your plane normal doesn’t have to be perpendicular to your twist axis, allowing for a greater ranger of constraint setups. However, it should be noted that non-orthogonal systems affect the way reactor handles non-symmetrical cone limits. Constraints | 3955 Properties rollout 3956 | Chapter 16 reactor Parent When on, the Rag Doll has two bodies and you can designate an object to be the parent body. When off, the Spring is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the Rag Doll. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in Working With Constraint Spaces on page 3928. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves along with it. Strength group Strength/Tau Govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. You can find out more about these parameters in Strength and Tau on page 3944. Limits group Twist Min The minimum rotation about the twist axis the constraint allows between the reference and attached objects' constraint spaces. For example, if Min=–5 then, with respect to the constraint spaces, the child cannot rotate more than 5 degrees counterclockwise about the twist axis. Twist Max The maximum rotation about the twist axis the constraint allows between the reference and attached objects' constraint spaces. For example, if Max=5 then, with respect to the constraint spaces, the child cannot rotate more than 5 degrees clockwise about the twist axis. Cone Min The minimum value, in degrees, used to specify the limit cone. This value combines with the Cone Max value to generate a symmetrical cone. This cone is rotated about the plane normal by an offset calculated by combining these limits. The rotation of the child’s twist axis is then limited to the volume of this cone with respect to the parent. For example, if the Min=–10 and Max=20, the range is 30 degrees. A 30-degree cone [–15,15] is created about the twist axis and is then rotated by the offset Constraints | 3957 between the limits (–10+20 )*0.5=5. This results in the effective limits being [–15,15] rotated by 5 degrees, thus final limits of [–10, 20]. Cone Max The maximum value, in degrees, used to specify the limit cone. This is combined with the Cone Min value to generate a symmetrical cone. This cone is rotated about the plane normal by an offset calculated by combining these limits. The rotation of the child’s twist axis is then limited to being within this cone with respect to the parent. Plane Min The angle between the plane and a reference line in the range [-90,0]. This line is swept about the plane normal to create a cone. The child’s twist axis is then restricted from entering this cone. If this cone intersects the cone produced by the cone limits, it further inhibits the motion of the child with respect to the parent. Plane Max The angle between the plane and a reference line in the range [0,90]. This line is swept about the plane normal to create a cone. The child’s twist axis is then restricted from entering this cone. If this cone intersects the cone produced by the cone limits, it further inhibits the motion of the child with respect to the parent. Breakable group Breakable When on, the constraint is breakable. If its breakable limits are exceeded during simulation it will cease to exert impulses on the attached objects. You can find out more about breakable constraints in Breakable Constraints on page 3944. Display group Show Twist When on, Twist limits display as part of the Parent Space visualization. The representation is a cylinder section showing the restricted motion of the attached object with respect to rotation about the twist axis. Show Cone When on, the entire symmetrical cone produced by the Cone > Min and Max limits displays as part of the Parent Space visualization. Show Plane When on, representations of the plane and plane normal display as part of the Parent Space visualization. Show Plane Limits When on, the cones formed by the plane limits display as part of the Parent Space visualization. Show Volume If true, a representation of the allowed region of movement based on a combination of the plane and cone values will be calculated and displayed as part of the Parent Space visualization. 3958 | Chapter 16 reactor Size Allows you to change the size of the limit visualization in the viewport. Reset Default Values Resets the parameters for this constraint to their default values. Defining Rag Doll Limits The Rag Doll constraint on page 3948 is useful for simulating complex joints, like those found in some human and animal joints (shoulders, hips), that cannot be properly simulated by simpler constraints like Hinge on page 3969 or Point-Point on page 3975 constraints. Because they represent complex joints, the rotational limits use a complex parameterization that can benefit from some explanation. This section covers the different axes, planes, and cones used for that parameterization. We'll begin with a simple picture of two objects connected by a rag doll constraint; you can think of a shoulder joint, where the parent body is the torso and the child body the upper arm: A. Twist Axis B. Plane Axis C. Twist X Plane Axis (outward) Constraints | 3959 1. Parent Body 2. Child Body The illustration shows three axes of importance: the Twist Axis, the Plane Axis and the Twist X Plane Axis. The twist axis is probably the easiest to visualize and you can do so by simply stretching out your arm and rotating it so that your thumb changes from pointing upwards to downwards. Your movement is just a series of rotations along the twist axis of the shoulder and elbow. In general, the twist axis should follow the length of the child body in a joint. In reactor you can specify the extent to either side of the neutral position the constraint can twist; this need not be symmetrical. A. Twist Axis (outward) B. Plane Axis C. Twist X Plane Axis 1. Twist Min. 2. Twist Max. 3. Twist Range 3960 | Chapter 16 reactor A. Twist Axis B. Plane Axis C. Twist X Plane Axis 1. Twist Range The other two axes are interlinked and together control the volume the child body may occupy. So first we'll look at the cone angles that allow you to specify the volume that the child may move through: Constraints | 3961 A. Twist Axis B. Plane Axis (inward) C. Twist X Plane Axis 1. Cone Min. 2. Cone Max. 3962 | Chapter 16 reactor A. Twist Axis B. Plane Axis C. Twist X Plane Axis If you imagine the constraint representing your shoulder, then the green volume is the range of allowed positions your upper arm may occupy. However, we can refine the allowed volume further by using the plane axis to enforce plane limits. These limits are used to generate two further cones: Constraints | 3963 A. Twist Axis B. Plane Axis C. Twist X Plane Axis (outward) 1. Plane 2. Plane Min. Cone 3. Plane Max. Cone 4. Plane Min. 5. Plane Max. 3964 | Chapter 16 reactor A. Twist Axis B. Plane Axis C. Twist X Plane Axis 1. Plane 2. Plane Min. Cone 3. Plane Max. Cone This allows us to create two different scenarios: one where the cones generated by the plane limits intersect with cone produced by the cone angles, and another where they do not: Constraints | 3965 A. Twist Axis C. Twist X Plane Axis 1. Plane Min. Cone 2. Plane Max. Cone 3966 | Chapter 16 reactor A. Twist Axis C. Twist x Plane Axis (outward) 1. Plane Min. Cone 2. Plane Max. Cone If the volumes do not intersect, the plane limits have no effect in the constraint. However, by allowing the cones to intersect, and deeming the overlapping volume as invalid body positions, we can limit the allowed positions for the child body even further: Constraints | 3967 A. Twist Axis B. Plane Axis C. Twist X Plane Axis Back to Rag Doll Constraint on page 3948. 3968 | Chapter 16 reactor Hinge Constraint Create panel > Helpers > reactor > Hinge Animation menu > reactor > Create Object > Hinge Constraint reactor toolbar > Create Hinge Constraint button The Hinge constraint allows you to simulate a hinge-like action between two bodies. reactor lets you specify an axis in local space for each body, with a position and a direction. During the simulation, the two axes attempt to match position and direction, thereby creating an axis around which the two bodies can rotate. Alternatively, you can hinge a single body to an axis in world space. You can also limit the rotation between the attached objects relative to the hinge axis, allowing you, for instance, to create a door that can open only to a specified extent. You define this limitation with respect to an axis perpendicular to the hinge axis for each body. A Hinge constraint is simulated only if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver on page 3945. When not selected, an invalid Hinge is red in the viewport. Procedures To create a Hinge constraint: ■ Choose one of the above options, and then click in any viewport to add the Hinge constraint. NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the Hinge: 1 Create the Hinge and the objects to connect using it. 2 On the Hinge's Properties rollout, click the Child pick button, and then select the object to use as the child object in one of the viewports. By default, this attaches the constraint so that its axis goes through the child body pivot point and the axes are aligned with the child body's local space. The constraint axis is aligned with the child's Z axis, and the perpendicular axis used for rotation limits is aligned to the child’s X axis. Constraints | 3969 3 If you do not want to assign a second body to the Hinge, turn off the Parent check box if necessary. 4 If the Hinge is to be two-bodied, repeat step 2, using the Parent pick button to set Parent for the Hinge. To create a Hinge and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the Hinge positions and rotations for the bodies: 1 With the Hinge helper object selected, open the Modify panel. 2 In the modifier stack open the sub-object list for the Hinge. 3 Access the sub-object level corresponding to the object whose hinge axes you want to move: Child Space or Parent Space. If the Hinge is single-bodied, Parent Space represents the world attachment position and rotation of the axes. 4 The space, represented by a pair of axes, the larger of which represents the hinge axis, the smaller of which is used to specify limits, becomes active in the viewport. It can be moved and rotated using the Move and Rotate tool respectively. The space maintains its position and rotation relative to its corresponding object. For example, if you move or rotate the child body, the Child Space moves with it. 5 To reset the axes to their default alignment, reattach the objects to the Hinge or click the Align Spaces To > Child Body button. 3970 | Chapter 16 reactor To limit the rotation between the attached objects: 1 With the Hinge selected, open the Properties rollout. 2 Turn on the Limited check box. The Hinge limits display around the Parent Space axis. The default angle limits are –90.0 and 90.0. This means that in a situation where the sub-objects are fully aligned for the objects, the objects will be able to rotate 90 degrees in either direction about the shared hinge axis. The child object is free to rotate within the indicated limits relative to the parent during the simulation. 3 Change the minimum and maximum rotations the constraint maintains between the objects by adjusting the Min Angle and Max Angle values. The limit display updates to reflect your changes, to help you choose appropriate values. Upon simulation you can see that the rotation between the objects has been limited. Constraints | 3971 Interface Modifier Stack Parent Space At this sub-object level, you can move and rotate the representation of the Hinge for the parent body. The Hinge axes are defined in the parent body's space, which means that if you alter the position or rotation of the parent, the space moves as well and maintains its offset rotation and translation with respect to the parent. When you assign a parent body to the Hinge, Parent Space is also aligned with the child body's local space, with the Hinge axis going through the child body's pivot point. If the Hinge is single-bodied, then Parent Space represents the world orientation and position of the Hinge. Child Space At this sub-object level, you can move and rotate the representation of the Hinge for the child body. The Hinge axes are defined in the child body's space, which means that if you alter the position or rotation of the child, the space moves as well and maintains its offset rotation and translation with respect to the child. When you assign a child body to the Hinge, the Child Space hinge axis is positioned so that it goes through the child body pivot point, and the axes are aligned with the child body's local space: The Hinge axis is aligned with the child's Z axis, and the perpendicular axis used for rotation limits is aligned to the child’s X axis. 3972 | Chapter 16 reactor Properties rollout Parent When on, the Hinge has two bodies and you can designate an object to be the parent body. When off, the Hinge is single-bodied and the point occupied by the Parent Space sub-object is the parent. Constraints | 3973 You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the Hinge. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in Working With Constraint Spaces on page 3928. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves and rotates along with it, and vice-versa. Strength group Strength/Tau Govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. You can find out more about these parameters in Strength and Tau on page 3944. Limited group Limited When on, limits the rotation about the hinge axis between the attached objects. When this value is true, the child object will only be free to rotate relative to the parent within the range specified by the Min Angle and Max Angle values. You can also specify a friction value for a limited Hinge. Min Angle The minimum rotation the constraint allows between the two hinge spaces. For example, if Min Angle is –5.0 then the child body cannot rotate more than 5 degrees counter clockwise about the hinge axis relative to the parent body. Max Angle The maximum rotation the constraint allows between the two hinge spaces. For example, if Max Angle is 5.0 then the child body cannot rotate more than 5 degrees clockwise about the hinge axis relative to the parent body. Friction The level of friction applied to the objects as they try to rotate about the hinge axis. It is only applied to limited Hinges. 3974 | Chapter 16 reactor Breakable group Breakable When on, the constraint is breakable. If its breakable limits are exceeded during simulation, it ceases to exert impulses on the attached objects. You can find out more about breakable constraints in Breakable Constraints on page 3944. Display group Size Lets you change the size of the Hinge limit display in the viewport. Reset Default Values Returns the Strength, Tau, Min Angle, Max Angle, Friction, Linear, Angular, Threshold, and Display settings to their default values. Point-Point Constraint Create panel > Helpers > reactor > Point-Point Animation menu > reactor > Create Object > Point-Point Constraint reactor toolbar > Create Point-Point Constraint button The Point-Point (point-to-point) constraint lets you attach two objects together, or an object to a point in world space. It forces its objects to try to share a common point in space. The objects can rotate freely relative to each other, but always have the attachment point in common. When you set up the constraint, the point is defined in the object space of each object involved. During the simulation the constraint tries to apply forces to the objects so that the two pivot points defined by the two objects match. reactor also provides two variations on the Point-Point constraint: Limited and Stiff Spring. With a Limited Point-Point constraint, you can specify limits for how much the child object can rotate relative to the parent. A Stiff Spring constraint is similar to a standard Point-Point constraint with one important exception: It holds the constrained bodies apart at a specified distance, as if they were attached at each end of an invisible rod. The Stiff Spring variant requires a point in the body space of each of two bodies, and a constant distance by which reactor must keep these two points separated. Each body is free to rotate around its point. Constraints | 3975 The constraint is simulated when it has the correct number of rigid bodies attached and is included in a valid Constraint Solver on page 3945. When not selected, an invalid Point-Point constraint is red in the viewport. Procedures To create a Point-Point constraint: ■ Choose one of the above options, and then click in any viewport to add the Point-Point constraint. NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the Point-Point constraint: 1 Create the constraint and the objects to connect with it. 2 On the constraint’s Properties rollout, click the Child pick button, and then select the object to use as the child object in one of the viewports. By default, this attaches the constraint to the body at the body’s pivot point. 3 If you do not want to assign a second body to the constraint, turn off the Parent check box if necessary. 4 If the constraint is to be two-bodied, make sure Parent is on and then use the Parent pick button to set the parent for the constraint. By default, the attachment point for the parent is also aligned with the child body's pivot point, which means that the bodies will maintain their current positions relative to each other in the simulation. To create the constraint and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the attachment positions for the bodies: 1 With the constraint selected, open the Modify panel. 2 In the modifier stack open the constraint’s sub-object list. 3 Access the sub-object level corresponding to the object in whose space you want to move the attachment point: Parent Space or Child Space. If the constraint is single-bodied, Parent Space allows you to move the world attachment position. 3976 | Chapter 16 reactor 4 The corresponding point becomes active in the viewports and can be moved using the Move tool. The attachment point maintains its position relative to its corresponding object. For example, if you move the child object, its space, and hence its attachment point, moves with it. The attachment point doesn't have to actually be on either object. 5 To reset the attachment point to the child object’s pivot, reattach the objects to the constraint, or click the Align Spaces To > Child Body button. To limit the rotation between the attached objects: 1 With the constraint selected, open the Properties rollout. 2 In the Constraint Type group, choose Limited. By default, the child body can rotate a total of 90 degrees around each axis relative to the parent during the simulation: 45 degrees clockwise and 45 degrees counterclockwise. 3 You can then choose which limits to display around the Parent Space constraint axis by turning on each one's check box. 4 If you then change the limits, the limit display updates to reflect your changes to help you choose appropriate values. Upon simulation you can see that the rotation between the objects has been limited. Constraints | 3977 5 You can also change the orientation of the axis to be limited by rotating the Child Space and Parent Space sub-objects. To create a Stiff Spring constraint: 1 With a Point-Point constraint selected, open the Properties rollout. 2 In the Constraint Type group, choose Stiff Spring. 3 You can now specify a Length value for the stiff spring. The default is 0.0: the same as a Point-Point constraint. During the simulation, reactor works to maintain this distance between the constrained objects' attachment points. To use the current distance between the attachment points as the length, click the Set button. 3978 | Chapter 16 reactor Interface Modifier Stack Parent Space At this sub-object level, you can select and move the constraint attachment point in the parent body's local space. When you assign a parent object to the constraint, the Parent Space attachment point is set to the child object’s pivot point. If you alter the position of the Parent Space attachment point, it maintains its new position relative to the parent during the simulation. If the constraint is single-bodied, the Parent Space's position represents the point in the world where the constraint is attached. Child Space At this sub-object level, you can select and move the constraint attachment point in the child body's local space. When you assign a child body to the constraint, the Child Space attachment point is set to the child object’s pivot point. If you alter the position of the Child Space attachment point, it maintains its new position relative to the child during the simulation. Constraints | 3979 Properties rollout 3980 | Chapter 16 reactor Parent When on, the constraint has two bodies and you can designate an object to be the parent body. When off, the constraint is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the constraint. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in Working With Constraint Spaces on page 3928. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves and rotates along with it, and vice-versa. Strength group Strength/Tau Govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. You can find out more about these parameters in Strength and Tau on page 3944. Constraint Type group These options let you choose the type of Point-Point constraint to add to your scene. ■ Standard The default option. ■ Limited This type allows you to limit how the child object can rotate relative to the parent. ■ Stiff Spring This type allows you to specify a distance for reactor to maintain between the constraint attachment points. Limited (Limited constraints only) Lets you specify how much the child object can rotate relative to the parent around the x, y, and z axes - for each axis there is a minimum (counterclockwise) and maximum (clockwise) limit. You can use the check boxes to switch on or off the limit displays in the viewport. Constraints | 3981 Length (Stiff Springs only) The distance that reactor should maintain between the constraint attachment points. Set Sets Length to the current distance between the attachment points. Breakable group Breakable When on, the constraint is breakable. If its breakable limits are exceeded during simulation, it ceases to exert impulses on the attached objects. You can find out more about breakable constraints in Breakable Constraints on page 3944. Display group Size Lets you change the size of the constraint limit display in the viewport. Reset Default Values Returns the constraint's parameters to their default values. Prismatic Constraint Create panel > Helpers > reactor > Prismatic Animation menu > reactor > Create Object > Prismatic Constraint reactor toolbar > Create Prismatic Constraint button The Prismatic constraint serves as a constraint between two rigid bodies, or a rigid body and the world, that allows its bodies to move relative to each other along one axis only. Rotations, as well as the remaining two translation axes, are fixed. For example, you could use a Prismatic constraint when creating a forklift truck. A Prismatic constraint is simulated if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver on page 3945. When not selected, an invalid prismatic constraint is red in the viewport. Procedures To create a Prismatic constraint: ■ Choose one of the above options, and then click in any viewport to add the Prismatic constraint. 3982 | Chapter 16 reactor NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the prismatic constraint: 1 Create the Prismatic constraint and the objects to connect using it. 2 On the constraint’s Properties rollout, click the Child pick button and then, in one of the viewports, select the object to use as the child. This attaches the constraint to the body at the body’s pivot point. The constraint's sliding axis is aligned to the Z axis of the object. 3 If you do not want to assign a second body to the prismatic constraint, turn off the Parent check box, if necessary. 4 If the constraint is to be two-bodied, make sure Parent is on and then use the Parent pick button to set the parent for the constraint. To create the constraint and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the Prismatic constraint positions and rotations for the bodies: 1 With the constraint selected, open the Modify panel. 2 In the modifier stack open the constraint’s sub-object list. 3 Access the sub-object level corresponding to the object whose attachment point you want to move: Child Space or Parent Space. If the constraint is single-bodied, Parent Space represents the world attachment position and rotation of the constraint axes. 4 The space, represented by a pair of axes, the larger of which represents the sliding axis, becomes active in the viewport and can be moved or rotated using the Move or Rotate tool, respectively. The space maintains its position and rotation relative to its corresponding object. For example, if you move or rotate the child body, Child Space moves with it. 5 To realign the constraint space to the child body, reattach the object to the Prismatic constraint, or choose the Align To Child Body option. To limit the movement of the child body along the sliding axis: 1 With the constraint selected, open the Properties rollout. Constraints | 3983 2 Turn on the Limited check box. Both Limit parameters (Min and Max) are set by default to 0.0. This means that from a situation where the sub-objects are fully aligned for the objects, the child can move 0 units in either direction along the shared sliding axis relative to the parent. The limits are displayed as a line in Parent Space. 3 Change the Min Limit and Max Limit settings as necessary. Interface Modifier Stack 3984 | Chapter 16 reactor Parent Space At this sub-object level, you can move and rotate the representation of the Prismatic constraint for the parent body. The constraint axes are defined in the parent body's space, which means that if you alter the position or rotation of the parent, the space moves as well and maintains its offset rotation and translation with respect to the parent. When you assign a parent body to the constraint, Parent Space is also aligned with the child body's local space, with the constraint axis going through the child body's pivot point. If the constraint is single-bodied, then Parent Space represents the world orientation and position of the constraint. Child Space At this sub-object level, you can move and rotate the representation of the Prismatic constraint for the child body. The constraint axes are defined in the child body's space, which means that if you alter the position or rotation of the child, the space moves as well and maintains its offset rotation and translation with respect to the child. When you assign a child body to the constraint, the Child Space axis is positioned so that it goes through the child body pivot point, and the axes are aligned with the child body's local space: The prismatic sliding axis is aligned with the child's Z axis. Constraints | 3985 Properties rollout Parent When on, the constraint has two bodies and you can designate an object to be the parent body. When off, the constraint is single-bodied and the point occupied by the Parent Space sub-object is the parent. 3986 | Chapter 16 reactor You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. Child Displays the name of the second rigid body attached to the constraint. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in Working With Constraint Spaces on page 3928. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves and rotates along with it, and vice-versa. Strength group Strength/Tau Govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. You can find out more about these parameters in Strength and Tau on page 3944. Limited group Limited When on, limits the movement of the child object along the sliding axis; the child object can move relative to the parent only within the range specified by the Min Limit and Max Limit values. You can also specify a Friction value for a limited prismatic constraint. Min Limit The minimum distance the constraint allows between the two spaces. For example, if Min Limit is –5.0 then the child body then the child object cannot move more than 5 units backwards relative to the parent along the sliding axis. Max Limit The maximum distance the constraint allows between the two spaces. For example, if Max Limit is 5, then the child object will not be able to move more than 5 units forward relative to the parent along the sliding axis. Friction The level of friction applied to the objects as they try to move along the sliding axis. It is applied only to limited Prismatic constraints. Constraints | 3987 Breakable group Breakable When on, the constraint is breakable. If its breakable limits are exceeded during simulation, it ceases to exert impulses on the attached objects. You can find out more about breakable constraints in Breakable Constraints on page 3944. Display group Size Lets you change the size of the constraint space display in the viewport. Reset Default Values Returns the constraint's parameters to their default values. Car-Wheel Constraint Create panel > Helpers > reactor > Carwheel Animation menu > reactor > Create Object > Car-Wheel Constraint reactor toolbar > Create Car-Wheel Constraint button You can use this constraint to attach a wheel to another object; for instance, a car chassis. You can also constrain a wheel to a position in world space. During the simulation, the wheel object is free to rotate around a spin axis defined in each object's space. Linear motion is allowed for the wheel along a suspension axis. You can also add limits to the wheel's movement along this axis. The constraint's child body always acts as the wheel, while the parent acts as the chassis. The Car-Wheel constraint also has spin parameters. If these are nonzero, the constraint turns the wheel during the simulation. You can specify a target velocity and a target gain: the maximum angular impulse that the motor can apply to the rigid body in order to achieve the target velocity. A Car-Wheel constraint is simulated if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver on page 3945. When not selected, an invalid Car-Wheel constraint is red in the viewport. 3988 | Chapter 16 reactor Procedures To create a Car-Wheel constraint: ■ Choose one of the above options, and then click in any viewport to add the Car-Wheel constraint. NOTE The icon’s position has no effect on the constraint’s behavior. To attach objects to the Car-Wheel constraint: 1 Create the constraint and the objects to connect using it. 2 On the constraint’s Properties rollout, click the Child pick button, and then, in one of the viewports, select the object you want to use as the wheel. This attaches the constraint to the wheel at the wheel's pivot point. The spin axis is aligned to the X axis of the wheel object and the suspension axis is aligned to the Z axis. 3 If you do not want to assign a chassis to the Car-Wheel constraint, turn off the Parent check box if necessary. 4 If the Car-Wheel constraint is to be two-bodied, repeat step 2, using the Parent pick button to specify the chassis object for the constraint. To create the constraint and attach objects in a single step: ■ See the Scripts on page 4103 topic. To change the positions and rotations for the bodies: 1 With the constraint selected, open the Modify panel. 2 In the modifier stack open the constraint’s sub-object list. 3 Access the sub-object level corresponding to the object whose constraint space you want to move: Parent Space for the chassis or Child Space for the wheel. If the constraint is single-bodied, Parent Space represents the world attachment position and rotation of the constraint axes. 4 The space, represented by just a spin axis for the wheel and by the spin and suspension axes for the chassis, becomes active in the viewport and can be moved or rotated using the Move or Rotate tool, respectively. The space maintains its position and rotation relative to its corresponding Constraints | 3989 object. For example, if you move or rotate the wheel, Child Space moves with it. 5 To reset the attachment point to the child's pivot, reattach the objects to the car-wheel constraint or choose the Align Spaces To Child Body option. 6 You can also rotate the suspension axis independent of the spin axis. To do this, highlight the Suspension Rotation sub-object level; this lets you rotate the suspension axis with respect to the chassis’s spin axis. To change the suspension limits: 1 With the car-wheel constraint selected, open the Properties rollout. The default limit settings in the Suspension Parameters group are Min Limit=0.0 and Max Limit=0.0 . This means that in a situation where the constraint spaces are fully aligned for the objects, the wheel cannot move along the suspension axis. The limits define the allowed motion of the wheel along the suspension axis with respect to the chassis, and are displayed as a line with respect to the chassis. This means that from a stable position where the sub-objects are aligned, if the limits are –5 and 10, the wheel will be able 3990 | Chapter 16 reactor to move 10 units away from chassis along the suspension axis in the direction of the icon’s arrow and 5 units in the opposite direction. 2 Change the limits and observe the difference in the simulation. 3 You can also change Friction for the Car-Wheel constraint; this inhibits the wheel’s motion along the suspension axis. To spin the wheel: These controls are found in the Spin Parameters group. 1 Set the Velocity value to the required value. This is specified in radians per second. 2 Set the Gain. This is the maximum angular impulse the constraint can apply to maintain this angular velocity. Constraints | 3991 Interface Modifier Stack Parent Space At this sub-object level, you can move and rotate the representations of spin and suspension axes for the chassis. This describes where on the chassis the wheel is attached and also the directions of the spin and suspension axes for the chassis. This is defined in chassis space, which means that if you alter the position or rotation of the chassis the axes will move as well and maintain their offset rotation and translation with respect to the chassis. When you assign a chassis to the car-wheel constraint, Chassis Space’s translation is set to the wheel’s pivot point, the spin axis is aligned to the wheel’s X axis, and the suspension axis is aligned to its Z axis. If the car-wheel constraint is single-bodied, then Chassis Space represents the world orientation and position of the constraint. Child Space At this sub-object level, you can move and rotate the representation of the constraint for the wheel. This describes both the location on the wheel that the constraint considers as its attachment point and the rotation of the spin axis for the wheel. This is defined in wheel space, which means that if you alter the position or rotation of the wheel the space moves as well and maintains its offset rotation and translation with respect to the wheel. When you assign a wheel body to the Car-Wheel constraint, Wheel Space’s translation is set to the wheel’s pivot point and the wheel’s spin axis is aligned to its X axis. Suspension Rotation This level allows independent rotation of the suspension axis with respect to the Chassis Space. This means that your suspension axis doesn’t have to be perpendicular to your spin axis, allowing for a greater range of constraint setups. 3992 | Chapter 16 reactor Properties rollout Parent When on, the constraint has two bodies and you can designate an object to be the optional chassis rigid body attached to the Car-Wheel Constraints | 3993 constraint. When off, the constraint is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the chassis by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the chassis object. Child Displays the name of the second rigid body attached to the constraint. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in Working With Constraint Spaces on page 3928. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves and rotates along with it, and vice-versa. Strength group Strength/Tau Govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. You can find out more about these parameters in Strength and Tau on page 3944. Suspension Parameters group Min Limit The distance the constraint allows the wheel to move along the suspension axis relative to the chassis, in the direction opposite that indicated by the icon’s suspension arrow. For example, if Min Limit=–5, then the wheel cannot move more than five units backwards along the suspension axis with respect to the constraint’s spaces. Max Limit The distance the constraint allows the wheel to move along the suspension axis relative to the chassis, in the direction indicated by the icon’s suspension arrow. For example, if Max Limit=10 then with respect to the constraint’s spaces the wheel cannot move more than 10 units forward along the suspension axis. Friction The level of friction applied to the objects as they try to move relative to each other along the suspension axis. Available with Havok 1 only. Strength The strength value of the suspension spring. Higher values cause less vertical movement. Available with Havok 3 only. 3994 | Chapter 16 reactor Damping The damping value of the suspension spring. Higher values suppress vertical oscillation. Available with Havok 3 only. Spin Parameters group Velocity This value indicates the angular velocity in radians per second that the constraint will seek to achieve for the wheel. Gain This value indicates the maximum angular impulse the constraint can apply to attain the specified angular velocity. Breakable group Breakable When on, the constraint is breakable. If its breakable limits are exceeded during simulation, it ceases to exert impulses on the attached objects. For more information, see Breakable Constraints on page 3944. Display group Size Lets you change the size of the constraint space display in the viewport. Reset Default Values Returns the constraint's parameters to their default values. Point-Path Constraint Create panel > Helpers > reactor > Point-Path Animation menu > reactor > Create Object > Point-Path Constraint reactor toolbar > Create Point-Path Constraint button The Point-Path constraint allows you to constrain two bodies so that the child is free to move along a specified path relative to the parent. Alternatively, you can create a single-bodied version of the constraint, where the constrained body can move along a path in world space. The child body's orientation is not restricted by the constraint. You could, for example, use a Point-Path constraint to simulate a bead on a wire. In most cases, you don't need to specify a parent rigid body for a Point-Path constraint, unless the motion of the path itself should follow another rigid body. Constraints | 3995 The constraint is simulated if it has the correct number of rigid bodies attached, a specified path shape, and is included in a valid Constraint Solver on page 3945. When not selected, invalid constraints are red in the viewport. Procedures To create a Point-Path constraint: ■ Choose one of the above options, and then click in any viewport to add the Point-Path constraint. NOTE The icon’s position has no effect on the constraint’s behavior. To specify objects and a path for the constraint: 1 Create the constraint and the bodies to constrain. 2 Create a line or curve in the viewport using one of the Shapes tools on the Create panel. 3 In the constraint’s Properties rollout, click the Child pick button, and then select the object you want to use as the child object in one of the viewports. 4 If you do not want to assign a second body to the constraint, turn off the Parent check box if necessary. 5 If the constraint is to be two-bodied, repeat step 2, using the Parent pick button to set the parent for the constraint. 6 Use the Path pick button to designate the path. The constraint icon moves to the designated path. By default, this constraint type is aligned so that the parent constraint space is aligned with the path shape's local space, while the child space is aligned with the child body's local space. To change the path position and orientation for the bodies: 1 With the constraint selected, open the Modify panel. 2 In the modifier stack open the constraint’s sub-object list. 3 Access the sub-object level corresponding to the object whose constraint space you want to move: Child Space or Parent Space. If the Point-Path constraint is single-bodied, Parent Space represents the world position and rotation of the path. 3996 | Chapter 16 reactor 4 The space, represented by a set of axes and the path, becomes active in the viewport and can be moved or rotated using the Move or Rotate tool, respectively. The space maintains its position and rotation relative to its corresponding object. For example, if you move or rotate the child body, Child Space moves with it. Interface Modifier Stack At this sub-object level, you can move and rotate the representation of the constraint for the parent body. The axes and path are defined in the parent body's space, which means that if you alter the position or rotation of the parent, the space moves as well and maintains its offset rotation and translation with respect to the parent. When you assign a parent body to the constraint, Parent Space is aligned with the path's local space. If the constraint is single-bodied, then Parent Space represents the world orientation and position of the path.Parent SpaceChild Space At this sub-object level, you can move and rotate the representation of the constraint for the child body. The axes and path are defined in the child body's space, which means that if you alter the position or rotation of the child, the space moves as well and maintains its offset rotation and translation with respect to the child. When you assign a child body to the constraint, the Child Space is aligned with the child body's local space. Constraints | 3997 Properties rollout Parent When on, the constraint has two bodies and you can designate an object to be the parent body. When off, the constraint is single-bodied and the point occupied by the Parent Space sub-object is the parent. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. Thereafter the button displays the name of the parent body. 3998 | Chapter 16 reactor Child Displays the name of the second rigid body attached to the constraint. You assign the child object by clicking this button and then selecting a rigid body from any viewport. Align Spaces To Use these options to align the bodies' local constraint spaces. You can find out more about each option in Working With Constraint Spaces on page 3928. Lock Relative Transform When on, the relative transform between the child and parent constraint spaces is locked: If you move either space in the viewport, the other space moves and rotates along with it, and vice-versa. Strength group Strength/Tau Govern the impulses applied to the constraint's bodies in order to maintain the constraint, and so how strongly the constraint works to restrict their movement. You can find out more about these parameters in Strength and Tau on page 3944. Breakable group Breakable When on, the constraint is breakable. If its breakable limits are exceeded during simulation, it ceases to exert impulses on the attached objects. You can find out more about breakable constraints in Breakable Constraints on page 3944. Display group Size Lets you change the size of the constraint space display in the viewport. Reset Default Values Returns the constraint's parameters to their default values. reactor Objects Plane Create panel > Helpers > reactor > Plane Animation menu > reactor > Create Object > Plane reactor Objects | 3999 reactor toolbar > Create Plane button The reactor Plane object is a type of rigid body that acts as a fixed, infinite plane in the simulation. It shouldn't be confused with the standard 3ds Max plane, which can also be used as a rigid body provided its simulation geometry property on page 3914 is set to Concave Mesh. Like other rigid bodies, the Plane can have display proxies assigned to it and can be contained in a compound rigid body. You can also assign friction and elasticity values to it. However, it is always fixed in the simulation (the Mass on page 3912 and Unyielding on page 3912 properties are ignored). The reactor Plane acts in only one direction, as shown in the viewport by an arrow pointing away from its solid surface. This means that rigid bodies approaching the plane from the "wrong" direction pass through it. You can, of course, also use two opposing planes. The reactor Plane as rendered in a viewport Procedures To create a Plane: 1 Choose one of the above options, and then click in any viewport. The plane’s normal is aligned with the viewport’s Z axis. 2 Use the Move and Rotate tools to adjust its position and orientation, as necessary. 4000 | Chapter 16 reactor Interface Properties rollout Show Normal When on, the Plane normal is displayed as an arrow in the viewport. Motor Create panel > Helpers > reactor > Motor Animation menu > reactor > Create Object > Motor reactor toolbar > Create Motor button The Motor helper lets you apply a turning force to any non-fixed rigid body in the scene. You can specify the angular velocity for the target and the maximum angular impulse the Motor can apply to achieve this velocity. You do not need to add a Motor explicitly to a simulation, as all valid motors in a scene are added to the simulation by default. A Motor is valid if its Rigid Body property has been set to a valid rigid body in the scene. When not selected, invalid motors are colored red in the viewport. Procedures To create a motor: ■ Choose one of the above options, and then click in any viewport to add the motor. NOTE The icon’s position has no effect on the motor’s behavior. reactor Objects | 4001 To set the rigid body for the motor: 1 Create the motor and the rigid body to attach the motor to. 2 On the Properties rollout, click the Rigid Body pick button and then, in one of the viewports, select the object you would like to motor to act on. The motor can apply rotational forces about one of the object’s axes. The default rotation axis is the object's Z axis. The rotation axis and rotation direction are displayed in the viewport. Interface Motor Properties rollout Rigid Body Displays the name of the rigid body that the motor applies forces to. You assign a motor’s rigid body by clicking this button and then selecting a rigid body from any viewport. Ang Speed The target angular velocity that the motor attempts to achieve for the rigid body. It is specified in radians per second, so the default value of 3.14 (pi) results in 180 degrees of rotation per second or half a revolution per second. 4002 | Chapter 16 reactor Gain The maximum angular impulse that the motor can apply to the rigid body in order to achieve the target velocity. Rotation Axis The local axis for the rigid body about which the motor applies impulses. This axis has a visual representation when the motor helper is selected. Disabled When on, the motor is not added to the simulation. Size The size of the rotation axis in the viewport. Reset Default Values Returns Ang Speed, Gain, and Rotation Axis to their default values. Toy Car Create panel > Helpers > reactor > Toy Car Animation menu > reactor > Create Object > Toy Car reactor toolbar > Create Toy Car button The reactor Toy Car is a quick way to create and simulate a simple car without having to set up each constraint separately. The Toy Car helper lets you choose a chassis and wheels for your car, tweak various properties such as the strength of its suspension, and specify whether you would like reactor to turn its wheels during the simulation. reactor then sets up all the necessary constraints to simulate the car. A Toy Car is simulated if it has a rigid body assigned as a chassis and at least one rigid body assigned as a wheel. When not selected, an invalid Toy Car helper is red in the viewport. reactor Objects | 4003 Procedures To set up a toy car, follow these procedures in order, and make sure the car has a surface to travel on, such as a level plane. For getting started, we suggest you use Icon Orientation and ignore the procedure about Common Local Orientation. To create a Toy Car helper: ■ Choose one of the above menu options, and then click in any viewport to add the Toy Car. NOTE The icon’s initial position has no effect on the car's behavior. To set up the rigid bodies for a Toy Car: 1 Create and position the rigid bodies you want to connect using the Toy Car helper. A toy car must have a chassis and at least one wheel. 2 Use the Rigid Body Properties dialog to assign a mass value to each car element. The Mass values you specify affect how the toy car behaves. Ideally, the mass of the chassis should not be much greater than the total wheel mass, 4004 | Chapter 16 reactor and the density of the bodies should be such that the Analyze World utility generates no warnings. To assign rigid bodies to a Toy Car: 1 Create the Toy Car helper and the objects to connect using it, as described above. 2 On the Properties rollout, click the Chassis pick button, and then, in one of the viewports, select the object to use as the chassis. The Toy Car icon moves to the chosen rigid body. By default, the icon is aligned with the chassis's local space. reactor can use this orientation as a guide for the directions of the suspension and wheel axes. 3 Add your car's wheels to the helper. You can add wheels to the toy car either by picking or using a selection list: ■ Click the Pick button and then select the object to use as a wheel. ■ Click the Add button and then use the dialog to select one or more objects to use as wheels. By default, reactor uses the icon orientation (taken from the chassis) to provide the directions of the wheels' spin and suspension axes. Each spin axis is aligned with the icon's X axis and passes through the relevant wheel's pivot point. The suspension axes are aligned with the icon's Z axis, and also pass through each wheel's pivot point. NOTE For this to work, make sure that the wheels are oriented correctly relative to the icon before simulating. To change the wheel axis orientation (Icon Orientation): 1 Use the Rotate tool to change the toy car icon's orientation so that it matches that of the actual car model. 2 Ensure that Toy Car Properties rollout > Toy Car Orientation is set to Icon Orientation (the default). The wheel axes are aligned with the icon's new orientation during the simulation. To change the wheel axis orientation (Common Local Orientation): 1 Ensure that the wheel and chassis local spaces are correctly aligned in world space. reactor Objects | 4005 The initial world space orientation of the wheels relative to the chassis/icon is unimportant when using this option, as reactor reorients the bodies so that their local spaces continue to match during the simulation. 2 On the Toy Car Properties rollout, set Toy Car Orientation to Common Local Orientation. 3 Use the radio buttons to change the Suspension and Spin directions relative to the bodies' local spaces. By default, the Spin axes are aligned with the wheel and chassis's local X axes, and the suspension axes with their Z axes. To spin the Toy Car wheels: 1 On the Toy Car Properties rollout, turn on the Spin Wheels check box. 2 Change the default Ang (Angular) Speed and Gain values as necessary. Angular Speed is the target angular velocity that reactor attempts to achieve for the wheels. The Gain is the maximum angular impulse that can be applied to the wheels in order to achieve the target velocity. 4006 | Chapter 16 reactor Interface Toy Car Properties rollout Chassis Displays the name of the rigid body that serves as the chassis. You assign the chassis object by clicking this button and then selecting a rigid body from any viewport. reactor Objects | 4007 Wheels Lists the names of the toy car's wheels. Pick Lets you add a wheel to the car. Click this button, and then in the viewport position the cursor over the object you would like to use as a wheel. If the object can be used as a rigid body, the cursor changes from an arrow to a cross and you can select the object to add it to the toy car. Add Lets you add one or more rigid bodies from the scene to act as wheels for the toy car. Click the button to open the Select Car Wheels dialog. Make a selection in the provided list, then add the wheels to the car by clicking the Select button. Delete Lets you remove wheels from the car. Highlight the wheels to remove from the car in the Wheels list and then click this button. NOTE The following four parameters are available with Havok 1 only. With Havok 3, use the Havok 3 Wheel Params rollout on page 4009 settings instead. Angular Strength The strength of the corrective forces applied to keep the wheels upright and pointing forward. Linear Strength The strength of the forces applied to keep the wheels in position relative to the chassis. Suspension The suspension strength for the car. The lower the value, the more the chassis bounces when forces are applied to it. Internal Substeps Allows the car to be simulated using more substeps per keyframe than the rest of the simulation. Increasing the Internal Substeps value can be useful if you are simulating a car with unusual parameters, which might require more substeps for stability. Toy Car Orientation group Choose how reactor orients the bodies in relation to the spin and suspension axes. Icon Orientation The Toy Car icon's initial orientation provides the directions of the wheels' spin and suspension axes. Each spin axis is aligned with the icon's X axis and pass through the relevant wheel's pivot point. The suspension axes are aligned with the icon's Z axis, and also pass through each wheel's pivot point. The wheels' own local orientations are unimportant. NOTE Animating the orientation of the Toy Car icon has no effect on the direction of motion during the simulation; reactor uses only the orientation at the start of the simulation. 4008 | Chapter 16 reactor Common Local Orientation With this option, you align the bodies' local spaces in world space, and specify the Spin and Suspension axes relative to this common orientation. The orientation of the rigid bodies in world space before simulating is unimportant. This means, for instance, that you can set up your car with its wheels turned sideways and they still spin around the correct axes when simulating. This option allows you to change the spin and suspension axes separately. By default, the spin axes are aligned with the wheel and chassis' local X axes, and the suspension axes with their Z axes. Allow Wheel Penetration When on, reactor disables collision detection between the chassis and the wheels. Spin Wheels When on, the car's wheels to spin during the simulation and an arrow appears on the Toy Car viewport icon showing the direction of motion. ■ Ang Speed The target angular velocity that reactor attempts to achieve for the wheels when Spin Wheels is on. It is specified in radians per second, so the default value of 3.14 (pi) results in 180 degrees of rotation per second or half a revolution per second. ■ Gain The maximum angular impulse that reactor can to the wheels in order to achieve the target velocity. Disabled When on, reactor removes the Toy Car helper from the simulation. Display Size The size of the Toy Car helper icon as displayed in the viewport. Reset Default Values Returns the Toy Car parameters to their default values. Havok 3 Wheel Params rollout These parameters apply only when the simulation engine is Havok 3, and reflect the implementation of a subset of Car-Wheel constraint parameters in the Toy Car object in Havok 3. reactor Objects | 4009 These parameters replicate the Car-Wheel constraint parameters of the same names on page 3994. Fracture Create panel > Helpers > reactor > Fracture Animation menu > reactor > Create Object > Fracture reactor toolbar > Create Fracture button 4010 | Chapter 16 reactor The Fracture helper object simulates the breaking of a rigid body into a number of smaller pieces as the result of an impact. To do this, you need to supply the pieces that are glued together to create the whole object. This is known as "pre-fracturing." reactor does not break the pieces you supply into smaller pieces. TIP An excellent tool for pre-fracturing your objects is the ProCutter compound object on page 862. Rigid bodies that are part of a Fracture helper move together as a single body. When a rigid body that belongs to a Fracture helper collides with another body, the collision information is analyzed and if a threshold is exceeded, the rigid body is removed from the fracture helper. Once the rigid body has been removed, it moves independently of the fracture object and is free to collide with the rigid bodies that are still part of the fracture object. This can often result in a chain reaction of pieces breaking off. You can optionally enable the use of connectivity. Connectivity analyzes the bodies belonging to the Fracture helper to find bodies that are in contact with each other before simulation occurs. This builds up an internal graph of which bodies are connected to which other bodies. Thus groups of rigid bodies that are connected to each other, but disconnected with other bodies in the fracture reactor Objects | 4011 helper, can move independently as separate fracturable objects. As a result, you can get the effect of multiple fracturable objects in a single Fracture helper. After a fracture event occurs, reactor once again analyzes this connectivity graph to create new chunks if they exist. If you see floating disconnected bodies moving strangely because they are invisibly still part of a larger fracture object, be sure to turn on connectivity. A body is considered to be in contact with another body if the closest distance between them is less than the collision tolerance. To allow the fracture feature to work reasonably well, reactor uses a special collision detection technique: penetration depth calculation. Unlike normal rigid bodies in reactor, bodies that are part of a fracture helper are allowed to continue to collide with each other, even when they are in a interpenetrating state. To see how the non-fracture bodies are treated during collision detection, see the Fracture Tips on page 4017 topic. Penetration depth calculation, especially in the context of the simulation paradigm used in reactor, is computationally expensive, so you might notice slower performance when the fracture bodies are penetrating each other. Stability in these cases can also become an issue. reactor provides a number of techniques for getting your fracture simulation to behave more realistically If you find that it is unstable. For instance, the fractured object might appear to explode after a single piece breaks loose. You can find these in the Fracture Tips on page 4017 topic. Procedures To create a Fracture helper: ■ Choose one of the above menu options, and then click in any viewport to add the Fracture helper. NOTE The icon’s position has no effect on the fracture object's behavior. To add rigid bodies to a Fracture helper: 1 Create a Fracture helper in the scene and some objects to use as rigid bodies. You can add rigid bodies to the helper in two ways: by picking or by using a selection list. 4012 | Chapter 16 reactor 2 With the Fracture helper selected, use either (or both) of the following methods: ■ Click the Pick button on the Properties rollout and then select the select the rigid body to add to the helper. ■ Click the Add button and then use the dialog to select one or more objects to use as fracture elements. The names of rigid bodies you add appear in the helper's Pieces list. To create the Fracture helper and add objects in a single step: ■ See the Scripts on page 4103 topic. To prevent the Fracture object from exploding: ■ See the Fracture Tips on page 4017 topic. reactor Objects | 4013 Interface Properties rollout Highlight Click this button to cause the objects in the Pieces list to momentarily display as if selected. 4014 | Chapter 16 reactor Pieces Lists the names of the objects currently part of the Fracture object. To highlight multiple contiguous list items, click and then Shift+click. To highlight multiple non-contiguous list items or remove highlighting, use Ctrl+click. Pick Lets you add an object to the Fracture helper. Click this button, and then in the viewport position the cursor over the object to add to the helper. If the object can be used as a fracture piece, the cursor changes from an arrow to a cross and you can select the object to add it to the helper. Add Lets you add one or more objects from the scene to the helper. Click the button to open the Select Rigid Bodies For Fracture dialog. Make a selection in the provided list, and then press the Select button to add the objects to the helper. Delete Lets you remove objects from the helper. In the Pieces list, highlight the bodies to remove from the helper and then click this button. Selected piece You can assign these properties to pieces highlighted in the Pieces list. Broken This read-only check box shows whether any of the highlighted pieces have broken off at the current frame. For example, say you've created an animation from frame 0 to frame 50 using Fracture, where piece A broke off at frame 10. Highlighting piece A and moving the time slider to frame 10 or after automatically turns on Broken. Moving the time slider to frame 9 or before turns off Broken. This is because reactor keeps track of the times pieces break off. That way, if you continue the animation at frame 50, reactor knows it shouldn't add piece A to the fracture object, so it keeps moving independently. You can restore a highlighted piece to its "unbroken" state with the Reset button (see following). Reset This button is available if any of the pieces broke off during a previous animation (reactor stores the times when pieces broke off). Clicking this button tells reactor to ignore the times they broke off in the previous animation. Choose the behavior for highlighted pieces: ■ Normal The default behavior option for a fracture piece. ■ Unbreakable The highlighted piece never breaks away from the Fracture object, even if it experiences an intense collision. ■ Keystone ■ Break At Time The selected piece breaks at the time you specify. For this kind of piece the Broken check box reflects the state of the piece at the If this piece breaks, then all pieces break. reactor Objects | 4015 current frame. Thus, if you set a piece to break at frame 5, the Broken check box is on at frame 5 and later, and off at frames before 5. Use Connectivity When on, groups of pieces that are connected to each other move independently of pieces that they are not connected to. This is like having multiple fracture objects contained in one fracture helper. The collision detector determines that two pieces are connected to each other if their distance from each other is less than the world's Collision Tolerance on page 4088. Break on Choose the method by which reactor determines whether fracturing should occur: ■ Impulse When a piece of the fracture object experiences a collision where the impulse is greater than the threshold specified, it breaks off from the fracture object. The impulse of the collision is proportional to both the relative velocity of the collision and the mass of the objects involved in the collision. The higher the mass of the object that hit the piece, the larger the impulse. ■ Velocity When a piece of the fracture object experiences a collision where the relative velocity is greater than the threshold specified, it breaks off from the fracture object. The size or mass of the object is not be taken into account. Energy Loss The amount of extra kinetic energy is lost in the collision due to the breaking of the fracture bonds. This has the effect of dampening the collision somewhat and also transferring energy to the remaining, unbroken pieces of the fracture object. To simulate a brittle object, with maximum shatter effect, keep this value low. To simulate breakage of a material more like wood or concrete, use a high Energy Loss value. TIP Increasing this value can improve the performance and stability of the simulation. Display: Show Bounding Box When on, the viewports display a box that contains all the pieces of the fracture object. Disabled When on, the Fracture helper has no influence on the rigid bodies that are part of it. Reset Default Values Returns the settings to their default values. 4016 | Chapter 16 reactor World rollout > Fracture Penetrations group Several additional values govern fracture behavior. These are global in that they apply to every rigid body added to a Fracture object, and are found in the Utility panel > reactor > World rollout. These values control the behavior of penetration depth collision detection and response, and apply only to objects that are included in a Fracture helper. Separation Time Forces are applied to penetrating bodies that are strong enough so the bodies become separated within the time specified. To simulate an explosion effect, make this value very small and reduce the Velocity Cap value. Velocity Cap reactor won't apply penetration recovery forces if they cause the relative velocity between two penetrating bodies to exceed the specified value. Scale Tolerance The collision tolerance for bodies that use the penetration depth algorithm is determined by multiplying the Collision Tolerance value on page 4088 by the value specified. If this value is negative, the collision tolerance will extend inside the bodies, effectively shrinking the collision geometry. For more information about using these values, see the Fracture Tips on page 4017 topic. Fracture Tips After you procedurally slice up an object for fracture, the new pieces fit snugly among each other. When one piece breaks loose after a fracture event, it might be in contact with other pieces that are still part of the non-fractured body. This can throw the broken piece into unstable oscillations against two or more opposing pieces. The result is a chain-reaction throughout the fracture body, with all the pieces flying off into space. It might appear as though some of the pieces simply wink out of existence. Unlike normal rigid bodies in reactor, reactor Objects | 4017 Fracture pieces are allowed to exist in a state of interpenetration, where restoring forces are applied to separate them. Many objects sitting in penetrating states next to each other can result in an unstable system. To make the system more stable and less prone to exploding: Try one or more of the following: 1 Reduce the Scale Tolerance value on page 4017 in the Fracture Penetrations group of the reactor utility World rollout. This value can be as low as –1.0, but –0.1 should suffice in most cases. This scales the Collision Tolerance on page 4087 for pieces of a fracture object. A negative Scale Tolerance value effectively shrinks the object as it is perceived by the collision-detection system. Pieces that were snug against each other now have a comfortable safety zone where no collisions take place. This is tied to the Collision Tolerance value, so changing Collision Tolerance changes the effective tolerance used when fracture pieces collide with other fracture pieces. It dramatically reduces unstable oscillations. This is the most effective thing to try when you wish to avoid explosions. 2 Manually offset the pieces from each other, leaving a physical gap between all pieces. The gap should be as big as Collision Tolerance * Scale Tolerance. 3 Increase the Energy Loss value on the Fracture object's Properties rollout. This is the percent of energy that can be "lost" in the fracture event by transferring momentum from the broken piece to the unbroken Fracture object. Increasing it increases the relative velocity between the newly fractured piece and the remaining unfractured pieces. Ultimately this reduces the chances of a chain-reaction of unstable oscillations. 4 Increase the Separation Time value and/or decrease the Velocity Cap in the Fracture Penetrations on page 4017 group of the World rollout. This controls how aggressively reactor pushes the pieces out of a state of interpenetration. After doing this you may notice visible interpenetrations. 5 Slice up your object in a different configuration. Avoid creating very small pieces, especially if they are right next to very large pieces. 6 Turn on the Use Connectivity check box on the Properties rollout of the Fracture helper. When connectivity is enabled, clumps of pieces that are disconnected from other clumps but still internally glued to each other are set free to move independent of the other clumps. This serves to create gaps between fractured pieces earlier, so unstable oscillations won’t happen. 4018 | Chapter 16 reactor Storing and Accessing Collisions Utility panel > reactor > Collisions rollout reactor lets you store information about all rigid body collisions that occur during the simulation. You can access this information via MAXScript or save it to a text file. The information includes the objects involved, the point of collision, and the relative velocity during collision. You can then use it to generate particles or other effects in your animation when objects collide, trigger sounds, and so on. You can activate and configure collision storing using the reactor utility's Collisions rollout on page 4090. Interface Store Collisions group Store Collisions Use these options to store collision information when creating an animation. For each collision that occurs during the simulation, reactor Storing and Accessing Collisions | 4019 can record the simulation time at which the collision occured, the objects involved, the point of collision, and the relative velocity during the collision. ■ Do not store ■ Store once ■ Always store animation. reactor stores no collision data. reactor stores collision data next time an animation is created. reactor always stores collision data when creating an # collisions stored This read-only field reports how many collisions were stored in reactor last time an animation was created. View Opens the Stored Collisions dialog on page 4021, which shows all the currently stored collision information. Clear Deletes all stored collision information. Filter Before Storing These options let you provide more specific details about the collision information you want to record. Objects When on, lets you store only collisions involving particular objects. Use the Objects button to designate those objects. Click this button to open the Filter Bodies In Collisions dialog on page 4023. This allows you to select the pairs of objects whose collisions interest you. Only collisions involving those pairs of objects are stored. Velocity When on, reactor stores only collisions that occur above a certain velocity. You can specify the threshold velocity using the provided field. reactor ignores this filter for phantom collisions on page 3913. Define Collision Pairs Allows you to enable or disable collision detection between specified pairs of objects. You can find out more about this in the Collisions Rollout on page 4090 topic. 4020 | Chapter 16 reactor Stored Collisions Dialog Collisions List Box This list box shows all the information stored about the collisions ocurred during the last animation. The information is organized in different columns: ■ Ticks The time, in ticks (1/4800th of a second) when the collision happened. ■ Frame / SMPTE / MM:SS:Ticks The time, in the current time units (which can be frames, ticks, SMPTE, etc.), when the collision happened. ■ Object A The first rigid body involved in the collision. ■ Object B The second rigid body involved in the collision. ■ Point ■ Normal ■ Speed The relative velocity of the two objects along the specified normal direction. The location of the collision, in world coordinates. The unit normal of the collision, specified from B to A. Storing and Accessing Collisions | 4021 ■ Phantom Specific information generated by phantom rigid bodies on page 3913. There are three possible values: ■ Not Phantom body. This collision wasn't generated by a phantom rigid ■ Entering The time the phantom rigid body started penetrating (entered) the other rigid body. ■ Leaving The time the phantom rigid body finished penetrating (exited) the other rigid body. Close Closes the dialog. Save Allows you to save the stored information in a text file. This is an example of the format: .... Time : 4175 A : Box01 B : Teapot01 Point : ( 3.25862 -56.7632 10.0549 ) Normal : ( 1.28512e-007 3.18186e-007 -1 ) NRV : 53.4184 Phantom : Not Phantom Time : 4415 A : Phantom B : Box01 Point : ( 0 0 0 ) Normal : ( 0 0 0 ) NRV : 0 Phantom : Entering Time : 4495 A : GeoSphere01 B : Box01 Point : ( -6.02472 18.1558 10.1478 ) Normal : ( -2.48431e-006 1.51463e-006 1 ) NRV : 21.6887 Phantom : Not Phantom 4022 | Chapter 16 reactor .... Filter Bodies In Collisions dialog Bodies Lists the names of the reactor bodies in the scene. Highlighting an object populates the Store Collisions and Do Not Store Collisions lists for that object with respect to the other bodies in the scene. If you highlight more than one object in this list, how the lists are populated depends on the value of Common Collisions. Common Collisions When on, if more than one rigid body is highlighted in the Bodies list, the Store and Do Not Store lists are populated from the list of possible pairs that can be made using only your selected objects. When off, the lists contain all possible pairs from the scene that contain at least one of your selected objects. For example, take a scene containing four rigid bodies: Box01, Box02, Box03 and Box04. If Common Collisions is on, and you highlight Box01 and Box02 in the Bodies list, then the only possible pair that includes only your selected objects is Box01<->Box02. If you highlight Box01, Box02, and Box03, then the possible pairs using these objects are Box01<->Box02, Box02<->Box03, and Box01<->Box03. If highlight the same objects with Common Collisions off, then the lists also include the highlighted objects paired with the remaining objects in the collection. This means that the available pairs would also now include Box01<->Box04, Box02<->Box04 and Box03<->Box04. This option is selected by default. Store Collisions Collision data is stored for any pairs of objects in this list. Storing and Accessing Collisions | 4023 Do Not Store Collisions Collision data is not stored for these pairs of objects. > Moves the pairs that are highlighted in the Store list to the Do Not Store list. >> Moves all the pairs in the Store list to the Do Not Store list. < Moves the pairs that are highlighted in the Do Not Store list to the Store list. << Moves all the pairs in the Do Not Store list to the Store list. OK Closes the dialog, saving any changes. Cancel Closes the dialog without saving your changes. Deformable Bodies You can use rigid bodies on page 3909 in reactor to model any real-world object whose shape doesn't change over time. However, what if you want to simulate an object whose geometry does change over the course of the simulation, such as a cloak, hair, foam bricks, or perhaps a slithering tentacle? reactor allows you to model these with a second category of objects, called deformable bodies. The geometry (vertices) of deformable bodies can change over time, driven either by reactor during the simulation or by existing animation in 3ds Max, allowing the objects to bend, flex, and stretch while affecting and being affected by the rest of objects in the world simulation. IMPORTANT The Havok 3 engine does not support deformable bodies in reactor; you can use these only with the Havok 1 engine. In addition to creating entirely deformable objects, you can combine deformable bodies with rigid bodies, for instance to add secondary motion to a simulated character. Secondary motion could include swirling clothing, wobbling flesh, or a swinging tail. Deformable objects are also useful for environmental effects such as swinging ropes and chains, curtains, and flags with dynamic wind. Generally, you create a deformable body in reactor by first creating a mesh or spline that models the object's basic shape, and then applying a special modifier. You can then specify additional physical properties for the object. reactor includes four main types of deformable bodies, each of which is dealt with in its own section: ■ Cloth on page 4026, a deformable two-dimensional triangular mesh 4024 | Chapter 16 reactor ■ Soft Body on page 4037, a deformable three-dimensional closed triangular mesh ■ Rope on page 4049, a deformable one-dimensional chain of vertices. ■ Deforming Mesh on page 4058, a deformable mesh whose vertices have already been animated, for instance the skin on a character rig. As with rigid bodies, you must add deformable bodies to a collection in order to be added to the simulation. Each deformable body type has its own corresponding collection type. Also like rigid bodies, you can constrain the possible movement of deformable bodies: see Constraining Deformable Bodies on page 4061. NOTE Deformable bodies are more complex than rigid bodies on page 3909, so reactor requires more time to simulate them. Working with Deformable-Body Vertices reactor includes several tools for working with individual vertices in deformable bodies. The topics covering these are: ■ Fixing Vertices in World Space on page 4064 ■ Keyframing Vertices on page 4065 ■ Attaching Vertices to a Rigid Body on page 4067 ■ Attaching Vertices to Deforming Meshes (Skin) on page 4069 ■ Soft Selection on page 4071 Deformable Bodies | 4025 Cloth Cloth objects in reactor are two-dimensional deformable bodies. Using cloth objects you can simulate flags, curtains, clothing (skirts, capes, shirts), banners and even materials like paper and sheet metal. This section contains two topics: ■ Cloth Modifier on page 4026: Apply it to each mesh to be deformed as cloth. ■ Cloth Collection on page 4034: A container for cloth objects. Cloth Modifier Animation menu > reactor > Apply Modifier > Cloth Modifier reactor toolbar > Apply Cloth Modifier button The Cloth modifier lets you to turn any geometry into a deformable mesh, allowing you to simulate the behavior of objects such as curtains, clothes, 4026 | Chapter 16 reactor metal sheets, and flags. You can specify a number of special properties for cloth objects, including stiffness and how the object folds. To add a cloth object to the simulation, you need to add it to a Cloth Collection on page 4034. Procedures To create a Cloth object: 1 Create the mesh object that you would like to simulate as cloth. NOTE In reactor the underlying topology of this object can influence the cloth's behavior. For instance, cloth tends to fold along contiguous edges; highly tessellated meshes also stretch more, etc. Irregular triangulations (for example, a Delaunay triangulation of a 3ds Max NURBS surface) results in isotropic behavior (same behavior across all directions), avoiding artificial creases and folds around specific directions; it can therefore produce more realistic-looking results for pieces of clothing. Regular triangulations (like that of a standard 3ds Max plane) lead to anisotropic behavior (tendency to folding and creasing is different depending on the direction), this of course might be irrelevant or even desirable in some situations. TIP A quick, easy way to create a Delaunay mesh for reactor Cloth is to apply the Garment Maker modifier on page 1297 to a shape. Cloth | 4027 Different tessellation produces different cloth behavior. 2 With the object selected, choose one of the above options. The Cloth modifier appears in the object's modifier stack. To edit a cloth object's physical properties: 1 Select the appropriate object in the scene. 2 On the Modify panel, ensure that the reactor Cloth modifier is highlighted in the modifier stack. 3 Use the Properties rollout to edit the properties, which are described in the Interface section, following. 4028 | Chapter 16 reactor Interface Modifier Stack Vertex Allows you to select individual vertices of the cloth object to apply and modify deformable constraints on page 4061. Cloth | 4029 Cloth Properties rollout Mass The Cloth object's mass in kilograms. This affects the behavior during collisions with other objects, and also the stretching caused by attached rigid 4030 | Chapter 16 reactor bodies on page 4067: the higher the mass of the cloth, the less stretching induced by the rigid body. Friction The coefficient of friction for the cloth's surface. As with rigid bodies, this affects how smoothly the cloth moves relative to surfaces it contacts. The Friction values for both objects in contact combine to produce a coefficient for the interaction. Rel Density Cloth has no volume, so reactor cannot calculate its density. Instead, reactor provides a buoyancy property for Cloth objects, which reflects its relative density. The default value is 1.0, the density of water. This value is important only if you are going to float or immerse the cloth in water. Air Resistance The extent to which the cloth loses energy as it moves. Force Model Choose the way forces in the simulation affect your cloth object: ■ ■ Simple Force Model ■ Stiffness ■ Damping This default method is suitable for most situations. The stiffness of the cloth. How quickly the cloth dissipates energy as it changes shape. Complex Force Model This more-accurate model of cloth dynamics is more computationally expensive to simulate. It provides parameters to specify the shear and stretch stiffness separately, as well as a physically accurate out-of-plane bend property. ■ Stretch The cloth resistance to stretching. ■ Bend The cloth resistance to bending. ■ Shear The cloth resistance to shearing. ■ Damping How quickly the cloth dissipates energy as it changes shape. Fold Stiffness Fold stiffness governs the cloth resistance to folding. ■ None By default, Cloth objects have no fold stiffness, and behave like a loose material such as silk. ■ Uniform Model This model adds fold stiffness uniformly across the surface of the cloth, regardless of its topology. ■ Stiffness The fold stiffness value. Cloth | 4031 ■ Spatial Model This more-complex model of fold stiffness can be useful if you are simulating a complicated piece of cloth, such as a dress. It allows you, for instance, to add fold stiffness only to sections of the cloth that are flat. ■ Stiffness The fold stiffness value. ■ Distance The degree of fold stiffness per unit area. A Distance value of 2 refers to twice the average triangle edge length in the cloth, so a large Distance value results in a large concentration of fold stiffness per unit area. ■ Spread Angle Controls the degree to which fold stiffness is added to cloth when it has a non-flat shape. The angle relates to the threshold angle between two parts of the cloth, below which stiffness is added. If this value is 0.0, fold stiffness is added only to flat parts of the cloth. ■ Split Angle The degree to which fold stiffness is added; specifically, how fold stiffness is concentrated along the grid lines of the cloth's original mesh. Avoid Self-Intersections When on, the cloth will not intersect with itself during the simulation. This results in a more realistic-looking simulation, but can increase simulation time. Constrain Deformation When on, limits the extent to which the cloth can stretch. ■ Max A percentage value that indicates how stretchy the cloth is: The lower the value, the less stretching reactor allows. Start With Current State When on, the Cloth object starts the simulation using the current state stored in the modifier. This can be useful if you have, for example, draped the cloth around something in the Preview Window and then updated the viewport using Update MAX. When off, the cloth starts with the state it had originally, below the modifier. Available only when keyframes are stored. # Keyframes Stored This read-only shows the number of keyframes, if any, stored for the Cloth object. reactor stores keyframes for the object if you create a reactor animation, or if you use Update MAX in the Preview Window. Clear Keyframes Deletes any stored keyframes for the Cloth object. 4032 | Chapter 16 reactor Use Soft Selection Allows you to use soft selection to smooth the transition between keyframed and simulated vertices for this deformable object. For more information, see Soft Selection on page 4071. Reset Default Values Resets the values for the Cloth object to their defaults. Constraints rollout These options allow you to create different types of deformable constraints for the body. For more information, see Constraining Deformable Bodies on page 4061. Cloth | 4033 Cloth Collection Create panel > Helpers > reactor > CLCollection Animation menu > reactor > Create Object > Cloth Collection reactor toolbar > Create Cloth Collection button The Cloth Collection is a reactor helper object that acts as a container for Cloth objects. Once you have added a Cloth Collection to your scene, you can add Cloth objects (object with a Cloth modifier on page 4026) in the scene to the collection. When you run the simulation, reactor examines the cloth collections in the scene, and, provided that the collections are not disabled, adds the cloth objects they contain to the simulation. Procedures To create and use a Cloth Collection: 1 Create some Cloth objects by applying the reactor Cloth modifier to standard objects. 2 Choose one of the above commands, and then click in any viewport to add the Cloth Collection. NOTE The icon’s position has no effect on the collection’s behavior. The collection icon is added to the scene. You can add Cloth objects to the collection in two ways: by picking or by using a selection list. 3 Add objects to the collection using either (or both) of these methods: ■ On the Properties rollout, click the Pick button, and then in the viewport click an object to add. ■ On the Properties rollout, click the Add button, and then use the Select Cloths dialog to specify one or more objects to add. To create the collection and add objects in a single step: ■ See the Scripts on page 4103 topic. 4034 | Chapter 16 reactor Interface Cloth Collection Properties rollout Highlight Causes the objects in the collection to flash momentarily in the viewports. Cloth Entities Lists the names of the objects currently in the Cloth Collection. Pick Adds an object to the cloth collection. Click this button, then in the viewport move the cursor over an object to add to the collection. If it is a Cloth object, the cursor changes from an arrow to a cross and you can select the object to add it to the collection. Add Adds one or more objects from the scene to the collection. Click the button to open the Select Cloths dialog. Highlight one or more entries in the list, and then click the Select button to add the objects to the collection. Delete Removes objects from the collection. In the Cloth Entities list, highlight the bodies to remove from the collection and click this button. Disabled When on, the collection and the bodies it contains are not added to the simulation. Cloth | 4035 Advanced rollout Internal Steps Because deformable objects are more complex to simulate, it is usually necessary to perform more simulation steps on page 3892 to increase stability. This parameter specifies the number of steps reactor performs internally to simulate objects in this collection for each simulation substep taken globally during the simulation. For example, at 60 fps, simulating at one keyframe (step) per frame, 10 substeps, at three internal substeps for this collection, reactor simulates the objects in this collection using 60x10x3=1,800 steps per second, while the simulation in general uses 60x10=600 steps every second. This allows the objects in this collection to be simulated more accurately without slowing down the rest of the simulation. In general terms, you can think of it in this way: ■ Precision (stability) of overall simulation=Number of Substeps (as specified on the Preview and Animation rollout on page 4085) ■ Precision (stability) of objects in this collection=(Precision of overall simulation)x(Internal Substeps) Reset Default Values Restores Internal Steps to its default value. 4036 | Chapter 16 reactor Soft Bodies Soft bodies are three-dimensional deformable bodies on page 4024. Like Cloth on page 4026 objects, they modify meshes. The main difference between cloth as soft bodies is that soft bodies have a notion of shape : a soft body tries, to some extent, to keep its original shape. You can use soft bodies to simulate squashy objects like a partially deflated beach ball, a water bottle, jelly, or fruit. They are also useful for adding realistic secondary motion to your objects and characters: floppy ears, noses, tails, etc. reactor provides two methods for simulating soft bodies: ■ The mesh-based method uses the vertices in the mesh to operate (as with cloth and rope). ■ FFD soft bodies on page 4043 manipulate the control points in an FFD grid instead. Soft Bodies | 4037 Depending on the complexity of your objects and the desired effect, you can use either method. The following sections go into more detail about them. ■ Soft Body Modifier on page 4038: Apply it to each mesh to be deformed as soft body. ■ FFD-based soft bodies on page 4043: Soft bodies deformed by an FFD modifier ■ Soft Body Collection on page 4046: A container for soft bodies. Soft Body Modifier Modify panel > Modifier List > reactor SoftBody Animation menu > reactor > Apply Modifier > Soft Body Modifier reactor toolbar > Apply Soft Body Modifier button The Soft Body modifier lets you turn a rigid body into a closed, deformable, 3D triangular mesh, thus creating objects that can be flexed, bent, and squashed during the simulation. You can specify physical properties for soft bodies, including stiffness, mass, and friction. reactor provides two types of soft body: mesh-based soft bodies, where reactor deforms the underlying mesh directly; and Freeform Deformation (FFD) bodies, in which reactor encases the original mesh in a simpler lattice that it uses to update the mesh. For more information about creating FFD bodies, see FFD Soft Bodies on page 4043. To add a soft body to the simulation, you need to add it to a Soft Body Collection on page 4046. Procedures To create a soft body: 1 Create the mesh to use as the basic, non-deformed state of your soft body. You can turn any mesh with a fixed number of vertices into a soft body. 2 With the object selected, choose one of the above commands. The reactor SoftBody modifier appears in the object's modifier stack. 4038 | Chapter 16 reactor To edit a soft body's physical properties: 1 Select an appropriate object in the scene. 2 On the Modify panel, ensure that the reactor SoftBody modifier is highlighted in the modifier stack. 3 Use the Properties rollout to edit the properties, which are described in the Interface section, following. Interface Modifier Stack Vertex Allows you to select individual vertices of the soft body to which to apply and modify deformable constraints on page 4061. Soft Bodies | 4039 Soft Body Properties rollout Mass The mass of the soft body in kilograms. This affects the soft body behavior upon colliding with other objects, its buoyancy when interacting with water, and the stretching caused by attached rigid bodies on page 4067: 4040 | Chapter 16 reactor the higher the mass of the soft body, the less stretch induced by the rigid body. Stiffness The stiffness of the soft body: the stiffer it is, the harder it is to deform. Damping The damping coefficient for the oscillation of the soft body's compression and expansion. Friction The coefficient of friction for the soft body's surface. As with rigid bodies, this affects how smoothly the soft body will move relative to surfaces it’s in contact with. The friction values for both objects are combined to produce a coefficient for the interaction. Avoid Self-Intersections When on, the soft body does not intersect with itself during the simulation. This results in a more realistic simulation, but can increase simulation time. [soft body type] ■ Mesh-Based By default, soft bodies are mesh-based - the modifier directly modifies the underlying mesh. This option is suitable for most simple objects, such as balls and bricks. For more complex meshes (greater than 200 triangles), however, this approach can be time-consuming and may slow down the simulation. A good alternative is to use FFD soft bodies on page 4043. ■ # keyframes stored This indicates the number of keyframes stored for the soft body, if any. reactor stores keyframes for the object if you create a reactor animation, or use Update MAX in the Preview Window. ■ Clear Keyframes ■ Start With Current State The soft body starts the simulation using the current state stored in the modifier. This can be useful if you have, for example, deformed the soft body in the Preview Window and then updated the viewport using Update MAX. When off, the soft body will start with the state it had originally (below the modifier). ■ Use Soft Selection Allows you to use soft selection to smooth the transition between keyframed and simulated vertices for this deformable object. For more information, see Soft Selection on page 4071. Clears any stored keyframes for this soft body. Soft Bodies | 4041 ■ FFD-Based Uses the FFD version of the Soft Body modifier. For more information about FFD bodies, including descriptions of these parameters, see FFD Soft Bodies on page 4043. Reset Default Values Restores the default values for parameters in the modifier. Constraints rollout These options let you create different types of deformable constraint for the body. For more information, see Constraining Deformable Bodies on page 4061. 4042 | Chapter 16 reactor FFD Soft Bodies reactor provides two different types of soft body: mesh-based soft bodies, where the underlying mesh is directly deformed, and Freeform Deformation (FFD) bodies. With an FFD body, reactor encases the original shape in a simpler FFD lattice. Then the simulation uses the lattice, rather than the object itself, as the soft body's shape. As the lattice deforms, it updates the original shape so that it, too, appears to deform. FFD bodies are less accurately modeled than mesh-based soft bodies, but also less computationally expensive to simulate. Because of this, it's generally advisable to use an FFD-based soft body when deforming a complex mesh. As a general rule of thumb, if a mesh has more than 200 triangles, it's probably a good idea to use an FFD-based soft body. NOTE When you view an FFD soft body in the Preview Window, you will see the FFD rather than the underlying shape. This should still give you some idea as to how the body will behave in your final animation. Soft Bodies | 4043 Procedures To create an FFD soft body: 1 Create the mesh to use as the basic, non-deformed state of your soft body. 2 Apply an FFD modifier: the FFD 2x2x2, 3x3x3, 4x4x4 on page 1454 or FFD(box) on page 1460 modifier. Different FFD dimensions produce different behavior. When using FFD(box), set the dimensions to a number that leaves the FFD vertices evenly distributed over the lattice. You can also use the Conform To Shape command to make the FFD lattice better represent the underlying geometry. 3 Apply the reactor Soft Body modifier on page 4038 on top of the FFD modifier. 4 in the Properties rollout of the Soft Body modifier, choose FFD-Based. You can now add the body to a soft body collection on page 4046 and simulate it as an FFD soft body. Interface FFD Options FFD-based Specifies that you want to simulate this body as an FFD soft body. 4044 | Chapter 16 reactor Stable Configuration Here you can specify which configuration (position of vertices) reactor considers to be the stable (non-deformed) configuration. The FFD soft body will tend to maintain that configuration. ■ Original Box The stable configuration for an FFD soft body is the original, non-deformed FFD box; any animation or modification of the lattice is ignored. This is the default option. ■ Frame Lets you specify the state of the FFD state at a particular keyframe as the stable configuration for the object. Animate Transform When on, reactor animates both the FFD lattice and the transformation of the object. In some situations, the deformation calculated by the FFD modifier is more consistent if the object transformation follows the FFD lattice. IMPORTANT Use this option only when the FFD encloses the entire mesh of the object, as the transformation applies to the whole mesh; that is, the whole object will be transformed. Not animating the object transform can cause the FFD modifier to apply strange deformations. Soft Bodies | 4045 Animating the object transform (turning on Animate Transform) fixes the problem. Soft Body Collection Create panel > Helpers > reactor > SBCollection Animation menu > reactor > Create Object > Soft Body Collection reactor toolbar > create Soft Body Collection button The Soft Body Collection is a reactor helper object that acts as a container for soft bodies. Once you have created a Soft Body Collection, you can add any soft bodies in the scene to the collection. For more information about soft bodies, see Soft Body Modifier on page 4038. When you run the simulation, the soft body collections in the scene are examined, and, provided the collections are not disabled, reactor adds the soft bodies they contain to the simulation. Procedures To create and use a Soft Body Collection: 1 Create some soft bodies by applying the reactor SoftBody modifier to standard objects. 2 Choose any of the above commands, and then click in any viewport to add the Soft Body Collection. NOTE The icon’s position has no effect on the collection’s behavior. 4046 | Chapter 16 reactor The collection icon is added to the scene. You can add soft bodies to the collection in two ways: by picking or by using a selection list. 3 Add objects to the collection using either (or both) of these methods: ■ On the Properties rollout, click the Pick button, and then in the viewport click an object to add. ■ On the Properties rollout, click the Add button, and then use the Select Soft Bodies dialog to specify one or more objects to add. To create the collection and add objects in a single step: ■ See the Scripts on page 4103 topic. Interface Soft Body Collection Properties rollout Highlight Click this button to cause the objects in the Soft Bodies list to momentarily display as if selected. Soft Bodies Lists the names of the objects currently in the Soft Body Collection. Soft Bodies | 4047 Pick Adds an object to the Soft Body Collection. Click this button, and then in the viewport move the cursor over the object to add to the collection. If it is a soft body, the cursor will change from an arrow to a cross and you can select the object to add it to the collection. Add Adds one or more objects from the scene to the collection. Click the button to open the Select Soft Bodies dialog. Highlight one or more items in the list, and then click the Select button to add the objects to the collection. Delete Removes objects from the collection. In the Soft Bodies list, highlight the bodies to remove from the collection and click this button. Disabled When on, the collection and in turn the bodies it contains are not added to the simulation. Advanced rollout Internal Steps Specifies how many substeps per keyframe are used to simulate the collection. Deformable bodies often require a higher level of simulation accuracy than rigid bodies, so you might need to tweak this value to get realistic results. Reset Default Values Resets Internal Steps to its default value. 4048 | Chapter 16 reactor Rope The reactor Rope is a one-dimensional deformable body on page 4024. You can use it to simulate rope, string, hair, etc. Only shapes on page 606 can be simulated as ropes. This section contains two topics: ■ Rope Modifier on page 4049 ■ Rope Collection on page 4055 Rope Modifier Modify panel > Modifier List > reactor Rope Animation menu > reactor > Apply Modifier > Rope Modifier reactor toolbar > Apply Rope Modifier button Rope | 4049 You can create a reactor Rope using any spline object in 3ds Max. The Rope modifier turns the object into a deforming, one-dimensional chain of vertices. You can use rope objects to simulate ropes, as well as hair, chains, fringing, and other rope-like objects. A rope must be added to a rope collection on page 4055 in order to be simulated. Procedures To create a rope: 1 Create the spline-based shape to use to create the rope. As with all deformable bodies on page 4024, the underlying topology of this object will influence the rope's behavior. If the spline contains only two vertices, then the rope simulation geometry will have only a single section and will behave in a particularly un-rope-like fashion as a result. More vertices will allow the rope to bend easily and behave more realistically. 2 With the object selected, choose one of the commands listed above. The Rope modifier appears in the object's modifier stack. To edit a Rope's physical properties: 1 Select the Rope object. 2 On the Modify panel, ensure that the reactor Rope modifier is selected in the modifier stack. 3 Use the Properties rollout to edit the properties, which are described in the Interface section, following. 4050 | Chapter 16 reactor Interface Modifier Stack Vertex Allows you to select individual vertices of the rope to apply and modify deformable constraints on page 4061. Rope | 4051 Rope Properties rollout Mass The rope's mass in kilograms. This affects the rope behavior on collisions against other objects, its buoyancy when interacting with water, and the stretching caused by attached rigid bodies on page 4067: the higher the mass of the rope, the less stretching induced by the rigid body. 4052 | Chapter 16 reactor Thickness Lets you specify a thickness for the simulated rope, as the shape used to create the rope has no inherent thickness. A rope with a thickness of 0.0 will not be visible in the simulation. Friction The coefficient of friction for the rope's surface. As with rigid bodies, this affects how smoothly the rope will move relative to surfaces it’s in contact with. The Friction values for both objects are combined to produce a coefficient for the interaction. Air Resistance The extent to which the rope loses energy as it moves. Rope Type ■ ■ Spring The default rope type. ■ Stiffness How much the rope can stretch. ■ Damping How quickly oscillations settle down when the rope is compressed or expands. ■ Num Weaves The extent to which the rope's inflexibility extends across vertices. For example, a value of 3 ensures that all vertices separated by three or fewer sections are subject to extra forces to stop bending. Large Num Weaves values produce an inflexible rope, whereas small values mean that only sections very close to each other will have restricted relative movement. ■ Keep Shape When on, the rope tries to keep its original shape, such as a spiral, rather than returning to a straight line. The effectiveness of this depends on the number of weaves (the higher of number of weaves, the stronger the shape-keeping forces). Constraint Uses a simpler, and hence less computationally expensive, model to simulate the rope. Ropes of this type are quite stiff, and cannot be configured in the same way as ropes with a Spring type. Avoid Self-Intersections When on, the rope will not intersect with itself during the simulation. This results in a more realistic simulation, but can increase simulation time. Start With Current State The rope starts the simulation using the current state stored in the modifier. This can be useful if you have, for example, draped the rope around something in the Preview Window and then updated the viewport using Update MAX. When off, the rope starts with the state it had originally, below the modifier in the stack. Rope | 4053 # Stored Keyframes The number of keyframes, if any, stored for the rope. reactor stores keyframes for the rope if you create an animation, or if you use Update MAX in the Preview Window. Clear Keyframes Clears any stored keyframes for this rope. Use Soft Selection Allows you to use Soft Selection to smooth the transition between keyframed and simulated vertices for this deformable object. For more information, see Soft Selection on page 4071. Reset Default Values Resets the values for this rope to their defaults. Constraints rollout 4054 | Chapter 16 reactor These options let you create a different types of deformable constraint for the body. For more information, see Constraining Deformable Bodies on page 4061. Rope Collection Create panel > Helpers > reactor > RPCollection Animation menu > reactor > Create Object > Rope Collection reactor toolbar > create Rope Collection button The Rope Collection is a reactor helper object that serves as a container for ropes. Once you have placed a Rope Collection in your scene, you can add any ropes in the scene to the collection. You can find out more about ropes in the Rope Modifier on page 4049 section. When you run the simulation, the rope collections in the scene are examined, and, provided that the collections are not disabled, the ropes they contain are added to the simulation. Procedures To create and use a Rope Collection: 1 Choose any of the above commands, and then click in any viewport to add the Rigid Body Collection. NOTE The icon’s position has no effect on the collection’s behavior. The collection icon is added to the scene. You can add rigid bodies to the collection in two ways: by picking or by using a selection list. 2 Add objects to the collection using either (or both) of these methods: ■ On the Properties rollout, click the Pick button, and then in the viewport click an object to add. ■ On the Properties rollout, click the Add button, and then use the Select Rigid Bodies dialog to specify one or more objects to add. To create the collection and add objects in a single step: ■ See the Scripts on page 4103 topic. Rope | 4055 Interface Rope Collection Properties rollout Highlight Causes the objects in the collection to flash momentarily in the viewports. Rope Entities Lists the names of the objects currently in the Rope Collection. Pick Adds an object to the Rope Collection. Click this button, and then in the viewport move the cursor over an object. If it is a Rope object, the cursor changes from an arrow to a cross and you can select the object to add it to the collection. Add Adds one or more objects from the scene to the collection. Click the button to open the Select Ropes dialog. Highlight one or more objects in the list, then click the Select button to add the objects to the collection. Delete Removes objects from the collection. In the Rope Entities list, highlight the bodies to remove from the collection and click this button. Disabled When on, the collection and the bodies it contains are not added to the simulation. 4056 | Chapter 16 reactor Advanced rollout Internal Steps Because deformable objects are more complex to simulate, it is usually necessary to perform more simulation steps on page 3892 to increase stability. This parameter specifies how many steps will be taken internally to simulate objects in this collection for each simulation substep taken globally during the simulation. For example, at 60 fps, simulating at one keyframe (step) per frame, 10 substeps, at three internal substeps for this collection, the objects in this collection will be simulated using 60x10x3=1,800 steps every second , while the simulation in general uses 60x10=600 steps per second. This allows the objects in this collection to be simulated more accurately without slowing down the rest of the simulation. In general terms, you can think of it this way: ■ Precision (stability) of overall simulation=Number of Substeps (as specified in the Preview and Animation rollout on page 4085) ■ Precision (stability) of objects in this collection=Precision of overall simulation x (multiplied by) Internal Substeps Reset Default Values Resets Internal Steps to its default value. Rope | 4057 Deforming Meshes (Skin) A deforming mesh is a mesh whose vertices' behavior has been keyframed. The skin of a skinned character, where any deformation comes from the underlying animated character rig, could be used as a deforming mesh in reactor. Why use deforming meshes? Firstly, rigid bodies on page 3909 and deformable bodies on page 4024 can collide with a deforming mesh as if it was another reactor body. The deforming mesh won't be affected by the collision, but the rigid body/deformable body will. So, for instance, you can create deformable clothes for a deforming mesh that you can drape realistically around his body, or you can cause environmental objects to react to the deforming mesh. You can also attach deformable bodies to deforming meshes. This allows you, for example, to attach physically-simulated hair, garments, or tentacles to a keyframed character. When the character moves, its simulated elements swirl, swing, or slither (as appropriate) along with it. This is known as secondary motion, and is an easy way to add realism to your characters without having to animate the behavior by hand. 4058 | Chapter 16 reactor Unlike the other reactor deformable body types, you do not need to apply a special modifier to a deforming mesh or set physical properties for it. You just have to add the shape to a Deforming Mesh Collection on page 4059. This is because reactor itself does not deform the mesh's vertices during the simulation: The deforming mesh is simply controlled by its current animation. For information about how to attach objects to deforming meshes , see Constraining Deformable Bodies on page 4061. Deforming Mesh Collection Create panel > Helpers > reactor > DMCollection Animation menu > reactor > Create Object > Deforming Mesh Collection reactor toolbar > create Deforming Mesh Collection button The Deforming Mesh Collection is a reactor helper object that acts as a container for deforming meshes on page 4058. Once you have placed a Deforming Mesh Collection in your scene, you can add any deforming meshes in the scene to the collection. For more information about deforming meshes, see Deforming Meshes (Skin) on page 4058. When you run the simulation, reactor examines the deforming mesh collections in the scene, and, provided the collections are not disabled, adds the deforming meshes they contain to the simulation. Procedures To create and use a Deforming Mesh Collection: 1 Create some objects to use as deforming meshes. 2 Choose any of the above commands, and then click in any viewport to add the Deforming Mesh Collection. NOTE The icon’s position has no effect on the collection’s behavior. The collection icon is added to the scene. You can add deforming meshes to the collection in two ways: by picking or by using a selection list. Deforming Meshes (Skin) | 4059 3 Add objects to the collection using either (or both) of these methods: ■ On the Properties rollout, click the Pick button, and then in the viewport click an object to add. ■ On the Properties rollout, click the Add button, and then use the dialog to specify one or more objects to add. To create the collection and add objects in a single step: ■ See the Scripts on page 4103 topic. Interface Deforming Mesh Collection Properties rollout Highlight Click this button to cause the objects in the collection to flash momentarily in the viewports. Deforming Meshes Lists the names of the objects in the deforming mesh collection. Pick Adds an object to the deforming mesh collection. Click this button, and then in the viewport move the cursor over an object to add to the collection. 4060 | Chapter 16 reactor If it can be used as a deforming mesh, the cursor will change from an arrow to a cross and you can select the object to add it to the collection. Add Adds one or more objects from the scene to the collection. Click the button to open the Select Deforming Meshes dialog. Highlight one or more objects in the list, and then click the Select button to add the objects to the collection. Delete Removes objects from the collection. In the Deforming Meshes list, select the bodies to remove from the collection and then click this button. Disabled When on, the collection and the bodies it contains are not added to the simulation. Advanced rollout Freeze When on, the deforming meshes in this collection do not follow their animation during the simulation but instead remain static. This is useful, for instance, if you want to drape clothes around a deforming-mesh-skinned character in the Preview window on page 4099 before using Update MAX - it's much easier to dress a character that isn't still walking around! Reset Default Values Resets the Freeze value to its default. Constraining Deformable Bodies reactor modifier (Cloth/Soft Body/Rope) > Constraints rollout As with rigid bodies, you might want to constrain the possible movement of your deformable bodies. For instance, you might want to fix cloth draperies to a position in world space, or attach deformable clothing and hair to a moveable character. However, because deformable bodies can change their shape over the course of the simulation, you can't just specify attachment points in the object's local space as you do with rigid bodies. Constraining Deformable Bodies | 4061 Instead, when you work with deformable bodies, you need to specify the vertices to constrain in the deformable mesh. You can then constrain the vertices using one of four deformable constraint types, which you can choose from the deformable body's deformable Constraints rollout. This section has separate topics for each of the following deformable constraint types: ■ Fixing Vertices in World Space on page 4064 ■ Keyframing Vertices on page 4065 ■ Attaching Vertices to a Rigid Body on page 4067 ■ Attaching Vertices to Deforming Meshes (Skin) on page 4069 For information about using the Soft Selection option to smooth the transition between simulated and keyframed vertices for deformable bodies, see Soft Selection on page 4071. NOTE You can constrain deformable bodies only to points in world space, rigid bodies, or deforming meshes. You can't attach deformable bodies to "live" deformable bodies. You can, however, attach deformable bodies to other deformable bodies once they have been simulated. For example, after simulating a piece of cloth, you can remove it from the Cloth Collection and add it to a Deforming Mesh Collection on page 4059. You can then attach any deformable body (cloth, soft or rope) to it using the Attach to Deforming Mesh constraint on page 4069. Procedures The procedure for each deformable constraint type is described in its own topic. 4062 | Chapter 16 reactor Interface Constraints rollout Fix Vertices Creates a Fix Vertices to World constraint on page 4064 that fixes the chosen vertices to their current position in world space. Keyframe Vertices Creates a Keyframe constraint on page 4065 that makes the chosen vertices follow their current animation in 3ds Max. Attach to Rigid Body Creates an Attach to Rigid Body constraint on page 4067 between the chosen vertices and a rigid body. The vertices follow the animation (changes in position and rotation) of the rigid body on page 3909. Constraining Deformable Bodies | 4063 Attach to DefMesh Creates an Attach to Deforming Mesh constraint on page 4069 between the chosen vertices and a deforming mesh. The vertices will follow the animation (deformations) of the deforming mesh on page 4058. [constraints list] Displays a list of the deformable constraints for the deformable body. To highlight a constraint for changing its parameters or deleting it, click its name in the list. Delete Constraint Deletes the highlighted constraint in the list. Fixing Vertices in World Space reactor modifier (Cloth/Soft Body/Rope) > Constraints rollout The Fix Vertices constraint lets you fix vertices in a deformable body to their current positions in world space. 4064 | Chapter 16 reactor Procedures To fix points in a deformable body in world space: 1 On the Modify panel, click Vertex in the deformable body modifier's sub-object list. This lets you select individual vertices in the deformable body. 2 On the Constraints rollout, click Fix Vertices. A new Constrain To World constraint appears in the constraints list. 3 Ensure the constraint is highlighted in the constraints list. 4 Select the vertices to constrain. These vertices remain fixed in place during the simulation, while the rest of the mesh is subject to physical forces and deformation as usual. 5 When you are finished choosing vertices, it's advisable to exit the Vertex sub-object level. This prevents you accidentally deselecting some of the constrained vertices before simulating. 6 To change the set of fixed vertices, select the object, access the modifier's Vertex sub-object level, highlight its Constrain To World constraint in the list, and then select a different set of vertices. Keyframing Vertices reactor modifier (Cloth/Soft Body/Rope) > Constraints rollout This constraint allows you to make the deformable body's chosen vertices follow their current animation. Constraining Deformable Bodies | 4065 Procedures To keyframe points for a deformable body: 1 On the Modify panel, click Vertex in the deformable body modifier's sub-object list. This lets you select individual vertices in the deformable body. 2 On the Constraints rollout, click Keyframe Vertices. A new Keyframe constraint appears in the constraints list. 3 Ensure the constraint is highlighted in the constraints list; this makes the Keyframe rollout available. 4 Select the vertices to constrain in the deformable body. During the simulation, these vertices follow the deformable body's current animation, while the rest of the body is affected by the physical simulation as usual. 5 When finished, it's advisable to exit the Vertex sub-object level. This prevents you accidentally deselecting some of the constrained vertices before simulating. 4066 | Chapter 16 reactor Interface Keyframe rollout Use Current Stored Keys When on, the animation used for these vertices is that after the reactor modifier is applied. In other words, if the modifier contains any keyframes, reactor uses those for the animation. When off, reactor evaluates the animation before the reactor modifier is applied, thus ignoring any stored keyframes. Attaching Vertices to a Rigid Body reactor modifier (Cloth/Soft Body/Rope) > Constraints rollout The Attach To Rigid Body constraint allows you to fix vertices in a deformable body to a particular rigid body. Constraining Deformable Bodies | 4067 Procedures To fix vertices in a deformable body to a rigid body: 1 On the Modify panel, click Vertex in the deformable body modifier's sub-object list. This lets you select individual vertices in the deformable body. 2 On the Constraints rollout, click Attach To Rigid Body. The new constraint appears in the Constraints list. 3 Ensure the constraint is selected in the Constraints list; this makes the Attach To RigidBody rollout available. 4 On the Attach To RigidBody rollout, click the Rigid Body pick button and then select the body to which to constrain the vertices. 5 Select the vertices to constrain in the deformable body. During the simulation, these vertices maintain their positions relative to the rigid body. 4068 | Chapter 16 reactor 6 When finished, it's advisable to exit the Vertex sub-object level, to keep from accidentally deselecting some of the constrained vertices before simulating. Interface Attach To Rigid Body rollout Rigid Body Displays the name of the rigid body to which the vertices are constrained. Choose a rigid body by clicking this button and then selecting a rigid body in one of the viewports. Do not affect rigid body When on, the attached deformable body does not affect the behavior of the rigid body in the simulation. In other words, the points in the deformable body will follow the rigid body, but no force is applied to the rigid body from the deformable. Ignore Collisions When on, disables collision detection between the rigid body and the deformable body. Attaching Vertices to Deforming Meshes (Skin) reactor modifier (Cloth/Soft Body/Rope) > Constraints rollout Constraining Deformable Bodies | 4069 The Attach To Deforming Mesh constraint allows you to fix vertices in a deformable body to a particular deforming mesh on page 4058. This option is useful for adding physically simulated elements such as hair and clothing to an skinned character. Procedures To fix vertices in a deformable body to a deforming mesh: 1 On the Modify panel, access the Vertex sub-object level of the deformable body's modifier. This lets you select individual vertices in the deformable body. 2 On the Constraints rollout, click Attach To DefMesh . The new constraint appears in the Constraints list. 3 Ensure the constraint is selected in the Constraints list; this makes the Attach To DefMesh rollout available. 4 On the Attach To DefMesh rollout, click the Deformable Mesh pick button and then select the body to which to constrain the vertices. 5 Select the vertices to constrain in the deformable body. 4070 | Chapter 16 reactor During the simulation, these vertices will maintain their position relative to the deforming mesh. 6 When finished, it's advisable to exit the Vertex sub-object level, to keep from accidentally deselecting some of the constrained vertices before simulating. Interface Attach To DefMesh rollout Deformable Mesh Displays the name of the deforming mesh to which the vertices are constrained. Choose a deforming mesh by clicking this button and then selecting the object in one of the viewports. Ignore Collisions When on, disables collision detection between the deforming mesh and the deformable body. Soft Selection You can use deformable constraints to specify that you want certain vertices of a deformable object to follow a user-specified animation, such as skinning, while the rest of the object is fully physically simulated. However, sometimes this can result in a visible "join" between the animated and simulated parts of a piece of cloth, soft body or rope. To deal with this, the Cloth on page 4026, Soft Body on page 4038, and Rope on page 4049 modifiers have a Use Soft Selection option. The option can help smooth transitions between the keyframed and simulated vertices. Constraining Deformable Bodies | 4071 The following illustration shows the effect of using this option. The cloth tube on the left has a keyframed top and a simulated bottom, with a visible join. The cloth on the right uses soft selection to blur the line between the two. Procedures To use soft selection when animating a deformable body: 1 Before you apply the reactor modifier to a deformable body, apply a modifier that has a Soft Selection option to your object, such as Edit Mesh on page 1353 or Mesh Select on page 1527. You can also apply this modifier to the body later, but it's important that it be below the reactor modifier in the object's modifier stack. 2 Follow the instructions in Keyframing Vertices on page 4065 to keyframe selected points for the deformable body, then create your reactor animation. 3 With the body selected, open the selection modifier in the modifier stack, and access the Vertex sub-object level. 4 Select the vertices that should appear fully physically simulated. For instance, for a piece of cloth where the top section is keyframed, you 4072 | Chapter 16 reactor might want only the bottom vertices to appear to be fully affected by the physical simulation. 5 On the Soft Selection rollout, turn on Use Soft Selection. 6 Set the Falloff value to specify a smooth falloff from the selected vertices to the unselected ones. This is represented visually in the viewport. 7 Now open the reactor modifier and turn on Use Soft Selection. When you run the animation, your specified falloff will be used to blend smoothly between the keyframed and simulated vertices. Constraining Deformable Bodies | 4073 Water Simulation The reactor Water object allows you to simulate the behavior of a water surface. Objects can interact with the water in physically realistic ways, creating waves and ripples. reactor calculates a buoyancy value for any objects that fall into the water using their mass and size, so that some objects sink and others float. You can even change the density of a water object, which affects how objects float in it. Water in reactor is a space warp on page 8132 that is simulated as water. Space warps don't render, so you need to provide reactor with a geometrical representation of the water if you want it to appear in your final animation. You do this by binding a plane or other geometry to the space warp. Note that a representation of the water still appears in the Preview Window even if you haven't done this. This section covers the following topics: ■ The Water Space Warp on page 4075 ■ Rendering Water on page 4078 4074 | Chapter 16 reactor Water Space Warp Create panel > Space Warps > reactor > Water Animation menu > reactor > Create Object > Water reactor toolbar > Create Water button You can use the Water space warp to simulate the behavior of a liquid surface in your reactor scene. You can specify a size for the water, and physical properties such as density, wave speed, and viscosity. You don't need to add the water to a collection for it to take part in the simulation. However, while it will appear in the Preview Window, it will not appear in a rendered animation unless you bind the space warp to a plane or other geometry. You can find out how to do this in Rendering Water on page 4078. Procedures To create a Water space warp: 1 Choose one of the above commands, and then in any viewport drag out a Water object. TIP For horizontal water, create the space warp in a Perspective or Top viewport. 2 Move and rotate the object as necessary using standard commands. For changing other properties, see the next procedure. To edit the properties of a Water object: 1 Select the object in the scene. 2 On the Modify panel, open the Properties rollout. 3 Use the rollout to specify properties, as described in the Interface section. Water Space Warp | 4075 Interface Water Properties rollout 4076 | Chapter 16 reactor Size X/Y The dimensions for the water object. Subdivisions X/Y The tessellation for the water's mesh. Landscape button Although water is defined using a rectangular area, you can simulate non-rectangular surfaces and obstacles inside the water by defining a landscape geometry. Once you designate landscape geometry, any vertex in the Water space warp that are contained in the landscape are fixed during the simulation and waves and ripples will be reflected at those points. Wave Speed The speed at which wave crests propagate across the surface of the water. Min/Max Ripple Limits on the size of the waves generated in the water. Density The relative density of the liquid. This determines which objects will sink into the water, and at what height objects of a lesser density will float. The density is specified relative to the density of water (1.0=1,000 kg/m3). Viscosity Resistance to flow: how difficult it is for objects to move through the liquid. A high value means that the motion of objects through the water is highly damped. Depth The depth of the water. Buoyancy is applied only to objects inside the water. Use Current State When on, the simulation uses the current animation to calculate the starting state. So if you have, for example, updated the water during the preview on page 4099 using the Update MAX command, the stored state is used as the initial state. Disabled Removes the water from the simulation. # Stored Keyframes This indicates if there are any keyframes stored for the water. Keyframes are stored for the water if you create a reactor animation in 3ds Max, or if you use Update MAX in the Preview Window. Clear Keyframes Clears any stored keyframes for this water. Show Text When off, the label "Water" doesn't appear next to the space warp in the viewports. Reset Default Values Restores the default values for the object. Water Space Warp | 4077 Rendering Water Water in reactor is defined using a space warp. Space warps don't render, so if you want the water to appear in your final animation, you need to provide reactor with a geometrical representation of the water. To do this, you need to bind a plane or any other planar geometry to the water. The plane will deform according to the Water space warp on page 4075, and you can then render it as part of your scene. Binding an object to the water applies a modifier to that object, which lets you set a scale strength for the deformation. For example, if you set this scale value to 2.0, any water deformation is doubled for the vertices in the object. Procedures To bind a plane to reactor Water: 1 Draw a plane the same size as your water in the viewport. Put it in a different place so you can easily link the two. 2 Click the Bind To Space Warp button on the main toolbar. 3 In the viewport, drag from the plane to the water space warp, or vice-versa. The reactor Water (WSM) modifier appears in the plane's modifier stack. 4 Move the plane to the same position and orientation as the space warp (or vice-versa). Interface Water WS Modifier Properties rollout 4078 | Chapter 16 reactor Scale Strength Acts as a multiplier for the geometry's deformation by the water. Increases or decreases the deformation applied by the Water space warp on page 4075. Reset Default Values Returns Scale Strength to its default value: 1.0. Wind Create panel > Helpers > reactor > Wind Animation menu > reactor > Create Object > Wind reactor toolbar > Create Wind button The Wind helper object lets you add wind effects to reactor scenes, allowing you, for instance, to make curtains flap in the breeze. After adding the helper to your scene, you can configure various properties for the effect such as its speed, gusts, and whether objects in your scene can be sheltered from the wind. You can animate most of these parameters. The orientation of the helper icon indicates the direction of the wind: It blows in the direction of the Wind | 4079 weathervane arrow. You can also animate this direction by animating the icon's orientation. Procedures To add wind to a scene: 1 Choose one of the above commands, and then click in any viewport to add the Wind helper. NOTE The icon’s position has no effect on the wind's behavior unless you activate the Use Range option. 2 Use the Rotate tool to rotate the icon and set the wind direction. The wind blows in the direction indicated by the weathervane arrow. 4080 | Chapter 16 reactor Interface Wind Properties rollout Wind | 4081 Wind On [Animatable] Defines whether the wind forces are applied or not. Wind Speed [Animatable] The strength of the wind force. The direction is specified by the icon's orientation, which is also animatable. Perturb Speed When on, the strength of the wind varies over time, using the following parameters. ■ Variance The maximum amount of change in the speed. ■ Time Scale How quickly speed change occurs, with small values producing slow changes, and large values producing rapid changes. Ripple [Animatable] When on, the wind direction becomes a function of space and time, allowing you to add rippling effects to cloth objects affected by the wind. This effect can occur in the Left/Right, Up/Down, or Back/Forward directions, where Forward is the wind direction and Up is the up-axis of the wind icon. ■ Magnitude The directional variance for the ripples. ■ Frequency ■ Perturb Time When in, the spatial perturbation is itself perturbed over time, meaning that the ripples move back and forth. The Perturb Time feature has its own Magnitude and Frequency parameters. When off, the rippling cloth should eventually come to rest, unless Perturb Speed is on. The regularity of ripple formation. Use Range [Animatable] When on, the wind effect has the specified range of action, starting from the icon. The range limit is displayed in the viewport, as depicted in the following illustration. 4082 | Chapter 16 reactor ■ Fall Off The extent to which the wind effect falls off towards its range limit. You can choose from None, Inv (strength decreases proportionally to distance), and Inv Sq (strength decreases proportionally to the square of the distance). Enable Sheltering [Animatable] When on, objects can be sheltered from the wind by other objects. Applies To These check boxes allow you to specify the types of objects that are affected by the wind. You can choose from Rigid Bodies, Cloth, Soft Bodies, and Ropes. Disabled Removes the wind from the simulation. Display The size of the wind icon in the viewports. Reset Default Values Resets the default property values for this Wind helper. The reactor Utility Utility panel > reactor You can access much of reactor's functionality through the reactor utility. It lets you preview the simulation, change world and display parameters, and analyze the convexity of objects. It also lets you see and edit the rigid body properties associated with objects in the scene. Perhaps most important, it lets you switch between the Havok 1 and Havok 3 engines. The reactor Utility | 4083 The utility is divided into a number of rollouts. For more information, follow the links. More information about the two different Havok versions is available later in this topic, in Differences between Havok 1 and Havok 3 on page 4084. ■ About: Choose Havok 1 or Havok 3 solver ■ Preview and Animation on page 4085 ■ Havok 1 World/Havok 3 World on page 4087 ■ Collisions on page 4090 ■ Display on page 4093 ■ Utils on page 4095 ■ Properties on page 4098 Differences between Havok 1 and Havok 3 You can use either of two different dynamics solvers in reactor: Havok 1 or Havok 3. To switch between them, choose the desired solver from the drop-down list on the About rollout. The active solver is saved with the scene file. The difference between the two, in a nutshell, is that Havok 1 provides a broader range of functionality, but Havok 3 is faster and more accurate. If your simulation requires only rigid bodies, you'll generally get better results with Havok 3. 4084 | Chapter 16 reactor Following is a more detailed list of differences: Feature Havok 1 Havok 3 Simulation Discrete only Discrete or Continuous on page 4090with extra parameters Supported bodies Rigid/Cloth/Soft/Rope/Deforming Mesh/Water Rigid only Rigid Body Properties on page 3911 Standard Standard + Shell/Penetration/Quality on page 3913 Cooperative Constraints > Breakable Constraints on page 3944 Linear, Angular Threshold Cooperative Constraints > Strength settings on page 3944 Strength, Tau Strength only Preview Window: display Textures, smoothing, actual geometry Simulation geometry only Preview Window: interaction during preview right-button drag hold Spacebar and move mouse Toy Car on page 4003 Standard Additional parameters NOTE If you preview a simulation or create an animation using Havok 3 and the scene contains non-supported entities such as soft bodies, reactor simply ignores these entities and excludes them from the simulation. Preview & Animation Rollout Utility panel > reactor > Preview & Animation rollout This rollout lets you run and preview your reactor simulation, as well as specifying timing parameters for the simulation. Preview & Animation Rollout | 4085 Interface Start Frame When creating a world to be simulated or previewed, reactor needs to access the objects in 3ds Max at a fixed point in time. This parameter defines this point in time (in 3ds Max frames). Initial shapes, positions and velocities are taken from the actual shapes, positions and velocities of the objects in the scene at this particular frame. When creating an animation, keyframes are created starting from this frame to the End Frame time. End Frame The last frame to simulate. When reactor creates an animation, it generates keyframes from the Start Frame time to this frame. Frames/Key The number of frames for every keyframe that reactor creates (time step). For example, a value of 2 will create a keyframe every other frame. Increasing this value forces reactor to take bigger time steps, potentially reducing the accuracy of the simulation; you might need to then update the Substeps/Key setting accordingly (see following). 4086 | Chapter 16 reactor Substeps/Key The number of reactor simulation substeps per keyframe (that is, per time step). The higher this value, the more accurate the simulation will be, although it will also require more computation to simulate. For information about time steps and substeps, see Time Steps on page 3892. Time Scale This parameter maps between time in the simulation and time in 3ds Max. Changing the value lets you slow down or speed up the animation. Values less than 1.0 produce slow-motion animations, while values greater than 1.0 produce sped-up animations. Create Animation Runs the simulation and creates keyframes, starting at Start Frame and ending at End Frame. Update Viewports When on, updates the scene in the viewports as the animation is created. Create List/Layer When on, creates a List controller on page 3194 (unless one is already present) for the position and rotation tracks of those rigid bodies using Position/Rotation/Scale transform controllers. A new subcontroller is added to the List controller to hold the keys created by reactor. This new controller is weighted to 100, while the previous controllers are weighted to 0. In the special case of rigid bodies belonging to a character studio Biped on page 4147, a new biped layer is created every time a reactor animation is generated. Preview Animation Previews the simulated scene in the Preview Window on page 4099. Havok 1 World/Havok 3 World Rollout Utility panel > reactor > Havok 1 World/Havok 3 World rollout This rollout lets you set some general parameters for your simulated world, such as the strength and direction of gravity, the scale of the world, and how easily objects can collide with each other. When Choose Solver is set to Havok 1, the rollout name is Havok 1 World, and when Choose Solver is set to Havok 3, the name is Havok 3 World. Interface The only difference between the two different versions of the Havok World rollout is that the Havok World 3 rollout contains an extra group of parameters at the end, named Simulation. The following illustration shows the Havok 3 version of the rollout. Havok 1 World/Havok 3 World Rollout | 4087 Gravity The acceleration, in world units, the objects in a scene have due to gravity. It is an important value because it affects the overall feeling of scale in a dynamics simulation. reactor will generate a warning if you specify a non-standard Gravity value compared to World Scale (see following); that is, if you set the value much higher or lower than –9.8 m/s2, where m is World Scale’s representation of one meter. The warnings are provided for guidance and can be safely ignored if you are happy with the behavior of your animation. The default Gravity value reflects "real-world" gravity: –9.8 m/s2 (–386.22 inches/s2) on the Z axis. For more information, see Scale on page 3896. World Scale The distance in 3ds Max world units, that represents one meter in the reactor world, and hence determines the size of every object in your simulation. NOTE Changing the World Scale value can drastically alter simulated objects' behavior. For more information, see Scale on page 3896. Col. Tolerance (Collision Tolerance) One of the tasks that reactor performs at each simulation step is detection of whether any objects in the scene are 4088 | Chapter 16 reactor colliding, and then updating the scene accordingly. If objects are closer together than the Collision Tolerance value, reactor considers them to be colliding. A high Collision Tolerance value results in a stable simulation, but it can also cause gaps between "colliding" objects. The default value is 1/10th of World Scale (10 cm if you are modeling using real-world sizes), and it is a good rule of thumb to always keep it above 1/40th (4 mm), due to floating point precision limits in the processor. For standard scenes and object sizes, the default parameters for world scale and tolerance should be adequate. If you are simulating very small objects where the tolerance is still to visible, try reducing the World Scale value and the Collision Tolerance and Gravity accordingly. For more information, see Scale on page 3896. Add Deactivator When on, reactor adds a deactivator to the simulation. The deactivator keeps track of the objects in the simulation and deactivates (stops simulating) objects that it determines are at rest. This keeps reactor from wasting system resources simulating objects that aren't doing anything. When Add Deactivator is on, you have access to two distance parameters for determining whether an object is moving or not. The reason that there are two properties rather than just one is for bodies that vibrate. It's possible that a body can end up vibrating after a collision or some other occurrence. A vibrating body might vibrate a few millimeters in distance, which would keep it active for a typical Short Frequency test. However, the object is not really moving anywhere, so keeping it active wastes CPU time. However, if it vibrates in place, it fails the Long Frequency test and is deactivated. ■ Short Frequency The minimum distance, usually in millimeters, that an object must move during each step of a simulation. If an object in a simulation does not move the specified distance in each step, reactor deactivates it. ■ Long Frequency Also sets a distance, usually larger than the Short Frequency value. Long Frequency checks every few steps simulation rather than at every step. Any object that does not move the required Long Frequency distance is deactivated. Add Drag Action When on, ensures that rigid bodies are subject to constant drag. This damps their linear and angular velocities, so they come to rest sooner. This is useful, for example, where rigid bodies are joined with constraints on page 3925, as it helps the constrained bodies to come to rest despite the forces applied by the constraints. ■ Lin ■ Ang The linear damping applied by Add Drag Action. The angular damping applied by Add Drag Action. Havok 1 World/Havok 3 World Rollout | 4089 Do Not Simulate Friction When on, reactor ignores all Friction values during the simulation, and objects slide easily across each other. Fracture Penetrations These parameters let you adjust how reactor simulates Fracture objects. For details, see World rollout > Fracture Penetrations group on page 4017. Simulation group These controls are available only with the Havok 3 engine. The first lets you choose how reactor computes the simulation: ■ Discrete reactor checks for collisions only at the beginning and end of each simulation step. This is faster but less accurate. ■ Continuous reactor checks for collisions constantly, throughout each step. This is the default choice, and results in slower but highly accurate simulations. This option significantly reduces the chances of missed collisions. Max Linear Vel. The assumed maximum linear velocity for all bodies. This does not set objects' linear velocity. If, later on, a rigid body's velocity significantly exceeds this value, it might tunnel through other objects even if its Quality property is set to Critical. The default value is 200 meters/second. This value is used during continuous simulations by the collision solver to optimize the simulation, so if it can assume a maximum linear velocity it can discard several cases and get a solution faster. Stiffness The hardness of the constraints in the scene. Use this parameter to configure the dynamics solver. When constraints used in the scene are very hard or stiff, set this to Hard; the Soft or Medium setting works most other cases. Setting Stiffness to Soft can lead to unstable solutions if the constraints are too stiff. TIP Another way to reduce the stiffness of the simulation is by lowering the Strength value of constraints, thus relaxing the constraints. Collisions Rollout Utility panel > reactor > Collisions rollout 4090 | Chapter 16 reactor These settings let you store collision details from your scene, and enable and disable collision detection for specific pairs of objects. Pairs of objects with collisions disabled pass through each other during the simulation. Disabling collisions can be useful when you have objects that are attached together, such as the wheels of a car and its chassis. This means reactor doesn't check for every small collision between the objects, which can slow down the simulation. Interface Collisions rollout Store Collisions See Storing and Accessing Collisions on page 4019. Filter Before Storing See Storing and Accessing Collisions on page 4019. Define Collision Pairs Opens the Define Collisions dialog on page 4092 . This allows you to toggle collision detection between specified pairs of objects. Pairs of objects with disabled collisions pass through each other during the simulation. Selected Pair: Enable Lets you quickly enable collisions between the selected pair of objects. This button is available only when both objects are part of a collection (not necessarily the same collection) and their collisions are currently disabled. Selected Pair: Disable Click this button to quickly disable collisions between the selected pair of objects. This button is available only when both objects Collisions Rollout | 4091 are part of a collection (not necessarily the same collection) and their collisions are currently enabled (the default condition). Define Collisions Dialog Entities Lists the names of the reactor bodies in the scene (any object added to a collection). Highlighting one object populates the Enabled Collisions and Disabled Collisions lists for that object with respect to the other bodies in the scene. If you select more than one object in this list, how the Enabled/Disabled lists are populated depends on the value of Common Collisions. Common Collisions When on, if more than one object is highlighted in the Entities list, the Enabled and Disabled lists are populated from the list of possible pairs that can be made using only the highlighted objects. When off, the lists contain all possible pairs from the scene that contain at least one of your selected objects. For example, take a scene containing four bodies: Box01, Box02, Box03, and Box04. If Common Collisions is on, and you then highlight Box01 and Box02 in the Entities list, then the only possible pair that just includes your selected objects is Box01<->Box02. If you highlight Box01, Box02, and Box03, the possible pairs using these objects are Box01<->Box02, Box02<->Box03 and Box01<->Box03. If you highlight the same objects with Common Collisions off, then the lists also include the highlighted objects paired with the remaining objects in the collection. This means that the available pairs would now include Box01<->Box04, Box02<->Box04 and Box03<->Box04. This option is on by default. 4092 | Chapter 16 reactor Enabled Collisions Lists pairs with collisions enabled. Disabled Collisions Lists pairs with collisions disabled. Disable Selection (Right Arrow) Moves pairs highlighted in the Enabled list to the Disabled list. Disable All (Double Right Arrow) Moves all pairs in the Enabled list to the Disabled list. Enable Selection (Left Arrow) Moves the pairs highlighted in the Disabled list to the Enabled list. Enable All (Double Left Arrow) Moves all pairs in the Disabled list to the Enabled list. OK Closes the dialog, saving any changes carried out while the dialog was open. Cancel Closes the dialog without saving changes. Display Rollout Utility panel > reactor > Display rollout This rollout lets you specify display options for previewing on page 4099 your simulation, including cameras and lighting. These options have no effect on the actual behavior of the final animation; they affect only the appearance of the preview window on page 4099. Display Rollout | 4093 Interface Camera Click this button and then pick a camera from the viewports to use as the initial view for the display. Your chosen camera’s name appears on the 4094 | Chapter 16 reactor button. If you don’t assign a camera, the settings on the current Perspective viewport (if any) are used initially in the Preview Window. Camera Clipping Planes If a camera is assigned, the display tries to use the camera to generate clipping planes. If no camera is assigned, reactor uses default values for the clipping planes in the display. Use Defaults It is possible that the clipping planes for your specified camera are not sufficient to display everything in the scene. Rather than having to change these values in the window every time the simulation is run, you can turn off Use Defaults and then specify your own clipping planes using the Near Plane and Far Plane values. ■ Near Plane ■ Far Plane The near plane to be used when Use Defaults is off. The far plane to be used when Use Defaults is off. Lights Lists the scene lights reactor uses for the preview. When the list is empty, reactor creates and uses a flashlight at the camera position; you can toggle this light from the Preview Window > Display menu. You can combine up to six omni lights or spotlights to create the preview lighting. Choose lights from the scene one at a time with the Pick button, or add from a list of the available lights in the scene using the Add button. To remove a light from this list, highlight it in the list and then click Delete. Texture Quality The size (NxN pixels) of the textures generated for use in the display. A smaller value uses less memory. Mouse Spring These options allow you to configure the spring used when you select objects with the right mouse button (Havok 1) or Spacebar (Havok 3) in the preview window on page 4099. ■ Stiffness The stiffness of the mouse spring. If the mouse spring is too strong you might be able to pull objects through each other; this won’t cause errors, but it can create an undesirable state. Default=30.0. ■ Rest Length ■ Damping The rest length of the mouse spring. Default=0.0. The damping value for the mouse spring. Default=1.0. Use DirectX When on, the 3D rendering in the preview window uses the DirectX system. When off, the window uses OpenGL. reactor Utilities Utility panel > reactor > Utils rollout reactor Utilities | 4095 Animation menu > reactor > Utilities reactor provides a number of helpful utilities that you can use to analyze and optimize your simulation. For instance, you can check your reactor world for the presence of any unusual physical states that might cause problems with the simulation, such as excessive gravity, and you can remove redundant keyframes from a generated animation. You can also access these utilities from the reactor menu. Interface 4096 | Chapter 16 reactor Analyze World This utility begins by creating a simulation. If it finds any errors while constructing the simulation, such as invalid numbers of objects in systems or invalid meshes that would stop the simulation from running, it reports these in a dialog. These error checks are always carried out when creating a simulation, and if any of the tests fail the simulation cannot continue. If your simulation passes the initial error checks, the world analysis begins. This checks for unusual physical states that could cause issues in simulation, such as interpenetrating objects or extreme values for gravity or object density. If any such states are found, the utility reports them in a window and gives you the option to continue or cancel. If you are trying to simulate, choosing Continue runs the simulation; otherwise it closes the window. Analyze Before Simulation When on, reactor always calls Analyze World before previewing or running the simulation. Default=on. Stop Simulation on Warnings When on, prevents reactor from creating an animation if any warnings occur during analysis. For example, if the analysis finds that a body's property such as Friction exceeds the bounds of real-world values, it halts generation of the animation. Has no effect on the Preview process. Default=off. Report Problems After Simulation When on, reactor reports problems detected during the simulation after it's finished. Default=on. Analyze on Solver Switch When on, reactor automatically calls Analyze World when you change the solver from the About rollout. Default=on. Save Before Simulation When on, reactor saves your scene before simulating. reactor Utilities | 4097 Suppress Animation Warning When off, and you click Create Animation, reactor opens an alert warning you that animation creation cannot be undone, and asking you to confirm. When off, reactor simply creates the animation without warning you. Default=off. Key Management group After generating an animation with reactor, you often end up with a number of redundant keyframes. For instance, in a scene with a rolling rigid body, creating the initial animation might result in a keyframe for every frame. However, you can actually specify the body's animation with keys at just a few frames (perhaps frames 0, 25, and 90), allowing 3ds Max to interpolate frames between them. This utility allows you to remove any redundant keyframes for specified objects, thus saving memory. This functionality applies only to rigid bodies. Reduction Threshold Specifies how aggressive the key reduction is. Increasing this value causes more keys to be deleted, but the animation might lose fidelity. Lowering it retains more keys with greater accuracy, at the cost of memory. Default=0.5. Reduce After Simulation When on, reactor automatically applies keyframe reduction each time you simulate. Reduce Now Reduces keyframes for all the rigid bodies in the simulation. Delete All Keys Deletes all keyframes for all the rigid bodies in the simulation. Selection group Test Convexity Performs a convexity test on the object currently selected in the viewport, allowing you to check whether the object is convex or concave on page 3915 before choosing a simulation geometry on page 3914. Delete Keys Deletes all keyframes for the objects currently selected in the viewport. Reduce Keys Reduces keyframes for the objects currently selected in the viewport. Properties Rollout Utility panel > reactor > Properties rollout reactor toolbar > Open Property Editor 4098 | Chapter 16 reactor For details of this rollout, see Rigid Body Properties on page 3911. The Real-Time Preview Utility panel > reactor > Preview and Animation rollout > Preview Animation button Animation menu > reactor > Preview Animation reactor toolbar > Preview Animation button It's useful to be able to preview reactor simulations from within 3ds Max. The Preview Window lets you view and interact with a simulation in real time. You can run the simulation, interact with the objects in the scene using the mouse, and even update your objects in 3ds Max with their current state in the preview. Procedures To preview a simulation in the Preview Window: 1 Choose one of the above commands. 2 If no errors are found in your current scene setup, the Preview Window opens with your scene. 3 Press P to start the simulation. At any time during the simulation, you can orbit around the scene by left-button dragging the mouse within the Preview Window. With Havok 1 and Havok 3, you can pan the window by middle-button dragging; with Havok 3, you can also pan the window by right-button dragging. To interact with objects in the Preview Window : 1 Position the mouse cursor over the object you want to interact with, and then press and hold the right mouse button (Havok 1) or the Spacebar (Havok 3). This creates a reactor spring between the mouse cursor and your chosen object. 2 While holding the right mouse button (Havok 1) or the Spacebar (Havok 3), move the mouse. The Real-Time Preview | 4099 This drags the object, letting you pull it around, unless it's a fixed object, or attached to one, and interact with other objects in the scene. 3 To release the object, release the right mouse button (Havok 1) or the Spacebar (Havok 3). To update 3ds Max from the Preview Window: 1 Preview the simulation as described above. 2 When the scene is in your chosen state (for instance, you might want to drape some clothing over a figure, or let some objects fall and roll on the ground), open the MAX menu and choose Update MAX. NOTE The scene in 3ds Max will not be refreshed until you close the Preview Window. Interface Preview Window Menus 4100 | Chapter 16 reactor Timing At the bottom of the window, profiling and timing information is shown : The information presented is: ■ The current time step (simulation step) on page 3892 used for the simulation. This value is initially taken from the Preview & Animation rollout on page 4085 but can also be changed by using the Performance menu on page 4102. ■ The number of substeps on page 3892 used for the simulation. Again, this value is initially taken from the Preview & Animation rollout on page 4085 but can also be changed by using the Performance menu on page 4102. ■ The current simulation time; that is, the time that the current image in the preview represents in the final animation. During the preview, reactor tries to run the simulation in real time. In other words, if a simulation step of one second takes only 0.7 second of CPU to simulate, reactor "waits" 0.3 second before simulating the next step. That way, the animation is presented in the window at the same speed as the final animation in 3ds Max. However, for complex scenes or slow CPUs, simulating a particular period of time can take actually more CPU time than the specified period. For example, a simulation step of one second might actually take two seconds to calculate. In that case, it is not possible to present the animation in real time, and the animation is therefore presented during the preview at a slower speed that the final animation will have once it has been created. When this happens, the preview reports it by appending an asterisk (*) to the current time: Simulation menu Play/Pause (P) Starts and pauses the simulation. If the simulation is paused, the display remains active and you can still pan, rotate, and zoom the camera, but the physics world remains still. Reset (R) Resets the simulation, returning objects to their initial positions. The Real-Time Preview | 4101 Display menu IMPORTANT When About rollout > Choose Solver is set to Havok 3, only Camera Settings is available from this menu. Camera Settings Opens a dialog that allows you to specify the near and far clipping planes for the camera, and to change the camera’s field of view (F.O.V.). The clipping planes can also be set externally from the reactor utility Display rollout. Faces When on, the faces (and not the edges) of the display bodies are rendered. Wireframe When on, the edges (and not the faces) of the display bodies are rendered. Sim Edges When on, the edges of the physically simulated geometry (the simulation geometry for each body) are rendered in the preview window. This is useful for seeing what’s physically happening in a simulation. Grid When on, three 2D grids are displayed in the XY, YZ and ZX planes. Origin When on, the X (in red), Y (in green) and Z (in blue) axis are displayed at the origin (0,0,0). Flashlight On/Off When on, a flashlight located behind the camera lights the scene. When off, lights defined on the Display rollout of the utility are used. If no lights are defined, the preview uses a single fixed light. Performance menu Fixed Step (60,50,40,30 fps) Choosing one of these options changes the frequency of the simulation to the given value; a frequency of 30 fps yields a time step of 1/30 (0.0666) second, 50 fps means a time step of 1/50 (0.02) second, etc. Substeps (1-100 substeps) Choosing of these options sets the number of substeps taken in every simulation step. Mouse menu This menu is available only when using the Havok 1 engine. Pick at C.O.M. During the preview, you can pick and drag objects (see To interact with objects in the Preview Window : on page 4099. A spring is the attached between the mouse cursor in the screen and the object. When this option is on, the spring is attached to the center of mass of the object. 4102 | Chapter 16 reactor Otherwise the spring is attached to the point on the object where you first right-clicked. Mouse Help This option shows some help regarding the use of the mouse to control the camera and mouse picking. MAX Update MAX Takes the position and rotation of the objects in the simulation and uses them to update the objects in 3ds Max. Use MAX parameters Resets the substeps and time step (FPS) values to the values set in the reactor utility's Preview and Animation on page 4085 rollout. Display rollout The Display rollout of the reactor utility lets you configure various display options for the Preview Window, including cameras and lighting. For more information, see Display Rollout on page 4093. Scripts This section deals with some useful scripts that you can use to speed up your creation of reactor scenes. If you are interested in creating your own scripts, see the MAXScript Reference, available from the 3ds Max Help menu. Setup Scripts These scripts allow you to quickly set up constraints and collections. They are run automatically when you follow the specified procedures. Constraint Creation This applies to all the reactor constraint on page 3925 types, except the Point-to-path constraint on page 3995. To create a constraint and attach objects in a single step: This method works with two or more objects only; it doesn't work with a single-body constraint setup such as Spring with a child only. 1 Create the object(s) to constrain, and then ensure they are both selected. Scripts | 4103 If you select more than two objects, reactor will create constraints between them. If you link the objects together hierarchically in 3ds Max before creating the constraints, reactor will create constraints between link parents and children. Otherwise, reactor will examine the scene and try to choose appropriate pairs of objects. 2 Create the constraint(s) by using the reactor toolbar, menu or quad menu. The constraint automatically appears in the viewport, and as you will see in the constraint's Properties rollout, your objects are now attached to the constraint. If the objects are linked in 3ds Max, reactor will automatically make the link's child object the constraint child and the link parent the constraint parent. Otherwise, reactor will examine the scene and try to choose an appropriate parent and child. In addition, if the constrained objects are already added to a collection, reactor will disable collisions between them (except in the case of springs on page 3930). Collection Creation This applies to all the reactor collection types: rigid body collections on page 3922, soft body collections on page 4046, cloth collections on page 4034, and rope collections on page 4055. It also applies to the Fracture on page 4010 and Constraint Solver on page 3945 helpers. To create a collection and add bodies in a single step: 1 Create the object(s) to add to the collection, then ensure that they are all selected. 2 Create the collection by using the reactor toolbar, menu or quad menu. The collection automatically appears in the viewport, and as you will see in the collection's Properties rollout, your objects are now added to the collection. The Rag Doll Script This example script lets you quickly set up a simple humanoid character, using a mixture of Rag Doll on page 3948 and Hinge on page 3969 constraints to limit the movement of the character’s limbs. You can use the sample humanoid, or create your own character using the provided naming conventions and the script will set up its constraints. Alternatively you can use the script as a basis for creating your own custom rag doll script. 4104 | Chapter 16 reactor Procedures To create the sample rag doll: 1 Run this script: ■ menu bar > MAXScript > Run Script > rctRagDollScript.ms ■ Utilities panel > MAXScript > Run Script > rctRagDollScript.ms The Ragdoll dialog opens, with two rollouts: Create Humanoid and Constrain Humanoid. 2 On the Create Humanoid rollout, ensure that your chosen creation options are on, and then click Create Humanoid. A humanoid figure appears in the viewport. 3 To set up the humanoid's constraints, ensure that your new humanoid is highlighted in the Humanoids list on the Constrain Humanoid rollout (by default, it's called Ragdoll) and that your chosen options are active on the rollout. 4 Click Constrain Humanoid. The script creates Rag Doll constraints and Hinge joints with appropriate limits for the humanoid. In addition, if Create RBCollection and Create Scripts | 4105 CSolver are on, the script creates these helpers and adds the bodies and constraints to them. To turn your own humanoid figure into a constrained rag doll: 1 Create your figure using the naming conventions described in How It Works on page 4109. 2 Run the script as described above. The script searches the scene for geometry that follows the naming conventions and adds your figure to the Humanoids list. 3 Ensure your figure is highlighted in the list and then click Constrain Humanoid. Interface Create Humanoid rollout Name Root This text box stores the root name for the objects to be created. For example, the Name Root "RagDoll" generates objects with names such as RagDoll Pelvis and RagDoll R UpperArm. Height The height of humanoid to be created. Vertebra The number of vertebra to be created in the character's spine. 4106 | Chapter 16 reactor Add Hands When on, reactor creates boxes for the character's hands. Add Feet When on, reactor creates boxes for the character's feet. Link Parts When on, reactor links the created parts as a 3ds Max hierarchy. Create Humanoid Click to create the humanoid objects and add them to the scene. Scripts | 4107 Constrain Humanoid rollout Humanoids Displays a list of potential humanoids found in the current scene that could be used for creating rag dolls. In generating this list only the root node is examined so it is, in effect, a list of valid root nodes in the scene. If the rest of the hierarchy does not exist for a given root, when you use the root to create a rag doll the software outputs errors to the MAXScript listener. 4108 | Chapter 16 reactor Vertebra The maximum number of Rag Doll constraints that the script creates for the character's spine. If this value exceeds the number of valid vertebrae in the selected humanoid, the script won't create the excess constraints. Create RBCollection When on, the tool creates a Rigid Body Collection on page 3922 and places all the parts of the newly created rag doll character into it. Create CSolver When on, the script adds a Constraint Solver on page 3945 to the scene, which is then associated with the freshly created Rigid Body Collection. All the hinges and rag doll constraints that are created for the selected humanoid are added to this. This option is available only if you have chosen to create a Rigid Body Collection. Add Hands When on, if the selected humanoid has hands, the script creates constraints to connect the humanoid's hands to the rest of the body. Add Feet When on, if the selected humanoid has feet, the script creates constraints to connect the humanoid's feet to the rest of the body. Snapshot Parts When on, the script creates a separate geometry object for each object to be attached to a constraint. It is the newly created snapshot that is then used in the constraint and added to the collection (if a collection is being created). Link To Original When on, the newly created snapshot geometries are linked to the original geometries. Available only when Snapshot Parts is on. Change Name When on, each geometric component of the new rag doll is prefixed with the text in the New Name field. Available only when Snapshot Parts is on. New Name When on, each geometric component of the new rag doll is prefixed with the text in the New Name field. Constrain Humanoid Click to create the Rag Doll constraints and, depending on the active options, also create a copy of the source objects, a Rigid Body Collection, and a Constraint Solver. How It Works The script works by assuming that you've used the following naming conventions for the rag doll parts. This naming convention follows that used by the character studio Biped object to name the limbs. However, as long as they are named as following, you can use any geometry created in 3ds Max. Scripts | 4109 The script scans the selection for geometry with names that include one of the following: ■ _R_UpperArm ■ _R_ForeArm ■ _L_UpperArm ■ _L_ForeArm ■ _R_Thigh ■ _R_Calf ■ _L_Thigh ■ _L_Calf ■ _Pelvis ■ _Spine ■ _Head The script assumes that there is only one of each type of part, except in the case of the spine, which can have up to five parts. At this point the adjoining parts are connected, using mostly Rag Doll constraints on page 3948. However, the script also uses Hinges on page 3969 for the elbow and knee joints, as using Rag Doll constraints would be overkill to achieve the simple constrained motion found in an elbow joint. The script also sets suitable limits for each constraint. In addition, the script sets the mass of each rigid body in the character to 10.0 kilograms, and the simulation geometry to be a bounding box. It also disables collisions between constrained pairs of bodies. 4110 | Chapter 16 reactor Frequently Asked Questions See also: Troubleshooting on page 4115 Can I assign initial velocities to objects? How? Yes. At the start of the simulation, reactor assigns to each object the velocity it currently has in 3ds Max. In other words, if an object is moving during the frame range A to B, and you start the reactor animation setting Start Frame on page 4085 in between A and B, the object will start with the velocity it had in your animation. WARNING Make sure the object has the desired velocity at the exact frame where reactor starts the simulation (Start Frame). Since 3ds Max usually decelerates an object when animating its movement using keys at time A and B, starting the reactor animation at time B won't add any velocity to the reactor simulation. In order to have initial velocity in the reactor animation, start at a frame between A and B. Frequently Asked Questions | 4111 Is it possible to modify the animation in Cloth/Soft/Rope/Water? The animation for Cloth, Soft (mesh), and Rope is internally stored in the respective modifier using a memory-optimized format. Unfortunately, there is no direct access to those keyframes. However, you can use the Point Cache modifier on page 1604 to do some manipulations. There is some MAXScript access to Water keyframes. For details on MAXScript, choose Help > MAXScript Reference. What happened to Point-Nail constraint? The Point-Nail constraint from reactor 1 has been superseded by generalizing the Point-Point constraint on page 3975. The old Point-Nail constraint is equivalent to a-single bodied Point-Point constraint Can I apply the Cloth/Soft/Rope modifier to part of a mesh? While the Soft, Cloth, and Rope on page 4024 modifiers apply to all the vertices, you can fix or keyframe vertices of the mesh or spline by using deformable constraints on page 4061. Fixed or keyframed vertices will not be simulated physically Can I apply the Cloth/Soft/Rope modifier to more than one object? In general, no, because the animation is stored explicitly in a single modifier. The only exception is the FFD soft body on page 4043: If you have an FFD modifier applied to more than one object, you can apply a reactor Soft Body modifier on page 4038 to any (or many) of the bodies. You should still add only one of the objects to the Soft Body Collection on page 4046. Which parameters can I animate? Only Wind on page 4079 parameters are animatable. Can a keyframed object participate in the simulation? Yes. For objects that don't change shape, and for which reactor should not create keyframes, use unyielding on page 3913 rigid bodies. For objects that change shape (deform), use deforming meshes on page 4058 ( NOTE Unyielding rigid bodies are much faster and simpler to simulate than deforming meshes. 4112 | Chapter 16 reactor Can reactor store collisions for deformable bodies (Soft, Cloth, Rope)? No. The storing collisions on page 4019 functionality applies only to rigid bodies. What are the limitations of Water on page 4074 in reactor? Water in reactor is simulated as a height field (points are displaced vertically only). This can produce effects like ripples and waves, but it cannot reproduce certain other effects: ■ Wakes ■ Splashes. You can, though, use the information exposed through MAXScript to generate particles or other effects. ■ Flowing fluids (like water flowing through a pipe or pouring from a tap). Can I move the center of mass of my objects? How? You can't explicitly set the center of mass of an object. However, you can use compound rigid bodies where different pieces have different masses to simulate uneven mass distribution. For example, you can simulate an object with a low center of gravity by dividing the object into two pieces (primitives), top and bottom, where the bottom piece is heavy and the top piece is light; alternatively, you leave the original piece intact, with low mass, and add a small, heavy primitive at the point of the desired center of mass. For more information, see Compound Rigid Bodies on page 3920. Frequently Asked Questions | 4113 Can I attach Cloth/Rope/Soft Bodies to other Cloth/Rope/Soft Bodies? No. However, once a piece of, say, cloth has been simulated, you can take it out of its Cloth Collection and add it to a Deforming Mesh Collection on page 4059. By doing so, the cloth will still be part of the simulation the next time, but reactor won't recalculate its animation. You can then attach other pieces of Cloth/Soft/Rope to it by using the Attach To Deforming Mesh on page 4069 constraint. How can I make a rigid body not move until a collision happens? You can use the Inactive on page 3912 property for the rigid body. How can I animate a floating object, like a balloon? There are many alternatives you can try: ■ Use water on page 4074. The buoyancy of a balloon in the air follows the same rules as the buoyancy of a light object inside a fluid. You will need to place the water surface well above the scene so the objects are not visible when they reach it. 4114 | Chapter 16 reactor ■ Use very low mass for the objects, and add wind on page 4079 blowing in the up direction. You might want to also decrease the strength of gravity. Troubleshooting Check also : Frequently Asked Questions on page 4111 General Troubleshooting Analyzing the World Whenever you get unexpected behavior from reactor, it is advisable to perform a world analysis on page 4097 to get a report of anything detected by reactor as suspicious, unexpected, or prone to error in your scene. For more information, see reactor Utilities on page 4095. Discussion Forums http://area.autodesk.com/The Area provides you with a moderated community to discuss, learn, and share techniques and ideas with other 3D professionals. Troubleshooting | 4115 Need to know how to do something? Having a problem? Just want to show off your work? Post your questions to the appropriate forums. Simulation takes too long. General tip: ■ Before performing a CPU-intensive operation such as Create Animation or Reduce Keys, make sure you don't have any object selected in the scene. Having an object selected during some calculations can force 3ds Max to evaluate the selected object many times in order to update its UI, slowing down the calculations. If the scene is complex but contains independent parts that don't interact with each other, try adding the objects involved to different collections and solvers and create the animations independently for each subset, enabling and disabling the collections and solvers accordingly. If you are using Soft Bodies, Cloth, or Rope on page 4024: ■ Try to reduce the complexity of the mesh that flows to the reactor modifier. For example, you can apply a MeshSmooth modifier on top of the reactor modifier to render a smooth surface while simulating a simpler one. ■ For soft bodies with complex meshes, using FFD soft bodies on page 4043 can offer better results and decrease the computation time. ■ Unless necessary, do not use the Avoid Self-Intersections option, because it increases computation time and memory usage significantly. ■ Try to reduce the number of substeps on page 4085 used in the simulation. Also try to decrease the number of Internal Steps used by the Cloth/Soft/Rope collection. NOTE These steps also reduce the accuracy of the simulation, and can therefore cause instability. If you are using rigid bodies on page 3909: ■ For best results when using rigid bodies only, set Utilities panel > reactor > About rollout > Choose Solver to Havok 3. ■ Reduce the complexity of the geometry used for the rigid bodies. Try using bounding boxes or sphere, and avoid using non-fixed concave objects. Use simpler geometry as a geometry proxy on page 3914 for the object. 4116 | Chapter 16 reactor ■ If you are using Fracture, slowdowns can be caused by reactor trying to avoid instability. Follow some of these tips on page 4017 to help reduce the chances of instability happening ■ Try decreasing the number of substeps on page 4085 used in the simulation. Be aware that this will reduce the accuracy of the solution and therefore may cause instability. Water doesn't render. The reactor Water on page 4074 is a world-space modifier and therefore it is not a renderable object. You can bind renderable object (like planes) to the water WSM in order to render a water animation. See Rendering Water on page 4078. Cloth/Soft/Rope becomes unstable and explodes. ■ Check whether any unyielding rigid body or DefMesh on page 4058 is forcing the Cloth/Soft/Rope into a penetration. ■ If you are attaching to a rigid body on page 4067, make sure that the points of attachment are outside the rigid body; otherwise, make sure Ignore Collision is on. ■ If your Cloth/Soft/Rope is attached to a rigid body on page 4067, use Runge-Kutta as the ODE Solver for the Rigid Body Collection on page 3922 of the attached rigid body ■ Try increasing the amount of internal steps in the Cloth/Soft/Rope collection (Advanced rollout). Rigid bodies become unstable/explode/fly to infinity. In rare situations, simulation can become unstable and objects can "explode.” This typically happens only when using complex systems of objects, like Fracture on page 4010, or using simple constraints on page 3930 like springs or dashpots. ■ For best results when using rigid bodies only, set Utilities panel > reactor > About rollout > Choose Solver to Havok 3. ■ If you are using many simple constraints on page 3930 (spring, dashpots) working together, switching the ODE Solver in the Rigid Body Collection on page 3922 to Runge-Kutta can improve the results. Troubleshooting | 4117 ■ Usually, increasing the number of substeps on page 4085 in the simulation improves the stability of the simulation. ■ Also for springs and dashpots, avoid attaching objects with very different masses. Using a Strength value similar to the mass of the objects attached, and a Damping value of 1/10th of that Strength usually give good results. ■ If you are using constraints on page 3925, make sure you have aligned the constraint spaces on page 3926 properly. ■ If many objects start the simulation too close too each other (inside collision tolerance on page 4088), reactor will try to push them apart at the beginning of the simulation. Try increasing the space between them, or reducing the collision tolerance. ■ If you have constrained two rigid bodies so they are in continuous contact/penetration (like an upper arm and a forearm), be sure to disable collisions on page 4090 between those bodies. ■ Adding drag action on page 4089 can help damp the overall simulation. Try increasing the linear drag in the scene. ■ If you are working with Fracture, the Fracture Tips on page 4017 section provides information on how to avoid instability. Cloth/Soft/Rope object stretches too much If you have attached (using the Attach to RB Constraint on page 4067) it to a falling object, be sure to turn off Do Not Affect Rigid Body. If the problem remains, increase the mass of the Cloth/Soft/Rope, or decrease the mass of the attached rigid body. Increasing the strength and damping of the Cloth/Soft/Rope should also improve the situation. Objects seem to move very slowly Make sure you are using the proper World Scale on page 4087 in the scene. A 10cm box falling from a 1m height doesn't behave the same as a 1km box falling from a height of 10km: The second one will reach the ground much later). Use real-world units or have a proper mapping between 3ds Max units and simulation units (World Scale on page 4087). Why, after simulation, do I get warnings regarding "topology changes"? The term “topology” refers to the internal connections of the vertices, edges and faces of a mesh. If you change the number of vertices in a mesh, you are 4118 | Chapter 16 reactor changing its topology. While 3ds Max lets you animate the topology of objects (e.g., change the number of vertices or faces over time), reactor can simulate only objects with fixed numbers of vertices. If, during a simulation, reactor detects a topology change, it ignores the object in question and reports the problem as a warning. Objects interpenetrate. There can be different reasons for this: ■ Check that you haven't disabled collisions for those bodies. You can disable collisions either globally on page 4090 for pairs of objects, or for the object in particular (Rigid Body Properties on page 3911). ■ If the objects are attached using deformable constraints on page 4061, make sure you haven't disabled collisions in the constraint parameters. ■ Make sure Collision Tolerance on page 4088 is set to a value that makes sense for the sizes of the objects. ■ Try increasing the number of substeps on page 4085 in the simulation. Cloth/Soft/Rope intersects itself. Make sure you have turned on the Avoid Self-Intersections option in the modifier on page 4024. I can't add an object to a Cloth/Soft/Rope Collection. Only an object that has the proper reactor modifier applied can be added to one of these collections. Make sure you have applied a reactor Cloth on page 4026, Soft Body on page 4038, or Rope on page 4049 modifier to the object. I can't add an object to a Rigid Body Collection. If you are using compound bodies on page 3920, make sure the group is open, as only the group parent can be added to a Rigid Body Collection on page 3922. Mass and other properties are disabled. Make sure you have selected only one object, and that this object is geometrical. The most common cause for this is the use of groups. You can use groups to create compound rigid bodies on page 3920, but in order to change Troubleshooting | 4119 the properties of the primitives inside the group, you'll need to open it and selected the individual primitives inside it. Rigid bodies don't bounce enough. Increase the Elasticity property on page 3911 of the object. Try also increasing the Elasticity of the other object involved in the collisions, as the elasticity of a collisions is a function of the elasticity property on page 3911 of the two objects involved. Objects stop moving unexpectedly in the middle of a simulation. This can be caused by objects being deactivated. There are two ways objects can be deactivated: through the world on page 4087 deactivation or, if the object belongs to a constrained system, through the Constraint Solver on page 3945 deactivation parameters In both cases, try modifying the deactivation parameters for a less-aggressive deactivation, or disable deactivation in general. An object doesn't move during the simulation. Make sure that you've added the object to a RBCollection on page 3922 and that it has a mass on page 3911 other than 0.0 (objects with mass 0.0 are fixed). If you are using Fracture on page 4010, make sure none of the pieces is fixed (has mass 0.0). A keyframed object doesn't move during the simulation. Make sure that you enabled the unyielding on page 3911 property for that rigid body. My old scripts don't work. reactor exposes parameters and functionality to MAXScript in a much more consistent and complete way than previously. For the update, some reactor MAXScript interfaces had to be renamed, but all functionality exposed in previous versions is still available, and a lot more functionality has been exposed. While this means that some reactor-specific scripts need to be updated, it also means that a great deal more flexibility and power is now achievable using MAXScript with reactor. For more information, see the MAXScript Reference, available from the Help menu. 4120 | Chapter 16 reactor I can't I disable collisions between two bodies. If your objects don't appear in the Define Collisions dialog on page 4092, make sure you've added the two bodies to a collection; only objects in collections are shown in that dialog. Rigid bodies don't sink/don't float in the water. Objects sink or float depending on their density and the density of the water. You define water density explicitly in the Water space warp on page 4074. The density of a rigid body is defined as its mass divided by its volume. ■ Check that your objects have real-world sizes (or adjust the world scale on page 4087) and masses on page 3911. If your bodies still don't sink enough for your liking, try the following: ■ Increase the mass of the bodies. ■ Decrease the density of the water. ■ Decrease the viscosity of the water, this can slow down the sinking. Follow the opposite steps if you're trying to make your objects float more. Water doesn't ripple enough You can either increase the Max Ripple value in the Water space warp on page 4075, or you can scale the effect of the space warp on a particular object that you've bound to the space warp by modifying the Scale Strength value in the Water world-space modifier on page 4078. The first option (increasing the Max Ripple value) is preferable, but you need to re-create the animation in order to see the effect. The second option (increase the Scale Strength parameter in the modifier) affects only the object bound to the Water space warp. It can thus produce inconsistent results if you have objects floating in the water, because they won't be affected by the change. I can't see any stored collisions. Make sure you've set reactor to store collisions on page 4019 during the simulation. Collisions are stored only for rigid bodies; not for Cloth, Soft Bodies, or Rope. Troubleshooting | 4121 Constrained objects snap at the beginning of the simulation. During a simulation, reactor tries to match the two constraint spaces (sub-objects) defined in the constraint (see Constraint Concepts on page 3926 for more info). When you create a constraint those spaces are aligned by default. After setup, each space moves with the corresponding attached object. If you have moved the objects and wish to realign the constraint spaces, there are tools in the helper to do so (see Working With Constraint Spaces on page 3928 for more info). File size increases dramatically. ■ If you are using rigid bodies, try the Reduce Keys on page 4095 utility to reduce the number of keyframes created for each rigid body. ■ FFD-based soft bodies on page 4043 can also create a large number of keys in the FFD modifier (one for each vertex for each frame). Although the Reduce Keys on page 4095 functionality in reactor applies only to rigid bodies, you can reduce keys in the FFD modifier using the 3ds Max Reduce Keys tool, available from Track View on page 3503. reactor runs out of memory during simulation. Reduce the complexity of the objects simulated: ■ For rigid bodies, use a simpler geometry or proxy on page 3914 to simulate the object. ■ For Cloth and Soft Bodies, try to use a coarse mesh for the simulation, then apply a MeshSmooth modifier on top of the reactor modifier to smooth the final result. ■ For Soft Bodies, try to use FFD-based Soft Bodies on page 4043 instead of mesh-based soft bodies. For any deformable body, the Avoid Self-Intersection option is particularly memory-intensive. Avoid using this option if you are having problems regarding memory. 4122 | Chapter 16 reactor Using FFD-Based Soft Bodies to animate a part of a mesh, the whole object seems to be rotated by the simulation. If you are using FFD Soft Bodies on page 4043 to animate just a subpart of a mesh, make sure the Animate Transform on page 4045 check box is off, as this option works only for FFD animating the whole mesh. Using FFD-Based Soft Bodies to animate a whole mesh, some weird squashing happens on occasion. If you are using FFD Soft Bodies on page 4043 to animate the whole mesh, sometimes the FFD modifier deformation can show artifacts when the lattice points are rotated. Try switching on the Animate Transform on page 4045 check box in the modifier to avoid those artifacts. Picking objects during preview makes them go unstable. Try reducing the strength and damping of the mouse spring on the Display rollout on page 4093. Objects barely move when picking during preview. Try increasing the strength and damping of the mouse spring on the Display rollout on page 4093. I can't see anything in the Preview Window. It might be caused by the lack of a proper camera; create a camera and select it in the Display rollout on page 4093. If still doesn't work, try changing the far and near clipping planes. The preview shows everything in black. If the scene uses texture maps but the software can't find the map files, they're shown as black. Disable textures by pressing X during the preview on page 4099. After the simulation I get a warning reporting that objects moved to infinity. When instability occurs, rigid bodies can reach extreme velocities and therefore move to infinity. If reactor detects this condition when creating an animation, it does not create keyframes, but instead reports the problem once the animation is finished. Troubleshooting | 4123 Check also the Rigid bodies become unstable on page 4117 section above. There is a visible gap between rigid bodies in the simulation. Try reducing the Collision Tolerance on page 4088 of the simulation. reactor complains about a no longer existing node. This can happen if you rename an object that is used as geometry or display proxy on page 3914 for a rigid body; proxies are stored by name, so if you change the name of the proxy you'll have to manually update the rigid bodies that use it. Error :All vertices are coplanar, use concave mesh. By default, geometries in reactor are simulated by using their convex hull. reactor can't create a convex hull from geometry in which all the vertices lie in the same plane, such as a standard 3ds Max plane. Those geometries need to be simulated as concave. Check the Rigid Body Properties on page 3911 section for more information. Rope simulation modifies the smoothness of the spline. Although reactor simulates cloth as a series of linked vertices, the Rope modifier on page 4049 tries to produce a smooth curve going through the vertices. In most cases the curve generated by the modifier is suitable, but in some cases (for example, if the vertices in the spline are far apart) you might find that the generated curve is not optimal. In those cases you can: ■ Modify (refine) the spline below the Rope modifier so there is a uniform distance, not too great, between vertices. You will need to re-create the animation in order to see the final results. ■ Modify the spline after the Rope modifier using an Edit Spline modifier on page 1447. This is the most flexible option. Animation works in the preview, but not in 3ds Max after creating the animation. reactor creates the animation for rigid bodies on page 3909 by sending transforms (new rotation and new position) to the controllers assigned to those bodies. Some controllers, like procedural controllers (Noise) and some system controllers (Biped) do not handle these explicit transform updates. To overcome this, assign a regular keyframable controller such as Euler XYZ or Bezier to the 4124 | Chapter 16 reactor objects or, if that's not possible or desirable, create a copy or snapshot of the bodies and make sure that a suitable controller is assigned to the snapshot copies. Use these copies for the reactor simulation instead. Rigid bodies in animation flicker and jump when playing the animation but not when moving the time slider. This is usually a problem with the subframe interpolation of the Euler (XYZ) rotation controller. While reactor sends valid transformation keys to the controller, the conversion from an arbitrary rotation to X,Y and Z Euler angles may cause non-smooth animations between keyframes (the controller produces noncontinuous X,Y and Z values). This problem can be solved by using a quaternion-based rotation controller, such as the TCB controller, for the rigid bodies. Preview Animation fails While the Preview Window on page 4099 should work with most OpenGL and DirectX compliant hardware, some specific hardware and driver configurations might cause problems: ■ Update to the latest drivers for your graphics card. Refer to the manufacturer's Web site for details. ■ Try to use DirectX instead of OpenGL (or vice versa) for the preview. This setting, independent of what is used for the 3ds Max viewports, can be changed on the Display rollout on page 4093. If you discover that your card works only with a particular configuration, you may want to create startup script (a script in the scripts/startup folder) that calls reactor.displayUsingDirectX = true/false. ■ Some problems can be caused by lack of display memory. Avoid having multiple sessions of 3ds Max open at the same time, and reduce the size of the windows and the display resolution. ■ Try changing the 3ds Max to different drivers: OpenGL, Direct3D or Software. Wind doesn't seem to work ■ Make sure the Wind Helper icon is pointing towards the right direction. ■ If the wind should act upon cloth, rigid bodies, etc., make sure the correct check box is on in the Wind Helper parameters. Troubleshooting | 4125 ■ Try to increase the strength of the wind, or decrease the weight of the objects it should affect. 4126 | Chapter 16 reactor character studio 17 The character studio functionality in 3ds Max provides professional tools for animating 3D characters. It is an environment in which you can quickly and easily build skeletons and then animate them, thus creating motion sequences. You use the animated skeletons to drive the movement of geometry, thus creating virtual characters. And you can generate crowds of these characters using character studio, and animate crowd movement using a system of delegates and procedural behaviors. character studio comprises three components: Biped, Physique, and Crowd. ■ Biped on page 7923 builds and animates skeletal armatures, ready for character animation. You can combine different animations into sequential or overlapping motion scripts, or layer them together. You can also use Biped to edit motion capture files. NOTE Biped does not create character mesh objects. Create your character mesh before using Biped to create a skeleton for it. ■ Physique on page 8091 uses the biped armatures to animate the actual character mesh, simulating how the mesh flexes and bulges with the movement of the underlying skeleton. NOTE You can use Physique with other hierarchies beside the biped skeleton. And, as an alternative to Physique, you can use the Skin modifier on page 1672 to animate a character mesh with any hierarchy, including a biped. ■ Crowd on page 7945 animates groups of 3D objects and characters using a system of delegates and behaviors. You can create crowds with highly complex behaviors. If you are new to 3ds Max, read What You Should Know to Use character studio on page 4129 and Understanding character studio Workflow on page 4141. If you are already use 3ds Max, proceed to Understanding Biped on page 4130 to continue. To find out about Physique, read Understanding Physique on page 4132. To learn about the Crowd system, read Crowd Animation on page 4761. 4127 What is character studio? character studio is a set of components that provides a full set of tools for animating characters. character studio lets you create skeletal hierarchies for two-legged characters (called bipeds) that can be animated quickly using a wide variety of methods. If your character walks on two legs, the software provides unique footstep animation on page 4176 that automatically creates movement based on gravity, balance, and other factors. If you want to animate motions manually, you can use freeform animation on page 4232. This type of animation is also suitable for characters with more than two legs, or characters that fly or swim. With freeform animation, you can animate the skeleton with traditional inverse kinematic techniques. You can also animate a biped skeleton by loading motion capture files on page 4309. You can convert back and forth between these methods to take advantage of their several benefits. character studio also provides tools for skinning a character using the biped skeleton, or any other type of linked hierarchy. The software provides a unique ability to separate the motion of the animation from the structure of the character. Thus you can animate a giant walking and apply that motion to a tiny elf. Or you could animate a fat character and retarget the same motion to thin one. Using a library of motions, you can animate a character doing hundreds of different actions as easily as loading a file. The software provides a comprehensive range of tools for motion editing. You use motion scripting to sequence animations with transitions. You can overlay different animations with layers, or blend them with the nonlinear Motion Mixer on page 3699. Function curve editing, available on the track bar and in Track View, as well as in the Animation Workbench on page 4476, lets you alter animations. The workbench also provides specialized tools for analyzing and correcting motion errors. Finally, the software provides options for creating crowds of bipeds on page 4761 or other objects with a procedural-animation system that uses forces and behaviors to drive character motion. character studio consists of three basic components: ■ Biped® provides tools to create and animate skeletons. 4128 | Chapter 17 character studio ■ The Physique® on page 4603 modifier associates a skeleton with the character-mesh objects, so you can control the mesh with the skeleton. ■ Crowd provides tools to create and animate crowds of animated objects, including bipeds. What You Should Know to Use character studio character studio provides you with a broad range of tools for animating virtually any type of character. To expedite your introduction to the product, be familiar with the following 3ds Max concepts: ■ Creation, transformation, and modification of objects ■ Selection of objects through clicking or dragging in viewports, and by using the Select From Scene dialog on page 228 ■ Navigation in viewports and changing your viewport configuration What You Should Know to Use character studio | 4129 ■ Use of the Track View - Dope Sheet and Track View - Curve Editor, and the trackbar to view and edit animation tracks and keys For information on these areas, consult the remainder of this reference. If you are not familiar with 3ds Max, do some of the introductory tutorials found online in Help > Tutorials. Understanding Biped Biped on page 4147 is a 3ds Max component that you access from the Create panel. Once you create a biped, you animate it using the Biped controls on the Motion panel. Biped provides tools to let you design and animate the figures and motion of characters. The Biped The biped skeleton created with the Biped module is a two-legged figure created as a linked hierarchy, and designed for animation. The biped skeleton has special properties that make it instantly ready to animate. Figure and Keyframe Modes character studio is designed to interchange motion and characters. In Figure mode on page 4420, you pose the biped to fit your character model. In Keyframe mode on page 8019, you animate the skeleton. Motions created for the biped can be saved and loaded onto other biped skeletons with different physical characteristics. For example, you could animate a giant ogre, save the animation, and load it onto a small child. Motion files are saved in the proprietary character studio BIP format on page 7923. You can use these files in a variety of ways with Motion Flow, the Motion Mixer, and the Crowd tools to combine animation or animate multiple characters. Animating the Biped There are two primary methods used in creating biped animation: footsteps method on page 7986 and freeform method on page 7988. Each method has advantages. You can convert from one method to the other, or you can use a combination of both techniques in a single animation. For detailed information, see the sections that follow: Creating Footstep Animation on page 4176 and Creating Freeform Animation on page 4232. 4130 | Chapter 17 character studio Biped Properties The biped skeleton has some properties designed to help you animate faster and more accurately. ■ A human structure—Joints on the biped are hinged to follow human anatomy. By default, the biped resembles a human skeleton and has a stable inverse kinematics hierarchy. This property means that when you move a hand or foot, the corresponding elbow or knee orients itself accordingly, and produces a natural human posture. ■ Customizable for non-human structures—The biped skeleton can easily be made to work with a four-legged creature or an animal that naturally leans forward, such as a dinosaur. ■ Natural rotations—When you rotate the biped spine, the arms maintain their relative angle to the ground, rather than behaving as though fused to the shoulders. For example, take a biped in a standing position, with arms hanging at its sides. If you rotate the spine forward, the fingers touch the ground rather than pointing behind it. This position is more natural for the hands, which speeds the process of keyframing the biped. This feature also applies to the biped head. When you rotate the spine forward, the head maintains a forward-looking orientation. ■ Designed for footsteps—The biped skeleton is specially designed to animate with character studio footsteps, which help solve the common animation problem of locking the feet to the ground. Footstep animation also provides an easy way to rough out animation quickly. See the section Creating Footstep Animation on page 4176. See also: ■ Biped on page 4147 ■ Biped User Interface on page 4323 Understanding Biped | 4131 Understanding Physique Physique is a modifier that, when applied to a mesh, allows the movements of an underlying skeleton to move the mesh seamlessly, like bones and muscle under a human skin. Physique works on all point-based objects including geometric primitives, editable meshes, patch-based objects, NURBS, and even FFD space warps. For NURBS and FFDs, Physique deforms the control points, which in turn deform the model. You can attach it to any skeleton structure including a biped, 3ds Max bones, splines, or any 3ds Max hierarchy. When you apply Physique to the skin objects and attach the skin to the skeleton, Physique determines how each component of the skeleton influences each vertex of the skin, based on settings you specify. Physique affects a mesh after you click Attach To Node on the Physique rollout and select a root node in the viewports. During the attach process, Physique works its way through all of the children in a hierarchy, starting at the object you select, and creates its own links with associated envelopes on page 4628 for each link it finds. The links created by Physique are referred to within this documentation as the Physique deformation spline on page 7949. Vertices that fall within envelopes are influenced to follow the links and animate the mesh. Splines and 3ds Max bones can also be added using the Add button in the Floating Bones rollout on page 4678. 4132 | Chapter 17 character studio Biped and Physique When the biped pelvis is selected in the viewports and Attach To Node on page 4671 is turned on, Physique traces its way from the pelvis down the legs to the toes. From the pelvis it also traces its way up through the spine and branches at the collar to the arms, hands, and fingers, and up the neck to the head. A link and associated envelopes are created for each link found. If any other objects, including 3ds Max bones, are linked to the biped, Physique treats them similarly: it creates a link and envelopes. When you use Physique to attach a mesh to the biped, remember this: If your character has additional limbs, link 3ds Max bones to the biped for the extra arms before using Attach To Node to create links and envelopes. When you apply Physique using Attach To Node, it creates links and envelopes for all the links in the biped, and for the linked bones. Link non-deformable objects like a sword after using Attach To Node. That way the software doesn’t create a link and envelopes for the sword. Envelopes and Weighted Vertices The Physique modifier uses envelopes as its primary tool for controlling skin deformation. It also provides tendons and bulge angles for fine-tuning mesh deformation after envelopes are adjusted. All envelopes have an inner and outer bound (boundary). Vertices falling within the inner bound of a single link receive a full weight of 1.0 from that link. Those falling outside the outer bound receive no weight from that link. Vertices falling between the inner and outer bounds receive a weight from 0 through 1. Vertices move together with the link that influences them. Where multiple envelopes encompass a vertex, that vertex receives weight from each envelope and follows each link to an average position based on these weights. This weighting from multiple links is considered blending. It is possible that weights assigned to some vertices don’t reach a total weight of 1.0 or greater. Rather than leaving these vertices behind, Physique by default normalizes them to a value of 1.0. Adjusting falloff, overlap, scale, and other envelope parameters changes vertex weight distribution across links. This change, in turn, affects the way skin behaves as the biped moves. By and large, you correct the way skin deforms on a character by adjusting envelopes. Deformable and Rigid Envelopes There are two Envelope types per link, deformable on page 7948 and rigid on page 4628. Deformable envelopes follow the Physique deformation spline that Understanding Physique | 4133 runs through the joints in the hierarchy, and can be deformed using bulge angles, tendons, and link parameters. Rigid envelopes determine vertex-link assignment based upon the linear 3ds Max link and move in an immobile relationship to the link. Vertices in a rigid envelope, however, are deformed (blended) in the overlap area of other envelopes. Typically you use deformable envelopes; however, game developers with game-engine restrictions might want to use rigid envelopes exclusively. Both rigid and deformable envelopes can be turned on for the same link. For example, by scaling both envelopes, you could deform the shoulder with a rigid envelope and the armpit with a deformable envelope. The Number of Links That Can Affect a Vertex Any number of overlapping envelopes (N Links on page 8056) can influence vertices. Normally, N Links are preferred. For special purposes such as games requirements, you can limit the number of links (envelopes) that can affect a vertex. The No Blending parameter is like the method used in version 1 of the software; a vertex is assigned to only one link. Physique Workflow Before Physique is applied, align the biped to the mesh in Figure mode on page 4420. Use a pose with the arms outstretched so the hands are away from the torso. Save a figure file, so it’s easy to return to this pose whenever you need. Select the mesh and choose Physique in the Modify panel. Turn on Attach to Node and select the root node in the hierarchy (biped Pelvis or root node in a bones hierarchy, not the COM). In the Physique Initialization dialog box, click Initialize to create default envelopes based on the links in the hierarchy. The remainder of the work is adjusting envelopes and optionally adding bulge angles and tendons. Envelope size, overlap, and other parameters are adjusted with the character in an animated position (with Figure mode turned off). By scrubbing the time slider back and forth, you can spot problem areas and adjust the envelopes affecting the problem areas. In Place mode is useful to keep the character stationary during envelope adjustment. The finishing touches are link parameters, bulge angles, and tendons. You use link parameters to control skin sliding, the amount of twist, and crease blending as a character moves. Bulge angles let you expand areas like the biceps,and chest relative to the angle created by a link and its child in the hierarchy. Tendons can span multiple links in the hierarchy to stretch and pull a character skin. 4134 | Chapter 17 character studio See also: ■ Physique on page 4603 ■ Physique User Interface on page 4670 Understanding Track Editing There are several places to view your animation represented as tracks in 3ds Max. These views include: ■ Track View - Curve Editor ■ Track View - Dope Sheet ■ Track Bar The tracks can be displayed as function curves, or as keys and ranges on a box graph. character studio makes special use of function curve editing capabilities with a customized version of the Track View - Curve Editor called the Animation Workbench on page 4136. Biped Curve Editing Using the Track Bar After creating animation of the biped in the viewport using keyframing tools from the Motion panel, you might need to work on the animation tracks, either to adjust key interpolation for smooth motion or to adjust ranges and affect timing. 3ds Max allows for some basic ways to do these tasks for all scene objects using direct key manipulation. The simplest and most direct access to keys and ranges can be found on the track bar. Keys for selected biped objects are immediately visible there. With some limitations, you can create keys by Shift+dragging in the track bar. Right-clicking a key displays a menu; choosing from this menu gives quick access to key properties such as interpolation controls. This Key Properties dialog is also accessible from a list on the Motion panel > Assign Controller rollout. A right-click on the time slider also displays the Create Key dialog, which is another quick way to set keyframes. Selecting any two keys displays the range as a bar beneath the keys. You can reposition this range bar or resize it to adjust the timing of the animation. Understanding Track Editing | 4135 You can combine accelerator keys, like Ctrl and Alt, with left, middle, and right mouse buttons to extend or stretch the range displayed in the track bar. You can expand the track bar to display the keys on function curves. From there, you can select and manipulate keys. Biped Curve Editing in Track View The same function-curve editing controls are found in Track View. Track View has two modes: Curve Editor and Dope Sheet. character studio displays function curves for biped components in the Track View - Curve Editor. Dope Sheet mode displays the footstep tracks and other biped keys as boxes. Here, you cut, copy, and paste keys to create repeated motion. You can use Time Editing in Dope Sheet mode, and cut, copy, paste, and insert time segments, complete with keys, into your animation. Curve display can help pinpoint troublesome spots in your animation. You can see where a curve has problems, often corresponding to motion problems in the viewport animation. You move the keys to compensate for the problems. Understanding the Workbench The Workbench is a curve editor customized for use with character studio. It provides specialized tools for selecting and displaying curves, and also for locating and fixing errors and discontinuities in motion. It is a visualization tool that allows you to see and manipulate quaternion function curves represented as euler angles. Also you can see curves for the the position of a biped body part in any coordinate space. The Workbench automatically limits selections to biped body parts and scene objects related to that biped. You can analyze these selections for errors using a variety of detectors, and correct them using the provided fixers. You can also apply filters to perform operations on different biped body parts to affect the overall animation without error identification. Function Curve editing for Biped is also available in the 3ds Max Track View - Curve Editor and in the expanded track bar, but without the specialized Workbench tools. Especially when working with imported motion-capture data, you might find that curve editing is difficult using the standard 3ds Max tool set. This difficulty can arise from the fact that motion-capture data often has a key on every 4136 | Chapter 17 character studio frame, so curve manipulation becomes cumbersome and awkward. It is difficult to pinpoint the trouble spots visually. The Animation Workbench offers automatic functions to reduce keys or apply filters to the motion curves to smooth animation. The Animation Workbench See also: ■ Working with the Workbench on page 4476 ■ Animation Workbench on page 4483 Understanding Motion Flow Motion Flow is a tool that graphically arranges clips (motion files), flowing from one motion to the next. You can use a Motion Flow graph to set up a series of clips with transitions between them. The biped then performs the series of motions in sequence. Understanding Motion Flow | 4137 Motion Flow graph with transitions between motion files You can also create a network of clips on the graph, where each clip has a transition to two or more clips. With this type of graph, you can tell character studio to generate the actual motion sequence for you based on random selection. Multiple transitions from each clip 4138 | Chapter 17 character studio A crowd simulation can also be used to generate a motion sequence from this type of graph. Each biped in the crowd chooses from the motions and transitions in the graph based on its desired destination and speed. These factors, in turn, are determined by the crowd parameters you set. See also: ■ Working with Motion Flow on page 4508 ■ Motion Flow Mode on page 4545 ■ Motion Flow Rollout on page 4548 Understanding Crowds The Crowd system in character studio lets you create realistic simulations using large groups of characters, humanoid and otherwise, that behave and interact with one another by procedural means. You can use it to easily animate scenes containing hundreds of people and/or creatures, all with similar or widely varying sets of behaviors. These can vary dynamically according to other factors in the scene. Understanding Crowds | 4139 At the heart of the system are the Crowd and Delegate helper objects. A single Crowd object can control any number of delegates, which serve as stand-ins for crowd members. You can group delegates into teams, and assign behaviors such as Seek, Avoid, and Wander to individuals or teams. You can combine behaviors with weighting, so that, for example, a crowd member could seek a goal while wandering slightly. Crowd simulations can range in sophistication from simple and straightforward to highly complex. Aiding at the latter end of the range is the Cognitive Controller feature, which lets you use the scripts to apply conditional transitions to sequences of behaviors. For example, you could tell a delegate to approach a goal until it gets within a certain distance, and then start moving away. Or you could use a Cognitive Controller to have a delegate move among a series of goals. Another means of creating complex, dynamic crowd simulations is motion synthesis, which can be used in conjunction with the Cognitive Controller. The Crowd system offers two types of motion synthesis. ■ When working with bipeds, you use the Motion Flow feature to allow the software to create scripts for the bipeds that match the delegate behaviors. ■ When working with non-bipedal characters, such as fish or birds, you use Clip Controllers that let you apply different animation segments to various types of motion. For example, a bird flaps its wings quickly while ascending but slowly while flying level, and stops flapping its wings during descent. One of the most important requirements of crowd simulations is avoidance; if characters pass through each other or other objects in the scene, realism suffers. The Crowd system offers various behaviors to help achieve proper avoidance. It also provides the Vector Field, a special space warp, which, when applied to an irregularly shaped object, allows delegates to move around the object without penetrating it. Used in combination, the Crowd-system tools described here can produce an endless variety of interesting, multi-character simulations. The Crowd topics in this manual provide detailed information about every aspect of crowd simulation. See also: ■ Crowd Animation on page 4761 ■ Crowd Animation User Interface on page 4810 4140 | Chapter 17 character studio Understanding character studio Workflow Biped, Physique, and the Crowd system work together within 3ds Max to provide a complete set of character animation tools. Although these components can be used in a variety of ways, it is helpful to approach character studio with a basic understanding of how a typical character animation is created. The following sections provide a brief summary of the basic workflow and related benefits to creating a character with Biped and Physique. You might not use all the following steps, but you’re likely to do them in the following order. Create Skin Geometry Create a basic skin shape for your character using any 3ds Max modeling tools and surface types. Be sure to place your character skin in a neutral pose with arms outstretched and legs spaced slightly apart. You might also want to add sufficient detail to your skin mesh or control points around joints to facilitate deformation during movement. NOTE Physique deformations are based on a volume, which means you can refine your geometry later with minimal impact to skin behavior. Thus, you can create your animation before building your model, if you like. Create a Biped Skeleton Biped automates the creation of bipedal character skeletons. It also lets you introduce significant changes to the skeleton structure and sizing at any point during your animation without adversely affecting character motion. As a result, you can animate your character without knowing if it is short or tall, skinny, or fat. It also means that if the director changes the character proportions, the animation still works. For more detail on posing a biped skeleton, see Biped on page 4147. Attach the Skin ■ Position the biped character within its modeled skin. Use Figure mode on page 4420 to scale bone lengths and to orient the skeleton correctly within the skin volume. Scale bone thickness as desired to achieve a good initial fit. Then save a figure file, so it’s easy to return to this pose. Understanding character studio Workflow | 4141 ■ Use Physique to attach the skin geometry automatically to the biped or a 3ds Max bones hierarchy. The attachment is typically made to the root node in the hierarchy: the pelvis object on the biped or the root node on a bones hierarchy, not the center of mass. The attached skin is deformed as the biped or bones hierarchy moves. ■ The links in the bones hierarchy are used to create a system of 3D envelopes that enclose nearby vertices. Envelopes typically overlap at the parent and child ends of links. Vertices within overlapping envelopes are blended to create smooth skin deformation over joints as the character moves. Adjust Skin Behavior Adjust Physique parameters and introduce skin behavior effects to achieve the desired characterization. ■ Change default envelope shapes by adding cross sections and control points to isolate a more specific volume of vertices for each bone. Use exclusion lists or per-vertex weighting to apply fine-tuning control over individual vertices. ■ Introduce bulge angles to change muscle shape based on the angle of a particular joint. Create tendons to simulate the motion of tendons under the skin, based on link movements. ■ Adjust link parameters to change skin twisting, sliding, and creasing as the biped moves. Sliding allows the skin to compress at the biceps and forearm as the elbow is bent. Twisting controls the amount of skin twisting across a joint intersection. ■ Create extra links using 3ds Max bones and dummy objects for added control. You can add links to the abdominal area to control compression, for example, or to create a link to animate the chest rising and falling as the character breathes. If a character has extra appendages,you can add 3ds Max bones to animate them. One common usage is to add a bone to animate the jaw. For further detail, see Physique on page 4603. Animate the Biped Skeleton Once you’ve attached the skin to a biped structure, you can animate the biped freely and see the skin behavior update automatically, based on the current pose. 4142 | Chapter 17 character studio TIP Physique skin deformation can slow down playback of your Biped animation. To improve performance, you can hide the skin object temporarily or reduce its resolution in the modifier stack. You can also choose to develop Biped animations in a separate scene entirely, and apply them to your final skinned character when you are satisfied with your final motion. A biped on page 4147 character is essentially an integrated hierarchy of bones that you can position freely using keyframes, IK goals, and footsteps. You can position a biped character using all the rotation and transformation tools found in 3ds Max. Many of the 3ds Max coordinate systems can be used to position the biped. Local coordinates are useful to move a limb along its axis (the local X axis is always the axis along the biped limb); world coordinates are handy when there is any confusion regarding which way is up. You can use world coordinates as a home base. In 3ds Max, the world Z axis is always up. NOTE Rotations always occur about the local axis. Use Freeform Techniques Biped provides a variety of methods for creating character motion easily. You can use a purely traditional approach by manually creating keyframes in freeform mode for different poses, letting the computer interpolate between joint positions and IK goals. Use a Footstep-Driven Technique You can also choose a partially assisted approach by using footsteps and Biped dynamics to help you create a default walk, run, or jump cycle. You can then adjust the biped keyframes and footsteps individually. When using footsteps, biped dynamics on page 7923 helps you by simulating gravity and balance. ■ Gravity can help in a jumping motion to accelerate a character during the falling period and to bend the legs naturally on landing. ■ Balance enables retaining the character balance by adjusting its position when the spine is rotated and keyframed. ■ Dynamics can be turned off on a per-key basis or for the entire animation. The animator can override center of mass keyframes created using Dynamics calculation at any time. Simply set the dynamic properties of these keys Understanding character studio Workflow | 4143 or choose Spline Dynamics on page 8135 for keys generated by newly created footsteps. Convert Between Animation Types Once you are satisfied with a particular footstep animation and its corresponding dynamic behavior, you can convert it on page 4231 to a freeform animation consisting of a simple combination of keyframes and IK goals. This intelligent conversion gives you control of animation behavior at every frame, for every joint of the character. Use Layers to Apply Global Changes Animation layers on page 7909 offer you a powerful tool for introducing global changes to an existing character animation. For example, you can convert an upright running motion into a crouched run by adding a layer on top of an existing run motion. The layer would contain a single keyframe with the biped's spine rotated forward. You can stack up layered changes, allowing you to refine your motion composition and eventually collapse your layers into a standard non-layered keyframe animation. Use In Place Mode to Control the View In Place Mode on page 4318 is a tool that lets you keep your biped in view during animation playback. It offers a convenient way of adjusting and adding keyframes to a character without constantly changing your view to follow the character motion. Import Motion-Capture Files Motion-capture files can be imported from the BVH or CSM formats, edited, and saved as BIP files. You can import these files with or without footsteps and dynamics and combine them in Motion Flow mode with other animations. You can use the supplied motion-capture samples as is or adjust them to suit your needs using the collection of animation tools in Biped. The ability to import motion-capture marker files directly into character studio using the CSM file eliminates much of the cost of post-processing optical motion capture data. You can import motion-capture files with an additional prop bone, to define the motion of an object such as a sword or club. You can also import HTR/HTR2 motion-capture files on page 7257, as well as TRC files on page 7259. 4144 | Chapter 17 character studio Motion-capture files can be imported with key reduction, making for more manageable tracks for subsequent editing. Use Track View for Keyframe Editing Track View on page 4461 allows you to edit keys and footsteps relative to the animation time line. Footstep editing in Track View - Dope Sheet allows you to move footsteps in time. If you need a character to jump higher between footsteps, move the landing footsteps further down in time. Dynamics automatically compensate by making the character jump higher to keep it airborne longer. You can also specify a freeform period in a footstep animation, using Track View - Dope Sheet. This allows you to take advantage of footsteps and dynamics for part of an animation, then switch to manual keyframing during the freeform period. This approach can be useful in animations where there is a mix of animation where the feet are on the ground and then off. Examples of this type of animation include running and diving, or walking and then sitting down. Keyframe adjustment tools allow the following: ■ Find the next or previous key for the selected biped body part. ■ Use the Time spinner to slide a key back and forth in time. ■ Change Tension, Continuity, and Bias for a key. ■ Display trajectories. You can place arms and legs of a character into the coordinate space on page 7943 of another object or the world to simulate interaction with fixed or moving objects. In Freeform mode, for example, putting the legs into world space on page 8175 prevents them from sliding or moving when keyframing the center of mass of the character. Putting a hand in the coordinate space of a ball allows the hand to move wherever the ball moves. Many tools in 3ds Max can be leveraged with character studio. For example, you can use the Select and Link tool to attach objects to the biped. If you want a character to pick up and carry an object and then put it down, you can use the Link controller to animate the duration of the attachment. 3ds Max bones can be used to animate character subassemblies, like pistons, and to create extra links for Physique. Understanding character studio Workflow | 4145 Use the Motion Mixer to Mix Animations You can use the Motion mixer on page 3699 to combine motions on a biped. For example, you could combine a walking motion with a cheering motion, and cause the biped to walk while cheering. Use Motion Flow to Combine Animations After you have created and modified various animation sequences, and stored them in biped motion files (BIP format), you can use Motion Flow mode on page 4545 to combine various motion files into longer animations that can be quickly previewed and edited. Motion Flow mode automatically places the animations end-to-end, allowing you to mix and match both freeform and footstep-driven motion files. Transitions between successive motions are automatically created for you, to provide a first-pass blending between overlapping frames of animation. The Motion Flow transitions use velocity interpolation on page 8164 to create seamless transitions between clips. You can use the Transition Editor on page 4558 to modify a variety of blending parameters, including transition start frame, length, and angle between clips. Refining Your Character Great character animation is the result of many refinements that tune the overall personality of your character. You will find the need to refine progressively both the skinning behavior and the animation timing of your character. Biped and Physique make this iteration process straightforward by using the 3ds Max modifier stack and undo methods. In addition, the ability of Biped to map motions between characters makes it easy to interchange great animations with existing characters, and tune their behaviors to achieve true integration of motion with character motivation and personality. Use Crowds to Animate Groups of Characters Once you've created animation sequences for characters or other models (such as a bird flapping its wings), you can replicate the models or characters and apply the motions to these groups using the Crowd system on page 4761. You can also combine them with a wide range of supplied behaviors to create lifelike activities in crowds, such as people streaming through a doorway, street traffic, or birds and fish flocking and avoiding obstacles. You can use Motion Flow mode to create motion clip networks. These allow characters to perform animation sequences appropriate to their current movement and 4146 | Chapter 17 character studio transition smoothly between sequences. And you can use cognitive controllers in Crowd to transition between behaviors based on a variety of criteria. For more on crowd behaviors, see Creating a Crowd System on page 4762. Biped To work most efficiently with bipeds, it is important to follow the general workflow described in this topic. Create Skin Geometry Before you create a skeleton for a character, you should already have a character skin to put the skeleton into. Create a basic skin shape for your character using any of the 3ds Max modeling tools and surface types. Be sure to place your character's skin in a neutral pose with arms outstretched and legs spaced slightly apart. You may also want to add sufficient detail to your skin's mesh or control points around joints to facilitate deformation during movement. Character mesh in a neutral pose TIP Before adding a biped skeleton, freeze your character mesh. When the mesh is frozen, you can still see it, but you can't select or alter it, reducing the chance for error or frustration. Biped | 4147 Create a Biped Skeleton Once you have a character mesh, you can create a biped skeleton to fit inside. Use Figure mode on page 4420 to set up your biped. Before you position the skeleton, use controls on the Structure rollout on page 4424 to alter the biped to match your mesh, setting the number of links for the spine, arms, neck, or fingers, or adding props to represent weapons or tools. TIP You can use ponytails to create animated jaws, ears, or horns. NOTE Certain biped body parts, including fingers, tails, ponytails, props, and clavicles, can be repositioned in Figure mode to suit different characters. When you position the biped inside your mesh, start with the center of mass (COM), which is the parent of all objects in the biped hierarchy. The COM should be positioned in line with the hips of the mesh character. Scale the pelvis so that the legs fit properly in the mesh, and then use Move and Scale on the 3ds Max toolbar to position your biped skeleton. NOTE In addition to the standard move, rotate, and scale operations, you can also use modifiers to adjust the parts of the biped. NOTE Biped body parts cannot be removed, however unwanted parts can be hidden. If you delete a part the entire biped will be deleted. The following list includes some tips for positioning your skeleton: ■ Use the Page Up and Page Down keys to cycle through links. ■ Use Rubber Band mode on page 8109 to move and scale the arm and leg links on your skeleton simultaneously. ■ Use tools from the Bend Links rollout on page 4363, such as Bend Links Mode on page 7921 and Twist Links Mode on page 8159 to adjust tail, neck, spine, and ponytail links. ■ The head, toes, and fingertips should extend slightly beyond the mesh extents to fulfill the requirements of Physique. ■ Use the minimum number of fingers and toes. You need extra fingers or links only if you are planning on complex hand or foot animation. If your character is wearing gloves or shoes, then you probably only need one finger or toe, with one link. 4148 | Chapter 17 character studio ■ To create a biped with knees that bend backwards, rotate the biped calves or thighs of both legs 180 degrees about their local X-axis (along the length of the limb). When you exit Figure mode, the biped walks, runs, and jumps with reversed knees. ■ When working with a mesh in a symmetrical pose, pose one side of the skeleton, and use controls on the Copy/Paste rollout on page 4389 to paste the posture to the opposite side of the biped. Biped | 4149 When you are satisfied with your pose, check the alignment in all viewports to make sure that the skeleton is positioned correctly in the mesh. Once you have successfully positioned a skeleton inside your character mesh, you are ready to attach the mesh with Physique. For more on this workflow, see Understanding Physique on page 4132. 4150 | Chapter 17 character studio Creating a Biped A biped model is a two-legged figure: human or animal or imaginary. Each biped is an armature designed for animation, created as a linked hierarchy. The biped skeleton has special properties that make it instantly ready to animate. Like humans, bipeds are especially designed to walk upright, although you can use bipeds to create multi-legged creatures. The joints of the biped skeleton are limited to match those of the human body. The biped skeleton is also specially designed to animate with character studio footsteps, which help solve the common animation problem of locking the feet to the ground. The parent object of the biped hierarchy is the biped’s center of mass object, which is named Bip01 by default. Creating a Biped A button for creating a Biped appears in the Create panel under Systems. You create a biped by clicking this button and then dragging in the active viewport. You interactively define the height of the biped as you move the cursor. During biped creation, you can change any of the default settings that are used to define its basic structure. The default settings, for Arms, Neck Links, Spine Links, and so on, are for a human figure. Creating a Biped | 4151 If you turn on Most Recent .fig File, the biped you make will use the parameters stored in the last FIG (figure) file you’ve loaded. Changing Biped Parameters Like other 3ds Max objects, you can change biped parameters on the Create panel at creation time. However, to modify or animate a biped, you use parameters on the Motion panel. For more information on changing biped parameters, see Structure Rollout on page 4424. Creating a Biped Using AutoGrid The AutoGrid feature lets you create objects on the surface of other objects, rather than on the home grid. AutoGrid automatically creates a grid for construction. When you turn AutoGrid on, a tripod cursor is displayed in the viewport. As you move your mouse over the geometry in the scene, the tripod cursor rotates to match the orientation of the face it's touching. A grid is created at that spot and is used to create the biped. 4152 | Chapter 17 character studio By turning on AutoGrid in the Create Panel > Object Type rollout, biped creation will respect the AutoGrid, letting you build bipeds with their feet on top of geometry. Procedures To create a biped on a surface: 1 On the Create panel > Systems, click Biped. 2 Turn on AutoGrid. 3 Move your cursor over any geometry in the viewport. A Transform gizmo moves with your cursor to indicate the location of the AutoGrid. 4 Drag out a biped. The biped feet will be in contact with the geometry. Understanding Biped Anatomy The geometry of a biped is a linked hierarchy of objects that by default resemble those of a human. The parent or root object of the biped is its center of mass (COM) on page 7933. This object is displayed as a blue octahedron near the center of the biped's pelvis. Moving the COM positions the entire biped. Understanding Biped Anatomy | 4153 Center of mass object You can select the center of mass by choosing Bip01 with the Select From Scene dialog on page 228. You can also select the center of mass by clicking Body Horizontal, Body Vertical or Body Rotation on the Track Selection rollout on page 4348. Changing the Biped Hierarchy The biped hierarchy is a little different from a standard 3ds Max hierarchy in that you can’t delete any of the components of the skeleton. If you try to delete any part of the biped skeleton, you delete the entire hierarchy. If you want to create a partial biped, for example a biped with no head, simply hide the objects you don’t want to use. Repositioning Biped Body Parts You can reposition certain biped body parts in Figure mode to suit different characters. You can move entire arm assemblies by selecting the clavicles and moving them up or down. You can also reposition the fingers, tail and ponytails as you like. See Posing the Biped on page 4157. 4154 | Chapter 17 character studio Biped's structure also includes an option to add twist to any and all limbs. This feature uses a variable number of links to transfer twisting animation into the biped's associated mesh via Physique or Skin. Props The biped structure includes an option to add up to three props. Props appear next to the biped’s hands and body by default, but can be modified or animated throughout the scene like any 3ds Max object. Adding Extra Biped Body Parts To add extra legs, arms, or other body parts you need to create 3ds Max geometry for those parts, then link them to the biped hierarchy. You can use Snapshot to duplicate biped body parts to create these as well. In either case you will need to animate them with standard 3ds Max rotations, because biped IK will not be available on these extra parts. Changing Initial Biped Anatomy Use the body parameters to change initial biped anatomy. The Body parameters are in the Create Biped rollout that appears in the Create panel when you create a biped. NOTE You can change body parameters in the Create panel immediately only after creating a biped. Once you leave the Create panel, these settings are still available, but from the Structure rollout in the Motion panel. The body parameters in the Structure rollout are enabled when the biped is selected and Figure mode is active. See also: ■ Creating a Biped on page 4151 ■ Structure Rollout on page 4424 Naming the Biped If your scene is going to contain more than one biped, it's a good idea to give the biped a unique name. By default, the first biped in a scene is called Bip01. Changing Initial Biped Anatomy | 4155 Succeeding bipeds have the same name except that the two-digit number is replaced by another number in sequence: 02, 03, 04, and so on. Since the parent of the biped hierarchy is the biped’s center of mass object, that is also the object selected when you choose Bip01. You can link the biped center of mass to other objects or dummies for additional animation control. For more information on the biped’s hierarchy, see Understanding Biped Anatomy on page 4153. Procedures To change the biped name upon creation: ■ Immediately after creating the biped and before moving to another panel, enter the new name in the Root Name field in the Create Biped rollout. The center of mass is renamed and the entire biped hierarchy inherits the new name. To change the biped name after creation: 1 Select any part of the biped and go to the Motion panel. 2 In the Biped rollout, click the expander bar to display the Modes and Display groups. 3 Enter a new name in the Name field and press Enter. WARNING Do not use the usual Name And Color rollout to rename a biped. This changes only the name of the biped's root object (its center of mass) without updating the names of other biped parts in the hierarchy. To create a Named Selection for the biped center of mass: 1 Select the biped center of mass (diamond shaped object in the pelvis) in the viewports. 2 Type a name in the Named Selection Sets field on the 3ds Max toolbar. 3 Press Enter. You can now choose this selection if the biped is hidden and you want to view the biped and edit biped parameters on the Motion panel. 4156 | Chapter 17 character studio TIP Give the center of mass selection the same name as your character in the Named Selection Sets field, "John," for example. With multiple characters, you can quickly select the character you want to edit by choosing the character's name in the Named Selection Sets dropdown. Posing the Biped After creating the default biped, you will often need to change the proportions of the skeleton to fit your model. Use Figure mode to change the biped structure in its rest pose. Activating Figure mode returns the biped to its original location and orientation. With the biped in Figure mode, you can use the transform tools to change the proportions and positions of body parts. For instance, you might apply a non-uniform scale to shorten the legs or lengthen the arms. Posing the Biped | 4157 4158 | Chapter 17 character studio Biped proportioned to fit inside of Dr. X character geometry You might rotate the spine objects to create the figure for a hunchback or a dinosaur. Use the move tool to change the position of the thumb or the arms. You can even apply modifiers to the biped skeleton pieces, such as using an FFD on the biped head to adjust its shape. Posing the Biped | 4159 FFD Modifier used to shape spine and head Once you have a default biped, you’ll need to match its proportions to the character’s geometry. It is quite typical to find the character’s geometry with the arms outstretched. The common workflow is to freeze the character and then in Figure mode, reposition the biped, so the center of mass is at the base of the torso. The spine objects, legs, and feet are scaled and rotated to fit within the confines of the mesh, then the arms and hands, neck and head. The tail and ponytail objects can be used for animating wings, fins, jaws, ears, horns, or hair. 4160 | Chapter 17 character studio Once your biped proportions are correct, you can save them in a FIG file. Because Biped saves the character in the FIG file and animation in the BIP file, you can change the character’s proportions without affecting the animation. Changing the Biped Structure Bipeds don't have to appear human. You can change their elements and form to create other kinds of characters. Although you can change some initial aspects of the biped's structure in the Create panel, you use Figure mode to change all aspects of the biped's structure after its creation. Bipeds don’t have to be human ... Posing the Biped | 4161 or even walk on two legs. Any number of bipeds can be in Figure mode at the same time, though you can only work on one biped at a time. When you select a biped, the Figure mode button indicates whether or not the biped is in Figure mode. In Figure mode you can: ■ Specify the number of links in each part of the biped. ■ Define the position of the base of the fingers, toes, clavicles, spine, tail, ponytails, and props relative to the body. ■ Define the position of the feet relative to the ankles. ■ Define the default pose of the biped before animation is applied to it, for example define a hunchback. ■ Scale the biped and its various parts. ■ Simultaneously scale and position biped parts using Rubber Band mode on page 8109. See Rubber-Banding Arms and Legs on page 4168. ■ Create natural links for Physique using Triangle Pelvis. ■ Use forearm links to transfer twisting animation to the biped's associated mesh. For more information on adjusting the biped’s proportions, see Scaling Links on page 4166. 4162 | Chapter 17 character studio Working with Both Arms or Legs As you pose your biped, there are two different methods for posing both arms or legs symmetrically. The first method involves using Symmetrical on the Track Selection rollout on page 4348 to select both limbs simultaneously. With both limbs selected, you can rotate and scale the objects, and they will maintain a mirror-image relationship. You can also move the limbs, however they will not retain a symmetrical pose (with respect to the body) if you move them laterally. The second method involves posing only one side of the biped, then copying the posture to the corresponding limbs on the other side. NOTE You can scale biped limbs only in Figure mode on page 4420. See also: ■ Figure Mode on page 4420 ■ Biped Rollout on page 4331 ■ Creating a Skin on page 4605 Procedures To work in Figure mode: 1 Select the biped you want to pose, and then go to the Motion panel. The Motion panel doesn't show Biped controls unless the biped is selected. 2 On the Biped rollout, click Figure mode. The button turns blue to indicate a special edit mode. The biped's pose and location change to the one last specified when the biped was in Figure mode. If the biped was just created and, therefore, was never in Figure mode before, it changes to the pose and location it had when you created it. When you turn off Figure mode, the biped returns to its animated pose and location in the scene. NOTE Biped disables all keyframe editing tools when Figure mode is active. Adjustments made in Figure mode are not animatable. Posing the Biped | 4163 To fit biped legs to the skin: 1 Turn on Figure mode on the Biped rollout. 2 Use the Scale Transform gizmo to scale the Z-axis of the biped’s pelvis so the biped’s leg links are centered in each leg of the skin. 3 Select the biped’s two thigh links (LLeg and RLeg) and scale the X-axis of the thigh links so they end at the knees of the skin. 4 Select the biped’s two lower leg links (LLeg1 and RLeg1), and scale the X-axis of the lower leg links so the biped’s ankles are level with the ankles of the skin. TIP When the two upper legs are selected, you can press Page Down to select the lower legs. 5 In a left or right viewport, scale the biped’s feet so their profile roughly matches the profile of the feet of the skin. 6 Scale toes or move them along their local X-axis so each toe is aligned with the corresponding toe in the skin. The ends of the final toe links should go through the tips of the skin’s toes. You might have to change the number of biped toes to match the number of skin toes. A biped must have at least one toe on each foot. If the skin has no toes or the character is wearing footgear, the position and number of biped toes doesn’t matter, but they should still extend beyond the skin. TIP During the fitting process, try Freezing the skin object to prevent accidental selection. To fit the spine to the skin torso: 1 On the Biped rollout, turn on Figure mode. 2 Select the lowest link of the spine (Bip01 Spine). Choose the Move transform, constrain movement to the spine link’s local X-axis, and move it vertically to the waist of the skin, just below the navel. 4164 | Chapter 17 character studio 3 Scale the other spine links in their local X-axis so they fit the upper part of the skin’s torso. The neck link should begin where the skin’s neck begins. If the torso of the skin curves, you should also rotate spine links about their local Z-axes, to align the spine with the longitudinal center of the torso. 4 Scale the biped’s neck in its local X-axis to match the length of the neck of the skin. The top of the last neck link (also the base of the head link) should be where you want the head to pivot. This is usually just below the ears, centered with the spine. Leave the head in its default position relative to the spine and neck links. To fit both arms using copy/paste: 1 On the Biped rollout turn on Figure mode. 2 Rotate one upper arm (R Arm1 or L Arm1) in its local Y-axis to center its link in the upper arm of the skin. 3 Scale the upper arm so its link ends at the elbow of the skin. 4 Scale the lower arm (RArm2 or L Arm2) so its link ends at the wrist of the skin. If the skin’s arms are bent, rotate the lower arm to center its link as well. 5 Scale fingers, or move them along their local X-axis so each finger is aligned with the corresponding finger of the skin. The ends of the final finger links should go through the tips of the skin’s fingers. You might have to change the number of biped fingers to match the number of skin fingers. 6 When the arm is completely fitted to the skin, select all of it and on the Copy/Paste rollout, click Copy Posture. 7 On the Copy/Paste rollout, click Paste Posture Opposite to pose the opposite arm. To pose both arms simultaneously: 1 On the Motion Panel > Biped rollout, turn on Figure mode. Posing the Biped | 4165 2 Select the biped's left or right hand. 3 On the Track Selection rollout, click Symmetrical. The opposite hand is also selected. 4 Move, rotate, and scale the hands until you have the position and size you want. Use PAGE UP and PAGE DOWN to move the different parts of the arm. NOTE If you move limbs laterally, they will both move in the same direction, and will no longer be symmetrical about the body. To create a symmetrical pose by copying one side of the biped to the other: 1 On the Motion Panel > Biped rollout, turn on Figure mode. 2 Move, rotate, and scale the left arm and leg of the biped until you have the position and size you need. 3 Select all of the bones in the left arm and leg. 4 On the Copy/Paste Rollout, create a collection, then turn on Posture and click Copy Posture. 5 On the Copy/Paste Rollout, click Paste Posture Opposite. The right arm and leg assume the position and scale of their corresponding bones on the left. Scaling Links Use standard 3ds Max scale transforms to adjust a biped's posture by scaling the size of its links. You must be in Figure mode to scale the biped links. If you try to scale a biped without going into Figure mode, nothing happens. As with rotation, when you scale biped links, Biped constrains the transform to use the link's Local coordinate system. The position of other biped links can change so they remain attached to the resized link. If you shorten the thigh, the calf and ankle will maintain their size, but change their position. 4166 | Chapter 17 character studio To scale a link, select any scale icon from the Scale flyout on the Main Toolbar. When you select a body part to scale, use the Transform gizmo to scale along one axis at a time. Use Scale and the Transform gizmo to scale links. If your character is symmetrical, select body parts in pairs and scale them at the same time. Scaling Links | 4167 Select one body part and then click Symmetrical in the Track Selection rollout. Now both are selected. You can also scale one and then use Copy Posture and Paste Posture Opposite from the Copy/Paste rollout. This approach ensures symmetry in your character. TIP Use the Page Up and Page Down keys to move through your hierarchy as you work. For example, after you scale the thighs, press Page Down to select the calves. Scaling the biped limbs to fit snugly to the mesh will help when Physique is used to associate the mesh with the biped. The Bounding Box option uses biped limb dimensions to size the envelopes. This saves time when you adjust envelopes in Physique. See also: ■ Rubber-Banding Arms and Legs on page 4168 Rubber-Banding Arms and Legs Rubber Band mode provides a way to proportion the arm and leg links simultaneously. Rubber Band mode works with the Move transform rather than the Scale transform. When you move an arm or leg with Rubber Band mode turned on, both the link and its child are scaled in a single step. Rubber-banding the upper arm rescales the upper and lower arm objects and moves the elbow link without affecting the position of the shoulder or the wrist. If you’ve spent a lot of time getting the fingers in the right place, you can reposition the elbow by rubber-banding, without affecting the hands. 4168 | Chapter 17 character studio Using Rubber Band to resize an arm without changing the hand position Rubber-Banding Arms and Legs | 4169 Procedures To rubber band an arm or leg link: 1 On the Motion panel > Biped rollout, turn on Figure mode. 2 Select the arm or leg link you want to rubber band. 3 Turn on the Move transform. 4 On the Biped rollout > Modes group, turn on Rubber Band mode. NOTE This button is unavailable if you are not in Figure mode, or if a part of the biped other than the upper or lower arm or leg, or the center of mass is selected. NOTE The Modes group is hidden by default. To display it, click the expansion bar on the Biped rollout. 5 Move the selected arm or leg link. As you move the arm or leg link, the hands and feet are stationary as the knees or elbows are positioned. To adjust the biped center of mass with Rubber Band: 1 On the Motion panel > Biped rollout, turn on Figure mode. 2 Select the center of mass object (diamond shape) on the biped. 3 Turn on the Move transform. 4 On the Biped rollout > Modes group, turn on Rubber Band mode. This button is unavailable if you are not in Figure mode or if a part of the biped other than the upper or lower arm or leg or if the center of mass is selected. 5 Move the center of mass. While Rubber Band mode is active, the center of mass moves independently from the rest of the biped, which remains in the same position. 4170 | Chapter 17 character studio TIP Another way to adjust the biped’s balance is to change the value of Balance Factor. Balance Factor displays on the Key Info rollout when a Body Horizontal key is current. Balance Factor can be keyframed. Biped Display Options For greater speed in displaying bipeds, or to make your viewports less cluttered while you edit your scene, Biped lets you turn off the display of some biped elements. These display controls are found in the Motion panel > Biped rollout on page 4331 > Display group on page 4336, rather than on the Display panel. These controls allow you to quickly turn on and off the biped bones, objects and footsteps, twist links and leg states, as well as footstep numbers and trajectories. There is also a Display Preferences dialog accessed from here that lets you control which bipeds are visible during Biped Playback. NOTE The Display group is hidden by default. To display the group, click the expansion bar on the Biped rollout. Procedures To change biped display: 1 Go to the Motion panel. 2 On the Biped rollout > Display group, click a button corresponding to the display choices you want. NOTE The Display group is hidden by default. To display the group, click the Modes And Display expansion bar on the Biped rollout. Deleting a Biped You can quickly and easily delete an entire biped from a scene. Biped Display Options | 4171 Procedures To delete a biped: 1 Use any selection tool to select the entire biped or any part of the biped. 2 Press Del or Delete on your keyboard. Linking Character Body Parts to the Biped With the Physique component, you can use Biped to animate a deformable skin, usually a mesh object. However, some animations don't require deformation. For example, a knight clad entirely in rigid metal armor doesn't need to deform as skin does. Also, figures seen from a distance don't require the same degree of realism as figures seen close up. 4172 | Chapter 17 character studio Jointed character linked with biped skeleton Characters available commercially often come in two varieties: jointless and jointed. Jointless characters have a seamless mesh at limb joints. Jointless characters should be attached to the biped using Physique. A jointed character has separate objects with ball joint geometry for the limbs, and lends itself to the linking technique described in this topic. Linking objects and other geometry to the biped can also be used in cases such as the following: ■ Link a weapon or a flower to the biped hand. ■ Link eyeballs or teeth to the biped head. ■ Link extra 3ds Max bones or splines to the biped to create extra envelopes when Physique is applied. Linking Character Body Parts to the Biped | 4173 ■ Link 3ds Max bones to the biped to automate mechanical assemblies when the biped is keyframed. ■ Link particle emitters to the biped hands or feet to create smoke or dust. NOTE If you've linked particle emitters or 3ds Max bones (with the IK controller) to the biped, the Animate button must be on when you reposition the biped. See also: Biped Rollout on page 4331 ■ Procedures To link a mechanical character to the biped (without Physique): With mechanical or jointed characters, you can simply link objects to the biped without using the Physique modifier. 1 Load or create a mechanical or jointed model. Body parts in this model should be separate 3ds Max objects. 2 Create a biped. 3 On the Biped rollout turn on Figure mode, then position and fit the biped to your mesh objects. 4 Go through the mesh objects and use Select and Link on the 3ds Max toolbar to link each object to its corresponding part on the biped. All of keyframe animation applied to the biped will animate the model. TIP If you plan to use 3ds Max linking and Physique together, link the body parts to the biped after applying Physique. In this way, Physique will not create superfluous links from the biped to the mechanical body parts when it is applied. Saving and Loading FIG Files Select a biped. > Motion panel > Biped rollout > Load File (in Figure Mode) 4174 | Chapter 17 character studio Select a biped. > Motion panel > Biped rollout > Save File (in Figure Mode) Figure files save all information about a biped's anatomy: links, link positions, twist links, and Figure mode posture, and the scale of geometric elements. Figure (FIG) files have a .fig file name extension. Figure files do not contain the actual biped skeleton, or any animation. They are used strictly for setting or saving a biped's pose in Figure mode. Figure files are useful for quickly setting poses for similar or identical characters. Clicking Load File brings the Open dialog, from which you can pick a FIG file and choose from the following twist poses on page 4357 options: ■ Load Twist Poses: Loads both the twist links on page 4424 and twist poses data. (Default=on). ■ Don't Load Twist Poses: Loads only the twist links data. NOTE The pose presets are always available. ■ Load Twist Poses Only: Loads only the twist poses data without the twist links. NOTE The Twist and Bias values are not used without twist links. Refer to the Twist Poses rollout on page 4357 for details. See also: ■ Figure Mode on page 4420 Procedures To save a biped's figure information to a file: 1 Select the biped to save. Saving and Loading FIG Files | 4175 2 3 On the Motion panel, activate Figure mode. On the Motion panel > Biped rollout, click Save File. 4 In the file dialog, enter a name for the figure file, and then click OK. TIP While you work on creating a biped pose, save your work frequently in a figure file. To load a biped figure: 1 Select the biped to replace with a saved figure. 2 3 Activate Figure mode in the Motion panel. On the Motion panel > Biped rollout, click Load File. 4 In the file dialog, choose the figure file to load. 5 Choose one of the three loading options, depending on whether or not you want to load twist poses, or to load twist poses only. 6 Click OK. WARNING Loading a figure file replaces the selected biped's pose and base parameters. If you have created a new pose or a new biped structure, save it in a figure file before you load a different biped figure. Footstep Animation Footstep animation is a central compositional tool in Biped. Footsteps are biped sub-objects, similar to gizmos on page 7996 in 3ds Max. In viewports, footsteps look like the diagrams often used to illustrate ballroom dancing. Each footstep's position and orientation in the scene controls where the biped steps. 4176 | Chapter 17 character studio Footsteps The language of footsteps allows you to more directly describe and compose the complex time and space relationships that are found in different forms of locomotion. While the placement of footsteps appears in viewports, the timing appears in Track View - Dope Sheet Editor. There, each footstep appears as a block of time, with each block representing the time when the foot is planted in a footstep. Footstep Animation | 4177 Footstep keys in Track View Footsteps are appropriate for animation where the biped is on the ground or uses the ground a great deal, such as walking, standing, jumping, running, dancing, and athletic motion. For movement that does not require the biped to interact with the ground, such as swimming or flying, freeform animation on page 4232 is more appropriate. Footsteps are used to lock the foot to the ground. You can create the same result in freeform animation by simply creating planted keys on page 4369 for the feet. Workflow In general, you compose a footstep pattern with these actions: 1 2 3 Select the biped and access the Motion panel. Click Biped rollout > Footstep Mode. In the Footstep Creation rollout, click Walk, Run or Jump to choose the gait (a method or pattern of moving on foot). The gait sets the initial timing for footsteps you create. 4178 | Chapter 17 character studio When you first create them, footsteps are inactive. They exist in the scene but don't yet control the biped's motion. 4 Create the footstep pattern in viewports. You can create footsteps in a few different ways, each available in the Footstep Creation rollout: ■ Automatically create a number of footsteps with Create Multiple Footsteps, or ■ Individually place each footstep with Create Footsteps (append) or Create Footsteps (at current frame). Use Auto Grid to create footsteps on a surface of a mesh. 5 Edit footstep placement by moving or rotating footstep icons in viewports. 6 Edit footstep timing in the Track View - Dope Sheet mode. 7 Activate the footsteps to create keys for the biped. The biped will now move through the footsteps using the placement and timing you set up. 8 Play the motion to test it out, looking only at the leg and foot motion and disregarding the upper body for now. If the footstep motion isn't right, deactivate the footsteps, make changes to footstep placement or timing, reactivate the footsteps and play it again. Do this until the foot and leg motions are correct. When footsteps are activated, keys are created for each of the tracks of the figure: the head, spine, pelvis, arms, legs, and, if appropriate, tail and ponytails. These keys form an initial sketch of your animation. The default keys, when interpolated on page 8016, form the basic, minimal motion required to animate the figure according to the footstep pattern. Most likely you will want to adjust or replace these keys. 9 Edit the animation of the upper body using ordinary 3ds Max animation methods: Turn on Auto Key and move or rotate the biped parts. You can also use the character studio Set Key tools on the Key Info rollout on page 4367. 10 Play the animation again and make any corrections to the upper body motion. Footstep Method In the viewports, footsteps represent support periods in space for the biped feet. You can move and rotate footsteps in viewports. In Track View, each Footstep Animation | 4179 footstep appears as a block that represents a support period in time for each of the biped's feet. You can move footsteps in time in Track View. The footstep position and orientation in the viewport controls where the biped will step. There are three ways to create footsteps for the biped: ■ Place footsteps individually. ■ Use the footstep tools to automatically create a walking, running or jumping animation. ■ Import motion-capture data to footsteps. A key advantage of the footstep method is the natural adaptation of the biped that occurs when the footsteps are edited in time and space. Editing footsteps in the viewports allows you to reposition all of the footsteps to move the entire animation. In Footstep mode, stride, length, width, and direction can be changed quickly for an entire animation and the biped automatically adapts. Using the Footsteps Show/Hide button on the Display rollout, all footsteps can become visible. Move the footsteps in the viewports to position them for proper ground collision with the terrain object. For example, if the biped toes are rotated for the Lift key at the last frame of a footstep (to create more toe curl as the character walks) the leg automatically repositions itself to maintain foot contact with the ground (footstep). These adaptations speed up the process of creating and editing animation for the biped. If necessary, the animator can prevent biped adaptation by using the Adapt Locks parameters on page 7900 on the Dynamics & Adaptation rollout on page 4417. Foot States Within a footstep animation, there can be four foot states on page 7986: move, touch, plant, and lift. These correspond to the state of the biped feet in relationship to the footsteps. Use the foot state displays in the Biped rollout to determine the state of the biped feet when you are editing the biped foot or leg keys. The foot states can be displayed in the viewport by turning on Leg states in the Display group of the expanded Biped rollout. The Foot states are represented as colored keys in Track View - Dope Sheet. 4180 | Chapter 17 character studio Footstep Mode When Footstep mode is active, footstep creation controls appear in the Motion panel. Footstep controls in Motion panel Footstep Animation | 4181 Footsteps displayed in Track View - Dope sheet editor Using the default keyframes as a starting point, you can interactively insert, replace, or delete keyframes in order to refine the motion of the biped and fill in the details of movement that are unique to your animation. NOTE By default, when Biped Dynamics on page 7923 is turned on in the Dynamics and Adaptation rollout, gravity (Dynamics Blend) and ballistic tension calculate the trajectory of the center of mass for all newly created keys in a footstep animation containing a running or jumping motion. If Spline Dynamics on page 8135 is turned on in the Dynamics and Adaptation rollout before footsteps are created and activated, the center of mass uses spline dynamics to calculate vertical motion, which does not take gravity into consideration. Using spline dynamics, you must set keys for the top of a jumping motion or the dip when the character lands; this trajectory is automatically calculated with biped dynamics. Footstep Editing At any point in the design process, you can choose to interactively edit your footstep's spatial pattern in the scene or the timing of footsteps in Track View. The keyframes adapt to each edit: changes to footstep location retain the details of all your keyframe positions. Keyframe timing remains synchronized 4182 | Chapter 17 character studio with changes to footstep timing, except in cases where default leg keys must be regenerated to account for timing edits that alter the basic gait pattern, such as creating a hop in the middle of a walk. Use Footstep mode to create and edit footsteps. Use Keyframe mode (Footstep mode off ) to create and edit your character's keys. You can always edit the timing of both footsteps and keyframes in Track View. While the biped's feet are airborne, you can animate its legs as you do its upper body. Biped does not create keys based on physics while the biped is off the ground, so animating the legs might be necessary to make long leaps realistic. Alternatively, you might want to make the biped appear to be floating in midair, or underwater, or have it ride a bicycle. See Freeform Editing Between Footsteps on page 4227. You can make the biped interact with other objects in the scene: throwing or kicking a ball, opening a door, and so on. You do this by attaching a biped limb to an object in the scene. An animatable IK Blend parameter lets you store the anchored position and combine inverse with forward kinematics. After you've set keys, be sure to remove the anchors. TIP You can often get good results by loading an existing biped motion and then varying it. You'll find a set of sample motion files on the program disc in the \Samples\Motions directory. NOTE On the time slider or in Track View, you can move one Biped key past another. See Moving Keys on page 4466. See also: ■ Creating Footsteps on page 4183 ■ Editing Footstep Motion on page 4198 Creating Footsteps The topics in this section deal with the creation of footsteps for animating bipeds. They are: Planning for Footsteps on page 4184 Choosing a Gait on page 4185 Footstep Animation | 4183 Creating Footsteps Automatically on page 4187 Creating Footsteps Manually on page 4188 Activating Footsteps on page 4192 Deactivating Footsteps on page 4193 Understanding Footstep and Body Keys on page 4196 Planning for Footsteps Spend a little time planning your footstep animation with pencil and paper first. This will make the task of setting up footsteps much easier. Answering the questions below can help orient your planning. Planning for Footstep Placement ■ How are the footsteps going to be positioned in viewports? Draw a sketch of their positions. ■ What is the sequence of the footsteps? This will determine the footstep numbers. Footsteps always begin with the number 0. Number them in your diagram if you can. 4184 | Chapter 17 character studio ■ Is each footstep a left or right footstep? Planning for Footstep Timing ■ What is the support relationship between left and right footsteps? In other words, does the timing of the footsteps resemble a walk, run or jump pattern? A character doing a foxtrot or waltz, for example, is actually moving with “walk” timing – the character shifts weight from one foot to the other. ■ How long, in frames, should each footstep be? How long are the biped's airborne periods? ■ Are there any periods of time where the biped is standing on two feet for a while? Choosing a Gait A gait is a method or pattern of moving on foot. When you create new footsteps, the timing is determined by the gait you have chosen (Walk, Run, or Jump) and the parameters for that gait. You must choose the gait before parameters can be set. Choose the gait that most closely approximates the type of movement you want to create. You can alter or adjust the gait after footsteps have been created. Walk Gait In a walk, at least one foot is always in contact with the ground. A period where one or both feet are in contact with the ground is called a support period. If both feet are on the ground, this is known as a double support period. Turn on Walk before creating footsteps to create this type of gait. The gait parameters of a walk are: Walk Footstep The number of frames that each footstep remains on the ground. Double Support The number of frames in a double support period, that is, when both feet are on the ground. Footstep Animation | 4185 Run Gait With running, both feet are never on the ground at the same time. Either one foot is on the ground during the support period, or the body is airborne. While it is airborne, the body moves forward horizontally at a constant speed. In general, the longer the body is in the air, the higher it must fly after lifting off from the supporting foot to stay airborne for the specified period of time. Turn on Run before creating footsteps to create this type of gait. The gait parameters of a run are: Run Footstep The number of frames that each footstep remains on the ground. Airborne The number of frames that the biped is airborne, that is, when neither foot is on the ground. Jump Gait Jumping is a special case of running. Both feet are in contact with the ground at the same time, or airborne at the same time. As with running, forward motion is horizontal and constant, but vertical motion depends on the length of the jump. Turn on Jump before creating footsteps to create this type of gait. The gait parameters of a jump are: Feet Down The number of frames in which both feet are on the ground. Airborne The number of frames that the biped is airborne, that is, when neither foot is on the ground. Changing these values changes the biped's jump behavior. Setting Gait Parameters Gait parameters can be found in two areas: ■ If creating footsteps automatically with Create Multiple Footsteps, the gait parameters appear on the Create Multiple Footsteps dialog on page 4441. 4186 | Chapter 17 character studio If creating footsteps manually with Create Footsteps (append) or Create Footsteps (at current frame), the gait parameters on the Footstep Creation rollout on page 4434 are used. ■ Changing these values changes the timing for any footsteps placed after the values are set. Changing the Gait After Creating Footsteps After creating the footsteps, you can change the gait by editing footstep timing in Track View's Dope Sheet mode. See Editing Footstep Timing on page 4200. Gait parameters are only one way to define the timing and nature of the biped's gait. For a more complete description of gaits and other parameters that alter the nature of the biped's motion, see Adjusting Vertical Motion on page 4217. Creating Footsteps Automatically Automatic footstep creation is the easiest way to create a walk or run cycle. You can use this method to make the biped climb or descend a flight of stairs, hop repeatedly, and do a variety of motions. Automatic footstep creation places the footsteps for you, generating perfectly timed and spaced footsteps. See also: ■ Creating Footsteps Manually on page 4188 ■ Adjusting Vertical Motion on page 4217 Procedures To create footsteps automatically: 1 Select any part of the biped. 2 On the Motion panel > Biped rollout, click Footstep Mode. You are now in Footstep mode, where you can create, activate, or edit footsteps. Footstep Animation | 4187 3 In the Footstep Creation rollout, choose the gait you want to use for the footsteps: Walk, Run, or Jump. The selected gait determines the timing pattern of the automatically placed footsteps. 4 In the Footstep Creation rollout, click Create Multiple Footsteps. The Create Multiple Footsteps dialog on page 4441 appears. This dialog determines various aspects of the footstep sequence, such as how far each footstep will be placed from the previous footstep. 5 Set the multiple footstep parameters, and then click OK. This places footstep icons in the scene. To make the biped move through the footsteps, you must create keys for the footsteps. 6 Click Create Keys For Inactive Footsteps on the Footstep Operations rollout. Keys have now been created for the footsteps. 7 Click Play Animation to see the animation. Creating Footsteps Manually Creating footsteps manually is useful for complicated footwork, such as dancing. Manual footstep creation allows you to place each new footstep carefully where you want it. Multiple footsteps can also be generated automatically. To quickly generate a simple walking, running, or jumping footstep patterns, see Creating Footsteps Automatically on page 4187. There are two ways to create footsteps manually: ■ You can start creating footsteps at the current frame with Create Footsteps (at current frame) in the Footstep Creation rollout on page 4434. Any footsteps added subsequently will extend in time from the first footstep. If you attempt to create a footstep at the same time as an existing 4188 | Chapter 17 character studio footstep on the same side, an alert appears and you are not allowed to create the footstep. ■ You can also append footsteps onto the end of the existing footsteps with Create Footsteps (append) in the Footstep Creation rollout on page 4434. Then Biped computes the frame at which the first footstep should be created based on the chosen gait and the existing footsteps. This option is disabled if there are no existing footsteps. As with all footsteps, any footsteps you create with these methods are inactive upon creation. You must activate them with Create Keys for Inactive Footsteps in order to make the biped move through them. Preparing to Create Footsteps Manually Before placing footsteps, you must choose the gait, then set parameters for the gait in the Footstep Creation rollout on page 4434. Footstep creation and gait buttons When you select the Walk, Run, or Jump gait, parameters for that gait appear on the Footstep Creation rollout. See Choosing a Gait on page 4185 for information on gaits and parameters. Switching Between Left and Right Footsteps By default, manually placed footsteps alternate left, right, left, right. The footstep cursor, which appears during individual footstep creation, shows you whether a left or right footstep will be placed next. If you want to change the footstep side that will be placed when you next click, press Q to toggle between them. Pressing Q also changes the cursor, showing you which footstep side will be placed next. Footstep Animation | 4189 Automatic Time Extension During manual footstep creation, your display remains at the current frame. However, footsteps are created sequentially in time. If the footsteps you create require more frames than are in the active time segment, the footstep creation process extends the active time segment, which can create new frames. Creating New Footsteps Between Existing Footsteps If inactive footsteps exist, you can only create new, inactive footsteps within or directly before or after the time of the inactive footsteps. If you need to add more footsteps near a time where there are only active footsteps, deactivate all footsteps first, then add footsteps and activate them again. See Deactivating Footsteps on page 4193. See also: ■ Choosing a Gait on page 4185 ■ Creating Footsteps Automatically on page 4187 ■ Editing Footstep Placement on page 4199 Procedures To prepare for manual footstep creation: 1 On the Motion panel > Biped rollout, click Footstep Mode. You are now in Footstep mode, and can create, activate, or edit footsteps. 2 In the Footstep Creation rollout, choose the gait you want to use: Walk, Run, or Jump. See Choosing a Gait on page 4185 for details on gaits and their parameters. 3 In the Footstep Creation rollout, set parameters for the chosen gait. To create footsteps beginning at the current frame: 1 Turn on Footstep Mode. 4190 | Chapter 17 character studio 2 Click Create Footsteps (at current frame). 3 Click in a viewport to create a footstep. Move the cursor and click again to create another footstep. Repeat until you have created all the footsteps required. TIP Use the Top viewport to create the footsteps. Watch the footstep cursor to see whether a left or right footstep will be placed next. If you want to place two left or two right footsteps sequentially, place one footstep, then press Q once before placing the next one. 4 Move and rotate footsteps until you have achieved the desired pattern. 5 Click Create Keys For Inactive Footsteps. 6 Click Play Animation to see the animation. To append footsteps onto the existing footsteps: 1 2 3 Make sure Footstep Mode is turned on. If the existing footsteps are active, deactivate them first. Select all footsteps and click Deactivate Footsteps. Click Create Footsteps (append). 4 Click in a viewport to create a footstep. Move the cursor and continue clicking to create more footsteps TIP A Top viewport is usually best when you create footsteps individually. 5 Move and rotate footsteps until you have achieved the desired pattern. 6 Click Create Keys For Inactive Footsteps. 7 Click Play Animation to see the animation. Footstep Animation | 4191 To create footsteps using AutoGrid: The AutoGrid feature creates objects on a surface other than the default construction plane. You can use this feature to place footsteps on an irregular surface. 1 Using any 3ds Max modeling method, create a surface as the terrain for the biped to step on. 2 On Create panel > Systems, click Biped. In the Object Type rollout, turn on AutoGrid. 3 If you already have a biped to use, return to the Motion panel without creating a biped. If you need a biped, create the biped at this time, then access the Motion panel. 4 Turn on Footstep Mode. 5 Click Create Footsteps (at current frame). Move the cursor over the terrain. A transform gizmo moves with your cursor to indicate the location and orientation of the gizmo. Click to place a footstep, then move the cursor and click again to place more footsteps. 6 When you have finished placing footsteps, click Create Keys For Inactive Footsteps. Keys have now been created for the footsteps. 7 Click Play Animation to see the animation. The biped steps on the terrain, following the footsteps. Activating Footsteps When footsteps are created, they are inactive. To make the biped move through the footsteps, you must activate them by clicking Create Keys for Inactive Footsteps on the Footstep Operations rollout on page 4438. When you activate footsteps, keys are created for the biped's legs and feet, causing the biped to step through the footsteps. In addition, keys are created for the spine, arms, hips, and tail (if the biped has one) to make the biped 4192 | Chapter 17 character studio move naturally through the footsteps. Keys are not created for the head, ponytails or props. When keys are created for footsteps, a generic type of motion is generated for the biped's body based on footstep placement and timing. This movement is intended as a starting point for your own animation, not as a final setup. There are times when it is appropriate to deactivate footsteps, make changes, and activate footsteps again. See Deactivating Footsteps on page 4193. See also: ■ Creating Footsteps Automatically on page 4187 ■ Creating Footsteps Manually on page 4188 Procedures To activate footsteps: 1 While in Footstep mode, create footsteps using the automatic or manual method. 2 Move, rotate, delete and edit footsteps as desired. 3 4 Click Create Keys for Inactive Footsteps in the Footstep Operations rollout. Click Play Animation to see the animation. Deactivating Footsteps When you change the position or timing of active footsteps, the biped's animation changes accordingly, causing the biped to step into the footsteps in their new positions with the new timing. Deactivating footsteps temporarily suspends changes to animation when footsteps are changed. When you move deactivated footsteps or change their timing, the biped still continues to do the same motion it did before footsteps were deactivated. Footstep Animation | 4193 Footsteps should be deactivated when you make substantial changes to footstep timing or placement. Footsteps are deactivated by selecting footsteps and clicking Deactivate Footsteps in the Footstep Operations rollout on page 4438. After making changes to the footsteps, click Create Keys for Inactive Footsteps in the Footstep Operations rollout on page 4438. This will recreate keys for the biped and cause it to follow the footsteps. Active footsteps are pale in color, while inactive footsteps are brightly colored. This coloring appears both on footstep icons in viewports and on footstep keys in the Dope Sheet. NOTE Deactivating and reactivating footsteps causes all biped keys to be replaced with default animation keys for the current footstep pattern and timing. When to Deactivate Footsteps There are many situations where you will want or need to deactivate footsteps after activating them. ■ When you move or rotate active footsteps substantially, you might find that the original keys generated are no longer appropriate for your animation. If this happens, deactivate footsteps, move the footsteps into the correct locations, and activate footsteps again. ■ When changing footstep timing in the Curve Editor's Dope Sheet mode, you might receive an error message stating that what you are trying to do violates one of the rules of biped key placement. If this occurs, deactivate footsteps, make timing changes in the Dope Sheet, then activate footsteps again ■ If you have a large number of active footsteps in the scene, moving footsteps and making timing changes can cause delays as all keys are adapted and updated. You might find your work is faster if you deactivate footsteps while making your changes. ■ If you have activated footsteps then changed the default animation, then find you want to return to the default animation, you can deactivate footsteps and activate them again to recreate the default animation. 4194 | Chapter 17 character studio Activation/Deactivation Workflow The fastest workflow with footsteps is to deactivate footsteps and make changes, reactivate footsteps and play the animation to check your work, and repeat this process until the footstep timing and placement are correct. However, deactivating and reactivating footsteps replaces any biped keys with the default animation for the current footstep pattern and timing. For this reason, it is recommended that you work with footsteps exclusively first, ignoring the upper body animation, and deactivate and reactivate footsteps as needed. When the motion of the feet is perfect or near-perfect, only then should you adjust the biped animation manually. Otherwise, you will lose all your manual animation work every time you deactivate and reactivate footsteps. TIP Alternatively, you can use layers on page 4403 to store any upper body animations you want to preserve while you proceed with changes in your biped's footsteps. Rules for Inactive Footsteps When you click deactivate footsteps, only selected footsteps are deactivated. If you haven't made any changes to the default animation, it is recommended that you deactivate all footsteps. However, if you've changed or added animation keys to part of the animation, you might want to deactivate only a portion of the footsteps. When some but not all footsteps are currently deactivated, limitations are imposed on the changes you can make to footsteps: ■ You cannot set, delete, move, or edit keys in any way; footstep tracks are disabled in the Dope Sheet. ■ You can create footsteps only when the new footsteps are among and adjacent to existing inactive footsteps. ■ You can delete only inactive footsteps, and at least one inactive footstep must remain. ■ You cannot deactivate a set of nonsequential footsteps. See also: ■ Activating Footsteps on page 4192 Footstep Animation | 4195 Procedures To deactivate footsteps: 1 Select the footsteps to deactivate. The footsteps you select must be in sequence; you cannot deactivate a nonsequential set of footsteps. 2 Click Deactivate Selected Footsteps in the Footstep Operations rollout. The footsteps are deactivated. Viewports and the Dope Sheet display them in bright colors again. Understanding Footstep and Body Keys When you activate footsteps, keys are created for biped body parts. Before you work with footstep placement and timing, it's essential that you understand the default keys generated and how they relate to footstep editing. Leg States A leg moving through a footstep has four states, beginning with the foot on the ground. Then the foot lifts, moves through the air, and returns to the ground again. These leg states are labeled by character studio to help you work with footsteps and leg/foot keys more easily when editing footsteps. These states are referred to in these topics to aid in understanding more advanced footstep concepts, so it's important that you become familiar with them. ■ Touch occurs at the leg keyframe where the foot first touches the footstep, and always corresponds with the start frame of a footstep in Track View. The Touch state is always one frame long. ■ Plant occurs after touching, and before lifting. It is always in between the start and end frames of a footstep in Track View. The Plant state is usually more than one frame long. ■ Lift occurs at the keyframe where the foot lifts off the ground, and always corresponds with the end frame of a footstep in Track View. The Lift state is always one frame long. 4196 | Chapter 17 character studio ■ Move occurs while the foot is in the air, and is always in the intervals between footsteps in Track View. In walking, while one foot moves, the body is supported by the other leg. In running or jumping, there are periods where the body is not supported and moves in midair. For more information on these keys, see Editing Footstep Timing on page 4200. You can display the current state of each leg by turning on Leg States in Biped rollout > Display group. The state name appears in viewports near the foot, corresponding to the state at the current frame. NOTE State names appear only on footsteps that have been previously activated. If active footsteps have been deactivated and edited, the state names that appear will correspond to states the legs were in before deactivation. For this reason, leg states displayed between deactivation and reactivation might not be accurate. Regardless of the footstep pattern, activating footsteps will always cause leg keys to be generated at each lift and touch frame. Although you can alter these keys to some degree by going to a touch or lift keyframe, turning on Auto Key and changing the leg positions or rotations, you cannot delete these keys. To change the foot/leg animation after footsteps are activated, seeAnimating Legs and Feet on page 4208 and Adjusting Body Keys in Track View on page 4211. Body Keys When foosteps are activated, keys are also generated for the center of mass (COM) object, the blue tetrahedron at the center of the biped's pelvis. The position and rotation of the COM determines the horizontal and vertical position of the biped body, as well as its rotation. Unlike other biped parts or 3ds Max objects, the COM has three separate animation tracks, two for motion and one for rotation. You select these tracks by clicking the appropriate button on the Track Selection rollout on page 4348: ■ ■ ■ Body Horizontal Body Vertical Body Rotation (displays keys for the Body Turning track) Footstep Animation | 4197 Keys for these tracks are generated automatically when you activate footsteps. You can view the keys for each track on the Track Bar by turning off Footstep Mode and clicking the corresponding button listed above. These tracks are also visible in Track View's Dope Sheet mode. NOTE When you select the COM, only the keys corresponding to the selected track are displayed. If you select the COM and do not select a track, no keys are displayed on the Track Bar, even if the COM is animated. You can find out which COM track is selected by checking the status of the buttons displayed above. When a button is turned on, the track is selected. You can animate the COM or change existing keys after footsteps are activated. To change COM keys after footsteps are activated, seeAnimating the Upper Body on page 4209 and Adjusting Body Keys in Track View on page 4211. Editing Footstep Motion The topics in this section deal with the editing of footstep motion when animating bipeds. They are: Editing Footstep Placement on page 4199 Editing Footstep Timing on page 4200 Editing Active Footsteps on page 4204 Splicing Footsteps on page 4206 Animating Legs and Feet on page 4208 Animating the Upper Body on page 4209 Adjusting Body Keys in Track View on page 4211 Shifting the Biped's Balance on page 4212 Adjusting Vertical Motion on page 4217 Saving Footstep Animation on page 4225 4198 | Chapter 17 character studio Editing Footstep Placement After you've created footsteps, there are several ways to edit their placement in the scene. ■ You can use standard 3ds Max controls to select, move, rotate, or delete footsteps. NOTE The 3ds Max scale transform will not scale the footstep icons themselves; the size of the icons is set by the size of the biped's feet. The biped foot size is originally set by the biped's height, then later by any scaling you perform on the feet in Figure Mode. See Posing the Biped on page 4157. ■ You can use the Bend and Scale controls in the Footstep Operations Rollout on page 4438 to edit the footsteps. The Bend value curves a selection of footsteps, while Scale changes the distance between selected footsteps. Selecting Footsteps To change footstep placement, you must first select the footsteps to change. When Footstep Mode is turned on, footsteps can be selected with the same methods used to select 3ds Max objects: ■ Click footstep icons while holding down the Ctrl key. ■ Click and drag to draw a bounding box around footsteps you want to select. ■ Unselect footsteps by holding down the Alt key and clicking footsteps. You can also select footsteps in Track View's Dope Sheet mode. See Editing Footstep Timing on page 4200. Biped Key Adaptation When you move, rotate, delete, bend, or scale active footsteps, the software automatically alters biped keys to account for changes in balance and motion. This change is called adaptation on page 7900. For information on how adaptation occurs, see Editing Active Footsteps on page 4204. Footstep Animation | 4199 Editing Footstep Timing You can edit footstep timing in Track View. Footstep keys have their own display in Track View's Dope Sheet mode. Footstep keys are displayed as blocks of color, each indicating a period of time when one of the biped's feet is in a footstep. Footsteps in Track View The footstep key colors match the colors of footstep icons in viewports. Just as with footstep icons, inactive footsteps are brightly colored, while active footsteps are displayed with pale colors. The footstep key display relates directly to the different states on page 4196 the leg and foot can be in at any given time. The left edge of each footstep key indicates the foot is in the Touch state, while the right edge indicates the Lift state. The duration of the footstep key between Touch and Lift indicates the time the foot is in the Plant state. The space between footstep keys indicates a time when the foot is completely out of a footstep, a Move state. You can change footstep timing in Track View by: ■ Moving footstep keys to an earlier or later time. ■ Moving footstep keys to change the time relationships between footsteps. ■ Changing the lengths of footstep keys. 4200 | Chapter 17 character studio ■ Deleting footstep keys. You must select footstep keys before you can change their timing. Selecting Footsteps for Time Editing Selecting footstep keys is the same as selecting footstep icons; when one is selected, the other is selected as well. Footstep keys can be selected in a number of ways for editing in Track View. NOTE ■ To select footsteps, you must have Footstep Mode turned on. Select footsteps in viewports as you would any 3ds Max object. Click a footstep to select it, and hold down the Ctrl key and click additional footsteps to select them. You can also draw a selection box around footsteps to select them. Selecting footsteps also selects the footsteps in Track View. A selected footstep in Track View has a white border and a dot on both the left and right edges of the footstep key. Footstep key selected in Track View ■ Click the center of a footstep key in Track View to select it. Hold down the Ctrl key and click the center of additional footstep keys to select multiple footsteps. ■ To select several footsteps at once, draw a selection box around the footstep keys in Track View. ■ You can also select one edge of a footstep key by clicking the left or right edge in Track View. A single white dot appears at the selected edge. You can change the duration of the footstep by increasing or decreasing the length of the key on the selected edge. Footstep Animation | 4201 Left edge of footstep key selected in Track View ■ To select an edge, right-click the footstep track in Track View to display the Footstep Mode dialog on page 4457. Select one or more footstep keys, and use the controls in the Footstep Edge Selection group to select an edge. Editing Footstep Timing Editing the timing of footsteps is a simple matter of moving selected footsteps or selected edges in time. Moving an entire footstep changes the time at which it starts and ends, but not its duration. Moving a footstep edge changes the duration of the footstep. Restrictions on Footstep Time Editing The timing for both active and inactive footsteps can be changed. Editing timing for active footsteps also changes keys for the center of mass and leg keys, but not the spine, arm or tail keys. This can cause the resulting animation to look different from the way you intended. For this reason, you might prefer to deactivate footsteps before editing timing. See Deactivating Footsteps on page 4193. When editing footstep timing in Track View, the following limitations apply to both inactive and active footsteps: ■ There must be at least one frame between footstep keys for the same foot. ■ Footstep keys cannot start in negative frames. ■ Every footstep must be at least two frames long. ■ If you want to add footstep keys, use the tools on the Footstep Creation rollout. See Creating Footsteps Automatically on page 4187 and Creating Footsteps Manually on page 4188. ■ Footsteps cannot be cloned. 4202 | Chapter 17 character studio ■ To scale time of footsteps and body keys together, you can use Scale Time on the Track View toolbar. WARNING Do not use the Re-scale Time option in the Time Configuration dialog to scale an animation that contains active footsteps. If you do so, biped keys might not adapt appropriately. Instead, use Scale Time on the Track View toolbar. If you attempt to perform an illegal footstep timing change in Track View, an error message appears and the footstep timing pattern returns to the state it was in before you made edits. See also: ■ Adjusting Body Keys in Track View on page 4211 Procedures To display footstep keys in Track View: 1 Choose Graph Editors menu > Track View - Dope Sheet. 2 If necessary, expand the Objects listing to display footstep keys. To move selected footsteps in time: ■ In Track View, drag any selected footstep key to drag all selected footstep keys in time. To change the duration of a footstep: 1 In Track View, click the left or right edge of a footstep key. In addition to a white border, a small white dot appears to indicate the edge is selected. 2 Drag the selected edge to make the footstep key longer or shorter. You can adjust a selection of multiple footsteps this way. You can also adjust any combination of left edge, right edge, and center selections. Dragging in Track View adjusts any combination of edge or center selection. Footstep Animation | 4203 To change the display of numbers of footstep keys: 1 In Track View, right-click the footstep track to display the Footstep Mode Dialog on page 4457. 2 Choose the values to display from the Footstep Number Display group. To scale keys in time: 1 On the Track View toolbar, click Scale Time. 2 In the Track View window, click and drag to indicate the beginning and end of the time period you want to scale. 3 Move the cursor over the selection region until a scale cursor appears. Drag to the left to reduce time, or drag to the right to increase time. Editing Active Footsteps One of the most powerful features of footsteps is the ability to adapt keyframes automatically to edits you make to your footstep pattern. By analogy, the footsteps become a kind of gizmo on page 7996 for manipulating the keyframes of your character's animation. In most cases, edits you make to footsteps act upon your keys in an intuitive fashion. In order to understand what happens when active footsteps are edited, you must first understand what happens to biped keys when footsteps are activated. See Understanding Footstep and Body Keys on page 4196. Key Adaptation for Footstep Placement Edits When you move or rotate active footsteps as described in Editing Footstep Placement on page 4199, the biped's keys are immediately influenced by the edit. The following keyframe tracks are influenced in the vicinity of the edited footsteps: ■ Body Horizontal keys change to step or hop within range of new footstep locations ■ Body Vertical keys change to match possible changes in stride length, since the center of mass must move lower to step longer distances ■ Body Turning (Body Rotation) keys change to bank into turns created by changes in path curvature or body speed 4204 | Chapter 17 character studio ■ Right or left leg keys in a Move state (when the leg is not in a footstep) are adapted to step between new locations Other keys are preserved in the adaptation process. For example, if you animate the body to kneel while turned to the right, altering a nearby footstep will maintain the biped's height and turning motion as much as possible. Key Adaptation for Footstep Timing Edits To edit active footsteps in time, follow the methods described in Editing Footstep Timing on page 4200. Keyframes affected by the edit are updated immediately. A fundamental factor in how your keyframes are adapted is whether the sequence of leg support transitions has changed. Changing the relationship between opposite leg keys effectively changes the gait, which causes entirely new keyframes to be generated at that point. ■ If you move footstep keys in such a way that you remove an overlap or create a new overlap between opposite legs, you have changed the gait, and new keys will be generated for legs. ■ If you do not change the overlap relationship between opposite legs, existing legs keys are retained. WARNING Editing a jumping sequence so that the feet hit or leave the ground slightly out of phase rather than at the same time introduces a change in the leg support sequence. Hence, even in this case, the leg keys will be locally replaced with default keys. NOTE If you scale the biped's feet in Figure mode after activating footsteps, then turn off Figure mode, character studio will recalculate the footstep display size and the footstep dynamics automatically. Locking Keys You can lock specified tracks to prevent them from adapting automatically when you move active footsteps. The controls in the Footstep Adapt Locks group on the Dynamics & Adaptation rollout on page 4417 lock specified tracks. Footstep Animation | 4205 Procedures To prevent keys from changing when active footsteps are edited: 1 On the Motion panel, on the Dynamics & Adaptation rollout, in the Footstep Adapt Locks group, select the types of keys you want to lock. 2 Move, rotate, scale, or bend active footsteps. The tracks you lock are unaffected by footstep editing. Splicing Footsteps You can copy the motion of a biped footstep sequence, and paste it either at the end or into the middle of another footstep sequence. This technique is called splicing on page 8134. You can use splicing to build an extended, or cyclic, motion sequence out of shorter sequences. You can also copy footsteps from one biped and paste them onto another biped with this technique. Splicing footsteps makes use of a footstep buffer to store footstep positions and keys. The buffer is a temporary area in memory where footsteps are stored. TIP Use motion splicing when you want to edit segments of a single footstep-based animation. To build longer animations by connecting finished BIP files, use Motion Flow on page 4508 or the Motion Mixer on page 3699. See also: Footstep Operations Rollout on page 4438 ■ Procedures To copy footsteps to the buffer: 1 Turn on Footstep mode. 2 Select a series of footsteps. 3 In the Footsteps Operations rollout, click Copy Footsteps. 4206 | Chapter 17 character studio To edit the footstep buffer: You can edit the footstep buffer only when footsteps have been copied to the buffer, as described in the previous procedure. 1 On the Biped rollout > Modes group, click Buffer Mode. This button is active only when there are footsteps in the buffer. The viewports now display the footsteps in the footstep buffer, rather than the footsteps in the currently activated footstep sequence. 2 Edit footsteps or motion keys as you normally would – by moving and rotating footsteps, or turning on Auto Key and moving and rotating parts of the biped skeleton. NOTE You can’t splice (copy and paste) footsteps while in Buffer mode. If you load a BIP file by clicking Load File on the Biped rollout while Buffer mode is active, the footstep buffer is replaced with the motion in the BIP file. 3 Click Buffer Mode to turn it off. Now you can splice the edited buffer by pasting footsteps. To splice the footstep buffer: 1 Click Paste Footsteps on the Footstep Operations rollout. The footsteps from the buffer appear in their saturated colors. 2 Use Select and Move from the 3ds Max toolbar to position the first pasted footstep at the point where you want to splice. When you move the first pasted footstep over an activated footstep of the same side, right or left, the activated footstep turns red to indicate splicing is possible. This step is usually easiest to do in a Top viewport. NOTE If you deselect the pasted footsteps by clicking elsewhere in a viewport, no paste occurs and the pasting process ends. 3 When you have moved the buffer footsteps to the desired location, release the mouse. Footstep Animation | 4207 The contents of the footstep buffer are placed over the active footsteps. The first footstep in the buffer replaces the footstep that turned red, and the rest of the buffer footsteps follow. 4 The footstep that turned red and the remaining original footsteps now appear in the viewports. They will be near the activated footsteps, in their saturated colors. They can now be moved and pasted onto the end of the spliced motion, which will, in effect, perform an insert of the buffer motion. The red footstep and is following footsteps can also be pasted anywhere in the footstep sequence. If you pasted onto the last footstep, this step does not occur. If you don’t want to append the leftover footsteps, simply click anywhere in the viewport to dismiss them. WARNING If any footstep in the buffer overlaps in time with a footstep previous to the one onto that you are pasting, a message appears and the paste will not be performed. TIP To create a cycle of a motion with alternating footsteps, you must copy and paste at least three footsteps. Animating Legs and Feet When you activate footsteps, keys are created for the legs and feet according to the footstep pattern and timing. Leg and foot keys are set at each Touch and Lift frame, and between footsteps. Although the parts of the leg (thigh, calf, foot, toes) can move and rotate separately, one key dot appears on the Track Bar and in Track View for each leg structure unless you have turned on separate tracks in the Keyframing Tools rollout on page 4380. When the foot is not in a footstep, you can move or delete keyframes, and animate or reposition any part of the leg or foot. Simply turn on Auto Key and move or rotate the leg or foot to its new position. Animating Legs and Feet in Footsteps The leg keys created at either end of each footstep are locked, meaning they cannot be moved or deleted. You can, however, change the animation at these frames, or add new keyframes within the timespan of the footstep key. 4208 | Chapter 17 character studio When the foot is in a footstep, you can animate or reposition the leg and foot to some degree: ■ You can rotate the foot around its pivot point within the footstep. ■ You can animate the pivot point with the Select Pivot option in Key Info rollout > IK bar. See Animating Pivots on page 4272. ■ You cannot move a foot out of a footstep. If you do not want the foot to be in the footstep at a particular frame, change the timespan of the footstep key so it does not include that frame. See Editing Footstep Timing on page 4200. Animating the Upper Body When you use footsteps to animate the legs and feet, animating the spine, neck, head, arms, and other upper body parts is accomplished in the same way as for freeform animation. Simply turn on Auto Key and start moving and rotating body parts. See Animating by Moving Links on page 4239 and Animating by Rotating Links on page 4242. You can also click the Set Key button on the Key Info rollout on page 4367 to set keys for selected body parts at the current frame. This option allows you to move body parts as you like, setting keys only when you have decided to do so. WARNING biped. Do not use the 3ds Max Set Key button to set keys for the Animation on the center of mass (COM) works differently, depending on whether the biped is in a footstep at that particular frame. ■ If at least one foot is in a footstep, moving or rotating the COM will animate the entire body along with the COM, except a foot that is in a footstep. A foot in a footstep will stay planted in the footstep and the leg will bend or straighten as the COM is moved up or down. ■ If the biped is airborne (no footsteps at that frame), the COM can be moved horizontally and can be rotated, but cannot be moved vertically. This is because character studio automatically calculates how high the biped can go based on the biped's height and the current gravity setting. To make Footstep Animation | 4209 the biped jump higher or lower during airborne periods, see Freeform Animation Between Footsteps on page 4227. Working with Existing Keys Because keys are created for the spine, arms, and tail when footsteps are activated, you will want to take care when creating new keyframes. As with 3ds Max animation, placing keyframes one or two frames apart creates jerking or popping motions. To avoid placing keyframes on upper body parts too close together, you can do one of the following: ■ Turn on the 3ds Max Key Mode toggle, select the body part, and use Next Key and Previous Key to move in time from one keyframe to another. Animate only on existing keyframes. ■ Delete all the body part keys except the key at frame 0, and create entirely new keys throughout the animation. WARNING If you delete all keys, including the key at frame 0, be sure to set a key at frame 0 before animating on other frames. character studio does not automatically place a key at frame 0 when you animate on frames other than 0, as 3ds Max does. Interdependencies Between Legs and Upper Body When footstep animation is used, animation of the upper body and animation of the legs are interdependent. Any time you change the position of the body's center of mass, leg positions are automatically updated to ensure the feet still move from footstep to footstep. Interdependencies between the upper body and legs are updated after a key has been set, sometimes causing the appearance of a pop in the leg position. However, in playing the animation you will find the motion to be smooth. When you set a leg key while the foot is on the ground, the location of the foot is automatically recalculated based on the natural roll of the foot from its point of initial contact with the ground. The pivot points are based on collisions between the footstep plane, the two corners of the heel, and the bones that connect the toes' links. 4210 | Chapter 17 character studio This ability to preserve interdependent relationships allows you easily to experiment and improvise with motion, since you are assured that edits to one body part will not corrupt the integrity of other parts. In general, changes to the center of mass, spine, and pelvis cause the legs to adjust. Changes to the legs do not affect the center of mass's vertical position. Adjusting Body Keys in Track View When you activate footsteps, keys are created for biped body parts. After activating footsteps, you can also create keys by turning on Auto Key and animating body parts. All these keys can be viewed in Track View – Dope Sheet mode. In general, editing biped body keys in Track View is the same as editing keys of any sort in 3ds Max, with a few restrictions. Before reading this section, please read Understanding Footstep and Body Keys on page 4196 for terms and definitions used in this section. NOTE The information in this section applies only to biped body keys for the arms, legs, spine, neck, and other parts of the upper body. For rules for editing footstep keys, see Editing Footstep Timing on page 4200. Locked Keys Some biped keys are locked, meaning they cannot be moved in time. Locked keys are colored red in Track View. Locked keys for the COM Body Vertical track are created at each footstep's lift and touch frames. These are the only keys that are locked. These keys can be moved in time by changing footstep duration in Track View. Although you cannot move or delete a locked key in Track View, you can sometimes change the animation on the frame by going to the frame, turning on Auto Key and manually animating the key. Restrictions on Biped Body Key Editing All options available for editing biped body key timing are available only when Edit Keys on the Track View toolbar is turned on. Footstep Animation | 4211 The following rules apply to the editing biped body key timing in Track View: ■ You cannot move existing keys outside the area between the first and last footsteps, or to negative frames. ■ You can use Add Keys to add keys to any biped body track. You cannot add keys outside the area between the first and last footsteps, or to negative frames. ■ You can clone keys the same way you clone 3ds Max object keys, by selecting keys and holding down Shift as you drag them. You can also clone keys by copying and pasting postures. See Copying and Pasting Postures and Poses on page 4281. ■ The Track View – Curve Editor can be used to view and edit curves showing the interpolation between body keys. You can also use the Workbench to analyze, edit and fix biped motion curves. See Working with the Workbench on page 4476. ■ You can use Scale Keys to scale selected keys, except for locked keys. TIP If you want to animate a biped performing movements with its upper body while standing, extend the length of the standing footsteps to cover the length of the standing animation, then add keys for the upper body. See also: ■ Animating the Upper Body on page 4209 Shifting the Biped's Balance After footsteps are activated, you can adjust the biped's overall balance in either of two ways: ■ In the Biped rollout on page 4331, turn on Rubber Band Mode and move the biped's COM, or ■ Change or animate the Balance Factor parameter in the Key Info rollout on page 4367. 4212 | Chapter 17 character studio Rubber-Banding the COM When Rubber Band mode is active, you can move the biped's center of mass in relation to the rest of the body, changing the biped's overall balance. Rubber-banding the center of mass defines your character's balance point in at-rest pose and in any resulting motion. When a character is standing at rest, with feet side by side, the center of mass should be directly above the area where the feet touch the ground. The center of mass determines the center of your character's distribution of weight. For most characters, the physical center of mass is located near the pelvis. Typical placements for the center of mass are: ■ Characters that stand erect, such as humanoids, use the default location of the center of mass within the pelvis. ■ Characters that naturally lean forward, such as some dinosaurs and birds, should have the center of mass moved slightly forward of the pelvis. This is also good for robots and droid soldiers. ■ Characters that are holding a heavy weight out in front of them, or overweight characters, might need their center of mass moved slightly forward of the pelvis. ■ Characters that are pushing or pulling objects might need their center of mass moved slightly behind the pelvis. NOTE If you place the center of mass too far in front of the pelvis, the character unnaturally compensates for balance. As each step is taken, the legs and body move in an awkward fashion, as if there was an invisible weight attached to the front of the character. Footstep Animation | 4213 Center of mass moved behind the biped in rubber-band mode 4214 | Chapter 17 character studio Center of mass moved in front of the biped in rubber-band mode For a tutorial that uses this technique, see “Creating the Illusion of Weight”. Balance Factor The balance factor on page 7919 is an animatable parameter that determines how the biped's hips and spine will compensate when the biped bends forward or backward. Footstep Animation | 4215 The balance factor determines the degree and direction in which the head and/or hips swing out from their original vertical alignments when the biped bends over. Results when balance factor is set to 0.0, 1.0 and 2.0 before the spine is animated to make the biped bend over. The Balance Factor parameter can have any value from 0 to 2: ■ When Balance Factor is 1 (the default value) and you rotate the spine forward, both the hips and head swing out from their original vertical alignment to a similar degree to compensate for the shift in weight. This value is suitable for times when the biped leans forward while standing. ■ When Balance Factor is 0 and you rotate the spine forward, the COM keeps its original vertical alignment, and the head swings forward. There is no movement in the hips to compensate for the shift in body weight. This setting is good for animating a sitting biped who leans forward, to prevent its hips from shifting backward. It can also work well for characters with tails; the tail provides weight in back of the biped, so the hips don't have to shift backward to compensate when the character bends over. ■ When Balance Factor is 2 and you rotate the spine forward, the head retains its original vertical alignment while the COM swings backward. The hips compensate strongly for the shift in body weight. This setting can be useful for violent or acrobatic motions. 4216 | Chapter 17 character studio In order to affect the animation, the balance factor must be set before you animate the biped. The balance factor can be animated to give the biped different reactions to bending motions over the course of the animation. The Balance Factor parameter appears in the Key Info rollout > Body section. Procedures To set the balance factor: 1 On the Motion panel, turn off Footstep Mode if it is turned on. NOTE The Key Info rollout is accessible only when Footstep Mode is turned off. 2 Expand the Body bar on the Key Info rollout. 3 Go to the frame where you want to set the Balance Factor. 4 5 Click Body Horizontal to select this track on page 8150. If no Body Horizontal key exists at the frame where you want to set the Balance Factor, create one by clicking Set Key in the Key Info rollout. 6 Change the Balance Factor parameter. There is no need to click Set Key again after setting the Balance Factor parameter. 7 Rotate the biped's spine. The biped's hips and/or head shift position based on the Balance Factor value. Adjusting Vertical Motion A ballistic gait is any footstep pattern in which there are periods with no feet on the ground, causing the biped to become airborne, or ballistic. Running and jumping are ballistic gaits, while walking is not. When Biped Dynamics is turned on in the Dynamics & Adaptation rollout on page 4417 and you activate footsteps, the Body Vertical keys that are automatically generated during a ballistic gait period will take gravity and Footstep Animation | 4217 landing speed into account. The parameters described in this section affect Body Vertical keys created in this manner. Airborne Dynamics With footsteps, each airborne period always begins and ends with Body Horizontal and Body Vertical keys. These keys define the position of the biped at lift-off and touchdown. When the biped is airborne and Biped Dynamics is turned on, the vertical motion is governed by physically based dynamics. Its airborne trajectory is based on the current gravity setting, the height of the Body Vertical key at lift-off and touchdown, and the amount of time in the air. By default, there is no Body Vertical key at the peak of the biped's trajectory; the biped's peak airborne height is calculated and enforced automatically. You cannot, for example, set a Body Vertical key at the peak of an airborne trajectory and move the biped up or down. If you attempt to do so, the biped will snap back to its original airborne height. Although this will cause a Body Vertical key on page 4196to appear on the Track Bar and in Track View, the key will have no effect on the biped's airborne height. Gravity and Timing In reality, the length of time a person, animal or insect stays in the air during a jump is based on two factors: ■ How high the creature jumps, which in turn is based on how hard the creature pushes with its legs at the start of the jump. The creature's weight has no bearing on the height of the jump, except to affect its ability to give a good push at the start. A very light character might be taken by the wind and thus stay in the air longer, but that circumstance is not part of the gravitational equation. ■ The gravitational pull of the planet from which the creature jumps. From these two factors, you can calculate how long the creature will stay in the air. You can also perform this calculation backward; if you know how long the creature was in the air and the gravitational equation for the planet, you can figure out how high it jumped. 4218 | Chapter 17 character studio Jump height increases with time in air character studio uses the latter method for calculating the height of a biped's jump. It knows from footstep timing how long the biped will be in the air, and it has a method for determining the “gravitational pull” in your scene. The default gravity setting in character studio is based on the standard equation for calculating the Earth's gravitational pull, which is an acceleration of approximately 32 feet/sec/sec. Because this equation depends on an accurate measure of distance, the biped's height is used as a guide to actual distances in the scene. For the purpose of gravitational computation, the biped is considered to be about 5'10” tall, the average height for a male human being. Of course, some of your characters will not be the same height as the average man, so airborne periods between footsteps for these characters will appear inaccurate, with the biped jumping too high or too low for your purposes. Footstep Animation | 4219 There are two solutions to this problem. You can change the amount of time the character is airborne between footsteps (see Editing Footstep Timing on page 4200), or you can accelerate gravity with the GravAccel parameter. Accelerating Gravity The GravAccel parameter on the Dynamics & Adaptation rollout on page 4417 alters the degree of gravitational pull imposed on the biped during its airborne periods between active footsteps. The GravAccel default value is based on the standard calculation for the Earth's gravity and its effects on a man of average height. When the GravAccel parameter is increased, the effects of gravity are decreased, and the biped jumps higher. The GravAccel parameter can be set separately for each biped in the scene. 4220 | Chapter 17 character studio GravAccel values increase height of jump. (Left=500, Middle=1000,Right=1500). You can change GravAccel at any time during the animation process to affect the biped's vertical airborne motion, both for keys already created and for animation not yet created. This value cannot be animated; the current GravAccel value is used throughout the biped's footstep sequence. Changes to the GravAccel parameter have no effect whatsoever on the amount of time the biped spends in the air. TIP If you want to change GravAccel back to its default value but don't remember what that was, you can find out by creating another biped of the same height and noting its GravAccel value. Footstep Animation | 4221 NOTE If there is not enough gravitational acceleration or time in the air to account for differences in vertical height (such as a biped falling from footsteps on a ledge in slow motion), the biped is placed on the ground at the touchdown frame, causing a discontinuity. You can fix this by either increasing GravAccel or increasing the amount of time between footsteps in Track View. See Editing Footstep Timing on page 4200. Touch and Lift Dynamics When footsteps are activated for a footstep pattern that includes airborne periods, Body Vertical keys are set at each Touch and Lift keyframe. Based on the time in the air and the biped's height, character studio calculates the height to which the biped will jump. From this, the software figures out how hard the biped's legs would have to push at the Lift frame to reach this height, and how much the legs would have to bend to absorb the force of the landing at the Touch frame. Body Vertical keys are set at the Lift and Touch frames accordingly. You can adjust the timing of touch and lift dynamics by: ■ Changing Body Vertical keys at the Touch and Lift frames. ■ Setting, changing or deleting Body Vertical keys during a footstep. ■ Changing the stiffness or springiness of the biped's legs at Touch and Lift frames with the Ballistic Tension parameter. Ballistic Tension Ballistic tension refers to the stiffness or springiness of the biped's landing at the end of a jump, or takeoff at the start of a jump. The Ballistic Tension parameter on page 4367 changes the biped's motion only when it is set for footsteps immediately preceding or following an airborne period. You can edit the Ballistic Tension parameter only at Body Vertical keyframes where the body touches down (a Touch key) or lifts off (a Lift key). On the Motion panel Track Selection rollout on page 4348, Body Vertical must be selected and a key must be present at the current frame. With footsteps, a Body Vertical key is always set automatically at the landing footstep's Touch frame and the takeoff footstep's Lift frame. Ballistic Tension can range from 0 to 1, with 0.5 as the default value. Increasing Ballistic Tension to 1.0 makes the legs stiffer at takeoff or landing. Decreasing the tension to 0.0 makes the legs springier and less stiff. 4222 | Chapter 17 character studio Ballistic tension determines springiness of landing. (Left = 0.0, Right = 1.0) Dynamics Blend The Dynamics Blend parameter in the Dynamics & Adaptation rollout on page 4417 determines whether biped dynamics or spline dynamics will be used during airborne periods. With biped dynamics on page 7923, the height and trajectory of the biped during airborne periods is determined by gravity calculations and other biped-specific information. With spline dynamics on page 8135, the airborne height and trajectory are not set for you automatically; you must set them manually with keyframes. Footstep Animation | 4223 When Dynamics Blend is set to 1, biped dynamics are used. At 0, spline dynamics are used. You can animate this value to switch between the two during your animation. Procedures To locate vertical center of mass keys: 1 2 3 Select any part of the biped and access the Motion panel. On the Track Selection rollout, click Body Vertical. Use the Next Key and Previous Key buttons on the Key Info rollout to jump to the next or previous center of mass Body Vertical keyframes. TIP If the selected vertical COM key is a touchdown key from an airborne period, you can change the Ballistic Tension parameter on the Key Info rollout to control knee bend. Turn on Trajectories on the Display rollout to view how changing parameters affects the trajectory. To set a Body Vertical key: 1 2 3 On the Track Selection rollout, click Body Vertical. Turn on Auto Key. Click Select and Move on the main toolbar. 4 Click and drag the center of mass up or down in the viewports. The biped is repositioned vertically, a key is created in the center of mass Body Vertical track. To set ballistic tension: 1 On the Biped rollout, turn off Footstep Mode if necessary. 4224 | Chapter 17 character studio 2 in the Track Selection rollout, select the biped's Body Vertical track. 3 Move to the Vertical track keyframe you want to adjust, either a Touch or Lift key. The Ballistic Tension parameter is available only on Touch and Lift keys. 4 In the Key Info rollout, expand the Body bar to access the Ballistic Tension parameter. 5 Adjust the Ballistic Tension value. Adjusting the ballistic tension changes the amount of crouch before a jump, and the amount of dampening that occurs after landing. To change Dynamics Blend for multiple Body Vertical keys: 1 Choose Graphs Editors menu > Track View – Dope Sheet. 2 Select all the Body Vertical keys you want to change. 3 Right-click over one of the selected keys to display the TCB dialog. 4 Change the value of Dynamics Blend in the TCB dialog. This changes it for all selected keys. NOTE This only affects the biped during airborne periods in a footstep animation. Changing Dynamics Blend keys in a walk motion does not affect the motion. Saving Footstep Animation After you have animated the biped with footsteps, there are two ways you can save the data. ■ A BIP file saves both the footsteps and any animation on the upper body. You can save the entire footstep sequence, or just a portion of it. ■ An .STP file saves just the footstep data. These files, in ASCII format, are sometimes used by game developers to save just the leg and foot motion data Footstep Animation | 4225 To save a either type of file, click Save File in the Biped rollout. Choose the desired file type from the Save as type pulldown. For more detailed information on these file formats and how to work with them, see Loading and Saving BIP Animation on page 4300 and Loading and Saving STP Files on page 4308. Footstep and Freeform Animation character studio provides two distinct modes of animation, footstep and freeform. Footstep animation on page 7986 was originally designed for bipedal characters, that is, characters that walk on two legs. It uses a structured system of dynamics and balance to create secondary motion in the upper body, including arm swinging and tail swaying that is automatically applied when footsteps are used. By using default footsteps, you are assured that the biped's foot doesn't slide or pass through the ground, and that the foot easily rolls from heel to the ball of the foot as is common in a typical walk. Freeform animation on page 7986 provides a more traditional method of animating to those familiar with 3ds Max, or other character animation systems. Keys are set by using the character studio Set Key tools found in the Key Info rollout on page 4367, or by turning on Auto Key mode, moving the time slider and transforming the biped parts. Freeform animation includes preset key types called planted, sliding, and free keys; these make it very quick to lock a biped's foot or hand in space and get results similar to those of footstep animation. You can add freeform animation to footstep animation during airborne periods, making it possible to use both footstep and freeform animation on the same biped. Freeform animation is particularly useful for: ■ Animating a character with more than two legs. ■ Animating a biped switching between foot-based motion and freeform motion, such as a biped doing handstands, jumping into a swimming pool, or leaping up to begin flying through the air. 4226 | Chapter 17 character studio Freeform animation also provides animated pivot points on the feet and hands. This makes it possible for you to simulate the roll of a foot from heel to toe, or create detailed finger animation. You can convert back and forth between footstep and freeform animation within some limitations. While it is easy to convert any footstep animation to freeform, there are limitations on the conversion from freeform animation to footsteps. Because of these limitations, a common workflow is to use footstep animation to rough out the animation, then convert to freeform to finalize the motions. The totally freeform animation is not bound by the rules of the footstep method, so it's easy to do anything you want, such as add keys at the beginning or end of the clip. See also: ■ Footstep Animation on page 4176 ■ Freeform Animation on page 4232 Freeform Animation Between Footsteps For certain types of footstep animation, it is necessary to suspend calculations of gravitational effects on the biped. For example, if you want the biped to run, dive into a pool then climb out of the pool, you would create footsteps for the running and climbing portions of the animation but not the swimming portion. When you activate footsteps, the biped will become airborne during the swimming period, jumping high in the air between the running and climbing footsteps. If you don't suspend gravity during the airborne period, you won't be able to change the biped's Body Vertical position to bring it down and place it in the pool. For more information on how the biped behaves during airborne periods between footsteps, see Adjusting Vertical Motion on page 4217. To suspend gravity during an airborne period, you can create a freeform period in your animation. During a freeform period, you can animate the biped in freeform mode, which includes positioning the biped anwhere in the scene regardless of the length of the airborne period. The Track View - Dope Sheet editor is used to insert a freeform period between footsteps. During a freeform period, vertical dynamics (gravitational effects) are suspended, and Body Vertical keys use spline dynamics on page 8135 instead. Footstep Animation | 4227 See also: ■ Track View (Biped) on page 4461 Procedures To convert an airborne period to freeform mode: 1 Create a footstep animation with at least one airborne period, and activate the footsteps. For the simplest method of creating a footstep pattern with an airborne period, see Creating Footsteps Automatically on page 4187. 2 Access Track View by choosing Graph Editors menu > Track View - Dope Sheet from the 3ds Max menu. 3 Expand the footstep key display for the biped. 4 Right-click the footstep key display area. The Footstep Mode dialog appears. 5 In the Footstep Mode dialog, choose the Edit Free Form (no physics) option. In each airborne period in Track View, a hollow yellow box appears. 6 In the Track View footstep key display, click inside the yellow box for the airborne period for which you want to suspend gravity. This fills the yellow box, indicating that vertical dynamics are suspended for that period. 4228 | Chapter 17 character studio 7 Play the animation. The biped uses vertical dynamics during all footstep motions except the freeform period. Footstep Animation | 4229 No vertical dynamics during freeform period, then return to vertical dynamics during next airborne period. NOTE If you activate footsteps after a freeform period has been set between footsteps, the biped might skip footsteps at one end of the freeform period. For this reason, you should activate footsteps before setting up a freeform period. 8 During the freeform period, animate the biped and set keyframes as you like. To edit footstep timing after creating a freeform period, you must choose the Edit Footsteps option in the Footstep Mode dialog. 4230 | Chapter 17 character studio Converting Between Footstep and Freeform Animations There might be times when you want to convert a footstep animation to a freeform animation, or vice versa. This can occur when someone gives you an animation file that's animated in one mode, while you prefer to work in the other. Animators tend to develop a preference for either freeform or footstep animation. The ability to convert between the two means you can work in either format without concern for compatibility with other artists. Using the Convert tool on the Motion panel > Biped rollout on page 4331, you can convert between footstep and freeform animation. There are no special considerations when converting from footsteps to freeform; this procedure works for all footstep sequences. However, to convert successfully from freeform to footstep animation, you must observe certain rules in order for footsteps to be generated. Converting from Freeform to Footsteps When converting from freeform to footsteps, footsteps are generated for a foot only during periods between two planted keys. In other words, the conversion process looks for times when a foot has two consecutive, identical keys with an IK Blend setting of 1 and Object space selected. In this case, a footstep icon is placed at the foot's location, with the duration of the footstep set by the time between the two identical keys. This is the only condition under which foosteps are generated. If converting freeform animation to footsteps does not create the expected result, your freeform animation might need adjustment prior to conversion. See Using IK Keyframe Parameters on page 4259 for information on setting freeform planted keys. If your freeform motion hasn't been prepared with planted keys for converting to footsteps, you can convert it to footsteps by loading it as a motion capture file and specifying footsteps as the extraction method. This technique uses a different method to determine footstep location and duration, and so can sometimes successfully convert to footsteps where the Convert command cannot. See Importing Motion-Capture Data on page 4576. Footstep Animation | 4231 Procedures To convert between footsteps and freeform animation: 1 On the Motion panel > Biped rollout, click Convert. Depending on which is the current animation method, either the Convert to Freeform dialog on page 4455 or the Convert to Footsteps dialog on page 4455 appears. 2 Change settings in the dialog as necessary, and click OK. If you're converting to freeform animation, the footstep patterns are removed from the viewport, gravity and dynamics are removed, and footstep mode is disabled. You are now working with a purely freeform animation. If you're converting to footsteps, and the operation is successful, footsteps appear in the viewport, biped dynamics on page 7923 is turned on, and Footstep mode is enabled. Freeform Animation Freeform animation of a biped swimming While character studio calculates vertical dynamics and gravity based on its footstep-driven technology, you don’t always want your character strictly 4232 | Chapter 17 character studio under these controls. You might want the character to fly, swim, or to do something improbable in a physical world. For these situations, Biped supports a comprehensive set of freeform animation controls that allow you to take total creative control over your character's pose, movement, and timing. character studio gives you the option to animate characters using freeform mode exclusively, or to create freeform periods during a footstep animation. In freeform mode (without footsteps), you can pose every joint of your character exactly as you like using traditional keyframe methods. Hands and feet can be locked down in space by setting planted keys. You can also animate the pivot points for hands and feet to simulate rolling motion. You can blend dynamically between forward kinematics and inverse kinematics to introduce higher-level control. To use freeform animation in Footstep mode, you create freeform periods between footsteps using Track View – Dope Sheet. You can convert an existing footstep animation into a freeform animation and back again. This lets you mix the use of footstep and freeform methods. WARNING You can't add a freeform period at the beginning or end of a footstep animation. TIP If you want to do this, stretch out the timing for the first or last set of footsteps, then convert the footstep animation to freeform. Freeform Method A freeform animation contains no footsteps; instead it relies on the transforms of the biped body objects and center of mass. Use Freeform for motions like swimming or falling where footsteps are not necessary. If you are a familiar with creating all of your keyframes manually to animate a character, you may want to use the freeform method exclusively. To start a freeform animation, turn on Auto Key and start positioning the biped. You can also leave Auto Key off and use the red set key buttons on the Key Info rollout on page 4367 to create keyframes. You can also create freeform animation by importing motion capture data and choosing freeform rather than footstep. TIP Take advantage of both methods by combining footsteps and freeform animation. You can create a freeform period for any airborne period between footsteps. A freeform period replaces the ballistic motion calculated using the GravAccel value with a user defined spline motion. Freeform Animation | 4233 If you are using footstep extraction with motion capture data, you often need a freeform interval to accommodate falling or tumbling motion in the data. The Fit to Existing option on the Motion Capture Conversion Parameters dialog allows for a combination of both methods. Extracting footsteps from motion capture files eliminates sliding feet, a common problem with motion capture data. Note that while you can add a freeform period to a footstep animation, you cannot add a footstep period into a freeform animation. If you want to add a footstep animation to an existing freeform, you can use the motion flow editor to create a script that sequences the footstep with the freeform. Inverse Kinematics Footstep and freeform animations use the same inverse kinematics on page 8016 constraints and extensions. This means that in a footstep animation, you can now edit keys to change footstep duration. By definition, a footstep is the start and end of a sequence of IK constraints in World Space with an IK Blend value greater than 0. Deleting and inserting keys or changing IK space or IK blending alters footstep duration. In cases involving edits that alter the length of ballistic intervals (when a biped is airborne), the software ensures that there is a vertical key occurring at the lift-off and touchdown frames. This calculates the correct ballistic motion, so vertical keys are automatically inserted if not present. There are three types of IK keys you can create: planted, sliding and free keys. ■ Planted keys have an IK Blend of 1. They are joined to the Previous IK Key and are in Object space, rather than Body space. Planted keys lock the foot or hand to the ground, or to any object. ■ Sliding keys have moving IK constraints. Sliding footsteps are created if there is a moved IK constraint occurring in the footstep interval. In a footstep animation this means that the foot can be placed anywhere, even though there is a footstep icon. Footstep icons can be thought of as gizmos rather than the absolute location of a foot. Sliding keys have an IK blend of 1, and are in object space, but are not joined to the previous IK key. ■ Free keys have an IK blend of 0, and are in body space. They are not joined to the previous IK key. Free keys have no IK constraint. IK constraints are implemented with a pivot-based system. This allows you to pivot a hand or foot around a selected pivot. For example, in a walking motion you can select a pivot on the heel of a foot and rotate the foot around it,. You can then shift the pivot to the ball of the foot. 4234 | Chapter 17 character studio Procedures To create a purely freeform animation: 1 Create a biped. 2 Move the time slider to any given frame then do one of the following: ■ Turn on Auto Key, then move or rotate any biped component. This sets a key for that component. ■ Pose any part of the biped, then in the Key Info rollout, click Set Key . ■ Pose the hands and feet and then in the Key Info rollout click Set Planted Key . This will create keys that cause the hands or feet to stick in space. For more information on setting keys, see Setting Keys for Feet and Hands on page 4270. NOTE character studio doesn't behave the same as 3ds Max when creating keys. It doesn't automatically create keys at frame 0 when you create your first set of keys at a later frame. For this reason, it's often useful to select all the parts of the biped at frame 0, then click Set Key to creating holding keys for all. To create a freefrom animation from a footstep animation: 1 Select the biped whose footstep animation you want to convert to freeform. 2 On the Motion panel Biped rollout, click Convert. A Convert To Freeform dialog is displayed. Click OK. Don't turn on Generate A Keyframe Per Frame unless you have a good reason to do so. Having a keyframe on every frame makes animation editing much more complex. Use this only if you are losing motion quality through a conversion process. Freeform Animation | 4235 Creating Freeform Animation The topics in this section deal with the creation of freeform animation for bipeds. They are: Selecting Biped Tracks on page 4236 Animating by Moving Links on page 4239 Animating by Rotating Links on page 4242 Rotating Multiple Biped Links on page 4249 Using Controllers on page 4252 Using Props on page 4255 Selecting Biped Tracks To animate your character with freeform methods, you need to know how to select the body part you want to animate, as well as the type of movement you want to affect for that part of the body.3ds Max and Biped provide a number of different methods for selecting and moving these animation tracks. Several involve using the 3ds Max Track View, a powerful environment for viewing and managing the geometry and motion data in your scene. For each biped body part, motion data is viewable in Track View or on the track bar. Once you've selected the biped object, using one of the methods described below, you can see its associated motion data on the track bar or displayed in the Transform branch for that object in Track View. Biped lets you expand and collapse certain animation tracks to give you more control over your character's movement as you set keyframes. For example, tracks for body parts in the arms can be animated using five separate tracks for maximum control. You can also collapse these tracks for simplicity, and use a single key to pose the entire arm. Tracks can be expanded or collapsed in this way for the arms, legs, ponytails, neck, tail, and spine. In 3ds Max, you have the ability to display the motion data as function curves. You can see and manipulate function curves either in the Track View – Curve Editor, or by using the Workbench on page 4483. The Workbench provides specialized tools for analyzing and fixing motion problems found in the curves. 4236 | Chapter 17 character studio For fast track selection, you can also use the Track Selection rollout. These buttons let you quickly select the motion tracks for the horizontal and vertical movement of the biped center of mass, as well as selection of opposite limbs, or symmetrical limbs. Biped is unique in the way it separates the tracks for the center of mass into three tracks (one each for vertical, horizontal, and rotation). See also: ■ Dynamics & Adaptation Rollout on page 4417 ■ Track Selection Rollout on page 4348 ■ Track View (Biped) on page 4461 Selecting Tracks from the Track Selection Rollout The center of mass has three separate animation tracks, two for motion and one for rotation. These tracks can be selected on the Track Selection rollout on page 4348: ■ Body Horizontal ■ Body Vertical ■ Body Rotation (selects the Body Turning track) Selecting Tracks with the Select By Name Tool You can navigate to and select tracks for a given object using the text-entry field next to the Zoom Selected Object in Track View. Type the object name in the text field, using wildcards as necessary, and then press Enter. Selecting Tracks from the Track View You can navigate to a given object simply by traversing the Biped hierarchy in the Track View hierarchy window. Freeform Animation | 4237 Note that child objects in the hierarchy are nested below parent objects. You may need to open several parent objects to get to the nested object you want. The biped tracks are grouped as follows: ■ Center of Mass ■ Footsteps ■ Pelvis (branch1) Spine, Neck (branch), Head, Ponytail. ■ Pelvis (branch2) Thigh, Calf, Foot, Toes. ■ Pelvis (branch3) Tail. ■ Neck (branch 1), Head ■ Neck (branch 2), Clavicle, UpperArm, Forearm, Hand, Fingers. Each of these tracks can be seen in Track View, expanded trackbar and Workbench. Note that the hands and fingers are grouped with the arms, and the fingers and toes are grouped with the legs. The body's translation keys are separated into vertical and horizontal tracks. Procedures To access Track View, do one of the following: 1 On the 3ds Max toolbar click Curve Editor. 2 Select any biped object in the viewport, then right-click and choose Curve Editor. The hierarchy list automatically displays the track of the selected biped object. 3 Choose Graph Editors menu > Track View - Curve Editor. To select from the screen: 1 Place the cursor over the biped link whose tracks you want to examine. Use zoom controls, as necessary. 2 Pause over a part of the biped, and a tool-tip appears, informing you which object is at the cursor position. 3 Click to select the biped link. 4238 | Chapter 17 character studio TIP Another feedback device is available once you've made your selection. The selected object's name is displayed in the topmost field in the Modify, Hierarchy, Motion, and Display panels. 4 On the Track View, click Zoom Selected Object. The Track View hierarchy window repositions to show the selected object at the top of the window display. Nested below the object's name are the animation, or transform, tracks for that object, if any exist for the current motion. NOTE By default, all keys for arm objects are in the Clavicle track, and all keys for leg objects are in the Thigh track. If you select a biped foot and click Zoom Selected Object, you may need to scroll up the Track View hierarchy to view the Thigh track transform keys. These keys also store foot transforms. TIP Use controls in the Separate Tracks area of the Keyframing Tools rollout on page 4380 if you prefer transform tracks for individual objects. To display footstep tracks: 1 Select any biped with footstep animation. 2 In the Biped rollout of the Motion panel turn on Footstep Mode . 3 Right-click in the viewport and choose Curve Editor. 4 On the Track View menu bar, choose Modes > Dope Sheet. 5 Click any footstep in the viewport and the hierarchy list navigates to the Footstep track. Animating by Moving Links Use the standard 3ds Max Move transform to move biped links. Freeform Animation | 4239 As shown in the table below, there are two types of movements you can apply to a biped link: ■ General Move – When you select and move the center of mass object, it and all of its children move; that is, the entire biped moves. When you move the center of mass and one or more legs are planted on the ground with IK constraints (IK Blend=1.0), the Biped tries to maintain the legs' planted position while the body moves. ■ Inverse Kinematics – Applies to all parts of the arms, legs, fingers, and toes, except the clavicles. If you attempt to move a hand or foot beyond the biped's kinematic limit, the arm or leg straightens out and moves as far as possible in the direction you drag. The pelvis, head, neck, non-base spine links, and non-base tail links cannot be moved. They can only be rotated, although they move when their parent moves. When you select multiple biped parts and move them, the move applies only to selected biped parts that have no selected ancestors. For example, when the entire biped is selected, only its center of mass object is moved. When all of the finger joints are selected, the bases of all the fingers are moved. 4240 | Chapter 17 character studio TIP You can select the children of a hierarchy by double-clicking the parent. To quickly select and move a biped and its entire animation to a new location in space, use Move All mode on page 4331. Biped provides controls to help you give both arms or both legs the same pose. See Copy/Paste Rollout on page 4389 for more information. Biped Link Link Name Keyframe Mode Figure Mode Center of mass Bip01 (default) Positions entire biped Positions entire biped Pelvis Pelvis Does not move Does not move Head Head Does not move Does not move Neck Neck Does not move Does not move Spine Base Spine Does not move Positions upper body relative to lower body Tail Base Tail Does not move Positions tail relative to body Ponytail Ponytail1, 11, and so on Does not move Positions ponytail relative to body Clavicles R Clavicle, L Clavicle Do not move Positions arms relative to body Shoulders (upper arm) R UpperArm, L UpperArm IK from shoulder IK from shoulder Elbows (lower arm) R Forearm, L Forearm IK from hand IK from hand Hands R Hand, L Hand IK from hand IK from hand Freeform Animation | 4241 Biped Link Link Name Keyframe Mode Figure Mode Fingers Finger 0, 01, and so on IK from finger Positions finger relative to hand (if base selected) Hips (upper leg) R Thigh, L Thigh IK from knee IK from knee Knees (lower leg) R Calf, L Calf IK from foot IK from foot Feet R Foot, L Foot IK from foot IK from foot Toes Toe 0, 01, and so on IK from toe Positions toe relative to foot (if base selected) Animating by Rotating Links Use the standard 3ds Max Rotate transform to adjust a biped's posture by rotating its links. Use the main toolbar button, or right-click and choose Rotate from the quad menu. To make biped movement appear natural, certain biped joints are limited in how they can rotate, such as the elbows and knees. When a joint can rotate in all three axes, X, Y, and Z, it is said to have three degrees of freedom (DOF). A joint’s DOF can be modified by selecting it and then setting options on the Locks on page 3501 rollout of the Hierarchy panel. NOTE Changing a joint’s DOF will not replace its default DOF, meaning a locked axis by default can not be unlocked manually. The table below shows the degrees of freedom of each link. Biped allows a bit greater freedom than most human bodies are capable of. All rotations are performed in the local coordinate system. 4242 | Chapter 17 character studio TIP First select the link to rotate, then click Rotate. While the Motion panel is active, Biped sets the transform managers to reflect the degrees of freedom of that link. For example, if you select the pelvis and then click Rotate, Biped changes the coordinate system to Local and turns on the Y axis constraint. (For joints that have more than one degree of freedom, you might later need to change the axis constraint setting.) To rotate the biped pelvis in all three dimensions, refer to Pelvis as Ball Joint on page 4244. Biped Motion Constraints Some biped parts have special-case conditions that govern how you can transform them, as described in the table and sections that follow. Biped Link Link Name Free Axes Comments Center of mass Bip01 (default) X, Y, Z Rotates entire biped Pelvis Pelvis X, Y, Z If feet are planted, adjusts legs to keep feet and toes above ground Head Head X, Y, Z Neck Neck X, Y, Z Neck orientation does not affect head orientation Spine Spine, Spine1-4 X, Y, Z Spine rotation adjusts overall balance Tail Tail, Tail1-4 X, Y, Z Clavicles R Arm, L Arm Y, Z Shoulder orientation does not affect clavicle orientation Freeform Animation | 4243 Biped Link Link Name Free Axes Comments Shoulders (upper arm) R UpperArm, L UpperArm X, Y, Z Rotating pivots from shoulder to wrist Elbows (lower arm) R Forearm, L Forearm X, Z Hinge plus special rotation Hips (upper leg) R Thigh, L Thigh X, Y, Z Rotating pivots from hip to ankle Knees (lower leg) R Calf, L Calf X, Z Hinge plus special rotation Hands R Hand, L Hand X, Y, Z Feet R Foot, L Foot X, Y, Z If feet are planted, adjusts legs to keep feet and toes above ground Fingers Finger0, 01, 02 Finger1, 11, 12, amd so on X, Y, Z Finger bases have three free axes; other finger joints have Z only Toes Toe0, 01, 02 Toe1, 11, 12, and so on X, Y, Z Toe bases have three free axes; other toe joints have Z only Pelvis as Ball Joint The pelvis can be rotated in all three axes: X, Y, and Z. This ball joint provides three degrees of freedom, improving the flexibility of animating with a biped, because the pelvis gyrations are isolated from the center of mass (COM) rotation. This causes the COM to assume a smoother trajectory, which also influences the biped’s head and arms. As a result, they will look more natural moving in the body’s COM rotational space. 4244 | Chapter 17 character studio It's important to be aware of the following behavioral changes resulting from this: ■ The three-DOF pelvis motion is displayed as three separate Euler or quaternion (TCB) function curves in the Curve Editor and Workbench. ■ Using key reduction on the biped’s spine produces improved results. ■ Rotations on the new pelvic axes (X and Z) are keyable in layers and supported in MAXScript. ■ The default parametric footstep animation is slightly adjusted to use the three-DOF pelvis. ■ If a legacy biped asset such as a BIP file is loaded onto the 3ds Max biped, the pelvis-related data will be adapted to the new DOFs and the new coordinate space within which the pelvis rotates. ■ Using the Motion Mixer or Motion Flow, assets containing new pelvic rotation tracks will be blended with old assets lacking these tracks. Special Rotation: Elbows and Knees Elbows and Knees perform a special rotation when you rotate them about their X axis. They don't actually rotate around their X axis; this does not make sense because they have one degree of freedom. Instead, the upper and lower arm/leg are rotated together about an invisible axis defined by the line stretching from the shoulder to the wrist, and the hip to the ankle. This special rotation can be very useful for positioning the arms and legs. The special rotation can also be useful for creating characters with reverse knee bends. When the knees are rotated backward, at more than a 90-degree rotation from the front-facing human knee posture, Biped assumes the character has backward knees or bird legs, and uses this as a reference position for all .bip motions. Freeform Animation | 4245 Rotating the forearm along the X axis rotates the arm elements about an invisible axis between the shoulder and wrist. Balance: Spine Biped uses only the spine, in conjunction with the center of mass, to maintain the biped's balance. Because of this, rotating all of the spine or any one of its links causes the horizontal position of the body to change relative to its center of mass. These adjustments are performed in the center of mass's local reference coordinate system, ensuring that the figure will rotate naturally about its center of mass; for example, during flips in the air. On the Motion panel Key Info rollout on page 4367, you can turn this behavior off by setting Balance Factor to 0.0 for corresponding horizontal center of mass keys. The Balance Factor control is in the Body group on the rollout. Independent Orientation:Arms, Head, Feet Changing the orientation of a clavicle (the root Arm object) changes the position, but not the orientation, of its corresponding upper arm. In effect, the clavicles are a support from which the arms are suspended. Likewise, the orientation of the neck changes the position, but not the orientation, of the head. Although linked to the neck, the head typically 4246 | Chapter 17 character studio rotates independently of the neck, and interpolation of these individually set orientations produces more natural-looking motion. Similar to the head and arms, changing the orientation of the upper or lower leg changes the position, but not the orientation, of the corresponding foot. In this way, the foot orientation remains relative to the ground plane. Adjusting Keys with TCB Rotation Rather than creating extra keys to fine-tune the motion of the biped limbs, you can use the TCB controls to adjust ease in, ease out, and limb trajectory on keys that already exist. Visualizing Rotation Animations with Function Curves Another way to visualize your rotation animation is through the Curve Editor on page 3518. Each key you add is displayed and connected to other keys, creating a curve that represents your animation. You can use either the TCB Rotation Controller on page 3258 or the Euler XYZ Controller on page 3151 (on the Quaternion/Euler rollout on page 4355) to display your rotation curve as Quaternion or Euler, respectively. Each controller affects the curve differently based on separate rotation calculations. To learn more about this, refer to Working with Euler Curves on Biped Animation on page 4293. Tangent Euler Rotation curve Freeform Animation | 4247 Quaternion Rotation curve Procedures To change TCB for a biped arm: 1 On the Key Info rollout, turn on Trajectories. 2 Select a biped arm. 3 Use Next or Previous key to locate an arm key. 4 If the TCB group is not already displayed, click the TCB divider. 5 Change the Tension, Continuity, and Bias spinners. The trajectory changes to reflect the new parameters. Play the animation to see the change. TIP You can also access TCB controls by right-clicking on keys in the trackbar, Track View – Curve Editor or the Workbench Curve View. 4248 | Chapter 17 character studio Rotating Multiple Biped Links Freeform Animation | 4249 Selecting and rotating a hand and all its fingers causes the fingers to curl. You rotate multiple biped links to produce curling effects such as fingers curling around a glass or a tail curling up and down. You can choose from two methods to rotate multiple links: ■ Select and rotate multiple links manually. ■ Enable Bend Links Mode on page 4363 and then select and rotate any spine, neck, or tail link to use the character studio technique of naturally bending the entire spine, neck, or tail. Selecting and Rotating Multiple Links When you select and rotate multiple biped links, the rotation is individually applied to each selected link. This is a convenient way to get fingers to curl, for example, or to keyframe a biped's arms, legs, multiple-jointed neck, or tail. To select and rotate multiple links: ■ Select and rotate any number of links. 4250 | Chapter 17 character studio Typically, you select an object and all of its children; for example, the hand and all of its fingers. Using Bend Links Mode and Twist Links Mode You can use Bend Links Mode on page 4363 to rotate multiple links for the biped's spine, neck, or tail. Bend Links transfers the rotation of one link to the other links in a natural way. When applied to the spine, it is particularly useful for positioning the biped's hips. You can also use Twist Links Mode on the Bend Links rollout to twist multiple links along the X axis while preserving their relationship with the two other axes. Combining these two modes opens up a wider range of controls over your spine, neck or tail. To rotate all links in the spine, neck, or tail: 1 On the Bend Links rollout, turn on Bend Links Mode. 2 Select and rotate a single spine, neck, or tail link. The other links in the spine, neck, or tail rotate to match the single link's rotation. 3 On the Bend Links rollout, turn on Twist Links Mode. 4 Rotate the link in local X. The other links in the spine, neck, or tail twist properly to match the single link's rotation in X. TIP You can use Bend Links mode either to pose the biped or to animate the spine, neck, or tail while in Keyframe mode on page 8019. TIP You can also use the other Twist Links tools in the Bend Links rollout on page 4363 to further control the links' rotation. Freeform Animation | 4251 Using Controllers character studio lets you add 3ds Max controllers to the biped object tracks. This allows you to mix the biped animation with standard 3ds Max animation techniques. Why Add Controllers Adding controllers to biped body parts lets you create animation that is difficult to do with character studio alone. For example, you can create “stretchy” cartoon arm or leg animation by adding a Scale controller to animate the bipeds arms and legs. You could make a character shaking by using a Noise controller for its limb rotations or for a Scale controller on the spine objects to make a character breathing. An Audio controller could be used to synchronize movement with sound. Biped SubAnims Different controllers can be added together, blended or sequenced in a list called a Biped SubAnim. These are the same as the weighted list controllers in 3ds Max. By animating the controller weights you can increase or decrease the effects of the different controllers. You can enable, disable or collapse the list controller animation tracks. If you collapse the track, you can then bring them into the Motion Mixer, Motion Flow, or Layer editor or export them to a game engine. NOTE Biped SubAnims exhibits different behaviors based on whether you assign a controller or a constraint as the SubAnim. A SubAnim with a controller assigned will layer the controller animation with the existing biped animation. If you use a constraint, however, this will replace the existing Biped Animation. TIP SubAnims are best used when combined with freeform animation. You can use them with footstep animations but you may experience unexpected results. If this happens, simply convert the footstep animation to freeform before applying the SubAnims. Assigning SubAnims Biped SubAnims can be applied several different ways. You can assign controllers to the Biped SubAnim in the Assign Controller on page 4328 rollout of the Motion panel. 4252 | Chapter 17 character studio Controllers can also be added in the Animation Workbench on page 4483 using the Controller button to display the controller list. Right-click and choose Assign Controller from the right-click menu. You can assign controllers to multiple objects by using the SubAnims filter. Procedures To add a controller to a biped object: 1 Select the biped object that you want to control, and set a key for that object. 2 In the Motion panel, expand the Assign Controller rollout. The Biped SubAnim entry is displayed in the list window. 3 Expand the Biped SubAnim entry in the Controller window. List controller entries are displayed for BipScale, BipRotation, and BipPosition. 4 Expand the list controller you want to add to and highlight the first Available entry. The Assign controller button becomes active. 5 Click the Assign Controller button. An Assign Controller dialog appears. 6 Choose the controller to want to use, and click OK. 7 Play the animation and observe the effect. You can animate the parameters for the controllers using Track View or by right-clicking the list entry in the controller window and then choosing Properties. Controllers can also be assigned in the Animation Workbench by displaying the Controllers list, choosing an Available entry, right-clicking and choosing Assign Controller. To collapse a controller: You can collapse a controller to use the animation in the Motion Mixer, or with Layers, or to export to a games engine. 1 Select the biped object with the controller, for example an arm with an added noise rotation controller. Freeform Animation | 4253 2 On the Motion panel, in the Assign Controller rollout, click the Biped SubAnim controller you want to collapse. 3 Right-click the Biped SubAnim and choose Properties. A dialog appears with the Collapse choices. If a different dialog appears, you don't have the correct selection in the list window. Be sure you've selected the Biped SubAnim entry and not something else. 4 Turn on the tracks you want to collapse in the Enable group. 5 Turn on the options you want to use in the Collapse group. 6 To perform the collapse, click the Collapse button. The controller tracks are “baked” into the Biped tracks. The new keys will appear in the track bar, or in the Workbench Curve View if the Workbench is open. To add controllers to multiple biped parts at the same time: 1 In the viewport select the biped parts to which you want to add list controllers. 2 Open the Workbench. The selection list in the Select panel has the biped parts highlighted. 3 Click the Controllers button on the Workbench toolbar. The controller list appears to the right of the select tab. 4 Select the tracks you want to affect. 5 On the Filter panel, locate the part to Filter group. Set it to Selected Parts if it isn't already. 6 Choose a SubAnims filter from the drop-down list. 7 Adjust any other options you need to in the Filters tab, then click Position, Rotation, or Scale to add the subanims. 8 Expand the controller list to observe the newly added controllers. 4254 | Chapter 17 character studio To animate the weights of an added controller: You can animate the weights of an added controller to determine when the effect takes place. A weight of 0 will yield no effect, a weight of 100 will provide the full effect. See the tutorial “Using Controllers with Biped” for an example of animating the weights. 1 Add a controller to a biped object, using either method outlined above. 2 Immediately after adding the controller select the appropriate BipScaleList, BipRotationList, or BipPositionList entry in the controller list, and expand it to see the Weights. 3 Expand the Weights and select Weight 0. 4 In the Keyframing Tools rollout on the Motion panel, click the Manipulate SubAnims button. Three new rollouts appear in the Motion panel: Position List, Scale List and Rotation List. 5 Navigate to the appropriate List rollout. In the Layer window highlight the Controller you wish to weight. The Weight field becomes available 6 Turn on Auto Key, move the time slider and enter values in that field, or use the spinner to set keys to animate the weights. WARNING Don't even think about using the 3ds Max Set Key button to animate the weights. Avoid using this button with character studio as a rule. Use Auto Key or use the Key Info rollout set key buttons instead. Using Props Props are objects that a biped could be holding or carrying, such as a gun, sword, or briefcase. They are represented as boxes that are additional links in the biped hierarchy, an extension of the biped structure you can access at creation time or in Figure mode. If you are loading motion-capture data that contains prop information, this will transfer to the biped prop. Freeform Animation | 4255 Each biped can have up to three props. Prop data will work seamlessly with other advanced features of character studio: in the Mixer, Motion Flow, Unification, and Layered edits. Props are defined in the Structure rollout. Props appear as boxes in the biped hierarchy. They can be moved, stretched, and scaled in Figure mode as other biped parts can. Props are supported by Physique, and are animated using the biped Transform controller in the same way as other objects. Create your prop and position it in relation to the biped in Figure mode. Props can be made to follow the motion of either hand by keyframing the Position and Rotation coordinate space of the prop. Bipeds with multiple props as swords Animating Prop Linkage Props can change linked parents (similar to the 3ds Max Link controller) at any keyframe. This is done using the Position Space and Coordinate Space lists in the Prop section of the Key Info rollout on page 4367. Once a key is set on the prop at a given frame, you can set or change the coordinate space in which it is transformed by choosing a new space from the drop-down list. You set rotation and position coordinate space independently. 4256 | Chapter 17 character studio Position and rotation space controls Importing Motion-Capture Prop Data If your motion-capture file includes prop data, character studio can read that data and apply it to a prop object. Upon loading a CSM file on page 7945, the motion data will be applied to the prop. If the prop switches from one hand to another, the program will automatically determine the switch of the prop's coordinate spaces as the prop is exchanged between the hands. This can be easily changed once the data is in the scene: go to the desired frame, choose a new coordinate space (as described in the previous section), then set a key. When loading a BIP file for retargeting onto other characters, the props move with each of the hands. The software ensures that the hands come together at the precise position on the prop during transfers. Props can be animated with 3ds Max controllers and that animation can then be collapsed onto the prop’s transform controller for editing with motion flow or the mixer. Freeform Animation | 4257 Procedures Example: To animate a biped swinging a prop with one hand: 1 Create a biped with a single prop. The biped appears with a single prop displayed as a box positioned near the biped's right hand. 2 On the Motion panel, on the Biped rollout, turn on Figure Mode. 3 Scale the prop so it is the correct size and proportion to be a sword. 4 Rotate and move the prop so it is in the correct orientation in relation to the right hand. 5 Turn off Figure mode. 6 Set a key for the prop at frame 0. To do this, make sure the prop is selected, then use the Set Key button in the Key Info rollout. 7 Now animate the biped as you like, or open a BIP file of a character swinging a sword. 8 Turn on Auto Key, then select the prop. 9 Animate the prop using standard 3ds Max transforms. Example: To animate the biped switching the prop to the other hand: 1 Follow the steps in the previous procedure to animate the biped swinging the prop. 2 Move to the frame where you want the biped to switch the prop the other hand. 3 Move the biped's other hand so it is in contact with the prop, and set a key for the hand. 4 Select the prop and set a key for it. 5 Move the time slider ahead one frame and set another key for the prop. 6 On the Key Info rollout, expand the Prop section. The lists for Position and Rotation coordinate spaces should be available. Change the Position from the right hand to the left hand, and click Set Key again. 4258 | Chapter 17 character studio The prop will now follow the movement of the left hand in the frames that follow. NOTE By default, the prop's rotation remains in Body space. Depending on your animation, you might also want to set keys so the Rotation space is Right Hand before the switch, and Left Hand after the switch. To collapse the transforms of a prop: 1 Animate the prop however you like. You can add list controllers to the prop as you can to any other part of the biped. 2 When the animation is correct, select the prop. 3 In the Motion panel hierarchy list, select the prop transform list you want to collapse, and then right-click. A quad menu appears. 4 Choose Properties from the quad menu. 5 In the dialog that is displayed, make the appropriate choices, and then click Collapse. After a short delay, the track bar displays the keys that have been added. TIP If you see a different Properties dialog that doesn't offer you the Collapse button, you are too low in the hierarchy. Select the next level up in the hierarchy and try again. Freeform and IK Using IK Keyframe Parameters Biped's inverse kinematics solution has three parameters set at each key of the arm and leg keyframe tracks. As the limb moves through each key: ■ IK Blend sets the motion interpolation to be a blend of forward and inverse kinematics. This allows you to blend swinging motions with hand-or-foot directed motions. Rotating an arm to move a hand is an example of forward kinematics. Using the position of the hand to move the arm is an example Freeform Animation | 4259 of inverse kinematics. The default blend is 0.0, or full forward kinematics. An IK Blend of 1.0 is full inverse kinematics. ■ Body or Object determines the reference coordinate space of the IK path. This allows you to move the IK path with your character's body or temporarily attach the hands or feet to follow other objects. The default is Body. ■ Join To Prev IK Key determines if the key should be part of the previous key (and have the same reference position as the previous key). Biped has three automatic ways to set these parameters. Setting planted, sliding, or free keys creates keys with different combinations of these three parameters. ■ Setting a planted key creates a key with IK Blend set to 1.0, Object and Join To Prev IK Key turned on. ■ Setting a sliding key creates a key with IK Blend set to 1.0, Object turned on, and Join To Prev IK Key turned off. ■ Setting a free key creates a key with IK Blend set to 0, and Body turned on. Join To Prev IK Key is turned off. IK Blend The IK Blend control is in the Key Info rollout on page 4367; visible when you expand the IK divider bar. You set IK Blend while in Keyframe mode . 4260 | Chapter 17 character studio IK group parameters IK Blend can be set per key for any arm or leg track. The IK Blend setting determines whether, at a particular key, an arm or leg is moving through it using inverse kinematics, forward kinematics, or a blending of the two kinematic solutions. An IK Blend value of 0.0 means full forward kinematics. The arm (or leg) is moved by interpolating the rotations of the joints at the keys. The hand (or foot) tends to move along sweeping circular arcs in this case, and the motion appears to be motivated by the apparent swinging at the joints. An IK Blend value of 1.0 means full inverse kinematics with the hand (or foot) being used as an end-effector. A spline path is computed through the keys of the hand, and the hand moves along that spline. Joint angles for the rest of the arm are computed to allow the hand to follow the spline. The motion, in this case, appears to be directed by the hand (or foot). An IK Blend value between 0.0 and 1.0 means a combination of inverse and forward kinematics; when IK Blend is closer to 0.0, forward kinematics are more heavily weighted in the solution, and when IK Blend is closer to 1.0, inverse kinematics are more heavily weighted. Freeform Animation | 4261 It is best to use forward kinematics when you want the arms to swing, such as when a biped is walking. In the case of a boxer, however, since the hand should follow a directed path when punching, inverse kinematics should be used. To set the IK Blend value of a key: 1 Select a single arm or leg track by selecting one or more parts of a biped's arm or leg. The IK Blend spinner and the other controls in the IK area are enabled only when a single arm or leg track is selected. 2 Set a key if one doesn't already exist. 3 Set the desired value of IK Blend. Body and Object Options By default, Biped calculates the kinematics solution using the coordinate system of the biped figure's center-of-mass, or the Body coordinate system. This means that the IK path of the hand (or foot) translates and rotates with your character as it moves. For example, the boxer's hand trajectory always moves relative to the weaving, bobbing, and turning of the boxer's body. The Object option is used for animating dynamic links between the limbs and other objects in the scene. The IK Blend control activates when a biped arm or leg (hand and foot) key is current. ■ 0 with Body turned on is forward kinematics on page 7987, or normal biped space. ■ 1 with Body turned on is inverse kinematics on page 8016, creates more straight-line motion between biped keys. ■ 1 with Object turned on, but no IK object specified, puts the limb fully into world space. Use this to control foot sliding in a freeform animation. ■ 1 with Object turned on and an IK object specified puts the biped limb into the coordinate space of the selected object; the biped limb follows the specified object. 4262 | Chapter 17 character studio Join To Prev IK Key This IK constraint is used to specify if a footstep is sliding or planted. If Join To Prev IK Key is on, then the biped foot maintains a reference position to the previous key, keeping the foot planted. If Join To Prev IK Key is off during a footstep, then the foot can be moved to a new position creating a sliding footstep. Join To Prev IK Key also functions to lock the biped hands in space. Use Set Planted Key on the biped hands to lock their position in space. TIP If you are having trouble with a foot or hand popping back to a previous ‘keyed’ position, check to make sure that the Join To Prev IK Key is off, especially when you're using pivot points. See also: ■ Key Info Rollout on page 4367 Understanding Walk Cycle Constraints Walking motions in both freeform and footstep animations should follow the rules of certain IK constraints. In both freeform and footstep animation, a footstep interval is the start and end of a sequence of IK constraints in world space, with IK Blend set to be greater than 0.0. A biped foot in the Move state should have body space turned on with an IK Blend of 0.0. By using these IK constraints, you can convert between the two animation methods seamlessly. In a freeform walking animation, typically you need two key types for the legs: ■ If the foot is planted on the ground, the key must have IK Blend=1.0 with Object Space and Join To Prev Key turned on. ■ If the foot is in the air between footsteps, then IK Blend=0.0 with Body Space turned on, and Join To Prev Key turned off. In the course of creating a walk or run cycle, you need to alternate these IK constraints for the feet. If the foot is sliding on the ground, then the IK constraints are IK Blend=1.0 in Object Space with Join To Prev Key tuned off. All of these IK parameters can be found on the Key Info rollout. To speed up the process of applying these IK constraints, the Key Info rollout has three additional set key buttons: Set Planted Key, Set Sliding Key, and Set Freeform Animation | 4263 Free Key. By clicking one of these buttons, all the necessary IK constraints are applied automatically. For example, by clicking Set Planted Key, all of the IK constraints necessary are applied at once; IK Blend=1.0 with object space and Join To Prev Key turned on. See also: ■ Key Info Rollout on page 4367 Walking Keys Let's examine the IK constraints for one footstep. The footstep rolls on the heel of the foot, then rotates down flat on the ground, then raises up on the ball of the foot, rotates at the end of the toes, and finally lifts off of the ground. Touch state: pivot planted at heel at frame 14 The foot is touching the ground at the heel. In the Key Info rollout, Set Planted Key is clicked to set IK Blend=1.0 with object space and Join To Prev Key turned on. A pivot is selected on the heel of the foot. 4264 | Chapter 17 character studio Pivot point shifts to ball of foot at frame 16. The next keyframe is also a planted key, as the foot is flat on the ground. In the Key Info rollout, Set Planted Key is clicked. The pivot on the ball of the foot is selected. Freeform Animation | 4265 Planted key set to lock pivot at frame 17 This key has the pivot on the ball of the foot as well. Click Set Planted Key. Two consecutive keys with the pivot at the ball of the foot are necessary to rotate the foot about the ball of the foot. 4266 | Chapter 17 character studio Heel lifts, toe remains flat at frame 18 After rotating the foot about the pivot at the ball of the foot, you set another planted key with the pivot on the toe. Freeform Animation | 4267 Foot rotates off pivot at end of toe at frame 19. Here is another planted key with a pivot at the end of the toe; the foot rotates about the tip of the toe. 4268 | Chapter 17 character studio Free Key allows foot to travel off the ground at frame 20. Here, Click Set Free Key to set a free key, the foot is off of the ground. The cycle is repeated to create a walk or run cycle in a freeform animation. The pivot points are selected by turning on Select Pivot on the IK Key Info rollout, selecting a pivot in the viewports, turning off Select Pivot and then rotating the foot in the viewports. When Join To Prev is turned on, as it is with all planted footstep keys, the foot pivots at the previous key's pivot point. If you find that the foot is not rotating around the visible pivot, remember that it is using the previous key's pivot. In such a case, you must set two consecutive keys with the pivot at the same location: then the foot will rotate around the displayed pivot. If you adhere to these rules in creating footsteps in a freeform animation, then you can use Convert in the Biped rollout to easily change from a freeform animation to a footstep animation. Note that IK constraints in a footstep animation are applied exactly the same way as in a freeform animation. If you examine a footstep animation, you will notice that the foot IK constraints follow the same rules as for a freeform animation. Footsteps are simply gizmos Freeform Animation | 4269 that define a foot's coordinate system. A foot can slide and move relative to the footstep. Also, if you delete or add a key in a footstep animation, the footstep duration is changed. Setting Keys for Feet and Hands You can animate biped's body parts as you do other 3ds Max objects: by setting keys for postures at keyframes. character studio provides three different ways to set keys at the current frame: ■ Pose the biped body part, and then click one of the set key buttons in the Key Info rollout. ■ Turn on the Auto Key button, and then pose the biped part. You can transform the parts using transform tools, or you can copy and paste poses and postures to keyframe the biped. ■ Right-click the time slider and use the Create Key dialog to create keys for selected biped parts. WARNING Do not use the large Set Key button, found below the viewports, when animating a biped. Doing so will cause unpredictable results. Instead, always use the Set Key buttons found on the Key Info rollout. If you are animating a walk cycle or an intricate hand animation, then you should make use of the three different types of set key buttons in the Key Info rollout. Each set key button applies different IK constraints, depending on whether a foot or finger is in a planted state, a move state, or a sliding state. For more information on the three set key buttons, see Key Info Rollout on page 4367. You can also set keys to make hands and feet follow a stationary or animated object. See Animating IK Attachments on page 4278. If a Bones system using the IK controller or a particle emitter is linked to the biped, the Auto Key button must be on in order to position the biped's limbs. This is also true for biped objects if you turn on 3ds Max Trajectories at the top of the Motion panel, or if you choose Views > Show Ghosting. 4270 | Chapter 17 character studio The Set Key options on the Key Info rollout have the advantage that you can easily experiment with different poses for your character without unintentionally setting keys as a side-effect. Use the Set Key buttons to commit the changes you make to the pose. The Auto Key mode approach is especially useful when you make adjustments to keyframes that have already been set, or if you are used to working with Auto Key in3ds Max and tend to forget to click the Set Key buttons. TIP Use Set Key to insert a key on a frame where a key doesn't exist. You'll often want to refine the motion using controls in the Key Info rollout, without selecting and moving an object in the viewport. Keyboard shortcut: Pressing 0 (zero) is equivalent to clicking Set Key on the Key Info rollout. To use character studio-specific shortcuts, make sure that the Keyboard Shortcut Override Toggle on page 7858 is active. Ground Plane Collision Detection for the Pelvis and Feet When one or two feet are planted, and the pelvis or a planted foot is rotated, character studio detects collisions of the foot and its toes with the ground plane defined by the planted foot's footstep or pivot point. As the pelvis or foot is rotated, character studio uses inverse kinematics to alter the rotations of the leg joints so that the foot and its toes do not go below the plane defined by the footstep or pivot point. NOTE A biped foot on a sliding footstep is a special case. The biped foot can be moved to any position and orientation for the duration of the footstep. NOTE Changing rotation values for the legs and toes also maintains collision detection, but the position adjustment is not made until you set a key. Freeform Animation | 4271 Animating Pivots 4272 | Chapter 17 character studio In both freeform and footstep animation, pivots allow you to rotate the biped’s hands and feet around various points. For example, by activating a pivot on the ball of a foot, you can rotate the foot around the ball of the foot. The biped’s hands and feet have the same number of pivots, and pivot location is similar. Pivots are active only if the biped hand or foot is in world or object coordinate space. In a walking motion, you can pivot on the heel first, then on the ball of the foot, and finally onthe toes. Pivots are essentially extensions of the IK chain. By setting a planted key for the hand, the hand is anchored in world space: you can move the biped or the collarbone and the hand remains planted. Pivots on the hands make it easy to animate hands and fingers. While pivots are used in both freeform and footstep animation, the pivots are only visible and accessible when in Freeform mode. Biped IK To understand interactive IK limb manipulation using character studio, it is useful to distinguish two types of limb joints: primary and secondary. The primary joints are the shoulder, elbow, hip, and knees. Animals use primary joints to coordinate the positioning of hands and feet, as these joints Freeform Animation | 4273 have the most influence and flexibility in positioning tasks. Even the placement of fingers and toes over specific spots is the task of the primary joints. The secondary joints are the wrists, ankles, toes, and fingers. These joints are typically used for grasping and support rather than positioning, so they most frequently exercise independent joint angle control suited to a particular task, such as rotating the foot to raise the heels during walking, or curling the fingers around an object. Because these joints have little influence on end effector position, they are rarely engaged for positioning tasks. For example, if you want to place your finger on your nose, you will most naturally rotate only your shoulder and elbow, keeping your wrist stationary. character studio mimics the IK behavior of "natural" systems. The primary joints are used for IK positioning, while the secondary joints are independently and precisely controlled by the animator. The secondary joints will not rotate unless the animator explicitly selects and rotates them. Therefore, if an IK pivot is set, and the limb is interactively manipulated, (say, the finger is moved onto the nose), only the primary joints adjust to satisfy the IK constraint. The secondary joints remain in place and will never "drift" in an IK solution; they simply obey the values set by the animator. Because there is no drift for the secondary joints, the animator does not have to tediously assign "tension" values to hold them in place. If an IK pivot point constraint has been set, some by-products of character studio "natural IK" are that: ■ Interactively rotating a secondary joint will always adjust the primary joints to hold the IK pivot in place. ■ character studio "special rotations," the forearm/calf X-axis rotations, rotate the elbow about the axis from the shoulder to the wrist and rotate the knee about the axis from the hip to the ankle. These rotations give the animator a direct way to interactively rotate the primary joints while holding the IK pivot in place. ■ Interactively translating a limb part to move the IK pivot will alter only the primary joints. ■ Interactively rotating a primary joint will move the IK pivot with it. After an IK pivot has been placed, applying 1) and 2) gives the animator exact control over all possible IK solutions. The IK pivots can be easily moved by applying 3) and 4). In general, you don't need to remember these "rules," because the system works in an intuitive way. You merely need to position the pivots as desired, set the IK constraint, and then fine-tune the posture of 4274 | Chapter 17 character studio the limb, if desired, by rotating the secondary joints and using the special rotation to adjust the primary joints. NOTE During animation playback, the Ankle Tension parameter is used to set the relative importance of the interpolated ankle joint over the interpolated knee joint for intervals in between keyframes. This is relevant only to interpolation on bipeds. Freeform Animation | 4275 Using IK constraints and pivots on the biped hands and feet allows you to animate quadrupeds. See also: Key Info Rollout on page 4367 ■ Procedures To use pivots: 1 Select a biped hand or foot. 2 On the Key Info rollout, click Set key, and then choose Object. You can also select an object if you like at this point, by selecting a non-biped object in the viewport. 3 Turn on Select Pivot. 4 Select a pivot in the viewports. 4276 | Chapter 17 character studio Pivots are shown as red dots on the hands and feet. Use wireframe viewport shading if you have problems seeing the choices. 5 Turn off Select Pivot. 6 Rotate the hand or foot around the selected pivot. TIP If you find that you are not rotating around the selected pivot, set two consecutive keys at adjacent keys with the same pivot. Animating a Quadruped While character studio was initially designed as an specialized program for animating two-legged, or bipedal characters, it works quite well for creatures that walk on four or more legs. Here are some general rules to follow when animating characters that don't walk upright on two legs: ■ Use Freeform animation, not Footstep animation, if your character walks on four legs all the time. ■ Pose the biped to match the mesh in Figure mode, scaling and rotating body parts so the spine is horizontal, and the arms stretch to reach the ground. ■ If appropriate for your mesh, set Leg Links to 4 and rotate the legs so the knees point backwards. You can set this value at creation time in the Create Biped rollout on the Create panel, or later using the Structure rollout on page 4424 on the Motion panel. ■ Animate pivot points with planted keys to mimic the rolling of the feet from heel to toe. Treat the hands the same as the feet. Set planted keys on the hands and feet, then move the center of mass object to bend the knees and elbows. See Key Info Rollout on page 4367 for more information on the three set key buttons. ■ You can save3ds Max objects as part of the BIP file. If you need additional legs (for a centipede) or extra arms or wings you can use standard bone objects with IK chains, and save all of it with the BIP file. ■ The Balance Factor in the Key Info rollout Body group, is designed to synchronize upper body and lower body movement. Set Balance Factor to Freeform Animation | 4277 0 if you find the movement of spine links is affecting the biped's hip movements in an undesirable way. Animating IK Attachments A biped can interact with other objects in the 3ds Max scene. Links between objects are usually static, unless you're using the Link controller. In character studio, such attachments are "animatable" as well; during the course of an animation, the links between the hands, feet, and objects in the scene can change as your character interacts with them. This capability is useful for: ■ Creating freeform motions (without footsteps and gravity) that require that feet or hands be planted with IK, and then released. Examples are climbing a ladder, riding a bike, or rowing a boat. ■ Motions that involve the temporary manipulation of objects, such as bouncing or kicking a ball, opening a door, or touching another biped. An object to which a hand or foot can be attached is called an IK object. See the tutorial “Interacting with Objects” for lessons that show you how to make a biped iron clothing, ride a skateboard, bounce a basketball, climb a ladder, and pick up a briefcase. Procedures To make a hand or foot follow an object: 1 Create the object for the hand or foot to follow. 2 Select the biped's hand or foot. TIP You can select any part of the biped's arm to set keys for the hand, or any part of the leg to set keys for the foot. 3 In the Key Info rollout on page 4367, expand the IK divider to see the IK section of the rollout. 4 Click Set Key. 4278 | Chapter 17 character studio Once a key is set, the IK Blend value and other IK parameters become available. 5 Click Select IK Object, and choose the object for the hand or foot to follow. The object name appears in the field below the Body and Object radio buttons. 6 On frames where you want the hand or foot to start following the object, set a key, set IK Blend to 1.0 and choose the Object option on the Key Info rollout. You can also click Set Sliding Key to set these parameters all at once. NOTE If Object space is turned on with no IK object specified, the IK constraints will be in World space. In effect, the hand or foot will be attached to the world, and will not move during the time such a key is set. Set one key when you want the attachment to begin, and a second key when you want the attachment to stop. This defines an Object space interval, the duration of a temporary attachment. 7 On the frame that defines the end of an attachment interval, set IK Blend to 1.0, choose the Object option, and turn on Join to Prev IK Key. You can also click Set Planted Key to set these parameters all at once. 8 On frames where you don't want the hand or foot to follow the object, set a key, set IK Blend to 0.0 and choose the Body option. You can also click Set Free Key to set these parameters all at once. To anchor a hand or foot: You can use anchoring to temporarily look a hand or foot to a specific point in space while you are animating IK attachments. 1 Move and rotate the hand or foot into the desired posture. Freeform Animation | 4279 2 On the Keyframing Tools rollout, click the button for the limb you want to anchor: Anchor Right Arm, Anchor Left Arm, Anchor Right Leg, or Anchor Left Leg. NOTE The arm or leg you select beforehand does not actually have to be the same as the arm or leg you are anchoring. 3 Set keys for the arm or leg as described in the previous procedure. NOTE You can also use anchors to hold a foot or hand in position while you render the animation. However, be aware that anchors are turned off when you close the MAX file. If you want to use anchors from one session to the next, you must turn them on again the next time you open the file. Editing Freeform Animation The topics in this section deal with the editing of freeform animation for bipeds. They are: Editing Biped Keys on page 4280 Copying and Pasting Postures and Poses on page 4281 Mirroring Motion on page 4287 Using Layers on page 4288 Editing Trajectory Keys on page 4290 Editing Biped Keys You can move back and forth between keys by clicking the Previous Key and Next Key buttons on the Key Info rollout. The fields to the right of these buttons indicate the key number and frame number. 4280 | Chapter 17 character studio As with other 3ds Max objects, you can also move back and forth between keys by turning on the 3ds Max Key Mode Toggle, selecting an element associated with a given track, and then using the 3ds Max buttons Next Frame and Previous Frame. For example, you can view keys, move between them, and set keys for a right arm track if any of the right arm's objects (clavicle, upper arm, lower arm, hand, fingers) are selected. Or use the < and > keys on the keyboard to move back and forth between keys in Key Mode. You can delete a key by clicking Delete Key in the Key Info rollout. The biped part that has the key must be selected, and the current frame must be the keyframe you want to delete. Keys that are locked (appearing in red in Track View) cannot be deleted. TIP When you've selected the biped part you want to transform, click Lock Selection Set on the 3ds Max prompt line. Now you can transform the part without accidentally selecting a different part of the biped. The default keyboard shortcut for Lock Selection Set is the spacebar. Copying and Pasting Postures and Poses The Copy/Paste rollout on the Motion panel provides controls to help you copy and paste biped postures, poses, and tracks. A posture on page 8096 is the rotation and position of any selection of biped objects. A pose on page 8095is the rotation and position of all the objects in a particular biped. A track on page 8150 is the animation for any selection of biped parts. For information on working with tracks, see Copying and Pasting Tracks on page 4311. Freeform Animation | 4281 You can create and store postures, poses, and tracks in multiple buffers accessed by a drop-down list. You can choose from that list and see a thumbnail image associated with the selection, then paste that selection onto the same biped or any other biped in the scene. You can choose between posture, pose, or track for these operations. Using these tools lets you work in a traditional pose-to-pose method of animating. You can create a variety of poses and postures, store them in the list, then in Auto Key mode, copy them to any biped at any frame to create animation. Use the Copy Tracks function to copy the animation of biped parts onto other parts and other bipeds. You can further manipulate these tracks with the Curve Editor and Dope Sheet Editor, using all the standard tools found there. Copy Tracks works with both footstep and freeform animation. TIP The copy collections on page 4390 feature acts as an additional layer of organization, allowing your copied postures, poses, and tracks to be grouped together so you can transfer them between files within a single session. After saving a collection, you can load it into another scene either by replacing the current collection or by appending yours to it. If you choose to append, the collection maintains the copy buffer structure. 4282 | Chapter 17 character studio NOTE You must create a copy collection before you can copy a biped's posture, pose or track. Using Paste Posture The Paste Posture command is useful for copying a posture in one frame of an animation to another frame of the animation. Copy the posture, then turn on Auto Key and move to another frame, then paste the posture. The Paste Posture and Paste Pose commands are also useful for copying a pose from one biped to another. Copy the pose or posture, select the other biped, and then paste. Copying a posture then using Paste Posture Opposite is particularly useful for copying the posture of an arm or leg or a part of an arm or leg onto the opposite arm or leg of the same biped. Both Paste Posture and Paste Posture Opposite work differently in and out of Figure mode. Out of Figure mode, only the orientation of the copied links is pasted. In Figure mode, both the orientation and the scale of the copied links are pasted. Also, when you paste the finger base, toe base, spine base, tail base, or clavicles in Figure mode, the position of that link relative to the biped's body is pasted. Copying the Entire Biped Pose The Copy Pose functionality allows you to copy the rotation and position of all the parts of the entire biped at once. It doesn't contain the animation track data, only the individual keys at that frame, and the buttons to copy tracks are unavailable when Copy Pose is in use. Freeform Animation | 4283 Pose shows the whole biped You can create animation using Copy Pose by simply copying different poses to the same biped at different frames, and setting keys for those poses. Copy Pose works with the character studio Set Key buttons found on the Key Info rollout on page 4367, and with Auto Key mode. WARNING Don't use the Set Key Mode toggle or the large Set Keys button next to Auto Key. These will not produce the correct results. Keyboard Shortcuts The following are Biped keyboard shortcuts to the copy and paste posture commands. Make sure the Keyboard Shortcut Override Toggle on page 7858 is active. Shortcut Meaning Alt+C Copy Posture Alt+V Paste Posture Alt+B Paste Posture Opposite 4284 | Chapter 17 character studio Procedures To copy a posture: 1 Select the set of biped parts that defines the part of the biped's posture you want to copy. 2 On the Copy/Paste rollout, click Create Collection and rename the new collection Biped Posture. 3 Click Posture to toggle Posture mode and then click Copy Posture. The thumbnail image appears in the image window below the Copied Postures drop-down list. 4 Rename the posture by editing the name in the Copied Postures name field. The posture of the set of selected objects in the biped is copied to the list. You can retrieve this posture and use it to paste (or paste opposite) to any biped at any frame. For hands-on experience using the Copy/Paste rollout functions, see the lesson called “Creating a Simple Freeform Animation” found in the Animating with Freeform tutorial. To paste the posture: NOTE Turning on the Auto Key button before pasting posture automatically sets a key for all objects whose posture has changed. 1 Choose the Posture you want from the copied postures drop-down list. 2 Select the biped you want to paste to, or move to another frame for the same biped. 3 Click Paste Posture. The copied posture is pasted onto the selected biped. It doesn't matter which part of the biped is selected; all biped parts whose posture was saved by the most recent Copy are pasted. WARNING If you paste a posture while the Auto Key button is off, no key is set. If you want the pasted posture to set a key, you must click the character studio Set Key button in the Key Info rollout while objects are still selected. Freeform Animation | 4285 To paste a limb posture on the opposite limb: 1 On the Copy/Paste rollout, click Posture. 2 Select all of the limb, arm, or leg whose posture you want to copy. 3 Click Copy Posture. The posture thumbnail image is displayed in the image window, and the new posture name appears in the named posture field. 4 Rename the posture. The default names combine the chosen body track with the selected bodyparts. It's a good idea to replace this with a descriptive name you can easily identify with the action it represents. 5 Click Paste Posture Opposite. The opposite limb now has the posture of the limb you copied. To copy the entire pose of a biped: 1 Select any part of the biped whose pose you want to copy. 2 3 On the Copy/Paste rollout, click Create Collection and rename the new collection Biped Pose. Click Copy Pose. 4 Advance to a new frame or select another biped. 5 6 Turn on Auto Key. Click Paste Pose or Paste Pose Opposite. TIP You can use Paste Pose Opposite to create symmetrical runs and walk cycles. 4286 | Chapter 17 character studio Mirroring Motion Mirror, on the Keyframing Tools rollout on page 4380, mirrors the motion of the biped through both the X and Y axes of the World coordinate system. The entire biped animation, including all footsteps and keys, is mirrored symmetrically through an axis that joins the center for the biped to the world origin. For example, if a biped is walking from the center of the world grid toward the user, the mirror will change the motion so the biped is now walking away from the user. Original motion Freeform Animation | 4287 Mirrored motion Use Mirror if you want to create the opposite of a motion you've already created. For example, if a biped walks to the left and swings its right arm, mirroring the motion results in a motion where the biped walks to the right and swings its left arm. The mirrored motion replaces the existing motion for the biped. If you want to keep the existing motion and add the mirrored motion, use Paste Opposite in the Copy/Paste rollout. NOTE This feature mirrors only those biped tracks that have at least one key. The position of a keyless object is not mirrored. Using Layers Layers allow you to add successive layers of animation above the original biped animation. This is a powerful way of making global changes to your character animation. For example, simply add a layer, and rotate the spine forward at any frame, and a run cycle becomes a crouched run. The original biped motion is kept intact, and can be viewed by switching back to the original layer. Layers can be viewed individually, or as a composite of all the 4288 | Chapter 17 character studio animation in all the Layers. Layers behave like a freeform animation on page 7988: the biped can adopt any position. Layers allow you to easily adjust raw motion capture data containing keys at every frame. Simply add a layer, and keyframe the biped. You can also use layers to change the global position of the biped in a freeform or footsteps animation by adding a layer and moving the center of mass. See also: ■ Layers on page 8022 ■ Layers Rollout on page 4403 Procedures To increment all keys using layers (global offset): 1 On the Motion panel Layers rollout, click Create Layer to create a new layer. Enter a name for the layer in the Layer name field. 2 Create an offset (or "increment") by setting one key. You can either use Auto Key mode, or click Set key on the Key Info rollout on page 4367 (this can be done at any frame.) 3 Click Collapse to collapse the layer. To increment an interval of keys with an envelope (blended offset): 1 Create a new named layer. 2 Create an offset by setting one key. You can use either Auto Key mode, or click Set Key on the Key Info rollout at the frame where the increment is to occur. 3 4 To create the envelope, use Snap Set Key to create keys before and after the incremented range. Click Collapse to collapse the layer. Freeform Animation | 4289 To increment an interval of keys without an envelope (nonblended offset): 1 Create a new named layer. 2 Create an offset by setting two keys. You can use either Auto Key mode, or click Set Key on the Key Info rollout. Set one key before the frame where the increment starts, and another after the frame where the increment ends. 3 4 Use Snap Set Key to create keys before and after the incremented range to clamp the motion to the offset only occurs in the range between the two keys. Click Collapse to collapse the layer. Editing Trajectory Keys By turning on biped trajectories, selecting the center-of-mass track, and turning on Sub-Object: Trajectories, you can select a key on the trajectory. Then either use Bend Horizontal in the Keyframing Tools rollout on page 4380 to bend the trajectory about the selected key, or simply move the key. You can move center of mass trajectory keys either horizontally or vertically. This allows you to view the entire trajectory of the center of mass and bend or edit the trajectory. 4290 | Chapter 17 character studio TIP You can select the center of mass's horizontal or vertical tracks by clicking the appropriate button in the Track Selection rollout on page 4348. Above: Bending the trajectory Below: Moving a key on the trajectory WARNING Do not use 3ds Max trajectories (Motion panel > Trajectories text button) to edit biped trajectories. Freeform Animation | 4291 Procedures To bend a biped trajectory: 1 Select an animated biped. 2 On the Biped rollout of the Motion panel, expand the horizontal bar (click the plus sign at the left) to display the Modes and Display groups. 3 In the Display group, turn on Trajectories. The trajectory is displayed in the viewport for whatever biped part is selected. WARNING Don't click the Trajectories button next to Parameters. That is for other scene objects, not bipeds. 4 In the Track Selection rollout, click Body Horizontal. The center of mass object trajectory is displayed. 5 At the top of the panel, below Selection Level, turn on Sub-Object, and choose Trajectories on the drop-down list if it isn't already displayed. 6 In a viewport, select as many keys as you want on the trajectory. The selected keys turn red in the viewport. 7 If you want to bend the trajectory open the Keyframing Tools rollout and locate the Bend Horizontal spinner. Then adjust the Bend Horizontal values as desired. To edit keys on the Center of Mass trajectory: 1 Load a Freeform animation. 2 On the Key Info rollout turn on Trajectories. 3 On the Track Selection rollout click Body Horizontal or Body Vertical. 4 Turn on Sub Object Trajectories at the top of the Motion panel. 5 In the viewports select and move keys on the Center of Mass trajectory. 4292 | Chapter 17 character studio Working with Biped Animation Working with Euler Curves on Biped Animation You can control a biped's position and orientation using Euler curves in addition to quaternion curves in the Workbench and Curve Editor. Using the Euler XYZ controller is an efficient way to animate your biped because you can use Bezier tangents to change the interpolation of your XYZ curves (quaternion curves do not have tangents). To learn more about how the Euler XYZ and TCB Rotation controllers differ from each other, refer to Euler XYZ Rotation Controller on page 3151. You can switch between Euler XYZ and TCB Rotation controllers via the Quaternion/Euler rollout on page 4355. The Curve Editor on page 4483 displays the animation curves based on the chosen controller. Each curve is labeled starting with one of the following: ■ “Quaternion Rotation of the ...” ■ “Tangent Euler Rotation of the ...” ■ “TCB Euler Rotation of the ...” You can animate most biped parts (center of mass, pelvis, spine, head, neck, arms, legs, and tail) in Euler. However, fingers and toes are considered differently, as all first base links are controlled as quaternion and any subsequent links as TCB/Euler. Fingers and toes do not have tangents. Biped limbs with only one degree of freedom (DOF), such as forearms and lower legs, are controlled with a single TCB/Euler curve. Tangent Euler Rotation curve Working with Biped Animation | 4293 NOTE Props are not supported with the Euler controller. Rotation curves on a biped (including its center of mass) are always set in local parent space, whether they are controlled in Euler or quaternion. The XYZ function curves of an Euler rotation track are locked together. This means that creating a new key on one axis automatically does so for all axes. Also, moving a key in time drags all three axes with it. Displaying Position Curves Bezier position curves are available only for the biped's hands, feets, and center of mass (COM). Hands and feets' positions are set in world space while the COM position is set local to the world. FK/IK key blending is illustrated as follows: ■ Full lines represent IK periods. ■ Gaps between lines represent FK periods. ■ Vertical dotted lines represent a change in pivot points. NOTE Keys set to Join to Prev IK Key on page 4259 are locked in value until the next un-joined key. TIP The Workbench and Curve Editor are synchronized so changing the curve display from the Workbench toolbar on page 4483 also updates the display from the Curve Editor, as well as activate the corresponding tool from the Biped Toolbar on page 3572. 4294 | Chapter 17 character studio Curve Conversion Between Quaternion and Euler When an animation converts from one controller to the other, its integrity is maintained as much as possible. This means that despite variations in key interpolation results, the keyframed poses are preserved. If you convert a quaternion rotation curve to Euler, the resulting tangent keys are set to Smooth. If, on the other hand, you switch an Euler rotation curve to quaternion, the bezier interpolation from the tangents is maintained as much as possible. However, if that interpolation is too extreme and can not be matched by TCB values, it is then reduced to fit under quaternion limits. Extreme tangents on a Euler rotation curve Using Euler animations with Layers, Motion Mixer, and Motion Flow Both Euler tangents and quaternion TCB data are stored in each keyframe. Therefore, even if you are using the Euler XYZ controller, you can still change the profile of your curves using quaternion/TCB control values (on the Key Info rollout on page 4367). If you add a new layer to an Euler controlled biped part, that layer is converted into quaternion until it is collapsed back with the original layer. On collapse, the curve changes back into Euler following the same conversion rules stated earlier. When clips containing Euler animations are brought into the Motion Mixer, Euler tangents are preserved in the blending process. However, once they are mixed together in a mixdown on page 8045, the resulting animation becomes quaternion. Working with Biped Animation | 4295 TIP When creating a mixdown, you can preserve your Euler tangents by turning on A Keyframe Per Frame in the Mixer Preferences dialog on page 3741. Motion Flow follows the same rules as the Motion Mixer. If clips brought into Motion Flow contain Euler animations, their tangents are preserved. However, creating an unified motion results in a quaternion animation. TIP Euler tangents can be preserved when creating a unified motion by turning on A Keyframe Per Frame in the Unify Options dialog (by clicking Create Unified Motion in the Motion Flow Scripts Group on page 4554). Turn on A Keyframe Per Frame to preserve Euler tangents. Copy-Pasting Data between Euler and Quaternion Curves When you copy a track and paste it onto another, its type (Euler or quaternion) is pasted as well. This sometimes results in animations switching from quaternion to Euler and vice-versa. Euler tangents of copied poses or postures are never copied. If you copy an Euler track and paste it onto any type of track with Auto Key turned on, the current TCB or tangent values (depending on the type of track onto which you pasting) are ignored and instead set to Default . Following the same rule, pasting a pose or posture on a Euler track with Auto Key turned on doesn't transfer the TCB values of the copied track. If a new key is created before pasting the track, the resulting tangent is set to Default. 4296 | Chapter 17 character studio Loading and Saving Biped Assets with Euler Curves When you load an external biped asset file (BIP) onto a biped, they each might contain different animation controllers (for example, a Euler asset loaded onto a quaternion biped). When this happens, the biped animations are converted to match the controller from the biped asset file. When you save a biped asset file, it stores both Euler tangents and quaternion TCB control values. NOTE While this doesn't affect overall performance, it may slightly impact the biped asset file size. Working with XRef Bipeds Using the XRef Objects dialog on page 6941, you can externally reference bipeds in your scene. This lets you work efficiently in a collaborative environment because the changes that the artist applies to his source XRef biped updates your master scene content. See XRef Objects on page 6936 for more information. Externally Referencing a Biped When you create an XRef biped, certain modes on the Motion Panel's Biped rollout on page 4331 become unavailable as XRef data is read-only: ■ Figure Mode on page 4420 ■ Footstep Mode on page 4433 ■ Motion Flow Mode on page 4545 ■ Mixer Mode on page 3794 As a result, you need to go back to the source scene in order to make desired changes to your biped. Example: Changing the Structure of an Xref Biped An integrator externally references a biped into his master scene. He discovers that the biped does not have the right number of spine and neck links, and that the arm links are too short to reach a specific goal target. Because Figure Mode is unavailable in the master scene, the artist currently in the source scene inputs the changes to the biped's structure, and then saves his file. This update now reflects in the master scene. Working with Biped Animation | 4297 Example: Modifying the Footsteps of an Xref Biped An integrator externally references a biped into his master scene. He sees the footstep animation but cannot edit it because Footstep Mode is unavailable. The artist currently in the source scene goes into Footstep Mode and alters the animation. This update now reflects in the master scene. Externally referencing a biped automatically creates a new “XREF LAYER” in the Layers rollout on page 4403, whether or not the source biped contains any animation. As a result, the original layer becomes a level one “Local Layer” which you can use to add animation on top of it. NOTE If the XRef biped contains multiple animation layers in the source scene, 3ds Max collapses them into one layer before creating the XRef. NOTE Saving animation on page 4300 from your XRef biped breaks the XRef link. Loading, Saving, and Displaying Biped Motion Working with Biped Motion Files character studio uses a variety of file formats to save, load, and edit motion. ■ BIP file (.bip) The native character studio file format for saving biped motion. A BIP file saves all information about biped motion: footsteps, keyframe settings including limb rotation, the scale of the biped, the active gravity (GravAccel) value, and prop animation. IK Blend values for the keys and Object Space settings are also saved. See Loading and Saving BIP Animation on page 4300. ■ BVH file (.bvh) The BioVision motion capture format. Typically, BVH files are obtained from motion capture hardware that records the movements of a human performer. Data saved in a BVH file includes both skeletal data, and information about limb and joint rotations. NOTE For the BVH file specification, see the BVH.rtf document on the program disc. 4298 | Chapter 17 character studio ■ CSM file (.csm) The Character Studio Marker format. This is an alternative format for recording motion capture data. It stores positional data for various markers on a biped figure. See Motion Capture Rollout on page 4584. NOTE For the CSM file specification, see the CSM.rtf document on the program disc. ■ MIX file (.mix) A MIX file contains data from the Motion Mixer, such as trackgroups, tracks, and transitions. See Using the Motion Mixer on page 3699. ■ MFE file (.mfe) The Motion Flow Editor format saves scripts you create in the Motion Flow Editor, including clip references and transitions. See Motion Flow Mode on page 4545. ■ MNM file (.mnm) The Marker Name File format matches custom marker names in a CSM or BVH file with the standard, preset marker names used by a biped. NOTE For BVH and CSM file specifications, see the BVH.rtf and CSM.rtf documents on the program disc. ■ STP file (.stp) The Step file format saves footstep data. Unlike a BIP file, it does not save keys for the feet or upper body. STP files are ASCII files. The main purpose for this format is to enable developers to write programs that generate step files. Biped can later be used to create keys for the software-generated footsteps. See Loading and Saving STP Files on page 4308. Motion File History Lists The file dialogs for Biped motion files include a history list that lets you quickly choose directories where you have recently saved or opened files. 3ds Max maintains a separate history list for each type of motion file. Loading, Saving, and Displaying Biped Motion | 4299 NOTE When you load or save motion flow snippets, or mixer clips through the reservoir, if a file is already specified for that snippet or clip, its directory will appear at the top of the history list, even if that directory was not originally in the history list. If you cancel the load or save of the snippet or clip, that directory will not be added to the history. If you go ahead and load or save the snippet or clip, the directory will be added to the history. Loading and Saving BIP Animation Biped motion (BIP) files have a .bip file name extension. They save all information about biped motion: footsteps, keyframe settings including limb rotation, the scale of the biped, and the active gravity (GravAccel) value. IK Blend values for the keys and Object Space settings are also saved. IK objects, props and other objects in the scene can also be saved with the BIP file. There are several ways to create or acquire .bip files: ■ By loading one of the sample animation files that come with 3ds Max. Refer to the installation and support guide for more details. ■ By creating your own animation with footsteps or freeform methods, and saving the animation with the Save button in the Biped rollout. See the procedures that follow. ■ By loading and filtering a motion capture file, then saving the animation with the Save button in the Biped rollout. See Filtering Motion-Capture and Marker Data on page 4577. When you save a Motion Mixer on page 3699 (MIX) file or a Motion Flow Editor on page 4508 (MFE) file, the paths to the referenced BIP files are also saved. If these paths are broken (for example, if the BIP files have been moved or renamed), a Missing Motion Mixer Files dialog or Missing Motion Flow Files dialog, respectively, opens listing the missing files. To rectify this, open the Asset Tracking dialog on page 7100 and set a new path for the files. 4300 | Chapter 17 character studio Procedures To load biped motion from an existing BIP file: 1 Select the biped you want to animate, and go to the Motion panel. 2 On the Biped rollout, make sure you are not in Figure mode, and click Load File. NOTE When Figure mode on page 4420 is active, the Load File option loads figure (FIG) files. Anything done in Figure mode changes the basic shape and structure of the biped. When Figure mode is turned off, the Load File tool loads BIP files, which animate the figure. 3 In the file dialog, choose the BIP motion file to load, and then click OK. 4 The biped repositions itself in the scene, as it assumes the initial position of the animation file. You might need to use Zoom Extents to see the biped after it is repositioned. TIP The Biped keyboard shortcut Alt+R sets the animation range to that of the currently selected biped. Since the length of the animation can change after loading a BIP file, this keystroke can be useful. To use it, make sure that the Keyboard Shortcut Override Toggle is active. To save animation you have created or imported to a BIP file: 1 Animate the biped with footsteps and/or freeform animation. 2 Select the biped that has the animation you want to save, and go to the Motion panel. 3 On the Biped rollout, make sure you are not in Figure mode, and click Save File. 4 In the file dialog, enter a name for the motion file, and then click OK. Loading, Saving, and Displaying Biped Motion | 4301 Importing and Exporting Animation Data You can use character studio with 3ds Max FBX import/export support to simplify the animation of 3ds Max bones. To transform an animated biped into a set of animated bones, export it to FBX on page 7222 and then import your file. Click the Help button on the FBX dialog to view the latest 3ds Max FBX Plug-in Guide. Motion Mapping: Retargeting Biped Motion One of the more powerful features of Biped is the ability to retarget or map the motion of any biped onto any other biped. If you map the motion of a biped without a tail onto a biped with a tail, default tail motion for the biped with a tail will be computed. Default motion will also be computed when mapping the motion of a biped with fewer links in the legs, spine, or neck onto a biped with more links in the legs, spine, or neck. There are a few ways to perform motion mapping. You can: ■ Go into Figure mode and change the structure of your biped. When you exit Figure mode, the new structure of the biped will adapt to the existing animation. ■ Save a BIP or STP file from one biped, and load it onto another biped of a different structure and size. ■ Copy footsteps from one biped, and paste them onto the footsteps of a differently structured and scaled biped. Scale Stride Mode Scale Stride mode gives you control over whether or not certain aspects of motion mapping occur. If Scale Stride mode is active (the default): ■ When you exit Figure mode after loading a FIG file or changing the biped's leg length, pelvis width, or height, the locations of the footsteps will be scaled to match the leg length and pelvis width, and gravity will be changed to match the new height of the biped. 4302 | Chapter 17 character studio ■ When you load a BIP or STP file, the locations of the footsteps in the file will be scaled to match the leg length and pelvis width of the existing biped. Gravity will be adjusted to be proportional to the gravity stored in the file. (A motion stored in a BIP or STP file has a gravity value associated with it.) ■ When you paste footsteps copied from one biped onto another biped, the locations of the footsteps in the buffer will be scaled to match the leg length and pelvis width of the existing biped. Gravity will be adjusted to be proportional to the gravity stored in the file. (A motion stored in a BIP or STP file has a gravity value associated with it.) If Scale Stride mode is not active, no computations will be performed in any of the above cases. Then you might see your biped moving over footsteps that are spaced inappropriately far apart or close together for the size of your biped. Typically, you should leave Scale Stride mode active, unless you want to maintain the spatial relationship between the biped and other objects in your scene. Procedures To turn off Scale Stride mode: 1 Select the biped, and go to the Motion panel. 2 On the Biped rollout, click the bar at the bottom to expand the rollout. (If the rollout is already expanded, the bar shows a minus sign at the left, instead of a plus.) 3 In the Modes group, click Scale Stride Mode to turn it off. The button changes to indicate stride scaling has been turned off. 4 Use Figure mode to edit the figure. When you return to Keyframe mode or Footstep mode, the biped's stride length is unchanged, regardless of the biped figure's new proportions. Loading, Saving, and Displaying Biped Motion | 4303 Merging and Cloning a Character At some point you might need to use the File > Merge command to merge a character into your scene. Also, you can use Merge to clone a biped that has a mesh with the Physique modifier applied, as described in this topic. Cloning a Character To clone a character (that is, a biped with a Physique mesh), save a scene that contains the character, change the original biped's name, and then use File > Merge to merge the copy from the saved file. You can merge from a saved version of the scene that is currently open. See the procedures for details. Procedures To merge a skinned biped: 1 Before you merge, make sure the root name of the biped you want to import is different from that of bipeds already in your scene. If there is a name conflict, select the conflicting biped, go to the Motion panel, and use the Structure rollout's Root Name field to change the biped's root name. If you skip this step, you will get a Duplicate Name dialog for every object in the merged biped's hierarchy! 2 Choose File > Merge, then choose the MAX file that contains the biped to import. The Merge dialog displays. 3 Click to turn on Select Subtree in the Merge dialog. 4 Locate and click the biped's center of mass name in the Merge dialog list. The default name for the biped center of mass is Bip01. If the biped was renamed on the Structure rollout, find the renamed center of mass in the list. 4304 | Chapter 17 character studio NOTE The center of mass is the root object in the biped hierarchy, if this is selected with Select Subtree turned on, then all the child links are selected, including extra bones and the mesh skin (the mesh skin is linked when Attach To Node is used in Physique). Selecting a biped while merging a MAX scene In the illustration, the center of mass object is named Hero. With Select Subtree active, all the children are also selected when you click Hero, including the Physique mesh. Loading, Saving, and Displaying Biped Motion | 4305 5 Click OK. Probably a Duplicate Name dialog is displayed. If it isn't, the merge is done; if it is, see the following step. 6 On the Duplicate Name dialog, turn on Apply To All Duplicates, and then click Merge. NOTE Even when the bipeds in your scene have different root names from the biped you are merging, the biped finger/toe/head dummies in the file to be merged can have the same names as other biped dummies in your scene. This step merges these dummy objects. Dummies with duplicate names can appear in the Select From Scene dialog, so the duplicate names are not a problem. The biped and its animation is merged with the scene. To hide the finger, toe, and head dummy objects: The dummy objects for fingers, toes, and the head are visible on the newly merged biped. Usually these dummies are hidden from sight. They are used by Physique to create envelopes for all the finger tips, toe tips, and head; these dummies display when a character is merged. The quickest way to hide them again is simply to toggle the Objects button in the Biped rollout's Display group, as described in these steps. 1 With the merged biped still selected, go to the Motion panel. Fingertip dummies displayed as blue cubes The number of biped dummies varies according to how many fingers and toes the character has. 4306 | Chapter 17 character studio 2 At the bottom of the Biped rollout, click the bar by the plus sign to expand the rollout. (If the rollout is already expanded, the bar shows a minus sign at the left, instead of a plus.) 3 In the Display group, turn Objects off and then back on again to hide the biped finger/toe/head dummy objects. To clone a skinned biped: 1 Save a copy of the scene that contains the biped you want to clone. 2 On the Structure rollout, change the original biped's root name, as described above. 3 Merge the saved biped, as described in the previous procedure, “To merge a skinned biped.” The original biped, with its Physique modifier, is cloned. It appears in the same location as the original biped. 4 On the Motion panel, on the Biped rollout, turn on Move All Mode. 5 Use Select And Move to move the clone to a new location in the scene. Combining BIP Motions character studio provides two main ways of combining BIP files to build more complex character animations. ■ Motion flow on page 4508 uses BIP files as clips in a script. The motion-flow script joins clips together using transitions. Transitions can be unconditional, they can be chosen at random, or they can be governed by rules such as collision detection. You can control when a transition begins and ends. You can use motion flow to animate a single biped, or a crowd of bipeds. Motion flow scripts are saved as Motion Flow Editor (MFE) files. ■ The Motion Mixer on page 3699 also uses BIP files and MFE files as clips. In addition to creating transitions from one BIP animation to another, over Loading, Saving, and Displaying Biped Motion | 4307 time, Mixer scripts can combine the upper-body movement of one biped with the lower-body movement of another, adjust the timing of movements, and provide a number of other effects. The Mixer is especially useful when you work with motion-capture files on page 4574. Mixer scripts are saved as BIP files or MIX files. Loading and Saving STP Files Step (STP) files save footsteps, but don't save body keyframes. The STP file format is an ASCII format that enables developers to write programs that generate step files for biped motion. The online document stp.rtf, provided with character studio in the ..\cstudio\docs directory, describes the STP format. Procedures To load footstep data: 1 Select the biped to animate via saved footsteps, go to the Motion panel. 2 On the Biped rollout, make sure you are not in Figure mode, then click Load File. 3 In the file dialog, choose Step Files (.STP) as the file type to load. 4 Choose the footstep file to load, and then click OK. The footsteps are loaded onto the biped, and new default keys are generated to match the footsteps. To save footstep data: 1 Select the biped whose footsteps you want to save, and go to the Motion panel. 4308 | Chapter 17 character studio 2 On the Biped rollout, make sure you are not in Figure mode, then, click Save File. 3 In the file dialog, choose Step Files (.STP) as the file type to save. 4 Enter a name for the footstep file, and then click OK. Using Motion-Capture Data Besides animating a biped with footsteps or with keyframing (freeform animation), you can import a motion-capture file. The overall workflow for motion capture is straightforward: ■ Import the motion-capture data See Importing Motion-Capture Data on page 4576. ■ Filter the data Motion-capture files are typically dense, with keys on every frame. Filtering the data reduces the number of keys, resulting in an animation with better performance. You filter the data with the Motion Capture Conversion Parameters dialog on page 4592. This dialog can reduce large numbers of keys at once. It is displayed when you use the Motion Capture rollout to load a BIP, BVH, or CSM file. Once you have loaded a motion-capture file, you can filter the data further by clicking Convert From Buffer (also on the Motion Capture rollout), which also displays this dialog. See Filtering Motion-Capture and Marker Data on page 4577. ■ (Optional) Edit the data Once you are happy with the converted animation, you can use the freeform animation tools to make specific changes. TIP The Motion Mixer on page 3699 provides another way to edit motion-capture data. Motion-capture files can be one of three file types: the native character studio BIP format, the BioVision (BVH) format, or the Character Studio Marker (CSM) format. For an introduction to using motion capture, see the tutorial “Working with Motion-Capture Data.” Loading, Saving, and Displaying Biped Motion | 4309 Correcting Posture A particular motion file might position a biped body part inappropriately. For example, the collarbones might be rotated down too far, affecting your mesh deformation. All you need to do is go into Figure mode, rotate the biped collarbones up, and then exit Figure mode: this corrects the collarbone position for the entire animation. The motion references the Figure mode position, if the biped is adjusted, and this adjustment is reflected in your animation when you exit Figure mode. TIP Save a FIG file for the biped pose you used when you applied Physique. Then you can use the FIG file to reload this position if you need to reapply the Physique modifier or reinitialize the Physique settings. How Biped Uses Figure Mode When you animate the biped, the Biped plug-in maintains the at-rest pose you have created for these elements of the biped body: ■ Spine ■ Neck ■ Clavicles ■ Tail ■ Ponytails ■ Center of mass position, relative to the body. When Biped adapts the keyframed motions stored in BIP files to different characters, the keyframes of the above elements are recreated as an offset from the at-rest posture associated with each character's figure. The at-rest posture associated with the arms and legs is always assumed to be a standing posture, with straight legs. Restructuring a Biped to Match a BIP File When you load a BIP file, there is an option to restructure the biped to match the file. If you turn this on when you load the file, the biped’s structure will change to match the figure of the biped in the BIP file. 4310 | Chapter 17 character studio Talent Figure Mode and Adjust Talent Pose Talent Figure Mode on page 4590 and Adjust Talent Pose on page 4591 on the Motion Capture rollout have a purpose similar to that of Figure mode. They are used to size and position biped body parts to better fit raw motion capture data. After importing motion capture data, you might discover that certain biped limbs or the biped scale need a global adjustment in order to provide a closer match to the figure of the talent who performed the motion. See also: ■ Motion Capture Rollout on page 4584 Copying and Pasting Tracks Biped's Copy/Paste rollout on the Motion panel provides controls for copying and pasting biped tracks from one part of the biped to another, or from one biped to a different biped. At the top of this rollout are three buttons: Posture, Pose, and Track. Loading, Saving, and Displaying Biped Motion | 4311 This section covers the copying and pasting of tracks. For information on the other options on this rollout, see Copying and Pasting Postures and Poses on page 4281. To copy and paste biped tracks, turn on Tracks. The remaining controls in the rollout change to reflect that you are working with tracks: The copy button changes to a Copy Tracks button. ■ ■ The two Paste buttons become Paste Tracks and Paste Tracks Opposite, respectively. ■ The Paste Horizontal, Paste Vertical, and Paste Rotation buttons in the Paste Options group on page 4402 become active. Procedures To copy a track from one biped to another: 1 Select any part of the biped and access the Motion panel. 2 On the Copy/Paste rollout, click Create Collection and rename the new collection Biped Track. 3 Click Track to use Track mode. Then, select the biped parts whose tracks you want to copy. 4 Click Copy Track. Biped creates a new track buffer, and adds it to the list as the active buffer. The buffer's name indicates which biped parts you selected. 5 Select any part of the other biped. 6 In the Paste Options group, enable all three Paste buttons. 7 Click Paste Track or Paste Track Opposite. 4312 | Chapter 17 character studio The tracks for all biped parts are applied to the other biped regardless of which parts are selected on the biped. Repositioning the Biped The method you should use to reposition a biped depends on which tools were used to animate the biped: ■ If the biped uses freeform or footstep animation, use Move All mode. This is also the easiest way to move a biped that is not animated. ■ If the biped uses freeform animation and IK attachment (that is, there are keys where IK Blend is greater than zero), then you need to use a dummy object. ■ If the biped is animated with motion flow, use the Start Position spinners. Procedures NOTE The procedures in this topic assume that you have already selected the biped and gone to the Motion panel. To reposition a freeform animation (with no IK attachment) or a footstep animation: 1 On the Biped rollout, turn on Move All Mode. The biped's center of mass is selected and displayed in a larger-than-usual size. On the main toolbar, Select And Move is turned on. Move All mode is a convenient way to select the biped's center of mass, and to reposition the biped. Use it when the biped is not yet animated, when the biped has freeform animation with no IK attachment, or when it has footstep animation. NOTE The alternative way to move a biped with footstep animation is to select all of its footsteps, rather than its center of mass. 2 Move the biped. Loading, Saving, and Displaying Biped Motion | 4313 The Collapse button on the Move All dialog box allows you to reset the position and rotation values in the Move All dialog to zero, but does not change the position of the biped. 3 Turn off Move All Mode. To reposition a biped with limbs attached to an Object Space object (IK attachment): 1 Create a dummy object and position it near the biped's center of mass. 2 On the main toolbar, use Select And Link to link both the Object Space object and the biped's center of mass to the dummy object. IMPORTANT Make sure you link both at the same frame. 3 Move the dummy object to reposition the biped. To reposition a biped with limbs attached to world space (IK attachment): A biped with limbs in world space has an IK Blend setting of 1.0 for each limb, with no Object Space object specified. For example, when you plant the feet of a biped so its knees will bend when you lower its center of mass, or you plant the hands of a biped doing pushups, typically you do not specify an Object Space object. 1 Create a dummy object near the biped's center of mass. 2 On the main toolbar, use Select And Link to link both the biped's center of mass and the biped part with planted keys to the dummy object. TIP To be on the safe side, you can double-click the upper limb and link all of the limb to the dummy. IMPORTANT Make sure you create all links at the same frame. 3 Move the dummy object to reposition the biped. 4314 | Chapter 17 character studio NOTE Depending on the animation, at some of attached object's keys you might need to set IK Blend back to 0.0. Otherwise, the limb can get “stuck” in a posture. To reposition a biped animated with a motion flow script: By default, the biped's position at the beginning of a motion flow script is the position specified by the first BIP or STP file in the script. 1 Turn on Motion Flow mode. 2 On the Motion Flow rollout, use Start Position X, Start Position Y, and Start Position Z to change the XYZ position of the biped. 3 Turn off Motion Flow mode. To use layers to reposition a biped with freeform animation: Using layers and Auto Key when you reposition a freeform biped gives you some editing choices, as described below. 1 On the Layers rollout, click Create Layer. NOTE If the biped uses footstep animation, the Move All Mode button will become unavailable. 2 Turn on Auto Key. 3 Reposition the biped as described in the previous procedure, ”To reposition a freeform animation (with no IK attachment) or a footstep animation.” 4 Turn off Auto Key. Loading, Saving, and Displaying Biped Motion | 4315 You now have these aids to animation editing: ■ Lower layers show the biped's original position, as does the red stick figure. ■ Clicking Snap Set Key on the Layers rollout snaps the biped to its position on the previous layer, and sets a position key. The animation is blended between the biped's new position and its previous position at frames where the key is set. Previewing Biped Motion There are two types of animation playback available within character studio: ■ You can use the Play Animation button in the viewport playback controls to play biped animation, the same as you can any other 3ds Max animation. ■ Use the Biped Playback button on page 7924 on the Biped rollout to play back the animation with the biped displayed as a stick figure, while hiding everything else in the scene. NOTE It is possible to turn on both buttons at once. This is not recommended. Depending on your system configuration, turning on Play Animation and Biped Playback at the same time can considerably slow down performance. Biped Playback Biped playback previews the motion of all existing, visible bipeds. If you hide a part or all of biped, the hidden biped or biped part does not appear in the Biped playback. Objects in the animation that are not bipeds do not appear in Biped playback. If the 3ds Max home grid is visible, a grid appears at Z=0 in the Biped playback viewport. While Biped controls are visible in the Motion panel, you can also press V to start or stop Biped Playback. For this keyboard shortcut to work, the Keyboard Shortcut Override Toggle must be turned on. Biped always previews the existing animation range. Biped Playback responds to the parameters in the 3ds Max Time Configuration dialog. If Real Time 4316 | Chapter 17 character studio playback is chosen in this dialog, Biped plays back at the current frame rate, sometimes skipping frames if necessary. If Real Time is turned off, Biped plays back as fast as it can, depending on the capacity of the graphics card installed on your system. NOTE Hardware acceleration has no effect on Biped playback. If you are using a hardware-accelerated display card, you might find 3ds Max playback to be faster under certain circumstances. Procedures To preview biped motion using biped playback stick figure: 1 Activate the viewport with the view you want to see. 2 Hide or show the bipeds you want to appear in the playback. 3 4 Select one of the visible bipeds, and go to the Motion panel. On the Biped rollout, click Biped Playback. Stick-figure biped animation plays back in the active viewport. Animation plays back for all visible bipeds. To preview biped motion using the full biped model: 1 Drag the time slider. 2 Click Play Animation. Biped animation plays back in the active viewport. Depending on your system, biped animation might not play back in real time using 3ds Max viewport playback. WARNING You might miss critical frames of your animation if Real Time is selected in the Time Configuration dialog. Loading, Saving, and Displaying Biped Motion | 4317 In Place Mode Create or select a biped. > Motion panel > Biped rollout > Expand rollout > Modes group > In Place button on In Place flyout In Place mode on page 8012 allows you to display biped motion as if it were occurring on a treadmill. Regardless of the distance the biped covers under control of the current motion file, the biped stays within the active viewport when you've turned on In Place Mode. In Place playback prevents lateral (XY) movement of the biped center of mass during animation playback; vertical motion along the Z-axis is preserved. Biped limbs, footsteps, and center of mass keys can be adjusted in this mode. When the center of mass is moved on the XY axes in this mode, the footsteps move. Use this feature to view biped playback without requiring a follow camera. In this viewing mode, visible footsteps appear to slide under the biped. For export to games, this feature is valuable, as many game engines intelligently move the character's center of mass laterally according to game play. In Place mode makes it easy to view, tune, and export animation in a manner that is complementary to game engine playback. NOTE Trajectories do not display using In Place mode. In Place Mode Options The In Place Mode button is the default button on a three-button flyout. There are two further options: ■ In Place X Mode Locks center of mass X-axis motion. Use this for game export where the character stays in place but the swinging motion of the hips and upper body along the Y-axis is preserved. ■ In Place Y Mode Locks center of mass Y-axis motion. Use this for game export where the character stays in place but the swinging motion of the hips and upper body along the X-axis is preserved. 4318 | Chapter 17 character studio Using In Place Mode to Adjust Keyframes In Place Mode is a good way to adjust keys on a biped that already has animation applied to it. Rather than scrolling the view at different frames to keep a running biped visible, turn on In Place Mode. Now when you scrub the time slider, or use the Next Key and Previous Key buttons, the biped remains visible. A key that needs adjustment can be quickly spotted and corrected. TIP Judging lateral center-of-mass motion using In Place mode is difficult. In Place mode limits center-of-mass motion on the XY axes; all sense of body momentum on these axes is suspended during playback. You might want to turn off In Place playback to gain a sense of lateral momentum when setting or adjusting horizontal keys (Body Horizontal Track) for the center of mass. Procedures To use In Place mode to adjust keyframes: 1 Select a biped that has animation, and go to the Motion panel. 2 On the Biped rollout, click the bar at the bottom to expand the rollout. (If the rollout is already expanded, the bar shows a minus sign at the left, instead of a plus.) 3 4 In the Modes group, click In Place Mode to turn it on. At the bottom of the3ds Max window, turn on Auto Key. 5 Find a frame where the biped needs adjustment, and modify or add keys. Trajectory Display When a biped is animated, you can view its motion not only using Biped Playback, but you can also see the path, or trajectory, the biped (or selected biped links) follows throughout the motion. Loading, Saving, and Displaying Biped Motion | 4319 Display of the trajectory of a biped's lower spine You turn on trajectory display by clicking Trajectories in either of these user-interface locations: ■ Motion panel > Biped rollout > Expand Biped rollout. > Display group > Trajectories button ■ Motion panel > Key Info rollout > Trajectories button TIP Do not use 3ds Max trajectory controls to display or edit biped trajectories. These include the options accessed with Object Properties > Display Properties > Trajectory on the quad menu, and those under Motion panel > Trajectories text button. Trajectories provide useful visual feedback as you edit keys, showing the effects on the motion path for the parameters you're adjusting. You also can use trajectory display to compare filtered and unfiltered motion capture data. Changes to Tension, Continuity, Bias, Dynamics Blend, Ballistic Tension, and the overall gravity setting GravAccel are reflected in the trajectories. NOTE Trajectories do not display while you play an animation using In Place mode. You can customize the trajectory information for the selected biped link by using the Display Preferences dialog on page 4346. You can choose between Bone Base and Bone Tip, show an entire trajectory, or a moving range of frames. 4320 | Chapter 17 character studio See also: Biped Color-coded Keys and Trajectories on page 4467 ■ Procedures To edit biped trajectory keys in a viewport: 1 2 Select an animated biped and go to the Motion panel. On the Track Selection rollout, turn on Body Horizontal or Body Vertical. 3 At the bottom of the Biped rollout, expand the Modes And Display sub-rollout if necessary by clicking its name. 4 In the Display group, turn on Trajectories. 5 Turn on Sub-Object selection level. 6 On the main toolbar, turn on Select And Move. 7 Use the Transform gizmo to move the keys on the trajectory. Display Preferences The Display Preferences dialog on page 4346 lets you customize how bipeds are displayed while you work with them. This topic introduces some of the commonly used options. Loading, Saving, and Displaying Biped Motion | 4321 Use controls on this dialog to change footstep, trajectory, and playback display. In the Trajectories group, you can choose between the Bone Base or Bone tip for trajectory display. You can show the entire trajectory, or define a range of frames for partial trajectory display. In the Footsteps group, you can choose colors for the left and right footsteps, and generate various colors or standard colors in the viewport or Track View. You can also Show or Hide All Footsteps or Footstep Numbers. In the Playback group, you can define which bipeds will appear in Biped Playback. (This can be useful for speeding performance if your scene contains a number of bipeds.) See also: ■ Display group on page 4336 4322 | Chapter 17 character studio Biped User Interface The Biped user interface is split up into “modes” of operation. You activate these modes by selecting the appropriate button in the Biped rollout on the Motion panel, which is visible when a biped is selected. There are four modes available: Figure mode is used to change the biped skeletal structure and to align the biped to a mesh. Footstep mode is used to create and edit footstep animation. Motion Flow mode is used to create scripts that combine motion files into longer animations. Mixer mode is used to view, save, and load animation created with the Motion Mixer. As with other parts of 3ds Max, the rollouts change depending on the mode the software is in. When no modes are active, the following rollouts are displayed: ■ Assign Controller Rollout (character studio) on page 4328 ■ Biped Apps Rollout on page 4330 ■ Biped Rollout on page 4331 ■ Track Selection Rollout on page 4348 ■ Quaternion/Euler Rollout on page 4355 ■ Twist Poses Rollout on page 4357 ■ Bend Links Rollout on page 4363 ■ Key Info Rollout on page 4367 ■ Keyframing Tools Rollout on page 4380 ■ Copy/Paste Rollout on page 4389 ■ Layers Rollout on page 4403 Biped User Interface | 4323 ■ Motion Capture Rollout on page 4584 ■ Dynamics & Adaptation Rollout on page 4417 The Assign Controller, Biped Apps, and Biped rollouts are displayed during all modes. The remaining rollouts depend on the mode. In Figure mode, Structure on page 4424 is the only additional rollout. In Footstep Mode, the rollouts displayed are: Footstep Creation on page 4434, Footstep Operations on page 4438, and Dynamics & Adaptation. In Motion Flow mode, Motion Flow on page 4548 is the only additional rollout displayed. In Mixer mode, Mixer on page 3794 is the only rollout displayed. When no modes are active, you can edit tracks and keys, set IK constraints, work with layers, and work with motion capture data. You can also create freeform animation without any of the modes active simply by turning on the Auto Key button and moving or rotating any part of the biped. Motion Panel (Biped) Once you have created a biped, use the Biped controls on the Motion panel to animate the biped, load and save Biped files, and fit the biped to a mesh representing your character. Create a biped if one does not exist, and select any part of the biped to see the controls on the Motion panel. Depending on the active mode, the Motion panel contains the following rollouts: Assign Controller Rollout (character studio) on page 4328 Biped Apps Rollout on page 4330 Biped Rollout on page 4331 Track Selection Rollout on page 4348 Copy/Paste Rollout on page 4389 Footstep Creation Rollout on page 4434 Footstep Operations Rollout on page 4438 Motion Flow Rollout on page 4548 4324 | Chapter 17 character studio Mixer Rollout on page 3794 Key Info Rollout on page 4367 Keyframing Tools Rollout on page 4380 Display group on page 4336 Layers Rollout on page 4403 Motion Capture Rollout on page 4584 Dynamics & Adaptation Rollout on page 4417 Structure Rollout on page 4424 Center of Mass The parent object of the biped is its center of mass, which appears as a blue octahedron near the center of the biped’s pelvis. The name of this object is the root name of the biped (Bip01 by default). The Center of Mass (COM) object is the root parent. The center of mass is sometimes referred to as the COM. Biped User Interface | 4325 Center of Mass Animation Tracks Unlike other objects and biped body parts, the center of mass has three separate animation tracks: ■ Body Horizontal ■ Body Vertical ■ Body Turning (selected with the Body Rotation button) You can use these buttons, available on the Track Selection rollout on page 4348, to select each track as well as the COM itself. Rotating About a Different Pivot Point You can “decouple” rotation from the COM, and rotate the biped about a pivot point you choose. For instructions on how to do so, see To rotate the biped about a pivot that is not the COM on page ?. Left: Pivot point moved to be near the biped’s feet. Right: Rotating the biped after moving the pivot. 4326 | Chapter 17 character studio Linking the Center of Mass Object Using the Select And Link tool on page 3343 you can link the center of mass object to another object if you need to reposition an animation sequence. An example of this might be a surfer. You could create an animation of a biped running up and down the surfboard, hanging its toes off the end of the surfboard, and so on, and then link the center of mass object to the board. When you animate the surfboard, the biped animation would travel with it. The biped moves with the surfboard because the center of mass is linked to the surfboard. Because the COM is the root object in the biped hierarchy, it is the only object in the biped that you can link directly to other objects in the scene by using Select And Link. To make other body parts, such as feet and hands, follow other objects in the scene, use the technique of IK attachment: see Animating IK Attachments on page 4278. Center of Mass Shadow The center of mass shadow object, the circle between the biped’s feet on the world plane, provides a sense of the position of the character’s center of mass, relative to the feet. Another use of the center of mass shadow is to link objects Biped User Interface | 4327 to it. For example, you might link a camera and its target to the shadow object, to make the camera to follow the character. The center of mass shadow between the biped's feet. Motion Panel Rollouts (Biped) Assign Controller Rollout (character studio) Select a biped's COM. > Motion panel > Assign Controller rollout The Assign Controller rollout assigns and appends different transform controllers to individual objects. You can also assign controllers in Track View. Animation controllers are plug-ins that handle all of the animation tasks in the software. For a complete list of available Animation controllers, see Assign Controller on page 3593. 4328 | Chapter 17 character studio Interface Assign Controller Displays a selectable list of controllers for a selected track. Once controllers have been added, right-click the Biped SubAnim entry in the list and choose Properties to display the SubAnims dialog. Biped User Interface | 4329 Enable section Enable Selectively activates or disables the three list controllers. Choose any combination of Position, Rotation, and Scale. Position List When turned on, selects the Position controller to be collapsed into the Biped SubAnim track. Rotation List When turned on, selects the Rotation controller to be collapsed into the Biped SubAnim track. Scale List When turned on, selects the Scale controller to be collapsed into the Biped SubAnim track. Collapse section Position Collapses the Position controller when you click Collapse. Rotation Collapses the Rotation controller when you click Collapse. Don't Delete Prevents the removal of the list controller after collapsing and hides the controller instead. Per Frame Creates a key per frame during the collapse, preventing the controller from collapsing onto the key times of the biped and SubAnim controller. Collapse Performs the collapse. Biped Apps Rollout Select a biped. > Motion panel > Biped Apps rollout The Biped Apps rollout allows you to choose either of two tools for working with the biped motion. Interface Mixer Opens the Motion Mixer, where you can layer animation files to customize biped motion. 4330 | Chapter 17 character studio See Using the Motion Mixer on page 3699. Workbench Opens the Workbench, where you can analyze and adjust biped motion curves. See Working with the Workbench on page 4476. Biped Rollout Select the biped > Motion panel > Biped rollout Use controls on the Biped rollout to put the biped into Figure, Footstep, Motion Flow, or Mixer modes, and to load and save BIP, STP, MFE, and FIG files. You'll find other controls on the Biped rollout, as well. The Modes group on the Biped rollout lets you turn on the Buffer, Bend Links, Rubber Band, Scale Stride, and In Place mode. The Display group on the Biped rollout lets you adjust how the biped is displayed, providing controls to show or hide Objects, Bones, Footsteps, and Trajectories. In addition, the Biped rollout provides controls for converting footsteps into a freeform animation, or a freeform into a footstep animation. NOTE The Modes group, Display group, and Name field are hidden by default. Click on the Modes and Display expansion bar to display them. Interface Figure Mode Use Figure mode on page 4420 to fit a biped to the mesh or mesh objects representing your character. Leave Figure mode on when you attach the mesh to the biped with Physique. Figure mode is also used to scale a biped with a mesh attached, to make biped "fit" adjustments after Biped User Interface | 4331 Physique is applied, and to correct posture in motion files that need a global posture change. The Structure Rollout on page 4424 appears when Figure mode is active. NOTE When Figure mode is turned on, the biped jumps from its animated position to its Figure mode pose. Animation is preserved when you exit Figure mode. Footstep Mode Create and edit footsteps; generate a walk, run, or jump footstep pattern; edit selected footsteps in space; and append footsteps using parameters available in Footstep mode. Two additional rollouts display on the Motion panel when Footstep mode on page 4433 is active: ■ Footstep Creation rollout on page 4434 ■ Footstep Operations rollout on page 4438 Motion Flow Mode Create scripts and use editable transitions to combine BIP files together to create character animation in Motion Flow mode on page 4545. After creating a script and editing transitions, use Save Segment on the Biped rollout to store a script as one long BIP file. Save an MFE file; this enables you to continue Motion Flow work in progress. TIP Use Motion Flow mode to cut motion capture files together. NOTE The Motion Flow rollout on page 4548 appears when Motion Flow mode is active. Mixer Mode Activates any current Mixer on page 3699 animation on the Biped and displays the Mixer rollout on page 3794. Biped Playback Plays the animation for all bipeds unless they are excluded on the Display Preferences dialog on page 4346. This playback mode usually gives real-time playback, which you may not get if you use Play on the3ds Max toolbar. NOTE In Biped Playback mode, the biped is displayed as bones only, with no other scene objects visible. 4332 | Chapter 17 character studio Load File The Open dialog on page 4342 lets you load .bip, .fig or .stp files. Save File Opens the Save As dialog on page 4339, where you can save Biped files (.bip), figure files (.fig), and step files (.stp) files. Convert Convert a footstep animation to a freeform animation. This works in both directions. Displays the Convert to Freeform dialog on page 4455 or Convert to Footsteps dialog on page 4455 depending on the direction. ■ Convert uses biped foot IK Blend values to extract footsteps. ■ Use Convert to extract footsteps from an animation saved using Save Segment in Motion Flow mode. ■ Convert the animation in either direction depending on how you like to work. Convert to freeform for unrestricted key editing. Convert to footsteps to take advantage of footsteps. Move All Mode Allows the biped to be moved and rotated with its relative animation intact. You can transform the biped interactively in the viewport or with the dialog box that opens when the button is active. When this button is active, the biped’s center of mass enlarges to be more easily selected for translation. The Collapse button on the Move All dialog box allows you to reset the position and rotation values in the Move All dialog to zero, but does not change the position of the biped. Modes group NOTE The Modes group is hidden by default. To display it, click on the Modes & Display expander in the Biped rollout. Buffer Mode Edit segments of an animation in Buffer mode. Copy footsteps and associated biped keys into the buffer using Copy Footsteps on the Footstep Operation rollout first, then turn on Buffer mode to view and edit the copied segment of your animation. Biped User Interface | 4333 TIP Paste buffered motion back to the original animation repeatedly to create looping motions. Edit footstep and biped animation that have been copied into the buffer using Copy Footsteps on the Footsteps Operation rollout. The changes can be pasted back by turning off Buffer Mode, turning on Paste Footsteps on the Footstep Operation rollout, and overlapping the buffered footsteps with the original footsteps. The buffered motion is spliced into the original animation. Rubber Band Mode Use this to reposition the biped elbows and knees without moving the biped hands or feet in Figure mode. Reposition the biped center of mass to simulate the physics of wind or weight pushing against the biped. Figure mode must be turned on to enable Rubber Band Mode. To reposition biped knees and elbows, turn on Figure mode and turn on Rubber Band mode. Select the Move transform tool, then select and drag a biped upperarm or thigh in the viewports. Use this as an aid to fitting a biped to a mesh. To reposition the biped center of mass relative to the rest of the biped skeleton, turn on Figure mode and turn on Rubber Band mode. Select the Move transform tool, then select and drag the center of mass in the viewports. Use this to account for wind force or pushing against a heavy object. See Shifting the Biped's Balance on page 4212. 4334 | Chapter 17 character studio NOTE Rubber Band mode behaves differently than Non-Uniform Scale. For example, if you "Rubber-Band" the biped thigh, the thigh and biped calf objects scale proportionally to keep the biped foot stationary. Using Non-Uniform Scale, the calf retains its scale and the foot moves. Moving the biped center of mass (blue diamond) behind the character, turns this default walk cycle into a struggle against a high wind. Scale Stride Mode Footstep stride length and width are scaled to match the stride length and width of the biped figure. Scale Stride mode is on by default. Displays when Scale Stride mode is off. Scale Stride mode is on by default, so scaling occurs automatically when you load a .bip, .stp, or .fig file. Scaling occurs when you paste footsteps and when you scale the biped’s legs or pelvis. For example, if you load a .bip file that was saved from a larger biped, the footsteps come into your current scene scaled to match the selected smaller biped. If Scale Stride mode is off, the footsteps come into the current scene without being scaled down. If you turn off Scale Stride mode and then go into Figure mode and scale the biped up or down, the footstep stride width and length remains the same when you exit Figure mode. Biped User Interface | 4335 In Place Mode Use In Place mode to keep the biped visible in the viewports while the animation plays. Use this for biped key editing or adjusting envelopes with Physique. It prevents XY movement of the biped center of mass during animation playback; however, motion along the Z axis is preserved. This is a three-button fly-out. In Place mode is stored with the 3ds Max file. In Place X Mode Lock center of mass X-axis motion. Use this for game export where the character stays in place but the swinging motion of the hips and upper body along the Y-axis is preserved. In Place Y Mode Locks center of mass Y-axis motion. Use this for game export where the character stays in place but the swinging motion of the hips and upper body along the X-axis is preserved. Biped keys for limbs, footsteps, and center of mass can be adjusted using In Place mode. When the center of mass is moved on the XY-axes in this mode, the footsteps move. View biped playback without requiring a follow camera. In this viewing mode, visible footsteps “slide” under the biped. For export to games, this feature is valuable since many game engines intelligently move the character’s center of mass laterally according to game play. In Place mode makes it easy to view, tune, and export animation in a manner that is complimentary to game engine playback. TIP Another way of following a moving character is to link a camera and camera target to the center of mass shadow, which is the disc between the biped’s feet. NOTE Trajectories do not display when In Place mode is active. Display group NOTE The Display group is hidden by default. To display it, click on the Modes and Display expander in the Biped rollout. 4336 | Chapter 17 character studio Display Objects flyout This flyout lets you display bones and objects, together or independently: ■ Objects Displays biped body objects; these will render if you do not turn them off before rendering. Hide the biped objects before scene rendering. You can also hide individual body objects by using the standard 3ds Max Hide controls found in the Display panel and Display Floater. ■ Bones Displays biped bones. Bones, which do not render, are represented as the color of the corresponding links. Displaying Bones is useful for seeing exactly where the joints fall in relation to the biped objects. ■ Objects and Bones Displays bones and objects simultaneously. Biped User Interface | 4337 Display Footsteps flyout This flyout lets you display or hide footsteps and their numbers: ■ Show Footsteps and Numbers Displays biped footsteps and footstep numbers. Footstep numbers specify the order in which the biped will move along the path created by the footsteps. Footstep numbers are displayed in white and do not render, but do appear in preview renderings. ■ Show Footsteps Displays biped footsteps in the viewport, but no footstep numbers. Footsteps are represented as green and blue foot-shaped outlines by default; these are also visible in preview renderings. ■ Hide Footsteps viewport. Turns off footsteps and footstep numbers in the Twist Links Toggles the display of twist links used in biped. Default=on. Leg States When this button is on, the viewport displays Move, Slide, and Plant at each foot at the appropriate frame. Trajectories Displays trajectories for selected biped limbs. 4338 | Chapter 17 character studio TIP You can edit keys on the biped's horizontal and vertical track by turning on Trajectories, turning on Sub-Object, selecting the horizontal or vertical center of mass track and transforming keys in the viewports. Use Trajectories when editing keyframe parameters to visualize their influence, and to compare raw and filtered motion capture data. Display Preferences Displays the Display Preferences dialog on page 4346 which is used to change footstep colors, trajectory parameters, and to set the number of bipeds to be played back when you use Biped Playback on the Biped rollout. Footstep color preference is a good way to distinguish between the footsteps of two or more bipeds in a scene. Name Rollout The Name rollout lets you change the name of the biped. When you change the name in the Biped rollout, the center of mass is renamed and the entire biped hierarchy inherits the new name. Save As Dialog (Biped) Select a Biped. > Motion panel > Biped rollout > Save File The Save As dialog lets you save biped (BIP), figure (FIG), and step (STP) files. When saving FIG files (in Figure mode), the Save As dialog is a standard Windows Save File dialog. However, when you save BIP or STP files, you can save objects and animation controllers with the file. Biped User Interface | 4339 Interface Save As dialog for a FIG, BIP, or STP file 4340 | Chapter 17 character studio History This drop-down list lets you choose directories where you have recently saved Biped motion files. See Motion File History Lists on page 4299. File Name The name of your FIG, BIP, or STP file. Save as type Sets the file type for your saved file. ■ Saves an incremented version of the segment without overwriting an existing file. ■ Figure file (.FIG) Saves the structure and position of a biped in Figure mode. After fitting the biped to a mesh in Figure mode, save a figure file. If the biped is accidentally moved in Figure mode, reload this file. ■ Biped file (.BIP) Saves a biped motion file. A BIP file includes footsteps and keyframe data. Biped files store the complete movement and allow you to create libraries of motion. Create your own BIP library by animating the biped and saving a BIP file. ■ Step file (.STP) Save footstep timing and location data in an ASCII format. Step files contain no body keys (spine, arms, etc.). Save Segment Lets you select segments of your animation for your BIP or STP file. ■ From: Starts saving at this frame of the named animation. ■ To: Stops saving at this frame of the named animation. ■ Active Time Segment: When on, animation in the active time segment is saved. ■ Biped Animation Period When selected, only time containing biped animation is saved. ■ Edited Transition Interval: Saves frames in a transition only. Select a clip on the Motion Flow Script rollout, open the Transition Editor, and then select Save Segment to activate this control. TIP Game developers can save only the motion in the transition. A Keyframe per Frame Saves a key at every frame. Turn this on if you plan to extract footsteps using Load Motion Capture on the Motion Capture rollout. Biped User Interface | 4341 Save MAX Objects group Save MAX Objects When on, any IK, Head Target, or linked object in the scene is saved with the BIP file. Object list Each object associated with the biped in the scene is displayed here along with its object type. All When on, all associated objects are saved with the BIP file. Selected When on, only the highlighted objects are saved with the BIP file. Save List Controllers group Save List Controllers When on, any animation controllers assigned to the biped are saved with the BIP file. Controller List Each animation controller used with the biped in the scene is displayed here along with the object that it controls. All When on, all associated animation controllers are saved with the BIP file. Selected When on, only the highlighted animation controllers are saved with the BIP file. Open Dialog (Biped) Select a biped. > Motion panel > Biped rollout > Load File The Open dialog lets you load biped (BIP), figure (FIG), and step (STP) files. When you load a FIG file (in Figure mode), the Open dialog is a standard Windows Open File dialog. However, when you load a BIP or STP file, you can preview the animation and control how much information is loaded into your biped. NOTE This option is unavailable when you load a BIP file into a clip or onto a biped that is in Edit Clip mode, because all the clips in the motion flow would have to be adapted. 4342 | Chapter 17 character studio Interface Open dialog for BIP or STP files Biped User Interface | 4343 History This drop-down list lets you choose directories where you have recently opened Biped motion files. See Motion File History Lists on page 4299. File Name The name of your FIG, BIP, or STP file. Files of Type Sets the type of file to load. ■ Figure file (.FIG) Load a Figure file. Figure mode must be active to load a Figure file. Figure files allow you to apply the structure of one biped to another. Reload a Figure file if you accidentally lose your biped Figure mode pose; this pose is the biped fitted to a mesh. s ■ Biped file (.BIP) Load a biped motion file (clip). Motion files include footsteps, keyframe settings, the biped scale, and the active gravity value (GravAccel). IK Blend values for keys and IK objects and their animation are also loaded. If you select a BIP file saved with a previous version of character studio, the preview will not be visible. After selecting the file for loading, you will be notified that the file is obsolete and should be resaved, unless you have indicated that you no longer want to see this message. ■ Step file (.STP) Load footsteps without body keyframes. Using this ASCII file format enables developers to write programs that generate step files for biped motion. Biped will generate body keys for the loaded steps. See stp.rtf in the cstudio\docs directory for more details on the step file format. NOTE In Figure mode, you can load only FIG files. In other modes, you can load BIP and STP files. Motion Preview Lets you scrub through the animation in a BIP or STP file manually before opening it. Restructure biped to match file When on, the structure of the current biped is changed to match the structure in the BIP file. Set lowest starting foot height to Z=0 (.bip files only) Sets the lowest starting foot height to Z=0. This is an option in the Load File dialog. Default=On. In Biped, the height of a motion clip can be retained. This is important if you want to retain the height of a motion clip for motions adapted to characters of different sizes. If, for example, the character is jumping off a rock and you want to retain the Z position of the character, you would turn this option off. Leave this option off if Motion Flow motions must be blended that begin and end at different heights, such as three clips that have the character mounting a bicycle, riding the bicycle, and dismounting the bicycle. Turning off this option can, however, cause a jump in the motion during motion flow transitions. Turn this on for smooth transitions in Motion Flow 4344 | Chapter 17 character studio mode. If adaptation takes place, the height is set so that the lowest foot at frame 0 starts at the Z=0 height. This lines up clips along the Z axis and creates smooth transitions. TIP Use Load Motion Capture File on the Motion Capture rollout on page 4584 to load the raw version of the motion capture BIP files included with 3ds Max. These files have no footsteps and keys at every frame. Loading files using Load Motion Capture File allows you to filter the data and extract footsteps. Load MAX Objects group Load MAX Objects When on, character studio will import any IK, Head Target, or linked object saved with the BIP data. Object list Each object saved with the BIP file is displayed in this list along with its object type. The only way to eliminate an object from the animation is to resave the BIP file without it and reload. NOTE The settings for loading 3ds Max objects are only active if Load MAX Objects is checked and there are objects in the data. Prompt for Duplicates Opens a Merge dialog for each object in the BIP file that has a duplicate in the scene. In this dialog, you can Merge, Skip, or Delete Old. If Prompt for Duplicates is off, the objects in your scene will be automatically overwritten. Retarget When on, the position of the objects in the BIP file adapt to the size of the target biped, based on either height or limb sizes. Scale IK Object's Size When on, the imported objects are scaled in size to match the target biped. Load List Controllers group Load List Controllers When on, and sub-animation controllers saved with the BIP file are loaded onto your target biped. Controller list Displays the sub-animation controllers in the BIP file. NOTE The only way to eliminate a controller from the animation is to resave the BIP file without it and reload. Biped User Interface | 4345 Display Preferences Dialog Select a biped > Motion panel > Biped rollout > Display group> Display Preferences Use the controls in the Display Preferences dialog to change footstep colors and trajectory parameters, and to set the number of bipeds to play back when you use Biped Playback on the Biped rollout. You access the Display Preferences dialog by clicking the Display Preferences button on the Display group in the Biped rollout. Interface Trajectories group NOTE Trajectories do not display using In Place mode. Bone base Displays bone base trajectories. 4346 | Chapter 17 character studio Bone Tip Displays bone tip trajectories (default). Show Entire Trajectory Displays trajectories for all animated frames. Before Trajectory Sets the number of frames to display trajectories before the current frame. After Trajectory Sets the number of frames to display trajectories after the current frame. Using Before and After Trajectory will result in a “traveling” trajectory display that will move with the biped through space. Footsteps group Left Selects the color for left footsteps. Double-click the color swatch next to this selection to display the Color Selector and set the color for left footsteps. Right Selects the color for right footsteps. Double-click the color swatch next to this selection to display the Color Selector and set the color for right footsteps. Generate Various Colors Asks whether you want different colors for left and right footsteps. Based on your response, generates various colors for footsteps in the viewports. This works with multiple bipeds. Generate Normal Colors Changes right footsteps to blue and left footsteps to green, the default. Applies to all bipeds in the viewports. Viewport Colors in Track View Displays viewport footstep colors in Track View. Normal Colors in Track View Displays normal footstep colors in Track View. Show All Shows all footsteps. Hide All Hides all footsteps. Show All Numbers Shows all footstep numbers. Hide All Numbers Hides all footstep numbers. Show and hide are useful when there are multiple bipeds in the viewports. Playback group Controls in this group limit the number of bipeds to play back when you use Biped Playback on the Biped rollout on the Motion panel. Show Time Displays frame numbers in the viewport during playback. Biped User Interface | 4347 All Bipeds Lists all bipeds in the scene. Select a biped name in the window and click the right arrow to move it into the list of bipeds that will be visible during playback with Biped Playback. Bipeds Visible in Playback Lists bipeds visible during playback with Biped Playback. Select a biped name and click the left arrow to exclude it from this list. Track Selection Rollout Select a biped > Motion panel > Track Selection rollout The Track Selection rollout give you specialized tools for manipulating the biped center of mass (COM) on page 4325. The center of mass object is the root of the biped hierarchy, and controls the entire biped structure. Changing its position and orientation affects the biped as a whole, which is an important part of posing and animating the biped. Also available on this rollout are tools for selecting symmetrical and opposite biped body parts. You can select the COM in various ways: ■ If the viewport rendering method on page 7818 is set to Wireframe, you can select the COM in your viewport; it’s an octahedron located near the center of the biped's pelvis. ■ You can turn on Move All Mode on the Biped rollout on page 4331, which enlarges the COM in your viewport. This is useful in shaded viewports where the biped pelvis covers the center of mass. ■ You can open the Select From Scene dialog on page 228, which displays all visible objects in your scene. The first listed biped item (Bip01, for example) usually refers to the root; you can select it from there. ■ You have access to three tools on the Track Selection rollout (on the Motion panel) to edit the COM's position and orientation: Body Horizontal, Body Vertical, and Body Rotation. Choosing one automatically selects the center of mass. Once the biped's center of mass is selected, you can move or rotate it using the Transform gizmo on page 8155. Controlling the COM using the Track 4348 | Chapter 17 character studio Selection rollout tools is sometimes quicker because selecting the center of mass in your viewports can be difficult if your biped resides inside a bigger rigged model. As long as you select your biped by any limb, activating the COM tools from the Track Selection rollout automatically selects the center of mass with the proper Transform gizmo: ■ Body Horizontal and Body Vertical enable the Move gizmo. ■ Body Rotation enables the Rotate gizmo. When you key the COM's position or orientation using Set Key on page 7552 or Auto Key on page 7549, the animation data is stored within the respective biped transform tracks. The biped Transform tracks contain the COM keyed data. See also: Biped Color-coded Keys and Trajectories on page 4467 ■ Procedures To Edit the COM's position and orientation: 1 Create a biped. 2 On the Motion panel, expand the Track Selection rollout and turn on Body Horizontal. The Move Transform gizmo appears at the COM's location, highlighting the X and Y axes because they are referring to the biped Horizontal Transform track. Biped User Interface | 4349 The Transform gizmo centered on the biped's COM. TIP To avoid deselecting the COM inadvertently, you can use Lock Selection on page 3609 to keep your selection on the center of mass, ignoring all other objects in your scene. TIP You can scale the Transform gizmo using the - (hyphen) and = (equal sign) shortcut keys. Scaling the gizmo makes it easier to use, but does not affect the transform values. 3 Select the Move gizmo's Z axis. This turns off Body Horizontal and turns on Body Vertical. 4 Turn on Body Rotation on the Track Selection rollout. 3ds Max replaces the Move Transform gizmo with the Rotate Transform gizmo. You can now change the biped's orientation. To Lock all Biped COM Tools: This procedure follows the concept from the previous procedure, and centers on selecting multiple COM tracks at the same time, as well as locking them. 1 On the Track Selection rollout, turn on Body Horizontal. 2 Turn on Lock COM Keying. 4350 | Chapter 17 character studio Lock COM Keying allows you to activate all center of mass tracks at the same time. 3 Turn on both Body Horizontal and Body Rotation. 4 Select any other part of your biped. The COM track controls become inactive. Note that Lock COM Keying is storing the selected controls. 5 Reselect the biped COM either by selecting the blue octahedron near the center of the biped's pelvis, or by clicking one of the three COM track controls. Lock COM Keying restores the selected controls. To rotate the biped about a pivot that is not the COM: This is an example that shows the biped falling over by rotating about its feet. NOTE These steps do not work when Move All Mode is active, because this mode always uses World coordinates. 1 Select both of the biped’s feet, and set Planted keys for them. 2 Select the biped’s COM. 3 Click Select And Rotate to turn it on (or use the quad menu), and then choose Use Transform Coordinate Center from the Use Center flyout. 4 From the Reference Coordinate System drop-down list, choose Pick. Biped User Interface | 4351 TIP You can also use a Working pivot on page 3479 in place of one you pick. 5 In a viewport, click the pivot point you want to use. For this example, click a pivot point near the feet. 6 On the Track Selection rollout, click Lock COM Keying to turn it on, then turn on all three tracks (Body Horizontal, Body Vertical, and Body Rotation). IMPORTANT This step is essential if you want to animate the rotation. If the COM is not locked, and all three tracks are not turned on, then when you click Set Key, 3ds Max sets keys only on those tracks that are selected. The resulting animation can be strange and unexpected. 7 On the Key Info rollout, click Set Key. WARNING You must use the Biped Set Key. You cannot use Auto Key for this operation. 8 Move to a new frame, rotate the biped, and click Set Key again. 9 Continue working this way until the rotation is complete. To return to rotating the biped about its COM, choose World from the Reference Coordinate System drop-down list. Interface Body Track Tools (Center of Mass Tracks) Body Horizontal and Body Vertical refer to the center of mass's translation axes while Body Rotation focuses on its rotate axes. Once you turn them on, you can move or rotate the COM by either using the Transform gizmo, by entering values in the Coordinate Display area on page 7541. 4352 | Chapter 17 character studio TIP You can also set COM positions using the Tension, Continuity, and Bias values on the Key Info rollout on page 4367 (in the TCB group). When you activate Body Horizontal or Body Vertical, you have access to advanced Biped Dynamics parameters on page 7923, such as Balance Factor on page 7919 and Ballistic Tension on page 7919, which you can control from the Key Info rollout on page 4367 and Dynamics & Adaptation rollout on page 4417. NOTE Tension, Continuity, and Bias affect the COM Body Vertical keys only when the value of Dynamics Blend on page 7959 is less than 1.0. To turn off gravity at a vertical center of mass key, set the value of Dynamics Blend to 0.0. TIP To view the way a parameter change affects the animation, Turn on Trajectories on page 8155. Keyed keys for COM tracks are color coded as follows: ■ Keys containing Body Horizontal tracks are red. ■ Keys containing Body Vertical are yellow. ■ Keys containing Body Rotation are green. NOTE If a frame contains multiple keyed COM tracks, the key's color code is divided accordingly. A key's color reflects its keyed COM tracks. Body Horizontal Selects the center of mass to edit horizontal biped motion. The Body Horizontal track has a Balance Factor on page 4215 parameter that automatically orients the biped to maintain balance. This saves the animator from having to reposition the pelvis when the biped leans forward, backwards, or sideways. NOTE You can animate Biped Dynamics on page 7923 parameters from no effect to full effect at each keyframe. Body Vertical Selects the center of mass to edit vertical biped motion. Biped User Interface | 4353 The Body Vertical track uses the Dynamics Blend parameter to control gravity in a footstep animation. A Dynamics Blend value of 1.0 uses the value of GravAccel on page 8000 (global gravity value) to calculate an airborne trajectory for the biped. No keyframes are required to position the biped in the air, a trajectory is calculated automatically. A value of 0.0 uses Spline Dynamics for the vertical position of the biped; you must create keyframes to position the biped vertically. The Body Vertical track also has a Ballistic Tension on page 7919 parameter that controls how much the biped knees bend when the biped lands from an airborne period. This means that keys do not need to be created at the lowest position of the biped after landing; a trajectory is calculated automatically. NOTE You can create keys manually to override the calculated trajectory during the landing period. However, vertical keys must have Dynamics Blend=0.0 in order to override fully the trajectory during the airborne period. Body Rotation Selects the center of mass to edit biped rotational motion. You can rotate the biped about a pivot point that is different from the COM. For instructions on how to do so, see the “Procedures” section above. Lock COM Keying When on, allows you to select multiple COM tracks at the same time. Once locked, the tracks are stored in memory, and are remembered every time the COM is selected. NOTE Locked COM tracks are also honored after a scene reset or a session change. Symmetrical Selects the matching object on the other side of the biped. For example, if the right arm is selected, clicking Symmetrical Tracks selects the left arm too. You can then make changes to both sides of the body at once. Symmetrical works for single and multiple biped parts. Opposite Selects the matching object on the other side of the biped, and deselects the current object. For example, if the right arm is selected, clicking Opposite Tracks selects the left arm and deselects the right arm. You can use Opposite Tracks for single or multiple objects. 4354 | Chapter 17 character studio Quaternion/Euler Rollout Select the biped > Motion panel > Quaternion/Euler rollout This rollout contains options to switch between Euler or quaternion controllers on biped animations. These choices offer alternative ways to control an animation in the Curve Editor. For more details, refer to Working with Euler Curves on Biped Animation on page 4293. Procedures To switch between quaternion and Euler rotation controllers: 1 Create a biped. 2 Turn on Auto Key. 3 Select the biped's upper arm and rotate it so it extends forward. 4 Go to frame 20 and rotate the upper arm so it extends sideways. 5 Go to frame 40 and rotate the upper arm back to its original orientation. From left to right, the biped at frame 0, 20, and 40. In the Motion Panel, on the Quaternion/Euler rollout, notice that the Quaternion option is active by default. NOTE If you change options for that biped limb, your choice is preserved in the 3dsmax.ini on page 83 file, from which it is restored after a scene reset or session change. Biped User Interface | 4355 6 On the Biped Apps rollout, click Workbench to open it. The animation is displayed as three separate TCB rotation curves labeled “Quaternion Rotation”. 7 On the Quaternion/Euler rollout, choose the Euler option. The curves have been converted to display Euler controlled rotations. You now have access to the curve's tangent handles to change the curve's interpolation. The animation is displayed as three separate Euler curves labeled “Tangent Euler Rotation”. 8 Choose a different axis ordering from the Axis Order drop-down list (under the Euler option). 4356 | Chapter 17 character studio The curve display changes to reflect the new ordering while preserving the biped posture. 9 Choose the Quaternion option to convert the curves back to a TCB interpolation. NOTE Converting a curve from Euler to quaternion can affect its interpolation. See Working with Euler Curves on Biped Animation on page 4293 for details. Interface The following options set the rotation controller for biped animations. ■ Quaternion Converts the selected biped animation to quaternion rotation. If the biped selection has not been animated yet, this starts as the default option. If you change options for any biped limb, your choice is preserved in the 3dsmax.ini file, from which it is restored after a scene reset or session change. ■ Euler Converts the selected biped animation to Euler rotation. Axis Order Lets you choose the order in which the Euler rotation curves are calculated. Available only when Euler is active. Default=YXZ. Changing the ordering reflects on the curves, which are modified accordingly. However, this change does not affect the animation itself. NOTE This setting is independent of the Workbench Axis Order setting. Twist Poses Rollout Select a biped. > Motion panel > Twist Poses rollout The toolset of this rollout lets you create and edit twist poses for a biped's limbs. You can either use the rollout's preset poses (which you can modify and rename), or create your own. When you add a new pose, you establish a Biped User Interface | 4357 reference between the selected's limb relative orientation and the rollout's Twist value of 0 (which means no twist). When more than one reference pose are set for a rotated limb, the limb's twisting is calculated based on the nearest pose. TIP It is suggested that you add twist poses for all major limb rotated poses. This ensures that rotating your biped's limb produces well-calibrated twisting. NOTE You don't technically have to enable twist links on page 4430 to use the Twist Poses rollout toolset. However, if your biped does not contain twist links, the Twist and Bias settings are not used. The Twist Poses rollout tools only affect limbs with three degrees of freedom (DOF), such as upper arms and thighs, because you can control their twist links by rotating them. Two-DOF limbs (forearms and calves, for instance) differ due to the fact that you can only control their twist links if you rotate their child limb. The upper arm can twist itself while the forearm needs the wrist to twist it. NOTE If you select a two-DOF limb, the only available setting is the Bias value; you can change it to adjust the rotation distribution along the twist links. 4358 | Chapter 17 character studio Procedures Example: To Add and Edit Twist Poses: This procedure takes into account the concept of adding twist links on page 4430 to biped limbs and concentrates on using the tools from the Twist Poses rollout to set up basic poses. 1 Prepare a biped with five twist links on each upper arm. TIP You can use See-Through on page 183 on the biped's limbs to better distinguish the twist links inside. 2 Exit Figure Mode, and then expand the Twist Poses rollout. 3 Select the right upper arm. The rollout controls are enabled because you selected a three-DOF limb. 4 Use Previous Key and Next Key to cycle through the different pose presets. Biped User Interface | 4359 TIP You can often use these presets as a starting point for posing your limbs. 5 Choose pose1 from the drop-down list. The biped's arm extends upwards and shows some twisting. 6 Click Set. This assigns the Twist value of 0 to the upper arm's twist links. NOTE A twist change is always reflected on both sides (in this case, both upper arms). 7 Rotate the upper arm locally around its Y axis so it extends on the side. 4360 | Chapter 17 character studio 8 Click Add to create a new pose. Rename it Arm At Side. This new pose resets the current Twist value of the twist links. 9 Rotate the upper arm locally around its X axis. The twisting in the upper arm is calculated based on the limb's proximity to the saved poses. Rotate the upper arm to verify the twist links. Biped User Interface | 4361 Interface Previous/Next Key Scrolls and selects through the list of twist poses. Twist Poses List Lets you choose a preset or saved pose to apply to the biped's selected limb. By default, five twist poses are available for each three-DOF limb: Up, front, lateral, down, and back. You can also rename the current twist pose. Twist Sets the amount of twist rotation (in degrees) applied to the twist links linked to the selected limb. The twist links from the opposite side are so affected. Default=0. Range=–180 to 180. NOTE Changing the Twist value automatically resets the current limb's orientation to the active twist pose. Bias Sets the distribution of rotation along the twist links. A setting of 1.0 concentrates the twist towards the top link while a setting of 0.0 instead concentrates it towards the bottom link. The default setting is 0.5, distributing the rotation evenly throughout the links. The twist links from the opposite side are so affected. NOTE Changing the Bias value automatically resets the current limb's orientation to the active twist pose. NOTE You can also set a Bias value for Two-DOF limbs. Add Creates a new twist pose based on the selected limb's orientation and resets Twist and Bias to their default values. NOTE Adding a new pose for one limb automatically makes it available for the limb on the opposite side. Set Updates the active twist pose with the current Twist and Bias values. Delete Removes the current twist pose. Default Replaces all twist poses of all three-DOF limbs with five default preset poses. 4362 | Chapter 17 character studio Bend Links Rollout Select the biped > Motion panel > Bend Links rollout This toolset combines the Bend Links Mode, previously located on the Biped rollout, with other tools to allow an easier control over a chain link, such as a biped spine, neck or tail. NOTE Activating one of the Bend Links rollout modes deactivates any of the others. However, clicking Zero Twist or Zero All maintain any mode currently active. NOTE The Bend Links rollout is displayed in Mixer Mode, Motion Flow Mode or Footstep Modes. Procedures To bend a spine naturally using Bend Links Mode: 1 Select any link in the biped's spine. Biped User Interface | 4363 2 Rotate the spine link. Notice that all chain links rotates the same way. 3 On the Bend Links rollout, click Bend Links Mode to activate it. 4 Rotate the spine link. The other links in the chain rotates to match the single link's rotation, creating a natural bend along the spine. To twist a spine naturally using Twist Links Mode: 1 Select any link in the biped's spine. 2 On the Bend Links rollout, click Bend Links Mode to activate it. 3 Rotate the spine link until you reach a pronounced bend. 4 Rotate the spine link in local X. Notice that all chain links rotates in a weird way due to the fact that they do not maintain their relationship with the two other axis. Undo the rotation. 5 On the Bend Links rollout, click Twist Links Mode to activate it. 6 Rotate the spine link in local X. The rotation averages up the spine for all links while the spine maintains its existing profile. To twist a spine link without affecting the chain using Twist Individual Mode: 1 Select the bottom link in the biped's spine, just above the pelvis. 2 On the Bend Links rollout, click Bend Links Mode to activate it. 4364 | Chapter 17 character studio 3 Rotate the link so the spine's shape follows a noticeable curvature. 4 On the Bends Links rollout, click Twist Individual Mode to activate it. 5 Select a link in the middle of the spine and rotate it in local X. The rotation only affects the selected link. To smooth out a spine using Smooth Twist Mode: 1 Select the bottom link in the biped's spine. 2 On the Bends Links rollout, click Twist Individual Mode to activate it. 3 Rotate the link 45 degrees in local X. 4 Select and rotate the spine's top link –45 degrees in local X 5 On the Bends Links rollout, click Twist Individual Mode to activate it. 6 Rotate either the bottom or top spine link. The chain links rotates to smooth out the orientation difference between the two link extremities. Adjust the Smoothing Bias control to distribute the chain's rotation towards the base or top link. Interface Bend Links Mode This mode can be used to rotate multiple links of a chain without having to select all of them beforehand. Bend Links Mode transfers the rotation of one link to the other links, following a natural curvature. NOTE Using Bend Links Mode in Auto Key mode or setting a key after twisting results in keys on all the links of the selected chain. See Separate Tracks on page 4380 for further details. Biped User Interface | 4365 Twist Links Mode Similar to Bend Links Mode, this mode takes the rotation in local X applied to the selected link and increment it equally throughout the rest of the chain while maintaining the relationships between the links in the other two axes. NOTE Using Twist Links Mode in Auto Key mode or setting a key after twisting results in keys on all the links of the selected chain. See Separate Tracks on page 4380 for further details. Twist Individual Mode Similar to Bend Links Mode, this mode allows a selected chain link to be rotated in local X without affecting its parent or child. The chain therefore maintains its shape while the individual link is adjusted. NOTE Using Twist Individual Mode in Auto Key mode or setting a key after twisting results in keys on all the links of the selected chain. See Separate Tracks on page 4380 for further details. Smooth Twist Mode This mode takes into account the orientation in local X of the chain's first and last links in order to distribute the rotation of the other links. This results in a smooth rotation between every chain link. The rotation distribution can be set by adjusting the Smoothing Bias control or by rotating either the first or last link of the chain. Smoothing Bias Sets the rotation distribution based on a value between 0.0 and 1.0. 0.0 biases towards the first link and 1.0 towards the last link of the chain. The chain's smoothness can be interactively set by dragging the bias setting between those 2 values. Zero Twist Resets every chain link's rotation to 0 in local X based on the current orientation of the chain's parent. This does not change the current shape of the chain. Zero All Resets every chain link's rotation to 0 in all axes based on the current orientation of the chain's parent. This adjusts the current shape of the chain so it becomes parallel to the biped. 4366 | Chapter 17 character studio Key Info Rollout Select the biped. > Motion panel > Key Info rollout Tools in the Key Info rollout allow you to do the following: ■ Find the next or previous key for the selected biped body part. ■ Use the Time spinner to slide a key back and forth in time. ■ Change Tension, Continuity, and Bias for a key and display trajectories. ■ Adjust biped dynamics. ■ Set planted, sliding, or free keys. ■ Set IK constraints and pivots for the biped hands and feet. When the Body Vertical on page 4353 COM (center of mass) track is active, you can change the vertical dynamics of the motion, on a key-by-key basis. When the Body Horizontal COM track is active you can change the balance factor for shifts in weight distribution. NOTE On the time slider or in Track View, you can move one Biped key past another. See Moving Keys on page 4466. Activating Parameters Groups of the Key Info rollout are unavailable depending on what part of the biped is selected and if a key is current. Body Vertical on page 4353, Body Horizontal on page 4353, and Body Rotation on page 4354 refer to the three tracks used to animate the biped center of mass. Select one of the three center of mass tracks on the Track Selection rollout, then use Next Key or Previous Key to find a key to edit. ■ If Body Vertical is active and a key is current, then parameters for Dynamics Blend, Ballistic Tension, Z Position, Time, and TCB parameters (Tension, Continuity and Bias) are active. Ballistic Tension is available only at keys just before or just after an airborne state, as between footsteps in a run or jump. Biped User Interface | 4367 NOTE TCB controls are not effective at Body Vertical keys just before and just after an airborne period, between footsteps, if Dynamics Blend=1. Biped Dynamics calculates the airborne trajectory; in this case, lower the value of Dynamics Blend to use the TCB controls. In a walk sequence where footsteps overlap, Dynamics Blend has no effect you can use and TCB controls. ■ If Body Horizontal is selected and a key is current, the Balance Factor parameter, XY Position, Time, and TCB parameters are active. Z Position, Dynamics Blend, Ballistic Tension are unavailable. ■ If Body Rotation is selected and a key is current, only the Time and TCB parameters are active. ■ If a biped hand is selected and a key is current, then all parameters are active except parameters in the Body Dynamics group. ■ If a biped foot key is selected and current, then all parameters are active except for parameters in the Body Dynamics group. ■ If a biped leg is selected and a key is current, then Time and TCB parameters are active. XYZ Position and Body Dynamics parameters are made unavailable. In a footstep animation, Time is made unavailable at a Touch and Lift key. ■ If a biped arm is selected and a key is current, then Time and TCB parameters are active. XYZ Position and Body Dynamics parameters are made unavailable. Interface The Key Info rollout is divided up into several groups: TCB, IK, Head, Body, and Prop. You can expand and hide each of these groups by clicking the line next to its name. 4368 | Chapter 17 character studio Next Key-Previous Key Find the next or previous keyframe for the selected biped part. The field displays the key number. Time Enter a value to specify when in time the key occurs. Use this to fine tune keyframe timing on a character by moving a key backwards and forwards in time. Set Key Creates keys at the current frame when you are moving biped objects. This is identical to Set Key on the 3ds Max toolbar. You can experiment with different biped poses without updating the motion until you find the desired pose. You can also quickly fine tune your motion by setting a key and adjusting the key parameters on the Key Info rollout without having to transform the biped in the viewports. NOTE If a biped key is current, then TCB, XYZ position spinners, and IK Blend parameters can be updated without using Set Key or having the Auto Key button turned on. NOTE If 3ds Max bones using the IK Controller or 3ds Max Particle Emitters are linked to the biped, or if you are displaying 3ds Max trajectories or ghosting, the Auto Key button must be on while the biped is positioned. These objects update their parameters in real time as they are positioned. Delete Key Deletes the key of the selected object at the current frame. By default, biped arm, hand, and finger keys are stored in the clavicle track. If you delete keys for any one of these objects, you lose positions for the rest of the arm objects at that frame. If you plan on extensive hand animation, turn on Arms in the Separate Tracks group of the Keyframing Tools rollout. This creates separate tracks for each biped arm object. Deleting an upper arm key will preserve hand and finger keys. Set Planted Key Sets a biped key with IK Blend=1, Join To Previous IK Key turned on, and Object selected in the IK group. In a Footstep or Freefrom animation, all footsteps that do not slide should have Join To Previous IK Key turned on. Biped User Interface | 4369 TIP Right-click to open the Planted Key Defaults dialog on page ?, which lets you set new default values for subsequent TCB keys. Set Sliding Key Sets a biped key with IK Blend=1, Join To Previous IK Key turned off, and Object selected in the IK group. This creates a sliding footstep. Sliding footsteps display in the viewports with a line running through the middle of the footstep. Sliding footsteps are understood as footsteps with moving IK constraints. In a Footstep or Freeform animation, if the foot slides rather than being planted, use Set Sliding Key. TIP Right-click to open the Sliding Key Defaults dialog on page ?, which lets you set new default values for subsequent TCB keys. Set Free Key Sets a biped key with IK Blend=0, Join To Previous IK Key turned off, and Body selected in the IK group. In a Footstep or Freeform animation, a biped leg in a move state should have a “free” key. TIP Right-click to open the Free Key Defaults dialog on page ?, which lets you set new default values for subsequent TCB keys. To change the default values for TCB keys, right-click either Set Planted Key, Set Sliding Key, or Set Free Key to open the respective dialog. Use When on, subsequent keys set with either Set Planted Key, Set Sliding Key, or Set Free Key use the TCB values from the respective dialog. Otherwise, the system uses the default values. Tension Controls the amount of curvature in the animation curve. Default=25. Continuity Controls the tangential property of the curve at the key. Default=25. 4370 | Chapter 17 character studio Bias Controls where the animation curve occurs with respect to the key. Default=25. Trajectories Shows and hides trajectories for the selected biped object. You can edit keys on the biped's horizontal and vertical track by turning on Trajectories, turning on Sub-Object, selecting the horizontal or vertical center of mass track, and transforming keys in the viewports. ■ You can bend the horizontal center of mass trajectory around selected horizontal keys by using the Bend Horizontal spinner in the Keyframing Tools rollout. ■ Display trajectories to view how parameter changes in the Key Info rollout affects the biped motion. Changing Tension, Continuity, and Bias in the Tcb group affects the trajectory around the current key. Changing the value of IK Blend for a hand or foot will affect the trajectory between keys. ■ Leave Trajectories on and turn on Show Buffer Trajectories on the Motion Capture rollout to compare a raw motion capture trajectory with the filtered trajectory on the biped. This assumes a motion capture file has been loaded. ■ Changing Dynamics Blend for a center of mass vertical key or changing the value of GravAccel will change gravity in a foostep animation and will therefore affect the trajectory. Simple Collapses the lower part of the Key Info rollout, for simplified viewing. Biped User Interface | 4371 TCB group You can use the TCB controls to adjust easing and trajectories on keys that already exist. XYZ Position Reposition the selected biped part using these spinners. A hand or foot can be repositioned in world coordinate XYZ. The biped center of mass can also be positioned using these spinners. TCB Graph Charts the effect that changing the controller properties will have on the animation. The red mark at the top of the curve represents the key. The marks to the left and right of the curve represent an even division of time to either side of the key. The TCB graph is a stylized representation of the animation around a single key. Ease To Slows the velocity of the animation curve as it approaches the key. Default=0. High Ease To causes the animation to decelerate as it approaches the key. The default setting causes no extra deceleration. 4372 | Chapter 17 character studio Ease From Slows the velocity of the animation curve as it leaves the key. Default=0. High Ease From causes the animation to start slow and accelerate as it leaves the key. The default setting causes no change of the animation curve. Tension Controls the amount of curvature in the animation curve. High Tension produces a linear curve. It also has a slight Ease To and Ease From effect. Low Tension produces a very wide, rounded, curve. It also has a slight negative Ease To and Ease From effect. The default value of 25 produces an even amount of curvature through the key. Continuity Controls the tangential property of the curve at the key. The default setting is the only value that produces a smooth animation curve through the key. All other values produce a discontinuity in the animation curve causing an abrupt change in the animation. Default=25. High Continuity values create curved overshoot on both sides of the key. Low Continuity values create a linear animation curve. Low continuity creates a linear curve similar to high tension except without the Ease To and Ease From side effect. The default setting creates a smooth continuous curve at the key. Bias Controls where the animation curve occurs with respect to the key. Default=25. High Bias pushes the curve beyond the key. This produces a linear curve coming into the key and an exaggerated curve leaving the key. Low Bias pulls the curve before the key. This produces an exaggerated curve coming into the key and a linear curve leaving the key. The default setting distributes the curve evenly to both sides of the key. IK group This group lets you set IK keys and adjust parameters for IK keys. NOTE You can make and adjust settings for multiple selected IK-capable biped parts. For example, say at the same frame one foot has a planted key and the other has a sliding key. This means they both have (by default) IK Blend values of 1.0 and Ankle Tension values of 0.0. If you select both feet, all of the Key buttons near the top of the Key Info rollout are available, and you can change IK Blend and Ankle Tension values for both. Biped User Interface | 4373 IK Blend Determines how the software mixes forward kinematics and inverse kinematics to interpolate an intermediate position. An example of forward kinematics is moving the arm to control the hand. An example of inverse kinematics is moving the hand to control the arm. Activates when a biped arm or leg (hand and foot) key is current. ■ 0 with Body on page 4375 chosen is normal biped space (forward kinematics). ■ 1 with Body on page 4375 chosen is inverse kinematics, which creates more straight-line motion between biped keys. ■ 1 with Object on page 4375 chosen, but no IK Object specified on page 4376, puts the limb fully into world space. ■ 1 with Object on page 4375 chosen and an IK Object specified on page 4376 puts the biped limb into the coordinate space of the selected object; the biped limb follows the specified object. Ankle Tension Adjusts the precedence of the ankle joint over the knee joint. When set to 0, the knee takes precedence. When set to 1, the ankle takes precedence. This effect is only visible between keyframes. Select Pivot Activate to designate pivots around which the biped hands and feet should rotate. After clicking a pivot in the viewports, turn off Select Pivot and then rotate the hand or foot. TIP For better accuracy in setting pivots, use the Pivot Selection dialog (see following). Pivot Selection Dialog Opens a small dialog that shows the current pivot for the selected limb on the limb's respective hand or foot, and lets you change it. When the chart is green (or blue) and red, indicating that you're on an IK 4374 | Chapter 17 character studio key, the red dot indicates the current location of the pivot. To designate a different pivot, click another dot on the chart. This provides an alternative method to using Select Pivot (see preceding). The dialog is named according to the displayed hand or foot, depicts the actual number of digits and joints in use, and resizes itself accordingly. The displayed chart uses three different schemes, depending on the context: ■ green/blue and red dots for the right/left hand or foot when on an IK key (pivot is editable) ■ gray and white dots when in an IK period but not on a key (pivot is visible but not editable) ■ no dots if you're in an FK (forward kinematics) period, or no limb or multiple limbs are selected (dialog disabled; no relevant data exists) These are shown in the following illustration: NOTE When on an IK key, the left hand and foot charts use a blue/red color scheme: Join to Previous IK Key When on, places the biped foot in the coordinate space of the previous key. Turn off to put the biped foot into a new reference position. Turn off and move the biped foot to create a sliding footstep, for example. Body The biped limb is in biped coordinate space. Object Object Space: the biped limb is either in World coordinate space or the coordinate space of the selected IK object. Coordinate space can be blended between keys. Biped User Interface | 4375 Select IK Object Chooses an object for the biped's hand or foot to follow when IK Blend is 1 and Object is selected. The selected object's name is displayed next to the button. This selection cannot be animated; only one IK object can be active for each hand and foot throughout the animation. TIP If you want to change the object the hand or foot follows at different times in the animation, select a dummy object as the IK object, and assign a Link Constraint to the dummy object to make it link to different objects at different times. Head group The Head group lets you define a target object for the target to look at. Target Blend Determines the extent to which the target blends with the head's existing animation. A setting of 1.0 causes the head to look directly at the target, 0.5 causes the head to blend half of its existing animation with looking at the target, and a setting of 0.0 causes the head to ignore the target, maintaining its existing animation. Select Look At Target Click to select an object for the head to look at. NOTE When an object is selected, its name is displayed next to the button. Body group 4376 | Chapter 17 character studio These parameters apply to the biped center of mass and are used by character studio to calculate the biped’s airborne trajectory based on gravity (GravAccel) and time between footsteps, the amount of knee bend on landing (Ballistic Tension) and how the biped objects adapt to maintain balance (Balance Factor). Balance Factor Position the biped's weight anywhere along a line that extends from the center of mass to the biped’s head. This center of mass (Body Horizontal track) parameter can be keyframed. To activate Balance Factor select the Horizontal Track (in the Track Selection rollout), set a key and enter a value in the Balance Factor field. For example, to create a sit then walk sequence, you could shift the biped’s weight (balance) between 0 (the character is supported by the chair) for the sit key and 1 for the stand key (the character’s pelvis shifts to maintain balance). If a character is seated, and reaches across the table, leave Balance Factor at 0; however the character leans, he will pivot from the center of mass. The pelvis will not move back to maintain balance. In a walking motion, a value of 2 will swing the hips and keep the biped head steady; a value of 0 will keep the hips steady and swing the upper body. Biped User Interface | 4377 A Balance Factor value of 0 in the first image causes the biped not to compensate for weight. A Balance Factor value of 2 in the second image causes the biped pelvis to move away from the Center of Mass to compensate for weight. The Balance Factor determines how far the biped's hips will shift forward or backward to compensate for forward or backward bending of the spine. When the biped has a normal weight distribution between the upper and lower body, the default value of 1 causes the hips to swing backward as the biped bends over to compensate for the forward weight. At times, when the biped leans, you will want the biped's hips to refrain from shifting to compensate for the forward weight. This would be when the biped is sitting or falling down. A Balance Factor of 0 (the minimum value) causes the hips to stay still when the biped leans forward or backward. A value of 0 places the biped’s weight at the center of mass. A value of 1 places the biped’s weight above the center of mass. A value of 2 places the biped’s weight in the head. Click the spinner up arrow to move the biped’s weight distribution toward the head. Range=0.0 to 2.0; Default=1. NOTE You can also shift the center of mass by turning on Figure mode, selecting the center of mass object, and using Rubber Band mode on page 4331 to move the center of mass to a new position. This method cannot be keyframed, but it allows you to move the center of mass outside the biped body. For example, you can simulate pushing a heavy object by moving the center of mass behind the biped. 4378 | Chapter 17 character studio Dynamics Blend Select the Body Vertical track (center of mass vertical track) and control the amount of gravity in an airborne period, as in a running or jumping motion. This parameter has no effect on a walking motion where footsteps overlap. The vertical center of mass track Dynamics Blend parameter is set to 1 for both keys (white squares) in the first jump, and to .5 in the second jump. A value of 1 uses the GravAccel on page 4417 value to calculate gravity. A value of 0 removes the effects of gravity calculation and flattens a jumping or airborne motion. Ballistic Tension Select the Body Vertical track (COM) and control the amount of spring or tension when the biped lands or takes off from a jump or run step. The change is subtle. A walk cycle will not activate this value. The biped has to be airborne, then the Lift and Touch vertical keys will display a Ballistic Tension value. If there are more than three vertical keys during a support period, you can also edit Ballistic Tension for the lift-off key; otherwise Biped uses the same value for touchdown and lift-off, since it is assumed that there is only one vertical dip in the motion. Low values are high tension (less dip in the trajectory). Default=0.5; Range=0 to 1; Prop group Biped User Interface | 4379 The Coordinate Space pulldowns will set the Prop to refer to the World, Body, Right Hand or Left Hand coordinate space for position and rotation at the current frame. Position Space Lets you set the prop position space to World, Body, Right Hand, or Left Hand. Rotation Space Lets you set the prop rotation space to World, Body, Right Hand, or Left Hand. Keyframing Tools Rollout Select the biped. > Motion panel > Keyframing Tools rollout Use controls on the Keyframing Tools rollout to clear animation on a biped or selected parts, mirror biped animation, and cause the Neck to rotate in body space rather than parent space. You can also bend the horizontal center of mass track around a selected horizontal key. Separate Tracks By default, 3ds Max uses an optimized method for key storage. For example, keys for the fingers, hand, forearm, and upper arm are stored in the Clavicle transform track. If you prefer instead to have a transform track available for 4380 | Chapter 17 character studio each arm object, use the Separate Tracks group to make these transform tracks available; transform tracks are displayed in Track View. When the Separate FK Tracks options are on for the Arms and Fingers, only these tracks receive keys. When the Separate FK Tracks options are off, all limb tracks receive keys. Biped User Interface | 4381 TIP Separate Tracks are designed to be used with forward-kinematic (FK) rotations. Using the Move tool to change the position of a biped limb with Separate Tracks requires that you turn on Set Parents Mode. If Set Parents Mode is off, then the limb you move is stored relative to its parent objects, and the new parent positions are not stored. The parent objects will snap back to their originally stored location. Turning on Set Parents Mode ensures that the position of the entire biped limb is stored. NOTE Separate Tracks are intended to be used as a preference. It is better to turn them on once for the tracks you plan to edit by hand. Turning off Separate Tracks that are currently on causes a key to be stored for every biped object in the limb for the frames where any biped keys previously existed. Procedures Example: Use separate finger tracks to create a clenching fist: 1 Create a biped with five fingers that have three joints apiece. 2 Turn on Set Parents Mode. 3 Turn on Separate FK Tracks for Arms. 4 Select the right hand and set a free key at frame 0. 5 Go to frame 30, move the hand up and forward, and then set a planted key. 6 Go to frame 40, set a free key (this will have IK on by default), select the pivot at the base of the hand (only hand pivots are present, not finger pivots), and reset the key. 7 The hand should now move up and then rotate at its base. 8 Select a finger. So far, it has no keys. 9 Animate each finger individually, so they curl up one at a time. 4382 | Chapter 17 character studio Interface Enable Subanims Enables Biped subanims. For more information about Biped subanims, see Using Controllers on page 4252 Manipulate Subanims Modifies Biped subanims. For more information about Biped subanims, see Using Controllers on page 4252 Clear Selected Tracks Removes all keys and constraints from the selected objects and tracks. Clear All Animation Removes all keys and constraints from the biped. Biped User Interface | 4383 Mirror and Mirror In Place flyout This flyout offers two options. Both options mirror the animation locally, so that the right side of the biped now does what the left side does, and vice versa. Also, if the spline leaned to the left, it now leans to the right. The same goes for the neck, pelvis, head, and so on. ■ Mirror Reflects the animation about the world-space XZ plane. This option reverses the biped’s position by 180 degrees, so it now faces in the opposite direction. ■ Mirror in Place Reflects the animation locally, but at the initial frame, maintains the world-space position and orientation of the biped. The biped continues to face in the same direction. Original animation: The biped turns to the left as it walks. 4384 | Chapter 17 character studio Left: When you click Mirror, the animation and the biped turn completely around. Right: When you click Mirror In Place, the biped still moves forward, but now it turns to the right. Set Multiple Keys Select keys using filters or apply a rotational increment to selected keys. Use this to change periodic motion keys in Track View. Displays the Set Multiple Keys dialog on page 4387 Set Parents Mode When a limb key is created, keys are created for the parent objects also, provided Set Parents Mode is turned on. Use Set Parents Mode when you turn on Separate FK Tracks. Set Parents Mode stores the position of the entire limb when a biped limb is moved using inverse kinematics instead of rotated using forward kinematics. For example, if Set Parents Mode is off and Separate Tracks are turned on for the biped arms, then the arm will snap back to its original position if you transform the biped hand. If Separate Tracks are turned on for a biped body part, then turn on Set Parents Mode. This lets you use the Move transform to position the biped limbs. NOTE Separate Tracks adds biped object transform tracks. Anchor Right Arm, Left Arm, Right Leg, Left Leg Let you temporarily fix the location and orientation of hands and feet. Use anchors when you are setting up animation with inverse kinematics object space, in Biped User Interface | 4385 which the arm or leg follows an object in the scene. Anchors ensure that the arm or leg keeps its alignment until you set the second key that establishes the object-space sequence. TIP An alternative to anchors is to use Set Planted Key on the Key Info rollout on page 4367. When you use Set Planted Key, the limb is positioned to the previous IK key (Join To Previous IK Key). Show All in Track View Shows all the curves for the options in the Keyframing rollout in the track view. Separate FK Tracks group By default, character studio stores a finger, hand, forearm, and upper-arm key in the Clavicle track. The toe, foot, and calf keys are stored in the thigh track. This optimized approach to key storage works well in most cases. If you need extra tracks, turn them on for a specific biped body part. For example, turn on Arms if you plan to create extensive finger-hand animation; if an arm key is deleted, it will not affect the finger-hand keys. You must turn on Set Parents Mode for these toggles to take effect. Arms Turn on to create separate transform tracks for the finger, hand, forearm, and upper arm. By default, there is one finger track per hand. All finger keys are stored in the Finger0 transform track, the first link of the biped thumb. Neck Turn on to create separate transform tracks for the neck links. Legs Turn on to create separate toe, foot, and calf transform tracks. Tail Turn on to create separate transform tracks for each tail link. Fingers Turn on to create separate transform tracks for fingers. Spine Turn on to create separate spine transform tracks. Toes Turn on to create separate transform tracks for toes. Ponytail 1 Turn on to create separate ponytail 1 transform tracks. Ponytail 2 Turn on to create separate ponytail 2 transform tracks. Xtras Turn on to create separate tracks for an extra tail. See Xtras group on page 4432. ■ Drop-down list Use this list to choose the specific extra tail for which you’re creating tracks. 4386 | Chapter 17 character studio Set Multiple Keys Dialog Select the Biped > Motion panel > Keyframing rollout > Set Multiple Keys > Set Multiple Keys dialog Keys can be selected manually in Track View or the Track Bar and an increment applied to the selected keys. State Filters in this dialog select certain biped keys for you, based on foot states (Touch, Plant, Lift, and Move). Select Left Leg and the Move state filter, then click Select to select all the left leg keys in a Move state for example (Move is the leg state between footsteps). Biped User Interface | 4387 Interface Change Multiple Keys group These controls allow you to apply to a set of keys the rotation or IK translation of a limb at the current frame. First select the keys in Track View, then rotate or move the limb, then click Apply Increment. Apply Increment Adjusts the rotation and/or position of a limb at the selected keys. Use this feature when you need to set the position of a limb over multiple keys. 4388 | Chapter 17 character studio Scale Tail Keys Exaggerates or tones down the default motion applied to the biped’s tail for three types of rotation. To activate all three spinners, select tail keys in the biped Tail track in Track View. Forward Sets the amount of forward and backward swing in the tail. Sideways Sets the amount of side-to-side swing of the tail. Twist Sets the amount of local X axis rotation of each tail object. Select Multiple Keys group These controls allow you to select keys according to the foot state at that frame. This is very helpful when you want to apply an increment to all keys of a particular type in a particular track. ■ First, select the tracks you want: Left Leg, Right Leg, Body Horizontal, Body Vertical. ■ Then select the foot states: Touch, Plant, Lift, Move ■ Then click Select to select all the matching keys. Selected keys are highlighted in white in Track View. Copy/Paste Rollout Create a biped or select one. > Motion panel > Copy/Paste rollout (not available in Footstep, Motion Flow, or Mixer modes) Controls on the Copy/Paste rollout let you copy and then paste posture, pose, or track information from one part of a biped to another, or from one biped to a different one. These are the three categories of information you can copy and paste: ■ Posture The positioning of selected biped objects. ■ Pose The positioning of the entire biped. ■ Track The animation track from the selected biped objects. NOTE Your copied information will be stored in the current copy collection. Biped User Interface | 4389 Copy Collections Copy collections are designed to make it easier to manage copied posture, pose, and track information by grouping it together. This improves the way copied animation data is organized when it is transferred between files within a session: ■ You can display smaller sets of poses, postures, and tracks in the list. ■ You can load more than one CPY on page 7944 file into a single scene. ■ You can either append a loaded set to an existing one or replace it entirely. NOTE You must create a copy collection before you can copy a biped's posture, pose or track. Copy/Paste Buffers In character studio, you can save multiple copy/paste buffers for each of the three modes: Posture, Pose, and Track. These are available from the Copied Postures/Poses/Tracks drop-down list; the active buffer that the Paste buttons use is the one whose name is visible in the field at the top of the list. A thumbnail view gives a preview of what the active buffer has saved. Buffers are saved with your MAX scene file, and also remain available in your 3ds Max session, even if you reset. The default name of a buffer depends on which mode you are in. In the Posture and Pose modes, the name of the buffer consists of abbreviated names of the body parts you selected, followed by a sequence number. For example, RArmRFing1 is the first buffer for the posture or tracks of the biped's right arm and finger. In Pose mode, the name of the buffer is always “Pose,” followed by a sequence number. For example, Pose03. To give a buffer a custom name, make it active, highlight its name in the field at the top of the buffer list, and then enter a new name. For hands-on experience using the Copy/Paste rollout, see the lesson called “Creating a Simple Freeform Animation” found in the tutorial entitled Animating with Freeform. TIP When copying poses or postures containing COM data, the Paste Options on page 4402 are activated. 4390 | Chapter 17 character studio Paste and Paste Opposite For each mode, there are two paste options: Paste, and Paste Opposite. These are useful in different situations: ■ Paste In the Posture and Pose modes, Paste is useful for copying positioning from one biped to a different biped, or for restoring a biped's positioning at a different frame of an animation. In Track mode, Paste is useful mainly for copying movement from one biped to a different biped. ■ Paste Opposite In Posture mode, Paste Opposite is useful for making one limb assume the posture of the other, either at the same frame or different frames. In Pose mode, Paste Opposite reverses the biped's pose, or applies that reverse pose to a different biped. In Track mode, Paste Opposite can make a biped's limbs move symmetrically, or apply the opposite of the copied movement to a different biped. TIP After pasting a pose or tracks to a different biped, often you have to reposition it. This is easily done with Move All mode. NOTE If a copied pose, posture or track contains sub-animations, they can be pasted to another pose, posture or track as long as the same sub-animations already exist. Otherwise, they are ignored. Procedures Example: To load multiple collections between files within a single session: 1 Create a biped and load some animation onto it. 2 On the Copy/Paste rollout, click Create Collection and rename it Upper. 3 Select all of the biped's links from the spine up and, after making sure you're in Posture mode on page 4400, click Copy Posture. Repeat this step for every 10 frames of your animation. Biped User Interface | 4391 4 Create a new collection and rename it Lower. 5 Go to frame 0. Select all of the biped's links from the pelvis down and copy a posture at every 10 frames. 6 Choose the Upper collection from the Copy Collections drop-down list.and save it. Then, select the Lower collection and save it as well. 7 8 9 Save your scene and reset it (File > Reset). Create a new biped and load the Upper collection. For every 10 frames, select the biped's upper body and paste the corresponding posture from the Copied Postures drop-down list. Set a key for each pasted posture. 4392 | Chapter 17 character studio 10 11 12 Load the Lower collection and repeat last step with the biped's lower body selected, setting a key for each posture. Delete the Lower collection. Click Max Load Preferences and make sure both options are checked. Close the dialog and load the saved 3ds Max file. Notice that the Copy Collections drop-down list now contains three collections: two Upper collections (one from the current file and one from the incoming) and one Lower collection from the incoming file. To capture different snapshots: 1 Under the thumbnail snapshot of the Copied Postures group, click Capture Snapshot from Viewport. 2 Rotate your current viewport to different user views and copy a biped posture. Notice that your snapshot matches the viewport angle. 3 Click Capture Snapshot Automatically and copy a posture again. Biped User Interface | 4393 Notice that your snapshot is displayed from a frontal view. 4 Click No Snapshot and copy another posture. The capture has been replaced by a gray canvas. Example: To maintain copied COM data when pasting poses: 1 Create a biped and then create a new collection. Rename it Poses. 2 Make sure you're in Pose mode and click Copy Pose at frame 0. Then, go to frame 30. 3 Using tools from the Track Selection rollout on page 4348, move your biped away from its current position and rotate it in all three axes. The biped with offset position and orientation 4 In the Paste Options group on page 4402, enable all three Paste buttons. 4394 | Chapter 17 character studio 5 Click Paste Pose. The biped resets back to its original position and orientation since its copied COM data is maintained. Undo the step. 6 Disable Paste Rotation but keep the other two buttons enabled. 7 Click Paste Pose. The biped resets back to its original position but remains rotated. This is due to the fact that the copied COM orientation is not maintained on paste. Undo the step. 8 Disabled both Paste Horizontal and Paste Vertical but enable Paste Rotation once again. Click Paste Pose. This time, the biped's position is maintained but not its orientation. Paste Rotation is the only enabled button Example: To maintain COM offsets using By Velocity: 1 Create a biped. Then, on the Track Selection rollout on page 4348, turn on Body Horizontal. 2 Set a key at frame 0. Then, make sure Pose mode is selected and copy your biped's pose. 3 Go to frame 10 and move the Body COM 50 units in the Y axis. Set a new key. 4 In the Paste Options group on page 4402, enable Paste Horizontal but leave By Velocity unchecked. 5 Go to frame 30 and paste your biped's pose. The biped jumps to the center of your scene. Undo the step. 6 Go back in the Paste Options group and turn on By Velocity. Then, try pasting your pose again. Notice how the biped's COM position is now offsetted by another 50 units in Y. Biped User Interface | 4395 Example: To set TCB/IK Values when pasting postures: 1 2 Create a biped and then create a new collection. Rename it Hands. Select the biped's right hand and, on the Key Info rollout on page 4367, set a key. 3 In the TCB group, set Ease To to 10, Ease From to 50, and all three TCB values to 5. 4 In the IK group, set IK Blend to 0.5 and choose the Object Space option. Then, set another key. 5 Make sure you're in Posture mode and click Copy Posture. 6 Create a new biped next to the original one. Create a box next to its right hand. 4396 | Chapter 17 character studio The original biped (left) and the new biped with box (right) 7 In the IK group, constrain the biped's hand to the box by clicking Select IK Object and then selecting the box in your viewport. Keep the Body Space option selected. 8 On the Keyframing Tools rollout on page 4380, turn Separate Tracks off for the arms. Then turn Auto Key on. 9 In the Paste Options group on page 4402, set the Auto-Key TCB/IK Values to Default. 10 Click Paste Posture. The hand assumes the copied posture and the key's TCB and IK values are set to default. Keys are also set for the whole arm. Biped User Interface | 4397 11 Go to frame 30 and turn Separate Tracks on. 12 Set Auto-Key TCB/IK Values to Copied and paste the posture. The copied value information is transferred to this new key. The key values are now 10 and 50 for the Ease To/Ease From, 5 for the TCB, and 0.5 for the IK Blend. The box is still the IK Object and Object Space remains selected. Also notice that the hand is the only keyed limb. 13 Go to frame 15, set the Auto-Key TCB/IK Values to Interpolated and paste the posture again. This new key averages up the values based on the previous and next keys, setting Ease To/Ease From to 5 and 25, TCB to 15 and IK Blend to 0.25. Also, Body Space is selected from the previous key. Interface Create Collections Clears the current collection name and the poses, postures and tracks associated with it. 4398 | Chapter 17 character studio Load Collections Loads a CPY file and displays its collection name at the top of the Copy Collections drop-down list, making it active. Save Collections Saves all the postures, poses and tracks stored within the active collection of the current session in a CPY file. Delete Collection Removes the current collection from the scene. Delete All Collection Removes all collections from the scene. Max Load Preferences Displays a dialog with options for actions to take upon Max file open. Keep Existing Collections When on, sets biped to overwrite the existing Copy/Paste Buffer upon load. Default=Off. Load Collections When on, sets biped to load the Copy/Paste buffer from the incoming file, appending the current buffer. Default=On. Posture, Pose, and Track Choose one of these buttons to choose which kind of information you are copying and pasting. The copy/paste buttons change to indicate the current mode. Default=Pose. Copy/Paste buttons These buttons change according to the current mode, as described below in Posture on page 4400, Pose on page 4400 and Track on page 4400. Delete Selected Deletes the selected posture, pose, or track buffer. The selected buffer is the active one; that is, the buffer whose name is currently displayed in the Copied Postures/Poses/Tracks list. Biped User Interface | 4399 Delete All Deletes all the buffers in the Copied Postures/Poses/Tracks list. Posture mode Copy Posture Copies the posture of the selected biped objects and saves it in a new posture buffer. Paste Posture Pastes the posture of the active buffer onto the biped. Paste Posture Opposite Pastes the posture of the active buffer onto the opposite side of the biped. Pose mode Copy Pose Copies the current pose of the entire biped and saves it in a new pose buffer. Paste Pose Pastes the pose of the active buffer onto the biped. Paste Pose Opposite Pastes the opposite of the pose of the active buffer onto the biped. Track mode Copy Track Copies the tracks for the selected biped objects and creates a new track buffer. Paste Track Pastes the track or tracks in the active buffer onto the biped. Paste Track Opposite Pastes the track or tracks in the active buffer onto the opposite side of the biped. 4400 | Chapter 17 character studio Copied Postures group Copied Postures/Poses/Tracks list For each of the modes, lists the buffers you have copied. The active buffer is the one that will be pasted by the paste buttons. To make a buffer active, choose it from the drop-down list. To change the name of a buffer, make it active, highlight its name, and enter a new name. Thumbnail buffer view For Posture and Track mode, displays a schematic view of the parts of the biped in the active copy buffer. For Pose mode, displays a schematic view of the entire biped. This can help you preview the effect of pasting the active buffer. Thumbnail showing a copied left arm posture Thumbnail showing a copied pose Capture Snapshot from Viewport When chosen, creates a snapshot of the active 2D or 3D viewport of entire biped. Biped User Interface | 4401 Capture Snapshot Automatically When chosen, creates a front view snapshot of the isolated body parts. No Snapshot When chosen, replaces the snapshot with a gray canvas. Show/Hide Snapshot Toggles maximize/minimize of the snapshot view. Paste Options group The Horizontal, Vertical and Rotation copy options found in older versions of character studio have been replaced by the Paste Options. By default, copying poses or postures with the COM selected copies all three COM tracks. Paste Horizontal/Vertical/Rotation buttons When turned on, the COM's Body Horizontal, Vertical or Rotation data are set to be pasted next time you perform a paste operation. Choosing to paste COM data maintains the world space positions and orientation of the copied COM onto the current data tracks. Otherwise, the COM's current positions and orientation are maintained when the copied data tracks are pasted. See Example: To maintain copied COM data when pasting poses: on page 4394 TIP This choice can be seen as pasting absolute or relative COM animation. The former will overwrite the current data with the copied one while the latter will maintain the current data, ignoring all copied information. By Velocity When on, determines the values of the active COM tracks based on the previous trajectory of the COM through the scene. This option is only enabled when the Paste Horizontal/Vertical/Rotation buttons are active. See Example: To maintain COM offsets using By Velocity: on page 4395 NOTE If there is no previous trajectory from which to gather the velocity data, the COM result is considered as absolute. Auto-Key TCB/IK Values Active only in Auto Key mode on page 7549. NOTE If part of the copied biped is linked to an IK object, that object it is not transferable using the copy/paste process. However, the Join to Prev IK Key option is maintained, as well as they Body or Object options. If a copied pose or posture contains an IK Object, the data becomes baked into the biped's link while keeping the key in Object space. 4402 | Chapter 17 character studio NOTE If part of the pasted biped is linked to an IK object, that object is maintained even while the new pose or posture is honored. In other words, if an incoming pose requires a change in an existing link between a biped limb and an IK object, the link is maintained and adjusted accordingly. ■ Default Sets (on the Key Info rollout on page 4367) the TCB Ease To and Ease From to 0, and Tension, Continuity and Bias to 25. These settings are unrelated to what was copied or where it is pasted. Any IK key values already set are maintained. Otherwise, values will be obtained from the position in time between the previous and next keys. ■ Copied Sets the TCB/IK values to match those from the copied data. If a copied pose or posture is not on a key, the TCB/IK values are based on interpolation from the previous and next keys. ■ Interpolated Sets the TCB values to an interpolation from the animation on which you are pasting. If an existing key is being pasted, its TCB values are maintained. Along the same lines, existing IK values are also maintained when pasted. If no key is present, the IK values are set from the position in time between the previous and next keys. Layers Rollout Select the Biped > Motion panel > Layers rollout Controls on the Layers rollout allow you to add layers of animation above the original biped animation. This is a powerful way of making global changes to your character animation. For example, add a layer to a run cycle and rotate the spine forward at any frame, and it becomes a crouched run. The original biped motion is kept intact and can be viewed by switching back to the original layer. You can view layers individually or as a composite of all the animation in all the layers. Layers behave like freeform animation; the biped can adopt any position. Biped User Interface | 4403 TIP You can globally translate both footstep and freeform animation by doing a layered edit on the center of mass on page 4325. For example, by adding a layer and moving the center of mass you can move a freeform or footstep animation. With layers, you can easily adjust raw motion-capture data, which contains keys at every frame. Simply add a layer and keyframe the biped. The original layer is displayed as red bones. Honoring IK Constraints Across Layers You can maintain a biped's IK constraints across layers by retargeting its hands and feet to the original layer. This assures that the biped's constrained body parts are honored and locked in place while you make animation changes on the upper layers. You can also choose to retarget a biped using another one as reference. This is useful when you need to precisely match hands and feet positioning between two animated bipeds with different body proportions. 4404 | Chapter 17 character studio You can save an animation containing honored constraints across layers in a BIP on page 7923 file. However, if the layered animation links to another biped as reference, that link is not saved with the animation. Procedures Example: To Maintain IK Constraints Across Layers: This procedure takes into account the fundamentals of animating across layers and expands on the concept of honoring IK constraints. 1 Prepare a biped with IK keys on its feet, and its left hand constrained to an IK object. 2 Select your biped and expand the Layers rollout on the Motion panel. 3 Create a new layer and rename it Low center of mass. The Retarget Left Arm button in the Retargeting group becomes active, which indicates that the current layer honors the IK constraint of the base layer for this body part. Biped User Interface | 4405 4 Turn on Auto Key mode on page 7549. 5 On the Track Selection rollout, turn on Body Vertical. This selects the biped's center of mass. 6 Lower the center of mass on the Z axis until the biped's head is under the base layer's head display (represented as a red box). TIP To avoid deselecting the center of mass, you can lock it by clicking the Selection Lock Toggle on page 7539 (or press the spacebar). 4406 | Chapter 17 character studio The entire biped is lowered except its left hand, which remains locked to the object because the current layer retargets it to match the respective IK constraint of the base layer. Only the biped's left hand constraint is honored. 7 In the Retargeting group, turn on both Retarget Left Leg and Retarget Right Leg. Then, click Update. The biped's IK feet are adjusted to match those of the base layer. The animation keys are updated to reflect the current layer's retargeted feet. TIP If some body parts assume odd positions, simply drag the time slider on page 7528 a few frames past your current frame, and then drag it back home. Biped User Interface | 4407 Both the biped's feet and left hand constraints are honored. 8 You can continue animating the biped to your liking. Collapse your layers when you are satisfied. Example: To Maintain IK Constraints From a Reference Biped: This procedure centers on using an animated biped as a retarget reference for another biped with disproportionate body parts. This method is often used when a motion is imported from raw data and adapted to bipeds with different proportions. 1 Prepare an animated biped or load a BIP on page 7923 file onto one. 2 Create a second biped alongside and rename it Disproportionate Biped. 4408 | Chapter 17 character studio The animated biped on the left and Disproportionate Biped on the right 3 Select Disproportionate Biped and enter Figure Mode on page 4420. You can now change the biped's structure. 4 Scale its upper arms and thighs to make them disproportionate from the rest of its body. TIP You can quickly select body parts on both sides of a biped if you first select the body part, then click Symmetrical on the Track Selection rollout on page 4348. Biped User Interface | 4409 5 Exit Figure Mode. 6 Keep Disproportionate Biped selected and expand the Layers rollout. 7 Click Select Reference Biped and select your original biped in the viewport. Disproportionate Biped adopts the animation from the reference biped, whose name is now displayed next to the Select Reference Biped button. 4410 | Chapter 17 character studio 8 9 Add a new layer and rename it Retargeted Biped. Turn on both Retarget Left Arm and Retarget Right Arm, and then click Update. Both hands precisely match those from the reference biped. The animation keys are updated to reflect the current layer's retargeted hands. Biped User Interface | 4411 Both hands are retargeted to honor the base layer IK constraints. 10 Turn on both Retarget Left Leg and Retarget Right Leg. Then, click Update. The feet are correctly retargeted to the reference biped, updating the respective animation keys. 4412 | Chapter 17 character studio The feet are retargeted to honor the base layer IK constraints. 11 Use Previous layer and Next Layer to switch between the original and Retargeted Biped layers. The base layer displays the non-targeted motion while Retargeted Biped shows an adjusted motion that matches both hands and feet from Disproportionate Biped with the original biped. 12 You can continue animating the biped to your liking. Collapse your layers when you are satisfied. Biped User Interface | 4413 Interface Load and Save buttons You can load and save individual biped layers as BIP files. Load Layer Click to display a file selector and open a BIP file for t he layer that is currently active. 3ds Max objects and list controllers are loaded only at the base layer (0). When you load into a higher layer, separate tracks are removed, and IK is removed for any limb. If Retarget is on for a limb, the limb keys are removed. After you load a layer, retargetting does not happen automatically: you must click Update after you load the layer. 4414 | Chapter 17 character studio Save Layer Click to display a file selector and save the current layer’s animation in a BIP file. 3ds Max objects are saved only at the base layer (0). Previous-Next Layer Navigate through the layers using the up and down arrows. Level This field displays the current layer (Level). Active Toggles the displayed layer on and off. Name Field Type a name to easily identify a layer. Create Layer Creates a layer, and the Level field increments. Position the biped to create keys in a layer. Delete Layer Deletes the current layer. All layer numbers ‘above’ the one deleted are decremented by one. Collapse Layers Collapses all the layers into layer 0. Legs that stray from the original footsteps in higher layers are "pulled in" to the original footsteps. Snap Set Key Snaps the selected biped part to its original position in layer 0 and creates a key. Use this in higher layers to return the selected biped part to the original motion. If a layer has a posture key that bends the character forward at frame 2 and you want to return the biped to its original posture motion at frame 50, use Snap Set Key at frame 50 with a spine object selected. The character will interpolate from its forward posture position to its original posture position between frame 2 and 50. Activate Only Me View the animation in the selected layer. Choose Play after turning on Activate Only Me to view a layer’s keys in motion. Biped User Interface | 4415 Activate All Activates all the layers. Playing the animation shows a composite of all the layers. Visible Before Sets the number of preceding layers to display as stick figures. Visible After Sets the number of succeeding layers to display as stick figures. Key Highlight Displays keys by highlighting the stick figures. Retargeting Group The tools in this group let you animate a biped across layers while maintaining the IK constraints of the base layer. You can also choose to use a different biped in your scene to use as reference for your biped's retargeted hands and feet. Biped's Base Layer Choose this method to use the IK constraints from the selected biped's original layer as retarget reference. Default=active. Reference Biped Choose this method to use the biped whose name is displayed next to the Select Reference Biped button as retarget reference. Select Reference Biped Lets you choose a biped to use as retarget reference for the selected biped. The chosen biped's name is displayed next to the button. Retarget Left Arm When on, the IK constraints of the base layer are honored for the biped's left arm. Retarget Right Arm When on, the IK constraints of the base layer are honored for the biped's right arm. Retarget Left Leg When on, the IK constraints of the base layer are honored for the biped's left leg. Retarget Right Leg When on, the IK constraints of the base layer are honored for the biped's right leg. Update Calculates the selected biped's hands and feet positions for every set key based on the retarget method (Base Layer or Reference Biped), the active retarget body parts buttons, and the IK Only option. 4416 | Chapter 17 character studio IK Only When on, the biped's constrained hands and feet are retargeted only during the frames on which they are IK controlled. When off, the hands and feet are retargeted during both IK and FK keys. Default=off. Dynamics & Adaptation Rollout Select the biped. > Motion panel > Dynamics & Adaptation rollout The controls on the Dynamics & Adaptation rollout let you specify the way you want to create biped animation. The parameters let you modify gravity strength, dynamic properties for keys generated by newly created footsteps, the number of transform tracks available on the biped, and prevent key adaptation. Biped Dynamics and Spline Dynamics These parameters specify how new biped center of mass keys are created and therefore how you want to work with the biped. Turning on Spline Dynamics will create center of mass keys, without gravity and balance calculation, for newly created footsteps. This may feel more familiar to new users who are already familiar with spline interpolation. Biped Dynamics calculates biped airborne trajectory, knee bend on landing and positions the biped to maintain balance when the spine is rotated. When parameters change, the biped adapts. Turn on Biped Dynamics and use this adaptation to your advantage. You can always change from one method to the other on a per-key basis or for the entire animation at any time. See also: ■ Adjusting Vertical Motion on page 4217 Biped User Interface | 4417 Interface GravAccel Sets the strength of the gravitational acceleration used to calculate the biped’s motion. By default, this parameter is set to accurately simulate Newtonian gravity as found on the Earth's surface. At a value of 0, the biped still runs but the feet hardly get off the ground. Biped Dynamics Creates new center-of-mass keys using Biped Dynamics. Keys for the center of mass (COM) Balance Factor and Dynamics Blend parameters are set to a value of 1. Biped calculates airborne trajectories and biped balance. NOTE Use Dynamics Blend on the Key Info rollout > Body group to set a vertical COM key that is a blend between Dynamics and Spline Interpolation; a value of 1 is full Dynamics, a value of 0 is full Spline interpolation. Spline Dynamics Creates new center-of-mass keys using full spline interpolation. All new vertical COM keys are created with Dynamics Blend=0, and all new horizontal COM keys are created with Balance Factor=0. 4418 | Chapter 17 character studio Footstep Adapt Locks group Lock specified tracks to prevent automatic adjustments being made to those tracks when footsteps are moved in space or edited in time. All the locks except for Time work for footstep editing in space. Time locks upper body keys when footsteps are edited in time (Track View). Adapt Locks only applies to a Footstep animation, not a freeform animation. When you move a footstep in space or adjust footstep timing, Biped automatically adapts existing keyframes to match the new footsteps. Adapt locks allows you to preserve the exact position of already created keys for a selected track. Adapt Locks does not need to be on all the time. For example, if you want to raise all the footsteps along the world Z-axis, without changing the upper body position, turn on Footstep Adapt Locks group > Body Vertical Keys, turn on Footstep mode, select all the footsteps and move them up along the world Z-axis. The footsteps are repositioned, the legs are adapted, but the upper body retains the same motion rather than being raised with the footsteps. Now turn off Body Vertical Keys, and the upper body still retains its original motion. Use Footstep Adapt Locks > Time to retain upper body motion while editing footstep duration in Track View. When the duration of a footstep is changed, the biped leg will adapt by re-timing the touch, plant, and lift keys. The biped upper body keys will retain their exact motion. Body Horizontal Keys Turn on to prevent adaptation of body horizontal keys when footsteps are edited in space. Body Vertical Keys Turn on to prevent adaptation of body vertical keys when footsteps are edited in space. Body Turning Keys Turn on to prevent adaptation of body turning keys when footsteps are edited in space. Right Leg Move Keys Turn on to prevent adaptation of right leg move keys (a leg move key, is a leg key between footsteps) when footsteps are edited in space. Left Leg Move Keys Turn on to prevent adaptation of left leg move keys (a leg move key, is a leg key between footsteps) when footsteps are edited in space. Freeform Keys Turn on to prevent adaptation of a freeform period in a footstep animation. The biped’s position during a freeform period will not move if footsteps after the freeform period are moved further away. Biped User Interface | 4419 Time Turn on to prevent adaptation of upper body keys when footstep duration is changed in Track View. NOTE Leg and foot keys for frames in which the foot is in contact with the ground are always automatically adapted. Figure Mode Select the Biped > Motion Panel > Biped rollout > Figure mode While Figure mode is active, you can change biped structure and fit that structure to a character mesh. It can be used for a variety of other procedures as well. ■ Figure mode is a reference position to fit a biped to a mesh. Use Figure mode to fit a biped to the mesh representing your character. This "reference" or Figure mode position, in which the biped is aligned to the mesh, is necessary when a mesh is linked or attached to the biped with Physique. After the biped is positioned to fit within a mesh, leave Figure mode on during the process of attaching a mesh to the biped with Physique, or when using Select And Link on the 3ds Max toolbar to link the mesh objects of a character to the biped. The relationship or "fit" position between the biped and the mesh can always be restored by turning on Figure mode, regardless of which motion file happens to be loaded. After fitting a biped to a mesh in Figure mode, use Save on the Biped rollout to save a figure file (.fig). If you accidentally reposition the biped in Figure mode, load the figure file. 4420 | Chapter 17 character studio ■ Figure mode is used for biped adjustment after a mesh is attached to correct biped joint location. After using Physique to attach a mesh character to the biped, you may want to reposition a biped limb relative to the mesh. For example, if the biped shoulder joint is too far out relative to the mesh shoulder, then the Physique modifier must be inactivated, the biped limbs adjusted, and then a Reinitialize in Physique must be performed before reactivating the Physique modifier. ■ Figure mode is used for biped adjustment after a mesh is attached to correct posture in a motion file. Figure mode is also used to make adjustments after a character is attached or linked to the biped. After loading a .bip motion file, for example, you may find that the character is hunched too far forward during the entire animation. Rotating the biped's spine objects in Figure mode will correct the character’s posture for the entire animation. This is a basic procedure where you simply rotate the biped limbs in Figure mode and then exit Figure mode; the posture will be corrected for the entire animation. ■ Figure mode is used to define biped structure. The Structure rollout on page 4424 is displayed when you work in Figure mode, allowing you to tailor the biped to your mesh character. After creating a biped, make all of your biped structure changes on the Structure rollout. For example, you may want to use one toe with one toe link if your character is wearing shoes or if your character's toes do not need to be keyframed individually. Set the biped structure before "fitting" the biped to the your mesh character. ■ Turn Figure mode on to scale a character. Use the height spinner on the Structure rollout to scale a complete character (a complete character has a biped and mesh attached with Physique). ■ Reverse-Knee Characters. If your character mesh has reverse knees, rotate the biped calves or thighs along the local X axis 180 degrees in Figure mode; the biped local X axis is along the length of the limb. character studio assumes you want a reverse knees character if the calves or thighs are rotated past 90 degrees in the local X axis. When Figure mode is turned off, the biped walks, runs, and jumps with reverse knees. Moving the Head While in Figure mode, you can move the head relative to the body. This is another way to help fit the biped into a character’s skin. Biped User Interface | 4421 You can move a biped’s head in Figure mode. Notes on Fitting the Biped to a Mesh in Figure Mode These are quick notes designed to give you a general sense of the issues involved when a biped is fitted to a mesh. ■ Use the Structure rollout to set the number of toes and fingers; specify the number of links per finger and toe. One toe with one toe link is often sufficient if your character wears shoes, or if animating individual toes will not be necessary. 4422 | Chapter 17 character studio ■ Put the lowest biped spine object at the character’s belt-line. ■ Scale the biped fingers to slightly protrude from the character’s hand. ■ Rubber Band mode and scale are used to size the biped limbs to fit the biped to a mesh. ■ Use the options from the Twist Links group on page 4430 to transfer twisting animation in the biped's associated mesh. ■ Use Props to represent weapons or tools attached to your character. ■ Use Select And Link on the 3ds Max toolbar to link non-deformable (mechanical) objects to the biped. Do this after Physique is applied to prevent Physique from generating extra links (Envelopes). Superflous envelopes (links) can be turned off in Physique however, so this is not critical. NOTE Objects like eyeballs and weapons should be linked to the biped after Physique is applied; otherwise links (Envelopes) will extend to these objects when Physique is applied. ■ Reposition and use Ponytails on the Structure rollout to animate a character’s jaw, ears, hat, hair and ponytails. ■ A saved .fig file can be reloaded if the biped is repositioned in Figure mode by mistake. Move the first link on each finger to position the fingers relative to the mesh; use local and world coordinate systems for this. Scale the finger links to position the joints. After positioning the thumb, rotate the first thumb link around the local X-axis until the local Z-axis creates a natural rotation for the thumb (refer to the image). A User view and toggling back and forth between a shaded and wireframe display is helpful when fingers are positioned. Biped User Interface | 4423 Structure Rollout Select the biped. > Motion panel > Biped rollout > Turn on Figure mode > Structure rollout Turn Figure mode on to enable parameters on the Structure rollout. The Structure rollout provides parameters for changing the biped’s skeletal structure to match your character mesh (dinosaur, robot, human, and so on). You can also add up to three props to your biped, to represent tools or weapons. After setting parameters to suit your character, use the Height parameter to scale the biped to the size of the mesh representing your character. This is the first step in fitting a biped to a mesh in Figure mode. Procedures To Scale a Biped and a Physique Mesh: Select the biped, turn on Figure mode, and then change the biped height on the Structure rollout. The biped and mesh scale together. ■ To Skin a Biped with Twist Links: This procedure takes into account the process of skinning a character and expands on the concept of using twist links to better deform a skinned mesh. 1 Position a biped within the mesh. 2 Select the biped and turn on Figure Mode. 3 On the Structure rollout, turn on the Twists option. This enables the input fields for all biped limbs. NOTE Horse Link is only available if your biped has four leg links. 4 Set Forearm to 5. Both forearms have five twist links. 4424 | Chapter 17 character studio TIP To get a better view of your twist links, you can select the forearms and turn on See-Through in the Display Properties rollout on page 183 on the Display panel (or press Alt+X). See-Through turned on for the right forearm only. 5 Add a Skin modifier on page 1672 to the mesh. 6 Unfreeze all the biped twist bones. 7 On the Skin Parameters rollout of the Motion panel, add all the biped bones to the skin except the forearms. 8 Select and freeze the twist bones again. 9 Turn on Edit Envelopes on the Parameters rollout. 10 Select and adjust the Envelopes of the twist bones until the desired behavior is achieved, moving and rotating the hand to test. Biped User Interface | 4425 Interface Body Type group The Body Type group lets you select the biped's body type: ■ Skeleton The skeleton body type provides a realistic skeleton which fits naturally into mesh skins. ■ Male The male body type provides a silhouette mold based on basic male proportions. ■ Female The female body type provides a silhouette mold based on basic female proportions. 4426 | Chapter 17 character studio ■ Classic The classic body type is the same as the biped object from older versions of character studio. Arms Sets whether arms will be generated for the current biped. Neck Links Sets the number of links in the biped neck. Default=1. Range=1 to 25. Spine Links Sets the number of links in the biped spine. Default=4. Range=1 to 10. Leg Links Sets the number of links in the biped legs. Default=3. Range=3 to 4. Setting Leg Links adds a horse link: an additional, lower leg bone suitable for animating quadrupeds, or humanoids with animal legs such as the Greek god Pan. Tail Links Sets the number of links in the biped tail. A value of 0 specifies no tail. Default=0. Range=0 to 25. Ponytail1/2 Links Sets the number of Ponytail Links. Default=0. Range=0 to 25. You can animate hair with ponytail links. Ponytails are linked to a character’s head and can be used to animate other appendages. Reposition ponytails in Figure mode and use them to animate a character’s jaw, ears, nose, or anything that should move with the head. Unlike the process of selecting the biped hand and dragging to reposition the entire arm, ponytails must be keyed using rotational transformations. Fingers Sets the number of biped fingers. Default=1. Range=0 to 5. Finger Links Sets the number of links per finger. Default=1. Range=1 to 3. Toes Sets the number of biped toes. Default=1. Range=1 to 5. Toe Links Sets the number of links per toe. Default=3. Range=1 to 3. TIP Characters wearing shoes might need only one toe with one link. Props 1/2/3 Turns on up to three props, which can be used to represent tools or weapons attached to the biped. By default, prop 1 appears next to the right hand, prop 2 appears next to the left hand, and prop 3 appears centered between in front of the torso. You can animate props throughout the scene, like any object. You can use 3ds Max controllers to animate props and can then collapse animation onto Biped User Interface | 4427 the prop’s transform controller for use in Mixer, Motion Flow, and Layer editing. Ankle Attach Specifies the ankles’ point of attachment along the corresponding foot block. The ankles can be placed anywhere along the centerline of the foot block, from the heel to the toe. Ankle Attach=0.25 and Ankle Attach=0.5 A value of 0 places the ankle attachment point at the heel. A value of 1 places the ankle attachment point at the toes. Click the spinner up arrow to move the ankle attach point toward the toes. Range=0 to 1. Height Sets the height of the current biped. Use to size the biped to your mesh character before Physique is attached. This parameter is also used in a procedure to scale your character after Physique is attached. Triangle Pelvis Turn on to create links from the upper legs to the lowest biped spine object when Physique is attached. Normally the legs are linked to the biped pelvis object. The pelvis area can be a problem when the mesh is deformed with Physique. Triangle Pelvis creates a more natural spline for mesh deformation. 4428 | Chapter 17 character studio Triangle Pelvis creates two links that extend from the legs to the lowest biped spine object. A link from the biped pelvis to the lowest spine object is also created. This provides natural deformation to this area after Physique is applied and the character is moving. If you are working on a new character, turn this on before applying Physique. If Bones is turned on in the Display rollout, links from the legs to the lower spine object are visible. Triangle Neck When on, links clavicles to the top spine link instead of to the neck. Default=off. Like Triangle Pelvis, this feature has no effect on how the biped animates. It is a convenience when you skin the biped using Physique. Some meshes deform more naturally with the triangular neck configuration. If you have a mesh where this is the case, turn on Triangle Neck before you apply Phsyique. Left: A normal neck. The neck is the parent of each clavicle. Biped User Interface | 4429 Right: Triangle Neck. The top segment of the spine (Spine3) is the parent of each clavicle. ForeFeet When on, the biped hands and fingers behave as feet and toes: when you set Planted keys for a hand, rotating the hand does not affect the position of the fingers. Default=off. This option turns the biped into a quadruped. You can think of the name of this option as also meaning “Four Feet.” As with feet, the planted behavior applies only to IK periods of biped animation. After you set a Free key, the fingers rotate as children of the hands, using FK, until you set another Planted key. Twist Links group The bone twist option, previously limited to the biped's forearm, has been expanded to include all limbs. These settings allow better mesh deformation on skinned models (using Physique on page 4132 or Skin on page 1672) when twisting occurs on animated limbs. Use the Twist Poses rollout on page 4357 for better control over your twist links. 4430 | Chapter 17 character studio NOTE If a limb has twist links, they control skin deformation while the base link (the biped's forearm, for example) drives the animation. Twist links cannot be animated. Twists Enables twist links for biped limbs. When enabled, twist links become visible but remain frozen. You can unfreeze them using Unfreeze By Name or Unfreeze By Hit on the Freeze rollout on page 181. Upper Arm Sets the number of twist links in the upper arms. Default=0. Range=0 to 10. Forearm Sets the number of twist links in the forearms. Default=0. Range=0 to 10. Thigh Sets the number of twist links in the thighs. Default=0. Range=0 to 10. Calf Sets the number of twist links in the calves. Default=0. Range=0 to 10. Horse Link Sets the number of twist links in the horse link: the additional, lower leg bone that appears when you set Leg Links on page 4427 to 4. Default=0. Range=0 to 10. NOTE You must set Leg Links to 4 to enable Horse Link. Biped User Interface | 4431 Xtras group The Xtras group lets you add extra tails to the biped. Extra tails are like ponytails: they don’t use inverse kinematics, and you must animate them with forward kinematics such as rotation keys. On the other hand, extra tails don’t have to be attached to the head. Animation for extra tails is saved in MAX and BIP files. Create Xtra Click to create a new Xtra tail. By default, the parent of the tail is the biped’s root Center Of Mass (COM) object. You can change this by using the Pick Parent button. Delete Xtra Click to delete the Xtra tail that is highlighted in the list. If you the Xtra tail you delete is parent to another tail, the child tail reverts to having the COM as its parent, but it is not repositioned. 4432 | Chapter 17 character studio Create Opposite Xtra Click to create another Xtra tail on the opposite side of the biped. First you must use the list to select the original Xtra tail’s name, and the original must not already have an opposite tail. Synch Selection When on, any Xtra tail selected in the list is selected in viewports, and vice versa. Select Symmetrical When on, selecting one tail selects the tail’s opposite as well. Xtra name field Displays the name of the new Xtra tail. Edit this field to change the default name of the Xtra tail. List of xtras Lists the biped’s Xtra tails, by name. Links Sets the number of links in the tail. Default=1. Parent name field (Motion panel only.) Displays the name of the tail’s parent object. Pick Parent (Motion panel only.) Reassigns the parent object. Click this button to turn it on, then in a viewport, click a different part of the same biped. The part you pick becomes the tail’s parent. Reorient to Parent (Motion panel only.) When on, the extra tail moves to the new parent object, and is oriented to the new parent. When off, assigning a new parent does not move the tail. Default=on. Footstep Mode Rollouts Footstep Mode Select a Biped. > Motion panel > Biped rollout > Footstep Mode Biped User Interface | 4433 When Footstep mode is active, you can create or edit footsteps to generate a walk, run, and jump footstep pattern. You also edit selected footsteps in space and append footsteps using parameters available in Footstep mode. If footsteps are extracted during motion capture import, turn on Footstep mode to edit footsteps in the viewports. A powerful feature in Biped is the ability to adapt keyframes when footsteps are edited in space or time. The following tracks are influenced in the vicinity when a footstep is edited in space: ■ Body Horizontal keys change to step or hop within range of new footstep locations. ■ Body Vertical keys change to match possible changes in stride length, since the body must be lower in order to step longer distances. ■ Body Rotation keys change to bank into turns created by changes in path curvature or body speed. ■ Right or left leg keys in a move state must be adapted to step between new locations. NOTE If for some reason you do not want the adaptation to occur, use the Footstep Adapt Locks settings on the Dynamics & Adaptation rollout on page 4417 to keep the biped from correcting the body position. Two additional rollouts display when Footstep mode is active: Footstep Creation rollout on page 4434 and Footstep Operations rollout on page 4438. Footstep Creation Rollout Select a Biped with footsteps > Motion panel > Biped rollout > Footstep Mode > Footstep Creation rollout The Footstep Creation rollout, available on the Motion panel when Footstep mode is on, provides controls for creating and editing footsteps. Create a walk, run, or jump footstep pattern using these controls. 4434 | Chapter 17 character studio TIP All footsteps created here are inactive; you activate them using Create Keys for Multiple Footsteps on the Footstep Operations rollout on page 4438. The timing parameters at the bottom of the rollout work with Create Footsteps (append) and Create Footsteps (at current frame) to change timing for newly created footsteps. These change depending on whether you select Walk, Run, or Jump mode. Procedures To create multiple footsteps: 1 On the Biped rollout, click Footstep Mode. You are now in Footstep mode, and can create, activate, or edit footsteps. 2 On the Footstep Creation rollout, choose the gait you want to create: Walk, Run, or Jump. 3 Click Create Multiple Footsteps. The Create Multiple Footsteps dialog displays for the selected gait. 4 Set multiple footstep parameters, and then click OK. 5 On the Footstep Operations rollout, click Create Keys for Inactive Footsteps to activate the footsteps. To create footsteps manually, beginning at the current frame: 1 On the Footstep Creation rollout, click Walk, Run, or Jump and set timing parameters for that gait. 2 Click Create Footsteps (at current frame). 3 Click in a viewport to create a footstep. Continue clicking to create more footsteps. 4 On the Footstep Operations rollout, click Create Keys for Inactive Footsteps. 5 Play the animation. Biped User Interface | 4435 To append footsteps onto the existing footsteps: 1 On the Footstep Creation rollout, click Create Footsteps (append). 2 Click in a viewport to create a footstep. Continue clicking to create more footsteps By default, footsteps alternate from foot to foot. The first click creates a right footstep, the next click creates a left footstep, and so on. Look at the prompt line and the cursor to see which type of footstep will be created next. Interface Create Footsteps (append) Turn on Create Footstep mode. Manually place footsteps by clicking in any viewport. Hold the mouse button down after clicking to move a footstep. Release the mouse button to place the footstep. Each new footstep is appended to the end of the biped’s footstep sequence. Create Footsteps alternates right and left footsteps as you create new ones. Press Q to toggle between a left and right footstep. Newly created footsteps are bright green for right footsteps and bright blue for left footsteps. Once the footsteps have been activated, the footsteps change color to pastel green and pastel blue. Create Footsteps (insert at current frame) Create footsteps at the current frame. Footstep creation alternates between left and right footsteps. Create Multiple Footsteps Create a walk, run, or jump footstep pattern automatically. Select a gait type before using Create Multiple Footsteps. Displays the Create Multiple Footsteps dialog. The dialog differs slightly depending on the gait (walk, run, jump) you have selected. 4436 | Chapter 17 character studio Create Multiple Footsteps Dialog: Walk on page 4441 Create Multiple Footsteps Dialog: Run on page 4447 Create Multiple Footsteps Dialog: Jump on page 4451 Walk: Sets the biped gait to Walk. Any footsteps you add will have walk characteristics until you change to another mode (run or jump). Each new footstep will start before the end of the previous footstep on the opposite side. Run Sets the biped gait to Run. Any footsteps you add will have run characteristics until you change to another mode (walk or jump). Each new footstep will start after the end of the previous footstep on the opposite side. Jump Sets the biped gait to Jump. Any footsteps you add will have jump characteristics until you change to another mode (walk or run). Each new footstep will start at the same time as the most recent footstep on the opposite side. Alternately, it may start after the end of the previous footstep. Timing parameters Use these parameters with Create Footsteps (append) or Create Footsteps (at current frame) to apply timing to newly created footsteps. These parameters are different for each gait and change as you select a different gait. Walk Footstep (Walk only): Specifies the number of frames a new footstep will be on the ground during a walk. Double Support (Walk only): Specifies the number of frames when both feet will be on the ground at the same time during a walk. Run Footstep (Run only): Specifies the number of frames a new footstep will be on the ground during a run. Airborne (Run and jump only): Specifies the number of frames when the body will be in the air during a run or a jump. 2 Feet Down (Jump only): Specifies the number of frames when two sequential footsteps, on opposite sides, will be on the ground during a jump. Biped User Interface | 4437 Footstep Operations Rollout Select the Biped > Motion Panel > Biped rollout > Footstep Mode > Footstep Operations rollout Once footsteps are created on the Footstep Creation rollout, use parameters on the Footstep Operations rollout to activate and deactivate footsteps, and to adjust the footstep path. Interface Create Keys for Inactive Footsteps Activates all inactive footsteps. Activation creates default keys for any footsteps that do not have them. If a footstep does not have keys, it is displayed as bright green (right foot) or bright blue (left foot). After keys are created for the footsteps, the footsteps change color to pastel green and pastel blue. Inactive footsteps on the left and activated footsteps on the right 4438 | Chapter 17 character studio Deactivate Footsteps Removes the body keys assigned to the selected footsteps, making those footsteps inactive. The footsteps themselves remain in the scene. Delete Footsteps Deletes the selected footsteps. Copy Footsteps Copies the selected footsteps and biped keys to the footstep buffer. Biped will only copy a continuous sequence of footsteps (2,3,4,5...). You can't copy discontinuous footsteps (3,4,7,8...). If any footsteps exist that have not been activated, the Copy button is grayed. Activate the footsteps first, then try again. TIP Turn on Buffer mode on the Biped rollout to view and edit only the buffered footsteps and biped motion. A pasted footstep is inactive until it overlaps a like foot and turns red. Mouse up to activate the new footsteps. Paste Footsteps Pastes footsteps from the footstep buffer into a scene. The footsteps appear inactive in the scene. Move them so they overlap the active footsteps. When a footstep turns red, mouse up and the pasted footsteps will activate. Biped User Interface | 4439 WARNING If any footstep in the buffer overlaps in time with a footstep previous to the one onto which you are pasting, a message appears and the paste is not performed. This can occur if the first footstep you are pasting and the original footstep you are pasting onto both have double support periods during the same duration of the footstep. The second pasted footstep and the footstep prior to the one you are pasting onto may overlap in time. To correct the problem, you may want to move the right edge of the preceding footstep from the original scene to the left, or move the left edge of the second pasted footstep to the right while in buffer mode. Which option you choose depends on what footstep timing and support relations you want to end up with. TIP To create a cycle of a motion with alternating footsteps, you must copy and paste at least three footsteps. All body keys between the start of the first step and end of the last step are also copied and pasted. Bend Bends the path for the selected footsteps. The path is bent to the left or right as you move the spinner. Other footsteps after the selected footsteps will be moved to maintain their positions relative to the repositioned footsteps. The Bend spinner is grayed if inactive footsteps are present. Bend=0.5 Scale Changes the width or length for the selected footsteps. The selected footsteps are scaled around the first footstep in the selection. First select the width or length box (or both), then use the spinner to set the amount of scaling. If any footsteps exist that have not been activated, the Scale spinner is grayed out. Activate the footsteps first, then try again. 4440 | Chapter 17 character studio Length When Length is selected, the Scale spinner changes the stride length of the selected footsteps. Length and Width may both be active at the same time. Length=1 and Length=2 Width When Width is selected, Scale changes the stride width of the selected footsteps. Length and Width may both be active at the same time. Width=1 and Width=2 Create Multiple Footsteps Dialog:Walk Select the Biped. > Motion Panel > Biped rollout > Footstep Mode > Footstep Creation rollout > Walk > Create Multiple Footsteps > Create Multiple Footsteps Walk dialog The Create Multiple Footsteps dialog for the walk gait creates a sequence of walking footsteps using a series of parameters. Biped User Interface | 4441 This dialog displays when you select the Walk gait on the Motion panel's Footstep Creation rollout, then click Create Multiple Footsteps. NOTE The Create Multiple Footsteps dialog appears differently depending on the gait chosen. For other gaits, see Create Multiple Footsteps Dialog: Run on page 4447 and Create Multiple Footsteps Dialog: Jump on page 4451. Procedures To make the biped walk up or down stairs: ■ In the First Step group, set Actual Stride Height to a value other than 0. A value higher than 0 will cause the biped to step up, while a value below 0 will make it step down. To make the biped walk in place: ■ In the First Step group, Set Parametric Stride Length to zero. To make the biped walk backward: ■ In the First Step group, set Parametric Stride Length to a value less than zero. The absolute value of the Parametric Stride Length is still the length of the stride. To make the biped speed up as it walks: 1 In the Timing group, click Interpolate. The controls in the Last Step group are enabled. 2 In the Last Step group, set Time To Next Footstep to be a value less than Time To Next Footstep in the First Step group. You can adjust the values in either group, or both. The important thing is to make the Last Step a shorter time than the First Step. 4442 | Chapter 17 character studio Interface Start Left Starts the footstep sequence with a left step. Start Right Starts the footstep sequence with a right step. Alternate Footsteps will alternate between right and left. Alternate is always selected when the Walk gait is selected. You can only clear Alternate when Run or Jump gaits are selected. Number of Footsteps Determines the number of new footsteps to be created. Parametric Stride Width Sets the stride width as a percentage of the pelvis width. A value of 1.0 produces a stride width equal to the pelvis width. A value of 3.0 produces a wide, waddling stride. Changes to this setting automatically change the Actual Stride Width. Parametric describes the parameter in terms of biped anatomy, and Actual describes the value in 3ds Max units. Biped User Interface | 4443 Stride Width=1 and Stride Width=3 Actual Stride Width Sets the stride width in modeling units. Changes to this setting automatically change the Parametric Stride Width. Total Distance Displays the total distance the footsteps will travel with the current settings. This value cannot be changed directly. OK Creates footsteps with the current settings. Cancel Cancels footstep creation. Default Resets the values on the dialog to default values. Timing group Auto Timing Sets timing parameters automatically. Auto Timing affects the following timing parameters for the Walk gait: ■ Walk footstep, Double Support When Auto Timing is selected, these parameters are automatically adjusted to reasonable values. Control the footstep sequence by adjusting the Stride Length and Time To Next Footstep parameters. When Auto Timing is off, you can control the footstep sequence by adjusting the gait timing parameters, but you can't change the Time To Next Footstep parameter. Interpolate Control acceleration or deceleration of the series of footsteps. When this box is selected, a second set of step parameters under Last Step is enabled. Biped creates footsteps starting with the values of the parameters under First Step and ending with the values of the parameters under Last Step. 4444 | Chapter 17 character studio By interpolating between the two, Biped produces a footstep series that changes over time. When Interpolate is cleared, the Last Step parameters are grayed out. Biped creates all the footsteps using only the parameters under First Step. Start After Last Footstep Appends the newly created footsteps to the end of the existing footstep sequence. Start at Current Frame Inserts the newly created footsteps at the current frame after the existing footstep sequence, allowing you to make a gap in time before the footsteps start again. First Step and Last Step groups Parametric Stride Length Sets the stride length for the new footsteps as a percentage of the length of the biped’s leg. The default value of 0.75 gives an average stride of normal proportions. A value of 1.0 will produce a stride length equal to the leg length, which makes the biped stretch slightly to reach the next step. A value of 0.0 will make the biped walk in place. A negative stride length will make the biped walk backwards. When a biped walks backwards, it does not simply reverse the forward movement but maintains the correct foot-state sequence with the toe touching the ground first, followed by the heel. Adjusting Parametric Stride Length automatically changes the value for Actual Stride Length. Stride Length=0.75 and Stride Length=1 Actual Stride Length Sets the stride length for new footsteps in 3ds Max units. The same rules apply as for Parametric Stride Length (described above). Biped User Interface | 4445 Adjusting Actual Stride Length automatically changes the value for Parametric Stride Length. Actual Stride Height Sets the rise or fall between footsteps. You can use this parameter to create a set of footsteps going up or down a slope or a stairway. The value for Actual Stride Height is the difference in height in units between each of the new footsteps. Positive values step up and negative values step down. Stride Height=5 units Time to Next Footstep Specifies the number of frames in each foot movement cycle. A cycle starts with the frame that a foot touches the ground, continues as the foot lifts and moves, and ends with the frame before the foot touches the ground again. This parameter is only enabled if Auto Timing is on. Speed Displays the number of units the biped will move per frame. It changes in response to changes in the other parameters but cannot be adjusted directly. The following two parameters are only enabled when Auto Timing is off. You can use these parameters instead of Auto Timing to control the speed of the forward motion over the series of footsteps. However, because these parameters both affect the footsteps’ time in contact with the ground, using them to slow down a walk gives the walk a hesitant, ‘stop-go’ quality. Walk Footstep Specifies the number of frames each footstep will be on the ground during a walk. The higher the number, the longer each biped foot remains in contact with the ground and, consequently, the slower the speed of the walking motion. 4446 | Chapter 17 character studio Footsteps 3 through 5 are on the ground for 22 frames each Double Support Specifies the number of frames both feet will be on the ground at the same time during a walk. The higher the number, the longer the period during which both feet remain in contact with the ground during each walk cycle and, consequently, the slower the speed of the walking motion. The dotted line surrounds the double-support period (6 frames) Create Multiple Footsteps Dialog: Run Select the Biped > Motion Panel > Biped rollout > Footstep Mode > Footstep Creation rollout > Run > Create Multiple Footsteps > Create Multiple Footsteps Run dialog The Create Multiple Footsteps dialog for the run gait allows you to create a sequence of running footsteps by setting a series of parameters. This dialog will display when Run is selected on the Footstep Creation rollout first, and then Create Multiple Footsteps is clicked. Interface Start Left Starts the footstep sequence with a left step. Start Right Starts the footstep sequence with a right step. Biped User Interface | 4447 Alternate Turn on to alternate between right and left footsteps. When this box is cleared, all of the footsteps will be either right or left, producing the effect of a hopping run on one foot. Number of Footsteps Determines the number of new footsteps to be created. Parametric Stride Width Sets the stride width as a percentage of the pelvis width. A value of 1.0 produces a stride width equal to the pelvis width. A value of 3.0 produces a wide, waddling stride. Changes to this setting automatically change the Actual Stride Width. Parametric describes the parameter in terms of biped anatomy, and Actual describes the value in 3ds Max units. Stride Width=1 and Stride Width=3 Actual Stride Width Sets the stride width in modeling units. Changes to this setting automatically change the Parametric Stride Width. Timing Auto Timing Sets timing parameters automatically. Auto Timing affects the following timing parameters for the Run gait: ■ Run footstep, Airborne When Auto Timing is selected, these parameters are automatically adjusted to reasonable values. You control the footstep sequence by adjusting the Stride Length and Time to Next Footstep parameters. When Auto Timing is off, you can control the footstep sequence by adjusting the gait timing parameters, but you can't change the Time to Next Footstep parameter. 4448 | Chapter 17 character studio Interpolate Control acceleration or deceleration of the series of footsteps. When this box is selected, a second set of step parameters under Last Step is enabled. Biped creates the footsteps starting with the values of the parameters under First Step and ending with the values of the parameters under Last Step. By interpolating between the two, Biped produces a footstep series that changes over time. When Interpolate is cleared, the Last Step parameters are grayed out. Biped creates all the footsteps using only the parameters under First Step. Start After Last Footstep Appends the newly created footsteps to the end of the existing footstep sequence. Start at Current Frame Inserts the newly created footsteps at the current frame after the existing footstep sequence allowing you to make a gap in time before the footsteps start again. First Step and Last Step Parametric Stride Length Sets the stride length for the new footsteps as a percentage of the length of the biped’s leg. The default value of 0.75 gives an average stride of normal proportions. A value of 1.0 will produce a stride length equal to the leg length, which makes the biped stretch slightly to reach the next step. A value of 0.0 will make the biped run in place. A negative stride length will make the biped run backwards. When a biped runs backwards, it does not simply reverse the forward movement but maintains the correct foot-state sequence with the toe touching the ground first, followed by the heel. Adjusting Parametric Stride Length automatically changes the value for Actual Stride Length. Stride Length=0.75 and Stride Length=1 Biped User Interface | 4449 Actual Stride Length Sets the stride length for the new footsteps in 3ds Max units. The same rules apply as for Parametric Stride Length (described above). Adjusting Actual Stride Length automatically changes the value for Parametric Stride Length. Stride Height=5 units Actual Stride Height Sets the rise or fall between footsteps. You can use this parameter to create a set of footsteps going up or down a slope or a stairway. The value for Actual Stride Height is the difference in height in units between each of the new footsteps. Positive values step up and negative values step down. Time to Next Footstep Specifies the number of frames in each foot movement cycle. A cycle starts with the frame in which a biped foot touches the ground, continues as the foot lifts and moves, and ends with the frame before the foot touches the ground again. This parameter is only enabled if Auto Timing is on. Speed Displays the number of units the biped will move per frame. It changes in response to changes in the other parameters but cannot be adjusted directly. The following two parameters are only enabled when Auto Timing is off. You can use these parameters instead of Auto Timing to control the speed of the forward motion over the series of footsteps. Run Footstep Specifies the number of frames each footstep will be on the ground during the run. The higher the number, the longer the biped foot remains in contact with the ground and, consequently, the slower the speed of the running motion. 4450 | Chapter 17 character studio Footsteps 2 and 3 are on the ground for 5 frames each Airborne Specifies the number of frames the body will be in the air between footsteps. The higher the number, the longer the biped hangs in the air for each step and, consequently, the slower the speed of the running motion. Create Multiple Footsteps Dialog: Jump Select the biped. > Motion Panel > Biped rollout > Footstep Mode > Footstep Creation rollout > Jump > Create Multiple Footsteps > Create Multiple Footsteps Jump dialog The Create Multiple Footsteps dialog for the jump gait allows you to create a sequence of jumps by setting a series of parameters. It displays when you’ve selected Jump on the Footstep Creation rollout on the Motion panel, and then click Create Multiple Footsteps. Interface Start Left Starts the footstep sequence with a left step. Start Right Starts the footstep sequence with a right step. Alternate When this box is selected, the footsteps will alternate between right and left. When this box is cleared, the footsteps will be either right or left steps, causing the biped to hop on one foot. Number of Footsteps Determines the number of new footsteps to be created. Parametric Stride Width Sets the stride width as a percentage of the pelvis width. A value of 1.0 produces a stride width equal to the pelvis width. A value of 3.0 produces a wide, waddling stride. Changes to this setting automatically change the Actual Stride Width. Parametric describes the parameter in terms of biped anatomy, and Actual describes the value in 3ds Max units. Biped User Interface | 4451 Stride Width=1 and Stride Width=3 Actual Stride Width Sets the stride width in modeling units. Changes to this setting automatically change the Parametric Stride Width. Timing Auto Timing Sets timing parameters automatically. Auto Timing affects the following timing parameters for the Jump gait: ■ 2 Feet Down, Airborne When Auto Timing is selected, these parameters are automatically adjusted to reasonable values. You control the footstep sequence by adjusting the Stride Length and Time To Next Footstep parameters. When Auto Timing is off, you can control the footstep sequence by adjusting the gait timing parameters, but you can't change the Time To Next Footstep parameter. Interpolate Allows you to control acceleration or deceleration of the series of footsteps. When this box is selected, a second set of step parameters under Last Step is enabled. Biped creates the footsteps starting with the values of the parameters under First Step and ending with the values of the parameters under Last Step. By interpolating between the two, Biped produces a footstep series that changes over time. When Interpolate is cleared, the Last Step parameters are grayed out. Biped creates all the footsteps using only the parameters under First Step. Start After Last Footstep Appends the newly created footsteps to the end of the existing footstep sequence. 4452 | Chapter 17 character studio Start at Current Frame Inserts the newly created footsteps at the current frame after the existing footstep sequence, allowing you to make a gap in time before the footsteps start again. First Step and Last Step Parametric Stride Length Sets the stride length for the new footsteps as a percentage of the length of the biped’s leg. The default value of 0.75 gives an average stride of normal proportions. A value of 1.0 will produce a jump length equal to the leg length, which makes the biped stretch slightly to reach the next step. A value of 0.0 will make the biped jump in place. A negative stride length will make the biped jump backwards. When a biped jumps backwards, it does not simply reverse the forward movement but maintains the correct foot-state sequence with the toe touching the ground first, followed by the heel. Adjusting Parametric Stride Length automatically changes the value for Actual Stride Length. Stride Length=0.75 and Stride Length=1.0 Actual Stride Length Sets the stride length for the new footsteps in 3ds Max units. The same rules apply as for Parametric Stride Length (described above). Adjusting Actual Stride Length automatically changes the value for Parametric Stride Length. Actual Stride Height Sets the rise or fall between footsteps. You can use this parameter to create a set of footsteps going up or down a slope or a stairway. Biped User Interface | 4453 The value for Actual Stride Height is the difference in height in units between each of the new footsteps. Positive values step up and negative values step down. Stride Height=5 units Time to Next Footstep Specifies the number of frames in each foot movement cycle. A cycle starts with the frame a particular foot touches the ground, continues as the foot lifts, moves, and ends with the frame before the foot touches the ground again. This parameter is only enabled if Auto Timing is on. Speed Displays the number of units the biped will move per frame. This changes in response to changes in the other parameters but cannot be adjusted directly. The following two parameters are only enabled when Auto Timing is off. You can use these parameters instead of Auto Timing to control the speed of the forward motion over the series of footsteps. 2 Feet Down Specifies the number of frames that the left and right footsteps will be on the ground during the jump. The higher the number, the longer the pause between each jump and, consequently, the slower the speed of the jumping motion. The dotted line surrounds the 2 feet down period (15 frames) 4454 | Chapter 17 character studio Airborne Specifies the number of frames the body will be in the air during the jump. The higher the number, the longer the biped hangs in the air for each jump and, consequently, the slower the speed of the jumping motion. The dotted line surrounds the airborne period (13 frames) Convert to Freeform or Footsteps Dialogs Select the Biped. > Motion panel > Biped rollout > Convert When you click Convert on the Biped rollout of the Motion panel, a Convert To dialog displays: Convert to Freeform or Convert to Footsteps, depending on the animation method of the currently loaded motion. Use Convert to Freeform for unrestricted key editing or Convert to Footsteps to take advatage of footsteps. NOTE By default, Jumping or airborne periods between footsteps are calculated by character studio based on gravity strength (GravAccel) and time between footsteps. Biped elevation during these jumping and airborne periods will be lost when converting to freeform from footsteps (unless you create a vertical COM key in the airborne period in the footstep animation), a freeform animation uses spline interpolation for the center of mass position and does not account for gravity. Elevation in airborne periods is restored if you convert back to footsteps. When to Use Convert ■ Use Convert after using Save Segment in Motion Flow mode to save a script as a BIP file. Exit Motion Flow mode, load the BIP file and click Convert to extract footsteps. Save Segment applies IK Blend values of 1 to the biped foot keys for the keys at footsteps. If a freeform animation is part of the script in Motion Flow mode, and you want to convert the entire script motion to footsteps, then use the Save Keys at every Frame option in Save Segment and use Load Motion Capture File on the Motion Capture rollout. This will allow you to extract footsteps using the proximity method. Biped User Interface | 4455 ■ Use Convert if you are working on a footstep animation and want to switch to a freeform animation. ■ Use Convert if you have started a freeform animation and want to covert to a footstep animation. In order to convert a freeform animation to a footstep animation, the file must be properly set up by locking the feet to world space using IK Blend before converting to footsteps. When creating freeform animations, you should set your leg keys to IK Blend=1.0 during the periods you want the feet to be planted, and set the move keys to IK Blend=0.0. This will insure that the feet are locked and rid of unnecessary foot sliding as the body is moved. When converting, if the leg keys have been set up this way, Biped will extract footsteps during any duration where IK Blend=1.0. Interface Convert to Freeform dialog Generate a keyframe per frame Creates keys at every frame. NOTE Converting footsteps to freeform creates foot IK Blend values of 1 for the biped feet for the original footstep keys. This simplifies keyframing by putting the feet into world coordinate space, which prevents them from sliding when the biped is moved. These foot IK Blend values are also used when you click Convert (on the Biped rollout) to convert back to footsteps. 4456 | Chapter 17 character studio Convert to Footsteps dialog Generate a key per frame Creates a key at every frame, and extracts footsteps based on foot IK Blend values equal to 1. Save Segment in Motion Flow mode stores the active script as a BIP file without footsteps. The biped foot keys are assigned IK Blend values of 1 for the original footstep keys. After loading a BIP file saved using Save Segment in Motion Flow mode, use Convert (on the Biped rollout) to extract footsteps. Convert is also useful if you have already converted from footsteps to freeform in which case the feet are assigned an IK Blend value of 1 for the keys that represented footsteps. Flatten Footsteps to Z=0 The entire biped is repositioned to place the footsteps at Z=0. NOTE An IK Blend value of 1 for the feet puts them into world coordinate space and prevents them from slipping while setting biped keys in a freeform animation. Footstep Mode Dialog Graph Editors menu > Track View – Dope Sheet > Right-click on a footstep track. Right-click anywhere in the Footstep track in Track View (Dope Sheet) to display the Footstep Mode dialog. This is a modeless dialog and can remain visible while you continue to work in Track View. This dialog allows you to: ■ Control the duration information displayed with the footsteps. ■ Create a freeform period between footsteps. ■ Select the right or left edges of footstep blocks or the whole block. Biped User Interface | 4457 Interface Edit Footsteps In this mode (which is the default), you can edit the biped’s footsteps to change their duration; start and end frames; airborne duration; and so on. Edit Free Form (no physics) In this mode, you can edit the biped’s body keys for the frames at which the biped is airborne. Free Form suspends the physically based dynamics that normally control biped motion. This is essential when you want to make the biped fly, or sit down, or fall over. Note that the freeform period must be between footsteps. 4458 | Chapter 17 character studio The freeform area appears as a yellow block between the footsteps. Footstep Number Display group The footstep blocks can have any one of four time settings displayed for them. You can only show one of these at a time. The footstep step number is always displayed on the footstep blocks (in boldface). Start and End Frame Displays the start and end frames of the footstep (from Touch to Lift). Biped displays just the start frame if the footstep block is too small to show both. Zoom in to see both start and end numbers. Both footsteps 0 and 1 begin at frame 0 and end at frame 19. Start Frame Displays just the start frame number (Touch). Both footsteps 0 and 1 begin at frame 0. Duration Displays the number of frames that the foot is in contact with the ground (from Touch to Lift). Biped User Interface | 4459 Both footsteps 0 and 1 are in contact with the ground for 20 frames. Double Support Displays the number of overlapping frames in which both feet are in contact with the ground. You can also turn on the following two numbers for the intervals between the footsteps. You can display both numbers at the same time by selecting both boxes. Footsteps 0 and 1 share a double-support period of 20 frames. No Support Displays the number of frames that the whole biped is airborne; that is, the frames in which neither of the feet have any contact with the ground. The no-support period between frames 3 and 4 and 4 and 5 is 12 frames. Foot Air Duration Displays the number of frames that each foot has no contact with the ground. 4460 | Chapter 17 character studio The foot air duration for the left footstep track between frames 3 and 5 is 31 frames. Footstep Edge Selection group Select Start of Footstep Selects the leftmost key for the current footstep selection. Select Entire Footstep Selects the entire footstep. Select End of Footstep Selects rightmost key for the current footstep selection. Track View (Biped) Graph Editors menu > Track View - Dope Sheet or Track View - Curve Editor In this Track View - Dope Sheet view of a walking motion, footsteps are represented by colored squares, footstep numbers appear in boldface inside the squares, in between Biped User Interface | 4461 the start and end frames of the footstep. The numbers between the colored boxes represent foot-air duration. Biped and Track View The Dope Sheet can be used to create and adjust biped keyframes, edit biped footsteps, and specify freeform periods. Biped keys display as dots on the tracks. Footsteps display as squares that can be moved in time. Biped dynamics and footsteps work together; if footsteps are moved in time, Biped adapts leg keys and vertical positions to account for the editing. There are a couple of restrictions: you can’t overlap footsteps on the same track, or move footsteps into negative time. The Curve Editor can be used to make adjustments to biped keyframe animation. The Curve Editor is a Track View mode that allows you to work with motion expressed as function curves on a graph. It lets you visualize the interpolation of the motion, the object transformations that the software creates between the keyframes. You can see and control the motion and animation of the objects in the scene using the keys found on the curves. You can even draw curves directly on the graph. Footsteps in Track View - Dope Sheet By default, left leg footsteps are blue and right leg footsteps are green. Inactive footsteps are more saturated values of blue and green, active footsteps are pale blue and green. The left edge of each footstep block indicates when a foot touches a footstep (Touch State). The right edge of each footstep block indicates the last frame the foot is on a footstep (Lift State). The space between two footsteps indicates an airborne state for the foot (Move State). The period between the Touch and Lift States is the Plant State. Editing Biped Keys in Track View Track View is often used to change multiple keys simultaneously. For example, to change Dynamics Blend for all the vertical centers of mass keys, select all the vertical keys, display the TCB (Tension, Continuity, and Bias) dialog by right-clicking over the selected keys and change the Dynamics Blend parameter. 4462 | Chapter 17 character studio Right-click a key in Track View to display the TCB dialog. Separate Tracks By default, Biped stores all of the toe, foot, and calf keys in the thigh track. The finger, hand, forearms, and upper-arm keys are stored in the clavicle track. All the spine keys are stored in the spine 01 track. Although you can see all of these objects in the Track View hierarchy, they have no transform track, unless you enable them in the Separate Tracks group of the Keyframing Tools rollout on page 4380. For example, if you rotate a biped foot, a key is created in the biped thigh track. This optimized approach works well in many cases. If your animation requires extensive hand and finger keyframing, turn on Arms on the Keyframing Tools rollout; all of the arm transform tracks are now enabled, down to the first finger link on each finger. Now if you delete an upper arm key, your finger-hand animation is preserved. How Dynamics and Footsteps Relate When footsteps are created, a footstep track displays in Track View – Dope Sheet. Footsteps appear as blue and green blocks, laid out to show their exact placement in time. If you compare the center of mass tracks to the footsteps, you will notice that frames where leading and trailing edges of the footsteps occur also have keys for the center of mass Body Vertical and Horizontal tracks. These keys contain dynamics information used by character studio to calculate Biped User Interface | 4463 airborne body position relative to gravity, and leg bend on landing and balance. Biped Dynamics is the reason you do not need a vertical center of mass key at the top of a jumping motion or at the bottom of dip when the biped lands from an airborne period. Click and drag the middle of a footstep to move it in time. Click and drag one edge of a footstep to stretch the footstep in time. 4464 | Chapter 17 character studio NOTE Changing the duration of footsteps or moving them relative to one another may change the “support relationships” of the footsteps. Whenever the support relationships change, Biped generates new keys and deletes any existing leg keys in the airborne period between the edited footsteps. Because of Biped Dynamics, no keys are necessary for the highest part of this jumping motion or for the dip when the biped lands; character studio calculates the trajectory of the Body. This image shows the center of mass trajectory. Keyframes are white squares on the trajectory. Simply change gravity (GravAccel on the Dynamics & Adaptation rollout), and the jumping motion is flattened. The biped looks like it’s hopping on the moon. By selecting half the footsteps in Track View - Dope Sheet and moving them to the right in time, the biped has to jump higher to account for the added time to the next footstep. Notice that the yellow dots, representing frames, are tightly bunched together; there are more frames in this airborne period. Biped User Interface | 4465 Here, the center of mass is moved in the Z plane. Now the biped heel never hits the ground; the biped appears to do a jump using just its toes. Here, character studio understands that you want to override the calculated trajectory and position the keyframe yourself. Moving Keys You can use the time slider to move one Biped key past another. The result is as if the original key were deleted from its original frame and copied to the new frame. Simply drag the key to the new frame, then release the mouse to complete the move. The key's various Biped properties (ease values, TCB values, IK blend, and so on) are not changed. You can move a key past either the following key or the previous one. You can also move it past multiple keys. If you move a key onto a frame where a key is already present, it replaces the original key. In Track View, you can move a key past another using the transform track. You can also scale keys forward in time such that some keys are now past the keys that weren't scaled. If keys move into negative time, a warning reminds you that keys in negative frames can't be used for footstep animation: a workaround is to set new keys in the negative frames, instead of moving existing ones. If you change the key to Euler control (on the Quaternion/Euler rollout) and then drag it past another, the key's tangent type is maintained. If you add a layer (on the Layers rollout), set two keys, and then move the first one past the second one, this also works. Freeform Animation It is left to you to create all the keys in a freeform animation; Biped Dynamics is not active and does not recalculate body position. Balance Factor is active 4466 | Chapter 17 character studio in a freeform animation. A completely freeform animation contains no footsteps. To start an entirely freeform animation, simply create a biped and begin keyframing. NOTE Once you initiate a freeform animation, you cannot add footsteps to it in Footstep mode. You can, however, convert your freeform animation to a footstep animation using Convert on the Biped rollout. You will often want a freeform period in a footstep sequence; for a walk then fall type of motion for example. In cases like this, a freeform period is specified between footsteps in Track View using the Footstep Mode dialog on page 4457. A combination of footsteps and freeform is often required when motion capture data is imported. A freeform period is created using controls in the Footstep Mode dialog and display as a yellow boxes between footsteps in Track View. Right-click the footstep track to display the Footstep Mode dialog; here you specify a freeform period, select multiple footstep edges, and set footstep numbering display options. Biped Color-coded Keys and Trajectories Biped uses color coding for IK keys in three places: Track View, Track Bar, and when trajectories are displayed in the viewports. Also, depending on the types of keys, trajectories themselves can be color coded. The color coding helps you visualize when IK and FK are in use, and transitions between them. This topic describes color coding of non-COM on page 7933 tracks. For information about COM key color coding, check here on page 4353. Color-coded Keys in Track View and on the Track Bar Biped IK keys as displayed in Track View and on the track bar use the following color scheme: ■ orange for planted keys ■ yellow for sliding keys ■ blue for body-space IK keys with a non-zero value for IK Blend All other keys use the default color: gray. Biped User Interface | 4467 Color-coded biped keys in Track View and on the track bar Visualizing Pivot Trajectories and Keys To view trajectories for Biped parts in the viewports, go to the Motion panel and on the Biped rollout > Modes And Display sub-rollout, or on the Key Info rollout, turn on Trajectories. To make Biped pivots easier to interpret and manipulate, Pivot trajectories and their keys are represented in the viewport during IK periods and display in the color of the associated key type: ■ orange for planted keys ■ yellow for sliding keys ■ blue for body-space IK keys TIP One way to create a body-space IK key is to set a regular IK planted or sliding key, and then, at that frame, on the Key Info follout > IK section, choose Body. Or you can convert an FK key that's already set to Body by increasing its IK Blend value above 0.0. During FK periods the node trajectory and its keys display in purple (the same keys are gray on the track bar). During FK/IK blend periods the trajectory of the resulting blend is displayed and its color is determined by the amount of the blend; for example, a blend of 0.5 to a sliding key results in a trajectory that is a 50:50 blend of yellow and purple. 4468 | Chapter 17 character studio Because pivots are located in all extremes of the hands and feet, their trajectories discontinuous when both FK and IK periods are employed. The following figure shows a simple example of this. During the planted IK periods, the pivot trajectories show just the keys on the heel and toe (because the keys are planted, each pivot stays in place), and during the FK periods the trajectories are derived from the foot’s node pivot location. This gives you more-detailed information about the animation that is driving the foot. Footstep trajectory In following illustration, while the biped walks, the right hand reaches up to touch something in IK, as shown by the yellow trajectory, made by two sliding IK keys. Later, the biped touches its own face, using body space IK, as shown by the bright blue keys. The color transition in the trajectory from purple to blue indicates a changing blend from FK to body-space IK, showing the interpolated value of the IK Blend parameter. Biped User Interface | 4469 Hand trajectory Following is a chart showing the result of going from one key type to another. the last three rows of the chart show transitions between object and body space that produce pure FK. In the past, it was hard to know what type of trajectory these combinations produced. The new trajectory colors clarify the result. In the chart, the letters have the following meanings: ■ O: object space ■ B: body space ■ IK: a key where IK Blend > 0. It is always accompanied by the space: O or B. ■ FK: a key where IK Blend = 0, no matter what space it’s in From -> To Result 4470 | Chapter 17 character studio Trajectory Drawn Trajectory Color OIK -> OIK OIK Pivot Yellow BIK -> BIK BIK Node Blue FK -> FK FK Node Purple BIK -> BFK BIK/BFK blend Node Blue -> Purple OIK -> OFK OIK/OFK blend Node Yellow -> Purple OIK -> BIK FK Node Purple OIK -> BFK FK Node Purple BIK -> OFK FK Node Purple NOTE When separate tracks exist for either a limb or its digits, the FK trajectory of the bone base is always drawn, regardless of whether the trajectory display is set to Bone Base or Bone Tip on the Display Preferences dialog on page 4346. Biped Shortcuts The table in this topic shows the default keyboard shortcuts for character studio. To customize your shortcuts, use the path specified above. Use the Keyboard Shortcut Override toggle on page 7858 on the main toolbar to enable the character studio keyboard shortcuts. All character studio keyboard shortcuts activate when the Motion panel is active and the Keyboard Shortcut Override button is active. See also: ■ Keyboard Shortcuts on page 7857 ■ Keyboard Panel on page 7698 Biped User Interface | 4471 ■ Customize User Interface Dialog on page 7697 Action Shortcut Description Activate Layer (Toggle) Bend Links Mode Body Horizontal Selects the center of mass to edit horizontal biped motion Body Rotation Selects the center of mass to edit biped rotational motion Body Vertical Selects the center of mass to edit vertical biped motion Buffer Mode Change Leg State Alt+Ctrl+S Clear All Animation Clear Selected Tracks Collapse Layer Collapse Move All Mode Changes Alt+M 4472 | Chapter 17 character studio Toggles foot states of the selected leg at the current frame. View the state change in the leg states displayed on the Biped rollout. Action Shortcut Description Copy Posture Alt+C Copies the posture of the selected biped objects to the clipboard. Alt+Ctrl+F Searches for any problem in the motion and prompts you whether or not to fix problems it encounters. Problems it looks for include overlapping keys, keys past the end of the footstep range, keys at negative frames, or illegal footstep timing. Click OK when prompted to fix these problems automatically. Create Layer Delete Layer Display Biped Trajectory Display Bones Display Footstep Number Display Footsteps Enable Subanims Figure Mode Fix Graphs Footstep Mode Free Mode Biped User Interface | 4473 Action Shortcut Description Alt+Ctrl+L Toggles locked keys (red) on and off for the selected leg or vertical track key at the current frame. In Track View, you can watch the key turn from red to gray, and back again, as you lock and unlock it. Paste Posture Alt+V Pastes the posture from the clipboard onto the currently selected biped. Paste Posture Opposite Alt+B Pastes Posture Opposite for the currently selected biped. In Place Mode In Place X Mode In Place Y Mode Load .bip File Lock Selected Keys (toggle) Manipulate Subanims Mirror Mixer Mode Motion Flow Mode Move All Mode Next Layer 4474 | Chapter 17 character studio Action Shortcut Description Play Biped V Toggles Biped playback. Previous Layer Reset all limb keys Alt+K Rubber Band Mode Save .bip File Scale In Transform (toggle) Alt+Ctrl+E This toggle strips the scale from the biped. Developers should use this when exporting biped objects as regular 3ds Max links through the 3ds Max SDK. Animators should not use this shortcut. 0 Sets a biped key. Alt+R Resets the total animation length to the length of the current biped footstep range. Scale Stride Mode Set Free Key Set Key Set Layer Snap Key Set Multiple Keys Set Planted Key Set Range Biped User Interface | 4475 Action Shortcut Description Set Sliding Key Smooth Twist Mode Toggle Biped Keys in Track Bar Alt+T Track View Select end of footstep Alt+D Selects all right edges of the selected footsteps in Track View. Track View Select entire footstep Alt+S Selects both edges of the selected footsteps in Track View. Track View Select start of footstep Alt+A Selects all left edges of the selected footsteps in Track View. Twist Links Mode * Not available for customization in the Customize User Interface dialog. Working with the Workbench The Workbench is a customized version of Track View that you use for correcting and improving biped animation. It extends the functionality of existing curve editors by giving you different options for visualizing and manipulating curves, and provides filters to perform general rotation, position and other biped-specific operations. Curves can be analyzed for error conditions and filters applied to the identified keyframes, or selected biped tracks can be filtered to generally improve the motion of a track without errors. See also: ■ Navigating the Workbench on page 4479 4476 | Chapter 17 character studio Workbench Workflow Here are the overall steps you would follow to use the Workbench to analyze and fix a biped for problems 1 Create your animation and play it. Visually note anything that jumps out at you as being wrong or incorrect. 2 With the biped selected in the viewport, open the Workbench by clicking the Workbench button in the Biped Apps rollout on the Motion panel. 3 Select the biped body part that seems to have the problem. You can select it in the viewport, or from the list in the Select panel. Be aware that some biped objects share tracks. For example, all the objects in a leg or an arm share a single track. 4 On the Analyze panel, choose an analyzer from the drop-down list. Set the analysis conditions, then click Analyze. Any errors the analyzer encounters will be displayed in a list at the bottom of the Analyze panel. The Curve view also indicates the problem area by displaying a vertical bar. 5 On the Fix panel, select the errors you want to fix. Select the filter for the fix, adjust its parameters, and then click Fix Selected. You can select the errors one at a time, or in any combination. You can sort the errors by time or body part, depending on what kind of fix is needed. Errors displayed as yellow lines in Curve View Working with the Workbench | 4477 If the results aren't satisfactory, try changing the parameters and fixing again. Repeat the process until you find the combination of parameters that correct the movement. Or try a different fixer or filter (these are described later in this topic). Animation Workbench Tools The Animation Workbench provides three types of tools to use with biped animation: analyzers, fixers, and filters. Analyzers These are used to find out-of-the ordinary properties in your animation. Certain analyzers parse the waveform of your motion tracks and detect variation from the curves. There are two detectors available that do this; Noise and Spike. There are also analyzers for finding and fixing knee conditions, specifically knee wobble and extension. For more information, see Analyze Panel on page 4492. Fixers Fixers address problems found by the analyzer. The fixers work by running a specified operation over just the analyzer result. They don't change the complete animation, just areas around the problem. For more information, see Fix Panel on page 4498. Filters Filters are operations that are performed on the specified animation tracks. Unlike fixers, they affect the complete specified time interval, not just the analyzer result. The Rot Smoothing, Rot Blurring, Rot Boosting, Adv Rot Smoothing, Pos Smoothing, Pos Blurring and Pos Boosting filters are all variants of one type of filter. They all share the same parameters: Width and Damping. For more information on these filter types, see Filters Panel on page 4503. 4478 | Chapter 17 character studio Navigating the Workbench The Animation Workbench, a customized version of Track View, uses some of the standard Track View controls, and adds new ones of its own. The areas of the Workbench interface include: ■ The Tab panels: Select, Analyze, Fix, and Filter ■ The Curve view, with Track View toolbars for key selection, manipulation, and view navigation. ■ The Workbench toolbar, with tools for choosing Coordinate space, display of sub-animations, and tools to hide the Tab area and controller list. Each section of the Workbench User has specific navigation techniques. See also: ■ Selecting Workbench Tracks on page 4481 Navigating the Tab Panel Simply click the tabs to move from one panel to another. The tools displayed change with each panel. The overall workflow is left to right for the tabs, and top to bottom within each panel. Selections are displayed in lists: clicking a name in a list selects that entry. Operations are usually performed by clicking a button at the bottom of the panel. TIP The Tab panels can be hidden once the operations are performed and you don't need to see the panels any more. Click the Tab button in the Workbench toolbar to hide the panel display. Displaying the Controller List Click the Controllers button in the Workbench toolbar to display the Controller List. When the controller list is displayed you can select multiple tracks as you like, right-click them and assign controllers using the pop-up menu. You can also get to properties for controllers such as Noise that don't have keyframes. Working with the Workbench | 4479 Click the Controllers button in the Workbench toolbar to display the embedded curve editor's Controller window. The biped body tracks shown are in the list are the ones that are selected in the Select panel on page 4489, in addition to any scene objects that are attached to those body parts or are used as IK objects for those body parts. The controller list is similar to the one in the curve editor. Controller list displayed Navigating the Curve View Use the standard 3ds Max Track View navigation tools to adjust the view of curves in the Curve view window. Zoom, Zoom Extents Horizontal and Vertical, and Pan are often used to get a better view of an entire curve, or a portion of a curve. As a default, the curve view automatically displays the curve of whatever biped object is selected in the viewport. The Workbench window can be resized to make it easier to work with curves. You can float or hide toolbars to give you even more room. You can dock toolbars left and right as well. Docking the Workbench You can dock the Workbench in a viewport. With the Workbench open, right-click the viewport's label and choose Views > Extended, then choose Biped Animation Workbench. The open workbench docks in the viewport. 4480 | Chapter 17 character studio TIP This works best if you change your layout so there is at least one horizontal viewport. NOTE Unlike the 3ds Max Track View – Dope Sheet and Curve Editor, the Workbench cannot be docked below the viewport trackbar. Show Layered Edit You can affect a layered range of keys by turning on Show Layered Edit. This is a special Workbench mode that extends the edit to affect keys surrounding the one you are editing. It works like soft selection in 3ds Max but gives you greater control over the displacement. It can help you blend your edits into existing motion. Selecting Workbench Tracks As a default behavior, whatever biped part is selected in the viewport will have its curves displayed in the Curve view. You can also use the Select panel on Working with the Workbench | 4481 page 4489 to select biped parts by name. The functionality of the Select panel is derived from the Selection Floater on page 231; you can invert the selection set or enter a name into the Selection field to find a track. You can also use the controller window as a selection mechanism. With the Controllers list visible you can click on track entries there to work on the curves. NOTE Sometimes a curve will not appear in the display at first. Click Zoom Extents Horizontal and Zoom Extents Vertical to make sure the curve can be seen. The Workbench toolbar lets you choose the type of curve to display and the coordinate space in which it is displayed. For example, if you know you are dealing with rotational errors, choose an Rot or Quat type curve. If it is an error of positional data, choose Pos. If you open the Track View – Curve Editor or expand the track bar while you have the Workbench open, you will see a simultaneous display. The views are all synchronized, so selecting a track in one graph editor selects it in all. When using footstep animation, you can see the footstep keys by opening a Track View – Dope Sheet window. Analyzing Curves Once you have selected curves, you can analyze them to discover error conditions. You choose between four kinds of detectors; Noise, Spike, Knee Wobble or Knee Extension. You can also select only a the portion of a curve to analyze. Perform the analysis by clicking the Analyze button. The errors are found based on the detector's parameter settings. If no errors are found, try adjusting the parameters and clicking Analyze again. Lowering the Standard Deviation value will yield more errors. When an error has been detected, the biped part name appears in the Analyze Results list. If multiple errors are detected, the entry displays a number that tells how many errors were found. Errors are also displayed in the Curve View as vertical brown lines. Once errors have been located, you can use the tools on the Fix panel to correct those keys and the keys around them. Or you can use the error location merely to identify the keys, then manually make changes using standard interpolation techniques. Right-clicking a key in the Curve view will display the properties dialog that allows for such adjustments. 4482 | Chapter 17 character studio Results of the Analyze operation can be loaded or saved as a file using the Load or Save buttons at the bottom of the interface. Results of the last analysis can be cleared using the Clear button, also found at the bottom of the panel. Fixing Curves After you have selected curves and analyzed them for error, you can use the tools found on the Fix panel to process the curves and reduce the errors. The fixes are determined by which type of fixer you choose, and the parameters you set for that fixer. Clicking Fix Selected or Fix All at the bottom of the panel performs the Fix operation. In general, fixes are made either by changing the position or value of a key, or by removing the key. The basic fixing techniques involve smoothing, blurring, boosting, or key deletion. This is similar to audio-editing software, where you view music as a waveform, and then edit the waves in various ways to alter the sound. Similarly, the motion of the biped body parts, as defined by position and rotation tracks, can be evaluated for error conditions regarding speed, angle, acceleration, or change of direction. Of course, you can also fix curves manually. You can select the key on the curve and move it, using the standard Track View key buttons duplicated in the Workbench, such as Move, Slide, Scale or Delete Keys. You can achieve a layered range of keys by turning on Show Layered Edit. This is a special Workbench mode that extends the edit to affect keys surrounding the one you are editing. It works like soft selection in 3ds Max but gives you greater control over the displacement. It can help you blend your edits into existing motion. Animation Workbench Select a biped body part. > Motion panel > Biped Apps > Workbench The Animation Workbench is a tool for working with biped function curves. It is a customized version of Track View, with many of the same toolbars and buttons, plus some new ones. Animation Workbench | 4483 In addition to the standard Track View features, the workbench has tools to help you select curves, analyze them for errors, and automatically fix those errors based on various settings. This is especially useful when working with motion-capture data, or other animation that has many keys. Of course, you can also display and manipulate function curves for bipeds in the standard 3ds Max Track View and expanded track bar, as well. However, you have access to the automatic error-analysis tools only in the Workbench NOTE On the time slider or in Track View, you can move one Biped key past another. See Moving Keys on page 4466. The Animation Workbench displays rotation curves in local biped space for both quaternion and euler rotations. This improves the speed of curve manipulation since the whole biped doesn't need to be calculated in order to draw a single curve. NOTE This does not affect position curves, which are still evaluated in world space. NOTE Curve display will only change for certain objects in COM space: base of spine, neck, clavicles, upper arms, upper thighs, and feet. See also: Working with the Workbench on page 4476 ■ Procedures To display the local rotation curve of an animated spine link: 1 Create a biped and select its upper spine link. 2 Set a key at frame 0. 3 Go to frame 10 and rotate the spine link 30 degrees in the local Z axis. 4 Open the animation workbench. 4484 | Chapter 17 character studio Only one curve is displayed because the upper spine rotates in local space by default. 5 Select the biped's head. Notice how there are no curves in the workbench because the head doesn't inherit the spine link's rotation and doesn't have an internal rotation of its own. Interface 1. Tab panels (Select, Analyze, Fix, and Filter). 2. Display Tab panels 3. Display Controllers list 4. Workbench toolbar 5. Curve View 6. Curve View toolbars (same as Track View toolbars). Animation Workbench | 4485 Animation Workbench Tab Panel The Animation Workbench Tab panel consists of four panels: ■ Select panel Provides tools to select curves for biped body parts. For more information on the Select panel user interface, see Select Panel on page 4489. ■ Analyze panel Evaluates the curves for error conditions. For more information on the Analyze panel user interface, see Analyze Panel on page 4492. ■ Fix panel Provides a variety of methods to be applied to the errors located by the analysis. For more information on the Fix tab user interface, see Fix Panel on page 4498. ■ Filters panel These are a special type of fixer that perform an operation over each key that is selected. When no keys are selected it performs the operation over the whole curve rather than using the results of the last error analysis. Use this when you have errors visible in the motion, but the fixer refuses to find them. For more information on the Filter panel user interface, see Filters Panel on page 4503. Use the Tab button on the Workbench toolbar to display and hide the Tab panel. Curve View To the right of the Tab area is the Curve View, where keys and curves for the selected biped parts are displayed. This is the same as the Track View Key window. Curve View Toolbars Directly above and below the Curve View are some of the standard 3ds Max Track View toolbars. They give access to tools used to navigate the view and manipulate the keys. The toolbars below the Curve View are used for selection and navigation; toolbars above the Curve View are used to move, slide, and scale keys; to scale values; and to add new keys. 4486 | Chapter 17 character studio Animation Workbench Toolbar The Workbench toolbar extends the toolset found in the 3ds Max Track View. The Workbench toolbar includes: ■ Tab Hides or displays the Workbench Tab panel, which contains the tools for automated error analysis and correction fixers and filters. ■ Controllers Hides or displays a controller-window hierarchy list. This is the same list you see in standard Track View with the same right-click menus used to assign controllers. ■ Curve Type Determines which curves are displayed for the selected object. Rot Curve, Rot Speed, Rot Accel, and Rot Jerk curves represent rotation. Pos Curve, Pos Speed, Pos Accel and Pos Jerk curves represent position. NOTE Choosing Rot Curve or Pos Curve turns on Show Biped Rotation Curves or Show Biped, Position Curves, respectively, in the Biped toolbar of the Curve Editor on page 3572. Noise curves represent random position and rotation. Each biped part can show any of these curves, except for the Horizontal and Vertical tracks, which show only positional curves, and the Turning track, which shows only angular curves. The Axis order drop-down lets you choose the order in which the rotation curves are calculated. Curves in previous version of Character Studio were always drawn in XYZ. This ordering follows the same rules as the Euler Axis Order on the Quaternion/Euler rollout on page 4355. When manipulating position curves, the Workbench allows the curves to be displayed relative to the World, the Biped Root, or any object in the scene as picked via the arrow button. World Displays curves relative to the World. Biped Root Displays curves relative to the biped root object (COM) . Scene Root Displays the curves relative to a selected object. Turn on the arrow button, then click the object in a viewport. The name of the object will be displayed on the button. Animation Workbench | 4487 The X, Y, and Z buttons Choose which curves of the selected object are displayed in the Workbench. NOTE Toggling X, Y, or Z also toggles the corresponding Biped toolbar button of the Curve Editor on page 3572. The 180 limit Sets the Quat Curve to display as “clamped” between 180 and –180 degrees, instead of accumulated. Default=off. Draw While Moving Sets the Workbench to update the curves as you move keys. When off, curves display as optimized lines until you release the mouse after moving or changing a key. Default=on. Show Layered Edit When on, displays a graphic tool for adjusting sets of keys along a curve within a range. To set the range, click to highlight one of the square handles, and then drag it. As you drag, the handle follows the curve. Handle follows curve. To set a layered offset, click to highlight the circular handle, and then drag it to the desired position. The circular handle follows the curve unless you hold down the Esc key. If you drag while holding down Esc, you can move the handle off the curve, which scales the keys within the range. Enable Sub Anims When on, sets the Workbench to display the curves of the selected part’s subanim in combination with the position or rotation curves. Subanims are list controllers which can be added to provide additional animation controls to biped body parts. Default=off. 4488 | Chapter 17 character studio Biped Key Manipulation Interactive key manipulation behaves in the Workbench much as it does in Track View. The difference is that you can't move keys beyond other keys. This has always been a restriction of biped animation. Select Panel Select a biped body part. > Motion panel > Biped Apps > Workbench > Select panel The Select panel of the Animation Workbench provides tools for selecting bipeds or biped components. You can manipulate the selected biped part's animation tracks via curves displayed in the Workbench, or by using the Analyze, Fix, and Filter panels to automatically identify errors and fix them. The objects whose curves might be displayed are set using the selection drop-down list. To change the curves that are displayed go into the Controller window and select the curves you want to see Once you’ve made a selection, you can hide the entire Tab area by clicking the Tab button on the Workbench toolbar. This gives you more room to work on the curves in Curve View. The functionality of the Select panel is similar to the standard 3ds Max Selection Floater on page 231. See also: ■ Analyze Panel on page 4492 Procedures To display a biped body part curve in the Workbench, do one of the following: 1 On the Select panel, make sure Select From Scene is turned on, then in a viewport, click any biped object. The object's curve is displayed in the Workbench Curve window. 2 On the Select panel of the Animation workbench, click to highlight the name of the body part in the scrollable Selection list. Animation Workbench | 4489 3 On the Workbench toolbar, turn on Controllers. In the hierarchy list, highlight the body part track whose curve you want to see. To hide or unhide the Tab panel: 1 Click the Tab button on the Workbench toolbar. The Tab panel disappears from view. 2 Click the Tab button again. The Tab panel returns to view. 4490 | Chapter 17 character studio Interface Animation Workbench | 4491 Selection field Enter the name of the biped part you want to locate. That name (if found) will be highlighted in the Selection list. This is useful when you can't find an entry by scanning the list. You can use the question mark and asterisk characters as wildcards, in order to select multiple objects at once. Selection list The Selection list displays all the body parts of all the bipeds in the scene. You can use the Shift, Ctrl, and Alt keys to build selection sets, as in the rest of 3ds Max. All Selects every entry in the list. None Clears the selection so nothing is highlighted. Invert Selects everything not highlighted in the list. Subtree group Display Indents the list to show the biped hierarchy. Default=off. Select When on, selecting one biped part selects both it and all of its children. Default=off. Named selection list When you create a named selection in the scene, the named selection becomes available. Select From Viewport When Select From Viewport is on, you can click the biped body parts directly in the viewport, rather than from the list. The curves are immediately displayed in the Workbench Curve View. This is handy if you don't know the name of the part you need to select. Analyze Panel Select a biped body part. > Motion panel > Biped Apps > Workbench > Analyze panel The Analyze panel provides tools to evaluate the curves for the selected biped parts, and review them for certain error conditions. It can spot spikes and noise in the curves, and locate specific keyframes that are responsible for discontinuous motion. The errors are displayed as brown lines over the curves, and are also listed at the bottom of the Analyze panel. You can then use the Fix panel to automatically fix errors, or you can fix errors by manually adjusting keys and curves in Curve view. 4492 | Chapter 17 character studio Brown lines on the curve show the errors. See also: ■ Fix Panel on page 4498 Procedures To analyze a curve: 1 On the Select panel, choose the biped object whose curve you want to correct. You can select the object from the Select list, in a viewport, or from the Controllers hierarchy. 2 Click the Analyze tab, then on the Analyze panel, choose the analyzer you want to use from the drop-down list. By default, there are two choices: Noise Detector and Spike Detector. Animation Workbench | 4493 3 If you chose Noise Detector, choose the appropriate Property from the Property drop-down list. 4 Click Analyze. Any errors found are displayed in the error result list at the bottom of the panel. The errors also appear in Curve View as brown lines. 5 If no errors are found, try lowering the standard deviation value or make sure you have used the appropriate property when using the noise detector. For example, if you have a problem with the rotation of a leg, but you choose a Pos property, that error will not be detected. 4494 | Chapter 17 character studio Interface Animation Workbench | 4495 Parts to Analyze These options choose which parts to analyze: ■ Display Curve Part analyzed. When this is turned on, the curve displayed is ■ Selected Parts When this is turned on, the parts selected in the list or viewport are analyzed. Use this when you want to analyze an entire biped without displaying all of the curves in Curve View. Time to Analyze Sets the range to be analyzed. You can choose either: ■ Entire Animation Analyzes the entire animation. NOTE This is independent of the active 3ds Max time segment. ■ Active Time Segment Choose this to use the active time segment, as set by the 3ds Max Time Configuration dialog. ■ From / To These values let you specify a range with a particular start and end frame. Analyzers group Analyzers drop-down list Lets you choose which analyzer will be used to evaluate the curves. Each analyzer can present its own individual settings. The default choices are Noise Detector and Spike Detector. ■ Noise Detector Finds any large change in the animation, either rotational or positional as determined by the standard deviation value. Can operate on specific curves as determined by the selection in the Property drop-down list, regardless of what’s currently visible in the Workbench. NOTE It's important to understand that noise isn't always bad. For example, in an animation of a person waving his hand, then suddenly punching: the movement from the wave to the punch, plus the pullback from the punch might be analyzed as noise, but it is noise that you want. The Workbench will identify the magnitude of these changes by showing you the acceleration and the jerk curves. By being selective with the fixers, you can smooth out only what you want to improve, and maintain the rest. ■ Spike Detector Finds any large change in the animation that also contains a change in direction (in quaternion space or position space). Can operate on all curves in the animation, regardless of what’s currently visible in the Workbench. The analysis can be adjusted for Standard Deviation, which is the degree to which the animation departs from its overall pattern. 4496 | Chapter 17 character studio ■ Knee Wobble Finds knees that wobble or shake when a foot is planted. Uses Frame and Fluctuation parameters to determine what is a wobble error. ■ Knee Extension Finds knees that overextend when a foot is planted. Uses a Knee Angle parameter to determine extension errors. Property drop-down list Lets you choose the criterion that the Noise detector uses to evaluate the curves errors. Use Rotational (Rot) properties to analyze rotational errors; use Position (Pos) properties to analyze move transform errors. NOTE This control is not available when using the Spike detector. Options in this drop-down list include: ■ Rot Speed Looks for noise in the speed of the rotational angle. ■ Rot Accel Looks for noise in the acceleration of the rotational angle. ■ Rot Jerk ■ Pos Speed ■ Pos Accel ■ Pos Jerk Looks for noise in the jerk of the rotational angle. Looks for noise in the speed of the position. Looks for noise in the acceleration of the position. Looks for noise in the jerk of the position. Standard Deviation Lets you set the degree to which the animation can depart from its overall pattern. For example, in data that is somewhat noisy by design, the Noise detector can look for instances that are noisier. Lower deviation numbers mean higher sensitivity, and thus more errors found. Error results list Displays all errors that the analyzer finds. Each entry lists the name of the body part, and the number of errors found. Errors are also graphically highlighted with a vertical brown line in Curve View. Clicking an error entry in the list highlights that error in Curve View. Analyze Click to perform the analysis. Clear Results Deletes the results of the latest analysis. Load Analysis File Loads the results of a previous analysis. Animation Workbench | 4497 Save Analysis Saves the results of the latest analysis. Fix Panel Select a biped body part. > Motion panel > Biped Apps > Workbench > Fix panel The Fix panel provides access to the tools that can be used to automatically fix the errors found by the Analyze panel on page 4492. There are a variety of methods available to automatically correct errors found in the curves. Smoothing, blurring, and removing keys are all options. Or, if you prefer, you can correct the error manually by adjusting the interpolation per key, using standard 3ds Max methods. You can move the key on the curve, or right-click the key to access interpolation controls. A fix is performed as a specific operation on a particular biped body part or set of parts, at a particular time. In general, fixes either change the value of a key or remove keys to produce corrected motion. The results of last analysis are displayed in the Analyze Results list. Clicking an error in the list once displays the error as a yellow line over the curve; clicking the error twice updates the viewport scene, making the error the current frame. Errors can be sorted by Part or by Time. Fixes can be applied to individual errors, selected errors, or to all errors at once. See also: ■ Filters Panel on page 4503 Procedures To fix an individual error: 1 Click to highlight the error in the Analyze Results list. 2 Choose the Fixer type you want to use to automatically correct the problem. 3 Click Fix Selected. 4 Observe the change in the Curve View. 5 Play the animation in the viewport to see if the error has been corrected. 4498 | Chapter 17 character studio 6 If the error is still visible, try changing the parameters for the fixer, or choosing a different fixer. The Rot and Pos fixers attempt to solve the problem by changing the values of the keys; if they don't give good results, it might be more useful to use the Remove Keys fixer. To fix multiple errors: 1 Highlight all the errors in the Analyze Results list. You can use the Ctrl and Shift keys to add to your selection. 2 Choose the Fixer type you want to use to automatically correct the problem. 3 Click Fix All. 4 Check your results as you would if you were fixing a single error (see the previous procedure). To remove keys from curves automatically: 1 On the Select panel, highlight the biped part in the list. TIP If you don't know the name of the part, you can click it in a viewport. 2 On the Analyze panel, choose the appropriate Analyzer type and properties. 3 Click Analyze. The errors are listed in the error result list at the bottom of the panel. 4 On the Fix panel, choose the errors you want to fix. 5 In the Fixers drop-down list, choose Remove Keys. 6 Click Fix Selected. The removed keys will disappear from the list and the curves. TIP You can use the Delete Keys option and Interval Width to create a threshold for deleting keys. If you turn on Delete Keys, the Interval Width will disallow the deletion of keys based on that value. Use this if too many keys are being deleted when you use Remove Keys. Animation Workbench | 4499 Interface Analyze Results error list Displays all the errors the analyzer found for the selected body parts. The name of the Biped object is preceded by the frame number of the error. Clicking the error once displays a yellow line at that 4500 | Chapter 17 character studio frame in the Curve View. Clicking it twice moves the current frame to match the error frame number: the viewports display that frame as well. Sort by: Lets you change the display of the error analysis results. ■ Part: Displays all the errors for each part listed together. ■ Time Displays all the errors sequentially, by frame. Fixers Determines the method used to attempt to correct the errors found by the analyzer. In general, try to match the fixer to the analyzer property. For example, if you have selected a Noise detector with Rot Speed, then choose a Fixer with Rot in the name as well. The exception to this would be when it is obvious that you'd prefer to remove the keys rather than modify them. In that case, choose a Remove Keys fixer. Fixer options include: ■ Rot Smoothing Corrects rotational errors by smoothing the curve. Can be repeated on the same track for greater effect. Slower than blurring, but keeps more detail of the curve. ■ Rot Blurring Corrects rotational errors by blurring the curve. Good if you just want to keep the general shape of the animation, but don't want to keep the details. May remove too much detail in the animation. ■ Adv Rot Smoothing Works even better than the normal smoothing filter when it comes to only modifying large changes. Can be repeated on the same track for greater effect. It is the slowest filter, great at keeping minute details, which can be very important, especially with motion-capture data when you want to keep nuances. ■ Pos Smoothing Corrects move transform problems by smoothing the curve. Can be repeated on the same track for greater effect. Slower than blurring, but keeps more detail of the curve. ■ Pos Blurring Corrects positional problems by blurring the curve. Good if you just want to keep the general shape of the animation, but don't want to keep the details. May remove too much detail in the animation. ■ Remove Keys ■ Knee Wobble Fixes knees that wobble or shake when a foot is planted. Uses a Knee Angle value as criteria for error status. ■ Knee Extension Fixes knees that overextend when a foot is planted. Uses a Fluctuation value as criteria for error status. Fixes errors by deleting keys based on an interval setting. Animation Workbench | 4501 Fixer parameters Individual fixers display different parameters. These include: ■ Width Determines how much of the curve is affected around the keyframe. All the Fixers except for Remove Keys display this parameter. ■ Damping Determines how the fix is blended into the existing curve. Changes how effective the fixer should be. A higher value, the more dramatic the change. A damping value of 1.0 is normal behavior All the Fixers except for Remove Keys display this parameter. ■ Delete Keys Allows for selective key removal based on Interval Width. When Delete Keys is used, keys are removed only within the Interval Width. When Delete Keys is not turned on, Remove Keys will remove the selected keys without considering the Interval Width. This parameter is available only when Remove Keys is the fixer. ■ Interval Width Determines the number of frames around the error to consider when deleting keys. This parameter is available only when Remove Keys is the fixer. ■ Knee Angle Sets the rotation angle to determine what constitutes knee extension errors. If the knee is planted and its angle is less than or equal to the knee limit angle, then the center-of-mass object is adjusted so that the knee angle doesn't exceed the limit. This parameter is available only when Knee Extension is the fixer. ■ Frames Determines the interval to consider for fluctuation evaluation. This parameter is available only when Knee Wobble is the fixer. ■ Fluctuation Establishes the amount of change allowed before knee wobble is identified. This parameter is available only when Knee Wobble is the fixer. If the knee angle fluctuates greater than the fluctuation threshold for 2 knee angles within the frame interval threshold, then the knee's angle is changed, so that the wobble is eliminated. Fix Selected Applies the Fixer operation to the selection in the Analyze Results error list. Fix All Applies the Fixer operation to all the errors, whether they are selected in the Analyze Results error list, or not. 4502 | Chapter 17 character studio Filters Panel Select a biped part. > Motion panel > Biped Apps > Workbench > Filters panel Filters are simply operations that can be performed to different biped body parts. They are similar to fixers, but they operate over an interval of time rather than the results of the last analysis. Thus you can use a filter without analyzing. Certain filters share parameter types and functionality as fixers, though the values are not shared and are distinct for each filter. Use a filter whenever you want to perform a general operation over a body parts motion, like smooth out or boost up some noise." Procedures To filter a track: 1 Choose the parts you want to filter: either just a particular curve, or an entire selection. 2 Choose the time range you want to filter: either the entire biped animation, the active time segment, or a custom range. 3 Choose the filter you want to apply. Adjust its individual parameter as required. 4 Click Filter at the bottom of the panel. 5 Observe the effect on the graph in the Curve view. 6 Play the animation in the viewport and observe the difference, if any. Click Undo if the results are unexpected or incorrect. Animation Workbench | 4503 Interface 4504 | Chapter 17 character studio Parts to Filter Sets the filter to act on either the display object or the entire selection of objects. ■ Display Curve Part Sets the filter to act on the displayed object curves. ■ Selected Parts Sets the filter to act on the active selection. Especially useful when working on the whole biped. Time to Filter Sets the range to be filtered to either the entire biped animation, the active time segment, or a custom range of frames. ■ Entire Animation Sets the time to filter to be the complete biped animation (disregarding the active time segment). ■ Active Time Segment Sets the time to filter to be the scene active time segment. You set the active time segment in the 3ds Max Time Configuration dialog. ■ From / To: Sets the time to filter to a custom range of frames. Filters group Filters list Choose the filter to use from this drop-down list. The available filter types include smoothing, blurring, boosting, key reduction, and subanims. ■ Rot filters work in quaternion rotation space, and modify the quaternions of the specified animation tracks. ■ Pos filters work in the specified positional coordinate system, and modify the positions of the animation tracks. ■ Blurring Uses basic Gaussian filters that take a weighted average over the width. Blurring filters are good for smoothing out noise, but can also over-smooth areas that aren't noisy. See Blurring, Smoothing, and Boosting parameters on page 4506, below. ■ Smoothing filters, on the other hand, are much better than blurring filters for keeping the general shape of the track or curve. They affect only areas that have big changes. The drawback of the smoothing filters is that they don't change the curve as dramatically as the blurring filters do, so sometimes you'll need to run the smoothing filter multiple times to smooth out a particularly noisy area. ■ Adv Rot Smoothing works even better than the normal angular smoothing filter when it comes to modifying only large changes and not small ones. See Blurring, Smoothing, and Boosting parameters on page 4506. Animation Workbench | 4505 (There is no comparable “advanced position” fixer or filter.) ■ Boosting Boosting filters are the opposite of blurring filters. They increase, rather than decrease, changes in the track. Boosting filters are helpful if you want to make a track have more exaggeration or a little more jerkiness. See Blurring, Smoothing, and Boosting parameters on page 4506. ■ Sub Anims The Sub Anims filter manages sub-animation of biped objects. Clicking a button that corresponds to a transform (Position, Rotation, or Scale) displays a dialog that lets you assign a controller to that transform. Assigning a controller in this way assigns it only to the selected biped parts. This is very handy for adding controllers to multiple biped parts all at once. Also includes the ability to enable or disable the three list controllers selectively, and avoids creating SubAnims, where they already exist. See Sub Anim parameters on page 4507. ■ Key Reducer Creates tracks with fewer keys, by removing certain keys based on tolerance and key spacing parameters. This works similarly to how key reduction works during motion-capture import. See Key Reducer parameters on page 4507. ■ Knee Wobble Corrects knees that wobble or shake when a foot is planted. If the knee is determined to wobble by the filter, the center of mass object is adjusted to eliminate the wobble. ■ Knee Extension Corrects knees that overextend when a foot is planted. If the knee extension is identified by the filter, the center of mass object is adjusted to eliminate the extension. Blurring, Smoothing, and Boosting parameters Width Width is the size of the filter kernel width in frames. It tells you how much of the animation is taken into effect when filtering a specified keyframe. Damping The Damping value changes how effective the filter should be. A higher value, the more dramatic the change. A damping value of 1.0 is normal filter behavior 4506 | Chapter 17 character studio Sub Anim parameters Enable Turns Position, Rotation, and Scale subanims on and off for the selected biped parts. Collapse Adds the subanim animation of the selected biped part to that part’s Transform controller. NOTE When you choose the Sub Anims filter, the Filter button at the bottom of the panel disappears. That's because the operations of this filter are immediate. Don’t Delete Maintains the subanim in the list as it’s collapsed onto the biped. Per Frame Sets keys at every frame of the collapsed controller. The Sub Anims filter tools are also available from the Motion panel. You can assign controllers to a biped subanim, and then collapse it by right-clicking and choosing Properties. The difference between using this in the Motion panel and in the Workbench is that you can apply subanims to multiple biped objects in one step when using the Workbench filter. Key Reducer parameters Create Key Per Frame When on, the filter creates a key per frame for every selected track. Default=off. Animation Workbench | 4507 Tolerance Sets the maximum angular or positional deviation for a track (other than a COM track). Default=3.0. Values are in units of translation for position tracks, and in degrees for rotation tracks. Key Spacing Sets the minimum number of frames between keys (other than COM keys). Tolerance is computed first, then Minimum Key Spacing computes further key reduction. COM Parameters These Tolerance and Key Spacing settings affect key reduction only on specified center-of-mass (COM) tracks (horizontal, vertical, or rotational). Filter Click to apply the active filter to the selected tracks. Working with Motion Flow Select a biped > Motion panel > Biped rollout > Motion Flow Mode Motion flow mode provides an area to graphically arrange clips into a network and tools to create and edit transitions between clips. Motion flow mode is used to organize clips into a network to animate one or more bipeds. The network of clips are joined together by transitions. A motion flow script is 4508 | Chapter 17 character studio used to associate the network of clips with the biped. To animate one biped, you create a single motion flow script that uses a list of clips to animate the biped. To animate multiple bipeds or a crowd of bipeds, you can either use the random method of clip selection or a delegate–driven approach. The random method simply picks clips at random and creates random scripts for each biped. This approach works well if the bipeds are standing still or are far apart and don’t require collision detection: a crowd of cheering fans at a ball game, for example. Clip and transition percentages are set with the Create Random Motion on page 4565 command during motion synthesis. When dealing with a crowd, or multiple bipeds that are close together, the delegate driven approach is the best solution. This approach uses many parameters to simulate moving crowds and incorporates collision detection, surface follow and other parameters. The delegate–driven method uses a network of clips, but instead of random selection. it bases clip selection on a delegate's speed and heading. In a delegate–driven crowd simulation, clips are arranged to follow a logical sequence. For example, the first clip could be a start walk clip, then a walk loop, then a branch to a turn right and turn left clip, then a slow to stop clip and so on. During motion synthesis, this arrangement is used to pick clips. If the software senses a collision ahead, the slow to stop clip is selected, or a veer to avoid clip is chosen. For a detailed breakdown of delegate driven crowd behavior, see Crowd Animation on page 4761. Placing Motions on the Motion Flow Graph The Motion Flow Graph on page 4549 contains the tools you'll use to add clips to the dialog window, calculate optimized transitions, set random script transition values, move and delete clips, and display clip dependencies. Clips display as icons and transitions appear as arrows in the Motion Flow Graph. The Motion Flow Graph displays when you click Show Graph on the Motion Flow rollout on page 4548 on the Motion panel. Working with Motion Flow | 4509 Motion Flow Graph The first step in Motion Flow mode is to add clips in the Motion Flow Graph for use in scripts. Clips represent all or part of a BIP file. Transitions represent different paths through the clips in the Motion Flow Graph. A transition looping back to the same clip represents a cycle or loop. If a biped is using a shared motion flow, then the title of the graph dialog says "Shared Motion Flow Graph", followed by the name of the shared motion flow. Shared Motion Flows are used to control multiple bipeds with one shared motion flow. There are two ways to create clips in the Motion Flow Graph on page 4549. The first method lets you create a blank clip to which you later assign a BIP file. The second method lets you create multiple clips at once by choosing a several BIP files at once. Procedures To create clips in the Motion Flow Graph: 1 Select a biped 2 Open the Motion panel. 4510 | Chapter 17 character studio 3 4 5 Click Motion Flow Mode on the Biped rollout. On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. On the Motion Flow Graph toolbar, click Create Clip 6 Click a few times inside the Motion Flow Graph dialog. Clip icons will appear in the Motion Flow Graph on page 4549 that are named clip1, clip2 and so on. 7 On the Motion Flow Graph toolbar, click Select Clip/Transition. 8 Right-click over a clip in the window. A clip dialog is displayed. 9 Click Browse in the clip dialog and choose a BIP file. 10 Optionally, set the start and end frame and then click OK. The selected icon displays the clip name in the Motion Flow Graph on page 4549; this clip can now be used for script creation. Working with Motion Flow | 4511 11 Click Select Clip/Transition again and load BIP files for the other clips you created. To create multiple clips in the Motion Flow Graph: 1 2 On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. On the Motion Flow Graph toolbar, click Create Multiple Clips. The Open dialog appears. Use it to choose the location of your BIP files. 3 While holding down the Ctrl key, choose multiple clips in the Open dialog. Once processed, multiple clips appear in the Motion Flow Graph on page 4549 window. 4512 | Chapter 17 character studio NOTE The number of clips you can load depends on the amount of memory you have in your system. Creating Transitions Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Motion Flow rollout > Motion Flow Graph Transitions, shown as arrows, link motion files (clips) together to create longer character animation and crowd simulations. Transitions can be created manually with the Transition Editor on page 4558 or automatically by the software. Working with Motion Flow | 4513 Transitions can also be optimized for better flow. To create optimized transitions, use the Optimize Selected Transition on the Motion Flow Graph toolbar or Optimize Transition in the Transition Editor. By default, minimum motion loss is used to compute transitions. Optimized transitions use an algorithm that minimizes foot sliding. Optimized transitions take longer to compute but yield very fluid results. Crowd simulations can use dozens of motion clips so automatic creation of optimized transitions can be a big time saver. Whether you plan on animating one or many bipeds using Motion Flow mode you’ll need transitions between the clips in the Motion Flow Graph. Procedures To create transitions using From > To or To < From method: 1 2 On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. On the Motion Flow Graph toolbar, click Create Multiple Clips. The Open dialog appears. Use it to choose the location of your BIP files. 3 While holding down the Ctrl key, choose multiple clips in the Open dialog. 4514 | Chapter 17 character studio Once processed, multiple clips appear in Motion Flow Graph on page 4549. 4 Turn on either Create Transition From -> To or Create Transition To <- From on the Motion Flow Graph toolbar and then drag from one clip to another clip. The top set of clips are linked using Create Transition From->To. The bottom set of clips are linked using Create Transition To<-From. To create transitions using Create All Transitions: 1 2 On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. On the Motion Flow Graph toolbar, click Create Multiple Clips The Open dialog appears. Use it to choose the location of your .bip files. 3 While holding down the Ctrl key, choose multiple clips in the Open dialog. Once processed, multiple clips appear in the Motion Flow Graph dialog. 4 Click Select Clip/Transition and select all the clips you added. Working with Motion Flow | 4515 5 To create transitions between all the clips, turn on Create All Transitions on the Motion Flow Graph toolbar. 6 At the Biped dialog, click Yes to create transitions from each selected clip to itself. Possible transitions from one clip to the next are automatically generated. To optimize transitions in the Motion Flow Graph: 1 After adding several clips and transitions, click Select Clip/Transition and select one or more transitions. 4516 | Chapter 17 character studio Selected transitions display in white 2 On the Motion Flow toolbar, click Optimize Selected Transitions . The Transition Optimization dialog is displayed. 3 Click OK. A processing bar scrolls across the top of the Motion Flow Graph on page 4549. Working with Motion Flow | 4517 Creating a Motion Flow Script Select a biped. > Motion panel > Biped rollout > Motion Flow Mode A script is a list of clips (BIP files) that control the character you are animating. To create a script, add clips to the Motion Flow Graph on page 4549, then click Define Script in the Scripts section of the Motion Flow rollout on page 4548, and click a sequence of clips in the Motion Flow Graph. Default transitions are assigned if no transitions exist between the clips. The clip names and starting frame numbers display in the list on the Motion Flow Script list. A sample script as it appears in the Scripts group on the Motion Flow rollout Random scripts vary the order of the clips found in the Motion Flow Graph. Scripts are run in a top-down order to animate the character. Click Play to view scripted motions on the biped. TIP As the length of a script varies, use Alt+R to set the Active Time in 3ds Max to the length of the script. 4518 | Chapter 17 character studio Once a script is put together, you have additional controls that let you adjust the starting frame, the starting X, Y, or Z locations and the starting rotation of the animation. Procedures To create a Motion Flow script: 1 Create a motion flow graph with three or more motion files. For information on how to set up the graph, see To create multiple clips in the Motion Flow Graph on page ?. 2 In the Scripts section of the Motion Flow rollout, click Define Script, and then select a sequence of clips from the Motion Flow Graph dialog on page 4549. As you select the clips in the Motion Flow Graph dialog, they are added to the script list. Working with Motion Flow | 4519 NOTE Transitions are automatically made in the Motion Flow Graph as you add clips to the script. 3 Give the script a new, descriptive name. Adding a descriptive name is less confusing if you ever append Motion Flow Editor files together. 4 Click the Play Animation button to see the biped move to the scripted clips. 5 Click Stop Animation. Change the Start Frame setting to 25 and move the frame slider. Now the biped will hold its start position until frame 25, then start moving. 6 Change the Start Position X:, Y,: or Z: setting. These settings let you control the position of the footsteps that the character follows. 7 Change the Start Rotation setting to 90. Often, the footsteps in a BIP file are not oriented in the direction you want. This setting lets you adjust which direction the character faces. 4520 | Chapter 17 character studio NOTE Each Start setting affects the entire animation. You cannot select a single entry in the script and make a change to affect only that clip. Saving, Loading, and Appending Motion Flow Graphs Select a biped. > Motion Flow mode > Motion Flow rollout Scripts, transitions, and clip references are saved in a Motion Flow Editor MFE, file, for later editing. This format lets you save a Motion Flow and script from one biped and load it onto another biped. You save, load, and append MFE files from the Motion Flow rollout. Procedures To save Motion Flow Editor files: 1 Create a Motion Flow Graph with three or more motion files. For information on how to set up the graph, see To create multiple clips in the Motion Flow Graph on page ?. 2 Create a script using the clips in the Motion Flow Graph. Working with Motion Flow | 4521 For information on how to create a script, see To create Motion Flow Scripts on page ?. A sample script called Kicking Script containing four clips 3 Click the Save File button to save a Motion Flow Editor MFE file. The Save As dialog opens. 4522 | Chapter 17 character studio 4 Specify a folder on your hard drive where you plan to store your Motion Flow Editor files. To load Motion Flow Editor files: 1 Select a biped. 2 3 4 Open the Motion panel. On the Biped rollout, click Motion Flow Mode. On the Motion Flow rollout, click Load File. The Open dialog opens. Working with Motion Flow | 4523 5 Navigate to the folder where your MFE files are stored. 6 Choose the file to load. 7 Click the Play Animation button to see the biped move to the scripted clips. To append Motion Flow Editor files: 1 Select a biped. 2 3 4 Open the Motion panel. On the Biped rollout, click Motion Flow mode. On the Motion Flow rollout, click Load File. The Open dialog opens. 4524 | Chapter 17 character studio 5 Select an MFE file from the folder where your Motion Flow Editor files are stored. 6 Click Append File. The Open dialog is displayed again. 7 Choose a different MFE file. A new script appears in the script drop–down list and the appended sequence of clips appears directly below the original sequence of clips in the Motion Flow Graph dialog, so you may have to scroll down to see it. Customizing Transitions Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Motion Flow rollout A good transition links two clips together seamlessly, the motion through the transition should appear natural, as though the motion was captured as one long motion sequence. If clips do not transition smoothly, you may find it necessary to edit or customize your transitions. There are two ways to manually edit transitions. ■ In the Motion Flow Graph, you can right click a transition arrow. Working with Motion Flow | 4525 If you have defined a script, highlight a clip and click the Edit Transition button. ■ Transitions can be edited automatically by using the Optimize Transition features. When you create a script, default transitions are set between the clips. Default transitions use minimum motion loss and are quick to compute. However, the best quality transitions are the optimized transitions. Optimized transitions use a minimum foot sliding algorithm to compute the transition and yield very good results. Procedures To manually customize transitions between two clips: 1 On the Biped rollout, select a biped and turn on Motion Flow mode. 2 Create or load a script with at least two clips. For information on how to create a script, see To create Motion Flow Scripts on page ? 3 Choose the first clip in the clip list in the Scripts section on the Motion Flow rollout. 4 Click Edit Transition to display the Transition Editor for the selected clip and the clip following it in the list. 5 Scrub the Frame spinners in the Ghost areas of the Source Clip and Destination Clip, to find a place in both clips to start the transition. Two stick figures appear to help you find an appropriate start frame. The yellow figure represents the Source Clip and the red figure represents the Destination Clip. The stick figures can be positioned far apart during this process. Look for body motions in the two clips that will transition well. 6 Click Set Start Frame in both the Ghost areas when a good Start Frame is located. Character studio repositions the destination clip for a best body fit between the two clips. 7 Set the transition duration in the Length field. 4526 | Chapter 17 character studio A transition duration of 10 to 25 frames is normal. 8 Click OK. 9 Click Play Animation or scrub the time slider to view the transition. To automatically customize transitions between two clips: 1 On the Biped rollout, select a biped and turn on Motion Flow mode . 2 Create or load a script with at least two clips. For information on how to create a script, see To create Motion Flow Scripts on page ? 3 Choose the first clip in the clip list in the Scripts section on the Motion Flow rollout. 4 Click Edit Transition to display the Transition Editor for the selected clip and the clip following it in the list. 5 At the upper-left corner of the Transition Editor, click Next Transition in Script. 6 Click Optimize Transition. The Transition Optimization dialog is displayed. Working with Motion Flow | 4527 7 Choose either Search Entire Clip or Search Near Existing Transition, and click OK. 8 Click OK on the Transition Editor dialog. 9 Click Play Animation or scrub the time slider to view the transition. Creating Random Motion You can randomly traverse clips in a motion flow graph to animate one or more bipeds using controls in the Create Random Motion dialog. You set parameters for random motion in the Motion Flow Graph, in the clip and transition dialogs, as well as in the Create Random Motion dialog. You create random motion by first adding clips to the Motion Flow Graph and adding transitions between the clips. Clips and transitions are then given percentages, which are used to create random motion for one or more bipeds. You can manually control the “weighting” for a possible start clip, transitions, and frame range. This allows you to animate multiple bipeds in a crowd scene for example. A different script is created for each biped. 4528 | Chapter 17 character studio NOTE If you want to create random motion for multiple bipeds, they must be sharing a motion flow. Details of Random Motions When choreographing a random motion for your biped, the default “weighting” for all clips and transitions is set to 100. This ensures that all clips and transitions have an equal chance of being randomly chosen. You can adjust the weighting of transitions in the Motion Flow Graph or Transition Editor to give transitions a higher probability of being selected. You can also set a specific start clip for your biped to use while the remainder of the clips in the script are randomly chosen from the Motion Flow Graph. To customize transition “weighting” and setting a start clip: 1 Oon the Biped rollout, select a biped and turn on Motion Flow Mode. Working with Motion Flow | 4529 2 On the Motion Flow rollout, click Show Graph. This displays the Motion Flow Graph. 3 On the Motion Flow rollout, click Load File The Open dialog is displayed. 4 Choose an MFE file from the folder where your Motion Flow Editor files are stored. The clips and transitions appear in the Motion Flow Graph. Each transition displays its “weighting” value, 100 by default. 5 Click Select Clip/Transition and right-click a transition that you want to adjust. The Transtion Editor dialog is displayed. 6 Adjust the Probability setting to give the transition a higher or lower probability of being randomly chosen for the motion flow script. NOTE The Probability range is 0 to 100. 7 On the Motion Flow Graph toolbar, click Select Random Start Clips. 4530 | Chapter 17 character studio 8 Select the clip you want used as the start clip. The clip turns purple and is assigned a weighting of 100. The selected clip will be used first by any biped using the random motion script. 9 In the Scripts section on the Motion Flow rollout, click Create Random Motion. 10 On the Create Random Motion dialog, set a value for Minimum Animation Length. This should be long enough to include the clips you want in the animation. 11 Click Create. A random script is created based on clips in the Motion Flow Graph and the Minimum Animation Length. 12 Click Play Animation or scrub the time slider to view the transition. Procedures To create a random script for one biped: 1 On the Biped rollout, select a biped and turn on Motion Flow mode. 2 On the Motion Flow rollout, click Show Graph This displays the Motion Flow Graph. 3 On the Motion Flow Graph toolbar, click Create Multiple Clips. The Open dialog appears where you can choose the location of your BIP files. 4 After adding several clips and transitions, click Select Clip/Transition and select all the clips. 5 On the Motion Flow Graph, click Synthesize Motion Flow Graph and click Yes when asked if you want to create transitions from each selected clip to itself. Working with Motion Flow | 4531 6 On the Motion Flow Graph toolbar, click Select Random Start Clips. All the transitions linking clips are weighted at 100, meaning all the transitions have a even chance of starting first. 7 Region select all the clips in the Motion Flow Graph. The clips all turn purple and are assigned a weighting of 100. All the clips have an even chance of starting first. 4532 | Chapter 17 character studio 8 In the Scripts section on the Motion Flow rollout, click Create Random Motion. 9 On the Create Random Motion dialog set a value for Minimum Animation Length. This should be long enough to include the clips you want in the animation. 10 Click Create. A random script is created based on clips in the Motion Flow Graph. You can vary clip and transition percentages in the clip dialog or Transition Editor to favor a clip or transition if you like. 11 Click Play Animation or scrub the time slider to view the transition. Unifying Motion The Create Unified Motion command allows you to create one motion from a script. The entire unified motion is then available when you exit Motion Flow mode. Create Unified Motion converts a script into a freeform unified motion. The created motion replaces animation present when the Motion Working with Motion Flow | 4533 Flow Mode button is turned off. This is useful if you want to make changes to the biped like raising its arms or turning its head. Procedures Example: To create a unified motion: 1 Create a biped. 2 3 On the Biped rollout, turn on Motion Flow Mode. On the Motion Flow rollout, click Show Graph. This displays the Motion Flow Graph. 4 5 6 7 On the Motion Flow rollout, click Load File and choose 1flobees.mfe from the Open dialog. Click Create Unified Motion. On the Biped rollout, turn off Motion Flow mode. Open the Layers rollout and click Create Layer. A new layer is created and you see a red skeleton appear on your biped. 4534 | Chapter 17 character studio 8 Activate the Front viewport and turn on Auto Key. 9 At frame 0, select and rotate the biped's upper left arm about the Y axis. Working with Motion Flow | 4535 10 Turn off Auto Key and click Play Animation. Sharing Motion Flow Shared Motion Flow on page 4567 allows you to assign one motion flow to multiple bipeds or crowds. Rather than building a motion flow network of clips for each biped, you can create a motion flow with all the clips and transitions to animate multiple bipeds. Random motion creation will use each biped's own motion flow. If a biped’s motion flow happens to be a shared motion flow, then the shared motion flow will be used to compute random motion. A biped that shares a motion flow shares only the clips you have added to the Motion Flow Graph. Scripts are unique to each biped, although the scripts point to the clips of the shared motion flow. You can manipulate each biped's motion flow and scripts in the usual ways. You can create random motion on a biped that shares a motion flow, or create a motion flow script using the crowd system. 4536 | Chapter 17 character studio There are a few indicators in the user interface that show if a biped is using a shared motion flow. If it is, a white circle surrounds the Shared Motion Flow button when you edit that biped. If you edit that biped's motion flow graph, the title of the graph dialog will say "Shared Motion Flow Graph", followed by the name of the shared motion flow. NOTE All bipeds in a shared motion flow should have the same leg scale and structure. Adaptation for differently sized bipeds does not occur in a shared motion flow. If you want differently sized bipeds in a crowd, then create a shared motion flow for each size. TIP The only way to save a shared motion flow, along with the bipeds sharing it, and keep everything hooked up correctly is to save it all in a .max file. Procedures Example: To share a random motion flow among multiple bipeds: 1 Create three bipeds. 2 3 On the Biped rollout, turn on Motion Flow Mode . On the Motion Flow rollout, click Show Graph. This displays the Motion Flow Graph. 4 Click Create Multiple Clips and add at least four clips to the Motion Flow Graph. The Open dialog appears where you can choose the location of your BIP files. 5 After adding the clips, click Move Clips and arrange the clips so they are not so close to one another. This will make it easier to see the transitions later. Working with Motion Flow | 4537 6 7 Click Select Clip/Transition and region select all the clips. On the Motion Flow Graph, click Synthesize Motion Flow Graph and click Yes when asked if you want to create transitions from each selected clip to itself. 4538 | Chapter 17 character studio 8 On the Motion Flow Graph toolbar, click Select Random Start Clips. All the transitions linking clips are weighted at 100, meaning all the transitions have a even chance of being randomly used. 9 Region select all the clips in the Motion Flow Graph dialog. The clips all turn purple and are assigned a weighting of 100. All the clips have an even chance of starting first. 10 On the Motion Flow rollout, click Shared Motion Flow . The Shared Motion Flow dialog is displayed. 11 On the Shared Motion Flows dialog, click New. A new shared motion flow is created. Working with Motion Flow | 4539 12 On the Shared Motion Flows dialog in the Parameters group, click Add. 13 On the Select dialog, choose all the bipeds. The bipeds are added to the list. If you add clips to the motion flow graph they will be shared by the bipeds. 14 Click OK to close the Shared Motion Flow dialog. 4540 | Chapter 17 character studio 15 In the Scripts section of the Motion Flow rollout, click Create Random Motion. The Create Random Motion dialog is displayed. 16 On the Create Random Motion dialog, turn on Create Motion for all bipeds sharing this motion flow. Failure to do this will result in the motion flow being added only to the selected biped. 17 Click Create. A random script is created for each of the bipeds that shared the motion flow. 18 Click Play Animation or scrub the time slider to view the transition. To apply a shared motion flow to a different group of bipeds: character studio can save and load shared motion flow setups. With this facility, you can create and refine a crowd simulation using bipeds that don't have meshes attached, thus avoiding the computational overhead that Physique requires. Once the simulation is ready, you can save the shared motion flow setup, apply it to a similar set of bipeds with Physique applied, and then render the final animation with no further crowd setup required. For best results, the two sets of bipeds should have the same number of members and be of comparable structure and size, and the biped structures should have the same root names. 1 Create a biped/crowd simulation using a shared motion flow. For details, see Using bipeds in a crowd simulation on page 4799. 2 On the Shared Motion Flow dialog, click Save and save the shared motion flow in SMF format. 3 Set up a new scene containing the same number of bipeds, each with a character mesh with Physique applied. The easiest way to do this is to set up one such character and then clone it. Make sure the bipeds have the same root names (e.g., Bip01, Bip02) as those in the original setup. 4 Select one of the bipeds, and on the Motion panel, turn on Motion Flow mode, and then click Shared Motion Flow. Working with Motion Flow | 4541 5 On the Shared Motion Flow dialog, click New, and then click Load and load the shared motion flow from step 2. The shared motion flow is loaded and applied to the new set of bipeds. The biped names appear in the dialog list. If “(wrong scale)” appears after any biped names, use the Reset Wrong Scales buttons to correct the scales. 6 Click the Put Multiple Bipeds In Motion Flow button to place all of the bipeds in the list in Motion Flow mode, and then click OK to exit the dialog. 7 Play the animation to ensure that it's correct, and then render. Refer to Working with Crowd Animation on page 4761 for information regarding crowd animation. Setting Up Paths for Motion Flow Files On a Motion Flow Graph, the location of the referenced BIP files is saved in the MFE file. If a BIP file cannot be found, the program looks in the Animations directory specified by Configure User Paths > File I/O on page 7733. If a BIP file is not found in the Animations directory, then 3ds Max looks for the file in the same location as the currently loaded MAX file. If it is still not found, the program appends the local path of the referenced file to the path to the current MAX file. The file is saved back to the same location in which it is found. If a referenced BIP file cannot be found in its current location, there are two ways to resolve this. ■ From the Reset Unfound Motion Flow Files dialog, direct 3ds Max to the folder where the missing BIP file resides. 4542 | Chapter 17 character studio ■ Find and move the missing BIP file to the specified Motion Flow folder. NOTE When you find the BIP file, you can turn on the Add Directory To .INI File option and the directory is automatically added to your biped.ini file. Since the biped.ini file accepts multiple search paths, the new directory is added as another MoFloDir= line. 3ds Max will search the directories in the order they appear and will use the first instance of the file that it finds. When network rendering, the file names need to be UNC–compatible. Procedures To load a Motion Flow scene from another system: 1 Open a Motion Flow scene that was created on a different system. If referenced BIP files cannot be found, the Reset Unfound Motion Flow File dialog is displayed. Working with Motion Flow | 4543 2 If any of the referenced BIP files are on your local drive, navigate to the folder where they reside and select the BIP file. 3 Turn on the Add Directory To .ini File option, and click Open. Turning on the Add Directory To .ini File option automatically adds another MoFlowDir= line to your biped.ini file. NOTE Turn on Add Directory to Search if you want to search for referenced BIP files during your current session, but do not want to add the directories to the biped.ini file. 4 Click Play Animation after paths for all the referenced BIP files are properly set. 4544 | Chapter 17 character studio Motion Flow Mode Select a biped. > Motion panel > Biped rollout > Motion Flow Mode The Transition Editor uses ghosts to represent the source (yellow) and destination (red) clips. Use these stick-figure ghosts to judge body position and set a likely start frame in both clips for the transition. In Motion Flow mode, you combine BIP files, using either velocity-interpolated transitions or optimized transitions that compute minimum foot sliding, to create longer character animations. First you add clips and reference them to BIP files in the Motion Flow Graph. You then use these to create a script in the Motion Flow Script list. You adjust transitions between BIP files with the Transition Editor. You save scripts, transitions, and clip references in a Motion Flow Editor file (MFE) for later editing. Random Motion and Crowds You can generate random motions for one or more bipeds using the Create Random Motion command. For example, you can use these to animate a crowd of bipeds. For a crowd, you must share one motion flow script among many bipeds. If you are driving a crowd using delegates and behaviors, then rather than a completely random motion, the software picks appropriate clips based on the Motion Flow Mode | 4545 delegate's speed and direction. If the delegate slows to a stop, the software will find and use a clip that slows to a stop, if one exists. In all crowd simulations you must load clips and create transitions before synthesizing the crowd motion. Often, many clips are used to synthesize crowds. Automatic transitions relieve you of having to create transitions between clips manually. One additional rollout displays in Motion Flow mode: The Motion Flow rollout on page 4548 provides access to the Motion Flow Graph and lets you load and save motion flow files (MFE). The rollout also contains a Scripts section where you can create scripts, edit transitions, create a unified motion, and create random motions for the bipeds. NOTE In Motion Flow mode, some character studio controls are disabled. Workflow: Getting Started with Clips and Transitions in Motion Flow Mode Create your own library of BIP files from imported and converted motion-capture data and from your own character animation. With a biped selected, turn on Motion Flow mode. On the Motion Flow rollout, turn on Show Graph to open the Motion Flow Graph. On the Motion Flow Graph, click Create Clip, and add clips in the Motion Flow dialog. Associate the clips to BIP files by first turning on Select Clips-Transitions on the Motion Flow Graph toolbar and then right-clicking a clip icon; a clip dialog appears, allowing you to browse for a clip. Click Define Script on the Motion Flow rollout, then select a series of clips on the Motion Flow Graph. By left-clicking on a clip it will appear in the Scripts list. The clips are connected visually in the Motion Flow Graph with red arrows (active script) representing default transitions (Minimum Motion Loss). The default duration for a transition is 25 frames, which provides good results in many cases. Transitions, by default, use velocity interpolation between clips. Use Edit Transition in the Scripts section to fine-tune the transitions between clips. Select a clip in the Scripts list, then from the Scripts commands, click Edit Transition; the Transition Editor on page 4558 displays, and the source and destination clip names are displayed at the top of the Transition Editor. In the Source Clip area, Start Frame represents the frame in the source file where the transition starts. For example, if Source Clip Start Frame is 60, the transition from the source clip starts at frame 60. The duration of the transition is set in the Length field at the upper left; Length values are in frames. In this example, if Length is set to 10, the transition to the destination clip takes 10 frames. In the Destination Clip area, Start Frame represents the frame in the 4546 | Chapter 17 character studio destination clip that the transition starts; a value of 80, for example, starts the transition at frame 80 of the destination clip. In this example, the source clip plays from 0 to 60, there is a 10 frame transition from frame 60 of the source clip to frame 90 of the destination clip (frames 80 to 90 cover the destination clip transition period), then the rest of the destination clip plays. When the Transition Editor displays, the first things to try, before manually editing the transition, are the Optimized Transitions. Optimized transitions use a minimum foot sliding algorithm. The top right-hand corner of the Transition Editor dialog is the icon for optimized transitions. If the optimized transition is not satisfactory, try editing the transition manually. Manual transition editing offers the most control; the Frame spinners in the Ghost areas of the Transition Editor allow you to scrub the source and destination clips while viewing two stick figures. Find a good start frame in both clips using the Frame spinners. Things to look for in both clips are similar supporting feet, body momentum that will appear natural, and arm motion similarities. If velocity changes between the clips are too abrupt, use the Length field to adjust the duration of the transition. On the Motion Flow rollout, click Save File to save your work as an MFE file; transitions and scripts are saved. These BIP files contain no footsteps. Biped foot keys are saved with an IK Blend value of 1 for footsteps. To extract footsteps, exit Motion Flow mode, use Load File on the Biped rollout, and then click Convert. Convert looks at foot IK Blend values of 1 to extract footsteps. TIP The location of any referenced BIP file is saved in the MFE file. If the BIP file cannot be found, a Missing Motion Flow Files dialog opens up respectively, in which the missing files are listed. To rectify this, open the Asset Tracking dialog on page 7100 and set a new path of the missing files. See also: ■ Motion Flow Rollout on page 4548 ■ Motion Flow Graph Dialog on page 4549 ■ Motion Flow Scripts Group on page 4554 ■ Transition Editor on page 4558 ■ Create Random Motion Dialog on page 4565 ■ Shared Motion Flow Dialog on page 4567 ■ Transition Optimization Dialog on page 4571 Motion Flow Mode | 4547 ■ Clip Properties Dialog on page 4572 Motion Flow Rollout Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Motion Flow rollout The Motion Flow rollout displays when Motion Flow mode is active on the Biped rollout. You can load, append, and save motion flow editor files (MFE), and open the Motion Flow Graph on page 4549 and Shared Motion Flow dialogs using controls on this rollout. To load, append, or save a Motion Flow Editor (MFE) file, refer to the following procedures: ■ To load Motion Flow Editor files on page ? ■ To append Motion Flow Editor files on page ? ■ To save Motion Flow Editor files on page ? Interface Load File Load a Motion Flow Editor file (MFE). Motion Flow Editor files include: ■ Clips References to biped animation files. ■ Transitions ■ Scripts Names, attributes, and connections between clips. Different paths through a set of connected clips and transitions. TIP The location of the referenced BIP files is saved in the MFE file. If the BIP file cannot be found, the program looks in the Animations directory specified by Configure User Paths >File I/O on page 7733. 4548 | Chapter 17 character studio If you load an MFE file onto a biped using a shared motion flow, you will get a warning and the biped will be removed from the shared motion flow. The biped will get the newly loaded motion flow and all its scripts. Append File Append a Motion Flow Editor (MFE) file to the MFE that is already loaded. Displays a load file dialog. The appended graph will appear directly below the bottom of the existing graph in the graph window, so you may have to scroll down to see it. Save File Save a Motion Flow Editor (MFE) file. Saving an MFE file from a biped having a shared motion flow will save the motion flow and its scripts as if it were not shared. It will be a normal MFE file. NOTE To save a script as a BIP file, use Unified motion to have the scripted motion available when you exit Motion Flow mode. Show Graph Opens the Motion Flow Graph on page 4549. The first step in script creation is to add clips to the Motion Flow Graph. Shared Motion Flow Displays the Shared Motion Flows dialog on page 4567. Allows you to create, delete, and modify shared motion flows. Shared motion flows are used to animate one or more bipeds to simulate a crowd. If the selected biped is using a shared motion flow, then the icon has a white circle around it. Motion Flow Graph Dialog Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Motion Flow rollout > Motion Flow Graph > Motion Flow Graph dialog Use tools in the Motion Flow Graph to add clips to the graph, calculate optimized transitions, set random script transition values, move and delete clips, and display clip dependencies. Clips and transitions display as icons in the Motion Flow Graph dialog. The Motion Flow Graph displays when you click Show Graph on the Motion Flow rollout on page 4548 on the Motion panel. The first step in Motion Flow mode is to add clips in the Motion Flow Graph for use in scripts. Clips represent all or part of a BIP file. Scripts represent different paths through the clips in the Motion Flow Graph. The first clip in Motion Flow Mode | 4549 the current script is red. Transitions are shown as arrows between clips, red arrows represent the path through the active script. Black transition arrows indicate unloaded scripts. A transition looping back to the same clip represents a cycle or loop. If the biped is using a shared motion flow, then the title of the graph window will say "*SHARED* Motion Flow Graph", followed by the name of the shared motion flow. Shared Motion Flows are used to control multiple bipeds with one shared motion flow. By default, minimum motion loss is used to compute transitions. Optimized transitions use an algorithm that uses minimum foot sliding. Optimized transitions take longer to compute but yield very high quality results. Random Scripts for One or More Bipeds You can create random scripts by using the Create Random Motion command in the Script group on the Motion Flow rollout. Random scripts are created by randomly traversing clips in a motion flow graph. To use Create Random Motion, each biped must be in the same shared motion flow. To use a shared motion flow to create random scripts for multiple bipeds, the first step is to click Shared Motion Flow on the Motion Flow rollout, and then add bipeds that will share one shared motion flow. On the Motion Flow Graph, clips are added and transitions are created between all the clips. Then Create Random Motion is used to compute a random motion for all the bipeds. Clips and transitions are given percentages that are used by the software to generate random scripts. Percentages for clips and transitions are set in the clip dialogs and in the Transition Editor dialog. You can load many clips and use Create All Transitions to create all possible transitions between the clips. You can then use Optimize Selected Transitions to create optimized transitions. Once the transitions are created, you can quickly create scripts with optimized transitions or generate random motions for a crowd of bipeds. The MFE file stores pointers to the clips, transition parameters, and scripts. See Placing Motions on the Motion Flow Graph on page 4509 to add clips to the graph, or Creating Random Motion on page 4528 to create a random script and transitions. 4550 | Chapter 17 character studio Interface Create Clip Select and click in the dialog window to create clips. The clips are empty. Right-click a clip using the Select Clip tool to display the Clip Properties dialog on page 4572; then select a BIP file and set its duration in the Clip Properties dialog. You can also set the Random Start Probability here. Random Start Probability is used when multiple clips are selected as possible start clips when you generate a random motion flow. NOTE Setting clip duration is not critical for transitions; the Transition Editor on page 4558 allows you to start and end a transition on any frame of a clip. Create Multiple Clips Load multiple motion files. Displays an open file dialog. Select multiple files and click OK; multiple files are loaded into the Motion Flow Graph window. Set lowest starting foot height to Z=0 (BIP files only) Sets the lowest starting foot height to Z=0. This is an option in the Load File dialog. Default=On. In Biped, the height of a motion clip can be retained. This is important if you want to retain the height of a motion clip for motions adapted to characters Motion Flow Mode | 4551 of different sizes. If, for example, the character is jumping off a rock and you want to retain the Z position of the character, you would turn this option off. Leave this option off if Motion Flow motions must be blended that begin and end at different heights, such as three clips that have the character mounting a bicycle, riding the bicycle, and dismounting the bicycle. Turning off this option can, however, cause a jump in the motion during motion flow transitions. Turn this on for smooth transitions in Motion Flow mode. If adaptation takes place, the height is set so that the lowest foot at frame 0 starts at the Z=0 height. This lines up clips along the Z axis and creates smooth transitions. Create Transition From –> To Create a transition between two clips. Click+drag from one clip to another in the Motion Flow Graph dialog. Click on a single clip and then mouse up to create a loop transition. It is necessary to have this capability in order to create random scripts. You can create transitions which are not included in a script. Create Transition To –> From Create a transition between two clips. Click+drag to one clip from another in the Motion Flow Graph dialog. Click on a single clip and then mouse up to create a loop transition. It is necessary to have this capability in order to create random scripts. You can create transitions which are not included in a script. Create All Transitions Creates transitions between every clip, including loop transitions. Select all the clips that require transitions, then click Create All Transitions. The transitions are not optimized. Use Optimize Selected Transitions to optimize the transitions. Optimized transitions take time to compute but are high quality. Delete Clip/Transition Deletes a clip or transition. If a script is dependent on the clip, a dialog displays a warning; clicking OK on the dialog deletes the clip and the script that is dependent on it. If you delete the selected clips and transitions from a shared motion flow, it will delete all the scripts from all the bipeds sharing that motion flow which are dependent on those clips and transitions. Select Clip/Transition Selects a motion clip or transition. 4552 | Chapter 17 character studio Right-click a clip to display the Clip Properties dialog on page 4572. Right-click a transition to display the Transition Editor dialog on page 4558. Move Clip Moves clips within the Motion Flow Graph. This does not affect the animation. Pan Pans the layout of the clips. Zoom Adjusts the view magnification of the Motion Flow window. Drag up to increase magnification. Drag down to decrease magnification. Zoom Region Click Zoom Region mode to drag a rectangular region and magnify that region to fill the Motion Flow Graph window. Fit to Window Re-sizes the contents to fit the size of the Motion Flow Graph window. Save Clip Files Lets you set a path where selected clip files can be stored. Clip Mode Edit biped footsteps and limbs for the selected clip. Use Set Key on the Keyframing rollout to set biped limb keys. Clips turn green in the Motion Flow Graph window in Clip Mode. Show Script Dependencies Displays the scripts that use the selected clip. If you push the Show Script Dependencies button on a shared motion flow graph, it will check all the bipeds sharing that motion flow for scripts dependent on the selected clips and transitions. Select Random Start Clips Turn on and select clips in the Motion Flow Graph window. Press Ctrl+click to add clips. Selected clips are used by Create Random Motion in the Scripts group to start on one of the selected clips based on percentage. If three clips are selected using the default weighting of 100, then each clip has an equal chance of being the start clip. Motion Flow Mode | 4553 Show Random Percentages Displays clip and transition percentages in the Motion Flow Graph window. Random start clips display in purple and display their probability of starting a random script. This also shows the probability (0 - 100) that each transition will be chosen. Create Random Motion in the Scripts group uses clip and transition percentages to generate random scripts. Optimize Selected Transitions Select one or more transitions and then click Optimize Selected Transition to optimize them. Displays the Transition Optimization dialog on page 4571 to set the location of the transition. Optimized transitions take time to compute. A progress bar is displayed when you use this feature. Minimum foot sliding is the method used to compute an optimized transition. Show Optimal Transition Costs Displays costs in the Motion Flow Graph window. The lower the number the better the transition. Check All Transitions Checks the graph for overlapping transitions and transitions whose length is too long for the clip. It informs you of any problems, or tells you that none have been found. Auto Clip Names Names the clip based on the name of the motion file. Turn off to name a clip yourself. Motion Flow Scripts Group Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Motion Flow rollout > Scripts group Create and delete scripts, name scripts, edit transitions, edit clips, and position the entire animation using tools in the Scripts group. Create random motion for one or more bipeds using controls in this rollout. The Scripts group on the Motion Flow rollout is only available when Motion Flow mode on page 4545 is active. 4554 | Chapter 17 character studio Scripts A Script is a list of clips (BIP files) that you constructed and are executed as you designed to animate a character. To create a script, add clips to the Motion Flow Graph, then select Define Script in the Scripts group and click a sequence of clips from the Motion Flow Graph window. Default transitions are assigned if no transitions exist between the clips. The clip names and starting frame numbers display in the list in the Scripts group. Different scripts vary the order of the clips found in the Motion Flow Graph. Scripts are run in a top-down order to animate the character. Click Play to view script motion on the biped. TIP As the length of a script varies, use Alt+R to set the Active Time in 3ds Max to the length of the script. Turn on the Keyboard Shortcut Override Toggle on the main toolbar to enable Biped shortcuts. Transitions Between Clips By default, when a script is created, Minimum Motion Loss is used to find likely start frames for the source and destination clips. Editing transitions using the Transition Editor on page 4558 allows you to determine where a transition occurs in the source and destination clip. Transition duration and the orientation of the destination clip can also be adjusted in the Transition Editor. Random Motion The Create Random Motion command traverses clips in the Motion Flow Graph based on transition percentages. Transitions are given percentages, and the software creates random scripts based on the transition percentages. This is a quick way to create crowd scenes or to try out different scripts on a single biped. For example, if five clips are present in the Motion Flow Graph and transitions exist between all the clips and each clip has a percentage or probability of being used, you can use Create Random Motion to create a script that is comprised of the five clips that are selected at random. Position the Entire Animation Use the Position, Rotation, and Start Frame controls to position the entire animation. If you are editing the script for a character in a scene with other objects or characters, use these controls to position the animation relative to the rest of the scene. Motion Flow Mode | 4555 For more information regarding scripts, refer to Creating a Motion Flow Script on page 4518. Interface Define Script Displays the Biped Motion Flow Script dialog (no dialog displays if there are no scripts; in this case, simply select clips in the Motion Flow Graph). The Biped Motion Flow Script dialog has the following options: ■ Create New Script Names a new script. Select clips in Motion Flow Graph to create the clip list for the new script. ■ Redefine Script Keeps the script name and removes clips in the list. Select clips in Motion Flow Graph to create a new clip list. ■ Insert Above Selected Clip item Inserts a clip above the selected clip in the list. First select a clip in the list, choose Insert Above Selected Clip item, and then click a clip in the Motion Flow Graph. ■ Insert Below Selected Clip item the list. 4556 | Chapter 17 character studio Inserts a clip below the selected clip in ■ Append to End of Script Appends a clip to the end of the clip list. Create Random Motion Displays the Create Random Motion on page 4565 dialog. Controls in the Create Random Motion dialog allow you to create random scripts to animate one or more bipeds. Random motion on multiple bipeds can be used to create a crowd scene. Delete Script Deletes the current script; displays the previous script if one is present. Create Unified Motion Converts a script into a Freeform unified motion. The created motion replaces animation present when Motion Flow Mode is turned off. Go to Frame Make the first frame of the selected clip the current frame. Cut Removes the selected clip from the script list and creates a default transition to the next clip on the list. Copy Copy the selected clip to the clipboard. Paste Paste a clip from the clipboard. Clip Mode Edit biped footsteps and limbs for the selected clip. Use Set Key on the Keyframing rollout to set biped limb keys. Edit Clip Displays the Clip Properties dialog on page 4572. Change the start and end frame for the current clip, or replace the current clip with another one. You can also set the Random Start Probability here. Random Start Probability is used when multiple clips are selected as possible start clips when you generate a random motion flow. The clip name in the script list and the icon in the graph window are updated if the clip is replaced. Motion Flow Mode | 4557 Edit Transition Displays the Transition Editor on page 4558 for the selected clip. Edit the transition for the selected clip and the clip following it. By default, when a script is created, Minimum Motion Loss is used to find start frames for the source and destination clips. Use Edit Transition to select your own start frames or to try out optimized transitions. NOTE Right-clicking a transition “arrow” in the Motion Flow Graph also displays the Transition Editor, but it will only give you the basic transition editing tools. To edit the transition’s Source Clip-Frame Start and the Destination Clip, use the Edit Transition button. Move the Entire Animation Start Frame Set the start frame for the first clip in the script. Start Position X Move the entire script along a world X-axis. Start Position Y Move the entire script along a world Y-axis. Start Position Z Move the entire script along a world Z-axis. Start Rotation Rotate the entire script around the world Z-axis. All transformation and rotation is based on the original position and affect the entire script. Transition Editor Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Scripts group > Select a clip in the script list. > Transition Editor Display the Transition Editor by selecting a clip in the list of the Scripts group and clicking Edit Transition in the same group or right-clicking a transition arrow in the Motion Flow Graph. Transitions A good transition links two clips together seamlessly; the motion through the transition should appear natural, as though the motion was captured as one long motion sequence. Like an AB roll transition in video editing, an appropriate section in both clips is selected for the transition (dissolve) from the source clip to the destination clip. Velocity differences between the source 4558 | Chapter 17 character studio and destination clips are matched during the period of transition producing a seamless result. By default, Minimum Motion Loss is used to find likely start frames in the source and destination clips when clips are appended to a script. Optimized transitions can be computed by using Optimize Transition in the upper right-hand corner of the Transition Editor dialog. Optimized transitions use a minimum foot sliding method to compute transitions. Optimized transitions take longer to compute, but produces very smooth motions. Although only one arrow is used to represent a transition between two clips in the Motion Flow Graph, any number of transitions can be named and stored in the Transition Editor representing that transition. If, for example, you create 5 different transitions between two clips for one script, all of these transitions are available in a new script that uses the same two clips. Think of Motion Flow Graph as a data storage area; if all of the scripts are deleted, the transitions are preserved and can be stored in an MFE file. Automatic Transitions When you create a script, default transitions are used between the clips. Default transitions use minimum motion loss and are quick to compute. However, the best quality transitions are the optimized transitions. Once the Transition Editor is open, the first thing to try, before manual editing, are the optimized transitions (upper-right corner of the dialog). Length (Transition Duration) Set the duration of a transition in the Length field. A value of 10, for example, creates a transition of 10 frames between the source and destination clips. During the period of transition, the velocity of the source clip is interpolated to the velocity of the destination clip. If the transition takes place at the last frame of the source clip and the first frame of the destination clip, and Length is set to 10, then the last frame of the source clip is interpolated with the first 10 frames of the destination clip. Editing Transitions Manually (Ghosts) Manually setting the Start Frame for the source and destination clips offers the most control. Unwanted motion in either clip can be avoided and judging the best Start Frames for both clips is left to you. The Ghost area Frame spinners allow you to view and scrub the source and destination clips by displaying stick figures (ghosts); yellow and red stick figures represent the source and destination clips. When a suitable Start Frame Motion Flow Mode | 4559 is located for both clips, use Set Start Frame in the Ghost area to copy the Frame values to the Start Frame fields in the Source and Destination Clip areas. Scrubbing the time slider over the transition period enables you to view the biped's transition from the yellow stick figure (source) to the red stick figure (destination). Other Transition Editor Features Rolling and Fixed specify whether a clip is rolling (in motion) or fixed (single frame) during the transition. Change the direction of the destination clip using the Angle field. Other parameters in the Transition Editor allow you to create and name new transitions, scroll through the saved transitions, jump to the transition-starting frame, set automatic transition parameters, and go to the next transition in the script You can save all transitions and their attributes in an MFE file. See Customizing Transitions on page 4525 to manually and automatically customize transitions. 4560 | Chapter 17 character studio Interface Probability Set a probability value for random transitions. This is used by Create Random Motion when a random script is generated. Length Sets the number of frames for the duration of the transition. Transitions are calculated by matching velocities in both clips. Smooth out abrupt velocity changes using longer transitions. Ease In Ease in value for the source clip. Ease Out Ease out value for the destination clip. Transition Focus Lets you specify a focus point on the biped where the transition takes place. Default = Center of Mass. ■ Center Of Mass The transition focus is based on the center of mass position of the biped as it transitions from one clip to the next. Motion Flow Mode | 4561 ■ Left Foot The transition focus is based on the left foot position of the biped as it transitions from one clip to the next. ■ Right Foot The transition focus is based on the right foot position of the biped as it transitions from one clip to the next. ■ Both Feet The transition focus is based on an averaged foot position of both of the biped's feet as it transitions from one clip to the next. NOTE The best way to see the differences between the transition foci is by watching the yellow and red ghosts. Angle Sets the direction of the destination clip. The angle of the destination clip is automatically set for best body fit between the two clips when the Start Frame values change. Use Angle to change the direction of the destination clip. Previous Transition Go to the previous transition in the script. Displays the previous transition in the Transition Editor, moves the time slider to the start frame of the previous transition, and highlights the previous clip in the Scripts list. Next Transition Go to the next transition in the script. Displays the next transition in the Transition Editor, moves the time slider to the start frame of the next transition, and highlights the next clip in the Scripts list. Optimize Transition Displays the Transition Optimization on page 4571 dialog. Options in the Transition Optimization dialog allow you to search for a location for the transition. Go To Start Frame Moves the time slider to the first frame of the transition. The number field shows the start frame number. 4562 | Chapter 17 character studio Start Frame Set the transition start frame for the source and destination clips in their respective fields. Duration for the source and destination clips display above the Start Frame fields. Rolling Keep the clip in motion during the transition. Fixed Freeze the biped at the Start Frame position during the transition. Ghost group The Ghost group Frame spinners allow you to view and scrub the source and destination clips by displaying stick figures (ghosts); yellow and red stick figures represent the source and destination clips. The source and destination bipeds might not be near each other during this scrubbing process; the destination clip will be repositioned when you click Set Start Frame is clicked. When you locate a suitable start frame, click Set Start Frame to copy the values in the Frame field to the Start Frame field. Monitor foot position status in the field provided. Motion Flow Mode | 4563 Set Start Frame Copy the value in the Frame field of the Ghost area to the Start Frame field in the Clip area. The position of the destination clip changes to match the biped body in the destination clip to the biped body in the source clip. Locate an appropriate start frame for the source and destination clips by using the Frame spinner and viewing the positions of both stick figures, then click Set Start Frame. The destination clip is rotated and positioned to match both bipeds. Use the Angle spinner to reorient the destination clip. Frame Use the Frame spinner to scrub a stick figure back and forth, which allows you to determine a start frame for the source and destination clips. Visual feedback of the stick figures is a good way to judge which start frames are needed for the source and destination clips. Playback group These controls let you play back the transition from the Transition Editor dialog. ■ Play Transition Icon Toggles the playback of transition. ■ Speed ■ Frames Before/Frames After Sets the number of frames to play before and after the transition period. ■ Selected Only ■ Play Ghosts Changes the playback speed. When checked, plays only the selected biped in the scene. When checked, shows transition ghosts during playback. Create Transition Click to create a new transition. The transition number field increments. Edit and name the new transition. Any number of transitions can be stored. 4564 | Chapter 17 character studio NOTE Clicking OK saves the displayed transition. Create Transition is used only if you want to work on a new transition. Delete Transition Click to delete a transition. Previous Transition Go to the previous stored transition. This button is grayed if no previous transition exists. Next Transition Go to the next stored transition. This button is grayed if no next transition exists. OK Store transitions and exit the dialog. Create Random Motion Dialog Select a biped. > Motion panel > Motion Flow Mode > Motion Flow rollout > Scripts group > Create Random Motion > Create Random Motion dialog You can randomly traverse clips in a motion flow graph to animate one or more bipeds using controls in the Create Random Motion dialog. Parameters for random motion are set in the Motion Flow Graph, in the clip and transition dialogs, as well as in the Create Random Motion dialog. Random motion is created by first adding clips to the Motion Flow Graph window and adding transitions between the clips. Clips and transitions are then given percentages, which are used to create random motion for one or more bipeds. You can manually control the “weighting” for possible start clip, transitions, and frame range. This allows you to animate multiple bipeds in a crowd scene, for example. A different script is created for each biped. If you want to create random motion for multiple bipeds, they must be sharing a motion flow. For more information about using random motions and transitions, refer to Creating Random Motion on page 4528. Motion Flow Mode | 4565 Interface Script Name Type a name for the script to be generated. Random Start Range Set the start and end frame range over which the new script(s) will start. Minimum Animation Length Set the minimum animation length. When a random motion is created, it is done by making a motion flow script which traverses the clips in the Motion Flow Graph, adding clips based on random calculations. It will add clips until the length of the script is greater than or equal to the minimum animation length, specified here. first clip in script Gets the start position and rotation from the first clip. biped’s current position/rotation Uses the biped’s current position to start the script. Create motion flow script Creates a script after computing the motion. If this is on, a motion flow script will be created. If not, a script will still be created internally in order to generate the random motion, but it will be deleted after the random motion is generated. 4566 | Chapter 17 character studio Append to existing script Appends random motion to the existing script. Create unified motion Creates a unified motion. The generated motion will be available when you exit Motion Flow mode. If multiple bipeds are in the random calculation, then the motion is unified for each biped. Store as .bip file Stores the random motion as a BIP file. If multiple bipeds are in the random calculation, they are saved separately with incrementing numbers. File Name Type a name for the BIP file. The .bip extension is added automatically. Directory Type a directory path or browse for the path. Browse Browse to a directory. Create motion for all bipeds sharing this motion flow Turn on to create a random script for each biped sharing the current biped’s motion flow. You can create a shared motion flow by using the Shared Motion Flow command on the Motion Flow rollout and adding bipeds in the Shared Motion Flow dialog. Create Creates random motion for the selected biped or all the bipeds in the shared motion flow. Cancel Cancel and close the dialog. Shared Motion Flow Dialog Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Motion Flow rollout > Shared Motion Flow > Shared Motion Flow Dialog Controls in the Shared Motion Flow dialog allow you to assign one motion flow to multiple bipeds. Instead of choreographing a motion flow script for individual bipeds, you can create a motion flow with all the clips and transitions to create a script to animate multiple bipeds. Random motion creation will use each bipeds' own motion flow. If a biped’s motion flow happens to be a shared motion flow, then the shared motion flow will be used to compute random motion. A biped that shares a motion flow shares only the graph. Its scripts are unique to that biped, although the scripts point to the clips of the shared motion flow. You can manipulate that biped's motion flow and scripts. You can create Motion Flow Mode | 4567 random motion on a biped that shares a motion flow, or create a motion flow script via the crowd system. A white circle around the Shared Motion Flow icon indicates that a biped is using a shared motion flow. If you edit that biped's motion flow graph, the title of the graph dialog will say "Shared Motion Flow Graph", followed by the name of the shared motion flow. Bipeds in a shared motion flow should have the same lower body scale and structure. Adaptation for differently sized bipeds does not occur in a shared motion flow. If you want differently sized bipeds in a crowd, then create a shared motion flow for each size. See Sharing Motion Flow on page 4536 for more details about setting up a shared motion flow. 4568 | Chapter 17 character studio Interface Shared Motion Flows list Lists shared motion flows. New Creates a new shared motion flow. Delete Deletes the current shared motion flow. The scripts of the bipeds sharing the deleted motion flow will be deleted. Those bipeds will have an empty motion flow graph and no scripts. Load Loads a shared motion flow (SMF) file. Motion Flow Mode | 4569 This file is created with the Save command (see following). The file contains the shared motion flow graph as well as the scripts for all bipeds sharing the motion flow. Save Saves a shared motion flow (SMF) file. The file contains the shared motion flow graph as well as the scripts for all bipeds sharing the motion flow. Use this facility to speed biped/crowd-simulation setup. Create and refine the crowd simulation with bipeds that don't use Physique, save the shared motion flow, load or create your final crowd members that use Physique, and then load the shared motion flow. For a procedure, see To apply a shared motion flow to a different group of bipeds: on page 4541. Load .mfe Displays a load file dialog. Load an MFE file into the shared motion flow. NOTE If you load aN MFE file, via the Motion Flow rollout, into a biped using a shared motion flow, you will get a warning and the biped will be removed from the shared motion flow. The biped will get the newly loaded motion flow and all its scripts. The shared motion flow will remain the same. Bipeds Sharing this Motion Flow list Lists the bipeds that share this motion flow. Add Displays a dialog where you can choose bipeds to add to the motion flow list. Add bipeds to the list of bipeds that share a motion flow. When you add a biped, its current motion flow graph and motion flow scripts will be deleted. It will now have the shared motion flow graph. A biped can only share one motion flow graph. You must remove a biped from its shared motion flow in order to add it to a different shared motion flow. Remove Removes the selected bipeds in the list from the current shared motion flow. These bipeds' scripts will be deleted. They will have an empty motion flow graph. Put Multiple Bipeds in Motion Flow Put the bipeds in the list into Motion Flow mode. The crowd system needs Motion Flow mode to be turned on to perform calculations for motion. This is a convenient way of turning on Motion Flow mode for multiple bipeds. 4570 | Chapter 17 character studio Take Multiple Bipeds out of Motion Flow Take the bipeds in the list out of Motion Flow mode. Set Shared Moflow Leg Scale Adapts the shared motion flow to the scale of the biped currently selected in the list. After this operation, the selected biped will have the correct leg scale, although other bipeds may not. Reset Wrong Scales Just Legs: Reset the leg scale only of the bipeds that have the wrong scale, so that they adapt appropriately to the shared motion flow. Reset Wrong Scales Entire Figure: Resets the entire figure structure of the bipeds that have the wrong scale, to match the figure structure of the correctly scaled biped. When you add the first biped to the shared motion flow, the system adapts to the size of that biped. If the leg scale of a biped you add subsequently doesn't match that of the first biped, it will be marked in the list with "wrong scale" after it. All the bipeds you plan on using in a shared motion flow must have the same lower body structure and scale. Transition Optimization Dialog Motion Flow Mode > Motion Flow Graph > Select transitions in the graph window. > Optimize Selected Transitions > Transition Optimization dialog Motion Flow Mode > Motion Flow rollout > Scripts group > Select a clip in the Script list. > Edit Transition > Optimize Transition > Transition Optimization dialog Options in the Transition Optimization dialog allow you to select the range over which the optimize algorithm will search for the transition. It can search either the whole clip, or it can search near the existing transition. You must specify the preferred length of the optimized transition. The software will try to get as close to that length as possible, still opting to give you the best length. If it searches about the existing transition, you must specify the number of frames about which it will search before and after the existing transition. Optimized transitions compute for minimum foot sliding over the range of the transition. This method yields very high quality results. Motion Flow Mode | 4571 Interface Preferred Transition Length Specify the length of the optimized transition. Search Entire Clip Search the entire clip for an optimized transition start frame. Search Near Existing Transition Create an optimized transition near the existing transition. You may search the range about the existing transitions by setting before and after frame values. Clip Properties Dialog Motion Flow Mode > Motion Flow Graph > Right-click a clip in the Motion Flow Graph window. > Clip Properties dialog Motion Flow Mode > Motion Flow script rollout > Select a clip in the list. > Edit Clip > Clip Properties dialog Parameters in the Clip Properties dialog allow you to browse for a clip, set a start and end frame for the clip and set a random start probability for the clip. Random start probability is used when you use Create Random Motion to generate a random script for a biped. 4572 | Chapter 17 character studio Interface Clip Name The clip name as it appears in the Motion Flow Graph. File Name The path and file name of the motion clip. Length The length of the clip in frames. Browse Displays a load file dialog. Browse for a motion file. Set lowest starting foot height to Z=0 (.bip files only) Sets the lowest starting foot height to Z=0. This is an option in the Load File dialog. Default=On. In character studio the height of a motion clip can be retained. This is important if you want to retain the height of a motion clip for motions adapted to characters of different sizes. If, for example, the character is jumping off a rock and you want to retain the Z position of the character, you would turn this option off. Leave this option off if Motion Flow motions must be blended that begin and end at different heights, such as three clips that have the character mounting a bicycle, riding the bicycle, and dismounting the bicycle. Turning off this option can, however, cause a jump in the motion during motion flow transitions. Turn this on for smooth transitions in Motion Flow mode. If adaptation takes place, the height is set so that the lowest foot at frame 0 starts at the Z=0 height. This lines up clips along the Z axis and creates smooth transitions. Start Frame Sets the start frame for the clip. End Frame Sets the end frame for the clip. Active Activates the clip. Inactive clips display as a green color in the Motion Flow Graph. Motion Flow Mode | 4573 Random Start Probability Set a percentage for random start probability. This is used when multiple clips are selected as possible starting clips in a random motion flow. The Create Random Motion command allows you to generate random motion for one or more bipeds. Working with Motion-Capture Data Motion capture is the practice of getting motion data from live actors performing various actions. The motion data is captured (retrieved) via sensors placed at the actors' joints and extremities. 3ds Max does not perform motion capture, but it accepts motion-capture data in the most commonly used formats. This data can be imported to the biped and used as is, or combined with other motions with Motion Flow on page 4508 or the Motion Mixer on page 3699. Motion-capture data typically needs some adjustment before it fits your biped or animation perfectly. When motion-capture data is imported to 3ds Max, it can be filtered to: ■ Use fewer keyframes ■ Create footstep motion ■ Use props in the scene In addition, some motion-capture files come with a separate marker file, which can be used to match the biped posture to the motion-capture actor. How Motion-Capture Data is Acquired Motion-capture data is typically acquired by one of several means: ■ Optical sensing technology Optical systems have become quite popular over the last couple of years. These systems can offer the performer the most freedom of movement since they do not require any cabling. Optical systems incorporate directionally reflective balls, referred to as markers on page 8037, that attach to the performer. Optical systems require at least three video cameras, each of which is equipped with a light source that is aligned to illuminate the field of view for that camera. Each camera is in turn connected to a synchronized frame buffer. The computer is presented with each camera view in order to calculate a 3D position of each marker; the resulting data 4574 | Chapter 17 character studio stream therefore consists of 3D position data for each marker. This data is typically applied to an inverse kinematics system, to animate a skeleton. ■ Electro-magnetic sensing technology This is a popular method used for performance capture. Magnetic capture involves the use of a centrally located transmitter, and a set of receivers that are strapped on to various parts of the performer’s body. These receivers are capable of measuring their spatial relationship to the transmitter. Each receiver is connected to an interface that can be synchronized to prevent data skew. The resulting data stream consists of 3D positions and orientations for each receiver. This data is typically applied to an inverse kinematics system to drive an animated skeleton. This magnetic approach shares the same lack of occlusion problems with the audio method, but it also shares the same negative factors, such as the hindrance of cables, lack of sufficient receivers, and the limited capture area. In addition, being magnetic, the system is affected by any sizable areas of metal in the vicinity of the capture area, such as girders, posts, and so on ■ Prosthetic sensing technology This is one of the early methods for capturing the motion from various parts of human anatomy. These methods include simple "on/off" type of motion-detection systems as well as complex motion-tracking systems. The latter type of prosthetic motion capture would be an ideal approach if it weren’t for the complex mechanical requirements and the performance-inhibiting qualities generally associated with such designs. However, the type of data provided can be clean, rotational data collected in real time without any occlusion problems. This method is based on a set of armatures that must be attached all over the performer’s body. The armatures are then connected to each other by using a series of rotational and linear encoders. These encoders are then connected to an interface that can simultaneously read all the encoders in order to prevent data skewing. Finally, through a set of trigonometry functions, the performer’s motion can be analyzed. These design restrictions seem to be quite difficult to overcome, and will probably limit the use of this type of device for character animation. ■ Acoustic sensing technology Acoustic capture is another method currently used for performance capture. This method involves the use of a triad of audio receivers. An array of audio transmitters are strapped to various parts of the performer's body. The transmitters are sequentially triggered to output a "click" and each receiver measures the time it takes for the sound to travel from each transmitter. The calculated distance of the three receivers is triangulated to provide a point in 3D space. An inherent issue with this approach is the sequential Working with Motion-Capture Data | 4575 nature of the position data it creates. In general, one would like to see a "snap shot" of the performer’s skeletal position rather than a time-skewed data stream. This position data is typically applied to an inverse kinematics system, which in turn drives an animated skeleton. See also: ■ Importing Motion-Capture Data on page 4576 ■ Filtering Motion-Capture and Marker Data on page 4577 ■ Sliding Footsteps on page 4581 ■ Prop Bone on page 4583 Importing Motion-Capture Data In character studio, you can import both rotation and position type motion-capture files. ■ BioVision (.bvh) files contain limb and joint rotation data. ■ character studio marker files (.csm) contain raw marker position data generated by a motion-capture device: markers are attached to an actor during a motion-capture performance. Marker files typically require some calibration. If necessary, the biped is sized to fit the markers first, then the biped limbs are oriented to align them to the markers. Marker files should be loaded with keys at every frame and no footstep extraction; this is required for calibration, and also enables the calibration controls. Calibration controls are the second row of buttons on the Motion Capture rollout. In character studio, the .csm marker file format supports a prop bone in either or both hands. See Prop Bone on page 4583. Key reduction, track selection, footstep extraction, and clip looping are some of the options available using the Motion Capture import filter. Key reduction makes it easy to manipulate the biped and personalize the imported motion-capture data. Extracting footsteps from motion-capture data prevents inappropriate sliding feet, which are a common problem with motion-capture data. Typically you do not use an entire motion-capture clip as is, unless you capture motions at a studio for your own production. You should become familiar 4576 | Chapter 17 character studio with the body motion in the files you have, then use Motion Flow mode to cut portions of these files together to create animation. For example, take a stretch motion in one clip, and combine it with the walking motion in another clip. You can then save the edited script as a BIP file using the Save Segment command on the Biped rollout. Load this BIP file for standard motion editing. This provides a good starting place for you to edit the result to your liking. All motion-capture controls are on the Motion Capture rollout on page 4584. Filtering Motion-Capture and Marker Data Motion-capture and marker data typically have keys at every frame. Filtering motion-capture data reduces keys, simplifying the job of altering or personalizing the motion data. Biped lets you filter the data of each track with its own filtering settings, so you have control over which nuances of motion you want to pick up without filling the rest of the tracks with unwanted keys. Filtering is done using the Motion Capture Conversion Parameters rollout. Other filtering options include footstep filtering and extraction, looping the data, and importing a portion of the motion-capture file. 3ds Max ships with a variety of raw (unfiltered) motion-capture data files, in BIP, CSM, and BVH formats. Some of the same data is available in filtered versions, either with footsteps or freeform. Try your own filtering adjustments on the raw versions of this data. Importing the raw data displays the original motion very accurately when you select Show Buffer on the Motion Capture rollout. Use the Motion Capture buffer as a guide when adjusting and refining the filtered data. Several tools are available in the Motion Capture rollout to aid you in this process. Create your own library of imported and optimized motion capture data by saving BIP files for use with other characters, or as part of a longer script in Motion Flow mode. Use a biped that has no mesh attached with Physique. TIP Overall, you import the data, adjust it to your liking, and save it as a BIP file. You can also run standard BIP files through this filtering process to create loops or to extract footsteps from a freeform animation. NOTE Marker files, such as CSM, contain position data. Hierarchical motion-capture files, such as BVH, contain joint rotation data. Working with Motion-Capture Data | 4577 Motion Capture rollout Character Studio Marker Files The .csm on page 7945 format is an ASCII file used to import positional marker data from motion-capture systems onto a biped. 4578 | Chapter 17 character studio The Show Markers command displays marker positions and names. Procedures To import a motion capture file: 1 Select a biped in the viewports. 2 On the Motion Capture rollout, click Load Motion Capture File. 3 Choose the file type: BVH, BIP, or CSM. Search for files in the cstudio\motions\mocap directories. TIP CSM marker files, loaded for the first time, should be imported with no key reduction and no footstep extraction. This enables the calibration buttons. Marker files typically need some calibration. 4 Select a file and click Open. The Motion Capture Conversion Parameters dialog displays (see Motion Capture Conversion Parameters Dialog on page 4592). 5 Select the filter options you want and click OK. The biped adapts itself to the motion data. If Footstep Extraction is turned on, footsteps appear. TIP Use a biped that does not have a mesh attached with Physique. Import motion-capture data with the idea of then saving a BIP file that can be used for any character. If skeletal scale information is loaded from a motion-capture file, a mesh with a Physique modifier might deform unnaturally. To import a marker file: Typically, when a marker file is loaded for the first time, it requires scale and position calibration. A raw marker file must be loaded, with no key reduction or footstep extraction, to enable the calibration functions. After calibration is performed, use Convert From Buffer to extract footsteps and reduce keys. 1 Select a biped. 2 On the Motion Capture rollout, click Load Marker Name File to load a marker name file (.mnm). Working with Motion-Capture Data | 4579 This step is not required if the marker names in the marker file adhere to the Biped marker naming convention. 3 On the Marker Name File dialog, click Load CSM Marker File, and choose the MNM file from the file open dialog that appears. 4 On the Motion Capture rollout, click Load Motion Capture File and choose a CSM marker file. The Motion Capture Conversion Parameters dialog displays (see Motion Capture Conversion Parameters Dialog on page 4592). 5 Adjust the filter parameters and click OK. NOTE Load raw marker data (No Key Reduction, Freeform) to enable the marker calibration buttons. The biped adapts itself to the marker data. 6 On the Motion Capture rollout, click Show Markers. On the Marker Display dialog, turn on Show Recognized Markers and the option for On All Objects. 7 Now, on the Motion Capture rollout, click Talent Figure Mode. Use Non-Uniform Scale or Rubber Band Mode (on the Biped rollout) to size the biped to the displayed markers. NOTE This step is optional and should be used if you need to correct for slight differences in limb scale between the original talent who performed the motion and the scale of the biped after the data is imported. For example, if the leg is too short, scale the length of the leg in Talent Figure mode to adjust the knee position. 8 Click Talent Figure Mode again to exit the mode. 9 Key adaptation takes place when you exit Talent Figure mode. Now biped limb positions relative to the markers can be adjusted. 10 Align the biped limbs to the markers if necessary, then click Adjust Talent Pose to compute the offset for the entire animation. 4580 | Chapter 17 character studio 11 Use Save Talent Figure Structure and Save Talent Pose Adjustment as a FIG and CAL file. 12 Load these files in the Motion Capture Conversion Parameters dialog when similar marker files are imported in the future. At this point, you can use Convert From Buffer to extract footsteps and reduce keyframes. Both scale and position adjustments will be incorporated. Save the motion as an optimized BIP file. Sliding Footsteps Motion-capture and marker data typically have keys at every frame. Filtering motion-capture data reduces keys, making the job of altering or personalizing the motion data much simpler. You can create your own library of imported and optimized motion-capture data by saving BIP files for use with other characters or as part of a longer script in Motion Flow mode. Use a biped that has no mesh attached to it with Physique. You import the data, adjust it to your liking, and save it as a BIP file. You can also run standard BIP files through this filtering process to create loops or to extract footsteps from a freeform animation. Motion Capture Import Footstep motion capture is enabled automatically when importing motion capture data using the Sliding Tolerance and Sliding Angle controls in the Motion Capture Conversion Parameters dialog on page 4592. Footstep Extraction group The following options are active when Footstep Extraction is on during motion capture conversion. Extraction Tolerance Sets the sensitivity of footstep extraction. Biped determines if the footstep is there by checking that the foot does not move beyond the distance determined by the Extraction Tolerance value. Smaller numbers are more sensitive and extract more footsteps. The value is a percentage of foot length. The default value is 0.15. Increase this value to 0.2 or 0.25 if too many footsteps are generated. Working with Motion-Capture Data | 4581 Sliding Distance Creates a sliding footstep when positional tolerance is reached. This value is a percentage of foot length. By default the foot must slide its own distance (100), before a sliding footstep is created. Use this with motion-capture files that contain sliding feet. A sliding footstep can be created manually by setting IK Blend > 0 for a biped foot at a "touch" state key (biped foot first touches a footstep). NOTE Sliding footsteps display as a footstep with a line through the center. Sliding Angle Creates a sliding footstep when rotational tolerance is reached. This value is in degrees. The default is set high (360 degrees), the foot must make a complete turn before a sliding footstep is created. Use this with motion-capture files that contain feet that pivot, as in a dance motion. NOTE Sliding footsteps display as a footstep with a line through the center. Only Extract Footsteps Within Tolerance Turns on Z -axis Tolerance. These controls filter out footsteps that do not fall within a given range of the ground plane. Use this when filtering motions, such as hopping or pitching a baseball, in which a foot might come off the ground and remain stationary, but its position is not intended as a footstep. ■ Tolerance Value is a percentage of leg length. ■ From Z Level Set a Z value (ground). Flatten Footsteps to Z=0 Moves extracted footsteps to Z=0. Use this to flatten out minor differences in the height of the extracted footsteps. 4582 | Chapter 17 character studio Prop Bone In 3ds Max, the CSM marker file format supports a prop bone in either or both hands (left, right, or middle). There are nine additional markers for the top, bottom, and middle of the three prop types. If the software detects these tracks, it creates a dummy helper on page 2615 object. The length of the prop is the average distance between the top and bottom prop marker during animation. The prop will be oriented in the plane of the three prop markers, and its origin will be at the bottom prop marker. The dummies are named bip01prop, bip02prop, and so on. If a prop of that name already exists, its animation and size is reset upon loading the CSM file. The Marker Display dialog contains a check box for toggling display of the prop markers. The prop track names are LPRPB, LPRPM, LPRPT, MPRPB, MPRPM, MPRPT, RPRPB, RPRPM, and RPRPT. These stand, respectively, for left prop bottom, left prop middle, left prop top, middle prop bottom, middle prop middle, middle prop top, right prop bottom, right prop middle, and right prop top. You can change the track names by editing the MNM file. The props don't necessarily have a relation to the left and right hands. For example, a prop could be a hat. Working with Motion-Capture Data | 4583 Motion Capture Rollout Create or select a biped. > Motion panel > Motion Capture rollout The tools on the Motion Capture rollout on the Motion panel are typically used for working with raw motion-capture data. You can also load standard BIP files using Load Motion Capture File. For example, you might do this if you want to loop the motion. This rollout includes tools for: ■ Batch conversion of motion-capture files. ■ Converting the motion-capture file stored in the motion capture buffer. ■ Pasting one frame of motion-capture data from memory to selected biped limbs. ■ Displaying raw motion-capture data as a stick figure. ■ Displaying raw motion-capture trajectories. The buttons in the bottom row are used mainly with marker files, although the calibration controls also work with raw BVH files. Import, calibrate, and filter marker files (CSM) using tools on the Motion Capture rollout. Markers are placed on an actor during motion capture to identify joints; calibration lets you adjust the biped relative to the original marker positions if necessary. Load only raw marker files with no key reduction or footsteps to enable marker calibration controls. NOTE For BVH and CSM file specifications, see the BVH.rtf and CSM.rtf documents on the program disc. Motion-Capture Buffer Raw motion data is automatically stored in the motion-capture buffer when files (CSM, BVH, and BIP) are loaded using Load Motion Capture File on page 4588. This buffered raw motion data is independent of the biped motion in your scene, and can be used in various ways: ■ Use Convert From Buffer on page 4589 to try alternate filter settings quickly; this saves you from having to browse for the same file. ■ After importing a BVH or BIP file using footstep extraction and key reduction, you can use Paste From Buffer on page 4590 on selected biped limbs (and COM) to paste keys from the raw motion-capture data to the filtered data; do this if critical motion has been lost in the filtering process. 4584 | Chapter 17 character studio ■ If you specify Load Buffer Only in the Motion Capture Conversion Parameters dialog on page 4592, the motion file is loaded into the motion-capture buffer without altering the biped animation. Use this to paste posture and limb keys from any file onto the biped animation in your scene. When you load a motion-capture file, the motion-capture buffer is loaded with motion-capture data from that file. This buffer is altered during calibration. It is also used to show the motion-capture markers and trajectories. Internally, there is only one motion-capture buffer. It is often large, so its contents are not saved before a file load or a calibration. Therefore, if you undo a motion-capture file load, the contents of the motion-capture buffer do not change. That's why you'll still see old markers and trajectories. It is not possible to undo calibration. Marker Files Unlike a BIP or BVH file that contains limb rotation data, a CSM marker file on page 8037 contains only marker position data. When a raw marker file is imported, only marker position data is buffered in the motion-capture buffer. 3ds Max uses the marker data to extract limb rotation data to position the biped. After using the calibration controls on the Motion Capture rollout to correct biped scale and posture relative to the markers, use Convert From Buffer on page 4589 to filter the raw marker data to key reduce and extract footsteps. NOTE A CSM marker file is an ASCII file. See also: ■ Importing Motion-Capture Data on page 4576 ■ Marker Files on page 8037 Procedures To use Convert From Buffer: A motion-capture file should already be in memory. Use Load Motion Capture File on the Motion Capture rollout to import a motion-capture file if one is not already be in memory. 1 Select a biped. Motion Capture Rollout | 4585 2 On the Motion Capture rollout, click Convert From Buffer to display the Motion Capture Conversion Parameters dialog. 3 Adjust parameters, then click OK. To compare raw and filtered trajectories: 1 Select a biped and turn on Show Buffer Trajectory on the Motion Capture rollout. 2 Click Trajectories on the Display rollout. As you select various biped parts, two trajectories are displayed. The yellow trajectory represents raw motion capture data in the motion capture buffer; the purple trajectory represents the filtered data. To use Show Buffer: 1 Create a biped. 2 Use Load Motion Capture File on the Motion Capture rollout to import a motion-capture file. 3 Turn on Show Buffer on the Motion Capture rollout. A red stick figure appears, representing the raw motion-capture data. Play the animation; the animation of the biped representing filtered motion-capture data and the red stick figure play back together. TIP For a very accurate visual comparison between raw motion capture data and filtered data, toggle Show/Hide Objects on the Display rollout to hide the biped. Toggle Show/Hide Bones in the same rollout to display only biped bones (the yellow stick figure), then play the animation with Show Buffer turned on. The two stick figures move together, and any discrepancies are easily spotted. To learn how to use Show Buffer with the Fit To Existing parameter in Motion Capture Conversion Parameters rollout, see To use Fit To Existing to import a motion capture file on page ?. To import a motion-capture file: 1 Select a biped. 2 If necessary, click Load Marker Name File on the Motion Capture rollout (see MNM Files on page 8045). 4586 | Chapter 17 character studio NOTE This step is not required if the marker or joint names in the motion-capture file adhere to the character studio marker naming convention. 3 Click Load Motion Capture File. The Open dialog opens. 4 Choose a file type: BVH, BIP, or CSM. 5 Select a file and click Open. The Motion Capture Conversion Parameters dialog on page 4592 displays. 6 Select the filter options you want, and click OK. The biped adapts itself to the motion data. If Footstep Extraction is turned on, footsteps appear. NOTE Load raw marker data (No Key Reduction, Freeform) to enable the marker calibration buttons. TIP Use a biped that does not have a mesh attached to it with Physique. Import motion-capture data with the idea of then saving a BIP file that can be used for any character. If skeletal scale information is loaded from a motion-capture file, a mesh with the Physique modifier applied might deform unnaturally. 7 If a marker file was loaded, turn on Show Markers as a visual aid for biped scale and limb correction. If correction is necessary, adjust biped scale first. Keyframe adaptation takes place in order to accommodate a biped scale change. The remaining steps in this procedure are optional, unless you need to calibrate motion-capture files. 8 Click Talent Figure Mode and use Non-Uniform Scale or Rubber Band Mode (on the Biped rollout) to size the biped to the displayed markers. 9 Click Talent Figure Mode again to exit the mode. Key Adaptation takes place when you exit Talent Figure mode. Now, biped limb positions relative to the markers can be adjusted. 10 Align the biped limbs to the markers, if necessary, and then click Adjust Talent Pose to compute the offset for the entire animation. Motion Capture Rollout | 4587 11 Use Save Talent Figure Structure and Save Talent Pose Adjustment to save a size and position offset to a FIG and a CAL file, respectively. Load these files in the Motion Capture Conversion Parameters dialog when you import similar marker files in the future. At this point, you can use Convert From Buffer to extract footsteps and reduce keyframes. Both scale and position adjustments will be incorporated. Save the motion as an optimized BIP file. Interface Load Motion Capture File Key reduce and extract footsteps from raw motion-capture data. Load BIP, CSM, or BVH files. After you open a file, the Motion Capture Conversion Parameters dialog on page 4592 opens. Following are descriptions of settings in the Open dialog. Files of type ■ BIP Filters the raw version of the motion-capture data that ships with 3ds Max. These are in a BIP format. Filter standard BIP files to convert footstep animation to a freeform animation; extract footsteps from a freeform animation; and to loop a BIP file. ■ BVH BioVision motion-capture data file. Contains the “actor’s” skeletal and motion information. Once the motion-capture data is filtered and adjusted, save it as a BIP file for later use. ■ CSM Imports a character studio marker file (ASCII format file). Optionally, load a Marker Name file (MNM), a Talent Structure file (FIG), and a Talent Pose file (CAL) before loading a CSM file. Marker files should be loaded with no key reduction and no footstep extraction to enable the calibration controls. Restructure biped to match file (BIP files only) Turn on to change the biped structure to match the structure stored in the BIP file. The file loads with the stored biped structure. This is an Open dialog option. 4588 | Chapter 17 character studio This option is unavailable when you load a BIP file into a clip or onto a biped that is in Edit Clip mode, because all the clips in the motion flow would have to be adapted. NOTE CSM and BVH files always load with the biped structure stored in the file. Set lowest starting foot height to Z=0 (BIP files only) Sets the lowest starting foot height to Z=0. This is an Open dialog option. Default=on. In 3ds Max, the height of a motion clip can be retained. This is important if you want to retain the height of a motion clip for motions adapted to characters of different sizes. If, for example, the character is jumping off a rock, and you want to retain the Z position of the character, you would turn this option off. Leave this option off if Motion Flow motions must be blended that begin and end at different heights, such as three clips that have the character mounting a bicycle, riding the bicycle, and dismounting the bicycle. Turning off this option can, however, cause a jump in the motion during motion flow transitions. Turn this on for smooth transitions in Motion Flow mode. If adaptation takes place, the height is set so that the lowest foot at frame 0 starts at the Z=0 height. This lines up clips along the Z-axis and creates smooth transitions. First load raw marker data and turn on Show Markers to help you decide if calibration is necessary. If both scale and position calibration are necessary, calibrate scale first (Talent Figure mode) and then calibrate limb position. 3ds Max adapts biped keys after biped scale is changed in Talent Figure mode. Orient the biped limbs relative to the markers and click Adjust Talent Pose to apply this offset to the entire animation. Save Talent Figure Structure and Talent Pose to a FIG and a CAL file, respectively. Load a FIG and a CAL before loading a marker file that requires the scale and position offsets contained in these files. NOTE Calibration files can be loaded in the Motion Capture Conversion Parameters dialog before filtering marker files. Convert from Buffer Filters the most recently loaded motion-capture data. This data is stored in the motion-capture buffer. Displays the Motion Capture Conversion Parameters dialog. The most recently imported motion-capture file is stored in its raw form in the motion-capture buffer. Convert From Buffer provides a quick way to try new conversion parameters in the Motion Capture Conversion Parameters dialog. Motion Capture Rollout | 4589 Paste from Buffer Pastes a frame of raw motion-capture data to the selected parts of the biped. After importing a motion-capture file, you might discover a subtle movement has been lost in the process of reducing keyframes. Paste From Buffer can add a keyframe from the raw motion-capture data to a selected biped body part to restore this motion. Turn on Auto Key before using Paste From Buffer, or click Set Key after using Paste From Buffer to store the new position in a key. Show Buffer Displays raw motion-capture data as a red stick figure. Use Show Buffer to compare raw and filtered motion-capture data. Ideally, the motion of the biped and the red stick figure are very similar. If this is not the case, alter the filter parameters and import the motion-capture file again, or select a biped object and use Paste From Buffer at selected frames to restore the lost motion. Raw motion-capture data is buffered for the currently loaded or most recently imported motion-capture file, allowing easy comparison of the raw and filtered motion data. Show Buffer displays a red stick figure representing the raw buffered data; compare this to the filtered motion of the biped during playback. Show Buffer Trajectory Displays buffered raw motion-capture data as yellow trajectories for the selected biped body parts. Use Show Buffer Trajectory to display a trajectory based on the buffered raw motion-capture data for any biped body part. Use this in combination with Show/Hide Trajectories on the Display rollout to see how closely the raw and filtered data match. This assumes a motion-capture file has been imported. Batch File Conversion Converts one or more CSM or BVH motion-capture files to filtered BIP format. Displays the Motion Capture Batch File Conversion dialog on page 4601. Talent Figure Mode After loading a raw marker file, turn on Talent Figure mode to scale the biped relative to the markers. Calibration for the entire marker file takes place when you exit Talent Figure mode. Keyframe adaptation takes place in order to accommodate the new biped scale; because of this, you should adjust the biped scale before adjusting the biped position relative to the markers. 4590 | Chapter 17 character studio Use Rubber Band mode on the Biped rollout and Non-Uniform Scale to size the biped in Talent Figure mode. Ideally, you will not need to use this feature. When loading a motion-capture file, 3ds Max attempts to extract the appropriate figure scale from the given data. Use Talent Figure mode only if the extracted scale of the biped doesn’t match the scale of the original talent. Even minor differences in scale will alter the motion. NOTE Calibration controls are enabled only when a marker or BVH file is imported in its raw form. Do not use key reduction or extract footsteps when you import a marker file for the first time. Save Talent Figure Structure After changing the biped scale in Talent Figure mode, you can store the changes into a FIG file. Use this file in the Motion Capture Conversion Parameters dialog to adjust marker files created by the same actor. Adjust Talent Pose After loading a marker file, use Adjust Talent Pose to correct the biped position relative to the markers. Align the biped limbs to the markers, then click Adjust Talent Pose to compute this offset for all the loaded marker data. NOTE Calibration controls are enabled only when a marker or BVH file is imported in its raw form. Do not use key reduction or extract footsteps when you import a marker file for the first time. Save Talent Pose Adjustment Saves a Talent Pose adjustment as a CAL file. Save a CAL file after adjusting the biped relative to the markers. A CAL file is used for processing marker files that require the same adjustment. A CAL file can be loaded in the Motion Capture Conversion Parameters dialog during marker file importation. Load Marker Name File Loads a Marker Name (MNM) file to map incoming marker names in motion-capture files (BVH or CSM) to the character studio marker naming convention. Displays the Marker Name File dialog. Load a CSM marker file Browses for a marker file for use with a CSM file. Load a BVH marker file Browses for a marker file for use with a BVH file. Motion Capture Rollout | 4591 When a BVH file is loaded, checks for and reports unknown track names, but loads the file anyway. Reports if any required tracks were not in the file and if so aborts the file load Use Uses the marker name file when importing motion capture files If necessary, load a Marker Name File before loading a BVH or CSM file. Marker Name files are bundled with Character Studio to map marker names in popular third-party marker files. Edit these ASCII files if the marker files you have use unique names for markers. NOTE For BVH and CSM file specifications, see the BVH.rtf and CSM.rtf documents on the program disc. Show Markers Opens the Marker Display dialog on page 4601, with settings for specifying how markers are displayed. Marker and marker names are displayed around the biped. You can use these to spot and adjust discrepancies; for example, the biped elbow position relative to the elbow marker. For information on how to correct these discrepancies, see Talent Figure mode on page 4590 and Adjust Talent Pose on page 4591. Motion Capture Conversion Parameters Dialog Create or select a biped. > Motion panel > Motion Capture rollout > Load Motion Capture File button > Open a file. Load motion capture data. > Motion panel > Motion Capture rollout > Convert from Buffer button Motion-capture and marker data typically have keys at every frame. Filtering motion-capture data reduces keys, making the job of altering or personalizing the motion data much simpler. Other filtering options include footstep extraction, applying the skeletal structure stored in the motion-capture file to the biped, looping the data, importing a portion of the motion-capture file, and selecting tracks to load. Motion-Capture Buffer Any file imported using Load Motion Capture File is stored in its raw (nonfiltered) form in the motion-capture buffer. This buffer is used to try new filtering options with the Convert From Buffer command, and to paste keys from the raw motion-capture data to the biped using Paste From Buffer on the Motion Capture rollout. The Show Buffer command displays a stick figure that represents the buffered data. 4592 | Chapter 17 character studio You can create your own library of imported and optimized motion-capture data by saving .bip files for use with other characters or as part of a longer script in Motion Flow mode. Use a biped that has no mesh attached to it with Physique. You import the data, adjust it to your liking, and save it as a .bip file. You can also run standard .bip files through this filtering process to create loops or to extract footsteps from a freeform animation. NOTE Marker files contain position data. Regular motion-capture files contain joint rotation data. biped.ini Parameters The biped.ini text file in the \plugcfg directory has parameters for smoothing the values of motion-capture joint angles for the body's center of mass, the spine, and the head during import. The lines appear as below: MocapHeightSmoothing=0 MocapBodyHorzSmoothing=0 MocapBodyRotSmoothing=0 MocapSpineSmoothing=0 MocapHeadSmoothing=0 Higher values of smoothing will cause the importer to filter and "smooth out" the data using a gaussian filter, taking out spikes and jerks in the motion. These values must be integers, and can range from 0 to any high number, but practical values would probably always be less than 10. For most cases, smoothing is not needed, so the default values are set to zero. Procedures To use Fit To Existing to import a motion-capture file: Use a motion-capture file that contains footsteps and other motion. A handspring motion would be ideal for this example. 1 Select a biped. 2 Click Motion panel > Motion Capture rollout > Load Motion Capture File. 3 Select a motion-capture file. The Motion Capture Conversion Parameters dialog displays. 4 Set Footstep Extraction to On, then click OK. The motion-capture file loads. Motion Capture Rollout | 4593 5 Select Motion Capture rollout > Show Buffer to display raw motion-capture data as a red stick figure, then click Play. During the “hand spring” period of the playback, the hands on the red stick figure representing the raw motion data touch the ground. The biped, using the filtered data, is positioned higher and cannot reach the ground. Dynamics calculates the biped higher than the raw motion data because the footsteps before and after the handspring are so far apart in time. Creating a freeform period in Track View — Dope Sheet and reloading the same file using the Fit To Existing option will match the biped's position to the motion-capture position during the handspring. 6 Find the Footsteps track for the biped in Track View. 7 Right-click the footsteps area of the Track View Edit window, then select Edit Free Form (No Physics) in the Footstep Mode dialog. 8 Click the “handspring” area between the footsteps. It turns to a solid yellow. Motion-capture data will replace the keys in this freeform period. 9 Reload the same motion-capture file using the Fit To Existing option on the Motion Capture Conversion Parameters dialog. The freeform area created in Track View is replaced with motion-capture data. The biped closely matches the red stick figure during the handspring part of the playback. 4594 | Chapter 17 character studio Interface Motion Capture File Displays the file to be imported. Footstep Extraction Motion capture data can be applied to the biped in one of three ways: ■ None: Freeform No footsteps are extracted. For swimming or flying motion data, footstep extraction is not necessary. For a traditional approach to character keyframing, use this option to keyframe the biped without footsteps or Biped Dynamics; this is essentially a freeform animation. Motion Capture Rollout | 4595 ■ On Extracts footsteps. Direction and style of the motion-capture data are easily edited. Allows changes to the toe structure of the biped after import; footsteps will readjust the character’s motion to maintain correct foot-toe-ground contact at all times, a common problem associated with motion-capture import. Inappropriate “sliding feet” in the motion data are corrected. ■ Fit to Existing Fits to existing footsteps. Use with motion data that has both footstep motion and flying, swimming, falling, or tumbling motions. First load the motion data using Perform Footstep Extraction. Create a freeform period for the flying, swimming, or falling portion of the data in Track View, and then reload the same motion capture file using the Fit to Existing option. The freeform area is loaded with data from the motion capture file without the influence of biped dynamics. Conversion Chooses the type of key processing. ■ Use Key Reduction Reduces keys for simpler key editing. ■ No Key Reduction Does not reduce keys. Use this on files that are already key reduced or if you want to work with all the data in a raw motion-capture file. NOTE Marker files imported for the first time should be loaded with no key reduction or footstep extraction to enable the calibration controls on the Motion Capture rollout. ■ Load Buffer Only Does not apply the data to the biped, but loads the data to the motion-capture buffer only. Use this either to compare your edited version with the original or to paste postures from the motion-capture buffer to the biped in the scene. TIP To compare the filtered data with raw motion-capture data, use Show Buffer on the Motion Capture rollout on page 4584 rather than turning off key reduction. Up Vector Sets the vertical axis used in the motion-capture data. Scale Factor Multiplies the stored talent size by this value and size the biped accordingly. 4596 | Chapter 17 character studio Footstep Extraction group Options here are active when Footstep Extraction is on. Extraction Tolerance Sets the sensitivity of footstep extraction. character studio determines if the footstep is there by checking that the foot does not move beyond the distance determined by the Extraction Tolerance value. Smaller numbers are more sensitive and extract more footsteps. The value is a percentage of foot length. The default value is 0.15. Increase this value to 0.2 or 0.25 if too many footsteps are generated. Sliding Distance Creates a sliding footstep on page 4581 when positional tolerance is reached. This value is a percentage of foot length. By default, the foot must slide its own distance (100), before a sliding footstep is created. Use this with motion-capture files that contain sliding feet. A sliding footstep can be created manually by setting IK Blend > 0 for a biped foot at a "touch" state key (biped foot first touches a footstep). NOTE Sliding footsteps display as a footstep with a line through the center. Sliding Angle Creates a sliding footstep on page 4581 when rotational tolerance is reached. This value is in degrees; the default is set high (360 degrees). The foot must make a complete turn before a sliding footstep is created. Use this with motion-capture files that contain feet that pivot, as in a dance motion. NOTE Sliding footsteps display as a footstep with a line through the center. Only Extract Footsteps Within Tolerance Turns on Z -axis Tolerance. These controls filter out footsteps that do not fall within a given range of the ground plane. Use this when filtering motions, such as hopping or pitching a baseball, in which a foot might come off the ground and remain stationary, but its position is not intended as a footstep. ■ Tolerance Value is a percentage of leg length. ■ From Z Level Set a Z value (ground). Flatten Footsteps to Z=0 Moves extracted footsteps to Z=0. Use this to flatten out minor differences in the height of the extracted footsteps. Motion Capture Rollout | 4597 Load Frames group Start Start importing at this frame. Default is frame 0, the first frame. End Stop importing at this frame. Default is the last frame of the clip. Loop Loop the data by the value set here. This is relative. Succeeding loops start where the previous loop left off. The clips are not blended and may require editing unless the original clip was designed to loop. Use this for clips designed to loop. NOTE This often works best if Footstep Extraction is tuned off. Key Reduction Settings group Key reduction keeps the original motion intact and intelligently filters out more than 80 percent of the keys in the motion-capture file, making the process of altering the biped animation much simpler. Use the Tolerance and Minimum Key Spacing settings to fine-tune key reduction for a specific track (body part). Specify whether or not to filter a track in the Filter column. These settings are available only if Conversion is set to Use Key Reduction. 4598 | Chapter 17 character studio Tolerance Sets the maximum angular or positional deviation for a track. Values are in units of translation for position tracks, and in degrees for rotation tracks. Minimum Key Spacing Sets the minimum number of frames between keys. Tolerance is computed first, then Minimum Key Spacing computes further key reduction. A Minimum Key Spacing value of 10 for the head track ensures that no two keys are closer than 10 frames for this track. Filter Turn off to prevent filtering of the motion capture data into a track. When this is off, there is no key reduction for the track. Set All Forces all tracks to the values set in these fields. Motion Capture Rollout | 4599 Higher values here can determine how much key reduction is possible while preserving the original motion. Limb Orientation group The biped elbow and knee hinge joints are perpendicular to the triangles formed by the shoulder-elbow-wrist and hip-knee-ankle respectively. Resolve errors in the motion-capture data that break this rule by using either the angle or point method. Angle Moves the knee or elbow position to create the biped joint key. Point Rotates the shoulder-elbow-wrist or hip-knee-ankle to create the biped joint key. Auto Auto reads exact hand and foot positions from the motion-capture data; character studio then places the knees and elbows in a natural position. For marker files involving running and walking, this option can clean up the data nearly instantly, regardless of how many markers were used and where they were placed. Talent Definition group Loads a Figure Structure File (.fig) and a Pose Adjustment file (.cal) prior to importing a marker file. Typically you correct a marker file by importing it and adjusting the biped scale and limb positions relative to the markers, then saving a .fig and a .cal file using Save Talent Figure Stucture and Save Talent Pose Adjustment on the Motion Capture rollout. These files can then be loaded in the Talent Definition area when importing marker files created by the same actor in a motion capture session. 4600 | Chapter 17 character studio Figure Structure Loads a .fig file. Pose Adjustment Loads a .cal file. Browse Browses for a .fig or .cal file. Use Use either or both the .fig and .cal files to adjust marker files during a marker file import procedure. Load Parameters Loads a motion capture parameter file (.moc). Save Parameters Saves a motion capture parameter file (.moc). Motion Capture Batch File Conversion Dialog Create or select a biped. > Motion panel > Motion Capture rollout > Batch File Conversion button Converts one or more CSM or BVH motion-capture files to filtered BIP format. Interface Source File Selection Opens a dialog where you can specify motion-capture files to convert. Use Shift+click to select all files between two that you click. Use Ctrl+click to add individual files to the selection. Destination Directory Specifies the directory in which to store the filtered files. Specify Conversion Parameters ... Lets you choose how to specify conversion parameters: ■ Specify Conversion Parameters Once conversion parameters. ■ Specify Parameters For Each File each file. Imported files use a single set of You specify conversion parameters for Marker Display Dialog Create or select a biped. > Motion panel > Motion Capture rollout > Show Markers button Motion Capture Rollout | 4601 The Marker Display dialog lets you specify how markers from .csm files are displayed in the viewports. For further information on markers and .csm files, see Character Studio Marker Files on page 7934. Interface Show Recognized Markers When on, displays the markers that character studio recognizes. ■ On Selected Objects ■ On All Objects Displays the markers on selected objects only. Displays the markers on all objects. Show Prop Markers Enables the display of markers on prop bones on page 4583. Show Unrecognized Markers Displays the markers that character studio does not recognize. 4602 | Chapter 17 character studio Physique Physique | 4603 Use the Physique modifier to attach a skin to a skeleton structure such as a biped. The skin is a 3ds Max object: it can be any deformable, vertex-based object such as a mesh, a patch, or a shape. When you animate the skeleton with skin attached, Physique deforms the skin to match the skeleton's movement. Animating the underlying skeleton enables you to animate a single contiguous model of a character that bends, creases, and bulges about an arbitrary number of joints within the attached skeleton. With Physique, you can define how the skin behaves when it deforms. For example: ■ You can make portions of the skin solid, excluding them from Physique's deformation, though solid portions still move along with the root node of the skeleton they are attached to. These solid portions are said to be root vertices. ■ You can make portions of the skin deformable. They move with the deformation spline, the smooth curve running through the links of the skeleton they are attached to. ■ You can make portions of the skin rigid, directly moving along with the skeleton they're attached to. 4604 | Chapter 17 character studio ■ You can add bulges to simulate bulging muscles. Bulges are controlled by editable cross sections of the skin, and by bulge angles that you set. ■ You can add tendons to distribute the effect of one bone's motion to areas of the skin other than those around the bone itself. ■ You can save Physique data to a Physique (.phy) file, preserving data common to all objects sharing a given Physique modifier. Later, you can reload the data file, either to restore the data that belongs to a particular skin or portion of skin. Physique works with bipeds created and animated using the Biped plug-in, and with 3ds Max hierarchies, including the Bones systems. Physique also works with bones that are not in a hierarchy and splines. See also: ■ Posing the Biped on page 4157 Using Physique Creating a Skin A mesh deformed by a skeletal structure is called a skin. In character studio, Physique is a modifier you apply to a skin to make it deformable by the biped, or by another skeletal structure. The images below show meshes for different skeletons. Using Physique | 4605 4606 | Chapter 17 character studio Meshes for Physique A skin used with Physique can be any 3ds Max object that has vertices or control points. Specifically, a skin can be: ■ An editable mesh or editable poly object. This is the most commonly used type of object for Physique. Often, it has been collapsed from an object with modifiers, or a compound object. ■ An uncollapsed object with modifiers or a compound object. ■ A parametric geometry primitive such as a cylinder. Geometric primitives are useful mainly for simple applications of Physique; for example, a cylinder with two bone links to depict an arm. ■ A patch object. ■ A spline or text shape. ■ A NURBS object. ■ A Free From Deformation (FFD) modifier. Using Physique | 4607 ■ A mesh object you import from another application such as AutoCAD®. TIP Although you can apply Physique to a compound object or an object with modifiers, you should collapse the stack before applying Physique, if possible. This will maximize performance and reduce the amount of work you'll need to do to get Physique working properly. An exception is the Optimize modifier, which can be useful for improving performance when applied below Physique on the stack. WARNING After you collapse a compound or modified object, you can no longer edit it parametrically. If you work extensively with complex meshes of this sort, you can save two .max files: one to contain the original, editable objects and modifiers, and the other to contain only the collapsed mesh. You can create a figure’s skin out of several objects. For example, you could have separate objects for the torso, legs and arms. In this case, select all the objects and apply Physique to all of them at once. Posing the Skin When you create a skin to use with a biped figure, you should pose the arms and legs of the skin in a standard reference pose. 4608 | Chapter 17 character studio Mesh in reference pose for use with bipeds Use the following positions when you create the reference pose: ■ Spread the legs somewhat apart, at a parade rest position. ■ Spread the arms wide, level with shoulder height. The hands should be level with the arms, not dangling: palms facing down, fingers straight and slightly spread apart. ■ Position the head so it will face in the correct direction when you load the biped's at-rest standing pose. If the skin and biped are for a figure that stands erect, position the head normally. If the character stoops forward, for example, a chimpanzee, make the head face upward so that it will face forward after the spine is bent. Using Physique | 4609 As a general rule, create a reference pose that has the limbs outstretched, but otherwise represents the character's natural at-rest posture. Skin Simplicity The degree of detail on the model makes a difference in how well it works for skinning. On one hand, your skin must have a sufficient number of vertices so Physique can deform it smoothly. On the other hand, the fewer vertices the mesh has, the easier it will be for you to adjust Physique for the mesh. In addition, a highly complex mesh can slow your system's performance when working with Physique. If you plan to use an Editable Poly mesh, create the mesh with evenly-sized, rectangular polygons. Avoid using long, triangular polygons, as these do not deform smoothly with Physique. These attributes are particularly important around the hip and shoulder areas. Models with evenly-sized rectangular polygons A common workflow is to create the simplest possible version of the mesh, apply Physique to it, and apply the MeshSmooth modifier above Physique on the stack. This makes Physique as easy as possible to work with, but retains mesh smoothness for rendering. 4610 | Chapter 17 character studio Same models rendered with MeshSmooth applied If you want to use a particular mesh but its polygons violate these guidelines, use 3ds Max to add or delete edges and polygons as needed before applying Physique to the mesh. Usually, these rules are not so important for the facial area of the model, where little deformation will take place with Physique. For example, the character shown below was originally modeled as designed, but with no regard for the best polygon distribution for Physique. The numerous odd-shaped polygons (especially around the hips), and the pose with the legs too close together, would have made this model difficult to work with after Physique was applied. Using Physique | 4611 The model was altered to work better with Physique by deleting edges and vertices, and reshaping many of the polygons in the hip area. The model was also altered to make the character assume the reference pose. 4612 | Chapter 17 character studio After MeshSmooth is applied to the simplified mesh, renderings of the two models look identical. However, the second model works much better with Physique. Using Physique | 4613 Using Physique with a Biped The skeleton to which you attach a skin using Physique can be a 3ds Max hierarchy, bones in a hierarchy, bones not in a hierarchy and splines. Physique deforms the skin based on the relative position of the bone or links in the hierarchy. Specifically, it uses the length of each link and the angle between two connected links; it can also use the scale of a link. The skeleton hierarchy can also be a 3ds Max system object that defines a behavior as well as a hierarchy. Three kinds of objects that are especially useful with Physique: ■ Bipeds are provided by character studio. ■ Bones are a standard Systems object provided with 3ds Max. ■ Splines can be used rather than a “bones” hierarchy. You create both bones and bipeds using the Systems object category on the Create panel. Bones are useful for facial animation, a face with moving lips for example, or for non-bipedal characters. Bipeds are the system of choice for humanoid and other bipedal characters. Usually you create the Physique skin before you create the skeleton, because you must adapt the skeleton's dimensions to the dimensions of the skin, in order to optimize vertex assignment to the links in the hierarchy. 4614 | Chapter 17 character studio This Physique hierarchy is created with dummy objects linked to each other. Physique mesh with a biped skeleton. Using Physique | 4615 Physique can use a spline to defrom the mesh. Using Physique with 3ds Max Bones 3ds Max bones with or without the IK Controller can be used with the biped for various effects. They can be used with Physique to add extra links and envelopes for any character, or to animate assemblies on a robot or mechanical character. Bones can also be added to animate extra appendages, a hat, a jaw and so on. NOTE If 3ds Max bones using the IK Controller are linked to the biped, the Auto Key button must be left on while the biped is positioned. 4616 | Chapter 17 character studio Two examples of compressible bones. In the top image, 3ds Max bones are used to animate the linked piston assemblies. The bottom image shows 3ds Max bones used for added control when Physique is applied. In both cases the bones compress automatically as the biped is positioned. Using Physique | 4617 Bones That Compress One way to use bones with the biped is to use the Select and Link tool on the 3ds Max toolbar to link the root of the bone to one part of the biped and have the bone End Effector follow another part of the biped. As the biped moves these bones compress and expand. In the image of the mechanical leg, piston objects are linked to the bones. As the bones compress and expand, they also animate the linked piston assembly. As the bones compress and expand in the abdominal area in the bottom image, the envelopes created by Physique for the bones compress and expand to animate this area on the mesh. IK Solution In the IK Controller Parameters rollout, you specify the accuracy of the IK solution and the frame duration of the solution. For bones that compress, you generally want an accurate solution to ensure that the bone follows the end effector perfectly, without any drift. In the image of the rollout Position has a value of 0, the least amount of allowable distance (Rotation is at its default value of 1, the Rotation End Effector is not used in this example). Iterations is set high, ensuring that that the solution is accurate, even if the character is scaled down a great deal. Start and End Time should span the animation. There are many ways to use bones with the biped. You could automatically animate the bending of a hose that is attached to a character’s shoulder and mouth when the biped head rotates, for example. Bones attached to the biped 4618 | Chapter 17 character studio create links and envelopes when Physique is applied; these extra Physique links offer localized skin control if necessary. Procedures To make compressible bones (bones with end effectors): 1 Create a bones system with end effectors. 2 Link the root of the bone to the appropriate biped object. 3 On the Motion Panel specify an End Effector Parent. 4 Specify another part of the biped. 5 On the Motion Panel set the Position Threshold to 0. 6 On the Hierarchy panel > IK > Sliding Joints rollout, turn on all the sliding parameters. 7 Animate the character. The bones expand and compress with the motion of the character. To add a bone after Physique is applied using Reinitialize: 1 Turn on Figure mode. 2 Add a bone where it is needed. Using Physique | 4619 3 Link the root node of the bone to the biped. 4 On the Physique rollout, click Reinitialize. 5 On the Physique Initialization dialog, click Initial Skeleton Pose and then click Include New Bones. Vertex Link Assignment turns on also. 6 Click Initialize. 7 Adjust envelopes in Sub-Object Envelope. 8 Turn off Figure mode. If you want the end of the bone to follow the biped, select the bone and delete the bone end effector in the Motion Panel This bone is used to animate the character's nose. To add a bone after Physique is applied using Add (Add Bone): 1 Turn on Figure mode. 4620 | Chapter 17 character studio 2 Add a bone where it is needed. 3 Link the root node of the bone to the biped. 4 On the Physique Bones rollout, click Add. 5 In the viewports, click a bone. Repeat until all bones are added. 6 Adjust envelopes. 7 Turn off Figure mode. Using Physique with 3ds Max Objects The skeleton to which you attach a skin using Physique can be a 3ds Max hierarchy, bones in a hierarchy, bones not in a hierarchy, and splines. Physique deforms the skin based on the relative position of the bone or links in the hierarchy. Specifically, it uses the length of each link and the angle between two connected links; it can also use the scale of a link. The skeleton hierarchy can also be a 3ds Max system object that defines a behavior as well as a hierarchy. There are two kinds of objects that are especially useful with Physique: ■ Bones are a standard Systems object provided with 3ds Max. Bones can either be hierarchically linked or floating. ■ Splines can be used rather than a “bones” hierarchy. You create bones using the Systems object category on the Create panel. Bones are useful for facial animation, a face with moving lips for example, or for non-bipedal characters. Usually you create the Physique skin before you create the skeleton, because you must adapt the skeleton's dimensions to the dimensions of the skin, in order to optimize vertex assignment to the links in the hierarchy. Using Physique | 4621 This Physique hierarchy is created with dummy objects linked to each other. Floating Bones Floating bones are bones that are not linked together and know nothing about each other. By adding floating bones to Physique, you can deform the mesh by animating the bones. This is in contrast to using Attach To Node and clicking the root of a hierarchy, like the biped pelvis. For Attach To Node to work all the bones should be linked together. 4622 | Chapter 17 character studio Spline-Based Physique Deformation In addition to the biped and 3ds Max bones, Physique supports spline and NURBS curves for mesh deformation. By animating vertices on a spline, you can animate the mesh. You can use this technique for facial animation or to deform any mesh. To control a mesh with a spline: 1 Place a spline inside a mesh. 2 Select the mesh and add the Physique modifier. 3 In the Physique Floating Bones rollout, click Add and select the spline in the viewports. 4 Select the spline, turn on Vertex Sub-Object, and move the spline vertices to animate the mesh. Using Physique | 4623 See also: ■ Using Physique with a Biped on page 4614 4624 | Chapter 17 character studio Applying and Initializing Physique After you have created a skin and a skeleton, and fitted the skeleton to the skin, you apply the Physique modifier to the skin. The process entails these steps: ■ Selecting the mesh ■ Turning on Figure mode (if a biped is used) ■ Adding the Physique modifier to the stack ■ Attaching the Physique skin to the skeleton ■ Initializing Physique See also: Physique Rollout on page 4671 ■ Procedures To attach a mesh to a bones hierarchy using Physique: 1 Select or create a bones hierarchy. 2 Position the bones hierarchy inside the mesh. TIP When you use a bones hierarchy with Physique, use frame 0 as your "figure mode." Don't include frame 0 in your animation. Use it as the place where you position the bones and fit them to the mesh. 3 Select the mesh. 4 Go to the Modify panel. Use the Modifier List to apply Physique to the mesh. 5 Click to turn on Attach To Node. In a viewport, select the root bone in the bones hierarchy. Using Physique | 4625 The Physique Initialization dialog on page 4680 is displayed. 6 Click Initialize, accepting the default settings. When you use Attach To Node to attach a Physique skin to a hierarchy, the Physique Initialization dialog appears. NOTE This dialog also appears when you want to reset Physique settings by clicking Reinitialize in the Physique rollout. Physique initialization settings affect how envelopes are created and blending is handled. The Link Settings, Joint Intersections, and Cross Sections rollouts are used later to change default settings globally. For this reason, the Vertex-Link rollout is open when the dialog appears. This is where you determine the following default settings: ■ Whether envelopes should be used to manage the vertex-to-link assignments ■ Whether Physique uses deformable or rigid envelopes to manage the vertex-to-link assignments ■ Number of links considered for blending Previewing Motion After you have attached the skin to the skeleton, Physique deforms the skin when the skeleton is animated. From this point on, you can preview animation to see how the Physique skin deforms and whether you can use it in a finished animation or need to correct and refine it further. Very likely, you'll need to adjust some of the default envelope settings to ensure all vertices are being properly handled. It's by moving the skinned character in the viewports that you'll see vertex assignment problems. 4626 | Chapter 17 character studio A stray vertex on the right elbow not encompassed by an envelope. See the Envelope Sub-Object on page 4717 topic for procedures and interface. TIP Physique skins are usually too large for 3ds Max to play them back in real time at 30 frames per second. However, speed improvements in character studio will allow fluid motions of many skinned meshes. When you attempt to play back at 30 fps, 3ds Max may drop frames during playback, which makes it hard to see how Physique has animated the skin. Use the Time Configuration dialog to turn off real time playback. The animation plays back more slowly than usual, but it plays every frame. TIP You can also specify which elements of the characters not to display in the viewports, and thereby speed up redraw. See Physique Level of Detail Rollout on page 4675. For a skin attached to a complicated skeleton such as a biped, you will almost always need to correct some vertex assignments before the skin animates correctly. Most often, you'll do so simply by adjusting the envelope's shape. See . Using Physique | 4627 Envelopes and Vertex Assignments Envelopes Envelopes are Physique's primary tool to control skin deformation. Envelopes define an area of influence about a single link in the hierarchy and can be set to overlap adjacent links. Vertices that fall in the overlap area of the envelopes are weighted to produce smooth blending at joint intersections. Each envelope comprises a pair of inner and outer bounds, each with four cross sections. Envelopes Deformable and Rigid Envelopes There are two envelope types: deformable and rigid. ■ Deformable envelopes influence vertices they encompass to follow the deformation spline created through the hierarchy. Only the vertices encompassed by deformable envelopes can be affected by bulge angles or tendons. 4628 | Chapter 17 character studio ■ Vertices in a rigid envelope are linked to the node (the bone) and move in an immobile relationship to the link. Vertices in a rigid envelope, however, are deformed (blended) in the overlap area of other envelopes. There is a twist parameter in Link Sub-Object that can be enabled in a rigid envelope. This allows the rigid envelope to twist along the length of the link. Using Physique | 4629 Deformable envelopes (above); Rigid envelopes (below) Typically, you use deformable envelopes when you attach a mesh to the biped pelvis to produce a soft, flexible skin. Later you reassign certain links, such as the character's head, to the rigid envelope to minimize the deformation. For special cases, you can turn on both deformable and rigid envelopes for the same link. This advanced feature allows you to average the effect of the two types of skin deformation for additional firmness in the skin. The forearms and legs are sometimes good candidates for this. 4630 | Chapter 17 character studio Blending Between Links Blending between envelopes controls deformation. Blending controls specify the influence of overlapping envelopes on vertices contained within the overlap area. By the actual shape of adjacent envelopes, you can control the degree of influence each has on blending at the overlap area. You can further control the number of envelopes that participate in the blending effect, or whether no blending takes place at all. Where you specify no blending, a vertex in an overlap area is influenced by a single link only. Using Physique | 4631 Inner and Outer Bounds Inner and outer bounds Where a vertex falls within the inner and outer bounds determines the percent of influence of the attached link(s). Vertices that fall within the inner bound have a weight of 1. Vertices that fall between the inner and outer bound have a weighted value that falls off to 0 at the outer bound. Vertices are color-coded in the viewports according to their weight; the color is based on parameters you specify in the Blending Envelope Display Options Dialog on page 4706. See also: ■ Envelope Sub-Object on page 4717 Adjusting Default Envelope Shape When you want to address vertex-linking anomalies, the first step is to resize or reposition the envelope about the problem link. Most often, the problem 4632 | Chapter 17 character studio is an envelope that istoo small to surround, and thereby influence, certain vertices. This can happen because your biped character misaligns slightly with the mesh, or the link lengths used to create envelopes with unbounded bones systems links were insufficient to surround all vertices attached to the link. Another potential source of problems is overlapping inner bounds. This can sometimes create too strong a deformation at the joint. You'll note problems with vertices as you preview motion. It sometimes looks like vertices got left behind when the link they were supposed to be attached to moves in 3D space. In fact, that's just what is happening: they weren't assigned to any link at all, and remain where they were at the initial skeletal pose: the pose of the mesh and its skeleton at the time Physique was applied and initialized. The other case would be vertices being moved too much, resulting in a dent in the mesh. You'd fix this by decreasing the overlap of the envelopes affecting a joint. Using Physique | 4633 Stray vertices (above) reassigned to correct link(s) by modifying envelope shape (below). See also: ■ Envelope Sub-Object on page 4717 ■ Fine-Tuning Envelopes on page 4637 Procedures To adjust default envelope shape: 1 In the Selection Level group of the Blending Envelopes rollout, turn on Link. In a viewport, select any link. 2 In the Parameters group, turn on the Inner, Outer or Both option and then increase the value of Radial Scale until the outer envelope just surrounds the character mesh. NOTE With Both turned on, both the inner and outer bounds scale together. 4634 | Chapter 17 character studio 3 Increase the Parent Overlap value until the inner (red) envelope appears through the mesh. 4 If necessary, decrease the Falloff value to strengthen this envelope. To adjust envelopes around the biped’s pelvis: The Biped Triangle Pelvis option was used in this model. Triangle Pelvis creates additional links from the legs to the lower spine. Top: The default envelope from the pelvis to the lower spine object is too small. Middle: Mesh appears “scrambled” because the pelvis doesn't control all the vertices that surround it. Using Physique | 4635 Bottom: Increasing the envelope size corrects the mesh problem in the pelvis area. 1 In the Selection Level group, turn on Link. In a viewport, select the middle link. 2 In the Parameters group, turn on Both, and then increase the value of Radial Scale until the outer envelope just surrounds the mesh in pelvis area. NOTE With Both turned on, both the inner and outer bounds scale together. 3 Increase the Parent Overlap value until the inner (red) envelope appears through the mesh. 4 If necessary, decrease the Falloff value to strengthen this envelope. 5 To finish correcting the pelvis area, adjust the Overlap of the thigh and buttock envelopes. To select and edit cross sections: 1 On the Selection Level rollout, turn on Cross Section. 2 In the Envelope Parameters group, turn on Inner or Outer if you want to work with cross sections solely in that part of the envelope. Turn on Both to be able to work on both Inner and Outer cross sections at the same time. 3 Turn on Select Object on the Main toolbar, and in a viewport, click the cross section you want. As you move the cursor over a selectable cross section, it changes to a plus shape, letting you know the object at that location is selectable. By default, selected cross sections are yellow. (You can customize this color with the Blending Envelope Display Options dialog on page 4706.) You can use Ctrl+click to add other cross sections to the selection set. 4 Use Radial Scale to resize the selected cross section, and the transform tools to move, rotate, and scale it. 4636 | Chapter 17 character studio 5 To move to the adjacent cross section within the current bound, click Next or Previous. TIP You can also use the Control Point level to individually transform cross section control points. To copy an envelope and its settings to a mirrored link (for example, from one thigh to the other): 1 Select the source link. 2 In the Edit Commands group, click Copy. The envelope settings are saved in a buffer. 3 Select the mirror link, and then in the Edit Commands group, click Paste. The envelope is applied to the opposite link, but without mirroring. It is now the currently selected envelope. 4 In the Edit Commands group, click Mirror. The selection flips about the mirror axis. 5 Use the Rotate transform on the Main toolbar to rotate the selection to its final orientation. Fine-Tuning Envelopes Once you have adjusted inner and outer bounds of envelopes at the Envelope Sub-Object level, you may find you need still finer control: choose either the Cross Section or Control Point selection level in the Blending Envelopes rollout. Using Cross Sections Both inner and outer envelope bounds are like hulls about ribs, the cross sections. For each envelope, there are by default four cross sections you can use to alter the envelope's shape. Using Physique | 4637 Envelope cross sections can be scaled and moved. 4638 | Chapter 17 character studio Using Control Points By default, each cross section consists of four control points. You can use these control points to alter the shape of a single cross section. The control points define the shape (perimeter) of the section. Moving one point affects the shape between itself and its neighbors on each side. Rotating and Scaling Control points are internally positioned using cylindrical coordinates, that is a distance from the link at some angle around the link. To move a control point, you must scale it to the correct distance from the link and then rotate it into the orientation you desire. The move tool actually serves the dual function of rotating and scaling at the same time. Using Physique | 4639 By moving a control point the envelope is also scaled. See also: ■ Envelope Sub-Object on page 4717 Customizing Vertex Assignments Use Vertex sub-object controls to: ■ Override vertex-link assignments currently in effect. ■ Change the blending type and weight. ■ Assign vertices to their links yourself, bypassing Physique's envelope method for vertex-link assignment. You might want to reassign link assignments in effect about adjacent fingers, for example, even after working to reshape envelope size and position. You may find that you need greater control in areas where adjacent envelopes overlap: perhaps movement in the ring finger is causing unwanted movement 4640 | Chapter 17 character studio in some vertices for the middle finger. You'd use Vertex sub-object controls to remove ring-finger vertices from the middle finger links, in effect reassigning them solely to the ring-finger links. When you choose Vertex as the sub-object to edit in the Physique modifier, the Physique Selection Status and Vertex-Link Assignment on page 4753 rollouts appear. Envelope Display Options Interactive Redraw By default Interactive Redraw, an option in Envelope and Bulge sub-object levels, is turned off. After changing an envelope the mesh is refreshed on mouse up. Turn this option on for interactive viewing of how envelopes and bulges are affecting vertices. As you adjust the envelopes, the vertices move to show the effects of the resized envelopes Changing Display Options You can change the display settings for envelopes and their component parts. Click the associated color sample to open the Color Selector and change color setting for: ■ Inner and outer bounds on both deformable and rigid envelope types. ■ Differently weighted vertices, as they fall within the inner bound, or between it and the outer bound. ■ Selected cross sections and control points. ■ Turn on or off the associated check box to determine whether any of the above envelope components are displayed. ■ Number of sides for inner and outer bounds. The default is 4. Choose Initial Skeletal Pose on page 4657 if you want to work in the position of the mesh and its skeleton at the time Physique was applied. Returning to this pose can be useful if the display becomes confused with the effects of unassigned vertices when the character moves through an animation. See also: ■ Fine-Tuning Envelopes on page 4637 Using Physique | 4641 Working with Deformable Envelopes Once you've got the deformable envelopes working the way you want to control overall skin deformation, you may want to adjust the finer aspects of skin control: ■ Skin bending, twisting, sliding, and scaling about single links are controlled at the Link sub-object level. See Adjusting Link Parameters on page 4644. ■ Link sub-object primarily controls the deformation spline on page 7949. You use Link sub-object options to affect the shape of the spline and the smoothness of the skin. See Adjusting Link Parameters on page 4644. ■ Crease behavior where links meet and bend is controlled at the Link sub-object level with Joint Intersection on page 4734 parameters. ■ Muscle bulges as your character's limbs move through a range of motion are controlled at the Bulge sub-object level. See Creating Bulges on page 4649. ■ Skin stretching, generally between non-contiguous links, is controlled at the Tendon sub-object level. Tendons provide a secondary movement (a pulling or stretching) based on links farther up or down the skeleton. See Creating Tendons on page 4653. See also: ■ Link Sub-Object on page 4725 ■ Bulge Sub-Object on page 4737 ■ Tendons Sub-Object on page 4747 Working with Rigid Envelopes Vertices influenced by a rigid envelope follow the link itself rather than the deformation spline, like deformable vertices do. Low vertex-count models used for games are typically connected to the skeletons with rigid envelopes to simplify export to game engines. In such a case, each vertex can be simply described as assigned to a specific link. It can be located by giving a length along the link, a distance from the center of the link, and an angle around the link. As the link is transformed, all the vertices assigned to the vertex are 4642 | Chapter 17 character studio uniformly transformed. This makes it simple for game engines to move the character's skin. The vertices move equally with the controlling link, so the skin appears rigid. For instance, in the case of a flexing arm, the skin between the wrist and elbow tightly follows the movement of the forearm, with no change in the spacing between vertices. The skin between the elbow and shoulder tightly follows the upper arm. Vertices around the elbow influenced by both links, smoothly blend to an average position between the two changed links. Rigid and deformable envelopes can be mixed on a given character. You might, for instance, use deformable envelopes for most of the character, but choose rigid for the head and for a suit of armor around the torso. NOTE In Link sub-object, you can turn on twisting for rigid envelopes. As the wrist twists the vertices on the forearm will twist also. See also: ■ Envelope Sub-Object on page 4717 Working with Both Deformable and Rigid Envelopes You can assign both Deformable and Rigid to a given link. For example, you might assign both to the shins, and size the envelopes differently to gain the benefits of both. First, size the deformable envelope to affect the whole lower leg area and smoothly transition into the thigh and ankle areas. Next, you define a smaller rigid envelope to encompass the stiff unbendable section of the shin. Increase the weight of the rigid envelope to balance its effect against that of the deformable envelope. Some users might use both envelopes as a way to have a bone affect two completely separate regions of a mesh. The envelopes are scaled so that the deformable envelope influences certain vertices on one side of the link and the rigid envelope affects the other side. See also: ■ Envelope Sub-Object on page 4717 Using Physique | 4643 Adjusting Link Parameters Physique creates a continuous spline through each of the joints in the hierarchy. The spline is represented by an orange line within the object. It maintains continuity through each joint: as a joint angle changes, the spline passing through the joint remains a smooth curve. Physique relies on the deformation spline to obtain smooth bends of the skin object. Physique offers bias and tension controls to adjust the shape of the deformation spline. Links depicted by deformable spline. 4644 | Chapter 17 character studio You can use controls at the Link sub-object level on page 4725 to adjust the skin behavior about a given link. These link parameters define how the skin deformation behaves, relative to the motion of the underlying skeleton. There are four kinds of link parameters on page 4727: ■ Bend parameters affect the curvature of the deformation spline through the joint at a given link. As a result the skin deformation can range from more angular at the joint to more like a stiff rubber tube. ■ Twist parameters control how the skin deforms when a joint rotates along its length, as in turning a doorknob. Consider, for example, winding up the rubber band on a toy airplane propeller; Twist parameters determine how the twist is distributed along the link and across the joint. Twist parameters apply to link rotation whose axis is the same as the axis along the length of the link. ■ Sliding parameters control how the skin moves along the length of a link as a joint rotates. On the outside, the side where the angle is greater than 180 degrees, the skin moves toward the joint. On the inside, the side where the joint angle is less than 180 degrees, the skin moves away from the joint. The sliding effect tightens the outside to keep detail at the joint and prevent the facets of the mesh from moving apart. It relaxes the inside to prevent the mesh from bunching up at the joint. ■ Radial Scale parameters affect the influence on the skin caused by scaling links of the skeleton. Certain settings, such as Breathe and Stretch, react to scaling of the skeleton, but only with standard 3ds Max bones or a 3ds Max hierarchy. NOTE Bipeds and 3ds Max IK controllers don't support scaling. Link Scale provides a way to globally scale all the vertices influenced by the link. CS Amplitude scales the effect of bulge cross sections across the entire link. It can be used for animated scaling of the bones or for general mesh adjustments. The intent is not to edit the character itself, but rather the effect the bones have on it. You set Link parameters at the sub-object level, in the Physique Link Settings rollout on page 4727. Using Physique | 4645 Partial Blending and Weight Assignments Most often, you will want to use envelopes to correct the way skin behaves as the biped moves. However, you can override envelopes by manually assigning vertex properties. For example, you can remove the influence of inappropriate links from selected vertices. You can also change the weight distribution between links for a single vertex by using type-in weights. In Cases where No Envelopes Use Partial Blending (the Default) Vertex v is assigned to links l1, l2, and l3, and the weights for these links are: w1 = 0.2, w2 = 0.3, and w3 = 0.4. In a non-partial blended case, the sum of these vertex weights is w1 + w2 + w3 = 0.9 (less than 1.0). With partial blending off, Physique will normalize the weights so they sum to 1.0. For example: w1' = w1 / w1+w2+w3 = 0.2/0.9 = .2222222... w2' = w2 / w1+w2+w3 = 0.3/0.9 = .3333333... w3' = w3 / w1+w2+w3 = 0.4/0.9 = .4444444... so w1'+w2'+w3' = 1.0 In Cases where All Envelopes Use Partial Blending The weight fill-in for vertices with a weight less than 1 will always fill with the weight of the root. Whenever a vertex is assigned to a group of links, all of which are partially blended, then the remaining weight will be assigned and blended with the root link. This works well for a case where you want partial deformation falling off to no deformation. An example would be a static head, where you are deforming the head for facial expressions, but the head itself remains in place. For example: vertex v is assigned to links l1, l2, and l3. The weights for these links are: w1 = 0.2, w2 = 0.3, and w3 = 0.4. The sum of these vertex weights is w1 + w2 + w3 = 0.9 (less than 1.0). We need an additional fill-in weight (wf). The fill-in weight is determined by 1.0 (w1+w2+w3) = 0.1, or 10%. Physique fills in with weight wf from the root (leaving the vertex partially undeformed). 4646 | Chapter 17 character studio The resulting deformation will be w1*l1 + w2*l2 + w3*l3 + wf*root. The root portion of this deformation is essentially an undeformed portion that simply follows the root of the skeleton. In Cases where Some Envelopes Use Partial Blending and Some Do Not The vertex weight fill-in in overlap areas will be based on the percentage of partial and non partial weights. For example, If the total weight of non partial links is 80% of the total summed partial and non partial weight, then 80% of the fill-in will be more of the non partial deformation. The remaining 20% fill-in will come from the root. Example: If Vertex v is assigned to links l1, l2, and l3, the weights for these links are: w1 = 0.2, w2 = 0.3, and w3 = 0.4. Let's assume l1 and l2 are nonpartial, and l3 is partial. The nonpartial weight is w1 + w2 = 0.5; the partial weight is w3 = 0.4; the nonpartial weight is 0.5/(0.5+0.4) = .555555, or 56%; and the fill-in weight is still (1.0 - .9) or wf = 0.1. The program fills in with 56% of wf with more of the nonpartial blended links. The remaining 44% of wf is filled in with the root as in the partial blended case. This provides a smooth transition between the partial and nonpartial links. Bulges For some animations, simply attaching the skin and correcting its vertex assignments results in an animated skin you can use in final renderings. For other animations, you might need to give the skin more realistic movement, for example, muscles that bulge. Physique lets you simulate an underlying musculature for the skin by adding tendons on page 4652 and bulges: ■ Bulges change the skin's profile to simulate bulging muscles. You create the bulge by establishing bulge angles, relationships between cross-sectional slices of the skin and specific poses of the skeleton joint. Imagine a cross section to be a slice through the skin's mesh, perpendicular to the link. By making changes to cross sections, you in turn distort the shape of the mesh. Bulges in your character can be constructed by associating certain poses with related changes to the cross sections, in other words by defining bulge angles. Using Physique | 4647 At any joint angle, you can define a bulge angle, and you may define as many bulge angles as needed. The bulge angle consists of the current orientation of the joint together with any defined cross sections. In addition, you can adjust the influence of a bulge angle. Physique considers all the bulge angles as the character moves. The resulting bulge is created by interpolating the effects of the various bulge angles having some influence at the current joint angle. For example, to create a bulging biceps muscle, in Bulge sub-object level, on a selected link, insert a cross section near the center of the upper arm. Pose the arm into a flexed position, with the angle between upper and lower arms at 90 degrees or less. Insert a bulge angle and adjust the cross section so that it distorts the mesh appropriately. In the viewports and in the Bulge Editor on page 4687, you can edit the shape of the bulge to look like a flexed biceps muscle: higher and wider above the bone than below it. Now as the elbow bends from a straight orientation up and toward the shoulder, Physique bulges the biceps appropriately. see Creating Bulges on page 4649 for more information about creating bulges. Because bulges are optional, you can approach Physique animation in a couple of ways: ■ Apply only as much detail as you need to get the effect you want for a particular scene in your animation. This is probably the best approach when the Physique animation is meant to be used only once, or is not the main focus of the animation. ■ Define a fully deformable character, with bulges for its entire range of motion. This is probably the best approach when you intend to reuse the Physique character in an ongoing series of animations, for example, or in a video game that has a variety of character action. See also: ■ Bulge Sub-Object on page 4737 4648 | Chapter 17 character studio Creating Bulges Bulges simulate bulging muscles. Physique creates bulges based on bulge angles and cross section shapes you specify, not on keyframe settings. You create a bulge by: ■ Reposing the character to a position where the bulge will have its greatest effect. This can just be a matter of using the time slider to scrub to that place in a loaded motion file. ■ Setting a bulge angle between two links, the currently selected link and its child link in the hierarchy. The bulge angle is the angle of the joint where the bulge has its full effect. When the joint has a different angle, Physique interpolates so the bulge can grow as the joint flexes toward that angle. See Setting Bulge Angles on page 4651 for more information. NOTE The resulting bulge for any given frame in an animation is determined by the interpolated effects of all bulge angles for the link, based on the relationship of each bulge angle to the current joint angle. Bulge angles are not directly associated with keyframe parameters, but are relative to the skeleton's behavior. Using Physique | 4649 Bulge shape is interpolated as joint movement approaches a bulge angle. ■ Creating and shaping the cross sections associated with the bulge angle. A link's cross sections and its profile are spline controls of the shape of the skin. To create and shape cross sections, see Shaping the Bulge on page 4652. Each bulge angle affects both neighboring links. Therefore, each link contains a set of cross sections for each bulge at both its parent and child joint angles. For example, the forearm link can be deformed by bulge angles associated with both the elbow and wrist joints. ■ Adjusting bulge parameters, including the joint intersection parameters. Bulge parameters control the smoothness and the strength of the bulge and are found at the Bulge sub-object level. Joint intersection parameters control how the skin behaves when bulges would overlap each other if there were no collision detection for skin vertices. They are in a Physique rollout for Link sub-objects. See Reinitializing Physique Settings on page 4655. See also: ■ Bulge Sub-Object on page 4737 4650 | Chapter 17 character studio Setting Bulge Angles A bulge angle associates an angle value and a name. By default, each link has one bulge angle whose default name is the name of the link followed by "Bulge 0". The default bulge angle's initial angle value is the angle between the link and its child when you first attach Physique to the skeleton. Bulges are effective because they grow and shrink as the joint moves. The initial bulge angle defines one shape that the skin can deform to; this would normally be like a default musculature. With no other bulge angles defined, the skin would always look like the first bulge angle, regardless of pose. Additional bulge angles provide the other shapes the mesh can deform to. In the simple case of a flexing biceps muscle, one bulge angle defines the relaxed position and another defines the muscle in its flexed pose. Both are exposed so you can add definition to the default character. As in a biceps muscle, a heavily-muscled character might have some shape even in a relaxed pose. This lets you change the baseline without disturbing the original mesh. You can actually use Physique bulge cross sections to model your character. The cross section deformation for a given link is determined by interpolating between the contributions of all bulge angles that affect the link. This includes bulge angles for both the link's parent joint angle and its own (child) joint angle. Each bulge angle's contribution is determined by: ■ Influence (how far away the bulge angle is from the current joint angle rotation) ■ Power (an ease based on the influence of the angle) ■ Weight (the relative strength of the bulge angle) Keep in mind that bulge angles can be set for arbitrary rotations, and are not limited to single-axis hinge joints. See also: ■ Bulge Sub-Object on page 4737 Using Physique | 4651 Fine-Tuning Bulges The Bulge Editor on page 4687 duplicates many of the controls available at the Bulge sub-object level. It gives you a focused, two-dimensional view of the current bulge settings. Shaping the Bulge Once you've inserted the bulge angle, and recorded the angle setting, you then shape the bulge by inserting and adjusting cross sections. You can either move and scale the cross sections, or adjust each one's shape using control points. Adding More Poses to Your Character For more complex body movements, you may need to add bulges for different positions. Overall, you might want to build a generic character that works in a number of situations, regardless of the type of motion. Some examples are: ■ Moving the character into several extreme poses. ■ Putting the arms high over the head and bending them into different positions. ■ Making the character squat and lifting the legs into various positions. ■ Adding bulge angles to the links at places where real muscles would bulge. Once the skin reacts well to the full range of motions, you can then place the character into a less demanding pose and it should work perfectly. Tendons Tendons tie links together, extending the effect of moving one link to another link where the tendon is based. Their effect is similar to that of tendons in a body. For example, raising an arm usually stretches the skin along the same side of the body. To get this effect using Physique, you could base a tendon on a spine link, then attach it to the upper arm or collarbone, so when the arm lifts, the skin around the torso stretches as well. 4652 | Chapter 17 character studio see Creating Tendons on page 4653 for more information about creating tendons. See also: Tendons Sub-Object on page 4747 ■ Creating Tendons Like tendons in an actual body, tendons in Physique on page 4747 link one bone to another. They spread the effect of moving one link to the skin around a different link. Tendons can improve the realism of skin movement when it is animated by Physique. Basically, a tendon consists of base points that live on a cross section near the skin. A base point is attached to another link on the skeleton that pulls it. As the tendon base point is pulled, it deforms the skin around it. Several parameters control how much the point is pulled in each direction. You insert the tendon cross section at the location where you want the skin to stretch. You then attach it to the link that influences the movement. Each link can contain several tendon cross sections, and each control point may be attached to a separate link. In a practical application, however, such as in the area below the armpits, you might have two control points attached to each of the left and right clavicles. Procedures To create and attach a tendon: 1 Go to the Tendons sub-object level. In the Selection Level group of the Tendons rollout, turn on Link. 2 In a viewport, select a link. 3 In the Insert Settings group, click to turn on Insert. 4 In a viewport, position the cursor over the link. The cursor changes to a small star. 5 Click to create cross sections on the link. 6 Click to turn off Insert. Using Physique | 4653 TIP You can also right-click in a viewport to turn off tendon creation. 7 8 In the Selection Level group, turn on Cross Section. Use the Rotate tool to rotate the cross section so the control points are positioned in useful places. 9 In the Tendon Parameters group, use the Radius spinner to scale the cross section radially so the control points fall close to the surface of the skin. 10 In the Selection Level group, turn on Control Point, then in a viewport, select one or more control points. 11 In the Edit Commands group, turn on Attach, then in a viewport, click a different link. Tendons span the area between the links. 12 Adjust the Pinch, Pull, and Stretch settings to adjust the skin behavior. 13 Adjust the Upper and Lower Boundary settings to control the extent of the effect on neighboring links. To attach a tendon to another link: 1 In the Selection Level group of the Tendons rollout, turn on Control Point to make it the active selection level. 2 In a viewport, select one or more of the tendon's attach points. Click a point to select it; use Ctrl+click to add points to the selection; or drag a rectangular region to select multiple points. 3 In the Edit Commands group, turn on Attach. 4 In a viewport, click the link to which you want to attach the tendon. In the viewports, red lines appear showing the tendon's connection from its base to the other link. The skin mesh might also deform as a result of attaching the tendon. 4654 | Chapter 17 character studio TIP The tendon can have fixed attach points that are not connected to another link. These are useful for giving some rigidity to the skin, as when (in an actual body) a bone lies close to the skin's surface. For example, you might leave two fixed attach points on either side of a character's chest area, to simulate the effect of the sternum. When all tendons are attached to other links, the skin over the base link can have a "squishy" appearance when it is animated. This is appropriate for some animated characters, but not for others. To delete a tendon: 1 At the Link selection level in the Tendons sub-object, select the link that has the tendon you want to remove. 2 In the Insert Settings group, click Delete. Saving and Loading Physique Data You can save Physique data to a Physique (.phy) file to save data common to all objects that share a given Physique modifier Later, you can reload the data file, either to restore the data that belongs to a particular skin or portion of skin, or to transfer the Physique of one skin (or portion) to a different one. See also: ■ Physique Rollout on page 4671 ■ Physique Load Specification Dialog on page 4702 Reinitializing Physique Settings When you need to reset vertex, envelope, and other skin parameters on a Physique mesh, click Reinitialize to display the Physique Initialization dialog. Using controls in this dialog, select the category to update, and apply the new global settings. Using Physique | 4655 For example, if you've added a new bone to the hierarchy and want it included and influenced by the Physique modifier, use the reinitialization mechanism to effect its inclusion. Or maybe you've repositioned the biped structure relative to the mesh, you'd need to reinitialize Physique settings to recognize those changes. Reinitializing with changed settings applies them as new defaults in the areas you choose. Reinitializing without changing settings on the Physique Initialization dialog is a method of erasing unsatisfactory changes you've made to the Physique settings, again in those areas you specify. Reinitialization mode of Initialization dialog 4656 | Chapter 17 character studio Initialization Group The Initialization group in the Physique Initialization dialog is where you name the category of settings to reset. (When you applied Physique to the mesh initially, these settings appeared unavailable; in fact, all settings are set at Initialization.) WARNING Select only the check boxes for those settings you need to reset. If you select everything, your model is returned to the state it was in immediately after applying Physique. That's a quick way to discard changes that aren't working; just make sure that's what you want to do. If you change settings in rollouts on this dialog and fail to select the corresponding check box, those rollout settings are ignored and initial defaults are reestablished. See also: ■ Reinitialize Physique on page 4683 Working with an Initial Pose At times, you'll need to alter the fit of the hierarchy in the Physique mesh, or change its structure. To do so, you change the default, initial pose, which Physique uses as a reference for various operations, including reinitializing. ■ For a biped, you change the structure in Figure mode, then reinitialize the Initial Skeleton Pose. ■ For a Bones system with the HD IK solver, there is a Show Initial State check box in the Motion panel, on the IK Controller Parameters rollout. ■ For any other hierarchy, use frame 0 for the initial pose. Be sure your animation does not affect the position of the skeleton in frame 0. See also: ■ Figure Mode on page 4420 Using Physique | 4657 Procedures To load a file created with different system units: NOTE If the System Unit Scale has a value that is different from that of the file you are loading, 3ds Max prompts you to rescale the scene. If you do so, any objects that have a Physique modifier exhibit a double scaling. Do the following: 1 Select the object. 2 Reinitialize with both Initial Skeletal Pose and Vertex Settings (the last check box) turned on. Improving Interactive Performance Physique is multithreaded and optimized for modifier stack changes below the Physique modifier. Level of Detail Controls The controls in the Physique Level of Detail rollout on page 4675 help you optimize performance while working with Physique, by letting you specify which skin deformations are refreshed automatically in viewports. The more complex the skin object, the more effective these controls can be at speeding up your work. NOTE The 3ds Max renderer also heeds Level of Detail settings. Don't forget to reset these controls before the final render. Turning Blending On and Off When Physique is first initialized, the Blending Between Links parameter in the Physique Initialization dialog on page 4680 is set to N Links on page 8056. This means that every envelope must be considered when determining the influence on any vertex on page 4703. You can reinitialize with No Blending (or only 2, 3, or 4 links) to reduce this calculation permanently, although at the cost of losing some or all blending at the joints. NOTE Setting to No Blending is advised only for those developing characters to be used by real-time game engines. 4658 | Chapter 17 character studio You can also set No Blending at the Vertex sub-object level. You can temporarily disable Link Blending on the Physique Level of Detail rollout, on the Modify panel. Using the Optimize Modifier with Physique The standard 3ds Max Optimize modifier allows you to reduce the level of mesh detail in order to increase display performance and speed up screen refreshes. Optimize can be helpful with Physique when you work with complicated skin objects such as detailed biped figures. There are stack update options that determine how the stack is updated. See the Physique Level of Detail rollout on page 4675 for a reference on the stack update options. WARNING If the current stack update option is Reassign Globally, any modifier in the stack below Physique causes Physique to reevaluate vertex assignments each time the stack is changed. While this technique will improve performance in one way, it will hurt performance if you need repeatedly to make changes down in the stack. Procedures To optimize skin objects: 1 Select the skin. If the skin consists of multiple objects, select all of its component objects. 2 Apply an Optimize modifier to the skin. The Optimize modifier's Parameters rollout appears on the Modify panel. 3 In the Optimize group of the Parameters rollout, increase the value of Face Threshold. As you increase Face Threshold, Optimize reduces the number of faces in the mesh. The optimized mesh displays more quickly and speeds up your work with Physique. However, it doesn't show full detail, and sometimes an optimized skin does not animate correctly, because of the reduced number of vertices. TIP Always turn off Optimize before you render the animated skin. Using Physique | 4659 Scaling a Character Using standard 3ds Max scale transform tools, you can adjust a biped's posture by scaling the size of its links. You must be in Figure mode to scale the biped links. If you try to scale a biped without going into Figure mode, nothing happens. Procedures To scale a biped that has a mesh attached to it by using Physique: 1 Select the biped. 2 On the Motion panel, on the Biped rollout, turn on Figure mode. 3 On ths Structure rollout, change the biped's height. The biped and mesh scale together. To reinitialize a scaled mesh: Reinitializing a scaled mesh might be necessary if you use Initial Skeleton Pose in Physique. In this case, the mesh appears at its size before scaling. To correct for this, perform the following steps: 1 On the Modify panel, either make Physique inactive, or highlight the skin so the active level is below the Physique modifier in the stack. 2 Scale and move the mesh until it matches the biped or bones. 3 Re-enable Physique, or highlight its name once more in the stack display. The mesh will get large because it is doubly scaled. 4 Reinitialize with Initial Skeleton Pose turned on. The mesh will shrink to the size you set during scaling. Facial Animation As an alternative to morphing, Physique can be used effectively for detailed facial animation when a character's face is set up with extra links. By setting 4660 | Chapter 17 character studio up 3ds Max bones or other objects at appropriate locations on the mesh head, you can define a skeletal structure for moving the facial features. Boxes form the facial skeletal structure. You can also use splines linked to the biped head to deform the mesh. You can add a spline to a character that already has Physique applied by using Add in the Physique Bones rollout and clicking the spline in a viewport. Using Physique | 4661 Splines used for detailed facial animation. Facial Bone Structure A common skeletal structure for the face includes: ■ Bones to make the upper and lower lips open and close. ■ Bones to push the outer corners of the mouth, as for a smile. ■ Bones to make the eyes open and close. ■ A bone to control the jaw opening and closing. ■ The main head bone going straight up from the neck to the top of the head. This bone controls the head overall, and any vertices not affected by bones on the eyes, mouth and jaw. Use this bone to bend the head forward or backward. 4662 | Chapter 17 character studio TIP If you've never set up a facial bone structure before, refer to a text on character animation for information on the facial bones needed to create various expressions. In general, the lower lip bones should be linked to the jaw, and upper lip, jaw and eye bones should be linked to the main head bone. Facial bone linkage If you use objects other than 3ds Max bones, you must create dummy objects at the end of each object used as a bone, and link each one to its corresponding bone before applying Physique. This is necessary because Physique extends links to the end of the second-to-last object in the hierarchy, not the last. In other words, if you don't create and link the dummy objects to the bones, Physique will not extend links to the ends of the bones. Using Physique | 4663 Dummy objects at ends of bones Mesh objects that are to be animated along with the face, such as the eyes and hair, should not be linked to the bone structure until after Physique is applied. If you link them beforehand, Physique will treat them like bones. You can link these objects to the main head bone after you apply Physique. Separate or Connected Head There a two ways a setup like this could be used with a character body: The head could be attached to the body mesh, or it could be separate. If possible, use a head that is separate from the body mesh. For human characters, this often works fine; most character animation doesn't provide a view of the underside of the neck, so your viewers will most likely never notice that they're separated. If you use a separate head, it will be easier to control the facial animation. If you use a separate head, apply Physique to the head mesh alone. Click Attach to Node and pick the main head bone. Check the links to make sure they extend to the ends of the bones. Then, link the main head bone to the biped head. 4664 | Chapter 17 character studio If the character's head is connected to the mesh, link the main head bone to the biped head before applying Physique. Alternately, you can use the biped's head as the main head bone, linking the facial bones directly to the biped's head. When you apply Physique and click Attach to Node, pick the biped's COM as usual. After applying Physique to the head or the entire structure, you can adjust envelopes and vertex assignments for the facial bones as you would for any biped bone. Animating the Facial Structure After you apply Physique to the structure, you can animate it by rotating or moving bones. 3ds Max manipulators on page 2636 are useful for setting up a custom user interface for bone animation. Using Physique | 4665 Facial expressions animated with Physique and facial bones. TIP Hierarchies other than bipeds can't use Figure mode, so special consideration is needed to establish the initial skeletal pose. Position the facial bones in the “at rest” position at frame 0, and start keyframing the face at frame 1 or later. You can perform lip synch animation by loading a sound track in Track View. By scrubbing the time slider, you can locate a sound and keyframe the dummies to appropriate positions. 4666 | Chapter 17 character studio Procedures To isolate lip vertices from influence by inappropriate links: When working with a complicated facial bone structure, envelopes for the lower lip are bound to affect vertices in the upper lip, and vice versa. In general, this can be corrected in at the Vertex sub-object level: 1 Select the head and on the Modify panel go to the Vertex sub-object level. 2 Turn on Initial Skeletal Pose 3 Turn on Select, region-select vertices of the lower lip, then click Remove From Link. 4 Select the links of the upper lip, and click Lock Assignments. 5 Region-select vertices of the upper lip, and click Remove From Link. 6 Select links of the lower lip, and click Lock Assignments. Physique and Modifiers Combining Physique with Other Modifiers Although you can apply Physique to an object with modifiers, this can affect performance. If you use other animated modifiers in combination with Physique, this reduction is unavoidable. If the other modifiers are not animated, you can collapse the stack to remove modifiers prior to Physique. This can significantly improve performance. How Physique reevaluates vertices coming up the stack depends on the stack update options. Stack Update Options In Physique, there are three stack update options available from the Physique Level of Detail rollout on page 4675 to determine how Physique handles animated vertices coming up the modifier stack. Using Physique | 4667 Add Change Add Change adds in the changes from the stack and then applies mesh deformation. No vertex remapping or reassigning is done. This is the default option, and usually will give you the deformation that you want. There is no performance degradation from Physique. Remap Locally Remap Locally resets vertex position on the spline used for bending and the link position used to interpolate twist. Use this option when vertices are sliding along the length of the spline, and you want them to bend and twist based on the spline position but don't want the weights to change. Reassign Globally Reassign Globally does a complete vertex reassign for each frame. Use this option when vertices are moving to different envelopes and you want them reassigned to the new envelopes. This option should rarely be used. The only reason would be if vertices are sliding along a link and you want the twist to be interpolated based on the new position. Using Physique with Changing Geometry Physique can effectively handle dynamically changing geometry. That is, if the geometry coming through the modifier stack to Physique changes, Physique dynamically adjusts to accommodate the changes to the geometry, while maintaining its own parameter settings, including manual vertex assignments. This is why, when using Optimize, you can effectively change the resolution of the geometry deformed by Physique. Only in situations where the changes dramatically increase the density of data is there ever a need to manually adjust vertex assignments. Physique remembers your manual vertex assignments, and uses these assignments to reassign vertices when the geometry changes. Physique and Free Form Deformations (FFDs) Physique can be applied to a Free-Form Deformation (FFD) space warp, which in turn can animate a mesh that is bound to the FFD. For example, you could use this technique to animate a credit card or a box of cereal. 4668 | Chapter 17 character studio Procedures To apply Physique to an FFD to animate the entire mesh: 1 Place an FFD (Box) space warp around the mesh to deform. The box should be large enough to encompass the mesh. The number of control points you use for the FFD can be fine-tuned later by going back down in the stack to the FFD to adjust the number of control points. 2 Select the FFD and apply the Physique modifier. 3 Click Attach To Node, and then click the biped pelvis or the root node of your bone structure. 4 If necessary, select the FFD space warp and adjust the vertex assignments of the control points so they are assigned to the proper links. This can be done in the same way as done using Physique with a mesh, only there are fewer assignments to deal with. Although fewer assignments provide smoother surface deformation with the FFD, control points and their link assignments must be thoughtfully placed. 5 Use Bind To Space Warp on the main toolbar to bind the mesh to the FFD space warp. 6 Link the mesh to the biped pelvis, or root node of the bone structure, so it follows the skeleton and FFD as they move around the scene. To use an FFD to complement the effects of Physique on a portion of a character mesh: TIP You can use this procedure to animate clothes or amorphous shapes. 1 Place an FFD (Box) space warp around the mesh to deform. The box should be large enough to encompass the mesh. The number of control points you use for the FFD can be fine-tuned later by going back down in the stack to the FFD to adjust the number of control points. 2 Select the FFD and the mesh and apply a Physique modifier to both. 3 Click Attach To Node and in a viewport, click the biped pelvis. 4 Select the mesh only, and add a Mesh Select modifier to the mesh above Physique in the modifier stack. Using Physique | 4669 NOTE If you are using a NURBS model, use the NSurf Sel modifier (rather than Mesh Select) to select sub-object control vertices that lay inside the FFD lattice. 5 Go to the Vertex sub-object level (or Control Vertex), and select the set of vertices (or CVs) that lie inside the FFD space warp you are using. 6 While in Vertex sub-object level, bind the mesh to the FFD space warp. Now only the selected vertices or CVs will be affected by the FFD. 7 With the mesh selected, highlight the Physique level in the stack, and assign all vertices or CVs affected by the space warp as blue (rigid). These should be the same vertices or CVs selected in step 5, above. 8 Assign the rest of the vertices or CVs that fall outside the FFD as deformable, in the same way you normally assign vertices to links on page 4753 with Physique. 9 Select the FFD space warp. If necessary, adjust the vertex assignments of the control points so they are assigned to the proper links. You do this in the same way as you do when using Physique with a mesh, except there are fewer assignments to deal with. Although fewer assignments provide smoother surface deformation with the FFD, control points and their link assignments must be thoughtfully placed. Physique User Interface Select a mesh. > Modify panel > Modifier List > Physique. Select a mesh that has the Physique modifier applied to it. > Modify panel > Floating Bones, Physique, and Physique Level of Detail rollouts The main controls for the Physique modifier include the Physique and Floating Bones rollouts for attaching the mesh to the biped, splines, or bones. Additional controls in the Physique Level Of Detail rollout are for troubleshooting envelopes, bulges, and tendons. The sub-object controls are for fine-tuning envelopes, creating and adjusting tendons and bulges, and for vertex editing. See also: ■ Physique on page 4603 4670 | Chapter 17 character studio Physique Rollout Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout You use the buttons on the Physique rollout to link a mesh to a biped, a bones hierarchy, or a spline; to reinitialize the Physique parameters on a mesh; to open the Bulge Editor on page 4687; and to load or save Physique (PHY) files. Procedures To attach a mesh to a biped using Physique: 1 Select or create a biped. 2 Go to the Motion panel. On the Biped rollout, click to turn on Figure mode. 3 Position the biped inside your character mesh. 4 Select the mesh. IMPORTANT If the mesh is made of multiple objects, select all of them. 5 Go to the Modify panel. Use the Modifier List to apply Physique to the mesh. 6 On the Physique rollout, click to turn on Attach To Node. In a viewport, select the biped's pelvis object. The Physique Initialization dialog on page 4680 is displayed. 7 Click Initialize, accepting the default settings. By default, the Object Bounding Box option is selected: Physique sizes envelopes to approximate the biped limbs. 8 Experiment with animating the biped, and adjust envelopes around problem areas. Use the Envelope sub-object level to edit the newly created envelopes. Physique User Interface | 4671 To attach a mesh to a bones hierarchy using Physique: 1 Select or create a bones hierarchy. 2 Position the bones hierarchy inside the mesh. TIP When you use a bones hierarchy with Physique, use frame 0 as your "figure mode." Don't include frame 0 in your animation. Use it as the a place where you position the bones and fit them to the mesh. 3 Select the mesh. 4 Go to the Modify panel. Use the Modifier List to apply Physique to the mesh. 5 Click to turn on Attach To Node. In a viewport, select the root bone in the bones hierarchy. The Physique Initialization dialog displays. 6 Click Initialize, accepting the default settings. 7 Experiment with animating the bones, and adjust envelopes around problem areas. Use the Envelope sub-object level to edit the newly created envelopes. To add a bone after you've already used Attach To Node: 1 Link the bone to the biped.then click Reinitialize. 2 Select the mesh, then go to the Modify panel. On the Physique rollout, click Reinitialize. The Physique Initialization dialog is displayed. 3 On the dialog, in the Initialize group at the upper left, click to turn on Initial Skeleton Pose. The toggle Include New Bone becomes available. Click to turn on Include New Bone, and then click Initialize. 4672 | Chapter 17 character studio To save Physique data: 1 With Physique active on the Modify panel, click Save Physique File on the Physique rollout. A file save dialog is displayed. 2 Enter a name for the new Physique file, and then click OK. To load Physique data: 1 With Physique active on the Modify panel, click Open Physique File on the Physique rollout. A file open dialog is displayed. 2 Choose the Physique (PHY) file to open, and then click OK. A Physique Load Specification dialog is displayed. 3 Use the dialog to choose the kind of data to load, and then use the lists to match links in the PHY file with links in the scene. IMPORTANT The number of links selected from the file (left column) must match the number of links in the active Physique modifier (right column). 4 Click OK. Physique updates the links you chose with the data that was saved. Interface Attach to Node Attaches the mesh objects to the biped or to a bones hierarchy. Physique User Interface | 4673 IMPORTANT Put the biped in Figure mode and fit it to the mesh character before you click Attach To Node. Turn on Attach To Node, then in a viewport, click the biped's pelvis or the root node of a bones hierarchy. NOTE If you click a biped's center of mass instead of its vertex, Physique corrects this by attaching to the pelvis instead. After you select a node in the viewports, the Physique Initialization dialog on page 4680 is displayed. Accept the default values in this dialog, then click Initialize. Physique traverses the biped or bone hierarchy, and creates an envelope on page 4717 for each link it finds. (It can include additional bones that are linked to the biped.) The envelopes control Physique's influence on the vertices of the mesh. When the hierarchy is animated, the mesh vertices move along with it. Reinitialize Displays the Physique Initialization dialog and resets any or all of the Physique attributes to the default values. For example, reinitializing on page 4683 with the Vertex Settings option selected reestablishes the relationship of a vertex and its original position relative to the Physique deformation spline. Settings for vertex-link assignments, bulges, and tendons can be reset from this dialog. Bulge Editor Displays the Bulge Editor on page 4687, which is a graphical alternative to the Bulge sub-object level for creating and editing bulge angles. Open Physique File Loads a saved Physique (.phy) file, which stores envelope, bulge angle, link, tendon, and vertex settings. When you click Open Physique File to load a .phy file, the Physique Load Specification dialog on page 4702 is displayed. Select the links you want to import in the list on the left of the dialog, and apply them to the links you select in the list on the right of the dialog. Any aspect of your Physique work can be loaded into any other character. You can choose from Link Settings, Bulges, Tendons, and Envelopes. You can also apply links from the file to differently named links in the current scene. For example, save and reload a .phy file to copy a bulge angle created on one character to a link on another character. 4674 | Chapter 17 character studio TIP A bulge created on a bones hierarchy can be loaded and applied to Physique links created using a biped. NOTE Loading a .phy file will not overwrite locked vertices. If you want to overwrite them, you must either go to the Vertex sub-object level and unlock them, or reinitialize and turn on the option Vertex - Link Assignments. Save Physique File Saves a Physique (.phy) file, which contains envelope, bulge angle, link, and tendon settings. About Physique Displays a dialog that shows version and copyright information about Physique. Physique Level of Detail Rollout Select an object that has the Physique modifier applied to it. > Modify panel > Physique Level of Detail rollout Controls in the Physique Level Of Detail rollout not only optimize the viewports, but also affect the rendered result. The primary purpose of this rollout is for troubleshooting. After creating bulge angles and tendons, you can turn off their influence to see exactly what they add to the deformation of the skin. This rollout also has controls for how changes in the modifier stack below Physique are handled. TIP Choose Deformable and turn on all its parameters during editing; this allows you to spot problem areas. Choose Rigid for the fastest viewport redraw. Procedures To troubleshoot bulges and tendons: 1 Select the mesh of a character that has bulges or tendons. 2 Go to the Modify panel. 3 On the Physique Level Of Detaul rollout, in the Skin Update group, make sure Deformable is chosen. Physique User Interface | 4675 4 Turn Bulges off, then on. Do the same with Tendons. Examine the mesh with and without the influence of bulges and tendons. 5 Use the Bulge Editor or the sub-object levels to adjust bulge and tendon settings. Interface Renderer When chosen, settings in the Skin Update group affect rendered images. Viewports When chosen, settings in the Skin Update gropu affect viewports. 4676 | Chapter 17 character studio Skin Update group Deformable When chosen, Physique deformation is active. Deformable yields the highest-quality rendering. The Deformable toggles are unavailable unless Deformable is chosen. ■ Joint Intersections Turn off to remove joint intersection influence. Joint intersection influence allows the mesh to overlap itself; for example, at the elbow and knee joints. Default=on. ■ Bulges ■ Tendons ■ Skin Sliding ■ Link Blending Default=on. Turn off to remove any bulge angle influence. Default=on. Turn off to remove any tendon influence. Default=on. Turn off to remove skin sliding influence. Default=on. Turn off to remove the influence of link blending. Rigid When chosen, forces all vertices to use Rigid assignments rather than Deformable. This is an easy way to isolate deformation problems. It also provides the quickest viewport redraw speed. You might choose this option while adjusting the animation of your skeleton. ■ Link Blending Turn off to remove the influence of blending on rigid links. This toggle is unavailable unless Rigid is chosen. Default=on. Stack Updates group The controls in this group handle changes to vertex count that arise from (nonanimated) changes to the modifier stack. If the vertex count changes, vertices are reassigned globally. Add Change adds in changes based on the vertices' initial position. The other options reset the initial position at each frame to do the remapping and reassigning. For this reason, turning on Add Change or making nonanimated stack changes should always be done at the initial position (Figure mode or frame 0). Add Change Adds in changes from the stack and then applies Physique deformation. No vertex remapping or reassigning is performed. Default=on. This option will generally give you the deformation you want. There is no performance penalty (from Physique) when this option is used. Remap Locally For deformable vertices, this resets the vertex position on the Physique deformation spline used for bending, as well as the link position used to interpolate twist. For rigid vertices, this option resets the link position used to interpolate twist. Default=off. Physique User Interface | 4677 When vertices are sliding along the length of the spline and you want them to bend and twist based on the spline position, but don't want vertex weights to change, turn this option on. Reassign Globally Re-weights, and resets the position on the spline used for bending for moved vertices globally. The vertex link assignment, weighting, and spline position are reset for all moving points on every frame. (This is equivalent to Physique 2.2.) This option is like reinitializing on every frame. Default=off. When vertices are moving to different envelopes and you want them reassigned to the new envelopes, use this option. Hide Attached Nodes Toggles the display of the underlying skeletal system. This allows you to hide and unhide the biped, for example. Floating Bones Rollout Select an object that has the Physique modifier applied to it. > Modify panel > Floating Bones rollout “Floating” bones provide a way to use Physique without using a biped character. The Floating Bones rollout specifies the splines, bones hierarchy, or unattached bones you are using to deform a mesh. For example, Physique lets you animate a mesh by animating spline vertices or a bones system. When you attach the spline or parent bone to Physique, it creates envelopes for the selected spline or bones. Procedures To have a spline influence a mesh: 1 Create a spline and place it within a mesh that has Physique applied. 2 Select the mesh, and go to the Modify panel. 3 On the Floating Bones rollout, click Add. A Select Bones dialog is displayed. 4 Use the Select Bones dialog to select the spline. 5 Animate the spline vertices to animate the mesh. 4678 | Chapter 17 character studio TIP If you want to control the mesh by animating bones, follow the previous steps using bones instead of a spline. Interface Add Displays a Select Bones dialog so you can select splines or bones to use with Physique. Reset Resets splines or bones in their initial position: Reset reassigns vertices, but leaves envelopes as is. Delete To delete a spline or bone, click to highlight its name in the list, and then click Delete. Physique Shortcuts Turn on the Keyboard Shortcut Override toggle on page 7858 to enable the character studio keyboard shortcuts. All character studio keyboard shortcuts activate when the Motion panel is active and the Keyboard Shortcut Override button is active. Physique User Interface | 4679 See also: ■ Keyboard Shortcuts on page 7857 ■ Keyboard Panel on page 7698 ■ Customize User Interface Dialog on page 7697 Action Shortcut Copy Envelope Ctrl+C Delete Ctrl+D Next PageDown Next Selection Level I Paste Envelope Ctrl+V Previous Page Up Previous Selection Level Shift+I Reset Envelopes Ctrl+E Description Resets envelopes for selected links to their default values. * Not available for customization in the Customize User Interface dialog. Physique Dialogs Physique Initialization Dialog Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Attach to Node. > Select a root object in a viewport. > Physique Initialization dialog 4680 | Chapter 17 character studio Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Reinitialize. > Physique Initialization dialog. Use the Physique Initialization dialog to specify link parameters and the type and size of envelopes to create for Physique links. This dialog is displayed under two circumstances: ■ ■ When you apply Physique initially, using Attach To Node on the Physique rollout on page 4671 on the Modify panel. When you click Reinitialize on the Physique rollout. Creating Physique Links and Envelopes for the First Time When you use Attach To Node to attach the mesh to a skeleton for the first time, you can use parameters on the Vertex-Link Assignment rollout on page 4703 to specify envelope parameters. In most cases, the default parameters on the Vertex-Link Assignment rollout work well as a starting point for envelope type, envelope sizing, and blending between links. Normally, you want deformable envelopes. Blending Between Links is set to N Links (a vertex can be influenced by all envelopes that overlap it). The Object Bounding Box option is chosen by default, and bases the size of the envelopes on the size of biped limbs or bone diameters. Link Settings, Joint Intersections, and Cross Section Rollouts Controls on these rollouts match those found in bulge sub-object on page 4737 and link sub-object on page 4725 and are used here to set default values. Unless you want to change the default settings for all link parameters and bulges, you do not need to change the settings in these rollouts. Physique User Interface | 4681 Interface Initialization group The Initialization check boxes are normally unavailable and not changeable during initialization. Although these options are unavailable, they are all turned on by default (except Include New Bones) for initialization, since all these settings are new when you use Attach To Node for the first time. These check boxes become available when you click Reinitialize on the Physique rollout. 4682 | Chapter 17 character studio See Reinitialize Physique on page 4683 for a description of the controls in this group. Link Settings rollout The Link Settings rollout contains the default link values that will be assigned to all links. See Link Sub-Object on page 4725 for a command reference. Joint Intersections rollout The Joint Intersections rollout contains default joint intersection values that will be assigned to all links. See Link Sub-Object on page 4725 for a command reference. Cross Sections rollout The Cross Sections rollout on page 4705 sets the default Bulge Angle parameter settings for new bulges. Vertex-Link Assignment Rollout On the Vertex-Link Assignment rollout on page 4703 you can choose to create new envelopes and pick the type of blending between links. Reinitialize Physique Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Reinitialize. The Reinitialize button on the Physique rollout is used mainly for resetting a particular attribute of your character's skin behavior. Among common uses are resetting bulges, deleting tendons, reassigning vertex-link assignments, or repositioning the biped relative to the attached mesh. Essentially, you can reinitialize to reset any single item in the Initialization group, or all items. The toggles in the Initialization group of the Physique Initialization dialog are available only when you click Reinitialize. Physique User Interface | 4683 Reinitializing Old Files Files from versions of character studio prior to character studio go through a semi-automatic Physique reinitialization process. When you load an old file that uses Physique, you’re prompted to put the biped or bones system into Figure mode or in the initial position, and then reinitialize. To reinitialize, select the mesh, open the Modify panel, and click Reinitialize. A dialog warns you to put the skeleton into the initial position. Click OK to reinitialize, and save the file after you have done so. See also: ■ Physique Initialization Dialog on page 4680 4684 | Chapter 17 character studio Interface Initialization group Initial Skeleton Pose Uses the current hierarchy position (for example, the biped pose) as the default pose for defining how the skeleton fits inside the skin. The current pose becomes the new initial pose, replacing the pose used when you first attached the mesh to the biped. Default=off. NOTE This toggle does not reassign vertices that you reassigned manually unless you also turn on Vertex-Link Assignments. Physique User Interface | 4685 When using Physique with a biped, turn on Initial Skeleton Pose if you want to use Figure mode to reposition the biped relative to the mesh; for example, to reposition the biped shoulder joints. It is helpful first to turn off the Physique modifier, using the lightbulb icon in the modifier stack display. This lets you use Figure mode to scale and rotate the biped limbs independent of the mesh skin. Use this option after you scale a character (see Scaling a Character on page 4660). ■ Include New Bones Creates new links for any new object (bone) linked to the biped. Use this to add a bone to a mesh that has the Physique modifier applied. This toggle is unavailable unless Initial Skeleton Pose is on. Default=off. Link and Joint Settings Resets link parameters and joint intersection parameters to their default values. Link parameters include Bend, Twist, Sliding, and Radial Scale values. For Radial Scale, this includes Scale, Amplitude, Stretch, and Breath. Default=off. When this option is on, you can set new default values in the Link Settings rollout on page 4727 and the Joint Intersections rollout on page 4734. Bulges Resets bulge angles to the default values. By default, one bulge angle is created per link. Turning on Bulges deletes any new bulge angles you might have created. Default=off. When this option is on, you can set new default values for cross sections in the Cross Sections rollout on page 4705. Tendons Resets tendons to the default values. Turning on Tendons deletes any tendons you might have created. Default=off. Vertex-Link Assignments Re-evaluates which vertices fall within each envelope. (This can vary from the original default settings, depending on whether you have made changes to the envelopes.) Turning on Vertex-Link assignments also removes any custom vertex assignments. Turn on Vertex-Link Assignments if you want to replace all manual vertex reassignments with the default vertex assignments. Default=off. When this option is on, you can set new default values in the Vertex-Link Assignment rollout on page 4703. Vertex Settings Recalculates vertex parameters at the link to which each vertex is assigned. Turning on Vertex Settings does not reassign manually reassigned vertices. Use this option when you have changed the link parameters and want to recompute the vertex parameters based on these changes. This check box is automatically turned on if you turn on either Initial Skeleton Pose or Vertex-Link Assignments. Default=on. 4686 | Chapter 17 character studio Bulge Editor Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Bulge Editor. Creating and editing cross sections allows you to "bulge" the mesh. The Bulge Editor is an alternative to using the Bulge sub-object level to create and edit bulge angles. The difference is that the Bulge Editor allows you to create, select, and edit cross sections in schematic Cross Section and Profile views. Using the Bulge sub-object level, creating and editing bulge angles takes place in the viewports. All of the parameter changes you make in the Bulge Editor are also reflected on the mesh in the viewports. On the Modify panel, you access the Bulge Editor from the Physique rollout on page 4671, from the Bulge rollout at the Bulge sub-object level on page 4737, or from the Link Settings rollout at the Link sub-object level. NOTE The Bulge Editor works exclusively with bulge angles. To create and edit Tendons, use the Tendons sub-object level on page 4747. Using an Animation to Preview Limb Orientations For easier creation of bulge angles, you should create a simple animation that moves the limb into extreme orientations. In the case of the human arm, you might set keyframes with the arms down against the body; extended to the sides; bent at the elbows; and finally, more relaxed with the hands touching the shoulders. By scrubbing the time slider, you can easily choose one of many intermediate or extreme orientations. This saves time when you create Bulge Angles, because you won't need to exit Physique to manipulate the skeleton to change the orientation of the mesh. You can create and set multiple Bulge Angles without ever leaving the Bulge Editor or Bulge sub-object level. Procedures To create a new bulge angle using the Bulge Editor: 1 Click the Bulge Editor button at the top level of the Physique modifier, or at the Link or Bulge sub-object level. The Bulge Editor is displayed. Physique User Interface | 4687 TIP Accessing the Bulge Editor at the Bulge sub-object level provides the added benefit of letting you work in either the Bulge Editor or the Bulge rollout interchangeably. 2 In a viewport, click to select a link. 3 On the Bulge Editor toolbar, click Insert Bulge Angle. Physique creates a new bulge angle. The number of the bulge angle name in the Current Bulge Angle field increments. 4 Type a descriptive name in the Current Bulge Angle field. TIP It is a good idea to change the color of the newly created bulge angle. Do this by clicking Bulge Angle Color at the Bulge sub-object level, and selecting a color with the Color Selector. 5 If no appropriate cross sections exist, then on the Bulge Editor toolbar, click Insert CS Slice. Click the Profile view to create and position a cross section. The cross section is created at the location you clicked. 6 In the viewports, rotate the joint to the desired angle. This is most easily done by creating a preview animation, as described in Using an Animation to Preview Limb Orientations on page 4687: just move the time slider to a frame that has the angle you want. Otherwise, you will have to exit the Bulge sub-object level, select the appropriate limb, and rotate it. For example, to bulge the biceps on a biped, you might rotate the biped forearm to ninety degrees. 7 “Bulge” the mesh by editing cross section control points using the Bulge Editor's Cross Section view. As you scale or move control points in the Cross Section view, the mesh "bulges" in the viewports. 8 On the Bulge Editor toolbar, click Set Bulge Angle on the Bulge Editor toolbar. Physique saves the current angle of the joint. When the joint angle is reached, the mesh bulges. By default, Physique creates one bulge angle when it is first attached to the mesh. So to make 4688 | Chapter 17 character studio an arm or leg that bulges when biped joints are rotated, you need to create and set only one additional bulge angle. To change a bulge angle value: 1 On the Bulge Editor, make sure the bulge angle you want to reset is displayed in the Current Bulge Angle field. 2 In a viewport, change the angle between the active link and its child link. Rotate a biped limb or use the time slider to move to a frame that has the limb rotated correctly. 3 On the Bulge Editor toolbar, click Set Bulge Angle. The angle of the joint is set for the displayed bulge angle. When the biped limb rotates to this angle, the mesh bulge effect is at full strength. To choose a specific bulge angle for editing: 1 Expand the Current Bulge Angle drop-down list (click the downward pointing arrow at its right). The full list of bulge angle names appears. 2 Click the name of the bulge angle you want to edit. The Bulge Editor’s Cross Section and Profile views update to show the cross sections associated with the newly selected bulge angle. To delete a bulge angle: 1 Expand the Current Bulge Angle drop-down list (click the downward pointing arrow at its right). The full list of bulge angle names appears. 2 Click the name of the bulge angle you want to delete. 3 On the Bulge Editor toolbar, click Delete Bulge Angle. NOTE You can’t delete the default bulge angle: a link must always have at least one bulge angle defined. Physique User Interface | 4689 To add a cross section: 1 On the Bulge Editor, make sure that the bulge angle you want to edit is displayed in the Current Bulge Angle field. 2 On the Bulge Editor toolbar, turn on Insert CS Slice. 3 In the Profile view, click the link at the point where you want the cross section to be added. The cross section is created at the location you clicked. TIP You can also add cross sections to the child link. To delete a cross section: 1 In the Profile view, click to select a cross section. The selected cross section turns red. 2 On the Bulge Editor toolbar, click Delete CS Slice. NOTE You cannot delete the default cross section at the joint between the link and its child. To make a cross section the active cross section: In Profile view, click a cross section to select it. The selected cross section displays in Cross Section view. You can change its shape by selecting and editing control points in Cross Section view. This will bulge the mesh at the location of the cross section. ■ To select multiple cross sections: You can change parameters for multiple cross sections by selecting them and then adjusting parameters in the Cross Sections panel on page 4700. 1 On the Bulge Editor toolbar, turn on Select And Translate CS. 2 In Profile view, click to select a cross section. 4690 | Chapter 17 character studio 3 Select additional cross sections by doing one of the following: ■ Use Ctrl+click to add cross sections to the selection. ■ Drag a rectangular region in the Profile view. All cross sections that the region surrounds or crosses are selected. TIP Use Alt+click to remove a cross section from the selection. To move cross sections along the link: Moving a cross section repositions where on the mesh a bulge occurs. 1 Select the cross sections to move. 2 On the Bulge Editor toolbar, click Select And Translate CS. TIP If you are moving a single cross section, you can skip step 1 and click the cross section after you click Select And Translate CS Slice. 3 Drag left or right in the Profile view to move the cross section (or cross sections) left or right. NOTE You cannot move cross sections through each other. To copy and paste cross sections: 1 Select the cross section to copy. 2 On the Bulge Editor toolbar, click Copy Selected CS. 3 Select a cross section to paste over. 4 On the Bulge Editor toolbar, click Paste Selected CS. The cross section you pasted now has the shape of the cross section you copied. NOTE You can copy a cross section and paste it to a similar cross section on another link. Create a bulge angle and an appropriate cross section on the target link before pasting. If necessary, use Mirror Selected CS after pasting. Physique User Interface | 4691 To change the shape of a cross section: 1 In the Profile view, click to select a cross section. 2 In the Cross Section view, use the transform tools to move, scale, or rotate the cross section's control points. You can also add or delete cross section control points. You can also use freehand drawing to add control points. To change the Profile view orientation: 1 In the Cross Section view, move the cursor to the outer end of the orientation bar. The cursor changes to a shape like the Cross Section view. 2 Drag to rotate the orientation bar. When you release the mouse, the Profile view updates to show the profile at the angle of the orientation bar. Interface Toolbar Select, Scale, and Rotate Control Points Lets you select, scale, and rotate control points of a cross section in the Cross Section view. 4692 | Chapter 17 character studio This is comparable to using the Move transform on geometry in viewports. Control points are simultaneously scaled and rotated around the link, which in effect "moves" them. Select a cross section in the Profile view first. Then select and move control points in the Cross Section view to change the bulge. Select and Rotate Control Points Lets you select and rotate control points in and around the center of the link in Cross Section view. This does not twist the mesh. If the cross section is not a circle, a bulge migrates around the mesh. Select and Scale Control Points Lets you select and scale control points about the link's center in the Cross Section view. If all cross section control points are scaled, the mesh bulges uniformly. Draw Control Points Lets you add control points by drawing freehand in the Cross Section view. The shape of the bulge changes based on the shape you draw. In the Cross Section view, you can draw the cross section interactively, placing control points at each resolution step. You can freeze existing control points by selecting them in the Cross Section view and holding down the Ctrl key as you draw. NOTE The number of control points created depends on the cross section Resolution (see Cross Sections panel on page 4700). TIP You can also use this too In Profile view. When you draw in Profile view, you change the profile of the bulge while placing a control point on each cross section of the bulge angle. This is useful mainly when the bulge angle uses multiple cross sections. You can rotate the orientation bar to draw whichever profile you desire. (Imagine the Cross Section view being like drawing around the arm, and the Profile view like drawing along the length of the arm.) Insert Control Points Lets you insert control points by clicking the cross section in the Cross Section view. A single control point is created each time you click. Adding control points and changing their position lets you sculpt the cross section and control exactly where a bulge occurs on the mesh. Physique User Interface | 4693 Delete Control Points Deletes control points. First select the control points in the Cross Section view, and then click this button. Previous Link and Next Link Move to the next or previous link in the hierarchy. The Cross Section and Profile views update to display the appropriate bulge geometry. IMPORTANT Profile view displays the parent link on the left and the child link on the right. Mirror Selected CS Mirror the cross section across the vertical plane running between the green profile reference points at the top and bottom of Cross Section view. In other words, clicking this button causes the bulge to appear on the opposite side of the link. Select and Translate CS Lets you select and move a cross section along its link. The bulge on the mesh migrates up and down the link as the cross section is moved. Insert Cross Section Slice Lets you insert a cross section by clicking Profile view in the location you want the cross section to appear. A new cross section is created where you clicked, on either the parent or the child link. Extra cross sections give you more control of how and where the mesh bulges. Delete Cross Section Slice Deletes the currently selected cross section. First, select the cross section in Profile view. Copy Selected CS Copies the selected cross section. You can copy a cross section from one link to another link. Create a new bulge angle with an appropriate cross section in the target link first, then copy the cross section parameters form the source cross section, select the target cross section, and click Paste Selected CS. Paste Selected CS Pastes copied cross section parameters onto another cross section. 4694 | Chapter 17 character studio First, select a cross section in Profile view, and click Copy. Then select another cross section in the Profile view, and click Paste. Set Bulge Angle Associates the effect of the current bulge angle with the skeleton's current joint angle. First, set the joint to the orientation at which you want the bulge to appear, then click this button. During animation, whenever the joint rotates near this angle, the mesh will bulge. Insert Bulge Angle Adds a new bulge angle for the selected link. The Current Bulge Angle field displays a bulge angle name with the number incremented. You can enter a descriptive name for any new bulge angle; for example, Arm at 90. By default, one initial bulge angle is created when Physique creates links. Only one additional bulge angle will allow you to bulge the mesh. You can create more bulge angles for further control, if you like. Delete Bulge Angle Deletes the current bulge angle. The current bulge angle displays in the Current Bulge Angle field. First select a bulge angle in the Current Bulge Angle dropdown, and then click Delete Bulge Angle. Select Nearest Bulge Angle When on, selects the bulge angle nearest to the current joint angle. If a joint bends over time, you can use this button in conjunction with the time slider to select a bulge angle. If you play the animation, you can see the Current Bulge Angle field change to reflect the bulge angle nearest to the current angle of the selected link and its child (if two or more bulge angles for the limb exist). Current Bulge Angle field and drop-down list Displays the current bulge angle. You can choose a bulge angle from the drop-down list to edit the bulge or change its name. To change the name, simply enter a new one in the edit field. TIP When you create a bulge angle, give it a descriptive name. Physique User Interface | 4695 When you create a new bulge angle by clicking Insert Bulge Angle, this field displays the default bulge angle name, which is the previous name with its sequence number incremented. Cross Section view Cross Section view displays an outline of the active cross section. In Profile view on page 4697, the active cross section is shown in a bright red color. In Cross Section view, you can edit cross sections to bulge the mesh. NOTE It is possible to select multiple cross sections in Profile view using either a rectangular selection region or Ctrl+click. This allows you to enter settings on the Cross Sections panel on page 4700 for all selected cross sections at once. Only one active cross section, however, can be viewed and edited in Cross Section view. (Selected but inactive cross sections are shown in a dark red color in the Cross Section and Profile views.) These are the elements of the cross section display: Gray square at center Represents the link at the center of the cross section. Control points When unselected, are shown as small black crosses on the control spline. When selected, they are shown as black squares with a white center. 4696 | Chapter 17 character studio Resolution lines Display as gray lines that surround the link radially. Control points snap to these lines as they are positioned. You can increase or decrease the resolution by changing the Resolution setting. This control is on the Bulge rollout in Bulge Sub-Object. The Cross Section view, however, always displays 36 resolution lines. Red line The control spline for the active cross section. The shape of the spline determines where mesh deformation occurs. Green line Represents actual mesh deformation. (Typically this is less exaggerated than the control spline.) When you drag the time slider or play an animation, this updates according to the angle of the limb and the bulge angle parameters. Orientation bar The bright yellow radius indicates the orientation of the “slice” shown in profile view. Profile view always shows a vertical profile of Cross Section view, indicated by the green dots at the top and bottom of the view, just outside the circle that contains the resolution lines. By default, the orientation bar is level at 3 o'clock. You can change the Profile view orientation by dragging the end of the orientation bar (the cursor changes to a miniature cross section). This lets you view different angles of the bulge in Profile view. Profile view Use Profile view to select, move, and copy cross sections on the selected link and its child. Highlight a cross section in Profile view to display and edit it in Cross Section view on page 4696. Physique User Interface | 4697 Profile view is a schematic profile of two links. The currently selected link is on the left, and its child link is on the right. If the selected link is an end link, the outline of the right half of the Profile view turns gray. Cross sections are shown as vertical bars across the profile. The active cross section is red. Unselected cross sections are white. Cross sections that are selected but not active are dark red. You can use a rectangular selection region or Ctrl+click to select multiple cross sections. Although only one cross section at a time is active in Cross Section view, you can use the Cross Sections panel on page 4700 to change parameters for multiple cross sections. Profile view shows a profile of the bulges you create. As in Cross Section view, the control spline is red and the deformation spline is green. The profile is always a vertical profile of the Cross Section view. You can drag the orientation bar in Cross Section view to change the angle of the profile. To insert a new cross section, turn on Create CS Slice and then click Profile view to set the cross section's location. You can use the Draw tool in Profile view to change the control spline by freehand drawing. Drawing updates the cross section shapes. 4698 | Chapter 17 character studio Bulge Angles panel At the right of the Bulge Editor are two panels for setting parameters. Use the Bulge Angles panel to change bulge settings for the currently active bulge angle. NOTE These parameters are the same as those in the Bulge Angle Parameters group on the Bulge rollout at the Bulge sub-object level. Changing a value in one location changes it in the other. Bulge Angles Click to display the Bulge Angles panel. Influence The range of angles through which the bulge influences the skin. Range=0 to 180. Default=90 degrees. For example, if you’ve set a bulge angle for the joint at 90 degrees, an Influence value of 40 means that the bulge effect begins to appear when the rotating joint reaches 50 degrees (90 minus 40) or 130 degrees (90 plus 40). Power Controls how smoothly or abruptly the bulge takes effect. At 0, the bulge takes effect immediately, without interpolated easing. As values increase, the bulge eases in gradually. A value of 10 will bulge the mesh abruptly when the set angle is reached. Range=0 to 10. Default=2.5. Physique User Interface | 4699 Weight Increases the effect of the current bulge angle relative to the effect of any other bulges. Range=0.0 to 100.0. Default=1.0. Cross Sections panel At the right of the Bulge Editor are two panels for setting parameters. Use the Cross Sections panel to change the cross section settings for a particular link. NOTE These parameters are the same as those in the Cross Section Parameters group on the Bulge rollout at the Bulge sub-object level. Changing a value in one location changes it in the other. Cross Sections Click to display the Cross Sections panel. Sections Sets the number of cross sections for the selected link. TIP Rather than manually inserting cross sections in Profile view, use Sections to create cross sections. For a thigh or biceps bulge, you might need only one additional cross section in the middle of the link. 4700 | Chapter 17 character studio Above: Sections=1 Below: Sections=8 Divisions Sets the number of control points on the selected cross sections. By default, control points are evenly distributed around the cross section control spline. Above: Divisions=4 Below: Divisions=8 Resolution Sets the number of radial divisions around the cross section. Control points snap to the nearest resolution line. Entire Link When on, selects all cross sections for all bulge angles in the selected link. Use this to globally change parameters for all cross sections on a link. Entire Link also affects Copy Selected CS and Paste Selected CS. While Entire Link is on, Copy Selected CS copies all cross sections for all bulges, and Paste Selected CS pastes all cross sections for all bulges. Entire Link is useful for copying all the bulges from one arm or leg to another. Physique User Interface | 4701 NOTE When you turn on Entire Link, a number of toolbar controls, including the Current Bulge Angle name field, become unavailable. On the Bulge rollout at the Bulge sub-object level, the Current Bulge Angle changes to read “Entire Link.” Physique Load Specification Dialog Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Open Physique (.phy) File. > Choose a file. > Physique Load Specification dialog This dialog appears after you have chosen a Physique (.phy) file to load. It lets you specify which information you want to obtain from the file. Interface At the upper left of the dialog are check boxes that let you specify which kind of data to load. Turn off a check box to avoid loading that kind of data. 4702 | Chapter 17 character studio Link Settings Loads link parameters. Default=on. Bulges Loads cross sections and bulge angles. Default=on. Tendons Loads tendons. Default=on. Envelopes Loads envelopes. Default=on. Locked Vertices Loads locked vertices. All Links Selects all links to load. This button is enabled only if the number of saved links equals the number of open links. Click to select all links in both lists. If All Links is disabled, you must choose links by hand. Click the name of a link in a list to select it. Before you click OK, the number of links to load must equal the number of links to update. No Links Deselects all links in both lists. After deselecting all links, you must select the links to load and to update, before you click OK. Selected Links From File and Selected Links In Modifier At the left of the dialog is a list of the links that were saved in the file, and at the right is a list of links in the currently open Physique skin and skeleton. You can choose which links to update with the saved data. Physique Initialization Rollouts Vertex-Link Assignment Rollout Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Attach to Node. > Select a root object in a viewport. > Physique Initialization dialog > Vertex-Link Assignment rollout Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Reinitialize. > Physique Initialization dialog > Vertex-Link Assignment rollout On the Vertex-Link Assignment rollout, you can choose to create new envelopes and pick the type of blending between links. Physique User Interface | 4703 Interface Deformable Creates deformable envelopes for the links. Default=chosen. Deformable envelopes determine vertex-link assignment based on the deformation spline that Physique creates through the links. Rigid Creates rigid envelopes for the links. Default=not chosen. Rigid envelopes determine vertex-link assignment based upon the linear links in the hierarchy. Blending Between Links This drop-down list lets you choose how links are initially blended. Default=N Links. TIP Typically, you should leave this set to the default of N Links. ■ N Links Vertices are influenced by all overlapping envelopes. 4704 | Chapter 17 character studio ■ No Blending Vertices are influenced by only one (1) link. This allows a mesh with the Physique modifier applied in character studio 1 to work with character studio 3. Choose No Blending if you are developing characters for a game engine that doesn't support blending, or if you intend to use strictly character studio 1-style vertex-link assignments. ■ 2, 3, or 4 Links Vertices are influenced by more than one link, but the number of links is limited to 2, 3, or 4, depending on your choice. Choose one of these options if you are developing characters for a game engine whose support of blending is limited. Radial Falloff Envelopes group Create Envelopes When on, creates envelopes for the links. When off, envelopes are not created. Default=on. NOTE With no envelopes, you have to use hand-weighting for vertices. If you want to add envelopes when a model has none, reinitialize Physique. ■ Object Bounding Box Envelope size is based on the size of objects in the hierarchy, such as biped limbs, or bones. ■ Link Length Each envelope has a Radial Scale that is one-third of the length of the link. Overlap Sets how far the envelopes overlap. Default=0.1. Smooth Sets the distance between the inner and outer bounds of an envelope by scaling the outer boundary. Range=0.0 to 10.0. Default=0.75. Falloff Sets the rate of falloff between the inner and outer boundary of an envelope. The falloff rate is a Bezier function. Range=0 to 10. Default=0.5. Cross Sections Rollout Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Attach to Node. > Select a root object in a viewport. > Physique Initialization dialog > Cross Sections rollout Select an object that has the Physique modifier applied to it. > Modify panel > Physique rollout > Click Reinitialize. > Physique Initialization dialog > Cross Sections rollout Physique User Interface | 4705 The Cross Sections rollout lets you globally set how cross sections are initialized. Interface Number Sets the initial number of cross sections per link. Default=2. Control Points Sets the initial number of control points per cross section. Default=4. Radial Snap Sets the initial number of snap positions per cross section (this is the value labeled “Resolution” in the Bulge Editor on page 4687 and at the Bulge sub-object level on page 4737. Sub-Object Options Dialogs Blending Envelope Display Options Dialog Select a mesh that has the Physique modifier applied to it. > Modify panel > Envelope sub-object level > Blending Envelopes rollout > Display group > Click Display Options. This dialog lets you customize how Physique displays envelope blending at the Envelope sub-object level. 4706 | Chapter 17 character studio Interface NOTE All check box settings except Control Points are on by default. Selected Deformable Envelope and Selected Rigid Envelope groups These two groups have the same controls. By default, deformable envelopes are shown in red, and rigid envelopes are shown in green. Physique User Interface | 4707 Inner Envelope The check box toggles viewport display of inner envelopes. Click the color swatch to change the viewport color of the inner envelope boundary. ■ Sides Sets the number of inner envelope sides shown in the viewport display. Outer Envelope The check box toggles viewport display of outer envelopes. Click the color swatch to change the viewport colors of the outer envelope boundary. ■ Sides Sets the number of outer envelope sides shown in the viewport display. Weighted Vertices The check box toggles viewport display of weighted vertices. Click a color swatch to change viewport colors of weighted vertices in a particular percentage range. Selected Envelope Cross Sections group Cross Sections Toggles viewport display of cross sections. Click the color swatch to change the viewport color of selected cross sections. Control Points Toggles viewport display of control points. Click the color swatch to change the viewport color of selected control points. Bezier Patch Handles Click to set the viewport color of Bezier patch handles. Exclude Envelopes Dialog Select an object that has the Physique modifier applied to it. > Modify panel > Bulge sub-object level > Select an envelope. > Blending Envelopes rollout > Edit Commands group > Click Exclude. At the Envelope sub-object level on page 4717, this dialog lets you exclude links from influencing other links. For example, you can exclude the right thigh link from influencing the left thigh link. Or, rather than scale the index finger envelopes to avoid influencing middle finger vertices, you might exclude the middle finger links from the index finger links. TIP You can leave this modeless dialog open while you choose links in the viewports. 4708 | Chapter 17 character studio NOTE If you have a Physique model created with character studio 1 or 2, excluding links will not work until you reinitialize Physique on page 4683 using the initial skeleton pose. In the Physique Initialization dialog, make sure Vertex-Link Assignments is turned on. Interface Link Envelopes list (left side) Displays the links available for exclusion. Selected links are not in this list. Exclude Envelopes for Selected Link list (right side) Displays envelopes to exclude from the current link selection. The text field displays the name of the selected link, or “Multiple Links Selected.” Right arrow Select links in the Link Envelopes List on the left, then click the right arrow to add them to the Exclude Envelopes For Selected Link list on the right. Physique User Interface | 4709 Left arrow Select links in the Exclude Envelopes For Selected Links list on the right, then click the left arrow to remove them from the exclusion list. Display Subtree When on, the Link Envelopes list increments links according to their level in the hierarchy. This visual aid can help you to find and select links. Default=off. Clear Clears all links from the Exclude Envelopes For Selected Link list. Bulge Angle Display Properties Dialog Select a mesh that has the Physique modifier applied to it. > Modify panel > Bulge sub-object level > Bulge rollout > Display group > Click Display Options. This dialog lets you customize how Physique displays bulge angles at the Bulge sub-object level. 4710 | Chapter 17 character studio Interface Bulge Angle Display group Sides Specifies the number of sides the bulge angle envelope displays in the viewports. Default=4. Scale Specifies the scale of envelope display in the viewports. Default=1.1. Default Color Click to change the bulge angle envelope color in viewports. Active Viewport Display group Selected Cross Sections The check box toggles the display of selected cross sections. Default=on. Click the color swatch to change the color of selected cross sections displayed in viewports. Physique User Interface | 4711 Selected Control Points The check box toggles the display of selected control points. Default=on. Click the color swatch to change the color of selected control points displayed in viewports. Orientation Bar The check box toggles the display of the orientation bar. Default=on. Click the color swatch to change the color of the orientation bar displayed in viewports. NOTE The orientation bar is displayed in the viewports when the Bulge Editor is open. Profile The check box toggles the display of the profile. Default=on. Click the color swatch to change the color of the profile displayed in viewports. NOTE The bulge profile displays in the viewports when the Bulge Editor is open. Tendon Display Options Dialog Select a mesh that has the Physique modifier applied to it. > Modify panel > Tendons sub-object level > Tendons rollout > Display group > Click Display Options. This dialog lets you customize how Physique displays tendons at the Tendons sub-object level. 4712 | Chapter 17 character studio Interface Tendon Cross Sections The check box toggles the display of tendon cross sections. Default=on. Click the color swatch to change the color of tendon cross sections displayed in viewports. Tendon Attach Points The check box toggles the display of tendon attach points. Default=on. Click the color swatch to change the color of attach points displayed in viewports. Tendon Attached Links The check box toggles the display of attached links. Default=on. Click the color swatch to change the color of attached links displayed in viewports. Selected Tendon Elements group Cross Sections Click to change the viewport color of selected cross section. Physique User Interface | 4713 Attach Points Click to change the viewport color of selected attach points. Attached Links Click to change the viewport color of selected attached links. Type-In Weights Dialog Select a mesh that has the Physique modifier applied to it. > Modify panel > Vertex sub-object level > Vertex-Link Assignment rollout > Vertex Operations group > Click Select by Link. > Click a link in a viewport. > Lock Assignments > Click Type-In Weights. Lets you enter a weight for selected locked vertices. To use this dialog, select one or more vertices, then lock them, click Type-In Weights to display the Type-In Weights dialog, use the lists in the dialog to select a link, and then change the weight to that link in order to position the vertices (vertex positions update in viewports as the weight changes). NOTE You'll primarily use Type-In Weights to correct flaws on low- to medium-resolution meshes. On a high-resolution mesh, adjusting envelopes should be used to correct deformation. TIP Adjust weights for stubborn vertices that fall in blended regions between two or more envelopes. Subtle adjustments can be made to the vertex weights of specific links that would be difficult to achieve by adjusting envelopes alone. 4714 | Chapter 17 character studio Interface Link Name Use the drop-down list to select a link and display the vertex weight to that link. Currently Assigned Links Only When chosen, displays only those links that presently influence the selected vertices. All Links When chosen, displays all available links. Weight Displays the vertex weight for the active link (the link currently displayed by the Link Name list). Use the spinner to change the weight value, if necessary. Absolute Uses an absolute value for vertex weight. Normalized This option is unavailable in character studio. Physique User Interface | 4715 Relative Scale Uses relative values for vertex weights. This is the mode of choice when you work on multiple vertices. If a particular link is not having a strong enough effect on the selected vertices, you should lock them, open the Type-In Weights dialog, select the link, and choose Relative Scale. Then you can enter relative values in the Weight field. For example, entering 1.0 leaves weights the same, while entering 2.0 would double the effect of the selected link on the selected vertices. List of links Displays a list of links, with weight values at the right. The weight field is blank when it displays absolute weights. (When more than one vertex is selected, each is likely to have a slightly different weight.) Click a link in this list to select it. Physique Modifier Sub-Object Levels Physique Sub-Objects Select an object that has the Physique modifier applied to it. > Modify panel > In the modifier stack display, expand the Physique sub-object hierarchy. The Physique modifier has five different sub-object levels. Each kind of sub-object has various controls. ■ Envelope on page 4717 Envelopes define a link's area of influence on mesh vertices. ■ Link on page 4725 Links are the segments of the Physique deformation spline on page 4726. Link sub-object controls adjust the way link movement affects the mesh. ■ Bulge on page 4737 Bulge controls are for creating flexing muscles. 4716 | Chapter 17 character studio ■ Tendons on page 4747 Tendons provide a way for multiple links to affect an area of the mesh. ■ Vertex on page 4753 For Physique, Vertex controls let you fine-tune the influence of envelopes. Physique Selection Status Rollout This rollout appears for all of the Physique sub-object levels. For all levels except Vertex, it shows the name of the hierarchy object associated with the active link. For the Vertex sub-object level, it prompts you to “Select Vertices” unless Select By Link or Assign To Link is active, in which case it displays the name of the hierarchy object associated with the active link, as it does at other sub-object levels. Envelope Sub-Object Select an object that has the Physique modifier applied to it. > Modify panel > Bulge sub-object level Use Envelope sub-objects to adjust the way skin behaves. Each link has an envelope, and the shape of the envelope determines which vertices are affected by the link's movement. An envelope has an inner and an outer bound: outside these bounds, vertices are not effected. Inside these bounds, the envelope's influence is strongest at the inner bound. A Falloff setting lets you control how quickly influence falls as it approaches the outer bound. Envelopes also control blending: they provide smooth deformation of the skin across joints. Vertices that fall between overlapping envelopes receive influence from each, thus creating a smoothly blended transition. The outer bounds of the envelopes of adjacent links should overlap enough to provide a smooth blend at the joints. You can adjust the relative strength of envelopes, giving one link's envelope more influence than another. At the Envelope sub-object level, in addition to the settings already mentioned, you can adjust an envelope's Radial Scale. This is useful for making sure the envelope encloses vertices along the length of the link. The settings for Physique User Interface | 4717 Strength, Falloff, Radial Scale, and Overlap are grouped under Envelope Parameters on page 4722. Envelopes have cross sections. You can add cross sections to refine the shape of an envelope, and you can move or scale a cross section's control points to change the cross section's shape. (Cross sections are also used to create bulges on page 4737.) TIP You can also use tools on the Main toolbar to adjust envelopes. For example, you can use Non-Uniform Scale on envelopes and cross sections, or use Select And Move to move envelopes, cross sections, or control points on cross sections. Workflow The goal is to modify the envelopes so each vertex in the mesh is encompassed by at least one link's envelope. Usually the first adjustment is to assign a rigid envelope to the character's head. A rigid envelope blends with other envelopes but retains the shape of the mesh. The head should not deform with the deformation spline. With Initial Skeletal Pose turned on, check that the envelopes enclose all areas of the mesh. If you turn off Initial Skeletal Pose, the character adopts its animated position at the current frame. Use an animation that stretches the character around, such as a run or dance motion. Find a frame where the envelopes need adjusting, and edit the envelope parameters. Changing the envelopes with the character in an animated position will always reference the Initial Skeletal Pose. These are some frequently encountered problems with the default vertex assignment: ■ Vertices that don’t follow the skeleton. To correct this, increase the Radial Scale of an envelope's outer boundary. ■ Vertices at joints get pushed or dented in. Too many envelopes might be affecting these vertices. Try reducing the Radial Scale of the inner bound, and reduce the Overlap values of the links on both sides of the joint. ■ Bending appears too linear or broken at the joint. Increase the envelope’s outer Overlap value toward the link on the other side of the joint. Some further adjustments are described in the “Procedures” section that follows. 4718 | Chapter 17 character studio NOTE An envelope does not need to enclose Patch tangent handles. It needs to enclose only the patch vertices. This relieves you from having to scale the envelopes to a large size to encompass tangent handles. Procedures See Adjusting Default Envelope Shape on page 4632 Interface Controls for Envelope sub-objects are on the Blending Envelopes rollout. Physique User Interface | 4719 Selection Level group Link Turn on to select links in the viewports and edit the selected link's envelope parameters. For example, you might turn on Link, select a biceps link, Ctrl+click to add the opposite bicep to the selection, then edit envelope parameters for both links at the same time. Cross Section Turn on to edit envelope cross sections, changing the envelope's shape and thus its area of influence. For example, you might turn on Cross Section, select a cross section on the inner or outer boundary of an envelope, and then move or scale it. You might Non-Uniform Scale the cross section of a collar envelope so it avoids vertices in the chest area. Control Point Turn on to edit the control points on a cross section. For example, you might turn on Control Point, select a point on a cross section of an envelope, and move the point to change the envelope's shape and area of influence. Previous and Next Click to move to the next or previous link, cross section, or control point, depending on which selection level is active. Active Blending group 4720 | Chapter 17 character studio Deformable When on, enables a deformable envelope for the selected links. Default=on. By default, deformable envelopes are shown in red. Rigid When on, enables a rigid envelope for the selected links. Default=off. By default, rigid envelopes are shown in green. IMPORTANT You can have both a deformable and a rigid envelope turned on for the same link. Normally, you use one or the other. By non-uniform scaling the rigid and deformable envelopes for one link, you can position one envelope on top of the other. For example, you could control the shoulder with a rigid envelope and the armpit with a deformable envelope. Both envelopes can also be turned off for a link. Partial Blending Turns on partial blending for the selected links. Leave either a deformable or rigid envelope on, and then turn on Partial Blending. Physique calculates the weights of each link on a given vertex. If Partial Blending is off, and the total weight is less than 1, Physique normalizes the combined weight to 1. If Partial Blending is on, the weights are allowed to remain at a value of less than 1. The remainder is filled in by the root node, the equivalent of no influence. See Partial Blending and Weight Assignments on page 4646 for a detailed explanation of how the program calculates these values. Physique User Interface | 4721 Partial Blending on all the deformable envelopes for the bones in this character’s jaw allows smooth mesh deformation when the bones are moved. Envelope Parameters group Envelope type drop-down list Shows the type of the selected envelope. If the link has both a rigid and a deformable envelope, you can use this list to choose which envelope's parameters you are adjusting. 4722 | Chapter 17 character studio Strength Changes the strength of the envelopes. Range=0.0 to 100.0. Default=1.0. Strength applies to both the inner and outer envelope bounds. Used primarily for areas where envelopes overlap, and you want one to be more influential than the other. Falloff Changes the rate of falloff between the inner and outer bounds of an envelope. This is a Bezier curve function. Range=0.0 to 1.0. Default=0.1. Vertices within the inner bound are fully influenced (weight=1.0) and those beyond the outer bound get no influence from the link (weight=0.0). Falloff determines the rate at which the influence falls off from 1.0 to 0.0. The Inner, Outer, and Both buttons determine whether the controls that follow, Radial Scale, Parent Overlap, and Child Overlap, apply to the envelope's inner bound, its outer bound, or both at once. First, use the buttons to choose which bounds to adjust, then change values in the spinners. Inner Turn on to change the values of the inner bound. Outer Turn on to change the values of the outer bound. Both Turn on to change the values for both inner and outer bounds at the same time. When Both is selected, the values displayed for Radial Scale and Parent and Child Overlap reflect the values for the inner bound. Radial Scale Radially scales the envelope bounds. Range=0.0 to 100.0. Default=1.0. Parent Overlap Changes the envelope's overlap with the parent link in the hierarchy. Range= -1.0 to 10.0. Default=0.1. A value of 0.0 causes the end of the envelope to fall on the joint. Values less than 0.0 bring the envelope inside the link, and values above 0.0 will overlap onto the adjoining link. Child Overlap Changes the envelope's overlap with the child link in the hierarchy. Range= -1.0 to 10.0. Default=0.1. A value of 0.0 causes the end of the envelope to fall on the joint. Values less than 0.0 bring the envelope inside the link, and values above 0.0 will overlap onto the adjoining link. Physique User Interface | 4723 Edit Commands group NOTE Which buttons are available in this group will vary, depending on whether Links, Cross Sections, or Control Points is the active selection level. Insert Inserts a cross section or control point on a cross section. Delete Deletes a cross section or control point. Copy Copies an envelope or cross section. Paste Pastes an envelope or cross section. Exclude Clicking this button displays the Exclude Envelopes dialog on page 4708. You can exclude a link from influencing another link. For example, you can exclude the right thigh link from influencing the left thigh link. Or, rather than scale the index finger envelopes to avoid influencing middle finger vertices, exclude the middle finger links from the index finger links. Mirror Mirrors the envelopes on a selected link, or mirrors selected cross sections in an envelope. After a Mirror operation, you can adjust the orientation by clicking Rotate on the Main toolbar, choosing Local coordinates, and then clicking and dragging the link or cross section. TIP To copy an envelope to its mirror, the sequence should be Copy, select the opposite link, Paste, then Mirror. 4724 | Chapter 17 character studio Display group Interactive Redraw When on, Physique dynamically updates the mesh while you adjust envelopes. When off, the mesh updates only when you enter a final value (you press Enter or Tab, or release the mouse). Default=on. Initial Skeletal Pose When on, puts the mesh character in the pose it was in just before Physique was applied. Default=off. Display Options Clicking this button displays the Blending Envelope Display Options dialog on page 4706, which lets you customize envelope display. Shaded Toggles shaded display of vertex weights in the viewports. Default=off. Link Sub-Object Select an object that has the Physique modifier applied to it. > Modify panel > Link sub-object level Use parameters at the Link sub-object level to change how deformation around joints occurs. When a joint in the skeleton bends or rotates, Physique, by default, deforms vertices uniformly on either side of a joint. You can change these defaults by using the tools at the Link sub-object level. For example, you can adjust the amount of skin sliding that occurs along a limb as the limb bends, or change the angle of the crease between the upper arm and chest. Physique User Interface | 4725 The Physique Deformation Spline The deformation spline displays as a yellow curve that runs through the mesh. Like a spline object, the deformation spline created by Physique is a continuous curve through several points. While a spline object runs continuously from 4726 | Chapter 17 character studio vertex to vertex, the deformation spline is a smooth curve running from joint to joint. The Bend, Bias, and Tension spinners can change the shape of the curve, much as you can rotate or scale the handles at a spline vertex. The deformation spline also takes into consideration twisting and scaling of the skeleton’s links. At the Link sub-object level, you take control of the behavior of the deformation spline, and subsequently gain full control of the skin’s behavior relative to the skeleton’s movement. Interface Link Settings Rollout on page 4727 Joint Intersections Rollout on page 4734 Link Settings Rollout Select a mesh that has the Physique modifier applied to it. > Modify panel > Link sub-object level > Link Settings rollout Controls on the Link Settings rollout let you adjust the behavior of the selected link. See also: ■ Joint Intersections Rollout on page 4734 Physique User Interface | 4727 Interface Active When on, activates the selected link. Default=on. Turning off Active makes the link unavailable for vertex assignment, meaning that the link has no influence on any vertices. Vertices within range of this 4728 | Chapter 17 character studio link are not influenced by it, and can be “picked up” by other nearby envelopes, or can be manually assigned (without blending) to any other link. Turning off Active makes Physique ignore the link as if it were never part of the skeleton. Continuity Maintains a smooth transition across the joint from the parent link to the current link. Default=on. When Continuity is on, the effect of the link parameters passes smoothly across the joint to the connected link. When Continuity is off, Bend, Twist, and Radial Scale settings are limited to the current link, which produces an abrupt transition across the joint. This is analogous to breaking the spline handles on a spline shape. Bulge Editor Displays the Bulge Editor on page 4687. The Bulge Editor displays bulge cross sections schematically, letting you create and edit bulge controls. Reinitialize Selected Links Reinitializes the link and its vertex parameters based on the current link parameter settings. Clicking Reinitialize Selected Links does not change vertex assignments or manual reassignments. For example, increasing the tension of a link can cause the spacing to change for the link’s cross sections. Reinitialize Selected Links smoothes the spline, and makes cross section spacing even again. Think of the skin being snugly stuck to the link. As the link parameters change, the vertices can bunch up or stretch out. Clicking Reinitialize lets the skin “slip” to its original shape, establishing a new relationship to the deformation spline. Bend group Tension Sets the smoothness of a joint. Tension affects the curvature of the deformation spline through the joint. A low value, near 0.0, makes the spline linear and creates a sharp angle at the joint, like bending a hinge. High values, near 2.0, make the spline smooth through the joint, creating a rounded joint, like bending a firm hose. Range=0.0 to 2.0. Default=0.5. Physique User Interface | 4729 Bias Displaces the pivot point about which vertices are bent. Bias pushes the effect along the spline toward one side of the joint or the other. The default value of 0.5 centers the bend at the joint. Values lower than 0.5 move the pivot onto the child link. At 0.0, the bend effect is limited to the selected link. Range=0.0 to 1.0. Default=0.5. Twist group Twist parameters control the way the skin deforms when a joint rotates along its length, as in turning a doorknob. Use Twist for Rigid When on, twist is used for rigid as well as deformable envelopes. Default=off. Turn off for the rigid envelope for a character's head: the head should not twist along the length of the link. You might want to turn this on for the forearm or upper-arm link if you’re using rigid envelopes. Tension Values lower than 1.0 concentrate the effect closer to the joint. Values higher than 1.0 move the effect away from the joint. Range=0.0 to 2.0. Default=1.0. Bias Shifts the distribution of the twist from one side of the joint to the other. The default value of 0.5 twists the selected link and the child link equally. Values greater than 0.5 shift the twist to the child link. Range= 0.0 to 1.0. Default=0.5 Sliding group 4730 | Chapter 17 character studio Skin sliding parameters control the amount of skin sliding that occurs when a joint rotates. Without skin sliding, vertices closest to the joint tend to compress on the inside and stretch apart on the outside, generally revealing the segments of the mesh. Outside sliding causes the vertices around the joint to move toward the joint, preventing localized stretching on the side that is greater than 180 degrees. Inside sliding causes the vertices to relax and slip away from the joint, preventing bunching of vertices on the side having an angle less than 180 degrees. TIP Use sliding for knees and elbows. Inside As values increase, skin moves away from the joint. Range=0.0 to 1.0. Default=0.0 (no inside sliding). Outside As values increase, skin moves toward the joint. Range=0.0 to 1.0. Default=0.0 (no outside sliding). Above: Inside and Outside set to 0.0 (no sliding) Below: Inside and Outside set to 0.25 (sliding creates a smoother bend) Physique User Interface | 4731 FallOff As values increase, the effect is localized to the joint. Range=0.0 to 1.0. Default=0.5. Radial Scale group Radial Scale parameters expand or contract the skin by scaling the radial distance perpendicular to the link. They apply to any combination of user-definable scale, bulge settings, or link length. Tension Values between 0.0 and 1.0 concentrate the effect closer to the joint. The effect is closest to the joint when Tension is 0.0. Values greater than 1.0 move the effect away from the joint. Range=0.0 to 2.0. Default=0.5. Bias Shifts the effect of radial scaling. At the default value of 0.5, scaling affects both the selected link and the child link. Values lower than 0.5 shift the scaling effect onto the selected link, and values greater than 0.5 shift scaling onto the child link. At 0.0, expansion and contraction are limited to the selected link. At 1.0, expansion and contraction are limited to the child link. Range=0.0 to 1.0. Default=0.5. Link Scale Scales the entire link radially, independent of the effect of any cross sections. At 1.0, the link is “actual size” and this setting has no effect. Other values increase or decrease the radial scale of the link. Range=0.0 to 10.0. Default=1.0. CS Amplitude Cross section amplitude has no effect unless the link has bulge angle cross sections. At 0.0, cross section deformation is turned off. Values greater than 1.0, up to the maximum of 10.0, exaggerate the effect of cross sections. Default=1.0. Stretch When on, preserves the volume of the link’s skin when the length of the link changes. The effect is similar to stretching or squeezing a material that is only partly elastic, such as a tough rubber hose. Default=off. 4732 | Chapter 17 character studio Above: Stretch is turned on. Below: Stretch is turned off. As the bones change in length, the mesh expands and contracts when Stretch is on. Breathe When on, scaling a skeleton node changes the radial scale of the link’s skin. When off, scaling a node has no effect on the scale of the skin. Default=off. Physique User Interface | 4733 Above: Breathe is turned on: the mesh is scaled as the object is scaled. Below Breathe is turned off: object scaling doesn't effect the mesh. The linked objects are shown in white. The lowest, largest object is the one that has been scaled. These linked objects were used as the hierarchy for Physique. Joint Intersections Rollout Select a mesh that has the Physique modifier applied to it. > Modify panel > Link sub-object level > Joint Intersections rollout When a joint bends, the skin can "collide." Without collision detection, it can overlap unrealistically. This is especially likely when one or both of the links have bulges. The joint intersection controls can detect skin collisions and correct overlap by creasing the skin. By default, Physique draws a crease plane that bisects the joint and prevents vertices from each link from crossing the crease plane. The result can be a somewhat unnatural flattening of the bulges along the plane. Physique therefore provides controls that let you modify the effect of the crease plane. Properly adjusted crease plane 4734 | Chapter 17 character studio You can modify the effect of the joint creases at both ends of the selected link. These joints are the parent’s joint and the link’s joint. Blend From and Blend To points define the distance along the link that is affected by the crease plane. ■ The parent’s joint is between the selected link and its parent. The parent’s joint is numbered 0. For the parent joint, the joint is at 0.0 and the crease plane has an effect from the joint to the Blend From point. Between Blend From and Blend To, the crease plane has a partial effect, adjusted by the Bias setting. Vertices at locations greater than the Blend To point are not affected by the crease plane. ■ The link’s joint is between the selected link and its child. The link’s joint is numbered 1. For the link’s joint, the joint is at 1.0 and the crease plane has an effect from the joint to the Blend To point. Between Blend To and Blend From, the crease plane has a partial effect, adjusted by the Bias setting. Vertices at locations less than the Blend From point are not affected by the crease plane. Procedures To adjust joint intersection parameters: 1 With Physique active on the Modify panel, go to the Link sub-object level. 2 In a viewport, click the link you want to work with. 3 Select Active for the crease you want to manipulate: choose Crease At Parent's Joint or Crease At Link's Joint. 4 Change settings on the Physique Joint Intersections rollout. 5 Select the opposite link and adjust the opposite set of joint intersection parameters. For example, if you are working with the joint between the selected link and its child (such as the biceps link), turn on Active for Crease At Link's Joint and change settings. Then select the child link (the forearm) and activate its Crease At Parent's Joint. Adjustments to the Parent's Joint for this link affect the other side of the same crease. Physique User Interface | 4735 Interface Both the parent's and the link's joint have the same controls: Active Turns off the effects of the joint intersection controls. When this box is cleared, Physique makes no compensation for overlapping bulges. Default=off. Blend From The area between Blend From and Blend To contains vertices that are partially affected by the crease plane. These vertices will be shifted, but not as much as those between the crease plane and the point where this joint begins to blend (Blend From in the parent's case, Blend To in the link's case). The distance of the vertices from the crease plane determines the exact amount of shifting. Vertices within the blend region that are closer to the intersection plane are shifted more than the vertices further away from it. Default=0.0. Blend To Indicates the distance beyond which the crease plane has no effect. Default=1.0. Bias Sets the strength of the crease plane effect within the blended region. A value of 0.0 means that the intersection plane will have no effect within the 4736 | Chapter 17 character studio blended region; a value of 1.0 means that it will have a full effect within the blended region. Default=0.25. Bulge Sub-Object Select an object that has the Physique modifier applied to it. > Modify panel > Bulge sub-object level After you have edited envelope sub-objects on page 4717 for good overall mesh deformation, you can create bulges to simulate muscle contraction and expansion when a character’s joint rotates. A bulge angle requires two links: the selected link, and the child link of that selection (for example, an upper arm and forearm). The joint that separates the two is referred to as the bulge joint. Any rotation applied to this joint becomes the angle used to center the effect of a bulge angle. Physique creates a single default bulge angle for each bulge joint in the attached skeleton. The angle of this joint is that of the initial skeleton pose. This is the pose the skeleton had when the Physique modifier was applied to the skeleton, or when you use Reinitialize on page 4683 and turn on Initial Skeleton Pose in the Physique Initialization dialog. To create a bulge, you need to add only a single additional bulge angle. You can add further bulge angles to refine the bulge effect. Workflow to Create a Biceps Bulge The overall steps for creating a biceps bulge are: ■ Insert a new bulge angle. Give the new bulge angle a custom name and color. ■ Set the bulge angle at a point where the joint is flexed; for example, at 90 degrees. ■ Insert a cross section on the upper arm. ■ Use control points (or the Bulge editor on page 4687) to shape the bicep bulge. The following paragraphs elaborate these steps. Physique User Interface | 4737 Above: Default bulge angle at the initial pose. Below: Bicep bulges at the custom bulge angle of 90 degrees. The new bulge angle has been assigned a red color. To create a biceps bulge angle, go to the Bulge sub-object level. In the Selection Level group, turn on Link. Select the upper arm link, then click Insert Bulge Angle; the bulge angle name increments from 0 to 1 in the Current Bulge Angle field, indicating that a new bulge angle has been created. Type a descriptive name for the new bulge angle in the Current Bulge Angle field; for example, Arm at 90. Click Bulge Angle Color and select a color for the newly created bulge angle. When Select Nearest Bulge Angle is active, the bulge angle color changes as the joint bends; this is a good visual indicator of which angle has the most influence at any given frame. Scrub the time slider to a frame where the arm is bent to 90 degrees, then click Set Bulge Angle (you can also rotate the joint). NOTE The Set Bulge Angle command records only the angle between the biceps and forearm, not the frame number where that angle occurs. The bulge will occur at any frame where the elbow is at the bulge angle. In the Selection Level group, click Cross Section. Then in the Cross Section Parameters rollout, click Insert. In a viewport, position the cursor over the upper arm link, and click to place the new cross section for the biceps. 4738 | Chapter 17 character studio On the Selection Level rollout, click Control Point. To shape the cross section, move the cross section control points in the viewports, creating a bulge. Click Play. The biceps should grow as the angle of the character’s arm approaches 90 degrees. If Select Nearest Bulge Angle is active, the bulge angle gizmos change colors, depending on which angle has the greatest influence. Go to the Link selection level and use Copy, Paste, and Mirror to create an identical bulge angle for the opposite arm. TIP When you use Physique with a biped, load a .bip file that will rotate the character’s limbs. Turn on In Place mode before you scrub the time slider to locate appropriate limb angles. This keeps the character (the biped) in the viewports. Bulge Editor The Bulge Editor on page 4687 duplicates many of the controls at the Bulge sub-object level. The benefit of using the Bulge Editor is that bulge angle data is represented graphically, and provides an alternative way of creating, selecting, and editing cross sections. Rather than editing cross section control points in the viewports to "bulge" the mesh, you might prefer to open the Bulge Editor and move control points in the Bulge Editor’s Cross Section view. Procedures To create a new bulge angle on a selected link: 1 With Bulge sub-object active, turn on Link in the Selection Level group. 2 Select a link in a viewport. 3 Click Insert Bulge Angle. This creates a new bulge angle. The name in the Current Bulge Angle field increments. NOTE By default, one bulge angle is created by Physique in the initial skeletal pose; the arm is usually straight in this pose. 4 In the Current Bulge Angle field, enter a name, such as Arm at 90. 5 Click the Bulge Angle Color swatch and choose a color in the color selector. This makes identification easier. Physique User Interface | 4739 Now you need to set a joint angle for the newly created bulge angle. 6 Move the time slider until the joint is at the desired angle. If the skeleton is not yet animated, you can exit the Bulge sub-object level, rotate the skeleton's joint until it is at the desired angle, then return to the Bulge sub-object level. 7 Click Set Bulge Angle. The joint angle between the link and its child is recorded (for example, if a biped's upper arm link is selected, Set Bulge Angle records the angle created by the upper arm and the forearm.) 8 In the Selection Level group, turn on Cross Section. Then in the Cross Section group, click Insert. In a viewport, click the link at the point where you want the new cross section to be. 9 Scale the cross section or move its control points to create the bulge. To move individual control points, use the Control Point selection level. 10 Enter 80.0 in the Influence field. If the bulge angle is for a biceps bulge when the forearm and upper arm create a 90-degree angle, the bulge begins to appear at 10 degrees. To copy all Bulge angles from one link to its opposite: 1 Go to the Bulge sub-object level. 2 In the Selection Level group, turn on Link. In a viewport, select a link to copy. 3 Choose Entire Link from the Current Bulge Angle drop-down list. 4 In the Cross Section Parameters rollout, click Copy. 5 In a viewport, select the opposite link. 6 In the Cross Section Parameters rollout, click Paste, and then click Mirror. All the bulge angles from the first link are pasted to the opposite link, then mirrored. 4740 | Chapter 17 character studio To choose a specific bulge angle for editing: 1 Click the arrow of the Current Bulge Angle drop-down list. The full list of bulge angle names appears for the current link. 2 Click the name of the bulge angle you want to edit. The viewports update to show the cross sections associated with the newly selected bulge angle. To change a bulge angle value: 1 Make sure the bulge angle's name is displayed in the Current Bulge Angle drop-down list. 2 Move the time slider to a frame that displays the angle you want to record, or use transforms to change the angle between the active link and its child link. 3 In the Bulge Angle Parameters group, click Set Bulge Angle. To delete a bulge angle: 1 Click the arrow of the Current Bulge Angle drop-down list. The full list of bulge angle names is displayed. 2 Click the name of the bulge angle you want to delete. 3 Click Delete Bulge Angle. You can’t delete the default bulge angle: a link must always have at least one bulge angle defined. To use Select Nearest Bulge Angle: The Select Nearest Bulge Angle button can help you identify the bulge angle that has the greatest effect at the current pose. 1 In the Selection Level group, click Select Nearest Bulge Angle. 2 Scrub the time slider or rotate the joint. The bulge angle named in the drop-down list changes to show the most influential bulge at each skeleton pose. Physique User Interface | 4741 Interface Controls for the Bulge sub-object level are on the Bulge rollout. 4742 | Chapter 17 character studio Selection Level group Link Turn on to select links in the viewports. The Copy, Paste, and Mirror commands are enabled for links. Cross Section Turn on to select and edit cross sections in order to "bulge" the mesh. The Insert, Delete, Copy, Paste, and Mirror commands are enabled for cross sections. Control Point Turn on to edit cross section control points. Previous and Next Click to select the next or previous link, cross section, or control point, depending on the selection level. Bulge Editor Click to display the Bulge Editor on page 4687, which lets you create and edit bulge angles using the schematic Cross Section and Profile views Select Nearest Bulge Angle Turn on to select the bulge angle nearest to the current joint angle. If a joint bends over time, this lets you use the time slider to select a bulge angle. If you click Play, you can see the Current Bulge Angle field change to reflect the nearest bulge angle to the current angle of the selected link and its child (if two or more bulge angles for the limb exist). Physique User Interface | 4743 Current Bulge Angle (field and drop-down list) Displays the current bulge angle. You can enter a descriptive name for a newly created bulge angle. When you click Insert Bulge Angle, this field displays the new bulge angle name. Use the drop-down list to select other bulge angles. Entire Link This choice in the Current Bulge Angle drop-down list selects all cross sections for all bulge angles in the active link. Use this to change cross section settings globally for a link. This also affects the Copy and Paste commands. While Entire Link is chosen, Copy Cross Section copies all cross sections for all bulges, and Paste Cross Section pastes all cross sections for all bulges. TIP Entire Link is useful for copying all the bulges from one arm or leg to another. Bulge Angle Color Click the color swatch to change the color of the current bulge angle. Giving each bulge angle a different color is a convenient way to distinguish between them. Bulge Angle Parameters group Set Bulge Angle Changes the angle value to the skeleton’s current joint angle on the current bulge angle (visible in the Current Bulge Angle field in the Selection Level group). First use Move or Rotate in a viewport to change the angle between the selected link and its child, then click Set Bulge Angle. Insert Bulge Angle Adds a new bulge angle for the selected link. The Current Bulge Angle field displays a bulge angle name with the number 4744 | Chapter 17 character studio incremented. You can enter a descriptive name for a new bulge angle, such as Arm at 90. By default, one Bulge Angle is created in the Figure mode pose when Physique creates links. Only one additional bulge angle is needed to bulge the mesh. You can create more bulge angles for further control, if you want. Delete Bulge Angle Removes the current bulge angle from the selected link. You cannot delete the default bulge angle. Influence The range of angles through which the bulge influences the skin. Range =0 to 180. Default=90 degrees. For example, if you’ve set a bulge angle for the joint at 90 degrees, an Influence value of 40 means that the bulge effect begins to appear when the rotating joint reaches 50 degrees (90 minus 40) or 130 degrees (90 plus 40). Power Controls how smoothly or abruptly the bulge takes effect. At 0.0, the bulge takes effect immediately, without interpolated easing. As values increase, the bulge eases in gradually. A value of 10.0 will bulge the mesh abruptly when the set angle is reached. Range=0 to 10.0. Default=2.5. Weight Increases the effect of the current bulge angle relative to the effect of any other bulges. Range=0.0 to 100.0. Default=1.0. Cross Section Parameters group Sections Sets the number of cross sections for the selected link. Physique User Interface | 4745 Divisions Sets the number of control points around the cross section. By default, control points are evenly distributed around the circumference of the cross section. Resolution Sets the number of radial divisions around the cross section. Control points snap to the nearest resolution line. NOTE The buttons that follow, Insert, Delete, Copy, Paste, and Mirror, work according to which level is active in the Selection Level group. Insert Creates a new cross section or control point. Delete Deletes the active cross section or control point. Copy Copies the active link (with its bulge angles) or cross section. Paste Pastes a link (with its bulge angles) or cross section. To copy and paste all the bulge angles from one link, choose Entire Link from the Current Bulge Angle drop-down list, and then click Copy. Select the opposite link and click Paste. Click Mirror to mirror the pasted link parameters. Mirror Mirrors bulge angles and cross sections on bulge angles. If necessary, you can then use Select And Rotate to orient the bulge angles and cross sections. Display group Interactive Redraw Turn on to deform the mesh in real time while you edit cross sections in the viewports. Turn off to update the mesh only when you release the mouse. Default=on. TIP Turn off Interactive Redraw when working on a slow system, or with a dense mesh that takes a long time to compute. Initial Skeletal Pose When on, puts the mesh into its original pose; that is, the pose it was in when Physique was first applied. Default=off. 4746 | Chapter 17 character studio Display Options Click to display the Bulge Angle Display Properties dialog on page 4710, which lets you customize the viewport display of bulges. Tendons Sub-Object Select an object that has the Physique modifier applied to it. > Modify panel > Tendons sub-object level While envelopes provide smooth skin deformations, tendons provide additional stretching in much the same way that actual human tendons do. For example, you might create pulling in the wrist (several joints away) when the fingers are moved. After adjusting the envelope sub-objects on page 4717 for good mesh deformation, you can use tendons to control the amount of skin stretching across multiple links. Workflow Example To create a tendon from the spine to the upper arm, go to the Tendon sub-object level. Select a spine link. In the Insert Settings group, click to turn on Insert, and then click the selected link to position the tendons. A tendon cross section is added to the link. Turn off Insert. In the Selection Level group, turn on Cross Section. Using the Rotate tool (on the Main toolbar), rotate the cross section so its control points are in useful locations. In the Tendon Parameters group, use the Radius spinner to scale the cross section radius so the control points fall close to the surface of the skin. In the Selection Level group, turn on Control Point. Select a control point on the spine tendon's cross section, click Attach, and then click the arm link. A tendon stretches from the spine to the arm. Finally, adjust the values of Pull, Pinch, and Stretch to refine the movement of the skin. Physique User Interface | 4747 Tendons connecting upper chest to arms Procedures See Creating Tendons on page 4653 Interface Controls for Tendon sub-objects are on the Tendons rollout. 4748 | Chapter 17 character studio Selection Level group Link Click to select a link. Cross Section Click to select and edit tendon cross sections. Control Point Click to edit control points on tendon cross sections. Previous and Next Click to go to the previous or next link, tendon cross section, or control point (depending on the active selection level). Insert Settings group Sections Sets the number of base cross sections for the tendon. Default=1. Attach Points Sets the number of attach points around the tendon’s base cross section. Default=6. Resolution Sets the radial resolution around the base cross section. Attach points are constrained to one of the radial resolution lines. Default=60. Physique User Interface | 4749 Insert Turn on to insert a new cross section on the selected link, or to insert a control point on a cross section. The action depends on the active selection level: Link, Cross Section, or Control Point. Delete Click to delete the selected cross section or control point. The action depends on the active selection level: Link, Cross Section, or Control Point. Tendon Parameters group Radius Scales attach points relative to the center of the cross section. Default=The average circumference of the skin where the tendon base is located. Pull Defines the strength of pull along the length of the link. Default=1.0. Pinch Defines the amount of pinch around the link circumference of the tendon base. Default=1.0. Stretch Defines the amount of stretch toward the attached link. Default=1.0. The Pull, Pinch, and Stretch values work together to control, along a particular dimension, the strength of the one link (the attached link; call it link B) on vertices assigned to another link (the link where the tendon cross sections are inserted; call it link A). Vertices on link A behave as if they were under the influence of link B. Pull, Pinch, and Stretch can all range from -2.0 to 2.0. At the default value of 1.0, the tendon's effect is full strength. Reducing the value of these parameters to a value between 0.0 and 1.0 reduces the strength of the tendon's effect. At values below 0.0, the tendon deforms the skin in the opposite direction. Pull, Pinch, and Stretch values between 1.0 and 2.0 cause an exaggerated effect, which is not usually needed for realistic effects. TIP Setting Stretch less than 0.0 can be useful in regions where movement typically pulls the skin inwards, as in the collarbone area or the buttocks. 4750 | Chapter 17 character studio TIP As a general rule, leave the tendon values at 1.0 when the tendon is attached to a nearby link. For example, leave them at 1.0 between the upper spine (at the chest) and the arms. Reduce the Pull, Pinch, and Stretch values to reduce the tendon's effect when the tendon is attached to a more distant link. For example, reduce them between a lower part of the spine and the arms. Edit Commands group Attach To attach a point, select the point, click to turn on Attach, then in a viewport, click a different link. Detach At the Control Point selection level, detaches the tendon of the selected control point. At the Cross Section selection level, detaches all of the cross section's attached tendons. At the Link selection level, detaches all attached tendons on all cross sections of the selected link. Upper Boundary Conditions group Connect to Child Link When on, allows tendons to affect the child link. This lets you connect tendons across several links. Otherwise, there is a boundary between the links where no tendon effect occurs. Default=off. Upper Bound Sets the upper boundary overlap. Upper Boundary values greater than 1.0 affect the child link. Default=1.0. Physique User Interface | 4751 WARNING Tendons that span several links can conflict with joint intersection parameters. In these cases, go to the Link sub-object level on page 4725, and turn off Active to deactivate the joint intersection parameters for the joints that the tendon spans. (These controls are in the Joint Intersections rollout on page 4734.) Pull Bias, Pinch Bias, Stretch Bias Set the upper boundary falloff effect for these tendon parameters. Values of 0.0 have no effect. Increasing the value shifts the Pull, Pinch, or Stretch effect toward the child. Default=0.5. Lower Boundary Conditions group Connect to Parent Link When on, allows tendons to affect the parent link. This lets you connect tendons across several links. Otherwise, there is a boundary between the links where no tendon effect occurs. Default=off. Lower Bound Sets the lower boundary overlap. Lower Boundary values less than 0.0 affect the parent link. Default=0.0. WARNING Tendons that span several links can conflict with joint intersection parameters. In these cases, go to the Link sub-object level on page 4725, and turn off Active to deactivate the joint intersection parameters for the joints that the tendon spans. (These controls are in the Joint Intersections rollout on page 4734.) Pull Bias, Pinch Bias, Stretch Bias Set the lower boundary falloff effect for these tendon parameters. Values of 0.0 have no effect. Increasing the value shifts the Pull, Pinch, or Stretch effect toward the parent. Default=0.5. 4752 | Chapter 17 character studio Display group Interactive Redraw Turn on to deform the mesh in real time while you edit cross sections in the viewports. Turn off to update the mesh only when you release the mouse. Default=on. TIP Turn off Interactive Redraw when working on a slow system, or with a dense mesh that takes a long time to compute. Initial Skeletal Pose When on, puts the mesh into its original pose; that is, the pose it was in when Physique was first applied. Default=off. Display Options Click to display the Tendon Display Options dialog on page 4712, which lets you customize the viewport display of tendons. Vertex Sub-Object (Physique) Select an object that has the Physique modifier applied to it. > Modify panel > Vertex sub-object level Most often, you will want to use envelopes to correct the way skin behaves as the biped moves. However, you can override envelopes by manually assigning vertex properties. For example, you can remove the influence of inappropriate links from selected vertices. You can also change the weight distribution between links for a single vertex by using type-in weights. Procedures TIP You don't have to work locally, one link at a time. You can use region selection to select groups of vertices or groups of links, working with areas of the body and its skeleton all at once. Physique User Interface | 4753 To check vertex assignments: 1 Go to the Vertex sub-object level. 2 In the Vertex Operations group, click to turn on Select By Link. 3 Make sure all three Vertex Type buttons are on. 4 In a viewport, click a link. Physique displays the vertices assigned to that link. If any vertices assigned to the link are out of place, reassign them to a different link, as described in the procedures that follow. 5 Repeat step 4 for other links in the skeleton. To remove a link's influence on vertices: For example, you might want to remove the influence of the index finger links from the vertices of the middle finger. 1 Go to the Vertex sub-object level. 2 Turn on Select and select vertices in the viewports. 3 In the Vertex Operations group, turn on Remove From Link. 4 Click a link in a viewport. The vertices are removed from that link's influence. NOTE You can click additional links to remove their influence as well. 5 In the Vertex Operations group, turn on Lock Assignments. You must use Lock Assignments to ensure that these envelopes will not influence these vertices if envelope parameters are adjusted later. To remove deformable vertices from a link's influence: 1 Go to the Vertex sub-object level. 2 Make sure all three Vertex Type buttons are on, and then in the Vertex Operations group, click to turn on Select By Link. 4754 | Chapter 17 character studio Observe the assignments and determine which vertices are incorrectly influenced. Also note if the vertices are red (deformable) or green (rigid). NOTE Blue vertices do not fall within the influence of any link and are thus assigned to the root. 3 Turn on Select, and in a viewport, select only the out-of-place vertices. NOTE Alternatively, you can use Alt+click to deselect the vertices that are in the correct place. 4 In the Vertex Type group, click to turn off Rigid Vertices and Root Vertices. Leave Deformable Vertices on. 5 In the Vertex Operations group, click Remove From Link. 6 In the viewports, click each link that you want no longer to influence the selected deformable vertices. To override vertex assignments manually: This technique is used when envelope assignments are inappropriate, and you want to have specific vertices influenced by a specific link. 1 Go to the Vertex sub-object level. 2 Make sure all three Vertex Type buttons are on, and then select the vertices you want to reassign. 3 In the Vertex Operations group, click to turn on Assign To Link. 4 In the Vertex Type group, choose only the type of vertex assignment you want to use: deformable (red) or rigid (green.) 5 Choose No Blending from the Blending Between Links drop-down list. This setting will disregard the effects of blending envelopes and vertex weights, and let you assign the selection to any link manually. 6 In a viewport, click the link you want to influence the vertex. Physique User Interface | 4755 NOTE When you assign deformable vertices, some vertices might turn blue; they are assigned to the root instead of the link you clicked. To assign these vertices as correctly deformable vertices, simply use Ctrl+click with the neighboring parent or child link. If the blue vertices now turn red, they are deformable. 7 In the Vertex Operations group, click Lock Assignments to preserve the manual assignment. To make vertices rigid: 1 Go to the Vertex sub-object level. 2 Turn on Select, and in a viewport, select the vertices you want to make rigid. 3 In the Vertex Operations group, click to turn on Assign To Link. 4 Turn on Rigid Vertices (green) in the Vertex Type group, and turn off Deformable and Root Vertices. 5 Choose No Blending from the Blending Between Links drop-down list. This setting will disregard the effects of blending envelopes and vertex weights, and let you assign the selection to any link manually. 6 In a viewport, click the link these vertices are to be assigned to. 7 In the Vertex Operations group, click Lock Assignments. Small squares around the selected vertices indicate that the vertices are locked. Interface Controls for vertices in a mesh controlled by Physique are on the Vertex-Link Assignment rollout. NOTE This is not the same as the rollout used by the Physique Initialization dialog. 4756 | Chapter 17 character studio Physique User Interface | 4757 Vertex Type group There are three vertex types, differentiated by color: ■ Red Deformable vertices that follow Physique’s deformation spline. ■ Green Rigid vertices that do not deform but just follow the link they are assigned to. ■ Blue Vertices attached to the root node. Physique uses this color when it isn’t sure which link to assign the vertices to. These vertices don’t deform but follow the center of mass object. You should reassign blue vertices to be either rigid or deformable. While a button of the appropriate color is turned on, you can select vertices of that color. Turn off a button to avoid selecting vertices of that color. You can't turn off all three buttons at once. Blending Between Links drop-down list This list provides several options: ■ N Links Vertices within all overlapping envelopes are influenced. While this option is active, vertices can be assigned only to the envelopes they fall within. Envelopes are used by Physique in this case to define the blended weight of each vertex. ■ No Blending Vertices are influenced by only one link, as in character studio 1. This is useful as a general default if you are developing characters for a game engine that doesn't support blending. At the Vertex sub-object level it is useful to override blending weights defined by envelopes, and assign vertices to links as either Rigid or Deformable. For example, after selecting vertices of the skull and face, turn on No Blending, turn on Rigid vertices, turn on Assign To Link, and then click the head link. This will override 4758 | Chapter 17 character studio the head envelope vertex assignments and assign these vertices as rigid to the head link. Use Lock Assignments to lock any changes (see below). ■ 2, 3, 4 Links Vertices are influenced only by the specified number of closest links. This is useful when developing characters for a game engine with limited blending. Vertex Operations group Select Selects vertices using the selection tools on the main toolbar. Select by Link Selects vertices by link. Assign to Link Assigns the selected vertices to a link. To assign the currently selected vertices to a link, turn on Assign To Link and then click the link. Assign To Link has a dependency on the envelopes defined for each link, and you must set Blending Between Links to "No Blending" to override this. After Physique User Interface | 4759 vertices are assigned manually in this way, use Lock Assignments to keep them from being reassigned inadvertently during subsequent operations. NOTE You must select or assign a link by clicking the link; you can't use the Select From Scene dialog to select or assign a link while you use Physique to work with vertices. Remove from Link Remove the selected vertices from a link. NOTE Select, Select By Link, Assign To Link, and Remove From Link will act only on vertices specified by the red, green, and blue Vertex Type (“+”) buttons. Lock Assignments Locks vertex assignments. Lock will prevent any changes from being made to the weights and blending presently assigned to the selected vertices. After any manual assignment of vertices, they should be locked. Before using type-in weights, vertices must be locked. When manipulating envelopes in difficult areas of the character, you might choose to lock vertices that are working well before changing the envelopes to affect other vertices. NOTE If additional data, such as more vertices, comes up the modifier stack, Physique notes the proximity of new vertices to the locked vertices. It then locks the new vertices based on proximity. Already locked vertices will not be unlocked. Unlock Assignments Unlocks vertex assignments. Click Unlock Assignments on selected locked vertices prior to reassigning them to another link, or changing their blending settings. Type-In Weights Displays the Type-In Weights dialog on page 4714, which you use to enter a weight for selected locked vertices; only the weight for locked vertices can be changed. To use this feature: select one or more vertices, then lock them. Click this button to display the Type-In Weights dialog, select a link from the drop-down list, and change the weight of that link to position the vertices (vertex positions update in the viewports as the weight changes). You can use type-in weights for stubborn vertices that fall in blended regions between two or more envelopes. Subtle adjustments can be made to the vertex weights of specific links that would be difficult to achieve by adjusting envelopes alone. TIP Type-In Weights is useful mainly for correcting flaws in low- to medium-resolution meshes. On a high-resolution mesh, adjusting envelopes should be used to correct deformation. 4760 | Chapter 17 character studio Hide Hides the selected vertices Unhide All Unhides all vertices. Initial Skeletal Pose When on, puts the mesh into its original pose; that is, the pose it was in when Physique was first applied. Default=off. Crowd Animation The crowd-animation system in character studio is designed to simulate the behavior of real-life crowds. A crowd simulation emulates real-life situations by animating delegates on page 7951 (helper objects that act as representatives). You give the delegates overall guidelines on how to behave, and the crowd simulation calculates their motion. You set these guidelines by assigning behaviors on page 7920 to delegates. A behavior specifies a particular type of activity, such as moving toward an object in the scene, avoiding obstacles, following a path or surface, and so forth. You can combine multiple behaviors to create a rich and complex crowd simulation automatically. You can then link objects to delegates to complete the animation. Crowd Animation | 4761 A crowd simulation can be used to animate bipeds, or to drive the use of mesh animation on objects linked to delegates. In addition, you can use cognitive controllers on page 7936 to tell delegates how to behave in varying circumstances. These topics provide further explanation of the principles of crowd animation: Creating a Crowd System on page 4762 Creating Crowd Helpers on page 4767 Adjusting Delegate Parameters on page 4772 Assigning Behaviors on page 4772 Directing Delegates on page 4777 Obstacle Avoidance on page 4780 Changing Delegate Orientation and Speed on page 4785 Solving the Simulation on page 4786 Linking Objects to Delegates on page 4787 Cognitive Controllers on page 4789 Biped Crowds on page 4793 Non-Biped Crowds on page 4805 Creating a Crowd System The following is a basic procedure for creating and using a crowd system: 1 Add a Crowd helper on page 4767 object. 4762 | Chapter 17 character studio The crowd helper is the controlling object for the entire crowd simulation. 2 Create a Delegate helper on page 4767 object. This is a prototype for your crowd; a representative member. Creating a Crowd System | 4763 3 On the Modify panel > Motion rollout on page 4813, set appropriate speed and turning limits for the delegate. This is analogous to defining how a particular animal or object moves. Is it a bird, a fish, a slug, or an airplane? 4 Make clones of the delegate, either with 3ds Max clone tools, or by scattering delegates on page 4767. 4764 | Chapter 17 character studio 5 Create 3ds Max objects to be used with behaviors, such as grids or objects to seek or avoid. These objects often correspond to objects in your scene. For example, you could create a grid in an open doorway to attract delegates, or a box at an obstacle to repel delegates. Creating a Crowd System | 4765 6 Add one or more behaviors on page 4772. Modify each behavior's settings to be appropriate for the members of your crowd. 7 Solve the simulation. 4766 | Chapter 17 character studio 8 Watch the solved simulation. If it needs correction, make changes to behaviors or delegate parameters. Solve again, and continue until the simulation works as intended. 9 Create the objects that will follow the delegates, and align and link them to delegates on page 4787. Creating Complex Simulations The process described above creates a simple crowd simulation. You can also use other tools to further control the simulation: ■ Use cognitive controllers on page 4789 to cause delegates to switch behaviors based on their proximity to objects in the scene, time elapsed in the simulation, and other factors. ■ Use motion synthesis on page 4805 to cause different portions of the linked object's animation to be used based on delegate speed, rotation, and other factors. ■ Use bipeds and a motion flow network to animate the bipeds with delegates. See Biped Crowds on page 4793. Creating Crowd Helpers The crowd system in character studio uses two helper objects: Crowd and Delegate. The first step in creating a crowd simulation is the creation of these helpers. The crowd helper serves as the command center for setting up and solving crowd simulations, while delegates provide stand-ins for animated objects. The crowd helper controls are used to animate the delegates, then later you link objects to delegates to create the finished scene. Crowd Helper A crowd helper object appears in viewports as blue tetrahedron. The location and size of the crowd helper does not affect the simulation. For the easiest workflow, create the crowd helper with a relatively large size, and place it where you can easily select it. You'll rarely need more than one Crowd helper object per scene. Creating Crowd Helpers | 4767 After you create delegates, you use the crowd helper to clone delegates and distribute the clones, add behaviors, apply behaviors to delegates, link delegates to animated objects, and much more. 4768 | Chapter 17 character studio Delegate Helpers The Crowd system in character studio uses Delegate helper objects as intermediaries between the crowd simulation and the influenced objects. A delegate is a non-rendering pyramid-shaped object. Its apex points in the direction the crowd system uses as “forward” when it moves the delegate around. Use one delegate per object to be animated by the crowd system. You can add delegates one by one, or use any of the standard 3ds Max methods for cloning objects, including Shift+clone and the Array function. However, the Crowd object offers a convenient Scatter Objects on page 4823 function that lets you clone delegates and distribute the clones over a surface or within a volume, with options for orientation and scaling. See also: ■ Delegate Helper Object on page 4811 ■ Crowd Helper Object on page 4819 Creating Crowd Helpers | 4769 Procedures To create a Crowd helper object: 1 On the Create panel, click Helpers. 2 Click Crowd, and drag the helper object to a convenient size. TIP Make the crowd helper object large enough so you can easily select it in two or more viewports. The size of the helper does not affect the crowd simulation in any way. To create a Delegate helper object: 1 On the Create panel, click Helpers. 2 Click Delegate. Drag in a viewport to set the delegate position, and then drag vertically to set the size. TIP The delegate always points "up" in the viewport you add it in. So if you want it to point "forward," that is, toward the positive Y direction in the World coordinate system, you should create it in the Top viewport. To clone and scatter delegates: 1 Create a Crowd helper and a Delegate helper. 2 Decide how to distribute the delegate clones, and create an object to define how the clones are to be positioned: a grid object, a primitive box or sphere, a shape, or any object to serve as a surface. Alternatively, you can choose to distribute clones in a circular area without the use of a distribution object. 3 Select the Crowd object and access the Modify panel. 4 Click the Scatter Objects button to open the Scatter Objects dialog on page 4823. 5 On the Clone tab, set the number of clones to create, and select the object to clone. 4770 | Chapter 17 character studio 6 Click Generate Clones. This produces the specified number of clones in the same location. To vary positions, orientations, and/or sizes, proceed with the following steps. 7 On the Position tab > Placement Relative To Object group, choose a distribution option. Click the None button, and then select the distribution object you created earlier. Alternatively, to distribute delegates in a circular area, choose Placement In Area group > In Radial Area and set a center and radius. 8 Click Generate Locations. This distributes the clones. 9 On the Rotation tab, choose which of the cloned object's local axes are to look forward and up. Optionally, specify source and target objects for the clones' orientations, as well as limits for randomized deviations from the calculated orientation. 10 Click Generate Orientations. 11 On the Scale tab, for each axis, specify Average, Deviation, and, optionally, Same As settings and a random seed. 12 Click Generate Scales. At this point, you're basically finished. However, to create a series of randomized positions, orientations, and/or sizes for clones, follow the next two steps and repeat as necessary. 13 On the All Ops, turn on Positions, Rotations, and/or Scales. To vary the randomized positions, rotations, and/or scales, turn on the corresponding Inc Seed check boxes. 14 Click the Scatter button. You can combine the cloning, position, rotation, and scale functions in one operation by setting the options on their respective tabs without clicking the Generate buttons, and then using the All Ops tab to apply any or all scatter operations simultaneously. Also, you can use the All Ops tab > Select Objects To Transform to specify any objects to scatter; not just clones. Creating Crowd Helpers | 4771 Adjusting Delegate Parameters Delegate parameters define the nature of their motion. You can change delegate parameters in one of two ways: ■ To adjust parameters for an individual delegate, select the delegate, access the Modify panel, and adjust parameters. For descriptions of parameters, see Delegate Helper Object on page 4811. ■ To adjust parameters for several delegates at once, select the crowd helper object, access the Modify panel, and click Multiple Delegate Editing to access the Edit Multiple Delegates dialog on page 4839. The speed parameters let you describe a delegate’s average speed and maximum acceleration. You can also define how much a delegate slows down as it turns or goes upward, and how much it speeds up when it goes down. Turning parameters let you indicate how quickly a delegate can turn, and how much it can turn upward and downward. And banking parameters describe how much and how quickly a delegate banks and its banking limit. All of these parameters work together to describe different types of creatures. A small fish, for instance, can turn more quickly than a large bird. A fish’s speed would not be effected when the fish traveled up or down, but a bird’s speed might be altered by its upward or downward direction. See also: ■ Crowd Helper Object on page 4819 ■ Delegate Helper Object on page 4811 Assigning Behaviors In the real world, different crowds exhibit diverse behaviors, and even members of the same crowd can conduct themselves in various ways. Included with the character studio Crowd system is an assortment of behaviors that let you simulate a range of crowd activities. Behaviors let you assign procedural activity types to delegates on page 4811, which in turn affect objects linked to delegates. You can associate any number of behaviors with each crowd object on page 4819, and then link delegates and 4772 | Chapter 17 character studio teams of delegates to each behavior. A specific behavior assigned to a Crowd object belongs only to that crowd; it cannot be assigned to any other crowds. Following is a list of available behaviors: ■ Avoid Behavior on page 4867: Prevents delegates from colliding with objects in the scene, or with each other. Avoidance can use any combination of turning, braking/stopping, repelling, and vector field. ■ Orientation Behavior on page 4872: Applies a fixed orientation or orientation range to delegates, so they face a specific direction instead of toward the destination. You can specify orientation in absolute terms, or relative to the direction the delegate currently faces. ■ Path Follow Behavior on page 4876: Restricts motion to a spline or NURBS curve; options include back-and-forth patrol-type movement. ■ Repel Behavior on page 4880: Forces delegates to move away from a target. ■ Scripted Behavior on page 4882: Uses MAXScript to specify behavior. ■ Seek Behavior on page 4883: Moves delegates toward a target or targets. ■ Space Warp Behavior on page 4885: Uses any dynamics-oriented space warp to control movement, including wind and gravity. Vector Field, a crowd-specific space warp that lets delegates avoid irregularly shaped objects while following their contours, is included with character studio. ■ Speed Vary Behavior on page 4886: Lets delegates change speed for more realistic movement. ■ Surface Arrive Behavior on page 4888: Lets delegates move toward and land on a surface, with custom speed and acceleration parameters. ■ Surface Follow Behavior on page 4892: Delegates move along a surface, which can be animated. Also, you can specify whether the delegates are to move straight ahead or skirt hills and depressions. ■ Wall Repel Behavior on page 4895: Uses a grid to repel delegates; ideal for keeping objects inside an enclosed, straight-sided room. ■ WallSeek Behavior on page 4898: Uses a grid to attract delegates. You can use this as a doorway for crowd-controlled bipeds to walk through. ■ Wander Behavior on page 4901: Induces a realistic semi-random movement for characters such as shoppers at a mall. TIP If you need custom behaviors, you can create your own with scripting. Assigning Behaviors | 4773 The first time you add a behavior to the scene, a new rollout appears for the behavior below the Setup rollout. This rollout lets you change settings for the behavior. Certain behaviors, such as Seek and Avoid, let you specify "target" objects. TIP Behaviors are assigned generic names by default. It's a good idea to rename them with more meaningful descriptors; for example, "Seek Ball" or "Avoid Fire". To display the rollout for a different behavior in the scene, choose it from the drop-down list in the Behaviors group. To see the controls available in the rollout for a behavior type, follow the link from its entry in the above list. In addition to the controls available in behavior rollouts, you can use the Behavior Assignments and Teams dialog on page 4845 to turn behaviors on and off (with the Active check box), and for all behaviors except Avoid, Orientation, and Surface Follow, you can set and animate Weight. The Active status is animatable for all behaviors. Using Behaviors To use a behavior, you apply it to a delegate or a team of delegates using the Behavior Assignments and Teams dialog on page 4845. In this dialog, each assignment of a behavior to a delegate is given a weight. You can modify and/or animate these weights to influence the simulation. Behavior assignment weights can profoundly effect a simulation. When applying two or more behaviors to the same delegate, the weights define the relationship between the behaviors, making one more or less powerful than the other. One way to visualize a behavior assignment weight is to examine the behavior’s force vector during a crowd simulation. The vector’s length indicates the behavior’s weight upon the delegate. Each behavior has its own parameters which appear in the Behavior rollout, available in the Crowd object’s Modify panel. These parameters describe how the behavior works, and can sometimes contribute to the behavior’s strength as well. For instance, Seek, Repel, Wall Seek, and Wall Repel, all have specific volumes of influence. Outside these volumes they have no effect and essentially have a weight of zero. This rollout lets you specify whether or not you wish to see behavior’s force vector dynamically displayed during a Crowd simulation, and what color that vector should be. When working with the Crowd system, it is critical to play with behavior assignment weights, as well as each behaviors’ parameters. Typically, you run the simulation repeatedly, changing the weights and parameters to get the desired result. 4774 | Chapter 17 character studio A few behaviors cannot be weighted. These are Avoid, Surface Follow, and Orientation. Avoid and Surface Follow take over after all of the other behaviors have been applied to a delegate. They can take stringent measures to affect the delegate, possibly overpowering other behaviors in order to meet their constraints. Orientation simply sets the delegate's facing direction. It cannot be weighted and does not apply a force. Behavior Tips A few helpful things to know about behaviors in character studio: ■ You can create conditional behavioral systems with Crowd's Cognitive Controller feature. This uses the MAXScript scripting language to determine when to effect a transition from one behavior to another; we've provided a number of sample scripts for you to learn from and adopt to your own simulations in Cognitive Controller Editor on page 4857 and State Transition Dialog on page 4861. ■ The Behavior rollout appears immediately after the Crowd object > Setup rollout in the Modify panel. However, it doesn't show up until you've added at least one behavior to the crowd object. ■ The Crowd panel displays only one Behavior rollout at a time. To access a different one, choose its name from the drop-down list at the bottom of the Crowd object's Setup rollout. ■ As with most scene entities in 3ds Max, it's a good idea to give behaviors custom names, such as "Seek Doorway" or "Follow Hilly Surface." You do this by clicking the behavior's name in the Setup rollout and entering a new one from the keyboard. ■ The default behavior settings may not always give the ideal results. The optimal settings depend vary with the particulars of your simulation setup; in many cases, if not most, you'll need to experiment with the settings to get the results you want. In some cases, you might need to animate settings as well. One particularly useful feature of the delegate is its ability to display, using colored vectors, the strength and direction of the various forces acting upon it during solution of the crowd simulation. Each force can have a unique, identifying color. For example, the Seek behavior uses green by default, while the Wander behavior uses aqua. You can change these colors to any you like. If a simulation isn't proceeding as expected, you can debug it by observing the vectors during the solution. And if the solution occurs too quickly, Assigning Behaviors | 4775 you can use the Step Solve feature to solve the simulation one frame at a time. Procedures To use assign behaviors to delegates: This example shows how to create a basic crowd simulation with delegates and behaviors. 1 Run 3ds Max or reset the program. 2 Add a Crowd object and one or more Delegate objects on page 4811 to the scene. In general, add delegates in the Top viewport so that they point forward. The Crowd object's location is immaterial. 3 Select the Crowd object and open the Modify panel. 4 On the Setup rollout > Behaviors group, click the New button. 5 In the Select Behavior Type dialog, click a behavior and then click OK to close the dialog. A Behavior rollout appears for the behavior you chose. 6 If the behavior requires a target object or objects, such as Seek, click the None button and then select an object, or click Multiple Selection and select several objects. 7 Change other behavior settings as necessary. 8 Create and modify additional behaviors as necessary. 9 On the Setup rollout, click the Behavior Assignment button. 10 In the Assignment Design group, the two upper lists should each contain a single entry: the delegate on the left, and the behavior on the right. Select both items. 11 Click the New Assignment button to the right of the Assignment Design group. It's a vertical button with five right-pointing arrows. This adds the new assignment to the list in the Behavior Assignments group. 12 Accept the changes and the OK button to close the Behavior Assignments and Teams dialog. 4776 | Chapter 17 character studio 13 On the Modify panel, scroll down to the Solve rollout and click the Solve button. Keys are created as follows: The delegate turns to point toward the sphere, banking as it turns, and then moves directly toward the sphere. When it reaches its target, it moves slightly beyond the sphere, and then repeats the turn-and-move motion until the end of the simulation. To prevent this, try starting with the two objects farther apart, or animating the sphere's position. Directing Delegates One of the purposes of behaviors is to move delegates in a particular direction over the course of the simulation. These behaviors can be used to direct delegates: ■ The Seek behavior on page 4883 is one of the most commonly used behaviors in the crowd system. With this behavior, you can cause delegates to move toward a specific object. The seek object can be animated, and the delegates will follow it. ■ The Wall Seek behavior on page 4898causes delegates to seek a rectangular area. Compare with the Seek behavior, which causes delegates to seek an object's pivot point. ■ The Path Follow behavior on page 4876 is also useful for pushing delegates in a specified direction. With this behavior, delegates follow a path but can “stray” from the path by a specified distance, creating slightly random motion along the path. ■ With the Surface Arrive behavior on page 4888, delegates seek one or more objects as they do with the Seek behavior, but you can cause delegates to stop when they reach a target. ■ You can use the Surface Follow behavior on page 4892 to cause delegates to move along a surface. ■ With the Space Warp behavior on page 4885, you can use a vector field to push delegates around the field to avoid obstacles. See Obstacle Avoidance on page 4780. After setting up a behavior, you must use Behavior Assignments on page 4845 to assign the behavior to a delegate or team. Directing Delegates | 4777 Procedures To use the Seek behavior: 1 Select the crowd helper and access the Modify panel. 2 In the Setup rollout > Behaviors group, click New. Choose Seek Behavior from the pop-up list. The Seek Behavior rollout appears below the Setup rollout. 3 In the Seek Behavior rollout on page 4883, click None to add one seek object, or click Multiple Selection to designate more than one object for the delegates to seek. 4 Change the default settings as desired. To use the Wall Seek behavior: 1 On the Create panel, click Helpers, and click Grid. Create a grid in the scene. TIP For best results, do not use Mirror to copy a grid to be used with behaviors. Use Shift+Clone instead. 2 Move and rotate the grid to position it. TIP The Wall Seek behavior attracts delegates to the grid in the direction of grid's local Z axis. With the grid still selected, use the Local coordinate system to see the direction of the Z axis in viewports; the axis arrow points in the direction of the positive Z axis. Checking the Z-axis direction will speed the process of setting up the behavior. 3 Select the crowd object, and add a Wall Seek behavior. 4 In the Wall Seek Behavior rollout, click None, and pick the grid. 5 Choose Positive Axis to cause the delegates to be attracted to the Z-axis side of the grid. You can also choose Negative Axis to atrract delegates to the opposite side of the grid, or Both to attract them to both sides. 6 If you want delegates to be attracted to the grid only when they are within a specified area in front of the grid (rather than when they are anywhere in the scene), turn on Use Distance. Use the Inner Distance and Outer 4778 | Chapter 17 character studio Distance parameters to set the area in which delegates will be attracted to the grid. Turn on Display Distance to see the distance in viewports. To use the Path Follow behavior: 1 On the Create panel, click Shapes. Create a shape to be used as a path for delegates. 2 Add a Path Follow behavior to the Crowd object. 3 In the Path Follow Behavior rollout, click the None button and pick the shape for the delegates to follow. 4 Set the Radius parameter to the number of units by which delegates can stray from the path. Change other settings as desired. To use the Surface Arrive behavior: 1 Add a Surface Arrive behavior to the Crowd object. 2 Add an object or objects to serve as the target surface to the scene. NOTE If you use multiple objects, delegates will arrive at the surface of the closest object. 3 In the Surface Arrive Behavior rollout, click None or Multiple Selection to designate the one or more target objects. 4 Use the settings in the Location group to determine where the delegate will stop when it reaches a target object. 5 Use the settings in the Approach group to determine how the delegate will behave when it approaches the target. To use the Surface Follow behavior: 1 Add a Surface Follow behavior to the Crowd object. 2 Add an object or objects to serve as the follow surface to the scene. NOTE If you use multiple objects, they must intersect to form a contiguous surface. Each delegate will move to the closest surface, follow it to the next closest that it encounters, and then start following that one, and so on. Directing Delegates | 4779 3 In the Surface Follow Behavior rollout, click None or Multiple Selection to designate the object or objects whose surface(s) the assignees are to follow. 4 If you like, use the settings in the Projection Vector group to force delegates to move in a specific direction. Obstacle Avoidance An important part of crowd behavior is avoidance of obstacles. Think of an obstacle as anything that impedes a crowd member's progress. Examples of obstacles include walls, telephone poles, and fences, as well as other crowd members. Encountering such objects can cause avoidance behavior, which consists of any combination of slowing down, turning, and stopping. There are several ways to implement avoidance in character studio, including: ■ The Avoid behavior on page 4867 is one of the most commonly used behaviors. Use this behavior to cause crowd members to avoid other crowd members, or spherical objects in the scene. It works by creating a spherical volume of avoidance around the avoided object, so it doesn’t accommodate irregular objects. The Avoid behavior is unlike any other behavior in Crowd. After all the other behaviors exert their forces on the delegates, Avoid takes over and has the power to turn, slow down, and even stop a delegate in order to make it avoid an obstacle. ■ Use the Wall Repel behavior on page 4895 to cause crowd members to avoid broad, flat objects such as walls and fences. You can set a maximum distance for the repel effect, and describe the rate at which the force away from the wall increases as a delegate approaches the wall. Unlike the Avoid behavior, which can stop or slow down a delegate, Wall Repel simply exerts a force on the delegate to turn it away from the wall. It does not guarantee wall avoidance. You must work with it’s distance and falloff parameters, as well as its weight in the Assignments and Teams dialog, to control its strength. ■ Use the Repel behavior on page 4880 to cause crowd members to turn away from an object. It works exactly like Wall Repel except that it uses a spherical volume rather than a plane. You can set a maximum distance for the repel effect, and describe the rate at which the repel force increases as the delegate approaches the obstacle. 4780 | Chapter 17 character studio Repel exerts a force on the delegate to turn it away from the obstacle. It does not guarantee avoidance. You must work with its Distance and Falloff parameters, as well as its weight in the Behavior Assignments and Teams dialog on page 4845, to control its strength. Repel can be used instead of the Avoid behavior as a simple avoidance technique for non-terrestrial creatures such as fish or birds. ■ Use a Vector Field on page 4917. This is a special type of space warp that crowd members can use to move around irregular objects such as a curved, concave surface. You can use the Vector Field space warp in conjunction with the Avoid behavior to make delegates slow down when they approach a complex object, and then go around it. This guarantees that the delegate will not pass through the obstacle’s surface. You can also use the Vector Field space warp in conjunction with the Space Warp behavior on page 4885. This simply exerts a force on the delegate that mimics the contours of the object. It does not assure that the delegate will not pass through the surface of the obstacle. You can use a Vector Field with both the Space Warp and Avoid behaviors to combine their effects. Procedures To use the Avoid behavior: 1 Add an Avoid behavior to the Crowd object. 2 In the Avoid Behavior rollout, use the None button or the Multiple Selection button to designate the target object or objects to avoid. TIP To make an entire team of delegates avoid each other, choose all delegates in the team. The crowd system will cause each delegate to avoid all others except itself. 3 Turn on Display Hard Radius to see the radial avoidance area in viewports. Adjust the Hard Radius to the appropriate size for your delegates. 4 Adjust the Brake Pressure to determine whether a delegate will slow down when it encounters an avoided object. 5 Adjust the Look Ahead parameter to determine how many frames ahead each delegate will look to determine the best way to avoid others. 6 Use Behavior Assignments on page 4845 to assign the behavior to a delegate or team. Obstacle Avoidance | 4781 To use the Wall Repel behavior: 1 On the Create panel, click Helpers, and click Grid. Create a grid in the scene. TIP For best results, do not use Mirror to copy a grid to be used with behaviors. Use Shift+Clone instead. 2 Move and rotate the grid to position it. TIP The Wall Repel behavior repels delegates from the grid in the direction of grid's local Z axis. With the grid still selected, use the Local coordinate system to see the direction of the Z axis in viewports; the axis arrow points in the direction of the positive Z axis. Checking the Z-axis direction will speed the process of setting up the behavior. 3 Select the crowd object, and add a Wall Repel behavior. 4 In the Wall Repel Behavior rollout, click None, and pick the grid. 5 Choose Positive Axis to cause the delegates to be repelled from the Z-axis side of the grid. You can also choose Negative Axis to repel delegates from the opposite side of the grid, or Both to repel them from both sides. 6 If you want delegates to be attracted to the grid only when they are within a specified area in front of the grid (rather than when they are anywhere in the scene), turn on Use Distance. Use the Inner Distance and Outer Distance parameters to set the area in which delegates will be attracted to the grid. Turn on Display Distance to see the distance in viewports. 7 Use Behavior Assignments on page 4845 to assign the behavior to a delegate or team. To use the Repel behavior: 1 Add a Repel behavior to the Crowd object. 2 In the Repel Behavior rollout, use the None button or the Multiple Selection button to designate the object or objects that are to repel delegates. 3 Change the default settings as desired. 4 Use Behavior Assignments on page 4845 to assign the behavior to a delegate or team. 4782 | Chapter 17 character studio To add a Vector Field space warp: Adding a Vector Field space warp object works the same as adding a Box geometry primitive. 1 On the Object Type rollout, click Vector Field. 2 Drag in a viewport to set the initial dimensions. ■ If using the Cube creation method, this sets all three dimensions simultaneously. ■ If using the Box creation method, release the mouse button, and then move the mouse vertically to set the height. 3 Click to create the space warp. To use a Vector Field space warp with delegates: This procedure presents general guidelines for using the Vector Field space warp with delegates in a crowd simulation. 1 Create an object to serve as an obstacle. This object must be an editable mesh or geometric primitive; it can have modifiers. 2 Add a Vector Field space warp. 3 Position and scale the space warp lattice so that it encloses the obstacle object. The lattice should be significantly larger than the object. The object should be located roughly at the lattice center. 4 In the Lattice Parameters rollout, increase the Length Segs/Width Segs/Height Segs settings so that the lattice segments intersect the object at reasonable intervals. To determine appropriate Segs settings for your obstacle objects, first examine the object complexity. If the obstacle has a lot of detail, and you want that detail reflected in the vector field, then you need a relatively high lattice resolution. 5 Click the Obstacle Parameters rollout > Compute Vectors group > Vector Field Object button (initially labeled “None”), and then in a viewport, click the object that will act as an obstacle in the crowd simulation. This specifies the obstacle object. The range volume grid appears on the object's surface as an olive-colored wireframe. Obstacle Avoidance | 4783 6 Increase the Obstacle Parameters rollout > Compute Vectors group > Range setting. As you increase this setting, you'll see the range volume grid expand. The range volume should enclose the space in which crowd members need to start turning in order to avoid the object. 7 Turn off Display group > Show Lattice and Show Range so that the vector field will be more easily visible when generated. 8 Turn on Display group > Show Vector Field. 9 In the Compute Vectors group, click the Compute button. This generates the vector field. TIP To make the vector lines more evident, increase the Display group > VectorScale setting. The vectors appear as blue lines surrounding the obstacle object. One vector is computed for each lattice intersection within the range volume grid. Each vector matches the normal of the object at the point on the object's surface closest to the lattice point. The vector force falls off with distance from the object, as shown by the progressively shorter vector lines toward the grid perimeter. 10 Add Crowd on page 4819 and Delegate on page 4811 helper objects. 11 Select the Crowd object and open the Modify panel. 12 In the Setup rollout > Behaviors group, click New. 13 In the Select Behavior Type dialog that is displayed, choose Space Warp Behavior, and then click OK. 14 In the Space Warp Behavior rollout that appears, click the button (initially labeled “None”), and then in a viewport, click the Vector Field space warp. TIP You might find it easier to use Select By Name to select the space warp. 15 In the Setup rollout, click the Behavior Assignments button, and use the Behavior Assignments And Teams dialog on page 4845 to assign your delegate or delegates to the space warp behavior. 16 Add any other objects or behaviors appropriate to the simulation. 4784 | Chapter 17 character studio 17 Select the Crowd object, and then solve the simulation by clicking the Solve rollout > Solve button. 18 Fine tune the behavior associated with the Vector Field space warp by adjusting the Lattice parameters on page 4919 and Obstacle parameters on page 4920. 19 Continue computing the vector field and then solving the simulation after each adjustment. In certain cases you might need to animate the vector field parameters to keep objects within the field. Changing Delegate Orientation and Speed You can use the Orientation behavior on page 4872 to change the direction in which a delegate moves, and the Speed Vary behavior on page 4886 to vary delegates' speed or make them stop moving altogether. After setting up a behavior, you must use Behavior Assignments on page 4845 to assign the behavior to a delegate or team. Procedures To use the Orientation behavior: 1 Select the crowd helper and access the Modify panel. 2 In the Setup rollout > Behaviors group, click New. Choose Orientation Behavior from the pop-up list. The Orientation Behavior rollout appears below the Setup rollout. 3 To restrict the heading orientation with respect to the delegate's current heading, turn on Heading group > Relative. To restrict the heading to a specific direction or range, leave Relative off. 4 To restrict the pitch orientation with respect to the delegate's current pitch, turn on Pitch group > Relative. To restrict the pitch to a specific direction or range, leave Relative off. 5 Change the other default settings as desired. To use the Speed Vary behavior: 1 Add a Speed Vary behavior to the Crowd object. Changing Delegate Orientation and Speed | 4785 2 Adjust the Center and Deviation as needed to control delegate speed. Change other settings as desired. Solving the Simulation After you have set up behaviors for delegates, you must solve the simulation to generate keyframes on delegates. You solve the simulation by selecting the crowd object and clicking Solve in the Solve rollout on page 4903. In order to generate the simulation as quickly as possible, delegate keys are saved after the solution is run, so there might be a pause between the end of the solution and return of control of the software to you. Also, any objects linked to delegates are hidden during the simulation. You will most likely have to solve a simulation several times before it is correct. Watch the animation after the solution is calculated, correct behaviors or delegate parameters as necessary, then solve again. You can speed up the solution calculation time by decreasing the frequency of keyframes or screen updates. You can also view the solution one frame at a time to help pinpoint trouble areas. Procedures To solve a simulation: 1 Set up a crowd simulation with a crowd helper, delegates and behaviors. See Assigning Behaviors on page 4772. 2 Select the crowd helper. 3 On the Modify panel, in the Solve rollout, set the Start Solve and End Solve parameters to set the start and end frames for the solution. 4 Click Solve. TIP To use the keyboard shortcut for the Solve button, turn on the Keyboard Shortcut Override Toggle and then press the S key to run a solution. Wait a few moments while the solution is calculated. The progress bar at the bottom of the screen tells you the status of the solution process. 4786 | Chapter 17 character studio To speed up the solution time: 1 Under Save every Nth Key, set the Positions and Rotations parameters to a higher number, such as 5. This causes the simulation to set delegate keyframes every five frames rather than at every frame. 2 Increase the Solve rollout > Display During Solve group > Frequency setting to a higher number, such as 100 . This will cause the display to update with the new delegate locations only every 100 frames. To troubleshoot the simulation: In a crowd simulation, it is not uncommon for a short portion of the animation to have a unique problem that doesn't appear on other frames. Use Step Solve to analyze short portions of your simulation when things don't go as expected. 1 Move the time slider to the frame at which you want to start solving one frame at a time. 2 Click Step Solve. To use the keyboard shortcut for the Step Solve button, turn on the Keyboard Shortcut Override Toggle and then press the T key to run a solution in step mode. You can start at any frame. Zoom in to examine the vectors of misbehaving delegates. 3 Press the spacebar to solve the simulation one frame at a time. 4 Press Esc to exit Step Solve mode. Linking Objects to Delegates You can link objects or bipeds to delegates to make them follow the simulated animation. You can link objects to delegates with 3ds Max linking. Alternatively, the crowd system has a tool for automatically aligning and linking objects with delegates. Linking Objects to Delegates | 4787 When you want to use bipeds with delegates, you associate bipeds with delegates rather than link them. This approach enables the bipeds to use a motion flow network to determine their motion during the simulation. For an explanation of how to set up a biped crowd simulation, see Biped Crowds on page 4793. Procedures To link objects to delegates: 1 Set up a crowd simulation with a crowd helper and delegates. See Creating Crowd Helpers on page 4767. 2 Create a series of objects to follow the delegates. TIP In a later step, you will align each object's local Y axis to point in its corresponding delegate's forward direction. For this reason, you should take care to make sure your objects' local Y axes point in the direction you consider to be “forward”. The easiest way to do this is to set up one object with its Y axis pointing in the forward direction, then clone the object. 3 Select the crowd helper, and access the Modify panel. 4 On the Setup rollout on page 4820, click Object/Delegate Associations. The Object/Delegate Associations dialog on page 4836 appears. 5 Click Add under the Objects list to add objects to link with delegates. 6 Click Add under the Delegates list to add delegates to link with the objects you added in the previous step. Each object in the Objects list will be associated with the delegate in the same position in the Delegates list. If necessary, reorder either list manually by highlighting entries and using the Shift Up/Shift Down buttons; these are the arrow buttons between the two lists. 7 Click Align Objects with Delegates to align each object with its corresponding delegate. The objects on the Objects list are moved and rotated to align with delegates. Each object's local Y axis points in the delegate's forward direction. 8 Click Link Objects to Delegates. 9 Click OK to exit. 4788 | Chapter 17 character studio To associate bipeds with delegates: 1 Set up a crowd simulation with a crowd helper and delegates. 2 Create several bipeds, one for each delegate. 3 Select the crowd helper, and access the Modify panel. 4 On the Setup rollout on page 4820, click Biped/Delegate Associations. The Associate Bipeds with Delegates on page 4842 dialog appears. 5 Click Add under the Bipeds list, and choose the bipeds to add to the list. 6 Click Add under the Delegates list, and choose the delegates to associate the bipeds with. 7 Turn on Set Delegates to Use Biped. This will turn on the Use Biped option for each delegate, which is a requirement for biped crowd simulations. 8 Choose Make Specified Associations to associate each biped with its corresponding delegate listed on the dialog. Alternatively, choose Associate Delegates With Closest Biped to associate each delegate with the biped nearest to it in the scene. 9 Click Associate to make the associations, and click Close. Unlike regular objects, bipeds are not aligned with delegates immediately. Each biped will align with its respective delegate when the simulation is solved. NOTE In order for a biped crowd simulation to solve correctly, it must have a motion flow network for the bipeds to follow. See Biped Crowds on page 4793. Cognitive Controllers You can use the cognitive controller feature to cause crowd members to change behaviors during a simulation depending on the circumstances. For example, a character could wander randomly until it comes within a certain distance of a target, at which point it could head straight for the target. In technical terms, cognitive controllers let you influence crowd simulations with scripted conditionals, effectively implementing a form of artificial Cognitive Controllers | 4789 intelligence. You use the Cognitive Controller editor on page 4857, a flowchart-style editor (much like the Motion Flow Graph dialog on page 4549) to set up a network of behaviors and behavior combinations, known as states. Then you then apply MAXScript-based transitions that specify when delegates are to move from one state to another. Even with a relatively simple setup, you can create simulations that make your characters appear to be living, conscious beings, making decisions as they move through the scene. You can find procedures describing various examples of cognitive-controller transitions in the State Dialog on page 4859 topic: Testing a particle system parameter on page 4862 Testing an object position Testing an atmospheric property on page 4862 Testing the distance between two objects Testing a modifier parameter Testing another delegate's behavior on page 4863 See also: ■ Cognitive Controller Editor on page 4857 ■ State Dialog on page 4859 ■ State Transition Dialog on page 4861 Procedures To set up and use a cognitive controller: This procedure describes a typical setup routine for creating and using a cognitive controller. The procedure assumes basic knowledge of crowd simulation setup. For more information about crowd setup, see Crowd Helper Object on page 4819 and Setup Rollout on page 4820. 1 Create a scene containing a crowd object and one or more delegates. See Creating Crowd Helpers on page 4767. 2 Create at least two behaviors. See Assigning Behaviors on page 4772. 3 Open the Cognitive Controller editor on page 4857. 4 Click the New button to create a cognitive controller. 4790 | Chapter 17 character studio character studio gives the controller the default name of “Cognitive Controller.” It's recommended that you give more descriptive names to cognitive controllers, such as "Seek/Wander". Do this by clicking on the name in the text box and editing it from the keyboard. Creating a new cognitive controller automatically places you in Create State mode. 5 Click in the editor window to create and place a state. Continue clicking in different places to add as many states as necessary. 6 Right-click a state to open the State dialog on page 4859. 7 Again, it's recommended that you give more descriptive names to states, which you can do in the State dialog. Click the name (State or State#) in the text box and edit it from the keyboard. Next, define a behavior or behaviors for each state. 8 Click the Add button. 9 In the Select Behaviors dialog, choose one or more behaviors. If you choose multiple behaviors, you can specify different weights for each in the State editor. For example, you can combine a Seek behavior at full weight with a Wander behavior at half weight, so that the delegate will meander slightly as it seeks the target. 10 Close the Select Behaviors dialog, and then close the State editor. 11 Repeat steps 6–10 as necessary to define behaviors for the other states in the controller. Next, use Create Transition to define the sequence of states during the simulation. 12 Decide on the sequence in which the states are to occur. 13 Click the Create Transition button. 14 Drag a line from one state to the next in the order that they are to execute. Click a state to create a transition from itself to itself. A transition arrow appears, pointing from the "source" state to the "destination" state. Cognitive Controllers | 4791 Each state can have any number of incoming and outgoing transitions. Specify different transition conditions for each to create as complex a state diagram as necessary. Next, use the State Transition dialog to define a conditional for each transition. 15 Right-click a transition line. 16 In the State Transition dialog on page 4861, enter the name of the transition condition, and then click the Edit MAXScript button. 17 Use the MAXScript editor window to enter or load a script that defines the condition or conditions under which the transition is to occur. Typically, this is a function that tests a condition and returns 1 (if true) or 0 (if false). NOTE See this topic in the online User Reference for sample MAXScript code for this function. ■ fn - What follows is a MAXScript function. ■ test1 - The function name; this should also appear in the Transition dialog, as the transition condition. This function is executed first when the transition is tested. The script may contain any number of additional functions to be called from within a function in the script. ■ del - Refers to the delegate to which the script is currently being applied. The transition script is executed once per frame for each delegate/team member the cognitive controller is assigned to. Thus, if you use "del" in the script rather than the name of a specific delegate, all delegates to which the cognitive controller is assigned are tested. ■ t - The current time (frame number) in the simulation. ■ del.simpos.x - The delegate's current position on the X-axis. The special function "simpos" is used to determine a delegate position during a simulation solution. This is necessary because delegate positions aren't available to MAXScript using the standard "[node].pos" function during a simulation. ■ del.duration - The number of frames the delegate has been in the current state. You can see a complete list of delegate-specific parameters that can be checked in the script by opening a MAXScript Listener window (press function key F11) and entering: 4792 | Chapter 17 character studio ShowProperties $delegate01 And because the delegate is a node, it also responds to standard MAXScript node-related functions, with the exception of "simpos," as noted above. Also, for information on how to access the transition properties, such as duration and priority, see the MAXScript Reference. For more examples of MAXScript conditionals that can be used with cognitive controllers, see State Transition Dialog on page 4861. 18 Use the State Transition dialog to set other parameters such as priority and duration. 19 Use the Behavior Assignments and Teams dialog on page 4845 to assign the cognitive controller to delegates or teams. NOTE Crowd doesn't let you use multiple cognitive controllers with a delegate. You can assign them, but when you solve, the software notifies you that it will use only the first assigned cognitive controller. Using Motion Synthesis You can create advanced, complex crowd simulations in character studio with motion synthesis, which lets the software adjust the simulation results dynamically to account for differing conditions. Two different forms of motion synthesis are available: one for non-bipedal crowds, and a second for the more exacting requirements of biped crowds. See also: ■ Biped Crowds on page 4793 ■ Non-Biped Crowds on page 4805 Biped Crowds The biped crowd is a special case of crowd simulation necessitated by the complex nature of legged animal movement. Biped locomotion exhibits intricate dynamics and exacting IK foot constraints. As such, the smoothly curving trajectories computed from delegate motion parameters, while suitable for birds, fish, insects, and snakes, are not rich enough to animate the Using Motion Synthesis | 4793 microstructure of bipedal motion. Therefore, several features in Crowd are focused on the special needs of bipeds. In order to generate the required level of nuance, animated motion clips form the basis for the repertoire of biped movements. In other words, during a Biped/Crowd simulation, the delegates have no effect over the motion of the Biped, they only set goals to be achieved using clips available in the Motion Flow graph. With this approach, known as motion synthesis, the animator can precisely control details in the motion either by using hand animation or employing motion capture to produce a set of clips that describe how a member in the crowd behaves. For example, if you wanted to animate a crowd of marathon runners making their way through the streets of a city, you would need motion clips for various kinds of walking, running, jogging, resting, drinking water, cheering, etc. In effect, each of the motions you might expect to see in a marathon race could be represented as a clip. But motion must be more than a fragmented collection of clips. You must also consider how motions might be sequenced. Which motion transitions are possible from a given motion clip? To best understand this process, study this topic and follow the procedure Using bipeds in a crowd simulation on page 4799. Motion Flow Network and Possible Scripts Biped's Motion Flow on page 4545 functionality provides the mechanism for defining how separate motions fit together into a fluid animation. In effect, the motion flow network describes which motions can follow from other motions. Once the motion flow network is defined, a broad set of animated actions is possible by following different paths through the network. In Biped, a path through the network is called a motion flow script. For example, shown below is a motion flow network used in the sample file walkers.max. You can find this file in the cstudio\tutorials\biped_crowds folder in your 3ds Max path. This folder also contains the BIP files used in the motion flow network. You can access these files only if you have installed tutorials on your hard disk. For information on installing tutorials, see the Installation Guide. 4794 | Chapter 17 character studio This is a fairly simple network of possible motions, because the characters can only start, stop, turn at 90 degree angles left and right (walk_L90 and walk_R90), and do an about-face (walk_180). However, for more natural crowd interaction, it's advisable to expand the motion flow network to include shorter, more finely tuned variations such as turning at 45 degree increments, moving in different directions while facing the same way, loitering motions, and moving at different speeds. The Biped Motion Library has a comprehensive list of clips for you to experiment with. TIP You can create motion clips that curve slightly to the left and right by applying Biped's footstep-bending operation to straight-line motion clips. If the clips are motion captured, you should employ footstep extraction during import in preparation for the bending operation. Adding clips that turn slightly will let the biped crowd simulation make minute corrections in heading in order to achieve goal locations more precisely. Motion flow graphs that work best incorporate fine-tuned transitions. A good way to check your motion-flow transitions is by building test scripts as you build the graph: Add clips to the graph, add the necessary transitions, and optimize the transitions. Optimizing transitions works well as a starting point and, more often than not, produces the smoothest transitions. Next, make a new script that uses your transitions, and use the script to tweak the motion flow until the feet don't slide. Using Motion Synthesis | 4795 The Shared Motion Flow Networks feature lets many bipeds use a single motion-flow network. Therefore, it’s practical to make motion-flow networks large without taxing your computer's memory. Delegate-Directed Behavioral Goals You can give a biped a behavioral goal by associating it with a delegate in the Crowd system, and then assigning behaviors to the delegate. For example, in the walkers.max sample, the behavioral goals of each of the biped's delegates are to: ■ Move toward the sphere using the Seek behavior. ■ Avoid hitting each other using the Avoid behavior. During a biped crowd simulation, the software attempts to compute the best motion flow script for each biped member of the crowd that satisfies the behavioral goals of its associated delegate. In other words: ■ The biped’s crowd delegate defines the behavioral goals of the biped. ■ The possible motions to reach those goals are defined by the biped's motion flow network. ■ The Crowd object's Solve operation computes the script, or path through the motion flow network, that best meets the goals of the biped's delegate. So in the walkers.max sample, the simulation will always choose the best available walking clip in the network that directs the biped's delegate toward the sphere. Each biped's script evolves as the crowd "Solve" computes. This is somewhat like a real-time "game engine" in that the crowd solver’s choice of the next best clip for a given biped is restricted by that biped's currently active clip. Biped Crowd Avoidance, Priority, and Backtracking Because bipeds in crowds are always following motion flow scripts, the avoidance behavior for bipeds works differently. Unlike ordinary delegates, biped delegates can move only along motion flow-scripted paths, so if a collision takes place, the software will backtrack on page 4907 to the previous clip in the current script and find another path. This may take some time to compute when complex crowd interactions are present since a single backtrack may not be enough. The computation will explore all paths from a given 4796 | Chapter 17 character studio backtracking clip, and if that fails, it will backtrack to the previous clip, and so on, until a solution is found. In the example, if the current script of a biped is: walk_start walk walk_L90 and a collision is encountered during the walk_L90 clip, the biped will backtrack to the end of the walk clip and attempt to try a different clip in place of the failed left turn. If that fails, it will try the next best choice, and so on. TIP The inclusion of stopping and loitering motions in the motion flow network is sometimes helpful in preventing excessive backtracking since stopping is always an effective way to avoid collisions in a tight situation. In general, the more variation in speed and direction that is possible, the more quickly the backtracking feature will find a solution. In order to make the backtracking computationally manageable, the biped crowd members are computed one at a time, in order of priority on page 4907. Thus, the crowd interaction is accumulated with each successive biped added to the animation. In other words, each waits its turn to compute its complete animation, which entails avoiding the bipeds that have been computed before it. It follows that bipeds with the lowest priorities generally encounter the most collisions, since they must steer around all the bipeds that have higher priorities. Preparing Characters for a Biped Crowd To create a biped crowd simulation, you will need several bipeds. Because the crowd simulation factors in each biped's leg length when applying clips to the biped, your simulation will be more accurate if your bipeds are the correct size from the start. One straightforward workflow would be: ■ In a separate file, create or acquire a few character models for your scene. ■ Skin the characters with Physique or with another method, such as the 3ds Max Skin modifier. ■ Clone the characters and change something about each one, such as the color of clothing or hair, and the character's height. See Scaling a Character on page 4660. Using Motion Synthesis | 4797 ■ Give each character a unique name that will allow you to identify it in the simulation to some degree. Example: BigMan02, LittleGirl03. See Naming the Biped on page 4155. ■ For each character, disable the MeshSmooth modifier or other modifiers above Physique that add polygons. ■ Hide the character meshes and leave the bipeds visible. This setup makes it easy to merge the characters into the crowd scene. When characters are merged, the meshes themselves will be hidden, which will improve system performance. Preparing Motions for a Biped Crowd The clips you use for a biped crowd simulation can be loaded from the CD that comes with character studio, imported from motion capture files, or created from scratch. The integrity of transitions between clips in the motion flow network is very important when creating a biped crowd simulation. When creating transitions for a single biped, it's a simple matter to correct individual transitions after the motion flow script has been created. With a crowd, having to correct transitions for each biped after the simulation is complete would be extremely time-consuming. It is much more efficient to ensure your transitions are correct before starting to solve the simulation. One way to make this process easier is to set up all motions so each has an ideal transition of exactly the same number of frames, such as 10 or 15. Then you can optimize transitions for this length, and all or most transitions will work flawlessly. To check transitions, create a simple script for one biped using several transitions in the graph. Check the motion and work with transitions individually until they look right. You might not catch all bad transitions with this method, but you'll catch most of them. A “bad” transition would be one where the feet skip or hop when they should be walking, or any other undesirable change that occurs during a transition. See Customizing Transitions on page 4525. After solving the biped crowd simulation the first few times, check again for bad transitions you might have missed the first time around. After a few simulations, most likely you will have found all or nearly all the bad transitions. 4798 | Chapter 17 character studio Restrictions Some features of the crowd system are not designed to work with biped crowds. These behaviors and parameters have no effect on the crowd's movements when bipeds are used with the simulation. ■ Vector fields ■ The Look Ahead parameter in the Avoid behavior Procedures: Using Bipeds in a Crowd Simulation The following sequence of procedures gives the basic steps for creating and saving a motion flow graph, assigning several bipeds to delegates, and then sharing the motion flow graph among the bipeds so that the software automatically creates separate motion flow scripts for each biped, based on the behaviors assigned to its delegate. NOTE These procedures assume you know how to animate bipeds with footsteps and keyframe methods, and save the animations as BIP files. To prepare for using Shared Motion Flow, you should create and save a range of biped motions such as start, walk, turn right, turn left, stop, and wait. See Loading and Saving BIP Animation on page 4300. The first step is to create an appropriate motion flow graph and save it to disk. To create the shared motion flow: 1 2 3 4 Add a biped, and then open the Motion panel. Click the Biped rollout > Motion Flow Mode button. Click the Motion Flow rollout > Show Graph button. In the Motion Flow Graph toolbar, click the Create Multiple Clips button. This displays an Open dialog that lets you select any number of BIP files from the same directory to add simultaneously to the motion flow graph. Using Motion Synthesis | 4799 Use Click+Shift+click (click, and then Shift+click) to choose several contiguous files, and Ctrl+click to choose non-contiguous files. 5 Choose the BIP files you want the software to use for motion synthesis, and then click the OK button. The files are added to the graph as clips. Each clip is automatically named after the file from which it's derived. NOTE For best results, especially with simulations in which bipeds are to turn at different angles, use as many different turning clips as possible. A minimal setup would include separate left-turn and right-turn walks at angles of 45, 90, 135, and 180 degrees. The next step is to add transitions among the clips so character studio knows which actions can proceed to and from other actions. You can do this manually for greater control, but for initial testing, you can save time by letting the software add and optimize transitions automatically. 6 Click the Synthesize Motion Flow Graph button. This uses the first 30 percent and the last 30 percent of each motion to create transitions. The graph now shows arrows to and from each clip, as well as from each clip to itself. If you like, delete transitions that obviously don't belong, such as the ones from the stop and start clips to themselves. Alternatively, you can use Create Transition to set up a custom graph. 7 Optimize the transitions. See Transition Optimization Dialog on page 4571. When you solve the simulation, Crowd automatically generates a motion flow script for the biped, based on this graph. When you have a graph with multiple clips, as in this case, it chooses the starting clip for the script from one or more clips you designate as random start clips. If you want to check the integrity of transitions before continuing, do so now. See Customizing Transitions on page 4525. 8 Click the Select Random Start Clips button, and then click a clip. 4800 | Chapter 17 character studio This tells the software to start the script with this clip, and uses the default probability of 100 percent that the clip will be chosen. If you want the various bipeds to start with different clips, select multiple random start clips by pressing and holding the Ctrl key as you click. The default Random Start Probability setting of 100 for all clips means that the software will choose randomly among them for a starting clip for each biped's script. To change the likelihood of starting with specific clips, right-click a clip and modify its Random Start Probability setting. For example, say you want to start each biped's script with any of three clips: clips A, B, and C. You want clip A to be chosen twice as often as clip B or C. In that case, using the Random Start Clips tool, you'd first click clip A, and then Ctrl+click clips B and C. Then you'd right-click each in turn, assigning a Random Start Probability of 60 to clip A, and 30 to both clips B and C. NOTE The Probability values are arbitrary; what counts is their ratios. For example, values of 80/40/40 or 20/10/10 would work the same. NOTE You can also set and change random starting clips and start probabilities in the Motion Flow graph after loading the MFE file into the Shared Motion Flow dialog, described later in this procedure. NOTE If a motion flow script already exists for a biped, for example after you've solved a crowd simulation, the software can use the first clip in the script for subsequent solutions. 9 In the Motion Flow rollout, click the Save File button, and save the graph in the MFE format. The next step in using bipeds in a crowd simulation is to create the simulation. To set up the crowd simulation: 1 Reset 3ds Max. 2 Set up a crowd simulation with any number of delegates, using behaviors appropriate to the crowd scene you want to create. Do not use bipeds at first; work with delegates only to rough out the motion of the crowd members. Using Motion Synthesis | 4801 TIP When first starting out with motion synthesis, use smaller crowds of eight or so delegates. 3 Solve the simulation and adjust the settings as necessary to obtain the desired motion. 4 Merge bipeds and characters into the scene, and associate each delegate with a different biped using the delegate's Motion Parameters rollout on page 4813 > Biped group settings. You must select the biped's center of mass (COM) object (typically named Bip0#), as indicated by the mouse cursor turning into a crosshairs icon when it's over the COM in the active viewport. 5 Turn on Use Biped for each delegate. TIP To link up any number of delegates with bipeds, all at the same time, select the Crowd helper object and click the Setup rollout > Biped/Delegate Associations button on page 4842. Use the dialog to connect the pairs and turn on Use Biped for each delegate. See Linking Objects to Delegates on page 4787. 6 Set the biped/delegates to use a random start clip as the first clip. You can set this simultaneously for multiple delegates with the Edit Multiple Delegates dialog on page 4839. To apply the shared motion flow: Next, you use the Shared Motion Flow function to apply the saved motion flow graph to the bipeds. 1 Select any biped and open the Motion panel. 2 3 Click the Biped rollout > Motion Flow Mode button. Click the Motion Flow rollout > Shared Motion Flow button. 4 In the Shared Motion Flow dialog, click the New button. This creates a new shared motion flow and assigns it a default name. You can change the name if you like. Next, load a motion flow file. 4802 | Chapter 17 character studio 5 Click the Parameters group > Load .mfe button, and use the Open dialog to load a motion flow file. Typically, this would be the one you saved earlier in the procedure. Next, specify the bipeds that will share this motion flow. 6 In the Parameters group, click the Add button, and use the Select dialog to specify the bipeds that will share the motion flow. For your convenience, the Select dialog shows only center of mass objects for the bipeds in the scene. After you click the Select button, the bipeds appear in the dialog, in the list under "Bipeds Sharing this Motion Flow." 7 To correctly share a motion flow, bipeds' legs must be scaled the same. If any of the bipeds are scaled differently than the one you started with, an alert appears, and then, when you click the OK button in the alert box, the wrong-scale bipeds are noted as such in the list. At this point, you can select one of the bipeds in the list, and then click the Set Shared Motion Flow Scale button to match the others' scale to that biped. Or you can click one of the Reset Wrong Scales buttons to rescale the wrong-scale bipeds or just their legs. Be sure to take one of these measures before proceeding. One more step in the Shared Motion Flow dialog is necessary: You must activate Motion Flow mode for all the bipeds sharing the motion flow. A special button in the dialog lets you perform that action in one step. 8 Click the Put Multiple Bipeds in Motion Flow button. This activates Motion Flow mode for all the bipeds sharing the motion flow. 9 Click the OK button to exit the dialog. To offset the delegates and test the simulation: Delegate-controlled bipeds can begin their animation with their motion flow scripts' first clip, if it exists, or with a random motion clip. But when you load a motion flow file into the Shared Motion Flow dialog, any scripts in the file are ignored. Thus, delegate-associated bipeds using motion flow in an unsolved crowd simulation have no existing scripts, and you must specify that they use Using Motion Synthesis | 4803 the random start clip that you set in the motion flow. You do this via the delegates. 1 Use the Edit Multiple Delegates dialog > Biped group to specify Random Start Clip for all the delegates. Solve the simulation. 2 Select the Crowd object, and go to the Modify panel. 3 In the Solve rollout, set the desired End Solve frame. 4 Click Solve to run the simulation. Crowd solves the simulation. 5 Check the solved simulation by dragging the frame slider and/or playing back the animation. To fine-tune the simulation: Chances are good that adjustments will be required. You can resolve problems in a number of different ways: Change the behavior and/or motion flow setups, change delegate parameters, and so on. If you find that bipeds are colliding and interpenetrating, you can take advantage of Crowd's special Priorities and Backtracking features. In fact, it is strongly recommended that you use both options for most Crowd/Biped simulations. 1 Use the Priority rollout on page 4907 controls for assigning different priorities to your delegates. Typically, delegates at the head of the crowd should have the highest priorities (that is, the lowest Priority settings). 2 In the Solve rollout > Bipeds group, turn on Biped/Delegates Only, then turn on Use Priorities, and then turn on Backtracking. If you've solved previously, it's a good idea to turn on Delete Keys Before Solve as well. Now, when it solves the simulation, Crowd solves for one biped/delegate at a time, starting with the lowest-priority biped/delegate. As it solves for each subsequent biped/delegate, it looks for collisions, and when the occur, it backs up the solution to the end of the previous clip, and if necessary, previous clips, and then tries different paths through the motion flow graph. This method can take longer, which is why Backtracking is off by default, but it's often the best way to resolve problems with colliding bipeds. 4804 | Chapter 17 character studio Non-Biped Crowds Motion synthesis in character studio lets the software derive character motion from a combination of crowd behaviors and either motion flow networks, when animating bipeds (see Biped Crowds on page 4793), or clip controllers, when working with non-bipedal creatures. In the latter case, using the Global Motion Clip and Master Motion Clip controllers, you can animate groups of creatures such as birds, butterflies, schools of fish, and insects. You can create clip controllers either as block controllers in Track View, or, more directly, with the Crowd helper controls on the Global Clip Controllers rollout. Two Approaches to Animation You can animate your creature either in place with looping animation but no transformational motion (such as a bird flapping its wings), or you can incorporate transformational motion into the animation as well (the bird moves upward while flapping its wings). In-place cyclic motion lends itself to flying or swimming motions like birds and fish, while adding lateral motion lends itself to crawling type animation where feet should be planted on the ground and not sliding. Depending on which you use, you toggle options on the Motion Clips tab of the Synthesis dialog. In both cases, you use crowd delegates driven by behaviors to motivate the creatures, which are linked to those delegates. NOTE To animate a model for motion synthesis, apply modifiers to the model and animate their parameters. Modifiers such as Bend, Taper, Wave, and Xform produce animation you can use with motion synthesis. Do not use sub-object animation, such as animation of vertices on an Editable Mesh object. Cyclic In-Place Animation First you create a creature with a few short loop cycles, like the beating of wings, gliding, turning left and turning right. This creature is assigned as the Global Object or the master object from which the motion clips will be derived. Then clones of the original creature are created. The clones are positioned and linked to delegates. States are created to select which clips will play based on a state. For example, if a bird (delegate) is pitching up or accelerating, the fast-beating clip is used; if the bird (delegate) slows to a stop, the wings-at-rest clip is used, and so on. During synthesis, the software determines which state should be active depending on the speed and direction of the delegates. An active state determines which clip should be applied to the clones of the original object. Using Motion Synthesis | 4805 Clips are blended together to create the animation. Available states are speed, acceleration, pitch, pitch velocity, heading velocity, or script (MAXScript). Animation with Lateral Motion For multi-legged creatures that walk, you can animate lateral motion as well as the cyclic motion of the legs moving. This is done to ensure that the creatures' feet do not slide as they move. The software then uses the lateral motion information to create a state that perfectly matches the actual motion. The software then strips the actual motion out. When a delegate approaches the speed and heading recorded in that state, the appropriate motion clip is triggered. This technique minimizes sliding feet. Use the character studio crowd tools to create the initial motion for the delegates. Use a seek or avoid behavior to steer birds, for example. Your object with the loop animation is then copied and the copies are linked to the delegates to create the complete animation. The delegate handles the path and the clip controllers handle the looped animation. You can create Master Motion Clip and Global Motion Clip in Track View by assigning a controller to the available controller under Block Control. It is, however, simpler to use the Crowd helper controls on the Global Clip Controller rollout to apply and use the clip controllers. See also: ■ Synthesis Dialog on page 4925 ■ ClipState Dialog on page 4937 Global Motion Clip Global Motion Clips store the clips to be shared among multiple Master Motion Clips, which are assigned to the cloned objects during synthesis. Global Motion Clips also contain the logic for performing motion synthesis on a collection of objects with trajectories and states associated with clips. Controls for motion synthesis are found in the Synthesis dialog. The way the motion clip keys are scaled and ordered depends upon user-defined states. Each state contains one or more motion clips that will be played when the state is active. 4806 | Chapter 17 character studio Master Motion Clip Master Motion Clips are controllers that contain motion clips, or individual clips of animation. These motion clips are sequenced to create animation, and overlap slightly with automatic blending to smooth the transitions between clips. Procedures To use Motion Synthesis with non-bipedal creatures: All of the work involved in copying and synthesizing clips takes place using controls in the Synthesis dialog on page 4925. This dialog has three tabs: Motion Clips, State, and Synthesis. This procedure assumes that the global object is static and has animation that loops. For creatures with many legs, you can animate lateral motion on the global object and then strip out the lateral motion with the Synthesis dialog. This latter approach serves to minimize foot sliding in a multi-legged creature. 1 Animate an object. Create animation in one position, like a bird's beating wings. Create a variety of animation like a gliding motion (wings still), wings beating slowly, and so on. To animate the object, apply modifiers and animate their parameters. This will be the Global object, from which animation clips will be derived. 2 Using the Create panel > Helpers > Object Type rollout, add a Crowd object and a Delegate object. Create the objects in the Top or Perspective viewport. 3 Use Scatter Objects on page 4823 in Crowd function to clone the delegate and optionally distribute the clones (you can also distribute them manually). Make sure you end up with an equal number of delegates and animated object clones. Next, associate and link the objects to the delegates. 4 On the Setup rollout, click the Object/Delegate Associations button. The Object/Delegate Associations dialog on page 4836 appears. 5 Add the objects and delegates into their respective columns. Using Motion Synthesis | 4807 6 Click Align Objects With Delegates, and then click Link Objects To Delegates, and then click OK to exit the dialog. The objects align themselves with the delegates and are linked to the delegates. Next, animate the delegates with behaviors. See Assigning Behaviors on page 4772 for information on using behaviors. When you solve the simulation, the cloned objects follow the delegates, which are guided by behaviors. You then generate motion synthesis based on the delegate movement. 7 Select the Crowd object. On the Modify panel > Global Clip Controllers rollout, click New, and use the Select dialog to select the Global object from step 1. The object appears in the Global Clip Controllers rollout list. 8 In the list, click the object, and then click the Edit button. The Synthesis dialog displays. Its name is that of the object. 9 On the Motion Clips panel, turn off all check boxes in the From Global Object and Remove Local groups. Use these options only if your original object has lateral motion to coordinate with footsteps. 10 On the Motion Clips panel, click New. This opens the MotionClip Parameters dialog, which lets you set the name, color, and frame range for a motion clip. 11 Choose a descriptive name and a frame range for the motion clip. For example, frames 0 through 10 might be your glide animation. 12 Continue to define clips using different frame ranges from the Global object's animation. Give the clips descriptive names. Next, you define states whose parameters determine when motion synthesis is to use each clip. 13 Click the State tab, and then click New State. A new state is added to the drop-down list at the top of the Synthesis States group. Give the state a descriptive name. In many cases, the state can use the same name as the motion clip that's to be associated with it. Next, you specify the state's parameters; that is, how the delegate should be moving when the associated object is to use its motion clip. For 4808 | Chapter 17 character studio example, your glide motion should be active only if acceleration is less than 0. 14 Click Edit Properties and define how the software should activate the clip, based on any combination of speed, acceleration, and so on. Click each appropriate tab, turn on its Use ... check box, and set parameters. Click Exit to exit the dialog. When using a range, make sure the Min setting is lower than the Max setting. For example, when using a negative range such as -180 to -10, enter the number with the higher absolute value (-180) as the Min setting. You should already have several motion clips. Now you need to associate a clip with this state. For example, if you've defined a state whose acceleration is less than 0, you might associate the Glide clip with it. 15 In the MotionClips group, click Add Clip, and in the Select MotionClip dialog, highlight a clip and click OK. 16 Repeat steps 14 and 15 for each state to be used in motion synthesis. 17 Go to the Synthesis panel, click New Master Motion Clip, and add all of the cloned objects. 18 Click Auto Blend All and then click Synthesize All. The synthesis occurs as a progress bar displays. When the synthesis is completed, the Synthesis dialog reappears. You can now view the ClipState parameters' ranges and average values by clicking State panel > Edit properties. This is useful in fine-tuning state properties. Click OK to exit the Synthesis dialog. 19 Click Play. It's not necessary to re-solve the simulation. The objects follow the delegates and are animated using clips that are activated according to delegate motion and the states you created. Using Motion Synthesis | 4809 Crowd Animation User Interface Crowd animation lets you simulate the behavior of crowds of people, animals, or other beings parametrically, using several different types of objects. The topics that follow describe the user interface for setting up a crowd simulation. ■ The Crowd helper object on page 4819 includes facilities for replicating and grouping objects and assigning behaviors on page 4845 to objects and groups. The Crowd object works directly on delegate helper objects on page 4811, and indirectly on bipeds and other objects via delegates. ■ Cognitive controllers on page 4857 can change delegate behavior based on circumstances in the simulation. ■ Motion synthesis on page 4917 uses animation from the linked object based on delegate orientation, speed and other factors. 4810 | Chapter 17 character studio Crowd Shortcuts To enable the character studio keyboard shortcuts, turn on the Keyboard Shortcut Override toggle on page 7858. All character studio keyboard shortcuts activate when the Motion panel is active and the Keyboard Shortcut Override button is active. See also: ■ Keyboard Shortcuts on page 7857 ■ Keyboard Panel on page 7698 ■ Customize User Interface Dialog on page 7697 Action Shortcut Description Solve S Solves crowd simulation. Step Solve Step-solves crowd simulation. Delegate Helper Object Create panel > Helpers > Object Type rollout > Delegate The Delegate is a special helper object used in crowd animation. It serves as an agent for motion created by a Crowd object on page 4819 and its behaviors. The Crowd object controls a delegate or delegates, whose motion can then be imparted to a biped or other object. Delegates cannot be rendered. Crowd Animation User Interface | 4811 The delegate object is shaped like a pyramid. By default, the point of the pyramid indicates the forward direction, the delegate's local Y axis. The delegate object uses the following rollouts: Geometry Parameters Rollout on page 4813 Motion Parameters Rollout on page 4813 Also, you can set parameters for multiple delegates simultaneously, optionally with random variation, using the Crowd object's Edit Multiple Delegates dialog on page 4839. See also: ■ Creating Crowd Helpers on page 4767 ■ Crowd Helper Object on page 4819 4812 | Chapter 17 character studio Geometry Parameters Rollout Create panel > Helpers > Object Type rollout > Delegate > Geometry Parameters rollout Select a Delegate object. > Modify panel > Geometry Parameters rollout Use these parameters to modify the delegate object's size. Interface Width, Depth, Height Sets the width, depth, and height of the Delegate object. These fields also act as readouts when you create the delegate. NOTE The Delegate is a helper object, and thus cannot be rendered. Thus the size of the Delegate object is primarily for use in scene setup, and for determining bounding box extents. Motion Parameters Rollout Create panel > Helpers > Object Type rollout > Delegate > Motion Parameters rollout Select a Delegate object. > Modify panel > Motion Parameters rollout The Motion Parameters rollout lets you specify a Delegate object's characteristics, including speed, acceleration, and other factors. It also lets you associate the delegate with a biped. IMPORTANT When using delegates with bipeds, only the settings in the Biped group have any effect in the simulation, because Biped gets all its speed and turning information from motion flow clips and behaviors. NOTE You can set any or all motion parameters simultaneously for a number of delegates with the Edit Multiple Delegates dialog on page 4839. Crowd Animation User Interface | 4813 Interface Velocity Color When Show Velocity is on, uses the specified color to draw a vector in the delegate's center during the simulation solution. The vector length indicates the delegate's relative speed. Default=black. Active The delegate object is subject to control by a Crowd object. Default=on. Show Forces The forces being applied to a delegate by any applicable behaviors are drawn as vectors whose length indicates the extent of the forces and whose orientation shows the direction in which the behavior is influencing the delegate to move. Default=on. For example, if the delegate is affected by a Space Warp behavior on page 4885 and a Wander behavior on page 4901, the vectors (using default colors) are yellow and blue-green, respectively. These vectors are visible only during solution of the crowd simulation. Show Velocity Uses the Velocity Color (see above) to draw a vector whose length depicts the delegate's relative speed. This vector is visible only during the solution of the crowd simulation. Default=off. Show Cog Control States During a solution, a text label appears next to the delegate showing the name of the cognitive controller on page 4789 state or transition that currently directs its behavior, if any. Default=on. Constrain to XY Plane The delegate remains at its initial height (position on the world Z axis) throughout the simulation. When off, the delegate's height can change during the simulation, for example when seeking an object at a different height. Default=on. Bound Box of Hierarchy When on, the Avoid behavior on page 4867 uses the bounding box of the delegate and all of its children to perform its behavior. Default=on. 4814 | Chapter 17 character studio Speed group Average Speed Specifies the delegate's baseline velocity in 3ds Max units (or the current unit type) per frame. Default=5.0. The delegate's speed can be modified during the simulation by a variety of factors, such as a linked biped's built-in speed and Deviation settings in a behavior. Max Accel(eration) Multiplied times Average Speed to determine the maximum acceleration. Default=0.1. For example, given the defaults of 5.0 for Average Speed and 0.1 for Max Accel, the acceleration or deceleration at any moment can be no greater than 0.5 units/frame/frame. Decel(eration) Weight Specifies how much a delegate should slow down when turning. The higher this setting, the more the delegate slows down when it reaches the turn angle (see following parameter). A value of 0 specifies no slowdown; a value of 1 tells the delegate to stop. Default=0.3. The algorithm computes a value, d, which goes linearly from 0 to (1 - Decel Weight) as the turn angle of the delegate goes from 0 to the Turn Angle specified by the user. The speed of the delegate is then multiplied by d. For example, when the delegate turns at the Turn Angle or greater, its speed will be multiplied by (1 - Decel Weight), slowing it down as much as possible based on this parameter. When the delegate is not turning at all, its speed is not affected by the Decel Weight. When the delegate is turning at half the specified Turn Angle, d = Decel Weight / 2, so its speed will be multiplied by (1 - Decel Weight / 2). As a practical example, take a delegate traveling at 10 units/frame. Decel Weight is set to 0.4, and At Turn Angle is set to 30. When the delegate has turned 15 degrees (half the At Turn Angle), the effective deceleration weight Crowd Animation User Interface | 4815 is 0.2. Subtract that quantity from 1 to get 0.8, and then multiply that times the delegate's speed to get 8 units per second halfway into the turn. At the full turn (30 degrees), the delegate travels at 6 units per frame. At Turn Angle Specifies the turn angle at which Decel Weight's full slowdown effect is applied. Default=10.0. If the current turn angle is less than At Turn Angle, the algorithm divides the latter by the former, and then divides the Decel Weight setting by the result to derive the effective deceleration weight. Decel(eration) Weight Specifies how much the delegate should slow down when moving at an upward slant. Default=0.1. See Decel Weight on page 4815 for a full explanation. At Incline Angle Specifies the upward slant angle at which Decel Weight's full slowdown effect is applied. Default=90.0. Accel(eration) Weight Specifies how much the delegate should speed up when moving at a downward slant. Default=0.1. See Decel Weight on page 4815 for a full explanation, taking into account that Accel Weight produces a speedup effect rather than a slowdown. Thus, the effective acceleration weight is added to 1, not subtracted from it. At Decline Angle Specifies the downward slant angle at which Accel Weight's full speedup effect is applied. Default=90.0. Turning group These parameters affect the delegate's turning behavior; that is, how it changes direction in response to forces applied by crowd behaviors. You can use the Orientation behavior on page 4872 to affect how a delegate turns and banks, independently of the actual path taken. Turning applies to objects moving both on the ground and in the air. Max Turn Velocity Specifies the maximum number of degrees a delegate can turn per frame. Applies both to heading and pitch. Default=30.0. 4816 | Chapter 17 character studio Max Turn Accel Specifies how much the delegate's heading or pitch angle can change per frame. This controls angular acceleration and deceleration. For smooth turns, keep it relatively low. Default=3.0. TIP If a delegate exhibits sluggish turning behavior during a simulation, try increasing Max Turn Velocity, Max Turn Accel, or both. Max Incline Specifies the maximum number of degrees a delegate can turn upward at any given frame. For example, most birds can't fly straight up, so you might set this to 45 for a bird. Default=90.0. Max Decline Specifies the maximum number of degrees a delegate can turn downward at any given frame. Default=90.0. For example, for a bird that can't fly straight up but can fly straight down, you might set to Max Incline to 45 and Max Decline to 90. Banking group These parameters affect the delegate's banking behavior; that is, how it tilts around its front-back axis as it changes direction while moving. Banking typically applies to objects moving in the air or on water, but can also apply to ground-based objects such as one- or two-wheeled vehicles. Max Bank Specifies the maximum number of degrees a delegate can bank. Default=30.0. Max Bank Velocity Specifies the maximum number of degrees a delegate can bank per frame. Default=3.0. Bank per Turn The number of degrees the delegate will bank as a function of the turn angle at the current frame. For example, if Bank Per Turn=1, the delegate will bank one degree for every degree it is turning at a given frame. Default=1.0. Crowd Animation User Interface | 4817 Biped group These parameters relate to the use of bipeds associated with delegates. In order to have a biped exhibit character animation as it follows the delegate's course, you must use motion flow methods. For a procedure, see To use bipeds in a crowd simulation on page 4799. Use Biped Associates the delegate with a biped (specified with the None button), and causes the delegate's speed to be determined by that of the biped's existing motion. Its behavior (for example, seeking another object) remains defined by a crowd object. NOTE This button is not available until a biped is designated via the None button. None (label) Click this button and then select a biped to be associated with the delegate's motion. You can select a biped by clicking its center of mass object (e.g., Bip01) in a viewport, or with the Pick Object dialog, which you can open by pressing H or by clicking the toolbar button Select By Name (you cannot use the Selection Floater). Thereafter, the name of the biped object appears on the button. TIP When using the viewport, the mouse cursor changes to a crosshairs when positioned over a biped's center of mass. Start Frame Specifies the frame at which the biped's first clip will begin to play. If, when several bipeds share the same starting clip, you vary this setting per biped, they won't walk in lockstep formation. This is most useful when you take advantage of the ability of the Edit Multiple Delegates dialog on page 4839 to randomize the start frame for each delegate. 4818 | Chapter 17 character studio Priority Sets the delegate priority, which determines the order of solution in biped/delegate simulations. For details, see Priority Rollout on page 4907. First clip choice method Determines which motion clip in the shared motion flow graph Crowd initially uses to animate the biped linked with the delegate. ■ First clip of current script Uses the first clip in the biped's motion flow script, if a script exists. If this option is chosen, but there is no script, an error message is generated. ■ Random start clip Uses the random start clip or clips specified in the shared motion flow graph, if random start clips have been designated. If this option is chosen, but no random start clips have been designated, an error message is generated. Crowd Helper Object Create panel > Helpers > Object Type rollout > Crowd The Crowd helper object acts as the command center for controlling crowd simulations in character studio. In most cases, you won't need more than one Crowd object per scene. The Crowd object provides the following rollouts: Setup Rollout on page 4820 Solve Rollout on page 4903 Priority Rollout on page 4907 Smoothing Rollout on page 4912 Collisions Rollout on page 4915 Geometry Rollout on page 4916 Global Clip Controllers Rollout on page 4916 Crowd Behaviors The Crowd object also lets you add behaviors to the scene, choose the current behavior from a list, and provides a rollout for modifying that behavior. Behaviors provided with character studio include: Avoid Behavior on page 4867 Crowd Animation User Interface | 4819 Orientation Behavior on page 4872 Path Follow Behavior on page 4876 Repel Behavior on page 4880 Scripted Behavior on page 4882 Seek Behavior on page 4883 Space Warp Behavior on page 4885 Speed Vary Behavior on page 4886 Surface Arrive Behavior on page 4888 Surface Follow Behavior on page 4892 Wall Repel Behavior on page 4895 Wall Seek Behavior on page 4898 Wander Behavior on page 4901 See also: ■ Creating Crowd Helpers on page 4767 ■ Delegate Helper Object on page 4811 Setup Rollout Create panel > Helpers > Object Type rollout > Crowd > Setup rollout Select a Crowd object. > Modify panel > Setup rollout The Setup rollout of the Crowd helper object contains controls for setting up crowd functions. 4820 | Chapter 17 character studio Interface A number of functions are available from a row of buttons at the top of the Setup rollout: Scatter Opens the Scatter Objects Dialog on page 4823. Objects/Delegate Associations Opens the Object/Delegate Associations dialog on page 4836. Biped/Delegate Associations Opens the Associate Bipeds With Delegates dialog on page 4842. Multiple Delegate Editing Opens the Edit Multiple Delegates dialog on page 4839. Behavior Assignments Displays the Behavior Assignments and Teams dialog on page 4845. Cognitive Controllers Displays the Cognitive Controller editor on page 4857. Behaviors group Use these controls for adding, removing, and renaming behaviors. New Launches the Select Behavior Type dialog on page 4854. Choose a behavior and then click OK to add the behavior to the scene. Then use the Behavior Crowd Animation User Interface | 4821 Assignments and Teams dialog on page 4845 to assign the behavior to a delegate or delegates in the scene. The first time you add a behavior to the scene using this command panel, a new rollout appears for this behavior below the Setup rollout. This rollout lets you change settings for the behavior. To display the rollout for a different behavior in the scene, choose it from the drop-down list in the Behaviors group. Following is a list of available behaviors: Avoid Behavior on page 4867 Orientation Behavior on page 4872 Path Follow Behavior on page 4876 Repel Behavior on page 4880 Scripted Behavior on page 4882 Seek Behavior on page 4883 Space Warp Behavior on page 4885 Speed Vary Behavior on page 4886 Surface Arrive Behavior on page 4888 Surface Follow Behavior on page 4892 Wall Repel Behavior on page 4895 Wall Seek Behavior on page 4898 Wander Behavior on page 4901 Delete Deletes the current behavior. If the behavior is currently in use, that is, it's assigned to a delegate or team, either directly in the Behavior Assignments and Teams dialog on page 4845 or indirectly through a cognitive controller, a small dialog appears asking you to confirm the deletion. If you delete a directly assigned behavior, its assignment is removed from the scene. If you delete a behavior used in a cognitive controller, it is removed from the state to which it was assigned. Behaviors List Lists all behaviors in the current scene (added with New). Select a behavior from the list to have its rollout appear below the Setup rollout. Note that behaviors that appear in this list aren't necessarily assigned to any delegates active in the crowd simulation. Likewise, a behavior whose rollout appears below the Setup rollout isn't necessarily active or assigned. To assign delegates and/or activate behaviors, use the Behavior Assignments and Teams dialog on page 4845. 4822 | Chapter 17 character studio You can rename a behavior by first selecting it from the list, and then clicking its name and entering a new one from the keyboard. It's a good idea to give descriptive names to behaviors; for example, Avoid Red Team. NOTE If you add the first behavior in the scene from the Behavior Assignments and Teams dialog on page 4845, the text box remains empty and no rollout for the behavior appears. To edit the behavior, choose it from the list. Scatter Objects Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Scatter Objects Select a Crowd object. > Modify panel > Setup rollout > Scatter Objects The Scatter Objects dialog of the Crowd helper object includes facilities for creating crowds by cloning objects, such as delegates. It also lets you distribute the clones and other objects within a radial area, along a shape, across a grid object or surface, or within a box or sphere. You can also specify various orientation and scaling options for scatter objects. See also: ■ Creating Crowd Helpers on page 4767 Crowd Animation User Interface | 4823 Interface Clone panel Contains the basic options for cloning an object. 4824 | Chapter 17 character studio Object to Clone (None) Click this button, and then select an object in the scene to be cloned. How Many Specifies the number of clones to be generated. Copy/Instance/Reference Lets you specify how the object is cloned. It can be cloned as a copy, an instance on page 8015, or a reference on page 8106. Clone Hierarchy When on, all objects linked to the selected object are cloned as well, with the hierarchical structure retained intact for each clone. Clone Controllers When on, any controllers (that is, animation) associated with the selected object are cloned as well. Generate Clones Click this button to create the specified number of clones of the object whose name appears on the Object To Clone button. Cloned objects are all created in the same location; to distribute them, you must set distribution options on the Position panel, and then click the Generate Locations button. After you generate clones, the original object and its newly created clones are scatter objects; that is, they're selected in the list in the All Ops panel (Select Objects To Transform), and are thus subject to subsequent operations on the Position, Rotation, and Scale panels. You can change this selection via the All Ops panel > Select Objects to Transform on page 4835 function or by generating clones again. Crowd Animation User Interface | 4825 Position panel Contains options for positioning objects using a reference (distribution) object. You can distribute objects randomly over the surface of a grid or other object, along a shape, or within the volume of a box or a sphere. You can choose only one option from the first two group boxes. 4826 | Chapter 17 character studio Placement Relative to Object group On Grid/Inside Sphere/Inside Box/On Surface/On Shape Choose the appropriate item before selecting the reference object. ■ On Grid distributes the scatter objects over the surface of a grid object. ■ Inside Box and Inside Sphere distribute the scatter objects within the volume of a primitive box or sphere object, respectively. ■ On Surface distributes the scatter objects over the surface of any renderable object. For example, you can create a landscape object for use as a distribution surface by applying a Noise modifier to a patch grid. ■ On Shape distributes the scatter objects along a shape object: a spline or NURBS curve. If the shape consists of more than one curve, Scatter uses the lowest-numbered curve (typically the first one added). Offset When using On Surface, specifies a consistent distance above the surface (using surface normals) for distribution. Available only when On Surface is chosen. Grid/Box/Sphere/Surface/Shape (None) Click this button, and then select an object in the scene to be used as a reference object. Listed objects are limited to the chosen category. NOTE With the Grid, Box, and Sphere choices, you can use only a grid helper object, a primitive sphere, or a primitive box as a reference object. A primitive sphere or box that has been converted to a editable mesh object can't be used as a reference object. Also, the appropriate radio button (see the first item in this group) must be chosen before you select a reference object. Placement in Area group Contains options for positioning scatter objects in a radial area, without using a reference object. In Radial Area Distributes the scatter objects randomly in a spherical or circular arrangement, using the remaining controls in this group box. Center Specifies the center of the distribution in world coordinates. Radius Specifies the maximum distance from the center within which objects are to be positioned. In XY Plane Specifies that objects are to be distributed on the world XY plane only, resulting in a disc-like array. Crowd Animation User Interface | 4827 Spacing group Include children's bounding boxes in spacing calculations When on, all of a hierarchical scatter object's sub-objects are considered when determining spacing. When off, only the selected object is considered. Spacing Specifies the minimum distance between scatter objects. The Spacing setting is multiplied by the size of the object's bounding sphere to determine how close objects can get. If Spacing is left at 1.0, the default, objects normally cannot be positioned within each others' bounding spheres. If Spacing is set to 2.0, objects are separated by a distance equal to or greater than the size of the bounding sphere. Rand Seed Specifies a seed value for randomizing scatter objects' locations. If, for example, you use the same value for clones of a delegate and then a master object, each pair ends up in the same place. If a scene has more than one crowd, each should use a different seed to avoid having identical configurations. Generate Locations Click this button to produce a set of locations for all scatter objects; that is, cloned objects or objects selected with the Select Objects to Transform on page 4835 button. Inc(rement) Seed When on, and you click the Generate Locations button, Scatter adds 1 to the Rand Seed value, and redistributes the objects using the new random seed. Default=on. 4828 | Chapter 17 character studio Rotation panel Contains options for orienting scatter objects. You can specify alternative forward and up axes, plus a target object toward which the objects will point. In addition, you can specify a source object; when using both source and target objects, the objects are rotated so they're parallel to the line between the two. Crowd Animation User Interface | 4829 Local Axes group Use these settings to designate alternative forward and up axes. The default settings match the delegate axes. Forward +/-/X/Y/Z: Specifies which axis of the objects points forward, for use with the Look At Target option. When the + button is active, the default condition, the positive chosen axis is used. Click the + button to use the negative axis. Up +/-/X/Y/Z: Specifies which axis of the objects points upward; this axis is aligned with the world Z-axis. When the + button is active, the default condition, the positive chosen axis is used. Click the + button to use the negative axis. NOTE You cannot specify the same axis as Local Forward and Local Up simultaneously. If you choose an axis for one that's already chosen for the other, the software switches the other to a different axis. Look From group Self/Selected Object Determines the direction from which the objects look. By default, each object looks from its own position (Self), so that when several objects are looking at a single target, each is oriented differently. To orient each object so that it's parallel to an imaginary line between two objects (the "from" object and the "to" object), choose Selected Object and specify the object with the (None) button. None (label) When choosing Selected Object as the Look From object, use this button to specify the "from" direction. Click the button, and then select an object from which the objects are to look. Look At Target group Current Orientation/Selected Object Determines the direction toward which the scatter objects look. By default, each object retains its current orientation. To orient each scatter object so that it's parallel to an imaginary line between two objects (the "look from" object and the "look at target" object), choose Selected Object and specify the object with the (None) button. None (label) Use this button to specify the "to" direction. Click the button, and then select an object toward which the scatter objects are to look. Sideways Deviation Sets a maximum deviation angle in degrees for the objects' sideways orientation. If the scatter objects should look in an object's general 4830 | Chapter 17 character studio direction but may look at a spot to either side of the target, use Sideways Deviation to set the maximum amount by which they can deviate from the calculated angle. The actual deviation amount for each object is calculated at random, based on the Deviation settings and the Rand Seed setting. Range=0.0 to 180.0. Up/Down Deviation Sets a maximum deviation angle in degrees for the objects' up/down orientation. If scatter objects should look in an object's general direction but may look at a spot above or below the target, use Up/Down Deviation to set the maximum amount by which they can deviate from the calculated angle. The actual deviation amount for each scatter object is calculated at random, based on the Deviation settings and the Rand Seed setting. Range=0.0 to 180.0. Rand Seed Specifies a seed value for randomizing the scatter objects' orientations, based on the Deviation settings. If you use the same value for clones of a delegate and then a master object, each pair ends up with the same orientation. If a scene has more than one crowd, each should use a different seed to avoid having identical configurations. Generate Orientations Click this button to produce a set of orientations for all scatter objects; that is, cloned objects or objects selected with the Select Objects to Transform on page 4835 button. Inc(rement) Seed When on, and you click the Generate Orientations button, Scatter adds 1 to the Rand Seed value, and reorients the scatter objects using the new random seed. Default=on. Crowd Animation User Interface | 4831 Scale panel Contains options for scaling scatter objects. You can apply uniform or non-uniform scaling, with optional per-axis deviation for scaling variation. Each axis group has a "Same As" option that lets you scale that axis by the same amount as another. To prevent non-uniform scaling, set two axes to be 4832 | Chapter 17 character studio the same as the third. For example, set scaling in the X group, and then in the Y and Z groups, turn on Same as X. WARNING These controls can apply non-uniform scaling to objects, which may produce unexpected results when performing other operations within 3ds Max. X group Scale Sets scaling on the X-axis as a multiplier. Default=1.0. Deviation Sets the maximum factor for randomization of scaling. For each scatter object, Deviation is multiplied by a random number between 0.0 and 1.0, and then added to the Scale multiplier. Same As Y/Z Lets you use the same scaling as on the Y- or Z-axis, whether explicit or randomized. When you specify an axis, the parameters group for that axis becomes unavailable. Y group Scale Sets scaling on the Y-axis as a multiplier. Default=1.0. Deviation Sets the maximum factor for randomization of scaling. For each scatter object, Deviation is multiplied by a random number between 0.0 and 1.0, and then added to the Scale multiplier. Same As X/Z Lets you use the same scaling as on the X- or Z-axis, whether explicit or randomized. When you specify an axis, the parameters group for that axis becomes unavailable. Z group Scale Sets scaling on the Z-axis as a multiplier. Default=1.0. Deviation Sets the maximum factor for randomization of scaling. For each scatter object, Deviation is multiplied by a random number between 0.0 and 1.0, and then added to the Scale multiplier. Same As X/Y Lets you use the same scaling as on the X- or Y-axis, whether explicit or randomized. When you specify an axis, the parameters group for that axis becomes unavailable. Rand Seed Specifies a seed value for randomizing the clones' scales, based on the Deviation settings. If you use the same value for clones of a delegate and then a master object, each pair ends up with the same scaling factor. Crowd Animation User Interface | 4833 Generate Scales Click this button to scale all scatter objects; that is, cloned objects or objects selected with the Select Objects to Transform on page 4835 button. Inc(rement) Seed When on, and you click the Generate Scales button, Scatter adds 1 to the Rand Seed value, and re-scales the scatter objects using the new random seed. Default=on. All Ops panel This panel lets you perform various permutations of cloning and transform operations in a single step, with or without successive randomization. Operations group Compute Clones Turn on to clone the object chosen with the Object to Clone button on page 4825. When you click the Scatter button, the object is cloned, and then any specified transforms are applied to the clones. 4834 | Chapter 17 character studio Turning on Clones makes the Select Objects To Transform button unavailable. The object to clone and cloning parameters must be specified on the Clone panel on page 4824. Compute Positions/Rotations/Scales Any options in this column that are turned on when you click the Scatter button cause the respective transforms to be applied to the current selection (see Select Objects To Transform, below) according to the settings in the Position panel on page 4826, Rotation panel on page 4829, and Scale panel on page 4832. Inc(rement) Seed Positions/Rotations/Scales Any options in this column that are turned on cause the respective Rand Seed settings to be incremented by 1 each time you click the Scatter button. Use this option to experiment with various randomized transform combinations for your clones. Select Objects to Transform Lets you designate objects to be affected by clicking the Scatter button. Clicking this button opens a version of the Select dialog that's unique to Scatter Objects functionality. If you've performed one or more cloning operations during the current session, the results of the most recent cloning are selected by default, including the original cloned object. For example, if you created 10 clones, 11 objects are selected. You can use the Select dialog to alter or replace this selection. NOTE The results of the most recent cloning operation remain selected even if you close and later reopen the Scatter Objects dialog. Scatter Performs any cloning and/or transforms that are turned on. OK Retains all changes and closes the dialog. Cancel Forgets any changes and closes the dialog. Random Placement Difficulty Dialog This dialog appears when the software encounters difficulty placing cloned objects without overlapping using the Scatter Objects dialog on page 4823. The dialog text tells you how many attempts the software has made to place a specific object, and asks you if you want to try again. Crowd Animation User Interface | 4835 Interface Try Again Click this button to force the software to make N more attempts, where N is set in the How Many More Attempts field. Skip This One Instructs the software to stop trying to place the current object and proceed to the next. Quit Trying Aborts the Generate Locations process; no more objects will be placed. Object/Delegate Associations Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Associate Objects with Delegates Select a Crowd object. > Modify panel > Setup rollout > Associate Objects with Delegates You can use this dialog to link any number of delegate-object pairs. You can also use this dialog to align objects with delegates, optionally matching scaling factors as well. Lastly, you can specify that the objects use the delegates' controllers. 4836 | Chapter 17 character studio Interface Objects Lists objects available for linking, specified using the Add function (see following item). You can select any number of objects from this list for subsequent removal. Add Click this to open the standard 3ds Max Select dialog, which lists all objects in the scene, including delegates. Make your selection, and then click the Select button to add the objects to the Objects list. Remove Deletes the highlighted object or objects from the list. Shift Up/Shift Down Use the arrow buttons between the two lists to move highlighted items higher or lower in the list. When you click Align Objects With Delegates, Link Objects To Delegates, or Assign Delegate Controllers To Objects, the software creates associations between pairs of items at matching positions in the lists. Crowd Animation User Interface | 4837 Delegates Lists delegates available for linking, specified using the Add function (see following item). You can select any number of delegates from this list for subsequent removal. Add Click this to open the standard 3ds Max Select dialog, which lists all delegates in the scene. Make your selection, and then click the Select button to add the delegates to the Delegates list. Remove Deletes the highlighted delegate or delegates from the list. Association via Linking group Align Objects with Delegates Aligns each object with its corresponding delegate by moving and rotating the object on its local axes. Each delegate's local Y axis points in the forward direction, so aligned objects will be rotated so their Y axes point in the forward direction as well. This option works much like the 3ds Max Align feature. Align Scale When on, clicking Align Objects with Delegates sets each object's absolute scaling factor to that of its corresponding delegates. This is useful if, for example, you've randomized delegates' sizes with the Scatter Objects Scale panel on page 4832, and want the associated objects to match. Link Objects to Delegates Creates a hierarchy for each object-delegate pair, with the delegate as parent. Association via Animation Replacement group Assign Delegate Controllers to Objects Copies each delegate's controllers to the paired objects as an instance. This is the same as using Track View > Copy Controller from the delegate, and then pasting the controller as an instance to the object. Does not link objects hierarchically with delegates. Once you've set up the delegate animation the way you want it, if you then want to apply the animation to an object or objects en masse, use this function. You can then delete the delegates if you like. OK Implements any changes and closes the dialog. Cancel Eliminates any changes and closes the dialog. NOTE Clicking OK has no intrinsic effect; in order to implement any of the dialog functions, you must first click at least one of the Align/Link/Assign buttons. 4838 | Chapter 17 character studio Edit Multiple Delegates Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Multiple Delegate Editing Select a Crowd object. > Modify panel > Setup rollout > Multiple Delegate Editing The Edit Multiple Delegates dialog lets you define groups of delegates and set parameters for them. You can create and store up to 10 different configurations or settings combinations; each consists of one or more delegates and settings for the delegates. The parameters are mostly the same as those found in the delegate object's Motion Parameters rollout on page 4813, with the following exceptions and additions. ■ Each setting has an associated SET check box, which lets you determine whether the setting has any effect. When off (the default), the setting has no effect. When on, the setting affects the specified delegate or delegates when you click the Apply Edit button. ■ Each numeric parameter has two Value settings and an associated Random check box, which lets you specify a random value within a specified range for each member of the group. By default, Random is off, and the Value 1 setting is applied for all parameters with SET turned on. If you turn on Random for a parameter, its Value 2 setting becomes available. If you then specify a different setting for Value 2, the software calculates a different random number between Value 1 and Value 2 for each delegate in the group. TIP To reset a parameter to a specific value for all delegates in a group after it's been set to a random value within a range, turn off Random and turn on SET for the parameter, then set Value1 to the desired value, and then click OK. Procedures To edit multiple delegates: 1 Select the Crowd object and open the Modify panel. 2 On the Setup rollout, click the Multiple Delegate Editing button. This opens the Edit Multiple Delegates dialog. Crowd Animation User Interface | 4839 3 Optionally, in the dialog (bottom-left corner), choose a stored dialog setting to use from the 10 available settings. 4 If necessary, use the Delegates To Edit group box controls to add delegates to or remove them from the current setting. 5 Modify the remaining parameters as necessary. Be sure to turn on the SET check box for any parameters that are to change. 6 Click the Apply Edit button to make the changes and exit the dialog. Interface 4840 | Chapter 17 character studio Delegates to Edit group This group shows delegates belonging to the current settings combination in a list box and lets you add and delete members. Add Click this button, and then choose delegates to add from the Select dialog. Remove To remove delegates from the list, first choose the names of those to delete in the list box (drag to choose two or more contiguous names, or use Ctrl-click to choose non-contiguous names), and then click Remove. Set Parameters from Animation group Use this function to obtain motion parameters from an animated object and apply them to all specified delegates. It affects only Average Speed, Max Accel, and the Turning parameters. Because this one animation will set most of the parameters of the delegate, it should be representative of a whole range of motion of the delegate. For example, the object should turn and accelerate. The animation should be somewhat lengthy so that averages are calculated correctly. Animated Object Specifies an animated object. Click this button, and then choose the object from the list in the Select dialog. Set After specifying the animated object, click this button to apply its parameters to the delegate settings. Also turns on the SET check box for any affected parameters. General group Rather than numeric values, the settings in this group are on-off switches, except for the first, Velocity Color. To change Velocity Color, click the color swatch, use the Color Selector dialog to pick a new color, and then turn on the Velocity Color SET check box. To change any other setting in the General group, click the check box to the right of the setting, and then turn on the setting's SET check box. These settings are the same as those found in the delegate object's Motion Parameters rollout on page 4813. Speed group These parameters are the same as those found in the delegate object's Motion Parameters rollout on page 4813. For an explanation of the Random and SET check boxes, see the introduction to this topic. Crowd Animation User Interface | 4841 Turning group These parameters are the same as those found in the delegate object's Motion Parameters rollout on page 4813. For an explanation of the Random and SET check boxes, see the introduction to this topic. Banking group These parameters are the same as those found in the delegate object's Motion Parameters rollout on page 4813. For an explanation of the Random and SET check boxes, see the introduction to this topic. Biped group These parameters are the same as those found in the delegate object's Motion Parameters rollout on page 4813. For an explanation of the Random and SET check boxes, see the introduction to this topic. Stored Dialog Settings Use this list to specify up to 10 different combinations of delegates and settings. To store a combination, choose a name from the list, and then specify the delegates and settings. To recall a combination, choose its name from the list. To rename a combination, choose its name from the list, and then highlight the name and edit it using the keyboard. Check All Sets Click this button to turn on all SET check boxes. This ensures that any changes you make in the dialog take effect when you click the Apply Edit button. Apply Edit Click Apply Edit to implement all changed settings and exit the dialog. Close Click Close to remember, but not implement, all changed settings and exit the dialog. Cancel Click Cancel to forget all changed settings and exit the dialog. Associate Bipeds With Delegates Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Biped/Delegate Associations button Select a Crowd object. > Modify panel > Setup rollout > Biped/Delegate Associations button 4842 | Chapter 17 character studio Use this dialog to associate any number of delegates with an equal number of bipeds. Add delegates and bipeds to the two lists, and order them so the desired pairs are across from each other. Then choose Make Specified Associations and click the Associate button. Alternatively, you can remove existing delegate-biped associations, or simply associate each delegate with the biped nearest it in the scene. Interface Bipeds Lists bipeds available for linking, specified using the Add function (see following item). You can select any number of objects from this list for shifting up or down, or deleting. To clear highlighted items, control-click them. Add Click this to open the standard 3ds Max Select dialog, which lists all bipeds in the scene that are not currently listed in the Associate Bipeds with Delegates dialog. Make your selection, and then click the Select button to add the delegates to the Objects list. Remove Removes the highlighted biped or bipeds from the list. Crowd Animation User Interface | 4843 Shift Up/Shift Down Use the arrows between the two lists to move highlighted items higher or lower in the lists. When Make Specified Associations is chosen and you click the Associate button, the software creates associations between pairs of items at matching positions in the lists. Delegates Lists delegates available for linking, specified using the Add function (see following item). You can highlight any number of objects from this list for shifting up or down, or deleting. To clear highlighted items, control-click them. Add Click this to open the standard 3ds Max Select dialog, which lists all delegates in the scene that are not currently listed in the Associate Bipeds With Delegates dialog. Make your selection, and then click the Select button to add the delegates to the Delegates list. Remove Removes the selected delegate or delegates from the list. Clear Associations When this is on, and you click the Disassociate button, character studio eliminates any delegate-biped associations. Makes the Bipeds list and buttons unavailable. Make Specified Associations When chosen, and you click the Associate button, character studio associates each parallel delegate-biped pair in the two lists. That is, the first delegate is associated with the first biped, the second delegate with the second biped, and so on. Associate Delegates With Closest Biped When chosen, and you click the Associate button, character studio calculates the biped nearest each delegate in the scene and links the two together. Set Delegates to Use Biped When on, and you click the Associate button, the software turns on the Use Biped on page 4818 option for all delegates listed in the dialog. Associate/Disassociate Implements specified changes, calculates any random values, and closes the dialog. Button text changes to "Disassociate" when the Clear Associations option is chosen. Close Remembers any changed settings and closes the dialog. No new delegate settings are calculated or applied. Cancel Ignores any changes and closes the dialog. 4844 | Chapter 17 character studio Behavior Assignments and Teams Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Behavior Assignments Select a Crowd object. > Modify panel > Setup rollout > Behavior Assignments The Behavior Assignments and Teams dialog lets you group delegates on page 4811 into teams on page 4853, and assign behaviors on page 4822 and cognitive controllers on page 4857 to individual delegates and teams. It also lets you modify existing assignments. The dialog is modeless; while it's open, you can use the Modify panel to adjust behaviors and set up new behaviors, as well as animate assignments' Weight settings. NOTE Crowd doesn't let you use multiple cognitive controllers with a delegate. You can assign them, but when you solve, the software notifies you that it will use only the first assigned cognitive controller. NOTE The Enable Flashing option helps you see which delegates are affected by different actions in this dialog. When it's turned on, and you perform any of the following, the relevant delegates "flash" (highlight briefly) in the viewports: ■ Click a delegate or team in the Assignment Design group ■ Click an assignment in the Behavior Assignments group ■ Add members to a team in the Teams group ■ Remove members from a team in the Teams group Procedures To group delegates into a team: 1 In the Teams group, click the New Team button. 2 Use the Select Delegates dialog to designate the delegates in the team, and then click the OK button. 3 To change a team name, choose it from the drop-down list at the top of the Teams group, click on its name, and then use the keyboard to edit the text. Crowd Animation User Interface | 4845 4 To remove team members, choose the team from the drop-down list at the top of the Teams group, select the members to remove from the lower list, and then click the Remove Members button. 5 To add team members, choose the team from the drop-down list at the top of the Teams group, click the Add Members button, and then use the Select Delegates dialog to designate the delegates to add. To create a new behavior assignment: This procedure gives the basic method for assigning a behavior or cognitive controller to a delegate or team. 1 If you want to assign the same behavior to more than one delegate, use the Teams group on page 4853 to collect delegates into teams. NOTE You can still assign behaviors to an individual delegate, even if it belongs to one or more teams. 2 Make sure no existing assignments in the Behavior Assignments group are highlighted. If any are, Ctrl+click them to clear the selections. If assignments are highlighted, the software assumes you want to modify the existing assignments 3 In the Assignment Design group, select one delegate or team, and one or more behaviors or one cognitive controller. You can select only one item from either side of this group, with the exception of behaviors. If you choose multiple behaviors, the software creates a separate assignment for each. NOTE When you select a delegate or team, it briefly highlights in the viewports to indicate the affected delegates. 4 Click the New Assignment button. This is the vertical button to the right of the assignment Design group, with five right-pointing arrows. This adds the assignments to the list in the Behavior Assignments group. 5 At this point, you can highlight an assignment, and then change its Weight setting, its Active status, delete it, or change the assignee and/or behavior/cognitive controller. 6 Click OK to accept the changes and close the dialog. 4846 | Chapter 17 character studio To modify an existing behavior assignment or assignments: 1 In the Behavior Assignments group, select the assignment or assignments to change. You can select multiple assignments by Ctrl+clicking for non-contiguous items or Shift+clicking for contiguous items, and then change the assignees or behaviors for all of them at once. 2 To change assignees, in the Assignment Design group, select a delegate or team. 3 To change the assigned behaviors, in the Assignment Design group, select a behavior or cognitive controller. 4 Click the Reset Assignment button. This is the vertical button to the right of the assignment Design group, with five right-pointing arrows. 5 Change the Weight setting and Active status as necessary. 6 Click OK to accept the changes and close the dialog. Crowd Animation User Interface | 4847 Interface Assignment Design group Lets you set up assignments by choosing a behavior or cognitive controller and a delegate or team to assign it to. Choose one item from the left side (upper or lower list), and one item from right side (upper or lower list). Then click the New/Reset Assignment button immediately to the right of the Assignment Design group (vertical button with five right-pointing arrows). TIP With the exception of Behaviors, you can choose only one item from either side of this group. To assign the same behavior to more than one delegate, the most efficient method is to use the Teams group on page 4853 to gather delegates into teams. You can select multiple behaviors for a new assignment to a delegate or team. When you click New Assignment, the software creates a separate assignment for each highlighted behavior. For changing assignments, you're still restricted to choosing one behavior at a time. If you choose an existing assignment and multiple behaviors, the Reset Assignment button becomes unavailable. Delegates Lists delegates in the scene. 4848 | Chapter 17 character studio Behaviors Lists existing behaviors. To use a behavior that hasn't been added to the scene yet, click the New Behavior button at the bottom of this group. Teams Lists teams in the scene. To create a new team, use the controls in Teams group box. Cognitive Controllers Lists existing cognitive controllers. To create a new controller, click the Setup rollout > Cognitive Controllers on page 4857 button. You needn't first exit the Behavior Assignments and Teams dialog; when you close the editor, the new controllers are added to the Cognitive Controllers list. Clear Selections Deselects all highlighted items in the Assignment Design and Behavior Assignments groups. Use this before modifying an assignment, to avoid possible confusion. New Behavior Opens the Select Behavior Type dialog on page 4854, which lets you add a behavior to the scene for use in an assignment. To modify a new behavior, use the facilities available in the Crowd object's rollouts. NOTE If you add the first behavior in the scene from this dialog, the text box in the Crowd object > Setup rollout remains empty, and no rollout for the behavior appears. To edit the behavior, choose it from the list. New Assignment/Reset Assignment Click to assign a behavior or behaviors or a cognitive controller to a delegate or team. Crowd Animation User Interface | 4849 This vertical button with five right-pointing arrows on it is situated between the Assignment Design and Behavior Assignments group. It's available only when two items in the Assignment Design group are highlighted (exception: Multiple behaviors can be highlighted). If no item in the Behavior Assignments group is highlighted, clicking the button creates a new assignment and adds it to the assignments list. If one or more items in the Behavior Assignments group are highlighted, clicking the button sets the highlighted assignments to use the highlighted delegate/team and behavior/cognitive controller combination. 4850 | Chapter 17 character studio Behavior Assignments group Lets you create and modify behavior assignments. List box Displays all current behavior assignments, including team or delegate name, assigned behavior or cognitive controller, weight setting, and active status. Items are sorted in alphabetical first by Delegate/Team name, and then by Behavior/Cog name. A dashed line appears before a list entry if it's the first item for that delegate or team. To modify or delete an assignment, choose it from the list, whereupon the software highlights the assigned components in the Assignment Design group. Make the changes using the remaining controls in this dialog. NOTE You can select multiple assignments from the list by Ctrl+clicking for non-contiguous items or Shift+clicking for contiguous items. To clear an item, Ctrl+click it. Crowd Animation User Interface | 4851 Weight The relative effect of the assigned behavior or cognitive controller. The higher an assignment's Weight setting is than others', the greater relative effect it will have. This setting is animatable. Default=1.0. In most cases, you should keep Weight within a range of 0.0 to 1.0. Higher settings are available but shouldn't be used unless absolutely necessary. NOTE The Weight setting is not relevant to the Avoid on page 4867, Orientation on page 4872, or the Surface Follow on page 4892 behavior, and is thus unavailable for assignments using any of those three. Active When on, the assignment is currently in effect. When off, the assignment has no effect. This check box is animatable. Default=on. Delete Deletes the highlighted behavior assignment. 4852 | Chapter 17 character studio Teams group Lets you define, modify, and delete teams of delegates. NOTE You can toggle the display of this group box with the No Teams/Teams button below the Behavior Assignments group. Drop-down list Displays the name of the current team. To view a different team, choose it from the list. To change a team name, click in the box and then use the keyboard to edit the text. List box Displays delegates in the current team. Crowd Animation User Interface | 4853 New Team Adds a team to the list, and opens the Select Delegates dialog on page 4855 to let you specify new team members. The default team name is "Team," followed by a number, starting with "0" and counting up. Delete Team Deletes the current team. Team members are not deleted from the scene. Add Members Lets you add members to the current team. Use the Select Delegates dialog on page 4855 to specify new team members. Remove Members Removes selected members from the team. Removed members are not deleted from the scene. Create/Change Selection Set Adds the current team to the list of selection sets, accessible from the Named Selection Sets list on the Main toolbar. If the current team already is a selection set, and you subsequently changed the team's makeup, click this button to update the members in the Named Selection Sets list. Enable Flashing When on, and you click a list item in the dialog or create/modify a team, the relevant objects highlight briefly in the viewports to indicate which are affected. Default=on. See the introductory note on page 4845 for details. OK Click this button to accept all changes and close the dialog. No Teams/Teams Toggles display of the Teams group box. By default, the Teams group is displayed; click the No Teams button to turn it off. When it's off, click the Teams button to turn it on. The state of the toggle persists only during the current session. Select Behavior Type Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Behavior Assignments > New Behavior Select a Crowd object. > Modify panel > Setup rollout > Behavior Assignments > New Behavior Use this dialog to select the type of behavior to be added to a Crowd object. The choices are: Avoid Behavior on page 4867 4854 | Chapter 17 character studio Orientation Behavior on page 4872 Path Follow Behavior on page 4876 Repel Behavior on page 4880 Scripted Behavior on page 4882 Seek Behavior on page 4883 Space Warp Behavior on page 4885 Speed Vary Behavior on page 4886 Surface Arrive Behavior on page 4888 Surface Follow Behavior on page 4892 Wall Repel Behavior on page 4895 Wall Seek Behavior on page 4898 Wander Behavior on page 4901 Select Delegates Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Behavior Assignments > Choose or add a team. > Add Members Select a Crowd object. > Modify panel > Setup rollout > Behavior Assignments > Choose or add a team. > Add Members The Select Delegates dialog lets you designate delegates to be assigned to teams using the Behavior Assignments and Teams dialog on page 4845 for assigning crowd behaviors. Crowd Animation User Interface | 4855 Interface List box Lists all delegates in the scene. All Selects all delegates in the list. None Deselects all delegates. Invert Inverts the current selection. Selection Sets Choose an item from this to select all members of the selection set. You must first have created a selection set from one or more delegates. OK Closes the dialog and implements changes. Cancel Closes the dialog and ignores changes. 4856 | Chapter 17 character studio Cognitive Controller Editor Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Cognitive Controllers Select a Crowd object. > Modify panel > Setup rollout > Cognitive Controllers The Cognitive Controller editor lets you combine behaviors into states. More importantly, it lets you sequence different behaviors on page 4772 and behavior combinations using state diagrams, where conditionals written in MAXScript impose changes in behavior. For example, you can specify that a character or object is to wander aimlessly until it comes within a certain distance of another object, whereupon it heads straight for that object. Or you can specify that one character is to avoid another only when the second character is avoiding the first. NOTE The MAXScript conditionals used in the cognitive controller typically consist of a single line of code. You can load and save them separately as .ms files, but they are also stored within the .max scene file in which they reside. The editor interface consists of an icon-based toolbar above a window that contains the state diagram. When you first open the editor, no state diagrams exist. Begin by clicking the New button to create a new state diagram. TIP If you find yourself consistently assigning two or more behaviors to delegates or teams, you can save time by combining the behaviors into a single-state cognitive controller, or "behavior module," and assigning that instead. The only disadvantage is that you can't animate the weights of behaviors used in the cognitive controller, but you can work around that by using transitions. NOTE Crowd doesn't let you use multiple cognitive controllers with a delegate. You can assign them, but when you solve, the software notifies you that it will use only the first assigned cognitive controller. See also: ■ State Dialog on page 4859 ■ State Transition Dialog on page 4861 Crowd Animation User Interface | 4857 Interface Create State Lets you create new states in the diagram. Click this button, and then click in the state diagram area to add states. A state appears as a rectangular box containing the name of the state. The first state you add is, by default, the first state in the controller that executes when the simulation is run. This is indicated by its red color; states you add subsequently are colored blue. To set a different state to execute first, use the Set Start State function. You specify a state's name and behaviors by editing the state. To edit a state, right-click it. This opens the State dialog on page 4859. Create Transition Lets you link states with transitions. Click this button, and then drag between two states to create the transition, starting with the earlier state. The transition appears as a black arrow pointing from the first state to the second. Alternatively, if you click a state with the Create Transition tool active, you create a transition that loops back to the state itself. Right-click a transition to specify its characteristics and conditions by editing the transition. This opens the State Transition dialog on page 4861. 4858 | Chapter 17 character studio Set Start State Normally the state that executes first in a cognitive controller is the one that was added first. Use this tool to choose a different state to execute first. The start state is red; the rest are blue. Typically you would use this when you have a circular sequence of states, and you want to change which state executes initially. Move State Lets you move states around in the window by dragging them. Select State/Transition Lets you select states and transitions for subsequent deletion. Selected states have white outlines, and selected transition lines are white. You can select multiple states by dragging a box around them. You can select multiple states and transitions by holding the Ctrl key as you click. Delete State/Transition Lets you delete one or more states or transitions. First select any combination of states and transitions to delete, and then click this button. (Name) Shows the name of the current state diagram. To display and/or edit another, choose it from the list. To change a state diagram's name, click the name in the box and use the keyboard to edit the text. New Adds a new cognitive controller. By default, cognitive controllers are named “Cognitive Controller” followed by a number, but you can change this to anything you like. Delete Deletes the current cognitive controller. This is an undoable operation. State Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Cognitive Controllers > right-click a state icon. Select a Crowd object. > Modify panel > Setup rollout > Cognitive Controllers > right-click a state icon. Crowd Animation User Interface | 4859 The State dialog lets you add behaviors to, and remove them from, a cognitive controller state in a crowd simulation, and specify weights for each behavior. Interface State name Displays the name of the state. To change the name, click this text and edit from the keyboard. List Displays the names of all behaviors associated with the state. To remove a behavior or change its weight, click the behavior's name, and then make the appropriate changes using the controls below the list. NOTE The order of behaviors in this list is immaterial; all behaviors execute simultaneously. Add Opens the Select Behavior dialog, which displays the names of all behaviors on page 4866 in the current Crowd object that are not associated with the current state. Select a behavior (use Shift and/or Ctrl to choose multiple behaviors), and then click OK. 4860 | Chapter 17 character studio Remove Eliminates the highlighted behavior from the state. Weight Specifies the selected behavior's relative influence in the state. Default=1.0. The higher the weight in relation to other behaviors' weights, the more evident the results of the behavior in the state. In most cases, you should keep Weight within a range of 0.0 to 1.0. Higher settings are available but shouldn't be used unless absolutely necessary. OK Closes the dialog and implements changes. Cancel Closes the dialog and ignores changes. State Transition Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Cognitive Controllers > Right-click a transition line. Select a Crowd object. > Modify panel > Setup rollout > Cognitive Controllers > Right-click a transition line. These settings control how the software effects a transition from one state to another when using a cognitive controller on page 4857. For more detailed information, see To set up and use a cognitive controller on page ?. The Transition Script The most important element of the transition is the MAXScript conditional script. This is a script associated with the controller that is executed once per frame, and can test any aspect or aspects of the scene and cause a transition or not, depending on whether the result of the test is successful (true, or 1) or unsuccessful (false, or 0). The software executes scripts once per frame per assigned delegate, so objects and effects can be animated and still let delegates react with accuracy. All scripts used in transitions use the following structure: fn [FunctionName] del t = ( [MAXScript code] if [MAXScript conditional] then 1 else 0 ) Crowd Animation User Interface | 4861 The opening section contains "fn" (function) followed by the function name, which also must appear in the State Transition dialog, and then the input parameters "del t", and lastly "= (". Following this there can be any MAXScript code, or none. The closing section contains a necessary MAXScript conditional, and then "then 1 else 0". This means: If the result of the conditional is true, then return 1 (that is, the transition is to take place), or if the result of the conditional is false, then return 0 (that is, the transition is not to take place). You could reverse the order of the numbers 1 and 0 ("then 0 else 1") so that the conditional being true would cause no transition to take place, and vice-versa. Lastly, the function must end with a close parenthesis: ")". Following are some examples of scripts that can be used in cognitive controllers, along with brief explanations. These are presented for you to modify and use in your own scenes. NOTE See this topic in the online User Reference for sample code to test an object position, test the distance between two objects, and test a modifier parameter. Testing a Particle System Parameter This sample script tests the number of particles emitted by particle system Spray01, and returns positive if the number equals 100. fn TestParticles del t = ( if (particleCount $Spray01) == 100 then 1 else 0 ) Testing an Atmospheric Property This sample script tests the Density parameter of a fog effect, and returns positive if it equals 50. fn TestAtmos del t = ( atmos_fog = getAtmospheric 1 print atmos_fog.density -- to:debug if (atmos_fog.density == 50) then 1 else 0 ) Note the second line, which assigns the fog atmospheric to a variable named "atmos_fog". This is necessary only for atmospheric effects; with most standard objects, you simply use the object name preceded by a $, as in the two previous examples. The "1" following the getAtmospheric command refers to the atmospheric's position in the Rendering Effects dialog > Effects list. 4862 | Chapter 17 character studio Once you've executed this assignment, you can obtain a list of the atmospheric's properties by entering this command in the MAXScript Listener: ShowProperties atmos_fog Also, the third line in the sample script isn't necessary for the cognitive controller; it simply prints the result of the test in the Listener window for debugging purposes. Testing Another Delegate's Behavior You might want to determine in a transition script which behavior is currently influencing a certain delegate. Crowd provides a MAXScript-based method for doing this. You can even check whether a particular delegate is specified as a target within that behavior. An example would be a cocktail party scene in which Betty avoids Harry if Harry is seeking Sally. But if Harry is avoiding Sally, then Betty will seek Harry. The following example script is taken from the sample file party.max, which you can find in the Biped download available on http://www.autodesk.com/3dsmax8-docsthis page, under 3ds Max 8 Tutorials – Scene and Support Files > Specialized. The scene uses a more complex scenario than the example described in the previous paragraph. Following is an overview, but to fully understand the setup, you should examine the scene. Study, in particular, the behavior assignments and cognitive controllers, which use a total of eight different transition scripts. Six delegates are confined in a "room" defined by four grids, using a Wall Repel behavior. Delegates 1, 2, 3, and 5 simply wander at random during the simulation. However, delegate 4 uses a cognitive controller (cc1) that tells it to start wandering, and then switch to one of three Avoid behaviors if members of one of three arbitrary pairs of delegates come within 50 units of each other. Each of the Avoid behaviors targets a different group of three delegates, two of which include delegate 2. Delegate 6 is assigned a second cognitive controller (cc2) that uses the following script to tell it to switch to an Avoid behavior if delegate 4 is avoiding delegate 2. The heart of the script is this line in function transfunc4: NOTE See the online User Reference for this sample code. Load the file, press F11 to open the Listener window, and then solve. The Listener window displays a message whenever delegate 4 is found to be avoiding delegate 2. You can use this script as is in your own simulations to check for whether one delegate is avoiding a second by substituting the delegates' names in the above Crowd Animation User Interface | 4863 line, and also substituting the names of your Avoid behaviors in the list in transfunc4, adding or deleting lines as necessary. The example script illustrates a second important point: Cognitive controller transition scripts can contain multiple functions. Crowd first executes the function specified in the State Transition dialog > Transition Condition field, and that function calls one or more additional functions in the script, which, of course, can also call functions. In this case, transfunc4 calls the first function, isDelegateAvoiding, passing it three parameters. Lastly, the script contains a special function, getBehaviorType, that compares an input behavior against a list of known behaviors, and on a match, returns the known behavior. In this case, transfunc4 runs through the list of behaviors currently influencing Delegate04, testing each with getBehaviorType, and if an Avoid behavior is in effect, proceeds to check whether Delegate02 is an obstacle of that Avoid behavior. Use of this function is more efficient and flexible than testing for specific behaviors, especially if your scene contains many behaviors of the same type, or you're constantly editing behavior settings. You can see the returned behaviors by removing the comment (double hyphen) from the beginning of the following line in transfunc4. NOTE See the online User Reference for this sample code. 4864 | Chapter 17 character studio Interface Priority Sets the transition's precedence. When more than one transition tests true, the software uses the Priority setting to determine which transition occurs. It performs the transition with the lowest Priority setting. Thus, for example, a transition with a Priority setting of 0 takes precedence over one with Priority 1, and so on. Duration The number of frames the software takes to effect the transition between states. Ease In The rate at which the transition begins. Default=0.5. Range=0 to 1.0. Lower values cause a more abrupt transition, while higher values cause a more gradual transition. Ease Out The rate at which the transition ends. Default=0.5. Range=0 to 1.0. Lower values cause a more abrupt transition, while higher values cause a more gradual transition. Crowd Animation User Interface | 4865 NOTE The sum of the values for Ease In and Ease Out must be less than or equal to 1.0. The software won't let you set a value for either parameter that would cause the sum to exceed 1.0. To increase the value of one parameter when its value equals 1.0 minus the other parameter, decrease the other parameter first. Transition Condition The name of the MAXScript function that specifies when/how the transition is to occur. This name must also appear at the beginning of the main function in the script, after "fn". The script can contain additional functions that are called by the main function and each other. Edit MAXScript Opens an editor window for editing, saving, and loading the transition's MAXScript script. OK Closes the dialog and implements changes. Cancel Closes the dialog and ignores changes. Behavior Rollout Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button Select a Crowd object. > Modify panel > Setup rollout > New button Select a Crowd object. > Modify panel > Setup rollout > Choose a behavior. The Behavior rollout appears in the Crowd object command panel after you first add a behavior to the scene using the Setup rollout. The rollout's full name (for example: Avoid Behavior or Seek Behavior) depends on the current behavior, displayed in the text box in the Setup rollout. To display the rollout for a different behavior, choose the behavior from the drop-down list. NOTE If you add the first behavior to the scene from the Behavior Assignments and Teams Dialog on page 4845, a behavior rollout does not automatically appear in the Crowd command panel. You must first choose the behavior from the drop-down list at the bottom of the Setup rollout. Use the controls in this rollout to modify the behavior. Following is a list of available behaviors: Avoid Behavior on page 4867 Orientation Behavior on page 4872 4866 | Chapter 17 character studio Path Follow Behavior on page 4876 Repel Behavior on page 4880 Scripted Behavior on page 4882 Seek Behavior on page 4883 Space Warp Behavior on page 4885 Speed Vary Behavior on page 4886 Surface Arrive Behavior on page 4888 Surface Follow Behavior on page 4892 Wall Repel Behavior on page 4895 Wall Seek Behavior on page 4898 Wander Behavior on page 4901 For a detailed description of specific behaviors, refer to the above topics. For an overall look at behaviors, see Assigning Behaviors on page 4772. Behaviors Avoid Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Avoid Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Avoid Behavior The Avoid behavior lets you specify any object or objects that delegates must keep away from. As delegates approach designated objects during the crowd simulation, they steer clear of them while turning and/or braking as necessary. This behavior uses three different methods to let delegates avoid each other and other objects: Steer To Avoid, Repel, and Vector Field. Steer to Avoid behavior is best used for animals that steer around each other at close proximity. Earthbound animals and fish typically do this. Steering motion may be sudden since its action is often engaged for relatively short periods of time. By contrast, Repel avoidance behavior mimics the continuous action of a repellent magnetic field. Birds, bats and flying insects are best animated with Crowd Animation User Interface | 4867 large Repel fields so that they can smoothly avoid each other while maintaining a comfortable margin of error. Repel forces prevent intrusion from all sides, regardless of the direction of travel. Thus even animals that rely mainly on Steer to Avoid will also need some degree of Repel avoidance to maintain spatial separation when they are moving through dense traffic. The forces of Repel avoidance are always directed uniformly outward in a spherical shape. Use Vector Field avoidance for cases where crowd members must avoid hitting the more complex shapes of arbitrary 3ds Max objects. The outward forces of the Vector Field avoidance can constructed to form the shape of any object. For example, suppose you want to animate a school of fish swimming around a sunken ship. In this case, a vector field can be created so that it extends the shape of the ship into the surrounding space. The field is computed by scan converting the ship's surface normals into a 3D lattice that surrounds the ship. These normals will extend into space as "beacons" in the 3D lattice, telling the fish how to best swim away from the shape of the ship. As the fish enter the space of the vector field lattice, they can be precisely repelled along an avoidance force directed away from ship's surface. NOTE In the explanations that follow, the word "target" is used to refer to the object or objects to be avoided. 4868 | Chapter 17 character studio Interface None (label) Specifies a single target. Click this button, and then click the target object in the viewport. The target name then appears on the button. If you've selected multiple targets using Multiple Selection (see next item), the word Multiple appears on the button. To see which objects are designated as targets, click the Multiple Selection button. Multiple Selection Opens the Select dialog to let you designate multiple targets. When you have more than one target, you can set delegates to move toward the closest target in the group, or to a computed average of the target positions. Crowd Animation User Interface | 4869 Look Ahead The number of frames in advance of the current frame that the software looks for potential collisions. Default=30. Hard Radius Distance from the target's pivot point, in multiples of the delegate's bounding sphere, where no penetration should occur. Default=1.0. TIP Because the hard radius' center is the pivot point, Avoid may not work as expected with target objects whose pivot point is not centered, such as the box primitive. For best results, use the Hierarchy panel > Adjust Pivot rollout controls to center the pivot to the object. Display Hard Radius Enables display of a wireframe sphere that depicts the extent of the Hard Radius setting. Default=off. Steer To Avoid group Steer To Avoid is used by delegates to steer precisely around anticipated future collisions based on the delegates' current speed and direction. Delegates using this approach can pass very close to one another. Detour Angle Maximum necessary turning angle relative to the direction of delegate's goal that delegate will steer to avoid rather than slow down and wait. Default=360. Range=0-360. TIP To disable turning for avoidance, thus allowing only braking, set Detour Angle to 0. This forces delegates to remain directed toward their goal so that they must slow down and wait until there is a clearing in front of them, much like an audience queuing to leave through an exit after a concert. Brake Pressure Determines how strongly a delegate will react when it encounters an avoided object. Higher values make the delegate more likely to slow down or stop. Lower values will cause delegates to look for a way around the obstacle so they can keep going, sometimes causing delegates to veer off in unexpected directions. Default=2.0. Repel group Repel is a general separation force that is based only on the spatial position. Delegates use this to keep from getting into situations where they might side-swipe each other or where they might get so close that Steer To Avoid is too difficult to achieve. Strength Determines the strength of the repelling force; higher values result in greater repulsion force. Default=0.2. Range=0.0 to 1.0. 4870 | Chapter 17 character studio Radius Maximum distance from delegate's bounding sphere within which "repel" avoidance is sensed and carried out. Default=3.0. Falloff The rate at which the strength diminishes between the Repel radius and the hard radius. A value of 1.0 indicates a linear falloff. Higher values cause the strength to fall off to zero more rapidly with distance, thus focusing its effect closer to the delegate's hard radius. Lower values reduce the rate of diminishment, with a Falloff setting of 0.0 indicating that the strength is the same at the Radius distance as it is at the Hard Radius. Default=3.0. Display Repel Radius Enables display of a wireframe sphere that depicts the extent of the Repel setting. Default=off. Vector Field group If you've applied a Vector Field space warp on page 4917 to an object in your scene, you can specify the vector field as an object to avoid. The distinction is this: When used with the Space Warp behavior on page 4885, delegates use the vector field to steer around the object by being guided to travel perpendicular to the field's vectors. When used with the Avoid behavior, the delegate simply moves away in the direction of the vectors. TIP Sometimes when using Avoid with a vector field, the behavior might seem to be "fighting" with other behaviors (such as Seek) over delegate movement, causing a halting and/or wavering motion. In such cases, try reducing Brake Strength and/or increasing Falloff. Strength Higher values result in more powerful influence. Delegates will be directed to move perpendicular to the field. Default=1.0. Range=0.0 to 1.0. Falloff Higher values cause vector field influence to fall off to zero more rapidly with distance, thus focusing its effect closer to the delegate's hard radius. Default=8.0. Display During Solve group Use these switches for debugging a crowd simulation. During the solve, they display information about the simulation using graphical metaphors for different aspects of the Avoid behavior. Potential Collisions Displays a green line from the delegate to the location of a potential collision. Default=off. Repel Activity Displays a white line between the delegate and target when the repel force is in effect. Default=off. Crowd Animation User Interface | 4871 Look Ahead Radius Displays a sphere that shows the current distance used to check for potential collisions. Color Swatch Shows the color used to draw the Avoid force vector during the solution. Click the box to choose a different color. Default=red. Force When on, force exerted on one or more delegates by the Avoid behavior is drawn in the viewports as a colored line during the simulation solution. Default=on. Orientation Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Orientation Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Orientation Behavior The Orientation behavior lets you control whether and how delegates rotate, independent of their direction of motion. Normally, a delegate always faces in the direction it's moving. You can use the Orientation behavior to specify limits to the delegate's rotational activity without affecting its path, which is generated by other behaviors. Use these settings, for example, to keep delegates facing in one direction while moving in another. NOTE These settings do not affect the path a delegate takes, which is produced by other behaviors such as Seek and Avoid. They influence only the direction it faces as it traverses the path. 4872 | Chapter 17 character studio Interface Heading group Use these controls to affect how delegates turn on the vertical axis. By default, heading is absolute, with 0 specifying the positive X axis in World coordinates. Thus, -90 would specify the negative Y axis, 90 the positive Y axis, and 180 or -180 the negative X axis. Crowd Animation User Interface | 4873 Absolute heading as viewed from the top For example, if you wanted a delegate to be able to turn between the positive X axis and the positive Y axis, you would set Max Heading to 0 and Min Heading to 90. You can also specify heading limits in amounts relative to the delegate's heading at the time that the Orientation behavior takes effect by turning on the Relative check box. Relative When on, Heading settings are applied relative to the delegate's heading at the time the behavior takes effect. When off, settings are absolute. Default=off. Min Heading The minimum permissible heading. This number should be lower than the Max Heading value. Default=180. Range=-180 to 180. Max Heading The maximum permissible heading. This number should be higher than the Min Heading value. Default=180. Range=-180 to 180. 4874 | Chapter 17 character studio Max Heading Vel(ocity) Specifies how much the delegate's heading can change per frame. This controls angular acceleration and deceleration. Default=180. Head. Response Determines how quickly the heading follows the direction the object is moving in. A value of 1.0 indicates maximum responsiveness, and will point in the direction the delegate is moving (within the limits) while a lower value means that it is less responsive. Default=1. Range=0 to 1. Pitch group Use these controls to affect how delegates turn on the left-right axis. Relative When on, Pitch settings are applied relative to the delegate's pitch at the time the behavior takes effect. When off, settings are absolute. Default=off. Min Pitch The minimum number of degrees a delegate can incline or decline. This number should be lower than the Max Pitch value. Default=-180. Range=-180 to 180. Max Pitch The maximum number of degrees a delegate can incline or decline. This number should be higher than the Min Pitch value. Default=180. Range=-180 to 180. Max Pitch Velocity Specifies how much the delegate's pitch can change per frame. This controls angular acceleration and deceleration. Default=180. Pitch Response Determines how quickly the pitch follows the direction the object is moving in. A value of 1.0 indicates maximum responsiveness, so that will point in the direction the delegate is moving (within the limits) while a lower value means that it is less responsive. Default=1. Range=0 to 1. Banking group Use these controls to affect how delegates turn on the in-out axis. Banking is primarily a result of heading changes. Max Bank The maximum number of degrees the delegate can bank. Default=30.0. Max Bank Velocity The maximum number of degrees the delegate's bank angle can change per frame. This controls angular acceleration and deceleration. Default=3.0. Bank per Turn The number of degrees the delegate will bank as a function of the turn angle at the current frame. For example, if Bank per Turn=1, the Crowd Animation User Interface | 4875 delegate will bank one degree for every degree it is turning at a given frame. Default=1.0. Path Follow Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Path Follow Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Path Follow Behavior The Path Follow behavior lets you direct delegates to traverse a specified path during a crowd simulation. Delegates can move forward or backward along paths, and when they reach the end, they can loop back to the start or reverse direction, or even continue in the same general direction. If the delegate's start position isn't on the path at the start of the simulation, it moves to the path before following the path. During the solution, character studio intermittently displays an optional target icon to show the delegate's immediate goal; this changes as the simulation proceeds. 4876 | Chapter 17 character studio Interface None (label) Click this button, then select a path object. Suitable path objects include splines and NURBS curves. If a path object contains more than one spline or curve, character studio uses the lowest-numbered element (usually the earliest created one). NOTE You can assign a path object only from the Modify panel. Radius The radial distance from the path, in units, within which the delegate stays while traversing the path. Default=20.0. Range=0.0 to 99,999.0. Crowd Animation User Interface | 4877 Turning group These parameters determine how delegates turn while following the path. Awareness determines how well a delegate anticipates turns in the path as it moves; you can apply random variation to Awareness with the Deviation setting. Awareness Specifies how "intelligent" the delegate is while traversing this path. A high Awareness setting means that it takes into account the curve of the path while moving and will try to anticipate changes. A low value for Awareness, on the other hand, means that the delegate notices the path only when leaving it. Default=0.5. Range=0.0 to 1.0. NOTE You can randomize awareness behavior with the Deviation and Seed settings. Deviation Specifies the maximum amount by which Awareness should vary. character studio takes a random number between the negative and positive values of the Deviation setting, multiplies it by the Awareness setting, and adds the result to Awareness. Default=0.5. Range=0.0 to 1.0. NOTE You can vary behaviors among different Path Follow behaviors that use the same Awareness and Deviation settings by changing the Seed value. Starting Point Determines where on the path the delegate begins to follow the path. The default choice is Beginning of Path. Hint: To see a selected spline path's start point, open the Modify panel and turn on any sub-object level; the start point is represented with a unique indicator. Also in the Modify panel, with closed curves, you can see the vertex ordering at any sub-object level by turning on Selection rollout > Display group > Show Vertex Numbers. To see a NURBS curve's start point, go to the Curve sub-object level; the start point is indicated by a small green circle. Beginning of Path The delegate first moves to the start of the path before following it. End of Path The delegate first moves to the end of the path before following it. With closed curves, this is the same point as the beginning of the path. Nearest Point The delegate first moves to the closest point on the path and then follows the path from there. 4878 | Chapter 17 character studio Direction Determines the direction the delegate takes initially when following the path. The default choice is Forwards. Forwards The delegate moves along path vertices in ascending order. Backwards The delegate moves along path vertices in descending order. Action at End of Path Determines what the delegate does when it reaches the path end. The default choice is Loop. Loop The delegate loops around the path, even if it isn't closed. If Beginning of Path or End of Path is chosen, it returns to the path's start or end point each time it finishes traversing the path. If Nearest Point is chosen, it returns to an arbitrary point determined by its position and the path shape. Reverse The delegate reverses direction at the end of the path. Use this choice to simulate a back-and-forth "patrol" behavior. Continue The delegate continues moving in the same direction it faced at the end of the path until the simulation ends or it's acted upon by another force or behavior. Seed Specifies a seed value for randomizing Awareness. Default=1. Color Swatch Shows the color used to draw the Path Follow force vector during the solution. Click the box to choose a different color. Default=blue. Display Force When on, force exerted on the delegate(s) by the Path Follow behavior is drawn in the viewports as a vector during the simulation solution. Default=on. Color Swatch Shows the color used to draw the target icon. Default=dark blue. Display Target Enables display of the target icon, which appears during the solution when a new interim goal is calculated for the delegate. Default=on. Target Scale Specifies the overall size of the target icon. Default=5.0. Crowd Animation User Interface | 4879 Repel Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Repel Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Repel Behavior The Repel behavior lets you specify any object or objects (sources) that will force delegates to move away from them. This is basically the opposite of the Seek behavior on page 4883. If you want delegates to back away from an object, as opposed to turning to face the direction they're moving, use Repel in conjunction with the Orientation behavior on page 4872. NOTE Repel is set by default to work only within a specific radius around the source. If you want it to work at any distance, turn off Radius group > Use Radii. Interface None (label) Specifies a single source. Click this button, and then click the target object in the viewport. The target name then appears on the button. 4880 | Chapter 17 character studio If you've selected multiple sources using Multiple Selection (see next item), the word Multiple appears on the button. To see which objects are designated as sources, click the Multiple Selection button. Multiple Selection Opens the Select dialog to let you designate multiple sources. When you have more than one source, you can set delegates to move toward the closest target in the group, or to a computed average of the source positions. Source of Repulsion group Determines repel activity when the behavior uses multiple sources. The default choice is Closest Source Only. Closest Source Only Each delegate is repelled by the closest of the assigned sources. Use this to have delegates assigned a single Repel behavior move away from sources in different directions. Average Of Sources All delegates move away from a common point determined by averaging all sources' locations. Method group Determines whether delegate direction as influenced by the behavior is calculated by an angular method or a force method. Default=Force. Angle Applies a force to the delegate based on the angle between the delegate's current direction and the direction it would need to take in order to be moving directly away from the source. The magnitude of the force is greatest when the delegate is moving directly towards the source, and needs to turn around. It can be as little as 0 when the delegate is moving directly away from the source. Force Always applies a force directly away from the source. The magnitude of the force is constant. Radius group Use the Radius settings to activate the Repel behavior only when the delegates are within a specific distance from the target. The relative strength of the force increases from 0 percent at the outer radius to 100 percent at the inner radius. Use Radii When on, the behavior applies only to delegates closer to the target than the Outer Distance value. Default=on. Crowd Animation User Interface | 4881 Inner Radius The distance from the target at which the force is applied at full strength. Default=0.0. Outer Radius The distance from the target at which the force begins to be applied. Default=10.0. Falloff Default=2.0. Display Radii The radii are displayed when the force is active. Color Swatch Shows the color used to draw the Repel force vector during the solution. Click the box to choose a different color. Default=violet. Display Force When on, force exerted on the delegate(s) by the Repel behavior is drawn in the viewports as a vector during the simulation solution. Scripted Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Scripted Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Scripted Behavior The Scripted behavior lets you create custom behaviors using MAXScript. A scripted behavior can incorporate one of three behavior types: Force, Constraint, or Orientation. For detailed information on scripting behaviors, see the MAXScript reference, available from the Help menu. Interface Behavior Type Choose Force, Constraint, or Orientation. 4882 | Chapter 17 character studio Script Context Name Specify a name for the script. Edit MAXScript Click to open an editor window. Seek Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Seek Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Seek Behavior The Seek behavior lets you specify any object or objects as a stationary or moving target for delegates. Delegates move toward the target during the crowd simulation while turning as necessary. Interface None (label) Specifies a single target. Click this button, and then click the target object in the viewport. The target name then appears on the button. Crowd Animation User Interface | 4883 If you've selected multiple targets using Multiple Selection (see next item), the word Multiple appears on the button. To see which objects are designated as targets, click the Multiple Selection button. Multiple Selection Opens the Select dialog to let you designate multiple targets. When you have more than one target, you can set delegates to move toward the closest target in the group, or to a computed average of the target positions. Seek Target group Determines seek activity when the behavior uses multiple targets. Closest Target Only Each delegate seeks the closest of the assigned targets. Use this to have delegates assigned a single Seek behavior move in different directions. Average Of Targets All delegates move toward a common point determined by averaging all targets' locations. Method group Determines whether delegate direction as influenced by the behavior is calculated by an angular method or a force method. Default=Angle. Angle Applies a force to the delegate based on the angle between the delegate's current direction and the direction it would need to take in order to be moving directly toward the target. The magnitude of the force is greatest when the delegate is moving away from the target, and needs to turn around. It can be as little as 0 when the delegate is directly approaching the target. Force Always applies a force directly towards the target. The magnitude of the force is constant. Radius group Use the optional radius settings to activate the Seek behavior only when the delegates are within a specific distance from the target. The relative strength of the Seek behavior increases from 0 percent beyond the outer radius to 100 percent at the inner radius. Use Radii When on, the Seek behavior applies only to delegates less than the Outer Radius distance from the target. Default=off. 4884 | Chapter 17 character studio Inner Radius The distance from the target at which Seek is applied at full strength. Default=0.0. Outer Radius The distance from the target at which Seek begins to be applied. Default=10.0. Falloff Default=2.0. Display Radii The radii are displayed when the force is active. Color Swatch Shows the color used to draw the Seek force vector during the solution. Click the box to choose a different color. Default=green. Display Force When on, force exerted on the delegate(s) by the Seek behavior is drawn in the viewports as a vector during the simulation solution. If Use Radii is turned on, the radii are also displayed when the force is active. Space Warp Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Space Warp Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Space Warp Behavior The Space Warp behavior lets space warps, such as wind or gravity, influence a crowd simulation. You can use it to apply space warps in the Forces and Particles & Dynamics categories to crowd members. In particular, use the Space Warp behavior to tie delegates to a Vector Field space warp on page 4917, so that they avoid penetrating an irregularly shaped object while following its contours. Interface None (label) Click this button, then select a space warp object. Crowd Animation User Interface | 4885 Color Swatch shows the color used to draw the Space Warp force vector during the solution. Click the box to choose a different color. Display Force When on, force exerted on the delegate(s) by the Space Warp behavior is drawn in the viewports as a vector during the simulation solution. Speed Vary Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Speed Vary Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Speed Vary Behavior The Speed Vary behavior is useful for objects whose velocity changes at random as they move, such as sightseeing tourists. Its parameters let you specify how often a delegate should change speed, what speed range it should look at for a new speed, and how long it should accelerate to get to that new speed. Interface 4886 | Chapter 17 character studio Time group Period Specifies how many frames should elapse before a new speed is chosen. Deviation Specifies the maximum amount by which Period should vary. Each time a period ends, character studio takes a random number between the negative and positive values of the Deviation setting, multiplies it by the Period setting, and adds the result to Period. Default=0.5. Range=0.0 to 1.0. Speed group The mathematical formula for the new speed is as follows: new speed = (delegate's Average Speed*Center)*(1 + RN*Center Deviation), where RN is a random number between -1 and 1. Center Specifies the speed the delegate should change to. Center is a multiplier: A value of 0.0 means to stop, a value of 1.0 means to move at its average speed on page 4815, and a value greater than 1.0 means to move faster than its average speed. Default=1.0. Range=0.0 to 99,999.0. Deviation Specifies the maximum amount by which the delegate's calculated speed (Average Speed*Center) should vary. Each time a period ends, character studio takes a random number between the negative and positive values of the Deviation setting, multiplies it by the calculated speed, and adds the result to the calculated speed. Default=0.25. Range=0.0 to 99,999.0. Accel Period Specifies the rate at which the delegate's speed should change in relation to the period length. A value of 0.0 means that the transition to the new speed will proceed as quickly as possible, and a value of 0.5 means the transition will take half the period. A value of 1.0 means the transition will take the entire period. Default=0.5. Range=0.0 to 1.0. Deviation Specifies the maximum amount by which acceleration should vary. Each time a period ends, character studio takes a random number between the negative and positive values of the Deviation setting, multiplies it by the Acceleration setting, and adds the result to Acceleration. Default=0.5. Range=0.0 to 1.0. Seed Specifies a value for randomizing the Speed Vary behavior. Crowd Animation User Interface | 4887 Surface Arrive Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Surface Arrive Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Surface Arrive Behavior The Surface Arrive behavior is similar to the Seek behavior on page 4883 in that it lets you specify an object or objects as a stationary or moving target for delegates. The principal difference is that Surface Arrive can cause delegates to stop when they reach the target. You can also specify, to some degree, where the delegate will stop on the object, and how it will approach the target before stopping. An example of a use for this behavior would be birds flying over a row of telephone poles, then each one landing on top of a different pole. 4888 | Chapter 17 character studio Interface Crowd Animation User Interface | 4889 None (label) Specifies a single target. Click this button, and then click the target object in the viewport. The target name then appears on the button. If you've selected multiple targets using Multiple Selection (see next item), the word Multiple appears on the button. To see which objects are designated as targets, click the Multiple Selection button. Multiple Selection Opens the Select dialog to let you designate multiple targets. When you have more than one target, you can set delegates to move toward the closest target in the group, or to a computed average of the target positions. Arrival group Specifies three aspects of the Surface Arrive behavior: Rate, Speed, and Distance. Disable After Arriving When on, turns off the Surface Arrive behavior after the delegate arrives at the surface. Default=on. Rate A multiple of the delegate's Max Accel on page 4815 setting that specifies the acceleration with which it will try to arrive. A value of 1.0 means to use the full acceleration of the delegate. Default=0.5. Deviation Adds random variation to the to the Rate setting. The actual deviation is calculated by multiplying the Deviation setting by a random number between -1 and 1, and then multiplying the result by the Rate setting. Default=0.0. Speed The speed at which to arrive, relative to the speed of the target. Default=0.0. Deviation Adds random variation to the Speed setting. Default=0.0. The actual deviation is calculated by multiplying the Deviation setting by a random number between -1 and 1, and then multiplying the result by the Speed setting. Distance The maximum radial distance from the target within which the behavior will be active. Default=9999999.0. Until the delegate is within this radius, the behavior has no influence. Deviation Adds random variation to the to the Distance setting. The actual deviation is calculated by multiplying the Deviation setting by a random number between -1 and 1, and then multiplying the result by the Distance setting. Default=0.0. 4890 | Chapter 17 character studio Location group Offset Specifies a consistent distance from the calculated arrival point, based on the surface normal, for the delegate to use. Default=0.0. Facing When on, the delegate will try to arrive only at points on triangles on the surface that are facing it. Default=off. Random The software chooses a random point on the target surface as the arrival point. When using the Random option, the software chooses arrival points for delegates once, at the beginning of the simulation. This is the default choice Closest The software chooses the closest point on the target surface as the arrival point. If Closest is chosen, but Every Frame is off, the software chooses arrival points for delegates once, at the beginning of the simulation. Every Frame When on, the software chooses arrival points for delegates at every frame. Available only when Closest is chosen. Default=off. Every Frame is useful when the target object is rotating during the animation, but requires more time for calculation. Display Offset When on, shows the Offset distance as lines emanating from each vertex in the surface object, perpendicular to the surface. Approach group The Height and Descent settings together specify the path the delegate will take for its arrival. They allow for a wide range of behavior, from soft, gradual landings to direct helicopter-type descents. In both cases, the actual deviation is calculated by multiplying the Deviation setting by a random number between -1 and 1, and multiplying the result by the relevant value. Height Specifies a distance from the arrival point along its face normal. This is the point that the delegate will go to first before descending to the arrival point. Deviation Adds random variation to the to the Height setting. The actual deviation is calculated by multiplying the Deviation setting by a random number between -1 and 1, and then multiplying the result by the Height setting. Crowd Animation User Interface | 4891 Descent Start Specifies the distance between the delegate and the arrival point at which the descent should start. NOTE Be careful that Descent Start is set high enough that the delegate won't overshoot when descending because its speed is too high and deceleration too low, compared to when it should start descending. Deviation Adds random variation to the to the Descent Start setting. The actual deviation is calculated by multiplying the Deviation setting by a random number between -1 and 1, and then multiplying the result by the Descent Start setting. Off This Normal When on, lets you set an approach vector to specify the angle at which the final approach occurs. Default=off. X/Y/Z Use these settings to specify the final approach vector in world coordinates. For example, the vector specified by the default settings of X=0, Y=0, Z=1 means that the delegates will approach the target along the vertical world axis. Seed Affects the random numbers used to calculate the Deviation settings. For similar randomization among different Surface Arrive behaviors, use the same Seed value. Color Swatch Shows the color used to draw the target icon. Default=dark blue. Display Target Enables display of the target icon, which appears during the solution when a new interim goal is calculated for the delegate. Interim goals are created when using the Approach group settings. Default=on. Target Scale Specifies the overall size of the target icon. Default=5.0. Surface Follow Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Surface Follow Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Surface Follow Behavior The Surface Follow behavior moves delegates with respect to object surfaces, which can be still or animated. For example, you can apply an animated Noise 4892 | Chapter 17 character studio modifier to a patch grid to simulate a choppy water surface, and objects guided by Surface Follow will stay on top. NOTE By default, a delegate influenced by Surface Follow picks a direction to move in at any given frame based on its current facing and the plane of the face it's currently over. Thus objects moving up a hill, while seeking a point at the bottom of the other side of the hill, tend to turn left or right to skirt the hill, rather than following the upward slope. You can override this with the Projection Vector option. Interface None (label) Specifies a single "target" object to use as a surface. Click this button, and then click the target object in the viewport. The target name then appears on the button. If you've selected multiple targets using Multiple Selection (see next item), the word Multiple appears on the button. To see which objects are designated as targets, click the Multiple Selection button. The Select dialog appears with designated targets highlighted. Multiple Selection Opens the Select dialog to let you designate multiple targets. Crowd Animation User Interface | 4893 When you have more than one target, delegates initially move toward the closest target in the group, and then move over its surface until they encounter another target, at which point they switch to its surface, and so on. Projection Vector group These controls let you override the default direction calculated by the Surface Follow behavior by describing a virtual plane along which the delegate is to move. You do this by specifying a vector, in world coordinates, that's perpendicular to the desired virtual plane. For example, if you want the delegate, when it encounters a hill, to keep moving forward, straight up and over the hill, instead of skirting it, you would use the default Projection Vector settings: X=Y=0, Z=1. This vector is aligned with the world Z (vertical) axis, so it specifies a plane parallel to the world XY plane. Thus, the delegate always moves straight ahead while following the surface. Use Projection When on, Surface Follow calculates delegate direction from the specified vector, rather than using the default. X/Y/Z Specifies a vector using world coordinates. Default=X=Y=0, Z=1. Range=-1.0 to 1.0. If only one of these settings is not 0, then the projection vector is aligned with the non-zero axis. Combine non-zero settings to create angled planes for Surface Follow. For example, to create a virtual plane that's rotated 45 degrees clockwise about world Y axis, set X=Z=1 and Y=0. Also, while you can set all three axes to 0, that specifies no vector, and so effectively turns off Use Projection. Position on Surface group Offset Specifies the delegate's distance above the surface, using the surface normal. Recalculated at each frame. Display Offset When on, shows the Offset distance as lines emanating from each vertex in the surface object, perpendicular to the surface. Color Swatch Shows the color used to draw the Surface Follow target (see Display Target, next) during the solution. Click the box to choose a different color. Display Target When on, the interim goal for each delegate influenced by the Surface Follow behavior is drawn in the viewports as a wireframe sphere during the simulation solution. 4894 | Chapter 17 character studio If the delegate starts out away from the surface to be followed, the target is most visible before the delegate reaches the surface; the target is then positioned along the surface edge. While the delegate is actually following the surface, the target is usually coincident with the delegate, because Surface follow sets a new destination only a frame or two ahead. Target Scale Sets the target size. Wall Repel Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Wall Repel Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Wall Repel Behavior The Wall Repel behavior uses one or more grid objects to repel delegates. When influenced by the Wall Repel force, delegates turn until they're heading away from the grid. It's useful for keeping objects inside a straight-sided enclosure, such as a room in a building. You can set the grids to repel from either side or both sides, and optionally specify a maximum distance for repelling. You can also set the behavior to act as though each grid extends infinitely along its plane. NOTE The Wall Repel behavior simply applies a force on the delegate in the direction opposite the wall; it does not guarantee that the delegate won't go through the wall. If the delegate does go through the wall, adjust settings such as Inner and Outer Distance, and, in particular, try reducing Falloff. Crowd Animation User Interface | 4895 Interface Grid from which to repel Set a repelling grid ("source") by clicking the None button and then selecting the grid. Thereafter, the grid's name appears on the button. To set multiple source grids, click Multiple Selection and use the Select dialog. With multiple source grids, the word "Multiple" appears on the large button. Method group Determines whether delegate direction as influenced by the behavior is calculated by an angular method or a force method. Default=Force. Angle Applies a force to the delegate based on the angle between the delegate's current direction and the direction it would need to take in order to be moving directly away from the source. 4896 | Chapter 17 character studio The magnitude of the force is greatest when the delegate is moving directly towards the source, and needs to turn around. It can be as little as 0 when the delegate is moving directly away from the source. Force Always applies a force directly away from the source. The magnitude of the force is constant. Direction group Determines whether the grid repels from its positive-axis side, its negative-axis side, or both. To determine which is the positive-axis side, select the grid, and then set the reference coordinate system to Local (the default system is View). Look at the grid in a viewport in which it appears edge-on. The side with the axis sticking out is the positive-axis side, and the opposite side is the negative-axis side. TIP For ease of setup, when building a "room" from grids, make sure they all point inward (or outward). Positive Axis The grid repels only from the positive-axis side. Negative Axis The grid repels only from the negative-axis side. Both Axes The grid repels from both sides. Distance group Use the distance settings to activate the Wall Repel behavior only when the delegates are within a specific distance from the target. The relative strength of the behavior increases from 0 percent at the outer radius to 100 percent at the inner radius. Use Distance When on, the behavior applies only to delegates closer to the target than the Outer Distance value. Default=on. Inner Distance The distance from the target at which the force is applied at full strength. Default=0.0. Outer Distance The distance from the target at which the force begins to be applied. Default=10.0. Falloff The rate at which the repelling force diminishes between the Inner Distance and the Outer Distance. Default=2.0. A value of 1.0 indicates a linear falloff. Higher values cause the strength to fall off to zero more rapidly with distance, thus focusing its effect closer to the Inner Distance. Lower values reduce the rate of diminishment, with a Crowd Animation User Interface | 4897 Falloff setting of 0.0 indicating that the strength is the same at the Outer Distance as it is at the Inner Distance. Display Distance Shows the inner and outer distance settings as grids offset from the target grid in the viewports. The Inner Distance grid is light blue, while the Outer Distance grid is blue-white. Default=on. Grid Spacing Alters the spacing of grid lines used to draw the Inner/Outer Distance grids. The lower the value, the closer the spacing. Default=500. End force at grid edges When on, the force emanates only from the grid object. When off, the force emanates from an imaginary infinite grid created by extending the grid plane in all directions. Color Swatch Shows the color used to draw the Wall Repel force during the solution. Click the box to choose a different color. Default=violet. Display Force The force, when activated, is drawn in the viewports as a wireframe rectangle during the simulation solution. Default=on. Wall Seek Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Wall Seek Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Wall Seek Behavior The Wall Seek behavior uses a grid object to attract delegates. When influenced by the Wall Seek force, delegates turn until they're heading toward the grid. It's useful for moving objects toward a rectangular area, such as a doorway. You can set the grid to attract from either side or both sides, and optionally specify a maximum distance for attraction. You can also set the behavior to act as though the grid extends infinitely along its plane. 4898 | Chapter 17 character studio Interface Grid to seek Set the target grid by clicking the button (initially labeled “None”) and then selecting the grid. Thereafter, the grid's name appears on the button. Method group Determines whether delegate direction as influenced by the behavior is calculated by an angular method or a force method. Default=Angle. Angle Applies a force to the delegate based on the angle between the delegate's current direction and the direction it would need to take in order to be moving directly toward the target. The magnitude of the force is greatest when the delegate is moving away from the target, and needs to turn around. It can be as little as 0 when the delegate is directly approaching the target. Crowd Animation User Interface | 4899 Force Always applies a force directly towards the target. The magnitude of the force is constant. Direction group Determines whether the grid attracts from its positive-axis side, its negative-axis side, or both. To determine which is the positive-axis side, select the grid, and then set the reference coordinate system to Local (the default system is View). Look at the grid in a viewport and check the direction of the Z-axis arrow. This arrow determines the positive-axis direction. The opposite direction is the negative-axis direction. Positive Axis The grid attracts only from the positive-axis side. Negative Axis The grid attracts only from the negative-axis side. Both Axes The grid attracts from both sides. Distance group Use the distance settings to activate the Wall Seek behavior only when the delegates are within a specific distance from the target. The relative strength of the behavior increases from 0 percent at the outer distance to 100 percent at the inner distance. Use Distance When on, the behavior applies only to delegates closer to the target than the Outer Distance value. Default=on. Inner Distance The distance from the target at which the force is applied at full strength. Default=0.0. Outer Distance The distance from the target at which the force begins to be applied. Default=10.0. Falloff The rate at which the attracting force diminishes between the Inner Distance and the Outer Distance. Default=2.0. A value of 1.0 indicates a linear falloff. Higher values cause the strength to fall off to zero more rapidly with distance, thus focusing its effect closer to the Inner Distance. Lower values reduce the rate of diminishment, with a Falloff setting of 0.0 indicating that the strength is the same at the Outer Distance as it is at the Inner Distance. Display Distance Shows the inner and outer distance settings as grids offset from the target grid in the viewports. The Inner Distance grid is light blue, while the Outer Distance grid is blue-white. Default=on. 4900 | Chapter 17 character studio Grid Spacing Alters the spacing of grid lines used to draw the Inner/Outer Distance grids. The lower the value, the closer the spacing. Default=500. End force at grid edges When on, the force emanates only from the grid object. When off, the force emanates from an imaginary infinite grid created by extending the grid plane in all directions. Color Swatch Shows the color used to draw the Seek force vector (and, if used, the radii) during the solution. Click the box to choose a different color. Default=violet. Display Force When on, force exerted on the delegates by the Seek behavior is drawn in the viewports as a vector during the simulation solution. If Use Radii is turned on, the radii are also displayed when the force is active. Wander Behavior Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Wander Behavior Select a Crowd object. > Modify panel > Setup rollout > New button > Wander Behavior The Wander behavior imparts a random motion to delegates, letting you simulate meandering activity in which delegates move and turn in a haphazard manner. It works by randomly picking a new direction, and then turning and moving in that direction. You can specify how often to pick a new direction, how far to turn, and how fast or slow to turn while moving. TIP The trajectory calculated by the Wander behavior varies significantly for each object to which it's applied. To create a group of wandering delegates all using the same trajectory, apply the Wander behavior to a delegate, solve the simulation, and then replicate the delegate using the Scatter Objects on page 4823 facility with Clone Controllers turned on. Procedures To use the Wander behavior: 1 Add a Wander behavior to the Crowd object. 2 Change the default settings as desired. Probably the most important is Period, which sets the number of frames between changes of direction. Crowd Animation User Interface | 4901 3 Use Behavior Assignments on page 4845 to assign the behavior to a delegate or team. Interface Time group Period Specifies how many frames should elapse before a new direction is chosen. Default=10. Deviation Specifies the maximum amount by which Period should vary. Each time a period ends, character studio takes a random number between the negative and positive values of the Deviation setting, multiplies it by the Period setting, and adds the result to Period. Default=0.5. Range=0.0 to 1.0. Turning group Angle Specifies how far to turn when changing direction. A small value means to change direction by only a small amount, while as the value approaches 1.0 the delegate will turn randomly in any direction. Default=0.5. Range=0.5 to 1.0. Turn Period Specifies how long over the current period it takes to turn. A value of 0.0 means that the delegate will rotate as quickly as possible to face a direction and then travel in that direction, while a value of 1.0 means the delegate will take the entire period to rotate in that direction. Default=0.5. Range=0.5 to 1.0. 4902 | Chapter 17 character studio Deviation Specifies the maximum amount by which Angle should vary. Each time a period ends, character studio takes a random number between the negative and positive values of the Deviation setting, multiplies it by the Angle setting, and adds the result to Angle. Default=0.5. Range=0.0 to 1.0. Seed Specifies a seed value for randomizing the Wander behavior. Color swatch Shows the color used to draw the Wander force vector during the solution. Click the box to choose a different color. Display Force When on, force exerted on the delegates by the Wander behavior is drawn in the viewports as a vector during the simulation solution. Solve Rollout Create panel > Helpers > Object Type rollout > Crowd > Solve rollout Select a Crowd object. > Modify panel > Solve rollout Once you've set up the crowd simulation, use this rollout to set solution parameters and to solve the simulation. You can solve continuously or a frame at a time, starting at any frame. Crowd Animation User Interface | 4903 Interface Solve Runs the crowd simulation continuously, applying all specified behaviors to delegates to which they are assigned. Solving a simulation overwrites any previous solutions. To abort a solution in progress and save all keys generated up to that point, press the Esc key. Alternatively, with complex simulations, you can save time by pressing Shift+Esc to abort a solution without saving keys. 4904 | Chapter 17 character studio Step Solve Runs the crowd simulation one frame at a time, starting at the current frame as specified by the time slider position. Press the spacebar to advance one frame. To abort a solution in progress and save all keys generated up to that point, press the Esc key. When you do so, the software disregards any non-default settings for Save Every Nth Key. Alternatively, with complex simulations, you can save time by pressing Shift+Esc to abort a solution without saving keys. NOTE Step Solve always starts at the current frame; it disregards the Simulation Start setting. Simulation Start The first frame of the simulation. Default=0. To make the solution repeatable, set this and keep it the same. Start Solve The frame at which you begin solving. Default=0. This value must be greater than or equal to that of Simulation Start. If greater, the solve will begin in the middle of the simulation. Start Solve should equal Simulation Start the first time you solve, so that when you set Start Solve to start in the middle of the simulation, the simulation up to that point will be correct. NOTE If you set Start Solve to a frame number lower than the first frame of the active time segment, character studio changes the first frame of the time segment to the Start Time value. End Solve Specifies the last frame considered for the solution. Default=100. NOTE If you set End Solve to a frame number higher than the last frame of the active time segment, character studio changes the last frame of the time segment to the End Solve value. Delete Keys before Solve Deletes the keys of active delegates in the range over which the solution takes place. Default=off. This option leaves the first two keys so that the delegate doesn't end up with no keys and then pop to its current position. This is a useful feature for biped crowds; it lets you watch each biped compute, one after another, without the ones not yet computed still performing their old animation. Save every Nth Key Lets you specify the number of position and rotation keys saved after the solution. Positions/Rotations The frequency with which keys are saved for delegate positions and rotations. If 0, no keys are saved. If 1, a key is saved every frame. If 2, a key is saved every other frame, and so on. Defaults=1. Crowd Animation User Interface | 4905 Display During Solve group Update display When on, motion produced during solution of a crowd simulation appears in the viewports. Default=on. Frequency How often the display is updated during the solution. If 1, the update occurs every frame. If 2, the update occurs every other frame, and so on. Default=1. Vector Scale Globally scales all force and velocity vectors that are displayed during the simulation. Default=10.0. Scaling vectors up helps to see them better when they are very small. It does not effect the simulation. MAXScript group This feature lets you execute a MAXScript script at each frame. Its primary purpose is for working with bipeds; specifically, to take advantage of available MAXScript calls to Biped that let you specify which clip the biped will be likely to choose next when using the shared motion flow feature. With this feature, you can write a script that dynamically selects the biped's next clip during the Crowd simulation, based on which clip is currently being used, the frame number, the proximity of other bipeds, or anything else that you can find out in a script. Of course, this scripting feature can be used for other purposes as well. Use MAXScript When on, a user-specified script is executed at each frame during the solution. Default=off. Function Name The name of the function to be executed. This name must also specified in the script. Edit MAXScript Click this button to open a MAXScript window for displaying and modifying the script. Bipeds group When solving simulations that use bipeds linked to delegates, it is strongly recommended that you use all three options in this group. Biped/Delegates Only When on, only biped/delegates are included in the computation. Also, the options to use priorities and backtracking become available. These options are available only for biped-only computations. Default=off. 4906 | Chapter 17 character studio Use Priorities When on, biped/delegates are computed one delegate at a time, in order of their Priority values, from lowest to highest. Also, backtracking becomes available, and Step Solve becomes unavailable. Default=off. Backtracking Turns on backtracking functionality when solving a crowd simulation that uses bipeds. Default=off. When Backtracking is on during the solution, in the case of an impending collision between bipeds, the Crowd system will back up the simulation to the beginning of the current clip, and then try a different traversal of the lower-priority delegate/biped's motion flow graph. If necessary, the system will back up two or more clips. Priority Rollout Create panel > Helpers > Object Type rollout > Crowd > Priority rollout Select a Crowd object. > Modify panel > Priority rollout The Crowd system uses the Priority rollout settings when solving a simulation involving bipeds associated with delegates. The Priority parameter is a positive integer assigned by the user to a delegate. When priorities are used, the Crowd simulation computes one biped at a time, based on its priority setting from lowest to highest; that is, a lower Priority setting means a higher priority. If the priorities of two biped/delegates are the same, the computation order of those two biped/delegates is randomly determined. This topic describes the six different ways of setting a delegate's priority, and how priorities might be put to use in different situations. Using Priorities If you have a large crowd all going in one direction, you would typically want the delegates in front to solve first. In that case, using Proximity To An Object or Proximity To A Grid would be useful in setting priorities. In a case where you start with a circle of bipeds, and you want them all to wander and mingle, you might not care about the bipeds' priorities. You could let them all have the same priority and let the system decide which goes first. However, it might be better to assign random priorities or make priorities unique, so that you are guaranteed the same order each time, and you can read the priority numbers to know what will happen next. This also lets you change the order if you need to. Crowd Animation User Interface | 4907 Suppose you have two groups of bipeds, all of which are assigned random priorities. If you wanted to keep the priority relationships within each group, but make one group start after or before the other, you could use Increment Priorities to increment or decrement all the priorities in one group. If none of the algorithms applies to your situation, you need some way to set the priorities by hand. It's useful to be able to set them visually. That's what the Assign By Picking method is for. Interface 4908 | Chapter 17 character studio Start Priority Sets the initial priority value. Applies to the first four methods of setting priorities: Assign By Picking, Proximity To An Object, Proximity To A Grid, and Assign Random Priorities. Default=0. NOTE Priority is assigned in increasing order. Thus, a delegate with Priority value 0 goes before a delegate with Priority 1, 1 goes before 2, and so on. Assign by Picking group Pick/Assign Lets you assign successively higher Priority values to any number of delegates by selecting each in turn in the viewport. The first delegate you select is assigned the Start Priority value. The Priority value assigned to each succeeding delegate you select is incremented by one. To stop assigning priorities, right-click in a viewport or click the Pick/Assign button again. Delegate priorities appear in viewports as black numerals attached to each delegate; they're usually most easily seen in Wireframe views. NOTE You can undo and/or redo assignments during the process. TIP It's possible to assign two or more delegates the same priority value using this method. In such a case, for more predictable behavior, use Make Priorities Unique so that delegates don't share priorities. Assign by Computation group This group provides five different methods for assigning priorities to delegates, plus a button for selecting delegates to be affected by these methods. Delegates to Prioritize Lets you use the Select dialog to specify delegates to be affected by subsequent use of other controls within this group. Select the delegates with the Select dialog, and then click Select to exit the dialog. This selection applies only to Proximity assignments (that is, Proximity To An Object and Proximity To A Grid). Proximity to an Object Lets you assign priorities based on delegates' distance from a specific object. To specify the object, click the None button, and then select the object on which priorities are to be based. Lastly, click the Assign button to compute and assign priorities. The delegate closest to the object is assigned the Start Priority value, and each successively farther delegate is assigned the next highest priority. For any delegates that are equidistant from the object, the software assigns priorities randomly. Crowd Animation User Interface | 4909 Proximity to a Grid Lets you assign priorities based on delegates' distance from an infinite plane defined by a specific grid object. To specify the grid object, click the None button, and then select the grid object on which priorities are to be based. Lastly, click the Assign button to compute and assign priorities. The delegate closest to the grid object is assigned the Start Priority value, and each successively farther delegate is assigned the next highest priority. For any delegates that are equidistant from the plane, the software assigns priorities randomly. Assign Random Priorities Assigns random priorities to the selected delegates. The range of priority values assigned lies between the Start Priority value and that value plus the number of selected delegates. Make Priorities Unique Ensures that all delegates have unique priority values. If two delegates share the same priority, one of them will be given a new priority value that differs from the rest. Increment Priorities Increments the priorities of all selected delegates by the Increment value. Increment Sets the value by which the Increment Priorities button adjusts delegate priorities. Use a negative Increment value to decrement priorities. Default=0. Set Start Frames Opens the Set Start Frames dialog on page 4910, for setting start frames based on assigned priorities. Display Priorities Enables the display of assigned priority values as black numerals attached to the delegates. Default=off. Display Start Frames Enables the display of assigned start frame values as black numerals attached to the delegates. Default=off. When both Display Priorities and Display Start Frames are on, the two values are displayed side by side, separated by a slash symbol (/). The priority appears to the left of the slash and the start frame appears to the right. Set Start Frames Dialog Create panel > Helpers > Object Type rollout > Crowd > Priority rollout > Set Start Frames button Select a Crowd object. > Modify panel > Priority rollout > Set Start Frames button 4910 | Chapter 17 character studio When you include bipeds in a crowd simulation using a shared motion flow, you usually don't want them all walking in lockstep formation. You can avoid this by setting different start frames to vary the animation frame at which each biped starts moving using its initial motion clip. In most cases, you would set start frames in the same order as priority, so you don't get bipeds with earlier start frames stuck behind bipeds with later start frames. The Set Start Frames dialog lets you automatically assign start frames to delegates in the same order as priority. This dialog assigns start frames to the delegates selected via the Delegates To Prioritize on page 4909 control. In general, you should first use a non-random method to assign priorities in the Priority rollout on page 4907, such as the Pick/Assign button or one of the Proximity options, and then assign start frames with this dialog. You can use the dialog to set a start frame for the highest-priority delegate (that is, the delegate with the lowest Priority setting), and then have start frames incremented randomly between two limits for the remaining delegates, based on priority order. For instance, if you set Lowest Start Frame to 0, Minimum Number ... to 1, and Maximum Number to 3, you could get a start frame sequence like this: 0, 2, 5, 6, 8, and so on. If you want more regularly staggered start frames, set Minimum and Maximum to the same value. For example, with Lowest Frame=0 and Minimum/Maximum both set to 2, you'd get: 0, 2, 4, 6, 8, etc. Interface Lowest Start Frame Sets the start frame assigned to the delegate with the lowest Priority setting. Minimum number of frames between consecutive start frames The smallest value the software will use to increment assigned start frames. Crowd Animation User Interface | 4911 Maximum number of frames between consecutive start frames The largest value the software will use to increment assigned start frames. Delegates with the same priority get the same start frame The software assigns the same start frame to any delegates with identical Priority settings. When off, the software randomizes the order of same-priority delegates' start frames. Default=on. OK Assigns start frame values to selected delegates based on the dialog settings and priority order and closes the dialog. Cancel Closes the dialog without changing start frame values. Smoothing Rollout Create panel > Helpers > Object Type rollout > Crowd > Smoothing rollout Select a Crowd object. > Modify panel > Smoothing rollout Smoothing works on existing animation keys (that is, a solved simulation) to create more natural-looking animation. Use these controls if solving a crowd simulation results in abrupt position or rotation changes of animated objects. By default, smoothing works by reducing keys. As an option, it can also filter (average) existing animation keys to make changes more gradual, resulting in more natural motion. 4912 | Chapter 17 character studio Interface Select Objects to Smooth Opens the Select dialog, which lets you specify which objects' positions and/or rotations to smooth. Filter delegate selection When on, the Select dialog opened by the Select Objects To Smooth button shows only delegates. When off, it shows all scene objects. Default=on. Whole Animation Smoothes all animation frames. This is the default option. Animation Segment Smoothes only the frame ranges specified in the From and To fields. From When Animation Segment is chosen, specifies the first animation frame for smoothing. Crowd Animation User Interface | 4913 To When Animation Segment is chosen, specifies the last animation frame for smoothing. Positions When on, selected objects' animation paths generated via the simulation are smoothed after the simulation has finished. Default=on. Rotations When on, selected objects' rotations generated via the simulation are smoothed after the simulation has finished. Default=on. Reduction group Reduce Reduces the number of keys by keeping only every Nth key. Keep every Nth key N: Limits the amount of smoothing by keeping every other key (N=2), or every third key (N=3), and so on. Default=2. Filtering group Smoothing works by averaging the delegate's current position and/or orientation with those several keyframes ahead and behind. All keyframes used in the calculation can be affected. These settings let you control the number of keyframes used and the extent of smoothing performed. Filter When on, smoothing is performed using the remaining settings in this group. Past Keys The number of keys prior to the current frame used for averaging position and/or rotation. Default=2. Future Keys The number of keys after the current frame used for averaging position and/or rotation. Default=2. Smoothness Determines the degree to which smoothing is performed. The higher the setting, the closer all keys involved in the calculation are moved toward the average value. Default=4. The highest available Smoothness value is always 6. The lowest available value depends on the Past Keys and Future Keys settings. Perform Smoothing Click this button to carry out the smoothing operation. NOTE If neither the Reduce nor the Filter check box is turned on, no smoothing is performed. 4914 | Chapter 17 character studio Collisions Rollout Create panel > Helpers > Object Type rollout > Crowd > Collisions rollout Select a Crowd object. > Modify panel > Collisions rollout During a crowd simulation, you can use this rollout to keep track of collisions defined by Avoid behaviors. A delegate whose hard radius as defined by the Avoid behavior intersects with the hard radius of anything it is avoiding is marked as having collided at that frame. If too many collisions occur, the simulation might not provide satisfactory results; in such cases, you might want to alter the simulation setup. Interface Hilite Colliding Delegates When on, delegates that collide are highlighted in the collision color. Only during collisions Colliding delegates are highlighted only in frames in which they actually collide. Always Colliding delegates are highlighted in frames in which they collide and all subsequent frames. Collision Color The color swatch indicates the color used to highlight colliding delegates. To change the color, click the swatch and use the Color Selector dialog to set a new color. Clear Collisions Clears collision information from all delegates. If you re-solve part of the simulation, new collision information for the recomputed frames will be computed. However, if you move a delegate manually, its collision information will remain the same, and may be incorrect. In such cases, use Clear Collisions to correct the collision information. Crowd Animation User Interface | 4915 Geometry Rollout Create panel > Helpers > Object Type rollout > Crowd > Geometry rollout Select a Crowd object. > Modify panel > Geometry rollout Use this parameter to modify the crowd object's size. Interface Icon Size Determines the size of the Crowd helper object's icon. This setting is primarily for visibility; it has no effect on the crowd simulation. Global Clip Controllers Rollout Create panel > Helpers > Object Type rollout > Crowd > Global Clip Controllers rollout Select a Crowd object. > Modify panel > Global Clip Controllers rollout Use global clip controllers when assigning non-biped animated objects (such as a bird flapping its wings) to delegates in a crowd simulation. Applications include synthesis of animation activity based on a variety of criteria, such as an object's speed, acceleration, and pitch. This group of controls replicates the Track View controls for the same functionality. For an in-depth discussion of global clip controllers and related topics, see: Non-Biped Crowds on page 4805 Synthesis Dialog on page 4925 ClipState Dialog on page 4937 For a procedure covering clip controller usage, see: To use Motion Synthesis with non-bipedal creatures: on page ? 4916 | Chapter 17 character studio Interface (List) Lists objects designated as Global Objects, whose controllers can be used as animation clips to control other objects (typically clones). To designate an object as a Global Object, click the New button, and then select the object in the Select dialog. New To designate a Global Object and add it to the list, click this button, and then select the object in the Select dialog. Edit To modify a Global Object's properties, click its name in the list, and then click this button. This opens the Synthesis dialog on page 4925. Load Loads a previously saved Global Motion Clip (.ant) file from disk. Save Stores the current Global Motion Clip settings on disk in the .ant file format. Vector Field Space Warp Create panel > Space Warps > Particles & Dynamics > Object Type rollout > Vector Field Crowd Animation User Interface | 4917 A vector field is a special type of space warp that crowd members use to move around irregular objects such as curved, concave surfaces. The Vector Field gizmo, a box-shaped lattice, is placed and sized so that it surrounds the object to be avoided. The vectors are generated from the lattice intersections. These vectors are, by default, perpendicular to the surface of the object to which the field is applied; if necessary, you can smooth them out with a blending function. The crowd members move around the object by traveling perpendicular to the vectors. You can use the vector field as a Space Warp behavior on page 4885, as the source object for an Avoid behavior on page 4867, or both. When used together, delegates slow down when they approach a complex object, and then go around it. This guarantees that delegates will not pass through the obstacle’s surface. The vector field includes settings for strength, falloff, and a push/pull effect, as well as options to display the lattice, the effective range, and the vectors. The Vector Field space warp provides these rollouts: Create Method Rollout on page 4919 Lattice Parameters Rollout on page 4919 Obstacle Parameters Rollout on page 4920 4918 | Chapter 17 character studio Create Method Rollout Create panel > Space Warps > Particles & Dynamics > Object Type rollout > Vector Field > Create Method rollout The Create Method rollout for the Vector Field space warp lets you specify whether to create the vector field using the cube or box method. Interface Cube Forces length, width, and height to be equal. Creating a cube-shaped space warp is a one-step operation. Starting at the center of the cube, drag in a viewport to set all three dimensions simultaneously. You can change the individual dimensions in the Lattice Parameters rollout. Box Creates a standard box-shaped space warp from one corner to the diagonally opposite corner, with different settings for length, width, and height. Lattice Parameters Rollout Create panel > Space Warps > Particles & Dynamics > Object Type rollout > Vector Field > Lattice Parameters rollout Select a Vector Field space warp. > Modify panel > Lattice Parameters rollout Use these parameters to specify the Vector Field lattice size and number of segments. Interface Length/Width/Height Specify the dimensions of the lattice. The lattice should be larger than the Vector Field object. Length Segs/Width Segs/Height Segs Specify the resolution of the Vector Field lattice. The greater the resolution, the higher the accuracy of the simulation. Crowd Animation User Interface | 4919 Obstacle Parameters Rollout Create panel > Space Warps > Particles & Dynamics > Object Type rollout > Vector Field > Obstacle Parameters rollout Select a Vector Field space warp. > Modify panel > Obstacle Parameters rollout A vector field on page 4917, generated around an obstacle object, allows crowd on page 4819 members to avoid that object in a scene. The field consists of a three-dimensional array of vectors which guide delegates or other objects around the obstacle. The settings in this rollout help determine how the vectors are generated and displayed, and how they affect other objects. NOTE Objects are subject to a vector field's forces only if they are bound to the field with a Crowd object. For general usage guidelines, see To use a Vector Field space warp on page ?. Interface Display group The check boxes in this group let you enable and disable display of four different elements of the Vector Field space warp. NOTE You can select a Vector Field space warp in the viewport by clicking any of its visible elements except the range representation. If you've turned off display of all four elements, you can still select the space warp by clicking its gizmo, which, when viewed from the "top" (the orthogonal viewport in which the warp was created), resembles a pair of crossed double-headed arrows in the shape of an X. Show Lattice Displays the vector field lattice, a yellow wireframe box. Default=on. 4920 | Chapter 17 character studio The vectors are generated at lattice intersections inside the vector field range. Show Range Displays the volume about the obstacle object within which vectors are generated, as an olive-colored wireframe. Default=on. The range starts out the same shape and size as the obstacle object, and is typically enlarged with the Compute Vectors group > Range setting. Show Vector Field Displays vectors, which appear as blue lines emanating outward from lattice intersections within the range volume. Default=off. Show Surface Samples Displays short green lines emanating from sample points on the surface of the obstacle object. Default=off. These appear only after you've computed on page 4923 the vector field. See Sample Resolution on page 4923 for more information. VectorScale Scales the vectors so they're more visible or less obtrusive. Default=1.0. NOTE This setting does not affect the strength of the vectors; only their visibility. Icon Size Adjusts the size of the Vector Field space warp icon, a pair of crossed double-headed arrows. Increase the size for easier viewport selection. Default=size originally drawn in viewport. Force group These parameters determine how the vector field affects objects within its volume. Changing any of the Force group settings does not require that you recalculate the vector field. NOTE Using a vector field does not guarantee that delegates or particles remain at a particular distance from the obstacle. In some cases you might have to animate the Strength, Falloff, and/or Pull settings to keep delegates within the vector field. Crowd Animation User Interface | 4921 Strength Sets the degree of effect the vectors have on the movement of an object entering the vector field. If Show Vector Field on page 4921 is on as you adjust Strength, you can see the vector lines change size in the viewports in real time. Default=1.0. NOTE Sometimes, after changing strength, vectors will be too large or too small. In such cases, adjust the VectorScale on page 4921 parameter so that they display properly. Falloff Determines the rate at which the strength of the vectors falls off with distance from the surface of the object. Default=2.0. A value of 0 will make all the vectors the same size. A value greater than 0 will make them get smaller as they get farther away from the object surface. A value less then 0 will make them get larger as they get farther away. Parallel/Perpendicular Sets whether the force generated by the vectors works parallel or perpendicular to the vector field. Default=Perpendicular. Because the vectors are perpendicular to the object surface, and you typically would want delegates to travel parallel to the surface, you would normally use a perpendicular force. Pull Adjusts objects' position relative to the field. Available only when Perpendicular is chosen. Default=0.0. Range=-1.0 to 1.0. Objects moving perpendicular to a vector field sometimes tend to drift away from it, due to lack of subsampling. The Pull parameter helps to pull objects back. Pull values greater than 0 create a pulling force towards the source of the vector field vector. Values less than 0 pull the force towards the direction in which the vector field's vector is pointing. A value of 0.0 produces a force perfectly perpendicular to the vector field's vector. Compute Vectors group 4922 | Chapter 17 character studio Vector Field Object Lets you designate the obstacle object. Click this button, and then select the object around which the vector field is to be generated. Thereafter the object's name appears on the button (which is intially labeled “None”). NOTE You can only use primitives and unmodified editable mesh objects as obstacles. Also, the object should be fully enclosed in the Vector Field lattice. Range Determines the volume within which vectors are generated. Default=1.0. The range is represented in viewports as an olive-colored wireframe that starts out the same size and shape as the obstacle object. Increasing the Range setting moves the wireframe away from the obstacle object in the direction of its surface normals. In crowd simulations, the Range outline is where the delegates start to "see" the obstacle object, and begin to turn to avoid it. If your crowd members are penetrating the obstacle, or even just coming too close to it before turning, increase the Range setting. Also try increasing the Vector Field lattice resolution and/or the Sample Res setting. Sample Res(olution) Acts as a multiplier of the effective sampling rate used on the obstacle object's surface to calculate vector directions in the field. Default=1. The basic sampling rate is determined by the program from the size of the lattice and the size of each polygon. Use Flipped Faces Causes flipped normals to be used during the computation of the vector field. Default=off. By default, vectors are generated in the same direction as the obstacle object's face normals, so that assuming these face normals point outward, objects move around its exterior in a crowd simulation. However, if you want objects to remain within an object's interior, turn on Use Flipped Faces. TIP If you run a crowd simulation inside an object that is also being viewed from the inside, such as a room, you'll probably want the object's faces to point inward. In that case, use Editable Mesh/Edit Mesh > Surface Properties to flip the normals, and don't turn on Use Flipped Faces. Compute Calculates the vector field. Always recalculate the vector field after changing any parameters except those in the Force group. Crowd Animation User Interface | 4923 Blend Vectors group Use the Blend Vectors parameters to reduce abrupt changes in the angles of neighboring vectors. For example, if you have a wavy surface, you might get wavy vectors very far out from the surface, which could adversely affect the simulation. Use Blend Vectors to correct this condition. Start Dist The distance from the object at which you want to start blending the vectors. Default=0.0. Falloff The falloff of the blend of the surrounding vectors. Default=2.0. Blend segs X The number of adjacent lattice points to blend on the X-axis. Default=1. Blend segs Y The number of adjacent lattice points to blend on the Y-axis. Default=1. Blend segs Z The number of adjacent lattice points to blend on the Z-axis. Default=1. Blend Click this button to implement the blending. Motion Synthesis The Crowd system in character studio can use two different types of motion synthesis, which lets the software adjust the simulation results dynamically to account for differing conditions. This section deals with the application of motion synthesis to non-bipedal crowds, such as a flock of birds. You use two dialogs to set up non-bipedal motion synthesis: Synthesis Dialog on page 4925 4924 | Chapter 17 character studio ClipState Dialog on page 4937 For information on using motion synthesis with bipeds, see Biped Crowds on page 4793. Synthesis Dialog Select a Crowd object. > Modify panel > Global Clip Controllers rollout > New > Choose a GlobalClip object. > Select the object in the list. > Edit > Synthesis dialog Open Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog The Synthesis dialog is where you set up motion synthesis for non-bipedal crowd members. It uses three panels to split up the workflow. On the Motion Clips panel, you specify the global object from which the motion clips are to be derived; you also set up the motion clips here. Controls on the State panel let you set up states and link clips to states. The Synthesis panel controls let you blend clips and synthesize the motion for some or all crowd members. The panels are: Motion Clips Panel on page 4925 State Panel on page 4929 Synthesis Panel on page 4932 See also: ■ ClipState Dialog on page 4937 Procedures Usage of the Synthesis dialog is closely associated with usage of the ClipState dialog. For a procedure that combines both, see To use Motion Synthesis with non-bipedal creatures: on page ?. Motion Clips Panel Select a Crowd object. > Modify panel > Global Clip Controllers rollout > New > Choose a GlobalClip object. > Select the object in the list. > Edit > Synthesis dialog > Motion Clips panel Crowd Animation User Interface | 4925 Open Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > Motion Clips panel On the Motion Clips panel, you specify the global object from which the motion clips are to be derived. You also set up the motion clips here. See also: ■ Synthesis Dialog on page 4925 ■ State Panel on page 4929 ■ Synthesis Panel on page 4932 4926 | Chapter 17 character studio Interface Global Object Click Global Object and pick the object that contains the animation (all the clips) in the Select Global Objects To Copy dialog. Crowd Animation User Interface | 4927 Global Motion Clips group List Window The list of motion clips. The clips that you create appear in this list. Edit Window Rename or change the color for the selected motion clip. From Global Object group Create State Create a new state with parameters specific to the motion clip, such as speed, heading, acceleration, and so on. character studio evaluates the motion and orientation of the object and creates a new state with parameters set accordingly. Remove Local X, Y, Z, Orientation Turn on any or all of these options to strip out transformation and orientation data from the motion clip. The idea is to animate the global object with full lateral motion. character studio then creates states based on the actual motion of the global object. After the states are created, the animation is stripped from the object. When delegates linked to clones of the global object come close to the actual motion recorded in the state, then the appropriate state is used to trigger the motion clip. This technique is used to minimize sliding feet. If you animate a creature with many legs, you should animate lateral motion as well a leg motion. Then you create clips that record and then strip out the lateral motion that you created. When the delegate approaches the speed and direction you created originally on the global object, then the leg motion clip will be activated by the state; leg motion will be accurate relative to speed, preventing sliding feet. New Lets you set up a new motion clip. Displays the MotionClip Parameters dialog on page 4935 where you can specify the name and duration of the clip. This selects all active controllers. Modify Lets you modify a motion clip's parameters. Highlight the clip to modify, and then click Modify. Displays the MotionClip Parameters dialog on page 4935, where you can specify the name and duration of the clip. Also, if you've changed the animation on the Global Object, you can re-apply it to a clip simply by clicking Modify and then clicking OK to close the dialog. The change will affect all the objects being synthesized. Copy to Object The keys from the highlighted motion clip are copied back to the Global Object. Deletes any existing animation keys in that part of the Global Object's animation. 4928 | Chapter 17 character studio You can use this function in several ways. First, if you've changed the animation on the Global Object, you can restore it from a stored motion clip with Copy To Object. Also, if you've edited the clip in Track View (Global Tracks > Block Control > Global Motion Clip:: ...), you can apply it to the Global Object with Copy To Object. From Track View group New Lets you create a motion clip from an animation track in Track View. Specify a track in the Track View Pick dialog on page 4936. The MotionClip Parameters dialog on page 4935 displays upon exiting the Track View Pick dialog. Modify Lets you modify a motion clip in the list by changing the Track View track from which it's derived, as well as the name and duration. Specify a track in the Track View Pick dialog on page 4936. The MotionClip Parameters dialog on page 4935 displays upon exiting the Track View Pick dialog. Add Selected Creates a motion clip from only the selected tracks in Track View. Delete Deletes the highlighted clip in the list. Load Loads a motion clip file (.clp). Displays the Load Motion Clip dialog. Use the Save command to create a .clp file. Save Saves a motion clip into a .clp file. Displays the Save Motion Clip dialog. OK Accepts changes and closes the dialog. State Panel Select a Crowd object. > Modify panel > Global Clip Controllers rollout > New > Choose a GlobalClip object. > Select the object in the list. > Edit > Synthesis dialog > State panel Open Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel Controls on the State panel let you set up states for non-bipedal motion synthesis and link motion clips to states. See also: ■ Synthesis Dialog on page 4925 Crowd Animation User Interface | 4929 ■ Motion Clips Panel on page 4925 ■ Synthesis Panel on page 4932 Interface Synthesis States drop-down list Displays the current state. Choose a state to modify from the list. You can change the state name by editing the text in the list window. 4930 | Chapter 17 character studio New State Creates a new state and adds it to the list. The default name is “ClipState,” optionally followed by a number. You can change the state name by editing the text in the window. Delete State Deletes the current state. This is undoable. Edit Properties Lets you modify the current state. Displays the ClipState dialog on page 4937 for the current state. Clear Properties Returns the state to the default settings and removes clips from the MotionClips window. MotionClips group MotionClips window Displays motion clips used by the current state. Use Add Clip to associate clips with the state. If you assign more than one clip to a state, the software picks the clips randomly during synthesis based on their respective weights. MotionClip Weight Determines the chance that a clip will be chosen during synthesis. Range=0 to 1000. Highlight the clip in the list, and then set its weight. A higher weight means that a clip is more likely to be chosen. Add Clip Displays the Select MotionClip dialog. Highlight a clip and click OK to add a clip to the current state. Remove Clip Removes the highlighted clip from the current state. Precedence Sets the precedence for the current state. Range=0 to 1000. If multiple states qualify for activation based on their properties, character studio uses the clip associated with the one with the higher precedence first. If more than one state has the same precedence, then the one with the greater weight is played first. Weight Specifies a weight value for a state. If two states have the same precedence, the state with a greater weight will be give higher priority considered during random selection. Animation Start Percent Specifies where in the clip's animation you want it to start playing when the state is active. At the default value of 0, the animation will start once the state is active. If the value is 66, the animation will start playing two-thirds of the way in once the state becomes active. You can also randomize where the animation starts by specifying a Animation Start Deviation value other than 0. Crowd Animation User Interface | 4931 Animation Start Deviation You can randomize where the animation starts by specifying a Animation Start Deviation value other than 0. Range=0.0 to 1.0. State Active Percent Specifies the percentage of time the state needs to be valid over its interval in order for it to be selected. Range=0 to 100. Default=50. Clip Select Seed Changes how the random selections occur. If the value stays the same, you are guaranteed to get the same random selections for that state. OK Accepts changes and closes the dialog. Synthesis Panel Select a Crowd object. > Modify panel > Global Clip Controllers rollout > New > Choose a GlobalClip object. > Select the object in the list. > Edit > Synthesis dialog > Synthesis panel Open Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > Synthesis panel Controls in the Synthesis panel are for adding objects to be synthesized, selecting blend transition points, and performing the synthesis. When you synthesize, different sequences of motion clips are applied to each specified object based on the behavioral motion of its delegate. See also: ■ Synthesis Dialog on page 4925 ■ Motion Clips Panel on page 4925 ■ State Panel on page 4929 4932 | Chapter 17 character studio Interface Master Motion Clips list Displays the objects to which the synthesized motion will be applied. You can highlight any of these by clicking them, and select multiple items with Ctrl+click and Shift+click. Highlight all objects with the Select All button. New Master Motion Clip Displays the Select Object To Copy dialog. Use this to specify the objects to which the synthesized motion will be applied. Crowd Animation User Interface | 4933 These objects must all be structurally identical to the Global Object. In effect, they should be clones. Remove Animation Strips the animation from the clones. After making clones of the original animated object, you can strip the animation from the clones. During synthesis, motion is applied based on which state is active. Collapse Selected Collapses motion clips to keys on the highlighted objects. This deletes the Master Motion Clip for that object. You can then edit keys and make changes to the animation manually in the scene. Synthesize Selected Analyzes the motion of the delegates linked to the highlighted objects in the Master Motion Clips list, determines which state definitions fit that motion throughout the animation, and applies the corresponding motion clips. Select All Selects all of the objects in the Master Motion Clips list. Synthesize All Analyzes the motion of the delegates linked to all objects in the Master Motion Clips list, determines which state definitions fit that motion throughout the animation, and applies the corresponding motion clips. A progress bar displays during synthesis. When synthesis is completed, the Synthesis dialog reappears, and you can view the calculated minimum, maximum, and average values of delegate motion for the different state properties in the ClipState dialog. You can use these values to fine-tune the state properties. State Select Seed Sets a seed value for random state selection. During synthesis, it's possible that several states qualify for activation at the same time, in which case one state is chosen at random. The seed is used to modify the random value selected when determining which state to select. Synthesis Blend Parameters group During synthesis, clips aren't sequenced from end to end; instead, they partially overlap, with key blending or averaging occuring during the overlap intervals. This allows for smooth transitions between clips. During the blending or overlap period, weighting gradually shifts between the “from” and “to” clips, so the former's keys predominate at the beginning of the blend, and the latter's at the end. You can specify explicitly how blending occurs between clips, or you can let the software calculate blending parameters automatically. To specify blending, use the drop-down lists to choose a pair of clips to blend between, and then 4934 | Chapter 17 character studio set Blend Start to the frame in the “from” clip at which blending should begin. Alternatively, use Auto Blend or Auto Blend All to have character studio determine the best blend points. If you use Auto Blend, you can then see the calculated blend start point for each pair of clips by choosing the clips from the drop-down lists. From Clip list Lets you select the starting clip to blend; the clip to blend from. To Clip list Lets you select the ending clip to blend; the clip to blend to. Blend Start Displays the frame in the From clip at which the transition is to begin, whether the default, calculated, or set manually, and lets you change the start frame. Auto Blend Automatically sets the Blend Start frame for the current From and To clips. Auto Blend All Automatically sets the Blend Start frames for all possible pairs of clips. OK Accepts changes and closes the dialog. MotionClip Parameters Dialog Open Track View. > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > Motion Clips panel > Click New (in the From Global Object group). > Motion Clip Parameters dialog Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose a GlobalClip object. > Select the object in the list. > Edit > Synthesis dialog > Motion Clips panel > Click New (in the From Global Object group). > Motion Clip Parameters dialog When setting up a crowd simulation with non-bipedal characters using motion synthesis, use this dialog, accessed from the Synthesis Dialog on page 4925, to define motion clips from the Global Object's animation. Enter a clip name, frame range, and color using controls in the MotionClip Parameters dialog. The software determines which clips to trigger by states that you define on the State panel on page 4929. Crowd Animation User Interface | 4935 Interface Name Enter a name for the new motion clip. Start Specifies the first frame of the animation clip from the Global Object. End Specifies the last frame of the animation clip from the Global Object. Color Click the color swatch and choose a color in the color picker. This color is used in Track View when displaying the clip. Track View Pick Dialog Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose a GlobalClip object. > Select the object in the list. > Edit > Synthesis dialog > Motion Clips panel > Track View group > New > Track View Pick dialog Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > Motion Clips panel > Track View group > New > Track View Pick dialog Open the hierarchy and pick a track to use in the motion clip. 4936 | Chapter 17 character studio ClipState Dialog Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog In character studio, in crowd animation with non-bipedal motion synthesis, a state is a particular property or set of properties of a delegate's animation; for example, the period during which it is pitched upwards and is decelerating. After determining the delegate's state, the motion synthesis engine chooses a motion clip for animating the object, or character, linked to the delegate; for example, a bird. When preparing a simulation that uses motion synthesis, you use the ClipState dialog to define states and associate states with motion clips. You can define a state with any combination of these properties: speed, acceleration, pitch, pitch velocity, and heading velocity (plus a script). For Crowd Animation User Interface | 4937 each active property, you can specify a range or a unique value that triggers the clip for its respective state. When you use a range, be sure to set the Min setting lower than the Max setting. For example, when using a negative range such as -180 to -10, enter the number with the larger absolute value (-180) as the Min setting. You can see the delegates' actual ranges and average values for all properties after synthesizing on page 4934 the clips. The dialog panels are: Speed Panel on page 4939 Acceleration Panel on page 4942 Pitch Panel on page 4945 Pitch Velocity Panel on page 4948 Heading Velocity Panel on page 4951 Script Panel on page 4954 NOTE The dialog contains more tabs than can fit across its top. To see additional tabs, click the left or right arrow button near the upper-right corner of the dialog. You can enable and disable each state property individually. For example, you can tell the motion synthesis to consider only speed and pitch when analyzing delegate motion. For each of a state's active properties, you can designate a range of values between which a state can be activated. Alternatively, you can specify a single, unique motion value to be used when a state is active, such as a speed of 50 units per frame. In addition, you specify the In and Out values of the parameter as it approaches and then passes through that unique value. These values are analogous to the tangents of a curve. For each, you can pick Anything, Decreasing, Increasing, or Constant. For example, an animation of an object that has just landed after flying might have a Unique speed value of 0.0 (the object isn't moving laterally), a decreasing In value (the object decelerated before landing) and a constant Out value (the object remains stationary). Taking off, on the other hand, would have an increasing Out value. If you don't specify state parameters, the state is a default state. For example, if you want the motion synthesis engine to choose random motion clips for an object, and you don’t care about what the speed or pitch is, you create default states, and the synthesis engine will randomly pick which clip is active. 4938 | Chapter 17 character studio TIP When setting up states, it's useful to know the extents of state property values for delegate motion in the scene, such as maximum and minimum speed. To determine these, set up the clips and states you want to use, set the ranges to any values, and then synthesize (see the procedure below). After you synthesize, the different property panels of the ClipState dialog will show the actual ranges and average values of delegate motion. These values are saved with the scene. NOTE The default name of this dialog is "ClipState" because that's the default name of the first state created on the Synthesis dialog > State panel. It's the dialog invoked by clicking the Edit Properties button. If you rename the state, the dialog assumes the changed name. Automatic State Creation character studio can create states automatically if you turn on Create State on the Synthesis dialog > Motion Clips panel. You can use this feature if you created a creature that contains lateral motion as well as looping motion. If you turn on all the options in the Motion Clips panel > Remove Local group, then character studio creates a state that reflects the actual heading, speed, and acceleration of your creature. When a delegate approaches the heading and speed contained in this state, it triggers the appropriate motion clip. This method prevents sliding feet when animating multi-legged creatures. See also: ■ Synthesis Dialog on page 4925 Speed Panel Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog > Speed Panel Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog > Speed Panel To have delegate speed considered for motion synthesis, turn on Use Speed, choose Range or Unique, and then make the appropriate settings. Speed is measured in units per animation frame, where the unit is the current 3ds Max system unit. By default, this is Generic Units. Crowd Animation User Interface | 4939 Interface 4940 | Chapter 17 character studio Use Speed Turn on to have the motion synthesis engine consider delegate velocity in determining whether to use the clip. Range Choose Range to have the motion synthesis engine activate the clip when the delegate's speed falls inside the specified range. Range Display After you synthesize on page 4934 the Master Motion Clips, displays delegates' minimum, average, and maximum speed. Min Set the minimum speed value for the range. Max Set the maximum speed value for the range. Unique Choose Unique to have the motion synthesis engine activate the clip when the delegate's speed matches a specific value, optionally with a rising, falling, or constant value before or after the specified value. Value Set a unique speed value. In/Out These radio buttons let you specify the behavior of the parameter before and after the unique value is met. For example, with a flying object, to trigger a landing animation clip you might set the unique value to 0, the In setting to Decreasing, and the Out setting to Constant. This means that the object has slowed down and then stopped, and is now stationary. ■ Anything ■ Decreasing ■ Constant ■ Increasing Speed before or after the target value is not relevant. Speed decreases before or after it reaches the target value. Speed before or after the target value is constant. Speed increases before or after it reaches the target value. Scale Playback Speed group These settings let you scale the rate at which the animation is played depending upon the speed of the delegate. By default, when Scale Animation is off, the object animation will always play at its normal rate. If you turn it on, you can then set a Base Speed, at which the animation should play at its normal rate, plus a percentage to specify how much the animation rate is modified by the actual delegate speed. Scale Animation Scales the clip's animation based on speed. For example, as a bird increases its velocity, its wings beat more rapidly. Scaling an animation scales the keys of the animation. Crowd Animation User Interface | 4941 Percentage Specify how much to alter the playback speed based upon the difference between the delegate's speed and the Base Speed setting. The formula used is this: Animation Speed change % = (current speed/Base Speed -1 ) x Percentage % For example, if a delegate is moving 50 percent faster than the base speed, and the Scale Percentage value is 50, then the playback speed is scaled up by 25 percent. Base Speed Specifies the delegate speed at which the animation should be played back at its normal rate. Acceleration Panel Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog > Acceleration Panel Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog > Acceleration Panel To have delegate acceleration considered for motion synthesis, turn on Use Acceleration, choose Range or Unique, and then make the appropriate settings. Interface Acceleration is measured in units per frame per frame, where the unit is the current 3ds Max system unit. That is, the acceleration is determined by the rate at which the speed changes per frame. 4942 | Chapter 17 character studio Use Acceleration Turn on to have the motion synthesis engine consider delegate acceleration in determining whether to activate the state. Range Choose Range to have the motion synthesis engine activate the clip when the delegate's acceleration falls inside the specified range. Crowd Animation User Interface | 4943 Range Display After you synthesize on page 4934 the Master Motion Clips, displays delegates' minimum, average, and maximum acceleration. Min Set a minimum acceleration value for the range. Max Set a maximum acceleration value for the range. Unique Choose Unique to have the motion synthesis engine activate the clip when the delegate's acceleration matches a specific value, optionally with a rising, falling, or constant value before or after the specified value. Value Set a unique acceleration value. In/Out These radio buttons let you specify the behavior of the parameter before and after the unique value is met. Anything Acceleration before or after the target value is not relevant. Decreasing Acceleration decreases before or after it reaches the target value. Constant Acceleration before or after the target value is constant. Increasing Acceleration increases before or after it reaches the target value. Scale Playback Speed group These settings let you scale the rate at which the animation is played, depending upon the acceleration of the delegate. By default, when Scale Animation is off, the object animation will always play at its normal rate. If you turn it on, you can then set a Base Acceleration, at which the animation should play at its normal rate, plus a percentage to specify how much the animation rate is modified by the actual delegate acceleration. Scale Animation Scale the clip's animation based on acceleration. For example, as a bird accelerates, its wings beat more rapidly. Scaling an animation scales the keys of the animation. Percentage Specify how much to alter the playback speed based upon the difference between the delegate's acceleration and the Base Acceleration setting. The formula used is this: Animation Speed change % = (current speed/Base Acceleration -1 ) x Percentage % For example, if a delegate is accelerating 50 percent faster than the base acceleration, and the Scale Percentage value is 50, then the playback speed is scaled up by 25 percent. 4944 | Chapter 17 character studio Base Acceleration Specifies the delegate acceleration at which the animation should be played back at its normal rate. Pitch Panel Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog > Pitch Panel Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog > Pitch Panel To have delegate pitch considered for motion synthesis, turn on Use Pitch, choose Range or Unique, and then make the appropriate settings. Pitch is determined by the angle in degrees of the delegate about the world X-axis. In world coordinates, the delegate's pitch is positive when it's aimed upward, negative when it's aimed downward, and 0 when it's aimed parallel to the home grid. Crowd Animation User Interface | 4945 Interface 4946 | Chapter 17 character studio Use Pitch Turn on to have the motion synthesis engine consider delegate pitch in determining whether to activate the state. Range Choose Range to have the motion synthesis engine activate the clip when the delegate's pitch falls inside the specified range. Range Display After you synthesize on page 4934 the Master Motion Clips, displays delegates' minimum, average, and maximum pitch. Min Set a minimum pitch for the range. Max Set a maximum pitch for the range. Unique Choose Unique to have the motion synthesis engine activate the clip when the delegate's pitch matches a specific value, optionally with a rising, falling, or constant value before or after the specified value. Value Set a unique pitch value In/Out These radio buttons let you specify the behavior of the parameter before and after the unique value is met. ■ Anything ■ Decreasing ■ Constant ■ Increasing Pitch before or after the target value is not relevant. Pitch decreases before or after it reaches the target value. Pitch before or after the target value is constant. Pitch increases before or after it reaches the target value. Scale Pitch Orientation group These settings let you scale the pitch at which the animation is played, depending upon the pitch of the delegate. By default, when Scale Pitch is off, the animated object will pitch normally. If you turn it on, you can then set a Base Pitch at which the animation should play, plus a percentage to specify how much the Base Pitch is modified by the actual delegate pitch. If the Percentage is 100, then only the Base Pitch will be used; anything else will scale between the base pitch and the delegate pitch. This is useful for when birds and other objects elevate, but don’t pitch up. Scale Animation Scales the clip's pitch based on delegate pitch. Percentage Specify how much to alter the pitch based upon the difference between the delegate's pitch and the Base Pitch setting. The formula used is this: Pitch change % = (current pitch/Base Pitch -1 ) x Percentage % Crowd Animation User Interface | 4947 Base Pitch Specifies the delegate pitch at which the animation should be played back at its normal rate. Scale Playback Speed group These settings let you scale the rate at which the animation is played, depending upon the pitch of the delegate. By default, when Scale Animation is off, the object animation will always play at its normal rate. If you turn it on, you can then set a Base Pitch, at which the animation should play at its normal rate, plus a percentage to specify how much the animation rate is modified by the actual delegate pitch. Scale Animation Scales the clip's animation based on pitch. Percentage Specify how much to alter the playback speed based upon the difference between the delegate's pitch and the Base Pitch setting. The formula used is this: Animation Speed change % = (current speed/Base Pitch -1 ) x Percentage % For example, if a delegate's pitch velocity is 50 percent above its base pitch rate, and the Scale Percentage value is 50, then the playback speed is scaled up by 25 percent. Base Pitch Specifies the delegate pitch at which the animation should be played back at its normal rate. Pitch Velocity Panel Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog > Pitch Velocity Panel Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog > Pitch Velocity Panel To have delegate pitch velocity considered for motion synthesis, turn on Use Pitch Velocity, choose Range or Unique, and then make the appropriate settings. Pitch velocity is determined by the rate of change in degrees per frame of the angle of the delegate about the world X-axis. In other words, pitch velocity measures how fast the delegate is changing its pitch on page 4945. 4948 | Chapter 17 character studio Interface Crowd Animation User Interface | 4949 Use Pitch Velocity Turn on to have the motion synthesis engine consider pitch velocity in determining whether to activate the state. Range The motion synthesis engine activates the clip when the delegate's pitch velocity falls inside the specified range. Range Display After you synthesize on page 4934 the Master Motion Clips, displays delegates' minimum, average, and maximum pitch velocity. Min Set a minimum pitch velocity for the range. Max Set a maximum pitch velocity for the range. Unique Choose Unique to have the motion synthesis engine activate the clip when the delegate's pitch velocity matches a specific value, optionally with a rising, falling, or constant value before or after the specified value. Value Set a unique pitch velocity value. In/Out These radio buttons let you specify the behavior of the parameter before and after the unique value is met. ■ Anything ■ Decreasing value. ■ Constant ■ Increasing value. Pitch velocity before or after the target value is not relevant. Pitch velocity decreases before or after it reaches the target Pitch velocity before or after the target value is constant. Pitch velocity increases before or after it reaches the target Scale Playback Speed group These settings let you scale the rate at which the animation is played, depending upon the pitch velocity of the delegate. By default, when Scale Animation is off, the object animation will always play at its normal rate. If you turn it on, you can then set a Base Pitch Rate, at which the animation should play at its normal rate, plus a percentage to specify how much the animation rate is modified by the actual delegate pitch velocity. Scale Animation Scales the clip's animation based on pitch velocity. Percentage Specify how much to alter the playback speed based upon the difference between the delegate's pitch velocity and the Base Pitch Rate setting. The formula used is this: 4950 | Chapter 17 character studio Animation Speed change % = (current speed/Base Pitch Rate -1 ) x Percentage % For example, if a delegate's pitch velocity is 50 percent above its base heading rate, and the Scale Percentage value is 50, then the playback speed is scaled up by 25 percent. Base Pitch Rate Specifies the delegate pitch velocity at which the animation should be played back at its normal rate. Heading Velocity Panel Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog > Heading Velocity Panel Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog > Heading Velocity Panel To have delegate heading velocity considered for motion synthesis, turn on Use Heading Velocity, choose Range or Unique, and then make the appropriate settings. Heading velocity is determined by the rate of change in degrees per frame of the angle of the delegate about the world Z-axis. In other words, heading velocity measures how fast the delegate is changing its heading. Crowd Animation User Interface | 4951 Interface 4952 | Chapter 17 character studio Use Heading Velocity Turn on to have the motion synthesis engine consider heading velocity in determining whether to activate the state. Range Choose Range to have the motion synthesis engine activate the clip when the delegate's heading velocity falls inside the specified range. Range Display After you synthesize on page 4934 the Master Motion Clips, displays delegates' minimum, average, and maximum heading velocity. Min Set a minimum heading rate value for the range. Max Set a maximum heading rate value for the range. Unique Choose Unique to have the motion synthesis engine activate the clip when the delegate's heading rate matches a specific value, optionally with a rising, falling, or constant value before or after the specified value. Value Set a unique heading rate value. In/Out These radio buttons let you specify the behavior of the parameter before and after the unique value is met. ■ Anything ■ Decreasing value. ■ Constant ■ Increasing value. Heading velocity before or after the target value is not relevant. Heading velocity decreases before or after it reaches the target Heading velocity before or after the target value is constant. Heading velocity increases before or after it reaches the target Scale Playback Speed group These settings let you scale the rate at which the animation is played, depending upon the heading velocity of the delegate. By default, when Scale Animation is off, the object animation will always play at its normal rate. If you turn it on, you can then set a Base Heading Rate, at which the animation should play at its normal rate, plus a percentage to specify how much the animation rate is modified by the actual delegate heading velocity. Scale Animation Scales the clip's animation based on heading velocity. Percentage Specify how much to alter the playback speed based upon the difference between the delegate's heading velocity and the Base Heading Rate setting. The formula used is this: Crowd Animation User Interface | 4953 Animation Speed change % = (current speed/Base Heading Rate -1 ) x Percentage % For example, if a delegate's heading velocity is 50 percent above its base heading rate, and the Scale Percentage value is 50, then the playback speed is scaled up by 25 percent. Base Heading Rate Specifies the delegate heading velocity at which the animation should be played back at its normal rate. Script Panel Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State panel > New State > Edit Properties > Clip State dialog > Script Panel Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State panel > New State > Edit Properties > ClipState dialog > Script Panel The script state option lets you create a MAXScript script that takes two parameters: node and time. The script typically tests one or more values, and then returns 1 if the condition (the result of the test) is true or 0 if it’s false. This result determines whether or not the state is to be activated. Scripts used by the clip controller are similar to those used by the cognitive controller on page 4857, with the exception that a special time-related statement is required. In the following sample script, "del" is the delegate's node, and "t" is the time. The name of the scripted function, "stoppedScript," would also need to be entered into the name field in the Script panel of the ClipState dialog. Unlike cognitive controller scripts, the statement "at time t" needs to be invoked because the animation is not running when the synthesis takes place. fn stoppedScript del t = ( at time t if del.pos.z < 65 then 1 else 0 ) 4954 | Chapter 17 character studio Interface Use Script Turn this on to use a MAXScript script to control a clip. Script Enter the name of the function defined by the script, also found at the start of the script. Crowd Animation User Interface | 4955 Edit Script Opens a MAXScript editor window that lets you edit the script. File Formats and Index of Procedures character studio File Formats character studio uses several proprietary file formats for various functions. BIP Motion file. Includes biped motion and the size of the original biped so motion can be accurately loaded to other bipeds. Can be loaded directly onto a biped, or used to combine motions with Motion Flow or the Motion Mixer. See Loading and Saving BIP Animation on page 4300. FIG Figure file. Contains the sizes and poses of each biped body part, and overall biped size. Use this file to save and load a biped pose in Figure mode. See Saving and Loading FIG Files on page 4174. CPY Copy file. Contains postures, poses and tracks you have copied with the Copy/Paste rollout. See Copying and Pasting Postures and Poses on page 4281 and Copying and Pasting Tracks on page 4311. MFE Motion Flow Graph file. Contains the motion flow graph, and a motion flow script if one was present for the biped upon saving. See Saving, Loading, and Appending Motion Flow Graphs on page 4521. MIX Motion Mixer file. Contains clip data, tracks and trackgroups, transitions between clips, track/clip weights, and scale, trim and time warp information for edited clips. See Exporting Animation to the Biped on page 3741. PHY Physique file. Contains information on envelope sizes and vertex weights set up with the Physique modifier. See Saving and Loading Physique Data on page 4655. STP Step file. Contains footstep data. See Loading and Saving STP Files on page 4308. BVH, CSM, MNM These file formats contain motion-capture data. They are not specific to character studio. See BVH File on page 7933, CSM File on page 7945, or MNM File on page 8045 in the glossary. 4956 | Chapter 17 character studio Procedures These procedures appear elsewhere in this User Reference, in their associated topics. Here, they are organized by feature. Biped and Physique Creating a Biped To delete a biped: on page 4172 To create a biped on a surface: on page 4153 To change the biped name upon creation: on page 4156 To change the biped name after creation: on page 4156 To create a Named Selection for the biped center of mass: on page 4156 Loading and Viewing Motion To save animation you have created or imported to a BIP file: on page 4301 To load biped motion from an existing BIP file: on page 4301 To preview biped motion using biped playback stick figure: on page 4317 To preview biped motion using the full biped model: on page 4317 Animating the Biped with Freeform To use pivots: on page 4276 To make a hand or foot follow an object: on page 4278 To anchor a hand or foot: on page 4279 Animating the Biped with Footsteps To create footsteps automatically: on page 4187 To create multiple footsteps: on page 4435 To create footsteps beginning at the current frame: on page 4190 To make the biped walk up or down stairs: on page 4442 To make the biped walk in place: on page 4442 Procedures | 4957 To make the biped walk backward: on page 4442 To prepare for manual footstep creation: on page 4190 To create footsteps manually, beginning at the current frame: on page 4435 To append footsteps onto the existing footsteps: on page 4436 To create footsteps using AutoGrid: on page 4192 To make the biped speed up as it walks: on page 4442 To activate footsteps: on page 4193 To deactivate footsteps: on page 4196 Editing Footsteps To save footstep data: on page 4308 To move selected footsteps in time: on page 4203 To change the duration of a footstep: on page 4203 To scale keys in time: on page 4204 To prevent keys from changing when active footsteps are edited: on page 4206 To turn off Scale Stride mode: on page 4303 To display footstep tracks: on page 4239 To display footstep keys in Track View: on page 4203 To change the display of numbers of footstep keys: on page 4204 To convert an airborne period to freeform mode: on page 4228 To convert between footsteps and freeform animation: on page 4232 To create a purely freeform animation: on page 4235 To create a freefrom animation from a footstep animation: on page 4235 To save footstep data: on page 4308 To copy footsteps to the buffer: on page 4206 To edit the footstep buffer: on page 4207 To splice the footstep buffer: on page 4207 4958 | Chapter 17 character studio Editing Biped Keys To use In Place mode to adjust keyframes: on page 4319 To set the balance factor: on page 4217 To set ballistic tension: on page 4224 To set the IK Blend value of a key: on page 4262 To locate vertical center of mass keys: on page 4224 To set a Body Vertical key: on page 4224 To change TCB for a biped arm: on page 4248 To select and rotate multiple links: on page 4250 To rotate all links in the spine, neck, or tail: on page 4251 To change Dynamics Blend for multiple Body Vertical keys: on page 4225 To bend a biped trajectory: on page 4292 To edit keys on the Center of Mass trajectory: on page 4292 To edit biped trajectory keys in a viewport: on page 4321 To use In Place mode to adjust keyframes: on page 4319 Motion-Capture Data To import a motion-capture file: on page 4586 To import a marker file: on page 4579 To use Fit To Existing to import a motion-capture file: on page 4593 To use Convert From Buffer: on page 4585 To compare raw and filtered trajectories: on page 4586 To use Show Buffer: on page 4586 Motion Flow To create clips in the Motion Flow Graph: on page 4510 To create multiple clips in the Motion Flow Graph: on page 4512 To create transitions using From > To or To < From method: on page 4514 To create transitions using Create All Transitions: on page 4515 Procedures | 4959 To optimize transitions in the Motion Flow Graph: on page 4516 To create a Motion Flow script: on page 4519 To save Motion Flow Editor files: on page 4521 To load Motion Flow Editor files: on page 4523 To append Motion Flow Editor files: on page 4524 To manually customize transitions between two clips: on page 4526 To automatically customize transitions between two clips: on page 4527 To create a random script for one biped: on page 4531 To customize transition “weighting” and setting a start clip: on page 4529 Example: To create a unified motion: on page 4534 Example: To share a random motion flow among multiple bipeds: on page 4537 To apply a shared motion flow to a different group of bipeds: on page 4541 To load a Motion Flow scene from another system: on page 4543 Posing the Biped To link a mechanical character to the biped (without Physique): on page 4174 To fit biped legs to the skin: on page 4164 To fit the spine to the skin torso: on page 4164 To fit both arms using copy/paste: on page 4165 To pose both arms simultaneously: on page 4165 To create a symmetrical pose by copying one side of the biped to the other: on page 4166 To copy a posture: on page 4285 To paste the posture: on page 4285 To copy a track from one biped to another: on page 4312 To copy the entire pose of a biped: on page 4286 To attach a mesh to a bones hierarchy using Physique: on page 4672 4960 | Chapter 17 character studio Applying Physique To attach a mesh to a biped using Physique: on page 4671 To adjust default envelope shape: on page 4634 To adjust envelopes around the biped’s pelvis: on page 4635 To add a bone after you've already used Attach To Node: on page 4672 To troubleshoot bulges and tendons: on page 4675 To select and edit cross sections: on page 4636 To copy an envelope and its settings to a mirrored link (for example, from one thigh to the other): on page 4637 To copy all Bulge angles from one link to its opposite: on page 4740 To use Select Nearest Bulge Angle: on page 4741 To remove a link's influence on vertices: on page 4754 To check vertex assignments: on page 4754 To remove deformable vertices from a link's influence: on page 4754 To override vertex assignments manually: on page 4755 To make vertices rigid: on page 4756 To have a spline influence a mesh: on page 4678 To apply Physique to an FFD to animate the entire mesh: on page 4669 To use an FFD to complement the effects of Physique on a portion of a character mesh: on page 4669 To make compressible bones (bones with end effectors): on page 4619 To add a bone after Physique is applied using Reinitialize: on page 4619 To add a bone after Physique is applied using Add (Add Bone): on page 4620 To optimize skin objects: on page 4659 To reinitialize a scaled mesh: on page 4660 Bulges To create a new bulge angle using the Bulge Editor: on page 4687 To create a new bulge angle on a selected link: on page 4739 Procedures | 4961 To add a cross section: on page 4690 To change the shape of a cross section: on page 4692 To make a cross section the active cross section: on page 4690 To choose a specific bulge angle for editing: on page 4689 To change a bulge angle value: on page 4689 To select multiple cross sections: on page 4690 To move cross sections along the link: on page 4691 To copy and paste cross sections: on page 4691 To change the Profile view orientation: on page 4692 To delete a bulge angle: on page 4689 To delete a cross section: on page 4690 Links and Tendons To adjust joint intersection parameters: on page 4735 To create and attach a tendon: on page 4653 To attach a tendon to another link: on page 4654 To delete a tendon: on page 4655 Saving and Reusing Physique Information To save Physique data: on page 4673 To load Physique data: on page 4673 To merge a skinned biped: on page 4304 To clone a skinned biped: on page 4307 Figure Mode To work in Figure mode: on page 4163 To adjust the biped center of mass with Rubber Band: on page 4170 To rubber band an arm or leg link: on page 4170 To Scale a Biped and a Physique Mesh: on page 4424 To save a biped's figure information to a file: on page 4175 4962 | Chapter 17 character studio To load a biped figure: on page 4176 Layers To increment all keys using layers (global offset): on page 4289 To increment an interval of keys with an envelope (blended offset): on page 4289 To increment an interval of keys without an envelope (nonblended offset): on page 4290 To use layers to reposition a biped with freeform animation: on page 4315 Props Example: To animate a biped swinging a prop with one hand: on page 4258 Example: To animate the biped switching the prop to the other hand: on page 4258 To collapse the transforms of a prop: on page 4259 Controllers and Biped To add a controller to a biped object: on page 4253 To collapse a controller: on page 4253 To add controllers to multiple biped parts at the same time: on page 4254 To animate the weights of an added controller: on page 4255 Miscellaneous To load a file created with different system units: on page 4658 To hide the finger, toe, and head dummy objects: on page 4306 To change biped display: on page 4171 To select from the screen: on page 4238 To reposition a freeform animation (with no IK attachment) or a footstep animation: on page 4313 To reposition a biped with limbs attached to an Object Space object (IK attachment): on page 4314 Procedures | 4963 To reposition a biped with limbs attached to world space (IK attachment): on page 4314 To reposition a biped animated with a motion flow script: on page 4315 To scale a biped that has a mesh attached to it by using Physique: on page 4660 Facial Animation on page 4660 To isolate lip vertices from influence by inappropriate links: on page 4667 Crowd System Crowd and Delegate Helpers To create a Crowd helper object: on page 4770 To create a Delegate helper object: on page 4770 To clone and scatter delegates: on page 4770 To link objects to delegates: on page 4788 To associate bipeds with delegates: on page 4789 To edit multiple delegates: on page 4839 To group delegates into a team: on page 4845 Behaviors To create a new behavior assignment: on page 4846 To use assign behaviors to delegates: on page 4776 To modify an existing behavior assignment or assignments: on page 4847 To use the Avoid behavior: on page 4781 To use the Orientation behavior: on page 4785 To use the Path Follow behavior: on page 4779 To use the Repel behavior: on page 4782 To use the Seek behavior: on page 4778 To add a Vector Field space warp: on page 4783 To use a Vector Field space warp with delegates: on page 4783 To use the Speed Vary behavior: on page 4785 4964 | Chapter 17 character studio To use the Surface Arrive behavior: on page 4779 To use the Surface Follow behavior: on page 4779 To use the Wall Repel behavior: on page 4782 To use the Wall Seek behavior: on page 4778 To use the Wander behavior: on page 4901 Solving a Crowd Simulation To solve a simulation: on page 4786 To speed up the solution time: on page 4787 To troubleshoot the simulation: on page 4787 Cognitive Controllers To set up and use a cognitive controller: on page 4790 Testing a Modifier Parameter Testing a Particle System Parameter on page 4862 Testing an Atmospheric Property on page 4862 Testing an Object Position Testing Another Delegate's Behavior on page 4863 Testing the Distance Between Two Objects Motion Synthesis To use Motion Synthesis with non-bipedal creatures: on page 4807 Procedures: Using Bipeds in a Crowd Simulation on page 4799 Motion Mixer General To access the Motion Mixer from the Motion panel: on page 3703 To display the Motion Mixer in a viewport: on page 3704 To remove the Motion Mixer from a viewport: on page 3704 To add a biped to the Motion Mixer: on page 3708 Procedures | 4965 To add a non-biped object to the Motion Mixer: on page 3708 To see the motions in the Motion Mixer on the biped in the scene: on page 3712 Loading Clips To import BIP clips from a file: on page 3711 To import clips from the Reservoir: on page 3711 To import clips from a motion flow script: on page 3712 To replace one clip with another: on page 3714 To replace a clip with motion from a biped in the scene: on page 3714 To clone a clip: on page 3714 Clip Timing To move a clip in time within a track: on page 3713 To move all clips horizontally on one track: on page 3713 To move a clip to another track: on page 3714 To change the length of a clip without changing its speed: on page 3722 To change the speed of an entire clip: on page 3724 To prepare to warp a clip's time: on page 3734 To warp a clip's time: on page 3734 To add multiple time warps to a clip: on page 3736 Trackgroups To add a new trackgroup for the biped: on page 3718 To filter and name a trackgroup: on page 3719 To convert a clip track from one type to another: on page 3707 To add a Transition or Layer track to a trackgroup: on page 3706 Transitions To create a transition between two clips: on page 3729 4966 | Chapter 17 character studio To change the focus on a foot-based transition with Biped animation: on page 3730 To adjust a weight curve: on page 3732 Biped Balance To adjust balance using the balance track: on page 3739 To fine-tune balance compensation on the pelvis and spine: on page 3740 Saving Mixer Data To perform a mixdown and copy it to the biped: on page 3743 To save Motion Mixer data to a MIX file: on page 3744 Reservoir To access the Reservoir: on page 3747 To add clips to the Reservoir: on page 3747 To replace a clip in the Reservoir: on page 3748 To save an instanced clip to a new clip: on page 3748 To save multiple instanced clips from the Reservoir: on page 3748 To remove clips not used in the Motion Mixer from the Reservoir: on page 3749 Workbench General To display a biped body part curve in the Workbench, do one of the following: on page 4489 To hide or unhide the Tab panel: on page 4490 Workbench Panels To analyze a curve: on page 4493 To fix an individual error: on page 4498 To fix multiple errors: on page 4499 To remove keys from curves automatically: on page 4499 Procedures | 4967 To filter a track: on page 4503 4968 | Chapter 17 character studio Lights and Cameras 18 “Little Village Far, Far Away” Copyright 2000 Eni Oken Lights and cameras are scene objects that simulate their real-world counterparts. Lights provide illumination for the geometry of a scene: they can light the scene from “offstage,” or, with a little extra work, they can appear within the scene itself. Standard lights are simple and easy to use. Photometric lights are more complex, but provide a physically accurate model of real-world lighting. The Daylight and Sunlight systems create outdoor 4969 lighting that simulates sunlight based on location and time of day, month and year. You can animate the time of day to create shadow studies. Cameras frame the scene, providing a controllable point of view. You can animate camera movement. Cameras can simulate some aspects of real-world photography, such as depth-of-field and motion blur. See also: ■ Lights on page 4970 ■ Cameras on page 5194 Lights Create panel > Lights Create menu > Lights Nighttime scene with artificial lighting 4970 | Chapter 18 Lights and Cameras Lights are objects that simulate real lights such as household or office lamps, the light instruments used in stage and film work, and the sun itself. Different kinds of light objects cast light in different ways, emulating different kinds of real-world light sources. When there are no lights in a scene, the scene is shaded or rendered with default lighting. You add lights to give the scene a more realistic appearance. Lighting enhances the clarity and three-dimensionality of a scene. In addition to general lighting effects, lights can be used to project images. (See Advanced Effects Rollout on page 5108.) Light objects replace the default lighting. As soon as you create a light, the default lighting is turned off. If you delete all the lights in the scene, default lighting is turned back on. The default lighting consists of two invisible lights: one is above and to the left of the scene, and the other is below and to the right. TIP One way to begin your work on lighting a scene is to convert the default lighting into light objects by using the command Add Default Lights To Scene on page 170. NOTE A scene's lighting is also affected by the Ambient Light setting on the Environment And Effects dialog > Environment panel on page 6689. Types of Lights 3ds Max provides two types of lights: standard and photometric. All types are displayed in viewports as light objects. They share many of the same parameters, including shadow generators. Standard Lights Standard lights on page 5049 are computer-based objects that simulate lights such as household or office lamps, the light instruments used in stage and film work, and the sun itself. Different kinds of light objects cast light in different ways, simulating different kinds of light sources. Unlike photometric lights, Standard lights do not have physically-based intensity values. Photometric Lights Photometric lights on page 5005 use photometric on page 8088 (light energy) values that enable you to more accurately define lights as they would be in the real world. You can set their distribution, intensity, color temperature, and other characteristics of real-world lights. You can also import specific Lights | 4971 photometric files available from lighting manufacturers to design lighting based on commercially available lights. TIP Combine Photometric lights with the radiosity solution on page 6168 to generate physically accurate renderings or perform lighting analysis. Tips ■ You can animate not only the location of a light, but also its color, intensity and some other creation parameters. See Animating Lights on page 4996. ■ You can use the Place Highlight on page 1018 command to change a light's position. See the Procedures in Working with Lights on page 4975. ■ A Light viewport on page 7614 can be a useful way to adjust lights other than omni lights. ■ To simulate sunlight, use a daylight or sunlight system on page 5139, which allows you to set the date, time, and geographic location of your model. The daylight system is photometric, while the sunlight system uses a standard directional light. NOTE The standard Skylight on page 5065 light is distinct from the photometric daylight lights. The Skylight light is for use with light tracing on page 6154. See also: ■ Working with Lights on page 4975 ■ Using Lights on page 4974 ■ Light Include/Exclude Tool on page 4997 ■ Light Lister on page 5000 ■ Animating Lights on page 4996 Name and Color Rollout (Lights) Create panel > Lights > Create a light. > Name and Color rollout Create menu > Photometric Lights > Create a light. > Modify panel > Name and Color rollout 4972 | Chapter 18 Lights and Cameras Create a light. > Modify panel > Name and Color rollout The Name And Color rollout lets you change the name and geometry color of a light. Changing the color of the light geometry can be useful when working with many lights. For example, in a scene with many different types of lights, you could make all spotlights red, and all omni lights blue to easily distinguish them. Changing a light's geometry color has no effect on the color of the light itself. You can set the color the light emits on its Intensity/Color/Attenuation rollout on page 5037for photometric lights, or the Intensity/Color/Attenuation rollout on page 5083 for standard lights. Procedures To change the color of a light’s geometry: 1 Create or select a light in your scene. 2 In the Name and Color rollout, click the color swatch to open a Color Selector on page 391. 3 Choose a new color and click OK. To change the name of a light: 1 Create or select a light in your scene. 2 In the Name and Color rollout, click the name field and enter the new name, then press the Enter key. The light's name has changed. Interface Name The name of the selected light. NOTE When you rename a target-type light, the target object will be renamed to match the light. Name and Color Rollout (Lights) | 4973 Color The color of the light’s geometry. This has no effect on the color the light emits. Using Lights In general, these are the reasons to use light objects on page 4970: ■ To improve the illumination of a scene. The default illumination in viewports might not be bright enough, or it might not illuminate all faces of a complicated object. ■ To enhance a scene's realism through realistic lighting effects. Guidelines for Lighting on page 4986 has suggestions about making lighting appear realistic. ■ To enhance a scene's realism by having lights cast shadows. All kinds of lights can cast shadows. Also, you can selectively control whether an object casts or receives shadows. See Shadow Parameters on page 5099. ■ To cast projections in a scene. All kinds of lights can project still or animated maps. See the Projector Map group in the Advanced Effects rollout on page 5108. ■ To help model a source of illumination in the scene, such as a flashlight. Light objects don't render, so to model a source of illumination, you also need to create geometry that corresponds to the light source. Use a self-illuminating on page 8122 material to make the geometry appear as if it's emitting light. ■ To create lighting scenes using manufacturers' IES on page 5034, CIBSE on page 7935, or LTLI on page 8029 files. You can visualize commercially available lighting in your model by creating photometric lights on page 5005 based on manufacturer's photometric data files. By experimenting with different fixtures, and varying the light intensity and color temperature, you can design a lighting system that produces the results you want. See Photometric Lights: Web Distribution on page 5028. See also: ■ Working with Lights on page 4975 ■ Properties of Light on page 4978 4974 | Chapter 18 Lights and Cameras ■ Lighting in 3ds Max on page 4984 ■ Guidelines for Lighting on page 4986 ■ Positioning Light Objects on page 4990 ■ Animating Lights on page 4996 ■ Light Include/Exclude Tool on page 4997 ■ Light Lister on page 5000 Working with Lights The procedures in this topic apply to both standard and photometric lights. Here are some general tips about working with lights: ■ You can add lights using the Substitute modifier on page 1762 to replace AutoCAD blocks with 3ds Max light objects or luminaires on page 295. ■ One simple way to light a scene is to convert the default lighting into light objects by using the command Add Default Lights To Scene on page 170. NOTE Add Default Lights To Scene works only if you have used the Viewport Configuration dialog on page 7817 to have the scene use two default lights. ■ You can turn the display of light objects on and off with an option in the Display panel on page 7665. See the “Procedures” section, below. ■ You can change the renderability of lights in your scene using the Renderable option on the General panel on page 305 of the Object Properties dialog. ■ You can change the renderability of a group of lights in your scene using the Layer Manager on page 7441. NOTE In order to be turned on/off through the Layer Manager, lights must have their Render Options set to ByLayer in the General panel on page 305 of the Object Properties dialog. TIP To automatically set new lights as renderable ByLayer, turn on New Lights Renderable By Layer on the General panel on page 7744 of the Preferences dialog. Using Lights | 4975 ■ You can use the Place Highlight on page 1018 button to change a light's position. See the “Procedures” section, below. ■ A Light viewport on page 7614can be a useful way to adjust spotlights in your scene. Procedures To create a light: 1 On the Create panel, click Lights. 2 Choose Standard or Photometric from the drop-down list. Standard is the default. 3 In the Object Type rollout, click the type of light you want to create. 4 Click a viewport to create the light. This step varies slightly depending on the type of light. For example, if the light has a target, you drag and click to set the target’s location. Light objects replace the default lighting. As soon as you create a light, the default lighting is turned off. If you delete all lights in the scene, the default lighting is restored. 5 Set the creation parameters. Like all objects, lights have a name, a color, and a General Parameters rollout. To create shadows, do one of the following: 1 In the General Parameters rollout, make sure On is checked in the Shadows group. Adjust shadow parameters in the Shadow Parameters rollout and the additional (Shadow Map on page 5135, Advanced Ray-traced on page 5118, Area Shadows, on page 5122 or Ray Traced Shadows on page 5133) shadow rollouts. 2 Right-click the light, and turn on Cast Shadows in the Tools 1 (upper-left) quadrant of the quad menu. Turning on Cast Shadows also turns on the On toggle in the Shadows group of the General Parameters rollout, and vice versa. Shadows are visible only when rendered, either in a full rendering on page 6065, in a viewport on page 4991, or with ActiveShade on page 6102. 4976 | Chapter 18 Lights and Cameras TIP To turn shadows on or off for multiple lights, select the lights and then use the Light Lister on page 5000. You can set an object to not cast or not receive shadows. By default, objects do both. See Object Properties on page 305. To control the display of light objects: On the Display panel, on the Hide By Category rollout, turn on Lights. All light objects in the scene disappear, but the lighting itself is unchanged. ■ Light objects can cast light whether or not their display is turned off. The Zoom Extents commands are affected by whether light icons are displayed or not. When lights are displayed, Zoom Extents on page 7594 and Zoom Extents All on page 7588 includes the lights in the zoom. TIP To control whether a light casts light in the scene, you can use its On toggle, or you can toggle its Renderable property on the light's Object Properties dialog on page 305. To change a light's parameters: 1 Select the light. TIP Lights can be hard to select by clicking. Use the keyboard shortcut H to select the light by name. 2 Open the Modify panel. 3 Change the light's parameters in the General Parameters rollout and other rollouts available for that light. To position a light so it highlights a face: 1 Make sure the viewport you plan to render is active, and that the object you want to highlight is visible in it. The result of Place Highlight depends on what is visible in the viewport. 2 Select a light object. Using Lights | 4977 3 On the Main toolbar, choose Place Highlight from the Align flyout on page 1009. You can also choose Tools menu > Place Highlight. 4 Drag over the object to place the highlight. When you place an omni light on page 5063, free direct light on page 5060, or a photometric Free Light on page 5011, 3ds Max displays a face normal for the face the mouse indicates. When you place a target direct light on page 5057 or photometric Target Light on page 5009, 3ds Max displays the light’s target and the base of its cone. 5 Release the mouse when the normal or target display indicates the face you want to highlight. The light now has a new position and orientation. You can see the highlight illumination in shaded viewports that show the face you chose, and when you render those views. Place Highlight on page 1018 works with any kind of selected object. You can also use Place Highlight with a selection set of multiple objects. All objects maintain their initial distance from the face. NOTE For materials, highlight rendering depends on the material's specular properties and the type of rendering you use. Properties of Light This topic describes light in the real world. When you light a scene, it can be helpful to know how light naturally behaves. When light rays strike a surface, the surface reflects them, or at least some of them, enabling us to see the surface. The appearance of a surface depends on the light that strikes it combined with the properties of the surface material, such as color, smoothness, and opacity. Materials on page 5260 let you specify the visual properties of surfaces. 4978 | Chapter 18 Lights and Cameras Intensity The intensity of light at its point of origin affects how brightly the light illuminates an object. A dim light cast on a brightly colored object shows only dim colors. Left: A room lit by candles, which are a low-intensity source. Right: The same room lit by a higher-intensity light bulb. Angle of Incidence The more a surface inclines away from a light source, the less light it receives and the darker it appears. The angle of the surface normal relative to the light source is known as the angle of incidence. When the angle of incidence is 0 degrees (that is, the light source strikes the surface perpendicularly), the surface is illuminated with the full intensity of the light source. As the angle of incidence increases, the intensity of illumination decreases. Using Lights | 4979 Angle of incidence affects intensity. Attenuation In the real world, light diminishes over distance. Objects far from the light source appear darker; objects near the source appear brighter. This effect is known as attenuation. In nature, light attenuates at an inverse square rate. That is, its intensity diminishes in proportion to the square of the distance from the light source. It is common for attenuation to be even greater when light is dispersed by the atmosphere, especially when there are dust particles in the atmosphere, or fog or clouds. 4980 | Chapter 18 Lights and Cameras A. Inverse decay B. Inverse square decay The graphs show the decay curves. Reflected Light and Ambient Light The light an object reflects can illuminate other objects. The more light a surface reflects, the more light it contributes to illuminating other objects in its environment. Reflected light creates ambient light. Ambient light has a uniform intensity and is uniformly diffuse. It has no discernible source and no discernible direction. Using Lights | 4981 A. Direct light B. Reflected light C. Resulting ambient light Color and Light The color of light depends partly on the process that generates the light. For example, a tungsten lamp casts orange-yellow light, a mercury vapor lamp casts cold blue-white light, and sunlight is yellow-white. Light color also depends on the medium the light passes through. For example, clouds in the atmosphere tint daylight blue, and stained glass can tint light a highly saturated color. Light colors are additive colors; the primary light colors are red, green, and blue (RGB). As multiple colored lights mix together, the total light in the scene gets lighter and eventually turns white. 4982 | Chapter 18 Lights and Cameras Additive mixing of colored lights Color Temperature Color temperature describes a color in terms of degrees Kelvin (K). This is useful for describing the color of light sources and other color values that are close to white. The following table shows color temperatures for some common types of light, with the equivalent hue number (from the HSV color description). If you use these hue numbers for lights in a scene, set the value to full (255) and then adjust the saturation to meet the needs of your scene. Mentally we tend to correct light color so that objects appear to be lit by white light; usually the effect of color temperature in a scene should be subtle. Light source Color Temper- Hue ature Overcast daylight 6000 K 130 Noontime sunlight 5000 K 58 White fluorescent 4000 K 27 Using Lights | 4983 Light source Color Temper- Hue ature Tungsten/halogen lamp 3300 K 20 Incandescent lamp (100 to 200 W) 2900 K 16 Incandescent lamp (25 W) 2500 K 12 Sunlight at sunset or sunrise 2000 K 7 Candle flame 1750 K 5 Lighting in 3ds Max Lighting in 3ds Max simulates natural lighting. However, standard lights are simpler than natural lighting. Using photometric lights on page 5005 with a radiosity solution on page 6168 with your lights provides a better model of the real world. Intensity The intensity of a standard light is its HSV Value. At full value (255), the light is at its brightest; at 0, the light is completely dark. NOTE See Designing Materials on page 5260 for more information about material color and how it interacts with light intensity. The intensity of a photometric light is set by a real-world intensity value, measured in either lumens, candelas, or lux. See Intensity/Color/Attenuation Rollout (Photometric Lights) on page 5037. Angle of Incidence 3ds Max uses a vector from the light object to the face, along with the face normal, to calculate the angle of incidence. A surface is fully illuminated when the angle of incidence is 0 degrees (that is, the light source strikes the surface perpendicularly). If the angle of incidence 4984 | Chapter 18 Lights and Cameras increases, attenuation is in effect, or if the light has a color, the surface intensity can be reduced. In other words, the position and orientation of the light, relative to the object, are what control the angle of incidence in a scene. The Place Highlight command on page 1018 is one way to fine-tune the location of a light. Attenuation For standard lights, attenuation on page 7915 is turned off by default. To shade or render a scene with attenuation, you turn it on for one or more lights. All types of standard lights support attenuation. You can set explicitly where attenuation begins and where it ends. This is partly so you don’t have to worry about setting up strictly realistic distances between light objects and the objects they illuminate. More importantly, this feature lets you fine-tune the effect of attenuation. In outdoor scenes, attenuation can enhance the effect of distance. (Another way to model environmental effects is to use the atmospheric settings when you render. See Environment and Atmosphere Effects on page 6687.) In an indoor setting, attenuation is useful for low-intensity light sources such as candles. Photometric lights always attenuate, using an inverse-square falloff, as in nature. (In the case of the IES Sun Light, its great intensity makes its attenuation hardly apparent.) Reflected Light and Ambient Light Rendering with the default renderer and standard lights does not calculate the effect of lights reflected from objects in the scene. Because of this, lighting a scene with standard lights often requires you to add more light objects than would be needed in real life. You can, however, use radiosity on page 6168 to show the results of reflected light. When you do not use a radiosity solution, you can use the Environment panel on page 6689 to adjust the color and intensity of ambient light. Ambient light affects contrast. The higher the intensity of ambient light, the lower the contrast in the scene. The color of ambient light tints the scene. Sometimes ambient light is bounced light that gets its color from other objects in the scene. Most of the time, however, the color of ambient light should be the complement of the color of the principal light source for the scene. Using Lights | 4985 TIP To better simulate reflected light and variations in it due to the varying reflectivity of objects in the scene, you can add more lights to a scene and set them to exclude the objects you don’t want them to affect. You can also set up lights to affect only the ambient component of surfaces. See General Lighting Parameters on page 5076. Color You can set the color of 3ds Max lights. You can use the RGB values for color temperatures as a guide for the principal lighting of a scene; see Properties of Light on page 4978. Be aware, however, that we tend to perceive scenes as always being lit by white light (this is a perceptual phenomenon known as color constancy), so accurately reproducing the color of a light source can make the rendered scene appear to be tinted oddly. Use the light source values as a general guideline only. Guidelines for Lighting The guidelines for lighting used by photographers, filmmakers, and stage designers can also help you set up the lighting for scenes in 3ds Max. Your choice of lighting depends on whether your scene simulates natural or artificial illumination. Naturally lit scenes, such as daylight or moonlight, get their most important illumination from a single light source. Artificially lit scenes, on the other hand, often have multiple light sources of similar intensity. NOTE If you use standard instead of photometric lights, both kinds of scenes require multiple secondary light sources for effective illumination. Whether a scene is indoors or outdoors can also affect your choice of material colors. See Designing Materials on page 5260. 4986 | Chapter 18 Lights and Cameras Natural Light Outdoor scene with natural sunlight At ground level, for practical purposes, sunlight has parallel rays coming from a single direction. The direction and angle vary depending on the time of day, the latitude, and the season. In clear weather, the color of sunlight is a pale yellow: for example, RGB values of 250, 255, 175 (HSV 45, 80, 255). Cloudy weather can tint sunlight blue, shading into dark gray for stormy weather. Particles in the air can give sunlight an orange or brownish tint. At sunrise and sunset, the color can be more orange or red than yellow. 3ds Max provides several daylight systems to simulate the sun. See Sunlight and Daylight Systems on page 5139. A single daylight system is appropriate as the main light source for sunlit scenes. When rendering with mental ray, you can gather skylight from a daylight system efficiently into an interior with the mr Sky Portal on page 5186. Shadows are more distinct the clearer the day is, and can be essential for bringing out the three-dimensionality of a naturally lit scene. A directional light can also simulate moonlight, which is white but dim compared to the sun. Using Lights | 4987 Artificial Light Outdoor scene with natural twilight and one streetlight Artificial light, whether used indoors or outdoors at night, uses multiple lights. The following guidelines are for creating normally lit, easily legible scenes. You don’t have to follow the guidelines, of course, but then you call attention to the lighting itself, rather than to the subject of the scene. The subject of a scene should be lit by a single bright light, known as the key light. Position the key light in front of the subject and slightly above. In addition to the key light, position one or more other lights to illuminate the background and the side of the subject. These are known as fill lights. Fill lights are less bright than the key light. When you use only one fill light, the angle at ground level between it, the subject, and the key light should be approximately 90 degrees. Key-and-fill lighting emphasizes the subject of a scene. It also emphasizes the three-dimensionality of the scene. In 3ds Max, a spotlight is usually best for the key light, and either spotlights or omni lights are good for creating the fill lighting. See Target Spot on page 5051, Free Spot on page 5054, and Omni on page 5063. Ambient light can be another element of your fill lighting. 4988 | Chapter 18 Lights and Cameras You can also add lights to emphasize secondary subjects in a scene. In stage terminology, these lights are known as specials. Special lights are usually brighter than the fill light but less bright than the main key light. To design using physically based energy values, distributions, and color temperature, you can create photometric lights on page 5005. Ambient Light Left: No ambient light Middle: Default ambient light Right: User-adjusted ambient light Ambient light in 3ds Max simulates the general illumination from light reflecting off diffuse surfaces. Ambient settings determine the illumination level of surfaces in shadow, or those not receiving direct illumination from light sources. The Ambient level on the Environment dialog establishes the scene’s basic illumination level before any light sources are taken into account, and is the dimmest any portion of the scene can ever become. Ambient light is most often used for exterior scenes, when the sky’s broad lighting produces an even distribution of reflected light to surfaces not in direct sun. A common technique for deepening the shadows is to tint the ambient light color to be the complement of the scene’s key light. Unlike the outside, interior scenes typically have numerous lights, and a general ambient light level is not ideal for simulating the diffuse reflection of local light sources. For interiors, it’s common to set the scene’s environment ambient level to black, and use lights that effect ambient only to simulate the regional areas of diffuse reflection. You set the scene’s ambient light using the Environment And Effects dialog > Environment panel on page 6689. You set a light to affect only ambient illumination with its Advanced Effects rollout on page 5108 > Ambient Only check box. Using Lights | 4989 Positioning Light Objects Once you have placed lights in your scene, you can use transforms to change a light's position or orientation. Transforming Lights Use transforms on light objects as follows: Move: Use Move on page 959 to change the position of lights. You can also use it to change the position of light targets. Rotate: Use Rotate on page 960 to change the orientation of lights. NOTE You can't rotate a target light about its local X or Y axes. Instead, use Move to move the light or its target. Rotating the light about its local Z axis can be useful if the light uses a rectangular beam or projects a bitmap. Rotating a plain omni light or a photometric light with spherical distribution has no effect, as these lights cast light uniformly in all directions. However, rotating an omni light or a spherical light with projection causes the projected image to rotate. Scale: Scaling Point, Linear, or Area lights has no effect. Using Scale on page 963 with spotlights and directional lights changes the size of their light beam and attenuation ranges. Scaling omni lights changes only the attenuation ranges. Scaling photometric lights changes their attenuation rate. Light viewports on page 7614 are another convenient way to transform and change parameters of spotlights and directional lights. TIP When you adjust lights, it can be useful to turn off Adaptive Degradation on page 143. If Adaptive Degradation is on and shaded viewports begin to display in wireframe, you won't see the result of the changes you make to lights. Placing Highlights You use Place Highlight on page 1018 to position a light to create a specular highlight at a designated point on an object. Place Highlight is one of the buttons on the Align flyout. Place Highlight moves or rotates the selected 4990 | Chapter 18 Lights and Cameras light object to aim it at a face on an object you pick. The light maintains its original distance from the face. Place Highlight works with any kind of selected object. You can also use Place Highlight with a selection set that contains more than one object. All objects maintain their initial distance from the face. Previewing Shadows in Viewports You can preview shadows in shaded viewports. To do so, you must be using the Direct3D driver (see Graphics Driver Setup Dialog on page 7790) and your system must have a graphics card that supports the SM (Shader Model) 2.0 or 3.0 standard. TIP You can check whether your system supports interactive shadows by choosing Help menu > Diagnose Video Hardware on page 174. Shaded viewport with no shadows Using Lights | 4991 Shaded viewport with lighting and shadows Lighting and shadows in viewports is a convenience for previewing your scene. These settings and the viewport appearance don’t necessarily match what will happen when you render, but shadows don’t appear if they wouldn’t appear in a rendering; for example, if an object is set to not cast or receive shadows, it won’t do so in viewports, and if a light is turned off or is not shadow casting, then it has no effect on the viewport display. There is one exception to this: viewport shadows don’t check a light’s Exclude/Include list, and so excluded objects can cast shadows in viewports. Procedure To view shadows in viewports: 1 Right-click a viewport, and from the Display (upper-right) quadrant of the quad menu, choose Viewport Lights And Shadows > Viewport Shading > Good or Best. The Good option is for SM2.0, and the Best option is for SM3.0. 2 Select a light. You can turn on shadows for an individual light, or for all selected lights. 3 Right-click, and on the Tools 1 (upper-left) quadrant of the quad menu, click Viewport Shadows to turn on shadows. 4992 | Chapter 18 Lights and Cameras Quad Menu: Display Quadrant The Viewport Lighting And Shadows options appear on the main quad menu. Viewport Shading Chooses the level of viewport shading. These options are equivalent to the same options in the Lighting And Shadows tab on page 7836 for viewport configuration: changing the setting here changes the active setting in the preferences dialog, and vice versa. ■ Best ■ Good ■ Off Displays shadows at the SM3.0 level, with opacity mapping. Displays shadows at the SM2.0 level. Lights viewports without shadows. Unlock Selected Lights Unlocks the selected lights. Lock Selected Lights Locks the selected lights. To “lock” a light means that the light will stay on until it is unlocked, whether or not the light casts shadows. When a light is locked, choosing Display Only Selected Lights or Auto Display Selected Lights does not turn it off. Disable Viewport Shadows Selected Turns off viewport shadows for the selected lights. Using Lights | 4993 Enable Viewport Shadows Selected Turns on viewport shadows for the selected lights. Select Lights Displaying Shadows Selects all of the lights in the scene that have Shadows turned on. Select Lights Displaying Lighting Selects all of the lights in the scene that are On. Auto Display Selected Lights When on, light from selected lights is automatically displayed in shaded viewports. Default=off. This option is equivalent to the same option in the Lighting And Shadows tab on page 7836 for viewport configuration: changing the setting here changes the active setting in the preferences dialog, and vice versa. Display Only Selected Lights Turns off the display of all selected lights except for lights that are locked. This option is unavailable if no lights are selected. 4994 | Chapter 18 Lights and Cameras Quad Menu:Tools 1 Quadrant The Tools 1 (upper-left) quadrant for viewport lighting appears when a single light object is selected in the scene. Ambient Only When on, the light object affects only ambient light in viewports. Affect Specular When on, the light object affects specular color in viewports. Affect Diffuse When on, the light object affects diffuse color in viewports. Viewport Shadows When on, shaded viewports display shadows from the light. Using Lights | 4995 Cast Shadows Turns on shadows for the light, for viewport display. This setting does not change the value of the light’s Shadows toggle, so it doesn’t affect the rendered scene. Viewport Lighting Turns on the selected light, for viewport display. This setting does not change the value of the light’s On toggle, so it doesn’t affect the rendered scene. Light On Turns the selected lights On. This setting does change the value of the light’s On toggle, so it does affect the rendered scene. Select Light Target If the selected light is a target light, choose this to select the target object. This option doesn’t appear if the light is not a target light. Animating Lights You animate lights by using transforms or changing creation parameters on different keyframes while the Auto Key button on page 7549 is on. During animation, light transforms and parameter values are interpolated between keyframes. Moving and Rotating Light Objects You can use the following methods to move and rotate light objects. ■ Move an omni light on page 5063 when it’s a "practical" light within a scene (a light that appears in the scene itself). Combine the light with a self-illuminating geometric object. If you want to move a target type of light, select both the light and its target to animate them together. ■ Move a Photometric Preset light, or a Free or target light when it’s a "practical" light within a scene (a light that appears in the scene itself). Combine the light with a self-illuminating geometric object. If you want to move a target type of light, select both the light and its target to animate them together. ■ Use a free spotlight on page 5054 when a spotlight is to move within the scene. Free spotlights are especially intended to be animated along a path, using a Path constraint on page 3297. Unlike target spotlights, free spotlights can bank as they travel. Use target spotlights on page 5051 when the light position is fixed. 4996 | Chapter 18 Lights and Cameras ■ If you do need to move a target spotlight, link both the light and its target to a dummy object on page 2615, then assign the path constraint to the dummy object. ■ Use a LookAt Constraint on page 3312 to have a spotlight track a moving object. If the spotlight is a target spotlight, its previous target is ignored. If the spotlight is a free spotlight, it effectively becomes a target spotlight, with the looked-at object the target. ■ Change the parameters of a daylight system on page 5139 or sunlight system to simulate different times of day or year. Animating Light Creation Parameters The following techniques can be used to animate Modify panel parameters for lights. ■ To dim or brighten a light over time, animate its Multiplier parameter. ■ To dim or brighten a standard light over time, animate its Multiplier value or Filter Color parameter. ■ To change the color of a light over time, animate its color parameters. Use a smooth tangent on page 3129 for color change keys unless you want the color to change abruptly. ■ To make a standard light flash on and off, set its Multiplier to 0 in repeated keyframes, and assign a step tangent on page 3129 to this parameter. Light Include/Exclude Tool By default, the Light Include/Exclude tool is unavailable in the 3ds Max user interface. You can add it as a custom keyboard shortcut, quad or menu item, or toolbar button by using the Customize User Interface dialog on page 7697. The Light Include/Exclude tool is a modeless dialog that lets you include or exclude objects on a light-by-light basis. When excluded, an object is not illuminated by the selected light and receives no shadows. This dialog requires at least one light object in your scene. For a selected light, this dialog is a shortcut to the same functionality available on the Exclude/Include dialog on page 5096. Using Lights | 4997 Although light exclusion does not occur in nature, this feature is useful when you need exact control over the lighting in your scene. Sometimes, for example, you'll want to add lights specifically to illuminate a single object but not its surroundings, or you'll want a light to cast shadows from one object but not from another. NOTE By default, no objects are excluded for a new light. It’s necessary only to include objects that have previously been excluded. See also Lights on page 4970 Light Lister on page 5000 Procedures To exclude an object from receiving light: 1 In the scene, select the object or objects to exclude. 2 Open the Light Incl/Exl dialog. See the path annotation, above. To use the Light Include/Exclude tool, you have to create a custom keyboard shortcut, quad or menu item, or toolbar button. 3 In the Geometry group, choose Exclude. 4 Click the Assign To Light button. 5 In the scene, click a light. If the light is hard to locate, use the Pick Object dialog on page 228(keyboard shortcut H) to pick the light. The object is now excluded from the light. The Objects list at the bottom of the dialog lists the object. 6 Render to see the effect. 4998 | Chapter 18 Lights and Cameras Interface Geometry group Include, Exclude Toggles the state of a selected object to receive light from a particular light object. Default=include. Assign to Light Activates selection so you can choose the light you want to use. You can only choose one light at a time. List Light Properties group These controls let you view and edit the include/exclude status of objects on a light-by-light basis. Using Lights | 4999 Current displayed light Names the currently selected light. Choose Light Activates selection so you can choose another light. Clear Light Empties the Objects list, removing any included or excluded objects assigned to the currently displayed light. Include, Exclude Reverses the state of included or excluded objects to receive light from the currently displayed light. Objects Lists objects selected for inclusion or exclusion by the currently displayed light. Help Provides a quick reminder of procedures. Light Lister Tools menu > Light Lister Light Lister is a modeless dialog that lets you control a number of features for each light. You can also make global settings that affect every light in your scene. To display information, this dialog requires at least one light object in your scene. For a selected light, this dialog is a shortcut to the same functionality available on the Modify panel > Parameters rollout. Global settings are duplicated on the Environment panel on page 6689. NOTE The Light Lister cannot control more than 150 unique light objects at a time (instances of a light don't count). If there are more than 150 unique lights in your scene, the Lister displays controls for the first 150 it finds, and a warning that you should select fewer lights. Select fewer lights and then use the Selected Lights configuration. See also: ■ Light Include/Exclude Tool on page 4997 Procedures To use global settings: 1 On the Light Lister dialog, on the Configuration rollout, choose General Settings. 5000 | Chapter 18 Lights and Cameras The General Settings rollout appears. 2 Make changes to the settings. See Interface, below. To set individual lights: 1 On the Configuration rollout, choose All Lights. The Lights rollout displays settings for all the scene lights (subject to the limit of 150 lights described above). Alternatively, you can select the lights to adjust, and then on the Configuration rollout choose Selected Lights. TIP If you change the light selection, the Light Lister does not update interactively. Click Refresh to update the list. 2 On the Lights rollout, change the settings for any light on the list. See Interface, below. Some changes show up immediately in the viewport. Interface Configuration rollout Chooses which lights and controls to affect, and lets you update light settings. All Lights The Lights rollout shows all lights in the scene (subject to the 150-light restriction, described above). Selected Lights The Lights rollout shows only selected lights. General Settings Displays the General Settings rollout. Refresh Updates the list of lights to use the current light selection (if Selected Lights is active) and current scene settings. NOTE When the Light Lister needs to be updated, the Refresh button is highlighted in yellow. Using Lights | 5001 General Settings rollout These controls are for general lighting settings. ■ Selected Lights When chosen, general settings affect only selected lights. ■ All Lights When chosen, general settings affect all lights in the scene (subject to the 150-light restriction, described above). On When on, affected lights are active in the scene. When off, affected lights go dark in the viewports and renderings. Multiplier Increases or decreases the light intensity of standard lights. See General Lighting Parameters on page 5076 for standard lights. Color By default, the color of all standard lights is white. Click to display the Color Selector on page 391 and change the light color for affected lights. WARNING For photometric lights, this changes the filter color, not the color temperature. Shadows When on, affected lights cast shadows. When off, they don't cast shadows. Shadow type drop-down list Selects the shadow type for affected lights. Map Size Sets the size (in pixels squared) of the shadow map used by affected lights. Bias Setting depends on which shadow type is selected. In general, bias moves the shadow toward or away from the shadow-casting object. For specific effects, see Shadow Map Parameters on page 5135 and Ray-Traced Shadow Parameters on page 5133. Sm. Range (Sample Range) For shadow-mapped shadows, sets the Sample Range value. See Shadow Map Parameters on page 5135. This value has no effect for ray-traced or area shadows. Transp. (Transparency) When on, turns on transparency for advanced ray-traced and area shadows. Has no effect on shadow-mapped or standard ray-traced shadows. Default=off. 5002 | Chapter 18 Lights and Cameras Int. (Integrity) For advanced ray-traced shadows or area shadows, sets the Shadow Integrity. See Advanced Ray-Traced Parameters Rollout on page 5118 or Area Shadows Rollout on page 5122. Qual. (Quality) For advanced ray-traced shadows or area shadows, sets the Shadow Quality. See Advanced Ray-Traced Parameters Rollout on page 5118 or Area Shadows Rollout on page 5122. Decay (For standard lights.) Sets the type of decay: None, Inverse, or Inverse Square. See Intensity/Color/Attenuation Parameters on page 5083. Start (For standard lights.) Sets the start range for decay. See Intensity/Color/Attenuation Parameters on page 5083. Length (For photometric lights.) Sets the Length value for Line and Rectangle lights. See Shape/Area Shadows Rollout on page 5040. Width (For photometric lights.) Sets the Width value for Rectangle lights. See Shape/Area Shadows Rollout on page 5040. Global Tint Adds a color tint to all lights in the scene except ambient light. Click to use the Color Selector on page 391. The tint is in addition to the global light color, or the color of individual lights. The default setting, white, has no tinting effect. Global Level Increases or decreases the overall lighting level for Standard lights. Default=1.0. NOTE This setting, designed for standard lights, reduces the level of photometric lights to near darkness. If you have photometric lights in your scene, leave this setting at the default. Ambient Color Changes the ambient color on page 7906, the color seen in shadows. Click to use the Color Selector on page 391. Lights rollout Using Lights | 5003 This rollout is visible while All Lights or Selected Lights is active on the Configuration rollout. Its controls are for individual light objects. This rollout displays two lists: one for standard lights, and another for photometric lights. Blank gray button (Select) Click to select the named light. This button turns white for selected lights. Selecting a light opens the Modify panel for that light. This button has a gray box in the middle for the light that appears in the Modify panel. The gray box appears whether the light is selected or not. Clicking Select deselects all other lights. If the entry is for an instanced light, clicking Select selects all instances (see the description of the Name field that follows). If the light is part of a group, the entire group is selected. If you are in Selected Lights mode (on the Configuration rollout), the list of selected lights is not refreshed automatically. NOTE You can set the controls for a light without selecting it. Check box Turns the light on or off. Default=on. Name Shows the name of the light object. If there are multiple instances of a light, only one entry appears in the Light Lister, and the Name field becomes a drop-down list. The list lets you see the names of all instances, but it has no other effect: parameter changes made in the Light Lister affect all instances of the light. Multiplier (Standard lights only.) Increases or decreases the intensity of the light. Default=1.0. NOTE This control is unavailable if the light has a procedural controller. Intensity (Photometric lights only.) Sets the light intensity, in candelas. Default=1500.0. NOTE This control is unavailable if the light has a procedural controller. Color Click to display the Color Selector on page 391 and change the light color. Default=white. WARNING For photometric lights, this changes the filter color, not the color temperature. Shadows Turns shadow casting on or off. Default=on. Shadow type drop-down list Selects the shadow type for the light. Map Size Available only when shadow map shadows is on. Sets the size (in pixels squared) of the shadow map used by all lights. 5004 | Chapter 18 Lights and Cameras Bias Setting depends on which shadow type is selected. In general, bias moves the shadow toward or away from the shadow-casting object. See Shadow Map Parameters on page 5135 and Ray-Traced Shadow Parameters on page 5133 for specific effects. Sm. Range For shadow-mapped shadows, sets the Sample Range value. See Shadow Map Parameters on page 5135. This value has no effect for ray-traced shadows. Default=4.0. Transp. (Transparency) When on, turns on transparency for advanced ray-traced and area shadows. Has no effect on shadow-mapped or standard ray-traced shadows. Default=off. The shadow transparency control is on the Optimizations rollout on page 5130. Int. (Integrity) For advanced ray-traced shadows or area shadows, sets the Shadow Integrity. See Advanced Ray-Traced Parameters Rollout on page 5118 or Area Shadows Rollout on page 5122. Default=1. Qual. (Quality) For advanced ray-traced shadows or area shadows, sets the Shadow Quality. See Advanced Ray-Traced Parameters Rollout on page 5118 or Area Shadows Rollout on page 5122. Default=2. Decay (Standard Lights only.) Sets the type of decay: None, Inverse, or Inverse Square. See Attenuation Parameters on page 5083. Default=None. Start (Standard lights only.) Sets the start range for decay. See Attenuation Parameters on page 5083. Default=0.0. Length (Photometric lights only.) Sets the Length value for Line and Rectangle photometric lights. See Shape/Area Shadows Rollout on page 5040. Width (Photometric lights only.) Sets the Width value for Rectangle photometric lights. See Shape/Area Shadows Rollout on page 5040 . Photometric Lights Photometric lights use photometric on page 8088 (light energy) values that enable you to more accurately define lights as they would be in the real world. You can create lights with various distribution and color characteristics, or import specific photometric files available from lighting manufacturers. NOTE Photometric lights always attenuate using an inverse-square falloff, and rely on your scene using realistic units. Photometric Lights | 5005 When you create lights from the Create panel, photometric lights appear as the default. 3ds Max includes the following types of photometric light objects: Target Light (Photometric) on page 5009 Free Light (Photometric) on page 5011 mr Sky Portal on page 5186 NOTE The remainder of this topic discusses standard photometric lights, target and free. It does not discuss the mr Sky Portal on page 5186. Additional photometric light types are provided as part of the Daylight system; see Sunlight and Daylight Systems on page 5139. Distribution Capabilities of Photometric Lights You can choose how a photometric light is distributed. This can model how the light is generated and how it is mounted. There are four options: ■ Uniform Spherical on page 5025 ■ Uniform Diffuse on page 5026 ■ Spotlight on page 5027 ■ Photometric Web on page 5028 The drop-down list that lets you choose the distribution type appears on the General Parameters rollout on page 5019 for photometric lights. In viewports, Uniform distribution is represented by a small sphere (the position of the sphere indicates whether the distribution is Spherical or Hemispherical), Spotlight distribution is represented by a cone, and Web distribution is represented as the shape of the web. 5006 | Chapter 18 Lights and Cameras Light Shapes for Shadow Generation While your distribution choice affects how light is spread throughout the scene, the light shape affects the way objects cast shadows. This setting is an independent choice. In general, larger areas cast softer shadows. There are six options: ■ Point Objects cast shadows as if the light were emitted from a single geometric point, like a naked lightbulb. ■ Line Objects cast shadows as if the light were emitted from a line, like a fluorescent tube. ■ Rectangle Objects cast shadows as if the light were emitted from a rectangular area, like a skylight. ■ Disc Objects cast shadows as if the light were emitted from a disc, like a circular porthole. ■ Sphere Objects cast shadows as if the light were emitted from a sphere, like a globular lighting fixture. ■ Cylinder Objects cast shadows as if the light were emitted from a cylinder, like a tubular lighting fixture. You choose the light shape on the Shape/Area Shadows rollout on page 5040. Lights from Older Scenes Prior to Autodesk 3ds Max 2009, there were several types of photometric light, based on the light shape for shadow calculation. There are now just the two types of photometric light, Target and Free, and you choose the shape for shadow casting independently of the light type. When you open a scene created in an earlier version of 3ds Max, the scene’s photometric lights are converted to their equivalent in the new scheme. For example, a Target Linear Light with Isometric distribution becomes a Target Photometric Lights | 5007 Light with Line shadows and Uniform Spherical distribution. No information is lost, and the light behaves as it did in prior releases. Parameters for Photometric Lights The photometric light parameters are described in the following topics: Templates Rollout on page 5013 General Parameters Rollout (Photometric Lights) on page 5019 Intensity/Color/Attenuation Rollout (Photometric Lights) on page 5037 Shape/Area Shadows Rollout on page 5040 Distribution (Photometric File) Rollout on page 5044 Distribution (Spotlight) Rollout on page 5046 Other photometric light parameters are shared with standard lights, and are described in the following topics: Name and Color Rollout (Lights) on page 4972 Shadow Parameters on page 5099 Atmospheres and Effects for Lights on page 5104 Advanced Effects Rollout on page 5108 mental ray Indirect Illumination Rollout (for Lights) on page 5112 mental ray Light Shader Rollout on page 5115 Other photometric-specific topics include: IES Standard File Format on page 5034 Example of Photometric Data File on page 5036 Common Lamp Values for Photometric Lights on page 5014 Notes ■ A scene's lighting can also be affected by the Ambient Light setting on the Environment panel on page 6689. ■ You can use the Place Highlight on page 1018 command to change a light's position. ■ You can use templates on page 5013 to create lights that have the properties of common lamp types. 5008 | Chapter 18 Lights and Cameras Target Light (Photometric) Create panel > Lights > Photometric > Target Light button Create menu > Lights > Photometric Lights > Target Light. A target light has a target sub-object that you can use to aim the light. Viewport representations of Target lights with spherical, spotlight, and web distribution NOTE When you add a Target light, 3ds Max automatically assigns a Look At controller on page 3199 to it, with the light's target object assigned as the Look At target. You can use the controller settings on the Motion panel to assign any other object in the scene as the Look At target. NOTE When you rename a Target Point light, the target is automatically renamed to match. For example, renaming TPhotometricLight01 to Klieg causes TPhotometricLight01.Target to become Klieg.Target. The target's name must have the extension .Target. Renaming the target object does not rename the light object. Procedures To create a Target light: 1 On the Create panel, click Lights. 2 Choose Photometric from the drop-down list. (The default is Standard.) 3 In the Object Type rollout, click Target Light. Photometric Lights | 5009 4 Drag in a viewport. The initial point of the drag is the location of the light, and the point where you release the mouse is the location of the target. The light is now part of the scene. 5 Set the creation parameters. You can use the Move transform to adjust the light’s position and direction. To select the target: The target, displayed as a small square, is often in the same area as objects that you want to illuminate. It can be difficult to select it by clicking. 1 First select the target point light. 2 Right-click the light and choose Select Target from the quad menu on page 7516. You can also choose Lights from the Selection Filters list on the toolbar, and then click the target. Clicking the line that connects the light and its target selects both objects. To adjust the light and target position: 1 Select the light or target or both. 2 On the Main toolbar, click Move. Drag the selection to adjust the light. You can also right-click the light and choose Move from the quad menu > Transform quadrant. Because the light is always aimed at its target, you can't rotate it about its local X or Y axes. However, you can select and move the target object as well as the light itself. When you move either the light or the target, the light's orientation changes so it always points at the target. You can use the Place Highlight on page 1018 command to change a light's position. For target lights with spotlight distributions, you can also adjust the light using a Light viewport on page 7614. 5010 | Chapter 18 Lights and Cameras To change a viewport to a light view: NOTE The viewport can only be set to a light view when the target light’s distribution is spotlight. 1 Right-click the viewport label. The viewport right-click menu is displayed. 2 Choose Views. The name of each light is displayed in the Views list. By default, Target lights are named TPhotometricLight01, TPhotometricLight02, and so on. 3 Choose the name of the light you want. The viewport now shows the light's point of view. You can use the Light viewport on page 7614 controls to adjust the light. TIP The default keyboard shortcut for Light viewports is $. Free Light (Photometric) Create panel > Lights > Photometric > Free Light button Create menu > Lights > Photometric Lights > Free Light. A free light has no target sub-object. You can aim it by using transforms. Viewport representations of a Free light with spherical, spotlight, and web distribution Procedures To create a Free light: 1 On the Create panel, click Lights. Photometric Lights | 5011 2 Choose Photometric from the drop-down list. (Standard is the default.) 3 In the Object Type rollout, click Free Light. 4 Click the viewport location where you want the light to be. The light is now part of the scene. Initially it points away from you in the viewport you clicked (down the negative Z-axis of the viewport). 5 Set the creation parameters. You can position the light on page 4990 and adjust its direction with the transform tools or by using a Light viewport. You can also adjust the light's position with the Place Highlights on page 1018 command. To adjust the light position: 1 Select the light. 2 On the Main toolbar, click Move or Rotate. Drag the selection to adjust the light. You can also right-click the light and choose Move or Rotate from the quad menu > Transform quadrant. TIP You can also adjust the light's position with the Place Highlight on page 1018 command. To change a viewport to a light view: NOTE This is only available for lights with Spot distribution. 1 Right-click the viewport label. The viewport right-click menu is displayed. 2 Choose Views. The name of each light is displayed in the Views list. By default, Free Point lights are named PhotometricLight01, PhotometricLight02, and so on. 3 Choose the name of the light you want. The viewport now shows the light's point of view. You can use the Light Viewport Controls on page 7614 to adjust the light. TIP The default keyboard shortcut for Light viewports is $. 5012 | Chapter 18 Lights and Cameras Rollouts for Photometric Lights Templates Rollout Create panel > Lights > Photometric Lights > Create a light. > Modify panel > Templates rollout Create panel > Lights > Photometric Lights > Create a light. > Modify panel > Templates rollout The Templates rollout lets you choose from among a variety of preset light types. In general, when you create lights for a new scene (as opposed to using an existing 3ds Max scene), we recommend that you do one of the following: ■ Choose a light from the template list. ■ Download a light description from a lighting manufacturer’s Web site. See Web Distribution (Photometric Lights) on page 5028. ■ Use the lights provided with the model that was created in AutoCAD, Revit, or another application that provides photometric lights. Interface Select a Template Use this drop-down list to choose the kind of light you want to use. 3ds Max offers these selections: ■ 40 Watt (W) bulb ■ 60W bulb ■ 75W bulb ■ 100W bulb Photometric Lights | 5013 ■ Halogen spotlight ■ 21W halogen bulb ■ 35W halogen bulb ■ 50W halogen bulb ■ 75W halogen bulb ■ 80W halogen bulb ■ 100W halogen bulb ■ Recessed 75W lamp (web) ■ Recessed 75W wallwash (web) ■ Recessed 250W wallwash (web) ■ 4 ft. pendant fluorescent (web) ■ 4 ft. cove fluorescent (web) ■ Street 400W lamp (web) ■ Stadium 1000W lamp (web) When you choose a template, the parameters of the light update to use the values of that light, and the text area above the list displays a description of the light. If you choose a category heading instead of a light type, the text area prompts you to choose an actual light. Common Lamp Values for Photometric Lights The following table lists some commonly used lamps values that you can use as a guide for defining photometric lights. The information in the table is approximate; however, you can refer to manufacturer’s documentation for more precise photometric data for these lamps. General-Purpose Lamps NOTE In the tables below, “Class.” stands for “Classification”; the values under “Intensity” are expressed in candelas. 5014 | Chapter 18 Lights and Cameras Class. Watts Type Intensity A-19/ Med 60 Point 70 A-19/ Med 75 Point 95 A-19/ Med 100 Point 139 Beam Field M16 Low Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 20 Spot 3300 6 12 Narrow Beam 50 Spot 9150 12 25 Medium Beam 50 Spot 3000 25 50 Wide Beam 20 Spot 460 38 75 Wide Beam 50 Spot 1500 38 75 Photometric Lights | 5015 Par36 Low Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 25 Spot 4200 9 15 Narrow Beam 50 Spot 8900 10 15 Medium Beam 50 Spot 1300 30 60 Wide Beam 25 Spot 250 36 75 Wide Beam 50 Spot 600 39 75 Par56 Line Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 300 Spot 68000 5016 | Chapter 18 Lights and Cameras 9 15 Class. Watts Type Intensity Beam Field Narrow Beam 500 Spot 95000 9 15 Medium Beam 300 Spot 24000 18 36 Medium Beam 500 Spot 47500 18 36 Wide Beam 300 Spot 10000 30 60 Wide Beam 500 Spot 18000 30 60 Par38 Line Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 45 Spot 4700 14 28 Narrow Beam 75 Spot 5200 12 25 Narrow Beam 150 Spot 10500 14 28 Photometric Lights | 5017 Class. Watts Type Intensity Beam Field Medium Beam 45 Spot 1700 28 60 Medium Beam 75 Spot 1860 30 60 Medium Beam 150 Spot 4000 30 60 R40 Line Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 150 Spot 5400 22 50 Wide Beam 150 Spot 1040 76 130 Wide Beam 300 Spot 1950 76 130 5018 | Chapter 18 Lights and Cameras General Parameters Rollout (Photometric Lights) Create panel > Lights > Photometric Lights > Create a light. > Modify panel > General Parameters rollout. Create menu > Photometric Lights > Create a light. > Modify panel > General Parameters rollout. This General Parameters rollout is displayed for photometric lights. These controls turn a light on and off, and exclude or include objects in the scene. They also let you set the type of light distribution. On the Modify panel, the General Parameters rollout also lets you control the light’s target object and change the light from one type to another. The General Parameters rollout also lets you turn shadow-casting on or off for the light, and choose which type of shadow the light uses. See Shadow Types and Shadow Controls on page 5117 and Shadow Parameters on page 5099. Procedures To turn a light on and off: ■ Turn the On toggle on or off. Default=on. To have a light cast shadows: ■ In the General Parameters rollout > Shadows group, make sure On is selected. The light will now cast shadows when you render the scene. Photometric Lights | 5019 Left: With Spotlight distribution, the projection cone can truncate shadows. Right: With Uniform Spherical distribution, the light casts complete shadows. To have a light use the global settings for shadows: ■ On the General Parameters rollout, in the Shadow Parameters group, turn on Use Global Settings. When Use Global Settings is on, the other shadow controls are set to the values used by all other shadow-casting lights in the scene that have Use Global Settings set. Changing the affected parameters for one light with Use Global Settings set, changes them for all lights with Use Global Settings set. To set a light's shadow parameters individually: ■ On the General Parameters rollout, turn off Use Global Settings. The settings revert to the individual settings for the light. By default, Shadow Map is the active shadow type. In the Shadow Map Params rollout on page 5135, the default settings are: Map Bias=1; Size=512; Sample Range=4.0; Absolute Map Bias=Off. 5020 | Chapter 18 Lights and Cameras Scene with shadow-mapped shadows Shadows rendered using default parameter settings TIP When you render a scene, you can turn rendering of shadows on or off. To cast area shadows: ■ On the General Parameters rollout, choose Area Shadows from the drop-down list. Use controls on the Area Shadows rollout on page 5122 to adjust the shadow properties. To cast advanced ray-traced shadows: Advanced ray-traced shadows are similar to ray-traced shadows, however they provide control over antialiasing on page 7904, letting you fine-tune how shadows are generated. ■ On the General Parameters rollout, choose Advanced Ray-traced Shadows from the drop-down list. Use controls on the Advanced Ray-traced Params rollout on page 5118 to adjust the shadow properties. To cast shadow-mapped shadows: 1 On the General Parameters rollout, choose Shadow Maps from the drop-down list. Photometric Lights | 5021 2 Go to the Shadow Map Params rollout on page 5135. ■ Use the Size spinner to set the size of the shadow map. ■ Use the Bias spinner to adjust the shadow offset, if necessary. ■ Use the Sample Range spinner to create a soft-edged shadow. To cast ray-traced shadows: Ray-traced shadows on page 8103 are generated by tracing the path of rays sampled from a light source. Ray-traced shadows are more accurate than shadow-mapped shadows. 1 On the General Parameters rollout, in the Shadows groupo, choose Ray-Traced Shadows from the drop-down list. 2 Use controls on the Ray Traced Shadow Params rollout on page 5133 to adjust the shadow offset, if necessary. To keep an object from casting shadows: 1 Select the object. 2 Right-click the object to display the quad menu and choose Properties from the Transform quadrant. The Object Properties dialog on page 305 is displayed. 3 Turn off Cast Shadows, and then click OK. Now when you render the scene, the object casts no shadows. To make an object not receive shadows: 1 Select the object. 2 Right-click the object to display the quad menu and choose Properties from the lower-right (Transform) quadrant. The Object Properties dialog on page 305 is displayed. 3 Turn off Receive Shadows, and then click OK. Now when you render the scene, the object receives no shadows. NOTE You can also prevent objects from casting shadows by excluding them from a light. 5022 | Chapter 18 Lights and Cameras Interface Light Properties group On (Both Create panel and Modify panel) Turns the light on and off. When On is on, shading and rendering use the light to illuminate the scene. When On is off, the light is not used in shading or rendering. Default=on. In viewports, the interactive renderer shows the effect of turning lights on or off. Targeted When on, the light has a target. When off, you aim the light using transforms. This toggle lets you change the light from a target light to a free light, or vice versa. Target Distance Shows the target distance. For a target light, this field simply displays the distance. For a free light, you can enter a value to change the distance. Shadows group On Determines whether the current light casts shadows or not. Default=on. Shadow Method drop-down list Determines whether the renderer uses shadow maps on page 8125, ray-traced shadows on page 8103, advanced ray-traced shadows on page 8103, or area shadows on page 7913, to generate shadows for this light. Photometric Lights | 5023 The “mental ray Shadow Map” type is provided for use with the mental ray renderer on page 6230. When you choose this shadow type and enable shadow maps (on the Shadows & Displacement rollout on page 6292 of the Render Setup dialog), shadows use the mental ray shadow-map algorithm. If this type is chosen but you render with the default scanline renderer, no shadows appear in the rendering. NOTE When shadow maps are enabled and the shadow map type is Shadow Map, the mental ray renderer attempts to translate the shadow map settings into comparable settings for mental ray shadow maps. (The results might not be what you expected.) In all other cases, the mental ray renderer generates ray-traced shadows. Each shadow type has its particular controls: ■ Advanced ray-traced shadows See Advanced Ray-Traced Parameters Rollout on page 5118 and Optimizations Rollout on page 5130. ■ Area shadows See Area Shadows Rollout on page 5122 and Optimizations Rollout on page 5130. ■ mental ray shadow maps 5128. ■ Ray-traced shadows 5133. ■ Shadow maps See mental ray Shadow Map Rollout on page See Ray-Traced Shadow Parameters Rollout on page See Shadow Map Parameters Rollout on page 5135. TIP Use ray-traced or advanced ray-traced shadows when you want shadows cast by opacity-mapped objects. Shadow-mapped shadows don't recognize the transparent portions of the mapping, and as a result they don't look convincing. Use Global Settings Turn on to use global settings for shadows cast by this light. Turn off to enable individual control of the shadows. If you choose not to use the global settings, you must choose which method the renderer will use to generate shadows for this particular light. When Use Global Settings is on, the shadow parameters switch over to show you what the global settings are. This data is shared by every other light of this class. When Use Global Settings is off, the shadow parameters are specific to that particular light. Exclude button Excludes selected objects from the effects of the light. Click this button to display the Exclude/Include dialog on page 5096. 5024 | Chapter 18 Lights and Cameras Excluded objects still appear lit in shaded viewports. Exclusion takes effect only when you render the scene. Light Distribution (Type) group Drop-down list The light distribution drop-down list lets you choose the type of light distribution. There are four options: ■ Photometric Web on page 5028 When you choose this option, the Distribution (Photometric File) rollout on page 5044 opens on the command panel. ■ Spotlight on page 5027 When you choose this option, the Distribution (Spotlight) rollout on page 5046 opens on the command panel. ■ Uniform Diffuse on page 5026 ■ Uniform Spherical on page 5025 Uniform distribution, whether diffuse or spherical, has no additional settings, so these choices don’t display a special Distribution rollout. Uniform Spherical Distribution (Photometric Lights) Create panel > Lights > Photometric Lights > Click Target Light or Free Light. > General Parameters rollout > Light Distribution (Type) group > Choose Uniform Spherical from the drop-down list. Uniform spherical distribution, as its name implies, distributes light equally in all directions. NOTE Uniform Spherical distribution was known as Isotropic distribution in releases prior to Autodesk 3ds Max 2009. Photometric Lights | 5025 Uniform spherical light distribution Viewport representation of a Target light with uniform spherical distribution Uniform Diffuse Distribution (Photometric Lights) Create panel > Lights > Photometric Lights > Click Target Light or Free Light. > General Parameters rollout > Light Distribution (Type) group > Choose Uniform Diffuse from the drop-down list. Uniform diffuse distribution emits diffuse light in one hemisphere only, as if the light were emitted from a surface. Uniform diffuse distribution obeys Lambert’s cosine law: the light has the same apparent intensity when viewed from any angle. 5026 | Chapter 18 Lights and Cameras Uniform diffuse light distribution NOTE Uniform Diffuse distribution was known simply as Diffuse distribution in releases prior to Autodesk 3ds Max 2009. Spotlight Distribution (Photometric Lights) Create panel > Lights > Photometric Lights > Click Target Light or Free Light. > General Parameters rollout > Light Distribution (Type) group > Choose Spotlight from the drop-down list. A spotlight distribution casts a focused beam of light like a flashlight, a follow spot in a theater or a headlight. At the light's beam angle, intensity has fallen to 50 per cent. At the field angle, the intensity fades to a value near zero. NOTE The beam angle is similar to the hotspot angle for standard lights, but all of a hotspot is at 100 per cent intensity. The field angle is similar to the falloff angle for standard lights, but at the falloff angle, intensity fades to zero; photometric lights use a smoother curve, so some light might be cast outside the field angle. Photometric Lights | 5027 Spotlight distribution Viewport representation of a Target light with spotlight distribution Spotlight settings appear on the Distribution (Spotlight) rollout on page 5046. Photometric Web Distribution (Photometric Lights) Create panel > Lights > Photometric Lights > Click Target Light or Free Light. > General Parameters rollout > Light Distribution (Type) group > Choose Photometric Web from the drop-down list. 5028 | Chapter 18 Lights and Cameras A Photometric Web distribution uses a photometric web definition on page 5030 to distribute the light. A photometric web is a 3D representation of the light intensity distribution of a light source. Web definitions are stored in files. Many lighting manufacturers provide web files that model their products; these are often available on the Internet. A web file can be in the IES on page 5034, LTLI on page 8029, or CIBSE on page 7935 format. Controls for assigning the web file are on the Distribution (Photometric File) rollout on page 5044. Example of web distribution Viewport representations of lights with various web distributions Photometric web file settings appear on the Distribution (Photometric File) rollout on page 5044. Photometric Lights | 5029 Procedure To create a light from a manufacturer's IES file: 1 Create a Target or Free photometric light. 2 In the General Parameters rollout > Light Distribution (Type) group, choose Photometric Web File from the Distribution list. A Distribution (Photometric File) rollout opens on the command panel. 3 In the Distribution (Photometric File) rollout, click the button labelled Choose Photometric File. A file selection dialog appears. Choose the IES file that you want to use. Photometric Webs A photometric web is a 3D representation of the light intensity distribution of a light source. This directional light distribution information is stored in a photometric data file in the IES format using the IES LM-63-1991 standard file format on page 5034, or in the LTLI or CIBSE formats for photometric data. You can load photometric data files provided by various manufacturers as web parameters. In viewports, the light object changes to the shape of the photometric web you choose. To describe the directional distribution of the light emitted by a source, 3ds Max approximates the source by a point light placed at its photometric center. With this approximation, the distribution is characterized as a function of the outgoing direction only. The luminous intensity of the source for a predetermined set of horizontal and vertical angles is provided, and 3ds Max computes the luminous intensity along an arbitrary direction by interpolation. Web Diagrams Photometric data is often depicted using a diagram. Diagrams that show rotation about an axis are known as goniometric. 5030 | Chapter 18 Lights and Cameras Goniometric diagram of a web distribution This type of diagram visually represents how the luminous intensity of a source varies with the vertical angle. However, the horizontal angle is fixed and, unless the distribution is axially symmetric, more than one goniometric diagram may be needed to describe the complete distribution. In the 3ds Max user interface, web files are displayed as thumbnail diagrams. Photometric Lights | 5031 Thumbnails of photometric web files The bright red outline shows the beam. For some webs, a darker red outline shows the (less bright) field. Photometric Web The photometric web is a three-dimensional representation of the light distribution. It extends the goniometric diagram to three dimensions, so that the dependencies of the luminous intensity on both the vertical and horizontal angles can be examined simultaneously. The center of the photometric web represents the center of the light object. The luminous intensity in any given direction is proportional to the distance between this web and the photometric center, measured along a line leaving the center in the specified direction. 5032 | Chapter 18 Lights and Cameras Example 1: Uniform Spherical Distribution Example of uniform spherical distribution A sphere centered around the origin is a representation of uniform spherical distribution, also known as isotropic distribution. All the points in the diagram are equidistant from the center and therefore light is emitted equally in all directions. Photometric Lights | 5033 Example 2: Ellipsoidal Distribution Example of ellipsoidal distribution In this example, the points in the negative Z direction are the same distance from the origin as the corresponding points in the positive Z direction, so the same amount of light shines upward and downward. No point has a very large X or Y component, either positive or negative, so less light is cast laterally from the light source. IES Standard File Format You can create a photometric data file in the IES format using the IES LM-63-1991 standard file format for photometric data. (IES stands for Illuminating Engineering Society.) However, only the information relevant to 3ds Max is described here. For a complete description of the IES standard file format, see IES Standard File Format for Electronic Transfer of Photometric 5034 | Chapter 18 Lights and Cameras Data and Related Information, prepared by the IES Computer Committee (http://www.iesna.org). The luminous intensity distribution (LID) of a luminaire is measured at the nodes of a photometric web for a fixed set of horizontal and vertical angles. The poles of the web lie along the vertical axis, with the nadir corresponding to a vertical angle of zero degrees. The horizontal axis corresponds to a horizontal angle of zero degrees and is oriented parallel to the length of the luminaire. This type of photometric web is generated by a Type C goniometer and is the most popular in North America; other types of goniometry are supported by the IES standard file format but are not discussed here. The photometric data is stored in an ASCII file. Each line in the file must be less than 132 characters long and must be terminated by a carriage-return/line-feed character sequence. Longer lines can be continued by inserting a carriage-return/line-feed character sequence. Each field in the file must begin on a new line and must appear exactly in the following sequence: 1 IESNA91 2 [TEST] the test report number of your data 3 [MANUFAC] the manufacturer of the luminaire 4 TILT=NONE 5 1 6 The initial rated lumens for the lamp used in the test or -1 if absolute photometry is used and the intensity values do not depend on different lamp ratings. 7 A multiplying factor for all the candela values in the file. This makes it possible to easily scale all the candela values in the file when the measuring device operates in unusual units—for example, when you obtain the photometric values from a catalog using a ruler on a goniometric diagram. Normally the multiplying factor is 1. 8 The number of vertical angles in the photometric web. 9 The number of horizontal angles in the photometric web. 10 1 11 The type of unit used to measure the dimensions of the luminous opening. Use 1 for feet or 2 for meters. Photometric Lights | 5035 12 The width, length, and height of the luminous opening. Currently, Lightscape ignores these dimensions because you can associate a given luminous intensity distribution with any of the luminaire geometric entities supported by Lightscape. It is normally given as 0 0 0. 13 1.0 1.0 0.0 14 The set of vertical angles, listed in increasing order. If the distribution lies completely in the bottom hemisphere, the first and last angles must be 0° and 90°, respectively. If the distribution lies completely in the top hemisphere, the first and last angles must be 90° and 180°, respectively. Otherwise, they must be 0° and 180°, respectively. 15 The set of horizontal angles, listed in increasing order. The first angle must be 0°. The last angle determines the degree of lateral symmetry displayed by the intensity distribution. If it is 0°, the distribution is axially symmetric. If it is 90°, the distribution is symmetric in each quadrant. If it is 180°, the distribution is symmetric about a vertical plane. If it is greater than 180° and less than or equal to 360°, the distribution exhibits no lateral symmetries. All other values are invalid. 16 The set of candela values. First all the candela values corresponding to the first horizontal angle are listed, starting with the value corresponding to the smallest vertical angle and moving up the associated vertical plane. Then the candela values corresponding to the vertical plane through the second horizontal angle are listed, and so on until the last horizontal angle. Each vertical slice of values must start on a new line. Long lines may be broken between values as needed by following the instructions given earlier. Here is an example of a photometric data file on page 5036. Example of Photometric Data File The following is an example of a photometric data file: See also: ■ IES Standard File Format on page 5034 5036 | Chapter 18 Lights and Cameras Intensity/Color/Attenuation Rollout (Photometric Lights) Create panel > Lights > Photometric Lights > Create a light. > Modify panel > Intensity/Color/Attenuation rollout Create panel > Lights > Photometric Lights > Create a light. > Modify panel > Intensity/Color/Attenuation rollout The Intensity/Color/Attenuation rollout lets you set the color and intensity of the light. You can also, optionally, set a limit for its attenuation. Interface Photometric Lights | 5037 Color group Light Pick a common lamp specification to approximate the spectral character of your light. The color swatch next to the Kelvin parameter is updated to reflect the light you select. These are the options when you specify color using the Light drop-down list: ■ Cool White ■ Custom ■ D65White (the default) ■ Daylight Fluorescent ■ Fluorescent ■ Halogen ■ High Pressure Sodium ■ Incandescent ■ Low Pressure Sodium ■ Mercury ■ Metal Halide ■ Phosphor Mercury ■ Quarts ■ White Fluorescent ■ Xenon NOTE The default choice, D65White, approximates a midday sun in western or northern Europe. “D65” is a white value defined by the International Commission on Illumination (CIE). Kelvin Set the color of the light by adjusting the color temperature spinners. The color temperature is displayed in degrees Kelvin. The corresponding color is visible in the color swatch next to the temperature spinners. Filter Color Use a color filter to simulate the effect of a color filter placed over the light source. For example, a red filter over a white light source casts red light. Set the filter color by clicking the color swatch to display the Color Selector on page 391. Default=white (RGB=255,255,255; HSV=0,0,255). 5038 | Chapter 18 Lights and Cameras Intensity group These controls specify the strength or brightness of photometric lights in physically based quantities. You set the intensity of a light source using one of the following units: ■ lm (lumen) Measures the overall output power of the light (luminous flux on page 8029). A 100-watt general purpose light bulb has a luminous flux of about 1750 lm. ■ cd (candela) Measures the maximum luminous intensity on page 8029 of the light, usually along the direction of aim. a 100-watt general purpose light bulb has a luminous intensity of about 139 cd. ■ lx at (lux) Measures illuminance on page 8009 caused by the light shining on a surface at a certain distance and facing in the direction of the source. The lux is the International Scene unit, which is equivalent to 1 lumen per square meter. The AS unit for illuminance is the footcandle (fc) which is equivalent to 1 lumen per square foot. To convert from footcandles to lux, multiply by 10.76. For example, to specify an illuminance of 35 fc, set illuminance to 376.6 lx. To specify the illuminance of a light, set the lx value on the left, and then in the second value field, enter the distance at which that illuminance is measured. NOTE You can obtain these values directly from lighting manufacturers. A table of some common lamp types is provided in Photometric Lights: Common Lamp Values on page 5014. Dimming group Resulting Intensity Displays the intensity caused by the dimming, using the same units as the Intensity group. Dimming percentage When the toggle is on, the value specifies a “multiplier” that dims the intensity of the light. At 100 percent, the light has its full intensity. At lower percentages, the light is dimmed. Incandescent lamp color shift when dimming When on, the light simulates an incandescent light by turning more yellow in color as it is dimmed. Photometric Lights | 5039 Far Attenuation group You can set the attenuation range for a photometric light. Strictly speaking, this is not how real-world lights behave, but setting an attenuation range can help improve rendering time dramatically. TIP If your scene has a large number of lights, use Far Attenuation to limit the portion of the scene each light illuminates. For example, if an office area has rows of overhead lights, you could set Far Attenuation ranges to keep the lights’ illumination from being calculated when you render the reception area instead of the main office. As another example, a staircase might have recessed lights on each stair, as many theaters do. Setting a small Far Attenuation value for these lights can prevent their (negligible) illumination from being calculated when you render the theater as a whole. Use Enables far attenuation for the light. Show Displays the far attenuation range settings in viewports. For spotlight distribution, attenuation ranges appear as lens-shaped sections of the cone. For other distributions, the ranges appear as spheres. By default, Far Start is light brown and Far End is dark brown. Start Sets the distance at which the light begins to fade out. End Sets the distance at which the light has faded to zero. Shape/Area Shadows Rollout Create panel > Lights > Photometric Lights > Create a light. > Modify panel > Shape/Area Shadows rollout Create panel > Lights > Photometric Lights > Create a light. > Modify panel > Shape/Area Shadows rollout The Shape/Area Shadows rollout lets you choose the light shape used to generate shadows. 5040 | Chapter 18 Lights and Cameras Interface Emit Light From (Shape) group Drop-down list Use the list to choose the shadow-generating shape. When you choose a shape other than Point, dimension controls appear in the Emit Light group, and a Shadow Samples control appears in the Rendering group. ■ Point Calculates shadows as if the light were emitted from a point. The Point shape has no other controls. ■ Line Calculates shadows as if the light were emitted from a line. The Linear shape has a Length control. ■ Rectangle Calculates shadows as if the light were emitted from a rectangular area. The Area shape has Length and Width controls. ■ Disc Calculates shadows as if the light were emitted from a disc. The Disc shape has a Radius control. ■ Sphere Calculates shadows as if the light were emitted from a sphere. The Sphere shape has a Radius control. ■ Cylinder cylinder. Calculates shadows as if the line were emitted from a Photometric Lights | 5041 The Cylinder shape has Length and Radius controls. Rendering group Shape visible to renderer When on, the shape of the light is visible in renderings as a self-illuminated (glowing) shape, provided the light object is within the field of view. When off, the light’s shape is not rendered, only the light it casts. Default=off. See Self-Illuminating Photometric Lights on page 5042 for more information about this option. Shadow Samples Sets the overall quality of shadows. If the rendered image appears grainy, increase this value. If rendering is too time consuming, decrease it. Default=32. This setting doesn’t appear in the interface when Point is chosen as the shadow shape. Self-Illuminating Photometric Lights You can make a photometric light self illuminating by turning on the Shape Visible To Renderer option in the Shape/Area Shadows rollout on page 5040. When you turn on Shape Visible To Renderer, by default 3ds Max turns off Specular in the Advanced Effects rollout on page 5108. This prevents unwanted effects if the area of the photometric light is small. Small lights have a high luminance, and also are hard for specular rays to find: the result can be overly bright spots in your rendering. ■ If the self-illuminating photometric light has a small area, leave Specular turned off. ■ If the self-illuminating light has a large area (for example, a skylight or a fluorescent tube), turn Specular back on for the most realistic effect. Combining Self-Illuminating Photometric Lights and Self-Illuminating Materials To make a light fixture visible to the renderer, we recommend modeling the light fixture with actual geometry that has a self-illuminating material applied to it. 5042 | Chapter 18 Lights and Cameras The square white surface is geometry representing the light. A photometric light is placed at the same location. This doesn’t pose a problem unless you create a radiosity solution on page 6168 that uses Final Gather. Final Gather treats the self-illuminated material as an additional diffuse light source, and the resulting rendering is too bright. The intended effect of the light alone. Photometric Lights | 5043 The light plus Final Gather creates illumination that is too bright. If this problem arises, do one or both of the following: ■ Turn off Specular for the photometric light. ■ Turn off Object Properties > Advanced Lighting > Geometric Object Radiosity Properties > Radiosity-only Properties > Diffuse (reflective & translucent) for objects with surfaces affected by this problem. Distribution (Photometric File) Rollout Create panel > Lights > Photometric Lights > Create a photometric light. > General Parameters rollout > Choose Photometric Web File as the distribution type. > Distribution (Photometric File) rollout Create menu > Lights > Photometric Lights > Create a photometric light. > General Parameters rollout > Choose Photometric Web File as the distribution type. > Distribution (Photometric File) rollout The Distribution (Photometric File) rollout is displayed on the Modify panel when you create or select a photometric light with a photometric web distribution on page 5028. Use these parameters to select a photometric web file and to adjust the orientation of the web. 5044 | Chapter 18 Lights and Cameras Interface Web diagram After you choose a photometric file, this thumbnail shows a schematic diagram of the light’s distribution pattern. Thumbnails of photometric web files The bright red outline shows the beam. For some webs, a darker red outline shows the (less bright) field. Choose Photometric File Click to select a file to use as a photometric web. The file can be in the IES, LTLI, or CIBSE format. Once you have chosen a file, this button displays the file name (without the .ies, .ltli, or .cibse name extension). While you browse for a photometric web file, the file dialog also shows the thumbnail for the highlighted file. Photometric Lights | 5045 X Rotation Rotates the photometric web about the X axis. The center of rotation is the photometric center of the web. Range=–180 degrees to 180 degrees. Y Rotation Rotates the photometric web about the Y axis. The center of rotation is the photometric center of the web. Range=–180 degrees to 180 degrees. Z Rotation Rotates the photometric web about the Z axis. The center of rotation is the photometric center of the web. Range=–180 degrees to 180 degrees. Distribution (Spotlight) Rollout Create panel > Lights > Photometric Lights > Create a photometric light. > General Parameters rollout > Choose Spotlight as the distribution type. > Distribution (Spotlight) rollout Create menu > Lights > Photometric Lights > Create a photometric light. > General Parameters rollout > Choose Spotlight as the distribution type. > Distribution (Spotlight) rollout These parameters control hotspots and falloff on page 8007 for spotlights. Procedures To see the spotlight cone in viewports: The cone is always visible while the light is selected. This setting keeps the cone visible when the light is unselected. 1 Select the spotlight. 2 In the Distribution (Spotlight) rollout, turn on Cone Visible In Viewport When Unselected. 3 Select another object, deselecting the light. A wireframe outline of the light cone appears. The beam angle region is outlined in light blue, and the field angle region is outlined in dark gray. 5046 | Chapter 18 Lights and Cameras Spotlight cone displayed in a viewport To adjust the beam angle and field angle, do one of the following: ■ Use the Hotspot/Beam and Falloff/Field spinners to increase or decrease the size of the beam angle and field angle regions. For spotlights, these angles are expressed in degrees. ■ Use manipulators to adjust beam angle and field angle by dragging in a viewport, as described in the procedure that follows. By default, the field angle is always constrained to be at least two degrees or two units greater than the beam angle. The size of this constraint is a preference that you can change in the Rendering panel on page 7768 of the Preferences dialog. The falloff value can range from 0 to 10,000 units. When the beam angle and field angle values are close in value, the light casts a hard-edged beam. To use manipulators to control beam angle and field angle: 1 Select the spotlight. Photometric Lights | 5047 TIP When you select multiple spotlights, all their manipulators are accessible. 2 On the default main toolbar, click to turn on Select And Manipulate. Now when you move the mouse over the beam angle or field angle circle, the circle turns red to show you can adjust it by dragging. Also, a tooltip displays the spotlight name, the parameter, and its value. 3 Drag the beam angle or field angle circle to adjust the value. The beam angle and field angle constrain each other, as their spinner controls do. Spotlight manipulators are described at the end of this topic. Interface Cone visible in viewport when unselected Turns display of the cone on or off. NOTE The cone is always visible when a light is selected, so turning off this check box has no apparent effect until you deselect the light. Hotspot/Beam Adjusts the angle of the cone of a light. The Beam value is measured in degrees. For photometric lights, the Beam angle is the angle at which the light's intensity has fallen to 50 per cent of its full intensity. Default=30.0. Falloff/Field Adjusts the angle of a light's Field. The Field value is measured in degrees. For photometric lights, the Field angle is the angle at which the light's intensity has fallen close to zero. Default=60.0. 5048 | Chapter 18 Lights and Cameras NOTE The beam angle is similar to the hotspot angle for standard lights, but all of a hotspot is at 100 per cent intensity. The field angle is similar to the falloff angle for standard lights, but at the falloff angle, intensity fades to zero; photometric lights use a smoother curve, so some light might be cast outside the field angle. You can manipulate the beam angle and field angle by dragging manipulators in viewports, as described in the previous procedures, and the later section "Manipulators for Spotlights." You can also adjust beam and field angles in a Light viewport (looking at the scene from the point of view of the spotlight). Manipulators for Spotlights Manipulators are visible and usable while the Select And Manipulate button on page 2613 is turned on. This button is on the default main toolbar on page 7499. When you move the mouse over a manipulator, the manipulator turns red to show that dragging or clicking it will have an effect. Also, a tooltip appears, showing the name of the object, the parameter, and its value. TIP When you select multiple spotlights, all their manipulators are accessible. For more information on using the spotlight manipulators, see the Procedures section at the top of this topic. Beam manipulator: In a viewport, drag the beam circle to adjust the beam value. Field manipulator: In a viewport, drag the field circle to adjust the field value. The beam and field angles constrain each other, as their spinner controls do. Standard Lights Standard lights are computer-based objects that simulate lights such as household or office lamps, the light instruments used in stage and film work, and the sun itself. Different kinds of light objects cast light in different ways, simulating different kinds of real-world light sources. Unlike photometric lights on page 5005, standard lights do not have physically-based intensity values. Standard Lights | 5049 There are eight types of standard light objects: Target Spotlight on page 5051 Free Spotlight on page 5054 Target Directional Light on page 5057 Free Directional Light on page 5060 Omni Light on page 5063 Skylight on page 5065 mr Area Omni Light on page 5070 mr Area Spotlight on page 5073 Most of the parameters for standard lights are common to all five types. These are described in the following topics: General Parameters Rollout (Standard Lights) on page 5076 Intensity/Color/Attenuation Rollout (Standard Lights) on page 5083 Advanced Effects Rollout on page 5108 Shadow Parameters on page 5099 mental ray Indirect Illumination Rollout (for Lights) on page 5112 Spotlights and Directional lights have rollouts specific to them: Spotlight Parameters on page 5090 Directional Parameters on page 5088 For parameters specific to a particular kind of light, see that light's description. 5050 | Chapter 18 Lights and Cameras Shadow Parameters Different rollouts can appear, depending on which type of shadows you have chosen for a light: Advanced Ray-Traced Parameters Rollout on page 5118 Area Shadows Rollout on page 5122 Optimizations Rollout on page 5130 mental ray Shadow Map Rollout on page 5128 Ray-Traced Shadow Parameters Rollout on page 5133 Shadow Map Parameters Rollout on page 5135 Target Spotlight Create panel > Lights > Standard > Target Spot button Create menu > Standard Lights > Target Spotlight Standard Lights | 5051 Top: Top view of a target spotlight Bottom: Perspective view of the same light A spotlight casts a focused beam of light like a flashlight, a follow spot in a theater, or a headlight. A target spotlight uses a target object to aim the camera. NOTE When you add a target spotlight, the software automatically assigns a Look At controller on page 3199 to it, with the light's target object assigned as the Look At target. You can use the controller settings on the Motion panel to assign any other object in the scene as the Look At target. See also: ■ Lights on page 4970 ■ Name and Color Rollout (Lights) on page 4972 ■ General Parameters Rollout (Standard Lights) on page 5076 ■ Intensity/Color/Attenuation Rollout (Standard Lights) on page 5083 ■ Advanced Effects Rollout on page 5108 ■ Shadow Parameters on page 5099 ■ Spotlight Parameters on page 5090 5052 | Chapter 18 Lights and Cameras Procedures To create a target spotlight: 1 On the Create panel, click Lights. Standard is the default choice of light type. 2 In the Object Type rollout, click Target Spot. 3 Drag in a viewport. The initial point of the drag is the location of the spotlight, and the point where you release the mouse is the location of the target. The light is now part of the scene. 4 Set the creation parameters. To adjust a target spotlight: 1 Select the light. 2 Use Move on the main toolbar to adjust the light. As an alternative, right-click the light and choose Move. Because the spotlight is always aimed at its target, you can't rotate it about its local X or Y axis. However, you can select and move the target object as well as the light itself. When you move either the light or the target, the light's orientation changes so it always points at the target. NOTE The target’s distance from the light does not affect the attenuation or brightness of the light. To select the target: The target, displayed as a small square, is often in the same area as objects that you want to illuminate. It can be difficult to select it by clicking. 1 Select the spotlight itself. 2 Right-click the light and choose Select Target from the upper-left (Tools 1) quadrant of the quad menu. Clicking the line that connects the light and its target selects both objects. However, region selection doesn't recognize the link line. Standard Lights | 5053 Another way to adjust a spotlight is to use a Light viewport on page 5090. To change a viewport to a Light view: 1 Right-click a viewport label. The viewport right-click menu is displayed. 2 Choose Views. The name of each spotlight or directional light is displayed in the Views list. 3 Choose the name of the light you want. The viewport now shows the light's point of view. You can use the Light viewport on page 7614 to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. Interface When you rename a target spotlight, the target is automatically renamed to match. For example, renaming Light01 to Klieg causes Light01.Target to become Klieg.Target. The target's name must have the extension .Target. Renaming the target object does not rename the light object. Free Spotlight Create panel > Lights > Standard > Free Spot button Create menu > Standard Lights > Free Spotlight 5054 | Chapter 18 Lights and Cameras Top: Perspective view of a free spotlight Bottom: Top view of the same light A spotlight casts a focused beam of light like a flashlight, a follow spot in a theater, or a headlight. Unlike a targeted spotlight, a Free Spot has no target object. You can move and rotate the free spot to aim it in any direction. See also: ■ Lights on page 4970 ■ Name and Color Rollout (Lights) on page 4972 ■ General Parameters Rollout (Standard Lights) on page 5076 ■ Intensity/Color/Attenuation Rollout (Standard Lights) on page 5083 Standard Lights | 5055 ■ Advanced Effects Rollout on page 5108 ■ Shadow Parameters on page 5099 ■ Spotlight Parameters on page 5090 Procedures To create a free spotlight: 1 On the Create panel, click Lights. Standard is the default choice of light type. 2 In the Object Type rollout, click Free Spot. 3 Click the viewport location where you want the light to be. The light is now part of the scene. It points away from you in the viewport you clicked. You can adjust the light's direction with Move and Rotate or by using a Light viewport. 4 Set the creation parameters. To change a viewport to a Light view: 1 Right-click a viewport label. The viewport right-click menu is displayed. 2 Choose Views. The name of each spotlight or directional light is displayed in the Views list. 3 Choose the name of the light you want. The viewport now shows the light's point of view. You can use the Light Viewport Controls on page 7614 to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. Interface You aim a free spotlight by adjusting its orientation in a scene using Move and Rotate. 5056 | Chapter 18 Lights and Cameras The free spotlight is useful when you want a spotlight to follow a path and either don't want to bother with linking a spotlight and target to a dummy object on page 7957, or you need banking along the path. General Parameters rollout When you create a Free Spot light, the Targeted parameter is adjustable on the General Parameters rollout on page 5076. This is a fixed value for target lights. Targeted When on, 3ds Max sets a point to use as an invisible target about which the Free Spot can orbit. The spinner adjusts the distance to the target. The target distance is animatable. Target Directional Light Create panel > Lights > Standard > Target Direct button Create menu > Standard Lights > Target Directional Light Standard Lights | 5057 Top: Top view of a target directional light Bottom: Perspective view of the same light Directional lights cast parallel light rays in a single direction, as the sun does (for all practical purposes) at the surface of the earth. Directional lights are primarily used to simulate sunlight. You can adjust the color of the light and position and rotate the light in 3D space. A target directional light uses a target object to aim the light. Because directional rays are parallel, directional lights have a beam in the shape of a circular or rectangular prism instead of a "cone." NOTE When you add a target directional light, the software automatically assigns a Look At controller on page 3199 to it, with the light's target object assigned as the Look At target. You can use the controller settings on the Motion panel to assign any other object in the scene as the Look At target. NOTE Direct lights are supported in a radiosity solution on page 6168 only if they are pointed downwards, outside the boundary box of the scene geometry. NOTE The mental ray renderer assumes that all directional lights come from infinity, so objects that are behind the direct light object in the 3ds Max scene will also be illuminated. In addition, with the mental ray renderer, directional lights cannot generate area shadows, and do not work with the Beam shader (in the lume library). See also: ■ Lights on page 4970 5058 | Chapter 18 Lights and Cameras ■ Name and Color Rollout (Lights) on page 4972 ■ General Parameters Rollout (Standard Lights) on page 5076 ■ Intensity/Color/Attenuation Rollout (Standard Lights) on page 5083 ■ Advanced Effects Rollout on page 5108 ■ Shadow Parameters on page 5099 ■ Directional Parameters on page 5088 Procedures To create a target direct light: 1 On the Create panel, click Lights. Standard is the default choice of light type. 2 In the Object Type rollout, click Target Direct. 3 Drag in a viewport. The initial point of the drag is the location of the light, and the point where you release the mouse is the location of the target. The light is now part of the scene. 4 Set the creation parameters. To adjust the light's direction, move the target object. To change a viewport to a Light view: 1 Right-click the viewport label. The viewport right-click menu is displayed. 2 Choose Views. The name of each spotlight or directional light is displayed in the Views list. 3 Choose the name of the light you want. The viewport now shows the light's point of view. You can use the Light Viewport Controls on page 7614 to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. Standard Lights | 5059 Interface Clicking the line that connects the light and its target selects both objects. However, region selection doesn't recognize the link line. When you rename a target directional light, the target is automatically renamed to match. For example, renaming Light01 to Sol causes Light01.Target to become Sol.Target. The target's name must have the extension .Target. Renaming the target object does not rename the light object. Free Directional Light Create panel > Lights > Standard > Free Direct button Create menu > Standard Lights > Directional Light 5060 | Chapter 18 Lights and Cameras Top: Perspective view of a free directional light Bottom: Top view of the same light Directional lights cast parallel light rays in a single direction, as the sun does (for all practical purposes) at the surface of the earth. Directional lights are primarily used to simulate sunlight. You can adjust the color of the light and position and rotate the light in 3D space. Unlike a targeted directional light, a Free Direct light has no target object. You can move and rotate the light object to aim it in any direction. A Free Direct light is used when you select a Standard sun in your Daylight system on page 5139. Because directional rays are parallel, directional lights have a beam in the shape of a circular or rectangular prism instead of a "cone." NOTE Direct lights are supported in a radiosity solution on page 6168 only if they are pointed downwards, outside the boundary box of the scene geometry. NOTE The mental ray renderer assumes that all directional lights come from infinity, so objects that are behind the direct light object in the 3ds Max scene will also be illuminated. In addition, with the mental ray renderer, directional lights cannot generate area shadows, and do not work with the Beam shader (in the lume library). See also: ■ Lights on page 4970 ■ Name and Color Rollout (Lights) on page 4972 Standard Lights | 5061 ■ General Parameters Rollout (Standard Lights) on page 5076 ■ Intensity/Color/Attenuation Rollout (Standard Lights) on page 5083 ■ Advanced Effects Rollout on page 5108 ■ Shadow Parameters on page 5099 ■ Directional Parameters on page 5088 Procedures To create a free direct light: 1 On the Create panel, click Lights. Standard is the default choice of light type. 2 In the Object Type rollout, click Free Direct. 3 Click a viewport. The light is now part of the scene. It points away from you in the viewport you clicked. 4 Set the creation parameters. To adjust the light's direction, you can rotate it as you would any object. To change a viewport to a Light view: 1 Right-click the viewport label. The viewport right-click menu is displayed. 2 Choose Views. The name of each spotlight or directional light appears in the Views list. 3 Choose the name of the light you want. The viewport now shows the light's point of view. You can use the Light Viewport Controls on page 7614 to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. 5062 | Chapter 18 Lights and Cameras Interface Directional Parameters rollout When you create a Free Direct light, the Targeted parameter is adjustable on the General Parameters rollout on page 5076. This is a fixed value for target lights. Targeted When on, 3ds Max sets a point to use as an invisible target about which the Free Direct light can orbit. The spinner adjusts the distance to the target. This parameter also affects the length of the light's cone display. Omni Light Create panel > Lights > Standard > Omni button Create menu > Standard Lights > Omni Light Standard Lights | 5063 Top: Top view of an omni light Bottom: Perspective view of the same light An Omni light casts rays in all directions from a single source. Omni lights are useful for adding "fill lighting" to your scene, or simulating point source lights. Omni lights can cast shadows and projections. A single shadow-casting omni light is the equivalent of six shadow-casting spotlights, pointing outward from the center. When you set a map projected by an Omni light to be projected using the Spherical, Cylindrical, or Shrink Wrap Environment coordinates, the map is projected in the same way as it would be mapped to the environment. When you use the Screen Environment coordinates or Explicit Map Channel Texture coordinates, six copies of the map are projected radially. TIP Omni lights can generate up to six quadtrees on page 8100, so they generate ray-traced shadows more slowly than spotlights. Avoid using ray-traced shadows with omni lights unless your scene requires this. See also: ■ Lights on page 4970 ■ Name and Color Rollout (Lights) on page 4972 ■ General Parameters Rollout (Standard Lights) on page 5076 ■ Intensity/Color/Attenuation Rollout (Standard Lights) on page 5083 ■ Advanced Effects Rollout on page 5108 5064 | Chapter 18 Lights and Cameras Shadow Parameters on page 5099 ■ Procedures To create an omni light: 1 On the Create panel, click Lights. Standard is the default choice of light type. 2 In the Object Type rollout, click Omni. 3 Click the viewport location where you want the light to be. If you drag the mouse, you can move the light around before releasing the mouse to fix its position. The light is now part of the scene. 4 Set the creation parameters. To adjust the light's effect, you can move it as you would any object. Skylight Create panel > Lights > Standard > Skylight button Create menu > Lights > Skylight The Skylight light models daylight. It is meant for use with the Light Tracer on page 6154. You can set the color of the sky or assign it a map. The sky is modeled as a dome above the scene. Model rendered with a single skylight, and light tracing Standard Lights | 5065 When you render with the default scanline renderer on page 6141, Skylight works best with advanced lighting: either the Light Tracer, or radiosity on page 6168. WARNING When you render with the mental ray renderer on page 6230, objects illuminated by a Skylight appear dark unless you turn on Final Gathering on page 7978. The toggle for Final Gathering is on the Final Gather rollout on page 6295 of the Render Setup dialog. A skylight is modeled as a dome above the scene. TIP There are several ways to model daylight in 3ds Max, but if you use the Light Tracer, a Skylight often gives the best results. TIP If you encounter visual anomalies when rendering a bump-mapped material with a Skylight, convert the material to an Advanced Lighting Override material on page 5734 and then reduce the Indirect Light Bump Scale value. Using a Map with the Skylight If you use a map with a Skylight, the following guidelines can improve its effect: ■ Make sure that the mapping coordinates are spherical or cylindrical. ■ For light tracing, make sure you use sufficient samples. A good rule of thumb is to use at least 1,000 samples: set Initial Sample Spacing to 8x8 or 4x4, and increase the value of Filter Size to 2.0. ■ Use an image-processing application to blur the map before you use it. With a blurred map, you can use fewer samples to obtain good results. When used with Skylight, a blurred map will still render well. Be aware that using sufficient samples with a mapped Skylight will take longer to render than if the light were not mapped. 5066 | Chapter 18 Lights and Cameras Skylight and Radiosity in Architectural Design In order for radiosity to be processed correctly when a Skylight is added to the scene, you need to make sure that walls have closed corners and floors and ceilings have thickness under and over the walls. In essence, your 3D model should be built just like the real-world structure is built. If you build your model with walls that meet along a single edge or floors and ceilings are simple planes, when you process radiosity after adding a Skylight, you can end up with “light leaks” along those edges. Some of the ways to repair a model so light leaks do not occur are as follows: ■ Make sure floors and ceilings have thickness. You can fix this by extruding those surfaces at a sub-object level or by applying modifiers like Shell on page 1660 or Extrude on page 1448. ■ Use the Wall command on page 516 to create walls. The Wall command is programmed to make sure corners are constructed of solid objects instead of leaving a single, thin edge. ■ Ensure that floor and ceiling objects extend beyond walls. Floor objects need to extend under walls and ceilings need to extend over walls. By building your 3D model using these guidelines, light leaks will not occur when you process radiosity after adding a Skylight to the scene. Using Render Elements with a Skylight If you use Render Elements on page 6336 to output the lighting element on page 6356 of a skylight in a scene using either radiosity or the light tracer, you cannot separate the direct, indirect, and shadow channels of the light. All three elements of the skylight lighting are output to the Indirect Light channel. Procedures To create a Skylight: 1 On the Create panel, click Lights. Standard is the default choice of light type. 2 In the Object Type rollout, click Skylight. 3 Click a viewport. Standard Lights | 5067 The light is now part of the scene. NOTE The position of the Skylight, and its distance from objects, has no effect. The Skylight object is simply a helper. Skylight always comes from “overhead.” 4 Set the creation parameters. Interface On Turns the light on and off. When On is on, shading and rendering use the light to illuminate the scene. When off, the light is not used in shading or rendering. Default=on. Multiplier Amplifies the power of the light by a positive or negative amount. For example, if you set the multiplier on page 8055 to 2, the light will be twice as bright. Default=1.0. Using this parameter to increase intensity can cause colors to appear "burned out." It can also generate colors not usable in videos. In general, leave Multiplier set to its default of 1.0 except for special effects and special cases. 5068 | Chapter 18 Lights and Cameras Sky Color group Use Scene Environment Colors the light using the environment set up on the Environment panel on page 6689. This setting has no effect unless light tracing is active. Sky Color Click the color swatch to display a Color Selector on page 391 and choose a tint for the Skylight. Map controls These let you use a map to affect Skylight color. The button assigns a map, the toggle sets whether the map is active, and the spinner sets the percentage of the map to use (when the value is less than 100%, map colors are mixed with the Sky Color). TIP For best results, use an HDR File on page 7334 for illumination. The map has no effect unless light tracing is active. Render group NOTE If the renderer is not set to Default Scanline, or if the Light Tracer is active, these controls are disabled. Cast Shadows Causes the skylight to cast shadows. Default=off. NOTE The Cast Shadows toggle has no effect when using radiosity or the light tracer. NOTE Skylight objects will not cast shadows in an ActiveShade rendering on page 6102. Rays per Sample The number of rays used to calculate skylight falling on a given point in the scene. For animation, you should set this to a high value to eliminate flickering. A value of around 30 should eliminate flickering. Standard Lights | 5069 Increasing the number of rays increases the quality of your image. However, it also increases rendering time. Ray Bias The closest distance at which objects can cast shadows on a given point in the scene. Setting this value to 0 can cause the point to cast shadows upon itself, and setting it to a large value can prevent objects close to a point from casting shadows on the point. mr Area Omni Light Create panel > Lights > mr Area Omni button > Area Light Parameters rollout When you render a scene using the mental ray renderer on page 6230, an area omni light emits light from a spherical or cylindrical volume, rather than from a point source. With the default scanline renderer, the area omni light behaves like any other standard omni light. NOTE In 3ds Max, area omni lights are created and supported by a MAXScript script. Only the mental ray renderer uses the parameters on the Area Light Parameters rollout. See Enhancements to Standard Features on page 6241 for more details. TIP Area lights take longer to render than point lights. To create a quick test (or draft) rendering, you can use the Area/Linear Lights as Point Lights toggle in the Common Parameters rollout on page 6121 of the Render Setup dialog to speed up your rendering. 5070 | Chapter 18 Lights and Cameras See also: mr Area Spotlight on page 5073 ■ Procedures To create an area omni light: 1 On the Create panel, click Lights. 2 On the Object Type rollout, click mr Area Omni. 3 Click in a viewport. 4 Set the shape and size of the area light in the Area Light Parameters rollout. While you use the spinners to adjust the size of the area light, a gizmo (yellow by default) appears in viewports to show the adjusted size. This gizmo disappears once you finish adjusting the value. TIP You can use Rotate to adjust the orientation of a cylindrical area omni light. However, no gizmo appears while you rotate the light. To convert a standard 3ds Max light to an area light: 1 Select one or more lights. 2 Go to the Utilities panel. 3 On the Utilities rollout, click MAXScript. The MAXScript rollout is displayed. 4 On the MAXScript rollout, choose “Convert To mr Area Lights” from the Utilities drop-down list. The “Convert To mr Area Lights” rollout is displayed. 5 On the “Convert To mr Area Lights” rollout, click Convert Selected Lights. A MAXScript alert is displayed, that says "Delete Old Lights?" Click Yes to delete the original light and replace it with the area light. Click No to leave the original light in place. If you click No there are now two lights in the scene: the original light, and the area light based on it. Standard Lights | 5071 6 Click Close to dismiss the “Convert To mr Area Lights” and MAXScript rollouts. Interface On Turns the area light on and off. When On is on, the mental ray renderer uses the light to illuminate the scene. When On is off, the mental ray renderer doesn’t use the light. Default=on. Show Icon in Renderer When on, the mental ray renderer renders a dark shape at the light's location. When off, the area light doesn't render. Default=off. Type Changes the shape of the area light. The choices are Sphere, for a spherical volume, and Cylinder, for a cylindrical volume. Default=Sphere. TIP You can use Rotate to adjust the orientation of a cylindrical area omni light. However, no gizmo appears while you rotate the light. Radius Sets the radius of the sphere or cylinder, in 3ds Max units. Default=20.0. Height Available only when Cylinder is the active type of area light. Sets the height of the cylinder, in 3ds Max units. Default=20.0. As you use these spinners to adjust the size of the area light, a gizmo appears in viewports to show the adjusted size. This gizmo disappears once you finish adjusting the value. 5072 | Chapter 18 Lights and Cameras Samples group U and V Adjust the quality of shadows cast by the area light. These values specify how many samples to take within the light’s area. Higher values can improve rendering quality at a cost of rendering time. For a spherical light, U specifies the number of subdivisions along the radius, and V specifies the number of angular subdivisions. For a cylindrical light, U specifies the number of sampled subdivisions along the height, and V specifies the number of angular subdivisions. Default=5 for both U and V. mr Area Spotlight Create panel > Lights > mr Area Spot button > Area Light Parameters rollout When you render a scene using the mental ray renderer on page 6230, an area spotlight emits light from a rectangular or disc-shaped area, rather than from a point source. With the default scanline renderer, the area spotlight behaves like any other standard spotlight. NOTE In 3ds Max, area spotlights are created and supported by a MAXScript script. Only the mental ray renderer uses the parameters in the Area Light Parameters rollout. See Enhancements to Standard Features on page 6241 for more details. TIP Area lights take longer to render than point lights. To create a quick test (or draft) rendering, you can use the Area/Linear Lights as Point Lights toggle on the Common Parameters rollout on page 6121 of the Render Setup dialog to speed up your rendering. See also: mr Area Omni Light on page 5070 ■ Procedures To create an area spotlight: 1 Go to the Create panel and click Lights. 2 On the Object Type rollout, click mr Area Spot. Standard Lights | 5073 3 Drag in a viewport. The initial point of the drag is the location of the light, and the point where you release the mouse is the location of the target. The mental ray renderer will ignore the spotlight cone, but the location of the spotlight target determines the orientation of the plane of the area light, and the direction in which it’s projected. 4 Set the shape and size of the area light in the Area Light Parameters rollout. While you use the spinners to adjust the size of the area light, a gizmo (yellow by default) appears in viewports to show the adjusted size. This gizmo disappears once you finish adjusting the value. To convert a standard 3ds Max light to an area light: 1 Select one or more lights. 2 Go to the Utilities panel. 3 On the Utilities rollout, click MAXScript. The MAXScript rollout is displayed. 4 On the MAXScript rollout, choose Convert To Area Lights from the Utilities drop-down list. The Convert To Area Lights rollout is displayed. 5 On the Convert To Area Lights rollout, click Convert Selected Lights. A MAXScript alert is displayed, that says "Delete Converted Lights?" Click Yes to delete the original light and replace it with the area light. Click No to leave the original light in place. If you click No there are now two lights in the scene: the original light, and the area light based on it. 6 Click Close to dismiss the Convert To Area Lights and MAXScript rollouts. 5074 | Chapter 18 Lights and Cameras Interface On Turns the area light on and off. When On is on, the mental ray renderer uses the light to illuminate the scene. When On is off, the mental ray renderer doesn’t use the light. Default=on. Show Icon in Renderer When on, the mental ray renderer renders a dark shape where the area light is. When off, the area light is invisible. Default=off. Type Changes the shape of the area light. Can be either Rectangle, for a rectangular area, or Disc, for a circular area. Default=Rectangle. Radius Available only when Disc is the active type of area light. Sets the radius of the circular light area, in 3ds Max units. Default=20.0. Height and Width Available only when Rectangle is the active type of area light. Set the height and width of the rectangular light area, in 3ds Max units. Default=20.0 for both Height and Width. While you use these spinners to adjust the size of the area light, a gizmo (yellow by default) appears in viewports to show the adjusted size. This gizmo disappears once you finish adjusting the value. Samples group U and V Adjust the quality of shadows cast by the area light. These values specify how many samples to take within the light’s area. Higher values can improve rendering quality at a cost of rendering time. For a rectangular light, U specifies the number of sampled subdivisions in one local dimension, and V the number of subdivisions in the other local dimension. For a circular (disc) Standard Lights | 5075 light, U specifies the number of subdivisions along the radius, and V specifies the number of angular subdivisions. Default=5 for both U and V. Rollouts for Standard Lights General Parameters Rollout (Standard Lights) Create panel > Lights > Standard Lights > Create a standard light. > General Parameters rollout Create panel > Lights > Standard Lights > Create a standard light. > General Parameters rollout This General Parameters rollout is displayed for standard lights. These controls turn a light on and off, and exclude or include objects in the scene. On the Modify panel, the General Parameters rollout also lets you control the light’s target object and change the light from one type to another. The General Parameters rollout also lets you turn shadow-casting on or off for the light, and choose which type of shadow the light uses. See Shadow Types and Shadow Controls on page 5117 and Shadow Parameters on page 5099. Procedures To turn a light on and off: ■ Turn the On toggle on or off. Default=on. TIP To make a standard light flash on and off, set its Multiplier parameter to 0 in repeated keyframes, and assign a step tangent on page 3129 to this parameter. To have a light cast shadows: ■ In the General Parameters rollout > Shadows group, make sure On is selected. The light will now cast shadows when you render the scene. 5076 | Chapter 18 Lights and Cameras Left: A spotlight's projection cone truncates shadows. Right: An omni light casts complete shadows. NOTE With Overshoot turned on, standard spotlights cast light in all directions but cast shadows only within the falloff cone; standard directional lights cast light throughout the scene, but cast shadows only within the falloff area. To have a light use the global settings for shadows: ■ On the General Parameters rollout, turn on Use Global Settings. When Use Global Settings is on, the other shadow controls are set to the values used by all other shadow-casting lights in the scene that have Use Global Settings set. Changing the affected parameters for one light with Use Global Settings set, changes them for all lights with Use Global Settings set. To set a light's shadow parameters individually: ■ On the General Parameters rollout, turn off Use Global Settings. The settings revert to the individual settings for the light. By default, Shadow Map is the active shadow type. In the Shadow Map Params rollout on page 5135, the default settings are: Map Bias=1; Size=512; Sample Range=4.0; Absolute Map Bias=Off. Standard Lights | 5077 Scene with shadow-mapped shadows Shadows rendered using default parameter settings NOTE When you render a scene, you can turn rendering of shadows on or off. To cast area shadows: ■ On the General Parameters rollout, choose Area Shadows from the drop-down list. Use controls on the Area Shadows rollout on page 5122 to adjust the shadow properties. To cast advanced ray-traced shadows: Advanced ray-traced shadows are similar to ray-traced shadows, however they provide control over antialiasing on page 7904, letting you fine-tune how shadows are generated. ■ On the General Parameters rollout, choose Advanced Ray-traced Shadows from the drop-down list. Use controls on the Advanced Ray-traced Params rollout on page 5118 to adjust the shadow properties. To cast shadow-mapped shadows: 1 On the General Parameters rollout, choose Shadow Maps from the drop-down list. 5078 | Chapter 18 Lights and Cameras 2 Go to the Shadow Map Params rollout on page 5135. ■ Use the Size spinner to set the size of the shadow map. ■ Use the Bias spinner to adjust the shadow offset, if necessary. ■ Use the Sample Range spinner to create a soft-edged shadow. To cast ray-traced shadows: Ray-traced shadows on page 8103 are generated by tracing the path of rays sampled from a light source. Ray-traced shadows are more accurate than shadow-mapped shadows. 1 On the General Parameters rollout, choose Ray-Traced Shadows from the drop-down list. 2 Use controls on the Ray Traced Shadow Params rollout on page 5133 to adjust the shadow offset, if necessary. To keep an object from casting shadows: 1 Select the object. 2 Right-click the object to display the quad menu and choose Properties from the Transform quadrant. The Object Properties dialog on page 305 is displayed. 3 Turn off Cast Shadows, and then click OK. Now when you render the scene, the object casts no shadows. To make an object not receive shadows: 1 Select the object. 2 Right-click the object to display the quad menu and choose Properties from the lower-right (Transform) quadrant. The Object Properties dialog on page 305 is displayed. 3 Turn off Receive Shadows, and then click OK. Now when you render the scene, the object receives no shadows. NOTE You can also prevent objects from casting shadows by excluding them from a light. Standard Lights | 5079 Interface Light Type group (Modify panel) On (Both Create panel and Modify panel) Turns the light on and off. When On is on, shading and rendering use the light to illuminate the scene. When On is off, the light is not used in shading or rendering. Default=on. In viewports, the interactive renderer shows the effect of turning lights on or off. Light Type List Changes the type of the light. If you have selected a standard light type on page 5049, the light can be changed to an omni, spot, or directional light. If you have selected a photometric light type on page 5005, you can change the light to a point, linear, or area light. This parameter is available only in the Modify panel. Targeted When on, the light is targeted. The distance between the light and its target is displayed to the right of the check box. For a free light, you can set this value. For target lights, you can change it by turning off the check box, or by moving the light or the light's target object. Shadows group On Determines whether the current light casts shadows or not. Default=on. Shadow Method drop-down list Determines whether the renderer uses shadow maps on page 8125, ray-traced shadows on page 8103, advanced ray-traced 5080 | Chapter 18 Lights and Cameras shadows on page 8103, or area shadows on page 7913, to generate shadows for this light. The “mental ray Shadow Map” type is provided for use with the mental ray renderer on page 6230. When you choose this shadow type and enable shadow maps (on the Shadows & Displacement rollout on page 6292 of the Render Setup dialog), shadows use the mental ray shadow-map algorithm. If this type is chosen but you render with the default scanline renderer, no shadows appear in the rendering. NOTE When shadow maps are enabled and the shadow map type is Shadow Map, the mental ray renderer attempts to translate the shadow map settings into comparable settings for mental ray shadow maps. (The results might not be what you expected.) In all other cases, the mental ray renderer generates ray-traced shadows. Each shadow type has its particular controls: ■ Advanced ray-traced shadows See Advanced Ray-Traced Parameters Rollout on page 5118 and Optimizations Rollout on page 5130. ■ Area shadows See Area Shadows Rollout on page 5122 and Optimizations Rollout on page 5130. ■ mental ray shadow maps 5128. ■ Ray-traced shadows 5133. ■ Shadow maps See mental ray Shadow Map Rollout on page See Ray-Traced Shadow Parameters Rollout on page See Shadow Map Parameters Rollout on page 5135. TIP Use ray-traced or advanced ray-traced shadows when you want shadows cast by opacity-mapped objects. Shadow-mapped shadows don't recognize the transparent portions of the mapping, and as a result they don't look convincing. Use Global Settings Turn on to use global settings for shadows cast by this light. Turn off to enable individual control of the shadows. If you choose not to use the global settings, you must choose which method the renderer will use to generate shadows for this particular light. When Use Global Settings is on, the shadow parameters switch over to show you what the global settings are. This data is shared by every other light of this class. When Use Global Settings is off, the shadow parameters are specific to that particular light. Standard Lights | 5081 Exclude button Excludes selected objects from the effects of the light. Click this button to display the Exclude/Include dialog on page 5096. Excluded objects still appear lit in shaded viewports. Exclusion takes effect only when you render the scene. Roll Angle Manipulator To change the roll angle of a target light, you can use a manipulator. This can be useful if the light does not cast a round beam, or if it is a projector light (see Advanced Effects Rollout on page 5108). To display the manipulator, select the light, right-click it, and then click Roll Angle Manipulator Toggle on the Tools 2 (lower left) quadrant of the quad menu. Roll angle manipulator on a target light Drag the circular portion of the manipulator to rotate the light by an arbitrary number of degrees. Click one of the red or green “clock hands” of the manipulator to rotate the light in 90-degree increments. NOTE You can also access the roll angle manipulator by selecting the light object and then turning on Select And Manipulate on page 2613 on the main toolbar. 5082 | Chapter 18 Lights and Cameras Intensity/Color/Attenuation Rollout (Standard Lights) Create panel > Lights > Create a Standard light. > Attenuation Parameters rollout Attenuation settings cause distant objects to be dimmer. The Intensity/Color/Attenuation rollout allows you to set the color and intensity of your light. You can also define the attenuation of your light. Attenuation on page 7915 is the effect of light diminishing over distance. In 3ds Max, you can set attenuation values explicitly. The effects can vary from real-world lights, giving you more direct control over how lights fade in or fade out. NOTE With no attenuation, an object can paradoxically appear to grow brighter as it moves away from the light source. This is because the angle of incidence more closely approaches 0 degrees for more of the object's faces. Two sets of values control attenuation for objects. The Far attenuation value sets the distance at which the light drops off to zero. The Near attenuation value sets the distance at which the light "fades in." Both these controls are turned on and off by a toggle called Use. When Use is set for far attenuation, the light at its source uses the value specified by its color and multiplier controls. It remains at this value from the Standard Lights | 5083 source to the distance specified by Start, then its value drops off to zero at the distance specified by End. Adding attenuation to a scene When Use is set for Near attenuation, the light value remains at zero up to the distance specified by Start. From Start to the distance specified by End, its value increases. Beyond End, the light remains at the value specified by the color and multiplier controls, unless far attenuation is also active. You can't set the Near and Far attenuation distances so they overlap. The Decay controls are an additional way to make a light fade out. TIP When lights are attenuated, the light might be too bright on near surfaces or too dim on far surfaces. If you see this in renderings, exposure control can help correct the problem. It adjusts the larger dynamic range of the (simulated) physical scene, into the smaller dynamic range of the display. See Environment Panel on page 6689 for additional information on exposure control. Procedures To choose the color of a light using the color selector: 1 Click the color swatch next to the On check box. A modal Color Selector on page 391 is displayed. 2 Use the Color Selector to choose a new color, and then click OK. Shaded viewports update to show the new light color, which also appears in renderings. To change a light's intensity: ■ Increase the light's Multiplier value. 5084 | Chapter 18 Lights and Cameras To use attenuation: 1 Set the Start and End values. 2 Turn on Use. Attenuation is now in effect for this light when the scene is shaded or rendered. NOTE You can also change the decay type (and values) to reduce the light’s intensity over distance. To see the attenuation range in viewports: ■ Set Show for far or near attenuation. You can preview the effect of attenuation in shaded viewports only if you turn this on as an option in viewport preferences on page 7753. Interface Multiplier Amplifies the power of the light by a positive or negative amount. For example, if you set the multiplier on page 8055 to 2, the light will be twice Standard Lights | 5085 as bright. A negative value subtracts light and thus is useful for selectively placing dark areas in the scene. Default=1.0. Using this parameter to increase intensity can cause colors to appear "burned out." It can also generate colors not usable in videos. In general, leave Multiplier set to its default of 1.0 except for special effects and special cases. High Multiplier values wash out colors. For example, if you set a spotlight to be red but then increase its Multiplier to 10, the light is white in the hotspot and red only in the falloff area, where the Multiplier isn't applied. Negative Multiplier values result in "dark light." That is, the light darkens objects instead of illuminating them. Color Swatch Shows the color of the light. Clicking the color swatch displays the Color Selector on page 391 so you can choose a color for the light. Decay group Decay is an additional way to make a light's intensity reduce over distance. Type Sets the type of decay to use. There are three types to choose from. ■ None (The default.) Applies no decay. The light maintains full strength from its source to infinity, unless you turn on far attenuation. ■ Inverse Applies inverse decay. The formula is luminance=R0 /R, where R0 is the radial source of the light if no attenuation is used, or the Near End value of the light if attenuation is used. R is the radial distance of the illuminated surface from R0. ■ Inverse Square Applies inverse-square decay. The formula for this is (R0 /R)2. This is actually the "real-world" decay of light, but you might find it too dim in the world of computer graphics. This is the decay formula used by photometric lights on page 5005. TIP If Inverse Square decay makes the scene too dim, you can try using the Environment Panel on page 6689 to increase the Global Lighting Level value. The point at which decay begins depends on whether or not you use attenuation: ■ With no attenuation, decay begins at the source of the light. ■ With near attenuation, the decay begins at the Near End position. Once the beginning point is established, the decay follows its formula to infinity, or until the light itself is cut off by the Far End distance. In other 5086 | Chapter 18 Lights and Cameras words, the distance between Near End and Far End does not scale, or otherwise affect, the apparent ramp of decaying light. TIP Because decay continues to calculate dimmer and dimmer values as the distance of the light throw increases, it's a good idea to set at least the Far End of attenuation to eliminate unnecessary calculations. Near Attenuation group Start Sets the distance at which the light begins to fade in. End Sets the distance at which the light reaches its full value. Use Enables near attenuation for the light. Show Displays the near attenuation range settings in viewports. For spotlights, attenuation ranges appear as lens-shaped sections of the cone. For directional lights, the ranges appear as circular sections of the cone. For omni lights and spot or directional lights with Overshoot turned on, the ranges appear as spheres. By default, Near Start is dark blue and Near End is light blue. Far Attenuation group Setting a Far Attenuation range can help improve rendering time dramatically. TIP If your scene has a large number of lights, use Far Attenuation to limit the portion of the scene each light illuminates. For example, if an office area has rows of overhead lights, you could set Far Attenuation ranges to keep the lights’ illumination from being calculated when you render the reception area instead of the main office. As another example, a staircase might have recessed lights on each stair, as many theaters do. Setting a small Far Attenuation value for these lights can prevent their (negligible) illumination from being calculated when you render the theater as a whole. Start Sets the distance at which the light begins to fade out. End Sets the distance at which the light has faded to zero. Use Enables far attenuation for the light. Show Displays the far attenuation range settings in viewports. For spotlights, attenuation ranges appear as lens-shaped sections of the cone. For directional lights, the ranges appear as circular sections of the cone. For omni lights and spot or directional lights with Overshoot turned on, the ranges appear as spheres. By default, Far Start is light brown and Far End is dark brown. Standard Lights | 5087 Directional Parameters Create a standard Target Direct or Free Direct light. > Directional Parameters rollout The Directional Parameters rollout appears when you create or select a target direct on page 5057 or free direct on page 5060 light. These parameters control hotspots on page 8007 and falloff on page 8007. Procedures To see the directional cone in viewports: The cone is always visible while the light is selected. This setting keeps the cone visible when the light is unselected. 1 Select the spotlight. 2 In the Directional Parameters rollout > Light Cone group, turn on Show Cone. 3 Select another object, deselecting the light. A wireframe outline of the light's cone appears. The hotspot region is outlined in light blue, and the falloff region is outlined in dark gray. The cone is always visible while the light is selected. TIP The hotspot and falloff borders are not visible in shaded viewports. Use the cone values to adjust hotspot and falloff in the viewport. Render the scene to see the full effect of the light's border. To adjust the hotspot and falloff: ■ Use the Hotspot and Falloff spinners to increase or decrease the size of the hotspot and falloff regions. For directional lights, Hotspot and Falloff are expressed in units. By default, the falloff value is always constrained to be at least two degrees or two units greater than the hotspot value. The size of this constraint is a preference that you can change in the Rendering panel on page 7768 of the Preferences dialog. The falloff value can range from 0 to 10,000 units. When the hotspot and falloff values are equal, the light casts a hard-edged beam. 5088 | Chapter 18 Lights and Cameras To set the shape of the light beam: 1 Choose either Rectangle or Circle. The shape of the light's cone changes to reflect the shape you chose. 2 If you chose Circle, you are done. If you chose Rectangle, you can now adjust the aspect ratio on page 7914 of the rectangular light using the spinner labeled Aspect. To change a rectangular light's aspect ratio: 1 Choose Rectangle, as described above. 2 Change the Aspect value to the aspect ratio that you want. The Bitmap Fit button is another way to set the aspect ratio. It is mainly used with projections. Interface Light Cone group These parameters control hotspots on page 8007 and falloff on page 8007 for spotlights. Show Cone Turns display of the cone on or off. NOTE The cone is always visible when a light is selected, so clearing this check box has no apparent effect until you deselect the light. Standard Lights | 5089 Overshoot When Overshoot on page 8077 is set, the light casts light in all directions. However, projections and shadows occur only within its falloff cone. Hotspot/Beam Adjusts the size of a light's cone. The Hotspot value is measured in 3ds Max units. Default=43.0. Falloff/Field Adjusts the size of a light's falloff. The Falloff value is measured in 3ds Max units. Default=45.0. You can also adjust hotspot and falloff angles in a Light viewport on page 5090 (looking at the scene from the point of view of the spotlight). Circle/Rectangle Determine the shape of the falloff and hotspot areas. Set Circle when you want a standard, circular light. Set Rectangle when you want a rectangular beam of light, such as light cast through a window or doorway. Aspect Sets the aspect ratio on page 7914 for the rectangular light beam. The Bitmap Fit button lets you make the aspect ratio match a specified bitmap. Default=1.0. Bitmap Fit If the light's projection aspect is rectangular, sets the aspect ratio to match a particular bitmap. This is useful when you are using the light as a projector light on page 8099. Spotlight Parameters Create a standard Target Spotlight or Free Spotlight. > Spotlight Parameters rollout The Spotlight Parameters rollout appears when you create or select a Target Spot on page 5051 or Free Spot on page 5054. Procedures To see the spotlight cone in viewports: The cone is always visible while the light is selected. This setting keeps the cone visible when the light is unselected. 1 Select the spotlight. 2 In the Spotlight Parameters rollout > Light Cone group, turn on Show Cone. 3 Select another object, deselecting the light. 5090 | Chapter 18 Lights and Cameras A wireframe outline of the light's cone appears. The hotspot region is outlined in light blue, and the falloff region is outlined in dark gray. Spotlight cone displayed in a viewport To adjust the hotspot and falloff, do one of the following: ■ Use the Hotspot and Falloff spinners to increase or decrease the size of the hotspot and falloff regions. For spotlights, Hotspot and Falloff are expressed in degrees. ■ Use manipulators to adjust hotspot and falloff by dragging in a viewport, as described in the procedure that follows. By default, falloff value is always constrained to be at least two degrees or two units greater than the hotspot value. The size of this constraint is a preference that you can change in the Rendering panel on page 7768 of the Preferences dialog. The falloff value can range from 0 to 10,000 units. When the hotspot and falloff values are close in value, the light casts a hard-edged beam. Standard Lights | 5091 To use manipulators to control hotspot and falloff: 1 Select the spotlight. TIP When you select multiple spotlights, all their manipulators are accessible. 2 On the default main toolbar, click to turn on Select And Manipulate. Now when you move the mouse over the hotspot or falloff circle, the circle turns red to show you can adjust it by dragging. Also, a tooltip displays the spotlight name, the parameter, and its value. 3 Drag the hotspot or falloff circle to adjust the value. The hotspot and falloff constrain each other, as their spinner controls do. Spotlight manipulators are described at the end of this topic. To set the shape of the light beam: 1 Choose either Rectangle or Circle. The shape of the light's cone changes to reflect the shape you chose. 2 If you chose Circle, you are done. If you chose Rectangle, you can now adjust the aspect ratio on page 7914 of the rectangular light in the Aspect field. To change a rectangular light's aspect ratio: 1 Choose Rectangle, as described above. 2 Change the Aspect value to the aspect ratio that you want. The Bitmap Fit button is another way to set the aspect ratio. It is mainly used with projections. 5092 | Chapter 18 Lights and Cameras Interface Light Cone group These parameters control hotspots and falloff on page 8007 for spotlights. Show Cone Turns display of the cone on or off. NOTE The cone is always visible when a light is selected, so turning off this check box has no apparent effect until you deselect the light. Overshoot When Overshoot on page 8077 is on, the light casts light in all directions. However, projections and shadows occur only within its falloff cone. Hotspot/Beam Adjusts the angle of a light's cone. The Hotspot value is measured in degrees. Default=43.0. Falloff/Field Adjusts the angle of a light's falloff. The Falloff value is measured in degrees. Default=45.0. For photometric lights, the Field angle is comparable to the Falloff angle. It is the angle at which the light's intensity has fallen to zero. You can manipulate the hotspot and falloff by dragging manipulators in viewports, as described in the previous procedures, and the later section "Manipulators for Spotlights." You can also adjust hotspot and falloff angles in a Light viewport (looking at the scene from the point of view of the spotlight). Standard Lights | 5093 Circle/Rectangle Determine the shape of the falloff and hotspot areas. Set Circle when you want a standard, circular light. Set Rectangle when you want a rectangular beam of light, such as light cast through a window or doorway. Aspect Sets the aspect ratio on page 7914 for the rectangular light beam. The Bitmap Fit button lets you make the aspect ratio match a specified bitmap. Default=1.0. Bitmap Fit If the light's projection aspect is rectangular, sets the aspect ratio to match a particular bitmap. This is useful when you are using the light as a projector light on page 8099. Manipulators for Spotlights Manipulators are visible and usable while the Select And Manipulate button on page 2613 is turned on. This button is on the default main toolbar on page 7498. When you move the mouse over a manipulator, the manipulator turns red to show that dragging or clicking it will have an effect. Also, a tooltip appears, showing the name of the object, the parameter, and its value. TIP When you select multiple spotlights, all their manipulators are accessible. For more information on using the spotlight manipulators, see the Procedures section at the top of this topic. Hotspot manipulator: In a viewport, drag the hotspot circle to adjust the hotspot value. Falloff manipulator: In a viewport, drag the falloff to adjust the falloff value. The hotspot and falloff constrain each other, as their spinner controls do. Hair Light Attr(ibutes) Rollout Add a supported light. > Select an object with the Hair And Fur modifier applied. > Render Settings > Effects panel > Select the light (in a viewport). > Hair And Fur rollout > Lighting group > Click Add Hair Properties. > Modify panel > Hair Light Attr rollout Add a supported light and an object with the Hair And Fur modifier applied. > Rendering menu > Effects > Highlight the Hair And Fur render effect. > Hair And Fur rollout > Lighting group > Select the light (in a viewport). > Click Add Hair Properties. > Modify panel > Hair Light Attr rollout 5094 | Chapter 18 Lights and Cameras The Hair Light Attr(ibutes) rollout lets you adjust properties for the hair shadow map generated by the light. This rollout appears for supported lights at render time. If you want to adjust a light's hair settings before render time, you can display it explicitly by following the steps shown in the path annotations at the beginning of this topic. You specify which lights to use in the Hair And Fur render effect on page 6588. By default, Use All Lights At Render Time on page 6593 is on, so all supported lights in the scene can illuminate hair. Use this rollout to set hair-specific shadow-map values. Hair shadows ignore the light's ordinary shadow-map settings (for other 3ds Max objects). IMPORTANT The settings on this rollout apply only to “buffer”-rendered hair (the default rendering method, set in the Hair And Fur render effect). The “geometry” and “mr prim” methods use the light's ordinary shadow settings. Interface Light hair When on, the light can illuminate and cast shadows from the hair. NOTE The light must also be set to cast shadows (General Parameters rollout > Shadows > On). Resolution Sets the size (in pixels squared) of the shadow map that's computed for the light. The shadow map size specifies the amount of subdivisions for the map. The higher the value, the more detailed the map will be, but the more memory is required. Fuzz Sets the softness of the shadow edges. See Sample Range on page 8111. Standard Lights | 5095 Left: Fuzz=0.0 Center: Fuzz=5.0 Right: Fuzz=10.0 The arrow points to the shadow cast by the hair on the underlying surface. Common Lighting Rollouts and Dialogs Exclude/Include Dialog Create a light. > General Parameters rollout > Exclude button Rendering menu > Render > Render Setup dialog > Render Elements panel > Render Elements rollout > Add button > Render Elements dialog > Select an existing Matte element in the list. > Matte Texture Element rollout > Include button The Exclude/Include dialog determines which objects are not illuminated by a selected light, or which objects are considered in a Matte render element on page 6336. Although light exclusion does not occur in nature, this feature is useful when you need exact control over the lighting in your scene. Sometimes, for example, you'll want to add lights specifically to illuminate a single object but not its surroundings, or you'll want a light to cast shadows from one object but not from another. 5096 | Chapter 18 Lights and Cameras Procedures To exclude objects from a light: 1 In the General Parameters rollout, click Exclude. The Exclude/Include dialog is displayed. 2 Make sure Exclude is on. 3 Choose to exclude objects from Illumination, Shadow Casting, or Both. 4 In the list of object names on the left, highlight the objects you want to exclude. 5 Click the arrow pointing to the right to move the selected object names into the right-hand list. Objects in the right-hand list will be excluded. To remove an object from this list, highlight its name and click the arrow pointing to the left. To remove all objects from this list, click Clear. 6 Click OK. Now when you shade or render the scene, the light will have no effect on the objects you chose. The object still appears lit in shaded viewports. Exclusion takes effect only when you render the scene. To include objects that were excluded: 1 Click Exclude. The Exclude/Include dialog is displayed. 2 Select the names of objects in the right-hand list, and then click the arrow pointing to the left. 3 Click OK. To include all excluded objects at once: 1 Click Exclude or Include. The Exclude/Include dialog is displayed. 2 Click Clear. 3 Click OK. Common Lighting Rollouts and Dialogs | 5097 Interface The Exclude/Include dialog contains the following controls: Exclude/Include Determines whether the light (or Matte render element) will exclude or include the objects named in the list on the right. Illumination Excludes or includes illumination of the object's surface. NOTE This control has no effect on the matte render element. Shadow Casting Excludes or includes creation of the object's shadow. NOTE This control is not available with the matte render element. Both Excludes or includes both of the above. NOTE This control is not available with the matte render element. 5098 | Chapter 18 Lights and Cameras Scene Objects Select objects from the Scene Objects list on the left, then use the arrow buttons to add them to the exclusion list on the right. The Exclude/Include dialog treats a group as an object. You can exclude or include all objects in a group by selecting the group's name in the Scene Objects list. If a group is nested within another group, it isn't visible in the Scene Objects list. To exclude a nested group or individual objects within the group, you have to ungroup them before you use this dialog. Search field The edit box below the Scene Objects list searches for objects by name. You can enter names that use wildcards. Display Subtree Indents the Scene Objects list according to the object hierarchy. Case Sensitive Uses case sensitivity when searching object names. Selection Sets Displays a list of named selection sets on page 239. Choosing a selection set from this list selects those objects in the Scene Objects list. Clear Clears all entries from the Exclude/Include list on the right. Shadow Parameters Create panel > Lights > Create a light. > Shadow Parameters rollout Common Lighting Rollouts and Dialogs | 5099 A bridge's shadow cast by sunlight The Shadow Parameters rollout is displayed for all light types except Skylight and IES Sky, and for all shadow types. It lets you set shadow colors and other general shadow properties. The controls also let atmospheric effects cast shadows. See also: ■ Advanced Ray-Traced Parameters Rollout on page 5118 ■ Area Shadows Rollout on page 5122 ■ mental ray Shadow Map Rollout on page 5128 ■ Optimizations Rollout on page 5130 5100 | Chapter 18 Lights and Cameras ■ Ray-Traced Shadow Parameters Rollout on page 5133 ■ Shadow Map Parameters Rollout on page 5135 Interface Color Displays a Color Selector on page 391 to choose a color for the shadows cast by this light. Default=black. You can animate the shadow color. Dens. (density) Adjusts the density of shadows. Common Lighting Rollouts and Dialogs | 5101 The shadow density increases from right to left. Increasing the Density value increases the density (darkness) of shadows. Decreasing Density makes shadows less dense. Default=1.0. Density can have a negative value, which can help simulate the effect of reflected light. A white shadow color and negative Density render dark shadows, though the quality of these is not as good as a dark shadow color and positive Density. You can animate the Density value. Map check box Turn on to use the map assigned with the Map button. Default=off. Map Assigns a map to the shadows. The map's colors are blended with the shadow color. Default=none. Light Affects Shadow Color When on, blends the light's color with the shadow color (or shadow colors, if the shadow is mapped). Default=off. 5102 | Chapter 18 Lights and Cameras A checker map is used to alter the shadow cast by the piano. Atmosphere Shadows group These controls let atmospheric effects such as Volume Fog on page 6713 cast shadows. On When on, atmospheric effects cast shadows as the light passes through them. Default=off. NOTE This control is independent of the On toggle for normal Object Shadows. A light can cast atmospheric shadows but not normal shadows, or vice versa. It can cast both kinds of shadows, or neither. Opacity Adjusts the opacity of the shadows. This value is a percentage. Default=100.0. Color Amount Adjusts the amount that the atmosphere's color is blended with the shadow color. This value is a percentage. Default=100.0. Common Lighting Rollouts and Dialogs | 5103 A Volume Fog cloud casts a colored shadow on the city. Atmospheres and Effects for Lights Modify panel > Select light object. > Atmospheres & Effects rollout The Atmospheres & Effects rollout lets you assign, delete, and set up parameters for atmospheres and rendering effects associated with the light. This rollout appears only in the Modify panel; it doesn't appear at creation time. Adding an atmosphere or effect associates that atmosphere or effect with the light object. This rollout is a shortcut to either the Environment panel on page 6689 or the Effects panel on page 6585 on the Environment And Effects dialog. Procedures To add a new atmosphere or rendering effect: 1 In the Atmospheres & Effects rollout, click Add. This displays the Add Atmosphere or Effect dialog on page 5106. 5104 | Chapter 18 Lights and Cameras 2 In the dialog, choose Atmosphere, Effect, or All. Choose New. 3 Choose an atmosphere or effect in the list, then click OK. This associates a new atmosphere or rendering effect with the light. To add an existing atmosphere or rendering effect: 1 In the Atmospheres & Effects rollout, click Add. This displays the Add Atmosphere or Effect dialog on page 5106. 2 In the dialog, choose Existing. 3 Choose an atmosphere or effect in the list, then click OK. This creates a duplicate atmosphere or rendering effect for the light. Its settings are initially identical to the atmosphere or effect you chose. You can adjust them using Setup. To delete an atmosphere or rendering effect: ■ In the Atmospheres & Effects rollout, choose the name of an atmosphere or effect in the list, then click Delete. To set up the parameters for an atmosphere or rendering effect: ■ In the Atmospheres & Effects rollout, choose the name of an atmosphere or effect in the list, then click Setup. If you chose an atmosphere, clicking Setup displays the Environment panel on page 6689. If you chose an effect, clicking Setup displays the Effects panel on page 6585. Interface These controls are displayed for all light types. Common Lighting Rollouts and Dialogs | 5105 Add Displays the Add Atmosphere or Effect dialog on page 5106, which lets you add an atmosphere or a rendering effect to the light. Delete Deletes the atmosphere or effect you have selected in the list. List of atmospheres and effects Displays the names of all atmospheres or effects you have assigned to this light. Setup Lets you set up the atmosphere or rendering effect you have selected in the list. If the item is an atmosphere, clicking Setup displays the Environment panel on page 6689. If the item is an effect, clicking Setup displays the Effects panel on page 6585. Add Atmosphere or Effect Dialog Modify panel > Select light object. > Atmospheres & Effects rollout > Add button The Add Atmosphere or Effect dialog lets you associate an atmosphere or a rendering effect with the light. The list shows either atmospheres, rendering effects, or both. It shows only atmospheres and effects that can be associated with light objects, or that use light objects as their apparatus. 5106 | Chapter 18 Lights and Cameras Interface List of atmospheres and effects Displays the atmospheres or effects that you can associate with the light. List filter group These radio buttons choose what to show in the list. Atmosphere Lists only atmospheres. Effect Lists only rendering effects. All Lists both atmospheres and rendering effects. New or existing group These radio buttons choose between new or existing effects. New Lists only new atmospheres or effects. Existing Lists only atmospheres or effects that have been already assigned to the light. Adding an existing atmosphere or effect creates a new atmosphere or effect whose settings are initially identical to the previous one. Common Lighting Rollouts and Dialogs | 5107 Advanced Effects Rollout Create panel > Lights > Create a light. > Advanced Effects rollout The Advanced Effects rollout provides controls that affect how lights affect surfaces, and also includes a number of fine adjustments and setting for projector lights. You can make a light object on page 4970 into a projector by choosing a map for the light to project. A projected map can be a still image or an animation. Casting a projection with a light NOTE If your scene includes animated bitmaps, including materials, projector lights, environments, and so on, the animation file is reloaded once per frame. If your scene uses multiple animations, or if the animations are large files, this can slow down rendering performance. 5108 | Chapter 18 Lights and Cameras Procedures To make a light a projector: 1 Open the Material Editor on page 5284. The Material Editor is where you adjust the map's parameters. 2 Use an unused sample slot to display a map. 3 Drag the map from the Material Editor to the light's Map button in the Advanced Effects rollout. A dialog asks if the projection map should be a copy or an instance. Choose Instance. If you choose Copy, adjusting the map in the Material Editor has no effect on the projected map. You can also drag from any other used map button, as in the Environment dialog. Assigning the map displays the map name in the button, and turns on the Projector toggle. After you have set up the map, you can turn off Projector to test rendering the scene without the projected image. An alternative is to click the Map button. This displays the Material/Map Browser on page 5290, which lets you choose the map type. At this point, the light behaves as a projector. To assign a map or adjust its parameters, you need to use the Material Editor. NOTE Lights project maps only within their cone, even if Overshoot is turned on. To put the map in the Material Editor: ■ Drag from the light's Map button to an unused sample slot in the Material Editor. NOTE Sample slots with white triangles in the corners indicate materials that are used in the current scene. You can adjust the map in the Material Editor by changing the map's parameters. To blur a projection map: ■ Increase the value of Blur Offset in the map's Coordinates rollout in the Material Editor. Common Lighting Rollouts and Dialogs | 5109 You can animate Blur Offset to have a projected map go in or out of focus. To make the shape of the light fit the projected bitmap: NOTE This procedure only applies to standard spot and direct lights. 1 Choose a bitmap to project, as described in the preceding procedures. 2 Make sure the light's shape is set to Rectangular, and then click Bitmap Fit. A file selection dialog is displayed. 3 Choose the same bitmap you chose for the standalone map, and then click OK. You can also choose a bitmap other than the one the light projects. Interface Affect Surfaces group Contrast Adjusts the contrast between the diffuse and ambient areas of the surface. Leave this set to 0 for normal contrast. Increase the value to increase the contrast for special effects: for example, the harsh light of outer space. Default=0.0. Soften Diffuse Edge Increasing the value of Soften Diffuse Edge softens the edge between the diffuse and ambient portions of a surface. This helps 5110 | Chapter 18 Lights and Cameras eliminate edges that can appear on a surface under certain circumstances. Default=50. NOTE Soften Diffuse Edge reduces the amount of light, slightly. You can counter this, to some extent, by increasing the Multiplier value. Diffuse When on, the light affects the diffuse properties of an object's surface. When off, the light has no effect on the diffuse surface. Default=on. Specular When on, the light affects the specular properties of an object's surface. When off, the light has no effect on the specular properties. Default=on. For example, by using the Diffuse and Specular check boxes you can have one light color the specular highlights of an object, while not coloring its diffuse area, and then have a second light color the diffuse portion of the surface while not creating specular highlights. Ambient Only When on, the light affects only the ambient component of the illumination. This gives you more detailed control over the ambient illumination in your scene. When Ambient Only is on, Contrast, Soften Diffuse Edge, Diffuse, and Specular are unavailable. Default=off. The effect of Ambient Only isn't visible in viewports. It appears only when you render the scene. A: Affect specular only B: Affect diffuse only C: Affect ambient only Common Lighting Rollouts and Dialogs | 5111 Projector Map group These controls make the photometric light a projector. Check box Turn on to project the map selected by the Map button. Turn off to turn off projection. Map Names the map used for the projection. You can drag from any map specified in the Material Editor, or any other map button (as on the Environment panel), and drop that map on the light's Map button. Clicking Map displays the Material/Map Browser. You can choose the map type using the Browser, then drag the button to the Material Editor, and use the Material Editor to select and adjust the map. mental ray Indirect Illumination Rollout (for Lights) Create panel > Lights > Create a light. > Modify panel > mental ray Indirect Illumination rollout NOTE This rollout does not appear on the Create panel. The mental Indirect Illumination rollout provides controls for light behavior with the mental ray renderer on page 6230. The settings on this rollout have no effect on rendering with the default scanline renderer, or on advanced lighting (the light tracer or a radiosity solution). These settings control how the light behaves when it generates indirect illumination; that is, caustics on page 6255 and global illumination on page 6261. TIP By default, each light uses the global settings found in the Light Properties group on the Render Setup Dialog > Indirect Illumination panel > Caustics and Global Illumination rollout on page 6306. It is more convenient to adjust all lights in the scene at once. If you need to adjust a specific light, you can use the multiplier controls for energy and photons. In general, you should rarely, if ever, need to turn off Use Global Settings and specify local light settings for indirect illumination. IMPORTANT In addition to the values specified here, the light must also be set to generate caustics, global illumination, or both. These controls are on the mental ray panel on page 322 of the Object Properties dialog. You also need to turn on Caustics, Global Illumination, or both, on the Render Setup Dialog > Indirect Illumination panel > Caustics and Global Illumination Rollout (mental ray Renderer) on page 6306. 5112 | Chapter 18 Lights and Cameras Interface Automatically Calculate Energy and Photons When on, the light uses the global light settings for indirect illumination, rather than local settings. Default=on. When this toggle is on, only the controls in the Global Multipliers group are available. Global Multipliers group Energy Multiplies the global Energy value to increase or decrease the energy of this particular light. Default=1.0. Caustic Photons Multiplies the global Caustic Photons value to increase or decrease the count of photons used to generate caustics by this particular light. Default=1.0. GI Photons Multiplies the global GI Photons value to increase or decrease the count of photons used to generate global illumination by this particular light. Default=1.0. Common Lighting Rollouts and Dialogs | 5113 Manual Settings group When Automatically Calculate is off, the Global Multipliers group becomes unavailable, and the manual settings for indirect illumination become available. On When on, the light can generate indirect illumination effects. Default=off. Filter color Click to display a Color Selector on page 391 and choose a color that filters the light energy. Default=white. Energy Sets the energy of the light. Energy, or "flux," is the amount of light used in indirect illumination. Each photon carries a fraction of the light’s energy. This value is independent of the light intensity determined by the light’s color and Multiplier, so you can use the Energy value to fine-tune indirect illumination effects without changing the light’s other effects in a scene (such as providing diffuse illumination). Default=50000.0. Decay Specifies how photon energy decays as it moves away from the light source. Range=0.0 to 100.0. Default=2.0 (inverse square; physically correct falloff). This value is applied as an exponent to the distance (r) between the light source and each indirectly illuminated point to determine the energy at that point, in the formula 1/r[Decay]), and is intended for tweaking the GI solution. The most commonly used values are: ■ 0.0 (no decay) The energy doesn't decay, and photons provide equal indirect illumination throughout the scene. ■ 1.0 (inverse) The energy decays proportionally to its distance from the light, with linear falloff. That is, a photon's energy is 1/r, where r is the distance from the light source. 5114 | Chapter 18 Lights and Cameras ■ 2.0 (inverse square) The energy decays at an inverse square rate. That is, a photon's energy is the inverse of the square of the distance (r) from the light source (1/r2). In the real world, light decays at the inverse square rate, but this gives strictly realistic results only if you provide a realistic value for the energy of the light. You can use other values to help adjust indirect illumination without worrying about physical accuracy. Caustic Photons Sets the number of photons emitted by the light for use in caustics. This is the number of photons in the photon map on page 8090 used for caustics. Increasing this value increases the accuracy of caustics, but also increases the amount of memory used and the length of render time. Decreasing this value improves memory usage and render time, and can be useful for previewing caustic effects. Default=10000. GI Photons Sets the number of photons emitted by the light for use in global illumination. This is the number of photons in the photon map used for global illumination. Increasing this value increases the accuracy of global illumination, but also increases the amount of memory used and the length of render time. Decreasing this value improves memory usage and render time, and can be useful for previewing global-illumination effects. Default=10000. mental ray Light Shader Rollout Select a light. > Modify panel > mental ray Light Shader rollout Note: This rollout appears only if you have enabled the mental ray extensions by using the mental ray Preferences panel. NOTE This rollout does not appear on the Create panel; only on the Modify panel. The mental ray Light Shader rollout lets you add mental ray shaders on page 5974 to lights. When you render with the mental ray renderer on page 6230, light shaders can alter or adjust the light's effect. To adjust the settings for a light shader, drag the shader's button to an unused Material Editor sample slot. If the software prompts you to choose Instance or Copy, be sure to choose Instance. (If you edit a copy of the shader, you will have to drag the sample slot back to the shader button on the Light Shader rollout before any changes take effect.) Common Lighting Rollouts and Dialogs | 5115 Interface Enable When on, rendering uses the light shaders you have assigned to this light. When off, the shaders have no effect on rendering. Default=off. Light Shader Click the button to display a Material/Map Browser on page 5290 and choose a light shader. Once you have chosen a shader, its name appears on the button. These are the light shaders provided with 3ds Max: Shader Library Ambient/Reflective Occlusion base Light Infinite base Light Point base Light Spot base Photon Emitter Shader Click the button to display a Material/Map Browser on page 5290 and choose a shader. Once you have chosen a shader, its name appears on the button. NOTE No photon emitter shaders are provided with 3ds Max. This option is for users who have access to light map shaders via other shader libraries or custom shader code. 5116 | Chapter 18 Lights and Cameras Shadow Types and Shadow Controls Create panel > Lights > Create or select a light. > General Parameters rollout > Shadows group > Shadow type Create menu > Lights > Create or select a light. > General Parameters rollout > Shadows group > Shadow type Select a light > Modify panel > General Parameters rollout > Shadows group > Shadow type The General Parameters rollout for both photometric and standard lights lets you turn shadow-casting on or off for the light, and choose which type of shadow the light uses. The following table describes the advantages and disadvantages of each shadow type: Shadow Type Advantages Disadvantages Advanced RayTraced Supports transparency and opacity mapping. Uses less RAM than standard ray-traced shadows. Recommended for complex scenes with many lights or faces. Slower than shadow maps. Does not support soft shadows. Processes at every frame. Area Shadows Supports transparency and opacity mapping. Uses very little RAM. Recommended for complex scenes with Slower than shadow maps. Processes at every frame. Shadow Types and Shadow Controls | 5117 Shadow Type Advantages Disadvantages many lights or faces. Supports different formats for area shadows. mental ray Shadow Maps Can be quicker than ray-traced shadows with the mental ray renderer. Not as accurate as ray-traced shadows. Raytrace Shadows Supports transparency and opacity mapping. Processes only once if there are no animated objects. Can be slower than shadow maps. Does not support soft shadows. Shadow Maps Produces soft shadows. Processes only once if there are no animated objects. Fastest shadow type. Uses a lot of RAM. Does not support objects with transparency or opacity maps. See Also Shadow Parameters on page 5099 Advanced Ray-Traced Parameters Rollout Create panel > Lights > Create or select a light. > General Parameters rollout > Shadows group > Shadow type > Advanced Ray-traced Shadows 5118 | Chapter 18 Lights and Cameras Advanced Ray-traced shadows are similar to ray-traced shadows on page 8103, however they give you more control over shadow behavior. Additional controls are available in the Optimizations rollout on page 5130. Advanced ray-traced shadows cast by an area light. Interface Basic Options group Mode Selects the type of raytracing for generating shadows: ■ Simple Casts a single ray of light toward the surface. No antialiasing on page 7904 is performed. ■ Antialias 1-Pass Casts a bundle of rays. The same number of rays is cast from each illuminated surface. The number of rays is set using the Pass 1 Quality spinner. Shadow Types and Shadow Controls | 5119 ■ Antialias 2-Pass Casts two bundles of rays. The first batch of rays determines if the point in question is fully illuminated, shadowed, or in the penumbra (soft area) of the shadow. If the point is in the penumbra, a secondary batch of rays is cast to further refine the edge. The number of initial rays is specified using the Pass 1 Quality spinner. The number of secondary rays is specified using the Pass 2 Quality spinner. 2-Sided Shadows When on, backfaces are not ignored when calculating shadows. Objects seen from the inside are not lit by lights from the outside. This costs a bit more render time. When off, backfaces are ignored. Rendering is quicker, but outside lights illuminate object interiors. The faces inside the sliced sphere do not cast shadows if 2-Sided Shadows is not selected. Antialiasing Options group Shadow Integrity The number of rays cast from an illuminated surface. Shadow Quality The number of secondary rays cast from an illuminated surface. Shadow Spread The radius, in pixels, to blur the antialiased edge. 5120 | Chapter 18 Lights and Cameras NOTE As this value increases, so does the quality of the blur. However, increasing this value also increases the likelihood of missing small objects. To avoid this problem, increase the value of Pass 1 Quality. Increasing the Shadow Spread value softens shadow edges. Shadow Bias The minimum distance from the point being shaded that an object must be to cast a shadow. This prevents blurred shadows from affecting surfaces they shouldn't. NOTE As you increase the blur value, you should also increase the bias. Jitter Amount Adds randomness to the ray positions. The rays are initially in a very regular pattern, which can show up in the blurry part of the shadow as regular artifacts. Jittering will convert these artifacts to noise, which is generally less noticeable to the eye. Recommended values are 0.25 to 1.0. However, very blurry shadows will require more jitter. Shadow Types and Shadow Controls | 5121 Area Shadows Rollout Create panel > Lights > Create or select a light. > General Parameters rollout > Shadows group > Shadow type > Area Shadows rollout The Area Shadow generator can be applied to any light type to achieve the effect of an area shadow effect. In order to create an area shadow, the user needs to specify the dimensions of a virtual light created to "fake" an area shadow. NOTE When using area lights, the user should try to make the properties of the light match the properties in the Area Light Dimensions group of the Area Shadows rollout. TIP Area shadows can take a fair amount of time to render. If you want to create a quick test (or draft) rendering, you can use the Area/Linear Lights as Point Lights toggle in the Common Parameters rollout on page 6121 of the Render Setup dialog to speed up your rendering. When this toggle is on, the shadows are processed as if the light object is a point source. Area shadows create a soft edge that becomes more noticeable as the distance between the object and the shadow increases. 5122 | Chapter 18 Lights and Cameras A: Penumbra (soft area) B: Shadow Area shadow cast by a point light Interface Shadow Types and Shadow Controls | 5123 Basic Options group Mode Selects the way the area shadows are generated: ■ Simple Casts a single ray from the light toward the surface. No antialiasing on page 7904 or area light calculation is performed. ■ Rectangle Light ■ Disc Light Casts rays from the light in a circular array. ■ Box Light Casts rays from the light as if it were a box. ■ Sphere Light Casts rays from the light in a rectangular array. Casts rays from the light as if it were a sphere. The shape of the area shadow array affects how shadows are cast. Left: Rectangle Right: Box 5124 | Chapter 18 Lights and Cameras 2-Sided Shadows When on, backfaces are not ignored when calculating shadows. Objects seen from the inside are not lit by lights from the outside. This costs a bit more render time. When off, backfaces are ignored. Rendering is quicker, but outside lights illuminate object interiors. The faces inside the sliced sphere do not cast shadows if 2-Sided Shadows is off. Antialiasing Options group Shadow Integrity Sets the number of rays in the initial bundle of rays cast. These rays are projected from every surface that receives light from the light source. The number of rays is as follows: 1=4 rays 2=5 rays 3 to N=NxN rays. For example, setting Shadow Integrity to 5 generates 25 rays. This is the primary control for “finding” small objects and thin spaces between objects. If the shadows are missing a small object in your scene, try increasing Shadow Integrity one step at a time. Also, if the penumbra (soft area) is blotchy, try increasing this setting. Shadow Types and Shadow Controls | 5125 Increasing the Shadow Integrity value creates more accurate shadow contour and detail. Shadow Quality Sets the total number of rays cast in the penumbra (soft area) region, including the rays fired in the first pass. These rays are projected from every point that is in the penumbra, or antialiased edge of the shadow, to smooth it out. The number of rays is as follows: ■ 2=5 rays ■ 3 to N = NxN For example, setting Shadow Quality to 5 generates 25 rays. The Shadow Quality value should always be greater than the Shadow Integrity value. This is because the software overlays the secondary rays atop the first pass's rays using the same algorithm. Increase Shadow Quality to fix banding in the penumbra, and eliminate the noise pattern from jittering. 5126 | Chapter 18 Lights and Cameras Increasing the Shadow Quality value produces a more accurate penumbra (soft area) within the contour defined by the Shadow Integrity value. Sample Spread The radius, in pixels, to blur the antialiased edge. NOTE As this value increases, so does the quality of the blur. However, increasing this value also increases the likelihood of missing small objects. To avoid this problem, increase the value of Shadow Integrity. Shadow Bias The minimum distance that an object must be from the point being shaded in order to cast a shadow. This prevents blurred shadows from affecting surfaces they shouldn't. NOTE As you increase the blur value, you should also increase the bias. Jitter Amount Adds randomness to the ray positions. The rays are initially in a very regular pattern, which can show up in the blurry part of the shadow as regular artifacts. Jittering will convert these artifacts to noise, which is generally less noticeable to the eye. Recommended values are 0.25 to 1.0. However, very blurry shadows require more jitter. Shadow Types and Shadow Controls | 5127 Increasing jitter blends the individual shadow samples. Area Light Dimensions group The software uses these dimensions to compute the area shadowing. They do not affect the actual light object. Length Sets the length of the area shadow. Width Sets the width of the area shadow. Height Sets the height of the area shadow. mental ray Shadow Map Rollout Create panel > Lights > Create a light. > General Parameters rollout > Shadows group > Select “mental ray Shadow Map shadows.” > mental ray Shadow Map rollout Choosing “mental ray Shadow Map” as the shadow type tells the mental ray renderer on page 6230 to generate shadows using the mental ray shadow-map 5128 | Chapter 18 Lights and Cameras algorithm. If you render with the default scanline renderer on page 6141 instead, no shadows appear in the rendering. Interface Map Size Sets the resolution of the shadow map. The size of the map is the square of this value. Greater resolutions require more time to process, but produce more accurate shadows. Default=512. Sample Range When greater than zero, generates soft-edged shadows. This value specifies the area of the map to soften, by removing portions of the map as specified by Samples. Default=0.0. If you set Sample Range to be greater than zero, you must also set Samples to be greater than zero, to obtain a soft shadow effect. Directional lights require Sample Range to have a greater value than spotlights require. Samples Sets the number of samples to remove from a shadow map when generating soft shadows. Default=1. Use Bias When on, changes the map bias on page 8031. Increasing the value moves the shadow farther away from the shadow casting object. Default=10. Transparent Shadows group Enable When on, shadow maps are saved with multiple Z-layers, and can have transparency. Default=off. Shadow Types and Shadow Controls | 5129 Color When on, surface color affects the color of the shadow. Default=on. Turning off Color saves memory at rendering time. Merge Dist. The minimum distance between two surfaces for them to be considered “distinct.” If two surfaces are closer than this value, the shadow map treats them as a single surface. When set to 0.0, the mental ray renderer automatically calculates a distance value to use. Default=0.0 (automatic). Larger Merge Distance values reduce memory consumption, but can reduce shadow quality. Low Merge Distance values increase memory consumption and slow down rendering speed. Samp./Pixel The number of samples used to generate a pixel in the shadow map. Higher values increase the quality and detail of the shadow, at a cost of render time. Default=5. If a mapped shadow appears to be aliased on page 7904, increase the value of Samples/Pixel. This setting is especially useful when shadows are cast by finely detailed geometry. Optimizations Rollout Create panel > Lights > Create a light. > General Parameters rollout > Shadows group > Select Advanced Ray-traced Shadows or Area Shadows. > Optimizations rollout The Optimizations rollout provides additional controls for Advanced Ray-traced Shadow on page 8103 and Area Shadow on page 7913 generation. See also: ■ General Parameters Rollout (Standard Lights) on page 5076 ■ Shadow Parameters on page 5099 ■ Area Shadows Rollout on page 5122 ■ Advanced Ray-Traced Parameters Rollout on page 5118 5130 | Chapter 18 Lights and Cameras Interface Transparent Shadows group On When checked, transparent surfaces will cast a colored shadow. Otherwise, all shadows are black. NOTE Shadows will generate faster with this value turned off. Shadow Types and Shadow Controls | 5131 A stained glass appears solid with the transparency optimization turned off. Antialiasing Threshold The maximum color difference allowed between transparent object samples before antialiasing on page 7904 is triggered. Increasing the value of this color will make the shadow less sensitive to aliasing artifacts and improve speed, decreasing the value will increase the sensitivity, improving quality. Antialias Suppression group Supersampled Material When on, only pass 1 is used during 2-pass antialiasing when shading a supersampled on page 8141 material. NOTE When off, rendering time can increase without resulting in a better image. Reflect/Refract When on only pass 1 is used during 2-pass antialiasing when shading reflections or refractions. NOTE When off, rendering time can increase without resulting in a better image. 5132 | Chapter 18 Lights and Cameras Coplanar Face Culling group Skip Coplanar Faces Prevents adjacent faces from shadowing each other. This is of particular concern at the terminator on curved surfaces such as spheres. Threshold The angle between adjacent faces. Range = 0.0 (perpendicular) to 1.0 (parallel). Ray-Traced Shadow Parameters Rollout Create a light. > General Parameters rollout > Shadows group > Choose Ray Traced Shadows. > Ray Traced Shadow Params rollout Ray-traced shadows The Ray-Traced Shadow Parameters rollout appears when you have chosen raytracing as the shadow-generation technique for a light. You select this in the General Parameters rollout on page 5076. For greater control of ray-traced shadows, use Advanced Ray-Traced Shadows on page 5118. Shadow Types and Shadow Controls | 5133 Interface Bias Ray-Trace Bias on page 8102 moves the shadow toward or away from the shadow-casting object (or objects). If the Bias value is too low, shadows can "leak" through places they shouldn't, producing moire patterns or making out-of-place dark areas on meshes. If Bias is too high, shadows can "detach" from an object. If the Bias value is too extreme in either direction, shadows might not be rendered at all. 2-Sided Shadows When on, backfaces are not ignored when calculating shadows. Objects seen from the inside are not lit by lights from the outside. This costs a bit more render time. When off, backfaces are ignored. Rendering is quicker, but outside lights illuminate object interiors. Default=on. The faces inside the sliced sphere do not cast shadows if 2-Sided Shadows is not selected. Max Quadtree Depth Adjusts the depth of the quadtree on page 8100 used by the ray-tracer. Greater quadtree depth values can improve ray-tracing time at the cost of memory use. However, there is a depth value where the performance 5134 | Chapter 18 Lights and Cameras improvement is offset by the time it takes to generate the quadtree itself. This depends on the geometry of the scene. Default=7. TIP An Omni light can generate up to six quadtrees, so it generates ray-traced shadows more slowly than spotlights. Avoid using ray-traced shadows with omni lights unless your scene requires this. Shadow Map Parameters Rollout Create a light. > General Parameters rollout > Shadows group > Choose Shadow Map. > Shadow Map Params rollout The Shadow Map Parameters rollout is displayed when you have chosen shadow mapping as the shadow-generation technique for a light. You select this in the General Parameters rollout on page 5076. Interface Bias Map Bias on page 8031 moves the shadow toward or away from the shadow-casting object (or objects). Shadow Types and Shadow Controls | 5135 Left: Default shadows Right: Increasing the Bias value separates the shadow from the object. If the Bias value is too low, shadows can "leak" through places they shouldn't, produce moire patterns or making out-of-place dark areas on meshes. If Bias is too high, shadows can "detach" from an object. If the Bias value is too extreme in either direction, shadows might not be rendered at all. This value depends on whether Absolute Map Bias is on or off: ■ When Absolute is off (the default), Bias is calculated based on the scene extents, and then normalized to one. This provides similar default shadow results, regardless of scene size. User adjustments to Bias are typically low decimal values near 1.0 (for example, 1.2). ■ When Absolute is on, Bias is a value in 3ds Max units. User adjustments to Bias depend on the size of the scene, and can range from values close to zero to values in the hundreds (see the Tip at the end of this topic). 5136 | Chapter 18 Lights and Cameras Left: Too small a Bias value causes shadow “leaks.” Right: Increasing the Bias value fixes the problem. Size Sets the size (in pixels squared) of the shadow map that's computed for the light. The shadow map size specifies the amount of subdivisions for the map. The greater the value, the more detailed the map will be. Shadow Types and Shadow Controls | 5137 Left: Size set to 32. Right: Size set to 256. Sample Range The sample range on page 8111 determines how much area within the shadow is averaged. This affects how soft the edge of the shadow is. Range=0.01 to 50.0. Increasing the Sample Range blends the shadow edges and creates a smooth effect, hiding the granularity of the map. Absolute Map Bias When on, the bias for the shadow map is not normalized, but is instead based on a fixed scale expressed in 3ds Max units. This value 5138 | Chapter 18 Lights and Cameras does not change during an animation. You must choose the value, based on the size of the scene extents. When off, the bias is computed relative to the rest of the scene, and then normalized to 1.0. This provides a common starting bias value in scenes of any size. If the scene extents change, this internal normalization can vary from frame to frame. Default=off. TIP Leaving Absolute Map Bias off gives good results in most situations, because the bias is internally balanced to match the scene size. In animations, however, if moving objects cause a large change in the scene extents (or if objects are unhidden, and so on), the normalized bias value might become inappropriate, causing shadows to flicker or disappear. If this happens, turn on Absolute Map Bias. You will have to set the Bias control to a value appropriate for the scene. As a rule of thumb, try a Bias value that is the distance between the light and the target object, divided by 100. 2-Sided Shadows When on, backfaces are not ignored when calculating shadows. Objects seen from the inside are not lit by lights from the outside. When off, backfaces are ignored, which can cause outside lights to illuminate object interiors. Default=on. The faces inside the sliced sphere do not cast shadows if 2-Sided Shadows is not selected. Sunlight and Daylight Systems Create panel > Systems > Sunlight button/Daylight button Sunlight and Daylight Systems | 5139 Create menu > Lights > Daylight System Create menu > Systems > Daylight System The Sunlight and Daylight systems use light in a system that follows the geographically correct angle and movement of the sun over the earth at a given location. You can choose location, date, time, and compass orientation. You can also animate the date and time. This system is suitable for shadow studies of proposed and existing structures. In addition, you can animate Latitude, Longitude, North Direction, and Orbital Scale. Sunlight and Daylight have a similar user interface. The difference is that: ■ Sunlight uses a directional light on page 5060. ■ Daylight combines Sunlight on page 8140 and Skylight on page 8129. The Sunlight component can be an IES Sun light on page 5154, an mr Sun light on page 5173, or a standard light (a target direct light on page 5057). The Skylight component can be an IES Sky light on page 5157, an mr Sky light on page 5176, or a Skylight on page 5065. ■ The IES Sun and IES Sky lights are photometric lights. It is appropriate to use them if you are creating a rendering that uses radiosity on page 6168 with exposure control on page 6732. ■ The mr Sun and mr Sky lights are also photometric, but are intended for use with the mental ray Sun and Sky on page 5161 solution. ■ The Standard light and Skylight are not photometric. It is appropriate to use them if your scene uses standard lighting (Sunlight with its Directional light works for this, too), or if you are using light tracing on page 6154. When you first create a Daylight system, the default creation parameters are set to midday (noon) on the summer solstice (June 21). Use the Get Location button in the Control Parameters rollout (see below) to choose the correct geographic location. If the rollout is not available, select the Daylight01 object in the viewport to gain access. NOTE When you create a Daylight system from the Create menu, a dialog appears asking if you want to use the Logarithmic Exposure Control on page 6740 if the renderer is set to Default Scanline, or the mr Photographic Exposure Control on page 6744 if the renderer is set to mental ray. It is recommended that you click Yes to enact this change. 5140 | Chapter 18 Lights and Cameras Large view shows compass and light in a viewport. The resulting rendered images are seen above it. NOTE When you create a Sunlight system or a Daylight system that uses a target direct light for the sun, the directional light's hotspot is set to encompass all geometry in the scene, so that shadows will render correctly. Specifically, the diameter of the hotspot is set to 65 per cent of the longest diagonal length of the scene extents on page 8117. Procedures To create a Sunlight or Daylight system: 1 On the Create panel, click Systems and then click Sunlight or Daylight. Alternatively, you can create a Daylight system from the Create menu > Lights or Systems submenu. This method is actually preferable because the software automatically prompts you to apply an appropriate exposure control. Sunlight and Daylight Systems | 5141 2 Choose a viewport in which to create a compass rose (the compass direction of your "world"). This should be a Top or Perspective/Camera view. 3 Drag to create the radius of a compass rose (the radius is for display purposes only), and then release the mouse button and move the mouse to set the orbital scale of the sun light over the compass rose. This can be any distance you find convenient, since directional and IES Sun lights produce parallel illumination regardless of where their icon is located. Click to finish. Upon creation you have two objects in your scene: ■ The compass rose on page 2635, which is a helper object that provides the world direction for your sun. ■ The light itself, which is a child of the compass rose, and is permanently targeted on the center of the compass rose. If you created a Daylight system, the Daylight Parameters rollout on the Modify panel lets you choose the type of sunlight and skylight. The Sunlight drop-down list lets you choose IES Sun, mr Sun, or Standard (directional). The Skylight drop-down list lets you choose IES Sky, mr Sky, or Skylight. These lists also offer you the options of choosing no sunlight or no skylight. Controls for the geographic location and time of day are on the Motion panel. The default time is noon, and the default date and time zone are based on your computer's local settings. The default location is San Francisco, CA. The directional light created by the system is managed by two special controllers: Solar Date and Solar Time. After you create your system, you can access its creation parameters (time and date, location, orbital scale, and location) in the Motion panel for the directional light. The parameters are interrelated, so you can adjust them in any order. Generally, it's easiest to choose a location first, and then adjust the date and time. You can access the parameters for selected sunlight or skylight objects in the Modify panel. The radius of the compass rose is also editable from the Modify panel, after selecting the compass rose object. If Date/Time position is selected the Sun and Sky multipliers are automatically set and animated according to their position. They can be edited only by using the Manual Position override. TIP If your scene rendering with Daylight is too bright or too dark, use an exposure control on page 6732. 5142 | Chapter 18 Lights and Cameras Example: To create a shadow study: 1 Choose Create menu > Daylight System, and when prompted to add an exposure control, click Yes. Add the Daylight system in a viewport. 2 On the Modify panel, set the date and Location. NOTE Once you’ve created the Daylight system, you’ll find these controls on the Motion panel. 3 Turn on Auto Key. 4 In the Control Parameters > Time group, adjust the Hours setting to a start time in early morning, such as 6. 5 Click the Go To End button. 6 Set Hours to a time in the late afternoon, such as 18. 7 For a complete view of your environment and its shadows, render an animation from a Top viewport or a view above your scene. Interface Daylight Parameters rollout (Daylight system only) The Daylight Parameters rollout lets you define the daylight system's sun object. You can set the sunlight and skylight behaviors. This rollout appears on the Modify panel when the light component of the Daylight system is selected. Sunlight and Daylight Systems | 5143 Sunlight Choose an option for sunlight in your scene: ■ IES Sun Uses an IES Sun object on page 5154 to simulate the sun. ■ mr Sun Uses the mr Sun light on page 5173 to simulate the sun. ■ Standard ■ No Sunlight Uses a Target Direct light on page 5057 to simulate the sun. No sunlight is simulated. Active Turns sunlight on and off in the viewport. Skylight Choose an option for skylight in your scene: ■ IES Sky Uses an IES Sky on page 5157 object to simulate skylight. ■ mr Sky Uses the mr Sky light on page 5176 to simulate the sun. ■ Skylight ■ No Skylight Uses a Skylight on page 5065 object to simulate skylight. No skylight is simulated. Active Turns skylight on and off in the viewport. 5144 | Chapter 18 Lights and Cameras Position group Manual When chosen, you can manually adjust the location of the daylight assembly head object in your scene, as well as the intensity value of the sunlight. Date, Time and Location When chosen, daylight uses the geographically correct angle and movement of the sun over the earth at a given location. NOTE When Date, Time And Location is active, adjusting the light's intensity has no effect. Weather Data File When chosen, daylight derives the angle and intensity of the sun from a weather data (EPW) file. Setup When Manual or Date, Time And Location is chosen, opens the Motion panel on page 7663, allowing you to adjust the time, location, and site of your daylight system. When Weather Data File is chosen, opens a Configure Weather Data dialog on page 5148 so you can choose which weather data you want the daylight system to use. Control Parameters rollout This rollout appears on the Create panel, and on the Motion panel when the light component of the Daylight or Sunlight system is selected. Sunlight and Daylight Systems | 5145 Control source radio buttons (Daylight system only) Manual When chosen, you can manually adjust the location of the sun object in your scene, as well as the intensity value of the sun object. Date, Time and Location When chosen, daylight uses the geographically correct angle and movement of the sun over the earth at a given location. NOTE When Date, Time And Location is active, adjusting the light's intensity has no effect. 5146 | Chapter 18 Lights and Cameras Weather Data File When chosen, daylight derives the angle and intensity of the sun from a weather data (EPW) file. Click the button to open a Configure Weather Data dialog on page 5148, where you can specify the EPW file and choose which weather data you want the daylight system to use. Azimuth and Altitude Azimuth/Altitude Displays the azimuth and altitude of the sun. Azimuth is the compass direction of the sun in degrees (North=0, East=90). Altitude is the height of the sun above the horizon in degrees (Sunrise or Sunset=0). Time group Provides settings for the time, date, and time zone. If the location you choose uses Daylight Savings Time, turn on the Daylight Saving Time checkbox. The Sunlight system adjusts the sun's azimuth and altitude accordingly during the summer months. Hours/Mins/Secs Specify the time of day. Month/Day/Year Specify the date. Time Zone Time zones range from –12 to 12. If you're uncertain about a time zone, you can look them up in Window's Date > Time Properties dialog (available through My Computer > Control Panel > Date > Time). Click the Time Zone tab, and then display the list of world locations and their time zones. Daylight Savings Time When on, calculates daylight savings by adjusting azimuth and altitude during the summer months. Location group Provides controls for setting the location of your scene in the world. Get Location Displays the Geographic Location dialog on page 5151, which lets you set the latitude and longitude values by selecting a location from a map or a list of cities. NOTE For precise locations, enter exact coordinates using Latitude/Longitude. Sunlight and Daylight Systems | 5147 [city name text box] Displays the name of the city you choose from the Geographic Location dialog. If you adjust the Latitude or Longitude spinners after choosing a location, this area becomes blank. Latitude/Longitude Specify the location based on the latitude and longitude. NOTE Negative longitude values are west of the Greenwich meridian; positive values are to the east of the meridian. This differs from versions prior to Autodesk 3ds Max 2009, in which the polarity of longitude values was incorrectly reversed. North Direction Sets the rotational direction of the compass rose in the scene. This is the geographical orientation of the compass rose. By default, north is 0 and points along the positive Y axis of the ground plane. Positive X (East) is 90 degrees. Adjust the North Direction to correspond to your site. Accuracy of the system depends on this correspondence. Model Scale group Orbital Scale Sets the distance of the sun (the directional light) from the compass rose. Because a directional light casts parallel beams, this distance has no effect on the accuracy of the sunlight. However, the light must point toward your model (not away from it), and the light's hotspot and falloff do have an effect. The best way to ensure that the light is set up correctly is to change one viewport to the light's view (for example, Sun 01). Then adjust the light's location using Dolly on page 7616, and set the hotspot so it illuminates the whole model, with no falloff. Daylight System Dialogs Configure Weather Data Dialog Create a Daylight system. > Create or Modify panel > Daylight Parameters rollout > Position group > Choose Weather Data File. > Click Setup. > Configure Weather Data dialog Create a Daylight system. > Motion panel > Control Parameters rollout > Choose Weather Data File. > Click setup button. > Configure Weather Data dialog 5148 | Chapter 18 Lights and Cameras The Configure Weather Data dialog lets you choose which contents of a weather data (EPW) file you want to use. Interface Load Weather Data Click to load a weather data (EPW) file. When you have loaded a file, the name field shows its name and path. Click the X button to unload a file you have loaded. Location and time fields When a weather data file is loaded, these fields show the location where the file was recorded, the start and end dates, how often the data was recorded (Data Period), and the total number of periods saved in the file. Use Weather Data group Use Specific Date/Time (The default.) Chooses a specific date and time to use. By default, this is the first entry in the weather data file. Sunlight and Daylight Systems | 5149 Change Time Period Click to open a Select A Time Period From Weather Data dialog on page 5150 and choose the period you want to use. Display Data as Animation Animates the daylight system based on multiple periods contained in the weather data file. Start The period where the animation begins. Click Change Time Period to open a Select A Time Period From Weather Data dialog on page 5150 and choose the period you want to use. End The period where the animation ends. Click Change Time Period to open a Select A Time Period From Weather Data dialog on page 5150 and choose the period you want to use. Skip Hours When on, omits the hours between the two values, using a 24-hour clock. Default=off. Skip Weekends When on, skips weekends. Default=off. One Frame Per Choose the time unit by which the animation is subdivided. The options are: ■ Period ■ Day ■ Week ■ Month ■ Season Default=Period. Total Frames Displays the total number of frames that 3ds Max will generate, based on the period settings you have chosen. Match Timeline Click to set the end of the active animation time segment equal to the last keyframe generated by the weather data. Select a Time Period from Weather Data Dialog Create a Daylight system. > Create or Modify panel > Daylight Parameters rollout > Position group > Choose Weather Data File. > Click Setup. > Configure Weather Data dialog > Click Change Time Period. > Select a Time Period from Weather Data dialog 5150 | Chapter 18 Lights and Cameras Create a Daylight system. > Motion panel > Control Parameters rollout > Choose Weather Data File. > Click setup button. > Configure Weather Data dialog > Click Change Time Period. > Select a Time Period from Weather Data dialog The Select A Time Period From Weather Data dialog works in conjunction with the Configure Weather Data dialog on page 5148. It lets you choose a single time period from the weather data (EPW) file. Interface Selected Time Period Displays the currently selected time period. Default=The first period in the weather data file. Select from the range of Time Periods in the Weather Data File group Period Selector Drag this slider to browse the time periods available in the file. Increment Period Selector by Use the Months, Days, Hours, or Minutes spinner controls to move the Period Selector by the corresponding unit of time. If the file does not contain increments at that time level, the spinner has no effect. Geographic Location Dialog Select a Sunlight or Daylight system. > Motion panel > Location group > Get Location button The Geographic Location dialog is part of the Sunlight and Daylight systems' on page 5139 interface. It lets you set the latitude and longitude values by Sunlight and Daylight Systems | 5151 selecting a location from a map or a list of cities. The dialog displays a list of cities at left, and a map on the right. Procedures To use a map: 1 In the Location group on the Control Parameters rollout, click the Get Location button. 2 On the Geographic Location dialog choose a map from the Map list. 3 Click in the map to specify a location. 3ds Max displays a small cross at the location you picked. If Nearest Big City is on, it places the cross at the nearest large city on the list, and highlights the city's name in the list. 4 Click OK to set the Latitude and Longitude to the location of the cross. To choose a city by name: 1 Choose a map from the Map list. The City list updates to show cities in the region of the map. 2 Choose the name of a city from the list. 3 Click OK to set the Latitude and Longitude to the location of the city. 5152 | Chapter 18 Lights and Cameras Interface City Displays a list of cities within the selected Map region. As an alternative to selecting a location by clicking the map, you can select a city directly from this list. The cross on the map moves to the location of the selected city. Map Lets you choose a map for a portion of the world, or you can choose the World map, which includes the entire world. Nearest Big City When on, clicking the map moves the cross to the nearest listed city, which becomes highlighted in the list. When off, clicking the map places the cross exactly where you clicked, and its position generates the Latitude and Longitude values for that position, regardless of any cities that might be nearby. IES Sun and Sky The IES Sun and IES Sky objects are photometric light objects that simulate the sun and sky. IES stands for Illuminating Engineering Society; see IES Standard File Format on page 5034. Sunlight and Daylight Systems | 5153 IES Sun Light (Photometric) Create panel > Systems > Create a Daylight system in your scene. > Modify panel > Daylight Parameters rollout > Sunlight > Choose IES Sun. IES Sun is a physically-based light object that simulates sunlight on page 8140. When used in conjunction with a daylight system on page 5139, its values are set automatically based on geographic location, time, and date. (IES stands for Illuminating Engineering Society; see IES Standard File Format on page 5034.) Outdoor scene illuminated by the IES Sun light The mental ray renderer gives physically accurate results for IES Sun, and renderings that use it will appear similar to renderings done with the default 5154 | Chapter 18 Lights and Cameras scanline renderer. You do not need to turn on Final Gather for light from IES Sun to render. The Daylight system on page 5139 combines the two daylight components of sun and sky in a unified interface. TIP If you use the IES sun or sky with the Logarithmic Exposure Control on page 6740, turn on both the Daylight and Exterior options. This will provide greater control for properly mapping the higher energy levels to RGB colors. In addition, it is important to set the Physical Scale to the brightest light source in your scene. If the IES Sun is used, set the Physical Scale to 90000 cd. Interface On Turns sunlight on and off in the viewport. Targeted Applicable only when you add the IES Sun light directly, rather than as part of a Daylight system on page 5139. When on, the light is targeted and you can change the target distance by moving the target. The distance between the light and its target is displayed to the right of the check box. When off, you can set this value directly. Cast Shadows Sets whether the sunlight casts shadows or not. Intensity The intensity of the sunlight. The color swatch to the right of the spinner opens the Color Selector on page 391 to set the color of the light. Typical intensities in a clear sky are around 90,000 lux. NOTE Intensity is set automatically and cannot be set manually if the sun is under the control of a daylight system. Sunlight and Daylight Systems | 5155 Shadows group On Determines whether the sunlight casts shadows or not. Shadow Method drop-down list Determines whether the renderer uses shadow maps on page 8125, ray-traced shadows on page 8103, advanced ray-traced shadows on page 8103, mental ray shadow maps on page 5128, or area shadows on page 7913 to generate shadows for this light. Each shadow type has a rollout with its associated controls. TIP When you use the mental ray renderer and mental ray shadow maps, you can set up soft-edged shadows. Use Global Settings Turn on to use global settings for shadows cast by this light. Turn off to enable individual control of the shadows. If you choose not to use the global settings, you must choose which method the renderer will use to generate shadows for this particular light. When Use Global Settings is on, the shadow parameters switch over to show you what the current global setting is. This data is shared by every other light of this class. When Use Global Settings is off, the shadow parameters are specific to that particular light. Exclude Excludes selected objects from the effects of the light. Click this button to display the Exclude/Include dialog on page 5096. Excluded objects still appear lit in shaded viewports. Exclusion takes effect only when you render the scene. Advanced Effects Rollout Contrast Adjusts the contrast between the diffuse and ambient areas of the surface. Leave this set to 0 for normal contrast. Increase the value to increase the contrast for special effects: for example, the harsh light of outer space. Default=0.0. Soften Diffuse Edge Increasing the value of Soften Diffuse Edge softens the edge between the diffuse and ambient portions of a surface. This helps 5156 | Chapter 18 Lights and Cameras eliminate edges that can appear on a surface under certain circumstances. Default=50. NOTE Soften Diffuse Edge slightly reduces the intensity of the light. You can counter this, to some extent, by increasing the Multiplier value. Diffuse When on, the light affects the diffuse properties of an object's surface. When off, the light has no effect on the diffuse surface. Default=on. Specular When on, the light affects the specular properties of an object's surface. When off, the light has no effect on the specular properties. Default=on. For example, by using the Diffuse and Specular check boxes you can have one light color the specular highlights of an object, while not coloring its diffuse component, and then have a second light color the diffuse component of the surface while not creating specular highlights. Optimizations rollout This rollout is identical to the Optimizations rollout on page 5130 for advanced ray-traced and area shadows. IES Sky Light (Photometric) Create panel > Systems > Create a Daylight system in your scene. > Modify panel > Daylight Parameters rollout > Skylight > IES Sky IES Sky is a physically-based light object that simulates atmospheric effects on skylight on page 8129. (IES stands for Illuminating Engineering Society; see IES Standard File Format on page 5034.) Sunlight and Daylight Systems | 5157 Outdoor scene lit by the IES sky light The Daylight system on page 5139 combines the two daylight components of sun and sky in a unified interface. It allows you to set date and time positions with the light type you want to use. IES Sky works correctly only when the sky object is pointing down from the Z axis, meaning that it points down when looking from the Top view. When using the default scanline renderer, IES Sky produces the best results when used in conjunction with one of the advanced lighting options on page 6153: radiosity or light tracing. 5158 | Chapter 18 Lights and Cameras WARNING When you render with the mental ray renderer on page 6230, objects illuminated by IES Sky appear dark unless you turn on Final Gathering on page 7978. The toggle for Final Gathering is on the Final Gather rollout on page 6295 of the Render Setup dialog. Using Render Elements with an IES Sky Light If you use Render Elements on page 6336 to output the lighting element on page 6356 of an IES Sky light in a scene using either radiosity or the light tracer, you cannot separate the direct, indirect, and shadow channels of the light. All three elements of the IES Sky lighting are output to the Indirect Light channel. See also: ■ IES Sun Light (Photometric) on page 5154 Interface On Turns the sky light on and off in the viewport. Multiplier Adjusts the intensity of the skylight. When this is set to 1.0, the intensity will be physically accurate based on angle. You can, however, override this by changing the value. This is useful for doing night shots with artificial lighting. Sky Color The color swatch opens the Color Selector on page 391, which lets you set the color of the sky. Sunlight and Daylight Systems | 5159 Coverage group Clear, Partly Cloudy, Cloudy This choice determines the extent to which light is scattered through the sky. Use the slider to set the control to one of the named settings or anywhere in between. Render group NOTE These controls are unavailable when the mental ray renderer is active. Cast Shadows Causes the sky light to cast shadows. A great deal of processing is dedicated to the calculation of the subtle shadows cast by skylight on page 8129. If shadows are not important in your model, you can disable them and save substantial amounts of processing time. However, the results will not be as realistic. NOTE The Cast Shadows toggle has no effect when using radiosity or the light tracer. NOTE IES Sky objects will not cast shadows in an ActiveShade rendering on page 6102. Rays per Sample The number of rays used to calculate skylight falling on a given point in the scene. For animation you should set this to a high value to eliminate flickering. A value of around 30 should eliminate flickering. Increasing the number of rays increases the quality of your image. However, it also increases rendering time. 5160 | Chapter 18 Lights and Cameras Ray Bias The closest distance at which objects can cast shadows on a given point in the scene. Setting this value to 0 can cause the point to cast shadows upon itself, and setting it to a large value can prevent objects close to a point from casting shadows on the point. mental ray Sun and Sky Daylight system > Modify panel > Daylight Parameters rollout > Sunlight/Skylight drop-down lists > mr Sun/mr Sky The mental ray Sun & Sky solution is designed to enable physically plausible daylight simulations and accurate renderings of daylight scenarios. In 3ds Max, this is achieved through the use of two special photometric lights and an environment shader that all work together: ■ The mr Sun photometric light is responsible for the sunlight; the direct light from the sun. The scene is lit by mr Sun only. ■ The mr Sky photometric light is responsible for the skylight; it simulates the real-world phenomenon of indirect light created by the scattering of sunlight in the atmosphere. Sunlight and Daylight Systems | 5161 The scene is lit by mr Sky only. ■ The mr Physical Sky environment shader is responsible for the visible representation of the sun disk and the sky, both to the camera and in reflections and refraction, as well as for the virtual ground plane (gray in the following illustration). 5162 | Chapter 18 Lights and Cameras mr Physical Sky is visible, but no lighting is present in the scene. These lights are meant to be used together: mr Sun and mr Sky appear within the 3ds Max Daylight system on page 5139. When used in combination, this solution is called Sun & Sky. TIP You can view the Sun & Sky combination in a viewport, which makes adjusting parameters fully interactive. For details, see this procedure on page 5167. NOTE Sun & Sky is a true high-dynamic range photometric lighting system that requires the mr Photographic Exposure Control on page 6744 to be enabled. In some of the mental ray rendering presets on page 6114, such as those starting with “mental.ray.daylight,” this is done automatically. Also, when you add a Daylight System from the Create menu, you have the option to activate the exposure control automatically. Using Sun & Sky with SSS Materials To use a mental ray fast SSS material on page 5693 together with the high-dynamic range Sun & Sky solution, be sure to turn on Scatter Indirect Illumination on the material's Advanced Options rollout so that the material can scatter the skylight, which is considered indirect. Sunlight and Daylight Systems | 5163 Also, turn off Screen (Soft) Compositing Of Layers, also on the Advanced Options rollout; otherwise the output of the SSS shaders is clamped to a low dynamic range and will appear to render black. Common Parameters Certain parameters do the same things in mr Sun, mr Sky, and mr Physical Sky. For physical correctness, it is necessary to keep these parameters in sync with each other in all three elements. For example, a sun with a different Haze value than the sky cannot be guaranteed to be physically plausible. For this reason the concept of parameter inheritance is included. Both the mr Sun light and the mr Physical Sky shader have check boxes labeled “Inherit from mr Sky” that are on by default. When these are on, the common parameters are all guided by the mr Sky light, which is the central point of control. With parameter inheritance, you can concentrate on tweaking the parameters in one spot (mr Sky) and, as long as Inherit From mr Sky is on for both mr Sun and mr Physical Sky, you're sure to obtain consistent results. Procedures To use mental ray Sun & Sky: 1 Make sure mental ray on page 6230 is the active renderer. 2 From the Create menu, choose Lights > Daylight System. You can also find Daylight System on the Create menu under Systems. NOTE The Daylight System is also available from Create panel > Systems, but if you go that route you're not prompted to turn on mr Photographic Exposure control (see next step), so when using Sun & Sky it's best to make a habit of choosing Daylight System from the Create menu. 3 You're prompted to use the mr Photographic Exposure Control on page 6744. Click Yes to do so automatically. 4 Create a Daylight system in the Perspective (or a Camera) viewport: Drag and release to create the compass rose, move the mouse to position the light, and then click to place the light and finish creating the system. 5 Go to the Modify panel, and on the Daylight Parameters rollout, set Sunlight to mr Sun and Skylight to mr Sky. 5164 | Chapter 18 Lights and Cameras 6 When you choose mr Sky, you're prompted to add a mr Physical Sky environment map. Click Yes to do so. The parameters rollouts for mr Sun and mr Sky now appear on the Modify panel. 7 Open the Environment dialog on page 6689 (press 8) and make sure Common Parameters > Environment Map is set to mr Physical Sky, Exposure Control on page 6732 is set to mr Photographic Exposure Control. Sunlight and Daylight Systems | 5165 TIP Should you wish to edit the mr Physical Sky parameters, an easy way to access them is to open the Material Editor (press M) and then drag the Environment Map button from the Environment panel > Common Parameters rollout to a material slot (sample sphere) in the Material Editor. When prompted for the copy method, choose Instance. 8 Open the Render Setup dialog on page 6067 (F10) to the Indirect Illumination panel and turn on Enable Final Gather. Choose the Draft preset as a starting point. 5166 | Chapter 18 Lights and Cameras IMPORTANT Don't forget to turn on Enable Final Gather when using Sun & Sky, since the skylight is a form of indirect light, which can be rendered only with the help of Final Gather. If this is not done, Sun shadows will be unnaturally dark or black rather than bluish, as they should be. 9 Render with Sun & Sky. To specify different times, dates, and locations in the Daylight system for different effects, use the Motion panel > Control Parameters settings or turn on Manual Override to place the sun by hand. TIP Adjust the Brightness and Contrast of the Logarithmic Exposure Control for a pleasing image. To see the sun and sky in the viewport: The ability to display the mental ray Sun & Sky solution in the viewport lets you adjust parameters interactively, so that you can visualize the results immediately without having to render. Keep in mind, though, that the viewport representation is an approximation of the final result, so you’ll still need to render while fine-tuning the settings. Sunlight and Daylight Systems | 5167 NOTE To use this feature, the display driver must be set to Direct3D (see Graphics Driver Setup Dialog on page 7790). 1 Follow the above procedure on page ? for adding mental ray Sun & Sky to your scene. 2 Open the Viewport Background dialog: Views menu > Viewport Background. 3 In the Background Source group, turn on Use Environment Background. 4 At the bottom of the dialog, make sure Viewport is set to Perspective, and then turn on Display Background in the lower-right group of controls. 5168 | Chapter 18 Lights and Cameras 5 Click OK. After a moment, the viewport background changes to show the environment. 6 If necessary, orbit the Perspective viewport so you get a view of the horizon. Sunlight and Daylight Systems | 5169 7 Go to the Motion panel, select the Daylight object if necessary, and then change the Time group > Hours or Month setting using the spinner control. As you adjust the setting, the sky light reflects the change. 8 Adjust the hour so the sun is near the horizon, and then, if necessary, orbit the viewport so the sun is visible. 5170 | Chapter 18 Lights and Cameras 9 Go back to the Motion panel and adjust the settings on the mr Sky Parameters rollout such as Multiplier and Red/Blue Tint. As you adjust the settings, the viewport shows the changes. Interface Interface (common parameters) The most important common parameters are those that drive the entire shading and colorization model. NOTE mr Sun and mr Physical Sky can inherit parameters from mr Sky even if the latter is off. Sunlight and Daylight Systems | 5171 Multiplier A scalar multiplier for the light output. Default=1.0. Haze In mr Physical Sky, the Haze setting corresponds to the Haze setting used by the Haze-Driven sky model on page 5179. Horizon Height The vertical position of the horizon. The default value, 0.0, places the horizon at a standard height. However, because the horizon is infinitely far away, this can cause trouble joining up with any finite geometry that is supposed to represent the ground. It can also cause issues rendering locations that are supposed to be at a high altitude, like mountain tops or the top of New York skyscrapers where the horizon really is visibly “below” the viewer. This parameter allows tuning the position of the horizon. Note that this horizon doesn’t actually exist at a specific height in 3D space; it is a shading effect for rays that go below a certain angle. This parameter tweaks that angle. The total range available range is somewhat extreme, reaching from -10.0 (the horizon is “straight down”) to 10.0 (the horizon is at the zenith). In practice, only much smaller values are actually useful. For example, to push the horizon down just below the edge of a finite visible ground plane, use –0.2. NOTE The Horizon height affects not only the visual representation of the horizon in the mr Sky light, but also the color of the mr Sun itself. In other words, the point where the sun “sets” will change for a Horizon height settings other than 0.0. 5172 | Chapter 18 Lights and Cameras Horizon Blur The “blurriness” with which the horizon is rendered. At 0.0 the horizon is completely sharp. Generally only values lower than 0.5 are useful, but the full range is up to 10.0 for a horizon that consists of blur only, with no actual horizon at all. Ground Color The color of the virtual ground plane. Note that this is a diffuse reflectance value (that is, albedo). The ground appears as a Lambertian reflector with this diffuse color, lit by the sun and sky only, and does not receive any shadows. TIP Some sky models neglect the influence of bounce light from the ground, assuming only the sky is illuminating the scene. To compare the output of mr Sky with, for example, the IES Sky light, set Ground Color to black. Night Color The minimum color of the sky: The sky will never become darker than this value. It can be useful for adding things like moon, stars, high-altitude cirrus clouds that remain lit long after sunset, etc. As the sun sets and the sky darkens, the contribution from Night Color is unaffected and remains as the base light level. Red/Blue Tint Gives artistic control over the redness of the light. The default value of 0.0 is the physically correct value (calculated for a 6500K whitepoint), but can be changed with this parameter, which ranges from –1.0 (extremely blue) to 1.0 (extremely red). Saturation Also an artistic control, where 1.0 is the physically calculated saturation level. The parameter ranges from 0.0 (black and white) to 2.0 (extremely boosted saturation). mr Sun Daylight system > Modify panel > Daylight Parameters rollout > Sunlight drop-down list > mr Sun The mr Sun light is intended for use in the mental ray Sun & Sky combination. This topic mainly provides information on parameters unique to this component. A number of mr Sky parameters are common to all three Sun & Sky components. For some of those parameters, this topic provides a brief explanation plus a link to the main topic with additional details. TIP You can view the Sun & Sky combination in a viewport, which makes adjusting parameters fully interactive. For details, see this procedure on page 5167. Sunlight and Daylight Systems | 5173 See also: ■ mental ray Sun and Sky on page 5161 ■ mr Sky on page 5176 ■ mr Physical Sky on page 5181 Interface mr Sun Basic Parameters rollout On Turns the mr Sun light on and off. Default=on. Multiplier A scalar multiplier for the light output. Default=1.0. Targeted Applicable only when you add an mr Sun light directly to the scene via Create panel > Lights > Photometric, rather than as part of a Daylight system on page 5139. When on, the light is targeted and you can change the target distance by moving the target. The distance between the light and its target is displayed to the right of the check box. When off, you can set this value directly. Default=on. Shadows group On Toggles shadowing for the light. Default=on. 5174 | Chapter 18 Lights and Cameras Softness The softness of shadow edges. The default value of 1.0 accurately matches the softness of real solar shadows. Lower values make the shadows sharper and higher values make them softer. Softness The number of shadow samples for the soft shadows. If it is set to 0, no soft shadows are generated. Default=8. Inherit from mr Sky group NOTE mr Sun can inherit parameters from mr Sky even if the latter is off. Inherit from mr Sky Uses the equivalent settings from the mr Sky Parameters rollout for the remaining mr Sun Parameters rollout settings. Default=on. For further information, see Common Parameters on page 5164. Nonphysical Tuning group These controls are available only when “Inherit From mr Sky” is off. Red/Blue Tint Provides artistic control over the redness of the sky light. The default value of 0.0 is the physically correct value (calculated for a 6500K whitepoint), but can be changed with this parameter, which ranges from –1.0 (extremely blue) to 1.0 (extremely red). Saturation Provides artistic control over saturation of the sky light. The default value of 1.0 is the physically calculated saturation level. Possible values range from 0.0 (black and white) to 2.0 (extremely high saturation). mr Sun Photons rollout Use these settings to focus global-illumination photons on an area of interest. For example, if you’ve modeled a huge city as a backdrop, but are rendering only a room interior, you probably don’t want mental ray to shoot photons over the entire city, with the result that only a few will find their way into the room. Sunlight and Daylight Systems | 5175 Use Photon Target When on, uses the Radius setting with respect to the light target. Radius Sets the radial distance from the target in which the mr Sun casts GI photons. mr Sky Daylight system > Modify panel > Daylight Parameters rollout > Skylight drop-down list > mr Sky The mr Sky light is intended for use in the mental ray Sun & Sky combination. This topic mainly provides information on parameters unique to this component. A number of mr Sky parameters are common to all three Sun & Sky components. For some of those parameters, this topic provides a brief explanation plus a link to the main topic with additional details. TIP You can view the Sun & Sky combination in a viewport, which makes adjusting parameters fully interactive. For details, see this procedure on page 5167. See also: ■ mental ray Sun and Sky on page 5161 ■ mr Sun on page 5173 ■ mr Physical Sky on page 5181 Interface mr Sky Parameters rollout On Turns the light on and off. 5176 | Chapter 18 Lights and Cameras Multiplier A scalar multiplier for the light output. Default=1.0. Ground Color The color of the virtual ground plane. Note that this is a diffuse reflectance value (that is, albedo). The ground appears as a Lambertian reflector with this diffuse color, lit by the sun and sky only, and does not receive any shadows. TIP Some sky models neglect the influence of bounce light from the ground, assuming only the sky is illuminating the scene. To compare the output of mr Sky with, for example, the IES Sky model, set Ground Color to black. Sky Model Lets you choose the sky model to use. There are three choices: ■ Haze Driven on page 5179 ■ Perez All Weather on page 5179 ■ CIE on page 5180 Use the Perez or CIE model when you want light from the sky to be physically accurate. mr Sky Advanced Parameters rollout Sunlight and Daylight Systems | 5177 Horizon group Height The vertical position of the horizon. Default=0.0. For details, see Horizon Height on page 5172. Blur The “blurriness” with which the horizon is rendered. Default=0.1. At 0.0 the horizon is completely sharp. Generally only values lower than 0.5 are useful, but the full range is up to 10.0 for a horizon that consists of blur only, with no actual horizon at all. Night Color Night Color The minimum color of the sky: the sky will never become darker than this value. This adjustment can be useful for adding things like the moon, stars, high-altitude cirrus clouds that remain lit long after sunset, and so on. As the sun sets and the sky darkens, the contribution from Night Color is unaffected and remains as the base light level. Non-Physical Tuning group Red/Blue Tint Provides artistic control over the redness of the sky light. The default value of 0.0 is the physically correct value (calculated for a 6500K whitepoint), but can be changed with this parameter, which ranges from –1.0 (extremely blue) to 1.0 (extremely red). Saturation Provides artistic control over saturation of the sky light. The default value of 1.0 is the physically calculated saturation level. Possible values range from 0.0 (black and white) to 2.0 (extremely high saturation). Aerial Perspective group Aerial Perspective toggle When on, enables the Visibility Distance setting. When off, disables the effect of Visibility Distance. Default=on. Visibility Distance Aerial Perspective is a term used by painters to convey how distant objects are perceived as hazier and tinted towards the blue end of the spectrum. mr Sky emulates this with the Visibilty Distance parameter. When nonzero, it defines the “10% distance”, that is, the distance at which approximately 10% of haze is visible at a Haze level of 0.0. 5178 | Chapter 18 Lights and Cameras Haze-Driven Sky Model Create a Daylight system. > Choose mr Sky as the sky light. > Choose Haze Driven as the sky model. > mr Sky: Haze Driven rollout This sky model uses a Haze value to specify the amount of water vapor or other particulate matter in the air. Possible values range from 0.0 (a completely clear day) to 15.0 (extremely overcast, or a sandstorm in the Sahara). The Haze value influences the intensity and color of the sky and horizon, the intensity and color of sunlight, the softness of the sun’s shadows, the softness of the glow around the sun, and the strength of the aerial perspective. NOTE The Haze-Driven sky model was the only sky model available in versions prior to Autodesk 3ds Max 2009. Interface Haze The amount of particulate matter in the air. Possible values range from 0.0 (a completely clear day) to 15.0 (extremely overcast, or a sandstorm in the Sahara). Default=0.0. You can animate this value. Perez All-Weather Sky Model Create a Daylight system. > Choose mr Sky as the sky light. > Choose Perez All Weather as the sky model. > mr Sky: Perez Parameters rollout The Perez All-Weather sky model is a physically accurate sky model recognized as an industry standard. It is controlled by two illuminance on page 8009 values. NOTE The Perez model is suitable for daytime, but not for twilight or night scenes. For scenes where the sun is low or absent, use the Haze model, or the CIE model if you are concerned with photometric accuracy. When you render while the Perez sky model is active, the sky color derives from the Haze value in the mr Physical Sky shader on page 5181. By default this Sunlight and Daylight Systems | 5179 is 0.0 (a clear sky, blue in the daytime), but you can use the shader to change the Haze value. Interface Diffuse Horizontal Illuminance The illuminance of the sky measured by a luminance meter placed horizontally, outdoors, excluding the contribution from the sun. Default=10000.0 lx. You can animate this value. Direct Normal Illuminance The illuminance of the sun measured by a luminance meter aimed directly at the sun. Default=10000.0 lx. You can animate this value. NOTE If you have chosen American units as the active lighting units, the illuminance values appear as footcandles (fc) rather than lux (lx). CIE Sky Model Create a Daylight system. > Choose mr Sky as the sky light. > Choose CIE as the sky model. > mr Sky: CIE Parameters rollout The CIE sky model is a physically accurate sky model recognized as an industry standard. (CIE stands for Commission Internationale de l’Éclairage: the International Lighting Commission.) It is controlled by two illuminance on page 8009 values, and you can choose either an overcast or a clear sky. When you render while the CIE sky model is active, the sky color derives from the Haze value in the mr Physical Sky shader on page 5181. By default this is 0.0 (a clear sky, blue in the daytime), but you can use the shader to change the Haze value. 5180 | Chapter 18 Lights and Cameras Interface Diffuse Horizontal Illuminance The illuminance of the sky measured by a luminance meter placed horizontally, outdoors, excluding the contribution from the sun. Default=10000.0 lx. You can animate this value. Direct Normal Illuminance The illuminance of the sun measured by a luminance meter aimed directly at the sun. Default=10000.0 lx. You can animate this value. Overcast Sky (The default.) Specifies an overcast sky. Clear Sky Specifies a clear sky. NOTE If you have chosen American units as the active lighting units, the illuminance values appear as footcandles (fc) rather than lux (lx). mr Physical Sky Daylight system > Modify panel > Daylight Parameters rollout > Skylight drop-down list > mr Sky > Confirm prompt. The mr Physical Sky shader is intended primarily for use in the mental ray Sun & Sky combination. This topic mainly provides information on parameters unique to this component. A number of mr Physical Sky parameters are common to all three Sun & Sky components. For some of those parameters, this topic provides a brief explanation plus a link to the main topic with additional details. TIP You can view the Sun & Sky combination in a viewport, which makes adjusting parameters fully interactive. For details, see this procedure on page 5167. Sunlight and Daylight Systems | 5181 See also: ■ mental ray Sun and Sky on page 5161 ■ mr Sky on page 5176 ■ mr Sun on page 5173 Procedures The main difference between the mr Physical Sky Parameters rollout described here and the mr Sky Parameters rollout on page 5176 on the command panel is that this rollout lets you apply maps or shaders to the various parameters. However, this version of the rollout isn't quite as accessible; you must use the Material Editor to get at the controls. To access the mr Physical Sky rollout: 1 Add an mr Sky on page 5176 component to the Daylight system on page 5139 (and confirm the addition of the mr Physical Sky environment map), or apply an mr Physical Sky shader as an environment map on page 6689 or in the Camera Shaders group of the Camera Effects rollout on page 6283. 2 Open the Material Editor on page 5284 and choose a sample slot. 3 Click the Get Material button. This opens the Material/Map Browser dialog on page 5290. 4 On the Material/Map Browser, in the Browse From group on the left side, choose Scene. The Browser lists maps and materials in the scene. 5 Find the mr Physical Sky map and double-click it to load it into the active sample slot. You can now edit the shader parameters and apply maps and shaders on the mr Physical Sky Parameters rollout. TIP Alternatively, you can simply drag the map button from the Environment panel or Camera Effects rollout to a sample slot in the Material Editor. 5182 | Chapter 18 Lights and Cameras Interface NOTE This rollout is available only in the Material Editor. To access the rollout, follow the above procedure. Sun Disk Appearance group Use these settings to adjust the visible appearance of the sun in the sky. Disk Intensity The brightness of the sun. Glow Intensity The brightness of the glow surrounding the sun. Sunlight and Daylight Systems | 5183 Scale The size of the sun disk. Use Custom Background Map When on but no background map is specified, the background of the rendering is transparent black, suitable for external compositing. If you supply a background shader by clicking the button and then specifying a map or shader, the background of the rendering will come from that shader (for example, a texture map that uses a background photograph). In either case the mr Physical Sky will still be visible in reflections and refraction. To apply a map or shader to this parameter, click the None button. NOTE The background area in the rendered image's alpha channel is always fully transparent, as is the case in general in 3ds Max. Inherit from mr Sky Uses the equivalent settings from the mr Sky Parameters rollout for the remaining mr Physical Sky Parameters rollout settings, except for Aerial Perspective. Default=on. For further information, see Common Parameters on page 5164. Haze The amount of particulate matter in the air. Possible values range from 0.0 (a completely clear day) to 15.0 (extremely overcast, or a sandstorm in the Sahara). Default=0.0. For details, see Haze on page 5172. To apply a map or shader to this parameter, click the None button. Horizon and Ground group Horizon Height The vertical position of the horizon. Default=0.0. For details, see Horizon Height on page 5172. Blur The “blurriness” with which the horizon is rendered. Default=0.1. At 0.0 the horizon is completely sharp. Generally only values lower than 0.5 are useful, but the full range is up to 10.0 for a horizon that consists of blur only, with no actual horizon at all. Ground Color The color of the virtual ground plane. Note that this is a diffuse reflectance value (that is, albedo). The ground appears as a Lambertian reflector with this diffuse color, lit by the sun and sky only, and does not receive any shadows. To apply a map or shader to this parameter, click the None button. 5184 | Chapter 18 Lights and Cameras TIP Some sky models neglect the influence of bounce light from the ground, assuming only the sky is illuminating the scene. To compare the output of mr Sky with, for example, the IES Sky model, one must therefore set Ground Color to black. After Dark group Night Color The minimum color of the sky: The sky will never become darker than this value. It can be useful for adding things like moon, stars, high-altitude cirrus clouds that remain lit long after sunset, etc. As the sun sets and the sky darkens, the contribution from Night Color is unaffected and remains as the base light level. To apply a map or shader to this parameter, click the None button. Non-Physical Tuning group Red/Blue Tint Provides artistic control over the redness of the sky light. The default value of 0.0 is the physically correct value (calculated for a 6500K whitepoint), but can be changed with this parameter, which ranges from -1.0 (extremely blue) to 1.0 (extremely red). To apply a map or shader to this parameter, click the None button. Saturation Provides artistic control over saturation of the sky light. The default value of 1.0 is the physically calculated saturation level. Possible values range from 0.0 (black and white) to 2.0 (extremely high saturation). To apply a map or shader to this parameter, click the None button. Aerial Perspective group NOTE This parameter is for advanced users, and functions only when you use mr Physical Sky is used as a lens shader or volume shader. When used as a lens shader, the aerial perspective “mist” applies to primary rays only; it doesn't appear in reflections. When used as a volume shader, it applies to the entire scene and every ray in it, including reflections and refraction. Visibility Distance Aerial Perspective is a term used by painters to convey how distant objects are perceived as hazier and tinted towards the blue end of the spectrum. mr Sky emulates this with the Visibilty Distance parameter. When nonzero, it defines the “10% distance”, that is, the distance at which approximately 10% of haze is visible at a Haze level of 0.0. Sunlight and Daylight Systems | 5185 mr Sky Portal Create panel > Lights > Photometric > mr Sky Portal Create menu > Lights > Photometric > mr Sky Portal The mr (mental ray) Sky Portal object provides an efficient method of “gathering” existing sky lighting in interior scenes without requiring high final gather or global illumination settings that would result in excessively long render times. In effect, a portal acts as an area light that derives its brightness and coloring from the environment. IMPORTANT For mr Sky Portal to work correctly, the scene must contain a Skylight component. This can be an IES Sky light on page 5157, an mr Sky light on page 5176, or a Skylight on page 5065. Procedures Example: To use the mr Sky Portal object: 1 Make sure mental ray is the active production renderer on page 6135. 2 Create a scene with a windowed interior. Set up a camera in the interior and set a viewport to show the camera view. 3 Add a Daylight system: 1 Create menu > Systems > Daylight System. When prompted use the mr Photographic Exposure Control, click Yes. 5186 | Chapter 18 Lights and Cameras 2 On the mr Photographic Exposure Control rollout on page 6744 set Preset to Physically Based Lighting, Indoor Daylight. This changes the exposure value to 10.0. 3 Change the Sunlight object to mr Sun and the Skylight object to mr Sky. (see mental ray Sun and Sky on page 5161) For best results, position the sun so it’s not shining directly into the interior or turn it off. Otherwise the direct lighting could overwhelm the indirect lighting from the portal, especially when using final gathering and/or global illumination. Sunlight and Daylight Systems | 5187 4 For each window, add an mr Skylight Portal object. The portal object is a wireframe rectangle with a central, perpendicular arrow showing the direction of light flow, or flux. Make each portal slightly larger than its respective opening, and position it immediately outside or inside the opening. 5188 | Chapter 18 Lights and Cameras TIP To help place the portal object as close as possible to the outside surface, use AutoGrid on page 2597. Also, make sure portals do not overlap; this would cause the illumination from the overlapping area to be doubled. Adding the Sky Portal object with AutoGrid on. Note the Light Flux Direction arrow pointing outward. 5 Make sure all portals’ arrows are pointing inside. If a portal’s arrow points outside, toggle its Flip Light Flux Direction check box on the mr Skylight Portal Parameters rollout. Sunlight and Daylight Systems | 5189 With Flip Light Flux Direction on, the arrow points inward. 6 Turn on Final Gather on page 6295 and render the scene. If the image looks grainy, increase the Shadow Samples setting on the mr Skylight Portal Parameters rollout. 5190 | Chapter 18 Lights and Cameras Scene lit by mr Sky Portal with final gather at Draft preset, no diffuse bounces Sunlight and Daylight Systems | 5191 Interface mr Skylight Portal Parameters rollout On Toggles the illumination from the portal. When off, the portal has no effect on scene lighting. Multiplier Amplifies the power of the light. For example, if you set the value to 2.0, the light will be twice as bright. Filter Color Tints the coloring coming in from the outside. Dimensions Set the Length and Width using these controls. TIP To change the arrow size, use the Preferences > Viewports panel > Viewport Parameters group on page 7755 > Non-Scaling Object Size setting. Flip Light Flux Direction Determines the direction in which light flows through the portal. The arrow must point toward the interior for the portal to cast light from the sky or environment. If it points outside, toggle this setting. Shadows On Toggles shadow casting by the light from the portal. By default, the portal casts shadows only from objects inside the portal; that is, on the arrow side. 5192 | Chapter 18 Lights and Cameras From “Outdoors” When on, casts shadows from objects outside the portal; that is, on the side away from the arrow icon. This is off by default, because turning it on can significantly increase render times. Shadow Samples The overall quality of shadows cast by the portal. If the rendered image is grainy, increase this value. Advanced Parameters rollout Visible to Renderer When on, the mr Sky Portal Object appears in the rendered image. Turn this on to prevent outside objects from appearing in the window. Transparency Filters the view outside the window. Changing this color doesn’t change the light coming in, but has the effect of darkening outside objects, which can help if they’re overexposed. To avoid recoloring the outside view, use a shade of gray, such as R=G=B=0.5. Color Source Sets the source of the light from which the mr Sky Portal derives its illumination. ■ Use existing Skylight Uses the skylight. By default, with the mr Sky light using the mr Physical Sky environment map at their default values, this tends to give a bluish illumination, as with real-world skylight. ■ Use Scene Environment Uses the environment map for illumination color. Use this if your sky light and environment map are different colors, and you wish to use the latter for the interior illumination. ■ Custom Lets you use any map for the illumination coloring. Choose Custom, and then click the button (“None”) to open the Material/Map Browser. Choose a map and click OK. Sunlight and Daylight Systems | 5193 Cameras Create panel > Cameras Create menu > Cameras Cameras present a scene from a particular point of view. Camera objects simulate still-image, motion picture, or video cameras in the real world. With a Camera viewport on page 7604 you can adjust the camera as if you were looking through its lens. Camera viewports can be useful for editing geometry as well as setting up a scene for rendering. Multiple cameras can give different views of the same scene. The Camera Correction modifier on page 5247 lets you correct a camera view to 2-point perspective, in which vertical lines remain vertical. If you want to animate the point of view, you can create a camera and animate its position. For example, you might want to fly over a landscape or walk through a building. You can animate other camera parameters as well. For example, you can animate the camera's field of view to give the effect of zooming in on a scene. The Display panel's Hide By Category on page 178 rollout has a toggle that lets you turn the display of camera objects on and off. A convenient way to control the display of camera objects is to create them on a separate layer on page 7438. You can hide them quickly by turning off the layer. TIP The Camera Match utility on page 5249 allows you to start with a background photograph and create a camera object that has the same point of view. This is useful for site-specific scenes. There are two kinds of camera objects: ■ Target cameras on page 5205 view the area around a target object. When you create a target camera, you see a two-part icon representing the camera and its target (a white box). The camera and the camera target can be animated independently, so target cameras are easier to use when the camera does not move along a path. 5194 | Chapter 18 Lights and Cameras ■ Free cameras on page 5203 view the area in the direction the camera is aimed. When you create a free camera, you see a singe icon representing the camera and its field of view. The camera icon appears the same as a target camera icon, but there is no separate target icon to animate. Free cameras are easier to use when the camera's position is animated along a path. An example of a camera in a scene. Cameras | 5195 The result after rendering through the camera. You can create cameras from the Create menu > Cameras submenu, or by clicking the Cameras button on the Create panel. You can also create a camera by activating a Perspective viewport, and then choosing Views menu > Create Camera From View. After you have created a camera, you can change viewports to display the camera's point of view. While a camera viewport is active, the navigation buttons change to camera navigation buttons on page 7604. You use the Modify panel in conjunction with a camera viewport to change the camera's settings. While you use the navigation controls for a camera viewport, you can constrain Truck, Pan, and Orbit movement to be vertical or horizontal only with the Shift key. You can move a selected camera so its view matches that of a Perspective, Spotlight, or another Camera view. Choosing a Camera for Vertical Views If you need an animated camera to look vertically upward or downward, use a free camera. If you use a target camera you might run into a problem of unexpected movement. The program constrains a target camera's up-vector 5196 | Chapter 18 Lights and Cameras (its local positive Y axis) to be as close as possible to the world positive Z axis. This is no problem when you are working with a static camera. However, if you animate the camera and put it in a nearly vertical position, either up or down, the program flips the Camera view to prevent the up-vector from becoming undefined. This creates sudden changes of view. Camera Object Icons Camera objects are visible in viewports unless you choose not to display them. However, the geometry that appears in the viewport is only an icon meant to show you where the camera is located and how it is oriented. Target cameras on page 5205 create a double icon, representing the camera (a blue box intersecting a blue triangle) and the camera target (a blue box). Free cameras on page 5203 create a single icon, representing the camera and its field of view. A free camera has no target. A target camera has a target sub-object. You cannot shade camera objects. However, you can render their icons using Animation menu > Make Preview and turning on Cameras in the Display In Preview group. The display of camera object icons is not scaled when you change the scale of the viewport. When you zoom in on a camera, for example, the icon size does not change. To change the size of camera object icons, you can use the Viewports panel on page 7753 of the Preferences dialog, and change the value of Non-Scaling Object Size. Cameras | 5197 Scale transforms have the following effects on a camera object: ■ Uniform Scale has no effect on a target camera, but does change the free camera's Target Distance setting. ■ Non-Uniform Scale and Squash change the size and shape of the free camera's FOV cone. You see the effect in the viewport, but the camera's parameters do not update. Non-Uniform Scale and Squash will change the size and shape of a target camera’s icon, but have no visible effect in the viewport. mental ray Camera Shaders When you use the mental ray renderer on page 6230, you can apply shaders to the camera used to render the scene. Specifically, you can assign shaders to modify the camera's lens, its output, or its volume (effectively making a volume out of the entire scene). A dimly lit scene 5198 | Chapter 18 Lights and Cameras The scene's colors desaturated using the Night shader Lens shader: lume Night shader with Multiplier set to 0.5 You assign camera shaders using the Render Setup dialog > Camera Effects rollout on page 6283 while the mental ray renderer is active. NOTE No camera output shaders are provided with 3ds Max. You might have access to light map shaders if you have obtained them from other shader libraries or custom shader code. See also: ■ Common Camera Parameters on page 5210 ■ Characteristics of Cameras on page 5207 ■ Using Transforms to Aim a Camera on page 5221 ■ Using Clipping Planes to Exclude Geometry on page 5222 ■ Using the Horizon to Match Perspective on page 5223 ■ Animating Cameras on page 5225 Cameras | 5199 Procedures To render a scene using a camera: 1 Create the camera and aim it at the geometry you want to be the subject of your scene. To aim a target camera, drag the target in the direction you want the camera to look. To aim a free camera, rotate and move the camera icon. 2 With one camera selected, or if only one exists in the scene, set a Camera viewport for that camera by activating the viewport, then press C. If multiple cameras exist and none or more than one are selected, the software prompts you to choose which camera to use. You can also change to a Camera viewport by right-clicking the viewport label and then selecting Views and the camera of choice. 3 Adjust the camera's position, rotation, and parameters using the Camera viewport’s navigation controls. Simply activate the viewport, then use the Truck, Orbit, and Dolly Camera buttons. Alternately you can select the camera components in another viewport and use the move or rotate icons. If you do this while the Auto Key button on page 7549 is on, you animate the camera. 4 Render the camera viewport. To change a viewport to a Camera view: 1 Right-click the viewport label. The Viewport Properties menu is displayed. 2 Choose Views. The name of each camera is displayed at the top of the Views submenu. 3 Choose the name of the camera you want. The viewport now shows the camera's point of view. The default keyboard shortcut for camera viewports is C. Making a camera viewport active does not automatically select the camera. To adjust a camera by using its viewport and the Modify panel at the same time, select the camera and then make the Camera viewport active. As in other viewports, in Camera viewports you can opt to see a display of safe frame areas to help you compose the final rendered output. 5200 | Chapter 18 Lights and Cameras To control the display of camera objects, do one of the following: ■ Go to the Display panel and in the Hide By Category rollout, turn Cameras on or off. ■ Choose Tools menu > Display Floater, and on the Object Level tab turn Cameras on or off. When Hide > Cameras is off, cameras appear in viewports; when Hide > Cameras is on, they don't appear. When camera icons are displayed, the Zoom Extents commands on page 7588 include them in views. When camera icons are not displayed, the Zoom Extents commands ignore them. To change the display size of camera icons: Choose Customize > Preferences > Viewports, and set Non-Scaling Object Size (default=1.0 in current units). ■ NOTE This also changes the size of light icons, helper objects, and other non-scaling objects in the scene. To use the Modify panel in conjunction with a Camera viewport: 1 Select the camera in any viewport. 2 Right-click the Camera viewport to activate the viewport without deselecting the camera. The Camera viewport becomes active, but the camera is still selected in the other viewports. 3 Adjust the camera using its Parameters rollout in the Modify panel and the navigation buttons. The Camera viewport updates as the parameters are changed. To constrain Pan and Orbit to be vertical or horizontal: ■ Hold down Shift as you drag in the viewport. The initial direction of the drag sets the constraint. If you drag vertically at first, the pan or orbit is constrained to be vertical; if you drag horizontally at first, the constraint is horizontal. Cameras | 5201 The Zoom Extents All flyout and the Min/Max toggles remain visible. These controls aren't specific to camera views. Clicking Zoom Extents All affects other kinds of viewports, but does not affect Camera viewports. To see the safe frame: ■ Right-click the viewport label and choose Show Safe Frame. The safe frames on page 8110 are displayed in three concentric boxes. The outermost safe frame matches the render output resolution. The safe frame on page 8110 matches the render output resolution. Boxes in the viewport indicate safe frames. To match a camera to a viewport: 1 (Optional) Select a camera. 2 Activate a Perspective viewport. 3 If no camera was selected, 3ds Max creates a new target camera whose field of view matches the viewport. If you first selected a camera, the camera is moved to match the Perspective view. 3ds Max also changes 5202 | Chapter 18 Lights and Cameras the viewport to a camera viewport for the camera object, and makes the camera the currently selected object. Free Camera Create panel > Cameras > Free Create menu > Cameras > Free Camera Free cameras view the area in the direction where the camera is aimed. Unlike target cameras, which have two independent icons for the target and the camera, free cameras are represented by a single icon, making them easier to animate. Free cameras can be used when the camera's position is animated along a trajectory on page 8154, as in a walkthrough of a building or when the camera is attached to a moving vehicle. The free camera can bank as it travels along the path. If the camera needs to be directly overhead in a scene, use a free camera to prevent it from spinning. A free camera can move and be oriented without restrictions. Free Camera | 5203 Initial Direction of a Free Camera A free camera’s initial direction is along the negative Z axis of the active construction grid of the viewport you click. In other words, if you click in an orthogonal viewport, the initial camera direction is directly away from you. Clicking the Top viewport aims the camera downward, clicking the Front viewport aims the camera at the scene from the front, and so on. Clicking in a Perspective, User, Light, or Camera viewport aims the free camera downward, along the negative Z axis of the World Coordinate System. Because the camera is created on the active construction plane, where you also create geometry, you might have to move the camera before you can see objects in its Camera viewport. Check the camera’s position from several viewports to correct. Procedures To create a free camera: 1 From the Create menu, choose Cameras > Free Camera, or click Cameras on the Create panel, then click Free on the Object Type rollout. 2 Do one of the following: ■ Choose Create Menu > Cameras > Free Camera. ■ Click Cameras on the Create panel, then click Free on the Object Type rollout. ■ From the Tool Palettes window, select the Cameras tab and select Free Camera. 3 Choose Create menu > Cameras > Free Camera. 4 Click the viewport location where you want the camera to be. The kind of viewport you click determines the free camera's initial direction. The camera is now part of the scene. 5 Set the creation parameters. 6 Rotate and move the camera to adjust the point of view. 5204 | Chapter 18 Lights and Cameras Interface See Common Camera Parameters on page 5210. Target Camera Create panel > Cameras > Target Create menu > Cameras > Target Camera A target camera “views” the area around the target icon that you place when you create the camera. A target camera is easier to aim than a free camera because you simply position the target object at the center of interest. You can animate both the target camera and its target to create interesting effects. To animate both the target and camera along a path, it is best to link them both to a dummy object, then animate the dummy. NOTE When you add a target camera, 3ds Max automatically assigns a Look At controller on page 3199 to it, with the camera's target object assigned as the Look At target. You can use the controller settings on the Motion panel to assign any other object in the scene as the Look At target. Target Camera | 5205 Target cameras always face their target. Procedures To create a target camera: 1 Do one of the following: ■ Click Cameras on the Create panel, then click Target in the Object Type rollout. ■ Choose Create menu > Cameras > Target Camera. ■ From the Tool Palettes window, select the Cameras tab and select Target Camera. 2 Drag in a Top or Perspective viewport. The initial point of the drag is the location of the camera, and the point where you release the mouse is the location of the target. The camera is now part of the scene. It is aimed at the target, which is a separate object. 3 Set the creation parameters=. 5206 | Chapter 18 Lights and Cameras Interface See Common Camera Parameters on page 5210 for a description of the common camera parameters. The distance from the camera to the target is displayed at the bottom of the Parameters rollout. You can animate this parameter, or directly animate the target object's location. When you rename a target camera, the target is automatically renamed to match. For example, renaming Camera01 to Rolli causes Camera01.Target to become Rolli.Target. The target's name must have the extension .Target. Renaming the target object does not rename the camera object. Clicking the line that connects the camera and its target selects both objects. However, region selection doesn't recognize the link line. If a target camera is already selected, you add its target to the selection by right-clicking the camera, and then choosing Select Target from the quad menu > Tools1 quadrant. Or you can hold down the Ctrl key and click the target to add it to the selection set. Using Cameras Characteristics of Cameras Real-world cameras use lenses to focus the light reflected by a scene onto a focal plane that has a light-sensitive surface. Using Cameras | 5207 Real-world camera measurements. A: Focal length B: Field of view (FOV) Focal Length The distance between the lens and the light-sensitive surface, whether film or video electronics, is called the focal length of the lens. Focal length affects how much of the subject appears in the picture. Lower focal lengths include more of the scene in the picture. Higher focal lengths include less of the scene but show greater detail of more distant objects. Focal length is always measured in millimeters. A 50mm lens is a common standard for photography. A lens with a focal length less than 50mm is called a short or wide-angle lens. A lens with a focal length longer than 50mm is called a long or telephoto lens. Field of View (FOV) The field of view (FOV) controls how much of the scene is visible. The FOV is measured in degrees of the horizon. It is directly related to the focal length of the lens. For example, a 50mm lens shows 46 degrees of the horizon. The 5208 | Chapter 18 Lights and Cameras longer the lens, the narrower the FOV. The shorter the lens, the wider the FOV. Relationship Between FOV and Perspective Short focal lengths (wide FOV) emphasize the distortions of perspective, making objects seem in-depth, looming toward the viewer. Long focal lengths (narrow FOV) reduce perspective distortion, making objects appear flattened and parallel to the viewer. Upper left: Long focal length, narrow FOV Lower right: Short focal length, wide FOV The perspective associated with 50 mm lenses appears normal, partly because it is close to what the eye sees, and partly because such lenses are so widely used for snapshots, news photos, cinema, and so on. Differences Between Camera Objects and Real-World Cameras Many other controls on real-world cameras (such as those for focusing a lens, and advancing film) aren’t needed for computer rendering and have no counterpart in the camera objects. Using Cameras | 5209 The program does have counterparts for the camera movements used in movie making, such as truck, dolly, and pan. See Camera Viewport Controls on page 7604. Procedures To match a real-world camera frame proportion: 1 Choose Rendering > Render Setup. The Render Setup dialog opens. 2 In the Output Size group, click the arrow to display the list of real world output sizes. 3 Select the type you want (both film and video output sizes are available). 4 Right-click the Camera viewport label, and turn on Show Safe Frame. The Safe Frame proportions will match those of the selected output size. Common Camera Parameters Create panel > Cameras > Target button or Free button > Parameters rollout Most of the camera controls are common to both kinds of cameras. This topic describes those controls. Procedures To view a wider area, do either of the following: 1 Use the FOV spinner to increase the camera's field of view. 2 Click a button with a shorter focal length. Use the Lens spinner to give the focal length a value other than the preset "stock" values on the buttons. To view a narrower area, do either of the following: 1 Change the FOV parameter to decrease the camera's field of view. 2 Click a button with a longer focal length. Use the Lens parameter to give the focal length a value other than the preset "stock" values on the buttons. 5210 | Chapter 18 Lights and Cameras In a camera viewport, the FOV button lets you adjust the field of view interactively. The camera viewport Perspective button also changes the FOV in conjunction with dollying the camera. NOTE Only the FOV value is saved with the camera. The focal length value is merely an alternative way to express and select the FOV. To set the camera lens size: 1 In the Stock Lenses group, click a button to choose a stock focal length. 2 Set the Lens spinner to a custom focal length. TIP If you want to maintain the same lens, avoid using the FOV or Perspective controls among the navigation icon buttons, and don't change the FOV spinner. IMPORTANT When a camera viewport is active, changing the Output Size or (custom) Aperture Width in the Render Setup dialog on page 6067 will change the camera's Lens setting. To match a camera to a film or video format: 1 On the Render Setup dialog, in the Output Size groupOutput Size group on page 6124, choose the type of output you want. Use either of the following methods. ■ Choose a preset, such as HDTV (video), from the drop-down list. The Aperture Width is locked to the preset's values. ■ Choose Custom and then set the desired Aperture Width value. (You can adjust the other output values at any later time. They have no affect on the camera lens settings, although they do affect the cropping of the scene.) 2 After setting Aperture Width, set the Lens value for the camera to the type of camera lens you want to emulate (for example, 50mm). To maintain the same lens, avoid using the FOV or Perspective controls among the navigation icon buttons. Using Cameras | 5211 To find a lens's focal length: ■ To find the focal length of a lens based on changes in aperture width, open the Render Setup dialog on page 6067, choose Custom from the Output Size drop-down list, and specify a value in the Aperture Width spinner. The new value of the camera's Lens parameter is based on the new Aperture Width value. To display a camera's cone: ■ Turn on Show Cone. The camera's field-of-view cone appears outlined in light blue. NOTE A camera's cone is always visible while the camera object is selected, regardless of the Show Cone setting. To display a camera's horizon line: ■ Turn on Show Horizon. A dark gray line appears at the level of the horizon in the camera's viewport. 5212 | Chapter 18 Lights and Cameras The horizon line shown in the viewport. The horizon line might not be visible if the horizon is beyond the camera's field of view, or if the camera is tilted very high or low. To change the environment range: ■ Adjust the value of Near Range or Far Range. By default, the Near Range=0.0 and the Far Range equals the Far clipping plane value. Environment ranges determine the near and far range limits for atmospheric effects you set in the Environment dialog. To see the environment ranges in viewports: ■ Turn on Show. The environment range displays as two planes. The plane closest to the camera is the near range and the one farthest from the camera is the far range. Using Cameras | 5213 To set clipping planes: 1 Turn on Clip Manually. When Clip Manually is off, the camera ignores the location of the Near and Far clipping planes, and their controls are unavailable. The camera renders all geometry within its field of view. 2 Set the Near Clip value to position the near clipping plane. Objects closer to the camera than the Near distance are not visible to the camera and aren't rendered. 3 Set the Far Clip value to position the far clipping plane. Objects farther from the camera than the Far distance are not visible to the camera and aren't rendered. You can set the Near clipping plane close to the camera so that it doesn't exclude any geometry, and still use the Far plane to exclude objects. Similarly, you can set the Far clipping plane far enough from the camera that it doesn't exclude any geometry, and still use the Near plane to exclude objects. The Near value is constrained to be less than the Far value. If the clipping plane intersects an object, it cuts through that object, creating a cutaway view. 5214 | Chapter 18 Lights and Cameras The effect of clipping planes To apply a multi-pass rendering effect to a scene: 1 In the Multi-Pass Effect group, turn on Enable and choose either Depth Of Field or Motion Blur. 2 In the Multi-Pass Effect group, turn on Enable. Depth Of Field is the only multi-pass effect that is provided with 3ds Max by default. 3 In the Multi-Pass Effect group, turn on Enable and choose Depth Of Field. 4 Use the Depth Of Field Parameters rollout on page 5230 or the Motion Blur Parameters rollout on page 5234 to set the values for the effect you chose. 5 Activate a camera viewport. 6 In the Multi-Pass Effect group, click Preview to preview the effect in the camera viewport. The Preview button has no effect if a camera viewport isn't active. 7 Render the scene or animation. Using Cameras | 5215 Interface 5216 | Chapter 18 Lights and Cameras Lens Sets the camera's focal length in millimeters. Use the Lens spinner to give the focal length a value other than the preset "stock" values on the buttons in the Stock Lenses group box. Changing the Aperture Width value on the Render Setup dialog also changes the value in the Lens spinner field. This doesn't change the view through the camera, but it does change the relationship between the Lens value and the FOV value, as well as the aspect ratio of the camera's cone. FOV Direction flyout Lets you choose how to apply the field of view (FOV) value: ■ ■ ■ Horizontal (The default.) Applies the FOV horizontally. This is the standard way to set and measure the FOV. Vertical Applies the FOV vertically. Diagonal Applies the FOV diagonally, from one corner of the viewport to the other. FOV Determines how wide an area the camera views (field of view on page 7972). When FOV Direction is horizontal (the default), the FOV parameter directly sets the arc of the camera's horizon on page 8005, measured in degrees. You can also set the FOV Direction to measure FOV vertically or diagonally. You can also adjust the field of view interactively in a camera viewport on page 7604 by using the FOV button. Orthographic Projection When on, the camera view looks just like a User view. When off, the camera view is the standard perspective-like view. While Orthographic Projection is in effect, the viewport navigation buttons behave as they ordinarily do, except for Perspective. Perspective function still moves the camera and changes the FOV, but the Orthographic Projection cancels the two out, so you don't see any change until you turn off Orthographic Projection. Stock Lenses group 15mm, 20mm, 24mm, 28mm, 35mm, 50mm, 85mm, 135mm, 200mm These preset values set the camera's focal length in millimeters. Type Changes the camera's type from a Target camera on page 5205 to a Free camera on page 5203, and vice versa. Using Cameras | 5217 NOTE When you switch from a target camera to a free camera, any animation applied to the camera's target is lost, because the target object goes away. Show Cone Displays the cone (actually a pyramid) defined by a camera's field of view. The cone appears in the other viewports but does not appear in a camera viewport. Show Horizon Displays the horizon line. A dark gray line appears at the level of the horizon in the camera's viewport. Environment Ranges group Near Range and Far Range Determine the near and far range limits for the atmospheric effects set on the Environment panel on page 6689. Objects between the two limits fade between the Far % and Near % values. Show Displays rectangles within the camera's cone to show the Near and Far range settings. 5218 | Chapter 18 Lights and Cameras Top: Conceptual image of the Near and Far ranges. Bottom: Result after rendering. Clipping Planes group Sets options to define clipping planes on page 7935. In viewports, clipping planes are displayed as red rectangles (with diagonals) within the camera's cone. Clip Manually Turn on to define clipping planes. When Clip Manually is off, geometry closer to the camera than 3 units is not displayed. To override this, use Clip Manually. Near Clip and Far Clip Sets near and far planes. Objects closer than the near clipping plane or farther than the far clipping plane are invisible to the camera. The limit of the Far Clip value is 10 to the power of 32. With manual clipping on, the near clipping plane can be as close to the camera as 0.1 unit. WARNING Extremely large Far Clip values can produce floating-point error, which can cause Z-buffer problems in the viewport, such as objects appearing in front of other objects when they shouldn't. Using Cameras | 5219 Conceptual image of Near and Far clipping planes. Multi-Pass Effect group These controls let you assign a depth-of-field or motion blur effect to the camera. When generated by a camera, these effects generate blurring by rendering the scene in multiple passes, with offsets. They increase rendering time. TIP The depth-of-field and motion blur effects are mutually exclusive. Because they rely on multiple rendering passes, applying both to the same camera could be prohibitively slow. If you want to use both depth-of-field and motion blurring in the same scene, use multi-pass depth-of-field (using these camera parameters) and combine it with object motion blur on page 8063. Enable When on, previewing or rendering uses the effect. When off, the effect is not rendered. Preview Click to preview the effect in an active camera viewport. This button has no effect if the active viewport is not a camera view. 5220 | Chapter 18 Lights and Cameras Effect drop-down list Lets you choose which multi-pass effect to generate, Depth Of Field on page 5230 or Motion Blur on page 5234. These effects are mutually exclusive. Default=Depth Of Field. This list also lets you choose Depth of Field (mental ray) on page 5229, which lets you use the mental ray renderer's depth of field effect. NOTE The rollout for the chosen effect appears, by default, after the Parameters rollout. Render Effects Per Pass When on, applies rendering effects on page 6583, if any are assigned, to each pass of the multi-pass effect (depth of field or motion blur). When off, applies rendering effects only after the passes that generate the multi-pass effect. Default=off. Turning off Render Effects Per Pass can improve the render time for multi-pass effects. Target Distance With a free camera, sets a point to use as an invisible target so that you can orbit a camera around that point. With a target camera, indicates the distance between the camera and its target. Using Transforms to Aim a Camera You can use transforms to aim a camera and change its orientation in the scene. Move on page 959 adjusts the position of the camera object or the position of a target camera’s target on page 5205. Because the target is displayed as a small square, and because it is often in the same area as objects that are the subject of the camera, it can be hard to select by clicking. Select the camera object, right-click, then choose Select Target from the Tools 1 (upper-left) quadrant of the quad menu. You can also choose Cameras from the Selection Filters list on the toolbar, and then click the target. Rotate on page 960 adjusts the orientation of the camera object. This transform is most useful with free cameras on page 5203. You can’t rotate a Target camera about its local X and Y axes, because it is constrained to aim at its target. Use Move to move the camera or its target. Using Cameras | 5221 Also, if you rotate a Target camera to a nearly vertical position, either up or down, the program must flip the Camera view to prevent the up-vector from becoming undefined. If you need a camera to look vertically upward or downward, use a Free camera. In a Camera viewport, you can also use the navigation buttons on page 7604 to adjust the camera interactively. Some navigation buttons, such as Dolly and Orbit actually move the camera or its target. Using Clipping Planes to Exclude Geometry Clipping planes let you exclude some of a scene’s geometry and view or render only certain portions of the scene. Each camera object has a near and a far clipping plane. Objects closer than the near clipping plane or farther than the far clipping plane are invisible to the camera. Clipping planes are useful for rendering selected portions of a scene that has a lot of complex geometry. They can also help you create cutaway views. Left: Clipping plane excludes the foreground chair and the front of the table. Right: Clipping plane excludes the background chair and the rear of the table. 5222 | Chapter 18 Lights and Cameras Clipping plane settings are part of the camera’s parameters on page 5210. The location of each clipping plane is measured along the camera’s line of sight (its local Z axis) in the current units for the scene. You can set the near clipping plane close to the camera so that it doesn’t exclude any geometry, and still use the far plane to exclude objects. Similarly, you can set the far clipping plane far enough from the camera that it doesn’t exclude any geometry, and still use the near plane to exclude objects. The near value is constrained to be less than the far value. If the clipping plane intersects an object, it cuts through that object, creating a cutaway view. (How much of the cutaway object is visible depends on whether the object’s material is two-sided or not.) You can also use clipping planes in non-camera viewports. Simply right-click the viewport label and choose Viewport Clipping on page 7576. WARNING If you use the mental ray renderer on page 6230, geometry outside the clipping planes might still appear in renderings. Using the Horizon to Match Perspective The horizon of a scene is the edge of vision at the height of the camera, parallel with the world coordinate plane. You can view the horizon in camera viewports. Using Cameras | 5223 Horizon line displayed in a camera viewport A camera is level when it and its target are the same height from the world coordinate plane. In other words, the camera’s local Z axis is parallel to the world plane. When the camera is level, the horizon line is centered in the viewport. As the camera tilts up, the horizon line lowers; as it tilts down, the horizon line raises. The horizon line control is in the camera’s Parameters rollout on page 5210. The horizon line can help you match the perspective of your scene to the perspective of a still image. In general, matching perspective involves the following steps: 1 Display the horizon line. Use it to help you adjust the camera and target so they are level. 2 Display the image in the camera viewport. Use Views > Viewport Background and choose Files in the Background Source group. If the image's horizon and the camera horizon don't match, you have to offset the image, perhaps by using a paint program. 5224 | Chapter 18 Lights and Cameras 3 Use Orbit on page 7611 to move the camera until the perspective of the scene roughly matches that of the still image. 4 Adjust the camera's perspective on page 7607 to fine-tune the perspective match. 5 Use Move on page 959 with the camera or target to position the scene against the background. If you raise or lower the camera, raise or lower the target by an equal amount, in order to keep them level and maintain the horizon. You can also use the Camera Match utility on page 5249 to match the perspective of a camera to a photograph. You will need accurate scene measurements to do so. Animating Cameras You animate a camera by using transforms or changing its creation parameters in different keyframes while the Set Key or Auto Key button is on. The program interpolates camera transforms and parameter values between keyframes, as it does for object geometry. See Auto Key Animation Mode on page 7549 and Track View on page 3503 for further descriptions of animation. This topic summarizes some possibilities and suggests some techniques. In general, it’s best to use a free camera on page 5203 when the camera is to move within the scene; use a target camera on page 5205 when camera position is fixed. Moving a Camera Along a Path Having a camera follow a path is a common way to create architectural walkthroughs, roller coaster rides, and so on. ■ If the camera must bank or tilt close to the vertical (as on a roller coaster), use a free camera. Assign the Path constraint on page 3297 directly to the camera object. The camera follows the path, and you can adjust its point Using Cameras | 5225 of view by adding pans or rotate transforms. This is comparable to filming with a hand-held camera. For a target camera, link both the camera and its target to a dummy object on page 2615, then assign the path constraint to the dummy object. This is comparable to mounting the camera on a tripod on a dolly. It is easier to manage than having, for example, separate paths for the camera and its target. ■ Following a Moving Object You can use a LookAt constraint on page 3312 to have the camera automatically follow a moving object. The LookAt constraint makes the object replace the camera’s target. If the camera is a target camera, its previous target is ignored. ■ If the camera is a free camera, it effectively becomes a target camera. While the LookAt constraint assignment is in effect, the free camera cannot rotate around its local X and Y axes, and can’t be aimed vertically because of the up-vector constraint. An alternative is to link on page 3343 a target camera’s target to the object. ■ Panning You can animate the pan of any camera very easily by following these steps: 1 Select the camera. 2 Activate the Camera viewport. 3 Turn on the Auto Key button and advance the time slider to any frame. 4 Use the Pan button (in the viewport navigation tools) and pan. Orbiting You can animate the orbiting of any camera very easily by following these steps: 1 Select the camera. 2 Activate the Camera viewport. 5226 | Chapter 18 Lights and Cameras 3 Turn on the Auto Key button and advance the time slider to any frame. 4 Use the Orbit button (in the viewport navigation tools) and orbit. The target camera revolves around its target; the Free camera revolves around its target distance. Zooming Zooming moves toward or away from the camera’s subject matter by changing the focal length of the lens. It differs from dollying, which physically moves the camera but leaves the focal length unchanged. You can zoom by animating the value of the camera’s FOV parameter on page 5210. Creating Animated Cutaway Views You can animate the creation of a cutaway view by animating the location of the near or far clipping planes on page 5222, or both. Multi-Pass Rendering Effects Create panel > Cameras > Target or Free > Parameters rollout > Multi-Pass Effect group Multi-Pass Rendering Effects | 5227 Motion blur applied to wings of the flying dragon Cameras can create two kinds of rendering effects: ■ Depth of field on page 5230 ■ Motion blur on page 5234 Multi-pass rendering effects use multiple renderings of the same frame, with slight camera movement between each rendering. The multiple passes simulate the blurring that film in a camera would register under certain conditions. Although it is not a multi-pass effect, the choices in the drop-down list also let you specify the depth-of-field value for the mental ray renderer on page 6230. See Depth of Field Parameter (mental ray Renderer) on page 5229. 5228 | Chapter 18 Lights and Cameras Depth of Field Parameter (mental ray Renderer) Create panel > Cameras > Target button or Free button > Parameters rollout > Multi-Pass Effect group. > Turn on Enable and choose Depth Of Field (mental ray). > Depth of Field Parameters rollout On the Parameters rollout on page 5210, a “Depth Of Field (mental ray)” choice has been added to the Multi-Pass Effect drop-down list to support the mental ray renderer's depth-of-field effects. To use this, turn on Enable in the camera's Multi-Pass Effect group. Also turn on Depth Of Field on the Camera Effects rollout of the Render Setup dialog on page 6067. The mental ray depth-of-field is exclusive of the multi-pass version of the depth-of-field effect. The mental ray renderer also supports motion blur for cameras, but the controls are not on the camera's Parameters rollout: use the Motion Blur toggle on the Object Properties dialog for camera objects. This setting has no effect on the default 3ds Max scanline renderer. NOTE When you use the mental ray renderer, reflected or refracted light rays do not always respect a camera's clipping planes (set in the Clipping Planes group of the Parameters rollout). Also, large clipping-plane values can cause poor quality in the rendering of shadow maps. To fix this, narrow the clipping range or use ray-traced shadows. Interface f-Stop Sets the camera's f-Stop. Increasing the f-Stop value narrows the depth of field, and decreasing the f-Stop value broadens the depth of field. Default=2.0. The f-Stop can have a value less than 1.0. This is not realistic in terms of an actual camera, but it can help you adjust the depth of field for scenes whose scale does not use realistic units. Multi-Pass Rendering Effects | 5229 Multi-Pass Depth of Field Parameters for Cameras Create panel > Cameras > Target button or Free button > Parameters rollout > Multi-Pass Effect group > Choose Depth Of Field effect. > Depth of Field Parameters rollout Multi-pass depth of field Top: Focus is in the middle distance, near and far objects are blurred. Bottom left: Focus on near objects, far objects are blurred. Bottom right: Focus on far objects, near objects are blurred. Cameras can generate depth-of-field effects. Depth of field is a multi-pass effect on page 6227. You turn it on in the Parameters rollout on page 5210 for cameras. Depth of field simulates a camera's depth of field by blurring areas 5230 | Chapter 18 Lights and Cameras of the frame at a distance from the camera's focal point (that is, its target or target distance). You can preview depth of field in viewports. Previewing multi-pass depth of field in a shaded and a wireframe viewport IMPORTANT This effect is for the default scanline renderer. The mental ray renderer on page 6230 has its own depth-of-field effect. See Depth of Field Parameter (mental ray Renderer) on page 5229. TIP To reduce the visible effect of multiple camera passes, try setting the antialiasing filter to Blend, with a Width value in the range 4.0 to 5.0, and a Blend value in the neighborhood of 0.1. (You choose the antialiasing filter and adjust its settings in the Default Scanline Renderer rollout on page 6141.) Also, try reducing the Dither Strength value, in the effect's Pass Blending group, to the neighborhood of 0.2. NOTE There is also a depth-of-field rendering effect on page 6683. See also: ■ Multi-Pass Motion Blur Parameters for Cameras on page 5234 Multi-Pass Rendering Effects | 5231 Interface NOTE The multi-pass depth-of-field parameters are animatable. Focal Depth group Use Target Distance When on, uses the camera's target distance as the point about which to offset the camera for each pass. When off, uses the Focal Depth value to offset the camera. Default=on. 5232 | Chapter 18 Lights and Cameras Focal Depth When Use Target Distance is off, sets the depth from which the camera is offset. Can range from 0.0 to 100.0, where 0.0 is at the camera's location and 100.0 is in the extreme distance (effectively, infinity). Default=100.0. Low values of the Focal Depth give wildly blurry results. High Focal Depth values blur the distant portions of the scene. In general, using Focal Depth instead of the camera's Target Distance tends to blur the entire scene. Sampling group Display Passes When on, the rendered frame window displays the multiple rendering passes. When off, the frame window displays only the final result. This control has no effect on previewing depth of field in camera viewports. Default=on. Use Original Location When on, the first rendering pass is in the camera's original location. When off, the first rendering pass is offset like all subsequent passes. Default=on. Total Passes The number of passes used to generate the effect. Increasing this value can increase the effect's accuracy, but at a cost of rendering time. Default=12. Sample Radius The radius by which the scene is shifted to generate blurriness. Increasing this value increases the overall blurriness of the effect. Decreasing it reduces the blurriness. Default=1.0. Sample Bias Weights the blurring toward or away from the Sample Radius. Increasing this value increases the magnitude of depth-of-field blurring, giving a more even effect. Decreasing it decreases the magnitude, giving a more random effect. Can range from 0.0 to 1.0. Default=0.5. Pass Blending group The multiple depth-of-field passes are blended by dithering, which you can control by the parameters in this group. These controls apply only to renderings of the depth-of-field effect, not to previews in viewports. Normalize Weights Passes are blended with random weighting to avoid artifacts such as streaking. When Normalize Weights is on, the weights are normalized, giving a smoother result. When off, the effect is a bit sharper but usually grainier. Default=on. Multi-Pass Rendering Effects | 5233 Dither Strength Controls how much dithering is applied to the rendered passes. Increasing this value increases the amount of dithering, and can make the effect grainier, especially at the edges of objects. Default=0.4. Tile Size Sets the size of the pattern used in dithering. This value is a percentage, where 0 is the smallest tile, and 100 is the largest. Default=32. Scanline Renderer Params group These controls let you disable antialiasing or antialias filtering when you render the multi-pass scene. Disabling these rendering passes can improve render time. These controls apply only to renderings of the depth-of-field effect, not to previews in viewports. Disable Filtering When on, disables the filtering pass. Default=off. Disable Antialiasing When on, disables antialiasing. Default=off. Multi-Pass Motion Blur Parameters for Cameras Create panel > Cameras > Target button or Free button > Parameters rollout > Multi-Pass Effect group > Choose Motion Blur effect. > Motion Blur Parameters rollout 5234 | Chapter 18 Lights and Cameras Above: Motion blur applied to wings of the flying dragon Below: Multiple passes appear in successive refreshes of the rendered frame window. Cameras can generate motion blur effects. Motion blur is a multi-pass effect on page 6227. You turn it on in the Parameters rollout on page 5210 for cameras. Motion blur simulates the motion blur of a camera by offsetting rendering passes based on movement in the scene. You can preview motion blur in viewports. Multi-Pass Rendering Effects | 5235 Previewing multi-pass motion blur in a wireframe and a shaded viewport IMPORTANT This effect is for the default scanline renderer. The mental ray renderer on page 6230 has its own depth-of-field effect. See Motion Blur with the mental ray Renderer on page 6248. TIP To reduce the visible effect of multiple camera passes, try setting the antialiasing filter to Blend, with a Width value in the range 4.0 to 5.0, and a Blend value in the neighborhood of 0.1. (You choose the antialiasing filter and adjust its settings on the Default Scanline Renderer rollout on page 6141.) Also, try reducing the Dither Strength value, in the effect's Pass Blending group, to the neighborhood of 0.2. 5236 | Chapter 18 Lights and Cameras Interface NOTE The multi-pass motion blur parameters are animatable. Sampling group Display Passes When on, the rendered frame window displays the multiple rendering passes. When off, the frame window displays only the final result. This control has no effect on previewing motion blur in camera viewports. Default=on. Total Passes The number of passes used to generate the effect. Increasing this value can increase the effect's accuracy, but at a cost of rendering time. Default=12. Duration (frames) The number of frames in the animation to which the motion blur effect will be applied. Default=1.0. Multi-Pass Rendering Effects | 5237 Bias Changes the blurring so that it appears to derive more from frames before or after the current frame. Range=0.01 to 0.99. Default=0.5. By default, the blurring comes equally from frames before and after the current frame; that is, a blurred object appears at the center of the blurred area. This is the closest to what an actual camera would capture. Increasing the Bias value moves the blurring behind the blurred object, in relation to its direction of motion. Decreasing it moves the blurring in front of the blurred object. Extreme values move most of the blurring very close to the blurred object, which makes it difficult to see. For best results, use intermediate Bias values in the range 0.25 to 0.75. Pass Blending group The multiple motion blur passes are blended by dithering, which you can control by the parameters in this group. These controls apply only to renderings of the motion blur effect, not to previews in viewports. Normalize Weights Passes are blended with random weighting to avoid artifacts such as streaking. When Normalize Weights is on, the weights are normalized, giving a smoother result. When off, the effect is a bit sharper but usually grainier. Default=on. Dither Strength Controls how much dithering is applied to the rendered passes. Increasing this value increases the amount of dithering, and can make the effect grainier, especially at the edges of objects. Default=0.4. Tile Size Sets the size of the pattern used in dithering. This value is a percentage, where 0 is the smallest tile, and 100 is the largest. Default=32. Scanline Renderer Params group These controls let you disable antialiasing or antialias filtering when you render the multi-pass scene. Disabling these rendering passes can improve render time. These controls apply only to renderings of the motion blur effect, not to previews in viewports. Disable Filtering When on, disables the filtering pass. Default=off. Disable Antialiasing When on, disables antialiasing. Default=off. 5238 | Chapter 18 Lights and Cameras Walkthrough Assistant Animation menu > Walkthrough Assistant Walkthrough Assistant lets you easily create a predefined walkthrough animation of your scene by placing a camera on a path and setting the height, turning the camera and viewing a preview. This feature is available from the Animation Menu. Procedures To create a Walkthrough camera: 1 Choose Walkthrough Assistant from the Animation menu. The Walkthrough Assistant floater is displayed. 2 In the Main Controls rollout, click the Create New Camera button. A free camera named Walkthrough_Cam01 is created and displayed in the viewports. The camera is also listed by name in the Cameras list. If the camera is not visible in any viewport, zoom out to see it. Additional rollouts are also displayed in the floater. NOTE You can rename the camera with a more descriptive name from the Modify panel. To set the camera path: 1 After the camera is created, create a path in the scene using the desired spline shape or NURBS curve. NOTE Text and Section are generally not useful shapes for creating a camera path. TIP You will have smoother camera movements if you set the Creation Method for the spline shape to Smooth or Bezier instead of Corner. 2 Click Pick Path from the Path Control group, and select the path you created. 3 Click the Play button or scrub the time slider to see the camera move along the path. Walkthrough Assistant | 5239 4 Activate the Perspective viewport, then click the Set Viewport to Camera button in the Cameras group. Now you can see what the camera sees. You will probably need to adjust the camera height and tilt at this point. To adjust the camera height and tilt: 1 In the Path Control group, turn on Move Path to Eye Level. The path is set to the height specified for Eye Level. 2 Set the desired height using the numerical height spinner. The path moves in the viewports in real time. You can use Select and Move to place the path to the desired height if you find it faster than entering a value. 3 Activate the Top viewport. In the View Controls rollout, move the slider in the Turn Head group to position the camera head towards the desired object in the scene. 4 Use the numerical spinner for Head Tilt Angle to change the angle of the camera head. TIP You can also use Select and Rotate to position the camera head. 5 Play the animation or scrub the time slider to see how the camera presents the scene. To adjust the camera controls: 1 In the Advanced Controls rollout, use the numerical spinner to change the Field of View. If you want less of the scene to be seen, decrease the setting. Conversely, increase the setting if you want more of the scene to display. 2 Set the Target Distance to the range you want objects to be seen clearly in focus. To animate the camera tilting and turning: 1 Move the time slider to Frame 0. 2 Turn on the Auto Key button. 5240 | Chapter 18 Lights and Cameras 3 Slide the Turn Head control to turn the camera head left, center, or right. If desired, adjust the Head Tilt Angle control up or down. 4 Use the time slider to advance the camera to the next place where you want to turn or tilt the camera differently. 5 When you've completed setting rotation keys for the camera, play the animation. 6 If you are not pleased with the results, click the Remove All Head Animation button in the Views Control rollout to quickly delete all the keys. To quickly reset the camera head position, click the Reset Eyes Level button. NOTE Walkthrough Assistant uses a Bezier controller for the camera rotation. If you set too many keys or put keys too close together you may experience unexpected results such as “spinning” where the camera completely rotates about its Z axis. Go to Track View and adjust the rotation keys for the camera to correct this. To render a preview: ■ In the Render Preview rollout, click the Render Preview button to see a preview of what the camera sees. NOTE The current renderer settings, such as mapping and shadows, will affect the preview. To create a targeted camera: 1 In the Main Controls rollout, select Targeted. 2 Click the Create New Camera button. A camera and its target are placed in the scene. The camera is named incrementally and added to the Camera list. The Targeted toggled is also turned on in the Cameras group. NOTE You can also change an existing free camera into a target camera by turning on Targeted. 3 Click the Pick Path button and select a spline. 4 In the Look-At-Camera rollout, click Object. Walkthrough Assistant | 5241 5 Click the Pick Target Object button, and select an object on which you want the camera to focus. The target is moved to the object. If you had selected a path, the target would move to the path. 6 Click the Set Viewport to Camera button. The viewport label changes to reflect the current camera name and displays what the Targeted camera sees. 7 Click the Play Animation button or scrub the time slider to view the animation. 5242 | Chapter 18 Lights and Cameras Interface Main Controls rollout Camera Creation group Create New Camera Automatically creates a free or targeted camera in the scene. Cameras are named Walkthrough_Cam. Cameras List Lists cameras in the scene by name. Targeted Controls whether a selected camera in the Camera list is targeted or free. Turning on Targeted for a free camera will change it to targeted; turning it off for a targeted camera will change it to a free camera. Walkthrough Assistant | 5243 Set Viewport to Camera Changes the active viewport to a camera viewport. Path Control group Pick Path Press this button to select a path in the scene. After a path is selected, the button label changes to the object's name. Click the Clear Path button to disassociate the camera from the selected path. Move Path to Eye Level When turned on, moves the path to the height set for Eye Level. When turned off, it moves the path to its original height when created. Eye Level Allows you to specify a precise height of the path that either raises or lowers the camera view. Render Preview rollout Click to Render Preview Renders a preview. The preview appears in the small window in the Walkthrough Assistant floater. 5244 | Chapter 18 Lights and Cameras View Controls rollout This rollout only displays if a free camera is created or selected. Turn Head group Turn Head Slider Rotates the camera head as it moves along the path. This allows you to create the illusion that you are turning your head as you walk through the scene. Choices are Left, Center, Right. To animate the head turning, use the Auto Key button. This creates Z Rotation keys that can be adjusted in Track View. Head Tilt Angle Rotates the camera as it moves along the path. This creates the illusion that you are tilting your head up or down as you walk through the scene. To animate, use the Auto Key button. This creates X Rotation keys that can be adjusted in Track View. NOTE The Turn Head and Head Tilt Angle controls use a Bezier controller for rotation of the walkthrough camera. If you create too many keys, or place them too closely together you can experience unexpected results. For best results, start at the beginning and add keys as you move to the end, creating as few keys as possible. Reset Eyes Level Constrains the head tilt to be level with the path. Remove All Head Animation Deletes all key frames created when the Auto Key was enabled. Walkthrough Assistant | 5245 Look-At-Camera rollout This rollout only displays if a targeted camera is created or selected. Look-At-Camera group Path When selected, allows you to select a path the camera's target will use. Object When selected, allows you to select an object the camera's target will use. Pick Target Path Press this button to select a path or object in the scene. Click the Clear Path button to disassociate the camera's target from the selected path or object. Advanced Controls rollout Camera Controls group Field of View Adjusts the amount of the scene visible in the viewport and the perspective flare. Extreme values will create distortion in the viewport. 5246 | Chapter 18 Lights and Cameras Target Distance Sets the distance the target is from the camera. This controls the size of the camera icon in the viewport. In a free camera, the point the camera orbits around is controlled by the target distance. Path Controls group Constant Speed Turn this on to maintain a constant speed along a path. When off, the velocity of the object along the path varies depending on the distance between the vertices on the path. Follow Path When this is turned on, the camera stays perpendicular to the path. When this is turned off, the camera does not turn as it follows along the path. Camera Correction Modifier Select a camera. > Right-click. > Tools 1 (upper-left) quadrant of the quad menu > Apply Camera Correction Modifier Select a camera. > Modifiers Menu > Cameras > Camera Correction The Camera Correction modifier applies two-point perspective to a camera view. By default, camera views use three-point perspective, in which vertical lines appear to converge with height. In two-point perspective, vertical lines remain vertical. The amount of correction you need to use depends on how steeply the camera tilts. For example, a camera that looks up from ground level to the top of a high building will need more correction than a camera that looks toward the horizon. NOTE This modifier doesn’t appear on the Modify panel’s Modifier List. Camera Correction Modifier | 5247 Normal camera view (left) and corrected camera view (right) Procedures To apply two-point perspective to a camera: 1 Select a camera. TIP For best results, set a viewport to this camera’s view. The change in perspective appears both in the viewport and when you render this view. 2 Apply the Camera Correction modifier. 3 On the 2-Point Perspective Correction rollout, click Guess. The Camera Correction modifier creates a first-guess Amount value for the two-point perspective. 4 Adjust the Amount and Direction to get the effect you want. In the viewports, the camera’s field-of-view “cone” distorts or moves to show the perspective adjustments. 5 Render the view. 5248 | Chapter 18 Lights and Cameras Interface Amount Sets the amount of correction for two-point perspective. Default=0.0. Direction Biases the correction. Default=90.0. Setting Direction greater than 90.0 biases the correction to the left. Setting it less than 90.0 biases it to the right. Guess Click to have the Camera Correction modifier set a first-guess Amount value. Camera Match Utility Tools menu > Camera Match Utilities panel > Utilities rollout > Camera Match button The Camera Match utility uses a bitmap background photo and five or more special "CamPoint" objects to create or modify a camera so that its position, orientation, and field-of-view matches that of the camera that originally created the photo. Procedures The general process to follow in using Camera Match is described in the following procedures. Camera Match Utility | 5249 To use camera matching: 1 Load a bitmap as a background for the renderer. 2 Load a bitmap as a background for the viewport. 3 Identify on the bitmap at least five features that will be used for the match. These should be objects or corners of objects in the scene that can be identified and tracked. They should remain visually throughout the scene, and should not change their shape too much or they won’t work. 4 Create CameraPoints, which are helper objects found in these locations: Create panel > Helpers > Camera Match > Object Type rollout > CamPoint, and Create menu > Helpers > Camera Point. You must have accurate measurements of distances between at least five features in your scene, which can’t be all on a single plane. Try to use points that are distributed throughout the scene rather than features that are all clustered in the front or back. This will give the most accurate results. 5 Position these CameraPoints to correspond to points in your photo. You can use the Transform Type-In on page 944 to position the points in the correct locations in 3D space. 6 Use the Camera Match utility to assign the CameraPoints to pixel locations on the bitmap. 7 Choose Create Camera and a camera is created to match the one that took the picture. If there are errors and the camera cannot be created, readjust the point positions in 3D space, and reassign them to the bitmap. It’s easy to make a mistake doing either, but once you get it right the match should work. To establish the bitmap background for the renderer: 1 Reset the software and enlarge the Perspective viewport to full screen. 2 From the Rendering menu choose Environment. 3 In the Common Parameters rollout, under Environment Map, click the gray box marked None. This launches the Material/Map Browser. 4 Be sure to set Browse From to New; if it isn’t set already, then choose Bitmap from the list and click OK. The Select Bitmap Image File dialog appears. 5250 | Chapter 18 Lights and Cameras 5 Navigate and select the appropriate bitmap and then choose Open. Use Map is turned on automatically. 6 Render the viewport to verify that the background appears in the rendering. Press Shift+Q to render. To establish the bitmap background to display in the viewport: 1 Choose Views menu > Viewport Background on page 148. This opens the Viewport Background dialog 2 In the Background Source group, click Files. This launches the Select Background Image dialog. 3 Navigate and select the appropriate bitmap and then choose Open. 4 Set Aspect Ratio to Match Bitmap. 5 Make sure Display Background is turned on, and then choose OK. The background appears in the viewport. NOTE You can click the Use Environment Background button, but then you don’t have the Aspect Ratio controls. To create CamPoint objects: 1 In the Helpers group of the Create panel, open the list and select Camera Match. 2 Choose Create menu > Helpers > CamPoint. 3 On the Object Type rollout, click the CamPoint button. 4 Create your CamPoint objects anywhere in the scene, and reselect each of them to enter their absolute coordinates using the Transform Type-In. 5 Open the Keyboard Entry rollout. 6 Enter the coordinates of the first CamPoint object (0,0,0), click the Create button, and then enter the name in the name field. Camera Match Utility | 5251 TIP To use the keyboard, first click in the X field, enter its value, and then press Tab to move to the next field and enter its value. Continue this until you tab to the Create button, and then press Enter to create the CamPoint, followed by Tab to move back to the X field, where you can start again. You can create all the CamPoint objects with default names, and then use the Select By Name floater (Tools > Selection Floater) to select and rename the six pointers. 7 Repeat the above steps for the remaining CamPoint objects. NOTE An alternative method is to create the CamPoint objects anywhere in the scene, and then reselect each of them and enter their absolute coordinates using the Transform Type-In. You now have the CamPoint objects occupying real-world coordinate positions that correspond to the structure in the bitmap image. The last sequence of steps involves using the Camera Match utility to specify the screen coordinate points, one for each CamPoint object, and generating a camera position based on the data. To use the Camera Match utility: 1 On the Utilities panel, click the Camera Match button. The Camera Match utility appears, listing the CamPoint objects. 2 Select the first CamPoint object and click the Assign Position button. 3 Place the cursor over the corresponding feature in the bitmap and click. A small, red cross appears. 4 If the dot is not in the right position, you can either click again with the mouse or adjust the Input Screen Coordinates to tweak its position. 5 Select the second object in the list, and repeat steps 3 and 4. 6 Repeat for all the points. By setting the red crosses, you’ve indicated the X and Y pixel position on the bitmap and correlated it with each CamPoint as it exists in 3D space. 7 Once you have all of the points set, click the Create Camera button. A camera is created in the scene based on the location of the CamPoint objects and the specifications of the screen coordinates points. 5252 | Chapter 18 Lights and Cameras NOTE If the Current Camera Error reading is greater than five, at least one of your screen coordinate points is placed wrong. Check each of them, and review the description following step 5. After reassigning the points, select the existing camera and click the Modify Camera button to recalculate the camera position. 8 Press C to switch the Perspective view to that of the new camera. Interface CamPoint Info rollout List window Displays a list of the CamPoint helper objects in the scene. You select the CamPoint objects from this list to assign screen coordinate points. Note that if you select a CamPoint object in the viewport, it‘s highlighted in this list as well. Input Screen Coordinates X/Y Fine-tunes the position of the screen coordinate points in 2D space. Use This Point Turns off a specific coordinate point without deleting it. Select the corresponding CamPoint in the list, and then turn off Use This Point. This feature is typically used for troubleshooting when the Current Camera Error is too high (greater than five, for example). Camera Match Utility | 5253 Assign Position Click a location on the viewport bitmap to place a screen coordinate point visually against the background image. The point you place corresponds to the currently selected CamPoint object. After activating the Assign Position button, select a CamPoint object from the list, and then click in the viewport at a position on the bitmap background that corresponds with where the associate CamPoint object should be in the 3D scene. After repeating this process with each CamPoint object in the list, you can click the Create Camera button to create a camera that matches the placed coordinates with their associate CamPoint objects. Camera Match rollout Create Camera Creates a camera in the scene whose position, orientation, and field of view is based on the current location of the CamPoint helpers and the assigned screen coordinate points. Modify Camera Modifies the position, orientation and FOV of an existing, selected camera based on the CamPoint helpers and assigned screen coordinate points. Iterations Maximum number of iterations used to calculate the camera position. Default is 500, though a stable solution is usually found in less than 100 iterations. Freeze FOV Prevents the FOV (field of view) of the camera from being changed when using the Create Camera or Modify Camera buttons. Use if the FOV of the camera that took the photograph is known and you want to preserve it. 5254 | Chapter 18 Lights and Cameras Current Camera Error Displays the total error that remains between the placed screen coordinate points, the CamPoint helpers, and the camera position after the final computation. The calculations involved in the camera match are seldom perfect. A good error range is about 0 to 1.5. Close Exits the Camera Match utility. Camera Match Helper Objects Camera Match Helper Create panel > Helpers > Camera Match (from drop-down list) Create menu > Helpers > Camera Point Camera Match helper objects (CamPoints) are used by the Camera Match utility to reproduce in a camera the same settings (position, roll, and FOV) that were used by a real-world camera to shoot a background image. This allows you to view your scene from the same perspective as the background image, which is a key step to mixing computer-generated and photographically-generated images in a single composited shot. Camera point objects are placed in the scene at locations that will be visible in the background photograph. By comparing the X/Y/Z position of several camera point objects to their analogous positions in a background image, the Camera Match utility is able to determine the real-world camera’s settings, and use these settings to either create a new camera or move/reset an existing camera to match them. To see the CamPoint on page 5255 object type, choose CameraMatch from the Object set list. See also: ■ CamPoint Helper on page 5255 ■ Camera Match Utility on page 5249 CamPoint Helper Create panel > Helpers > Camera Match > CamPoint Camera Match Utility | 5255 Create menu > Helpers > Camera Point The CamPoint helper lets you create camera points in your scene. These points are used by the Camera Match on page 5249 utility to match the camera with a photographic background. The virtual camera is positioned to mimic the position of the actual camera that was used to take the photograph. Clicking CamPoint displays the Keyboard Entry and Camera Match Point rollouts, which you use to create and name the camera points. Procedures To create a camera match point: 1 On the Create panel, click the Helpers tab. 2 Choose Camera Match from the list and click the CamPoint button in the Object Type rollout. The button turns yellow when it is active. You are now ready to create a camera point. 3 Choose Create menu > Helpers > Camera Point. 4 Click in the viewport to create a CamPoint helper object. Alternatively, you can use the keyboard to create a CamPoint object by expanding the Keyboard Entry rollout, entering values in the fields, and then clicking Create. To position camera match points in your scene, do one of the following: 1 Create your camera match points using keyboard entry. Use this if you have accurate actual measurements of the locations of the points. 2 Build geometry that matches your scene geometry, and then snap the points to the geometry using snaps. Use this technique when you don’t have measurements and can approximate the geometry. 3 Create your camera match points interactively, and then use Transform Type-In to move them to the correct locations. 5256 | Chapter 18 Lights and Cameras Interface Name and Color rollout Lets you name the CamPoint object before you create it. If you want to name it after you create it, change its name in the Modify panel. Keyboard Entry rollout X, Y, Z Let you enter the X, Y, and Z coordinates where a CamPoint object will be inserted. Field values reflect the current Unit setup. Camera Match Utility | 5257 Create Inserts the CamPoint object into the scene. Camera Match Point rollout Show Axis Tripod Controls whether an axis tripod is displayed with the Camera point object. Default=on. Axis Length Controls the length of the axis tripod. When Show Axis Tripod is on you can watch the tripod change length in the viewport while you adjust the spinner arrows. When Show Axis Tripod is off, you can still make adjustments the Axis Length value, but the axis tripod won't be displayed. 5258 | Chapter 18 Lights and Cameras
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : No XMP Toolkit : Adobe XMP Core 4.0-c316 44.253921, Sun Oct 01 2006 17:14:39 Modify Date : 2008:03:11 13:32:14-04:00 Create Date : 2008:03:11 12:31:42-04:00 Metadata Date : 2008:03:11 13:32:14-04:00 Creator Tool : Unknown Format : application/pdf Title : Untitled Creator : Unknown Document ID : uuid:0a923dac-4c7e-4f2d-ad11-689708af7e15 Instance ID : uuid:30a57344-9329-4f60-8381-f47c2fb90728 Producer : XEP 4.4 build 20050610 Page Count : 2577 Page Layout : SinglePage Author : UnknownEXIF Metadata provided by EXIF.tools