Autodesk Print Preview C 3ds Max 9 User’s Reference Volume 2 3dsmax Ref Vol2
User Manual: autodesk 3ds Max - 9 - User’s Reference Volume 2 Free User Guide for Autodesk 3ds Max Software, Manual
Open the PDF directly: View PDF
.
Page Count: 1848
| Download | |
| Open PDF In Browser | View PDF |
User’s Reference Volume II AUTODESK 3DS MAX 9 ® ® © 2007 Autodesk, Inc. All rights reserved. This publication, or parts thereof, may not be reproduced in any form, by any method, for any purpose. AUTODESK, INC., MAKES NO WARRANTY, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE REGARDING THESE MATERIALS, AND MAKES SUCH MATERIALS AVAILABLE SOLELY ON AN "AS-IS" BASIS. IN NO EVENT SHALL AUTODESK, INC., BE LIABLE TO ANYONE FOR SPECIAL, COLLATERAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING OUT OF PURCHASE OR USE OF THESE MATERIALS. THE SOLE AND EXCLUSIVE LIABILITY TO AUTODESK, INC., REGARDLESS OF THE FORM OF ACTION, SHALL NOT EXCEED THE PURCHASE PRICE OF THE MATERIALS DESCRIBED HEREIN. Autodesk, Inc., reserves the right to revise and improve its products as it sees fit. This publication describes the state of this product at the time of its publication, and may not reflect the product at all times in the future. The following are registered trademarks or trademarks of Autodesk, Inc., in the USA and other countries: 3DEC (design/logo), 3December, 3December.com, 3ds Max, ActiveShapes, Actrix, ADI, Alias, Alias (swirl design/logo), AliasStudio, Alias|Wavefront (design/logo), ATC, AUGI, AutoCAD, AutoCAD Learning Assistance, AutoCAD LT, AutoCAD Simulator, AutoCAD SQL Extension, AutoCAD SQL Interface, Autodesk, Autodesk Envision, Autodesk Insight, Autodesk Intent, Autodesk Inventor, Autodesk Map, Autodesk MapGuide, Autodesk Streamline, AutoLISP, AutoSnap, AutoSketch, AutoTrack, Backdraft, Built with ObjectARX (logo), Burn, Buzzsaw, CAiCE, Can You Imagine, Character Studio, Cinestream, Civil 3D, Cleaner, Cleaner Central, ClearScale, Colour Warper, Combustion, Communication Specification, Constructware, Content Explorer, Create>what’s>Next> (design/logo), Dancing Baby (image), DesignCenter, Design Doctor, Designer’s Toolkit, DesignKids, DesignProf, DesignServer, DesignStudio, Design|Studio (design/logo), Design Your World, Design Your World (design/logo), DWF, DWG, DWG (logo), DWG TrueConvert, DWG TrueView, DXF, EditDV, Education by Design, Extending the Design Team, FBX, Filmbox, FMDesktop, GDX Driver, Gmax, Heads-up Design, Heidi, HOOPS, HumanIK, i-drop, iMOUT, Incinerator, IntroDV, Kaydara, Kaydara (design/logo), LocationLogic, Lustre, Maya, Mechanical Desktop, MotionBuilder, ObjectARX, ObjectDBX, Open Reality, PolarSnap, PortfolioWall, Powered with Autodesk Technology, Productstream, ProjectPoint, Reactor, RealDWG, Real-time Roto, Render Queue, Revit, Showcase, SketchBook, StudioTools, Topobase, Toxik, Visual, Visual Bridge, Visual Construction, Visual Drainage, Visual Hydro, Visual Landscape, Visual Roads, Visual Survey, Visual Syllabus, Visual Toolbox, Visual Tugboat, Visual LISP, Voice Reality, Volo, and Wiretap. The following are registered trademarks or trademarks of Autodesk Canada Co. in the USA and/or Canada and other countries: Backburner, Discreet, Fire, Flame, Flint, Frost, Inferno, Multi-Master Editing, River, Smoke, Sparks, Stone, Wire. clothfx is a trademark of Size8 Software, Inc. mental ray is a registered trademark of mental images GmbH licensed for use by Autodesk, Inc. RE:Flex is a trademark of RE:Vision Effects, Inc. Intel is a registered trademark and the Intel Optimizer Logo is a trademark of Intel Corporation, used under license. Havok is a trademark or registered trademark of Havok.com, Inc. or its affiliates in the United States and/or in other countries. All other brand names, product names, or trademarks belong to their respective holders. Third-Party Software Credits and Attributions OpenEXR Bitmap I/O Plugin © 2003-2005 SplutterFish, LLC. OpenEXR © 2003 Industrial Light and Magic a division of Lucas Digital Ltd. LLC. Zlib © 1995-2003 Jean-loup Gaily and Mark Adler. HDRI Import created 2002 by SplutterFish and Cuncyt Ozdas. Portions Copyrighted © 2000-2005 Size8 Software, Inc. Portions of this software are Copyright 1998-2004 Hybrid Graphics Limited. This product includes Radiance software (http://radsite.lbl.gov/) developed by the Lawrence Berkeley National Laboratory (http://www.lbl.gov/). The JPEG software is copyright © 1991-1998, Thomas G. Lane. All Rights Reserved. Portions Copyrighted mental images GmbH 1989-2002. Portions Copyright © IntegrityWare, Inc.; Npower Software LLC. All rights reserved. Portions Copyright © 1991-1996 Arthur D. Applegate. All rights reserved. Lenzfx and Max R2 Copyright © Digimation, Inc. All rights reserved. GOVERNMENT USE Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in FAR 12.212 (Commercial Computer Software-Restricted Rights) and DFAR 227.7202 (Rights in Technical Data and Computer Software), as applicable. Published By: Autodesk, Inc. 111 McInnis Parkway San Rafael, CA 94903, USA toc Contents 10 Precision and Drawing Aids ........................ 1 Precision and Drawing Aids........................................ 1 Tools for Precision ....................................................... 1 Helpers ........................................................................ 2 Using Units .................................................................. 2 Using Grids.................................................................. 4 Using the Home Grid .................................................. 4 Using Grid Objects ...................................................... 5 Viewing Grid Objects.................................................. 6 AutoGrid ..................................................................... 7 Aligning Objects.......................................................... 8 Aligning Normals...................................................... 10 Setting Standard Snaps.............................................. 11 Setting Snap Options................................................. 12 Measuring Distances ................................................. 13 Measure Distance Tool .............................................. 15 Select And Manipulate ............................................. 15 Standard Helper Objects........................................ 16 Standard Helper Objects ........................................... 16 Dummy Helper.......................................................... 16 Expose Transform Helper ......................................... 17 Grid Helper................................................................ 20 Point Helper............................................................... 23 Tape Helper ............................................................... 24 Protractor Helper ...................................................... 26 Compass Helper ........................................................ 27 Manipulator Helper Objects .................................. 27 Manipulator Helper Objects ..................................... 27 Cone Angle Manipulator........................................... 27 Plane Angle Manipulator .......................................... 29 Slider Manipulator .................................................... 31 Grid Commands ...................................................... 33 Grid Commands ....................................................... 33 Show Home Grid....................................................... 34 Activate Home Grid .................................................. 34 Activate Grid Object.................................................. 34 Align Grid to View .................................................... 35 Snap Commands ..................................................... 35 Snap Commands ....................................................... 35 2D Snap, 2.5D Snap, 3D Snap ................................... 35 Angle Snap Toggle .................................................... 37 Percent Snap Toggle .................................................. 38 Spinner Snap Toggle ................................................. 38 Ortho Snapping Mode .............................................. 38 Polar Snapping Mode ............................................... 39 Grid and Snap Settings .......................................... 41 Grid and Snap Settings.............................................. 41 Snap Settings ............................................................. 41 Snap Override............................................................ 45 Snap Options ............................................................. 46 Home Grid Settings................................................... 49 User Grids Settings.................................................... 51 Drawing Aid Utilities .............................................. 52 Drawing Aid Utilities ................................................ 52 Measure Utility .......................................................... 52 Rescale World Units Utility ....................................... 53 11 Space Warps and Particle Systems ........... 55 Space Warps and Particle Systems ............................ 55 Space Warps ............................................................ 55 Space Warp Objects .................................................. 55 Bind to Space Warp .................................................. 58 Forces ...................................................................... 59 Push Space Warp ....................................................... 59 Motor Space Warp..................................................... 61 Vortex Space Warp .................................................... 63 Drag Space Warp ....................................................... 66 PBomb Space Warp................................................... 68 iv Contents Path Follow Space Warp ............................................ 71 Gravity Space Warp................................................... 73 Wind Space Warp...................................................... 75 Displace Space Warp ................................................. 76 Deflectors ................................................................ 78 POmniFlect Space Warp ........................................... 78 PDynaFlect Space Warp............................................ 81 SOmniFlect Space Warp ........................................... 84 SDynaFlect Space Warp ............................................ 85 UOmniFlect Space Warp .......................................... 85 UDynaFlect Space Warp ........................................... 86 SDeflector Space Warp.............................................. 87 UDeflector Space Warp............................................. 89 Deflector Space Warp................................................ 90 Geometric/Deformable .......................................... 91 FFD(Box) Space Warp .............................................. 91 FFD(Cyl) Space Warp ............................................... 95 Wave Space Warp .................................................... 100 Ripple Space Warp .................................................. 102 Conform Space Warp .............................................. 103 Bomb Space Warp ................................................... 105 Transforms ............................................................ 147 Position Icon Operator............................................ 147 Position Object Operator ........................................ 148 Rotation Operator ................................................... 153 Spin Operator .......................................................... 154 Scale Operator ......................................................... 156 Speed..................................................................... 159 Speed Operator........................................................ 159 Speed By Icon Operator .......................................... 162 Speed By Surface Operator...................................... 167 Keep Apart Operator............................................... 172 Shape..................................................................... 176 Shape Operator........................................................ 176 Shape Facing Operator............................................ 176 Shape Instance Operator......................................... 178 Shape Mark Operator.............................................. 183 Material and Mapping.......................................... 186 Modifier-Based ..................................................... 107 Materials and Mapping in Particle View................. 186 Material Static Operator.......................................... 187 Material Frequency Operator.................................. 189 Material Dynamic Operator.................................... 191 Mapping Operator................................................... 195 Modifier-Based Space Warps .................................. 107 Additional Operators ........................................... 197 Particle Systems.................................................... 108 Cache Operator ....................................................... 197 Display Operator ..................................................... 202 Force Operator ........................................................ 204 Notes Operator ........................................................ 206 Render Operator ..................................................... 206 Script Operator........................................................ 208 Introduction to Particle Systems............................. 108 Particle Flow.......................................................... 109 Particle Flow ............................................................ 109 Using Particle Flow ............................................... 109 How Particle Flow Works........................................ 109 The Life of a Particle................................................ 110 Introductory Tutorial .............................................. 112 Particle Flow FAQ.................................................... 118 Particle Flow User Interface ................................. 125 Particle V iew ......................................................... 125 Particle View............................................................ 125 Particle View Menu Bar........................................... 126 Particle View Event Display..................................... 131 Event Display Right-Click Menu............................. 133 Particle Flow Source ................................................ 135 Particle Flow Keyboard Shortcuts........................... 140 Actions................................................................... 141 Actions..................................................................... 141 Action Time Frames ................................................ 141 Operators .............................................................. 142 Operators................................................................. 142 Birth and Death .................................................... 143 Birth Operator ......................................................... 143 Birth Script Operator .............................................. 145 Delete Operator ....................................................... 146 Flows...................................................................... 208 Flows........................................................................ 208 Empty Flow ............................................................. 209 Standard Flow.......................................................... 209 Tests ....................................................................... 210 Tests ......................................................................... 210 Age Test.................................................................... 211 Collision Test ........................................................... 212 Collision Spawn Test ............................................... 215 Find Target Test ....................................................... 218 Go To Rotation Test................................................. 224 Scale Test.................................................................. 227 Script Test ................................................................ 229 Send Out Test........................................................... 230 Spawn Test ............................................................... 230 Speed Test ................................................................ 233 Split Amount Test .................................................... 234 Split Selected Test .................................................... 235 Split Source Test....................................................... 236 Non-Event-Driven Particle Systems .................... 237 Contents Non-Event-Driven Particle Systems ....................... 237 Using Particle Systems ......................................... 238 Particle System Usage .............................................. 238 Creating a Particle Emitter ...................................... 239 Using Materials with Particle Array ........................ 239 Achieving Particle Motion Blur .............................. 240 Using Mapped Materials with Particle Systems ...... 240 Using Multi/Sub-Object Materials with Particle Systems ................................................................. 242 Using Spawned Particles ......................................... 242 Using Interparticle Collision................................... 243 Spray Particle System .............................................. 244 Snow Particle System............................................... 246 Super Spray Particle System .................................... 249 Blizzard Particle System .......................................... 251 PCloud Particle System ........................................... 253 PArray Particle System ......................................... 256 PArray Particle System ............................................ 256 Basic Parameters Rollout (PArray) ......................... 258 Particle Generation Rollout..................................... 260 Particle Type Rollout ............................................... 262 Rotation and Collision Rollout ............................... 268 Object Motion Inheritance Rollout......................... 269 Bubble Motion Rollout............................................ 270 Particle Spawn Rollout ............................................ 271 Load/Save Presets Rollout ....................................... 274 12 Animation................................................. 275 Animation ............................................................... 275 Animation Concepts and Methods...................... 275 Animation Concepts and Methods......................... 275 Animation Concepts ............................................... 276 Using Auto Key Mode ............................................ 278 Using Set Key Mode ................................................ 280 Spinner Right-Click Menu ...................................... 282 Viewing and Copying Transform Keys ................... 283 Controlling Time..................................................... 285 Setting Time Segments............................................ 286 Moving Through Time............................................ 287 Choosing a Frame Rate and Playback Speed .......... 288 Working with Controllers..................................... 289 Working with Controllers ....................................... 289 Understanding Controllers ..................................... 289 Changing Controller Properties.............................. 291 Assigning Controllers.............................................. 292 Specifying Default Controllers................................ 294 General-Purpose Controllers.................................. 295 Special-Purpose Controllers ................................... 296 Explicit Axis Keys.................................................... 297 Float Controllers...................................................... 297 Controlling Transforms........................................... 298 Controlling Position................................................ 298 Controlling Rotation ............................................... 299 Controlling Colors .................................................. 299 Morph Controllers .................................................. 300 Motion Panel Commands..................................... 301 Trajectories .............................................................. 301 PRS Parameters Rollout .......................................... 303 Key Info (Basic) Rollout/Dialog.............................. 304 Tangent Types.......................................................... 305 Key Info (Advanced) Rollout/Dialog...................... 306 Animation Controllers.......................................... 307 Animation Controllers ............................................ 307 Audio Controller ..................................................... 309 Barycentric Morph Controller ................................ 309 Bezier Controllers.................................................... 310 Block Controller ...................................................... 313 Boolean Controller.................................................. 316 Color RGB Controller (Point3 XYZ Controller) .... 317 Euler XYZ Rotation Controller ............................... 318 Expression Controller........................................... 320 Expression Controller ............................................. 320 Expression Controller Techniques .......................... 324 Layer Controller .................................................... 325 Layer Controller ...................................................... 325 Animation Layers .................................................... 326 Layer Properties Dialog........................................... 333 Create New Animation Layer Dialog ...................... 334 Limit Controller ...................................................... 335 Linear Controller..................................................... 341 List Controller ......................................................... 342 Local Euler XYZ Rotation Controller ..................... 344 Look At Controller .................................................. 344 Master Point Controller........................................... 346 Motion Capture Controller..................................... 347 Noise Controller ...................................................... 353 On/Off Controller ................................................... 355 Position XYZ Controller ......................................... 356 PRS Controller......................................................... 357 Reaction Controllers............................................. 358 Reaction Controllers ............................................... 358 Reaction Manager Dialog........................................ 361 Using Manipulators with Reaction Controllers ...... 369 Scale XYZ Controller............................................... 371 Script Controller...................................................... 372 Smooth Rotation Controller ................................... 374 Spring Controller..................................................... 375 TCB Controllers ...................................................... 377 v vi Contents Transform Script Controller.................................... 379 Waveform Controller .............................................. 381 XRef Controller ....................................................... 383 IK Methods ............................................................ 439 Controller Subdialogs .......................................... 386 IK Solvers................................................................. 440 Audio Controller Dialog ......................................... 386 Attach Controls Dialog (Block Controller) ............ 388 Barycentric Morph Controller Key Info Dialog ..... 388 Block Parameters Dialog (Block Controller).......... 389 Master Block Parameters Dialog (Block Controller) ............................................................ 390 Master Track Key Info Dialog (Master Point Controller) ............................................................ 391 Slave Parameters Dialog (Block Controller) ........... 391 Track View Pick Dialog (Block Controller) ............ 392 History-Independent (HI) IK Solver ..................... 446 Animation Constraints ......................................... 392 Animation Constraints ........................................... 392 Attachment Constraint............................................ 393 Surface Constraint................................................... 396 Path Constraint ....................................................... 398 Position Constraint ................................................. 401 Link Constraint ....................................................... 403 LookAt Constraint .................................................. 406 Orientation Constraint............................................ 409 Inverse Kinematics Methods................................... 439 IK Solvers............................................................... 440 History-Independent (HI) IK Solver...................... 446 White Paper: Swivel Angle of the HI IK Solver ...... 449 HI IK Solver Rollouts (Motion Panel) ................... 453 IK Solver Rollout (HI Solver).................................. 453 IK Solver Properties Rollout (HI Solver) ................ 456 IK Display Options Rollout (HI Solver) ................. 458 Sliding and Rotational Joints (HI Solver) ............... 459 History-Dependent (HD) IK .................................. 461 History-Dependent (HD) IK Solver ....................... 461 Binding Objects (HD Solver).................................. 461 Controlling IK Precision (HD Solver) .................... 463 HD Solver Motion Panel Rollouts........................... 463 HD Joint Settings .................................................. 466 Hierarchies and Kinematics ................................. 416 HD Joint Settings..................................................... 466 Setting Joint Precedence (HD Solver)..................... 467 Using Default Joint Precedence (HD Solver).......... 468 Choosing Child-to-Parent Precedence (HD Solver)................................................................... 469 Choosing Parent-to-Child Precedence (HD Solver)................................................................... 470 Setting Precedence Manually (HD Solver) ............. 471 Terminating Chains (HD Solver)............................ 471 Hierarchies and Kinematics .................................... 416 IK Limb Solver ....................................................... 472 Hierarchies ............................................................ 416 IK Limb Solver......................................................... 472 Hierarchies .............................................................. 416 Linking Strategy ...................................................... 418 Spline IK ................................................................ 473 Wire Parameters ................................................... 411 Wire Parameters ...................................................... 411 Parameter Wiring Dialog ........................................ 412 Linking and Unlinking Objects............................ 421 Linking and Unlinking Objects .............................. 421 Select and Link ....................................................... 422 Unlink Selection ..................................................... 422 Adjusting Pivots ...................................................... 423 Viewing and Selecting Hierarchies ......................... 424 Animating with Forward Kinematics .................. 426 Animating with Forward Kinematics ..................... 426 Using Dummy Objects ............................................ 429 Animating Links...................................................... 430 Adjusting Object Transforms.................................. 432 Locking Object Transforms .................................... 433 Animating Attachment ........................................... 433 Changing Link Inheritance ..................................... 434 Link Inheritance (Selected) Utility ......................... 435 Spline IK .................................................................. 473 Spline IK Solver Dialog ........................................... 477 Spline IK Solver Rollouts......................................... 478 Interactive and Applied IK ................................... 480 Animating with Interactive IK ................................ 480 Animating with Applied IK..................................... 481 Joint Controls........................................................ 483 Setting Joint Parameters .......................................... 483 Activating Joint Axes ............................................... 485 Limiting Joint Action .............................................. 486 Hierarchy Panel Commands................................. 487 Hierarchy Panel Commands ................................... 487 Pivot....................................................................... 487 Pivot ........................................................................ 487 Adjust Pivot Rollout ............................................... 488 Adjust Transform Rollout ....................................... 489 Animating with Inverse Kinematics (IK) ............. 435 IK ............................................................................ 491 Inverse Kinematics (IK) .......................................... 435 IK Terminology ....................................................... 437 IK ............................................................................ 491 HD IK Solver Rollouts ........................................... 491 Contents Object Parameters Rollout (HD Solver) ................ 491 Position/Orientation/Bind to Follow Object (HD Solver) .......................................................... 492 Precedence (HD Solver).......................................... 494 Copying, Pasting, and Mirroring Joint Parameters (HD Solver) ....................................... 495 Sliding and Rotational Joints Rollouts (HD Solver)................................................................... 496 Interactive and Applied IK Rollouts .................... 497 Inverse Kinematics Rollout ..................................... 497 Auto Termination Rollout (Interactive IK)............. 499 Modify Child Keys .................................................. 529 Manual Navigation .................................................. 529 Display Menu ........................................................ 530 Display Menu .......................................................... 530 Show All Tangents .................................................. 531 Keyable Icons .......................................................... 531 Hide/Show Non-Selected Curves ........................... 532 View Menu............................................................... 532 Utilities Menu .......................................................... 533 Track View Quad Menu .......................................... 534 Track View Toolbars ............................................. 535 Track View Hierarchy.............................................. 512 Hierarchy Right-Click Menu................................... 516 Properties (Track View Hierarchy)......................... 519 Sound Options Dialog ............................................ 520 Curve Editor Toolbars ............................................. 535 Dope Sheet Toolbars ............................................... 538 Controller Toolbar................................................... 540 Ranges: Dope Sheet Toolbar ................................... 541 Extras: Dope Sheet Toolbar .................................... 541 Filters ...................................................................... 541 Filters Dialog (Track View) ..................................... 542 Copy Controller ...................................................... 544 Paste Controller ...................................................... 545 Assign Controller ................................................... 546 Delete Controller .................................................... 549 Ignore Animation Range......................................... 549 Respect Animation Range....................................... 550 Make Controller Unique ........................................ 550 Parameter Curve Out-of-Range Types .................. 551 Add Note Track ....................................................... 552 Remove Note Track ................................................ 553 Track View Menus................................................. 521 Editing Keys .......................................................... 554 Track View Menu Bar .............................................. 521 Modes Menu............................................................ 521 Editing Keys............................................................. 554 Edit Keys ................................................................. 554 Snap Frames ........................................................... 554 Lock Selection ........................................................ 555 Align to Cursor........................................................ 556 Add Visibility Track ................................................ 556 Move Keys (Dope Sheet) ........................................ 558 Slide Keys ................................................................ 558 Scale Keys - Time .................................................... 559 Add Keys (Dope Sheet) .......................................... 560 Properties (Track View Key Window) .................... 560 Link Info ................................................................ 499 Link Info .................................................................. 499 Locks Rollout........................................................... 500 Inherit Rollout ........................................................ 500 Track View ............................................................. 501 Track View .............................................................. 501 Working with Track View........................................ 503 Track View Workspace ........................................... 504 Curve Editor ............................................................ 507 Dope Sheet............................................................... 507 Time Ruler ............................................................... 510 Track View Shortcuts .............................................. 510 Track View Hierarchy............................................ 512 Controller Menu.................................................... 521 Controller Menu...................................................... 521 Collapse Controller ................................................. 522 Tracks Menu ............................................................ 524 Keys Menu ............................................................. 524 Keys Menu ............................................................... 524 Use Soft Select ......................................................... 525 Soft Selection Settings ............................................. 525 Curves Menu ........................................................... 525 Time Menu .............................................................. 526 Options Menu ....................................................... 526 Options Menu ......................................................... 526 Interactive Update ................................................... 526 Sync Cursor Time.................................................... 527 Auto Expand............................................................ 527 Auto Select............................................................... 528 Auto Scroll ............................................................... 528 Modify Subtree ....................................................... 528 Track View Utilities ............................................... 561 Track View Utilities ................................................. 561 Randomize Keys Utility .......................................... 562 Create Out of Range Keys Utility ............................ 562 Select Keys By Time Utility ..................................... 563 Euler Filter ............................................................... 564 Current Value Editor ............................................... 565 Edit Time ............................................................... 566 Edit Time ................................................................ 566 vii viii Contents Select Time .............................................................. 566 Delete Time ............................................................. 567 Cut Time ................................................................. 567 Copy Time .............................................................. 568 Paste Time ............................................................... 568 Reverse Time .......................................................... 569 Insert Time ............................................................. 570 Scale Time ............................................................... 570 Exclude Left End Point ........................................... 570 Exclude Right End Point ......................................... 571 Reduce Keys ............................................................ 572 Edit Ranges ........................................................... 573 Edit Ranges ............................................................. 573 Position Ranges ...................................................... 574 Recouple Ranges ..................................................... 574 Editing Tracks: Copying, Pasting, and Handling Instances and References ................. 575 Copying and Pasting Items ..................................... 575 Copying and Pasting Objects.................................. 576 Making Instance and Reference Controllers and Objects Unique .................................................... 577 Curve Editor .......................................................... 578 Curve Editor ........................................................... 578 Move Keys (Curve Editor) ...................................... 579 Scale Keys ............................................................... 580 Scale Values ............................................................. 581 Add Keys (Curve Editor) ........................................ 581 Draw Curves ........................................................... 582 Show Tangents ........................................................ 582 Lock Tangents ......................................................... 583 Apply Ease Curve / Apply Multiplier Curve .......... 584 Remove Ease/Multiplier Curve .............................. 585 On/Off (Curves)...................................................... 585 Ease Curve Out-of-Range Types............................. 585 Multiplier Curve Out-of-Range Types ................... 586 Freeze Non-Selected Curves ................................... 587 Status Bar/View Controls ..................................... 588 Status Bar/View Controls ........................................ 588 Zoom Selected Object ............................................ 588 Select By Name (Track View).................................. 589 Track Sets List.......................................................... 590 Track Sets Editor Dialog.......................................... 591 Key Time Display .................................................... 594 Value Display ........................................................... 594 Show Selected Key Statistics ................................... 595 Pan (Track View) .................................................... 595 Zoom Horizontal Extents ....................................... 595 Zoom Value Extents ............................................... 596 Zoom Track View Key Window ............................. 596 Zoom Region (Track View) .................................... 597 Managing Track View Windows .......................... 597 New Track View....................................................... 597 Delete Track View.................................................... 598 Delete Track View Dialog........................................ 598 Saved Track Views ................................................... 599 Track View Customization ...................................... 599 Track View Toolbar Right-Click Menu ................... 603 Motion Mixer ........................................................ 604 Motion Mixer .......................................................... 604 Using the Motion Mixer ....................................... 604 Using the Motion Mixer .......................................... 604 Adding Tracks to the Mixer..................................... 607 Importing Clips to the Mixer .................................. 609 Working with Clips in the Mixer............................. 611 Filtering Mixer Tracks ............................................. 612 Adjusting Clip Timing............................................. 615 Working with Transitions........................................ 616 Adjusting Track Weight........................................... 619 Adding Time Warps ................................................ 620 Adjusting Biped Balance in the Mixer .................... 622 Exporting Animation to the Biped ......................... 624 Using the Reservoir ................................................. 626 Motion Mixer User Interface ................................ 628 Motion Mixer Interface ........................................... 628 Motion Mixer Menus .............................................. 629 Motion Mixer Dialogs ........................................... 634 Mixer Clip Source Options Dialog.......................... 634 Copy Biped Animation to Clip Dialog.................... 635 Reservoir File Groups Dialog .................................. 635 Mixer Transition Editor Dialog (Biped Object) ..... 636 Mixer Transition Editor Dialog (Non-Biped Object) .................................................................. 638 Pick Nodes Dialog (Motion Mixer) ........................ 641 Transition Optimization Dialog.............................. 641 Motion Mixer Toolbar............................................. 642 Trackgroup Filter Dialog (Biped Object)................ 645 Trackgroup Filter Dialog (Non-Biped Object) ....... 645 Motion Mixer Editor ............................................... 646 Reservoir.................................................................. 649 Mixer Preferences Dialog ........................................ 651 Mixer Rollout .......................................................... 652 Animation Utilities ............................................... 653 Animation Utilities.................................................. 653 Follow/Bank Utility ................................................. 653 Motion Capture Utility ........................................... 655 MACUtilities Utility ................................................ 665 Camera Tracker Utility ......................................... 667 Camera Tracker Utility............................................ 667 Contents Requirements for Camera Tracking........................ 669 Camera Tracker: Movie Rollout.............................. 670 Camera Tracker: Movie Window............................ 671 Camera Tracker: Motion Trackers Rollout ............. 673 Camera Tracker: Movie Stepper Rollout ................ 676 Camera Tracker: Error Thresholds Rollout ............ 677 Camera Tracker: Batch Track Rollout..................... 678 Camera Tracker: Position Data Rollout.................. 679 Camera Tracker: Match Move Rollout.................... 680 Camera Tracker: Move Smoothing Rollout ............ 682 Camera Tracker: Object Pinning Rollout ............... 683 Camera Tracker: Troubleshooting .......................... 685 Dynamics............................................................... 686 Dynamics Utility ..................................................... 686 Edit Object Dialog................................................... 696 Edit Object List Dialog ............................................ 700 Skin Utilities ............................................................ 700 13 reactor ...................................................... 703 reactor...................................................................... 703 Introducing Dynamics Simulation ......................... 707 Special Features in reactor....................................... 712 reactor Helpers ........................................................ 715 Rigid Bodies .......................................................... 716 Rigid Bodies ............................................................ 716 Rigid Body Basics.................................................... 717 Rigid Body Properties ............................................ 717 Compound Rigid Bodies......................................... 722 Rigid Body Collection ............................................ 723 Constraints ............................................................ 724 Constraints .............................................................. 724 Constraint Concepts ............................................... 725 Simple Constraints ............................................... 727 Simple Constraints .................................................. 727 Spring ...................................................................... 727 Linear Dashpot ....................................................... 730 Angular Dashpot .................................................... 732 Cooperative Constraints ...................................... 735 Cooperative Constraints ......................................... 735 Constraint Solver .................................................... 736 Rag Doll Constraint ................................................ 737 Defining Rag Doll Limits ........................................ 743 Hinge Constraint .................................................... 747 Point-Point Constraint ........................................... 750 Prismatic Constraint .............................................. 754 Car-Wheel Constraint ............................................ 757 Point-Path Constraint ............................................ 762 reactor Objects ..................................................... 764 Plane ....................................................................... 764 Motor ...................................................................... 765 Toy Car .................................................................... 766 Fracture ................................................................... 770 Fracture Tips ........................................................... 773 Storing and Accessing Collisions ............................ 774 Deformable Bodies............................................... 777 Deformable Bodies.................................................. 777 Cloth ...................................................................... 778 Cloth ........................................................................ 778 Cloth Modifier ........................................................ 778 Cloth Collection ..................................................... 781 Soft Bodies ............................................................ 783 Soft Bodies............................................................... 783 Soft Body Modifier ................................................. 784 FFD Soft Bodies....................................................... 786 Soft Body Collection .............................................. 788 Rope....................................................................... 789 Rope......................................................................... 789 Rope Modifier ......................................................... 789 Rope Collection ...................................................... 792 Deforming Meshes ............................................... 793 Deforming Meshes (Skin) ....................................... 793 Deforming Mesh Collection ................................... 794 Deformable-Body Constraints............................. 795 Constraining Deformable Bodies ........................... 795 Fixing Vertices in World Space................................ 796 Keyframing Vertices................................................ 797 Attaching Vertices to a Rigid Body ......................... 798 Attaching Vertices to Deforming Meshes (Skin) .... 799 Soft Selection........................................................... 800 Water ..................................................................... 801 Water Simulation..................................................... 801 Water Space Warp ................................................... 801 Rendering Water...................................................... 803 Wind ....................................................................... 803 The reactor Utility................................................. 805 The reactor Utility ................................................... 805 Preview & Animation Rollout................................. 806 Havok 1 World/Havok 3 World Rollout.................. 808 Collisions Rollout .................................................... 810 Display Rollout ........................................................ 812 reactor Utilities........................................................ 813 Properties Rollout ................................................... 815 The Real-Time Preview .......................................... 815 Scripts ...................................................................... 817 Frequently Asked Questions ................................... 821 Troubleshooting ...................................................... 823 ix x Contents 14 character studio ....................................... 831 character studio....................................................... 831 What is character studio? ........................................ 831 What You Should Know to Use character studio.... 832 Understanding Biped .............................................. 833 Understanding Physique ......................................... 834 Understanding Track Editing.................................. 836 Understanding the Workbench............................... 837 Understanding Motion Flow................................... 837 Understanding Crowds ........................................... 838 Understanding character studio Workflow ............ 839 Biped ..................................................................... 843 Biped........................................................................ 843 Creating a Biped ...................................................... 844 Understanding Biped Anatomy ............................. 846 Changing Initial Biped Anatomy ............................ 846 Naming the Biped.................................................... 847 Posing the Biped...................................................... 847 Scaling Links ........................................................... 851 Rubber-Banding Arms and Legs ............................ 852 Biped Display Options ............................................ 853 Deleting a Biped ...................................................... 854 Linking Character Body Parts to the Biped ............ 854 Saving and Loading FIG Files ................................. 855 Footstep Animation ............................................. 856 Footstep Animation ................................................ 856 Creating Footsteps ............................................... 860 Creating Footsteps................................................... 860 Planning for Footsteps ............................................ 860 Choosing a Gait....................................................... 861 Creating Footsteps Automatically........................... 862 Creating Footsteps Manually .................................. 863 Activating Footsteps................................................ 865 Deactivating Footsteps............................................ 865 Understanding Footstep and Body Keys ................ 867 Freeform Animation Between Footsteps ................ 883 Converting Between Footstep and Freeform Animations ........................................................... 885 Freeform Animation ............................................. 886 Freeform Animation ............................................... 886 Creating Freeform Animation ............................. 888 Creating Freeform Animation ................................ 888 Selecting Biped Tracks ............................................ 888 Animating by Moving Links ................................... 890 Animating by Rotating Links.................................. 891 Rotating Multiple Biped Links ................................ 895 Using Controllers .................................................... 896 Using Props ............................................................. 898 Freeform and IK .................................................... 900 Using IK Keyframe Parameters............................... 900 Understanding Walk Cycle Constraints.................. 902 Setting Keys for Feet and Hands ............................. 904 Animating Pivots..................................................... 905 Animating a Quadruped ......................................... 907 Animating IK Attachments ..................................... 908 Editing Freeform Animation ................................ 909 Editing Freeform Animation .................................. 909 Editing Biped Keys .................................................. 909 Copying and Pasting Postures and Poses ............... 910 Mirroring Motion ................................................... 913 Using Layers ............................................................ 913 Editing Trajectory Keys ........................................... 914 Working with Biped Animation ........................... 916 Working with Euler Curves on Biped Animation... 916 Working with XRef Bipeds...................................... 918 Loading, Saving, and Displaying Biped Motion ................................................................ 919 Editing Footstep Motion ......................................... 868 Editing Footstep Placement .................................... 869 Editing Footstep Timing ......................................... 869 Editing Active Footsteps ......................................... 871 Splicing Footsteps.................................................... 872 Animating Legs and Feet......................................... 874 Animating the Upper Body..................................... 874 Adjusting Body Keys in Track View........................ 875 Shifting the Biped’s Balance.................................... 876 Adjusting Vertical Motion....................................... 878 Saving Footstep Animation..................................... 882 Working with Biped Motion Files........................... 919 Loading and Saving BIP Animation ....................... 920 Importing and Exporting Animation Data ............ 921 Motion Mapping: Retargeting Biped Motion......... 921 Merging and Cloning a Character .......................... 922 Combining BIP Motions ......................................... 924 Loading and Saving STP Files ................................. 924 Using Motion-Capture Data ................................... 925 Correcting Posture .................................................. 925 Copying and Pasting Tracks.................................... 926 Repositioning the Biped.......................................... 927 Previewing Biped Motion ....................................... 929 In Place Mode ......................................................... 930 Trajectory Display ................................................... 931 Display Preferences ................................................. 931 Footsteps and Freeform Animation .................... 882 Biped User Interface............................................. 932 Footstep and Freeform Animation ......................... 882 Biped User Interface ................................................ 932 Editing Footstep Motion ...................................... 868 Contents Motion Panel (Biped).............................................. 933 Center of Mass......................................................... 933 Motion Panel Rollouts (Biped)............................. 934 Assign Controller Rollout (character studio) ......... 934 Biped Apps Rollout ................................................. 935 Biped Rollout ........................................................ 936 Biped Rollout........................................................... 936 Save As Dialog (Biped)............................................ 941 Open Dialog (Biped)............................................... 942 Display Preferences Dialog...................................... 944 Track Selection Rollout ........................................... 945 Quaternion/Euler Rollout ....................................... 948 Twist Poses Rollout.................................................. 950 Bend Links Rollout.................................................. 952 Key Info Rollout ...................................................... 954 Keyframing Tools Rollout ....................................... 962 Set Multiple Keys Dialog ......................................... 965 Copy/Paste Rollout.................................................. 966 Layers Rollout.......................................................... 974 Dynamics & Adaptation Rollout ............................ 980 Placing Motions on the Motion Flow Graph .........1027 Creating Transitions ...............................................1028 Creating a Motion Flow Script ...............................1030 Saving, Loading, and Appending Motion Flow Graphs..................................................................1032 Customizing Transitions ........................................1034 Creating Random Motion ......................................1035 Unifying Motion ....................................................1038 Sharing Motion Flow..............................................1039 Setting Up Paths for Motion Flow Files..................1041 Motion Flow User Interface ............................... 1043 Motion Flow Mode.................................................1043 Motion Flow Rollout ..............................................1045 Motion Flow Graph Dialog ....................................1045 Motion Flow Scripts Group....................................1048 Transition Editor ....................................................1051 Create Random Motion Dialog..............................1055 Shared Motion Flow Dialog ...................................1056 Transition Optimization Dialog.............................1058 Clip Properties Dialog............................................1059 Figure Mode .......................................................... 982 Using Motion Capture ........................................ 1059 Figure Mode ........................................................... 982 Structure Rollout ..................................................... 984 Working with Motion-Capture Data .....................1059 Importing Motion-Capture Data...........................1061 Filtering Motion-Capture and Marker Data..........1061 Sliding Footsteps ....................................................1064 Prop Bone ...............................................................1065 Footstep Mode Rollouts ....................................... 988 Footstep Mode......................................................... 988 Footstep Creation Rollout ....................................... 988 Footstep Operations Rollout................................... 990 Create Multiple Footsteps Dialog: Walk ................. 992 Create Multiple Footsteps Dialog: Run................... 995 Create Multiple Footsteps Dialog: Jump................. 997 Convert to Freeform or Footsteps Dialogs ............. 999 Footstep Mode Dialog............................................1000 Track View (Biped) ................................................1002 Biped Color-coded Keys and Trajectories .............1005 Biped Shortcuts ......................................................1006 Using the Workbench......................................... 1008 Working with the Workbench................................1008 Navigating the Workbench.....................................1010 Selecting Workbench Tracks ..................................1011 Analyzing Curves ...................................................1011 Fixing Curves..........................................................1012 Workbench User Interface ................................. 1012 Animation Workbench ..........................................1012 Select Panel .............................................................1016 Analyze Panel .........................................................1017 Fix Panel .................................................................1020 Filters Panel ............................................................1023 Using Motion Flow.............................................. 1026 Working with Motion Flow....................................1026 Motion Capture User Interface .......................... 1065 Motion Capture Rollout.........................................1065 Motion Capture Conversion Parameters Dialog ...1070 Motion Capture Batch File Conversion Dialog .....1075 Marker Display Dialog ...........................................1075 Physique.............................................................. 1076 Physique .................................................................1076 Using Physique ................................................... 1076 Creating a Skin .......................................................1076 Using Physique with a Biped..................................1079 Using Physique with 3ds Max Bones .....................1080 Using Physique with 3ds Max Objects ...................1082 Applying and Initializing Physique........................1083 Previewing Motion.................................................1084 Envelopes and Vertex Assignments .................. 1085 Envelopes................................................................1085 Adjusting Default Envelope Shape.........................1086 Fine-Tuning Envelopes...........................................1088 Customizing Vertex Assignments ..........................1089 Envelope Display Options......................................1090 Working with Deformable Envelopes ....................1090 Working with Rigid Envelopes...............................1091 xi xii Contents Working with Both Deformable and Rigid Envelopes .............................................................1091 Adjusting Link Parameters.....................................1091 Partial Blending and Weight Assignments.............1092 Bulges .................................................................. 1093 Bulges......................................................................1093 Creating Bulges.......................................................1094 Setting Bulge Angles...............................................1095 Fine-Tuning Bulges ................................................1096 Tendons ............................................................... 1096 Tendons ..................................................................1096 Creating Tendons ...................................................1096 Saving and Loading Physique Data........................1098 Reinitializing Physique Settings .............................1098 Working with an Initial Pose..................................1099 Improving Interactive Performance.......................1099 Scaling a Character.................................................1100 Facial Animation ....................................................1100 Tendons Sub-Object...............................................1147 Vertex Sub-Object (Physique)................................1150 Crowd Animation................................................ 1154 Crowd Animation ..................................................1154 Creating a Crowd System .......................................1155 Creating Crowd Helpers.........................................1157 Adjusting Delegate Parameters ..............................1159 Assigning Behaviors ...............................................1159 Directing Delegates ................................................1162 Obstacle Avoidance ................................................1164 Changing Delegate Orientation and Speed............1167 Solving the Simulation ...........................................1168 Linking Objects to Delegates .................................1169 Cognitive Controllers.............................................1170 Using Motion Synthesis ..................................... 1172 Using Motion Synthesis..........................................1172 Biped Crowds .........................................................1172 Non-Biped Crowds.................................................1179 Physique and Modifiers ..................................... 1104 Crowd Animation User Interface ....................... 1182 Combining Physique with Other Modifiers ..........1104 Physique and Free Form Deformations (FFDs) ....1104 Crowd Animation User Interface...........................1182 Crowd Shortcuts.....................................................1182 Physique User Interface ..................................... 1106 Delegate Helper Object ..................................... 1183 Physique User Interface..........................................1106 Physique Rollout.....................................................1106 Physique Level of Detail Rollout ............................1108 Floating Bones Rollout ...........................................1110 Physique Shortcuts .................................................1111 Geometry Parameters Rollout ...............................1183 Motion Parameters Rollout....................................1183 Physique Dialogs ................................................ 1111 Setup Rollout ..........................................................1188 Scatter Objects Dialog ............................................1189 Random Placement Difficulty Dialog....................1195 Object/Delegate Associations Dialog.....................1196 Edit Multiple Delegates Dialog...............................1197 Associate Bipeds With Delegates Dialog................1199 Behavior Assignments and Teams Dialog..............1200 Select Behavior Type Dialog ..................................1205 Select Delegates Dialog...........................................1205 Physique Initialization Dialog................................1111 Reinitialize Physique .............................................1113 Bulge Editor ...........................................................1114 Physique Load Specification Dialog.......................1123 Physique Initialization Rollouts ........................ 1123 Vertex-Link Assignment Rollout ...........................1123 Cross Sections Rollout ...........................................1125 Sub-Object Options Dialogs .............................. 1125 Crowd Helper Object .......................................... 1187 Crowd Helper Object .............................................1187 Setup Rollout ...................................................... 1188 Blending Envelope Display Options Dialog ..........1125 Exclude Envelopes Dialog ......................................1126 Bulge Angle Display Properties Dialog..................1127 Tendon Display Options Dialog.............................1128 Type-In Weights Dialog .........................................1128 Cognitive Controllers ......................................... 1206 Physique Modifier Sub-Object Levels ............... 1129 Behavior Rollout.....................................................1211 Physique Sub-Objects ............................................1129 Envelope Sub-Object..............................................1130 Behaviors ............................................................ 1211 Link Sub-Object .................................................. 1135 Link Sub-Object .....................................................1135 Link Settings Rollout..............................................1136 Joint Intersections Rollout......................................1140 Bulge Sub-Object....................................................1141 Cognitive Controller Editor ...................................1206 State Dialog.............................................................1207 State Transition Dialog...........................................1208 Behavior Rollout ................................................. 1211 Avoid Behavior .......................................................1211 Orientation Behavior .............................................1214 Path Follow Behavior..............................................1216 Repel Behavior .......................................................1218 Scripted Behavior ...................................................1220 Seek Behavior .........................................................1220 Contents Space Warp Behavior .............................................1221 Speed Vary Behavior ..............................................1222 Surface Arrive Behavior .........................................1223 Surface Follow Behavior.........................................1226 Wall Repel Behavior ...............................................1227 Wall Seek Behavior .................................................1229 Wander Behavior....................................................1231 Solve Rollout...........................................................1232 Priority Rollout ......................................................1235 Set Start Frames Dialog ..........................................1237 Smoothing Rollout .................................................1238 Collisions Rollout ...................................................1240 Geometry Rollout...................................................1240 Global Clip Controllers Rollout .............................1241 Vector Field Space Warp .................................... 1241 Vector Field Space Warp.........................................1241 Create Method Rollout...........................................1242 Lattice Parameters Rollout .....................................1242 Obstacle Parameters Rollout ..................................1242 Motion Synthesis ................................................ 1245 Motion Synthesis....................................................1245 Synthesis Dialog ................................................. 1246 Synthesis Dialog .....................................................1246 Motion Clips Panel.................................................1246 State Panel...............................................................1248 Synthesis Panel .......................................................1250 MotionClip Parameters Dialog ..............................1252 Track View Pick Dialog ..........................................1252 ClipState Dialog .................................................. 1253 ClipState Dialog......................................................1253 Speed Panel.............................................................1254 Acceleration Panel ..................................................1256 Pitch Panel ..............................................................1257 Pitch Velocity Panel ................................................1259 Heading Velocity Panel ..........................................1261 Script Panel.............................................................1262 File Formats and Index of Procedures .............. 1263 character studio File Formats.................................1263 Procedures ..............................................................1264 15 Lights and Cameras ............................... 1271 Lights and Cameras................................................1271 Lights ................................................................... 1272 Lights .....................................................................1272 Name and Color Rollout (Lights) ..........................1273 Using Lights ........................................................ 1274 Using Lights............................................................1274 Working with Lights...............................................1274 Properties of Light..................................................1276 Lighting in 3ds Max................................................1279 Guidelines for Lighting ..........................................1280 Positioning Light Objects.......................................1282 Animating Lights....................................................1282 Light Include/Exclude Tool ....................................1283 Light Lister..............................................................1285 Standard Lights .................................................. 1288 Standard Lights ......................................................1288 Target Spotlight ......................................................1289 Free Spotlight..........................................................1290 Target Direct Light..................................................1292 Free Direct Light.....................................................1293 Omni Light .............................................................1295 Skylight...................................................................1296 mr Area Omni Light...............................................1298 mr Area Spotlight ...................................................1299 Photometric Lights ............................................. 1301 Photometric Lights.................................................1301 Photometric Lights: Preset Lights..........................1302 Target Point Light (Photometric)...........................1303 Free Point Light (Photometric)..............................1304 Target Linear Light (Photometric).........................1305 Free Linear Light (Photometric) ............................1307 Target Area Light (Photometric)............................1307 Free Area Light (Photometric)...............................1309 IES Sun Light (Photometric)..................................1309 IES Sky Light (Photometric) ..................................1312 mental ray Sun & Sky ......................................... 1313 mental ray Sun & Sky .............................................1313 mr Sky.....................................................................1318 mr Sun ....................................................................1319 mr Physical Sky ......................................................1321 Isotropic Light Distribution (Photometric Lights)..................................................................1323 Diffuse Distribution (Photometric Lights)............1323 Spotlight Distribution (Photometric Lights).........1324 Web Distribution (Photometric Lights) ................1325 Photometric Webs ..................................................1326 IES Standard File Format .......................................1328 Example of Photometric Data File .........................1329 Common Lamp Values for Photometric Lights.....1329 Common Lighting Rollouts ................................ 1331 General Lighting Parameters .................................1331 Exclude/Include Dialog..........................................1335 Shadow Parameters ................................................1337 Spotlight Parameters ..............................................1338 Advanced Effects Rollout .......................................1341 mental ray Indirect Illumination Rollout (for Lights)..................................................................1343 xiii xiv Contents mental ray Light Shader Rollout ............................1345 Additional Rollouts for Standard Lights ........... 1345 Intensity/Color/Attenuation Parameters ...............1345 Directional Parameters ..........................................1348 Atmospheres and Effects for Lights .......................1349 Add Atmosphere or Effect Dialog..........................1351 Hair Light Attr(ibutes) Rollout ..............................1351 Additional Rollouts for Photometric Lights ..... 1352 Intensity/Color/Distribution Rollout ....................1352 Linear Light Parameters Rollout ............................1354 Area Light Parameters Rollout ...............................1354 Area Light Sampling Rollout..................................1354 Web Parameters Rollout.........................................1355 Rollouts for Specific Shadow Types .................. 1356 Advanced Ray-Traced Parameters Rollout ............1356 Area Shadows Rollout ............................................1357 mental ray Shadow Map Rollout ............................1360 Optimizations Rollout............................................1361 Ray-Traced Shadow Parameters Rollout................1363 Shadow Map Parameters Rollout ...........................1363 Sample Slots and Material Name ...........................1396 Material Type..........................................................1397 Shading Type ..........................................................1398 Material Components.............................................1399 Lights and Shading .................................................1399 Choosing Colors for Realism .................................1400 Using Maps to Enhance a Material ........................1403 Applying a Material to an Object ...........................1405 Mapping Coordinates ............................................1405 Saving a Material ....................................................1406 Material XML Exporter Utility ..............................1407 UVW Remove Utility .............................................1408 Material Editor .................................................... 1409 Material Editor ......................................................1409 Material/Map Browser ...........................................1412 Copying and Pasting: Right-Click Menu for Materials, Maps, Bitmaps, and Colors ................1418 Sample Slots ....................................................... 1420 Cameras .................................................................1365 Free Camera ...........................................................1370 Target Camera ........................................................1371 Sample Slots............................................................1420 Sample Slot Right-Click Menu...............................1422 Dragging and Dropping Maps and Materials ........1423 Drag and Drop Sub-Object Material Assignment ..........................................................1424 Creating a Custom Sample Object .........................1425 Using Cameras .................................................... 1372 Material Editor Tools .......................................... 1427 Characteristics of Cameras ....................................1372 Common Camera Parameters ...............................1373 Using Transforms to Aim a Camera.......................1379 Using Clipping Planes to Exclude Geometry.........1379 Using the Horizon to Match Perspective ...............1380 Animating Cameras ...............................................1381 Material Editor Tools..............................................1427 Material Editor Menu Bar ......................................1428 Reflectance and Transmittance Display.................1430 Sample Type ..........................................................1432 Propagate Materials to Instances............................1432 Backlight ................................................................1432 Sample Slot Background .......................................1433 Sample UV Tiling ..................................................1433 Video Color Check ................................................1434 Make Preview, Play Preview, Save Preview ...........1434 Material Editor Options ........................................1436 Select By Material ..................................................1439 Get Material ...........................................................1439 Put Material to Scene .............................................1440 Assign Material to Selection ..................................1441 Reset Map/Mtl to Default Settings ........................1442 Make Material Copy ..............................................1442 Make Unique (Material Editor) .............................1442 Put to Library .........................................................1443 Material ID Channel ..............................................1443 Material ID Channel Flyout ...................................1444 Show Map in Viewport ..........................................1445 Show End Result ....................................................1446 Go to Parent ...........................................................1446 Cameras............................................................... 1365 Multi-Pass Rendering Effects............................. 1382 Multi-Pass Rendering Effects .................................1382 Depth of Field Parameter (mental ray Renderer) ..1383 Multi-Pass Depth of Field Parameters for Cameras ...............................................................1383 Multi-Pass Motion Blur Parameters for Cameras ..1386 Camera Match Utility ......................................... 1387 Camera Match Utility.............................................1387 Camera Match Helper Objects ........................... 1391 Camera Match Helper ............................................1391 CamPoint Helper....................................................1391 Two-Point Perspective ....................................... 1392 Camera Correction Modifier .................................1392 16 Material Editor, Materials, and Maps ... 1395 Material Editor, Materials, and Maps.....................1395 Designing Materials ........................................... 1395 Designing Materials ...............................................1395 Contents Go Forward to Sibling ...........................................1447 Material/Map Navigator ........................................1447 Pick Material From Object (Eyedropper) .............1448 Name Field (Materials and Maps)..........................1448 Type Button (Materials and Maps) ........................1449 Opacity ...................................................................1488 Diffuse Level ...........................................................1489 Roughness ..............................................................1490 Translucency Setting ..............................................1491 Specular Highlight Controls .............................. 1492 Animating Materials...............................................1449 Creating and Playing Animated Material Previews ...............................................................1450 Synchronizing an Animated Bitmap with the Scene ....................................................................1450 Anisotropic Highlights...........................................1492 Blinn, Oren-Nayar-Blinn, and Phong Highlights ............................................................1493 Metal Highlights.....................................................1494 Multi-Layer Highlights...........................................1495 Translucent Highlights ...........................................1496 Material Editor Subdialogs ................................ 1451 Mapping Standard Material Components ........ 1497 Copy (Instance) Map Dialog..................................1451 Copy or Swap Colors Dialog ..................................1452 Create Material Preview Dialog .............................1452 Duplicate Name Dialog (Material Library) ...........1453 Merge Dialog (Material Library) ...........................1453 Merge Material Library Dialog ..............................1454 Put to Library Dialog .............................................1455 Render Map Dialog ................................................1455 Replace Map Dialog ...............................................1456 Replace Material Dialog .........................................1456 Update Scene Materials Dialog .............................1457 Ambient Color Mapping ........................................1497 Diffuse Color Mapping ..........................................1498 Diffuse Level Mapping ...........................................1499 Diffuse Roughness Mapping ..................................1500 Specular Color Mapping ........................................1500 Specular Level Mapping .........................................1501 Glossiness Mapping................................................1502 Self-Illumination Mapping.....................................1502 Opacity Mapping....................................................1503 Filter Color Mapping..............................................1503 Anisotropy Mapping ..............................................1504 Orientation Mapping .............................................1505 Metalness Mapping ................................................1506 Bump Mapping.......................................................1506 Reflection Mapping ................................................1508 Refraction Mapping ...............................................1509 Displacement Mapping ..........................................1511 Animating Materials........................................... 1449 Materials ............................................................. 1457 Types of Materials ..................................................1457 SuperSampling Rollout ..........................................1459 mental ray Connection Rollout..............................1461 DirectX Manager Rollout .......................................1464 Standard Material............................................... 1465 Standard Material...................................................1465 Shader Basic Parameters Rollout ...........................1466 Understanding Shaders ..........................................1468 Basic Parameters Rollout (Standard Material) ......1470 Extended Parameters Rollout (Standard Material) ..............................................................1471 Maps Rollout (Standard Material) .........................1474 Dynamics Properties Rollout.................................1479 Basic Material Shaders ....................................... 1480 Anisotropic Shader.................................................1480 Blinn Shader ...........................................................1480 Metal Shader...........................................................1481 Multi-Layer Shader.................................................1481 Oren-Nayar-Blinn Shader ......................................1482 Phong Shader .........................................................1482 Strauss Shader ........................................................1483 Translucent Shader .................................................1484 Basic Parameters for Standard Materials ......... 1485 Color Controls........................................................1485 Self-Illumination Setting........................................1487 Raytrace Material ............................................... 1512 Raytrace Material ...................................................1512 Raytrace Basic Parameters Rollout ........................1514 Raytrace Extended Parameters Rollout .................1519 Raytracer Controls Rollout ....................................1521 Raytrace Maps Rollout ...........................................1523 Raytrace Dynamics Properties Rollout..................1527 Raytracer Global Parameters Rollout ....................1528 Raytracing Acceleration Parameters Dialog ..........1531 Raytrace Exclude/Include Dialog...........................1531 Raytrace Antialiaser Dialog: Fast Adaptive Antialiaser............................................................1533 Raytrace Antialiaser Dialog: Multiresolution Adaptive Antialiaser ............................................1534 Architectural Material ........................................ 1535 Architectural Material ............................................1535 Templates Rollout ...................................................1536 Physical Qualities Rollout ......................................1536 Special Effects Rollout ............................................1539 Advanced Lighting Override Rollout.....................1540 xv xvi Contents Cutout Mapping .....................................................1542 mental ray Materials .......................................... 1543 mental ray Materials...............................................1543 mental ray Material ............................................ 1544 mental ray Material ................................................1544 Material Shaders Rollout (mental ray Material) ....1544 Advanced Shaders Rollout (mental ray Material) ..............................................................1548 Arch & Design Material (mental ray) ................. 1549 Arch & Design Material (mental ray) ....................1549 Arch & Design Material (mental ray) – Overview..............................................................1562 Arch & Design Material (mental ray) – Tips & Tricks ...................................................................1569 Car Paint Material/Shader (mental ray).................1576 DGS Material (mental ray).....................................1580 Glass Material (mental ray)....................................1582 Subsurface Scattering (SSS) Materials ...................1583 Matte/Shadow Material ..........................................1584 Compound Materials.......................................... 1587 Compound Materials .............................................1587 Blend Material ........................................................1588 Composite Material................................................1589 Double-Sided Material ...........................................1591 Morpher Material ...................................................1592 Multi/Sub-Object Material.....................................1594 Shellac Material ......................................................1597 Top/Bottom Material..............................................1599 Shell Material..........................................................1600 Advanced Lighting Override Material ...................1601 Lightscape Material ................................................1604 Ink ’n Paint Material...............................................1605 DirectX 9 Shader Material......................................1613 DirectX Viewport Shaders ................................. 1614 LightMap Shader Rollout .......................................1614 Metal Bump Shader Rollout ...................................1614 XRef Material..........................................................1616 Maps .................................................................... 1617 Types of Maps.........................................................1617 Real-World Mapping..............................................1619 Output Rollout .......................................................1621 Missing Map Coordinates Dialog ..........................1623 2D......................................................................... 1624 2D Maps .................................................................1624 Coordinates Rollout (2D) ......................................1625 Noise Rollout (2D) .................................................1630 Bitmap 2D Map ......................................................1631 Select Bitmap Image File Dialog ............................1635 Checker Map ..........................................................1638 Combustion Map ...................................................1639 Gradient Map .........................................................1650 Gradient Ramp Map...............................................1652 Flag Properties Dialog............................................1655 Swirl Map................................................................1656 Tiles Map ................................................................1658 3D......................................................................... 1662 3D Maps .................................................................1662 Coordinates Rollout (3D) ......................................1663 Cellular Map ...........................................................1664 Dent Map................................................................1667 Falloff Map .............................................................1670 Marble Map ............................................................1673 Noise Map...............................................................1674 Particle Age Map ....................................................1675 Particle MBlur Map ................................................1676 Perlin Marble Map..................................................1677 Planet Map..............................................................1678 Smoke Map.............................................................1679 Speckle Map ...........................................................1680 Splat Map................................................................1681 Stucco Map .............................................................1682 Waves Map..............................................................1683 Wood Map..............................................................1684 Compositor ......................................................... 1687 Compositor Maps...................................................1687 Composite Map ......................................................1688 Mask Map ...............................................................1689 Mix Map .................................................................1689 RGB Multiply Map .................................................1691 Color Modifier ..................................................... 1692 Color Modifier Maps..............................................1692 Output Map ............................................................1692 RGB Tint Map ........................................................1693 Vertex Color Map ...................................................1693 Reflection and Refraction .................................. 1695 Reflection and Refraction Maps ............................1695 Flat Mirror Map......................................................1695 Raytrace Map .........................................................1698 Reflect/Refract Map ...............................................1699 Thin Wall Refraction Map......................................1703 Raytrace Map Rollouts ....................................... 1704 Raytracer Parameters Rollout ................................1704 Raytrace: Attenuation Rollout ...............................1706 Raytrace: Basic Material Extensions Rollout .........1707 Raytrace: Refractive Material Extensions Rollout .................................................................1708 mental ray Shaders............................................. 1710 mental ray Shaders .................................................1710 Contents Custom Shaders for 3ds Max .................................1711 mental images Shader Libraries .............................1712 Shaders in the LumeTools Collection ....................1713 Connect Parameter to Shader Dialog (mental ray).......................................................................1713 3ds Max Custom Shaders ................................... 1714 3D Displacement Shader (mental ray)...................1714 Bump Shader (mental ray) .....................................1716 DGS Material Shader (mental ray) ........................1717 Dielectric Material Shader (mental ray) ................1719 Environment Shader (mental ray) .........................1721 Height Map Displacement Shader (mental ray) ....1722 Material to Shader (mental ray) .............................1723 Shader List (mental ray).........................................1723 UV Generator ...................................................... 1724 UV Generator Shader (mental ray)........................1724 UV Generator Parameters Rollout.........................1725 Shaders Rollout (UV Generator) ...........................1727 UV Coordinate Shader (mental ray)......................1728 XYZ Generator .................................................... 1729 XYZ Generator Shader (mental ray)......................1729 XYZ Generator Parameters Rollout .......................1729 Shaders Rollout (XYZ Generator) .........................1730 XYZ Coordinate Shader (mental ray)....................1730 Normal Bump Map ................................................1731 Camera Map Per Pixel Map....................................1732 Material, Mapping, and Vertex Color Utilities .. 1734 Assign Vertex Colors Utility...................................1734 Channel Info Utility ...............................................1738 Clean MultiMaterial Utility....................................1742 Instance Duplicate Maps Utility ............................1744 Index ....................................................... 1749 xvii xviii Contents Precision and Drawing Aids 3ds Max provides tools that give you control over the positioning and alignment of objects in 3D space. With these tools, you can do the following: Using Grid Objects (page 2–5) • Choose display units from the most common real-world measuring systems or define your own. Aligning Normals (page 2–10) • Use the home grid as a construction plane, or use grid objects to position custom construction planes. • Select different options to align objects with grids, points, and normals. • Use 3D object snaps on a modeless dialog as you build and move geometry in your scene. Grid points and lines are among the many snap options. • Use "helper objects" in your work. This category includes grid objects as well as objects used for positioning and measurement. This section presents these brief topics designed to help you quickly start learning how to use the tools that make precision possible: Tools for Precision (page 2–1) Using Units (page 2–2) Using Grids (page 2–4) Using the Home Grid (page 2–4) Aligning Objects (page 2–8) Setting Standard Snaps (page 2–11) Setting Snap Options (page 2–12) Measure Distance Tool (page 2–15) Tools for Precision A set of interrelated tools in the program gives you precise control of the scale, placement, and movement of objects in your scene. These are especially important tools for those who build precise models in real-world units of measurement. Basic Tools The tools for precision are grouped as follows: Units—Define different measurement systems. Besides the generic unit, you have your choice of feet and inches in both decimals and fractions. Metric units range from millimeters to kilometers. You can also define other units. Grids—Include the home grid and special grid objects. Both types of grid can act as construction 2 Chapter 10: Precision and Drawing Aids planes. The software constructs objects using the orientation and position of the active grid. While the home grid is fixed in world space, you can rotate grid objects and place them anywhere in a scene, and align them to other objects and surfaces. You can also give each grid object its own spacing, and display any grid as a dedicated viewport. • Set or vary snap settings as needed in your work. • Use other helper objects like Point and Tape as part of the precision process. As you work, you can change your settings (including the measuring unit) without losing any precision. Object alignment—Matches an object with the position, orientation, or normal of another object, or to a point in space. Helpers Create panel > Helpers Object snaps—Ensure precise placement when creating and rearranging objects. Keyboard shortcuts let you change object snaps as you work. You can also set snaps to find grid lines and intersections. An angle snap sets the increment for rotation, and a percent snap sets the increment for scaling. Helpers—Provide useful assistance, as the name implies. These are specialized tools in the same category as grid objects. A Tape object measures distances in current units, and a Protractor object measure angles. A Grid object defines a construction plane, and a Point object marks a particular spot in 3D space. Create menu > Helpers Helper objects play a supporting role, like stage hands or construction assistants. Several categories of helpers are available from the drop-down list on the Create panel: Standard helpers (page 2–16) Atmospheric Apparatus (page 3–304) Camera Match Helper (page 2–1391) Assembly Head Helper Object (page 1–111) • Character Assembly (page 1–102) Luminaire Helper Object (page 1–111) How the Tools Work Together • The tools themselves establish a general order of use and interaction, although you can always change settings as needed without following this sequence. Manipulator Helper Objects (page 2–27) • Choose a measuring unit. The default is generic units, sufficient for many purposes. Particle Flow (Speed By Icon Operator (page 2–162) and Find Target Test (page 2–218)) VRML97 Helper Objects (page 3–597) reactor (page 2–703) • Set grid spacing (the size of the smallest square), based on the measuring unit. The home grid and grid objects can have their own spacing, separate from the grid spacing. Other helper objects might be available, depending on your configuration. • Move and align grid objects to a useful orientation. Using Units Units are the key to connecting the three-dimensional world of 3ds Max with Using Units the physical world. You define the units you want to use from the Units Setup dialog (page 3–848). • You can specify units in a different system, and they are converted on the fly. For example, if you enter 18/3cm, the result is 0’2.362". Changing Display Units When you change display units, 3ds Max displays measurements in the new unit for your convenience. All dimensions are displayed in the new unit. Essentially, you’re using a new "measuring stick." No object is changed in this process. As in the physical world, objects in the scene maintain their absolute size, regardless of how you measure them. Type-In Entry When you enter any dimension, 3ds Max always assumes the number you enter is expressed in the current units. You can also enter a series of numbers: 3ds Max then converts their sum into the current unit. Here are some examples that assume the current units are in centimeters: • When you enter a dimension of 1’ (one US foot), it converts to 30.48cm. • If you enter a series of numbers such as 14 286 175 (separated by spaces), the series is totaled to 475.0cm. • If you enter 1’ 1 (one US foot and 1 centimeter), this is converted and summed into 31.48cm. When you use US Standard as the display unit scale, you can select either feet or inches as the default for type-in entry. If you select feet and enter 12, the result is 12’ 0". However, if you enter 1’ 2, the software identifies the second digit as inches, producing 1’ 2" as the result. In any unit system, you can enter fractional amounts. For example, assume you’re working in US Standard with feet as the default: • If you enter 18/3, the result is 6’0". • If you enter 18/3", the result is 0’6". Understanding the System Unit 3ds Max keeps track of all measurements in its own internal system unit. No matter what kind of display units you use, measurements are stored in this absolute unit for storage and computation. The default system unit is defined as 1.000 inch. As long as the system unit is left at one inch, you can freely share models and change units on the fly with no effect on the underlying geometry. Except in rare circumstances, you never need to change this default scale. This means you can merge a model created with any standard unit into your scene at true scale. You can change the system unit setting on the System Unit Setup dialog, available from the Units Setup dialog (page 3–848). Changing the system unit is recommended only if your scene has very small (less than one inch) or very large dimensions. See System Unit Setup Dialog (page 3–850) for more information. If you do need to change the system unit, change it before you create or import geometry. Do not change the system unit in an existing scene. 3 4 Chapter 10: Precision and Drawing Aids Using Grids • You can use any view of the home grid as a construction plane by drawing in the viewport in which the grid’s view appears. See Viewing and Navigating 3D Space (page 1–21) for a complete introduction to the home grid. Grid objects—A grid object is a helper object you can create whenever you need a local reference grid or construction plane somewhere other than the home grid. • You can have any number of grid objects in your scene, but only one can be active at a time. • When active, a grid object replaces the home grid in all viewports. One grid establishes the pitch of the boat, another the pitch of the ship Grids are two-dimensional arrays of lines similar to graph paper, except that you can adjust the spacing and other features of the grid to the needs of your work. Grids have these primary uses: • As an aid in visualizing space, scale, and distance. • As construction planes where you create and align objects in your scene. • As a reference system for using the Snap feature to align objects. Home Grid and Grid Objects 3ds Max provides two kinds of grids: the home grid and grid objects. In addition, it includes the AutoGrid feature, an automated way of creating grid objects. Home grid—The home grid is defined by three planes along the world X, Y, and Z axes. Each of these axes passes through the world coordinate system’s origin point (0,0,0). The home grid is fixed; it cannot be moved or rotated. • The home grid is visible by default when you start 3ds Max, but its display can be turned off. • Each grid object has its own set of XY, YZ, and ZX planes. You can freely move and rotate grid objects, placing them at any angle in space, or attach them to objects and surfaces. • You can change a viewport to display a plan (top) view of any active grid object. • Grid objects can be named and saved like other objects, or used once and deleted. AutoGrid—This feature lets you create new objects and grid objects off the surfaces of other objects on the fly. See AutoGrid (page 2–7). Using the Home Grid The home grid provides ready-to-use construction planes, much like a leveled building site marked with stakes and strings. When you create an object in a viewport, the new object is placed on the home grid plane of that viewport. To use the home grid effectively for construction, you often need to change the defaults to the job at hand, analogous to moving the stakes and strings to match your own site plan. Using Grid Objects For example, if you use a grid spacing of one centimeter, you might use a value of 10 so the major grid divisions represent one decimeter. Setting Color and Intensity To improve grid visibility, you can change the intensity or color of the home grid. Choose Customize menu > Customize User Interface > Colors panel (page 3–799). Using Grid Objects Using the home grid to position houses Changing Home Grid Settings The home grid is a single system; its three planes use the same settings for grid spacing and major line divisions. You change these settings from a single panel of the Grid and Snap Settings dialog. To access the Home Grid panel, do one of the following: • Choose Customize menu > Grid And Snap Settings, then click the Home Grid tab. • Right-click any snap button (page 2–35), then click the Home Grid tab. Setting Grid Spacing Grid spacing is the size, in current units, of the grid’s smallest square. The basic idea is to choose a grid spacing that corresponds to your unit of measurement, then choose a larger spacing for multiple units. For example, if you have units set to centimeters, you might make one grid space equal to 1.000 (one unit, or one centimeter in this case). Setting Major Grid Divisions The home grid displays heavier or "major" lines to mark groups of grid squares. You can use these to represent larger units of measurement. Above: Inactive grid object in a scene Below: Activated grid object Grid objects let you bypass the home grid and work on separately defined grids to create and position objects. You can use as many grid objects as you like, each serving as a custom construction plane with its own grid settings. Grid objects are 2D parametric objects, with adjustments for overall size and grid spacing. You can adjust their orientation in world space, and match them to a particular surface or object. 5 6 Chapter 10: Precision and Drawing Aids To activate a grid object: Setting the Display Plane 1. Create a grid object. 2. Choose Views > Grids > Activate Grid Object. You can adjust the visible plane of a selected or activated grid object on the Modify panel. To deactivate a grid object, do one of the following: To set the display plane: • Select and activate another grid object. 1. Open the Modify panel to display the • Choose Views > Grids > Activate Home Grid. • Delete the grid object. Creating and Modifying Grid Objects You find Grid objects in the Create panel > Helpers category. When creating an object, you can also create a temporary "AutoGrid" grid object that’s tangent to an existing object surface at the point you click. To do this, turn on the AutoGrid (page 2–7) check box in the Object Type rollout. You can save this grid by holding the Alt key before you click. Grid objects are named when you create them and are saved with the scene. You can delete them at any time. Like other objects created in 3ds Max, standard grid objects are placed on the grid of the current viewport. By default, this is a plane of the home grid, but can also be another activated grid object. For more information on grid object settings, see Grid (page 2–20). Viewing Grid Objects An activated grid helper object (page 2–20) creates a true plane in 3D space. No matter how small an activated grid object appears on the screen, its plane is effectively infinite, just as if it were a plane of the home grid. However, you can view a given grid object in different ways. Parameters rollout for the selected grid. 2. In the Display group, choose any of the three planes: XY, YZ, or ZX. The grid rotates in world space to display the corresponding plane, always based on the grid’s local axis. You can move or rotate a grid, either before or after setting its display plane. Setting Grid Views You can set the view in any viewport to an orthographic view as well as the display view. To set grid view: 1. Activate the grid object. 2. Right-click a viewport label and choose Views > Grid to display a menu of possible views. 3. Choose Front, Back, Top, Bottom, Right, Left, or Display Planes. Display Planes corresponds to the current setting on the Parameters rollout (XY, YZ, or ZX). The viewport now shows this view of the grid. You can set different viewports to different views of the grid. Objects are always created on a view’s orthographic grid, even if you rotate the angle of view. In other words, you can set up a convenient view and still construct on the chosen plane. Deactivating Grid Objects You can deactivate a grid object in any of the following ways: • Select and activate another grid object. AutoGrid • Choose Views > Grids > Activate Home Grid. • Delete the grid object. When you deactivate a grid object, any viewports based on that grid switch to the corresponding orthographic view. For example, a Grid (Front) viewport becomes a Front viewport. A Grid (Display Planes) viewport always switches to Top view, regardless of the currently displayed plane. AutoGrid Create panel > Any object category > Object Type rollout Extras toolbar > AutoGrid AutoGrid used to position the second block on top of the first AutoGrid lets you automatically create, merge, or import objects on the surface of other objects by generating and activating a temporary construction plane based on normals of the face that you click. This serves as a more efficient way of stacking objects as you create them, rather than building objects and then aligning them as a separate step. You can use objects within an XRef scene as reference when AutoGrid is on. Note: If the Smooth check box is turned on in the Parameters rollout of a parametric object, the construction plane is placed tangent to the face of the surface implied by any smoothing present on the surface, not the actual face of the surface. Procedure Example: To create a box aligned to another object using a temporary construction grid: 1. Create or load a scene containing an object to which you want to align a new box. 7 8 Chapter 10: Precision and Drawing Aids 2. On the Create panel > Standard Primitives > Object Type rollout, click Box. 3. Turn on AutoGrid. 4. Move your cursor over the object to which you want to orient the box you are about to create. The cursor includes an X,Y,Z tripod to help you orient the position of the new object. As you move over the object, the cursor aligns the Z axis to the surface normal. 5. When the orientation is as you want it, click and use the standard drag-release-move-click method to create the box. The box will be created on the designated surface. When you click, a temporary, automatic grid is created, and the newly created object is aligned to that grid. Interface Object Type rollout AutoGrid—AutoGrid is available only after you select an object button (such as Box). When you turn AutoGrid on, the cursor includes an axis tripod to help you orient the grid. Before clicking and as you position the cursor over a visible mesh object, the cursor jumps to the nearest point on that surface. The tripod’s X and Y axes form a plane tangent to the object surface (forming an implied construction grid), and the Z axis is perpendicular to the plane. After creating the object, 3ds Max places it on the temporary construction grid. When creating an object, if the cursor isn’t over another object, 3ds Max places the object on the current active grid. Tip: When you create an object that requires multiple clicks, AutoGrid applies only to the first click. So, for instance, if you want to create a Line spline (page 1–270) that snaps to the faces of a sphere, turn on Snaps (page 2–35) (press the S key), and then open the Grid And Snap Settings dialog (page 2–41) and turn on Face. Note: To make the grid permanent, hold down the Alt key before you click. The grid becomes active and 3ds Max turns AutoGrid off. Aligning Objects You can align a selection consisting of one or more objects, called the source, with a target object. There are many uses for this feature. For precision, an important use is grid alignment. You can create a new grid object and align it to an existing object, either manually after creation or automatically during creation using the AutoGrid (page 2–7) feature. Conversely, you can move an object onto a grid anywhere in your scene. Aligning Objects Reference Coordinate System—Determines the axes used for positional alignment and the size of the bounding box for maximum and minimum positions. To align objects using active grid axes: • Choose Grid as the reference coordinate system from the list on the toolbar. To align two objects using their own axes: • Choose Local as the reference coordinate system. Alignment is then strictly between the two objects. Object bounding boxes determine maximum and minimum positions. Aligning objects by the center, bottom, or top of their bounding boxes Source and Target Objects Alignment involves two entities: one is the source object or selection set, where the process begins; the other is the target object, where the selection process ends. Source object—Object or objects you want to move into alignment with another object. You select one or more source objects to begin the alignment process. Target object—Object used to define the alignment. You select the target object during the alignment process. It cannot be selected beforehand. After selecting the source, choose Tools menu > Align or click the Align button on the Main toolbar, and then select the target object. Next, the Align dialog appears. For discussion of the Align options, see Align (page 1–462). Setting a Coordinate System The effects of alignment depend on the current reference coordinate system, such as View, World, or Local. You should decide which system you want to use before beginning alignment. As a reminder to you during the alignment process, the current reference coordinate system appears in parentheses following the Align Position label in the Align Selection dialog. Basics of Aligning Objects Alignment controls are on a single dialog. As you make a setting, the object being aligned moves immediately to the new position. This lets you experiment with alignment until you get what you want. Settings can be made in any order. You can also work step-by-step, by applying position choices, for example, before deciding on final orientation. You can cancel at any time, returning the scene to its original state. You can also undo any alignment and start over. 9 10 Chapter 10: Precision and Drawing Aids Aligning Multiple Objects Aligning multiple objects to the arrow object (each photo is adjusted in a different correction) When you select multiple objects for alignment, the same settings apply to all of them. However, the effect on each source object can be different. In practice, you’re aligning separate objects at the same time with the same settings. To align a collection of objects as a single unit, select the objects and group (page 1–96) them. The alignment now takes place relative to the pivot and bounding box of the entire group. Sub-Object Alignment You can use Align with any selection that can be transformed. The tripod axis becomes the source for alignment. You do this by accessing the sub-object level of the object before clicking Align. Aligning Normals Normal on the front of the bolt is aligned with the normal of a face on the assembly. 3ds Max lets you align the normals between any two objects. In the case of mesh objects, the alignment is between individual faces, because each face has its own normal. See Normal Align (page 1–465). Basics of Aligning Normals Before you begin, select a view that lets you see both objects you want to align. If necessary, you can navigate the view after selecting the first normal. To see face normals clearly, work in a wireframe viewport. For details on the procedure and dialog settings, see Normal Align (page 1–465). Other Align Options The Align flyout on the main toolbar has other buttons that provide specialized alignments. Align Camera—Orients a camera viewport to a selected face normal, with the normal in the center of the viewport and on the axis of the camera. See Align Camera (page 1–468). Setting Standard Snaps Align to View—Orients a local axis of an object or sub-object selection with the current viewport. Options on the dialog are interactive, as they are on the Normal Align dialog. See Align to View (page 1–468). Place Highlight—Orients a face normal to a light. See Place Highlight (page 1–467) and Lighting in 3ds Max (page 2–1279). Setting Standard Snaps session to session without your having to modify the maxstart.max file. Grid And Snap Settings Dialog and Snaps Toolbar The most commonly used grid and object snaps appear on the Grid and Snap Settings dialog (page 2–41). This is the general sequence for using these snaps: 1. Turn on snapping by clicking the Snaps Toggle button on the main toolbar, and then right-click this button to display the Grid And Snap Settings dialog. Two sets of snap types are available: Standard (the default) and NURBS. Both are discussed in Snap Settings (page 2–41). You can also make commonly used snap settings on the Snaps toolbar (page 2–42). 2. By default, only the Grid Points snap type is Snapping to: endpoints, midpoints, edges Standard snaps give you control in creating, moving, rotating, and scaling objects. You access the snap features in the program from buttons on the main toolbar. You make most snap settings on Grid And Snap Settings, a modeless dialog with four panels. You can move this dialog to any convenient location on your screen and turn options on and off as you work. Panels are reset to defaults for each new session. You can also make commonly used snap settings on the Snaps toolbar (page 2–42). Snap settings are stored in the 3dsmax.ini (page 1–18) file rather than in the MAX file. This means that the state of the snap settings persists from active. Turn on other snap types to activate them. When you create or move objects, these snaps are now in effect anywhere in 3D space, and unaffected by the current transform coordinate system. As you move the cursor, each snap type is marked by a distinctive icon shown on the Snap panel. The current icon indicates the type and position of the next snap. Grid points and grid lines are secondary to the other snap types. For example, if both Grid Point and Vertex are active, the software snaps to a vertex in preference to an equally close grid point. 3. Turn snaps on and off as needed; the easiest way is by pressing the S key. For more information on snaps, see 2D Snap, 2.5D Snap, 3D Snap (page 2–35) and Snap Settings (page 2–41). 11 12 Chapter 10: Precision and Drawing Aids Snap Override Snap Override bypasses currently selected snaps. You use a keyboard-mouse combination or a keyboard shortcut to define a new snap for the next click. You can override on the fly, one snap at a time. dialog or choose Customize menu > Grid And Snap Settings, then click the Options tab. For example, while creating a spline between grid points, you might need to snap to a vertex or midpoint of an object. This is the general procedure: 1. As you use preset snaps to create or move an object, hold down Shift and right-click. This pops up a three-quadrant right-click menu, which you can use to override the current snap setting(s). Note: You can begin the creation or transformation process before accessing the override menu. This typically means that you’ll be holding down the left button as you Shift +right-click. 2. From the Snap Override quadrant, choose the snap type you want to use. The cursor switches to this type. 3. Make the snap. After the snap, currently set snaps are back in effect. In addition, the Snap Override quadrant lets you reuse the last override you used (listed by name), and gives you an option for None. None turns off snapping entirely on the next click. The Snap quad menu also contains an Options quadrant, with toggles for snapping within current transform constraints (default=off) and snapping to frozen objects (default=off). Setting Snap Options You can access a number of snap features from the Options tab of the Grid and Snap Settings dialog. Right-click any of the snap buttons on the main toolbar to display the Grid And Snap Settings See also Snap Options (page 2–46) Display and General Settings Marker settings—Determine the color and size of the snap cursor. To prevent the snap cursor from appearing, turn off Display. Snap Radius settings—Determines how close the cursor needs to approach a snap point before the snap preview or actual snap takes place. These are global settings, affecting all snap interactions, and are measured in terms of the pixels in a "search region" around the active point of the cursor. Snap to Frozen Objects—Normally, if an object is frozen you can’t snap to it; this option lets you snap to frozen objects. Settings for Angle and Percent Snap The following Options settings are for two snap buttons that operate independently of standard snaps. Measuring Distances Angle (deg)—A global setting, in degrees, that determines the angle of rotation for a number of features in the program, including the standard Rotate transform. As you rotate an object (or group of objects), the object moves around a given axis in the increment you set. Angle snap also affects the following: • Pan/Orbit camera controls • FOV and Roll camera settings • Hotspot and Falloff light angles For more information, see Angle Snap (page 2–37). Percent—Sets a percentage increment during a scaling operation. For more information, see Percent Snap (page 2–38). Settings for Spinner Snap You set the spinner snap on the General panel (page 3–815) of the Preferences dialog. Right-click the Spinner Snap button on the main toolbar to display this panel. Spinner snap—Sets a numerical increment for spinner fields. If you’re using generic units of 1 inch, a setting of 12 would let you resize objects by one foot with every click, or add 12 segments to a sphere. The same setting applies to all spinner fields. Since spinner snap is a toggle, you can easily turn it on when needed and use the default at other times. Spinner snap has no effect on dragging a spinner, only on single clicks. Rotating and Scaling with Snaps For more information, see Spinner Snap (page 2–38). The effect of rotating and scaling with snaps depends on whether Auto Key (page 3–717) is on or off: Measuring Distances • With Auto Key on, snap toggles are disabled, while Angle and Percent snaps remain active. Rotation and scaling occur around the pivot point of the object. • With Auto Key off, rotations and scales occur around the snap point. For example, using Vertex snap, you can rotate a box about any of its corners. 3ds Max provides several options for measuring various aspects of your scene. The tape, protractor and compass helpers measure distance, angles and direction respectively. The Measure utility has a floater to display various measurements of any selected object. You can quickly measure the distance between two points with the Measure Distance tool (page 2–15). Translation Options Helper Objects for Measurement By default, the Use Axis Constraints (page 1–437) option is off. The current setting on the Axis Constraints toolbar (XY, for example) has no effect. Turning on this option lets you use snaps in conjunction with axis constraints. Tape Helper The Translation group also lets you toggle display of a rubber band line between the start and end points during a snap operation. If you turn on Specify Length, the length field lets you enter a value in current units. This is like You can create a Tape helper (page 2–24) by dragging between any two points in 3D space, much like using a physical tape measure. You then read the length on the Parameters rollout. 13 14 Chapter 10: Precision and Drawing Aids locking a tape measure to a set length. You can position the tape object and snap to its ends. 4. On the Create panel, click the Helpers button, then click Tape. Move the cursor over the first measurement point until the snap cursor appears, then click and drag to the other measurement point. 5. Read the length of the tape on the Parameters rollout. Protractor The pyramid icon is the tape helper object; the cube is the helper object’s target. • To display length and angle settings, select only the tape helper object (the pyramid icon). • To move the entire tape including its target (the cube icon), select the connecting line. Two sets of World Space Angles give you current readouts to the three world axes (X, Y, Z) and the three world planes (XY, YZ, ZX). Tip: When measuring with precision, it is helpful to use snaps to force the ends of the tape object to exact locations. If there are no specific points to snap to, you can use dummy or point helpers to set points. To measure with a tape helper using snaps: 1. Locate points in the scene to which you can snap to accurately make a measurement. If no points like this exist, create point objects (page 2–23) at measurement extremes. 2. Choose 3D from the Snap Toggle flyout. 3. Right-click the Snap Toggle button to display the Grid and Snap Settings dialog. On the Snaps tab, set the snap type to the type you will use for measurement. For example, if you are going to use point objects for measurement, check the Pivot option so you can snap to the point objects’ pivot points. Close the dialog. The Protractor helper (page 2–26) measures the angle between pivot points of two objects and the protractor object. As with the tape helper, point objects and snap tools can be used to aid in precise measurement of angles. To measure an angle with a protractor: 1. On the Create panel, click the Helpers button, then click Protractor. Click in a viewport to place the protractor object. 2. On the Parameters rollout, click Pick Object 1 and select an object in your scene. The name of the selected object appears above the pick button. A line connects the protractor to the center of the object. 3. Click Pick Object 2 and pick a second object. The angle between the protractor and the two objects appears on the rollout. 4. To move either object while watching the Angle readout, turn on the Pin Stack button in the Modifier Stack rollout. This locks the stack to the Protractor’s Parameters rollout. Compass The Compass helper (page 2–27) establishes an orientation for your scene. You create this object with a single click and drag to define the radius, usually in a Perspective or Top view. On its parameters rollout, you can adjust the apparent Measure Distance Tool radius of the compass rose. Like all helper objects, this object is for reference only and does not render. Measure Utility The Measure Utility (page 2–52) provides measurements of a selected object or shape. Measure Distance Tool Tools menu > Measure Distance The Measure Distance tool lets you quickly calculate the distance between two points, using just two clicks. The calculated distance is displayed in display units (page 3–848) in the status bar. To use the Measure utility: 1. On the Utilities panel, click Measure to display the Measure rollout. 2. Select any shape or object and read out the measurements. If you select multiple objects, the sum of the measurements is displayed. 3. Click New Floater to display a modeless Measure dialog with all the same information. 4. Use the Measure dialog to display the length of a spline, like a line or circle, as you create it. Measure Distance Tool Procedure To measure the distance between two points: 1. Choose Tools menu > Measure Distance. 2. Click in the viewport where you want to start measuring from. 3. Click again in the viewport where you want to measure to. A distance is returned in the status bar. Additional information, detailing the distance along the X, Y, and Z coordinates is displayed as well. The Measure Distance tool quickly calculates the distance between two points. To measure the distance between two points: 1. Choose Tools menu > Measure Distance Select And Manipulate Main Toolbar > Select And Manipulate button 2. Click in the viewport where you want to start measuring. 3. Click in the viewport where you want to measure to. A distance is returned in the Mini Listener. Additional information, detailing the distance along the X, Y, and Z coordinates is displayed in the status bar. The Select And Manipulate tool lets you edit the parameters of certain objects, modifiers, and controllers by dragging "manipulators" in viewports. Note: Unlike Select And Move and the other transforms, this button’s state is non-exclusive. As long as Select mode or one of the transform modes is active, and Select And Manipulate is turned on, you can manipulate objects. However, you must turn off Select And Manipulate before you can select a manipulator helper. You can add these custom manipulators to your scene: 15 16 Chapter 10: Precision and Drawing Aids Cone Angle Manipulator (page 2–27) Dummy Helper (page 2–16) Plane Angle Manipulator (page 2–29) Crowd Helper (page 2–1187) Slider Manipulator (page 2–31) Delegate Helper These features have manipulators built in, which you can use to change parameters on these objects: Expose Transform Helper (page 2–17) IK Solver Properties Rollout (HI Solver) (page 2–456) Reaction Controllers (page 2–358) Target Spotlight (page 2–1289) Target Direct Light (page 2–1292) Grid Helper (page 2–20) Point Helper (page 2–23) Tape Helper (page 2–24) Protractor Helper (page 2–26) Compass Helper (page 2–27) mr Area Spotlight (page 2–1299) See also Free Spotlight (page 2–1290) Atmospheric Apparatus (page 3–304) Spotlight Parameters (page 2–1338) Camera Match Helper (page 2–1391) UVW Map Modifier (page 1–922) Assembly Heads Helper (page 1–111) Primitives (page 1–169) with a Radius parameter have a built-in manipulator for the radius. Manipulator Helper Objects (page 2–27) Particle Flow helpers: SpeedByIcon (page 2–162) and Find Target (page 2–218) VRML97 Helper Objects (page 3–597) Standard Helper Objects Create panel > Helpers > Standard > Object Type rollout reactor Helpers (page 2–715) Dummy Helper Create menu > Helpers Create panel > Helpers > Standard > Object Type rollout > Dummy Create menu > Helpers > Dummy A Dummy helper object is a wireframe cube with a pivot point at its geometric center. It has a name but no parameters, you can’t modify it, and it doesn’t render. Its only real feature is its pivot, used as a center for transforms. The wireframe acts as a reference for transform effects. The standard set of helper objects includes the following: The dummy object is used primarily in hierarchical linkages. For example, you can use a dummy object as a center of rotation by linking a number Expose Transform Helper of different objects to it. When you rotate the dummy, all of its linked children rotate with it. A dummy is often used this way to animate linked motion. Another common usage of a dummy object is in the animation of target cameras. You can create a dummy and position a target camera within the dummy object. Then you can link both the camera and its target to the dummy, and animate the dummy with a path constraint. The target camera will follow the dummy along the path. Dummy objects are always created as cubes. You can change the proportions of dummies by using non-uniform scaling, but avoid this on dummies that are within a hierarchical linkage; this can introduce unexpected results. Procedure To create a dummy object: • Click Dummy and drag a cube to any convenient size. Interface Dummy objects don’t have any parameter rollouts or settings. the corresponding clavicle bone to deform the shoulder area. In the viewports, the Expose Transform helper object looks just like a Point helper (page 2–23). Procedure To use the Transform helper: 1. Click ExposeTm and choose the appearance characteristics from the Display rollout. 2. Adjust the size of the helper object by using the Size spinner on the Display rollout. Default=20.0 3. Click anywhere in your scene to add the helper object. The helper object’s position has no bearing on its functionality. 4. On the Modify panel > Parameters rollout, click the Expose Node button (default label: None) and select the object whose transform values you want to expose. The object’s name appears on the button, and its transform values appear in the fields on the Expose Values rollout. 5. Optionally, turn off Parent and choose a Local Reference Node object. Expose Transform Helper Create menu > Helpers > Standard > ExposeTm The Expose Transform helper exposes values of non-keyed objects for use in expressions and scripts. This lets riggers and animators access a select set of transforms for an object, and between an object and its parent, such as a bone in an IK chain. For example, using the Expose Transform helper, you could write a script or use parameter wiring that tests the angle of an character’s arm bone that’s controlled by IK (thus, has no keys), and once it exceeds a specific value, rotate This option is used by the Local Euler Angles, Distance To Reference, and Angle parameters. If the object has no parent and you don’t specify a Local Reference Node object, these fields use the world center (0,0,0) as the reference node. 6. To use a transform value in a script or expression, first click the M button next to the parameter value. This copies the transform name, using MAXScript notation, to the copy buffer. 7. Paste the contents of the buffer to your script or expression. 17 18 Chapter 10: Precision and Drawing Aids A sample result of this is “$ExposeTransform01.localPositionX”. 3ds Max interprets this as the local position, on the X axis, of the Expose Node object. angle. Click the button, and then select the object. Available only when Parent is off. By default, this is the parent object, but you can turn off Parent and then specify a different object. Interface Parent—When on, the Local Reference Node is set Parameters rollout automatically to the parent of the Expose Node. When off, you can pick an object to refer to for local data. Default=on. This is used by the Local Euler Angles, Distance To Reference, and Angle parameters. If the object has no parent and you don’t specify a Local Reference Node object, these fields use the world center (0,0,0) as the reference node. Rotation Order—These three settings determine the order in which the Expose Transform helper will look for an Euler rotation. This parameter corrects for anomalies that can be introduced when a local rotation value is generated in relation to other rotation values. For example, when Z Order is set to XYZ, the Z value is generated in reference to X and then Y. Or when X Order is set to ZXY, the Z value is generated directly in reference to the parent, regardless of X and Y rotations. Strip NU Scale—When on, removes any These settings let you specify the exposed node, a reference object other than the parent, and rotation and timing parameters. Expose Node—The object from which the values are generated. Click the button, and then select the object. Thereafter, the object name appears on the button. Local Reference Node—The object whose relationship with the Expose Node object is used to generate local data for rotation, distance, and non-uniform scaling that could influence the rotation data. It does not strip non-uniform scaling from the object; only from the values generated. Use Time Offset—When on, lets you specify a frame other than the current one from which to gather data. The Offset value is added to the current frame to derive the frame from which data is gathered. For example, if the current frame is 20 and you wish to gather data from frame 15, turn on Use Time Offset and set Offset to -5. Expose Transform Helper Display rollout Exposed Values rollout Lets you specify how the helper object appears in the viewports. By default, the display type is set to Cross only, and Size is set to 20.0. You can activate multiple display settings if you like. Center Marker—Displays a small X marker at the center of the helper object. Axis Tripod—Displays a tripod axis indicating the position and orientation of the helper object. Cross—Displays an axis-aligned cross. Box—Displays a small axis-aligned box at the center of the helper object. Size—Sets the size for the helper object. Use this setting to minimize the helper object, or increase its size to aid in locating it. Default=20.0. Constant Screen Size—Keeps the size of the helper object constant, regardless of how much you zoom in or out. Draw On Top—Displays the helper object on top (or in front) of all other objects in the scene. This rollout provides readouts of values for all transform values of the Expose Node object. Each value has a button labeled “M” next to it; click this 19 20 Chapter 10: Precision and Drawing Aids button to copy the MAXScript associated with the value to the clipboard, which you can then paste into a script. Display Exposed Values—When on, transform values for the Expose Node object appear on this rollout, and update as the values change. When off, values don’t appear, but the M buttons still function normally. Local Euler Angles—Rotation values with respect to the parent or Local Reference Node object. World Euler Angles—Rotation values in the world coordinate system. You can create any number of grid objects in your scene. You name them when you create them and save them with the scene. You can delete them at any time. Like other objects you create in the software, grid objects are placed on the grid of the current viewport. By default, this is a plane of the home grid, but it can also be another activated grid object. Note: You can use AutoGrid (page 2–7) to create a temporary or permanent user grid off the surface of any object. Local Position—Position values with respect to the Using the Grid Object Expose Node object’s local coordinate system. You can use the grid object as a construction plane on all three orthographic planes in both directions. Here’s how it works: World Position—Position values in the world coordinate system. Bounding Box—The maximum dimensions of the object. Distance to Reference—The distance between the Expose Node object and its parent or the designated Local Reference Node object. If neither exists, this shows the distance to the world center (0,0,0). Angle—The angle between the Expose Node object and its parent or the designated Local Reference Node object. Grid Helper Create panel > Helpers > Standard > Object Type rollout > Grid Create menu > Helpers > Grid The grid, also called User Grid or Custom Grid, is a 2D parametric object with adjustments for overall size and grid spacing. You can move and orient user grids anywhere in world space. In the Parameters rollout of each grid object is a Display group with three options: XY Plane, YZ Plane, and ZX Plane. These determine which of the three planes of the grid object is displayed in the viewport. When you activate a grid object, the displayed plane is the construction plane for all viewports. When you create a grid viewport, you can choose from one of six orthographic views (Front, Top, Left, and so on), or you can choose a special Display Planes grid viewport. (When you press the G key to create a grid viewport, the Display Planes type becomes the default.) The Display Planes type of grid viewport always displays the plane chosen by the three option buttons under Display. Thus, as you switch between XY Plane, YZ Plane, and ZX Plane, the view through the grid viewport switches accordingly, and objects created in that viewport are created on the displayed plane. When you right-click a viewport label (or go to the Layout tab of the Viewport Configuration dialog), you can choose six additional types of grid viewports, based on the six orthographic views. Grid Helper These are available by a cascading Grid menu that provides Left, Right, Front, Back, Top, Bottom, and Display Planes. Each of the orthographic directions is local to the grid object, regardless of its orientation in the scene. When you choose a specific orthographic grid viewport (as opposed to the Display Planes viewport), the construction of objects in that viewport is on the plane specified in the viewport title regardless of the displayed plane of the grid object. The same tools are available with a right-click anywhere in the viewport when a grid helper is selected. • Choose Customize menu > Grid and Snap Settings to display the Grid and Snap Settings dialog (page 2–41). Two tabs are devoted to Grid tools, one for home, another for user grids. You can change parameters of any active grid using the Modify panel. See also You can create more than one viewport based on the same grid object, with each using a different plane. For example, you can have a Grid (Front) viewport and a Grid (Top) viewport, as well as a Grid (Display Planes) viewport. Viewing Grid Objects (page 2–6) When you deactivate a grid object, its remaining viewports show the assigned orthographic view. Thus, a Grid (Front) viewport becomes a Front viewport, for example. A Grid (Display Planes) viewport always reverts to a Top view, regardless of the currently displayed plane. 1. Scaling Not Advised As a rule, don’t use scaling to resize a grid object. Scaling enlarges or reduces the apparent size of the grid object but has no effect on grid spacing. A sphere 20 units in radius created on a grid object appears smaller than another 20-unit sphere created on a scaled-up version of the same grid. If you want to change the actual size of the grid object, select it and go to the Modify panel > Parameters rollout > Grid Size group, and change the Length and Width settings. Locating Grid Tools Grid tools are spread throughout the 3ds Max interface. • In the Views menu, under Grids, are the commands to activate home and user grids. Procedures To create a grid object: Click Create panel > Helpers > Standard > Object Type rollout > Grid. A Parameters rollout appears on the Create panel. 2. In a viewport, drag a rectangle and release the mouse button. This creates and selects a grid object, which appears in white wireframe, divided into four quadrants with coordinate axes at the center. While the newly created grid object is still selected, you can change its settings on the Parameters rollout. You can also create a grid object during object creation. Turn on AutoGrid, then press Alt during object creation. A grid is created at the same time as the object and remains displayed and active. See AutoGrid (page 2–7) for more information. To activate a grid object: A grid object requires activation before use. Standard selection doesn’t activate it unless you turn on the option to do so (see User Grids (page 2–51)). 21 22 Chapter 10: Precision and Drawing Aids Only one grid can be active for construction at a time, whether it’s the home grid or a grid object. Activating a user grid "deactivates" the home grid. Activating a grid object enables options to reactivate the home grid on the Views menu > Grids submenu and the Quad menu. If you have more than one grid object in your scene, you have to activate each one separately. Select the grid object you want to make active and follow the same procedure. Activating another grid object deactivates the current one. 1. Select a grid object. 2. Do one of the following: • From the Views menu, choose Grids > Activate Grid Object. • Right-click the selected grid object and choose Activate Grid from the quad menu. The grid object changes to show its internal grid structure. Except for its main axes, the home grid disappears in all viewports. An activated grid object creates a true plane in 3D space. No matter how small an activated grid object appears on screen, its XY plane is effectively infinite, just as if it were the XY plane of the home grid. 1. Activate the grid object. 2. Create any category of object. 3ds Max creates the object directly on the plane of the grid object, with the object’s Z axis perpendicular to the plane. See Align (page 1–462) for details on aligning objects and grids. Like other objects in the software, you can move and rotate grid objects freely using standard transformation methods. These transforms, along with alignment, are essential in positioning a construction plane in 3D space. To nudge a grid object up or down: 1. Activate the grid object. 2. Press the + or To return to the home grid, do one of the following: • From the Views menu, choose Grids > Activate Home Grid. • Right-click the selected grid object and choose Activate Home Grid from the quad menu. This deactivates the grid object and returns the home grid in all views. If you delete an activated grid object, the home grid also reactivates. You can assign a keyboard shortcut to Activate Home Grid in the Keyboard panel (page 3–793) of the Customize User Interface dialog. This is useful if you need to move back and forth between different grids. To use a grid object as construction plane: When activated, a grid object replaces the home grid as the frame of reference for creating objects. keys on the numeric keypad to move the grid object up or down. The Grid Nudge Distance is controlled in the Viewports panel (page 3–821) of the Preferences dialog. Point Helper Interface Active Color group Determines the color used to draw the grid in viewports when it’s not selected. Gray—The active grid object is two shades of gray. Object Color—The main grid lines use the assigned object color, while the secondary lines use a lighter intensity. Home Color—The grid object uses the home grid color assigned via the Customize User Interface dialog (page 3–792). Home Intensity—The grid object uses the grid intensity settings assigned to the home grid in the Customize User Interface dialog (page 3–792). Display group XY Plane, YZ Plane, ZX Plane—Determines which of the three planes of the grid object are displayed in the viewport. Grid Size group Sets the overall size of the grid object. This size determines the extents of a viewport set to the grid object. It doesn’t affect the useful limits of the grid, which extend infinitely. Length/Width—Specifies the length and width of Point Helper Create menu > Helpers > Point Point provides a specific location in 3D space that can be used as a reference or by other program functions. the grid. Procedure Grid Spacing group To create a point in space: Grid—Specifies the size of the smallest square in the visible grid. This setting appears on the status line when the grid is activated. Note: You can set Grid Spacing when a grid is selected, but you won’t see the grid spacing until the grid is activated. 1. Click Point and check the type of display from the Parameters rollout. 2. Adjust the size of the point object by using the Size spinner in the Parameters rollout. Default=20.0 3. Left-click and drag anywhere in your scene. The point follows the cursor until you release the mouse button, indicating the current location of the point object. 23 24 Chapter 10: Precision and Drawing Aids 4. Move the cursor to where you want the point object and release the mouse button. The point object appears using the display setting you chose. You can move and rotate the point as needed using standard transformation methods. Interface Center Marker—Displays a small X marker at the center of the point object. Axis Tripod—Displays a tripod axis indicating the position and orientation of the point object. The axis remains visible when the point object is no longer selected. Cross—Displays an axis-aligned cross. Box—Displays a small axis-aligned box at the center of the point object. Size—Sets the size for the point object. Use this to minimize the point object, or increase its size to aid in locating it. Default=20. Note: You can also choose to activate multiple display settings. Tape Helper Create panel > Helpers > Standard > Object Type rollout > Tape Create menu > Helpers > Tape Measure Using a tape helper to measure the distance from floor to window frame. Tape provides an on-screen "tape measure" for determining and setting distances. The tape is composed of two named objects, in the same way targeted lights and cameras are. By default, these are named Tape## and Tape##.Target. The tape and target icons are connected by a line representing the current distance between them. You can drag a length (the default), or enter a specific length by turning on Specify Length. You can snap or align either end of the tape or link to objects in your scene. Deleting either end deletes the tape. Constant Screen Size—Keeps the size of the point Note: When you add a Tape helper object, the object constant, regardless of how much you zoom in or out. software automatically assigns a Look At controller (page 2–344) to it, with the tape’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. Draw On Top—Displays the point object on top of all other objects in the scene. Tape Helper Selection You can select a tape-measure object from either end, or from the middle. When you click the connecting line, both ends of the tape object become selected so you can move them as one. Note that the same is true of target cameras and lights. Note: Line selection is available only when clicking with the mouse. Region selection doesn’t work for this. Tip: The Length readout of the tape object is displayed in the Modify panel only when you select the tape end of the object (as opposed to the target or link line). You can lock the Length display by activating the Pin Stack button while the tape end is selected, and then proceed to adjust any part of the tape object or any other object in your scene. (page 2–41). This is because the endpoints are actually pivots. To set a distance: • Turn on Specify Length in the Parameters rollout, enter a length, and then create the tape. The connector line is the length you specified, although you can still set the target to any offset by dragging. You can reorient this line as required. Note: Clearing Specify Length will adjust the connector line length to meet the target and the new length appears in the Length field. Interface See also Measure Distance Tool (page 2–15) Procedures To measure a distance: 1. Click Tape and drag from one point to create the tape, and then drag to a second point and release the mouse button to create the target. The distance between tape and target appears in the Length field. The number in the Length field is gray to indicate that this is a read-only measurement. Note: To snap the tape ends to object vertices, edges and so on, turn on Snap (page 2–35) with the appropriate snap settings activated. 2. Move either end to a new location. The line between stretches to the new distance, shown in the Length field. Note: For accurate results when moving a tape endpoint with Snap, you must turn on Pivot in the Snap Settings panel as well as the types of sub-object you want to snap to; see Snaps Parameters rollout Length—Specifies the length of the tape object. You must select the Specify Length check box to enable this option. Specify Length—Activates the Length parameter setting. Otherwise the tape object’s length will be specified by clicking and dragging in the viewport. 25 26 Chapter 10: Precision and Drawing Aids World Space Angles group To X/Y/Z Axis—Displays the angle of the tape object relative to each axis in world space. To XY/YZ/ZX Plane—Displays the angle of the tape object relative to each of these home planes. Protractor Helper Create panel > Helpers > Standard > Object Type rollout > Protractor Create menu > Helpers > Protractor Protractor measures the angle between a point and any two objects in your scene. The names of the two objects appear above their respective buttons, and the angle formed at the protractor object between the pivot points of the two objects is displayed in the Angle field. Lines are drawn between the protractor and the two selected objects. Note: The line to the first selected object uses the other objects while the stack remains pinned to display the protractor angle. Procedure To use the protractor: 1. After selecting Protractor in the Create panel > Helpers section, click in the viewport to place and create the protractor icon. You can also drag to move it before releasing the mouse button. 2. Click the Pick Object 1 button, and then select one of the objects in the scene. The name of the selected object appears above the button. 3. Click Pick Object 2, and then select a second object in the scene. The Angle parameter shows the angle formed by lines from the protractor object to the two picked objects. Interface Target Line color, and the line for the second selected object uses the color of the protractor. The Target Line color is set with Customize User Interface dialog > Colors panel (page 3–799) > Elements drop-down list > Gizmos group. The Protractor color is set by choosing the Tape Object in Customize User Interface dialog > Colors panel (page 3–799) > Elements drop-down list > Objects group. You can reselect the protractor at any time, enter the Modify panel (page 3–758), and pick new objects to measure. You can move either of the two objects or the protractor itself to change the angle. Note: If you need to watch the Angle readout while moving either of the objects, first select the protractor, then click the Pin Stack button on the Modify panel. You can now select and move the Parameters rollout Pick Object 1—Click this and select the first of the two objects whose angle you want to measure. Pick Object 2—Click this and select the second of the two objects whose angle you want to measure. Angle—Displays the angle formed by the lines from the protractor to the two objects. Compass Helper Compass Helper Create panel > Helpers > Standard > Object Type rollout > Compass Create menu > Helpers > Compass Compass displays as a non-rendering compass rose, with indicators for North, South, East, and West. A compass is part of a Daylight or Sunlight system (page 1–418); you create a compass automatically when you create sunlight. In a Sunlight system, the orientation of the compass indicates the orientation of the scene, relative to the path of the sun (the ecliptic). Use the Compass helper object if you want to create an orientation symbol in your scene, but don’t need to create a sunlight system. Procedure Manipulator Helper Objects Create panel > Helpers > Manipulators > Object Type rollout Create menu > Helpers > Manipulators Manipulator helpers are objects you can create to manipulate other objects. They let you add customized controls to your scene that provide visual feedback in viewports. To control other objects, manipulators use the parameter wiring feature (page 2–411). Manipulators can be especially useful when you create a scene that will be used by more than one animator. There are three kinds of manipulator helpers: Cone Angle Manipulator (page 2–27) To create a compass object: Plane Angle Manipulator (page 2–29) 1. Choose Compass in the Create panel > Helpers Slider Manipulator (page 2–31) section. 2. Click and drag to define the radius of the compass. 3. Select and rotate the compass object to orient it. Interface See also Wire Parameters (page 2–411) Parameter Wiring Dialog (page 2–412) Select And Manipulate (page 2–15) Cone Angle Manipulator Create panel > Helpers > Manipulators > Object Type rollout > Cone Angle button Create menu > Helpers > Manipulators > Cone Angle Parameters rollout Show Compass Rose—Displays the non-rendering compass rose in the viewport. Radius—Specifies the radius of the compass object. The Cone Angle manipulator is a cone whose base you can adjust. By wiring its Angle value to a parameter of another object, you can create a custom control, with visual feedback, within a scene. 27 28 Chapter 10: Precision and Drawing Aids 3. Drag the base of the cone angle manipulator’s cone. The Angle value changes as you drag the manipulator. This value can range between 0.0 and 360.0. To select a cone angle manipulator: Cone angle manipulator 1. Cone angle manipulators are used by a spotlight’s Hotspot and Falloff controls. Turn on Select Object. You can also use Select And Move, Select And Rotate, and the scale options on a cone angle manipulator. Procedures To create a cone angle manipulator: 1. In the Create panel, go to Helpers and choose Manipulators from the drop-down list. 2. Click to turn on Cone Angle. 3. Drag in a viewport, and then release the mouse. The cone angle manipulator is created along the negative Z axis of the viewport in which you drag. In other words, its initial position points away from you. 2. Turn off Select And Manipulate. If you don’t turn off Select And Manipulate, you adjust the manipulator’s Angle value without affecting its properties. 3. Adjust the properties of the selected manipulator. To connect a cone angle manipulator so it controls another object: 1. Select the cone angle manipulator. To change the angle of a cone angle manipulator: Turn on Select And Manipulate. 1. If you are still in the Create panel, turn on Select Object before using the manipulator. Otherwise, it is too easy to create a new one. Tip: 2. In a viewport, move the mouse over the manipulator. The manipulator turns red when the mouse is over it and it is available to be manipulated. Also, a tooltip appears, showing the name of the manipulator and its current value. Note: Select And Manipulate must be off before you can select the manipulator. 2. Choose Animation > Wire Parameters > Wire Parameters. You can also right-click the manipulator and choose Wire Parameters from the Transform (lower-right) quadrant of the quad menu. A pop-up menu appears over the manipulator. 3. In the pop-up menu, choose Object > Angle. 4. Drag to the object you want to manipulate, and click it. A pop-up menu appears over the object. Plane Angle Manipulator 5. In the pop-up menu, choose Object, then the name of the parameter you want to manipulate. The Parameter Wiring dialog (page 2–412) appears. 6. In the Parameter Wiring dialog, make sure the direction goes from the manipulator to the object (or both directions), and then click Connect. 7. Close the Parameter Wiring dialog. Now when you turn on Select And Manipulate and use the manipulator, the object updates under the manipulator’s control. Plane Angle Manipulator Create panel > Helpers > Manipulators > Object Type rollout > Plane Angle button Create menu > Helpers > Manipulators > Plane Angle The Plane Angle manipulator looks like a lever or joystick. By wiring its Angle value to a parameter of another object, you can create a custom control, with visual feedback, within a scene. Interface Angle—The initial angle of the manipulator. Distance—The length of the manipulator, in 3ds Max units. Default=the distance of mouse drag when the manipulator was created. Use Square—When on, the base of the cone is square or rectangular, rather than circular. Default=off. Aspect—When Use Square is on, adjusts the aspect ratio of the rectangular cone base. Default=1.0. Plane angle manipulator at different angles 29 30 Chapter 10: Precision and Drawing Aids Procedures To create a plane angle manipulator: 1. In the Create panel, go to Helpers and choose Manipulators from the drop-down list. 2. If you don’t turn off Select And Manipulate, you adjust the manipulator’s Angle value without affecting its properties. 3. Adjust the properties of the selected manipulator. 2. Click to turn on Plane Angle. 3. Drag in a viewport, and then release the mouse. The plane angle manipulator is always created vertically, along the Y axis of the viewport in which you drag. Turn off Select And Manipulate. To connect a plane angle manipulator so it controls another object: 1. Select the plane angle manipulator. To change the angle of a plane angle manipulator: Turn on Select And Manipulate. 1. Note: Select And Manipulate must be off before you can select the manipulator. 2. Choose Animation > Wire Parameters > Wire If you are still in the Create panel, turn on Select Object before using the manipulator. Otherwise, it is too easy to create a new one. Tip: 2. In a viewport, move the mouse over the You can also right-click the manipulator and choose Wire Parameters from the Transform (lower-right) quadrant of the quad menu. A pop-up menu appears over the manipulator. manipulator. 3. In the pop-up menu, choose Object > Angle. The manipulator turns red when the mouse is over it and it is available to be manipulated. Also, a tooltip appears, showing the name of the manipulator and its current value. 4. Drag to the object you want to manipulate, and 3. Drag the handle of the plane angle manipulator. The Angle value changes as you drag the manipulator. This value can range between 0.0 and 360.0. To select a plane angle manipulator: 1. Parameters. Turn on Select Object. click it. A pop-up menu appears over the object. 5. In the pop-up menu, choose Object, then the name of the parameter you want to manipulate. The Parameter Wiring dialog (page 2–412) appears. 6. In the Parameter Wiring dialog, make sure the direction goes from the manipulator to the object (or both directions), and then click Connect. 7. Close the Parameter Wiring dialog. You can also use Select And Move, Select And Rotate, and the scale options on a plane angle manipulator. Now when you turn on Select And Manipulate and use the manipulator, the object updates under the manipulator’s control. Slider Manipulator Interface Angle—The angle of the manipulator, from 0.0 to 360.0 (both values are perpendicular in the Y axis of the viewport where you created the manipulator, unless you have rotated the manipulator object). Default=0.0. Using a Slider Manipulator Slider manipulator components: 1. Label 2. Value Distance—The length of the manipulator, in 3. Move 3ds Max units. Default=the distance of mouse drag when the manipulator was created. 4. Show/hide Size—The size of the manipulator’s handle, in 6. Adjust value 3ds Max units. Default=1.0. 7. Change width Slider Manipulator Create panel > Helpers > Manipulators > Object Type rollout > Slider button Create menu > Helpers > Manipulators > Slider The Slider manipulator is a graphic control that appears in the active viewport. By wiring its Value to a parameter of another object, you can create a custom control, with visual feedback, within a scene. Note: Because the slider manipulator is a custom control, its Value has no inherent unit. It takes on the unit of the parameter to which it is wired. When the minimum is 0.0 and the maximum is 100.0, the slider Value can represent a percentage. Slider manipulator 5. Slider bar The slider appears in the same location in whichever viewport is active. You can adjust the slider’s value by dragging the triangle below the slider bar. The triangle turns red when you move the mouse over it. It represents the slider’s value, and the value changes as the triangle is dragged. You can also make the following changes without going into the Modify panel: • Dragging the small square at the left moves the slider. • Dragging the diamond at the right changes the width of the slider. • Clicking the plus sign (next to the move icon at the left) hides all of the slider except for the label and the move icon. Like the Value triangle, these components also turn red when you move the mouse over them. 31 32 Chapter 10: Precision and Drawing Aids Procedures The square turns red when the mouse is over it and it is able to be dragged. To create a slider manipulator: 3. Drag the box to move the slider. 1. In the Create panel, go to Helpers and choose Manipulators from the drop-down list. 2. Click to turn on Slider. Unlike angle manipulators, transforms have no effect on sliders. To connect a slider manipulator so it controls another object: 3. Click a viewport. The slider manipulator is created with its default width of 100 units. It will appear at the same viewport location in whichever viewport is active. To change the value of a slider manipulator: 1. Select the slider. Note: Select And Manipulate must be off before you can select the slider. 2. Choose Animation > Wire Parameters > Wire Parameters. Turn on Select And Manipulate. 1. The slider turns green. If you are still in the Create panel, turn on Select Object before using the manipulator. Otherwise, it is too easy to create a new one. Tip: 2. In a viewport, move the mouse over the triangle below the slider bar. The triangle turns red when the mouse is over it and it is available to be dragged. 3. Drag the value triangle of the slider manipulator. The slider’s value display changes as you drag the triangle. To move a slider manipulator: 1. Turn on Select And Manipulate. 2. In the active viewport, move the mouse over the move icon, which is the small square at the left of the slider, below the sliders label (if there is one) and value display. You can also right-click the manipulator and choose Wire Parameters from the Transform (lower-right) quadrant of the quad menu. A pop-up menu appears over the manipulator. 3. In the pop-up menu, choose Object > Value. 4. Drag to the object you want to manipulate, and click it. A pop-up menu appears over the object. 5. In the pop-up menu, choose Object, then the name of the parameter you want to manipulate. The Parameter Wiring dialog (page 2–412) appears. 6. In the Parameter Wiring dialog, make sure the direction goes from the slider to the object (or both directions), and then click Connect. 7. Close the Parameter Wiring dialog. Now when you turn on Select And Manipulate and use the slider, the object updates under the slider’s control. Grid Commands Interface Snap Value—The increment used by the slider when Snap is on. Default=0.01. Hide—When on, hides all of the slider except for the label and the move and show/hide components. Default=off. Grid Commands Views menu > Grids The Grids submenu provides functions to manipulate the home grid (page 3–952) and grid objects (page 3–951). Label—The slider name that appears in viewports. Default=none. Value—The value of the slider, based on the position of the slidable triangle. Default=0.0. Minimum—The minimum possible value of the slider. Default=0.0. Maximum—The maximum possible value of the slider. Default=100.0. When the minimum is 0.0 and the maximum is 100.0, the slider Value can represent a percentage. X Position—The slider’s X location in the active viewport. Default=Viewport X location you clicked when you created the slider. Y Position—The slider’s Y location in the active viewport. Default=Viewport Y location you clicked when you created the slider. Width—The slider’s width, in 3ds Max units. Default=100.0. Snap—When on, the slider "snaps" to incremental values determined by the Snap Value setting. Default=on. The Snaps system uses grids both as visual references and as physical snap references. In addition, grids serve as construction planes, since the objects you create are built on the active grid in the active viewport. As a default, the software uses a construction grid called the home grid. The home grid is the basic reference system, and is defined by three fixed planes on the world coordinate axes. It provides ready-to-use construction planes, intersecting at right angles through the origin. When the home grid is displayed, each orthographic viewport (page 3–986) is coplanar (parallel) with one of the grid faces. A custom grid, or grid object, is a helper object that you can use in place of the home grid. While the home grid is three intersecting planes whose orientation is fixed in world space, a grid object is a free-floating, 2D grid that you can position and rotate anywhere, letting you construct objects at any angle in world space. You can also automatically create grids on the surface of objects by using AutoGrid (page 2–7). The Grids submenu contains the following commands: 33 34 Chapter 10: Precision and Drawing Aids Show Home Grid (page 2–34) Activate Home Grid (page 2–34) Activate Grid Object (page 2–34) Align Grid to View (page 2–35) Show Home Grid Activate Home Grid Activate a grid other than the Home grid. > Views menu > Grids > Activate Home Grid This command activates the home grid (page 3–952) as the construction grid, and deactivates the active grid object (page 3–951). Views menu > Grid > Show Home Grid Procedure Right-click a viewport label. > Show Grid To return to the home grid, do one of the following: Keyboard > G • Choose Views menu > Grids > Activate Home Grid. Show Home Grid toggles the display of the home grid (page 3–952) in the active viewport. • Right-click the selected grid object, and choose Activate Home Grid from the quad menu. Grids are used both as visual references and as physical snap references by the Snap system. In addition, grids are construction planes, since the objects you create are built on the active grid in the active viewport. This deactivates the grid object and activates the home grid in all views. As a default, there is a home construction grid called home grid. The home grid is the basic reference system, and is defined by three fixed planes on the world coordinate axes. It provides ready-to-use construction planes, intersecting at right angles through the origin. When the home grid is displayed, each orthographic viewport (page 3–986) is coplanar (parallel) with one of the grid faces. Activate Grid Object Select a grid object. > Views menu > Grids > Activate Grid Object This command activates the selected grid object (page 3–951) as the construction grid and deactivates the home grid (page 3–952). This menu item is available only when a grid object is selected. Procedure To activate a grid object: Procedure To toggle the display of the home grid, do one of the following: • Choose Views menu > Grids, and click Show Home Grid. • Right-click a viewport label and click Show Grid on the viewport right-click menu. • Press G on the keyboard. 1. Select a grid object. 2. Do one of the following: • Choose Views menu > Grids > Activate Grid Object. • Right-click the selected grid object and choose Activate Grid from the quad menu. The grid object changes to show its internal grid structure. Except for its main axes, the home grid disappears in all viewports. Align Grid to View Align Grid to View Angle Snap Toggle (page 2–37) Activate a grid object. > Views menu > Grids > Align Grid to View Percent Snap Toggle (page 2–38) This command aligns a grid object (page 3–951) with the current view. The grid object is aligned so that it’s coplanar with the view and oriented with the top of the grid at the top of the view. Spinner Snap Toggle (page 2–38) Ortho Snapping Mode (page 2–38) Procedure To align a grid object with a viewport: Polar Snapping Mode (page 2–39) 1. Activate a grid object. 2. Click or right-click in a viewport. 3. Choose Views menu > Grids > Align Grid to View. The grid object rotates to align itself with the selected view. The grid object is now planar, or parallel, with the viewport. 2D Snap, 2.5D Snap, 3D Snap Main toolbar > 2D Snap, 2.5D Snap, or 3D Snap on the Snaps Toggle flyout Keyboard > S The buttons on the Snaps Toggle flyout provide control over the range of 3D space where snaps are active. Snap Commands main toolbar > Snap buttons Snaps help you precisely control the dimensions and placement of objects when you create them or transform them. There is also a Spinner snap for controlling the entry of values. You can use objects within an XRef scene as snap references. The snap commands listed below and described in this section are found on the main toolbar (except for Ortho and Polar; see their topics for details). 2D Snap, 2.5D Snap, 3D Snap (page 2–35) 2D, 2.5D, 3D Snaps flyout Object Snapping Object snapping lets you snap to specific portions of existing geometry during creation and transforms of objects or sub-objects. You can also snap to the grid, and you can snap to tangents, midpoints, pivot points, face centers and other options. The mode you choose maintains its state when you switch levels. 35 36 Chapter 10: Precision and Drawing Aids Transforming Around Snap Points To use snaps to move a relative distance: When snapping is on and Auto Key (page 3–717) is off, rotations and scales occur about the snap point. For example, if you’re using Vertex snapping and you’re rotating a box, you can rotate it about any of its corner vertices. See To use snaps to move an absolute distance: (page 2–36) below. 1. Turn on Snaps with the S key, or by clicking When Auto Key is on and either Select And Rotate or Select And Scale is active, the Snaps Toggle button is disabled, and rotation and scaling take place about the pivot point of the object. the Snaps Toggle button. 2. Lock your selection set with the SPACEBAR, or by clicking Lock Selection on the status bar. 3. Wherever you click in the viewport, the snap will stay relative to the distance of your cursor to the object. To use snaps to move an absolute distance: Relative and Absolute Snaps 1. Turn on Snaps Toggle. The mouse snaps absolutely to the active snap types. Relative snapping is also available. By default, when you turn on snaps, only the Grid Points snap type is active. If you perform a Move operation, the cursor will snap to the grid, but you can select and pick up an object that’s not aligned to the grid. When you move the object and snap it to grid points, the object’s original position relative to the grid is maintained as an offset to each grid point, providing relative snapping. 2. Click the selection. Snap uses the point you click for the snap source. 3. Move to whatever target snap you desire. The object will snap to an absolute distance. To rotate a box around a vertex using snaps: 1. Make sure the Auto Key button is off. 2. Select the box. 3. To move the same object in an absolute fashion, add the Vertex snap type. Then, when you select the object to move, you select one of its vertices, and snap that vertex to any grid point, resulting in an absolute snap. You can also achieve variations on relative snaps by turning on the Selection Lock Toggle button in the status line. A wide variety of snap types are available from the Snaps dialog (page 2–41), that you use to activate different snap types as you work. Procedures To turn snap off during a transform: • Press S to toggle snapping off when it gets in the way. Press S again to turn it back on. On the Main toolbar, click Select And Rotate. 4. Turn Snaps on by pressing S on the keyboard. 5. On the Customize menu, choose Grid And Snap Settings. Turn on Vertex and turn off Grid Points. 6. Lock your selection set by clicking Lock Selection on the status bar. 7. On the toolbar, choose Use Transform Coordinate Center (hold the mouse down on Use Pivot Point Center to expose the flyout). 8. Move your cursor over any vertex in the box. The blue snap cursor will appear, and then you can rotate the box around that vertex. Interface There are three snap modes: Angle Snap Toggle 2D Snap—The cursor snaps only to the active construction grid, including any geometry on the plane of that grid. The Z axis, or vertical dimension, is ignored. 2.5D Snap—The cursor snaps only to the vertices or edges of the projection of an object onto the active grid. Suppose you create a grid object (page 3–951) and make it active. You then position the grid object so you can see through the grid to a cube further off in 3D space. Now with 2.5D set, you can snap a line from vertex to vertex on the distant cube, but the line is drawn on the active grid. The effect is like holding up a sheet of glass and drawing the outline of a distant object on it. 3D Snap—This is the default. The cursor snaps directly to any geometry in 3D space. 3D snapping lets you create and move geometry in all dimensions, ignoring the construction plane. Right-click this button to display the Grid and Snap Settings dialog (page 2–41), which lets you change snap categories and set other options. settings, and Hotspot/Falloff (page 3–954) spotlight angles. Procedures To turn angle snap on: • Click Angle Snap Toggle on the Main toolbar. When turned on, angle snap affects all rotational transforms. To rotate an object an even number of degrees: • Turn on Angle Snap Toggle and rotate the object. The rotations take place in 5-degree increments as a default. To rotate an object a precise degree of rotation, do one of the following: • Click Select And Rotate, then right-click it to display the Transform Type-In dialog (page 1–431). Enter the exact rotation you want. • Right-click Angle Snap Toggle and click the Options tab on the dialog that is displayed. Set the Angle value in the General group to the precise degree of rotation you need, then rotate the object. Rotation snaps to the angle increment you specified. Interface Angle Snap Toggle Main toolbar > Angle Snap Toggle Keyboard > A Angle Snap Toggle determines the incremental rotation for a number of features, including the standard Rotate transform. As you rotate an object (or group of objects), the object moves around a given axis in the increment you set. Angle Snap Toggle also affects Pan/Orbit camera controls, FOV (page 3–937) and Roll camera The angle increment is set on the Options panel of the Grid and Snap Settings dialog (page 2–41). Right-click the Angle Snap Toggle button to display the Options panel of the Grid and Snap Settings dialog. The default is 5 degrees. 37 38 Chapter 10: Precision and Drawing Aids 3. Turn on Use Snap. Percent Snap Toggle Main toolbar > Percent Snap Toggle Keyboard > Ctrl+Shift+P Percent Snap Toggle increments scaling of objects by the specified percentage. Interface The snap percent increment is set in the Grid And Snap Settings dialog. The default is 10 percent. Right-click the Percent Snap Toggle button to display the Grid and Snap Settings dialog (page 2–41). This is a general-purpose snap system that applies to any operation involving a percentage, such as scaling or squashing. Spinner Snap Toggle Main toolbar > Spinner Snap Toggle When you exit the dialog, the Spinner Snap Toggle button is turned on. 4. As you work, use the Spinner Snap Toggle button to toggle the alternate setting. Interface The amounts for Spinner Snap are controlled by settings on the General panel (page 3–815) of the Preferences dialog. Default=1.0. Ortho Snapping Mode When drawing a Line spline (page 1–270) or Wall object (page 1–223), Ortho Snapping Mode constrains line creation to the horizontal or vertical directions relative to the active grid. That is, with Ortho on, you can draw only lines that are parallel to lines of the active grid. Ortho is particularly useful for drawing plans where all lines must be at 90 degrees to each other, such as a house plan. To constrain line-drawing to other angle increments, use Polar Snapping Mode (page 2–39) instead. Spinner Snap Toggle sets the single-click increment or the decrement value for all of the spinners in 3ds Max. Important: By default, Ortho Snapping Mode is not directly accessible in the 3ds Max user interface. To add it as a button on the Snaps toolbar, follow this procedure (page 2–39). Procedure The following provisions apply to using Ortho: To set and toggle spinner snap: • Use of Ortho is mutually exclusive of use of the Polar Snapping Mode toggle (page 2–39); only one can be active at a time. 1. Do one of the following: • Choose Customize menu > Preferences. • Right-click the Spinner Snap Toggle button on the main toolbar. Either method opens the Preference Settings dialog > General panel. The two controls for spinner snap are in the Spinners group on this panel. 2. Set a value in the Snap field. • Ortho Snapping applies primarily to the creation of line splines and wall objects. It can be used while creating other objects, but results are likely to be unsatisfactory. Ortho mode displays a compass which gives a readout of the current angle of the input relative to the positive direction of the local X axis. Polar Snapping Mode Note: If you hold down the Alt key in Ortho mode, the next point becomes doubly constrained by both the previous point and the first point of the current object. This allows you to close splines precisely. In this mode, two compasses are displayed; one each at the first and previous points. 3. Move the mouse cursor around in the viewport. The line jumps to 90-degree angle increments on the local X axis, while the compass reading updates to show the current angle. 4. Click to place the next vertex. 5. Repeat steps 3 and 4 until you’re ready to Procedures To add Ortho Snapping Mode to the Snaps toolbar: 1. Open the Snaps toolbar, if necessary. To do so, right-click an empty part of the main toolbar, such as the area directly below one of the drop-down lists, and choose Snaps. 2. Drag the right end of the toolbar to the right to make room for a new button. complete the shape. 6. Do either of the following: • To finish the shape at the most recent vertex without closing it, right-click anywhere. • To finish the shape by closing it, position the mouse cursor close to the first point and then click. A small dialog opens asking if you want to close the spline; click Yes. 3. Choose Customize menu > Customize User Interface. This opens the Customize User Interface dialog. 4. On the dialog, click the Toolbars tab. 5. Scroll down the Action list on the dialog to the Ortho Snapping Mode item. You can jump to the O section by clicking any item in the list and then pressing O on the keyboard. 6. Drag the Ortho Snapping Mode item from the list to the empty section of the Snaps toolbar. This adds the button to the toolbar. 7. Close the Customize User Interface dialog. 3ds Max automatically saves the toolbar in its revised state and makes the new button a permanent part of the user interface. To use Ortho: 1. Turn on the Ortho Snapping Mode button. The button appears depressed. 2. Begin to draw a Line spline. An orange compass appears where you place the first point, along with a red number indicating the angle of the current line segment with the positive direction of the local X axis. Polar Snapping Mode When drawing a Line spline (page 1–270) or Wall object (page 1–223), Polar Snapping Mode constrains line creation to angle increments determined by the Angle Snap setting relative to the active grid. To change the Angle Snap setting, right-click the Angle Snap Toggle button on the main toolbar and in the Options panel > General group, edit the Angle setting. Important: By default, Polar Snapping mode is not directly accessible in the 3ds Max user interface. To add it as a button on the Snaps toolbar, follow this procedure (page 2–40). Polar is particularly useful for drawing plans where angles between all lines must conform to specific angle increments, such as 45 degrees. If all lines must be at 90-degree angles to each other, use the Ortho Snapping Mode toggle (page 2–38) instead. The following provisions apply to using Polar: • Use of Polar is mutually exclusive of use of the Ortho toggle; only one can be active at a time. 39 40 Chapter 10: Precision and Drawing Aids • Polar applies primarily to the creation of line splines and wall objects. It can be used while creating other objects, but results are likely to be unsatisfactory. Polar mode displays a compass that provides a readout of the current angle of the input relative to the positive direction of the local X axis. Note: If you hold down Alt in Polar mode, the next point becomes doubly constrained by both the previous point and the first point of the current object. This allows you to close splines precisely. In this mode, two compasses are displayed; one each at the first and previous points. Procedures To add Polar Snapping Mode to the Snaps toolbar: 1. Open the Snaps toolbar, if necessary. To do so, right-click an empty part of the main toolbar, such as the area directly below one of the drop-down lists, and choose Snaps. 2. Drag the right end of the toolbar to the right to make room for a new button. 3. Choose Customize menu > Customize User Interface. This opens the Customize User Interface dialog. 4. On the dialog, click the Toolbars tab. 5. Scroll down the Actions list on the dialog to the Polar Snapping Mode item. You can jump to the P section by clicking any item in the list and then pressing P on the keyboard. 6. Drag the Polar Snapping Mode item from the list to the empty section of the Snaps toolbar. This adds the button to the toolbar. 7. Close the Customize User Interface dialog. 3ds Max automatically saves the toolbar in its revised state and makes the new button a permanent part of the user interface. To use Polar: 1. Turn on the Polar Snapping Mode button. The button appears depressed. 2. Begin to draw a line spline. An orange compass appears where you place the first point, along with a red number indicating the angle of the current line segment with the positive direction of the local X axis. 3. Move the mouse cursor around in the viewport. The line jumps to specific angle increments from the X-axis, while the compass reading updates to show the current angle. You set the angle increment in the Grid And Snap Settings dialog > Options panel (page 2–46) > General group, which you can access by right-clicking the Angle Snap Toggle button on the main toolbar. 4. Click to place the next vertex. 5. Repeat steps 3 and 4 until you’re ready to complete the shape. 6. Do any of the following: • To finish the shape at the most recent vertex without closing it, right-click anywhere. • To finish the shape by closing it, position the mouse cursor close to the first point and then click. A small dialog opens asking if you want to close the spline; click Yes. • To finish the shape by closing it while constraining the line to the polar snap, first position the mouse cursor close to the first point, press and hold Alt to constrain the mouse by both the previous point and the first point, and then click. This vertex is automatically placed at the current angle increment from the first point, so that you need only click the first point to close the shape. Grid and Snap Settings Grid and Snap Settings Snap Settings Customize menu > Grid and Snap Settings Customize menu > Grid And Snap Settings > Grid And Snap Settings dialog > Snaps tab Right-click any snap button Main toolbar > Right-click a snap button This command displays the Grid and Snap Settings dialog. This modeless dialog establishes settings and options for snaps, the home grid (page 3–952), and user-defined grids. Controls on the Grid And Snap Settings dialog determine which snap settings are used when you activate snaps by clicking 3D Snap Toggle. Adjusting any of these snap settings does not automatically turn on snaps. You can use objects within an XRef scene as snap references. The Grid And Snap Settings dialog contains tabs for: Snap Settings (page 2–41) Snap Options (page 2–46) Home Grid Settings (page 2–49) User Grids Settings (page 2–51) Procedure To change grid and snap settings: 1. Choose Customize menu > Grid And Snap Settings and click the appropriate tab. 2. Choose the type of snap you want (Standard or NURBS). 3. Select the snap settings. Keyboard > Hold Shift +right-click > Snaps quadrant Keyboard > S (toggles snaps on and off ) Snapping gives you additional control when creating, moving, rotating, and scaling objects by causing the cursor to “jump” to specific portions of existing geometry and other scene elements during creation and transformation of objects or sub-objects. The controls in this dialog set the snap strength and other characteristics such as the snap target. Note: Snap functionality includes several features that enhance ease of use. See the Snap Options topic (page 2–48) for details. You can specify the portion of the geometry where you will snap. For example, when Vertex is the active snap type, creating and transforming objects snaps to the vertices of existing geometry. You can specify any combination of active snap types to provide multiple snapping points. For example, if Vertex and Midpoint are active, snapping occurs at both vertices and edge midpoints. The default snap type is Grid Points. Note: Snapping is not on by default. You can toggle snapping by pressing the S key at any time, even in the middle of a transform. In this way you can combine snapping with free positioning. Snaps work at sub-object levels. For example, you can use snaps to position a gizmo to the object on which you’re working, or snap it to other objects in the scene. You must activate a viewport in order to use snaps. Also, the Z-axis constraints don’t apply to the 41 42 Chapter 10: Precision and Drawing Aids home grid or grid objects, since grids don’t have a Z axis. Procedures Settings are stored in the 3dsmax.ini (page 1–18) file. The state of the snap settings persists from session to session. 1. Turn on the 3D Snap Toggle button to activate Snaps and Axis Constraints Snaps take precedence over axis constraints. If you highlight an axis constraint, such as Restrict to X, you can move the object only in X. But if you then turn on snaps, Restrict to X is suspended and not used. The Snaps Toolbar To set grid and snap settings: snaps. 2. Choose Customize > Grid And Snap Settings to display the Grid and Snap Settings dialog. 3. In the Snaps tab, select one or more of the types of snaps you want active. 4. Create an object or transform an object. Snap markers appear when the mouse cursor is over existing geometry or on a grid, depending on the active snap types. Each snap type has a different display; clicking when the snap-specific display is visible snaps to that spot. To display the Snaps shortcut menu: The most common Snaps settings are available from an optional toolbar. To toggle display of the Snaps toolbar, right-click an empty area of the main toolbar, such as the section under the Reference Coordinate System drop-down, and choose Snaps. The toolbar buttons are shown next to the relevant commands, below and in the Snap Options topic (page 2–46). • Hold Shift and right-click anywhere in any viewport. The quad menu that opens gives you access to various snap settings including Snaps Use Axis Constraints and Snap To Frozen Objects. To use absolute snaps: • Click the object with Snaps on. The same settings are also available from the snap quad menu, available with Shift +right-click. To use relative snaps: Snaps: Relative and Absolute 2. Click in the viewport. 3ds Max offers two different types of snap behavior. You can use snaps to move a selection to a snap point, an absolute snap. You can also use snaps to move a selection a relative distance from a snap point. This is called a relative snap. For further information, see To use relative snaps: (page 2–42). 1. Lock the selection set. The distance from your cursor to the selection set is used as the relative snap distance. The object snaps that relative distance away from the snap point. To use both constraint and snaps, do one of the following: • In the Grid and Snap Settings dialog > Options tab > Translation group, turn on Use Axis Constraints. Snap Settings • Hold Shift and right-click in the viewport, and then choose Options > Transform Constraints from the Snap quadrant. Override—This label changes to display the temporary snap type used by the Override system. For more information, see Snap Override (page 2–45). Example: To use 3D snaps and rotation transformations together: Clear All—Turns off all of the Snaps check boxes. 1. Create a box. Note: The layout of the Grid And Snap Settings 2. Select the box and choose Lock Selection. 3. Turn on 3D Snaps and click Rotate on the dialog is generated at runtime. Because of this, it might appear slightly different than the illustrations shown here. toolbar. Standard snaps 4. From the Use Center flyout on the main toolbar, choose Use Transform Coordinate Center (page 1–447). 5. Activate the Perspective viewport and move the cursor over the grid. A blue icon displays when the cursor passes over a grid point. 6. When the blue icon displays, click and drag to rotate the box around the selected grid point. You can rotate around anything you can snap to. To turn snaps on and off during an operation: • Use the S keyboard shortcut to turn snap on and off. Tip: You can select something with snap off, and then turn snap on to snap it to a snap target. Alternately you might want to snap to something, then position it freely wherever you want. Interface Use these check boxes on the Snaps tab to turn on any combination of snap settings. After setting snaps, close the dialog using the Close button in the dialog’s upper-right corner. Do not click the Clear All button, or you’ll turn off all the snaps. These are the standard snap types used for grids, mesh, and shape objects. Non-grid snap types, when active, take priority over Grid Points and Grid Lines snaps: if the mouse is equally near a grid point and some other snap type, it will choose the other snap type. Note: The button images shown below are from the Snaps toolbar (page 2–42). Grid Points—Snaps to grid intersections. This snap type is on by default. Keyboard shortcut= Alt+F5 . Grid Lines—Snaps to any point on a grid line. Pivot—Snaps to pivot points of objects. Keyboard shortcut= Alt+F6 . 43 44 Chapter 10: Precision and Drawing Aids Bounding Box—Snaps to one of the eight corners of an object’s bounding box. Perpendicular—Snaps to the perpendicular point on a spline, relative to the previous point. Tangent—Snaps to a tangent point on a spline, relative to the previous point. Vertex—Snaps to vertices of mesh objects or objects that can be converted to editable meshes. Snaps to segments on splines. Keyboard shortcut= Alt+F7 . Endpoint—Snaps to the end points of edges on meshes or spline vertices. These options snap to objects or sub-objects in a NURBS model (page 3–980). The NURBS snaps settings are aids for creating and transforming objects, and are not constraints. The software does not maintain the relationship between the NURBS object and other objects you create or transform. CV—Snaps to a CV sub-object (page 3–926) in a NURBS curve (page 3–980) or NURBS surface (page 3–981). Point—Snaps to a point sub-object (page 3–995) in a NURBS model. Curve Center—Snaps to the center of a NURBS curve. Edge/Segment—Snaps anywhere along edges (visible or invisible) or spline segments. Keyboard shortcut= Alt+F10 . The center of a NURBS curve is calculated parametrically, and might not be the same as the curve’s apparent visual center. Curve Normal—Snaps to a point normal to a Midpoint—Snaps to the middle of edges on meshes and spline segments. Keyboard shortcut= Alt+F9 . Face—Snaps anywhere on the surface of a face. Back faces are culled, so they have no effect. Keyboard shortcut= Alt+F11 . Center Face—Snaps to the center of triangular faces. NURBS Snaps NURBS curve. This snap operates only while you are creating a new object that requires two or more clicks to create. Curve Tangent—Snaps to a point tangent to a NURBS curve. This snap operates only while you are creating a new object that requires two or more clicks to create. Curve Edge—Snaps to the edge of a NURBS curve (the current object moves or is created to lie along the curve). Curve End—Snaps to the end of a NURBS curve. Surf Center—Snaps to the center of a NURBS surface. The center of a NURBS curve is calculated parametrically, and might not be the same as the curve’s apparent visual center. Snap Override Surf Normal—Snaps to a point on a NURBS surface normal to previous point. This snap operates only while you are creating a new object. Surf Edge—Snaps to the edge of a NURBS surface. The Grid And Snap Settings dialog > "Override OFF" label changes to display the first available override snap type, chosen from the active snap types. If the Snaps toolbar is open, and the override snap type is available on the toolbar, the override snap type is visible there as well. 4. Press Alt+S repeatedly. Snap Override Any viewport > Hold Shift and right-click. > Standard > Choose snaps type. Customize menu > Grid and Snap Settings > Snaps tab Snap Override lets you supersede all the currently selected snap types and temporarily use only one, or none, of the snap types currently selected on the Grid and Snap Settings dialog. For example, you might be creating a spline while snapping to grid points, but then need to snap one of its vertices to the midpoint of an object. Tip: You can choose the override by cycling through active snap types via a keyboard shortcut instead of using the quad menu. Press Alt+S repeatedly to choose the override snap type. If the Grid and Snap dialog is displayed, the "Override OFF" label changes to display the selected snap type. Procedures To use Snap Override (keyboard shortcut method): 1. Activate all the snap types you want to use or The software cycles through all the active snap types for the override type. The benefit of this method is that it’s fast and easy; you don’t have to use the quad menu. But if you want to override with a snap type that isn’t currently active, it’s necessary to use the standard override method, which is described in the next procedure. To use Snap Override (standard method): 1. While creating or moving an object with Snap on, hold down Shift and right-click in a viewport. 2. Select one of the snap types from the sub-menus in the Snap Override quadrant to make it the only active snap type. If the Grid And Snap Settings dialog is open to the Snaps panel, the "Override OFF" label changes to display the active snap override type. When you complete the mouse action, "Override OFF" is again displayed in the dialog, and the previously active snap types are active again. override with. 2. Make sure the Grid And Snap Settings dialog is open to the Snaps panel, so you can easily track the override type. Alternatively, if you’re using only snap types available on the Snaps toolbar (page 2–42), you can keep the toolbar open instead. 3. While creating or moving an object with Snap on, press Alt+S repeatedly. To use Snap Override during a drag operation: 1. Left-click, press Shift , and then right-click to display the menu. 2. Release the left mouse button, and then left-click to select the snap you want. 3. Release the Shift key, right-click, and continue the drag operation (the geometry remains locked to the mouse). 4. Left-click to complete the operation. 45 46 Chapter 10: Precision and Drawing Aids Interface In addition to the available snap types, the snap quad menu contains these items: Snap Options Customize menu > Grid and Snap Settings > Grid and Snap Settings dialog > Options panel Snap Options quadrant—Lets you set the following options: • Grid and Snap Settings: Toggles display of the Grid And Snap Settings dialog. • Snaps To Frozen Objects: Turn this on to enable snapping to frozen objects. Default=off. • Snaps Use Axis Constraints: Turn this on to use the current transform constraints. For example, if you’re moving a vertex with Restrict To XY Plane on and want to snap the vertex to a point removed on the Z axis, turn this off, if necessary. Default=off. Main toolbar > Right-click 3D Snap Toggle > Grid and Snap Settings dialog > Options panel The Options panel of the Grid And Snap Settings dialog lets you set options related to snapping. Procedures To set snap options: 1. Choose Customize menu > Grid And Snap Settings. 2. Click the Options tab. 3. Set the options as desired. Snap Override quadrant—Lets you set the following options: Example: To use Snap Preview: NURBS/Standard—Let you choose a snap type for The Snap Preview Radius setting lets you preview a snap before it actually happens. The Snap Radius setting determines when actual snapping occurs, providing the same functionality as Snap Strength in previous versions. one-time use. This applies to the next snap only. None—Turns off all snap types for the next mouse action. (This item is unavailable if the Snap Toggle is off.) [last]—Displays the last snap override type you chose from the NURBS or Standard submenu, letting you easily reuse that type. This procedure also demonstrates how to cycle through available snap/preview points with the keyboard shortcut. 1. Reset the software, and then maximize the Snap Toggles quadrant—Lets you set six of the Perspective viewport. most common snap types on an ongoing basis. These remain in effect until you turn them off; it’s the same as setting them on the Grid And Snap Settings dialog. To maximize the Perspective viewport, make sure it’s active (yellow border), and then press Alt+W . 2. Zoom in a bit so the grid squares are relatively large. Snap and Snap Preview measure in pixels, so if the grid points are relatively far apart, it’s easy to see the difference between Snap Preview and Snap. Snap Options 11. Continue moving the cursor toward the grid 3. On the main toolbar, click the Snaps Toggle button to turn on snapping, and then right-click the button to open the Grid And Snap Settings dialog to the Snaps panel. The default Snaps setting is Grid Points only; if this is not the case, make it so. A grid point is the intersection of two grid lines. 4. On the dialog, click the Options tab. In the General group, Snap Preview Radius is set to 30 pixels and Snap Radius is set to 20 pixels. You can leave this dialog open while you use snaps. point. After you move it 10 pixels closer (the difference between Snap Preview Radius and Snap Radius), the line endpoint jumps from the mouse cursor to the grid point. This is the legacy snap functionality. 12. Click to accept the snap. 13. Complete the line, and then zoom out so the grid points are closer together. Start another line, and then position the mouse cursor in the center of a grid square, so the preview snap point appears at one of the grid points. 14. On the keyboard, press and hold Alt+Shift 5. On the Create panel, click Shapes, and then click Object Type rollout > Line. You’re now in line-creation mode. 6. Click anywhere in the viewport to start creating a line-type spline object. 7. Move the cursor around the viewport. As you do so, a rubber-band line connects the mouse cursor to the start point. 8. Position the mouse cursor near a grid point, but not too close, so that the snap cursor (cyan box + crosshairs) appears at the grid point, but the line endpoint remains attached to the mouse cursor. This shows the snap preview; you’ll see its purpose in the next step. 9. Click the left mouse button. The second line vertex is created not where you clicked but at the grid point indicated by the snap preview. Snap preview lets you see where a snap will occur before it actually happens. 10. Move the cursor toward another grid point. At the Snap Preview Radius distance (30 pixels), the snap cursor appears at the grid point. and then press S repeatedly to cycle through the remaining nearby grid points. If nothing happens, try zooming out more or increasing the Snap Preview Radius value. By default, the software uses the closest snap point as the preview location. This keyboard shortcut lets you choose other qualifying snap points. Interface Note: The layout of the Grid And Snap Settings dialog is generated at runtime. Because of this, it might appear slightly different than the illustration shown here. 47 48 Chapter 10: Precision and Drawing Aids context. If, instead, you then continue to move the cursor toward the potential snap point so that it comes within a distance equal to or less than the Snap Radius value, the snap takes place. Tip: For best results, keep the Snap Preview Radius value 10 pixels or more higher than the Snap Radius value. This lets you preview any snap before it actually occurs. Snap Preview Radius—When the cursor is a distance from a potential snap-to point between the Snap Preview Radius value and the Snap Radius value, the snap marker jumps to the closest potential snap-to point, but no snap occurs. Default=30. Marker group Provides settings that affect the visual display of the snap points. Display—Toggles the display of the snap guides. When off, the snaps still function, but there’s no display. Size—Sets the size, in pixels, of the snap "hit" point. This is the small icon that indicates either the source or target snap point. Color—Click the color swatch to display the Color Selector, where you can set the color of the snap display. General group Snap functionality includes several features that enhance ease of use. When using Snap, if the cursor comes within distance of a potential snap point that’s less than the Snap Preview Radius distance but greater than the Snap Radius distance, the snap cursor jumps to that point as a preview of where the snap will occur, but no actual snapping occurs. To use the preview point as the snap point, click or release the mouse button, depending on the When a snap-to preview point is highlighted, release or click the mouse button (depending on the context) to snap the current selection to that location. Alternatively, before using the displayed snap point, you can cycle though any other available preview and snap points by pressing and holding Alt+Shift and then press S repeatedly. Note: The Snap Preview Radius value should generally be set higher than the Snap Radius value, so that previewing occurs before snapping. If you attempt to set the Snap Preview Radius value lower than the Snap Radius value, the software lowers the latter so that the two are equal. This effectively turns off previewing, so that only snapping is in effect. Snap Radius—Sets the size of the area around the cursor, in pixels, within which snapping occurs automatically. Default=20. Note: The Snap Radius value should generally be set lower than the Snap Preview Radius value, so that previewing occurs before snapping. If you attempt to set the Snap Radius value higher than the Snap Preview Radius value, the software raises the latter so that the two are equal. This effectively turns off previewing, so that only snapping is in effect. Home Grid Settings Angle—Sets the increment at which objects are rotated about a given axis (degrees). Percent—Sets the percentage increment for scale transforms. Snap to Frozen Objects—When on, snapping to frozen objects is enabled. Default=off. This option is also available from the Snaps shortcut menu, accessed when you hold Shift and right-click in any viewport, as well as from the Snaps toolbar (page 2–42). Keyboard shortcut= Alt+F2 . Translation group Home Grid Settings Customize menu > Grid And Snap Settings > Home Grid panel Main toolbar > Right-click 3D snap toggle. > Grid And Snap Settings > Home Grid panel The Home Grid panel of the Grid And Snap Settings dialog sets the spacing and other characteristics of the home grid (page 3–952). Choosing useful home grid settings can simplify the construction process. The home grid provides a visual reference to use when creating objects in a scene. In the software, grids have these primary uses: Use Axis Constraints—Constrains the • An aid in visualizing space, scale, and distance. selected object to move only along the axes specified on the Axis Constraints toolbar (page 3–687). When turned off (the default), the constraints are ignored, and snapped objects can be translated in any dimension (assuming 3D snapping is used). This is also available from the Snaps shortcut menu, accessed when you hold Shift and right-click in any viewport, as well as from the Snaps toolbar (page 2–42). Keyboard shortcut= Alt+F3 or Alt+D . • Construction planes where you create and align objects in your scene. Display rubber band—When on and you move an 3. Adjust the value for Grid Spacing, which is in selection, a rubber-band line appears between the original location and the mouse position. Use this visual aid for greater accuracy when fine-tuning Default=on. Use Axis Center As Start Snap Point—Sets the center of the transform axis of the current selection set to be the initial snap point if there’s no other start snap point detected by the snap system. This option works both at the object and sub-object levels. This lets you, for example, snap the geometric center of a multi-object selection to a grid point. • A reference system for using grid snaps. Procedures To set grid spacing for unit measure: 1. From the menu bar, choose Customize menu > Grid And Snap Settings. 2. Click the Home Grid tab. current units. For example, if you have units set to centimeters, you might make one grid space equal to 1.000 (one unit, or one centimeter in this case). To set major grid divisions for multiple units: 1. From the menu bar, choose Customize menu > Grid And Snap Settings. 2. Click the Home Grid tab. 3. Adjust the Major Lines Every Nth Grid Line value, which is the number of grid squares between major lines. The minimum is 2. 49 50 Chapter 10: Precision and Drawing Aids For example, if you use a grid spacing of one centimeter, you might use a value of 10 so the major grid divisions represent one decimeter. In perspective viewports, you can set a fixed size for the displayed home grid. If Inhibit Perspective View Grid Resize is turned off however, the grid size adjusts as you zoom in or out. To set view update options: 1. From the menu bar, choose Customize menu > Grid And Snap Settings. 2. Click the Home Grid tab. 3. Under Dynamic Update, choose either Active Viewport (the default) or All Viewports. To allow subdivision below grid spacing: 1. From the menu bar, choose Customize menu > Grid And Snap Settings. 2. Click the Home Grid tab. 3. Turn off Inhibit Grid Subdivision Below Grid Grid Dimensions group Grid spacing—Grid spacing is the size of the grid’s smallest square. Use this spinner to adjust the spacing (which is in current units), or enter the value directly. For example, if you have units set to centimeters, you might make one grid space equal to 1.000 (one unit, or one centimeter in this case). Spacing. Major Lines every Nth Grid Line—The home grid When you turn off this box, you can zoom indefinitely "deep" into any plane of the home grid. Each grid square subdivides into the same number of smaller grid spaces. displays heavier or "major" lines to mark groups of grid squares. Use spinner to adjust the value, which is the number of grid squares between major lines, or you can enter the value directly, the minimum is 2. Interface Note: The layout of the Grid And Snap Settings dialog is generated at runtime. Because of this, it might appear slightly different than the illustration shown here. For example, if you use a grid spacing of one centimeter, you might use a value of 10 so the major grid divisions represent one decimeter. Perspective View Grid Extent—Sets the size of the home grid in the Perspective viewport. This value is specified in terms of the Grid Spacing value, and represents the length of half the grid along an axis. This means that if Grid Spacing=10.0 and Perspective View Grid Extent=7, you will have a grid that is 140 x 140 units in size. User Grids Settings Inhibit Grid Subdivision Below Grid Spacing—Causes 3ds Max to treat the grid as a fixed set of lines when you zoom in on the home grid. In effect, the grid stops at the grid space setting. If you keep zooming, the fixed grid is lost from view. Zooming out is not affected. When you zoom out, the home grid expands indefinitely to maintain the major grid divisions. Default=on. Interface Note: The layout of the Grid And Snap Settings dialog is generated at runtime. Because of this, it might appear slightly different than the illustration shown here. When this is turned off, you can zoom indefinitely into any plane of the home grid. Each grid square subdivides into the same number of smaller grid spaces. For a grid spacing of one centimeter and a major division of 10, the next level down subdivides into millimeter spaces, and so on. Inhibit Perspective View Grid Resize— Causes 3ds Max to treat the grid in the Perspective viewport as a fixed set of lines when you zoom in or out. In effect, the grid maintains one size, no matter how much you zoom. Default=on. Grid object automation group Determines if the software automatically makes grids active upon creation. Activate grids when creating—Turn on to automatically activate the grid you created. When this is turned off, the grid in the Perspective viewport will subdivide to adjust its size when you zoom in or out. Tip: If not turned on, you can activate the grid Dynamic Update group AutoGrid group Dynamic Update—By default, only the active AutoGrid allows you to automatically create grids on the surface of objects. The task of creating objects that are aligned to other object surfaces has been simplified. Turn on AutoGrid in the Object Type rollout of a command panel. When you turn on AutoGrid, the software uses the setting in the User Grids dialog for world or object space. viewport updates as you change values for Grid Spacing and Major Lines every Nth. The other viewports update after you have completed changing the values. Choose All Viewports to have all viewports update as you change the values. User Grids Settings Customize menu > Grid And Snap Settings > Grid And Snap Settings dialog > User Grids tab The User Grids panel controls automatic activation of grid objects (page 2–20) and settings for AutoGrid (page 2–7). by selecting the grid, then right-clicking and choosing Activate Grid. World space—Aligns grids to world space. Object space—Aligns grids to object space. 51 52 Chapter 10: Precision and Drawing Aids Interface Drawing Aid Utilities The utilities listed here are additional aids to drawing and precision. The Measure utility returns the measurements of a selected shape or 3D object. The Rescale World Units utility rescales either a selection or an entire scene. Use the Utilities panel (page 3–778) to open a drawing aid utility and make it active. Measure Utility (page 2–52) Rescale World Units Utility (page 2–53) Measure Utility Utilities panel > Utilities rollout > Measure button The Measure utility provides measurements of a selected object or shape. See also Measure Distance Tool (page 2–15) Procedure To measure an object: Text display—Displays the name of the object in the current selection. If more than one object is in the selection, Multiple Objects Selected is displayed. Lock Selected—Prevents the displayed data from changing when you change selection. For example, you might need to select and manipulate another object that affects the currently selected object. 1. On the Utilities panel, click the Measure button. 2. Select the object you want to measure. If both an object and a shape are in the selection, information is displayed for both types. If several objects are in a selection, the sum of their measurements is displayed. Objects group Displays information about renderable mesh objects. Surface Area—Displays the total surface area of all objects in the selection, in units squared. Volume—Displays the total volume of all objects in the selection, in units cubed. Note that objects with "holes" caused by missing faces can result in inaccurate volume values. When an object has one or more holes, an asterisk appears beside the Volume number. Rescale World Units Utility Center Of Mass—Displays the world coordinates of the location of the center of mass for the object or the center of mass of the selected objects. Create Center Point—Creates a point helper object at the center of mass. Shapes group Displays information about shape objects. Length—Displays the sum of the length of all splines in all selected shapes. Dimensions group Displays the dimensions of the object, as they appear in world space. For example, if it were a box with the created dimensions of 15 x 10 x 25, and that box were scaled 200 percent, then this group would report dimensions of 30 x 20 x 50. Procedure To rescale an object: 1. Select an object in the viewport. 2. On the Utilities panel, click the More button, and on the Utilities dialog, choose Rescale World Units from the list. 3. On the Rescale World Units rollout, click the Rescale button. 4. Set the Scale Factor to the desired scale. For example, setting the scale to a value of 2.0 doubles the size of the object that it’s applied to. 5. In the Affect group, choose the Selection option. 6. Click OK to apply the scale. Interface Rescale World Units rollout Button set New Floater—Launches a modeless Measure dialog that displays the same information found under the Objects, Shapes, and Dimensions groups on the Utilities panel. In addition, you can expand the dialog horizontally, in case the values are too long to be viewed in the default dialog size. Tip: While the Measure floater is displayed, you can view the length of a spline while you’re creating it. Close—Closes the utility. Rescale—After selecting the objects you want to rescale, click this to display the Rescale World Units dialog. Rescale World Units dialog Rescale World Units Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Rescale World Units This utility rescales the world units of either the entire scene or selected objects in the scene. The Rescale World Units dialog controls scale factor and whether it is applied to the entire scene or the current selection. Scale Factor—Specifies the scaling factor. 53 54 Chapter 10: Precision and Drawing Aids Affect— • Scene—Applies the scale to the entire scene. • Selection—Applies the scale only to the current selection. OK—Applies the scale. Cancel—Cancels the operation. Space Warps and Particle Systems 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.) 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. See also Space Warp Objects (page 2–55) Particle Flow (page 2–109) Non-Event-Driven Particle Systems (page 2–237) Space Warps Create panel > Space Warps Surfaces deformed by 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, Left: Bomb Right: Ripple Rear: Wave A space warp affects objects only when the objects are bound to it (page 2–58). The warp binding appears at the top of the object’s modifier stack. A space warp is always applied after any transforms or modifiers. 56 Chapter 11: Space Warps and Particle Systems 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 (page 2–7) for details. 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 • 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. Space Warp Objects 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 (page 2–270) 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 (page 2–260)), setting a higher angle for the stream spread with spray systems (see Spray Particle System (page 2–244), Super Spray Particle System (page 2–249)), or using larger particles with an animated texture map. Space Warp Categories Motor Space Warp (page 2–61) Push Space Warp (page 2–59) Vortex Space Warp (page 2–63) Drag Space Warp (page 2–66) Path Follow Space Warp (page 2–71) PBomb Space Warp (page 2–68) Displace Space Warp (page 2–76) Gravity Space Warp (page 2–73) Wind Space Warp (page 2–75) 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. There are four categories of space warps, available via the list on the Create panel’s Space Warps category. PDynaFlect Space Warp (page 2–81) Forces SOmniFlect Space Warp (page 2–84) 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. UDynaFlect Space Warp (page 2–86) POmniFlect Space Warp (page 2–78) SDynaFlect Space Warp (page 2–85) UOmniFlect Space Warp (page 2–85) SDeflector Space Warp (page 2–87) UDeflector Space Warp (page 2–89) Deflector Space Warp (page 2–90) Geometric/Deformable These space warps are used to deform geometry. FFD(Box) Space Warp (page 2–91) FFD(Cyl) Space Warp (page 2–95) Wave Space Warp (page 2–100) Ripple Space Warp (page 2–102) 57 58 Chapter 11: Space Warps and Particle Systems Displace Space Warp (page 2–76) Conform Space Warp (page 2–103) Bomb Space Warp (page 2–105) Modifier-Based These are space-warp versions of object modifiers (see Modify Panel (page 3–758)). Read more about these in Modifier-Based Space Warps (page 2–107). Bend Modifier (page 1–560) 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 (page 3–1014) or vice versa. Procedure To bind the current selection to a space warp: Noise Modifier (page 1–743) 1. Select an object Skew Modifier (page 1–790) Click Bind to Space Warp. Taper Modifier (page 1–863) 2. Twist Modifier (page 1–876) 3. Drag a line from the selected object to the space Stretch Modifier (page 1–836) warp object. You can also press H to select the space warp by name. Procedure The space warp object flashes for a moment to show that the bind was successful. 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. 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 (page 2–7). 4. Drag in a viewport to create the space warp. See the topics for the various space warps for further details. Push Space Warp Forces Push Space Warp Create panel > Space Warps > Forces > Object Type rollout > Push Create menu > Space Warps > Forces > Push Push viewport icon Procedure 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. Push disperses a cloud of particles The Push space warp applies a force to either particle systems (page 2–108) or dynamics systems (page 2–686). 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. 59 60 Chapter 11: Space Warps and Particle Systems Interface 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 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. 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. Motor Space Warp 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. Amplitude 1—The strength of the variation (in Motor Space Warp Create panel > Space Warps > Forces > Object Type rollout > Motor Create menu > Space Warps > Forces > Motor 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. Motor disperses a cloud of particles The Motor space warp works like Push (page 2–59), 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. 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 viewport icon (with particle system on the left) 61 62 Chapter 11: Space Warps and Particle Systems Procedure 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. Interface 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. 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. 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 Vortex Space Warp Periodic Variation group 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 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. 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. 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 (page 2–108), 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. 63 64 Chapter 11: Space Warps and Particle Systems If you want the particles to spiral around the particle emitter, place both at the same location. Interface Particle stream caught in a vortex Procedure 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. 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. Vortex Space Warp Timing group Time On/Time Off—The frame numbers at which the space warp becomes active and becomes inactive. 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. 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. 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. 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. 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. Capture and Motion group Damping—Controls the degree to which orbital This group contains basic settings for Axial Drop, Orbital Speed, and Radial Pull, with Range, Falloff, and Damping modifiers for each. 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. Taper Curve—Controls the shape of the vortex. 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. 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. 65 66 Chapter 11: Space Warps and Particle Systems Display group Procedure Icon Size—Specifies the size of the icon. To create a Drag space warp: 1. 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. To create a more uniform drag effect, default values for all directional parameters are now 5.0%. Note: Drag slows down a stream of particles. 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. 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. Drag Space Warp Interface 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 67 68 Chapter 11: Space Warps and Particle Systems is applied for each vector within a spherical volume whose radius is set by the Range setting, when Unlimited Range is off. plane that governs the range of Axial damping. Takes effect only when Unlimited Range is turned off. Radial/Tangential—Radial specifies the 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. 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. 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 Display group Icon Size— Specifies the size of the icon. 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 (page 2–105), 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 (page 2–256) set to Object Fragments). • Create a PBomb and use Bind to Space Warp (page 2–58) 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 PBomb Space Warp Flow, use a Force operator (page 2–204) to apply the space warp to the particle system. • Adjust the parameters of both the PBomb and the particle system. 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. 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 Right: PBomb viewport icon Above: PArray particle system Below: Torus knot used as the PArray’s distribution object 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.) Effect of blowing up the torus knot 3. Select the PBomb icon and move to the Modify panel. Procedure 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. 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 69 70 Chapter 11: Space Warps and Particle Systems 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. Interface 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 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 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. 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 Path Follow Space Warp 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. 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. Display Icon group These options affect the visual display of the PBomb icon. (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. Icon Size—Alters the overall size of the PBomb icon. 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. 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. 4. On the Basic Parameters rollout, click Pick Shape Object and select the spline you created earlier. Path Follow Space Warp 5. Create panel > Space Warps > Forces > Object Type rollout > Path Follow Create menu > Space Warps > Forces > Path Follow 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. 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. If the particles don’t follow the emitter after it’s moved, then change any PathFollow parameter, and the motion will be corrected. 71 72 Chapter 11: Space Warps and Particle Systems Interface 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. Gravity Space Warp 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. 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. 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 Create menu > Space Warps > Forces > Gravity 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. 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 (page 2–686). 73 74 Chapter 11: Space Warps and Particle Systems Force group Gravity effect on snow Procedure 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. 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. 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. Spherical—Gravity effect is spherical, centered on the Gravity warp object. This choice is effective for creating water fountain or planetary effects. 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. Display group Interface 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 Wind Space Warp Create panel > Space Warps > Forces > Object Type rollout > Wind Create menu > Space Warps > Forces > Wind Procedure 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. Interface Wind changing the direction of the spray of a fountain 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 (page 2–686). Force group Wind effect on snow and spray These settings are comparable to the Gravity parameters. Strength—Increasing Strength increases the wind effect. Strength less than 0.0 creates a suction. It 75 76 Chapter 11: Space Warps and Particle Systems 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. 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 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 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 Displace Space Warp particle systems, a large number of geometric objects at once, or an object relative to its position in world space. Interface 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. 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. Displacement group These are the basic controls for Displace space warps. 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 77 78 Chapter 11: Space Warps and Particle Systems the Displace space warp object. Values less than 0.0 displace geometry toward the warp. Default=0.0 Planar—Projects the map from a single plane. Decay—By default, the Displace warp has the same around the cylinder. 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 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. 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 Cylindrical—Projects the map as if it were wrapped Shrink Wrap—Truncates the corners of the map and joins them all at a single pole, creating one singularity. 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. 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. Deflectors 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. 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. POmniFlect Space Warp Interface POmniFlect viewport icon Procedure 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 (page 2–109), specify the deflector in the Collision test (page 2–212) or Collision Spawn test (page 2–215) parameters. • If using a non-event-driven particle system (page 2–237), bind (page 2–58) the particle system to the deflector icon. 4. Position the POmniFlect icon to interrupt the particle stream. 5. Adjust the POmniFlect parameters as necessary. 79 80 Chapter 11: Space Warps and Particle Systems 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. 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 PDynaFlect Space Warp 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. 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. 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. 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 (page 2–271). 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. 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. 81 82 Chapter 11: Space Warps and Particle Systems 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. • 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. PDynaflect viewport icon Procedure 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 (page 2–237) 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. 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. 4. Bind the particle system to the dynaflector using the toolbar Bind to Space Warp button (page 2–58). 5. 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. Note: Because only those particles displayed in viewports are used in the dynaflector calculations, solving the dynamics involves three requirements: 9. On the Dynamics rollout, turn on the Update Display w/Solve check box above the Solve button. 10. Solve the simulation. PDynaFlect Space Warp Interface 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. 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. 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. 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. 83 84 Chapter 11: Space Warps and Particle Systems 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. Physical Properties group 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. 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 viewport icon Procedure 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. SOmniFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > SOmniFlect 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: 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 (page 2–78). 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. Note: Opposite sides of the deflectors reverse the distortion effect. Thus, a refracted particle • If using Particle Flow (page 2–109), specify the deflector in the Collision test (page 2–212) or Collision Spawn test (page 2–215) parameters. • If using a non-event-driven particle system (page 2–237), bind (page 2–58) the particle system to the deflector icon. 4. Position the SOmniFlect icon to interrupt the particle stream. SDynaFlect Space Warp 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 (page 2–81) warp, except that it’s spherical, and its Display Icon spinner specifies the icon’s Radius value. UOmniFlect viewport icon Procedure To use the UOmniFlect space warp: To use a universal omniflector, you need a minimum of three objects in the scene: • The particle system • The UOmniFlect space warp • The object used as the deflector 1. Add or select an object used as the deflector. SDynaFlect viewport icon 2. Create a particle system whose particles intersect the deflector object. UOmniFlect Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > UOmniFlect 3. On the Create panel, click Space Warps. Choose Deflectors from the list, and then click UOmniFlect. 4. Click and drag in a viewport to place the space 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. warp icon. Note: The size and position of the UOmniFlect icon do not alter the effect. 5. Apply the deflector to the particle system using the appropriate method: • If using Particle Flow (page 2–109), specify the deflector in the Collision test (page 2–212) or Collision Spawn test (page 2–215) parameters. 85 86 Chapter 11: Space Warps and Particle Systems • 6. If using a non-event-driven particle system (page 2–237), bind (page 2–58) the particle system to the deflector icon. The procedures and options for using UDynaFlect are the same as for PDynaFlect (page 2–81), with the following changes and additions. On the Modify panel > Parameters rollout > Object-Based OmniFlector group, click Pick Object, and then select the object to use as a deflector. 7. Adjust the particle system and UOmniFlect parameters as necessary. Interface Parameters rollout The settings for the UOmniFlect are the same as those for POmniFlect (page 2–78), 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. 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. SDeflector Space Warp Interface 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) 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 SDeflector repelling particles Procedure To create an SDeflector: renderable object to use as a deflector. Display Icon group Icon Size—Specifies the size of the UDynaFlect icon. 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. 87 88 Chapter 11: Space Warps and Particle Systems 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 (page 2–109), specify the deflector in the Collision test (page 2–212) or Collision Spawn test (page 2–215) parameters. 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 If using a non-event-driven particle system (page 2–237), bind (page 2–58) the particle system to the deflector icon. 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%. 4. Position the SDeflector icon to interrupt the Tip: To have particles slide along a deflector surface, • particle stream. 5. Adjust the SDeflector parameters as necessary. Interface 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 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. 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 UDeflector Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > UDeflector Create menu > Space Warps > Deflectors > UDeflector • If using a non-event-driven particle system (page 2–237), bind (page 2–58) 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 Particles scatter when they strike a UDeflector object The UDeflector is a universal deflector that lets you use any object as a particle deflector. Procedure 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. 4. Apply the deflector to the particle system using the appropriate method: • If using Particle Flow (page 2–109), specify the deflector in the Collision test (page 2–212) or Collision Spawn test (page 2–215) parameters. Object-Based Deflector group Specifies the object to use as a deflector. 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. 89 90 Chapter 11: Space Warps and Particle Systems 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. Deflector Space Warp Create panel > Space Warps > Deflectors > Object Type rollout > Deflector Create menu > Space Warps > Deflectors > Deflector 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. Two streams of particles striking two deflectors 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. 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. Display Icon group See also Icon Size—This spinner displays and lets you change the size of the icon. SDeflector Space Warp (page 2–87) UDeflector Space Warp (page 2–89) Procedure 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. The deflector appears as a wireframe rectangle. 3. Apply the deflector to the particle system using the appropriate method: FFD(Box) Space Warp • If using Particle Flow (page 2–109), specify the deflector in the Collision test (page 2–212) or Collision Spawn test (page 2–215) parameters. • If using a non-event-driven particle system (page 2–237), bind (page 2–58) the particle system to the deflector icon. Interface 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. 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. 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 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. 91 92 Chapter 11: Space Warps and Particle Systems 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 (page 1–685). 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. Object and object surrounded by an FFD lattice FFD(Box) Space Warp 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. 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. Moving control points in the lattice deforms the object. Procedure 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. 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. 93 94 Chapter 11: Space Warps and Particle Systems Interface 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 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 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. FFD(Cyl) Space Warp Only In Volume—Only vertices that lie inside the source volume are deformed. Vertices outside the source volume are not affected. 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 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 (page 1–685). 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. 95 96 Chapter 11: Space Warps and Particle Systems Procedures Example: Create an animated tablecloth: 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. Finished tablecloth using FFD (Cyl) space warp 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). 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 (page 1–439) 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. FFD(Cyl) Space Warp 5. Because All X is on, all control points for the two rings will be selected.) In this next series of steps, you’ll bind the tablecloth to the FFD lattice, and then animate it to move over the table. 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. 1. In the stack display, click the FFD(cyl) entry 6. Unlock the selection, and then region-select any control point in the outer ring to select all points in the outer ring. 7. Lock the selection and, in the Front viewport, drag the outer ring of points down to the floor. 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. 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. 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. 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. 97 98 Chapter 11: Space Warps and Particle Systems 9. As you move the time slider back and forth and Interface 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 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. 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 FFD(Cyl) Space Warp 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. 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 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. 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). Display group Tension/Continuity—Lets you adjust the tension Height—The number of control points along the height of the lattice. Note: Make changes to the dimensions before you 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. 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 Deform 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. These options provide controls that specify which vertices are affected by the FFD. All X, All Y, All Z—When one of these buttons is on and you select a control point, all control points 99 100 Chapter 11: Space Warps and Particle Systems 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. 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 (page 1–957). 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. Using a wave to deform a box See also Ripple Space Warp (page 2–102) Procedure 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. Wave Space Warp 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. Interface Wave Length—Sets the length of each wave along the wave’s local Y axis, in active units. 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. The initial amplitude sets both Amplitude 1 and Amplitude 2. Set these parameters to unequal values to create a cross wave. Divisions—Adjusts the size of the wave icon Wave group Flexibility parameter (Modify panel) These options control the wave effect. 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. 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. without altering the wave effect as scaling would. 101 102 Chapter 11: Space Warps and Particle Systems behaves the same as the Ripple modifier (page 1–783). 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 (page 2–100) Procedure To create a Ripple space warp: 1. Flexibility—Makes the bound object more or less responsive to the wave by multiplying the amplitude by this value. 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. Ripple Space Warp Create panel > Space Warps > Geometric/Deformable > Object Type rollout > Ripple Create menu > Space Warps > Geometric/Deformable > Ripple 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 Using a ripple to deform a surface The Ripple space warp creates a concentric ripple through world space. It affects geometry and Conform Space Warp 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. 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. 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. 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—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 103 104 Chapter 11: Space Warps and Particle Systems the travel direction (toward the target object). The vertices of the deformed object move until they hit the target object. There is also a Conform compound object (page 1–324) that provides additional methods of conforming one object to another. 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 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. 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. Bomb Space Warp The disk floats 20 units above the terrain. Next, change the affected vertices. Wrap To Object group 4. Select the disk/cylinder. These options provide controls to select the target object. 5. In the modifier stack display, click the Cylinder Pick Object—Click this, and then select an object item so it’s highlighted in gray. 6. Apply a Mesh Select modifier. 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. 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. 9. In the viewport, select the Conform icon. Default Projection Distance—The distance a vertex 10. In the Modify panel, turn on Use Selected in the bound object moves from its original location if it does not intersect the target object. 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 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. 105 106 Chapter 11: Space Warps and Particle Systems Interface Right: Bomb viewport icon Left: Torus knot Effect of exploding the torus knot Procedure 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. 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. 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. 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 Modifier-Based Space Warps of a tall cylinder with many height segments, and adjust Falloff to be less than the height of the cylinder. Also, if the bomb object is in motion during the blast, the result is not physically correct. 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. Modifier-Based Create panel > Space Warps > Modifier-Based Create menu > Space Warps > Modifier-Based 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 be physically correct, but it might look interesting. 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. 107 108 Chapter 11: Space Warps and Particle Systems Interface Gizmo Parameters rollout Gizmo Size group Length/Width/Height—Let you adjust the warp object’s dimensions. Deformation group 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 (page 2–109), 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 (page 2–237), particles typically exhibit similar properties throughout the animation. The parameters for a modifier-based space warp are identical to those of the modifier on which the space warp is based: 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. Bend Modifier (page 1–560) Which Particle System to Use? Taper Modifier (page 1–863) 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. 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 Noise Modifier (page 1–743) Twist Modifier (page 1–876) Skew Modifier (page 1–790) Stretch Modifier (page 1–836) Particle Flow Particle Flow Using Particle Flow Particle Flow is a new, extremely versatile and powerful particle system for 3ds Max. It employs an event-driven model, using a special dialog called Particle View (page 2–125). In Particle View, you combine individual operators (page 3–985) that describe particle properties such as shape, speed, direction, and rotation over a period of time into groups called events (page 3–935). Each operator provides a set of parameters, many of which you can animate to change particle behavior during the event. As the event transpires, Particle Flow continually evaluates each operator in the list and updates the particle system accordingly. Particle View (page 2–125) 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. To achieve more substantial changes in particle properties and behavior, you can create a flow (page 3–942). The flow sends particles from event to event using tests (page 3–1021), which let you wire (page 3–1033) 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. 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. Note: Operators and tests are known collectively as actions (page 3–903). Following are the principal sections in the Particle Flow documentation: Using Particle Flow (page 2–109) Particle Flow User Interface (page 2–125) Actions (page 2–141) The Particle Flow Tutorials. See also Non-Event-Driven Particle Systems (page 2–237) 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 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. 109 110 Chapter 11: Space Warps and Particle Systems 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 1. Event display 2. Particle diagram 3. Global event 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 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 (page 2–143), 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 (page 2–147), but you can alternatively use the Position Object operator (page 2–148) 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 (page 2–154) and Find Target (page 2–218). In addition, you can use the Force operator (page 2–204) to affect their motion with outside forces. The Life of a Particle 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 (page 2–125). 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). 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 (page 2–146) or the Collision Spawn test (page 2–215) or Spawn test (page 2–230). 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 (page 2–191) 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. 111 112 Chapter 11: Space Warps and Particle Systems Introductory Tutorial The best way to understand Particle Flow is by using it. This tutorial will acquaint you with some of the basic methods of working with Particle Flow. Create the Particle Flow system: 1. Start 3ds Max or reset the program. 2. On the Create panel > Geometry category, click the drop-down list and choose Particle Systems. 3. On the Object Type rollout, click PF Source. 4. In the Perspective viewport, drag out a rectangle. By default, the icon emits particles downward from its entire surface. In the viewport, the particles appear as ticks. 6. Go to frame 10, and press Shift+Q to render the Perspective viewport. This is the Particle Flow icon, or source, named PF Source 01. By default, it acts as an emitter, but you can also use any other object as an emitter. 5. Drag the time slider. Introductory Tutorial The rendered particles appear in a window. The default particle shape is a tetrahedron, a four-sided triangular solid. Its geometry is very simple, so the system can handle many particles quickly and efficiently, but it gives a good idea of how particles are behaving. Other basic shapes are a low-poly sphere and a cube; Particle Flow also lets you use any scene object as particle geometry. Modify the particle system in Particle View: 1. Press the 6 key to open Particle View. The particle source icon need not be selected. Tip: You can also open Particle View from the command panel when a Particle Flow source icon is selected. 1. Event display 2. Particle diagram 3. Global event 4. Birth event 5. Depot Particle View is where you manage and edit the particle system. The main window, known as the event display, contains the particle diagram, which describes the particle system. The default system starts with a global event, with the same name as the Particle Flow icon, followed by a birth event, containing a Birth operator and several others that define the system’s initial properties. Each operator’s name 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 operators available for use in the particle system. For more information about this dialog, see Particle View. 113 114 Chapter 11: Space Warps and Particle Systems 2. In the global event, PF Source 01, click the name of the Render 01 (Geometry) operator to highlight it and access its parameters. Be sure to click the text area; clicking the icon simply toggles the operator’s active state. Because this operator is in the global event, it affects the entire particle system. Any operator you place here does likewise. For example, you can define a global material here, or you can define different materials locally in each event. For best results, don’t combine global and local operators of the same type in a single system; use one or the other. Now the particles appear as tetrahedrons in the viewports. Wire two events together: Next, you’ll add a test and use it to wire the birth event to a new event. 1. In the depot at the bottom of the Particle View dialog, find Age Test. It’s the first item that uses a yellow, diamond-shaped icon. The settings for the Render operator appear in a rollout on the parameters panel, on the right side of the Particle View dialog. These include a drop-down list for how particles are to render, the percentage of particles that will render, and how to split up the particles into individual meshes. Next, you’ll change the particle display type. 3. In the birth event, Event 01, click the Display 01 (Ticks) operator at the bottom of the list. The display type is set to Ticks, as noted in the operator name in the event. 4. Next to the Type label, click Ticks, and from the drop-down list, choose Geometry. 2. Drag an Age Test from the depot into the Event 01 list, at the bottom of the list. Introductory Tutorial Before you release the mouse button, make sure you see a solid blue line in Event 01 under the Display operator. If the line is red and goes through an existing operator, the Age Test will replace that operator. If you drop the Age Test outside of Event 01 it will create a new event. The test type is Particle Age, so this means that all particles that have existed for more than 15 frames will test True, and be passed on to the next event. Next, you’ll create a new event and wire it to the test. 4. From the depot, drag the Shape operator (“Shape”) to an empty part of the event display, below Event 01. Age Test appears in the list, with its test output sticking out to the left. This is the part you use to connect the test to the next event. 3. Click the Age Test item in the list, and then in the Age Test 01 rollout on the right side of Particle View, set Test Value=15 and Variation=0. 115 116 Chapter 11: Space Warps and Particle Systems The actual location of an event in the event display doesn’t matter; the recommended placement is for the sake of convenience when wiring the events. It also helps to make sense of complex schematics if the events are arranged logically. You can move an event by dragging its title bar. Next, you’ll perform the actual wiring of the Age Test to the new event. 5. Position the mouse cursor over the blue dot at the left end of the Age Test’s test output. The cursor image changes to an icon depicting three arrows pointing inward toward a circular connector. 6. Drag from the event output on the Age Test in Event 01 to the Event 02 input, and then release the mouse button. The Shape operator appears in a new event, named Event 02. Like Event 01, the event has a circular event input sticking out from the top. Also, Particle Flow automatically adds a local Display operator to the event so its particles will be visible in the viewports. You can disable the automatic creation of local Display operators by choosing Options menu > Default Display > Global. Introductory Tutorial pressing the Delete key. Feel free to try this now, but undo any changes when you’re finished. 7. Click the Shape 02 operator and set Shape=Cube. Also, click the Display 02 operator and set Type=Geometry. View the wiring results: 1. Play the animation. Adjust the viewports so you can see the entire particle stream, if necessary. As you drag, the cursor image changes from a three-arrow icon to a circular connector by itself when it’s over an empty space in the event display area, and then to a four-arrow icon when it’s over the Event 02 input. When you release the mouse button, a blue “wire” appears connecting the two events. This wire indicates that particles that meet the Age Test conditions will pass “through” this wire to Event 02, to be affected by its actions. Tip: You can delete a wire (and anything else in the particle diagram) by selecting it and Starting at frame 16, the particles at the head of the stream change into cubes, indicating that they’ve entered Event 02. As time goes on, more and more particles pass the age of 15 and become eligible to go to the next event. 2. While the animation is playing, try modifying the different operator settings to see what happens. For instance, click Speed 01 and 117 118 Chapter 11: Space Warps and Particle Systems change the Speed and Direction settings. When you change a setting, the change is reflected in the viewports in real time, even during playback. Try right-clicking actions and events and using Rename to give them custom names. Even with a custom name, an action’s tooltip reveals its type. Another facility of the right-click menu is to add comments to actions and events. Once you do so, a small red triangle indicates the comment’s presence. Congratulations! You now have a working knowledge of Particle Flow. If you’d like to try some more tutorials, please go to this page and download the 3ds Max 8 Tutorials – Online Help (or PDF versions) and the Scene and Support Files. 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? (page 2–119) When I go to a different frame, the software sometimes seems to freeze for a while. What’s going on? (page 2–119) Is there a way to pre-calculate portions of a particle simulation, as in "baking" the animation? (page 2–120) What else can I do to optimize performance? (page 2–120) How do I use Particle Flow to make an object explode? (page 2–120) How can I control the accuracy of the Particle Flow simulation? (page 2–120) Can I use MAXScript to affect particles? (page 2–120) Can I use more than one object as instanced geometry? (page 2–121) How can I exclude particles from certain light sources? (page 2–121) How do I open Particle View without clicking Particle View button on the command panel? (page 2–121) Do I need multiple Particle Views to manage more than one particle system? (page 2–121) Can I selectively disable or "turn off " portions of a particle system? (page 2–121) I sometimes see events named “Action Recovery” in Particle View. Where did they come from? (page 2–121) How do I animate action parameters? (page 2–121) How can I synchronize an animated bitmap texture to particle age? (page 2–121) Do I still need to bind my Particle Flow particles to space warps? (page 2–121) How do I make particles follow a path? (page 2–122) Can I use Snapshot or dynamics with Particle Flow? (page 2–122) How do I use motion blur with Particle Flow? (page 2–122) How do I use the Particle Age and Particle MBlur maps with Particle Flow? (page 2–122) 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? (page 2–122) Particle Flow FAQ How can I make all particles appear in the first frame while giving them different ages? (page 2–123) How can I specify the time frame in which animated parameters are applied to particles? (page 2–123) How can I apply bubble motion to particles? (page 2–123) How can I branch an event to several other events? (page 2–123) Does it matter which order I put actions in an event? (page 2–123) How can I tell which particles are in a certain event? (page 2–124) Why do my particles lose their material when they move to another event? (page 2–124) Can I have an event receive input from multiple events? (page 2–124) I changed an operator setting, but it doesn’t seem to have any effect on the particle system. (page 2–124) Can an event be isolated in Particle View and not connected to anything? (page 2–124) General How does Particle Flow handle time? Parameters that measure time in Particle Flow, such as Birth (page 2–143) > Emit Start/Stop and Age Test (page 2–211) > 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. 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 119 120 Chapter 11: Space Warps and Particle Systems 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 (page 2–197) 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. 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 (page 2–230). 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. What else can I do to optimize performance? How can I control the accuracy of the Particle Flow simulation? 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. On the command panel > System Management rollout (page 2–139) 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. 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. Can I use MAXScript to affect particles? Yes. Particle Flow includes a Script operator (page 2–208) and test (page 2–229), as well as a Birth Script operator (page 2–145), 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 Force operator (page 2–204) and Keep Apart operator (page 2–172) 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 (page 2–139). Particle Flow FAQ Can I use more than one object as instanced geometry? Yes. With the Shape Instance operator (page 2–178), 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? Turn Off commands. Also, 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 (page 2–278) 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? No: All particle systems appear in Particle View. You can scroll and zoom the event display to see the different systems. Use the Material Dynamic operator (page 2–191) in conjunction with the Bitmap 2D map (page 2–1631). You’ll find a procedure that describes the method in detail here (page 2–191). Can I selectively disable or "turn off" portions of a particle system? Do I still need to bind my Particle Flow particles to space warps? 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 No; you use the Collision test (page 2–212), Collision Spawn test (page 2–215), or Force operator (page 2–204) to affect particle motion with 3ds Max space warps. The ability to do this on a 121 122 Chapter 11: Space Warps and Particle Systems 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 (page 2–162) or the Find Target test (page 2–218), assigning the icon or target to a spline path. You’ll find illustrative procedures in both topics. 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 (page 1–117) 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 (page 2–1386) 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 (page 2–146). Also note the following: • Particle Age, Particle MBlur and a Bitmap map containing an animated bitmap can be used only with Material Dynamic operator (page 2–191), with Same As Particle ID turned on. You’ll find procedures for using Bitmap and Particle Age at this topic. • 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. Particle Flow FAQ 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 (page 2–143). 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 (page 2–270) 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 (page 2–16). 2. Position the dummy away from the center of the particle geometry object and link (page 2–421) your particle geometry to the dummy so that the dummy is the parent object (that is, drag from the geometry object to the dummy). The distance between the pivots (page 2–487) of the two objects determines the radius of the bubble motion. 3. In Particle View, add a Shape Instance operator (page 2–178) and a Spin operator (page 2–154) 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 (page 2–230) 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 (page 2–218) and Speed operator (page 2–159) 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 123 124 Chapter 11: Space Warps and Particle Systems 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 significantly higher than that of the test. For a list of actions’ effective time frames, see Action Time Frames (page 2–141). global event (page 3–949) with a Material operator (page 2–186) or a Shape Instance operator (page 2–178). Otherwise, you need to define it in each local event. 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 (page 2–204) and a Collision test (page 2–212), 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. Particle Flow lets you wire any number of tests to a single event. How can I tell which particles are in a certain event? One way is to set the Type option for the Display operator (page 2–202) 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 Can I have an event receive input from multiple events? 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 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 View 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). wiring defines the schematic, or flow, of the particle system. 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. 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 (page 2–142) and tests (page 2–210). 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 (page 2–143) 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 1. Menu bar 2. Event display 3. Parameters panel 4. Depot 5. Description panel 6. Display tools Particle View comprises the following elements: • The menu bar (page 2–126) provides functions for editing, selection, adjusting the view, and analyzing the particle system. • The event display (page 2–131) contains the particle diagram, and provides functions for modifying the particle system. 125 126 Chapter 11: Space Warps and Particle Systems • 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 (page 2–131). The contents of the depot fall into three categories: operators (page 2–142), tests (page 2–210), and flows (page 2–208). 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 (page 2–129). 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. Procedure 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 (page 3–13) > 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 (page 2–178) 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 (page 3–463) to merge the file from step 2. Particle View Menu Bar Interface Turn On Selected—Turns on any highlighted, Edit menu turned-off actions or events. Available only when one or more highlighted items are turned off. 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 . 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. 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. 127 128 Chapter 11: Space Warps and Particle Systems 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 Select menu 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. 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. 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 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. Particle View Menu Bar Also, if an action references an object (for example, a Shape Instance operator (page 2–178) 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 V iewport—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 (page 3–13) > Selected options. Sync Source/Events Selection In V iewport—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. Display menu 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. 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. 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 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. 129 130 Chapter 11: Space Warps and Particle Systems 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 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 Particle View Event Display real-time playback might skip a greater number of frames. To see all frames, turn off Time Configuration > Real Time. Use Dynamic Names—When on, action names in the parameters panel is hidden; to display it, choose Display menu > Parameters. • 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 (page 3–936) in Particle View contains the particle diagram, and provides a complete range of intuitive functions for editing the particle system. 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 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 (page 2–129), the right-click menu (page 2–133), or as icons at the bottom-right of the dialog. Note: A number of these functions are also Modifying Actions and Events in the Event Display available from the event display right-click menu (page 2–133), as well as the menu bar (page 2–126). • To change the color used by a Display operator, click its color swatch to the right of its name. 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 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 131 132 Chapter 11: Space Warps and Particle Systems 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. 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. • 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 Event Display Right-Click Menu 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 (page 3–916); 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 (page 2–143). • 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. 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. 133 134 Chapter 11: Space Warps and Particle Systems 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 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. 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 (page 1–117). 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). Particle Flow Source Use Script Wiring—Lets you use a script to specify certain parameters in the Force operator (page 2–204) and Keep Apart operator (page 2–172). 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. 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 (page 2–125) > Click a global event (title bar). > Parameters panel The Particle Flow source is the viewport icon for each flow (page 3–942), and also serves as the default emitter. By default, it appears as a rectangle with a 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. 135 136 Chapter 11: Space Warps and Particle Systems The particle source icon is roughly equivalent to the corresponding global event (page 3–949) 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 (page 3–916). 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. 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 V iew—Click to open the Particle View dialog (page 2–125). Emission rollout 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 (page 2–138). Sets the physical characteristics of the emitter (particle source) icon, and the percentage of Particle Flow Source particles produced in the viewports and when rendering. These settings affect only the viewport display of these items; they have no effect on the particle system. 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. Quantity Multiplier group These settings determine the percentage of the total number of particles in each flow (page 3–942) 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 (page 2–202) and Render operator (page 2–206). 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. The total number of particles is determined by the combined effects of the following operators and tests: Birth (page 2–143), Birth Script (page 2–145), Delete (page 2–146), Collision Spawn (page 2–215), and Spawn (page 2–230). 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. 137 138 Chapter 11: Space Warps and Particle Systems Selection rollout Selected particles appear in the viewports in red (if not geometry), in the form designated by the Display operator > Selected setting. 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. 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 (page 2–146) and the Split Selected test (page 2–235). You cannot directly manipulate selected particles with standard 3ds Max tools such as Move and Rotate. 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. Note: This rollout appears only on the Modify panel, not on the Create panel or Particle View dialog > parameters panel. Particle—Lets you select particles by clicking Get From Event Level—Click to convert an Event-level selection to the Particle level. Available only at the Particle level. 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, 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. 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. Particle Flow Source System Management rollout 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. Script 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 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 139 140 Chapter 11: Space Warps and Particle Systems 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. 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 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. Actions Description instantaneous or continuous basis, depending on their settings. The tables below list each action with its time frame. Toggles active status of all particle systems. Operators Operator Time Frame Toggles Particle View dialog. 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 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 The Particle Flow components for creating particle systems are known collectively as actions. These are subdivided into three main categories: Script Operator Depends on script Shape Once Shape Facing Continuous • Operators (page 2–142) 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 Particle Flow Function Keyboard Shortcut Copy Selected In Particle View* Ctrl+C Particle Emission Toggle ; Particle View Toggle 6 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 • Flows (page 2–208) • Tests (page 2–210) 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 n/a=not applicable 141 142 Chapter 11: Space Warps and Particle Systems 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 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. 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. 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. 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 The Particle Flow operators in the Particle View depot Script Test Depends on script The primary operators in Particle Flow are: Spawn Continuous, except once with Once Birth Operator (page 2–143) Birth Script Operator (page 2–145) Delete Operator (page 2–146) Force Operator (page 2–204) Operators Keep Apart Operator (page 2–172) The operator is the basic element of the particle system; you combine operators into events to specify the particles’ characteristics over a given Mapping Operator (page 2–195) Material Dynamic Operator (page 2–191) Birth Operator Material Frequency Operator (page 2–189) Material Static Operator (page 2–187) Birth and Death Position Icon Operator (page 2–147) Position Object Operator (page 2–148) Rotation Operator (page 2–153) Birth Operator Particle View (page 2–125) > Click Birth in an event or add a Birth operator to the particle system and then select it. Scale Operator (page 2–156) Spin Operator (page 2–154) Select and Uniform Scale (page 1–441) Script Operator (page 2–208) Shape Operator (page 2–176) Shape Facing Operator (page 2–176) 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 (page 3–949); this is called the birth event (page 3–916). Shape Mark Operator (page 2–183) 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. Speed Operator (page 2–159) Note: The Birth operator must always come at the Speed By Icon Operator (page 2–162) 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 (page 2–230) or Collision Spawn Test (page 2–215) test. Shape Instance Operator (page 2–178) Speed By Surface Operator (page 2–167) The utility operators are: Cache Operator (page 2–197) Display Operator (page 2–202) Notes Operator (page 2–206) Render Operator (page 2–206) See also Flows (page 2–208) Tests (page 2–210) See also Birth Script Operator (page 2–145) Procedure 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. 143 144 Chapter 11: Space Warps and Particle Systems 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 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 Event 01. input of Event 03. 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. 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. 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. 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 (page 2–236). To do this, delete the wire from PF Source 01 to Event 02, add an Empty Flow (page 2–209) to the system, and then wire it to Event 02. Interface 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 The user interface appears in the parameters panel, on the right side of the Particle View dialog. event input of Event 02. Emit Start—The frame number at which the Again, Particle Flow doesn’t let you, because this would result in two Birth operators in series. operator begins emitting particles. Emit Stop—The frame number at which the operator stops emitting particles. Birth Script Operator 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. 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. 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. 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. 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). Birth Script Operator Tip: If, when using the Collision (page 2–212) or Collision Spawn test (page 2–215), you experience an irregular particle stream, try turning off Subframe Sampling. Particle View (page 2–125) > Click Birth Script in an event or add a Birth Script operator to the particle system and then select it. 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. 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. 145 146 Chapter 11: Space Warps and Particle Systems 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 (page 2–143) 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 Delete Operator Particle View (page 2–125) > 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 to define the particles’ maximum age. For an example of usage, see Material Dynamic operator (page 2–191). Interface 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. 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. Position Icon Operator 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 (page 2–138). 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. Transforms Position Icon Operator Particle View (page 2–125) > 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 (page 2–148) to emit particles from any other object. Interface 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. 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 147 148 Chapter 11: Space Warps and Particle Systems 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. 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, 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—Emits particles from random points along the edges of the icon. • Surface—Emits particles from random points on the surface of the icon. • Volume—Emits particles from random points within the volume 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. Position Object Operator Particle View (page 2–125) > 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. Position Object Operator 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 (page 2–147) 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 (page 2–159), 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 (page 2–167) instead and designate as Surface Geometry the same object(s) as with Position Object. Procedure 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. 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. 149 150 Chapter 11: Space Warps and Particle Systems Interface 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. 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, 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 Position Object Operator (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. 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 If you delete from the scene an object designated as an emitter, its entry in the list is replaced with “”. the emitter object’s pivot. Moving the pivot does not affect this option. Use the Add and Remove buttons to edit this list. vertices of the emitter objects. Add—Adds an object to the list. Click Add, and then click an object in the viewport. Edges—Emits particles from random points along By List—Adds multiple objects to the list. Click Surface—Emits particles from random points on the surface of the icon. By List to open the Select Emitter Objects dialog. This works just like the Select Objects dialog (page 1–78); 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 Vertices—Emits particles from randomly selected the edge sub-objects of the emitter objects. Volume—Emits particles from random points within the volume of the icon. Selected Vertices—Emits particles from the current vertex sub-object selection. Selected Edges—Emits particles from the current edge sub-object selection. emit from the surface of an object whose form is animated by morphing or with modifiers. Selected Faces—Emits particles from the current 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. You can modify the Location choice with any combination of the following: 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 face or polygon sub-object selection. 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 151 152 Chapter 11: Space Warps and Particle Systems 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. • 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 Important: For material-influenced emission to appear properly in the viewports, two conditions are required: from the Multi/Sub-Object material assigned to the emitter to define density values. • 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. 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 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. 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. 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. 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. Emission points are still randomized; change the Uniqueness setting to alter these. Rotation Operator Total—Sets the number of emission points. Available only when Distinct Points Only is on. Default=10. three explicit. For some options you can set a degree of random variation or divergence from the specified orientation. If Location Is Invalid group To cause particles to spin, use the Spin operator (page 2–154). 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. Interface 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. Rotation Operator Particle View (page 2–125) > 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 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. World Space—Orientation is specified in the world coordinate space. Use the X/Y/Z settings to specify the orientation for all particles. 153 154 Chapter 11: Space Warps and Particle Systems Speed Space—The coordinate space for particle orientation is determined by the particles’ direction upon entering the event. Divergence Axis—Use the X/Y/Z settings to set By default, using the Speed operator (page 2–159) > Along Icon Arrow option, particles are aimed straight down when born. 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. 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 (page 2–218) 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. the axis to which divergence will be applied. Default=1,0,0. Range=-1.0 to 1.0. Uniqueness group The Uniqueness setting affects the randomization of orientation with the Random 3D and Random Horizontal options, and also Divergence. Use the X/Y/Z settings to specify the orientation for all particles. The Divergence setting is unavailable when using Speed Space Follow. Seed—Specifies a randomization value. X/Y/Z—Set the basic orientation about the particles’ New—Calculates a new seed using a randomization local axes. Unavailable with the Random 3D and Random Horizontal options. formula. Divergence—Defines the range of variation (in Spin Operator 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. Particle View (page 2–125) > 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 (page 2–153). Spin Operator Interface 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 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. 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. 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 (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. 155 156 Chapter 11: Space Warps and Particle Systems Divergence—Defines the range of variation (in 3. Add a new Scale operator to the event display, 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. 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. Uniqueness group 5. In the Event 02 > Scale operator, set Type to 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. 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, New—Calculates a new seed using a randomization set Test Value to 30, and Variation to 0. formula. 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. Scale Operator Particle View (page 2–125) > 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. Procedure 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 Example: To animate particle scale: Event 02 to Event 03. 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. Particles in Event 03 remain at full scale for 30 frames, and then move on to the next event. 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. 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. Scale Operator 14. Copy and paste the Age Test as an instance from Interface 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. 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. 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 157 158 Chapter 11: Space Warps and Particle Systems should be specified with a previous Scale operator, the Scale setting in the Shape operator (page 2–176), or a Shape Instance operator (page 2–178). 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. 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 Speed Operator 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. Sync By—Choose the time frame for applying animated parameters: 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. New—Calculates a new seed using a randomization formula. 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. • 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. Speed Speed Operator Particle View (page 2–125) > 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 objects as emitters, use the Speed By Surface Operator (page 2–167) operator instead. 159 160 Chapter 11: Space Warps and Particle Systems See also 10. Add a Send Out test at the end of Event 02. Speed By Icon Operator (page 2–162) 11. Create a new event using an Age Test. Click the Keep Apart Operator (page 2–172) Age Test to display its parameters, and then set the following: Procedure • Event Age Example: To change particles’ speed: • Test Value=1 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. • Variation=0 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. 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. Speed Operator Interface 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. 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. 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. 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. 161 162 Chapter 11: Space Warps and Particle Systems 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 Speed By Icon operator icon 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. When you add a Speed By Icon operator to the particle system in Particle View (page 2–125), the Speed By Icon operator icon icon appears in the scene at the 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. This option is unavailable if Random 3D 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. 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. 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 (page 2–159) Speed By Surface Operator (page 2–167) Keep Apart Operator (page 2–172) Speed By Icon Operator Particle View (page 2–125) > 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. 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 Speed By Icon Operator 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: 4. Open Particle View (press 6 ). 1. Reset the software, and then add a Particle Flow 5. In Event 01, click the Position Icon operator system in the Perspective viewport. 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. 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 (page 2–398). 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. 163 164 Chapter 11: Space Warps and Particle Systems 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. The endpoints now coincide. 13. Drag the time slider again. 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. 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. 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. Speed By Icon Operator 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. 10. Drag the time slider again. This time the particles move in an arc around the icon. 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 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. 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 165 166 Chapter 11: Space Warps and Particle Systems 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. 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 (page 2–164). 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, 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 (page 2–158). 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. Speed By Surface Operator • 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 (page 2–158). 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. Speed By Surface Operator Particle View (page 2–125) > 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 (page 2–159), 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 (page 2–148). 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 (page 2–159) 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. Icon Size—Sets the size of the operator icon. This setting is for visibility only; it doesn’t affect particle behavior. See also Uniqueness group Keep Apart Operator (page 2–172) The Uniqueness setting enables randomization of the speed variation range. Procedure Seed—Specifies a randomization value. New—Calculates a new seed using a randomization formula. Speed By Icon Operator (page 2–162) 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 167 168 Chapter 11: Space Warps and Particle Systems world origin (X/Y/Z=0), and set the icon’s Length and Width values both to 30. 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 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 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. 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. 12. Make the cylinder considerably larger: 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 13. In Particle View, click the Speed 01 operator Radius=60 and Height=90. Activate the Perspective viewport, if necessary, and then press F3 to set it to Wireframe view. and set Direction to Random 3D. Speed By Surface Operator 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. Interface 169 170 Chapter 11: Space Warps and Particle Systems The user interface appears in the parameters panel, on the right side of the Particle View dialog. objects as Surface Geometry that your system uses as emitters. The first setting lets you choose whether the operator controls speed once or continuously. 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. 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 (page 2–172) 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 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 Surface Objects dialog. This works just like the Select Objects dialog (page 1–78); 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 Speed By Surface Operator 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 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. 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. 171 172 Chapter 11: Space Warps and Particle Systems 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 The Surface Geometry will not control particles beyond this distance. 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 (page 2–158). 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. 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. Event Duration—Any keys set for parameters are Accel Limit—Sets the maximum acceleration. The higher this value, the more quickly particles can turn and change speed. The Uniqueness setting enables randomization of speed variation, and randomization of direction with the Random 3D and Random Horizontal options. 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. applied to each particle starting when it first enters the event. Uniqueness group Seed—Specifies a randomization value. New—Calculates a new seed using a randomization formula. Keep Apart Operator 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. Particle View (page 2–125) > 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 Keep Apart Operator 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. Interface 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. 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 (page 2–159) Speed By Surface Operator (page 2–167) Speed By Icon Operator (page 2–162) The user interface appears in the parameters panel, on the right side of the Particle View dialog. Force—The amount of force applied to the particles. Use positive values to separate particles, 173 174 Chapter 11: Space Warps and Particle Systems 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 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 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 (page 3–942) 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 Relative to Particle Size—Choose this to set the core only away from each other. 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. 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 (page Keep Apart Operator 3–942). 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 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. 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. 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 (page 2–208) 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 (page 2–206). After choosing this option, click items in the list to highlight them. On the Script Wiring rollout, choose either of the following: Selected Particle Systems—Keeps particles in the current event away from all particles in the flows (page 3–942) highlighted in the list below this choice. The particles not in the current event are not influenced by the Keep Apart operator. Use Script Float As—Choose either of the following: 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 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 (page 2–174) > Variation % calculations. Seed—Specifies a randomization value. New—Calculates a new seed using a randomization formula. 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 • Not Used—Particle Flow uses the Force setting specified in the Parameters rollout. • Influence—Particle Flow applies the script particleFloat value to the Force value. 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 (page 2–174) settings specified in the Parameters rollout. • 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. 175 176 Chapter 11: Space Warps and Particle Systems Shape • Sphere—Creates spherical particles. The sphere has the most polygons of the rendering particle shapes, and its orientation isn’t obvious. Shape Operator Size—Sets the overall size of the particles in system units. Default=10.0 Particle View (page 2–125) > Click Shape in an event or add a Shape operator to the particle system and then select it. Setting Size=0 makes the particles invisible. Scale—Turn on to set the size of the particles as a 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 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. have pivot points in their geometric centers. See also Shape Instance Operator (page 2–178) Shape Facing Operator (page 2–176) Shape Mark Operator (page 2–183) 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. Shape Facing Operator Particle View (page 2–125) > 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. • Tetra—These tetrahedron-shaped particles have a four triangular sides. Having only four polygons, the tetra is the simplest of the rendering particle shapes. See also • Cube—These box-shaped particles have six square sides, all the same size. Shape Mark Operator (page 2–183) Shape Operator (page 2–176) Shape Instance Operator (page 2–178) Shape Facing Operator Interface Look At object. The mouse cursor changes to a cross shape when positioned over a valid object. 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.” 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 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. 177 178 Chapter 11: Space Warps and Particle Systems 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. 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 (page 2–125) > Click Shape Instance in an event or add a Shape Instance operator to the particle system and then select it. W/H Ratio—Defines the aspect (width-to-height) ratio of the shape rectangle. 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 (page 2–154). In the latter, set Rotation Axis to Shape Instance lets you use any reference object (page 3–1002) 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 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. However, Shape Instance ignores any rotational and positional transformations applied directly to the reference object; it uses only the pure scale component. For Shape Instance Operator 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. 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. See also Shape Operator (page 2–176) Shape Facing Operator (page 2–176) Shape Mark Operator (page 2–183) Procedure 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. 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. 179 180 Chapter 11: Space Warps and Particle Systems Interface include multi-shape objects such as groups and hierarchies; see Separate Particles For group (page 2–181). 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 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 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. Shape Instance Operator Selecting an open group will add only the group member you click, not the entire group. For group are on, in which case this displays the number of resulting different shapes. Separate Particles For group Scale (%)—Specifies a uniform scaling factor for all particles. Range=0 to 100000. Default=on, 100. 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 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. 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 (page 1–441). Variation (%)—Specifies a randomized percentage of scaling variation. Use the Uniqueness setting to change the randomization. Range=0 to 100. Default=0. You can vary the order randomly by turning on Multi-Shape Random Order. This value cannot be animated. To animate scaling variation, use the Scale operator (page 2–156) operator. You can turn on any combination of Separate Particles items. All are off by default. Acquire Mapping—When on, all mapping data 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 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. 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. 181 182 Chapter 11: Space Warps and Particle Systems 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 (page 3–949). 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. 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. Shape Mark Operator New—Calculates a new seed using a randomization formula. With these settings, faces are no longer coplanar, and the mental ray renderer gives better results. See also Shape Mark Operator Particle View (page 2–125) > 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. 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 (page 2–186) 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. Shape Operator (page 2–176) Shape Instance Operator (page 2–178) Shape Facing Operator (page 2–176) Procedure 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 (page 2–212). 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 (page 2–215) 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. 183 184 Chapter 11: Space Warps and Particle Systems Interface 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 (page 2–185) 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 (page 2–185), 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. Shape Mark Operator • 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. 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. • Random—Uses a random Length direction in the contact plane. Distor(tion) Max %—Sets the maximum percentage Divergence—Applies a range of random variation, in degrees, to the orientation of the Length direction. Unavailable when using the Random option. 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. 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. 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. 185 186 Chapter 11: Space Warps and Particle Systems 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. 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. 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. 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. Material and Mapping 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 (page 2–187). If you’re using a compound material such as Multi/Sub-Object (page 2–1594), you can assign different sub-materials to different particles with the Material Frequency operator (page 2–189). And to assign materials that change in appearance over time, use the Material Dynamic operator (page 2–191). Related to this is the Mapping operator (page 2–195), 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 Material Static Operator 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 (page 2–1631), 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. 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 (page 3–949) with a Material operator or a Shape Instance operator (page 2–178). Otherwise, you need to define it in each local event. • The primitive particle shapes available with the Shape operator (page 2–176) do not have mapping coordinates. The Mapping operator (page 2–195) 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 (page 2–178) instead. • If you use a Material operator with Shape Instance (page 2–178), be sure to apply mapping coordinates to the reference object(s) (page 3–1002). You can do this by making sure the object’s Generate Mapping Coords option is on (if available), or applying a UVW Map modifier (page 1–922) or Unwrap UVW modifier (page 1–878). 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 (page 3–1002) 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 (page 2–178); it does not persist from event to event. • If you use the Cache operator (page 2–197) 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. Material Static Operator Particle View (page 2–125) > 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. 187 188 Chapter 11: Space Warps and Particle Systems See also Materials and Mapping in Particle View (page 2–186) Material Frequency Operator (page 2–189) Assign Material ID—When on, the operator defines a material ID number for each particle. Default=off. Show In V iewport—When on, the material is shown applied to the particles in the viewports. Material Dynamic Operator (page 2–191) Assignment Method Interface 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. 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. 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 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. Material Frequency Operator 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. Sub-Materials=9. For Rate, use the default settings of Per Particle and 1.0. Lastly, turn off Loop. 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. Seed—Specifies a randomization value. 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 # Uniqueness group The Uniqueness setting varies the sequence of assigned IDs with the Random option. New—Calculates a new seed using a randomization formula. Material Frequency Operator Particle View (page 2–125) > 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 (page 2–186) Material Static Operator (page 2–187) Material Dynamic Operator (page 2–191) 189 190 Chapter 11: Space Warps and Particle Systems Interface 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. Show In V iewport—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. 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. 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 Material Dynamic Operator Particle View (page 2–125) > 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 (page 3–908), 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 (page 2–1631). Other examples of animated textures are materials that use the Particle Age map (page 2–1675) or the Particle MBlur map (page 2–1676). Alternatively, you can use different sub-materials from a compound material such as Multi/Sub-Object. Procedure 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. 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. 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 (page 2–186) Material Static Operator (page 2–187) Material Frequency Operator (page 2–189) Open the Material Editor, and assign a Bitmap map as the Diffuse map. 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. 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. 191 192 Chapter 11: Space Warps and Particle Systems 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. Example: To use the Particle Age map: The Particle Age map (page 2–1675) 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 (page 2–146). 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 (page 3–949) 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. Material Dynamic Operator If it isn’t, the particles all change color at the same time. Interface 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. 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 (page 2–211) 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 (page 2–187) with a material that uses the same final color or map as the Particle Age map. 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. 193 194 Chapter 11: Space Warps and Particle Systems Assign Material ID—When on, the operator Randomize Age Offset—When on, the software defines a material ID number for each particle. Default=on. varies the difference between the particle age and the starting material ID at random. The maximum difference is determined by the Max Offset parameter. 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. 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 Mapping Operator 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. 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. 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 (page 2–125) > 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, 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. • Particle Age—Any keys set for parameters are applied at the corresponding frames of each particle’s existence. See also • Event Duration—Any keys set for parameters are applied to each particle starting when it first enters the event. Material Frequency Operator (page 2–189) Rand Offset—When on, the software varies the difference between the particle age and the Material Static Operator (page 2–187) Material Dynamic Operator (page 2–191) 195 196 Chapter 11: Space Warps and Particle Systems Procedure 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. 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 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. 11. On the Mapping rollout in Particle View, turn on Show Map In Viewport. Go to frame 100 and turn on Auto 12. 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. The user interface appears in the parameters panel, on the right side of the Particle View dialog. 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 Cache Operator 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 (page 2–158). • 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. 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 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 Additional Operators Cache Operator Particle View (page 2–125) > 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 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 197 198 Chapter 11: Space Warps and Particle Systems 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. Procedure 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. 4. In Particle View, Add a Keep Apart operator (page 2–172) 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 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. 13. Click the Keep Apart operator, change the the depot to Event 01. Insert it anywhere in the event. Falloff Zone value to 9.0, and then drag the time slider. When you release the mouse button, there is a delay as the Cache operator automatically caches particle motion from the start of the 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. Cache Operator 14. Click the Cache operator, and in the Manual Interface 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. 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 (page 2–137)). Otherwise, unpredictable results can occur. Update—If you change a parameter in the particle system, the cached data might become invalid. 199 200 Chapter 11: Space Warps and Particle Systems This setting determines whether Particle Flow should update the cache automatically, or let you do it manually. Default=Always. 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. • 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. Sampling—Determines how often the Cache operator samples and caches the animation. Default=Every 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 • 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 (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, Cache Operator 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 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 V iewports—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. 201 202 Chapter 11: Space Warps and Particle Systems 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 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. 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 operators (for example, both global and local operators) simultaneously, the software generates all viewport particle representations at the same time. See also Render Operator (page 2–206) Interface Display Operator Particle View (page 2–125) > 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, 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 Display Operator 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—(2D) Each particle appears as a small circle. • 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. 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—(2D) Each particle appears as a diamond. • Boxes—(2D) Each particle appears as a small square. • Asterisks—(2D) Each particle appears as an asterisk (*). • Triangles—(2D) Each particle appears as a small triangle. 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. 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 (page 2–138) appear in the viewports. The choices are the same as for Type, above. 203 204 Chapter 11: Space Warps and Particle Systems Force Operator Particle View (page 2–125) > Click a Force operator in an event or add a Force operator to the particle system and then select it. Procedure 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 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: 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. • Displace (page 2–76) • Drag (page 2–66) Interface • Gravity (page 2–73) • Motor (page 2–61) • PBomb (page 2–68) • Push (page 2–59) • Vortex (page 2–63) • Wind (page 2–75) 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 to 100.0. Tip: To make the particles follow a path, use the Speed By Icon operator (page 2–162) and use Path Constraint to assign its icon to the path. For a procedure, see Example: To send particles along a path: (page 2–163). To employ deflectors for particle dynamics, with or without the Force operator, use the Collision test (page 2–212) and Collision Spawn test (page 2–215). 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. Force Operator If you delete a listed space warp from the scene, its name is replaced in the list by the entry “ ”. Influence—Specifies the strength with which the Note: Particle Flow applies the forces to particle A negative Influence value reverses the force effects. 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. 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. force or forces are applied to the particles as a percentage. Default=1000.0. 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 (page 2–158). 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. 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. 205 206 Chapter 11: Space Warps and Particle Systems Script wiring lets you use a script to control parameters that you normally specify in the operator’s parameters. Place a Script operator (page 2–208) 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. Interface Use Script Float As—Choose either of the following: • Not Used—Particle Flow uses the Influence setting 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. Notes Operator Particle View (page 2–125) > 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. 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. Render Operator Particle View (page 2–125) > 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. Render Operator Interface 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 (page 2–137). Render Result group 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. 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. • None—The particle system (or event, if used locally) is considered non-renderable, and therefore is never evaluated during render. Certain renderers might require a non-default setting for Render Result. Consult the renderer documentation for further information. • BoundingBox—Particles render as boxes whose sizes represent the particle geometry extents. Note: The number of particles Particle Flow The user interface appears in the parameters panel, on the right side of the Particle View dialog. 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 Update script (page 2–140) 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. 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. 207 208 Chapter 11: Space Warps and Particle Systems 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. 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 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 (page 2–125) > 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. 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. 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 Flows The flows category contains two operators for creating initial particle system setups. These are: Empty Flow Empty Flow (page 2–209) Standard Flow (page 2–209) Standard Flow Particle View (page 2–125) > depot See also Operators (page 2–142) Tests (page 2–210) Empty Flow Particle View (page 2–125) > 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, 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 (page 2–209) 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 (page 2–209) 209 210 Chapter 11: Space Warps and Particle Systems 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, The Particle Flow tests in the Particle View depot The tests are: Age Test (page 2–211) Collision Test (page 2–212) Collision Spawn Test (page 2–215) Find Target Test (page 2–218) Go To Rotation Test (page 2–224) Scale Test (page 2–227) Script Test (page 2–229) Send Out Test (page 2–230) Spawn Test (page 2–230) Speed Test (page 2–233) 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. Split Amount Test (page 2–234) 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. See also Split Selected Test (page 2–235) Split Source Test (page 2–236) Operators (page 2–142) Flows (page 2–208) Age Test Age Test Particle View (page 2–125) > 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 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. 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. 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. • Particle Age—Tests the current age of each particle in frames. This is the default test type. "Puffing" is the effect of creating separate "puffs" or clusters of particles, rather than a continuous stream. • Event Age—Tests the current duration of the current event in frames. Turn off Subframe Sampling to cause the test to be executed exactly at frame times. Test True if Particle Value—Lets you specify whether the test passes particles on to the next event if the 211 212 Chapter 11: Space Warps and Particle Systems Uniqueness group Procedure The Uniqueness setting enables randomization of the test value variation. Example: To test for particles slowing down after one or more collisions: Seed—Specifies a randomization value. New—Calculates a new seed using a randomization formula. Collision Test Particle View (page 2–125) > 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 (page 2–78) • SOmniFlect (page 2–84) • UOmniFlect (page 2–85) • SDeflector (page 2–87) • UDeflector (page 2–89) • Deflector (page 2–90) 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 (page 2–215) 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. 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 (page 2–204) 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 (page 2–202), 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. Collision Test In the next step, you’ll see what happens when actions in an event are not in the right order. Interface 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. 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 “ ”. 213 214 Chapter 11: 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. 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. Remove—Highlight a deflector in the list, and then Speed Max—Particles traveling faster than this click this button to remove it from the list. Any removed space warps remain in the scene. speed, in system units per second, test True and become eligible for moving to the next event. Default=1000.0. 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—Particle speed and direction are unaffected by the collision. • Stop—Particle speed is set to 0 after the collision. • Random—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. 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 Collision Spawn Test Particle View (page 2–125) > 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 (page 2–183) and Shape Facing (page 2–176) operators. The Collision Spawn test supports all deflector space warps except the DynaFlect deflectors: • POmniFlect (page 2–78) • SOmniFlect (page 2–84) • UOmniFlect (page 2–85) • SDeflector (page 2–87) • UDeflector (page 2–89) • Deflector (page 2–90) 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 (page 2–212) Spawn Test (page 2–230) 215 216 Chapter 11: Space Warps and Particle Systems Interface 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, Parent Particles is available only when Delete Parent is off. This option is also available when using the Spawn On Each Collision option. 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 “ ”. Collision Spawn Test 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. 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. 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, 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. 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 217 218 Chapter 11: Space Warps and Particle Systems 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. 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 (page 2–125) > 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 in Find Target Test moving toward the target. You can also specify where on the target the particles should go. Interface 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 (page 2–125), 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. The user interface appears in the parameters panel, on the right side of the Particle View dialog. 219 220 Chapter 11: Space Warps and Particle Systems 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. 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. 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. 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. Is Less Than—When particles are closer than this distance from target pivot or point, they test True 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 Find Target Test 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. Control By Time group 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. 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. 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. 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 221 222 Chapter 11: Space Warps and Particle Systems value. For example, if Time=60 and Variation=20, then the time to target for each particle would be between 40 and 80 frames. Mesh Objects—Use one or more scene mesh 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. If you designate more than one target, the target used by each particle is determined by the choice in the Object drop-down list in this group. "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. objects as targets. Choose this to make the list and list-management buttons available. [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—Animation derived from the target is applied to particles immediately. • 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. Find Target Test 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—Each particle targets the nearest point of the target’s 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. 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 (page 2–224). 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. 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. 223 224 Chapter 11: Space Warps and Particle Systems • Along Icon Arrow—The final direction is the same as the Find Target icon arrow. 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—The final direction points toward the center of the operator icon. 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. 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. Script Operator Example Note: See this topic in the online User Reference to view the script operator sample MAXScript code. Go To Rotation Test Particle View (page 2–125) > 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. Go To Rotation Test To set a target orientation, place the Go To Rotation test before an orientation-type operator (Rotation (page 2–153) or a Script operator (page 2–208) 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. Procedure 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 (page 2–154) 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. 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. 225 226 Chapter 11: Space Warps and Particle Systems Interface 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. The user interface appears in the parameters panel, on the right side of the Particle View dialog. 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. Test True When group Target Rotation group Transition Period Ends—When on, the particles test 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. 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. 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. Scale Test 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. 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. 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. Spin Rate—Defines each particle’s angular velocity, New—Calculates a new seed using a randomization formula. in degrees per second, when it reaches the target orientation. Available only when Match Initial Spin is off. Default=0.0. Scale Test 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 Particle View (page 2–125) > 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. 227 228 Chapter 11: Space Warps and Particle Systems Interface • 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—Uses the smallest dimension. • 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—Uses the largest dimension. • X/Y/Z—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. The user interface appears in the parameters panel, on the right side of the Particle View dialog. 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. 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. Test Value—The specific size to test for. Note: The software measures particle size based Default=10.0. 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. 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 Script Test 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. New—Calculates a new seed using a randomization formula. Script Test 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%. Particle View (page 2–125) > 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 Test Value Offset Keying group Sync By—Choose the time frame to use when animating Test Value and Variation: The user interface appears in the parameters panel, on the right side of the Particle View dialog. • Absolute Time—Any keys set for parameters are applied at the actual frames for which they’re set. Edit Script—Click this button to open the current script in a MAXScript Editor window. • Particle Age—Any keys set for parameters are applied at the corresponding frames of each particle’s existence. For detailed information about the MAXScript utility, open the MAXScript Reference, available from Help menu > MAXScript Reference. • 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. 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. 229 230 Chapter 11: Space Warps and Particle Systems Send Out Test Particle View (page 2–125) > Click Send Out in an event or add Send Out to the particle system and then select it. 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 Spawn Test Particle View (page 2–125) > 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 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 (page 2–215). See also Collision Spawn Test (page 2–215) 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 Interface 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. The user interface appears in the parameters panel, on the right side of the Particle View dialog. 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. In the context of Spawn, a parent is the original particle from which new particles are spawned. Offspring #—The number of new particles the system creates from each parent particle for each spawning event. Default=1. Spawn Rate And Amount group Variation—The amount by which the Offspring # 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. 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. 231 232 Chapter 11: Space Warps and Particle Systems For example, if Offspring #=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. 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. 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 Speed group particle’s scale can vary randomly. Default=0.0. 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. 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. In Units—Choose this to specify the speed of spawned particles in system units per second. Default=100.0. Uniqueness group A positive value inherits the parent’s direction; a negative value reverses it. The Uniqueness setting enables randomization of the Spawnable result, when less than 100.0, as well as of the Variation values. 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. Seed—Specifies a randomization value. New—Calculates a new seed using a randomization formula. Speed Test Speed Test Particle View (page 2–125) > 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. Interface 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. 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. 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 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 (page 2–162), and linking the Speed By Icon operator icon to a circular path. • True When Accelerates—Returns a True value when the particle velocity is increasing in value. 233 234 Chapter 11: Space Warps and Particle Systems • True When Decelerates—Returns a True value when the particle velocity is decreasing in value. 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. Sync By—Choose the time frame to use when animating Test Value and Variation. For further information, see Animation Offset Keying group (page 2–158). • 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 (page 2–125) > 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. Split Selected Test Interface 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. 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 The user interface appears in the parameters panel, on the right side of the Particle View dialog. applies the N value for the options First N Particles and Particles After N First separately for each emission source. Test True For group Use this option with multiple Particle Flow sources converging into a single Split Amount test. Lets you choose how to split the particle stream. Default=Fraction Of Particles, 50%. Uniqueness group 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 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. 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. Split Selected Test Particle View (page 2–125) > 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 (page 2–138). 235 236 Chapter 11: Space Warps and Particle Systems 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 Interface The user interface appears in the parameters panel, on the right side of the Particle View dialog. The user interface appears in the parameters panel, on the right side of the Particle View dialog. Test True If Particle group Test True If Particle group Lets you choose how to split the particle stream. Default=Is Selected. Lets you choose how to split the particle stream. Default=Is From Selected Source. Is Selected—All selected particles are eligible for Is From Selected Source—All particles from sources highlighted in the Selected Emission Sources list are eligible for redirection to another event. redirection to another event. Is Not Selected—All non-selected particles are eligible for redirection to another event. Split Source Test Particle View (page 2–125) > 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. 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 Interface Non-Event-Driven Particle Systems Create panel > Geometry > Particle Systems Create menu > Particles Snowstorm created as a particle system 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: Fountain spray created as a particle system 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: 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 Spray Particle System (page 2–244) specific to the kind of particle system. Examples are particle size and speed. Snow Particle System (page 2–246) Rendering properties—These parameters are also Super Spray Particle System (page 2–249) Blizzard Particle System (page 2–251) PArray Particle System (page 2–256) PCloud Particle System (page 2–253) 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 (page 2–7). 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 (page 2–55). In addition, you can deform particle systems with the Mesher compound object (page 1–374). 237 238 Chapter 11: Space Warps and Particle Systems Note: Particles can participate in dynamics simulations. See also Particle System Usage (page 2–238) Creating a Particle Emitter (page 2–239) Particle Flow (page 2–109) Using Particle Systems 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. 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 (page 2–71). The motion will be applied to the particles. Rain and Snow Create rain and snow using Super Spray (page 2–249) and Blizzard (page 2–251). These particle systems are optimized for droplet (Super Spray) and tumbling flake (Blizzard) effects. Add space warps such as Wind (page 2–75) to create spring rains or winter storms. Bubbles Create bubbles by using the Bubble Motion options of Super Spray (page 2–249). 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. Flowing Water You generate flowing liquid effects by setting Super Spray (page 2–249) to generate closely packed Creating a Particle Emitter metaparticles. The metaparticles blob together forming a stream. Add a Path Follow (page 2–71) space warp to send the stream down a trough. You can choose whether Particle Cloud uses its icon or another selected object as the emitter. Procedures Explosions To create emitter icons: Particle Array (PArray) (page 2–256) 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. • Drag in a viewport to set the size and orientation of the particle emitter icon for Spray, Snow, Super Spray, Blizzard, and Particle Cloud. Volume Effects Particle Cloud (PCloud) (page 2–253) 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 (page 2–249), Blizzard (page 2–251), Particle Array (page 2–256), and Particle Cloud (page 2–253) 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. 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 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. 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 239 240 Chapter 11: Space Warps and Particle Systems surface properties of the material, regardless of which object is used as the source of the material. 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: 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 • Use the Particle MBlur map (page 2–1676) 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. Using Mapped Materials with Particle Systems 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. 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. 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 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. 241 242 Chapter 11: Space Warps and Particle Systems Using Multi/Sub-Object Materials with Particle Systems 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: Particles with a Multi/Sub-Object material 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 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. 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. Using Interparticle Collision Example: Adding spawning effects: 1. On the Particle Spawn rollout, choose Spawn Using Interparticle Collision 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. 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. 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. Procedure Example: To create particles that collide with each other: 1. Create a Super Spray particle emitter, and place a Deflector space warp (page 2–90) 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. 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 243 244 Chapter 11: Space Warps and Particle Systems 3. Drag the time slider so you can see the particle Tip: To animate particles following a path through spheres bounce off the deflector. Note that the rebounding particles move through each other. space, use the Path Follow space warp (page 2–71). 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. Kinds of Spray Note: SuperSpray (page 2–249) is a more powerful and advanced version of Spray. It provides all the functionality of Spray, plus additional features. Procedure 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 (page 2–239). 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. Spray Particle System Interface • 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 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. 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. 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. 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 245 246 Chapter 11: Space Warps and Particle Systems 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 particles in bursts or spurts. Start—Number of the first frame where particles appear. Life—The lifetime of each particle, in number of frames. 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. 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. Snow Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > Snow Create menu > Particles > Snow 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. Snow Particle System Interface Kinds of Snow Note: Blizzard (page 2–251) 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 (page 2–71). Procedure 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 (page 2–239). The emitter’s direction vector points in the negative Z direction of the active construction plane. 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. Render Count—Maximum number of particles that can appear in a single frame when you render it. 247 248 Chapter 11: Space Warps and Particle Systems 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. 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. • When enough particles die, particle creation resumes until Render Count is reached again. Note: Facing works correctly only in a perspective Flake Size—Size of a particle in the active units. Timing group Speed—Initial velocity of each particle as it leaves Timing parameters control the "birth and death" rates of emitted particles. the emitter. Particles travel at this speed unless they are affected by a particle system space warp. or camera view. particles. The greater the Variation, the broader the area of snowfall. 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: Tumble—Amount of random rotation for maximum sustainable rate=Render Count/Life Variation—Varies the initial speed and direction of 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. 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. Super Spray Particle System Turning Constant off does not mean that the birth rate varies automatically; the birth rate remains constant unless you animate the Birth Rate parameter. Tip: To animate particles following a path through space, use the Path Follow space warp (page 2–71). 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. Super Spray viewport icon (emitter) 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. Hide—Turn on to hide the emitter in viewports. When off, the emitter is displayed in viewports. The emitter is never rendered. Default=off. Particles emerging from a super spray system Procedure 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. 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 (page 2–239). The icon appears as an intersecting plane and circle with an arrow. The initial direction of the 249 250 Chapter 11: Space Warps and Particle Systems 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. Basic Parameters rollout > Particle Formation group 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 (page 2–256) for details or choose from the following list for rollout information. Particle Generation Rollout (page 2–260) Particle Type Rollout (page 2–262) Rotation and Collision Rollout (page 2–268) Object Motion Inheritance Rollout (page 2–269) Bubble Motion Rollout (page 2–270) Particle Spawn Rollout (page 2–271) Load/Save Presets Rollout (page 2–274) 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. 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. Blizzard Particle System Variation—Applies a percentage of variation to the Procedures speed of emission for each particle. To create a blizzard particle system: 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. Tip: To animate particles following a path through space, use the Path Follow space warp (page 2–71). 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 (page 2–239). 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 Blizzard viewport icon (emitter) 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 (page 2–256) for details or choose from the following list for rollout information. Particle Generation Rollout (page 2–260) Particle Type Rollout (page 2–262) Rotation and Collision Rollout (page 2–268) Object Motion Inheritance Rollout (page 2–269) Particle Spawn Rollout (page 2–271) Load/Save Presets Rollout (page 2–274) Snowflake particles in a blizzard 251 252 Chapter 11: Space Warps and Particle Systems Basic Parameters rollout > Display Icon group Particle Generation rollout > Particle Motion group Specifies the number, size, and motion of particles. 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. 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. PCloud Particle System 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 PCloud Particle System Create panel > Geometry button > Choose Particle Systems from the drop-down list. > Object Type rollout > PCloud 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. 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. 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 viewport icon (default emitter) 253 254 Chapter 11: Space Warps and Particle Systems The emitter appears with a letter "C" representing the particle cloud. 3. Adjust the various parameters on the command panel. Interface PCloud viewport icon (object-based emitter) 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. 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 (page 2–256) for details or choose from the following list for rollout information. Particle Generation Rollout (page 2–260) Particle Type Rollout (page 2–262) Rotation and Collision Rollout (page 2–268) Object Motion Inheritance Rollout (page 2–269) Bubble Motion Rollout (page 2–270) PCloud used to form a school of fish (each fish is a particle) Particle Spawn Rollout (page 2–271) Procedure Load/Save Presets Rollout (page 2–274) 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 (page 2–239). 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. PCloud Particle System Basic Parameters rollout 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. 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. Particle Formation group These options let you specify the shape of the emitter. 255 256 Chapter 11: Space Warps and Particle Systems Particle Generation rollout > Particle Motion group 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 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. 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. 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. PArray Particle System 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 (page 2–239). 4. On the Basic Parameters rollout, click Pick 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 (page 2–68). See also Particle System Usage (page 2–238) Using Materials with Particle Array (page 2–239) Achieving Particle Motion Blur (page 2–240) Using Mapped Materials with Particle Systems (page 2–240) Using Multi/Sub-Object Materials with Particle Systems (page 2–242) Using Spawned Particles (page 2–242) Using Interparticle Collision (page 2–243) 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. 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 (page 1–922). 2. Assign a Multi/Sub-Object material (page 2–1594) to the distribution object. 3. Set up the first three sub-materials to be mapped materials. 257 258 Chapter 11: Space Warps and Particle Systems 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 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 distribution object. From here, you can also specify how the particles appear in the viewport. Interface 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) (page 2–258) Particle Generation Rollout (page 2–260) Particle Type Rollout (page 2–262) Rotation and Collision Rollout (page 2–268) Object Motion Inheritance Rollout (page 2–269) Bubble Motion Rollout (page 2–270) Particle Spawn Rollout (page 2–271) Load/Save Presets Rollout (page 2–274) 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, 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 Basic Parameters Rollout (PArray) object-based emitter, and is used either as the source geometry over which particles form, or the source geometry used to create particles that appear to be fragments of the object. 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. Object text field—Displays the name of the picked The type of particle formation you specify determines the type of sub-object geometry used, as follows: object. Particle Formation group • Over Entire Surface—Faces 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 (page 2–262). When Object Fragments is chosen in the Particle Type rollout, these controls are unavailable. • Along Visible Edges—Edges 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, • At All Vertices—Vertices • At Distinct Points—Faces • 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. 259 260 Chapter 11: Space Warps and Particle Systems Viewport Display group Interface 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. 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. 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 (page 2–262)) to Object Fragments. Particle Generation Rollout Use Rate—Specifies a fixed number of particles Emit Stop—Sets the last frame at which particles emitted per frame. Use the spinner to set the number of particles formed per frame. are emitted. This setting has no effect if you choose the Object Fragments particle type. Use Total—Specifies a total number of particles Display Until—Specifies the frame at which all formed over the life of the system. Use the spinner to set the number of particles formed per frame. particles will disappear, regardless of other settings. The life of the system, in frames, is specified by the Life spinner in the Particle Timing group, described later in this topic. Life—Sets the lifespan in number of frames of each particle from the frame of creation. Tip: Generally, Use Rate is best for a continuous which the life of each particle can vary from the norm. 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 Variation—Specifies the number of frames by 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. variation by which each particle’s velocity can vary from the emitter normal. • 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. 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. • 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. speed of emission for each particle. Divergence—Applies an angular degree of 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. • 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 261 262 Chapter 11: Space Warps and Particle Systems 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. 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 Size—This animatable parameter specifies the target size for all particles in the system, depending on the type of particle: • Standard Particles—The major dimension of the particle. • Constant—The dimension, in rendered pixels, of a Constant type of particle. • Object Fragments—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. 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. 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. Particle Type Rollout Interface 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. Particle Types group These options specify one of four categories of particle type. Depending on which option you • 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 263 264 Chapter 11: Space Warps and Particle Systems single object, and each particle array can emit a different type of particle. Tip: Image motion blur, described in Object Properties (page 1–117) > 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. 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 (page 2–268). SixPoint—Renders each particle as a six-pointed, two-dimensional star. Sphere—Renders each particle as a sphere. Standard Particles group MetaParticle Parameters 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: 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. 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 (page 2–1466), 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. 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. 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. Important: You must render either a camera or a perspective view for Constant particles to render correctly. Viewport—Sets the coarseness for the viewport Tetra—Renders each particle as a mapped tetrahedron. Use Tetra particles for raindrops or sparks. 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 display. This option is unavailable when Automatic Coarseness is on. Particle Type Rollout 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 (page 2–258). 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 (page 2–556), 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. 265 266 Chapter 11: Space Warps and Particle Systems Instancing Parameters group • Animation of object-space modifiers, such as the Angle setting of a Bend modifier (page 1–560). • 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 (page 1–439) 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. 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. 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, Particle Type Rollout 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. overwrite the currently assigned material with an instance of the source material. Random—This option is the same as None when Note: The Time and Distance options are available only when you choose this option. Frame Offset is set to 0. Otherwise, each particle is born using the same animation as the source object 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 (page 2–240). 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 Icon—The particles use the material currently assigned to the particle system icon. 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. 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, 267 268 Chapter 11: Space Warps and Particle Systems specific submaterial, you can assign it by changing the Outside ID number. Interface 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. The options on this rollout affect the rotation of the particles, provide motion blur effects, and control inter-particle collisions. 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. 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. Object Motion Inheritance Rollout Spin Axis Controls group Interparticle Collisions group These options determine the spin axis for the particles, and provide a partial method of applying motion blur to the particles. 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. 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 (page 2–240). 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. Enable—Enables inter-particle collisions in the calculation of the particle movements. 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 X/Y/Z Axis—Specifies the spin vector of the X, Y, or 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. Z axis, respectively. These spinners are available only when User Defined is chosen. Use these options to affect the motion of the particles by the motion of the emitter. User Defined—Uses a vector defined in the three X, Y, and Z axis spinners. 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. Procedure 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. 269 270 Chapter 11: Space Warps and Particle Systems 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. 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. 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. 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 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. Amplitude—The distance the particle moves off its usual velocity vector as it travels. Particle Spawn Rollout Variation—The percent of Amplitude variation Interface 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. 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. Particle Spawning Effects group Choose one of these options to determine what happens to the particles at either collision or death. None—Uses none of the spawning controls, and the particles act as they normally would. That is, upon collision, they either bounce or stick, 271 272 Chapter 11: Space Warps and Particle Systems 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. 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. 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—Specifies a percentage range by which Variation—Varies the Persist value of each particle, Chaos—Specifies the amount by which the when Persist is greater than 0. This lets you "feather" the dying off of particle density. Spawn on Death—Spawn effects take place at the end of each particle’s life. 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. Spawn Trails—Particles are spawned from existing Speed Chaos group Spawn on Collision—Spawn effects take place upon collision with a bound deflector. 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. the Multiplier value will vary, frame by frame. Direction 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. Particle Spawn Rollout Scale Chaos group 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 rather than the lifespan specified for the original particles in the Life spinner on the Particle Generation rollout (page 2–260). 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 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 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 Up—Randomly scales up spawned particles to be larger than their parents. 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. Both—Scales spawned particles both larger and List window—Displays a list of objects to be to be smaller than their parents, based on the Factor value. smaller than their parents. Use Fixed Value—Uses the Factor value as a fixed value, rather than a range of values. 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. 273 274 Chapter 11: Space Warps and Particle Systems Pick—Click this, and then select an object in the Interface 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. 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. 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. 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. Animation 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 (page 2–275) provides information about basic animation with 3ds Max. • Animation in 3ds Max is accomplished by means of controllers; Working with Controllers (page 2–289) gives you an overview of how they work. For specifics about controllers, see Animation Controllers (page 2–307). • A special type of animation controller is the constraint; for details, see Animation Constraints (page 2–392). • A powerful method for creating sophisticated, procedural animation is covered in Wire Parameters (page 2–411). • For animating characters both humanoid and other, as well as complex mechanical assemblies, it’s important to know about Hierarchies and Kinematics (page 2–416). • Track View (page 2–501) gives you access to powerful tools for analyzing and editing animation. • Animation Utilities (page 2–653) 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 (page 3–472). • The Motion Mixer (page 2–604) is a powerful tool for combining individual movements into complex animations. • Another way of combining animation segments is the Animation Layers (page 2–326) system. 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. 276 Chapter 12: Animation 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 (page 3–717) 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 (page 2–501). 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 (page 2–276) Using Auto Key Mode (page 2–278) Using Set Key Mode (page 2–280) Viewing and Copying Transform Keys (page 2–283) Controlling Time (page 2–285) Setting Time Segments (page 2–286) Moving Through Time (page 2–287) Choosing a Frame Rate and Playback Speed (page 2–288) 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. 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. Animation Concepts 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. 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 (page 3–980) 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. 277 278 Chapter 12: Animation for function curve editing. See Track Bar (page 3–703). Motion Panel—Use this panel to adjust transform controllers that affect all position, rotation, and scale animation. See Working with Controllers (page 2–289). 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 (page 3–773). Time Controls—Use these controls to move through 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 (page 3–725). 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: Track V iew—Provides detailed animation editing capabilities in several floating or dockable windows. See Track View (page 2–501). Track Bar—Provides quick access to keyframes and interpolation controls. Can be expanded 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 (page 3–716), include: • Time slider (page 3–701) • Auto Key button (page 3–717) • Set Key buttons (page 3–718) • Animation playback buttons (page 3–723) • Current frame field (page 3–724) • Key Mode toggle (page 3–724) • Time Configuration button (page 3–725) To get started with animation, see Using Auto Key Mode (page 2–278). 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 Using Auto Key Mode key is also created at time 0 to hold the parameter’s original value. whether or not the object or parameters have been animated yet. 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. • 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. Turning Auto Key on has the following effect: • The Auto Key button, the time slider and the border of the active viewport turn red to indicate you are in animation mode. • Keys are created whenever you transform an object or change an animatable parameter. • The time slider sets the time where keys are created. To begin animating an object: 1. Click Auto Key to turn it on. 2. Drag the time slider to a time other than 0. 3. Do one of the following: • Transform an object. • Change an animatable parameter. For example, you might animate an object bouncing around your scene and then decide to create pads for the object to land on. To do that, you drag the time slider to a time when the bouncing object hits the ground, and make sure Auto Key is off before you proceed. You can then create a pad under the bouncing object and repeat the process at the next time where it hits the ground. Because Auto Key was off, it does not matter at what time the pad objects were created. They remain inanimate through the entire animation. • If you change an object or parameter that is already animated, while Auto Key is off, the amount of change is applied equally across all the animation keys. For example, 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. 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. Modeling Without Animating 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. 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. Identifying What Can Be Animated The results of changing an object or any other parameters with Auto Key off varies according to Because most parameters in 3ds Max can be animated, the easiest way to find out if something 279 280 Chapter 12: Animation can be animated is just to try it. Usually, if you want to animate a parameter, it can be animated. Sometimes you need to know in advance if you can animate a parameter. If so, you can use Track View. The Track View Hierarchy list displays every parameter that can be animated. You might also need to add a controller to a track before it can be animated. See Track View (page 2–501) and Animation Controllers (page 2–307). Using Set Key Mode The Set Key animation system is designed for the professional character animator who wants be able to try out poses and then commit those poses to keyframes intentionally. It can also be used by any animator to set keys on specific tracks of objects. This way of working allows more control than the Auto Key method, because it gives you the chance to try out ideas and discard them quickly without having to undo work. It lets you pose your character, and selectively key certain tracks on certain objects through the use of Key Filters and Keyable tracks in Track View. Note: Although the following information uses the example of animating a character, it also applies to animating a complex mechanical assembly. Straight-Ahead and Pose-to-Pose Traditional animation is created one of two ways, either straight-ahead animation or pose-to-pose animation. Straight-ahead animation is drawn starting from the beginning and then additional frames are drawn sequentially thereafter, moving straight ahead in time. Pose-to-pose animation is created by drawing the important frames first, (extremes and breakdowns), and then the intervening frames are filled in later. Once a character has been correctly drawn for a specific frame, pose-to-pose animation requires that all the keyable tracks needs to be keyframed. This creates a pose of the character that will not be affected if animation for the character is edited at other points in time. If all the animatable tracks are keyed in the extremes, the in-betweening work will not destroy any of those poses. Set Key and Pose-to-Pose Animation The number of objects and tracks that require keying for a character, even a simple character, is not something that can be easily handled manually. Set Key makes this process easier by listing all the tracks that are parts of the character that have to be keyed when you want to fix a pose and create a snapshot in time. Keyable tracks let you determine which tracks can be keyed, then Key filters let you work on them selectively, placing keys on only the tracks you want. Differences Between Set Key and Auto Key Modes Set Key mode differs from Auto Key in a number of ways. 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 Using Set Key Mode 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 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 (page 2–542) when you are keyframing a modifier gizmo. Using Set Key with Inverse Kinematics Additional Set Key Tools 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. Additional Set Key Tools are found in the Customize User Interface dialog (page 3–792). 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. 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 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. 281 282 Chapter 12: Animation 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 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. Sheet). 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. If you don’t click Set Keys and you move to another point in time, the pose is lost. 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. Tip: You can toggle multiple tracks as keyable 5. by using the Controller menu > Keyable command. To animate a vertex using set key: When you are finished, minimize or close Track View. 2. Select a vertex. 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. 1. Create an editable spline. 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 Viewing and Copying Transform Keys between various object parameters. It also allows you to show the parameter in Track View (page 2–501) or in the Parameter Wiring dialog (page 2–412). 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. 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 (page 3–957) of the copied animation controller to the right-clicked field. Paste Animation - Wire—Opens a Parameter Wiring dialog (page 2–412) with the copied parameter and the paste destination parameter selected. This is equivalent to creating a wire parameter (page 2–411) in the viewport between two parameters. Edit Wire—Opens the Parameter Wiring dialog (page 2–412) expanded and positioned to show the wire controller assigned to the selected parameter. Note: Edit Wire is available only if a two-way connection is currently applied on the right-clicked parameter. Show in Track V iew—Opens a Track View - Curve 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 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. 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 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. 283 284 Chapter 12: Animation Use the Track View to view all key types. You can also see all keys for the current selection in the track bar (page 3–703). key values, right-click the time slider to display the Create Key dialog. 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. Controlling Key Bracket Display 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 (page 3–703). Animation panel of the Preference Settings dialog You can control the display of key brackets using options in the Preference Settings dialog > Animation panel (page 3–828). Creating Transform Keys with the Time Slider You can use the time slider (page 3–701) 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 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. Controlling Time 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 (page 2–310).) You can create a lock key for position or for rotation. Lock keys are useful when you want an object to be stationary, but smooth interpolation is causing it to "wobble" on its stationary spot. 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. To create a lock key: Other issues in the topics which follow describe how to move through time and how to view animation in the viewports. 1. From the Customize menu, choose Customize Choosing the Time Display Format User Interface. 2. On the Customize User Interface dialog, click the Quads tab, and then, from the drop-down list at the upper right of the dialog, choose Animation. 3. Click the upper left quadrant of the four gray squares that define the quad menus. The quad turns yellow. 4. In the Action list to the left, find Create Position Lock Key. Drag it to the window on the right below any menu item. Choose Save and click OK to apply this and close the dialog. 5. (Optional.) Select a key. 6. Alt +right-click the object you’re animating. Note: The Auto Key button need not be on. 7. From the quad menu that appears, choose Create Position Lock Key . You can also create keyboard shortcuts for these two commands. Create Position Lock Key and Create Rotation Lock Key are main user interface shortcuts. See Keyboard Shortcuts (page 3–871). 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 (page 3–725) > 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. 285 286 Chapter 12: Animation 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 (page 3–725). You can use these time display formats: 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. 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 (page 3–701). SMPTE—Displays time using the Society of Motion Picture and Television Engineers format. • Restricts the range of time displayed when using the animation playback buttons. 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. 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 (page 3–703). FRAME:TICKS—Displays time using frames and the program’s internal time increment, called "ticks." Rescaling the Active Time Segment There are 4,800 ticks per second, so you can actually access time intervals as small as 1/4800 of a second. You use the Re-scale Time button on the Time Configuration dialog (page 3–725) to change your entire animation based on the active time segment. MM:SS:TICKS—Displays time in minutes (MM), seconds (SS), and ticks, delineated by colons. Use Re-scale Time as follows: Moving Through Time • 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 (page 3–703). Moving Through Time You can move to any time in your active time segment by using either the time slider (page 3–701), or the Current Frame field (page 3–724) in the time controls area. You can also move through time using the playback control buttons. Using the Time Slider The time slider shows you the current time, and lets you move to any time in your active time segment. To change the current time using the time slider, do one of the following: • Drag the time slider. • Click in the empty track to either side of the time slider. • 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 287 288 Chapter 12: Animation through time and a center flyout for controlling animation playback: NTSC: U.S. and Japanese video standard of about 30 frames per second. Go To Start (page 3–722) PAL: European video standard of 25 frames per second. Previous Frame/Key (page 3–723) Play/Stop (page 3–723) Next Frame/Key (page 3–724) Film: Movie standard of 24 frames per second. Custom: Frame rate set in the FPS parameter. Go To End (page 3–724) Configuring Animation Playback They work like VCR controls that you use to move through frames and to start and stop animation playback. You use settings in the Time Configuration dialog (page 3–725) > Playback group to specify the playback speed, and the number of viewports that play the animation. Choosing a Frame Rate and Playback Speed Real Time: Animation plays at the selected playback speed, skipping frames, if necessary, to maintain the correct speed. Turn this off and the animation will play every frame without trying to maintain the correct speed. The different playback speeds are also useful when using the Motion Capture utility (page 2–655). 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. Active Viewport Only: Animation plays only in the active viewport. Turn this off and the animation will play in all four viewports at once. 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. 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. Setting the Frame Rate Viewport Playback Speed You use the settings in the Time Configuration dialog (page 3–725) > Frame Rate group to switch back and forth between frame rates at any time. 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 Speed: Choose one of these options to multiply the frame rate by the selected speed. Loop: When Loop is turned off, the animation will play once and stop. Working with Controllers 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. 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. 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. of the software, their existing controllers will be maintained. 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 New in 3ds Max 9 Extension 1 is the ability to double-click a controller track name on the Motion panel or Track View hierarchy window for fast access to key info or controller parameters. This productivity enhancement can help speed your work when fine-tuning animation. Note: Although 3ds Max has many different types of controllers, much of the animation is handled by the Bezier controller (page 2–310). 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. Note: If you load in files made in earlier versions 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 (page 2–307). Understanding Controllers Controllers are plug-ins that handle all of the animation tasks in 3ds Max, including: 289 290 Chapter 12: Animation • Storing animation key values. • Storing procedural animation settings. • Interpolating between animation key values. Most animatable parameters don’t receive a controller until you animate them. As soon as you change an animatable parameter at any frame other than 0 with the Auto Key button on, or click in its track using Curve Editor > Add Keys, a default controller is assigned to the parameter. Accessing Controllers There are two places where you work directly with controllers: • • Track View: Controllers are indicated in the Hierarchy list by the various controller icons. Each controller has its own individual icon. Using Track View, in either Curve Editor or Dope Sheet mode, you can view and work with the controllers for all objects and all parameters. See Track View (page 2–501). 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 (page 3–774). Categories of Controllers There are two main categories of controllers. These categories are easy to identify when looking at the Track View - Curve Editor Hierarchy list. Single-Parameter Controllers: Control animation values of a single parameter. Regardless of whether the parameter has a single component, such as the number of sides of a cylinder, or multiple components, such as the RGB values of a color, the controller is handling a single parameter. Compound Controllers: Combine or manage multiple controllers. Compound controllers include high-level Transform controllers, such as PRS (page 2–357), the Euler XYZ Rotation controller (page 2–318), the Transform Script controller (page 2–379), and the List controller (page 2–342). 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 (page 2–392). 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: Changing Controller Properties 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. 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 (page 2–353), 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. 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 (page 3–703). 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 291 292 Chapter 12: Animation 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. 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. To view key information in the Curve Editor: Assigning Controllers • Right-click a key to display the Key Info dialog. 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. 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. 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 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. 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 Assigning Controllers 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. 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 (page 2–575). 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. 293 294 Chapter 12: Animation 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. 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 > 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 (page 2–292)). 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. 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 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 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 (page 2–307) for detailed descriptions of controller properties. Bezier Controllers Bezier controllers (page 2–310) 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. • 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 (page 2–377) produces curve-based animation like Bezier controllers. However, TCB controllers use fields to adjust the Tension, Continuity, and Bias of the animation. Use TCB controllers when you want adjustable, curved interpolation between keys, and you want to use TCB style controls. TCB rotation controllers were the default controller type in versions 4 and earlier. Linear Controllers The Linear (page 2–341) controller interpolates between animation keys by evenly dividing the change from one key value to the next by the amount of time between the keys. Use Linear controllers when you want motion to have a rigid, mechanical look. Noise Controllers The Noise (page 2–353) 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 (page 2–318) and Position XYZ (page 2–356) are specifically designed so that you have three separate curves, one for each axis. This allows you to independently view and control the curves individually. This has advantages over rotation controllers like TCB that do not display function curves at all. XYZ controllers are now the default for rotation animation. 295 296 Chapter 12: Animation You can adjust the interpolation between keys using the Key Info dialog. For hands-on experience using weighted list controllers see the bouncing ball exercise in the tutorials. Audio Controllers The Audio controller (page 2–309) 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. Expression/Script Controllers You write custom code for Expression controllers (page 2–320) and Script controllers (page 2–372) in an Expression or Script controller dialog. You specify parameters using mathematical expressions, functions, and variables. The code can include values based on the controllers of other objects in the animation. Note: You can replicate some functions of 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 (page 2–342) 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 and Script controllers without having to write code by using parameter wiring or Reaction controllers. See Parameter Wiring Dialog (page 2–412) and Reaction Controllers (page 2–358). See also Expression Controller Techniques (page 2–324) Trigonometric Functions (page 1–150) Vectors (page 1–151) 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 (page 2–655) to test and record captured motion. Explicit Axis Keys 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 (page 3–792) that let you create explicit keys with the touch of a button. When an explicit key is created on an axis, any keys on the two remaining axes (at the selected time) will be deleted. An explicit axis key can only be assigned to objects that already have an XYZ controller assigned to their position, scale, or rotation tracks. You can also use Keyable Icons to turn on or off tracks for editing. This allows you to set keys on only specified PRS X, Y or Z axes as well. See Keyable Icons (page 2–531). 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. See also Position XYZ Controller (page 2–356) General-Purpose Controllers (page 2–295) Euler XYZ Rotation Controller (page 2–318) Scale XYZ Controller (page 2–371) Float Controllers The following controllers are available only for parameters that use the Float data type. On/Off Controller An On/Off controller (page 2–355) controls parameters using binary on and off values. The On/Off track displays a solid blue color in frames that are on, and the background in frames that are off. The on/off state of the parameter switches every time you add a key. Use for binary parameters such as the Smooth object parameter, or for Visibility tracks. Boolean Controller The Boolean Controller is a variation on the On/Off controller. It provides a similar functionality, but with one significant difference. The on/off state of the parameter does not switch automatically every time you add a key. This allows you to effectively add keys in the middle of a sequence without creating unintended drastic changes. Waveform Controller A Waveform controller (page 2–381) generates values by combining periodic waveforms. You can specify different types of waveforms and add waveforms together to create complex animation. 297 298 Chapter 12: 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 (page 2–357) 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. Transform Script Controller The Transform Script controller (page 2–379) 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 (page 2–383) 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 (page 3–394). Controlling Position Below the Transform controller (page 3–909) 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 (page 2–318), Position XYZ Controller (page 2–356), and Scale XYZ Controller (page 2–371). Controlling Rotation Controlling Rotation • You can directly rotate objects in the viewports to change rotation values. 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. • You cannot display controller or key properties, or function curves. 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. Use the Euler XYZ Rotation controller (page 2–318) when you want individual function curve control for each axis of rotation. Euler XYZ is a compound controller that combines separate, single-value float controllers to specify an angle of rotation about each of the X, Y, and Z axes. Euler XYZ Rotation is the default controller applied to all objects. 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 (page 2–374) 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. Euler XYZ Rotation Euler XYZ is not as smooth as quaternion rotation, but it is the only rotation type that you can use to edit rotation function curves. Euler angles are well suited for animating mechanical rotations. They can also be a good choice for an object in an inverse kinematics chain because IK Rotational joints are defined as Euler angles. X, Y, and Z function curves displayed by this controller in Track View represent rotations in "world" or "parent" space which is the rotation system used by most 3D animation packages. Customers upgrading from earlier versions of the program might find some difficulty in adapting to using Euler XYZ rotation controllers. If you find yourself experiencing unexpected rotation behavior, this might be the reason. Reassign TCB rotation as the default rotation controller and you will be able to regain your customary workflow. Controlling Colors You can animate colors in 3ds Max just like most other parameters. There are two data types used for controlling colors. 299 300 Chapter 12: Animation 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. Color RGB Controller Assign a Color RGB controller (page 2–317) 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 (page 1–729) to an object. • The X value field stores Red color values. • The Y value field stores Green color values. Cubic Morph Controller • The Z value field stores Blue color values. A Cubic Morph controller is a TCB-style controller. It uses Tension, Continuity, and Bias controls much like the generic TCB controller. 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 (page 2–310)) 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. 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 (page 1–314) in the Modify panel. Barycentric Morph Controller The Barycentric Morph controller (page 2–309) 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. Trajectories You can also click Add Keys in Track View to create new Barycentric Morph keys. The added keys contain interpolated values for all targets. • 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. Motion Panel Commands Trajectories Select an object > Motion panel > Trajectories You can now assign the four principal Trajectories functions to keyboard shortcuts and other custom UI items. The following new actions are available via Customize User Interface (page 3–792): Note: • Trajectory Toggle: If one or more objects are selected, this enters and exits Trajectories mode on the Motion panel. • 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 Add Key Mode Toggle: Enters and exits Add Key mode. • Trajectory Add Key Mode Toggle: Enters and exits Delete Key mode. Procedures Scooter following a trajectory The Trajectories rollout displays the path an object travels over time. Controls to convert splines into trajectories, trajectories into splines, and to collapse any transform controller into editable keys are also available by choosing Motion panel > Trajectories. Note: The state of the Trajectory check box under Display in the Object Properties dialog (page 1–117) (and on the Display panel > Display Properties rollout) controls whether trajectories will be visible for an object. Using trajectories, you can do the following: • Insert and delete keys from the path. • Move, rotate, and scale keys on the path. 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. 301 302 Chapter 12: Animation To add a key to a trajectory: 1. Select an object. 2. Display the trajectory by following the previous steps. 4. Select one or more keys and use the transform tools on the Main toolbar to move, rotate, or scale the selected keys. Interface 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. 3. Click Delete Key in the Trajectories rollout of the Motion panel. 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. The key is deleted. Sample Range group To transform keys on a trajectory: Start Time/End Time—Specifies the interval for the 1. Select one or more objects. 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. 2. On the Motion panel, click Trajectories. 3. Click Sub-Object to activate Keys and enable editing. PRS Parameters Rollout 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. 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. Spline Conversion group Procedure Convert To/Convert From—Converts keyframe To create a PRS transform key: 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. 1. Select an object in the viewports. 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. 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. 303 304 Chapter 12: Animation Interface controller. The Key Info controls for a TCB position controller are different. See also Key Info (Advanced) Rollout/Dialog (page 2–306) Procedure To set the tangent type for a key: 1. Select an object and open the Key Info (Basic) rollout. 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. 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 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. Curve Editor > Right-click a key. Parameter Collector (page 1–138) > 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 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. Tangent Types 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 (page 2–305). 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. interpolation between keyframes to create particular motion effects. By manipulating tangent types, you can make something hesitate, speed up, slow down, or even stand still. Each key has two tangents: one to define the interpolation before the key, and a second to define interpolation following the key. Tip: You can also set the default tangent type through the Default In-Out Tangents For New Keys (page 3–721) 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. • 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. 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. Tangent Types 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. Key Info (Basic) dialog/rollout (page 2–304) > 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 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 305 306 Chapter 12: Animation 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. Key Info (Advanced) Rollout/Dialog Select an object > Motion panel > Parameters > 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 (page 1–138) > Click a Properties button. > Key Info dialog > Click Advanced. Fast—Causes the interpolated rate of change to speed up around the key. The effect is the opposite of using slow. A fast In tangent accelerates as it approaches the key. A fast Out tangent begins fast and decelerates as it leaves the key. Custom—Displays adjustable tangent handles at the key in Function Curves mode in 3ds Max. Flat Tangent— Displays a smooth interpolation type designed to eliminate overshoot with no editable handles. Tangent slopes automatically take the most direct route to the next key value. See also Default In/Out Tangents For New Keys (page 3–721) 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 (page 1–747) on the spline used as a path. See also Key Info (Basic) Rollout/Dialog (page 2–304) Procedure 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. Animation Controllers Interface 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. 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 only active for keys using the Custom tangent type. 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. • 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. Controllers, like constraints (page 2–392), handle the animation tasks in a scene, including: Lock button—Changes one Custom tangent by • Interpolating between animation key values 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. 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 (page 2–560) in Track View - Dope Sheet (page 2–501), 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. Normalize Time—Averages the position of the keys in time and applies them to any consecutive blocks of selected keys. Useful if you have an object that speeds up and slows down repeatedly, and you want to smooth out the motion. Constant Velocity—When on, interpolates values between the key and the next one so that the object moves at a constant velocity across that curve segment. Available only with certain controller types, such as Bezier. • Storing animation key values • Storing procedural animation settings The animation controllers are organized in the following categories: • Float controllers: for animating floating-point values 307 308 Chapter 12: Animation • Point3 controllers: for animating three-component values such as colors or 3D points Motion Capture Controller (page 2–347) • Position controllers: for animating positions of objects and selection sets Noise Controller (page 2–353) • Rotation controllers: for animating rotation of objects and selection sets Orientation Constraint (page 2–409) • 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 (page 2–546) in Track View or in the Motion panel (page 3–774). The controllers and constraints are: Master Point Controller (page 2–346) On/Off Controller (page 2–355) Path Constraint (page 2–398) Position Constraint (page 2–401) Position XYZ Controller (page 2–356) PRS Controller (page 2–357) Reaction Controllers (page 2–358) Scale XYZ Controller (page 2–371) Script Controller (page 2–372) Attachment Constraint (page 2–393) Slave Parameters Dialog (Block Controller) (page 2–391) Audio Controller (page 2–309) Smooth Rotation Controller (page 2–374) Bezier Controllers (page 2–310) Spring Controller (page 2–375) Barycentric Morph Controller (page 2–309) Surface Constraint (page 2–396) Block Controller (page 2–313) TCB Controllers (page 2–377) Boolean Controller (page 2–316) Transform Script Controller (page 2–379) Color RGB Controller (Point3 XYZ Controller) (page 2–317) Waveform Controller (page 2–381) Euler XYZ Rotation Controller (page 2–318) Expression Controller (page 2–320) Inverse Kinematics (IK) (page 2–435) Layer Controller (page 2–325) Limit Controller (page 2–335) Linear Controller (page 2–341) List Controller (page 2–342) Link Constraint (page 2–403) LookAt Constraint (page 2–406) See also Working with Controllers (page 2–289) Animation Constraints (page 2–392) Audio Controller Audio Controller Main toolbar > Curve Editor (Open) > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Audio Graph Editors > Track View – Curve Editor > Select a track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Audio Use the Audio controller to drive the animation of almost any parameter in the software. The Audio controller converts the amplitude of a recorded sound file or real-time sound wave into values that can animate an object or parameter. With the Audio controller, you have full control over sound channel selection, base threshold, oversampling, and parameter range. The Audio controller works with most parameters in Track View, including: 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 (page 2–520). (Sound Track in the Track View hierarchy) In the Time Configuration dialog, turn on Real Time. Interface See Audio Controller Dialog (page 2–386) Barycentric Morph Controller Select an object. > Create panel > Geometry > Compound Objects > Morph • Transforms • Float values • Point3 values (color) Audio controller assigned to the scale track of this object Procedure 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. The Barycentric (page 3–914) 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. 4. Select Choose Sound, and select a .wav file. 5. In the Base Scale group, set the Z field to 0. See also Morph Compound Object (page 1–314) 309 310 Chapter 12: Animation Morpher Modifier (page 1–729) 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. 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 You can add keys between existing morph keys. The added keys contain interpolated values for all targets. Procedures 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. See Morph Compound Object (page 1–314) and Barycentric Morph Controller Key Info Dialog (page 2–388) Use Bezier controllers whenever you want fully adjustable interpolation between keys. Bezier is the only controller that supports the following: To access the key properties dialog, select the Morph track, select one of its keys, and click Properties to display the Key Info dialog. 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 (page 1–314) for Morph parameters. • Dragging tangent handles • Step tangents for abrupt changes from one key to the next • Constant velocity controls Procedures To set the tangent type for a key: 1. Select an object that has some animation keys and open the Key Info (Basic) rollout in the Motion panel. 2. Use the arrows to select a key. 3. Choose a tangent type from the In or Out tangent flyouts. To normalize time for a key: 1. Select an object, and then choose a key to normalize. You can use the arrows in the Key Info (Basic) rollout to step through keyframes. Bezier Controllers 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. See Tangent Types (page 2–305) 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 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. 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. 311 312 Chapter 12: Animation Motion panel > Parameters > Key Info (Advanced) rollout 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. 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. Free Handle—Used for automatically updating the length of the tangent handle. When this is turned off, the length of the tangent is at a fixed percentage from its neighboring key. As you move a key, the handles adjust to stay the same percentage away from the neighboring keys. When this is turned on, the handle lengths are based on time lengths. Create Position Lock Key / Create Rotation Lock Key—Makes the incoming handle of the current key linear, and the out going handle of the previous key linear. This is to prevent overshoot from the spline interpolation. To use these two features, you must first create a keyboard shortcut in Customize > Customize User Interface. Look for Create Position Lock Key and Create Rotation Lock Key in the keyboard shortcut list and assign a key. Or you can also add these commands to the quad menu. Block Controller 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 Master Block Parameters Dialog After assigning a Master Block, right-click the MasterBlock track to display the Master Block Parameters dialog (page 2–390). This is the first step in creating a block. With this dialog, you can save blocks and then load them later. Blocks are saved as BLK files. Track View Pick Dialog The Track View Pick dialog (page 2–392) 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. A Block controller is a global List controller (page 2–342) 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). 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 (page 2–389). Attach Controls Dialog (Loading Blocks) The Attach Controls dialog (page 2–388) 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 (page 2–391). 313 314 Chapter 12: Animation 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 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. in the name field. To move an inserted block: Choose a name that will remind you of the animation in this block. • In the Key window, select the block and then drag it left or right. 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 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. dialog. To create a copy of a block: The block has been created, and you can now use it. • Hold down Shift , and draft the block. • Once a block is added, a slave controller is added to the controllers on the original This creates a new instance of the block, which you can place at a different time. Block Controller To remove an inserted block: MasterBlock Subtracks • Click to select the block, then press Delete . 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. Interface 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. Inserted blocks appear in the Key window to the right of the MasterBlock controller in the hierarchy under Global Tracks. 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 Control track—Displays in Track View under Global Tracks. Block Key Properties Dialog 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). Right-click an inserted lock to display the Block Key Properties dialog (described below). 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). 315 316 Chapter 12: Animation Boolean Controller float or boolean class controller, such as sphere’s Hemisphere or Smooth track. 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 Boolean controller key values can be changed in on of two ways: through Track View’s Dope Sheet editor or through MAXScript. 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 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. The Boolean controller is similar to the On/Off controller (page 2–355). 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 (page 2–453). 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. The Boolean controller can be assigned to any parameter that would normally be controlled by a 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 Color RGB Controller (Point3 XYZ Controller) To change Boolean controller key values via MAXScript: The Bezier Float controller is a single parameter controller. • 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. 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. Procedure Example: To animate the background color of a rendered animation: 1. Open Track View – Curve Editor. 2. In the Track View hierarchy, expand the Color RGB Controller (Point3 XYZ Controller) Environment track and then select Background Color. 3. On the Track View menu, click Controller > Assign and select the Color RGB 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 4. Expand the Background Color track. 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 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. 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. Interface Bezier Float controller properties. 317 318 Chapter 12: Animation There are actions available from the Customize User Interface dialog (page 3–792) that let you create explicit axis keys. See Bezier Controller (page 2–310) for a description of these parameters. The Gimbal reference coordinate system (page 1–443) is meant 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 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. Euler rotation offers several advantages over the TCB Rotation controller, which was the default rotation controller in versions 4 and earlier. Euler rotations provide function curves, while TCB do not. Euler rotations allow for 3 separate curves that can be manipulated in the Curve Editor. TCB rotations can only be controlled using tension continuity and bias settings, making it difficult to keyframe or manipulate X, Y or Z rotations independently. On the other hand, TCB rotations allow for rotations greater than 180 degrees on a given keyframe. If you turn on the Rotation Windup function, you can get rotation values greater than 360 degrees using TCB. Tip: Users who are used to working with TCB 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 an individual track to the X, Y, and Z components of the position, rotation, or scale of an object. However, the controller assigns three keys (one for each axis), by default. rotations might find difficulty in adapting to Euler workflow. For these users, it is advised that you reassign TCB as the default rotation controller. See Specifying Default Controllers (page 2–294). 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. Euler XYZ Rotation Controller 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. 10. Select the Z axis in the Euler Parameters rollout, 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 is rotated first, then Z. 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. Procedures 2. Animate the dummy. Example: To use Euler XYZ Rotation: 3. Open the Motion Panel. 1. Create a box, and then select the rotation 4. In the Assign Controller rollout, select the track in Motion panel > Parameters > Assign Controller rollout. 2. Click Assign Controller, and then select Euler XYZ in the Assign Controller dialog list. Click OK. 3. Turn on Auto Key. 4. Select Rotation at the bottom of the PRS Parameters rollout. 5. In the Euler Parameters rollout, select the X axis. 6. In the Create Key group of the PRS Parameters rollout, click Rotation. A rotational key is created. 7. Move the time slider to frame 50. 8. Again, in the Create Key group of the PRS Parameters rollout, click Rotation. 9. In the Key Info (Basic) rollout, enter 500 in the value field. 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. 319 320 Chapter 12: Animation 8. In the Rotation List rollout, highlight Euler XYZ in the Layers window, then click Set Active. Expression Controller 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 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 Euler parameters are displayed in the Motion panel. The Euler parameters rollout is displayed when Rotation is selected in the PRS Parameters rollout (page 2–357). Interface (page 2–322) Procedures (page 2–321) The Expression controller lets you use mathematical expressions to control the following animation aspects: Axis Order—Selects the order that rotations are calculated. The default is X,Y,Z order, where the X axis is rotated first. • Object parameters such as length, width, and height X—Displays controller properties for X axis • Transform and modifier values such as an object’s position coordinates 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. 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 (page 2–501) and on the Motion panel (page 3–774). You can assign expressions to the following kinds of scene elements: Expression Controller Scene element Controller Creation parameters Any numeric creation parameter Transforms Position [X, Y, Z] X Rotation Y Rotation 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. Z Rotation Scale [X%, Y%, Z%] Modifiers Materials Any numeric modifier parameter (including creation parameters) Colors [R, G, B] Any numeric material parameter Note: Expression controllers can work only with 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. the individual XYZ components of Euler rotation. You can’t assign an expression to TCB Rotation or other kinds of rotation controllers. 3. In the Hierarchy list, scroll down to the Objects See also 4. In the Hierarchy list, right-click the Position Expression Techniques (page 1–146) Expression Controller Techniques (page 2–324) Trigonometric Functions (page 1–150) Vectors (page 1–151) 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. branch and, if necessary, expand Sphere01 the branch so the sphere’s Position track is visible. Click the Position label to highlight it. 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. 321 322 Chapter 12: Animation 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. 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: 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. 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. Interface Expression Controller 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 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. create. Save—Saves an expression. Expressions are saved as files with a ..xpr file name extension. Create—Creates the variable and adds it to the Load—Loads an expression. 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. 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. Variable Parameters group Evaluate—Evaluate the expression for each frame Tick Offset—Contains an offset value. in the animation. 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. There is no explicit assignment (= or := operator) as in a conventional programming language; the assignment is implicit and takes place over time. 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. 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. 323 324 Chapter 12: 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 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 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. [ Radius * cos(360*Time), Radius * sin(360*Time), 0 ] Changing the Number of an Object’s Segments Based on Camera Distance where Time is one of the predefined time variables such as NT or S. 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 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. 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. Layer Controller 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. 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 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 Main toolbar > Curve Editor (open) > Highlight a Layer controller track and right-click > Properties 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 (page 2–326) 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 (page 3–690) or the Controller menu of the Curve Editor. The Layer controller dialog has similarities to the List controller (page 2–342) dialog. You can refer to it for complementary informations on some of the options. List Window—Displays all Layer controllers for the selected object, along with their respective weight value. Animation Layers and Autodesk VIZ Set Active—Determines on which layer your animation keys are set. The active controller is marked with an arrow in the list. 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 Tip: You can also switch between active layers from the drop-down list on the Animation Layers (page 2–326) toolbar. 325 326 Chapter 12: Animation 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 (page 2–342) 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 (page 1–443). Available only when you assign a Layer controller to a rotation track. Default=off. Animation Layers Right-click unused area of any toolbar. > Animation Layers Animation menu > Animation Layers 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 (page 2–342) and biped layer system (page 2–974), while it is more flexible and simpler for the animators to use. Enabling Animation Layers When you enable animation layers for a selected object by turning them on in the Enable Anim Layers dialog, 3ds Max assigns a Layer controller (page 2–325) to the animation tracks. 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 (page 2–326) toolbar) all layers above the Base Layer before you can disable it. When 3ds Max adds a Layer controller, it copies the original controller into its first layer (called Animation Layers Base Layer), preserving any animation data it may already contain. Diffuse Color track), or at a branch level (such as a Position track). Note: The Base Layer is not a new layer; it is on the same level as any other controller track. 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 Layer controller affects a point 3 branch. 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 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 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 (page 2–325). 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 The original List controller The new Layer controller nests the List Controller. 327 328 Chapter 12: Animation Note: You cannot nest a Layer controller within a List controller or another Layer controller. • 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. Working with Animation Layers The animation layers list works as follows (Refer to the procedure section below (page 2–329) 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. 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. To toggle a layer’s inclusion in the output track, click the plus/minus sign icon. • 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. 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: (page 2–330). Each animation layer has a global weight value which, when changed, impacts every controller within that active layer. Similar to the List controller (page 2–342), 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 (page 3–706). Animation Layers • 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 (page 2–325) 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 (page 2–325) is turned on, and both rotation controllers are Euler-driven. When you add a new animation layer (page 2–334), you can pick a name already in use by an existing layer; this links both layers’ weight track, which is now instanced. • 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. Using Merged or XRef Scenes Containing Layers When you merge (page 3–463) or externally reference (page 3–407) a source scene (or object) containing layers into your master scene, the system adds the incoming layers to the master scene’s layer list. Note: All animations within an incoming XRef object or scene is preserved within an XRef controller (page 2–383). You cannot edit them unless you merge the XRef object or XRef controller into your master scene. 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. 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. 2. Open the Curve Editor (page 2–507) and locate Collapsing Layers 3. Choose Animation > Animation Layers to open the teapot’s Position track in the hierarchy window. the Animation Layers toolbar. Collapsing a layer merges keys if any of these conditions are met: 4. Make sure the teapot is selected, then click Enable Anim Layers. 329 330 Chapter 12: Animation 5. On the Enable Anim Layers dialog, turn on drop-down list. The new Layer controller now nests your teapot’s animation. The list currently contains both the original base layer and Noise Layer from the previous procedure. 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. 1. On the Animation Layers toolbar, expand the only the Position track, and click OK. 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. 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 (page 2–507), 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. 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. Example: To turn a layer on and off: This procedure discusses turning existing layers on and off. It continues from the previous procedure. Animation Layers 5. A dashed line appears. Click the teapot and Try including and excluding both layers in the list to see the results. choose the X Output Track from the pop-up menu. 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. 6. The Parameter Wiring dialog (page 2–412) opens, with the two highlighted parameters. Click the left directional arrow button to control the cube’s position using the teapot’s animation. 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. 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. Example: To collapse a layer: This procedure continues from the previous procedure. 1. In the animation layers list, turn off Noise 10. Drag the time slider again. The cube doesn’t move erratically like the teapot. Layer. Then, choose Changes on Z axis to make it active. 331 332 Chapter 12: Animation 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. 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 (page 2–604), the following dialog opens: 3. Turn Noise Layer back on in the list. 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 (page 2–280), lets you turn on tracks you want to assign a Layer controller to. 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 (page 3–478) 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. The Position, Rotation, and Scale tracks are on by default. 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. Layer Properties Dialog Note: You cannot paste a copied layer from one Select Active Layer Objects—Selects all object onto another’. objects in your scene containing the active layer. [animation layer list]—Displays all existing layers Paste New Layer—Creates a new layer with 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 (page 2–328) for more details. 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. [weight]—Sets a global weight for the active layer, 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. 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 (page 3–662), which lets you set global options for layers. Add Anim Layer—Opens the Create New Animation Layer dialog (page 2–334), 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 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: 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. 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 (page 2–326) and isolating the active layer from the rest. 333 334 Chapter 12: Animation Interface 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 (page 2–974). 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). 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 • Default—On collapse, the resulting track is assigned a default controller based on the original controller track. Refer to Specifying Default Controllers (page 2–294) 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. • Range—When chosen, a key is set on every frame of the animation range you specify. 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 (page 2–328) for more details. Tip: You can rename a layer after it is added from the Layer Controller dialog (page 2–325). Limit Controller Note: All animation layer names persist in the Layer Name list even after you delete their host object. Resetting the scene clears the list. [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. (page 2–522) the Limit controller, the result is the limited animation, and the original animation is no longer available. 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 Limit Controller • position extents for sliding drawers • camera field-of-view 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. 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 • 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. 335 336 Chapter 12: Animation 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 (page 2–340) > Set Upper/Lower Limit commands to limit the fingers’ motion. Note: Limits are included for Set Key via the Other category. • 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. Procedure 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. 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 Limit Controller 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. Because the original X-axis movement falls within the default limits, the two tracks are identical. The graph curve is now clipped below the lower limit. When you scrub the animation, the object doesn’t move beyond that position. 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. 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. 6. Highlight the X Position track, and then right-click and from the right-click menu choose Limit Controller > Set Lower Limit. 337 338 Chapter 12: Animation 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. 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. 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. Limit Controller Float Limit Controller dialog 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. 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, 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. 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. 339 340 Chapter 12: Animation 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. 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. 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 right-click menu 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. 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. Smoothing Buffer—Specifies a smoothing value, Note: After using Copy Limit Only on a Limit so that clipped values at the beginning and end of a clipped range gradually decrease and increase instead of leveling off abruptly. controller track, you can apply a new Limit controller with the same limits to any track by invoking Paste Limit Only. Linear Controller Toggle Limit—Turns the Limit controller on and off. This is the same as the Enable check box 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. Set Lower Limit—Sets a value/key in the Lower 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 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. 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. Procedure 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. 341 342 Chapter 12: Animation 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. 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. Procedure 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. 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. Highlight the Position transform and click Assign Controller. 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. List Controller 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 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. 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. 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. 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 343 344 Chapter 12: Animation 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. Euler Parameters rollout 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. Axis Order—Sets the order that rotations are This rollout is displayed when you select Rotation in the PRS Parameters rollout (page 2–357). 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. Local Euler XYZ Rotation Controller Y—Displays controller properties for Y axis rotation angle. This controller is no longer available. You can, however, still edit objects that were assigned this controller previously. Z—Displays controller properties for Z axis The Local Euler Rotation controller is similar to the Euler XYZ Rotation controller (page 2–318), 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. 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. 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 (page 2–406). Note: A targeted object’s pitch and heading are adjusted by moving the target, so the only Look At Controller orientation setting that can be controlled directly by the user is Roll, or bank. Interface Example: To prevent flipping of targeted objects during rotation: 1. Add a Target Camera object (page 2–1371). 2. Activate the Move tool and use the coordinate display (page 3–708) to position the camera and target at 0,0,0 and 80,0,0, respectively. 3. Add a Dummy object (page 2–16) 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. 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. 345 346 Chapter 12: 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 (page 3–523) 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) (page 2–304) and Key Info (Advanced) (page 2–306) 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, 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. Procedure 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. Motion Capture Controller 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. 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 Interface Master Track Keys—While in the Track View – Dope Sheet, selecting a master key (green) selects all the sub keys at that frame. You can control an object’s position, rotation, or other parameters using an external device with the Motion Capture controller. 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. 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 (page 2–318). Master Track Key Info dialog The Motion Capture System Right-click a green master key in Track View to display the Master Track Key Info dialog (page 2–391). 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. 347 348 Chapter 12: Animation 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. Interface Right-click the transform track in the Track View - Dope Sheet hierarchy to display the Motion Capture Properties dialog. Position Motion Capture rollout Procedure 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. 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. 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. Track Name—Names the Motion Capture Data track. This overrides the default naming convention. Mouse Input Device rollout Motion Capture Controller This rollout controls animation using the horizontal or vertical motion of the mouse. The available settings include: List—Open the list to select a key. Envelope Graph group motion drives the animation. The Envelope Graph group displays a representation of the amplitude curve over time. Scale—Scales the relative effect of the mouse Envelope Parameters group Horizontal/Vertical—Specifies which 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. 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 Keyboard Input Device rollout maximum, for the value to fall to that specified by the Sustain spinner. This rollout lets you assign most keyboard keys to drive the animation. Sustain—After the Attack and Decay, specifies the value sustained until you release the key. 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 Assign—Click and then press any key. The assigned key is displayed in the list window at right. 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. 349 350 Chapter 12: 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). 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. 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 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 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. Motion Capture Controller Note: The items in this group are only available when Accumulate is selected in the Joystick Axis group. MIDI Device rollout 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. 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. 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 351 352 Chapter 12: Animation 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.) 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. 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 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. 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. Noise Controller 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 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. Procedure Example: To apply a Noise controller to a rotation track: 1. Create a box in any viewport. 353 354 Chapter 12: Animation 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. Interface 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. 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. Characteristic Graph—Shows a stylized graph of Fractal Noise—Generates noise using a fractal how changing Noise properties affects the Noise curve. Brownian motion. The main value of using Fractal Noise is that it activates the Roughness field. Seed—Starts the noise calculations. Changing the Roughness—Changes the roughness of the Noise seed creates a new curve. 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. 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. On/Off Controller 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 Procedure 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. The On/Off controller provides binary on and off control. It is similar to the Boolean controller (page 2–316). For example, you can apply an On/Off controller to the Visibility track of an object. 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 (page 2–316) 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. 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. 355 356 Chapter 12: Animation 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 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 The Position XYZ controller splits the X, Y, and Z components into three separate tracks (similarly to the Euler XYZ Rotation controller (page 2–318)). 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 (page 3–792) that let you create explicit axis keys using Set Key Mode (page 2–280). Procedure 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. 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. 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 (page 2–310). PRS Controller PRS Controller Interface Motion panel > PRS Parameters rollout Main toolbar > Curve Editor (Open) > Select a transform track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Position/Rotation/Scale 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. Procedure 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. 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. 357 358 Chapter 12: Animation 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). 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 (page 2–369) Procedures 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 (page 2–361). 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 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: (page 2–361). 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. Go to the Motion panel, and on the Assign Controller rollout, click the Position track to highlight it. Reaction Controllers 5. 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 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. This opens the Reaction Manager dialog (page 2–361). 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. Note: Reaction Manager also defines a state automatically when you assign a new slave to a master. This places you in a Pick mode where you can choose a motion track from any object in the scene to act as master. Next you’ll create a second state that tells the sphere how to move on multiple axes as the box moves on one. 8. In any viewport, click the box (Box01). A pop-up menu appears. 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. 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. 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. 359 360 Chapter 12: Animation 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. 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. 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: (page 2–361). Reaction Manager Dialog Interface 2. In the Perspective viewport, add a box and a sphere object. Also add a Slider manipulator (page 2–31), and give it the label Slider. After assigning a Reaction controller, right-click the track and then choose Properties, or choose Animation > Reaction Manager, to open the Reaction Manager dialog (page 2–361). The viewport should resemble the following illustration: 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 (page 2–358). 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. 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. Procedure At this point, the dialog is empty. 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: (page 2–358). 1. Start or reset 3ds Max. 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. 361 362 Chapter 12: Animation 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. 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 Manager Dialog Note: Your value probably differs from that shown in the illustration. 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. 16. Drag upward to increase the value, or downward to decrease the value. Change the value to about -50.0. 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. 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. 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. 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. 24. Turn off Create Mode and move the slider left and right to see how it affects the box position. 19. Try moving the box on the X axis. Next you’ll set a new state so the right half of the slider range affects the sphere’s Hemisphere value. 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. 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. Select the sphere and go to the Modify 25. panel. The Hemisphere parameter is unavailable, because it’s slaved to the slider value. 26. Turn on Create Mode, and then and in the Reactions list, click the Sphere01 / Hemisphere entry. The Hemisphere parameter is now available. 363 364 Chapter 12: Animation 27. On the Modify panel, set Hemisphere to 0.75. 28. In the Perspective viewport, drag the slider all 32. 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. 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. 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. This has been a brief tour of some of the capabilities of the Reaction Manager dialog. For further information, consult the reference, below. Interface 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. 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. The Reaction Manager dialog interface consists of three parts: the Reactions list, the States list, and Reaction Manager Dialog 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 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 (page 2–368) 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 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, 365 366 Chapter 12: Animation 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 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 (page 3–904). Use standard methods 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 (page 2–368) is used to modify Strength, Influence, and Falloff. To specify these numerically Reaction Manager Dialog in the States list, click the field to toggle the X. Available for slaves only. States list 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. 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. Create State—Adds a new state to the States list for the current reaction, using the current values for the master and slave parameters. 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. 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. 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, When you create a state, the software gives it a default name (State##) and lists its slave tracks, indented, under the state name. 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. 367 368 Chapter 12: Animation 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 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 (page 2–1621). The toolbar above the graph offers functions for moving and scaling points on the graph, as well as 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 Using Manipulators with Reaction Controllers dialog interface. To open the right-click menu, right-click anywhere on the Reaction Manager dialog except in the graph section. Set State—Updates the highlighted state (master track) to its current value. For details, see Set State. Add Master—Places you in Add Master mode. States list. Delete State—Deletes any highlighted items in the 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. values in the current state. For details, see Edit Mode. For more information, see Add Master. reaction tracks for highlighted slaves and masters only. Replace Master—Lets you replace the current master. Use the standard method to choose another master as described in Add Master. 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 Edit Slave State Mode—Lets you change slaves’ Show in Track View—Opens Track View, displaying 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 (page 2–358) let you perform certain functions via manipulators in the viewports. master. For details, see Add Slave. Procedure Add Selected—Lets you add selected objects as To use manipulators for a position or rotation Reaction controller: slaves to the current master. For details, see Add Selected. Delete Selected—Deletes any items highlighted in the Reactions list. For details, see Delete Selected. (Point3, scale, and float Reaction controllers don’t have manipulators.) 1. Select the object that has the Reaction controller assigned to it. Create States Mode—Lets you create states on the fly by manipulating objects in the viewports. For details, see Create Mode. Create State—Adds a new state to the States list for the current reaction. For details, see Create State. 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. 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. 369 370 Chapter 12: Animation Tip: Use the reactor manipulators in a wireframe viewport. (See Viewport Right-Click Menu (page 3–731).) 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. 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 (page 2–15) is turned on. This button is on the default main toolbar (page 3–686). 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 (page 3–731).) Also, for the Position Reaction controller, you might have to change viewports to see a particular manipulator clearly. Position Reaction controller 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. The Position Reaction controller has a set of manipulators to control (or simply display) different reaction values. This indicator is a small dark-blue dot. 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. The Rotation Reaction controller has a single manipulator, which controls the reaction’s Influence parameter. This manipulator is a small yellow circle that appears in the lower-left corner of the active viewport, near the icon for coordinate axes. Rotation Reactors Influence manipulator: Drag in a viewport to change the manipulator angle, which changes the reaction’s range of influence. Scale XYZ Controller 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 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 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 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 (page 3–792) that let you create explicit axis keys (page 2–297). Tip: Open Track View to view and edit the three scale tracks. Procedure 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. 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 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. 371 372 Chapter 12: Animation Refer to the MAXScript Reference for a complete explanation of this scripting language. 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 (page 2–379) controller matrix3 PRS The Script controllers work similarly to Expression controllers (page 2–320). 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. • They can use MAXScript global variables to communicate and coordinate with other controllers and scripts in the software. 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 Script Controller 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. 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. Interface Note: It is especially important to assign nodes and tracks to variables with the corresponding buttons when using XRef scenes and objects. Procedure 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] 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. for o in objects where o != foo do Variable Parameters group pos += o.pos 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. pos / (objects.count - 1) This script computes the average position of all objects, except the current one (written as 373 374 Chapter 12: Animation Note: The Time Offset has no effect on variables that are assigned a constant. Assign Controller—Lets you assign a track to the highlighted variable. Variables List—Lists all available variables in the Assign Node—Lets you assign a node to the highlighted variable. 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—the normalized time • S—the current time in seconds • T—the current time in ticks Assign Constant—Opens a dialog which lets you assign a constant 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). 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 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 time. Graph Editors > Track View – Curve Editor > Select a rotation track in the Track View hierarchy. > Track View menu bar > Controller menu > Assign > Smooth Rotation OK—Assigns the value expression result to the Animation menu > Rotation controllers > Smooth 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. Use Smooth Rotation when you want rotation to have a smooth and natural look. Smooth rotation Spring Controller 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 while increasing the dampening smoothes out jitters in the motion. You can add external forces like Gravity (page 2–73) and Wind (page 2–75) to affect the motion, and also add additional objects whose motions act as springs. • Move keys in Track View to change timing Note: You can also assign the Spring controller • 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 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 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. Spring Dynamics rollout 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, 375 376 Chapter 12: Animation 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 . 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. Forces Limits and Precision rollout 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. (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 External Forces group between the controlled object and the highlighted spring object(s). Add—Click this button, and then select one or more space warps in the Forces category that are to TCB Controllers 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. 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) 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. Procedure 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 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. 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. 377 378 Chapter 12: Animation Interface 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. 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 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). 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 Transform Script Controller 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. 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. The Transform Script controller contains all of the information contained in a Position/Rotation/Scale (PRS) controller (page 2–357) 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. 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. 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. 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. Transform Script Controller 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 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 379 380 Chapter 12: Animation 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. Interface 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. Procedure After assigning a Transform Script controller, a Properties dialog is available by right-clicking the track in the Track View hierarchy and choosing Properties. 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. To use a Transform Script controller: Variable Parameters group 1. Select an object. 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. 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. 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—the normalized time • S—the current time in seconds • T—the current time in ticks Waveform Controller Assign Constant—Opens a dialog which lets you Debug—Opens the Script Controller Debug assign a constant to the highlighted variable. 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 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 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). 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 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. 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. 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. To view how the trajectory of an object is being affected by the Waveform controller, turn on Motion panel > Trajectories. 381 382 Chapter 12: Animation Procedure To use the Waveform controller to animate the visibility of a sphere: Insert—Inserts a new waveform before the selected waveform slot. Remove—Deletes the selected waveform. This is 1. Create a sphere. not available when only one waveform remains. 2. Open Track View, and select the Sphere track. Move Up and Move Down—Shifts the selected 3. On the Tracks menu choose Visibility Track > waveform up and down in the list, allowing the waveform order to be altered. Add. 4. Select the Visibility track, click Controller > Disable—Disables the selected waveform. 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. 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. Interface Flipped—Flips the waveform horizontally. After assigning the Waveform controller, in Track View, right-click its track to display its properties in the Waveform Controller dialog. 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 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. 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 XRef Controller 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. 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. 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: 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 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. 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 This controller lets you externally reference any type of Transform controller (page 2–298) from another scene file. The XRef controller follows the same concepts and principles as the XRef objects (page 3–394) and XRef material (page 2–1616); 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. 383 384 Chapter 12: Animation 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 (page 2–384). • 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 (page 3–402) lists both XRefs as separate entries. 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. 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. 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 (page 2–385). 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. Object’s Transform Position Object’s Transform Position highlighted. XReferenced. XRef Controller To add and reset a Transform offset to an XRef Object’s Animation Interface 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]. 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. These controls, similar to those on the XRef Object rollout (page 3–414), 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 (page 3–397) 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. 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. 385 386 Chapter 12: Animation Object Name display—Displays the file name of the Interface source object. Path button—Opens an XRef Merge dialog (page 3–406) 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. Audio File group 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. 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. 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. Audio Controller Dialog 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. 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. 387 388 Chapter 12: Animation Attach Controls Dialog (Block Controller) system attempts to match the controls based on their names. Delete—Deletes a track from the list. Track View > Global Tracks > Block Control > Click and then right-click MasterBlock track. > Properties > Load > Choose a file. > OK > Attach Controls dialog Move Up, Move Down—Move tracks up and down Track View > Global Tracks > Block Control > Double-click MasterBlock track. > Properties > Load > Choose a file. > OK > Attach Controls dialog OK—Imports the tracks and closes the dialog. This dialog is displayed when you click Load in the Master Block Parameters dialog (page 2–390). Tracks in blocks previously saved can be mapped to tracks in the current scene. 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 (page 2–392). 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 to align them before attaching them. Cancel—Cancels the Load operation. 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. Block Parameters Dialog (Block Controller) Interface 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 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. 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 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. 389 390 Chapter 12: Animation Interface 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 display the Master Block Parameters dialog (page 2–390). This is the first step in creating a block. Add—Displays the Track View Pick dialog. In the Track View Pick dialog, select 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. Master Track Key Info Dialog (Master Point Controller) 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 (page 2–346) to display the Master Track Key Info dialog. Interface selected, if the corresponding sub-object level is active. Key Frame Properties—Displays and lets you adjust interpolation and position. See Bezier Controller (page 2–310). 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 (page 2–392) 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. [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 391 392 Chapter 12: Animation Interface Select tracks in the dialog that you want to include in a Block. Valid tracks are darker. Interface Add New Link—Adds a link. Displays the Add New Cancel—Exits the Track View Pick dialog with no Link dialog with available tracks. Click a track and then click OK. changes. Remove Link—Removes the highlighted link. Collapse Control—Collapses the Slave controller to a standard controller. If tracks are highlighted in the Hierarchy list, then the Block Parameters dialog (page 2–389) is displayed when you click OK, to allow you to set the duration for the Block. Existing keys are copied to the new controller. OK—Closes the dialog. Animation Constraints 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 (page 2–390), for example. 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. Attachment Constraint For example, to quickly animate an airplane flying along a predefined path, you can use a Path constraint (page 2–398) 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 • Orientation constraint (page 2–409) 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 • 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 (page 2–393) attaches an object’s position to a face on another object • Surface constraint (page 2–396) restricts an object’s position along the surface of another object • Path constraint (page 2–398) restricts an object’s movement along a path • Position constraint (page 2–401) causes the constrained object to follow the position of another object • Link constraint (page 2–403) links the constrained object from one object to another • LookAt constraint (page 2–406) constrains an object’s orientation so that it’s always looking at another object 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. 393 394 Chapter 12: Animation 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. 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. Go to frame 0. Arc Rotate the Perspective viewport so you can see the top surface of the cylinder. 4. 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. 5. 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. 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. Attachment Constraint Attach To group Key Info 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. Update 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 Update—Updates the display. Manual Update—Enables Update. 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. (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. 395 396 Chapter 12: Animation TCB group Surface Constraint Animation menu > Constraints > Surface Constraint Animation menu > Track View > New/Open Track View > Select a position track in Track View Hierarchy. > Track View toolbar > Assign Controller > Surface All of the items in this group are the same as in other TCB controllers (page 2–377). The orientation of the source object is also interpolated and affected by these settings. Tension—Range=0 to 50 Continuity—Range=0 to 50 Surface constraints position the weather symbols on the globe. The Surface constraint positions an object along the surface of another object. Ease To—Range=0 to 50 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: Ease From—Range=0 to 50 • Sphere Bias—Range=0 to 50 • Cone • Cylinder • Torus • Quad Patches (single quad patches) • Loft object • NURBS object 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 Surface Constraint 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. Interface The Surface Constraint Parameters rollout is on the Motion panel. Procedure 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 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. 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 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. 397 398 Chapter 12: 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 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. 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 the standard translation, rotation, scale tools. Setting keys on the path’s sub object level, such as vertex, or segment will animate the path while affecting the constrained object. 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. Path Constraint 4. Open the Assign Controller rollout and select the Position controller. 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. 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. 399 400 Chapter 12: Animation Interface the Path Parameters rollout with the constraint settings, double-click Path Constraint in the list. 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. 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 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. Position Constraint Allow Upside Down—Turn on to avoid the situation in which an object flips when going around a vertically oriented path. 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. Constant Velocity—Provides a constant velocity From and To Spinners—Determine for path limits. Use in conjunction with the Limited function. 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. 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 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. 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: 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. 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 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. 401 402 Chapter 12: Animation 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. 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. 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. 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. 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. 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. Link Constraint 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. Interface 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 constrained object from snapping to the target object’s pivot. The default is Off. Link Constraint Animation menu > Constraints > Link Constraint 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. A link constraint enables the robot arms to pass a ball. Note: When you assign a Position constraint via the A Link constraint is used to animate an object linking from one target object to another. Animation menu, the software assigns a Position List controller to your object. In the Position List The Link constraint causes an object to inherit the position, rotation, and scale of its target object. 403 404 Chapter 12: Animation 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 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. 6. Select the Transform: Position/Rotation/Scale controller. 7. Click Assign Controller. 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. 3. Open the Motion panel. 12. Move the time slider to frame 50. 4. Expand > Assign Controller rollout. 13. Turn on the Auto Key button and move the 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. 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. Link Constraint Interface 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. This is similar to how the Link Controller worked in 3ds Max 3.1 and earlier versions. 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 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 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. 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. 405 406 Chapter 12: Animation LookAt Constraint Animation menu > Constraints > LookAt Constraint 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 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. 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 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. LookAt Constraint 3. Click a target from the list. Interface 4. Turn on the Auto Key button. 5. Use the Weight spinner or enter a numerical value to adjust the weight value. 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 407 408 Chapter 12: Animation 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 (page 3–799) in the Customize > Customize User Interface dialog (page 3–792). 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. 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. Orientation Constraint 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. Orientation Constraint Animation menu > Constraints > Orientation Constraint 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. 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. Orientation constraints align the awning vanes to the supporting rod. To access the Orientation constraint’s parameters through the Motion panel: 1. Select the Orientation-constrained object. 409 410 Chapter 12: Animation 2. On the Motion panel > Rotation list, Interface 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. 3. Turn on the Auto Key button. 4. Use the Weight spinner or enter a numerical value to set the weight value. 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. 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 Wire Parameters of influence that the world target has on the constrained object as you would any other target object. parameters. By wiring parameters, you can set up custom constraints directly without having to go to Track View and assign controllers. Delete Orientation Target—Remove targets. Once Parameter wiring is accessible from the Animation menu and the quad menus (page 3–694). 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. 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 When you make a parameter selection, a dashed line, similar to that displayed in the Select and Link mode (page 2–422), 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 (page 2–412) 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 411 412 Chapter 12: Animation parameter-wiring setup, so that you could potentially set up a chain of controlled parameters. A pop-up menu displays the parameters to which you can link. 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. 5. Choose the parameter you want to link from Note: You should establish all object hierarchies 6. If you like, change the parameter highlighting 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 (page 3–640) to see all the the displayed menu. The Parameter Wiring dialog (page 2–412) opens, with the two parameters you selected highlighted in yellow. 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. wired parameter relationships in a scene. You can also use Schematic view to wire parameters. Procedure 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. 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. Select an object with a wired parameter. > Modify panel > Right-click text box portion of two-way-wired parameter > Edit Wire The Parameter Wiring dialog allows you to define the relationships for Wire Parameters (page 2–411). 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 (page 2–27) Parameter Wiring Dialog and Custom Attributes (page 1–129) to objects, materials, and modifiers. 3. Choose the first slave parameter in the other Note: Parameter Wiring is a modeless dialog (page 3–973), and you can have several dialogs open at the same time. 4. Click the arrow pointing toward the slave 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. To control several slave parameters from one master parameter: 1. Open the Parameter Wiring dialog. 2. Choose the master parameter in the tree view. tree view. 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. 413 414 Chapter 12: Animation 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, 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: 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 V iew 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. Parameter Wiring Dialog • 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 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. 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. 415 416 Chapter 12: Animation Hierarchies and Kinematics Hierarchies When animating characters, mechanical assemblies, or complex motion, you can simplify the process by linking objects together to form a hierarchy (page 3–951) 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 (page 3–960) describes the movement or animation of the chain. There are two types of kinematics: • With forward kinematics (page 3–944) (FK) , you transform a parent object to move its descendants (its children, their children, etc.). • With inverse kinematics (page 3–958) (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 . See also Hierarchies (page 2–416) Animating with Forward Kinematics (page 2–426) Inverse Kinematics (IK) (page 2–435) Hierarchy Panel Commands (page 2–487) 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 Bones system (page 1–404) in the Create panel > Systems category lets you create a hierarchy of bones. You can also create bones by choosing Bone Tools (page 1–411) from the Animation menu (page 3–681). You can turn any hierarchy of objects into bones by selecting the hierarchy and turning on Bone Tools dialog > Object Properties rollout > Bone On. • The Hierarchy panel (page 3–773) contains commands to control how links behave. • The Motion panel (page 2–463) contains commands to control how links behave when using an History Dependent (HD) Solver Hierarchies 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. 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. 417 418 Chapter 12: Animation 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. 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. 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. Link—Connection between a parent and its child. Using Multiple Hierarchies A link transmits position, rotation, and scale information from parent to child. 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. 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. Linking Strategy 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. 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. 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. Linking Strategy 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 (page 2–435). 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. • 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. 419 420 Chapter 12: Animation 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. 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. 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. Original animation, with ball unlinked and stationary while the box moves. 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. Linking and Unlinking Objects • Unlink on frame 25, and the sphere stops at 3 o’clock. • Unlink on frame 75, and the sphere stops at 9 o’clock. 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. Clockwise from top, position of the sphere unlinked at frame 0, 25 and 75, respectively. Linking and Unlinking Objects Use Select and Link (page 2–422) and Unlink Selection (page 2–422) on the toolbar to make and remove links between objects. Linking Objects 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. 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 421 422 Chapter 12: Animation 150%, the size 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 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. Linking Animated Objects 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 (page 2–435) or use the controls found in Link Info (page 2–499) in the Hierarchy panel. 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. You can also create hierarchical linkages using Schematic View (page 3–638). Use the Connect button on the Schematic View toolbar to create hierarchical linkages between nodes. 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. If you want your objects to be linked during one part of the animation but not another, you can a Link constraint (page 2–403) 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 (page 1–58), 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. Procedure To link two objects: Click Select and Link. 1. 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 Select and Link Main toolbar > Select and Link Use the Select and Link button to define the hierarchical relationship (page 3–951) between two objects by linking them as child and parent. Use the Unlink Selection button to remove the hierarchical relationship (page 3–951) between two objects. Unlink Selection detaches a child object from its parent object. Adjusting Pivots Tip: You can also link and unlink hierarchies in Schematic View (page 3–640). Procedure To unlink a child object from a parent object: 1. Select the child object you want to unlink. 2. Click Unlink Selection. 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. 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. • As the joint location for IK. You can adjust pivot points by clicking Pivot on the Hierarchy panel, and then using features on the Adjust Pivot rollout (page 2–488). The functions under the Adjust Pivot rollout cannot be animated. Adjusting an object’s pivot on any frame changes it for the entire animation. Affecting Pivot Only When Affect Pivot Only is on, move and rotate transforms are only applied to the pivot of a selected object. Affect Object Only transforms the object without moving the pivot. • Moving or rotating the pivot does not affect the object or its children. Affecting Hierarchy Only • Scaling the pivot scales the object from the pivot center, but its children are unaffected. 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 423 424 Chapter 12: Animation 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. 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. After a hierarchy is created, you can scale the position of the children without changing the individual objects’ dimensions. 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 (page 1–78) 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. 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. To list objects hierarchically, turn on Display Subtree on the dialog. This indents children below their parent. • The Hierarchy list (page 2–512) at the left side of the Track View window (page 2–501) displays all objects using indentation to express hierarchy. Child objects are displayed indented and below their parent. An added advantage of Track View Viewing and Selecting Hierarchies is that you can control the view by collapsing and expanding branches of the hierarchy. 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 (page 2–512). Selecting Hierarchy Members: Siblings 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 (page 3–640) to view hierarchies. In addition to showing you the structure, Schematic View contains tools for manipulating hierarchies. Available in Customize User Interface (page 3–792) are the actions Select Sibling - Next and Select Sibling - Previous, which you can assign 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. 425 426 Chapter 12: Animation Take, for example, the asymmetrical hierarchy of dummy helper objects shown below: arm object selected usually results in selecting the opposite arm object. When using these commands, hidden (page 3–951) and frozen (page 3–945) 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 (page 1–68) 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 At first glance it might appear that Dummies 06, 08 and 02 are siblings of each other, but in practice it is more complicated: • 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. 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 You can customize the quad menu (page 3–694) so it displays commands to select children, or ancestors, or both. From the Customize menu, choose Customize User Interface (page 3–792). On the Quads (page 3–795) 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 (page 3–944). 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 Animating with Forward Kinematics to be aware of a few special issues for animating hierarchies. 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. Rotating the parent affects the position and orientation of the child object. Rotating the child does not affect the parent. Parent and child objects linked by their pivot points. 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 427 428 Chapter 12: Animation 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. Moving the last child object does not affect any of the previous objects in the hierarchy. Moving the root parent moves the whole hierarchy. Rotating a child object in the middle of the hierarchy affects all the descendants but none of the parents. Rotation of a parent object is passed to all the child objects. If you want to manipulate parent objects by moving the last child in the chain, use inverse kinematics (page 2–435). Animating a Child Object Manipulating the Hierarchy 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. 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. Using Dummy Objects Using Dummy Objects The primary use of dummy helper objects (page 2–16) 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 (page 2–23) 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. 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. 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. 4. Repeat steps 1 through 3 until the foot is properly placed. 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 (page 2–435). Combining the bouncing motion of a ball with the forward motion of a dummy results in a moving bouncing ball. 429 430 Chapter 12: Animation 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. 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 (page 2–403) 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 (page 2–392).) 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 Links 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. Robot arms pass a ball from one hand to the other. Key Nodes—Sets keys for some of the objects. 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. 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 Properties of the Link constraint include: 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. • The Link constraint respects the link inheritance settings applied to the child object. Considering the previous example, the following should hold true: • The object using a Link constraint is not a true child object. It does not appear in the subtree of any linked parent objects. • During frames 0 to 50 the ball remains constant relative to the first hand. • Objects with Link constraint do not participate in IK solutions. • 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. 431 432 Chapter 12: Animation 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 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: You use the features on the Adjust Transform (page 2–489) rollout to transform objects after they have been linked without transforming descendents, and to reset an object’s transform. 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%. Transforming Parent Objects The sphere’s child object accepts a local scale of 200% so it does not change in size. 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%. 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 (page 1–438) on the Utilities panel (page 3–778). 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. Locking Object Transforms 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 (page 2–500) 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. 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 (page 2–393) 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. (page 2–392) 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. • 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 433 434 Chapter 12: Animation 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 (page 2–500) 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. 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 (page 2–435) 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 Link Inheritance (Selected) Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Link Inheritance (Selected) Animating with Inverse Kinematics (IK) 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 (page 2–500) in the Link Info group box in the Hierarchy panel (page 3–773), 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. Procedure 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. Interface Using IK to animate a leg Inverse kinematics (IK (page 3–958)) 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. 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. 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 moves the pivot point of the wrist, called an end effector (page 3–933), 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 435 436 Chapter 12: Animation 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: • Building a model. It could be a jointed structure or many pieces or a single continuous surface. • Linking the jointed model together and defining pivot points, as described in Hierarchies (page 2–416). For a continuous-surface model, create a Bone (page 1–404) structure to animate the skin of the character. • Applying IK solvers (page 2–440) to either the jointed hierarchy or to the bones. You will probably create several IK chains throughout the hierarchy, rather than just one. You might also create several independent hierarchies, rather than linking everything together in one large hierarchy. • Defining joint behavior (page 2–483) 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, as well. You might also want to add control objects such as dummies at this point. • Animating the goal (in the case of an HI Solver (page 2–446) or IK Limb solver (page 2–472)) or the end effector (in the case of the HD Solver (page 2–461)). This animates all the components of the IK chain. You can apply constraints (page 2–392) 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 (page 2–383) once it is in your master scene. For more information, see XRef Objects (page 3–394). 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 (page 2–27) or to custom attributes (page 1–129), 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 (page 2–446), the swivel angle (page 2–449) 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 IK Terminology 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: 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 • Joints can be limited with specific positional and rotational properties. kinematic chain. The kinematic chain is composed of a bones system, or a set of linked objects. • Position and orientation of parent objects are determined by the position and orientation of child objects. Joints—An IK joint controls how an object 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. • Object Pivot Point—The location of an object’s pivot point defines where joint motion is applied. 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 transforms with respect to its parent. You specify joint behavior with settings in three categories: • 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 (page 2–423). Bones System (page 1–404) 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. Using Objects as Bones (page 1–410) Kinematic Chain—Inverse kinematics calculates the Inverse Kinematics Methods (page 2–439) IK Solvers (page 2–440) IK Terminology (page 2–437) IK Terminology Using inverse kinematics requires that you set parameters for a number of IK components. Brief 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 437 438 Chapter 12: Animation 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 (page 3–933). 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 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 (page 2–449). 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 (page 3–943). 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. Inverse Kinematics Methods 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. IK 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 (page 2–426) and Inverse Kinematics (IK) (page 2–435). • Display active joint axes and joint limits graphically. • Use a node, goal or an end effector to animate the end of a chain. 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 IK Solvers IK solvers (page 2–440) 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 or overlapping IK chains within a single hierarchy. 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 (page 2–480) 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 (page 2–499). • Applied IK (page 2–481) 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 439 440 Chapter 12: Animation 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. 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. 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 (page 2–392). 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 IK Solvers reposition the end effector to coincide with the goal. to define a direction for rotation, so the elbow or knees bend correctly. • HD (History-Dependent) Solver (page 2–461) 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. 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. Four plug-in IK solvers ship with 3ds Max: • HI (History-Independent) Solver (page 2–446) 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 (page 2–449) 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 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 (page 2–472) 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 (page 2–449) 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 uses a preferred angle 441 442 Chapter 12: Animation 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 (page 2–473) The Spline IK solver uses a spline to determine the curvature of a series of bones or other linked objects. 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 (page 1–791), 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. 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 (page 2–480) and Applied IK (page 2–481). IK with Bones While you can apply an IK solver to any hierarchy of objects, a system of Bones (page 1–404) combined with an IK solver is a good way to animate a character. 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 (page 3–694). 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 IK Solvers when the geometry is hidden and displayed only at links. 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. Bones can scale, squash and stretch over time. See Using Objects as Bones (page 1–410). Link Display You can use Display Links and Link Replaces Object to display the links instead of the object. 443 444 Chapter 12: Animation 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. 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 (page 3–774) 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 (page 2–449) 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. How to Apply an IK Solver IK Limb Solver—Motion panel parameters for You can apply an IK solver when you create a Bones system, or from the Animation menu: the IK Limb solver are the same as for the HI Solver. • Bones creation (page 1–404) Spline IK Solver—Motion panel parameters 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 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. • Hierarchy panel (page 3–773) 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 IK Solvers 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. • Spline IK Solver for improved control of intricate, multiple-bone structures 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: 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. 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. Procedures 2. From the Animation menu > Character To add an IK solver to a hierarchy or bones system: submenu, choose Bone Tools. 1. Create a bones system or any other linked This Opens the bone Tools dialog. 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: 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 • HI Solver for character animation Links, and Link Replaces Object. • HD Solver for mechanical assemblages with sliding joints The objects disappear and the links are displayed as bones. • IK Limb Solver for two-bone chains 445 446 Chapter 12: Animation 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 (page 2–449). 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. 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. • 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. Applying an HI Solver Overlapping Chains 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 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. History-Independent (HI) IK Solver 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. 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. 447 448 Chapter 12: Animation 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 three bone chains that are all in the same place, and constrain one bone chain to another, then weight the constraints. 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 (page 2–411) 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. 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. 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 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. White Paper: Swivel Angle of the HI IK Solver 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 (page 2–456). You can also try reduce the Thresholds value to smooth the animation. See also IK Solver Rollout (HI Solver) (page 2–453) 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. 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. 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 449 450 Chapter 12: Animation 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. 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. 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. 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. 1. EE axis All the joints assume preferred angles. The Zero Plane Map is to be defined on this sphere. 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. White Paper: Swivel Angle of the HI IK Solver 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. 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 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 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. 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. 451 452 Chapter 12: Animation The parent space of the IK chain contains a rotation when the IK solver is assigned. The IK chain is parented (via the start joint) at object A. 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. 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 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. IK Solver Rollout (HI Solver) Example 3 This example describes what happened when Start Joint is reassigned. Suppose we have an IK chain of four bone nodes. 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 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. 453 454 Chapter 12: Animation 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. 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. 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 (page 2–456). 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. 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. IK Solver Rollout (HI Solver) Interface 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 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. 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. 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. 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 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 455 456 Chapter 12: Animation Rotational Joint rollout of the Hierarchy|IK panel. This is useful for establishing a perfect match frame (page 3–969) when transitioning between forward and inverse kinematics. 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. 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 (page 2–15). The swivel angle manipulator is displayed as a handle in the viewports. IK Solver Properties Rollout (HI Solver) 3. Play or render the animation. 4. You can also adjust the Position and Rotation Thresholds to a smaller value. Interface 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 (page 2–29). The HI Solver has its own controls for displaying this manipulator. These are on the IK Display Options rollout (page 2–458). 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. Procedure 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. 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 457 458 Chapter 12: Animation information, see White Paper: Swivel Angle of the HI IK Solver (page 2–449). 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. 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. effectors, the vector handle of the swivel angle manipulator, and the IK solver display itself, are all located in this rollout. Procedure 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. Interface 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. End Effector Display group 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 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. Sliding and Rotational Joints (HI Solver) 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. Size—Controls the size of the manipulator’s handle in viewports. Length—Controls the length of the manipulator in viewports. 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 . 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. 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. 6. Select any bone in the chain. 7. On the Hierarchy panel > IK panel, open the Rotational Joint rollout. 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 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. 459 460 Chapter 12: Animation 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 the object to its limit position. Use this to check the sliding limits on an object. Rotational Joints rollout 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. Interface Sliding 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 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 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. History-Dependent (HD) IK Solver History-Dependent (HD) IK 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. • 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 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 (page 2–497) Linking End Effectors to a Parent Binding Objects (HD Solver) 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. Use the binding functions (page 2–492) 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. There are two reasons to link an end effector to a parent: 461 462 Chapter 12: Animation 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. 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 The behavior of the bound object varies depending on the state of the Relative buttons next to the bind 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. • 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. 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. • 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. 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. Controlling IK Precision (HD Solver) • 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. 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 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. Position 0.100 1.000 Rotation 0.100 1.000 Iterations 50 10 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. See also Position Threshold—Sets how close the end effector 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. • The last solution calculated is used if the maximum number of iterations is reached, HD Solver Motion Panel Rollouts (page 2–463) 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. Procedures See History-Dependent (HD) IK Solver (page 2–461). 463 464 Chapter 12: Animation Interface Initial State group 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. 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 HD Solver Motion Panel Rollouts 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. Update 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. 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 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 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 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 465 466 Chapter 12: Animation 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. Unlink—Unlinks the currently selected end effector from its parent. Remove IK group 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. Delete Joint—Deletes any selection of bones or hierarchical objects. Doesn’t delete the IK; only the selected hierarchical members. Create—Creates a Position end effector for the Note: Using the DELETE key will delete the entire selected node. hierarchy. Delete—Removes the Position end effector from the selected node. Remove IK Chain—Deletes the IK Solver from the 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. 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. 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.) 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. Setting Joint Precedence (HD Solver) 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. 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. 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 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. Setting Joint Precedence (HD Solver) (page 2–467) Damping Joint Action Choosing Parent-to-Child Precedence (HD Solver) (page 2–470) 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. 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 Using Default Joint Precedence (HD Solver) (page 2–468) Choosing Child-to-Parent Precedence (HD Solver) (page 2–469) Setting Precedence Manually (HD Solver) (page 2–471) Terminating Chains (HD Solver) (page 2–471) 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. 467 468 Chapter 12: Animation 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) (page 2–468) The hoof (a child) has precedence over the leg (its parent). Choosing Child-to-Parent Precedence (HD Solver) (page 2–469) Choosing Parent-to-Child Precedence (HD Solver) (page 2–470) 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. Setting Precedence Manually (HD Solver) (page 2–471) 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 Choosing Child-to-Parent Precedence (HD Solver) 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. 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 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. 469 470 Chapter 12: Animation 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 (page 2–466). • 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. 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 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) 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. 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. 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. 471 472 Chapter 12: Animation 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. With a terminator in the neck, the body of the bird is not affected. 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. Spline IK 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. 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.) See also IK Solver Rollout (HI Solver) (page 2–453) IK Solver Properties Rollout (HI Solver) (page 2–456) The IK Limb solver can be exported directly to a game engine. IK Display Options Rollout (HI Solver) (page 2–458) Procedures Sliding and Rotational Joints (HI Solver) (page 2–459) To apply a IK limb solver: 1. Create a chain that has three bones. 2. Select the root of the chain. 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. Spline IK Animation menu > IK Solvers > Spline IK Solver Create panel > Systems > Bones > Choose SplineIKSolver from the IK Solver list. 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. The Spline IK solver uses a spline to determine the curvature of a series of bones or other linked objects. 473 474 Chapter 12: Animation chain’s Pick Upnode option in the IK Solver Properties rollout (see Spline IK Solver Rollouts (page 2–478)), 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. 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. 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 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 (page 2–477) appears. Set parameters and click OK. Spline IK 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. 475 476 Chapter 12: Animation 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. 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 (page 1–830) 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. 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 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. 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. Spline IK Solver Dialog See also Interface Spline IK Solver Rollouts (page 2–478) 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. 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 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). 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 (page 2–473) 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. 477 478 Chapter 12: Animation • NURBS CV—Creates a NURBS CV Curve, where knots (control nodes) do not necessarily lie on the curve. Draw On Top—Displays the helpers on top of all Number of Spline Knots—Vertices on the spline, or Tip: To change the display of helpers after creation, select each helper and change selections on the Modify panel. 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 (page 2–23) 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. other objects in the scene for improved visibility in busy scenes. See also Spline IK (page 2–473) Spline IK Solver Rollouts Select a Spline IK Solver control (the blue cross at the end of the chain) > Motion panel > Parameters button 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 (page 2–473). Interface Spline IK Solver rollout Spline IK Solver Rollouts 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 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. Spline IK Solver—Displays the name of the solver. The only available solver is Spline IK Solver. Use—Use the picked node to specify the “up” direction for the root bone. Enabled—Turns control of the solver on and off. Bone Joints group Pick Start Joint—Picks the start joint for the Spline IK Solver and displays the object name. IK Display Options rollout The options on this rollout set the display of twist manipulators and the IK chain object. 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 Twist Start group joint relative to the start joint, creating a gradual twist over the entire chain. Enabled—Turns on the display of the start twist manipulator. Default=on. 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 Size—Sets the size of the start twist manipulator. Default=1.0. Length—Sets the length of the start twist manipulator. Default=75.0 479 480 Chapter 12: Animation 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. 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. See also Animating with the Spline IK Solver (page 2–473) 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. For information about making the end effector precisely follow the motion of the box, see Animating with Applied IK (page 2–481). Animating with Applied IK 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. 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. IK structure 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. 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 (page 3–830) 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. 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. 481 482 Chapter 12: Animation Example of Applied IK 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. IK structure 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. 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 (page 2–480), 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 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 Setting Joint Parameters 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. 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 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 (page 2–459) 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 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 (page 2–318). 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. Surface joints—Control the position of objects using Surface constraint (page 2–396). The parameters control how the object travels along its assigned surface. Path joints—Control the positional motion of objects using Path constraint (page 2–398). 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 483 484 Chapter 12: Animation 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. 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 1. Base 2. Post 3. Cap 4. Ring 5. Holder 6. Handle 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. Tip: Choose one of the Mirror Paste options if you want to mirror the joint parameter settings as you Activating Joint Axes 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. • Consider using the Adjust Pivot (page 2–488) functions to align your object pivots with either the World axes or the root object of the hierarchy. • 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 • 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. 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. 485 486 Chapter 12: Animation Activating Sliding Joints 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 (page 2–398). Limiting Joint Action 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. 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. 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. 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. Tip: Use the HD IK Solver when you need to use sliding joints with IK. Limiting Rotational Joints Path and Surface 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 Circular path 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 Hierarchy Panel Commands 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. (IK). You use the Link Info tab to apply locks or inheritance to movement within the hierarchy. See also Hierarchies and Kinematics (page 2–416) Inverse Kinematics (IK) (page 2–435) IK Terminology (page 2–437) 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) (page 2–459) Animating with Interactive IK (page 2–480) Animating with Applied IK (page 2–481) History-Dependent (HD) IK Solver (page 2–461) History-Independent (HI) IK Solver (page 2–446) IK Limb Solver (page 2–472) Spline IK (page 2–473) Pivot Make a selection in the viewport. > Hierarchy panel > Pivot button Hierarchy Panel Commands Once you have set up a hierarchy using the Select and Link command (page 2–422) or a system such as Bones (page 1–404), you can manage it using the Hierarchy panel. This command panel has three tabs: Pivot (page 2–487) IK (page 2–491) All objects have a pivot point. You can think of the pivot point as representing an object’s local center and local coordinate system. The pivot point of an object is used for the following: • Functions as the center for rotation and scaling when you select the Pivot Point transform center. Link Info (page 2–499) • Sets the default location of a modifier center. 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 • Defines the transform relationship for the object’s linked children. 487 488 Chapter 12: Animation • Defines the joint location for inverse kinematics (IK) (page 2–435). 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 (page 2–403) to simulate the effect of an animated pivot. The Pivot panel has two rollouts: Adjust Pivot Rollout (page 2–488) Adjust Transform Rollout (page 2–489) Pivot point sets hand to the center of the clock face. Procedure 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 (page 1–462), Normal Align (page 1–465), and Align to View (page 1–468) on the toolbar to align the pivot. See Adjust Transform Rollout (page 2–489) for related information. 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 (page 3–995) 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. 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. Adjust Transform Rollout If you chose Affect Pivot Only, the buttons work as follows: Center to Object—Moves the pivot to the center of its object. Align to Object—Rotates the pivot to align with the object’s transformation matrix axes. 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 Align to World—Rotates the pivot to align with the world coordinate axes. If you chose Affect Object Only, the buttons work as follows: objects (and not the pivot point). Center to Pivot—Moves the center of the object to its pivot location. Affect Hierarchy Only—Affects only the Rotation Align to Pivot—Rotates the object to align its 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. transformation matrix axes with the pivot. 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 (page 1–404). Align to World—Rotates the object to align its transformation matrix axes with the world coordinate axes. Pivot group 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. 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. 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. 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. 489 490 Chapter 12: Animation Procedure 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 will prevent Non Uniform Scale inheritance if a child object is linked to this object. Interface 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). There is also a Reset XForm utility (page 1–438) to do the same tasks. Move/Rotate/Scale group See also Don’t Affect Children—Limits transforms to the Adjust Pivot Rollout (page 2–488) selected object and its axis, not to its children. IK IK HD IK Solver Rollouts Make a selection. > Hierarchy panel > IK button The IK rollouts contain controls for interactive IK and the HD IK solver. 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: Position/Orientation/Bind to Follow Object (HD Solver) (page 2–492) The rollouts for interactive IK are: Precedence (HD Solver) (page 2–494) Inverse Kinematics Rollout (page 2–497) Copying, Pasting, and Mirroring Joint Parameters (HD Solver) (page 2–495) Auto Termination Rollout (Interactive IK) (page 2–499) Sliding and Rotational Joints Rollouts (HD Solver) (page 2–496) The rollouts for applied IK are: Inverse Kinematics Rollout (page 2–497) Object Parameters Rollout (HD Solver) (page 2–491) The rollouts for the HD IK solver are: Inverse Kinematics Rollout (page 2–497) Object Parameters Rollout (HD Solver) (page 2–491) Sliding and Rotational Joints Rollouts (HD Solver) (page 2–496) Procedure 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 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. Terminator—Sets the base of an IK chain by defining one or more selected objects as terminators. 491 492 Chapter 12: Animation 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. 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: 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. Use the R (Relative) buttons to establish a relative offset with Bind Position and Bind Orientation. 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. Binding an Object to the World Note: As you drag, a dotted line is drawn from Binds an object to the world if you want the object to hold its position and orientation as long as possible during IK operations. 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. 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. 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." Position/Orientation/Bind to Follow Object (HD Solver) Interface Position group 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. 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 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 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 493 494 Chapter 12: Animation this case, the end effector with the greatest weight "wins." Bind To Follow Object group Controls to bind and unbind an object in an inverse kinematic chain to a follow 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. (Label)—Displays the name of the selected follow object. Displays the word "None" if no follow object is set. Procedures Bind—Binds an object in an inverse kinematic 1. Select an object in an HD IK Chain. chain to a follow object. Unbind—Unbinds the selected object in a HD IK To assign a precedence value to an object manually: 2. Open the Object Parameters rollout in the Hierarchy panel. chain from its follow object. 3. Enter a value in the Precedence field. Precedence (HD Solver) To assign Child->Parent precedence to all objects in a kinematic chain: 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 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. Copying, Pasting, and Mirroring Joint Parameters (HD Solver) 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. 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. 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. See also You almost always assign Child>Parent precedence to an entire kinematic chain. To copy and paste joint parameters: 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 Sliding and Rotational Joints (page 2–496) Procedure 1. Select an object in an inverse kinematic chain. 2. Set sliding or rotational joint parameters. 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. 495 496 Chapter 12: Animation Interface 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. 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. 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 (page 2–499). • 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 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. Inverse Kinematics Rollout Interface Sliding/Rotational Joints rollouts 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. 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. Spring Back—Activates Spring Back. Each joint has a rest position. As the joint moves further from the 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 497 498 Chapter 12: Animation 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 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. 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. Interface • 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. 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. Auto Termination Rollout (Interactive IK) Update Viewports—Views the progress of Apply IK frame by frame in the viewports. # of Links Up—Specifies how far up the chain the Clear Keys—Removes all move and rotate keys 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. 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) termination is applied. A setting of 1 simply locks the hierarchy, since it terminates the joint just beyond the currently selected object. Make a selection. > Hierarchy panel > IK button > Auto Termination rollout 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. Procedure To use auto termination: 1. In the Auto Termination rollout, turn on Auto Termination. 2. Enter a value in the # of Links Up field. 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. Interface Turn on the IK button on the toolbar. 3. Select any object in an IK chain to move or rotate. Interface The Link Info panel has two rollouts: Locks rollout (page 2–500): Locks an object’s ability to Move, Rotate, or Scale about any of its local axes. Inherit rollout (page 2–500): Limits what transforms a child inherits. Interactive IK Auto Termination—Turns on the auto termination feature. 499 500 Chapter 12: Animation Locks Rollout Inherit Rollout Make a selection. > Hierarchy panel > Link Info button > Locks rollout Make a selection. > Hierarchy panel > Link Info button > Inherit rollout The Locks rollout contains controls that prevent transforms along particular axes. The Inherit rollout constrains the links between a selected object and its parent for any axis of position, rotation, or scale. See also Inherit Rollout (page 2–500) See also Locks Rollout (page 2–500) Procedure To lock all move transforms: Procedure 1. Select an object in the viewports. To prevent inheritance of X rotation in a hierarchy: 2. In the Locks rollout, turn on Move group > X, Y, and Z. • Select an object, then turn off X in the Rotate group on the Inherit rollout. Only rotate and scale transforms will work. Interface The object does not need to be part of a hierarchy. Interface X, Y, Z—Turn off any axis in the Move, Rotate, or Scale group boxes to prevent inheritance. 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. 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 Track View Main toolbar > Curve Editor (Open) Graph Editors menu > New Track View Graph Editors menu > Track View - Curve Editor Track View — Dope Sheet (Edit Keys) 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. 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. 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. Track View — Curve Editor 501 502 Chapter 12: Animation Procedures To delete keys in Track View (either mode): To change the frames in which a controller takes effect: 1. Select keys on the curve, or on the dope sheet. 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 (page 3–904). 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. 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 (page 2–507). To select keys in Track View (either mode), do any of the following: • Click the key to select an individual key. • Drag a selection rectangle around keys to select multiple keys. • 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. 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 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. Working with Track View 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. See also Track View Menu Bar (page 2–521) Curve Editor (page 2–507) Dope Sheet (page 2–507) Track View Workspace (page 2–504) Time Ruler (page 2–510) Filters (page 2–541) Assign Controller (page 2–546) Copy Controller (page 2–544) Paste Controller (page 2–545) Make Controller Unique (page 2–550) 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. Parameter Curve Out-of-Range Types (page 2–551) For details about using Track View and editing animation, see the following: Add Note Track (page 2–552) • Track View Edit Window (page 2–504) Remove Note Track (page 2–553) • Track View Menu Bar (page 2–521) Edit Keys (page 2–554) • Curve Editor Toolbars (page 2–535) Track View Utilities (page 2–561) • Dope Sheet (page 2–507) Select Time (page 2–566) • Dope Sheet Toolbars (page 2–538) Edit Ranges (page 2–573) Understanding Track View Concepts Curve Editor (page 2–578) 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. Status Bar/View Controls (page 2–588) Track View Hierarchy (page 2–512) Animation Controllers (page 2–307) Working with Track View Track View is the tool that you use to see a data-driven view of your scene and animation. 503 504 Chapter 12: Animation 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. Interface This section covers some of the editing functions you can use with Track View: Controller Window Copying and Pasting Items (page 2–575) Copying and Pasting Objects (page 2–576) Making Instance and Reference Controllers and Objects Unique (page 2–577) Track View Workspace Main toolbar > Curve Editor (Open) Graph Editors menu > Track View - Curve Editor moved during scale value operations as a reference point for scaling. The two main sections of the Track View workspace consist of the Key window and the 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. 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 (a horizontal orange line at 0) can be Controller window Track View Workspace 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. Colored keys with subframe display Keys are also displayed on the track bar below the viewport. 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. 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. 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. 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). 505 506 Chapter 12: Animation Right-click the toolbar, choose Show Toolbars, and then select Range-Track View to access these tools. dialog. Move the time ruler up to the keys for more accurate key placement. Keys displayed as range bars (Dope Sheet - Edit Ranges mode) Time ruler Function Curves Track View Time Slider 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. 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. Keys displayed as function curves (Curve Editor) Scale keys using time slider 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 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. Curve Editor 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. Horizontal line at the top of the illustration is the moveable scale origin line. Tip: You can also click Show Curves in the track bar to display function curves. See also 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 Track View Menu Bar (page 2–521) Curve Editor Toolbars (page 2–535) 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 - 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. 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 507 508 Chapter 12: Animation 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. 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. insert and reverse time using the tools on the Time menu. Like the Curve Editor (page 2–507), 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.) 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 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. Dope Sheet 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. 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, 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 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. 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. 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. Edit Ranges mode See also Track View Menu Bar (page 2–521) 509 510 Chapter 12: Animation Dope Sheet Toolbars (page 2–538) Select Time (page 2–566) Edit Ranges (page 2–573) Track V iew Function Default Keyboard Shortcut 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 Access Value Field Accesses the value field at the lower left of Track View window Edit Keys (page 2–554) 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) 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 (page 3–725). You can drag the time ruler vertically in the Key window to align it with any track. Add Keys A Add Note Track Add Visibility Track Align Keys Apply Ease Curve Ctrl+E Track View Shortcuts Apply Multiplier Curve Ctrl+M 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. Assign Controller C To use Track View keyboard shortcuts, the Keyboard Shortcut Override toggle (page 3–872) must be on. Auto Expand Limits See also Track View (page 2–501) Description Auto Expand Animated Auto Expand Keyable Collapse All Collapse Objects Collapse Tracks Copy Controller Copy Time Keyboard Shortcuts (page 3–871) Cut Time Keyboard Panel (page 3–793) Delete Controller Customize User Interface Dialog (page 3–792) Delete Ease/ Multiplier Curve Delete Note Track Ctrl+C Track View Shortcuts Track V iew Function Default Keyboard Shortcut Description Track V iew Function Default Keyboard Shortcut Delete Visibility Track Modify Subtree Toggle Draw Curves Move Highlight Down Down Arrow Move Highlight Up Up Arrow Move Keys M Ease Curve Out-of-Range Types Ease/Multiplier Curve Enable Toggle Move Keys Horizontal Edit Keys Mode Move Keys Vertical Edit Ranges Mode Edit Time Mode Move Object Down Moves an object down in the hierarchy display Move Object Up Moves an object up in the hierarchy display Edit Track Set Exclude Left End Point Toggle Exclude Right End PointToggle Expand Object Toggle O (letter "o") Expand Objects Expand Track Toggle ENTER , T Expand Tracks Filters Description Q Multiplier Curve Out-of-Range Types Nudge Keys Left Left Arrow Nudge Keys Right Right Arrow Pan P Parameter Curve Out-of-Range Types Paste Controller Freeze Nonselected Curves Paste Limit Only Function Curves Mode Paste Time Position Ranges Mode Ignore Animation Range Properties Insert Time Reduce Keys Keyable Properties Toggle Remove Limit Lock Selection Spacebar Lock Tangents Toggle L Make Controller Unique U Respect Animation Range Reverse Time Scale Keys Scale Time Ctrl+V 511 512 Chapter 12: Animation Track V iew Function Default Keyboard Shortcut Description Scale Values Scroll Down Ctrl+Down Arrow Scroll Up Ctrl+Up Arrow Track V iew Function Description Zoom Horizontal Extents Zoom Horizontal Extents Select All Zoom Region Select Children Zoom Selected Object Select Invert Default Keyboard Shortcut Alt+X Zoom Time Select None Zoom Value Extents Select Time Zoom Values Select Lower Limit Set Tangents to Auto Set Tangents to Custom Track View Hierarchy Set Tangents to Fast Set Tangents to Linear Main toolbar > Curve Editor (Open) > Track View Controller Window Set Tangents to Slow Graph Editors menu > Track View - Curve Editor/Track View - Dope Sheet Set Tangents to Smooth The Track View Controller window displays all objects in your scene in a hierarchical fashion. You select objects in the Hierarchy list to: Set Tangents to Step Set Upper Limit Show All Tangents • Select object and track labels for Track View operations. Show Keys on Frozen Curves • Select object icons to select objects in the scene. Show Selected Key Stats • Select material or map icons when working in the Material Editor. Show Tangents Toggle • Select modifiers in Track View to navigate the modifier stack in the Modify panel. Slide Keys Snap Frames S Hierarchy Right-Click Menu (page 2–516) Toggle Limit Track View Utilities Zoom See also Properties (Track View Hierarchy) (page 2–519) Z Modify Subtree (page 2–528) Sound Options Dialog (page 2–520) Track View Hierarchy 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. Right-clicking an item displays a right-click menu for globally selecting items in the Hierarchy list. 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. • Press Ctrl and click an object icon to add (or remove) the object to the selection. • Choose Select None to clear all items from the selection. When objects are selected in the scene, their icons are also highlighted in Track View. • Choose Selected Children to select the linked descendants of a parent object. 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: When working with function curves, you can also select a controller icon (instead of the label) to select that function curve for vertex editing. • You can’t select the icon of a hidden object. To select a material or map as the active material in the Material Editor: • You can’t select the icon of a frozen object. 1. Open the Material Editor. • 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. 2. Open the Medit Materials branch in the To select and deselect item labels by clicking: 1. Select the first item by clicking its label. 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. 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. 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. 513 514 Chapter 12: Animation 5. Click the icon of the Twist modifier. Interface 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. 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. 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. 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 (page 2–520). Track View Hierarchy 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 Scene 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 (page 2–1337). 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 (page 2–1409). 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 (page 2–529) 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 515 516 Chapter 12: Animation properties, as well as tools for navigating, expanding and collapsing the Hierarchy list of the Controller window. Examples of controller icons Certain types of controllers can contain other controllers. Examples of these are Transform Controllers and List Controllers. 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 (page 2–516). Use Alt + right-click to display an alternate navigation menu. 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 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 Select All—Selects all tracks that are visible in the Hierarchy list. Collapsed items are not selected. Hierarchy Right-Click Menu Select Invert—Inverts the current Hierarchy list selection. 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. Note: If you are using Auto Expand (page 2–527) with the Children option turned on, all objects branches are automatically expanded. Expand Tracks—Expands all branches of the Tip: You can also select an object’s children by selected item. double-clicking its icon. Expand Objects—Expands only the object branch for all descendants of the selected object. The expanded branches are not selected. 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. 517 518 Chapter 12: Animation Auto Expand—Expands the Hierarchy list Properties—Displays the property dialog of a automatically based on submenu selection choices. Submenu choices are: Selected Objects Only, Transforms, XYZ Components, Limits, Keyable, Animated, Base Objects, Modifiers, Materials, and Children. controller, if available. Not all controller use this dialog, and it is unavailable in these cases. 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 (page 3–472). If any of the highlighted tracks has child tracks, animation is loaded to those tracks as well. Assign Controller—Displays the Assign Controller dialog, which offers a list of the available controller for that selection. 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. Save Animation—Saves XML animation data from the highlighted track or tracks to disk files. For more information, see Saving and Loading Animation (page 3–472). Note: If you are using Auto Expand (page 2–527) If any of the highlighted tracks has child tracks, animation is saved from those tracks as well. selected item. with the Children option turned on, all objects branches are automatically expanded. Expand Tracks—Expands all branches of the 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. Properties (Track View Hierarchy) Select All—Selects all tracks that are visible in the Hierarchy list. Collapsed items are not selected. Procedures Select Invert—Inverts the current Hierarchy list 1. Select the controller track in the Controller To display properties for animation controllers: selection. Tip: Inverting an empty selection is the same as selecting all. Window. 2. On the Controller menu choose Properties. Or you can right-click and select Properties from the Track View quad menu. Select Children—Selects all objects descending from the selection by highlighting their icon in the Hierarchy list. Collapsed children are also selected. To display the properties dialog for a Bezier key: Tip: You can also select an object’s children by The Bezier Controller is the default position controller when an object is animated. 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). 1. In the Track View Key window, select an object’s position key. 2. Right-click the key. Properties—See Properties (page 2–519). The controller dialog is displayed. The Key Tangency choices are available from the dialog. Properties ( Track View Hierarchy) Tip: You can also change tangency handles using the tools in the Key Tangents: Track View toolbar. 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 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. 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 (page 2–520) 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. 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. 519 520 Chapter 12: Animation Sound Options Dialog Interface 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. Procedure 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. To add a sound track: 1. In the Track View Controller window, right-click a sound item and choose Properties. 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. 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: 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 Menus 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 (page 2–521). Controller—Assigns, copies, and pastes controllers, and makes them unique. Here you also add looping. See Controller Menu (page 2–521). View—Contains Pan and Zoom commands. See View Menu (page 2–532). Utilities—Randomizes or creates out-of-range keys. Also selects keys by time and current value editor. See Utilities Menu (page 2–533). 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. Tracks—Adds Note and Visibility tracks. See Tracks Menu (page 2–524). Keys—Adds, removes, slides, and scales keys. Also includes soft selection, align to cursor, and snap frame. See Keys Menu (page 2–524). Curves—(Curve Editor only) Applies or removes Ease and Multiplier curves. See Curves Menu (page 2–525). Time—(Dope Sheet only) Adjusts time. See Time Menu (page 2–526). Options—Controls the behavior (auto-expansion, etc.) of the Hierarchy list window. Also contains controls that improve performance. See Options Menu (page 2–526). Display—Affects curve, icon, and tangent display. See Display Menu (page 2–530). 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 (page 2–546). 521 522 Chapter 12: Animation 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 (page 2–549). Keyable—Toggles the ability to be keyed of selected 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 (page 2–550). Out of Range Types—Lets you extend the animation controller tracks. Use this with the Show Keyable button on the toolbar to see whether a track is keyable. 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 (page 2–551). Copy—Puts a copy of the selected controller track Properties—Displays the Properties dialog, into the Track View buffer. See Copy Controller (page 2–544). 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) (page 2–560). 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 (page 2–545). 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 (page 2–522) Collapse Controller Track View > Track View menu > Controllers > Collapse Controllers Enable Anim Layer—Assigns a Layer controller to each highlighted track in the hierarchy window. See Animation Layers (page 2–326). 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 (page 2–549). 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 (page 2–550). Make Unique—Lets you turn an instanced controller into a unique controller. If a controller 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. 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 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 (page 2–301). 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. 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 Procedure 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. 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. Position and Scale tracks collapse to either Bezier or Linear. Rotation tracks collapse to either Euler or TCB. Samples—Sets the granularity of the collapse Note: TCB controllers will not display function Collapse to—Sets the type of controller the curves. procedural track will become: 5. Click OK. operation. This value defines the number of frames between keys. Default=1.0. • Bezier or Euler Controller— When this is chosen, Position, Scale, and scalar parameter tracks will 523 524 Chapter 12: Animation be assigned Bezier controllers. Rotation tracks will be assigned Euler controllers. • 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 (page 2–342). 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 (page 2–552). 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 (page 2–556). 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) (page 2–560). Reduce Keys—Reduces the amount of keys on curves, or in edit keys mode in Dope Sheet. See Reduce Keys (page 2–572). Move—Moves keys either vertically (in value) or horizontally (in time). See Move Keys (Dope Sheet) (page 2–558) or Move Keys (Curve Editor) (page 2–579). Slide—Moves keys, and adjacent keys slide away to make room for the move. See Slide Keys (page 2–558). 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 (page 2–581). 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 (page 2–559). 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 (page 2–525). 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 (page 2–525). Use Soft Select 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 (page 2–556). Snap Frames—When this is on, keys always snap to frames. When off, you can move keys to sub-frame positions. See Snap Frames (page 2–554). 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 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. 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). Procedure Soft—Toggles usage of the soft selection. When this is off, only the selected keys are used, the soft selection is not. 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 To soft select keys in Track View: Graphic Editors menu > Track View - Curve Editor > Curves menu 1. In either Dope Sheet > Edit Keys mode or in the Main toolbar > Curve Editor (Open) > Curves menu 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. See also Soft Selection Settings (page 2–525) 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 (page 2–584). 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 (page 2–584). 525 526 Chapter 12: Animation Remove—Removes Ease and Multiplier Curves. See Remove Ease/Multiplier Curve (page 2–585). On/Off—Turns Ease and Multiplier Curves on or off. See On/Off (Curves) (page 2–585). Ease Curve Out-of-Range Types—Applies Eases to Options Menu Track View > Options menu Parameter Out of Range keys. See Ease Curve Out-of-Range Types (page 2–585). The Options menu contains a series of toggles and switches that control how items are handled in the Track View window. Multiplier Curve Out-of-Range Types—Applies Interactive Update (page 2–526) multiplier curves to Parameter Out of Range keys. See Multiplier Curve Out-of-Range Types (page 2–586). Sync Cursor Time (page 2–527) Auto Expand (page 2–527) Auto Select (page 2–528) 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. Auto Scroll (page 2–528) Modify Subtree (page 2–528) (Dope Sheet only) Modify Child Keys (page 2–529) (Dope Sheet only) Manual Navigation (page 2–529) Interactive Update Track View > Options menu > Interactive Update Select—Select a time range. 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. Insert—Add blank periods of time into a selected Interactive Update—When on, editing keys in 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. 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. 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 Sync Cursor Time 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 (page 2–527) 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 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. 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. Track View > Options menu > Sync Cursor Time Interface 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 (page 2–526) 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. 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 (page 2–335). Default=On. Keyable—Expands the highlighted object’s Hierarchy list to display keyable tracks. You must 527 528 Chapter 12: Animation also enable Transform or XYZ Components to see results. Also expands the Environment and Global Shadow Parameters Hierarchy lists. Auto Scroll Track View > Options menu > Auto Scroll submenu 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. 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. 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. 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. Note: Modify Child Keys (page 2–529) 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. Modify Child Keys Procedure To drag the ranges and linked descendants of an object: 1. In the Dope Sheet Editor, click Edit Ranges. 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 Modify Subtree is on by default. 2. Drag the World range bar or the Objects range Track View - Dope Sheet > Track View toolbar > Modify Child Keys button 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. Modify Subtree (Edit Range)—Affects the tracks of an object and all of its descendent 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 529 530 Chapter 12: Animation 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. 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 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 (page 2–595) for expanding and collapsing selected tracks. All Tangents—Displays all the tangent handles for To collapse individual components in the Controller window: Custom Icons—Changes the display of the icons in the Hierarchy list from 2D to 3D shaded. 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. all keys in the Curve Editor. 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 (page 2–531). 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 (page 2–532). 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 (page 2–532) 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 (page 2–587). Show All Tangents Filters—provides controls to filter the display in Curve Editor. There are a wide range of options to show, hide and display. See Filters (page 2–541). the tracks you want to work with, and avoid keyframing other tracks. Red key icon means a track is keyable. Show All Tangents When the keyable icons are visible, click the red icon to turn off the track. 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 (page 2–582) 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: Keyable Icons 1. Select the object in the viewport. 2. Right-click and choose Curve Editor. Main toolbar > Curve Editor (Open) > Display menu > Keyable Icons The Function Curve Editor opens, with the selected object tracks visible. Menu bar > Graph Editors > Track View - Curve Editor > Track View toolbar > Show Keyable Icons 3. 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. 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 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. 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 531 532 Chapter 12: Animation 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. 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) (page 2–595). Zoom—Lets you zoom in and out. See Zoom Track View Key Window (page 2–596). Zoom Region—Lets you zoom in to a rectangular Tip: Use the same procedure to make multiple area. See Zoom Region (Track View) (page 2–597). tracks not keyable. The Controller > Keyable command toggles the keyability of the tracks. Zoom Horizontal Extents—Zooms to the active time segment. See Zoom Horizontal Extents (page 2–595). 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 Zoom Horizontal Extents Keys—Zooms to show all keys. See Zoom Horizontal Extents (page 2–595). Zoom Value Extents—(Curve Editor only) Zooms 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. 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. 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 Utilities Menu Graph Editors menu > Track View - Curve Editor > Utilities menu Graph Editors menu > Track View - Dope Sheet > Utilities menu 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 (page 2–563). Main toolbar > Curve Editor (Open) > Utilities menu The Utilities menu (page 2–561) 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 (page 2–562). Soft Selection Settings Manager—Displays a soft selection dialog at the bottom of the Track View window. For details, see Soft Selection Settings (page 2–525). Euler Filter—Corrects rotation anomalies by filtering Euler rotation tracks. For details, see Euler Filter (page 2–564). 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 (page 2–562). 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 (page 2–565). 533 534 Chapter 12: 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. 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. 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. 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. The commands from the alternative quad menu ( Alt +right-click) are integrated in the right-click quad menu (page 2–516). The Select, Expand, and Collapse commands are therefore accessible along with the existing quad menu commands, improving workflow efficiency. Alt +right-click for alternate quad menu for Controller window Curve Editor Toolbars You can add additional commands to these quad menus. You can customize the Track View quad menu the same as any other quad menu. Procedure Key Tools Toolbar Filter—Use this to determine what is displayed in the Controller window and the Key window. See Filters (page 2–541). To customize the Track view quad menu: 1. On the Customize menu choose Customize User Interface. 2. On the Customize User Interface dialog, click Move Keys—Moves keys freely both horizontally and vertically on the function curve graph. See Move Keys (page 2–558). the Quad tab. 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. Move Keys—Horizontal—Moves keys only horizontally on the function curve graph. See Move Keys (page 2–558). Move Keys — Vertical—Moves keys constrained vertically on the function curve graph. See Move Keys (page 2–558). Track View Toolbars Curve Editor Toolbars 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 (page 2–558). 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. 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 (page 2–559). Scale Values—Proportionally increases or decreases the values of the keys, rather than moving the keys in time. See Scale Values (page 2–581). Add Keys—Creates keys on existing curves on the function curve graph or Dope Sheet. See Add Keys (Dope Sheet) (page 2–560). 535 536 Chapter 12: Animation Draw Curves—Use this to draw new curves, or revise existing ones by sketching directly on the function curve graph. See Draw Curves (page 2–582). Set Tangents to Linear—Sets key tangency to linear in, linear out, or both in and out, depending on your choice from the flyout. of keys in a track. See Reduce Keys (page 2–572). Set Tangents to Smooth—Sets key tangency to smooth. Use this to even up discontinuous motion. Key Tangency Toolbar Curves Toolbar Reduce Keys—Use this to reduce the amount 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 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. 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 (page 2–555). 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 (page 2–554). 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 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 (page 2–551) and Create Out of Range Keys Utility (page 2–562). 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 (page 2–531). Curve Editor Toolbars Show Tangents—Hides or displays tangent handles on the curves. Use this to hide the handles on individual curves. See Show Tangents (page 2–582). 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 (page 2–531). 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 (page 2–583). 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. toggles the X button of the Animation Workbench Toolbar (page 2–1014). 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 (page 2–1014). 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 (page 2–1014). 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 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 (page 2–1014). 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 (page 2–588) for details. Note: If multiple objects are selected, the Hierarchy 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 (page 2–1014). Default=on. Show Biped X Curves—Toggles the X axis of the current animation or position curves. Also 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 (page 2–589) for details. 537 538 Chapter 12: Animation Tip: You can use commas (,) to include multiple names in your selection. Dope Sheet Toolbars Main toolbar > Curve Editor (Open) > Modes menu > Dope Sheet > Dope Sheet toolbar 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 (page 2–590) for details. You can edit track set lists via the Edit Track Set button, which opens the Track Sets Editor dialog (page 2–591). 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 (page 2–588). 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. 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 (page 2–554). Edit Ranges—Displays a Dope Sheet Editor mode that shows the keyed tracks as range bars. See Edit Ranges (page 2–573). Filter—Use this to determine what is displayed in the Controller window and the Dope Sheet - Key window. See Filters (page 2–541). 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 (page 2–558). 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) (page 2–560). 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 (page 2–559). Dope Sheet Toolbars Time: Dope Sheet Toolbar Display: 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 (page 2–566). 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 (page 2–555). 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 (page 2–567). Reverse Time—Reverses the keys on selected tracks within a selected time segment. See Reverse Time (page 2–569). Scale Time—Scales the keys within a selected time segment for selected tracks. See Scale Time (page 2–570) 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 (page 2–570). Cut Time—Deletes time selections from the selected tracks. See Cut Time (page 2–567). Copy Time—Duplicates the selected time selection so it will be available for pasting. See Copy Time (page 2–568). Paste Time—Adds cut or copied time selections into the selected tracks. See Paste Time (page 2–568). 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 (page 2–554). 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 (page 2–531). 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 (page 2–528). 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 (page 2–529). Name: Track View Toolbar 539 540 Chapter 12: Animation 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 Editors menu > Saved Track View submenu. Also available in Curve Editor mode. Navigation—Track View provides tools to pan Track Selection Toolbar Key Stats 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 (page 2–588) for details. Note: If multiple objects are selected, the Hierarchy list zoom is based on an alphabetical sorting. 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 (page 2–588). Key Stats—Track View provides tools for the display and type-in transform of key values. Also available in Curve Editor mode. Controller Toolbar 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 (page 2–589) for details. Main toolbar > Curve Editor (Open) > Right-click the starting area of a toolbar (containing two vertical bars). > Show Toolbars > Controllers : Animation Editor names in your selection. 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. Track Set List—Allows you to assign a name to the All of these commands are always available via the Track View Controller menu. Tip: You can use commas (,) to include multiple 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 (page 2–590) for details. You can edit track set lists via the Edit Track Set button, which opens the Track Sets Editor dialog (page 2–591). Navigation Toolbar Filters—Click to display the Filters dialog (page 2–542), which you can use to control what Track View displays in the Controller and Key windows. 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. Ranges: Dope Sheet Toolbar 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. 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. Procedure 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. 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. 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. 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 This toolbar, hidden by default, provides tools you use when working with ranges. Edit Ranges—Changes Dope Sheet to display range bars rather than tracks of keys. See Edit Ranges (page 2–573). Graph Editors menu > Track View - Curve Editor/Track View - Dope Sheet > Track View menu > Display > Filters Filters lets you determine which categories of items appear in Track View. When you click the Filters button, Track View’s Filters dialog (page 2–542) is displayed. 541 542 Chapter 12: Animation 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 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. This dialog also controls function curve display and transform display for Position, Rotation, Scale, and X, Y, and Z axes individually. Procedure Editor or Dope Sheet. To choose filter options: Track View opens with the selected object at the top of the Track View Hierarchy. • On the Track View toolbar, click Filters. • Choose any of the filter options from the dialog. To display the animated transform tracks for an object in Track V iew: Interface 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 (page 2–542). Show group The Show group has options to display any of the following in the Hierarchy list window: • Hierarchy • Objects • Space Warp Bindings Filters Dialog (Track View) • Transforms (Position, Rotation, Scale, X/Y/Z/W axes in any combination) • Modified Objects • Base Objects • Controller Types (off by default) 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 • Note Tracks • Visibility Tracks • Sound • Materials/Maps • Material/Parameters • Static Values • Global Tracks: non-object tracks All—Sets all Show check boxes to on. 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 is on. None—Sets all Show check boxes to off. Invert—Reverses the state of all Show check boxes. Hide by Controller Type group 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. 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. 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. 543 544 Chapter 12: 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 (page 2–326) enabled, displays only the active layer, along with all nested controllers. Newly available in Customize User Interface (page 3–792) are actions and icons for all six Show Only options. Find them in the Track View group; their names all start with “Filter”. Tip: Hide by Category group 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. 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 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. Paste Controller • 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. 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. 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 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 (page 2–544). Interface 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—Pastes an item from the Track View clipboard. 545 546 Chapter 12: Animation The Paste dialog contains the following options: Constraints and Controllers Copy/Instance—Determines whether the cloned 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. 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. 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. 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. 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 (page 2–393): 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 (page 2–309): Animates a parameter or object using a sound file. Bezier Controller (page 2–310): Smoothes function curves between transform keys, giving the effect of continuous, natural movement. The Bezier Assign Controller controller is the default controller for position and scale. a Transform controller, this is now a rotation controller. Barycentric Morph Controller (page 2–309): Applied during the creation of a morph object. Each morph key represents a series of weights for all morph targets. Master Point Controller (page 2–346): Automatically assigned when animating vertices, control points, or vectors in sub-object mode. This controller simplifies managing potentially hundreds of tracks in Track View. Block Controller (page 2–313): 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. Motion Capture Controller (page 2–347): Controls and records an object’s motion or parameter using an external device. Supported devices are mouse, keyboard, MIDI device, and joystick. Color RGB Controller (page 2–317) (Point 3 XYZ Controller): Creates separate tracks for red, green, and blue. Noise Controller (page 2–353): Generates random values, which you can see as peaks and valleys in the function curve. Euler XYZ Rotation Controller (page 2–318): 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. On/Off Controller (page 2–355): Provides on and off control. Expression Controller (page 2–320): Mathematical expressions control object parameters such as length, width, and height, or transform and modifier values, such as position coordinates. IK Controller (page 2–440): 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 (page 2–341): Makes the function curves between each of the keyframes into straight lines. List Controller (page 2–342): Combines controllers. Link Constraint (page 2–403): Animates the transfer of hierarchical links from one object to another. You can, for example, have the same object passed from object to object. LookAt Constraint (page 2–406): Forces that object to constantly look at another. Formerly Boolean Controller (page 2–316): An improved version of the On/Off Controller that allows for adding keys without disrupting the existing keyframing. Path Constraint (page 2–398): Assigns a spline as a trajectory (path) for an object so that the object follows the path. Position XYZ Controller (page 2–356): Splits the X, Y, and Z components into three separate tracks. PRS Transform Controller (page 2–357): Creates subcontrollers for position, rotation, and scale. Reaction Controller (page 2–358): 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 (page 2–371): Provides separate scale tracks for the X, Y, and Z axes. Script Controller (page 2–372): Controls objects and parameters with the 3ds Max scripting language. 547 548 Chapter 12: Animation Spring Controller (page 2–375): Adds secondary dynamics effects to any point or object position. Interface Smooth Rotation Controller (page 2–374): Creates smooth rotations. Surface Constraint (page 2–396): Positions an object along the surface of another object. TCB Controller (page 2–377): Provides Tension, Continuity, and Bias controls for the function curves between keys. Transform Script Controller (page 2–379): Provides scripted PRS control for objects. Waveform Controller (page 2–381): A float controller that provides regular, periodic waveforms. For example, blinking lights and rhythmic object motion. XRef Controller (page 2–383): Lets you externally reference any type of Transform controller from another scene file. Procedure 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. 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 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. Procedure To delete a deletable controller: 1. In the Controller window, select a deletable controller. 2. 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 (page 3–828) to change it). However, controller tracks from older scenes are set to Respect Animation Range (page 2–550) to maintain their original behavior. Procedure 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. 4. The Noise Controller dialog opens. Keep the current settings and close the dialog. On the Track View Controllers menu, choose Delete Controller. 5. Select the sphere, and then right-click it. From The controller is deleted. 6. Expand the hierarchy items in the Controller 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. the quad menu, choose Dope Sheet. window until you find the sphere’s Position track. 7. Drag the track’s range bar until it starts at frame 10. 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 8. Play the animation. Because Ignore Animation Range is on by default, the sphere moves randomly even before entering the track’s animation range. 549 550 Chapter 12: Animation Respect Animation Range Track View - Dope sheet > Select a Controller track > Controller menu > Ignore Animation Range 9. Play the animation. 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 (page 2–549) is the default setting (turn off the Override Parametric Controller Range By Default option in the Animation Preferences (page 3–828) to change it), controller tracks from older scenes are set to this setting to maintain their original behavior. Procedure 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. 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. 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. 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. Parameter Curve Out-of-Range Types Procedure To convert an instanced controller to a unique one: 2. In the Curve Editor select the track you want to loop. 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. 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 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 type by using the Track View Utilities > Create Out of Range Keys. Procedure To use Parameter Out-of-Range Types to create a loop: 1. Create a Box primitive on the left side of the Front viewport. 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 (page 2–562), 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. 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. 551 552 Chapter 12: Animation Interface 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. 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. 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. Remove Note Track Procedures To add a note track: 1. On the Track View Dope Sheet toolbar, click Edit Keys. 2. Highlight one or more item labels in the to the right of the note key. You should type a short one- or 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. 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 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. 553 554 Chapter 12: Animation Procedure To delete a note track from items: 1. Highlight one or more note tracks in the Hierarchy list. 2. From the Tracks menu, choose Note Track > Remove. 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 Procedures Editing Keys Topics in this section relate to editing animation keys in Track View. The topics are: Edit Keys (page 2–554) Snap Frames (page 2–554) To turn on Edit Keys mode, do one of the following: • If you are in Curve Editor, choose Modes > Dope Sheet. • If you are in Dope Sheet > Ranges, click Edit Keys on the Track View toolbar. Lock Selection (page 2–555) To delete keys in Edit Keys mode: Align to Cursor (page 2–556) 1. Highlight the keys in the Key window. Add Visibility Track (page 2–556) 2. Press DELETE on the keyboard to delete the selected keys. Move Keys (Dope Sheet) (page 2–558) Slide Keys (page 2–558) Scale Keys - Time (page 2–559) Add Keys (Dope Sheet) (page 2–560) Properties (Track View Key Window) (page 2–560) 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 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. Lock Selection 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. Use Move Keys or Scale Keys to 4. 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 Subframe keys moved with snap frame off 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. Procedure To use Snap Frames: Snap Frames is on by default, so the following procedure only applies if you have turned off snap frames previously. 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 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 (page 3–872) must be on. Procedure To use Lock Selection in Track View: 1. In either Dope Sheet or Curve Editor Key 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. 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. 555 556 Chapter 12: Animation 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. Procedure 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. 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. 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. Add Visibility Track 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 (page 1–1253) 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. the interpolation to step for sudden visibility, rather than gradual fades. 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. Turn on Auto Key. 2. 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. 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 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. 557 558 Chapter 12: Animation Move Keys (Dope Sheet) Slide Keys Track View > Highlight keys in the Key window. > Track View toolbar > Slide Keys 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. 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. Procedure 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. 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. 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. Procedure To slide a selection of keys: 1. Click Slide Keys on the Track View toolbar. 2. Highlight one or more keys. Scale Keys - Time 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. 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. Procedure 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. 4. Highlight another group of keys. 2. Drag the time slider to the time you want to use as the scale center. 3. 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. 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. 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. 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. • 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. 559 560 Chapter 12: Animation 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 (page 3–960) 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. 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. Procedure To add keys in Track View: On the Track View toolbar, click Add 1. 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. 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. 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 (page 2–304). 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 (page 2–353), displays a Properties dialog. You change the values in the Properties dialog to modify the behavior of the controller over its entire range. 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 Track View Utilities 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: • Highlight the track and then choose Controller menu > Properties. • 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. • Create Out of Range Keys (page 2–562): Creates keys in the out-of-range time of a track, when the Out of Range type is something other than 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 (page 2–563): 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 (page 2–564): Displays a dialog with controls to remove gimbal flipping from animated tracks using Euler rotation. • Soft Selection Settings Manager (page 2–525): 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 (page 2–565): 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. Procedure To select a Track View utility: 1. Open Curve Editor, and then from the Utilities Available Utilities • Randomize Keys (page 2–562): Applies random offset values to Time or Value of selected keys or selected time. menu, choose Track View Utilities. 2. In the Track View Utilities dialog, choose from the available utilities, and click OK. 561 562 Chapter 12: Animation 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. Procedure 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. 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. - —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 (page 2–566), 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. 5. Click Apply. Interface 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. Select Keys By Time Utility In Curve Editor mode, you must select the curve as well as the track. Procedure To use Create Out of Range Keys: 1. In the Track View Controller window, select the Position track of an animated object. 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 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. 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. Use any curve type except Constant (the default). Samples—Specifies the number of keys to be 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. 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. 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. 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. Interface 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. Time Range group Sets the time after the range for generating keys. For example, if your range of keyed animation is This utility works in Curve Editor and Dope Sheet Edit Keys modes. 563 564 Chapter 12: Animation Procedure 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. Interface Start Time—Specifies the start range for selecting keys. End Time—Specifies the end range for selecting keys. 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 (page 2–318) 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 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. The Start Time and End Time spinners are activated to match the current time selection. Procedure Clear Previous Selection—Clears all keys before 1. Select an object animated with Euler rotation 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. To use Euler Filter: (page 2–318). 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. Current Value Editor 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. 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. 6. Change the parameters as necessary, and then click OK. Procedure The utility adjusts the rotation keys to removed gimbal flipping. To use the Current Value Editor to apply an incremental change: Interface 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. Start/End Time—The range over which the filtering should occur. Default=current animation range. Interface 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 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— 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. 565 566 Chapter 12: Animation X, Y, Z—Use these fields to input numbers for relative or absolute value editing. Exclude Right End Point (page 2–571) Reduce Keys (page 2–572) Procedure To edit time: 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. Edit Time Mode Controls In Edit Time mode you can perform the following tasks for one or more tracks: Select Time (page 2–566) 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. Delete Time (page 2–567) Cut Time (page 2–567), Copy Time (page 2–568), Paste Time (page 2–568) Select Time Reverse Time (page 2–569) Track View > Dope Sheet > Time menu > Select Time Insert Time (page 2–570) Track View > Dope Sheet > Time: Dope Sheet toolbar > Select Time button Scale Time (page 2–570) Exclude Left End Point (page 2–570) With Select Time you can specify a block of time by dragging in the Key window. You can then apply Delete Time any of the following operations to the highlighted block (and any keys contained therein): • Delete Time (page 2–567) • Cut Time (page 2–567) Delete Time Track View > Dope Sheet > Specify a time block. > Time: Dope Sheet toolbar > Delete Time button • Copy Time (page 2–568) • Reverse Time (page 2–569) 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. • Insert Time (page 2–570) Note: The deleted block is not copied to the • Scale Time (page 2–570) clipboard. • Paste Time (page 2–568) • Exclude Left End Point (page 2–570) • Exclude Right End Point (page 2–571) • Reduce Keys (page 2–572) Procedure 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. Procedure 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. 3. 2. On the toolbar, click the Select Time button. Use Select Time (page 2–566) 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. 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. After specifying a time range, you can perform other time- and key- related operations. 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 the clipboard. After specifying a block of time, place it in the clipboard with Cut Time or Copy Time (page 2–568). 567 568 Chapter 12: Animation Procedure 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 (page 2–566) to specify a block of time. 3. Click Cut Time, or, from the Time menu, choose Cut Time. 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 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. > 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: 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. Procedure • 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. 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 (page 2–566) to specify a block of time. 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. Reverse Time 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 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. Procedure To paste time into tracks: 1. In Dope Sheet mode, after using Cut Time (page 2–567) or Copy Time (page 2–568), highlight one or more item labels in the Controller window to specify tracks for pasting. 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. 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 2. Use Select Time (page 2–566) to specify a block of time. 3. Click the Paste Time button on the Time: Track View toolbar. 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. The Paste Track dialog opens. Procedure 4. In the Paste Track dialog, choose Paste Absolute or Paste Relative, and then click OK. 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. Use Select Time (page 2–566) to specify a block of time. 569 570 Chapter 12: Animation 3. 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. slider as the scale origin reference; it always scales from the first frame of the key selection. Procedure To scale time: 1. Insert Time Track View > Dope Sheet > Time: Dope Sheet toolbar > Insert Time button 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. 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. Procedure 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. 4. Move your cursor over the active time block in the Key window. The cursor changes to show you when you can scale. 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 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 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 Exclude Right End Point 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 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. doesn’t appear in the Dope Sheet Editor. You’ll find a method for displaying it in the following procedure. The time, including keys, is pasted. 9. Play your animation to observe the effect. Procedure 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 (page 2–566) to specify a block of time. 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. 4. 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. Note: By default, the Extras: Dope Sheet toolbar The Exclude Left End Point and Exclude Right End Point buttons appear. doesn’t appear in the Dope Sheet Editor. You’ll find a method for displaying it in the following procedure. On the Track View toolbar, click Exclude Left End Point. Procedure On the Track View toolbar, click Copy 5. 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. Time. The selection is copied to the clipboard, minus the first frame. 6. Click to define an insertion point in the keys window. 2. Use Select Time (page 2–566) to specify a block of time. 571 572 Chapter 12: Animation 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. On the Track View toolbar, click Copy 5. 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. 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 (page 3–792). Procedure 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 Edit Ranges want to reduce. Alternatively, in Dope Sheet mode, highlight specific tracks and then use Select Time (page 2–566) 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. • 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. You can use any of the above methods to specify different ranges for different highlighted tracks. 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. 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. Tip: It will take repeated experimentation to find Note: You cannot access individual key values in exactly the right threshold for your particular animation. this mode. Interface 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 (page 2–574) Reduce Keys—Displays the Reduce Keys dialog. Recouple Ranges (page 2–574) Threshold—Sets a threshold value. Higher values Procedure will result in fewer keys. To drag the ranges of an object and all of its linked descendants: OK—Accepts the Threshold setting and reduces keys as follows: • Keys are reduced only in highlighted tracks. 1. On the Track View toolbar, click Edit Ranges. 573 574 Chapter 12: Animation 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. 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. 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. 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. Procedure 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. Position Ranges 2. Track View > Dope Sheet > Ranges: Dope Sheet toolbar > Position Ranges On the Track View toolbar, click Position Ranges. 3. In the Track View Key window, drag the entire Position Ranges mode allows you to position range bars independently from their associated keys and produce special effects. 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. 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. Using Out-of-Range types (page 2–551) 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. 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 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 Copying and Pasting Items Sheet toolbar and choose Show Toolbars > Ranges: Dope Sheet. Save your layout after you do. Procedure 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 4. 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. list to select tracks to be recoupled. • Map Parameters containing the parameters for a specific map type. On the Track View toolbar, click Recouple Ranges. • Objects, on levels below the transforms, containing creation parameters for an unmodified object. The range bars for the selected tracks are positioned to match up with the first and last keys in their track. 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: • 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 (page 2–292). 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. 575 576 Chapter 12: Animation • When pasting items, you can choose to make an instance or a copy of the pasted item. • You cannot copy/paste actively linked objects. Replace All Instances—Controls whether existing instances of the target item are also converted to the paste source or left as they are. Copying Items Making Instances Unique 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. You can convert instanced items to unique items by clicking Make Unique (page 2–550) 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. Pasting Items Copying and Pasting Objects 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. 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. You can use Paste as follows: 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. • 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 Using these two container types, you can copy geometry between objects. independent copy. The target item will have no connection to the copied source item. To copy one object to other objects: Instance—Pastes the item in the clipboard as an 1. In the Curve Editor controller window, find the 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. 2. Navigate to the Object track that is beneath object that you want to copy from. the Transform or Modified Object entries. The name will be something like Object Making Instance and Reference Controllers and Objects Unique (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). 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, • 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: highlight it, and then right-click and choose Paste. Set options in the Paste dialog, then click OK. • Copy modifiers within the modifier stack of a single object. The object is replaced with the new one in the viewport as well as in the Hierarchy list of the controller window. 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. Warning: The original target has been completely replaced by the pasted object. Use Save Selected (page 3–392) on the target object to save a copy of that object, if you think you’ll need to use it again sometime. • Copy modifiers between objects. Making Instance and Reference Controllers and Objects Unique 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 (page 3–392)). • 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. 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. 577 578 Chapter 12: Animation • 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 (page 1–494). 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. 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 (page 2–535) and menus, include the following: Move Keys (Curve Editor) (page 2–579) Scale Keys (page 2–580) Slide Keys (page 2–558) Scale Values (page 2–581) Add Keys (Curve Editor) (page 2–581) Draw Curves (page 2–582) Reduce Keys (page 2–572) Move Keys (Curve Editor) Show All Tangents (page 2–531) Procedure Show Tangents (page 2–582) To display function curves: Lock Tangents (page 2–583) Apply Ease Curve / Apply Multiplier Curve (page 2–584) Remove Ease/Multiplier Curve (page 2–585) On/Off (Curves) (page 2–585) Ease Curve Out-of-Range Types (page 2–585) Multiplier Curve Out-of-Range Types (page 2–586) Freeze Non-Selected Curves (page 2–587) Bezier Tangent Handles 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. 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. 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. 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. 579 580 Chapter 12: Animation Procedure To move a selection of keys: 1. In the Hierarchy list, highlight one or more Scale Keys tracks. Track View > Curve Editor or Dope Sheet > Track View toolbar > Scale Keys Only keys in highlighted tracks appear in the Key window. Track View > Curve Editor or Dope Sheet > Keys menu > Scale Keys - Time 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. 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. Procedure To scale a selection of keys horizontally: Interface 1. Right-click an animated object and choose Curve Editor. Move Keys—Moves keys in both horizontal and vertical axes, to change both timing and values. 2. In the Hierarchy list, highlight a track. 3. Scrub the time slider (page 3–701) to the frame to use as the scale center. Move Keys Horizontal—Constrains movement to the horizontal axis, to change timing. Move Keys Vertical—Constrains movement to the vertical axis, to change values. On the Track View toolbar, click Scale 4. 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. Scale Values • Drag past the time slider location to reverse the keys’ order and expand the keys away from the current time. Add Keys (Curve Editor) Track View > Curve Editor > Track View toolbar > Add Keys Track View > Curve Editor > Keys menu > Add Keys Scale Values Main Track View > Curve Editor > Track View toolbar > Scale Values Track View > Curve Editor > Keys menu> Scale Values 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. 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 (page 2–506) 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 (page 2–570) instead. Tip: You can move an existing key while in Add Keys mode simply by dragging it. Note: Scale Values is not available in Dope Sheet mode. Adding Keys to a Multicurve Controller Procedure The value of each key is set by one of the following conditions: To scale key values: 1. Select an object in the viewport, then right-click and choose Curve Editor. then highlight the keys you want to scale. • Keys added before the first or after the last key on the curve receive the same value as the nearest key. On the Curve Editor toolbar, click Scale Values. • You can change a key value and/or time while adding it by dragging after clicking the curve. The orange Scale Values Origin line appears at the 0 location on the vertical scale. Procedure 2. Highlight one or more tracks, if necessary, and 3. • Keys added between keys receive the interpolated value shown by the function curve at that location. 4. Drag the Scale Values Origin line to where you want to scale values from or to. To add keys to a function curve: 1. In the Hierarchy list, highlight a track. 5. Drag any highlighted key vertically to scale all of them. Tip: If you use Lock Selection (page 2–555) after highlighting the keys, you can drag anywhere in the Key window to create the scale operation. On the Track View toolbar, click Add 2. Keys. 3. Click the function curve (Curve Editor) where you want to add the key. 581 582 Chapter 12: Animation 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. 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. 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. Procedure 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 (page 2–572) keys. • 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 Lock Tangents 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 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 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. By holding down the Shift key, you can edit the tangents handles separately. 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. Lock Tangents Track View > Curve Editor > Select keys on curves. > Curves: Track View Toolbar > Lock Tangents 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. 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. 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. Procedure 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. 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. Click Lock Tangents to set one of the following modes: • Off: Dragging a tangent handle affects only the single key displaying the handle. 583 584 Chapter 12: Animation • On: Dragging a tangent handle affects both handles of all selected keys. Procedure To apply an ease curve or a multiplier curve: 1. In the Curve Editor Hierarchy list, highlight the 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. • 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. 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. 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 Remove Ease/Multiplier Curve curve, you can edit its keys, ranges, and properties, as with any other animation track. 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. 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. Procedure 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. 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 (page 3–932). Ease and multiplier curves use the same out-of-range types as other controller tracks. See Parameter Curve Out-of-Range Types (page 2–551). You will usually want to use the same out-of-range type for an ease curve that you use for its superior function curve. Tip: You can use On/Off (Curves) (page 2–585) to turn off the ease or multiplier affect without removing the curve. Procedure To set the out-of-range type for an ease curve: 1. Highlight one or more ease curve items in the 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. Procedure 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. 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. 585 586 Chapter 12: Animation Interface 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. 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. 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. 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 (page 3–978). 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. Procedure 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. Freeze Non-Selected Curves • Click the right arrow button below an out-of-range type to apply it to only the outgoing curve of the multiplier curve. Interface 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. 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: 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. • 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. Procedure 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. 587 588 Chapter 12: Animation 4. In the Hierarchy list, click the X Position track icon. Now only the red X Position curve is visible. Navigation: Track View toolbar 5. From the Display menu, choose Show Non-Selected Curves. Track Selection: Track View Toolbar The other two curves reappear, and are editable. Zoom Selected Object (page 2–588) 6. From the Display menu, choose Freeze Non-Selected Curves. The Y Position and Z Position curves remain visible, but display as dashed lines. 7. Position the mouse cursor over a vertex on the Select By Name (Track View) (page 2–589) Track Sets List (page 2–590) Track Sets Editor Dialog (page 2–591) Y Position or Z Position curve. Key Stats: Track View Toolbar The cursor doesn’t change to a crosshair, indicating that you can’t modify the vertex. Key Time Display (page 2–594) 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. Value Display (page 2–594) Show Selected Key Statistics (page 2–595) Navigation: Track View Toolbar Pan (Track View) (page 2–595) Zoom Horizontal Extents (page 2–595) Zoom Value Extents (page 2–596) Zoom Track View Key Window (page 2–596) Status Bar/View Controls Zoom Region (Track View) (page 2–597) 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. Zoom Selected Object Track Selection: Track View toolbar Use Zoom Selected Object to place the currently selected object at the top of the Hierarchy list in the controller window. Key Stats: Track View toolbar 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 With Track View already open to navigate to a particular object, select the object in the viewport. > Navigation: Track View toolbar > Zoom Selected Object Select By Name (Track View) 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. Procedure To place the selected object at the top of the Hierarchy list: 1. Select an object in the viewports. 2. Open Track View, and then click Zoom Selected Object. Select By Name using wildcard The object is placed at the top of the Hierarchy list. Notes 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. • 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: Select By Name ( Track View) Track View > Curve Editor or Dope Sheet > Track Selection: Track View toolbar > Select By Name field 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" 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. • 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. 589 590 Chapter 12: Animation Example: To highlight and display Position tracks for three objects: choosing the name of the respective track set from the list. 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. Track Sets List You can also create and edit track sets with the Track Sets Editor dialog (page 2–591). 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. Using Key Filters with Track Sets If you are animating track sets using Key Filters in Set Key mode (page 3–718), the filters dictate which track set members are keyable, because they take precedence over track sets. Example: To highlight multiple tracks using comma-separated name selections: 1. Create a box. 2. On the main toolbar, click Curve Editor (Open). 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. Only the track set members specified in the Key Filters list are keyable. Procedures To assign a name to a track set: Track Sets List Track View > Track Selection toolbar 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 (page 2–535). You can assign a name to the current track selection, and then later reselect those tracks by 3. Enter a name for your track set. The name can contain any standard ASCII characters, Track Sets Editor Dialog including letters, numerals, symbols, punctuation, and spaces. Note: Names are case-sensitive. Track Sets Editor Dialog Curve Editor Track Selection toolbar > Edit Track Set 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. 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 The Track Sets Editor dialog is a modeless dialog (page 3–973) 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 in the list. Track Sets List (page 2–590) The track set members are added to the current track selection. Procedures 4. Press and hold Alt , and then click a name (either the same or another) in the list. To create a track set from selected tracks: 1. In the Track View Controller window, highlight tracks to group as a track set. The track set members are subtracted from the current track selection. 2. Click Edit Track Set. To edit track sets; 3. • On the Track View toolbar, click Edit Track Set to display the Track Sets Editor dialog (page 2–591). In the Track Sets Editor dialog, click Create A New Track Set. 591 592 Chapter 12: Animation 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. 4. Expand the new track set. 1. Create two track sets each containing tracks. Make sure one track is common to both track sets. A new track set appears containing your selected tracks. 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. 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. 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. 3. Highlight another track set member and click Select The Current Track Or Track Set In The Track View. The respective track in the Controller window is highlighted. Track Sets Editor Dialog Interface 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 V iew Selection To The Current Track Set—Combines a highlighted track from the Controller window to the current track set. 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 (page 3–951) 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. 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. 593 594 Chapter 12: Animation Key Time Display Track View > Curve Editor or Dope Sheet > Key Stats: Track View toolbar > Key Time Display (field on left) Selected keys are incremented by 10 frames. Value Display Track View > Curve Editor or Dope Sheet > Key Stats: Track View toolbar > Value Display (field on right) 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 (page 2–320) 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 (page 3–725) > 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 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. 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. 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. To move keys ahead 10 frames: 1. In the Track View Key window, highlight keys. 2. In the Key Time field, type 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 Show Selected Key Statistics Track View > Curve Editor > Key Stats: Track View toolbar > Show Selected Key Stats 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). 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.) Procedure To pan in the Key window: 1. Procedure On the Navigation: Track View toolbar, click Pan. 2. Position the mouse cursor over the Key window, and then press and drag to pan. 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. Zoom Horizontal Extents Track View > Curve Editor or Dope Sheet > Navigation: Track View toolbar > Zoom Horizontal Extents 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. 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 (page 3–904), and use Zoom Horizontal Extents Keys to show all keys, including those outside the active time segment. Procedure To display the active time segment in the Key window: • On the Track View status bar, select Zoom Horizontal Extents. 595 596 Chapter 12: Animation The active time segment (lighter background color) is centered in the Key window. 2. Interface The Key window scales vertically to display the function curves. Zoom Horizontal Extents—Adjusts the 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. magnification of the Track View Key window horizontally so that all of the active time segment is visible at once. 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. On the Track View status bar, click Zoom Value Extents. To zoom to the height of the keyframes that are currently visible: 1. In the Hierarchy list, highlight the tracks to display. 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. Zoom Region (Track View) Note: All three zoom modes work in Curve Editor, but only Zoom and Zoom Time work in Dope Sheet. Tip: If you have a three-button 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. Procedure To zoom in on time: 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. Procedure 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. Your view of time expands horizontally in the Key window. 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. 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. 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 Zoom Time—Zooms the contents of the Key window horizontally. Graph Editors menu > Track View > New Track View New Track View opens a new, untitled Track View (page 2–501) window. A scene in 3ds Max can have up to 13 Track View windows. You can choose 597 598 Chapter 12: Animation these by name from the Graph Editors > Saved Track Views (page 2–599) submenu. New Track View is disabled if the scene already has 13 Track View windows. Delete Track View Dialog Graph Editors menu > Delete Track View You can name a Track View window by typing in the editable field at the right end of the Track View toolbar. The Delete Track View dialog lets you delete one or more stored Track View (page 2–501) windows by choosing their names from a list. Procedures Procedure To create a new Track View window: To delete a Track View window: • Click Track View > New Track View. 1. Choose Track View > Delete 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. 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. Interface 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 (page 2–598), which lets you delete one or more stored Track View windows (page 2–501). Procedure 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. Drag a selection, use Shift +click to select additional adjacent Track View windows, or Ctrl +click to toggle a selection. Saved Track Views 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. It is different from saved Track View layouts, which are recalled by right-clicking the toolbar and choosing Load layout. A customized Track View user interface: 1. Toolbar docked left 2. Menu bar Saved Track View windows are saved with the MAX file. Procedure 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. 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 (page 2–603) 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 599 600 Chapter 12: Animation show the menu bar, scroll bars, the controller and keys windows, and the time ruler. The Curve Editor toolbars that you can display or hide, dock or float, from the right-click menu include the following: 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. • 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 (page 2–599) submenu. This option is also available in Dope Sheet mode. 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. • 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. Navigation toolbar—Use these tools to pan (page 2–595) and zoom the Key window (page 2–596), or zoom to the extents of the time (page 2–595) or the values (page 2–596). This option is available in both Track View modes. 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. • Key Stats toolbar—Track View provides tools for the display and type-in transform of key values (page 2–594). This option is also available in Dope Sheet mode. • Time Ruler Key Tangents toolbar—Track View gives you quick access to different tangency types of keys (page 2–536). This toolbar is most useful when floating near the curves. This option is also available in Dope Sheet mode. 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 (page 2–535) for quick access to tools. • Controllers—Track View has tools to copy, paste, Track View Customization assign, delete, and make controllers unique (page 2–540). This option is also available in Dope Sheet mode. • above for the Curve Editor, you can also choose to display the following: Track Selection—Track View gives you tools to select • Keys—Dope Sheet displays the tools to move, add, and scale keys (page 2–538), the Filters button (page 2–541), and the buttons that let you choose between Edit Keys (page 2–554) and Edit Ranges (page 2–573) options for Dope Sheet. tracks by typing in the name of an object (page 2–588). This option is also available in Dope Sheet mode. • Keys—Track View provides the tools to move (page 2–579), scale (page 2–580), and slide keys (page 2–558), scale values (page 2–581), add keys (page 2–581), draw curves (page 2–582), and reduce keys (page 2–572). 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 (page 2–538) with different and fewer controls. • Time—Track View provides tools to select and work with time (page 2–539). Time can be selected, inserted, cut, copied, pasted, scaled, reversed, or removed. This toolbar works only in Dope Sheet mode. • • Curves—Track View provides tools to select and lock keys and curve handles (page 2–536), as well as to make tracks keyable (page 2–531), and to apply parameter curve out-of-range types (page 2–551). • 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. Ranges—Here are the tools to edit (page 2–573), position (page 2–574), and recouple ranges (page 2–574). • Display—Dope Sheet holds tools to modify subtree (page 2–528) and modify child keys (page 2–529), lock selection (page 2–555), snap frames (page 2–554), and display keyable icons (page 2–531). Soft Selection Toolbar Dope Sheet Toolbars There are 11 toolbars that can be displayed when in Dope Sheet mode. In addition to the ones listed Both the Curve Editor and Dope Sheet Edit Keys mode take advantage of soft selection of keys. If 601 602 Chapter 12: Animation you choose Keys menu > Use Soft Select, then choose Soft Selection Settings (page 2–525), 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 (page 2–602). 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. 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 \Program Files\Autodesk\3ds Max 9\ui\ folder, locate the file trackview.bak. 2. Copy the file and rename the copy trackview.ini. 3. In Windows Explorer or My Computer, Procedures right-click and choose Properties. Make sure the Attributes is not set to Read-only. To save a Track View layout: Tip: You can also right-click the Track View 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. 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 V iew layout: 1. From the Customize menu, choose Customize User Interface. 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. 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]. Track View Toolbar Right-Click Menu 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 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: (page 2–602). • 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—Lets you choose which toolbars you want to display or hide. Note: Some toolbars are hidden by default. 603 604 Chapter 12: Animation Motion Mixer The Motion Mixer allows you to combine motion data for biped and non-biped objects. 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 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 (page 3–1023) to the mixer, each holding a separate series of motion clips (BIP files (page 3–916), 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. Using the Motion Mixer (page 2–604) Motion Mixer Interface (page 2–628) Using the Motion Mixer The Motion Mixer allows you to mix motion files (BIP (page 3–916) and XAF (page 3–476) files) for any biped or non-biped objects. These motion files are also called clips. Using the Motion Mixer 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 (page 3–1023). 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 (page 2–936). 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. 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 (page 3–1027). Transitions in the Mixer are similar to those used in the motion flow system (page 2–1026). 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 (page 2–616). • 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 (page 3–973) (flattening all tracks into one track). See Exporting Animation to the Biped (page 2–624). • You can change the weight (page 2–619) of clips or tracks so they affect the animation more at some times than others. See Adjusting Track Weight (page 2–619). • You can use only the part of a clip’s motion that affects specified body parts. See Filtering Mixer Tracks (page 2–612). • 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 (page 2–622). 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. • 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 605 606 Chapter 12: Animation 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 (page 2–1026) 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. Opening the Motion Mixer You open the Mixer by either clicking the Mixer button on the Motion panel > Biped Apps rollout (page 2–935) or choosing Motion Mixer from the Graph Editors menu (page 3–682). When you open the Mixer while a biped is selected, a trackgroup (page 3–1024), a clip track, and a balance track (page 3–914) 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 (page 2–935), 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 (page 2–607). Adding Tracks to the Mixer 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. To display the Motion Mixer in a viewport: 1. Trackgroup 1. Activate the viewport in which you want to 2. Clip track 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 (page 3–1023). 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 (page 3–1024), a clip track, and a balance track (page 3–914) are assigned to that biped. If a non-biped object is selected, the Mixer opens empty. 3. Balance track This section discusses clip tracks. To learn about trackgroups, see Filtering Mixer Tracks (page 2–612). For information on the balance track, see Adjusting Track Weight (page 2–619). 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 607 608 Chapter 12: Animation 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 (page 2–1034) between clips. To add a biped to the Motion Mixer: Transition track Each biped in the Mixer is automatically given a balance track (page 3–914), used for adjusting balance between clips in Layer and Transition tracks. Clips cannot be added to the balance track. 1. 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. 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. On the Motion Mixer toolbar, click Add Biped. 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. 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. 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 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 (page 2–626), a storage area for BIP and XAF files. • Import motion from another biped in the scene. See Working with Clips in the Mixer (page 2–611). • 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 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 (page 2–936). Importing XAF Files Non-biped object assets are loaded into the Mixer using the Load XML Animation File dialog (page 3–474), 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 (page 3–478) 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 (page 2–649) 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. 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 (page 2–920). For more information of XAF files, see Saving and Loading Animation (page 3–472). Other information can appear on the clip, such as the start and end frames, and the clip scale (page 2–615). 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 (page 2–651). You can use the same clip numerous times in the Mixer. Each version of the clip displays the name 609 610 Chapter 12: Animation 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 (page 3–958) or an adaptation (page 3–905) 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 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 (page 2–607). 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 (page 2–626). 1. Highlight a blank area of the track into which you want to bring the motion(s). 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. Working with Clips in the Mixer To import clips from a motion flow script: • Clone clips. Motion flow scripts can be imported to a track in the Mixer. Both clips and transitions from the script are imported to the track. • Slide all clips in time on a 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 (page 2–1030). 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. • 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. 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. 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: 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. 1. Select the biped for which you want to see the 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. current motion from the Motion Mixer. 2. Click Move Clips on the Motion Mixer toolbar. Click Mixer Mode on the Biped rollout. 3. Play the animation or drag the time slider to see the motion in viewports. To move a clip to another track: 1. 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. Click Slide Clips on the Motion Mixer toolbar. 2. Move one clip on a track to slide all clips on the track. 611 612 Chapter 12: Animation To replace one clip with another: 1. Place a clip in the track using any method. 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. 2. Select the clips you want to replace with biped 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 (page 3–958) (versions of the clip on same-sized bipeds) or adaptations (page 3–905) (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 (page 3–905) 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. motion from the scene. 3. From the Motion Mixer menu, choose Clips > Load Source > From Biped. The Copy Biped Animation to Clip dialog (page 2–629) 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 (page 3–1024). 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. 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. • Filter each trackgroup (set it to use some body parts but not all), and name the trackgroup Filtering Mixer Tracks appropriately. This is accomplished with the Trackgroup Filter dialogs (biped and non-biped objects). The Trackgroup Filter dialog for biped objects. 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 (page 2–619). 613 614 Chapter 12: Animation 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. Trackgroups for Spine, Legs and Arms. The Arms trackgroup has two tracks. The Trackgroup Filter dialog appears. By default, all body parts are selected. 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. 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. 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. Adjusting Clip Timing 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 (page 2–651). As you choose options, the Motion Mixer display is changed interactively. Tip: Procedures To change the length of a clip without changing its speed: 1. 5. Click OK to close the dialog. The new trackgroup name appears at the upper left of the track display. 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: On the Motion Mixer toolbar, click Trim Clips. 2. Drag either end of a clip to trim its length. A gray bar appears on a trimmed end of a motion clip. 3. Turn off Trim Clips. The gray area disappears. • 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 (page 2–620). Tip: At any time, you can view original clip lengths in gray by turning on Trim Clips. 615 616 Chapter 12: Animation To remove scaling or trimming from a clip in the Motion Mixer, select the clip, right-click and choose Remove Scale/Trim. 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. To learn how to create a transition track, see Adding Tracks to the Mixer (page 2–607). If you want to make a less linear blend between clips than the blend created by a transition, see Adjusting Track Weight (page 2–619). 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. Working with Transitions When two or more clips are placed on a transition track (page 3–1027), you can create transitions between any two clips. A transition creates a constant, gradual change from one clip to another. 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. Clips and transitions on Transition track. Transitions are shown as dark areas between clips. Working with Transitions Transitions extending into areas where clips don’t overlap can create unpredictable results. 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 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. 617 618 Chapter 12: Animation 2. Create the transition with this timing. You can also optimize the transition to fine-tune it. 5. Optimize the transition. 3. Change the transition focus. Procedures 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) (page 2–636). 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 (page 3–973) to correct these problems. See Exporting Animation to the Biped (page 2–624). 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. 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 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 (page 2–641) appears. 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. Adjusting Track Weight 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: Adjusting Track Weight Each track has one or more weight curves (page 3–1033) 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. 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 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 (page 3–1027), which can only create a full transition between two clips. Weight curves are useful for: • Creating transitions between two tracks in a trackgroup. Transition Focus from the list. • Creating random motion. 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. • Experimenting with transitions quickly and easily. 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 (page 2–624). 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 (page 2–651). 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 619 620 Chapter 12: Animation 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 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. Procedure To adjust a weight curve: 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. 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 1. Open the Mixer, add a biped to the Mixer, and create two tracks for a trackgroup. See Filtering Mixer Tracks (page 2–612). 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. 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 Adding Time Warps number you noted in step 2 of the previous procedure. 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. 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. 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. 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 (page 2–607). 2. Scrub the time slider to find a motion you 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. 5. Move the cursor over the clip’s horizontal center line until an arrow cursor appears. 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 6. At the approximate original time, click the clip to set a time warp bar. 621 622 Chapter 12: Animation 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. 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. Note: You cannot move one time warp’s top bar past another on the clip. 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 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. 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. Adjusting Biped Balance in the Mixer 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, available from the Mix menu. Bipeds with same set of upper and lower body motions. Biped on the left has balance compensation, biped on the right does not. Note: Balance Curves and related parameters are 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. Procedures 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. not available for non-biped mixes. 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 (page 2–612). 2. Filter one trackgroup to use motion only from the spine, arms and head. See Filtering Mixer Tracks (page 2–612). 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 (page 2–609). 5. Add a clip with very different lower body motion to the lower body track. Balance track 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 (page 2–651). Tip: 6. Click the Balance Weight Mode button at the far right of the balance track. 623 624 Chapter 12: Animation 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. The weight curve becomes visible at the top of the balance track. 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. 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 (page 2–619). 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. 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 (page 2–936) to display the mix on the biped, and simply render the scene. Exporting Animation to the Biped • If transitions between different foot/leg motions have created small pops or jerks near the transition area, you will want to create a mixdown (page 3–973) 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 (page 3–973) 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 (page 2–651) can help correct these problems. To access this dialog, click Preferences on the Motion Mixer toolbar. 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 (page 2–651). 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 (page 2–616). 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. 625 626 Chapter 12: Animation 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. 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. Using the Reservoir The Reservoir serves as a storage facility for motion clips (page 3–975) (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. 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. 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. The Motion Mixer can apply multiple adaptations (page 3–905) (occurrences of the clip for different-sized bipeds) to different bipeds. In the Reservoir, the various clip adaptations are listed under the clip name. Using the Reservoir 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: 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. 1. Choose between Max Clips and Biped Clips. 2. 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. Note: The preview window is available only for BIP files. 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. 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 On the Reservoir toolbar, click the New Entry button. 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. 627 628 Chapter 12: Animation 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 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. 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. Motion Mixer User Interface Select a biped. > Motion panel > Biped Apps rollout > Mixer Graph Editors menu > Motion Mixer... 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. Optionally turn on Reset Names After Saving. 3. Click Save to save the specified items. 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 (page 3–1023) for each object in a scene. To each track you add clips (page 3–975) in the form of BIP or XAF files. You can also add transitions (page 3–1027) to smoothly link clips together. Clips and transitions can be filtered (page 3–939) 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 (page 3–972). 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 (page 3–973). For more information and procedures describing how to use the Motion Mixer, see Using the Motion Mixer (page 2–604) and the topics that follow it. Motion Mixer Menus 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. The Motion Mixer interface contains the following: Edit Max Mix Object—Opens the Edit Max Mix • The Motion Mixer menu bar (page 2–629), with five menus. 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 (page 2–642) with the exception of the Bake Removed Nodes option. • The Motion Mixer toolbar (page 2–642), containing button-activated commands for adding bipeds, transitions, and other settings for creating a mix. • The Motion Mixer editor (page 2–646), 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. See also Using the Motion Mixer (page 2–604) Motion Mixer Menus Select a biped. > Motion panel > Biped Apps rollout > Mixer 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 (page 3–1024) 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. Graph Editors menu > Motion Mixer... The Motion Mixer interface contains five menus located at the top of Motion Mixer window. Interface Balance Parameters...—Opens the Balance Parameters dialog. These values influence the effects of balance compensation on the biped’s 629 630 Chapter 12: Animation pelvis and spine when you use different motions on the upper and lower parts of the biped. See Adjusting Biped Balance in the Mixer (page 2–622). 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. Save Mix File—Opens a dialog where you can save the current object’s mix (page 3–972) to a MIX file. The following Mixdown-related tools are available only for biped object mixes. Compute Mixdown—Performs a mixdown (page 3–973) 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 (page 3–972) instead. 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 (page 2–624). Delete Mixdown—Removes the mixdown from the mix of the selected biped(s). In order for this setting to affect spine rotation, the lower body motion must have some spine animation as part of the motion clip. The next three menu options are mutually exclusive; only one can be turned on at a time. 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. 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. Delete—Clears the selected object(s) from the Mixer. Load Mix File—Opens a dialog where you can select a MIX file (page 3–973) to load into the Mixer. Copy Mixdown to Biped—Copies animation from Effect Raw Mix—When this option is turned on, Mixer mode is turned on for the biped. Default=active. Motion Mixer Menus 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) (page 2–645), Trackgroup Filter Dialog (Biped Object) (page 2–645), or Filtering Mixer Tracks (page 2–612). 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. The Trackgroup Filter dialog for biped object mixes. Add Transition Track—Adds a Transition track at the top of the selected trackgroups. Transition tracks hold clips that are mixed with transitions. 631 632 Chapter 12: Animation Clips in Transition tracks will automatically spawn transitions when they overlap. should be resaved. Until the BIP file is resaved, it will not display in the Motion Preview. Delete All Clips—Clears the selected trackgroups of all clips and transitions. New Clips > From Reservoir—Opens a Reservoir Files dialog where you can choose one or more BIP or XAF files listed in the Reservoir. 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. 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. 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 (page 3–972). 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 (page 3–1027) containing all the clips and transitions in the script. Note: This dialog is available only for biped object mixes. 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. Optimize All Transitions—All transitions on the Clips menu track are optimized. 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. 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 (page 2–649). Note: If you choose a BIP file that is older, you will receive a warning that the file is obsolete and 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 (page 2–620). Motion Mixer Menus Remove Time Warp—Removes the ability for clips not in Mixer or any other mode. This option is available only when a single clip is selected. to be Time Warped and removes any existing Time Warping from selected clips. Note: This dialog is available only for biped object Tile V iew—Tiles the selected clip along the width of mixes. 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. Collapse—Saves a collapsed version of the selected 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 (page 2–634) is displayed. Load Source > From Biped—Opens the Copy Biped Animation To Clip dialog (page 2–635), where you can choose a biped from which to copy animation to selected clips. Note: This tool is available only for biped object mixes. Load Source > From Reservoir—Opens the Reservoir File Groups dialog (page 2–635), 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 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) (page 2–636) or the Mixer Transition Editor dialog (Non-Biped Object) (page 2–638), based on the kind of mix the transition is applied to. The dialogs are similar to the Transition Editor (page 2–1051) 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 633 634 Chapter 12: Animation before you created the loopable clip. If you tile the loopable clip after you create it, it should loop perfectly. Interface Note: This dialog is available only for biped object mixes. 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 (page 2–632). The new clip you choose replaces the selected clips. You also have the option of replacing instances (page 3–958) and adaptations (page 3–905) of selected clips. Load Animation Into:— • The selected clips only—Replaces only the selected clip with the newly 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). 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. Copy Biped Animation to Clip Dialog 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 (page 2–632) The animation from the biped replaces the selected clips. Note: This dialog is available only for biped object mixes. Interface bipeds of the same size) with the clip selected from the Reservoir. • All instances and adaptations—Replaces any occurrence (adaptation (page 3–905)) 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. • 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 (page 2–620) 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... 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 (page 3–958) of the clip (any occurrence of the selected clip within tracks for the same biped, or other The Reservoir File Groups dialog opens when you select clips and choose Load Source > From Reservoir on the Clips menu (page 2–632). 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 (page 2–649). 635 636 Chapter 12: Animation Interface 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 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 (page 3–958) 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. The Mixer Transition Editor controls transitions (page 3–1027) on transition tracks (page 3–1027). 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 (page 2–1051). Interface • All instances and adaptations—Replaces any occurrence (adaptation (page 3–905)) 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. Length—Sets the number of frames for the duration of the transition. Remove Weights—Removes any existing weight Transitions are calculated by matching velocities in both clips. Smooth out abrupt velocity changes using longer transitions. curves from clips selected to be replaced. Ease In—Ease-in value for the source clip. Mixer Transition Editor Dialog (Biped Object) 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. • 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. 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 (page 2–641). 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. 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—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 637 638 Chapter 12: Animation 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. 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. 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. 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 (page 3–1027) on transition tracks (page 3–1027). 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 • 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. Mixer Transition Editor Dialog (Non-Biped Object) Interface If Fixed is chosen for both the source and destination clips, the transition is a gradual interpolation from one frozen pose to another. 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. Length—Sets the number of frames for the duration of the transition. In some cases, you might want to use velocity blending for a child object. Transitions are calculated by matching velocities in both clips. Smooth out abrupt velocity changes using longer transitions. By default, the Transition Editor uses no velocity blend objects. Ease In—Ease-in value for the source clip. Important: If you use velocity blending, pick your blend objects before you optimize the transition. Ease Out—Ease-out value for the destination clip. Source Clip and Destination Clip groups Velocity Nodes list—Lists the objects you have chosen for velocity blending. The following options let you set different parameters proper to both source and destination clips involved in the transition. Select Velocity Nodes—Click to display a Pick Nodes dialog (page 2–641) and choose the objects to velocity blend. 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. Delete Velocity Nodes—Click to delete the highlighted objects from the list. • 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. 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. 639 640 Chapter 12: Animation 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. 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 Velocity Nodes—Click to delete the highlighted objects from the list. Set Other Transition Velocity Nodes—Copies the set of velocity sub-blend objects to all other transitions in the current track. The spinner value lets you specify an additional angle to add to the yaw. 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 Velocity Nodes—Click to display a Pick Nodes dialog (page 2–641) and choose the objects to sub-blend. 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. 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 (page 2–641). 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. Pick Nodes Dialog (Motion Mixer) OK—Confirms the current settings and closes the dialog. Node list—Lists all the available objects. All—Selects all objects in the list. None—Selects no objects in the list. 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 one of the Select Velocity Nodes buttons. This dialog appears when you pick nodes for velocity blending or sub-blending. If you click the Select Velocity Nodes button associated with the Velocity Blends list, the list displays only the objects being mixed in the current transition track. If you click the Select Velocity Nodes button associated with the Sub-Blends list, the list displays only the objects being mixed in the current transition track, except those objects that are already velocity blends. 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 (page 1–83). Choosing a set from this list selects its members in the Node list. Interface 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. Search field—To find an object in the list, enter the object’s name and then press Enter . 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. 641 642 Chapter 12: Animation Optimized transitions compute for minimum foot sliding over the range of the transition. This method of determining transitions yields very high quality results. After—Set a frame value to search after the existing transition. Motion Mixer Toolbar Interface 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. Interface Preferred Transition Length—Specify the preferred length of the optimized transition. 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. 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. This dialog is comparable to the Select Objects dialog (page 1–78). 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. Motion Mixer Toolbar 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. 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. 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 a clip, you can use both the Frame and Offset fields to tell you how many more or fewer frames the clip will have. 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. 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 (page 2–615). 643 644 Chapter 12: Animation 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 (page 2–620). 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. 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 (page 2–651), where you can change display settings for clips, transitions, and frames. Reservoir—Opens the Reservoir dialog (page 2–649). 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 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 (page 2–646). To find out how to use weight curves, see Adjusting Track Weight (page 2–619). Trackgroup Filter Dialog (Biped Object) See also Adding Tracks to the Mixer (page 2–607) Using the Reservoir (page 2–626) Trackgroup Filter Dialog (Biped Object) 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 Select a biped. > Motion panel > Biped Apps rollout > Mixer > Trackgroups menu > Filter the right arm, left arm, and both hand icons. Legs—Activates the biped’s legs, comprised of the By default, the Motion Mixer expects that a mix you create will affect the entire biped. If you like, you can filter (page 2–612) 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 (page 2–612). Interface right leg, left leg, and both foot icons. 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. Trackgroup Filter Dialog (Non-Biped Object) Graph Editors menu > Motion Mixer... > Trackgroups menu > Filter 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 (page 2–629). If the biped does not include parts like ponytails or props, they are unselectable. Body By default, the Motion Mixer expects that a mix you create will affect the entire non-biped object. If you like, you can filter (page 2–612) a trackgroup so clips in the mix affect only selected body parts. This functionality makes it easy for you to assign one set of XAF files to control the motion of an 645 646 Chapter 12: Animation 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 (page 2–612). Interface Invert—Inverts the current body part selection. If everything is active, this deactivates everything, as if you clicked the None button. 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 (page 1–83). 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 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. The Motion Mixer window contains an editor where you manage everything that is added to the mix: bipeds, trackgroups, tracks, clips, and transitions. Interface All—Activates all selectable None—Deactivates all body parts. The editor contains three sections: Motion Mixer Editor • Biped/Trackgroup/Track Controls (page 2–647) • Interactive Clip Controls (page 2–647) • Weighting Controls (page 2–648) 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 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. 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. 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. 647 648 Chapter 12: Animation When Weight Mode is turned on, weights can be adjusted with a red weight curve on a clip or track. 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. 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. 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. 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. You can change the weight by moving the node or by changing the spinner value. 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 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 Reservoir you type in a weight, the weights of all nodes are changed to the new value. Interface 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 (page 2–642). 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 (page 3–914). To find out how to use Balance Weight mode, see Adjusting Biped Balance in the Mixer (page 2–622). Reservoir Select a biped. > Motion panel > Biped Apps rollout > Mixer > Reservoir Graph Editors menu > Motion Mixer... > Reservoir The Motion Mixer Reservoir (page 3–1003) is similar to the Motion Flow Graph (page 2–1045), 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 (page 3–975) to objects in the Motion Mixer window, you see them appear on a track (page 3–1023) 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. The Reservoir comprises four parts: • The Reservoir toolbar (page 2–650), where all the commands are located. You can choose between listing biped clips and non-biped clips. • The Source/Clipname list (page 2–650), where motion clips (BIP and XAF files) are listed. Instances (page 3–958) are grouped together in one listing, while adaptations (page 3–905) are listed separately. • The Clip Status field (page 2–650), where you can gather information about the clips used in the Motion Mixer. • The Motion Preview (page 2–651), 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. 649 650 Chapter 12: Animation 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. 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 (page 2–632) or by right-clicking a track, they are automatically added to the Reservoir. If the clip is a new adaptation (page 3–905), 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 (page 3–958) 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 Mixer Preferences Dialog or XAF file. Clip 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. Interface 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. See also Using the Reservoir (page 2–626) Mixer Preferences Dialog Select a biped. > Motion panel > Biped Apps rollout > Mixer > Preferences Graph Editors menu > Motion Mixer... > Preferences 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. 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. • 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. The settings on the Motion Mixer Preference dialog are saved in the biped.ini file, as well as with the MAX file. The two settings affect how transitions appear in the Motion Mixer tracks. Show / Hide Transitions group • Inpoints—Toggles the beginning transition frame on the transition clip bar. Default=On. 651 652 Chapter 12: Animation • 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. • 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) (page 3–973) . 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. Animation Utilities Interface 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 (page 3–1023) for selected parts of the biped. • Tracks—Layer tracks (page 3–961) and transition tracks (page 3–1027) where clips and transitions reside. • Clips—References to BIP animation files used in the mix. • Transitions—Connections between clips on transition tracks. • Camera Tracker Utility (page 2–667) synchronizes a background by matching the movement of a 3ds Max camera to a real camera. • Camera Tracker Utility (page 2–667) synchronizes a background by matching the movement of a 3ds Max camera to a real camera. • Dynamics Utility (page 2–686) generates animation by simulating real-world physics. • Skin Utilities (page 2–700) provide a method for copying skin data (envelopes and vertex weights) from one model to another. Follow/Bank Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Follow/Bank 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 (page 3–778), to assist in animating scenes: • Follow/Bank Utility (page 2–653) is an alternative to the Path constraint (page 2–398). • MACUtilities Utility (page 2–665) lets you convert an imported TRC motion (page 3–577) into CSM format so you can map it onto a biped. 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 653 654 Chapter 12: Animation pivot orientation in the Hierarchy > Pivot panel before using this utility. Interface 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. Procedure 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. Selected Object group 4. Click the Apply Follow button. Displays the name of the current selection. If more than one object is selected, "Multiple Selected" displays. The objects orient themselves at the start frame, and follow or bank along their trajectories. 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 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. Motion Capture Utility 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 1. In Track View, assign motion capture animation controllers to the specific tracks you want controlled by external devices. 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: generated. Mouse Input Device rollout (page 2–661) Samples—Specifies the number of rotation keys to Keyboard Input Device rollout (page 2–661) be generated in the specified range. Joystick Input Device rollout (page 2–662) Close button MIDI Device rollout (page 2–663) Close—Exits the Follow/Bank utility. Procedures To assign a Motion Capture controller to tracks: 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: 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. 655 656 Chapter 12: Animation 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. 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. 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 have three devices, one for each axis of rotation. On the other hand, a controller for the 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. Motion Capture Utility 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. 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. 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. 657 658 Chapter 12: Animation Interface 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 (page 2–659). 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 Start/Stop Trigger Setup dialog after the Record button. The recording starts when the button is released. Tracks group 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 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. 659 660 Chapter 12: Animation All—Assigns all tracks to the Record Controls group. Out is larger than the current segment, the segment is temporarily enlarged during the recording. Invert—When tracks are selected, assigns the unselected tracks to the Record Controls Area. In—Specifies the frame number where the recording begins after you click Start. None—Assigns none of the tracks to the Record Out—Specifies the frame number where the Controls group. recording ends after you click Start. You can stop the recording before this by clicking Stop. 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, 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. 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. Samples group 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 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. Motion Capture Utility 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 Key Assignment group motion drives the animation. 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. 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. 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. Envelope Graph group Keyboard Input Device rollout Lets you assign most keyboard keys to drive the animation. Displays a representation of the amplitude curve over time. 661 662 Chapter 12: Animation Envelope Parameters group Joystick Input Device rollout Specifies the time over which the envelope of the action takes effect, relative to the key pressing and release. 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. 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 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 Motion Capture Utility 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 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. output when you press the button (Spinner Value: float, -999,999 to 999,999). Joystick Buttons group Note: The items in this area are only available when Point-of-View Hat (Left-Right, Up-Down)—The 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). you select Accumulate in Joystick Axis. Sidewinder includes a mini-joystick on the tip of the main joystick. Specify the direction this joystick controls in the animation. Controller—Assigns a Rotation controller from which the direction will be derived. 1, 2, 3, 4—Specifies one of four buttons in the 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. 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 Clear—Removes the assigned controller. 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. 663 664 Chapter 12: Animation 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 Contains 16 buttons. Click to specify the channel to which your MIDI device is assigned. 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. MIDI Trigger group Note Range group Defines the type of MIDI event (message) that will drive the motion. There are four options. Low Note/High Note—Set these to specify the low MIDI Channel group 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 and high ends of the note range when the Note option under MIDI Trigger is turned on. Parameter Scaling group Contains the Min and Max spinners, which specify the range of generated values. See Note and Velocity. MACUtilities Utility 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 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, for example. MACUtilities Utility Utilities panel > More button > MACUtilities 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. 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. MIDI Controller #—When using a different type 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. 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 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. 665 666 Chapter 12: Animation After the conversion, the resulting CSM file is saved in this folder. Interface 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. 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. 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. Camera Tracker Utility 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. 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. 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 (page 2–670) Camera Tracker: Movie Window (page 2–671) Camera Tracker: Motion Trackers Rollout (page 2–673) convert multiple TRC files. Camera Tracker: Movie Stepper Rollout (page 2–676) Use TRC Filename—When off, you can customize Camera Tracker: Batch Track Rollout (page 2–678) 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. Camera Tracker: Error Thresholds Rollout (page 2–677) Tip: Use this option to save time when you need to Translation Offset group Camera Tracker: Position Data Rollout (page 2–679) Enable—Turn on to add an offset to the resulting Camera Tracker: Match Move Rollout (page 2–680) 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: Move Smoothing Rollout (page 2–682) Camera Tracker: Object Pinning Rollout (page 2–683) For additional information on using the Camera Tracker Utility see: Requirements for Camera Tracking (page 2–669) Camera Tracker: Troubleshooting (page 2–685) Procedure To generate a camera match-move: 1. Open the working scene in 3ds Max. 667 668 Chapter 12: Animation 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. 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. 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. 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 Requirements for Camera Tracking 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 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. 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 (page 3–619) to create an IFL file. 669 670 Chapter 12: Animation • 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. 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 (page 2–673). 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 Camera Tracker: Movie Window 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. 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. Off—Disables deinterlacing. When no filtering is required click this. 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. 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. 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. 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. 671 672 Chapter 12: Animation 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 (page 2–679). 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. 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 Camera Tracker: Motion Trackers Rollout 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. 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. Interface 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. 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. 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 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 673 674 Chapter 12: Animation 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. 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. 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 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 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. Camera Tracker: Motion Trackers Rollout 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. 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. • 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 Two things happen when you select a subpixel level: Use these when a feature moves off-screen or is not visible in the Movie window. • 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 Set Start—Sets the start of the active frame range for a tracker. 675 676 Chapter 12: Animation 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. well as tracking errors. See Batch Track Rollout (page 2–678). Camera Tracker: Movie Stepper Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Movie Stepper rollout 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. 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. Interface 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 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. Camera Tracker: Error Thresholds Rollout >—Steps forward one frame or keyframe if Step Keyframes is turned on. to browse through them quickly. In this mode, feature tracking is disabled. >10—Steps forward 10 frames, either directly or Show Track—Displays a visible tracking line in one frame at a time if the Master Track Enable check box is turned on. 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. >>—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. 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. 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 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 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 677 678 Chapter 12: Animation can use this detection can be used both during a manual tracking review (see Batch Track Rollout (page 2–678)) or during actual tracking to correct errors using the Resample On Error control in the Motion Trackers setup rollout (page 2–673). Interface 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. 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. Procedure 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: Position Data Rollout Interface Error Codes Me—Match error threshold exceeded. 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. 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 Camera Tracker: Position Data Rollout Utilities panel > Utilities rollout > More button > Utilities dialog > Camera Tracker > Position Data rollout Interface 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 Apply to 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. 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. 679 680 Chapter 12: Animation Enabled Trackers—Operates on all the enabled trackers in the Motion Trackers rollout. All—Operates on all the trackers. 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. 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. Interface 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—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 Camera Tracker: Match Move Rollout press H to open the Select Objects dialog (page 1–78). 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 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. 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 Dolly—Movement along the local camera Y axis. 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 Track View or by stepping through the 3ds Max animation a frame at a time after the match. Truck-H—Movement along the local camera X axis. Generate Keyframes—Generates keyframes for the 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. 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 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 681 682 Chapter 12: Animation 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 (page 2–676). Interface 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. 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. Camera Tracker: Object Pinning Rollout 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 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. Procedure 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. 683 684 Chapter 12: Animation 6. Adjust the Pin Range, and then click the Pin button to move the object to follow the tracker. Interface 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. 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 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. 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. Camera Tracker: Troubleshooting 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. 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 Camera Tracker: Troubleshooting Feature Tracking Halts Immediately 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 If the feature tracker attempts to match the first couple of frames but halts immediately, check these steps: being tracked at the error frame and that at least two of them are a good distance out the plane of the others. 1. One of the enabled error thresholds might be 2. Check the tracker gizmos in the Movie window 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 around the frame on which the error occurs to ensure that no obvious feature tracking errors exist. 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 685 686 Chapter 12: Animation 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 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 on the sphere and solving the simulation. The result is that the sphere falls under the force of gravity. You can use dynamics objects (page 1–395), dynamics space warp deflectors (PDynaFlect (page 2–81), SDynaFlect (page 2–85), and UDynaFlect (page 2–86)), and space warp forces such as Gravity (page 2–73) and Wind (page 2–75) 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 (page 1–400) 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. Dynamics Utility 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 (page 2–1479) 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 (page 2–696) 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 (page 1–395) You can use the Spring and Damper objects for dynamics effects. • Create panel > Space Warps (page 2–55) > 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 (page 2–55) > 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. 687 688 Chapter 12: 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. 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 V iew: 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 Dynamics Utility 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). 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. 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. 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 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. 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. 689 690 Chapter 12: Animation 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 dynamics simulation, and the effect on the link of such combinations. An asterisk (*) indicates those combinations that are more typically useful. The format of this list is as follows: X=check box on. to what you want, and then click OK. O=check box off. All selected keys are reduced. One group of settings is made up of the three Move check boxes over the three Rotate check boxes. Here’s an example: 9. Save the reduced version of the scene either under a new name, or by replacing the original file. XXO=X and Y Move check boxes on, and Z off. To use linked hierarchies in a simulation: OXO=Y Rotate check box on, and X and Z off. 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 (page 2–500). 1. 1 Move Lock: Turn on any single Move. (This 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 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 Dynamics Utility 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 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. 691 692 Chapter 12: Animation 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 (page 2–700), which lets you specify which scene objects are to be included in the simulation. 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 one from the list to make it current. All remaining panel settings are specific to the current simulation. Edit Object—Displays the Edit Object dialog (page 2–696). 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. Dynamics Utility 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. 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 (page 2–700). 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 (page 2–700). 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 (page 3–390) the scene or use Hold (page 1–95) 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. 693 694 Chapter 12: Animation 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 (page 3–904) when you create a new 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. 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 (page 2–310). Alternatively, set the last 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 Dynamics Utility 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. 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. 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. 695 696 Chapter 12: Animation 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. 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. 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, Edit Object Dialog 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 (page 2–700). 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 (page 2–700). 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 697 698 Chapter 12: Animation 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. 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 (page 2–1479). 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. 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 Edit Object Dialog Density setting, the Mass value changes (when its automatic value is not overridden). vertex is given a mass of 1 gram, but the object itself has no volume. 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. 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. 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 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. 699 700 Chapter 12: Animation 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. 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 names that use wildcards. For example, searching for "sphere*" finds all objects whose names start with "sphere". 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 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 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. Skin Utilities To use Skin Utilities, you must have two meshes to which the Skin modifier (page 1–791) 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. Procedure 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 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. Interface 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. Extract Skin Data to Mesh—Extracts the skin data 5. Move the skin data mesh on top of the mesh to Note: The skin data is stored in channels. To see 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. from the selected mesh and embeds it in a new mesh named SkinData_ followed by the original object name. the data, select the SkinData_ mesh and use the Channel Info Utility (page 2–1738). 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. 701 702 Chapter 12: Animation Paste Skin Data dialog 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. 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. 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. Target Bones—Lists target bones available for Match by Name—Matches the source and target matching, and lists matches moved from the Source Bones listing with the left arrow. matching. 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. Add—Adds removed bones back to the source or Threshold—Sets the unit distance that the utility Source Bones—Lists source bones available for target list. will search for vertex or face matches. Default=1.0. Remove—Removes highlighted bones from the 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. source or target list. 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. reactor 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 (page 2–707). 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. 704 Chapter 13: reactor 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 (page 2–801), in Space Warps > reactor. Once you’ve created a reactor object, selecting the object and opening the Modify panel allows you to configure its properties. 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. There are also three reactor modifiers, used to simulate deformable bodies (page 2–777): 705 706 Chapter 13: reactor Note: The reactor menus and toolbar provide shortcuts for many of the reactor functions provided in the command panel. 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 Menu The main reactor menu is another way to access reactor functionality. Introducing Dynamics Simulation The reactor Quad Menu 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 (page 2–747) is valid if it has the correct number of objects attached to it; a Rigid Body Collection (page 2–723) 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. 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: 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. 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 Havok’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 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. 707 708 Chapter 13: reactor 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. 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. Introducing Dynamics Simulation 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. 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 • 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, 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 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 709 710 Chapter 13: reactor 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. 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. 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 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 Introducing Dynamics Simulation 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 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 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 711 712 Chapter 13: reactor 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 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 (page 2–805) and Havok 1 World/Havok 3 World Rollout (page 2–808). 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 (page 2–805) parameters are arranged for easy access. 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. You can find more details in: • reactor (page 2–703) • The reactor Utility (page 2–805) Vertex Selection Inside reactor Modifiers The reactor modifiers for deformable bodies (page 2–777): 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 (page 2–795) inside the modifier. Special Features in reactor The Car-Wheel constraint (page 2–757) 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 (page 2–750) with the Limited option lets you limit the relative rotation of the attached objects by a given degree around each axis. Cooperative Constraints reactor includes a number of cooperative constraints (page 2–735) that facilitate the simulation of articulated bodies and machinery. Using Point-Point (page 2–750) with the Stiff Spring option constrains both objects as though attached by a fixed-length bar (a very stiff spring). Fracture Object The Fracture (page 2–770) 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. The Rag Doll constraint (page 2–737) 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 (page 2–747) 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 (page 2–754) allows the simulation of translation-only joints (limited or not) like those found in robots and machinery Constraint Manipulation and Constraint Spaces Constraints (page 2–724) 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 (page 2–727), while the other constraints (those that are grouped with a Constraints Solver (page 2–736)) are referred to as Cooperative Constraints (page 2–735). 713 714 Chapter 13: reactor Support for Global Collisions In reactor, you can enable or disable collisions globally instead of inside the Rigid Body Collection (page 2–723). The software stores disabled collisions inside the reactor Utility (page 2–805). You can disable collisions not only for rigid bodies, but also for cloth, soft and rope. And you can access disabled collisions through MAXScript. In reactor, you define the effect of constraints by the specifying and manipulating two constraint spaces (page 2–725). 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. Animatable Wind You can animate most parameters in the reactor Wind (page 2–803) 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 (page 2–799) deformable constraint allows vertices in cloth, soft bodies, and rope to follow a non-rigid mesh such as skin. For more information, see Storing and Accessing Collisions (page 2–774). reactor Helpers Soft Selection for Cloth/Soft/Rope The deformable (page 2–777) (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 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 (page 2–806). Also, the ragdoll script (page 2–818) 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 Floating Rigid Body Property Editor Create panel > Helpers > reactor In reactor you can change the rigid body properties (page 2–716), like mass, elasticity or friction without having to use the reactor Utility (page 2–805). You can open a floating MAXScript window to modify rigid body properties from the reactor menus, quad menus, and toolbars at any time. reactor menu > Create Object This topic simply provides links to the various helper objects that are part of the reactor system. 715 716 Chapter 13: reactor Interface Toy Car (page 2–766) Wind (page 2–803) Rigid Bodies Rigid Body Collection (page 2–723) Constraint Solver (page 2–736) Point-Point Constraint (page 2–750) Point-Path Constraint (page 2–762) Hinge Constraint (page 2–747) Rag Doll Constraint (page 2–737) Car-Wheel Constraint (page 2–757) Prismatic Constraint (page 2–754) Linear Dashpot (page 2–730) Angular Dashpot (page 2–732) Cloth Collection (page 2–781) Deforming Mesh Collection (page 2–794) 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 bodies. You can also restrict the possible movement of your rigid bodies in the simulation using constraints such as hinges and springs. Soft Body Collection (page 2–788) This chapter shows you how to create and work with rigid bodies in reactor. It includes the following topics: Fracture (page 2–770) Rigid Body Basics (page 2–717) Motor (page 2–765) Rigid Body Collection (page 2–723) Plane (page 2–764) Constraints (page 2–724) Rope Collection (page 2–792) Spring (page 2–727) Rigid Body Basics Plane (page 2–764) Motor (page 2–765) Rigid Body Properties Toy Car (page 2–766) Utility panel > reactor > Properties Fracture (page 2–770) Menu bar > reactor > Open Property Editor Storing and Accessing Collisions (page 2–774) reactor toolbar > Open Property Editor button To find out how to simulate objects that change their shape over time, see Deformable Bodies (page 2–777). 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 (page 2–722). 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 (page 2–723); you can edit its rigid body properties before or after you do this. This section tells you how to: Edit rigid body properties (page 2–717), including • physical properties (page 2–718) • simulation geometry (page 2–719) • display properties (page 2–722) 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. 717 718 Chapter 13: reactor Interface Physical Properties 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, 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 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 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 (page 2–774). 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 Rigid Body Properties 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 is enabled. Default=0.05. 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—Low-importance objects used for adding visual quality. • Moving—Regular objects that populate the world, such as furniture, etc. • Critical—Essential objects that are never allowed to interpenetrate. • Bullet—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 (page 2–815) 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 (page 2–722) section. 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. 719 720 Chapter 13: reactor 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. 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. 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 Note: If you are using a standard 3ds Max plane as a rigid body (as opposed to the special reactor Plane (page 2–764) object), you must set its simulation geometry to Concave Mesh. 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. 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. 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. Not Shared—This option is active only when multiple objects with different Simulation Geometry settings are selected, and cannot be chosen by the user. 721 722 Chapter 13: reactor 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 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 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 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. To create a compound 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. 1. With the compound rigid body selected, 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. 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: 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 (page 1–78) 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 Rigid Body Collection 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 Menu bar > 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 (page 2–717) 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. 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. Interface RB Collection Properties rollout 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. 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. Highlight—Cause the objects in the Rigid Bodies list to display momentarily in the viewports as if selected. 723 724 Chapter 13: reactor Rigid Bodies—Lists the names of the objects in the Rigid Body Collection. Pick—Lets you add an object to the Rigid Body connected using simple constraints (page 2–727) like springs or dashpots, because those kind of systems can easily become unstable. 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. Reset Default Values—Sets values for the collection to their defaults. In this instance, it sets the ODE Solver back to its default value. 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. Constraints 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. 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 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 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 (page 2–725) Simple Constraints (page 2–727), which includes the following topics: • Spring (page 2–727) • Linear Dashpot (page 2–730) Constraint Concepts • Angular Dashpot (page 2–732) Cooperative Constraints (page 2–735), which includes the following topics: • Constraint Solver (page 2–736) • Rag Doll Constraint (page 2–737) • Hinge (page 2–747) • Point to Point (page 2–750) • Prismatic (page 2–754) • Car-Wheel (page 2–757) • Point to Path (page 2–762) 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 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 (page 2–747) 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 (page 2–727) constraint to simulate the effect of a spring (translation is limited to a certain length); or a Point-Path (page 2–762) 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 (page 2–737) or Hinge (page 2–747)). 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 (page 2–735) and are usually more stable, although they can be slightly slower to simulate. The other constraints, Simple Constrains (page 2–727), 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 (page 2–750) constraint to the much more complicated Rag Doll (page 2–737) constraint. For example, with a Point-Point constraint, the constrained objects 725 726 Chapter 13: reactor 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 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 (page 2–726) 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. 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 Simple Constraints 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. Simple Constraints The simple constraints provided with reactor are: • Spring (page 2–727) • Linear Dashpot (page 2–730) • Angular Dashpot (page 2–732) Unlike cooperative constraints, the simple constraint does not require you to add it to a Constraint Solver (page 2–736) 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 Menu bar > 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. Procedures To create a spring: • Choose one of the above options, and then click in any viewport to add the Spring. 727 728 Chapter 13: reactor 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 (page 2–817) topic. 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 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 (page 2–726) section. To change the attachment positions for the bodies: Interface 1. With the Spring constraint selected, open the Modifier Stack 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. 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. Spring 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, 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 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. 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 (page 2–726) 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 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 of the spring settles down. It governs the forces applied to the connected bodies due to the relative velocities of their connection points. Valid 729 730 Chapter 13: reactor damping values are those greater than or equal to 0.0. The default damping value is 1.0. positions relative to each other. The bodies are still free to rotate around the attachment point. Tip: Typically, a Damping value of 1/10th of the stiffness yields good results. 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. 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 Procedures simulation. To create a Linear Dashpot: Reset Default Values—Click this to set Stiffness, • Choose one of the above options, and then click in any viewport to add the dashpot. Rest Length, Damping, Act On Extension, and Act On Compression to their respective default values. Note: The icon’s position has no effect on the constraint’s behavior. Linear Dashpot Create panel > Helpers > reactor > L Dashpot Menu bar > reactor > Create Object > Linear Dashpot 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 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. To create the constraint and attach objects in a single step: • See the Scripts (page 2–817) topic. To change the attachment positions for the bodies: 1. With the dashpot selected, open the Modify panel. Linear Dashpot 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 (page 2–726) section. 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. Properties rollout 731 732 Chapter 13: reactor Parent—When on, the dashpot has two bodies Allow Interpenetration—When on, collisions are 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. disabled between the dashpot’s objects, so that they can pass through each other during the simulation. Defaults=off. 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. 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. 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 (page 2–726) 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. 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. Angular Dashpot Create panel > Helpers > reactor > A Dashpot Menu bar > 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 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 Angular Dashpot 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, world rotation that the dashpot works to align the Child Space with. 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 (page 2–726) section. Interface Modifier Stack 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 (page 2–817) 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 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. 733 734 Chapter 13: reactor 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 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 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 (page 2–726) 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. 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. 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. 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 Cooperative constraints are more stable than simple constraints (page 2–727), 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 (page 2–736). 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 (page 2–747) • Point-Point constraint (page 2–750) 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. • Point-Path constraint (page 2–762) • Car-Wheel constraint (page 2–757) • Prismatic constraint (page 2–754) • Rag Doll constraint (page 2–737) 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 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. 735 736 Chapter 13: reactor Constraint Solver should contain the rigid bodies for the constraints in the solver. Create panel > Helpers > reactor > CSolver To add constraints to a solver: Menu bar > reactor > Create Object > Constraint Solver 1. Create a Constraint Solver and some reactor toolbar > Create Constraint Solver button cooperative constraints to add to the solver. 2. Add constraints to the solver using either (or The Constraint Solver acts as a container for the cooperative constraints (page 2–735) in a particular Rigid Body Collection (page 2–723), 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. 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 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. Rag Doll Constraint Interface Properties rollout cursor changes from an arrow to a cross and you can select the object to add it to the solver. 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 (page 2–808). Disabled—When on, disables all the constraints in this solver. Reset Default Values—Sets Deactivation Threshold and Disabled to their respective default values. 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 Rag Doll Constraint Create panel > Helpers > reactor > Ragdoll Menu bar > 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. 737 738 Chapter 13: reactor • 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 (page 2–743). reactor simulates a Rag Doll constraint if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver (page 2–736). When not selected, invalid rag dolls are red in the viewport. 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 (page 2–742). 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. • 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. To find out how to create an example character quickly using the Rag Doll constraint, see Scripts (page 2–817). 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. Rag Doll Constraint 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. 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. 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 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. To create the constraint and attach objects in a single step: • See the Scripts (page 2–817) 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. 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. 739 740 Chapter 13: reactor 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 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. 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. 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. 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. 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 (page 2–743). You can also rotate the plane independent of the twist axis. To display the plane limits, turn on Display rollout Show Plane Limits. Rag Doll Constraint 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. 741 742 Chapter 13: reactor Properties rollout 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 (page 2–726). 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 (page 2–735). 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. Parent—When on, the Rag Doll has two bodies and you can designate an object to be the parent 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 Defining Rag Doll Limits 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 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 (page 2–735). 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. 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 (page 2–737) is useful for simulating complex joints, like those found in some human and animal joints (shoulders, hips), that cannot be properly simulated by simpler 743 744 Chapter 13: reactor constraints like Hinge (page 2–747) or Point-Point (page 2–750) 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 (outward) B. Plane Axis C. Twist X Plane Axis 1. Twist Min. 2. Twist Max. 3. Twist Range A. Twist Axis B. Plane Axis C. Twist X Plane Axis (outward) 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 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: Defining Rag Doll Limits 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: A. Twist Axis B. Plane Axis (inward) C. Twist X Plane Axis A. Twist Axis 1. Cone Min. B. Plane Axis 2. Cone Max. C. Twist X Plane Axis (outward) 1. Plane 2. Plane Min. Cone 3. Plane Max. Cone 4. Plane Min. 5. Plane Max. 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 745 746 Chapter 13: reactor A. Twist Axis B. Plane Axis A. Twist Axis C. Twist X Plane Axis C. Twist x Plane Axis (outward) 1. Plane 1. Plane Min. Cone 2. Plane Min. Cone 2. Plane Max. Cone 3. 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: 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: A. Twist Axis C. Twist X Plane Axis 1. Plane Min. Cone 2. Plane Max. Cone Hinge Constraint 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 (page 2–736). 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. A. Twist Axis To attach objects to the Hinge: B. Plane Axis 1. Create the Hinge and the objects to connect C. Twist X Plane Axis Back to Rag Doll Constraint (page 2–737). Hinge Constraint Create panel > Helpers > reactor > Hinge Menu bar > 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. 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. 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. 747 748 Chapter 13: reactor To create a Hinge and attach objects in a single step: • See the Scripts (page 2–817) 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. 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. Interface Modifier Stack 5. To reset the axes to their default alignment, reattach the objects to the Hinge or click the Align Spaces To > Child Body button. To limit the rotation between the attached objects: 1. With the Hinge selected, open the Properties rollout. Parent Space—At this sub-object level, you can move and rotate the representation of the Hinge for Hinge Constraint 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. Properties rollout 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. 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. You assign the parent object by clicking this button and then selecting a rigid body from any viewport. 749 750 Chapter 13: reactor Thereafter the button displays the name of the parent body. rotate more than 5 degrees clockwise about the hinge axis relative to the parent body. Child—Displays the name of the second rigid 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. 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 (page 2–726). 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 (page 2–735). 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 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 (page 2–735). 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 Menu bar > 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. Point-Point Constraint 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. 4. If the constraint is to be two-bodied, make The constraint is simulated when it has the correct number of rigid bodies attached and is included in a valid Constraint Solver (page 2–736). When not selected, an invalid Point-Point constraint is red in the viewport. 1. With the constraint selected, open the Modify 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. 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 (page 2–817) topic. To change the attachment positions for the bodies: 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. 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. 751 752 Chapter 13: reactor 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. 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. Interface Modifier Stack 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. 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. 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. 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. Point-Point Constraint Properties rollout 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 (page 2–726). 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 (page 2–735). 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. 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 • 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 753 754 Chapter 13: reactor 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. 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. A Prismatic constraint is simulated if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver (page 2–736). 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. Note: The icon’s position has no effect on the 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 (page 2–735). 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. 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 Prismatic Constraint Create panel > Helpers > reactor > Prismatic Menu bar > 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. 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 (page 2–817) 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. Prismatic Constraint 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. 3. Change the Min Limit and Max Limit settings as necessary. Interface Modifier Stack To limit the movement of the child body along the sliding axis: 1. With the constraint selected, open the Properties rollout. 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. 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 755 756 Chapter 13: reactor 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. 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. Car-Wheel Constraint 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. 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. Breakable group Align Spaces To—Use these options to align the Breakable—When on, the constraint is breakable. bodies’ local constraint spaces. You can find out more about each option in Working With Constraint Spaces (page 2–726). 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 (page 2–735). 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 (page 2–735). 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 Limited group Menu bar > reactor > Create Object > Car-Wheel Constraint Limited—When on, limits the movement of the reactor toolbar > Create Car-Wheel Constraint button 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 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. 757 758 Chapter 13: reactor 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. To create the constraint and attach objects in a single step: A Car-Wheel constraint is simulated if it has the correct number of rigid bodies attached and is included in a valid Constraint Solver (page 2–736). When not selected, an invalid Car-Wheel constraint is red in the viewport. 2. In the modifier stack open the constraint’s 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 • See the Scripts (page 2–817) topic. To change the positions and rotations for the bodies: 1. With the constraint selected, open the Modify panel. 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 object. For example, if you move or rotate the wheel, Child Space moves with it. 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. 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. Car-Wheel Constraint 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. 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: To change the suspension limits: These controls are found in the Spin Parameters group. 1. With the car-wheel constraint selected, open 1. Set the Velocity value to the required value. 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 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. 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. 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 759 760 Chapter 13: reactor 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. Properties rollout Car-Wheel Constraint 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 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 (page 2–726). 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 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. 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 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 (page 2–735). 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 (page 2–735). Suspension Parameters group Display group Min Limit—The distance the constraint allows the Size—Lets you change the size of the constraint space display in the viewport. 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. Reset Default Values—Returns the constraint’s parameters to their default values. 761 762 Chapter 13: reactor 3. In the constraint’s Properties rollout, click the Point-Path Constraint Create panel > Helpers > reactor > Point-Path Menu bar > 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. 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 (page 2–736). When not selected, invalid constraints are red in the viewport. 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 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. 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. 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. Point-Path Constraint Interface Properties rollout Modifier Stack Parent Space—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.Child 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. 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. 763 764 Chapter 13: 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. reactor Objects 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 (page 2–726). Plane 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 (page 2–735). 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 (page 2–735). Create panel > Helpers > reactor > Plane Menu bar > reactor > Create Object > Plane 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 (page 2–719) 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 (page 2–718) and Unyielding (page 2–718) 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. 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. The reactor Plane as rendered in a viewport Motor Procedures Procedures To create a Plane: To create a motor: 1. Choose one of the above options, and then click • Choose one of the above options, and then click in any viewport to add the motor. 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. Note: The icon’s position has no effect on the motor’s behavior. To set the rigid body for the motor: 1. Create the motor and the rigid body to attach Interface Properties rollout 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. Show Normal—When on, the Plane normal is displayed as an arrow in the viewport. 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 Motor Create panel > Helpers > reactor > Motor Menu bar > 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. 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. 765 766 Chapter 13: reactor 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. 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. 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. 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. 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 Menu bar > reactor > Create Object > Toy Car reactor toolbar > Create Toy Car button To set up the rigid bodies for a Toy Car: 1. Create and position the rigid bodies you want 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. 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, and the density of the bodies should be Toy Car 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 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. 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 To change the wheel axis orientation (Common Local Orientation): 1. Ensure that the wheel and chassis local spaces are correctly aligned in world space. 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. add wheels to the toy car either by picking or using a selection list: 2. On the Toy Car Properties rollout, set Toy Car • Click the Pick button and then select the object to use as a wheel. 3. Use the radio buttons to change the Suspension • 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. Orientation to Common Local Orientation. 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. 767 768 Chapter 13: reactor Interface Wheels—Lists the names of the toy car’s wheels. Toy Car Properties rollout 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 (page 2–769) 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. 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. Toy Car Orientation group Choose how reactor orients the bodies in relation to the spin and suspension axes. Toy Car 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. • 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. Note: Animating the orientation of the Toy Car icon Reset Default Values—Returns the Toy Car has no effect on the direction of motion during the simulation; reactor uses only the orientation at the start of the simulation. parameters to their default values. 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. 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. Havok 3 Wheel Params rollout 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. These parameters replicate the Car-Wheel constraint parameters of the same names (page 2–761). 769 770 Chapter 13: reactor Fracture Create panel > Helpers > reactor > Fracture Menu bar > reactor > Create Object > Fracture reactor toolbar > Create Fracture button 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 (page 1–388). 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 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 (page 2–773) 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 Fracture explode after a single piece breaks loose. You can find these in the Fracture Tips (page 2–773) topic. Interface Properties rollout 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. 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 (page 2–817) topic. To prevent the Fracture object from exploding: • See the Fracture Tips (page 2–773) topic. Highlight—Click this button to cause the objects in the Pieces list to momentarily display as if selected. Pieces—Lists the names of the objects currently part of the Fracture object. To highlight multiple contiguous list items, click and then Shift +click. 771 772 Chapter 13: reactor To highlight multiple non-contiguous list items or remove highlighting, use Ctrl +click. this button tells reactor to ignore the times they broke off in the previous animation. Pick—Lets you add an object to the Fracture Choose the behavior for highlighted pieces: 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. • Normal—The default behavior option for a fracture piece. 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 • Unbreakable—The highlighted piece never breaks away from the Fracture object, even if it experiences an intense collision. • Keystone—If this piece breaks, then all pieces break. • 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 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. 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, Fracture Tips it breaks off from the fracture object. The size or mass of the object is not be taken into account. become separated within the time specified. To simulate an explosion effect, make this value very small and reduce the Velocity Cap value. 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. Velocity Cap—reactor won’t apply penetration recovery forces if they cause the relative velocity between two penetrating bodies to exceed the specified 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. 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. Scale Tolerance—The collision tolerance for bodies that use the penetration depth algorithm is determined by multiplying the Collision Tolerance value 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 (page 2–773) 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, 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: Separation Time—Forces are applied to penetrating bodies that are strong enough so the bodies Try one or more of the following: • Reduce the Scale Tolerance value in the Fracture Penetrations group of the reactor utility World 773 774 Chapter 13: reactor rollout. This value can be as low as –1.0, but –0.1 should suffice in most cases. This scales the Collision Tolerance (page 2–808) 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. • 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. • 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. • Increase the Separation Time value and/or decrease the Velocity Cap in the Fracture Penetrations (page 2–773) 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. • Slice up your object in a different configuration. Avoid creating very small pieces, especially if they are right next to very large pieces. • 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. 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 (page 2–810). Interface Store Collisions group Storing and Accessing Collisions Store Collisions—Use these options to store collision information when creating an animation. For each collision that occurs during the simulation, reactor can record the simulation time at which the collision occured, the objects involved, the point of collision, and the relative velocity during the collision. of objects. You can find out more about this in the Collisions Rollout (page 2–810) topic. Stored Collisions Dialog • Do not store—reactor stores no collision data. • Store once—reactor stores collision data next time an animation is created. • Always store—reactor always stores collision data when creating an animation. # 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 (page 2–775), 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 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. involving particular objects. Use the Objects button to designate those objects. • Point—The location of the collision, in world coordinates. Click this button to open the Filter Bodies In Collisions dialog (page 2–776). This allows you to select the pairs of objects whose collisions interest you. Only collisions involving those pairs of objects are stored. • Normal—The unit normal of the collision, specified from B to A. 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. Define Collision Pairs—Allows you to enable or disable collision detection between specified pairs • Speed—The relative velocity of the two objects along the specified normal direction. • Phantom—Specific information generated by phantom rigid bodies. There are three possible values: • Not Phantom—This collision wasn’t generated by a phantom rigid body. • Entering—The time the phantom rigid body started penetrating (entered) the other rigid body. 775 776 Chapter 13: reactor • 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: 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. .... Time : 4175 A : Box01 B : Teapot01 For example, take a scene containing four rigid Point : ( 3.25862 -56.7632 10.0549 ) bodies: Box01, Box02, Box03 and Box04. If Normal : ( 1.28512e-007 3.18186e-007 -1 ) Common Collisions is on, and you highlight NRV : 53.4184 Box01 and Box02 in the Bodies list, then the only Phantom : Not PhantomTime : 4415 possible pair that includes only your selected A : Phantom objects is Box01<->Box02. B : Box01 Point : ( 0 0 0 ) If you highlight Box01, Box02, and Box03, Normal : ( 0 0 0 ) then the possible pairs using these objects NRV : 0 are Box01<->Box02, Box02<->Box03, and Phantom : EnteringTime : 4495 Box01<->Box03. If highlight the same objects A : GeoSphere01 B : Box01 with Common Collisions off, then the lists also Point : ( -6.02472 18.1558 10.1478 ) include the highlighted objects paired with Normal : ( -2.48431e-006 1.51463e-006 1the)remaining objects in the collection. This NRV : 21.6887 means that the available pairs would also now Phantom : Not Phantom include Box01<->Box04, Box02<->Box04 and .... Box03<->Box04. Filter Bodies In Collisions dialog This option is selected by default. Store Collisions—Collision data is stored for any pairs of objects in this list. 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. 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 <—Moves the pairs that are highlighted in the Do Not Store list to the Store list. Deformable Bodies <<—Moves all the pairs in the Do Not Store list to the Store list. main types of deformable bodies, each of which is dealt with in its own section: OK—Closes the dialog, saving any changes. • Cloth (page 2–778), a deformable two-dimensional triangular mesh Cancel—Closes the dialog without saving your changes. • Soft Body (page 2–783), a deformable three-dimensional closed triangular mesh • Rope (page 2–789), a deformable one-dimensional chain of vertices. Deformable Bodies You can use rigid bodies (page 2–716) 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 • Deforming Mesh (page 2–793), 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 (page 2–795). Note: Deformable bodies are more complex than rigid bodies (page 2–716), 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 (page 2–796) • Keyframing Vertices (page 2–797) • Attaching Vertices to a Rigid Body (page 2–798) • Attaching Vertices to Deforming Meshes (Skin) (page 2–799) • Soft Selection (page 2–800) 777 778 Chapter 13: reactor Procedures Cloth To create a Cloth object: 1. Create the mesh object that you would like to simulate as 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 (page 2–778): Apply it to each mesh to be deformed as cloth. • Cloth Collection (page 2–781): A container for cloth objects. 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 (page 1–607) to a shape. Cloth Modifier Menu bar > 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, 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 (page 2–781). Different tessellation produces different cloth behavior. Cloth Modifier 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. Interface Modifier Stack Vertex—Allows you to select individual vertices of the cloth object to apply and modify deformable constraints (page 2–795). Cloth Properties rollout 779 780 Chapter 13: reactor • Damping—How quickly the cloth dissipates energy as it changes shape. 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 bodies (page 2–798): the higher the mass of the cloth, the less stretching induced by the rigid body. Fold Stiffness —Fold stiffness governs the cloth 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. • Uniform Model—This model adds fold stiffness uniformly across the surface of the cloth, regardless of its topology. 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—This default method is suitable for most situations. • Stiffness—The stiffness of the cloth. • Damping—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. resistance to folding. • None—By default, Cloth objects have no fold stiffness, and behave like a loose material such as silk. • Stiffness—The fold stiffness value. • 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. • Stretch—The cloth resistance to stretching. Avoid Self-Intersections—When on, the cloth will • Bend—The cloth resistance to bending. not intersect with itself during the simulation. This results in a more realistic-looking simulation, but can increase simulation time. • Shear—The cloth resistance to shearing. Cloth Collection Constrain Deformation—When on, limits the extent Constraints rollout 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. 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 (page 2–800). These options allow you to create different types of deformable constraints for the body. For more information, see Constraining Deformable Bodies (page 2–795). Reset Default Values—Resets the values for the Cloth object to their defaults. Cloth Collection Create panel > Helpers > reactor > CLCollection Menu bar > 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 (page 2–778)) in the scene to the collection. When you run the simulation, reactor examines the cloth collections in the scene, and, provided 781 782 Chapter 13: reactor that the collections are not disabled, adds the cloth objects they contain to the simulation. Interface Cloth Collection Properties rollout 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 (page 2–817) topic. 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. Soft Bodies Advanced rollout Soft Bodies Internal Steps—Because deformable objects are more complex to simulate, it is usually necessary to perform more simulation steps (page 2–709) 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 (page 2–806)) • Precision (stability) of objects in this collection=(Precision of overall simulation)x(Internal Substeps) Reset Default Values—Restores Internal Steps to its default value. Soft bodies are three-dimensional deformable bodies (page 2–777). Like Cloth (page 2–778) 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 (page 2–786) manipulate the control points in an FFD grid instead. 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 (page 2–784): Apply it to each mesh to be deformed as soft body. • FFD-based soft bodies (page 2–786): Soft bodies deformed by an FFD modifier 783 784 Chapter 13: reactor • Soft Body Collection (page 2–788): A container for soft bodies. 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, Soft Body Modifier Modify panel > Modifier List > reactor SoftBody which are described in the Interface section, following. Menu bar > reactor > Apply Modifier > Soft Body Modifier Interface reactor toolbar > Apply Soft Body Modifier button Modifier Stack 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 (page 2–786). To add a soft body to the simulation, you need to add it to a Soft Body Collection (page 2–788). 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. To edit a soft body’s physical properties: 1. Select an appropriate object in the scene. Vertex—Allows you to select individual vertices of the soft body to which to apply and modify deformable constraints (page 2–795). Soft Body Modifier Soft Body Properties rollout 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 (page 2–786). • # 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—Clears any stored keyframes for this soft body. 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 (page 2–798): 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 • 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 (page 2–800). • FFD-Based—Uses the FFD version of the Soft Body modifier. For more information about 785 786 Chapter 13: reactor FFD bodies, including descriptions of these parameters, see FFD Soft Bodies (page 2–786). FFD Soft Bodies Reset Default Values—Restores the default values for parameters in the modifier. Constraints rollout 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. These options let you create different types of deformable constraint for the body. For more information, see Constraining Deformable Bodies (page 2–795). 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. FFD Soft Bodies 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 (page 1–683) or FFD(box) (page 1–685) 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 (page 2–784) on top of the FFD modifier. • 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. 4. in the Properties rollout of the Soft Body modifier, choose FFD-Based. You can now add the body to a soft body collection (page 2–788) and simulate it as an FFD soft body. Interface Not animating the object transform can cause the FFD modifier to apply strange deformations. FFD Options Animating the object transform (turning on Animate Transform) fixes the problem. FFD-based—Specifies that you want to simulate this body as an FFD soft body. 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. 787 788 Chapter 13: reactor Soft Body Collection Create panel > Helpers > reactor > SBCollection To create the collection and add objects in a single step: • See the Scripts (page 2–817) topic. Menu bar > reactor > Create Object > Soft Body Collection Interface reactor toolbar > create Soft Body Collection button Soft Body Collection Properties rollout 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 (page 2–784). 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. 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. 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. 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. Rope Disabled—When on, the collection and in turn the bodies it contains are not added to the simulation. • Rope Modifier (page 2–789) • Rope Collection (page 2–792) Advanced rollout Rope Modifier Modify panel > Modifier List > reactor Rope Menu bar > reactor > Apply Modifier > Rope Modifier reactor toolbar > Apply Rope Modifier button 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. 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 (page 2–792) in order to be simulated. Procedures To create a rope: Rope 1. Create the spline-based shape to use to create the rope. As with all deformable bodies (page 2–777), 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 reactor Rope is a one-dimensional deformable body (page 2–777). You can use it to simulate rope, string, hair, etc. Only shapes (page 1–262) can be simulated as ropes. This section contains two topics: 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. 789 790 Chapter 13: reactor 3. Use the Properties rollout to edit the properties, Rope Properties rollout which are described in the Interface section, following. Interface Modifier Stack Vertex—Allows you to select individual vertices of the rope to apply and modify deformable constraints (page 2–795). 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 (page 2–798): the higher the mass of the rope, the less stretching induced by the rigid body. 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 Rope Modifier 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. using Update MAX. When off, the rope starts with the state it had originally, below the modifier in the stack. # 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 (page 2–800). Reset Default Values—Resets the values for this rope to their defaults. Constraints rollout • 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 These options let you create a different types of deformable constraint for the body. For more 791 792 Chapter 13: reactor information, see Constraining Deformable Bodies (page 2–795). To create the collection and add objects in a single step: • See the Scripts (page 2–817) topic. Rope Collection Create panel > Helpers > reactor > RPCollection Interface Rope Collection Properties rollout Menu bar > 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 (page 2–789) 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. 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. Deforming Meshes (Skin) Advanced rollout Deforming Meshes Internal Steps—Because deformable objects are more complex to simulate, it is usually necessary to perform more simulation steps (page 2–709) 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 (page 2–806)) • 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. 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 (page 2–716) and deformable bodies (page 2–777) 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. Unlike the other reactor deformable body types, you do not need to apply a special modifier to a 793 794 Chapter 13: reactor deforming mesh or set physical properties for it. You just have to add the shape to a Deforming Mesh Collection (page 2–794). 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 (page 2–795). Deforming Mesh Collection 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. 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. Create panel > Helpers > reactor > DMCollection To create the collection and add objects in a single step: Menu bar > reactor > Create Object > Deforming Mesh Collection • See the Scripts (page 2–817) topic. reactor toolbar > create Deforming Mesh Collection button Interface Deforming Mesh Collection Properties rollout The Deforming Mesh Collection is a reactor helper object that acts as a container for deforming meshes (page 2–793). 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) (page 2–793). 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. 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 Constraining Deformable Bodies to the collection. 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 Deformable-Body Constraints 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. 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: 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 (page 2–815) 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. • Fixing Vertices in World Space (page 2–796) • Keyframing Vertices (page 2–797) • Attaching Vertices to a Rigid Body (page 2–798) • Attaching Vertices to Deforming Meshes (Skin) (page 2–799) For information about using the Soft Selection option to smooth the transition between simulated and keyframed vertices for deformable bodies, see Soft Selection (page 2–800). 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 795 796 Chapter 13: reactor the Cloth Collection and add it to a Deforming Mesh Collection (page 2–794). You can then attach any deformable body (cloth, soft or rope) to it using the Attach to Deforming Mesh constraint (page 2–799). Procedures The procedure for each deformable constraint type is described in its own topic. Interface Constraints rollout vertices and a rigid body. The vertices follow the animation (changes in position and rotation) of the rigid body (page 2–716). Attach to DefMesh—Creates an Attach to Deforming Mesh constraint (page 2–799) between the chosen vertices and a deforming mesh. The vertices will follow the animation (deformations) of the deforming mesh (page 2–793). [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. Fix Vertices—Creates a Fix Vertices to World constraint (page 2–796) that fixes the chosen vertices to their current position in world space. Keyframe Vertices—Creates a Keyframe constraint Procedures (page 2–797) that makes the chosen vertices follow their current animation in 3ds Max. To fix points in a deformable body in world space: Attach to Rigid Body—Creates an Attach to Rigid Body constraint (page 2–798) between the chosen 1. On the Modify panel, click Vertex in the deformable body modifier’s sub-object list. Keyframing Vertices 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. 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. 797 798 Chapter 13: reactor Interface Keyframe rollout 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 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 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. 6. When finished, it’s advisable to exit the Vertex 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. sub-object level, to keep from accidentally deselecting some of the constrained vertices before simulating. Interface Attach To Rigid Body rollout 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. 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, Attaching Vertices to Deforming Meshes (Skin) 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 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. 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 The Attach To Deforming Mesh constraint allows you to fix vertices in a deformable body to a particular deforming mesh (page 2–793). This option is useful for adding physically simulated elements such as hair and clothing to an skinned character. Deformable Mesh—Displays the name of the 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. 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. 799 800 Chapter 13: reactor 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. 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 (page 2–797) 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. To deal with this, the Cloth (page 2–778), Soft Body (page 2–784), and Rope (page 2–789) modifiers have a Use Soft Selection option. The option can help smooth transitions between the keyframed and simulated vertices. 4. Select the vertices that should appear fully 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. 5. On the Soft Selection rollout, turn on Use Soft physically simulated. For instance, for a piece of cloth where the top section is keyframed, you might want only the bottom vertices to appear to be fully affected by the physical simulation. Selection. 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 (page 1–634) or Mesh Select (page 1–719). 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. Water Simulation When you run the animation, your specified falloff will be used to blend smoothly between the keyframed and simulated vertices. This section covers the following topics: • The Water Space Warp (page 2–801) • Rendering Water (page 2–803) Water Space Warp Create panel > Space Warps > reactor > Water menu bar > reactor > Create Object > Water reactor toolbar > Create Water button Water 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 (page 2–803). 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 (page 3–1014) 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. 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. 801 802 Chapter 13: reactor 3. Use the rollout to specify properties, as described in the Interface section. Interface Water Properties rollout 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 (page 2–815) 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. 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 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. Rendering Water 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 (page 2–801), 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. Interface Water WS Modifier Properties rollout 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 (page 2–801). Reset Default Values—Returns Scale Strength to its default value: 1.0. 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. Wind Create panel > Helpers > reactor > Wind menu bar > reactor > Create Object > Wind reactor toolbar > Create Wind button 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). 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, 803 804 Chapter 13: reactor 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 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. Interface Wind Properties rollout The reactor Utility 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—The regularity of ripple formation. • 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. 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. • 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 805 806 Chapter 13: reactor important, it lets you switch between the Havok 1 and Havok 3 engines. 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 (page 2–806). • About: Choose Havok 1 or Havok 3 solver • Preview and Animation (page 2–806) • Havok 1 World/Havok 3 World (page 2–808) • Collisions (page 2–810) • Display (page 2–812) • Utils (page 2–813) • Properties (page 2–815) 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. accurate. If your simulation requires only rigid bodies, you’ll generally get better results with Havok 3. Following is a more detailed list of differences: Feature Simulation Havok 1 Discrete only Supported bodies Rigid/Cloth/Soft/ Rope/Deforming Mesh/Water Havok 3 Discrete or Continuous with extra parameters Rigid only Rigid Body Properties (page 2–717) Standard Standard + Shell/Penetration/ Quality Cooperative Constraints > Breakable Constraints (page 2–735) Linear, Angular Threshold Cooperative Constraints > Strength settings (page 2–735) Strength, Tau Strength only Preview Window: display Textures, Simulation smoothing, actual geometry only geometry Preview Window: right-button drag hold Spacebar interaction during and move mouse preview Toy Car (page 2–766) 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 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 This rollout lets you run and preview your reactor simulation, as well as specifying timing parameters for the simulation. Preview & Animation Rollout Interface 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 (page 2–709). 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 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). the viewports as the animation is created. Create List/Layer—When on, creates a List controller (page 2–342) (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 (page 2–843), a new biped layer is created every time a reactor animation is generated. Preview Animation—Previews the simulated scene in the Preview Window (page 2–815). 807 808 Chapter 13: reactor 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. 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 Havok 1 World/Havok 3 World Rollout 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 (page 2–711). 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 (page 2–711). 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 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 (page 2–711). 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 (page 2–724), as it helps the constrained bodies to come to rest despite the forces applied by the constraints. • Lin—The linear damping applied by Add Drag Action. • Ang—The angular damping applied by Add Drag Action. 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 809 810 Chapter 13: reactor details, see World rollout > Fracture Penetrations group (page 2–773). 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. Collisions Rollout Utility panel > reactor > Collisions rollout 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 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. Store Collisions—See Storing and Accessing Collisions (page 2–774). Collisions Rollout Filter Before Storing—See Storing and Accessing Collisions (page 2–774). Define Collision Pairs—Opens the Define Collisions dialog (page 2–811) . 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 are part of a collection (not necessarily the same collection) and their collisions are currently enabled (the default condition). Define Collisions Dialog 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. 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 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 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. 811 812 Chapter 13: reactor Display Rollout Utility panel > reactor > Display rollout This rollout lets you specify display options for previewing (page 2–815) 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 (page 2–815). Interface 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—The near plane to be used when Use Defaults is off. • Far Plane—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 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 button. If you don’t assign a camera, the configure the spring used when you select objects with the right mouse button (Havok 1) or Spacebar (Havok 3) in the preview window (page 2–815). • Stiffness—The stiffness of the mouse spring. If the mouse spring is too strong you might be able to pull objects through each other; reactor Utilities this won’t cause errors, but it can create an undesirable state. Default=30.0. Interface • Rest Length—The rest length of the mouse spring. Default=0.0. • Damping—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 menu bar > 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. 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. 813 814 Chapter 13: reactor 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. 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 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. 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, 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 (page 2–719) before choosing a simulation geometry (page 2–719). 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 Properties Rollout Utility panel > reactor > Properties rollout reactor toolbar > Open Property Editor For details of this rollout, see Rigid Body Properties (page 2–717). 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 The Real-Time Preview Utility panel > reactor > Preview and Animation rollout > Preview Animation button Menu bar > 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. 1) or the Spacebar (Havok 3), move the mouse. 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 815 816 Chapter 13: reactor Timing Simulation menu At the bottom of the window, profiling and timing information is shown : 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. The information presented is: • The current time step (simulation step) (page 2–709) used for the simulation. This value is initially taken from the Preview & Animation rollout (page 2–806) but can also be changed by using the Performance menu (page 2–817). • The number of substeps (page 2–709) used for the simulation. Again, this value is initially taken from the Preview & Animation rollout (page 2–806) but can also be changed by using the Performance menu (page 2–817). • 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: Reset ( R )—Resets the simulation, returning objects to their initial positions. 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. Scripts 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. Scripts This section deals with some useful scripts that you can use to speed up your creation of reactor scenes. Substeps (1-100 substeps)—Choosing of these If you are interested in creating your own scripts, see the MAXScript Reference, available from the 3ds Max Help menu. options sets the number of substeps taken in every simulation step. Setup Scripts 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 : (page 2–815). 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. 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. 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 (page 2–724) types, except the Point-to-path constraint (page 2–762). 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 MAX ensure they are both selected. Update MAX—Takes the position and rotation of 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. 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 (page 2–806) 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 (page 2–812). 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. 817 818 Chapter 13: reactor 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 (page 2–727)). Collection Creation This applies to all the reactor collection types: rigid body collections (page 2–723), soft body collections (page 2–788), cloth collections (page 2–781), and rope collections (page 2–792). It also applies to the Fracture (page 2–770) and Constraint Solver (page 2–736) helpers. 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. 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 (page 2–737) and Hinge (page 2–747) 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. 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 CSolver are on, the script creates these helpers and adds the bodies and constraints to them. Scripts To turn your own humanoid figure into a constrained rag doll: 1. Create your figure using the naming conventions described in How It Works (page 2–820). Create Humanoid—Click to create the humanoid objects and add them to the scene. Constrain Humanoid rollout 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. Humanoids—Displays a list of potential humanoids Add Hands—When on, reactor creates boxes for 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. the character’s hands. Vertebra—The maximum number of Rag Doll Add Feet—When on, reactor creates boxes for the character’s feet. 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. Height—The height of humanoid to be created. Vertebra—The number of vertebra to be created in the character’s spine. Link Parts—When on, reactor links the created parts as a 3ds Max hierarchy. 819 820 Chapter 13: reactor Create RBCollection—When on, the tool creates a Rigid Body Collection (page 2–723) and places all the parts of the newly created rag doll character into it. Create CSolver—When on, the script adds a Constraint Solver (page 2–736) 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 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. 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 feet, the script creates constraints to connect the humanoid’s feet to the rest of the body. • _R_Calf Snapshot Parts—When on, the script creates a • _L_Calf 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. • _L_Thigh • _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 (page 2–737). However, the script also uses Hinges (page 2–747) 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. Frequently Asked Questions Frequently Asked Questions you can use the Point Cache modifier (page 1–758) 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 (page 2–750). The old Point-Nail constraint is equivalent to a-single bodied Point-Point constraint See also: Troubleshooting (page 2–823) 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 (page 2–806) 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. Can I apply the Cloth/Soft/Rope modifier to part of a mesh? While the Soft, Cloth, and Rope (page 2–777) modifiers apply to all the vertices, you can fix or keyframe vertices of the mesh or spline by using deformable constraints (page 2–795). 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 (page 2–786): If you have an FFD modifier applied to more than one object, you can apply a reactor Soft Body modifier (page 2–784) to any (or many) of the bodies. You should still add only one of the objects to the Soft Body Collection (page 2–788). Which parameters can I animate? Is it possible to modify the animation in Cloth/Soft/Rope/Water? Only Wind (page 2–803) parameters are animatable. 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, 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 rigid bodies. For objects that change 821 822 Chapter 13: reactor shape (deform), use deforming meshes (page 2–793) ( Note: Unyielding rigid bodies are much faster and simpler to simulate than deforming meshes. Can reactor store collisions for deformable bodies (Soft, Cloth, Rope)? No. The storing collisions (page 2–774) functionality applies only to rigid bodies. What are the limitations of Water (page 2–801) 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 (page 2–722). 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 (page 2–794). 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 (page 2–799) constraint. How can I make a rigid body not move until a collision happens? You can use the Inactive property for the rigid body. How can I animate a floating object, like a balloon? There are many alternatives you can try: • Use water (page 2–801). 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. • Use very low mass for the objects, and add wind (page 2–803) blowing in the up direction. Troubleshooting You might want to also decrease the strength of gravity. Troubleshooting • 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 (page 2–777): Check also : Frequently Asked Questions (page 2–821) General Troubleshooting Analyzing the World Whenever you get unexpected behavior from reactor, it is advisable to perform a world analysis 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 (page 2–813). Discussion Forums The Autodesk Web Forums provide you with a moderated community to discuss, learn, and share techniques and ideas with other 3D professionals. 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: • 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 (page 2–786) 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 (page 2–806) 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 (page 2–716): • For best results when using rigid bodies only, set Utilities panel > reactor > About rollout > Choose Solver to Havok 3. 823 824 Chapter 13: reactor • 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 (page 2–719) for the object. • If you are using Fracture, slowdowns can be caused by reactor trying to avoid instability. Follow some of these tips (page 2–773) to help reduce the chances of instability happening • Try decreasing the number of substeps (page 2–806) 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 (page 2–801) 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 (page 2–803). Cloth/Soft/Rope becomes unstable and explodes. • Check whether any unyielding rigid body or DefMesh (page 2–793) is forcing the Cloth/Soft/Rope into a penetration. • If you are attaching to a rigid body (page 2–798), 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 (page 2–798), use Runge-Kutta as the ODE Solver for the Rigid Body Collection (page 2–723) 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 (page 2–770), or using simple constraints (page 2–727) 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 (page 2–727) (spring, dashpots) working together, switching the ODE Solver in the Rigid Body Collection (page 2–723) to Runge-Kutta can improve the results. • Usually, increasing the number of substeps (page 2–806) 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 (page 2–724), make sure you have aligned the constraint spaces (page 2–725) properly. • If many objects start the simulation too close too each other (inside collision tolerance), 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 (page 2–810) between those bodies. • Adding drag action can help damp the overall simulation. Try increasing the linear drag in the scene. Troubleshooting • If you are working with Fracture, the Fracture Tips (page 2–773) 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 (page 2–798)) 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 (page 2–808) 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 (page 2–808)). 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 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 (page 2–810) for pairs of objects, or for the object in particular (Rigid Body Properties (page 2–717)). • If the objects are attached using deformable constraints (page 2–795), make sure you haven’t disabled collisions in the constraint parameters. • Make sure Collision Tolerance is set to a value that makes sense for the sizes of the objects. • Try increasing the number of substeps (page 2–806) in the simulation. Cloth/Soft/Rope intersects itself. Make sure you have turned on the Avoid Self-Intersections option in the modifier (page 2–777). 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 (page 2–778), Soft Body (page 2–784), or Rope (page 2–789) modifier to the object. I can’t add an object to a Rigid Body Collection. If you are using compound bodies (page 2–722), make sure the group is open, as only the group parent can be added to a Rigid Body Collection (page 2–723). 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 (page 2–722), but in order to change the properties of 825 826 Chapter 13: reactor 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 (page 2–717) 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 (page 2–717) 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 (page 2–808) deactivation or, if the object belongs to a constrained system, through the Constraint Solver (page 2–736) 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 (page 2–723) and that it has a mass (page 2–717) other than 0.0 (objects with mass 0.0 are fixed). If you are using Fracture (page 2–770), 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 (page 2–717) property for that rigid body. 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. I can’t I disable collisions between two bodies. If your objects don’t appear in the Define Collisions dialog (page 2–811), 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 (page 2–801). 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 (page 2–808)) and masses (page 2–717). 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. 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 Water doesn’t ripple enough You can either increase the Max Ripple value in the Water space warp (page 2–801), or you can scale the effect of the space warp on a particular object Troubleshooting that you’ve bound to the space warp by modifying the Scale Strength value in the Water world-space modifier (page 2–803). 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 (page 2–774) during the simulation. Collisions are stored only for rigid bodies; not for Cloth, Soft Bodies, or Rope. 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 (page 2–725) 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 (page 2–726) for more info). File size increases dramatically. • If you are using rigid bodies, try the Reduce Keys (page 2–813) utility to reduce the number of keyframes created for each rigid body. • FFD-based soft bodies (page 2–786) can also create a large number of keys in the FFD modifier (one for each vertex for each frame). Although the Reduce Keys (page 2–813) 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 (page 2–501). reactor runs out of memory during simulation. Reduce the complexity of the objects simulated: • For rigid bodies, use a simpler geometry or proxy (page 2–719) 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 (page 2–786) 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. 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 (page 2–786) to animate just a subpart of a mesh, make sure the Animate Transform 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 (page 2–786) 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 check box in the modifier to avoid those artifacts. 827 828 Chapter 13: reactor Picking objects during preview makes them go unstable. reactor complains about a no longer existing node. Try reducing the strength and damping of the mouse spring on the Display rollout (page 2–812). This can happen if you rename an object that is used as geometry or display proxy (page 2–719) 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. Objects barely move when picking during preview. Try increasing the strength and damping of the mouse spring on the Display rollout (page 2–812). 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 (page 2–812). 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 (page 2–815). 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. Check also the Rigid bodies become unstable (page 2–824) section above. There is a visible gap between rigid bodies in the simulation. Try reducing the Collision Tolerance of the simulation. 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 (page 2–717) 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 (page 2–789) 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 (page 1–680). 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 (page 2–716) by sending transforms (new rotation Troubleshooting 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 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 (page 2–815) 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 (page 2–812). 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. • Try to increase the strength of the wind, or decrease the weight of the objects it should affect. 829 830 Chapter 13: reactor character studio 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. • Crowd (page 3–925) animates groups of 3D objects and characters using a system of delegates and behaviors. You can create crowds with highly complex behaviors. character studio comprises three components: Biped, Physique, and Crowd. To find out about Physique, read Understanding Physique (page 2–834). • Biped (page 3–916) 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. To learn about the Crowd system, read Crowd Animation (page 2–1154). Note: Biped does not create character mesh objects. You should create your character mesh before using Biped to create a skeleton for it. • Physique (page 3–994) 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. If you are new to 3ds Max, read What You Should Know to Use character studio (page 2–832) and Understanding character studio Workflow (page 2–839). If you are already a 3ds Max user, proceed to Understanding Biped (page 2–833) to continue. 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 (page 2–856) that automatically creates movement based on gravity, balance, and other factors. 832 Chapter 14: character studio If you want to animate motions manually, you can use freeform animation (page 2–886). 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. • Biped® provides tools to create and animate skeletons. You can also animate a biped skeleton by loading motion capture files (page 2–925). You can convert back and forth between these methods to take advantage of their several benefits. • Crowd provides tools to create and animate crowds of animated objects, including bipeds. character studio also provides tools for skinning a character using the biped skeleton, or any other type of linked hierarchy. • The Physique® modifier (page 2–1076) associates a skeleton with the character’s mesh objects, so you can control the mesh with the skeleton. What You Should Know to Use character studio The software provides a unique ability to separate the motion of the animation from the structure of the character. This means you can animate a giant walking and apply that motion to a tiny elf, or 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. Different animations can be overlaid using layers, or blended with the new nonlinear Motion Mixer (page 2–604). You can use function curve editing, available on the track bar or in Track View, or in the new Animation Workbench (page 2–1008), to alter animations. The workbench also provides specialized tools to analyze and correct errors in motion. Finally, the software provides options for creating crowds of bipeds (page 2–1154) or other objects with a procedural animation system that uses forces and behaviors to drive the characters’ motions. character studio consists of three basic components: character studio provides you with a broad range of tools for animating virtually any type of character. To expedite your introduction to the product, you should 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 Objects dialog (page 1–78) • Navigation in viewports and changing your viewport configuration • Use of the Track View - Dope Sheet and Track View - Curve Editor, and the trackbar to view and edit animation tracks and keys Understanding Biped For information on these areas, consult the remainder of this reference. If you don’t know how to use 3ds Max, do some of the introductory tutorials found online in Help > Tutorials. Understanding Biped Biped (page 2–843) 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 the tools you need to 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 (page 2–982), you pose the biped to fit your character model. In Keyframe mode (page 3–960), you animate the skeleton. Motions created for the biped can be saved and loaded onto other biped skeletons with completely 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 (page 3–916). These files can be used in a variety of ways with Motion Flow, the Motion Mixer, or the Crowd tools to combine animation or animate multiple characters at once. Animating the Biped There are two primary methods used in creating biped animation: footsteps method (page 3–943) and freeform method (page 3–945). 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 (page 2–856) and Creating Freeform Animation (page 2–886). Biped Properties The biped skeleton has a number of 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 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 if they were fused to the shoulders. For example, say the biped is in a standing position, arms hanging at its sides; when you rotate the spine forward, the biped’s fingers will touch the ground rather than point behind it. This is a more natural position for the hands, and this 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. 833 834 Chapter 14: character studio • 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 (page 2–856). See also Biped (page 2–843) Biped User Interface (page 2–932) Understanding Physique 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 (page 2–1085) for each link it finds. The links created by Physique are referred to within this documentation as the Physique deformation spline (page 3–927). 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 (page 2–1110). Biped and 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 any 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. It will attach to any skeleton structure including a biped, 3ds Max bones, splines, or any 3ds Max hierarchy. When you apply Physique to the skin object(s) and attach the skin to the skeleton, Physique determines how When the biped pelvis is selected in the viewports and Attach To Node (page 2–1106) 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 new link and envelopes. Keep this in mind when you use Physique to attach a mesh to the biped; 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 Physique is applied and Attach To Node is used, it creates links and envelopes for all the links in the biped, as well as for the linked bones. Objects that should not deform, like skin, but need to be linked to the biped, like a sword, should be linked after Attach To Node is used to link a mesh to the biped. This way, a link and envelopes will not be created for the sword. Understanding Physique Envelopes and Weighted Vertices Envelopes are the Physique modifier’s primary tool for controlling skin deformation; tendons and bulge angles are used to fine tune 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 between 0 and 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, in turn, changes the way skin behaves as the biped moves. Much of the work you’ll do to correct the way skin deforms on a character will be to adjust envelopes. Deformable and Rigid Envelopes There are two Envelope types per link, deformable (page 3–927) and rigid (page 2–1085). Deformable envelopes follow the Physique deformation spline that 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 may 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 (page 3–978)) 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 similar to 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 (page 2–982). 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, 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 835 836 Chapter 14: character studio useful to keep the character stationary during envelope adjustment. to do these tasks for all scene objects using direct key manipulation. Link parameters, Bulge angles and tendons are the finishing touches. Skin sliding, the amount of twist, and crease blending as a character moves are controlled using link parameters. Bulge angles are used to bulge areas like the biceps, legs 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’s skin. 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 any key will display a menu; choosing from this menu will give 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. See also Physique (page 2–1076) Physique User Interface (page 2–1106) 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 (page 2–837). 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 a number of basic ways 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. 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 quickly 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. Understanding the Workbench Curve display can help pinpoint troublesome spots in your animation. You can see where a curve has problems, usually 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 just biped body parts and scene objects related to that biped. You can analyze these for errors using a variety of detectors, and fix them using the provided fixers. You can also apply filters to perform operations on different biped body parts to generally affect the animation without error identification. The Animation Workbench See also Working with the Workbench (page 2–1008) Animation Workbench (page 2–1012) 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, which will make the biped perform the series of motions in sequence. 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 is because you might have a key on every frame, so curve manipulation becomes cumbersome and awkward. It is difficult to visually pinpoint where the trouble spots are located. The Animation Workbench offers automatic functions to reduce keys or apply filters to the motion curves to smooth animation. 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. 837 838 Chapter 14: character studio 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, which can vary dynamically according to other factors in the scene. Multiple transitions from each clip 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 where they want to go and how fast they need to get there. These factors, in turn, are determined by the crowd parameters you set. See also Working with Motion Flow (page 2–1026) Motion Flow Mode (page 2–1043) Motion Flow Rollout (page 2–1045) Understanding Crowds 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. The Crowd system in character studio lets you create realistic simulations using large groups of characters, humanoid and otherwise, that behave • 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 might flap its wings quickly while ascending but slowly while flying level, and stop flapping its wings during descent. Understanding character studio Workflow One of the most important requirements of crowd simulations is avoidance; realism suffers if characters pass through each other or other objects in the scene. The Crowd system offers a number of behaviors to help achieve proper avoidance. It also provides the Vector Field, a special space warp, that, 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 (page 2–1154) Crowd Animation User Interface (page 2–1182) 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 may 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’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. Note: Since Physique deformations are based on a volume, you can refine your geometry at a later time with minimal impact on your skin behavior. This means you can create your animation before you’ve built your model if you wish. Create a Biped Skeleton Biped automates the creation of bipedal character skeletons. It also lets you introduce significant changes to the skeleton’s structure and sizing at any point during your animation without adversely affecting your character’s motion. This means 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’s proportions, the animation will still work. For more detail on posing a biped skeleton, see Biped (page 2–843). Attach the Skin • Position the biped character within its modeled skin. Use Figure mode (page 2–982) to scale bone lengths and to orient the skeleton correctly within the skin’s 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. • 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 839 840 Chapter 14: character studio 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. Links can be added 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, 3ds Max bones can be added to animate them. One common usage is to add a bone to animate the jaw. For further detail, see Physique (page 2–1076). Animate the Biped Skeleton Once the skin is attached to a Biped structure, you can freely animate the Biped character and see then skin behavior update automatically, based on the current pose. Tip: Since Physique skin deformation can slow visual playback of your Biped animation, you can temporarily hide the skin object or reduce its resolution in the modifier stack to improve performance. 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 (page 2–843) 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, and then adjust the biped keyframes and footsteps individually. Understanding character studio Workflow When using footsteps, biped dynamics (page 3–916) 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 adjusts a character’s position when the spine is rotated and keyframed to retain a character’s balance. • 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 or choose Spline Dynamics (page 3–1015) 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 (page 2–885) 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 (page 3–910) offer you a powerful tool for introducing global changes to an existing character animation. For example, by adding a layer on top of an existing run motion, and creating a single keyframe with the biped’s spine rotated forward, an upright running motion can be turned into a crouched run. Layered changes can be stacked up, 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 (page 2–930) 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’s 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 Biped’s collection of animation tools. 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 (page 3–576), as well as TRC files (page 3–577). 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 (page 2–1002) 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. 841 842 Chapter 14: character studio 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 particularly 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 you to 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 to display trajectories. You can place arms and legs into the coordinate space (page 3–924) of another object or the world to simulate interaction with fixed or moving objects. In Freeform mode, for example, putting the character’s legs into world space (page 3–1036) prevents them from sliding or moving when the animator is keyframing the character’s center of mass. Putting a character’s 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, the Select and Link tool can be used to attach objects to the biped. If a character is to pick up and carry an object and then put it down, the Link controller can be used 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. Use the Motion Mixer to Mix Animations You can use the Motion mixer (page 2–604) 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 (page 2–1043) 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 (page 3–1030) to create seamless transitions between clips. You can use the Transition Editor (page 2–1051) to modify a variety of blending parameters, including transition start frame, length, and angle between clips. Refining Your Character Great character animation is a 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 studio character. Biped and Physique make this iteration process straightforward by fully using the 3ds Max modifier stack and undo methods. In addition, Biped’s ability 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. Biped 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 (page 2–1154). 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 so that characters perform animation sequences appropriate to their current movement and transition smoothly between sequences. And you can use Crowd’s cognitive controllers to transition between behaviors based on a variety of criteria. For more on crowd behaviors, see Creating a Crowd System (page 2–1155). 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. Create a Biped Skeleton Once you have a character mesh, you can create a biped skeleton to fit inside. Use Figure mode (page 2–982) to set up your biped. Before you position the skeleton, use controls on the Structure rollout (page 2–984) 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. 843 844 Chapter 14: character studio 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 (page 3–1003) to move and scale the arm and leg links on your skeleton simultaneously. • Use tools from the Bend Links rollout (page 2–952), such as Bend Links Mode (page 3–915) and Twist Links Mode (page 3–1028) 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. • 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 (page 2–966) to paste the posture to the opposite side of the biped. 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 (page 2–834). Creating a Biped 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. 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. 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. 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. Procedure To create a biped on a surface: 1. 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 (page 2–984). 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. 845 846 Chapter 14: character studio 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) (page 3–920). This object is displayed as a blue octahedron near the center of the biped’s pelvis. Moving the COM positions the entire biped. Repositioning Biped Body Parts Certain Biped body parts can be repositioned 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 (page 2–847). Biped’s structure also includes an option to add forearm twist. This uses two to four forearm 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 Center of mass object You can select the center of mass by choosing Bip01 from the Select Objects dialog (page 1–78). You can also select the center of mass by clicking Body Horizontal, Body Vertical or Body Rotation in the Track Selection rollout (page 2–945). Changing the Biped Hierarchy The biped Hierarchy is a little different than 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. 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 Naming the Biped in the Structure rollout are enabled when the biped is selected and Figure mode is active. See also Creating a Biped (page 2–844) Structure Rollout (page 2–984) 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 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. 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 (page 2–846). Procedure 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 . 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. 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. 847 848 Chapter 14: character studio FFD Modifier used to shape spine and head 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. 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. Once your biped proportions are correct, you can save them in a .FIG file. Since biped saves the character in the .FIG file, and then 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 Posing the Biped Create panel, you use Figure mode to change all aspects of the biped’s structure after its creation. • 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 (page 3–1003). See Rubber-Banding Arms and Legs (page 2–852). • 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 Posing the Biped (page 2–847). Working with Both Arms or Legs Bipeds don’t have to be human ... 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. As you pose your biped, there are two different methods for posing both arms or legs symetrically. The first method involves using Symmetrical on the Track Selection rollout (page 2–945) 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 (page 2–982). 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. Procedures To work in Figure mode: 1. Select the biped you want to pose, and then go to the Motion panel. 849 850 Chapter 14: character studio The ends of the final toe links should go through the tips of the skin’s toes. The Motion panel doesn’t show Biped controls unless the biped is selected. 2. On the Biped rollout, click Figure mode. 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. 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. To fit biped legs to the skin: Turn on Figure mode on the Biped 1. 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. Tip: During the fitting process, try Freezing the skin object to prevent accidental selection. To fit the spine to the skin torso: On the Biped rollout, turn on Figure 1. 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. 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. Scaling Links Note: If you move limbs laterally, they will both move in the same direction, and will no longer be symmetrical about the body. To fit both arms using copy/paste: On the Biped rollout turn on Figure 1. 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. To create a symmetrical pose by copying one side of the biped to the other: 1. 3. Scale the upper arm so its link ends at the elbow of the skin. 2. Move, rotate, and scale the left arm and leg of 4. Scale the lower arm (RArm2 or L Arm2) so its the biped until you have the position and size you need. 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 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. 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. On the Motion Panel > Biped rollout, turn on Figure mode. The right arm and leg assume the position and scale of their corresponding bones on the left. 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. 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. See also Figure Mode (page 2–982) Biped Rollout (page 2–936) Creating a Skin (page 2–1076) 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 851 852 Chapter 14: character studio calf and ankle will maintain their size, but change their position. 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. 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 (page 2–852) 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. 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. 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. 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. Biped Display Options 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. Using Rubber Band to resize an arm without changing the hand position Procedures To rubber band an arm or leg link: 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. Tip: Another way to adjust the biped’s balance is 1. On the Motion panel > Biped rollout, turn on Figure mode. 2. Select the arm or leg link you want to rubber band. 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. 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. 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 (page 2–936) > Display group, rather than in the Display panel. 853 854 Chapter 14: character studio 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. skin does. Also, figures seen from a distance don’t require the same degree of realism as figures seen close up. Note: The Display group is hidden by default. To display the group, click the expansion bar on the Biped rollout. Procedure 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 expansion bar on the Biped rollout. Deleting a Biped You can quickly and easily delete an entire biped from a scene. Procedure 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 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. Saving and Loading FIG Files • Link extra 3ds Max bones or splines to the biped to create extra envelopes when Physique is applied. • 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. Procedure 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. See also Biped Rollout (page 2–936) Saving and Loading FIG Files Select a biped. > Motion panel > Biped rollout > Load File (in Figure Mode) 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 (page 2–950) options: • Load Twist Poses: Loads both the twist links (page 2–984) 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 (page 2–950) for details. 855 856 Chapter 14: character studio Footstep Animation Procedures To save a biped’s figure information to a file: 1. Select the biped to save. Footstep animation is a central compositional tool in Biped. Footsteps are biped sub-objects, similar to gizmos (page 3–949) 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. On the Motion panel, activate Figure 2. mode. 3. 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. Activate Figure mode in the Motion 2. panel. Footsteps 3. 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. See also Figure Mode (page 2–982) 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 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 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 (page 2–886) 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 for the feet. Workflow In general, you compose a footstep pattern with these actions: Select the biped and access the Motion 1. panel. 2. 3. 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. When you first create them, footsteps are inactive. They exist in the scene but don’t yet control the biped’s motion. 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 (page 3–958), 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 (page 2–954). 857 858 Chapter 14: character studio 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 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 (page 3–905) on the Dynamics & Adaptation rollout (page 2–980). Foot States Within a footstep animation, there can be four foot states (page 3–943): 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. Footstep Mode When Footstep mode is active, footstep creation controls appear in the Motion panel. Footstep Animation 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 (page 3–916) 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 (page 3–1015) 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 Footstep controls in Motion panel 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 with changes to footstep timing, 859 860 Chapter 14: character studio 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 (page 2–883). Creating Footsteps The topics in this section deal with the creation of footsteps for animating bipeds. They are: Planning for Footsteps (page 2–860) Choosing a Gait (page 2–861) Creating Footsteps Automatically (page 2–862) Creating Footsteps Manually (page 2–863) Activating Footsteps (page 2–865) Deactivating Footsteps (page 2–865) Understanding Footstep and Body Keys (page 2–867) Planning for Footsteps 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 (page 2–1004). See also Creating Footsteps (page 2–860) Editing Footstep Motion (page 2–868) 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. Choosing a Gait • 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. • 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. 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. 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: 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. 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: 861 862 Chapter 14: character studio 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 stairs, hop repeatedly, and do a variety of motions. Automatic footstep creation places the footsteps for you, generating perfectly timed and spaced footsteps. Procedure To create footsteps automatically: 1. Select any part of the biped. 2. 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 (page 2–992). You are now in Footstep mode, where you can create, activate, or edit footsteps. 3. If creating footsteps manually with Create Footsteps (append) or Create Footsteps (at current frame), the gait parameters on the Footstep Creation rollout (page 2–988) are used. Changing these values changes the timing for any footsteps placed after the values are set. 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 (page 2–878). 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 (page 2–992) appears. This dialog determines various aspects of the footstep sequence, such as how far each footstep will be placed from the previous footstep. 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 (page 2–869). On the Motion panel > Biped rollout, click Footstep Mode. 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. 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 7. Click Play Animation to see the animation. Creating Footsteps Manually See also Preparing to Create Footsteps Manually Creating Footsteps Manually (page 2–863) Before placing footsteps, you must choose the gait, then set parameters for the gait in the Footstep Creation rollout (page 2–988). Adjusting Vertical Motion (page 2–878) 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 (page 2–862). 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 (page 2–861) for information on gaits and parameters. 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 (page 2–988). 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 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 (page 2–988). 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. 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. 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. 863 864 Chapter 14: character studio 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 (page 2–865). 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: Make sure Footstep Mode is turned on. Procedures 1. To prepare for manual footstep creation: 2. If the existing footsteps are active, deactivate them first. Select all footsteps and click Deactivate Footsteps. 3. Click Create Footsteps (append). 1. On the Motion panel > Biped rollout, click Footstep Mode. You are now in Footstep mode, and can create, activate, or edit footsteps. 4. Click in a viewport to create a footstep. Move the cursor and continue clicking to create more footsteps 2. In the Footstep Creation rollout, choose the gait you want to use: Walk, Run, or Jump. See Choosing a Gait (page 2–861) for details on gaits and their parameters. 3. In the Footstep Creation rollout, set parameters Tip: A Top viewport is usually best when you create footsteps individually. 5. Move and rotate footsteps until you have for the chosen gait. achieved the desired pattern. To create footsteps beginning at the current frame: 6. Click Create Keys For Inactive Footsteps. Turn on Footstep Mode. 7. Click Play Animation to see the animation. 1. 2. Click Create Footsteps (at current frame). 3. Click in a viewport to create a footstep. Move To create footsteps using AutoGrid: the cursor and click again to create another footstep. Repeat until you have created all the footsteps required. 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. Tip: Use the Top viewport to create the footsteps. 1. Using any 3ds Max modeling method, create a 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. 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 Activating Footsteps need a biped, create the biped at this time, then access the Motion panel. Turn on Footstep Mode. 4. 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. 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 (page 2–865). Procedure To activate footsteps: 6. When you have finished placing footsteps, click Create Keys For Inactive Footsteps. 1. 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. While in Footstep mode, create footsteps using the automatic or manual method. 2. Move, rotate, delete and edit footsteps as desired. 3. See also Click Create Keys for Inactive Footsteps in the Footstep Operations rollout. Click Play Animation to see the animation. Choosing a Gait (page 2–861) 4. Creating Footsteps Automatically (page 2–862) See also Editing Footstep Placement (page 2–869) Creating Footsteps Automatically (page 2–862) Creating Footsteps Manually (page 2–863) 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 (page 2–990). 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 move naturally through the footsteps. Keys are not created for the head, ponytails or props. 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. 865 866 Chapter 14: character studio 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 (page 2–990). After making changes to the footsteps, click Create Keys for Inactive Footsteps in the Footstep Operations rollout (page 2–990). 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. 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. Procedure 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. 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 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. Understanding Footstep and Body Keys Tip: Alternatively, you can use layers (page 2–974) 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 (page 2–865) 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. • 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 (page 2–869). 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. 867 868 Chapter 14: character studio 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 (page 2–874) and Adjusting Body Keys in Track View (page 2–875). 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 (page 2–945): • • Body Horizontal Body Vertical 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 (page 2–874) and Adjusting Body Keys in Track View (page 2–875). Editing Footstep Motion The topics in this section deal with the editing of footstep motion when animating bipeds. They are: Editing Footstep Placement (page 2–869) Editing Footstep Timing (page 2–869) Editing Active Footsteps (page 2–871) Splicing Footsteps (page 2–872) Animating Legs and Feet (page 2–874) Animating the Upper Body (page 2–874) Adjusting Body Keys in Track View (page 2–875) Shifting the Biped’s Balance (page 2–876) Adjusting Vertical Motion (page 2–878) • Body Rotation (displays keys for the Body Turning track) 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 Saving Footstep Animation (page 2–882) Editing Footstep Placement After you’ve created footsteps, there are several ways to edit their placement in the scene. biped keys to account for changes in balance and motion. This change is called adaptation (page 3–905). For information on how adaptation occurs, see Editing Active Footsteps (page 2–871). • You can use standard 3ds Max controls to select, move, rotate, or delete footsteps. Editing Footstep Timing Editing Footstep Placement 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 (page 2–847). 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. • You can use the Bend and Scale controls in the Footstep Operations Rollout (page 2–990) 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. Footsteps in Track View 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 (page 2–869). Biped Key Adaptation When you move, rotate, delete, bend, or scale active footsteps, the software automatically alters 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 (page 2–867) 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. 869 870 Chapter 14: character studio • Moving footstep keys to change the time relationships between footsteps. • Changing the lengths of footstep keys. • Deleting footstep keys. 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. 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. To select footsteps, you must have Footstep Mode turned on. Note: • 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. 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 (page 2–1000). 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 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 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 (page 2–865). 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. Editing Active Footsteps • 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 (page 2–862) and Creating Footsteps Manually (page 2–863). • Footsteps cannot be cloned. 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. To change the display of numbers of footstep keys: • 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. Procedures To display footstep keys in Track View: 1. Choose Graph Editors menu > Track View - Dope Sheet. 1. In Track View, right-click the footstep track to display the Footstep Mode Dialog (page 2–1000). 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. See also Adjusting Body Keys in Track View (page 2–875) 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. 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 (page 3–949) 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 (page 2–867). 871 872 Chapter 14: character studio Key Adaptation for Footstep Placement Edits between opposite legs, you have changed the gait, and new keys will be generated for legs. When you move or rotate active footsteps as described in Editing Footstep Placement (page 2–869), the biped’s keys are immediately influenced by the edit. The following keyframe tracks are influenced in the vicinity of the edited footsteps: • If you do not change the overlap relationship between opposite legs, existing legs keys are retained. • 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 • 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 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 (page 2–980) lock specified tracks. Procedure 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. To edit active footsteps in time, follow the methods described in Editing Footstep Timing (page 2–869). Keyframes affected by the edit are updated immediately. 2. Move, rotate, scale, or bend active footsteps. 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. Splicing Footsteps • If you move footstep keys in such a way that you remove an overlap or create a new overlap The tracks you lock are unaffected by footstep editing. 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 (page 3–1015). Splicing Footsteps 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. 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. 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. 3. Tip: Use motion splicing when you want to edit To splice the footstep buffer: segments of a single footstep-based animation. To build longer animations by connecting finished .bip files, use Motion Flow (page 2–1026) or the Motion Mixer (page 2–604). Now you can splice the edited buffer by pasting footsteps. 1. 1. Turn on Footstep mode. 2. Select a series of footsteps. 3. In the Footsteps Operations rollout, click Copy Footsteps. 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. Click Paste Footsteps on the Footstep Operations rollout. The footsteps from the buffer appear in their saturated colors. Procedures To copy footsteps to the buffer: Click Buffer Mode to turn it off. 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. The viewports now display the footsteps in the footstep buffer, rather than the footsteps in the currently activated footstep sequence. 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. 2. Edit footsteps or motion keys as you normally 4. The footstep that turned red and the remaining would – by moving and rotating footsteps, or turning on Auto Key and moving and rotating parts of the biped skeleton. 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 Note: You can’t splice (copy and paste) footsteps while in Buffer mode. 873 874 Chapter 14: character studio 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. See also at these frames, or add new keyframes within the timespan of the footstep key. 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 (page 2–905). • 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 (page 2–869). Footstep Operations Rollout (page 2–990) Animating the Upper Body 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 (page 2–962). 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 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 (page 2–890) and Animating by Rotating Links (page 2–891). You can also click the Set Key button on the Key Info rollout (page 2–954) 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: Do not use the 3ds Max Set Key button to set keys for the biped. 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 Adjusting Body Keys in Track View 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 the biped jump higher or lower during airborne periods, see Freeform Animation Between Footsteps (page 2–883). 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. 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 (page 2–867) for terms and definitions used in this section. 875 876 Chapter 14: character studio 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 (page 2–869). • 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 (page 2–1008). Locked Keys • Note: The information in this section applies only 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. 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 (page 2–874) Shifting the Biped’s Balance After footsteps are activated, you can adjust the biped’s overall balance in either of two ways: 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. 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 (page 2–910). • In the Biped rollout (page 2–936), turn on Rubber Band Mode and move the biped’s COM, or • Change or animate the Balance Factor parameter in the Key Info rollout (page 2–954). 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 Shifting the Biped’s Balance 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. Center of mass moved behind the biped in rubber-band mode 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 (page 3–914) is an animatable parameter that determines how the biped’s hips and spine will compensate when the biped bends forward or backward. 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: 877 878 Chapter 14: character studio • 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. 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. Procedure 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. Click Body Horizontal to select this track (page 3–1023). 5. 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 (page 2–980) and you activate footsteps, the Body Vertical keys that are automatically generated during a ballistic gait period will take gravity and 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 Adjusting Vertical Motion 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 (page 2–867)to appear on the Track Bar and in Track View, the key will have no effect on the biped’s airborne height. Gravity and Timing Jump height increases with time in air In reality, the length of time a person, animal or insect stays in the air during a jump is based on two factors: 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. • 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. 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. There are two solutions to this problem. You can change the amount of time the character is airborne between footsteps (see Editing Footstep Timing (page 2–869)), or you can accelerate gravity with the GravAccel parameter. 879 880 Chapter 14: character studio Accelerating Gravity The GravAccel parameter on the Dynamics & Adaptation rollout (page 2–980) 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. you can find out by creating another biped of the same height and noting its GravAccel value. 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 (page 2–869). 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: 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, • 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 (page 2–954) changes the biped’s motion only when it is set for footsteps Adjusting Vertical Motion 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 (page 2–945), 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. With biped dynamics (page 3–916), the height and trajectory of the biped during airborne periods is determined by gravity calculations and other biped-specific information. With spline dynamics (page 3–1015), the airborne height and trajectory are not set for you automatically; you must set them manually with keyframes. 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. Select any part of the biped and access the Motion panel. 2. On the Track Selection rollout, click Body Vertical. 3. 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. Ballistic tension determines springiness of landing. (Left = 0.0, Right = 1.0) To set a Body Vertical key: Dynamics Blend 1. The Dynamics Blend parameter in the Dynamics & Adaptation rollout (page 2–980) determines whether biped dynamics or spline dynamics will be used during airborne periods. 2. 3. On the Track Selection rollout, click Body Vertical. Turn on Auto Key. Click Select and Move on the main toolbar. 881 882 Chapter 14: character studio 4. Click and drag the center of mass up or down in the viewports. Saving Footstep Animation The biped is repositioned vertically, a key is created in the center of mass Body Vertical track. After you have animated the biped with footsteps, there are two ways you can save the data. To set ballistic tension: 1. On the Biped rollout, turn off Footstep Mode if necessary. 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. • 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 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 (page 2–920) and Loading and Saving STP Files (page 2–924). Footsteps and Freeform Animation character studio provides two distinct modes of animation, footstep and freeform. Footstep animation (page 3–943) 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 (page 3–943) provides a more traditional method of animating to those familiar Freeform Animation Between Footsteps 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 (page 2–954), or by turning on Auto Key mode, moving the time slider and transforming the biped parts. See also 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. Freeform Animation Between Footsteps 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. 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. Footstep Animation (page 2–856) Freeform Animation (page 2–886) 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 (page 2–878). 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 (page 3–1015) instead. 883 884 Chapter 14: character studio Procedure 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 (page 2–862). 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. 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. See also 7. Play the animation. The biped uses vertical dynamics during all footstep motions except the freeform period. Track View (Biped) (page 2–1002) Converting Between Footstep and Freeform Animations 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 (page 2–936), 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 (page 2–900) 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 (page 2–1061). Procedure 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 (page 2–999) or the Convert to Footsteps dialog (page 2–999) 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 (page 3–916) is turned on, and Footstep mode is enabled. 885 886 Chapter 14: character studio Freeform Animation 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 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 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. 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 (page 2–954) 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. 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 Freeform Animation 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 (page 3–958) 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. 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. 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: 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. • 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 (page 2–904). 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. 887 888 Chapter 14: character studio 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. Creating Freeform Animation The topics in this section deal with the creation of freeform animation for bipeds. They are: Selecting Biped Tracks (page 2–888) Animating by Moving Links (page 2–890) Animating by Rotating Links (page 2–891) Rotating Multiple Biped Links (page 2–895) Using Controllers (page 2–896) Using Props (page 2–898) 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 Selecting Biped 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 (page 2–1012). The Workbench provides specialized tools for analyzing and fixing motion problems found in the curves. 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). 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. 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. 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. See also Note: By default, all keys for arm objects are in Dynamics & Adaptation Rollout (page 2–980) 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. Track Selection Rollout (page 2–945) Track View (Biped) (page 2–1002) Procedures To access Track V iew, do one of the following: Tip: Use controls in the Separate Tracks area of the Keyframing Tools rollout (page 2–962) if you prefer transform tracks for individual objects. • On the 3ds Max toolbar click Curve Editor. • 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. On the Track View, click Zoom Selected Object. To display footstep tracks: 1. Select any biped with footstep animation. • Choose Graph Editors menu > Track View Curve Editor. 2. To select from the screen: 3. Right-click in the viewport and choose Curve 1. Place the cursor over the biped link whose tracks you want to examine. Use zoom controls, as necessary. In the Biped rollout of the Motion panel turn on Footstep Mode . 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. 889 890 Chapter 14: character studio Selecting Tracks from the Track Selection Rollout Each of these tracks can be seen in Track View, expanded trackbar and Workbench. 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 (page 2–945): Note that the hands and fingers are grouped with the arms, and the fingers and toes are grouped with the legs. • 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. 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. The body’s translation keys are separated into vertical and horizontal tracks. Animating by Moving Links Use the standard 3ds Max Move transform to move biped links. 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. Animating by Rotating Links 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 (page 2–936). Biped provides controls to help you give both arms or both legs the same pose. See Copy/Paste Rollout (page 2–966) 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, Does not move and so on Clavicles R Clavicle, L Clavicle Shoulders (upper arm) R UpperArm, IK from L UpperArm 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 Fingers Finger 0, 01, and so on IK from finger Positions finger relative to hand (if base selected) Positions ponytail relative to body Do not move Positions arms relative to body IK from shoulder Biped Link Link Name Keyframe Mode Hips (upper leg) R Thigh, L Thigh IK from knee IK from knee Knees (lower R Calf, L Calf leg) Figure Mode IK from foot IK from foot Feet R Foot, L Foot IK from foot IK from foot Toes Toe 0, 01, and IK from toe so on 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 (page 2–500) 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. 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 891 892 Chapter 14: character studio 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 (page 2–892). Biped Motion Constraints Free Axes Comments Knees (lower R Calf, L Calf leg) 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 Biped Link Link Name 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 Shoulders (upper arm) R UpperArm, X, Y, Z L UpperArm 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 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. 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. Animating by Rotating Links • 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. 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 (page 2–954), 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. 893 894 Chapter 14: character studio Likewise, the orientation of the neck changes the position, but not the orientation, of the head. Although linked to the neck, the head typically 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. Tangent Euler Rotation curve 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 (page 2–507). 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 (page 2–377) or the Euler XYZ Controller (page 2–318) (on the Quaternion/Euler rollout (page 2–948)) 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 (page 2–916). 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. Rotating Multiple Biped Links Tip: You can also access TCB controls by right-clicking on keys in the trackbar, Track View – Curve Editor or the Workbench Curve View. tail link to use the character studio technique of naturally bending the entire spine, neck, or tail. Selecting and Rotating Multiple Links Rotating Multiple Biped 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. 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 (page 2–952) 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. 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 (page 2–952) and then select and rotate any spine, neck, or 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. 895 896 Chapter 14: character studio 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 (page 3–960). Tip: You can also use the other Twist Links tools in the Bend Links rollout (page 2–952) to further control the links’ rotation. 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 (page 2–934) rollout of the Motion panel. Controllers can also be added in the Animation Workbench (page 2–1012) 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. Using Controllers 3. Expand the Biped SubAnim entry in the 4. Turn on the tracks you want to collapse in the Controller window. List controller entries are displayed for BipScale, BipRotation, and BipPosition. 4. Expand the list controller you want to add to Enable group. 5. Turn on the options you want to use in the Collapse group. 6. To perform the collapse, click the Collapse and highlight the first Available entry. button. The Assign controller button becomes active. 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. Click the Assign Controller button. 5. An Assign Controller dialog appears. 6. Choose the controller to want to use, and click OK. 7. Play the animation and observe the effect. To add controllers to multiple biped parts at the same time: 1. In the viewport select the biped parts to which 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. 2. Open the Workbench. Controllers can also be assigned in the Animation Workbench by displaying the Controllers list, choosing an Available entry, right-clicking and choosing Assign Controller. 3. 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. 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. you want to add list controllers. The selection list in the Select panel has the biped parts highlighted. 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. A dialog appears with the Collapse choices. To animate the weights of an added controller: 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. 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 897 898 Chapter 14: character studio with Biped” for an example of animating the weights. 1. Add a controller to a biped object, using either method outlined above. 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. 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. 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. 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. Bipeds with multiple props as swords Animating Prop Linkage 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. 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 (page 2–954). 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. Using Props 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. 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. 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. Upon loading a CSM file (page 3–925), 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. 8. Turn on Auto Key, then select the prop. 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. 5. Move the time slider ahead one frame and set 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. 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 899 900 Chapter 14: character studio from the right hand to the left hand, and click Set Key again. keyframe tracks. As the limb moves through each key: The prop will now follow the movement of the left hand in the frames that follow. • 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 of inverse kinematics. The default blend is 0.0, or full forward kinematics. An IK Blend of 1.0 is full inverse kinematics. 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 • 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 Using IK Keyframe Parameters Biped’s inverse kinematics solution has three parameters set at each key of the arm and leg The IK Blend control is in the Key Info rollout (page 2–954); visible when you expand the IK divider bar. You set IK Blend while in Keyframe mode . Using IK Keyframe Parameters when IK Blend is closer to 1.0, inverse kinematics are more heavily weighted. 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. IK group parameters 2. Set a key if one doesn’t already exist. 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. 3. Set the desired value of IK Blend. 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 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 (page 3–944), or normal biped space. • 1 with Body turned on is inverse kinematics (page 3–958), 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. 901 902 Chapter 14: character studio 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. 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. 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 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 (page 2–954) See also Key Info Rollout (page 2–954) 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. 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. Understanding Walk Cycle Constraints 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. 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. Heel lifts, toe remains flat at frame 18 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. After rotating the foot about the pivot at the ball of the foot, you set another planted key with the pivot on the toe. 903 904 Chapter 14: character studio pivot at the same location: then the foot will rotate around the displayed pivot. 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. 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 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. 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 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. Animating Pivots 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 (page 2–954). You can also set keys to make hands and feet follow a stationary or animated object. See Animating IK Attachments (page 2–908). 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. 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 (page 3–872) 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. Animating Pivots 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 905 906 Chapter 14: character studio 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 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 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 Animating a Quadruped importance of the interpolated ankle joint over the interpolated knee joint for intervals in between keyframes. This is relevant only to interpolation on bipeds. 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. 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: Using IK constraints and pivots on the biped hands and feet allows you to animate quadrupeds. See also Key Info Rollout (page 2–954) Procedure To use pivots: 1. Select a biped hand or foot. 2. On the Key Info rollout, click Set key, and then choose Object. • 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 (page 2–984) on the Motion panel. • Animate pivot points with planted keys to mimic the rolling of the feet from heel to toe. 907 908 Chapter 14: character studio 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 (page 2–954) 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 0 if you find the movement of spine links is affecting the biped’s hip movements in an undesirable way. 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 (page 2–954), expand the IK divider to see the IK section of the rollout. 4. Click Set Key. Once a key is set, the IK Blend value and other IK parameters become available. 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. 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. This capability is useful for: 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. • 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. 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. • Motions that involve the temporary manipulation of objects, such as bouncing or kicking a ball, opening a door, or touching another biped. 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. 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 6. 7. On the frame that defines the end of an attachment interval, set IK Blend to 1.0, choose Editing Freeform Animation 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. 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 (page 2–909) Copying and Pasting Postures and Poses (page 2–910) Mirroring Motion (page 2–913) Using Layers (page 2–913) Editing Trajectory Keys (page 2–914) 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. 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. 909 910 Chapter 14: character studio 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 . Tip: 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 (page 3–996) is the rotation and position of any selection of biped objects. A pose (page 3–996)is the rotation and position of all the objects in a particular biped. A track (page 3–1023) is the animation for any selection of biped parts. For information on working with tracks, see Copying and Pasting Tracks (page 2–926). 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. Copying and Pasting Postures and Poses 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 (page 2–966) 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. 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. 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 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 (page 2–954), 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. 911 912 Chapter 14: character studio Procedures 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. 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. 3. On the Copy/Paste rollout, click Create Collection and rename the new collection Biped Posture. 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. 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. 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 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. Click Copy Posture. 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 paste the posture: Note: Turning on the Auto Key button before To copy the entire pose of a biped: pasting posture automatically sets a key for all objects whose posture has changed. 1. Select any part of the biped whose pose you want to copy. 1. Choose the Posture you want from the copied postures drop-down list. 2. 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. 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. Turn on Auto Key. Click Paste Pose or Paste Pose 6. Opposite. Mirroring Motion Tip: You can use Paste Pose Opposite to create symmetrical runs and walk cycles. Keyboard Shortcuts The following are Biped keyboard shortcuts to the copy and paste posture commands. Make sure the Keyboard Shortcut Override Toggle (page 3–872) is active. Shortcut Meaning Alt+C Copy Posture Alt+V Paste Posture Alt+B Paste Posture Opposite Mirroring Motion Mirror, on the Keyframing Tools rollout (page 2–962), 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. 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 Original motion 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 animation in all the Layers. Layers behave like a freeform animation (page 3–945): the biped can adopt any position. 913 914 Chapter 14: character studio 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. Procedures To increment all keys using layers (global offset): 3. 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. 4. Click Collapse to collapse the layer. See also Layers (page 3–961) 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 (page 2–954) (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. To create the envelope, use Snap Set Key to create keys before and after the incremented range. 4. Click Collapse to collapse the layer. 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. Layers Rollout (page 2–974) 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 (page 2–962) 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. Tip: You can select the center of mass’s horizontal or vertical tracks by clicking the appropriate button in the Track Selection rollout (page 2–945). Editing Trajectory Keys 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. 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. 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. 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. 915 916 Chapter 14: 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 (page 2–318). You can switch between Euler XYZ and TCB Rotation controllers via the Quaternion/Euler rollout (page 2–948). The Curve Editor (page 2–1012) displays the animation curves based on the chosen controller. Each curve is labeled starting with one of the following: Tangent Euler Rotation curve 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 • “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. 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. Working with Euler Curves on Biped Animation Note: Keys set to Join to Prev IK Key (page 2–900) 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 (page 2–1012) also updates the display from the Curve Editor, as well as activate the corresponding tool from the Biped Toolbar (page 2–535). 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. 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 (page 2–954)). 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 (page 3–973), the resulting animation becomes quaternion. Tip: When creating a mixdown, you can preserve your Euler tangents by turning on A Keyframe Per Frame in the Mixer Preferences dialog (page 2–624). 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 (page 2–1048)). Extreme tangents on a Euler rotation curve 917 918 Chapter 14: 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. 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. Working with XRef Bipeds Using the XRef Objects dialog (page 3–397), 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 (page 3–394) for more information. Externally Referencing a Biped When you create an XRef biped, certain modes on the Motion Panel’s Biped rollout (page 2–936) become unavailable as XRef data is read-only: • Figure Mode (page 2–982) • Footstep Mode (page 2–988) • Motion Flow Mode (page 2–1043) • Mixer Mode (page 2–652) 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 Working with Biped Motion Files 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. 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 (page 2–974), 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. 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 (page 2–920). • 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. • CSM file (.csm) Note: If the XRef biped contains multiple animation layers in the source scene, 3ds Max collapses them into one layer before creating the XRef. 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. Note: Saving animation (page 2–920) from your See Motion Capture Rollout (page 2–1065). XRef biped breaks the XRef link. Note: For the CSM file specification, see the CSM.rtf document on the program disc. • MIX file (.mix) Loading, Saving, and Displaying Biped Motion A MIX file contains data from the Motion Mixer, such as trackgroups, tracks, and transitions. See Using the Motion Mixer (page 2–604). • MFE file (.mfe) Working with Biped Motion Files character studio uses a variety of file formats to save, load, and edit motion. The Motion Flow Editor format saves scripts you create in the Motion Flow Editor, including clip references and transitions. • BIP file (.bip) See Motion Flow Mode (page 2–1043). • MNM file (.mnm) 919 920 Chapter 14: character studio 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 (page 2–924). 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 (page 2–1061). 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. 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 When you save a Motion Mixer (page 2–604) (MIX) file or a Motion Flow Editor (page 2–1026) (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 (page 3–487) and set a new path for the files. 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 (page 2–982) is active, the Load File option loads figure (FIG) files. Importing and Exporting Animation Data 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. 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 (page 3–558) 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. • 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 921 922 Chapter 14: character studio 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. unchanged, regardless of the biped figure’s new proportions. 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 Procedure To merge a skinned biped: To turn off Scale Stride mode: 1. Select the biped, and go to the Motion 1. 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 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. Merging and Cloning a Character 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. 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 than 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 Objects dialog, so the duplicate names are not a problem. 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). 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. Selecting a biped while merging a MAX scene Fingertip dummies displayed as blue cubes 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. 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. The number of biped dummies varies according to how many fingers and toes the character has. 2. At the bottom of the Biped rollout, click the bar by the plus sign to expand the rollout. 923 924 Chapter 14: character studio (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. Motion flow scripts are saved as Motion Flow Editor (MFE) files. • The Motion Mixer (page 2–604) also uses BIP files and MFE files as clips. In addition to creating transitions from one BIP animation to another, over 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 (page 2–1059). Mixer scripts are saved as BIP files or MIX files. 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. 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 Combining BIP Motions To load footstep data: character studio provides two main ways of combining BIP files to build more complex character animations. 1. Select the biped to animate via saved footsteps, go to the Motion panel. • Motion flow (page 2–1026) 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. 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. Using Motion-Capture Data To save footstep data: 1. 2. Select the biped whose footsteps you want to save, and go to the Motion panel. 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 (page 2–1061). • 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 (page 2–1070). 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 (page 2–1061). • (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 (page 2–604) 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.” 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 925 926 Chapter 14: character studio • 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. Talent Figure Mode and Adjust Talent Pose Talent Figure Mode and Adjust Talent Pose 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 (page 2–1065) 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. 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 (page 2–910). 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. Repositioning the Biped • The Paste Horizontal, Paste Vertical, and Paste Rotation buttons in the Paste Options group (page 2–973) become active. For hands-on experience in using Copy and Paste Tracks, see the lesson called Creating a Simple Freeform Animation in the tutorial Animating with Freeform. Procedure • 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. To copy a track from one biped to another: • If the biped is animated with motion flow, use the Start Position spinners. 1. Select any part of the biped and access the Procedures 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 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: biped parts whose tracks you want to copy. 1. 4. Click Copy Track. 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. 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. 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. 5. Select any part of the other biped. 6. In the Paste Options group, enable all three Paste buttons. Click Paste Track or Paste Track 7. Opposite. Note: The alternative way to move a biped The tracks for all biped parts are applied to the other biped regardless of which parts are selected on the biped. with footstep animation is to select all of its footsteps, rather than its center of mass. 2. Repositioning the Biped The method you should use to reposition a biped depends on which tools were used to animate the biped: On the Biped rollout, turn on Move All Mode. Move the biped. 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. 927 928 Chapter 14: character studio 3. Note: Depending on the animation, at some of Turn off Move All Mode. 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 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. 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. Turn on Motion Flow mode. 1. 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. Turn off Motion Flow mode. 3. 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. On the Layers rollout, click Create Layer. 1. Note: If the biped uses footstep animation, the Move All Mode button will become unavailable. 1. Create a dummy object near the biped’s center of mass. Turn on Auto Key. 2. 3. Reposition the biped as described in the 2. 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. previous procedure, ”To reposition a freeform animation (with no IK attachment) or a footstep animation.” 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. Move the dummy object to reposition the biped. Turn off Auto Key. 4. 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 Previewing Biped Motion 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 (page 3–916) on the Biped rollout to play back the animation with the biped displayed as a stick figure, while hiding everything else in the scene. 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. 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 performanc. 3. Select one of the visible bipeds, and go to the Motion panel. 4. On the Biped rollout, click Biped Playback. 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 playback is chosen in this dialog, Biped plays 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. 929 930 Chapter 14: character studio 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 (page 3–956) 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. 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. Procedure 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. Note: Trajectories do not display using In Place mode. In Place Mode Options (If the rollout is already expanded, the bar shows a minus sign at the left, instead of a plus.) 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. 3. In the Modes group, click In Place Mode to turn it on. 4. At the bottom of the3ds Max window, turn on Auto Key. Trajectory Display 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. 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 (page 2–944). You can choose between Bone Base and Bone Tip, show an entire trajectory, or a moving range of frames. See also Biped Color-coded Keys and Trajectories (page 2–1005) Procedure To edit biped trajectory keys in a viewport: 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: 1. Select an animated biped and go to the Motion panel. 2. 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. • Motion panel > Biped rollout > Expand Biped rollout. > Display group > Trajectories button • Motion panel > Key Info rollout > Trajectories button 4. 5. In the Display group, turn on Trajectories. Turn on Sub-Object selection level. 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. On the main toolbar, turn on Select And 6. Move. 7. Use the Transform gizmo to move the keys on the trajectory. Display Preferences The Display Preferences dialog (page 2–944) lets you customize how bipeds are displayed while you work with them. This topic introduces some of the commonly used options. 931 932 Chapter 14: character studio 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. 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. 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: 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. • Assign Controller Rollout (character studio) (page 2–934) 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.) • Track Selection Rollout (page 2–945) See also • Key Info Rollout (page 2–954) Display group (page 2–939) • Keyframing Tools Rollout (page 2–962) • Biped Apps Rollout (page 2–935) • Biped Rollout (page 2–936) • Quaternion/Euler Rollout (page 2–948) • Twist Poses Rollout (page 2–950) • Bend Links Rollout (page 2–952) • Copy/Paste Rollout (page 2–966) • Layers Rollout (page 2–974) • Motion Capture Rollout (page 2–1065) Biped User Interface • Dynamics & Adaptation Rollout (page 2–980) 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 The Assign Controller, Biped Apps, and Biped rollouts are displayed during all modes. The remaining rollouts depend on the mode. Motion Panel (Biped) In Figure mode, Structure (page 2–984) is the only additional rollout. In Footstep Mode, the rollouts displayed are: Footstep Creation (page 2–988), Footstep Operations (page 2–990), and Dynamics & Adaptation. In Motion Flow mode, Motion Flow (page 2–1045) is the only additional rollout displayed. In Mixer mode, Mixer (page 2–652) 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) Motion Flow Rollout (page 2–1045) Mixer Rollout (page 2–652) Key Info Rollout (page 2–954) Keyframing Tools Rollout (page 2–962) Display group (page 2–939) Layers Rollout (page 2–974) Motion Capture Rollout (page 2–1065) Dynamics & Adaptation Rollout (page 2–980) Structure Rollout (page 2–984) 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). 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) (page 2–934) Biped Apps Rollout (page 2–935) Biped Rollout (page 2–936) Track Selection Rollout (page 2–945) Copy/Paste Rollout (page 2–966) The Center of Mass (COM) object is the root parent. The center of mass is sometimes referred to as the COM. Center of Mass Animation Tracks Unlike other objects and biped body parts, the center of mass has three separate animation tracks: Footstep Creation Rollout (page 2–988) Footstep Operations Rollout (page 2–990) • Body Horizontal 933 934 Chapter 14: character studio • • Body Vertical Body Turning (selected with the Body Rotation button) You can use these buttons, available on the Track Selection rollout (page 2–945), to select each track as well as the COM itself. 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 where the character’s center of mass is positioned relative to the feet. Another use of the center of mass shadow is to link objects to it. For example, a camera and camera target could be linked to the shadow object to follow the character. Linking the Center of Mass Object Using the Select And Link tool (page 2–422) 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 center of mass shadow between the biped’s feet. Motion Panel Rollouts (Biped) Assign Controller Rollout (character studio) 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 can be linked directly to other objects in the scene with Select And Link. A different technique is used to make other body parts, such as feet and hands, follow other objects in the scene. See Animating IK Attachments (page 2–908). 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 (page 2–546). Biped Apps Rollout Interface 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. 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. 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 Enable section Enable— Selectively activates or disables the three list controllers. Choose any combination of Position, Rotation, and Scale. Mixer—Opens the Motion Mixer, where you can Position List— When turned on, selects the See Using the Motion Mixer (page 2–604). Position controller to be collapsed into the Biped SubAnim track. Workbench—Opens the Workbench, where you layer animation files to customize biped motion. can analyze and adjust biped motion curves. 935 936 Chapter 14: character studio See Working with the Workbench (page 2–1008). Interface 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. Figure Mode—Use Figure mode (page 2–982) 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 Physique is applied, and to correct posture in motion files that need a global posture change. Note: The Modes group, Display group, and Name The Structure Rollout (page 2–984) appears when Figure mode is active. field are hidden by default. Click on the Modes and Display expansion bar to display them. Note: When Figure mode is turned on, the biped Note: In previous versions of character studio, the Biped rollout was called the General rollout. 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 (page 2–988) is active: • Footstep Creation rollout (page 2–988) • Footstep Operations rollout (page 2–990) Biped Rollout Motion Flow Mode—Create scripts and use editable transitions to combine .bip files together to create character animation in Motion Flow mode (page 2–1043). After creating a script and editing transitions, use Save Segment on the Biped rollout to store a script as one long .bip file. Save a .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 (page 2–1045) appears when Motion Flow mode is active. Mixer Mode— Activates any current Mixer (page 2–604) animation on the Biped and displays the Mixer rollout (page 2–652). Biped Playback—Plays the animation for all bipeds unless they are excluded on the Display Preferences dialog (page 2–944). This playback mode usually gives real-time playback, which you may not get if you use Play on the3ds Max toolbar. • 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 advatage 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: In Biped Playback mode, the biped is displayed as bones only, with no other scene objects visible. Load File—The Open dialog (page 2–942) lets you load .bip, .fig or .stp files. Save File—Opens the Save As dialog, 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 (page 2–999) or Convert to Footsteps dialog (page 2–999) depending on the direction. • Convert uses biped foot IK Blend values to extract footsteps. 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. 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 937 938 Chapter 14: character studio 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 (page 2–876). 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 Rollout 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. Display group Note: The Display group is hidden by default. To display it, click on the Modes and Display expander in the Biped rollout. Display Objects flyout—This flyout lets you display 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. 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. 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. 939 940 Chapter 14: character studio • 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—Turns off footsteps and footstep numbers in the viewport. 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 • Objects and Bones—Displays bones and objects simultaneously. 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. biped limbs. 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 (page 2–944) 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) 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. Interface 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. Save As dialog for a FIG, BIP, or STP file History—This drop-down list lets you choose directories where you have recently saved Biped motion files. See Motion File History Lists (page 2–920). File Name—The name of your FIG, BIP, or STP file. • 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 941 942 Chapter 14: character studio Load Motion Capture on the Motion Capture rollout. 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. 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. Interface 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. Open dialog for BIP or STP files History—This drop-down list lets you choose directories where you have recently opened Biped motion files. See Motion File History Lists (page 2–920). 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. Open Dialog (Biped) 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. Note: When you load a FIG file, the Open dialog is a standard Windows Open File dialog. • 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 only load FIG files. In other modes, you can load BIP or STP files. Motion Preview—Lets you manually scrub throught the animation in a BIP or STP file 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 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. Tip: Use Load Motion Capture File on the Motion Capture rollout (page 2–1065) to load the raw version of the motion capture .bip files that come bundled with character studio. 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. 943 944 Chapter 14: character studio If Prompt for Duplicates is off, the objects in your scene will be automatically overwritten. Interface 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. 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. Trajectories group Note: Trajectories do not display using In Place mode. Bone base—Displays bone base trajectories. 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. Track Selection Rollout 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. Track Selection Rollout Select a biped > Motion panel > Track Selection rollout 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. 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. The Track Selection rollout give you specialized tools for manipulating the biped center of mass (COM) (page 2–933). 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. The COM can be selected in different ways: • If the viewport rendering method (page 3–853) is set to Wireframe, you can select the COM in your viewport, located near the center of the biped’s pelvis. • You can turn on Move All Mode on the Biped rollout (page 2–936), which enlarges the COM in your viewport. This is useful if the viewport rendering method is set to Smooth, and the biped’s pelvis covers the center of mass. • You can open the Select Objects dialog (page 1–78), 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 945 946 Chapter 14: character studio (page 3–1025). Controlling the COM using the Track 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. The Transform gizmo centered on the biped’s COM. When you key the COM’s position or orientation using Set Key (page 3–718) or Auto Key (page 3–717), the animation data is stored within the respective biped transform tracks. Tip: To avoid deselecting the COM inadvertently, you can use Lock Selection (page 2–555) 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. The biped Transform tracks contain the COM keyed data. 4. Turn on Body Rotation on the Track Selection rollout. The Move Transform gizmo is replaced by the Rotate Transform gizmo. You can now change the biped’s orientation. Procedures To Edit the COM’s position and orientation: 1. Create a biped. To Lock all Biped COM Tools: 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. 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. Track Selection Rollout 2. Turn on Lock COM Keying. 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. When you activate Body Horizontal or Body Vertical, you have access to advanced Biped Dynamics parameters (page 3–916), such as Balance Factor (page 3–914) and Ballistic Tension (page 3–914), which you can control from the Key Info rollout (page 2–954) and Dynamics & Adaptation rollout (page 2–980). Note: Tension, Continuity, and Bias affect the COM Body Vertical keys only when the value of Dynamics Blend (page 3–932) is less than 1.0. To turn gravity off 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 (page 3–1025). 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. 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. Interface 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. 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 (page 3–708). Tip: You can also set COM positions using the Tension, Continuity and Bias values on the Key Info rollout (page 2–954) (in the TCB group). The Body Horizontal track has a Balance Factor (page 2–877) 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: Biped Dynamics (page 3–916) parameters can be animated from no effect to full effect at each keyframe. 947 948 Chapter 14: character studio Body Vertical—Selects the center of mass to edit vertical biped motion. 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 (page 3–950) (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 (page 3–914) 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 fully override the trajectory during the airborne period. Body Rotation—Selects the center of mass to 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. Opposite Tracks can be used for single or multiple objects. See also Biped Color-coded Keys and Trajectories (page 2–1005) 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 (page 2–916). Procedures edit biped rotational motion. To switch between quaternion and Euler rotation controllers: 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. 1. Create a biped. Note: Locked COM tracks are also honored after a scene reset or a session change. 3. Select the biped’s upper arm and rotate it so it extends forward. 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 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. 2. Turn on Auto Key. Quaternion/Euler Rollout 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 (page 1–18) file, from which it is restored after a scene reset or session change. 6. On the Biped Apps rollout, click Workbench to open it. 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). 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 (page 2–916) for details. Interface 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 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 949 950 Chapter 14: character studio which it is restored after a scene reset or session change. Euler — Converts the selected biped animation to Euler rotation. (forearms and calves, for instance) differ due to the fact that you can only control their twist links if you rotate their child limb. Axis Order — Lets you choose the order in which the Euler rotation curves are calculated. Availabe 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 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. 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. Tip: It is suggested that you add twist poses Procedures for all major limb rotated poses. This ensures that rotating your biped’s limb produces well-calibrated twisting. Example: To Add and Edit Twist Poses: Note: You don’t technically have to enable twist links (page 2–987) 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 This procedure takes into account the concept of adding twist links (page 2–987) 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 (page 1–55) on the biped’s limbs to better distinguish the twist links inside. Twist Poses Rollout 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. 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. 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. 8. Click Add to create a new pose. Rename it Arm At Side. 951 952 Chapter 14: character studio 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. 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. Rotate the upper arm to verify the twist links. Interface 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. 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. Default—Replaces all twist poses of all three-DOF limbs with five default preset poses. Bend Links Rollout Select the biped > Motion panel > Bend Links rollout 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. 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. 3. Rotate the link so the spine’s shape follows a noticeable curvature. 4. 2. Rotate the spine link. Notice that all chain links rotates the same way. 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: 3. On the Bend Links rollout, click Bend Links Mode to activate it. 1. Select the bottom link in the biped’s spine. 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. 2. To twist a spine naturally using Twist Links Mode: 4. Select and rotate the spine’s top link –45 degrees in local X 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. On the Bends Links rollout, click Twist Individual Mode to activate it. 3. Rotate the 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 953 954 Chapter 14: character studio 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 (page 2–962) for further details. 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 (page 2–962) 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 (page 2–962) 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. 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. Key Info Rollout • Set IK constraints and pivots for the biped hands and feet. When the Body Vertical 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 (page 2–1004). 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, Body Horizontal, and Body Rotation 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. Z Position, Dynamics Blend, Ballistic Tension are grayed. • 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 on the line next to its name. 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 and TCB controls can be used. • If Body Horizontal is selected and a key is current, the Balance Factor parameter, XY Position, Time, and TCB parameters are active. Next Key-Previous Key—Find the next or previous keyframe for the selected biped part. The field displays the key number. 955 956 Chapter 14: character studio 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. Tip: Right-click to open the Planted Key Defaults dialog, 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, 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, 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. Key Info Rollout 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. 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. Bias—Controls where the animation curve occurs with respect to the key. Default=25. Simple—Collapses the lower part of the Key Info rollout, for simplified viewing. 957 958 Chapter 14: character studio TCB group 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. 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. 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. The TCB graph is a stylized representation of the animation around a single key. Bias—Controls where the animation curve occurs Ease To—Slows the velocity of the animation curve with respect to the key. Default=25. as it approaches the key. Default=0. High Bias pushes the curve beyond the key. This produces a linear curve coming into the key and an exaggerated curve leaving the key. High Ease To causes the animation to decelerate as it approaches the key. The default setting causes no extra deceleration. Low Bias pulls the curve before the key. This produces an exaggerated curve coming into the key and a linear curve leaving the key. Key Info Rollout 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 now 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. 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 chosen is normal biped space (forward kinematics). • 1 with Body chosen is inverse kinematics, which creates more straight-line motion between biped keys. • 1 with Object chosen, but no IK Object specified, puts the limb fully into world space. • 1 with Object chosen and an IK Object specified 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. Select Pivot is available only if the biped hand or foot is in World or Object coordinate space (page 1–443). 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 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: 959 960 Chapter 14: character studio Note: When on an IK key, the left hand and foot charts use a blue/red color scheme: 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. 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. 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. 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 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), Key Info 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. 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 (page 2–936) 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. 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. 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. 961 962 Chapter 14: character studio 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. 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 (page 2–980) 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 The Coordinate Space pulldowns will set the Prop to refer to the World, Body, Right Hand or Left 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 each arm object, use the Separate Tracks group to make these transform tracks available; transform tracks are displayed in Track View. Keyframing Tools Rollout 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 When the Separate FK Tracks options are on for the Arms and Fingers, only these tracks receive keys. 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. Procedure Example: Use separate finger tracks to create a clenching fist: 1. Create a biped with five fingers that have three joints apiece. Turn on Set Parents Mode. 2. 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 When the Separate FK Tracks options are off, all limb tracks receive keys. 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. 963 964 Chapter 14: character studio Interface 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. Enable Subanims—Enables Biped subanims. For more information about Biped subanims, see Using Controllers (page 2–896) Manipulate Subanims—Modifies Biped subanims. For more information about Biped subanims, see Using Controllers (page 2–896) 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. Mirror—Mirrors the entire biped animation. 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 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 (page 2–954). 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 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 (page 2–965) 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 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. Set Multiple Keys Dialog 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. filter, then click Select to select all the left leg keys in a Move state for example (Move is the leg state between footsteps). You must turn on Set Parents Mode for these toggles to take effect. Interface 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. 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 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. 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. 965 966 Chapter 14: character studio Sideways—Sets the amount of side-to-side swing of the tail. Twist—Sets the amount of local X axis rotation of information by grouping it together. This improves the way copied animation data is organized when it is transferred between files within a session: each tail object. • You can display smaller sets of poses, postures, and tracks in the list. Select Multiple Keys group • You can load more than one CPY (page 3–925) file into a single scene. 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. Copy Collections Copy collections are designed to make it easier to manage copied posture, pose, and track • 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 Copy/Paste Rollout Freeform Animation” found in the tutorial entitled Animating with Freeform. 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 (page 2–972), click Copy Posture. Repeat this step for every 10 frames of your animation. 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. Tip: When copying poses or postures containing COM data, the Paste Options (page 2–973) are activated. 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. 967 968 Chapter 14: character studio 7. Save your scene and reset it (File > Reset). 8. Create a new biped and load the Upper collection. 9. 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. 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. 10. 11. 12. Load the Lower collection and repeat last step with the biped’s lower body selected, setting a key for each posture. 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. 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. 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 (page 2–945), move your biped away from its current position and rotate it in all three axes. Copy/Paste Rollout Example: To maintain COM offsets using By Velocity: The biped with offset position and orientation 4. 5. In the Paste Options group (page 2–973), enable all three Paste buttons. 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. 1. Create a biped. Then, on the Track Selection rollout (page 2–945), 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 (page 2–973), enable Paste Horizontal but leave By Velocity unchecked. Go to frame 30 and paste your biped’s 5. 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. Example: To set TCB/IK Values when pasting postures: 1. Create a biped and then create a new collection. Rename it Hands. Disabled both Paste Horizontal and Paste Vertical but enable Paste Rotation once again. Click Paste Pose. 2. Select the biped’s right hand and, on the Key Info rollout (page 2–954), set a key. This time, the biped’s position is maintained but not its orientation. 3. In the TCB group, set Ease To to 10, Ease From to 50, and all three TCB values to 5. 4. Paste Rotation is the only enabled button In the IK group, set IK Blend to 0.5 and choose the Object Space option. Then, set another key. 969 970 Chapter 14: 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 (page 2–962), turn Separate Tracks off for the arms. Then turn Auto Key on. 9. In the Paste Options group (page 2–973), set the Auto-Key TCB/IK Values to Default. 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. 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. 11.Go to frame 30 and turn Separate Tracks on. Copy/Paste Rollout 12. Set Auto-Key TCB/IK Values to Copied and paste the posture. Interface 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. Create Collections—Clears the current collection name and the poses, postures and tracks associated with it. 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. 971 972 Chapter 14: character studio Delete Collection—Removes the current collection from the scene. Delete All Collection—Removes all collections from the scene. name is currently displayed in the Copied Postures/Poses/Tracks list. Delete All—Deletes all the buffers in the Copied Postures/Poses/Tracks list. Posture mode Max Load Preferences—Displays a dialog with options for actions to take upon Max file open. 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 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. 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. 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 (page 2–972), Pose (page 2–972) and Track (page 2–972). 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 Delete Selected—Deletes the selected posture, pose, or track buffer. The selected buffer is the active one; that is, the buffer whose in the active buffer onto the opposite side of the biped. Copy/Paste Rollout 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 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 previous 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. 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. Paste Horizontal/Vertical/Rotation buttons—When turned on, the COM’s Body Thumbnail showing a copied left arm posture 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: (page 2–968) 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 Thumbnail showing a copied pose Capture Snapshot from Viewport—When chosen, creates a snapshot of the active 2D or 3D viewport of entire biped. Capture Snapshot Automatically—When chosen, creates a front view snapshot of the isolated body parts. 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: (page 2–969) 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 (page 3–717). 973 974 Chapter 14: character studio 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. 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 (page 2–954)) 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. Tip: You can globally translate both footstep and freeform animation by doing a layered edit on the center of mass (page 2–933). 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. Layers Rollout 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. You can save an animation containing honored constraints across layers in a BIP (page 3–916) file. However, if the layered animation links to another biped as reference, that link is not saved with the animation. Procedures 2. Select your biped and expand the Layers rollout on the Motion panel. 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. 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. 975 976 Chapter 14: character studio Only the biped’s left hand constraint is honored. Turn on Auto Key mode (page 3–717). 4. 7. 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). 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, To avoid deselecting the center of mass, you can lock it by clicking the Selection Lock Toggle (page 3–707) (or press the spacebar ). Tip: 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. simply drag the time slider (page 3–701) a few frames past your current frame, and then drag it back home. Layers Rollout The animated biped on the left and Disproportionate Biped on the right 3. Select Disproportionate Biped and enter Figure Mode (page 2–982). You can now change the biped’s structure. 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 (page 3–916) file onto one. 2. Create a second biped alongside and rename it Disproportionate Biped. 4. Scale its upper arms and thighs to make them disproportionate from the rest of its body. 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 (page 2–945). Tip: 977 978 Chapter 14: character studio 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. 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. 8. Add a new layer and rename it Retargeted Biped. 9. 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. The feet are retargeted to honor the base layer IK constraints. Layers Rollout 11. 12. 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. You can continue animating the biped to your liking. Collapse your layers when you are satisfied. Interface 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. Activate All—Activates all the layers. Playing the animation shows a composite of all the layers. 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. 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. 979 980 Chapter 14: character studio Key Highlight—Displays keys by highlighting the IK Only—When on, the biped’s constrained hands stick figures. 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. 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. 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. Dynamics & Adaptation Rollout Interface 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. 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. 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. 981 982 Chapter 14: character studio 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 Figure Mode Select the Biped > Motion Panel > Biped rollout > Figure mode 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. 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. See also Adjusting Vertical Motion (page 2–878) 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. Figure Mode • 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. • 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. • 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. Notes on Fitting the Biped to a Mesh in Figure Mode • Figure mode is used to define biped structure. The Structure rollout (page 2–984) 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). 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. • Put the lowest biped spine object at the character’s belt-line. • Scale the biped fingers to slightly protrude from the character’s hand. 983 984 Chapter 14: character studio • Rubber Band mode and scale are used to size the biped limbs to fit the biped to a mesh. and wireframe display is helpful when fingers are positioned. • Use the options from the Twist Links group (page 2–987) to transfer twisting animation in the biped’s associated mesh. Structure Rollout • 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. 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: 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 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. Select the biped and turn on Figure 2. Mode. 3. On the Structure rollout, turn on the Twists option. This enables the input fields for all biped limbs. Structure Rollout Note: Horse Link is only available if your biped has four leg links. Interface 4. Set Forearm to 5. Both forearms have five twist links. 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 (page 1–55) on the Display panel (or press Alt+x ). See-Through is turned on for the right forearm only. 5. Add a Skin modifier (page 1–791) 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. Arms—Sets whether or not arms will be generated 10.Select and adjust the Envelopes of the twist bones until the desired behavior is achieved, moving and rotating the hand to test. Neck Links—Sets the number of links in the biped neck. Default=1. Range=1 to 25. for the current biped. 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. 985 986 Chapter 14: character studio Tail Links—Sets the number of links in the biped tail. A value of 0 specifies no tail. Default=0. Range=0 to 25. centerline of the foot block, from the heel to the toe. 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. Ankle Attach=0.25 and Ankle Attach=0.5 Default=1. Range=0 to 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. Finger Links—Sets the number of links per finger. Height—Sets the height of the current biped. Fingers—Sets the number of biped fingers. 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. 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. Default=3. Range=1 to 3. Triangle Pelvis—Turn on to create links from the Tip: Characters wearing shoes might need only one upper legs to the lowest biped spine object when Physique is attached. Normally the legs are linked to the biped pelvis object. 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 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 The pelvis area can be a problem when the mesh is deformed with Physique. Triangle Pelvis creates a more natural spline for mesh deformation. Structure Rollout Note: If a limb has twists, the twist links will control the skin deformation while the base link (the biped’s forearm, for example) drives the animation. Twist links can not 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 (page 1–54). 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. Upper Arm—Sets the number of twist links in the upper arms. Default=0. Range=0 to 10. Twist Links group Calf—Sets the number of twist links in the calves. Default=0. Range=0 to 10. 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 (page 2–834) or Skin (page 1–791)) when twisting occurs on animated limbs. Use the Twist Poses rollout (page 2–950) for better control over your twist links. 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. Horse Link—Sets the number of twist links in the horse link. Default=0. Range=0 to 10. Note: You must set Leg Links to 4 to enable Horse Link. 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. • Classic— The classic body type is the same as the biped object from older versions of character studio. 987 988 Chapter 14: character studio Footstep Mode Rollouts Footstep Creation Rollout Select a Biped with footsteps > Motion panel > Biped rollout > Footstep Mode > Footstep Creation rollout Footstep Mode Select a Biped. > Motion panel > Biped rollout > Footstep Mode 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. 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. Tip: All footsteps created here are inactive; you activate them using Create Keys for Multiple Footsteps on the Footstep Operations rollout (page 2–990). 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: 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. Note: If for some reason you do not want the adaptation to occur, use the Footstep Adapt Locks settings on the Dynamics & Adaptation rollout (page 2–980) to keep the biped from correcting the body position. Two additional rollouts display when Footstep mode is active: Footstep Creation rollout (page 2–988) and Footstep Operations rollout (page 2–990). On the Biped rollout, click Footstep 1. 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. Footstep Creation Rollout 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). 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. 3. Click in a viewport to create a footstep. 4. Continue clicking to create more footsteps. Create Footsteps (insert at current frame)—Create footsteps at the current frame. On the Footstep Operations rollout, click Create Keys for Inactive Footsteps. Footstep creation alternates between left and right footsteps. 5. Play the animation. 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 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. Create Multiple Footsteps Dialog: Walk (page 2–992) Create Multiple Footsteps Dialog: Run (page 2–995) Create Multiple Footsteps Dialog: Jump (page 2–997) 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 989 990 Chapter 14: character studio 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. Interface 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. 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. 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. Inactive footsteps on the left and activated footsteps on the right 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 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. 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...). Footstep Operations Rollout 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. 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. 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. 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. 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. 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. 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 Length=1 and Length=2 991 992 Chapter 14: character studio 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. 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. Width=1 and Width=2 To make the biped speed up as it walks: 1. In the Timing group, click Interpolate. 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. 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. Interface 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 (page 2–995) and Create Multiple Footsteps Dialog: Jump (page 2–997). 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. 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 Create Multiple Footsteps Dialog: Walk 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. 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. By interpolating between the two, Biped produces a footstep series that changes over time. 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. 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. Cancel—Cancels footstep creation. Default—Resets the values on the dialog to default First Step and Last Step groups values. Parametric Stride Length—Sets the stride length for Timing group 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. Auto Timing—Sets timing parameters automatically. Auto Timing affects the following timing parameters for the Walk gait: • Walk footstep, Double Support 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 993 994 Chapter 14: character studio 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. 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. Stride Length=0.75 and Stride Length=1 Actual Stride Length—Sets the stride length for new footsteps in 3ds Max units. 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. The same rules apply as for Parametric Stride Length (described above). Walk Footstep—Specifies the number of frames Adjusting Actual Stride Length automatically changes the value for Parametric Stride Length. 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. 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. each footstep will be on the ground during a walk. 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. Stride Height=5 units Create Multiple Footsteps Dialog: Run Parametric describes the parameter in terms of biped anatomy, and Actual describes the value in 3ds Max units. 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 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. 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. automatically. Interface Auto Timing affects the following timing parameters for the Run gait: Start Left—Starts the footstep sequence with a left • Run footstep, Airborne step. Start Right—Starts the footstep sequence with a right step. 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. Timing Auto Timing—Sets timing parameters 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—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. 995 996 Chapter 14: character studio By interpolating between the two, Biped produces a footstep series that changes over time. Actual Stride Length—Sets the stride length for the When Interpolate is cleared, the Last Step parameters are grayed out. Biped creates all the footsteps using only the parameters under First Step. The same rules apply as for Parametric Stride Length (described above). new footsteps in 3ds Max units. Adjusting Actual Stride Length automatically changes the value for Parametric Stride Length. 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 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. Stride Length=0.75 and Stride Length=1 Create Multiple Footsteps Dialog: Jump Run Footstep—Specifies the number of frames each footstep will be on the ground during the run. box is cleared, the footsteps will be either right or left steps, causing the biped to hop on one foot. 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. Number of Footsteps—Determines the number of 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. 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. 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 Stride Width=1 and Stride Width=3 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 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 997 998 Chapter 14: character studio parameters, but you can’t change the Time To Next Footstep parameter. Adjusting Parametric Stride Length automatically changes the value for Actual Stride Length. 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. 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 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. 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. 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. 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. Convert to Freeform or Footsteps Dialogs 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. 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 The dotted line surrounds the 2 feet down period (15 frames) 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: • 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. • 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 999 1000 Chapter 14: character studio 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. 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. Interface Convert to Freeform dialog 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 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. 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. 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 • Select the right or left edges of footstep blocks or the whole block. Footstep Mode Dialog Interface 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). 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. 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). Both footsteps 0 and 1 are in contact with the ground for 20 frames. The freeform area appears as a yellow block between the footsteps. 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 1001 1002 Chapter 14: character studio display both numbers at the same time by selecting both boxes. Select End of Footstep—Selects rightmost key for the current footstep selection. Track View (Biped) Footsteps 0 and 1 share a double-support period of 20 frames. Graph Editors menu > Track View - Dope Sheet or Track View - Curve Editor 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. 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 the start and end frames of the footstep. The numbers between the colored boxes represent foot-air duration. 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. 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. 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. Track View (Biped) 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. transform track, unless you enable them in the Separate Tracks group of the Keyframing Tools rollout (page 2–962). 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. Editing Biped Keys in Track View How Dynamics and Footsteps Relate 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. 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 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. 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 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. 1003 1004 Chapter 14: character studio 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. 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. 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. 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. 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 in a freeform animation. A completely freeform animation contains no footsteps. 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 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 Biped Color-coded Keys and Trajectories example. In cases like this, a freeform period is specified between footsteps in Track View using the Footstep Mode dialog (page 2–1000). 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. All other keys use the default color: gray. 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. Color-coded biped keys in Track View and on the track bar 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 (page 3–920) tracks. For information about COM key color coding, check here. Note: Most of the information presented in this topic describes new functionality in 3ds Max 9 Extension 1. The only legacy functionality discussed here concerns color coding of IK keys in Track View. 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 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. 1005 1006 Chapter 14: 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. 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. 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. • FK: a key where IK Blend = 0, no matter what space it’s in From -> To Result 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 (page 2–944). Biped Shortcuts Hand trajectory The table in this topic shows the default keyboard shortcuts for character studio. To customize your shortcuts, use the path specified above. Biped Shortcuts Action Use the Keyboard Shortcut Override toggle (page 3–872) 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. Copy Posture Shortcut Description 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. 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. Create Layer Delete Layer Display Biped Trajectory See Also Display Bones Keyboard Shortcuts (page 3–871) Keyboard Panel (page 3–793) Customize User Interface Dialog (page 3–792) Display Footstep Number Display Footsteps Enable Subanims Action Shortcut Description Activate Layer (Toggle) Figure Mode Fix Graphs 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 Footstep Mode Alt+Ctrl+S Toggles foot states of the selected leg at the current frame. View the state change in the leg states displayed on the Biped rollout. Free Mode In Place Mode In Place X Mode In Place Y Mode Clear All Animation Load .bip File Clear Selected Tracks Lock Selected Keys (toggle) Collapse Layer Collapse Move All Mode Changes Alt+M 1007 1008 Chapter 14: character studio Action Shortcut Description Manipulate Subanims Action Shortcut Description Set Sliding Key Smooth Twist Mode Mirror Mixer Mode Motion Flow Mode Move All 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. Next Layer Paste Posture Paste Posture Opposite Play Biped Alt+V Alt+B V Pastes the posture from the clipboard onto the currently selected biped. Pastes Posture Opposite for the currently selected biped. Toggles Biped playback. Previous Layer Reset all limb keys Twist Links Mode * Not available for customization in the Customize User Interface dialog. Alt+K Rubber Band Mode Using the Workbench 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. Scale Stride Mode Set Free Key Set Key Set Layer Snap Key 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. Set Multiple Keys See also Set Planted Key Navigating the Workbench (page 2–1010) Set Range Alt+R Resets the total animation length to the length of the current biped footstep range. Working with the Workbench 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. 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 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. The Animation Workbench provides three types of tools to use with biped animation: analyzers, fixers, and filters. 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. Analyzers 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. 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 (page 2–1017). 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 (page 2–1020). 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. Errors displayed as yellow lines in Curve View The Rot Smoothing, Rot Blurring, Rot Boosting, Adv Rot Smoothing, Pos Smoothing, Pos Blurring and Pos Boosting filters are all variants of one 1009 1010 Chapter 14: character studio type of filter. They all share the same parameters: Width and Damping. button in the Workbench toolbar to hide the panel display. For more information on these filter types, see Filters Panel (page 2–1023). Displaying the Controller List 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. 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. 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 (page 2–1016), 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. See also Selecting Workbench Tracks (page 2–1011) 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 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 Selecting Workbench Tracks 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. Tip: This works best if you change your layout so there is at least one horizontal viewport. 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 (page 2–1016) to select biped parts by name. The functionality of the Select panel is derived from the 3ds Max Select Objects dialog; you can invert selection sets or enter names 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. 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. 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 1011 1012 Chapter 14: character studio 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. 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. 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. Workbench User Interface 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. 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. Animation Workbench 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 (page 2–1004). 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 Only one curve is displayed because the upper spine rotates in local space by default. 5. Select the biped’s head. 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. Procedures To display the local rotation curve of an animated spine link: 1. Create a biped and select its upper spine link. 2. 3. Set a key at frame 0. Go to frame 10 and rotate the spine link 30 degrees in the local Z axis. 4. Open the animation workbench. 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. 1013 1014 Chapter 14: character studio Interface 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. 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 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 (page 2–1016). • Analyze panel—Evaluates the curves for error conditions. For more information on the Analyze panel user interface, see Analyze Panel (page 2–1017). • 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 (page 2–1020). • 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 (page 2–1023). 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. 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, Animation Workbench Position Curves, respectively, in the Biped toolbar of the Curve Editor (page 2–535). 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 (page 2–948). 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. 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. 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 (page 2–535). The 180 limit—Sets the Quat Curve to display as “clamped” between 180 and –180 degrees, instead of accumulated. Default=off. 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. 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. 1015 1016 Chapter 14: character studio See also Working with the Workbench (page 2–1008) 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. The selected biped part’s animation tracks can be manipulated using 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 the selection has been made, you can hide the entire Tab area by clicking the Tab button on the Workbench toolbar. This will give you more room to work on the curves in Curve View. The functionality of the Select tab is similar to the standard 3ds Max Select Objects dialog (page 1–78). See also Analyze Panel (page 2–1017) Procedures To display a biped body part curve in the Workbench, do one of the following: • 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. • On the Select panel of the Animation workbench, click to highlight the name of the body part in the scrollable Selection list. • 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. Interface Analyze Panel 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 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. 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. Brown lines on the curve show the errors. Procedure 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. 1017 1018 Chapter 14: character studio By default, there are two choices: Noise Detector and Spike Detector. Interface 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. Parts to Analyze— These options choose which parts to analyze: • Display Curve Part—When this is turned on, the curve displayed is analyzed. • 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. Analyze Panel 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. • 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—Looks for noise in the jerk of the rotational angle. • Pos Speed—Looks for noise in the speed of the position. • Pos Accel—Looks for noise in the acceleration of the position. • Pos Jerk—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. 1019 1020 Chapter 14: character studio 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. 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 (page 2–1023) Load Analysis File—Loads the results of a previous analysis. Procedures To fix an individual error: Save Analysis—Saves the results of the latest analysis. See also Fix Panel (page 2–1020) 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. 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 (page 2–1017). 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 5. Play the animation in the viewport to see if the error has been corrected. 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. Fix Panel 3. Click Fix All. Interface 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. 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 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. 1021 1022 Chapter 14: character studio 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—Fixes errors by deleting keys based on an interval setting. • 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. 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 Filters Panel center-of-mass object is adjusted so that the knee angle doesn’t exceed the limit. Procedure This parameter is available only when Knee Extension is the fixer. 1. Choose the parts you want to filter: either just a • 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. To filter a track: 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. This parameter is available only when Knee Wobble is the fixer. 5. Observe the effect on the graph in the Curve 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. 6. Play the animation in the viewport and observe 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. 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." view. the difference, if any. Click Undo if the results are unexpected or incorrect. 1023 1024 Chapter 14: character studio Interface • 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 (page 2–1025), below. 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). • 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 (page 2–1025). Filters Panel (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 (page 2–1025). • 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. 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 Sub Anim parameters See Sub Anim parameters (page 2–1025). • 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 (page 2–1026). • 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. 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 1025 1026 Chapter 14: character studio 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. Using Motion Flow Select a biped > Motion panel > Biped rollout > Motion Flow Mode Key Reducer parameters Create Key Per Frame—When on, the filter creates a key per frame for every selected track. Default=off. 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. 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 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 (page 2–1055) 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 Placing Motions on the Motion Flow Graph 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 (page 2–1154). Placing Motions on the Motion Flow Graph The Motion Flow Graph (page 2–1045) 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 (page 2–1045) 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. 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 (page 2–1045). 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 Open the Motion panel. 2. Click Motion Flow Mode on the Biped 3. rollout. 4. On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. 5. 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 (page 2–1045) that are named clip1, clip2 and so on. Motion Flow Graph 7. On the Motion Flow Graph toolbar, click Select Clip/Transition. 1027 1028 Chapter 14: character studio 8. Right-click over a clip in the window. A clip dialog is displayed. Once processed, multiple clips appear in the Motion Flow Graph (page 2–1045) window. 9. Click Browse in the clip dialog and choose a .bip file. 10. Optionally, set the start and end frame and Note: The number of clips you can load depends on then click OK. the amount of memory you have in your system. The selected icon displays the clip name in the Motion Flow Graph (page 2–1045); this clip can now be used for script creation. 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 (page 2–1051) or automatically by the software. 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. On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. 2. 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. 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 Creating Transitions 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. The top set of clips are linked using Create Transition From->To. The bottom set of clips are linked using Create Transition To<-From. Procedures To create transitions using From > To or To < From method: To create transitions using Create All Transitions: 1. On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. 1. On the Motion Flow rollout, click the Show Graph button to open the Motion Flow Graph. 2. On the Motion Flow Graph toolbar, click Create Multiple Clips. 2. 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 4. 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. multiple clips in the Open dialog. Once processed, multiple clips appear in Motion Flow Graph (page 2–1045). Once processed, multiple clips appear in the Motion Flow Graph dialog. 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. 4. Click Select Clip/Transition and select all the clips you added. 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. 1029 1030 Chapter 14: character studio 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. 3. Click OK. A processing bar scrolls across the top of the Motion Flow Graph (page 2–1045). Creating a Motion Flow Script Select a biped. > Motion panel > Biped rollout > Motion Flow Mode Selected transitions display in white 2. On the Motion Flow toolbar, click Optimize Selected Transitions . The Transition Optimization dialog is displayed. A script is a list of clips (.bip files) that controls the character you are animating. To create a script, add clips to the Motion Flow Graph (page 2–1045), then click Define Script in the Scripts section of the Motion Flow rollout (page 2–1045), 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. Creating a Motion Flow Script For information on how to set up the graph, see To create multiple clips in the Motion Flow Graph (page 2–1028). 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 (page 2–1045). As you select the clips in the Motion Flow Graph dialog, they are added to the 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. 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. Procedure To create a Motion Flow script: 1. Create a motion flow graph with three or more motion files. 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. 1031 1032 Chapter 14: character studio 4. Click the Play Animation button to see the biped move to the scripted clips. script from one biped and load it onto another biped. Saving, loading, and appending .mfe files are done from the Motion Flow rollout. Procedure 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 (page 2–1028). 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. 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. A .mfe file allows you to save a Motion Flow and 2. Create a script using the clips in the Motion Flow Graph. For information on how to create a script, see To create Motion Flow Scripts (page 2–1031). Saving, Loading, and Appending Motion Flow Graphs To load Motion Flow Editor files: 1. Select a biped. Open the Motion panel. 2. On the Biped rollout, click Motion Flow 3. mode . On the Motion Flow rollout, click Load 4. File. The Open dialog is displayed. A sample script called Kicking Script containing four clips 5. Navigate to the folder where your .mfe files are stored. 3. Click the Save File button to save a, Motion Flow Editor .mfefile. 6. Choose the file to load. 7. The Save As dialog is displayed. Click the Play Animation button to see the biped move to the scripted clips. To append Motion Flow Editor files: 1. Select a biped. Open the Motion panel. 2. 3. On the Biped rollout, click Motion Flow mode . On the Motion Flow rollout, click Load 4. 4. Specify a folder on your hard drive where you plan to store your Motion Flow Editor files. File . The Open dialog is displayed. 1033 1034 Chapter 14: character studio 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. • If you have defined a script, highlight a clip and click the Edit Transition button. 5. Select a .mfe file from the folder where your Motion Flow Editor files are stored. 6. Click Append File. The Open dialog is displayed again. 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 (page 2–1031) 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 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. Creating Random Motion 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. 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. 7. Choose either Search Entire Clip or Search Near Existing Transition, and click OK. 8. Click OK on the Transition Editor dialog. 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 (page 2–1031) 3. Choose the first clip in the clip list in the Scripts section on the Motion Flow rollout. 4. 5. 6. Click Edit Transition to display the Transition Editor for the selected clip and the clip following it in the list. At the upper-left corner of the Transition Editor, click Next Transition in Script. Click Optimize Transition. The Transition Optimization dialog is displayed. 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. 1035 1036 Chapter 14: character studio when asked if you want to create transitions from each selected clip to itself. 6. All the transitions linking clips are weighted at 100, meaning all the transitions have a even chance of starting first. Note: If you want to create random motion for multiple bipeds, they must be sharing a motion flow. On the Motion Flow Graph toolbar, click Select Random Start Clips. 7. Region select all the clips in the Motion Flow Graph. Procedure The clips all turn purple and are assigned a weighting of 100. All the clips have an even chance of starting first. 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. 5. After adding several clips and transitions, click Select Clip/Transition and select all the clips. On the Motion Flow Graph, click Synthesize Motion Flow Graph and click Yes 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. Creating Random Motion 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. 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. 4. Choose a .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. 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. To customize transition “weighting” and setting a start clip: 1. Oon the Biped rollout, select a biped and turn on Motion Flow Mode. 2. On the Motion Flow rollout, click Show Graph. Note: The Probability range is 0 to 100. 7. On the Motion Flow Graph toolbar, click Select Random Start Clips. 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. This displays the Motion Flow Graph. On the Motion Flow rollout, click Load 3. Click Select Clip/Transition and right-click a transition that you want to adjust. File The Open dialog is displayed. 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. 1037 1038 Chapter 14: character studio A new layer is created and you see a red skeleton appear on your biped. 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. 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 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. Procedure 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. On the Motion Flow rollout, click Load File and choose 1flobees.mfe from the Open dialog. Click Create Unified Motion. 6. On the Biped rollout, turn off Motion Flow mode. 7. Open the Layers rollout and click Create Layer. 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. Sharing Motion Flow 10. Turn off Auto Key and click Play Animation. Procedure Example: To share a random motion flow among multiple bipeds: 1. Create three bipeds. Sharing Motion Flow Shared Motion Flow (page 2–1056) 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. 2. On the Biped rollout, turn on Motion Flow Mode . 3. 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. 6. Click Select Clip/Transition and region select all the clips. 7. 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. 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. 1039 1040 Chapter 14: 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. 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. 15. In the Scripts section of the Motion Flow rollout, click Create Random Motion. The Create Random Motion dialog is displayed. 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. 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. Setting Up Paths for Motion Flow Files 18. 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. Click Play Animation or scrub the time slider to view the transition. To apply a shared motion flow to a different group of bipeds: New in character studio is the ability to 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 (page 2–1175). 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. 5. On the Shared Motion Flow dialog, click New, and then click Load and load the shared motion flow from step 2. 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 (page 2–1154) 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 to the motion flow directory specified in \plugcfg\biped.ini. By default, this directory is MoFlowDir= \cstudio\moflow. If a .bip file is not found in the motion flow directory specified in the biped.ini file, 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. 1041 1042 Chapter 14: character studio 2. If any of the referenced .bip files are on your • Find and move the missing .bip file to the specified Motion Flow folder. Note: When you find the .bip file, you can turn local drive, navigate to the folder where they reside and select the .bip file. 3. Turn on the Add Directory To .ini File option, 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. and click Open. Turning on the Add Directory To .ini File option automatically adds another MoFlowDir= line to your biped.ini file. The program 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. 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. Procedure 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. 4. Click Play Animation after paths for all the referenced .bip files are properly set. Motion Flow Mode Motion Flow User Interface Select a biped. > Motion panel > Biped rollout > Motion Flow Mode 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 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 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, clips are added and referenced to BIP files in the Motion Flow Graph. These are then selected to create a script in the Motion Flow Script list. The Transition Editor is used to adjust transitions between BIP files. Scripts, transitions, and clip references are saved in a Motion Flow Editor file (MFE) for later editing. Random Motion and Crowds Random motions can be created for one or more bipeds using the Create Random Motion command. You can animate a crowd of bipeds for example. For a crowd, you must share one motion flow script among many bipeds. • Motion Flow (page 2–1045): Display the Motion Flow Graph; load and save motion flow files (MFE). The Motion Flow 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. Select Show Graph on the Motion Flow rollout 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 1043 1044 Chapter 14: character studio 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 (page 2–1051) 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 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 (page 3–487) and set a new path of the missing files. See also The additional topics that discuss Motion Flow mode in this section are: Motion Flow Rollout (page 2–1045) Motion Flow Graph Dialog (page 2–1045) Motion Flow Scripts Group (page 2–1048) Transition Editor (page 2–1051) Create Random Motion Dialog (page 2–1055) Shared Motion Flow Dialog (page 2–1056) Transition Optimization Dialog (page 2–1058) Clip Properties Dialog (page 2–1059) Motion Flow Rollout 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 turned on in the Biped rollout. Load, append, and save motion flow editor files (.mfe), display the Motion Flow Graph (page 2–1045) and display the Shared Motion Flow dialog 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 (page 2–1033) • To append Motion Flow Editor files (page 2–1033) • To save Motion Flow Editor files (page 2–1032) Interface 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 a .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 Load File—Load a Motion Flow Editor file (.mfe). Motion Flow Editor files include: • Clips—References to biped animation files. • Transitions—Names, attributes, and connections between clips. • Scripts—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 to the Motion Flow directory specified in plugcfg\biped.ini. By default, this setting is: MoFlowDir= \cstudio\moflow If you load an .mfe file onto a biped using a shared motion flow, you will get a warning and the biped (page 2–1045). The first step in script creation is to add clips to the Motion Flow Graph. Shared Motion Flow— Displays the Shared Motion Flows dialog (page 2–1056). 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 1045 1046 Chapter 14: character studio 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 (page 2–1045) 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 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. 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. A .mfe file stores pointers to the clips, transition parameters, and scripts. See Placing Motions on the Motion Flow Graph (page 2–1027) to add clips to the graph, or Creating Random Motion (page 2–1035) to create a random script and transitions. Interface 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 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 (page 2–1059); then select a .bip file and Motion Flow Graph Dialog 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 (page 2–1051) 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 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. Right-click a clip to display the Clip Properties dialog (page 2–1059). Right-click a transition to display the Transition Editor dialog (page 2–1051). 1047 1048 Chapter 14: character studio 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. 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 (page 2–1058) 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. 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 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 Motion Flow Scripts Group 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 (page 2–1043) is active. 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 Plug-in Keyboard Shortcut Toggle near the 3ds Max status line to enable character studio 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 (page 2–1051) 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. For more information regarding scripts, refer to Creating a Motion Flow Script (page 2–1030). 1049 1050 Chapter 14: character studio Interface • Append to End of Script—Appends a clip to the end of the clip list. Create Random Motion—Displays the Create Random Motion (page 2–1055) 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. 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—Inserts a clip below the selected clip in the list. 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 (page 2–1059). 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. Transition Editor The clip name in the script list and the icon in the graph window are updated if the clip is replaced. Edit Transition—Displays the Transition Editor (page 2–1051) for the selected clip. Transition Editor Select a biped. > Motion panel > Biped rollout > Motion Flow Mode > Scripts group > Select a clip in the script list. > Transition Editor 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. 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. Note: Right-clicking a transition “arrow” in the 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 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. 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. Transitions 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 a .mfe file. 1051 1052 Chapter 14: character studio Automatic Transitions Other Transition Editor Features 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). 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. 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. 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 All transitions and their attributes are saved with a .mfe file. See Customizing Transitions (page 2–1034) to manually and automatically customize transitions. Interface 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 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). 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. Transition Editor 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. • Left Foot—The transition focus is based on the left foot position of the biped as it transitions from one clip to the next. 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 (page 2–1058) 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. • 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. 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. 1053 1054 Chapter 14: character studio Ghost group 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 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. These controls let you play back the transition from the Transition Editor dialog. • Play Transition Icon— Toggles the playback of transition. • Speed— Changes the playback speed. • Frames Before/Frames After— Sets the number of frames to play before and after the transition period. • Selected Only—When checked, plays only the selected biped in the scene. • Play Ghosts— When checked, shows transition ghosts during playback. 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. 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. Note: Clicking OK saves the displayed transition. Create Transition is used only if you want to work on a new transition. Create Random Motion Dialog Delete Transition—Click to delete a transition. Interface 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 (page 2–1035). 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 1055 1056 Chapter 14: character studio order to generate the random motion, but it will be deleted after the random motion is generated. 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. A .bip extension will be 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 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 (page 2–1039) for more details about setting up a shared motion flow. Shared Motion Flow Dialog Interface 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: (page 2–1041). Load .mfe—Displays a load file dialog. Load an .mfe file into the shared motion flow. Note: If you load a .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. 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. 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. 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. 1057 1058 Chapter 14: character studio 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. 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 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. Interface 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. Preferred Transition Length—Specify the length of the optimized transition. Search Entire Clip—Search the entire clip for an 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. 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 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 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. 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. 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. Interface 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. Clip Name—The clip name as it appears in the Motion Flow Graph. 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. 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 Using Motion Capture 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 (page 2–1026) or the Motion Mixer (page 2–604). 1059 1060 Chapter 14: character studio 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 (page 3–969), 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 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 Importing Motion-Capture Data 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 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 (page 2–1061) Filtering Motion-Capture and Marker Data (page 2–1061) Sliding Footsteps (page 2–1064) Prop Bone (page 2–1065) Importing Motion-Capture Data In character studio, you can import both rotation and position type motion-capture files. 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 (page 2–1065). 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 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. The edited script can then be saved 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 (page 2–1065). • 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 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 1061 1062 Chapter 14: character studio 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. Character Studio Marker Files The .csm format (page 3–925) is an ASCII file used to import positional marker data from motion-capture systems onto a biped. 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. 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, Motion Capture rollout should be imported with no key reduction and no footstep extraction. This enables the calibration buttons. Marker files typically need some calibration. Filtering Motion-Capture and Marker Data The Motion Capture Conversion Parameters dialog displays (see Motion Capture Conversion Parameters Dialog (page 2–1070)). 4. Select a file and click Open. The Motion Capture Conversion Parameters dialog displays (see Motion Capture Conversion Parameters Dialog (page 2–1070)). 5. Adjust the filter parameters and click OK. 5. Select the filter options you want and click OK. Note: Load raw marker data (No Key Reduction, Freeform) to enable the marker calibration buttons. The biped adapts itself to the motion data. If Footstep Extraction is turned on, footsteps appear. The biped adapts itself to the marker data. 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. 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. 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. 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. 1. Select a biped. 2. On the Motion Capture rollout, click Load Marker Name File to load a marker name file (.mnm). This step is not required if the marker names in the marker file adhere to the character studio 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. 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. 11. Use Save Talent Figure Structure and Save Talent Pose Adjustment as a .fig and .cal file. 4. On the Motion Capture rollout, click Load Motion Capture File and choose a .csm marker file. 12. Load these files in the Motion Capture Conversion Parameters dialog when similar marker files are imported in the future. 1063 1064 Chapter 14: character studio 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 (page 2–1070). 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. 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 (page 2–1064) 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 (page 2–1064) 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. Prop Bone Prop Bone Motion Capture User Interface 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: 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 (page 2–16) 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. • 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 (page 2–1065). This buffered raw motion data is 1065 1066 Chapter 14: character studio independent of the biped motion in your scene, and can be used in various ways: • Use Convert From Buffer 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 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. • If you specify Load Buffer Only in the Motion Capture Conversion Parameters dialog (page 2–1070), 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. biped scale and posture relative to the markers, use Convert From Buffer 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 (page 2–1061) 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. 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. Marker Files To use Show Buffer: Unlike a BIP or BVH file that contains limb rotation data, a CSM marker file (page 3–969) 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 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. Motion Capture Rollout Play the animation; the animation of the biped representing filtered motion-capture data and the red stick figure play back together. Note: Load raw marker data (No Key Reduction, Tip: For a very accurate visual comparison 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. 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 (page 2–1071). 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 (page 3–973)). 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 (page 2–1070) 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. Freeform) to enable the marker calibration buttons. 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. 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. 1067 1068 Chapter 14: character studio 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 the stored biped structure. This is an Open dialog option. 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. 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 (page 2–1070) 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 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 Motion Capture Rollout 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. 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 (page 2–1075). 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. 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. 1069 1070 Chapter 14: character studio 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. 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 (page 2–1075), 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 and Adjust Talent Pose. See also Marker Files (page 3–969) 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. Motion Capture Conversion Parameters Dialog 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. 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. 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. 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 Procedure 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. 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. 1071 1072 Chapter 14: character studio 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 • 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. • On—Extracts footsteps. Fit To Existing option on the Motion Capture Conversion Parameters dialog. Direction and style of the motion-capture data are easily edited. 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. 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. Interface 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. 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: • 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 Motion Capture Conversion Parameters Dialog footstep extraction to enable the calibration controls on the Motion Capture rollout. Note: Sliding footsteps display as a footstep with a • 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. Sliding Angle—Creates a sliding footstep (page 2–1064) 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. Tip: To compare the filtered data with raw motion-capture data, use Show Buffer on the Motion Capture rollout (page 2–1065) 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. 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. line through the center. 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. Load Frames group 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 (page 2–1064) 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). 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. 1073 1074 Chapter 14: character studio 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. Minimum Key Spacing—Sets the minimum number of frames between keys. Tolerance is computed first, then Minimum Key Spacing computes further key reduction. is tuned off. A Minimum Key Spacing value of 10 for the head track ensures that no two keys are closer than 10 frames for this track. Key Reduction Settings group Filter—Turn off to prevent filtering of the motion 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. Set All—Forces all tracks to the values set in these Note: This often works best if Footstep Extraction 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. capture data into a track. When this is off, there is no key reduction for the track. fields. 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. 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. 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 Motion Capture Batch File Conversion Dialog 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. 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—Imported files use a single set of conversion parameters. • Specify Parameters For Each File—You specify conversion parameters for each file. Marker Display Dialog 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. Create or select a biped. > Motion panel > Motion Capture rollout > Show Markers button 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 (page 3–920). Interface 1075 1076 Chapter 14: character studio Show Recognized Markers—When on, displays the markers that character studio recognizes. • On Selected Objects—Displays the markers on selected objects only. • On All Objects—Displays the markers on all objects. Show Prop Markers—Enables the display of markers on prop bones (page 2–1065). Show Unrecognized Markers—Displays the markers that character studio does not recognize. Physique 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. • 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. • 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 (page 2–847) Using Physique With Physique, you can define how the skin behaves when it deforms. For example: Creating a Skin • 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. 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. Creating a Skin 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. 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. 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. • 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. • 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. 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 1077 1078 Chapter 14: character studio 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. 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. 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. 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. Using Physique with a Biped 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. 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 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. This Physique hierarchy is created with dummy objects linked to each other. 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. Physique mesh with a biped skeleton. 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. Physique can use a spline to defrom the mesh. 1079 1080 Chapter 14: character studio 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. control when Physique is applied. In both cases the bones compress automatically as the biped is positioned. 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. 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 Using Physique with 3ds Max Bones 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: 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 create links and envelopes when Physique is applied; these extra Physique links offer localized skin control if necessary. 1. Turn on Figure mode. 2. Add a bone where it is needed. 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 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. This bone is used to animate the character’s nose. 1081 1082 Chapter 14: character studio To add a bone after Physique is applied using Add (Add Bone): 1. Turn on Figure mode. 2. Add a bone where it is needed. 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. 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. 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. Applying and Initializing Physique 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: 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 1. Place a spline inside a mesh. Procedure 2. Select the mesh and add the Physique modifier. To attach a mesh to a bones hierarchy using Physique: 3. In the Physique Floating Bones rollout, click Add and select the spline in the viewports. 1. Select or create a bones hierarchy. 4. Select the spline, turn on Vertex Sub-Object, and move the spline vertices to animate the mesh. Position the bones hierarchy inside the 2. 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. The Physique Initialization dialog (page 2–1111) is displayed. See also Using Physique with a Biped (page 2–1079) Applying and Initializing Physique After you have created a skin and a skeleton, and fitted the skeleton to the skin, you apply the 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. 1083 1084 Chapter 14: character studio 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 See also Physique Rollout (page 2–1106) 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. A stray vertex on the right elbow not encompassed by an envelope. See the Envelope Sub-Object (page 2–1130) 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 (page 2–1108). 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 . Envelopes Envelopes and Vertex Assignments 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. 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. Deformable envelopes (above); Rigid envelopes (below) 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. • 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 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. 1085 1086 Chapter 14: character studio Blending Between Links 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 (page 2–1125). See also Envelope Sub-Object (page 2–1130) Blending between envelopes controls deformation. Adjusting Default Envelope Shape 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. 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 is an envelope that istoo small to surround, and thereby influence, certain vertices. 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. 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. Inner and Outer Bounds 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. 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 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. Adjusting Default Envelope Shape To adjust envelopes around the biped’s pelvis: Stray vertices (above) reassigned to correct link(s) by modifying envelope shape (below). 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 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. Bottom: Increasing the envelope size corrects the mesh problem in the pelvis area. 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. 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. 1087 1088 Chapter 14: character studio 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. 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. See also Envelope Sub-Object (page 2–1130) 3. Turn on Select Object on the Main toolbar, and in a viewport, click the cross section you want. Fine-Tuning Envelopes (page 2–1088) 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. Fine-Tuning Envelopes By default, selected cross sections are yellow. (You can customize this color with the Blending Envelope Display Options dialog (page 2–1125).) 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. 5. To move to the adjacent cross section within the current bound, click Next or Previous. You can also use the Control Point level to individually transform cross section control points. Tip: 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. Customizing Vertex Assignments Envelope cross sections can be scaled and moved. By moving a control point the envelope is also scaled. Using Control Points See also 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. Envelope Sub-Object (page 2–1130) 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. 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: 1089 1090 Chapter 14: character studio perhaps movement in the ring finger is causing unwanted movement 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 (page 2–1150) rollouts appear. Envelope Display Options Interactive Redraw Choose Initial Skeletal Pose (page 2–1099) 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 (page 2–1088) Working with Deformable Envelopes 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 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: Changing Display Options • Link sub-object primarily controls the deformation spline (page 3–927). You use Link sub-object options to affect the shape of the spline and the smoothness of the skin. See Adjusting Link Parameters (page 2–1091). 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. • Skin bending, twisting, sliding, and scaling about single links are controlled at the Link sub-object level. See Adjusting Link Parameters (page 2–1091). • Crease behavior where links meet and bend is controlled at the Link sub-object level with Joint Intersection (page 2–1140) 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 (page 2–1094). • 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 (page 2–1096). Working with Rigid Envelopes See also See also Link Sub-Object (page 2–1135) Envelope Sub-Object (page 2–1130) Bulge Sub-Object (page 2–1141) Tendons Sub-Object (page 2–1147) Working with Both Deformable and Rigid Envelopes Working with 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. 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 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. 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 (page 2–1130) 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. 1091 1092 Chapter 14: character studio 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. Links depicted by deformable spline. You can use controls at the Link sub-object level (page 2–1135) 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 (page 2–1136): • 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 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 (page 2–1136). 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. Bulges In Cases where No Envelopes Use Partial Blending (the Default) deformation is essentially an undeformed portion that simply follows the root of the skeleton. 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 Cases where Some Envelopes Use Partial Blending and Some Do Not 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). The resulting deformation will be w1*l1 + w2*l2 + w3*l3 + wf*root. The root portion of this 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 (page 2–1096) and bulges: 1093 1094 Chapter 14: character studio • 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. 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 (page 2–1114), 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 (page 2–1094) 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 (page 2–1141) 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 (page 2–1095) 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. Setting Bulge Angles See also Bulge Sub-Object (page 2–1141) 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. 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 (page 2–1096). 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 (page 2–1098). 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) 1095 1096 Chapter 14: character studio Keep in mind that bulge angles can be set for arbitrary rotations, and are not limited to single-axis hinge joints. Tendons See also 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. Bulge Sub-Object (page 2–1141) Fine-Tuning Bulges The Bulge Editor (page 2–1114) 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. 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. see Creating Tendons (page 2–1096) for more information about creating tendons. See also Tendons Sub-Object (page 2–1147) Creating Tendons Like tendons in an actual body, tendons in Physique (page 2–1147) 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 Creating Tendons might have two control points attached to each of the left and right clavicles. 13. Adjust the Upper and Lower Boundary settings to control the extent of the effect on neighboring links. 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. To attach a tendon to another link: 1. 2. In a viewport, select one or more of the tendon’s attach points. 3. In the Insert Settings group, click to turn on Click a point to select it; use Ctrl +click to add points to the selection; or drag a rectangular region to select multiple points. 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. 3. In the Edit Commands group, turn on Attach. 4. In a viewport, click the link to which you want to attach the tendon. 6. Click to turn off Insert. 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. 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. 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. 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. In the Selection Level group of the Tendons rollout, turn on Control Point to make it the active selection level. 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. 1097 1098 Chapter 14: character studio 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 (page 2–1106) Physique Load Specification Dialog (page 2–1123) 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. 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 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 (page 2–1113) Working with an Initial Pose 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. Procedure 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. See also Level of Detail Controls The controls in the Physique Level of Detail rollout (page 2–1108) 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 (page 2–1111) is set to N Links (page 3–978). This means that every envelope must be considered when determining the influence on any vertex (page 2–1123). 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. 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. Figure Mode (page 2–982) Using the Optimize Modifier with Physique Improving Interactive Performance Physique is multithreaded and optimized for modifier stack changes below the Physique modifier. 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 1099 1100 Chapter 14: character studio Detail rollout (page 2–1108) 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. Procedure 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. 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 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. 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. 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. 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. Splines used for detailed facial animation. 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. 1101 1102 Chapter 14: character studio 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. 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 Facial Animation 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. 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 (page 2–27) are useful for setting up a custom user interface for bone animation. 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. Procedure 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. 1103 1104 Chapter 14: character studio 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. 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 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 (page 2–1108) to determine how Physique handles animated vertices coming up the modifier stack. 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. 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 Physique and Free Form Deformations (FFDs) example, you could use this technique to animate a credit card or a box of cereal. 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. 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. 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. 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 (page 2–1150) 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 1105 1106 Chapter 14: character studio fewer assignments provide smoother surface deformation with the FFD, control points and their link assignments must be thoughtfully placed. Procedures To attach a mesh to a biped using Physique: 1. Select or create a biped. 2. Physique User Interface Go to the Motion panel. On the Biped rollout, click to turn on Figure mode. Position the biped inside your character 3. mesh. Physique User Interface Important: If the mesh is made of multiple objects, select all of them. 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 Physique is a modifier. Controls for Physique appear on the Modify panel. The Physique and Floating Bones rollouts are for attaching the mesh to the biped, splines, or bones. 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. 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 (page 2–1111) 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. See also Physique (page 3–994) 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 (page 2–1076) 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 (page 2–1114); and to load or save Physique (PHY) files. Select the mesh. 4. To attach a mesh to a bones hierarchy using Physique: 1. Select or create a bones hierarchy. Position the bones hierarchy inside the 2. mesh. Tip: When you use a bones hierarchy with Physique, use frame 0 as your "figure mode." Physique Rollout 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. 2. Enter a name for the new Physique file, and then click OK. To load Physique data: 3. Select the mesh. 1. 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. With Physique active on the Modify panel, click Open Physique File on the Physique rollout. A file open dialog is displayed. 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. 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 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. 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. Attach to Node—Attaches the mesh objects to the biped or to a bones hierarchy. 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. 1107 1108 Chapter 14: character studio After you select a node in the viewports, the Physique Initialization dialog (page 2–1111) is displayed. Accept the default values in this dialog, then click Initialize. Physique traverses the biped or bone hierarchy, and creates an envelope (page 2–1130) 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 (page 2–1113) 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 (page 2–1114), 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 (page 2–1123) 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. 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. Physique Level of Detail Rollout Procedure To troubleshoot bulges and tendons: Viewports—When chosen, settings in the Skin Update gropu affect viewports. 1. Select the mesh of a character that has bulges Skin Update group 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. 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 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—Turn off to remove any bulge angle influence. Default=on. • Tendons—Turn off to remove any tendon influence. Default=on. • Skin Sliding—Turn off to remove skin sliding influence. Default=on. • Link Blending—Turn off to remove the influence of link blending. Default=on. 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. Renderer—When chosen, settings in the Skin Update group affect rendered images. 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 1109 1110 Chapter 14: character studio 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. 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. Procedure 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. Tip: If you want to control the mesh by animating bones, follow the previous steps using bones instead of a spline. Physique Shortcuts Interface Add—Displays a Select Bones dialog so you can Action Shortcut 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. 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 Physique Dialogs highlight its name in the list, and then click Delete. Physique Initialization Dialog Physique Shortcuts 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 Turn on the Keyboard Shortcut Override toggle (page 3–872) 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 (page 3–871) 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 (page 2–1106) on the Modify panel. • When you click Reinitialize on the Physique rollout. Keyboard Panel (page 3–793) Customize User Interface Dialog (page 3–792) Action Copy Envelope Shortcut Ctrl+C Description 1111 1112 Chapter 14: character studio Creating Physique Links and Envelopes for the First Time Interface 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 (page 2–1123) 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 (page 2–1141) and link sub-object (page 2–1135) 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. 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. See Reinitialize Physique (page 2–1113) 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 (page 2–1135) for a command reference. Reinitialize Physique Joint Intersections rollout The Joint Intersections rollout contains default joint intersection values that will be assigned to all links. See Link Sub-Object (page 2–1135) for a command reference. 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. Cross Sections rollout See also The Cross Sections rollout (page 2–1125) sets the default Bulge Angle parameter settings for new bulges. Physique Initialization Dialog (page 2–1111) Interface Vertex-Link Assignment Rollout On the Vertex-Link Assignment rollout (page 2–1123) 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. 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. 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. 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. 1113 1114 Chapter 14: character studio 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 (page 2–1100)). • 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 (page 2–1136) and the Joint Intersections rollout (page 2–1140). 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 (page 2–1125). 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 (page 2–1123). 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. 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 (page 2–1106), from the Bulge rollout at the Bulge sub-object level (page 2–1141), 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 (page 2–1147). Bulge Editor 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. Bulge Angle Color at the Bulge sub-object level, and selecting a color with the Color Selector. 5. 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 (page 2–1115): 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. 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. 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. The Bulge Editor is displayed. 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 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. 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 an arm or leg that bulges when biped joints are rotated, you need to create and set only one additional bulge angle. 1115 1116 Chapter 14: character studio Note: You can’t delete the default bulge angle: a link must always have at least one bulge angle defined. 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. 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 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. The cross section is created at the location you clicked. Tip: You can also add cross sections to the child link. 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). To delete a cross section: 1. In the Profile view, click to select a cross section. The selected cross section turns red. 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. 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: 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 • 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. delete. To select multiple cross sections: 3. On the Bulge Editor toolbar, click Delete Bulge Angle. You can change parameters for multiple cross sections by selecting them and then adjusting parameters in the Cross Sections panel (page 2–1121). Bulge Editor 1. Note: You can copy a cross section and paste On the Bulge Editor toolbar, turn on Select And Translate CS. 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. 2. In Profile view, click to select a cross section. 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 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. 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. 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 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. 1117 1118 Chapter 14: character studio Toolbar Select, Scale, and Rotate Control Points—Lets you select, scale, and rotate control points of a cross section in the Cross Section view. 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. 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. Delete Control Points—Deletes control points. First select the control points in the Cross Section view, and then click this button. If all cross section control points are scaled, the mesh bulges uniformly. 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. Draw Control Points—Lets you add control Important: Profile view displays the parent link on the left and the child link on the right. 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 (page 2–1121)). Tip: You can also use this too In Profile view. When you draw in Profile view, you change the profile 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. Bulge Editor 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. 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 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. 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 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. 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. 1119 1120 Chapter 14: character studio Cross Section view Cross Section view displays an outline of the active cross section. In Profile view (page 2–1120), 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 (page 2–1121) 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.) 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 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. 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 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 (page 2–1120). Bulge Editor 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 (page 2–1121) 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. 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. 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. 1121 1122 Chapter 14: character studio 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. 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. 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. 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. 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.” Above: Sections=1 Below: Sections=8 Divisions—Sets the number of control points on the selected cross sections. By default, control Physique Load Specification Dialog 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 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 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. 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. 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. 1123 1124 Chapter 14: character studio Interface 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. 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. • 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=not chosen. Default=0.1. Rigid envelopes determine vertex-link assignment based upon the linear links in the hierarchy. 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. 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. • 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 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 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 The Cross Sections rollout lets you globally set how cross sections are initialized. Interface 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. 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 (page 2–1114) and at the Bulge sub-object level (page 2–1141). Note: All check box settings except Control Points are on by default. 1125 1126 Chapter 14: character studio 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. 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 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 (page 2–1130), 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. Note: If you have a Physique model created with character studio 1 or 2, excluding links will not work until you reinitialize Physique (page 2–1113) using the initial skeleton pose. In the Physique Initialization dialog, make sure Vertex-Link Assignments is turned on. Interface 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. Link Envelopes list (left side)—Displays the links available for exclusion. Selected links are not in this list. Bulge Angle Display Properties Dialog Exclude Envelopes for Selected Link list (right side)—Displays envelopes to exclude from the Interface 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. 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. 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. 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. 1127 1128 Chapter 14: character studio Click the color swatch to change the color of the orientation bar displayed in viewports. Tendon Attach Points—The check box toggles the Note: The orientation bar is displayed in the viewports when the Bulge Editor is open. Click the color swatch to change the color of attach points displayed in viewports. Profile—The check box toggles the display of the Tendon Attached Links—The check box toggles the profile. Default=on. display of attached links. Default=on. Click the color swatch to change the color of the profile displayed in viewports. Click the color swatch to change the color of attached links displayed in viewports. Note: The bulge profile displays in the viewports when the Bulge Editor is open. display of tendon attach points. Default=on. Selected Tendon Elements group Cross Sections—Click to change the viewport color 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. Interface of selected cross section. 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). 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. 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 Physique Sub-Objects weights of specific links that would be difficult to achieve by adjusting envelopes alone. Interface 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 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. 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. 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. 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, • Envelope (page 2–1130) Envelopes define a link’s area of influence on mesh vertices. • Link (page 2–1135) Links are the segments of the Physique deformation spline (page 2–1135). Link 1129 1130 Chapter 14: character studio sub-object controls adjust the way link movement affects the mesh. • Bulge (page 2–1141) Bulge controls are for creating flexing muscles. • Tendons (page 2–1147) Tendons provide a way for multiple links to affect an area of the mesh. • Vertex (page 2–1150) 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 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 Strength, Falloff, Radial Scale, and Overlap are grouped under Envelope Parameters (page 2–1133). 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 (page 2–1141).) 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 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 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. Envelope Sub-Object 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. 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 (page 2–1086) Interface Controls for Envelope sub-objects are on the Blending Envelopes rollout. Selection Level group 1131 1132 Chapter 14: character studio 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 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 (page 2–1092) for a detailed explanation of how the program calculates these values. Envelope Sub-Object and a deformable envelope, you can use this list to choose which envelope’s parameters you are adjusting. 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. 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 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. Envelope type drop-down list—Shows the type of the selected envelope. If the link has both a rigid Radial Scale—Radially scales the envelope bounds. Range=0.0 to 100.0. Default=1.0. 1133 1134 Chapter 14: character studio 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. 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. Child Overlap—Changes the envelope’s overlap with the child link in the hierarchy. Range= -1.0 to 10.0. Default=0.1. Tip: To copy an envelope to its mirror, the sequence 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. Display group should be Copy, select the opposite link, Paste, then Mirror. 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. 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. Paste—Pastes an envelope or cross section. Display Options—Clicking this button displays the Blending Envelope Display Options dialog (page 2–1125), which lets you customize envelope display. Exclude—Clicking this button displays the Shaded—Toggles shaded display of vertex weights Exclude Envelopes dialog (page 2–1126). 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 in the viewports. Default=off. Delete—Deletes a cross section or control point. Copy—Copies an envelope or cross section. Link Sub-Object The Physique Deformation Spline 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. 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 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. 1135 1136 Chapter 14: character studio Interface Interface Link Settings Rollout (page 2–1136) Joint Intersections Rollout (page 2–1140) 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 (page 2–1140) 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 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. Link Settings Rollout 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 (page 2–1114). The Bulge Editor displays bulge cross sections schematically, letting you create and edit bulge controls. 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. 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 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 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 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 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 1137 1138 Chapter 14: character studio Sliding group 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. Above: Inside and Outside set to 0.0 (no sliding) Below: Inside and Outside set to 0.25 (sliding creates a smoother bend) FallOff—As values increase, the effect is localized to the joint. Range=0.0 to 1.0. Default=0.5. Inside—As values increase, skin moves away from the joint. Range=0.0 to 1.0. Default=0.0 (no inside sliding). Radial Scale group Outside—As values increase, skin moves toward the joint. Range=0.0 to 1.0. Default=0.0 (no outside sliding). 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. Link Settings Rollout 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. 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. 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. 1139 1140 Chapter 14: character studio 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. • 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. Procedure 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. Properly adjusted crease plane 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. 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. Bulge Sub-Object Interface 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 (page 2–1130) for good overall mesh deformation, you can create bulges to simulate muscle contraction and expansion when a character’s joint rotates. 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 blended region; a value of 1.0 means 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 (page 2–1113) 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 (page 2–1114)) to shape the bicep bulge. 1141 1142 Chapter 14: character studio The following paragraphs elaborate these steps. Insert. In a viewport, position the cursor over the upper arm link, and click to place the new cross section for the biceps. 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. 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 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 (page 2–1114) 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. Bulge Sub-Object This creates a new bulge angle. The name in the Current Bulge Angle field increments. To copy all Bulge angles from one link to its opposite: 1. Go to the Bulge sub-object level. 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, 2. 3. Choose Entire Link from the Current Bulge Angle drop-down list. such as Arm at 90. 5. Click the Bulge Angle Color swatch and choose a color in the color selector. This makes identification easier. Now you need to set a joint angle for the newly created bulge angle. 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. 6. Move the time slider until the joint is at the All the bulge angles from the first link are pasted to the opposite link, then mirrored. 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. 8. 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.) 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 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. 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. In the Selection Level group, turn on Link. In a viewport, select a link to copy. 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. 1143 1144 Chapter 14: character studio 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. Interface Controls for the Bulge sub-object level are on the Bulge rollout. Selection Level group Bulge Sub-Object 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. 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 Bulge Editor—Click to display the Bulge Editor (page 2–1114), 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). 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. 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 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. 1145 1146 Chapter 14: character studio 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 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 Sections—Sets the number of cross sections for the selected link. 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. 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. Tendons Sub-Object 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. Finally, adjust the values of Pull, Pinch, and Stretch to refine the movement of the skin. Display Options—Click to display the Bulge Angle Display Properties dialog (page 2–1127), 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 (page 2–1130) 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. Tendons connecting upper chest to arms Procedures See Creating Tendons (page 2–1096) Interface Controls for Tendon sub-objects are on the Tendons rollout. 1147 1148 Chapter 14: 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. 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. Tendons Sub-Object The action depends on the active selection level: Link, Cross Section, or Control Point. Tendon Parameters group 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 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. 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 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. Connect to Child Link—When on, allows tendons 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. Upper Bound—Sets the upper boundary overlap. Upper Boundary values greater than 1.0 affect the child link. Default=1.0. 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. 1149 1150 Chapter 14: character studio Warning: Tendons that span several links can conflict with joint intersection parameters. In these cases, go to the Link sub-object level (page 2–1135), 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 (page 2–1140).) Display group 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 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. 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 (page 2–1135), 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 (page 2–1140).) 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. Display Options—Click to display the Tendon Display Options dialog (page 2–1128), 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. Vertex Sub-Object (Physique) To check vertex assignments: 2. 1. Go to the Vertex sub-object level. 2. In the Vertex Operations group, click to turn on Select By Link. 3. Observe the assignments and determine which vertices are incorrectly influenced. Also note if the vertices are red (deformable) or green (rigid). 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. Make sure all three Vertex Type buttons are on, and then in the Vertex Operations group, click to turn on Select By Link. 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. To remove a link’s influence on vertices: Note: Alternatively, you can use Alt +click to For example, you might want to remove the influence of the index finger links from the vertices of the middle finger. deselect the vertices that are in the correct place. 4. 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 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. 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 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. 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. In the Vertex Type group, click to turn off Rigid Vertices and Root Vertices. Leave Deformable Vertices on. 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. 1151 1152 Chapter 14: character studio 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. 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. Vertex Sub-Object (Physique) 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. 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 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 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. 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 1153 1154 Chapter 14: character studio this. After vertices are assigned manually in this way, use Lock Assignments to keep them from being reassigned inadvertently during subsequent operations. 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). Note: You must select or assign a link by clicking Remove from Link—Remove the selected vertices 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. from a link. Tip: Type-In Weights is useful mainly for correcting Note: Select, Select By Link, Assign To Link, flaws in low- to medium-resolution meshes. On a high-resolution mesh, adjusting envelopes should be used to correct deformation. the link; you can’t use the Select Objects dialog to select or assign a link while you use Physique to work with vertices. and Remove From Link will act only on vertices specified by the red, green, and blue Vertex Type (“+”) buttons. Hide—Hides the selected vertices Lock Assignments—Locks vertex assignments. Unhide All—Unhides all vertices. 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. 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 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 (page 2–1128), 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 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 (page 3–928) (helper objects that act as representatives). You Creating a Crowd System give the delegates overall guidelines on how to behave, and the crowd simulation calculates their motion. You set these guidelines by assigning behaviors (page 3–915) 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. Creating a Crowd System The following is a basic procedure for creating and using a crowd system: 1. Add a Crowd helper (page 2–1157) object. 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 (page 3–921) to tell delegates how to behave in varying circumstances. These topics provide further explanation of the principles of crowd animation: Creating a Crowd System (page 2–1155) Creating Crowd Helpers (page 2–1157) The crowd helper is the controlling object for the entire crowd simulation. 2. Create a Delegate helper (page 2–1157) object. Adjusting Delegate Parameters (page 2–1159) Assigning Behaviors (page 2–1159) Directing Delegates (page 2–1162) Obstacle Avoidance (page 2–1164) Changing Delegate Orientation and Speed (page 2–1167) Solving the Simulation (page 2–1168) Linking Objects to Delegates (page 2–1169) Cognitive Controllers (page 2–1170) Biped Crowds (page 2–1172) Non-Biped Crowds (page 2–1179) This is a prototype for your crowd; a representative member. 3. On the Modify panel > Motion rollout (page 2–1183), set appropriate speed and turning limits for the delegate. 1155 1156 Chapter 14: 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. 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 (page 2–1157). 6. Add one or more behaviors (page 2–1159). Modify each behavior’s settings to be appropriate for the members of your crowd. Creating Crowd Helpers 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 7. Solve the simulation. 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. 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. 9. Create the objects that will follow the delegates, and align and link them to delegates (page 2–1169). 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 (page 2–1170) 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 (page 2–1179) 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 (page 2–1172). 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 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. 1157 1158 Chapter 14: character studio Delegate Helpers 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: 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 (page 2–1189) function that lets you clone delegates and distribute the clones over a surface or within a volume, with options for orientation and scaling. 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. 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 (page 2–1189). 5. On the Clone tab, set the number of clones to create, and select the object to clone. 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. Adjusting Delegate Parameters 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. Adjusting Delegate Parameters Delegate parameters define the nature of their motion. You can change delegate parameters in one of two ways: 10. Click Generate Orientations. • To adjust parameters for an individual delegate, select the delegate, access the Modify panel, and adjust parameters. For descriptions of parameters, see . 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. 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 (page 2–1197). 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 See also Crowd Helper Object (page 2–1187) Crowd Helper Object (page 2–1187) 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 1159 1160 Chapter 14: character studio with the character studio Crowd system is an assortment of behaviors that let you simulate a range of crowd activities. • Speed Vary Behavior (page 2–1222)—Lets delegates change speed for more realistic movement. Behaviors let you assign procedural activity types to delegates, which in turn affect objects linked to delegates. You can associate any number of behaviors with each crowd object (page 2–1187), and then link delegates and 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. • Surface Arrive Behavior (page 2–1223)—Lets delegates move toward and land on a surface, with custom speed and acceleration parameters. Following is a list of available behaviors: • Wall Repel Behavior (page 2–1227)—Uses a grid to repel delegates; ideal for keeping objects inside an enclosed, straight-sided room. • Avoid Behavior (page 2–1211)—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 (page 2–1214)—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 (page 2–1216)—Restricts motion to a spline or NURBS curve; options include back-and-forth patrol-type movement. • Repel Behavior (page 2–1218)—Forces delegates to move away from a target. • Scripted Behavior (page 2–1220)—Uses MAXScript to specify behavior. • Seek Behavior (page 2–1220)—Moves delegates toward a target or targets. • Space Warp Behavior (page 2–1221)—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. • Surface Follow Behavior (page 2–1226)—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. • WallSeek Behavior (page 2–1229)—Uses a grid to attract delegates. You can use this as a doorway for crowd-controlled bipeds to walk through. • Wander Behavior (page 2–1231)—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. 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 Assigning Behaviors and Teams dialog (page 2–1200) 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 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. To use a behavior, you apply it to a delegate or a team of delegates using the Behavior Assignments and Teams dialog (page 2–1200). 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 Tips 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. • 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 (page 2–1206) and State Transition Dialog (page 2–1208). 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. • 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. 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. A few helpful things to know about behaviors in character studio: • 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 1161 1162 Chapter 14: character studio 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, you can use the Step Solve feature to solve the simulation one frame at a time. Procedure 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 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 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. 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. 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. 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 (page 2–1220) 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. Directing Delegates • The Wall Seek behavior (page 2–1229)causes 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 (page 2–1216) 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 (page 2–1223), 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 (page 2–1226) to cause delegates to move along a surface. 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. • With the Space Warp behavior (page 2–1221), you can use a vector field to push delegates around the field to avoid obstacles. See Obstacle Avoidance (page 2–1164). 3. Select the crowd object, and add a Wall Seek After setting up a behavior, you must use Behavior Assignments (page 2–1200) to assign the behavior to a delegate or team. 5. Choose Positive Axis to cause the delegates 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. behavior. 4. In the Wall Seek Behavior rollout, click None, and pick the grid. 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 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: 3. In the Seek Behavior rollout (page 2–1220), click None to add one seek object, or click Multiple Selection to designate more than one object for the delegates to seek. 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. 1163 1164 Chapter 14: character studio 3. In the Path Follow Behavior rollout, click the None button and pick the shape for the delegates to follow. 4. If you like, use the settings in the Projection Vector group to force delegates to move in a specific direction. 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. 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. 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 (page 2–1211) 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 (page 2–1227) 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 Obstacle Avoidance and falloff parameters, as well as its weight in the Assignments and Teams dialog, to control its strength. • Use the Repel behavior (page 2–1218) 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. 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 (page 2–1200), 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 (page 2–1241). 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 (page 2–1221). 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 (page 2–1200) to assign the behavior to a delegate or team. 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. 1165 1166 Chapter 14: character studio 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 (page 2–1200) 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 (page 2–1200) to assign the behavior to a delegate or team. 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. 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. Changing Delegate Orientation and Speed 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 (page 2–1187) and Delegate helper objects. 11. Select the Crowd object and open the Modify panel. 12. In the Setup rollout > Behaviors group, click New. 16. Add any other objects or behaviors appropriate to the simulation. 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 (page 2–1242) and Obstacle parameters (page 2–1242). 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 (page 2–1214) to change the direction in which a delegate moves, and the Speed Vary behavior (page 2–1222) to vary delegates’ speed or make them stop moving altogether. After setting up a behavior, you must use Behavior Assignments (page 2–1200) to assign the behavior to a delegate or team. 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 (page 2–1200) to assign your delegate or delegates to the space warp behavior. 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 1167 1168 Chapter 14: character studio 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. 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 (page 2–1232). Procedure To solve a simulation: 1. Set up a crowd simulation with a crowd helper, delegates and behaviors. See Assigning Behaviors (page 2–1159). 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. 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. Tip: 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. To speed up the solution time: 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. 1. Under Save every Nth Key, set the Positions 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. 2. Increase the Solve rollout > Display During 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. 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. 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. Linking Objects to Delegates 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. 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. 3. Select the crowd helper, and access the Modify panel. 4. On the Setup rollout (page 2–1188), click Object/Delegate Associations. The Object/Delegate Associations dialog (page 2–1196) appears. 5. Click Add under the Objects list to add objects to link with delegates. 6. Click Add under the Delegates list to add Linking Objects to Delegates delegates to link with the objects you added in the previous step. You can link objects or bipeds to delegates to make them follow the simulated animation. 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. 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. 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 (page 2–1172). 7. Click Align Objects with Delegates to align each Procedures 9. Click OK to exit. To link objects to delegates: To associate bipeds with delegates: 1. Set up a crowd simulation with a crowd helper 1. Set up a crowd simulation with a crowd helper and delegates. See Creating Crowd Helpers (page 2–1157). 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, 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. and delegates. 2. Create several bipeds, one for each delegate. 3. Select the crowd helper, and access the Modify panel. 1169 1170 Chapter 14: character studio 4. On the Setup rollout (page 2–1188), click Biped/Delegate Associations. The Associate Bipeds with Delegates (page 2–1199) 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. In technical terms, cognitive controllers let you influence crowd simulations with scripted conditionals, effectively implementing a form of artificial intelligence. You use the Cognitive Controller editor (page 2–1206), a flowchart-style editor (much like the Motion Flow Graph dialog (page 2–1045)) 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 (page 2–1207) topic: Testing a particle system parameter (page 2–1209) Testing an object position Testing an atmospheric property (page 2–1209) Testing the distance between two objects Testing a modifier parameter Testing another delegate’s behavior (page 2–1209) Note: In order for a biped crowd simulation Procedure to solve correctly, it must have a motion flow network for the bipeds to follow. See Biped Crowds (page 2–1172). To set up and use a cognitive controller: 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. 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 (page 2–1187) and Setup Rollout (page 2–1188). 1. Create a scene containing a crowd object and one or more delegates. See Creating Crowd Helpers (page 2–1157). 2. Create at least two behaviors. See Assigning Behaviors (page 2–1159). Cognitive Controllers 3. Open the Cognitive Controller editor (page 2–1206). 4. Click the New button to create a cognitive 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. controller. 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 (page 2–1207). 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. 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. 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 (page 2–1208), 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. 18. Use the State Transition dialog to set other parameters such as priority and duration. 19. Use the Behavior Assignments and Teams dialog (page 2–1200) 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. 1171 1172 Chapter 14: character studio See also Cognitive Controller Editor (page 2–1206) State Dialog (page 2–1207) State Transition Dialog (page 2–1208) 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 (page 2–1172) 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 (page 2–1175). Non-Biped Crowds (page 2–1179) 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 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 Motion Flow Network and Possible Scripts Biped’s Motion Flow (page 2–1043) 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 Biped Crowds on your hard disk. For information on installing tutorials, see the Installation Guide. 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. 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. 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 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 1173 1174 Chapter 14: character studio 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 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 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 (page 2–1235). 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 (page 2–1100). • 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 (page 2–847). • 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. Biped Crowds 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 (page 2–1034). 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 (page 2–920). The first step is to create an appropriate motion flow graph and save it to disk. To create the shared motion flow: Add a biped, and then open the Motion 1. panel. 2. Click the Biped rollout > Motion Flow Mode button. 3. Click the Motion Flow rollout > Show Graph button. 4. Restrictions In the Motion Flow Graph toolbar, click the Create Multiple Clips button. Some features of the crowd system are not designed to work with biped crowds. These This displays an Open dialog that lets you select any number of BIP files from the same 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. 1175 1176 Chapter 14: character studio directory to add simultaneously to the motion flow graph. Use Click+ Shift +click (click, and then Shift +click) to choose several contiguous files, and Ctrl +click to choose non-contiguous files. 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. 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. 7. If you want to check the integrity of transitions before continuing, do so now. See Customizing Transitions (page 2–1034). 8. Click the Select Random Start Clips button, and then click a clip. 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. 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. 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. Alternatively, you can use Create Transition to set up a custom graph. 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. Click the Synthesize Motion Flow Graph button. This uses the first 30 percent and the last 30 percent of each motion to create transitions. Optimize the transitions. See Transition Optimization Dialog (page 2–1058). Note: You can also set and change random starting clips and start probabilities in the Motion Flow graph after loading the MFE file Biped Crowds 2–1199). Use the dialog to connect the pairs and turn on Use Biped for each delegate. See Linking Objects to Delegates (page 2–1169). 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: 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 (page 2–1197). 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. Click the Biped rollout > Motion Flow Mode button. 3. Click the Motion Flow rollout > Shared Motion Flow button. 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. 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 (page 2–1183) > 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. 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 (page Tip: 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. 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." 1177 1178 Chapter 14: character studio 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 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 (page 2–1235) 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 Non-Biped Crowds why Backtracking is off by default, but it’s often the best way to resolve problems with colliding bipeds. animation, such as animation of vertices on an Editable Mesh object. Cyclic In-Place Animation 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 (page 2–1172)), 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 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. 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 1179 1180 Chapter 14: character studio 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 (page 2–1246) Procedure 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 (page 2–1246). 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. ClipState Dialog (page 2–1253) 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. 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. 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 (page 2–1189) in Crowd function to clone the delegate and optionally distribute the clones (you can also distribute them manually). Master Motion Clip Make sure you end up with an equal number of delegates and animated object clones. 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. 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 (page 2–1196) appears. Non-Biped Crowds 5. Add the objects and delegates into their respective columns. 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 (page 2–1159) 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 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. 1181 1182 Chapter 14: character studio 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 and assigning behaviors (page 2–1200) to objects and groups. The Crowd object works directly on delegate helper objects, and indirectly on bipeds and other objects via delegates. • Cognitive controllers (page 2–1206) can change delegate behavior based on circumstances in the simulation. • Motion synthesis (page 2–1241) uses animation from the linked object based on delegate orientation, speed and other factors. simulation. The objects follow the delegates and are animated using clips that are activated according to delegate motion and the states you created. Crowd Animation User Interface Crowd Shortcuts To enable the character studio keyboard shortcuts, turn on the Keyboard Shortcut Override toggle (page 3–872). All character studio keyboard shortcuts activate when the Motion panel is active and the Keyboard Shortcut Override button is active. See Also Keyboard Shortcuts (page 3–871) Keyboard Panel (page 3–793) Customize User Interface Dialog (page 3–792) Action Solve Step Solve 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 (page 2–1187) includes facilities for replicating and grouping objects Shortcut S Description Solves crowd simulation. Step-solves crowd simulation. Geometry Parameters Rollout 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 (page 2–1187) 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. 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 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. Create panel > Helpers > Object Type rollout > Delegate > Motion Parameters rollout Select a Delegate object. > Modify panel > Motion Parameters rollout The delegate object uses the following rollouts: Geometry Parameters Rollout (page 2–1183) Motion Parameters Rollout (page 2–1183) Also, you can set parameters for multiple delegates simultaneously, optionally with random variation, using the Crowd object’s Edit Multiple Delegates dialog (page 2–1197). See also Creating Crowd Helpers (page 2–1157) Crowd Helper Object (page 2–1187) 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 (page 2–1197). 1183 1184 Chapter 14: character studio Interface 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 (page 2–1211) uses the bounding box of the delegate and all of its children to perform its behavior. Default=on. Speed group 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 (page 2–1221) and a Wander behavior (page 2–1231), 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 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. label appears next to the delegate showing the name of the cognitive controller (page 2–1170) state or transition that currently directs its behavior, if any. Default=on. Decel(eration) Weight—Specifies how much a Constrain to XY Plane—The delegate remains The higher this setting, the more the delegate slows down when it reaches the turn angle (see following at its initial height (position on the world Z delegate should slow down when turning. Motion Parameters Rollout 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 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. Accel(eration) Weight—Specifies how much the delegate should speed up when moving at a downward slant. Default=0.1. See Decel Weight 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 (page 2–1214) 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. Max Turn Accel—Specifies how much the delegate’s See Decel Weight for a full explanation. heading or pitch angle can change per frame. This controls angular acceleration and deceleration. For smooth turns, keep it relatively low. Default=3.0. At Incline Angle—Specifies the upward slant angle at which Decel Weight’s full slowdown effect is applied. Default=90.0. Tip: If a delegate exhibits sluggish turning behavior during a simulation, try increasing Max Turn Velocity, Max Turn Accel, or both. 1185 1186 Chapter 14: character studio Max Incline—Specifies the maximum number Biped group 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 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 (page 2–1175). Use Biped—Associates the delegate with a biped 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. (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 it in a viewport, by clicking its center of mass object (e.g., bip01), or with the Select Object dialog, opened 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. Crowd Helper Object 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 (page 2–1197) to randomize the start frame for each delegate. Priority—Sets the delegate priority, which determines the order of solution in biped/delegate simulations. For details, see Priority Rollout (page 2–1235). 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. Priority Rollout (page 2–1235) Smoothing Rollout (page 2–1238) Collisions Rollout (page 2–1240) Geometry Rollout (page 2–1240) Global Clip Controllers Rollout (page 2–1241) 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 (page 2–1211) Orientation Behavior (page 2–1214) Path Follow Behavior (page 2–1216) Repel Behavior (page 2–1218) Scripted Behavior (page 2–1220) Seek Behavior (page 2–1220) Space Warp Behavior (page 2–1221) Speed Vary Behavior (page 2–1222) Surface Arrive Behavior (page 2–1223) Surface Follow Behavior (page 2–1226) Wall Repel Behavior (page 2–1227) 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 (page 2–1188) Solve Rollout (page 2–1232) Wall Seek Behavior (page 2–1229) Wander Behavior (page 2–1231) See also Creating Crowd Helpers (page 2–1157) 1187 1188 Chapter 14: character studio Behaviors group 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. Interface Use these controls for adding, removing, and renaming behaviors. New—Launches the Select Behavior Type dialog (page 2–1205). Choose a behavior and then click OK to add the behavior to the scene. Then use the Behavior Assignments and Teams dialog (page 2–1200) 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 (page 2–1211) A number of functions are available from a row of buttons at the top of the Setup rollout: Scatter—Opens the Scatter Objects Dialog (page 2–1189). Objects/Delegate Associations—Opens the Object/Delegate Associations dialog (page 2–1196). Biped/Delegate Associations—Opens the Associate Bipeds With Delegates dialog (page 2–1199). Multiple Delegate Editing—Opens the Edit Multiple Delegates dialog (page 2–1197). Behavior Assignments—Displays the Behavior Assignments and Teams dialog (page 2–1200). Cognitive Controllers—Displays the Cognitive Controller editor (page 2–1206). Orientation Behavior (page 2–1214) Path Follow Behavior (page 2–1216) Repel Behavior (page 2–1218) Scripted Behavior (page 2–1220) Seek Behavior (page 2–1220) Space Warp Behavior (page 2–1221) Speed Vary Behavior (page 2–1222) Surface Arrive Behavior (page 2–1223) Surface Follow Behavior (page 2–1226) Wall Repel Behavior (page 2–1227) Wall Seek Behavior (page 2–1229) Wander Behavior (page 2–1231) 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 (page 2–1200) or indirectly through a cognitive Scatter Objects Dialog 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. specify various orientation and scaling options for scatter objects. Interface Clone panel 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 (page 2–1200). 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 (page 2–1200), 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 Contains the basic options for cloning an object. Object to Clone (None)—Click this button, and then select an object in the scene to be cloned. 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 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 (page 3–958), or a reference (page 3–1002). 1189 1190 Chapter 14: character studio Clone Hierarchy—When on, all objects linked to Position panel 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 function or by generating clones again. 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. 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. Scatter Objects Dialog • 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. 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 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. 1191 1192 Chapter 14: character studio Rotation panel 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 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. Local Axes group Use these settings to designate alternative forward and up axes. The default settings match the delegate axes. 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. Scatter Objects Dialog 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. Scale panel 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 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 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. 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 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. 1193 1194 Chapter 14: character studio 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 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. Generate Scales—Click this button to scale all scatter objects; that is, cloned objects or objects selected with the Select Objects to Transform 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 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. This panel lets you perform various permutations of cloning and transform operations in a single step, with or without successive randomization. Same As X/Y—Lets you use the same scaling as on Operations group the X- or Y-axis, whether explicit or randomized. When you specify an axis, the parameters group for that axis becomes unavailable. Compute Clones—Turn on to clone the object chosen with the Object to Clone button. When you click the Scatter button, the object is cloned, Random Placement Difficulty Dialog and then any specified transforms are applied to the clones. 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 (page 2–1189). 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 (page 2–1190), Rotation panel (page 2–1192), and Scale panel (page 2–1193). 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. Cancel—Forgets any changes and closes the dialog. See also Creating Crowd Helpers (page 2–1157) Random Placement Difficulty Dialog This dialog appears when the software encounters difficulty placing cloned objects without overlapping using the Scatter Objects dialog (page 2–1189). 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. Interface 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. 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. 1195 1196 Chapter 14: character studio Object/Delegate Associations Dialog Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Associate Objects with Delegates 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 Select a Crowd object. > Modify panel > Setup rollout > Associate Objects with Delegates between the two lists to move highlighted items higher or lower in the list. 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. 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. Interface 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. 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 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 (page 2–1193), and want the associated objects to match. Edit Multiple Delegates Dialog 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. the same as those found in the delegate object’s Motion Parameters rollout (page 2–1183), 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. Procedure To edit multiple delegates: Edit Multiple Delegates Dialog 1. Select the Crowd object and open the Modify panel. Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Multiple Delegate Editing 2. Select a Crowd object. > Modify panel > Setup rollout > Multiple Delegate Editing On the Setup rollout, click the Multiple Delegate Editing button. This opens the Edit Multiple Delegates dialog. 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 3. Optionally, in the dialog (bottom-left corner), choose a stored dialog setting to use from the 10 available settings. 1197 1198 Chapter 14: character studio 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 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 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. 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 (page 2–1183). Speed group These parameters are the same as those found in the delegate object’s Motion Parameters rollout (page 2–1183). For an explanation of the Random and SET check boxes, see the introduction to this topic. Associate Bipeds With Delegates Dialog Turning group These parameters are the same as those found in the delegate object’s Motion Parameters rollout (page 2–1183). For an explanation of the Random and SET check boxes, see the introduction to this topic. 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 Banking group These parameters are the same as those found in the delegate object’s Motion Parameters rollout (page 2–1183). 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 (page 2–1183). For an explanation of the Random and SET check boxes, see the introduction to this topic. 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 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. 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. 1199 1200 Chapter 14: character studio 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. 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. 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 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. 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. 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 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 The Behavior Assignments and Teams dialog lets you group delegates into teams (page 2–1204), and assign behaviors and cognitive controllers (page 2–1206) 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. Behavior Assignments and Teams Dialog 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. To create a new behavior assignment: Note: The Enable Flashing option helps you see 1. If you want to assign the same behavior to more 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. 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. This procedure gives the basic method for assigning a behavior or cognitive controller to a delegate or team. than one delegate, use the Teams group (page 2–1204) 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. 1201 1202 Chapter 14: 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. Interface Assignment Design group (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 (page 2–1204) 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. 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 (page 2–1206) 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. 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 Clear Selections—Deselects all highlighted items in the Assignment Design and Behavior Assignments groups. Behavior Assignments and Teams Dialog Use this before modifying an assignment, to avoid possible confusion. Behavior Assignments group New Behavior—Opens the Select Behavior Type dialog (page 2–1205), 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. 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. 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. 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. 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. 1203 1204 Chapter 14: character studio 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: You can toggle the display of this group box with the No Teams/Teams button below the Behavior Assignments group. Note: The Weight setting is not relevant to the Drop-down list—Displays the name of the current Avoid (page 2–1211), Orientation (page 2–1214), or the Surface Follow (page 2–1226) behavior, and is thus unavailable for assignments using any of those three. team. Active—When on, the assignment is currently in effect. When off, the assignment has no effect. This check box is animatable. Default=on. 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. New Team—Adds a team to the list, and opens the assignment. Select Delegates dialog (page 2–1205) to let you specify new team members. Teams group The default team name is "Team," followed by a number, starting with "0" and counting up. Delete—Deletes the highlighted behavior 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 (page 2–1205) 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 Lets you define, modify, and delete teams of delegates. 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 for details. OK—Click this button to accept all changes and close the dialog. Select Behavior Type 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 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 (page 2–1200) for assigning crowd behaviors. Interface Use this dialog to select the type of behavior to be added to a Crowd object. The choices are: Avoid Behavior (page 2–1211) Orientation Behavior (page 2–1214) Path Follow Behavior (page 2–1216) Repel Behavior (page 2–1218) Scripted Behavior (page 2–1220) Seek Behavior (page 2–1220) Space Warp Behavior (page 2–1221) Speed Vary Behavior (page 2–1222) Surface Arrive Behavior (page 2–1223) Surface Follow Behavior (page 2–1226) Wall Repel Behavior (page 2–1227) List box—Lists all delegates in the scene. Wall Seek Behavior (page 2–1229) All—Selects all delegates in the list. Wander Behavior (page 2–1231) 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. 1205 1206 Chapter 14: character studio OK—Closes the dialog and implements changes. Cancel—Closes the dialog and ignores changes. 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. Cognitive Controllers Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Cognitive Controllers Select a Crowd object. > Modify panel > Setup rollout > Cognitive Controllers See also State Dialog (page 2–1207) State Transition Dialog (page 2–1208) Interface The Cognitive Controller editor lets you combine behaviors into states. More importantly, it lets you sequence different behaviors (page 2–1159) 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 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 (page 2–1207). Create Transition—Lets you link states with transitions. Click this button, and then drag between two states to create the transition, starting State Dialog 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 (page 2–1208). 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 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. 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. 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 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. State name—Displays the name of the state. To change the name, click this text and edit from the keyboard. 1207 1208 Chapter 14: character studio 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 (page 2–1211) 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. 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 (page 2–1206). For more detailed information, see To set up and use a cognitive controller (page 2–1170). 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 ) 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 State Transition Dialog 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. 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 this 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 1209 1210 Chapter 14: character studio displays a message whenever delegate 4 is found to be avoiding delegate 2. Interface 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 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. 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. 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 Behavior Rollout 1.0 minus the other parameter, decrease the other parameter first. first choose the behavior from the drop-down list at the bottom of the Setup rollout. Transition Condition—The name of the MAXScript Use the controls in this rollout to modify the behavior. Following is a list of available behaviors: 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. Avoid Behavior (page 2–1211) Orientation Behavior (page 2–1214) Path Follow Behavior (page 2–1216) Repel Behavior (page 2–1218) Scripted Behavior (page 2–1220) Seek Behavior (page 2–1220) Space Warp Behavior (page 2–1221) OK—Closes the dialog and implements changes. Cancel—Closes the dialog and ignores changes. Speed Vary Behavior (page 2–1222) Surface Arrive Behavior (page 2–1223) Surface Follow Behavior (page 2–1226) Wall Repel Behavior (page 2–1227) Behavior Rollout Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button Select a Crowd object. > Modify panel > Setup rollout > New button Wall Seek Behavior (page 2–1229) Wander Behavior (page 2–1231) For a detailed description of specific behaviors, refer to the above topics. For an overall look at behaviors, see Assigning Behaviors (page 2–1159). 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 (page 2–1200), a behavior rollout does not automatically appear in the Crowd command panel. You must 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. 1211 1212 Chapter 14: character studio 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. Note: In the explanations that follow, the word "target" is used to refer to the object or objects to be avoided. Interface 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 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. 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 Avoid Behavior 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. 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. 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 (page 2–1241) 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 (page 2–1221), delegates use the vector 1213 1214 Chapter 14: character studio 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. 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. Orientation Behavior Interface 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. 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. 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. 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 1215 1216 Chapter 14: character studio 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. 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 delegate will bank one degree for every degree it is turning at a given frame. Default=1.0. 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. 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. Path Follow Behavior Interface 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 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. 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. 1217 1218 Chapter 14: character studio 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. 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. Direction Display Target—Enables display of the target Determines the direction the delegate takes initially when following the path. The default choice is Forwards. icon, which appears during the solution when a new interim goal is calculated for the delegate. Default=on. Forwards—The delegate moves along path vertices Target Scale—Specifies the overall size of the target in ascending order. icon. Default=5.0. 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. 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 (page 2–1220). 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 (page 2–1214). 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. Repel Behavior Interface 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. 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. Force—Always applies a force directly away from the source. The magnitude of the force is constant. Radius group 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. 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. Multiple Selection—Opens the Select dialog to let Use Radii—When on, the behavior applies only to delegates closer to the target than the Outer Distance value. Default=on. 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. 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. 1219 1220 Chapter 14: character studio Falloff—Default=2.0. Edit MAXScript—Click to open an editor window. 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. 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. Scripted Behavior Interface 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. Script Context Name—Specify a name for the script. 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. Space Warp Behavior 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. 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. 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. Average Of Targets—All delegates move toward a common point determined by averaging all targets’ locations. Color Swatch—Shows the color used to draw the Method group Seek force vector during the solution. Click the box to choose a different color. Default=green. 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. 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 1221 1222 Chapter 14: character studio and Particles & Dynamics categories to crowd members. Interface In particular, use the Space Warp behavior to tie delegates to a Vector Field space warp (page 2–1241), so that they avoid penetrating an irregularly shaped object while following its contours. Interface None (label)—Click this button, then select a space Time group warp object. Period—Specifies how many frames should elapse Color Swatch—shows the color used to draw the before a new speed is chosen. Space Warp force vector during the solution. Click the box to choose a different color. Deviation—Specifies the maximum amount by which Period should vary. 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. 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 Vary Behavior Speed group 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. 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, 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. Surface Arrive Behavior 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. 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 (page 2–1220) 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. 1223 1224 Chapter 14: character studio Interface 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 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. None (label)—Specifies a single target. Click this button, and then click the target object in the 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. Surface Arrive Behavior 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. 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. 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. 1225 1226 Chapter 14: character studio 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. 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 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 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 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. Wall Repel Behavior 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. 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. 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. 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. 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. 1227 1228 Chapter 14: character studio 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. Interface 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. 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. 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. 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 Wall Seek Behavior 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. Display Force——The force, when activated, is drawn in the viewports as a wireframe rectangle during the simulation solution. Default=on. Use Distance—When on, the behavior applies only to delegates closer to the target than the Outer Distance value. Default=on. Wall Seek Behavior Inner Distance—The distance from the target Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > New button > Wall Seek Behavior at which the force is applied at full strength. Default=0.0. Select a Crowd object. > Modify panel > Setup rollout > New button > Wall Seek Behavior 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 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. 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. 1229 1230 Chapter 14: character studio Interface 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. 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 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. 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. Method group Use Distance—When on, the behavior applies only 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 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. Wander Behavior 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. 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 (page 2–1189) facility with Clone Controllers turned on. Procedure 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. 3. Use Behavior Assignments (page 2–1200) to assign the behavior to a delegate or team. 1231 1232 Chapter 14: character studio Interface 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 Time group delegates by the Wander behavior is drawn in the viewports as a vector during the simulation solution. 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. 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. Solve Rollout Interface 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. 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. 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. 1233 1234 Chapter 14: character studio 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. 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. Display During Solve group Bipeds group Update display—When on, motion produced during solution of a crowd simulation appears in the viewports. Default=on. When solving simulations that use bipeds linked to delegates, it is strongly recommended that you use all three options in this group. Frequency—How often the display is updated Biped/Delegates Only—When on, only during the solution. If 1, the update occurs every frame. If 2, the update occurs every other frame, and so on. Default=1. 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. 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. 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 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 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 Priority Rollout 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. 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. 1235 1236 Chapter 14: character studio Interface 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 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. 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 Set Start Frames Dialog successively farther delegate is assigned the next highest priority. For any delegates that are equidistant from the object, the software assigns priorities randomly. 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 (page 2–1237), 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 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 control. In general, you should first use a non-random method to assign priorities in the Priority rollout (page 2–1235), 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. 1237 1238 Chapter 14: character studio 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. 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. Smoothing Rollout Interface From—When Animation Segment is chosen, specifies the first animation frame for smoothing. 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. 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. 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. 1239 1240 Chapter 14: character studio 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. Collisions Rollout 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. 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 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. 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. Hilite Colliding Delegates—When on, delegates that collide are highlighted in the collision color. Global Clip Controllers Rollout 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: 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 (page 2–1246). 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. Non-Biped Crowds (page 2–1179) Synthesis Dialog (page 2–1246) ClipState Dialog (page 2–1253) Vector Field Space Warp Create panel > Space Warps > Particles & Dynamics > Object Type rollout > Vector Field For a procedure covering clip controller usage, see: To use Motion Synthesis with non-bipedal creatures: (page 2–1180) Interface (List)—Lists objects designated as Global Objects, whose controllers can be used as animation clips to control other objects (typically clones). 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, 1241 1242 Chapter 14: character studio 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. Box—Creates a standard box-shaped space warp from one corner to the diagonally opposite corner, with different settings for length, width, and height. You can use the vector field as a Space Warp behavior (page 2–1221), as the source object for an Avoid behavior (page 2–1211), 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. Lattice Parameters Rollout 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. Use these parameters to specify the Vector Field lattice size and number of segments. The Vector Field space warp provides these rollouts: Length/Width/Height—Specify the dimensions of Create Method Rollout (page 2–1242) Lattice Parameters Rollout (page 2–1242) Obstacle Parameters Rollout (page 2–1242) 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. 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 Interface 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. 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 (page 2–1241), generated around an obstacle object, allows crowd (page 2–1187) 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. Obstacle Parameters Rollout Note: Objects are subject to a vector field’s forces Show Vector Field—Displays vectors, which only if they are bound to the field with a Crowd object. For general usage guidelines, see To use a Vector Field space warp (page 2–1166). appear as blue lines emanating outward from lattice intersections within the range volume. Default=off. Interface Display group 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 the vector field. See Sample Resolution 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 The check boxes in this group let you enable and disable display of four different elements of the Vector Field space warp. warp icon, a pair of crossed double-headed arrows. Increase the size for easier viewport selection. Default=size originally drawn in viewport. Force group 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. 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. 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. Strength—Sets the degree of effect the vectors have on the movement of an object entering the 1243 1244 Chapter 14: character studio vector field. If Show Vector Field is on as you adjust Strength, you can see the vector lines change size in the viewports in real time. Default=1.0. Compute Vectors group Note: Sometimes, after changing strength, vectors will be too large or too small. In such cases, adjust the VectorScale 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. 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. Motion Synthesis 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. 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. Compute—Calculates the vector field. Always recalculate the vector field after changing any parameters except those in the Force group. Blend Vectors group 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 (page 2–1246) ClipState Dialog (page 2–1253) For information on using motion synthesis with bipeds, see Biped Crowds (page 2–1172). 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 1245 1246 Chapter 14: character studio 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 (page 2–1246) State Panel (page 2–1248) Synthesis Panel (page 2–1250) See also ClipState Dialog (page 2–1253) Procedure 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: (page 2–1180). 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 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 (page 2–1246) State Panel (page 2–1248) Synthesis Panel (page 2–1250) Motion Clips Panel Interface 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. Global Object—Click Global Object and pick the object that contains the animation (all the clips) in the Select Global Objects To Copy dialog. 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. New—Lets you set up a new motion clip. Displays the MotionClip Parameters dialog (page 2–1252) 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 (page 2–1252), 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 1247 1248 Chapter 14: character studio 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. 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 (page 2–1252). The MotionClip Parameters dialog (page 2–1252) 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 (page 2–1252). The MotionClip Parameters dialog (page 2–1252) 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 (page 2–1246) Motion Clips Panel (page 2–1246) Synthesis Panel (page 2–1250) State Panel Interface Edit Properties—Lets you modify the current state. Displays the ClipState dialog (page 2–1253) 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. 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. 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. 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. 1249 1250 Chapter 14: character studio 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. 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 (page 2–1246) Motion Clips Panel (page 2–1246) State Panel (page 2–1248) Interface 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 Master Motion Clips list—Displays the objects to which the synthesized motion will be applied. Synthesis Panel 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. 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 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 1251 1252 Chapter 14: character studio default, calculated, or set manually, and lets you change the start frame. Name—Enter a name for the new motion clip. Auto Blend—Automatically sets the Blend Start clip from the Global Object. 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. Start—Specifies the first frame of the animation 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. 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 (page 2–1246), 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 (page 2–1248). Interface 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. ClipState Dialog Pitch Velocity Panel (page 2–1259) 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 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. Heading Velocity Panel (page 2–1261) Script Panel (page 2–1262) 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. The dialog panels are: 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. Speed Panel (page 2–1254) Tip: When setting up states, it’s useful to know the You can see the delegates’ actual ranges and average values for all properties after synthesizing the clips. Acceleration Panel (page 2–1256) Pitch Panel (page 2–1257) 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, 1253 1254 Chapter 14: character studio 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 (page 2–1246) 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. Speed Panel Interface Range Display—After you synthesize 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—Speed before or after the target value is not relevant. • Decreasing—Speed decreases before or after it reaches the target value. • Constant—Speed before or after the target value is constant. 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. • Increasing—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 1255 1256 Chapter 14: character studio much the animation rate is modified by the actual delegate speed. system unit. That is, the acceleration is determined by the rate at which the speed changes per frame. 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. 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 Use Acceleration—Turn on to have the motion 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 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. Pitch Panel Range Display—After you synthesize 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. 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. Base Acceleration—Specifies the delegate acceleration at which the animation should be played back at its normal rate. Anything—Acceleration before or after the target value is not relevant. Pitch Panel 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. 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. 1257 1258 Chapter 14: character studio Interface Range Display—After you synthesize 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—Pitch before or after the target value is not relevant. • Decreasing—Pitch decreases before or after it reaches the target value. • Constant—Pitch before or after the target value is constant. • Increasing—Pitch increases before or after it reaches the target value. Scale Pitch Orientation group 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. 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. Pitch Velocity Panel 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 % 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. 1259 1260 Chapter 14: character studio Interface Range Display—After you synthesize 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—Pitch velocity before or after the target value is not relevant. • Decreasing—Pitch velocity decreases before or after it reaches the target value. • Constant—Pitch velocity before or after the target value is constant. • Increasing—Pitch velocity increases before or after it reaches the target value. Scale Playback Speed group 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. 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. Heading Velocity Panel 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. Interface The formula used is this: 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. 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. 1261 1262 Chapter 14: character studio Range Display—After you synthesize the Master Motion Clips, displays delegates’ minimum, average, and maximum heading velocity. Min—Set a minimum heading rate value for the 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. range. The formula used is this: Max—Set a maximum heading rate value for the Animation Speed change % = (current speed/Base Heading Rate -1 ) x Percentage % 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. 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. 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—Heading velocity before or after the target value is not relevant. • Decreasing—Heading velocity decreases before or after it reaches the target value. • Constant—Heading velocity before or after the target value is constant. • Increasing—Heading velocity 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 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. 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 (page 2–1206), 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 character studio File Formats controller scripts, the statement "at time t" needs to be invoked because the animation is not running when the synthesis takes place. Script—Enter the name of the function defined by fn stoppedScript del t = ( at time t if del.pos.z < 65 then 1 else 0 ) that lets you edit the script. Interface File Formats and Index of Procedures the script, also found at the start of the script. Edit Script—Opens a MAXScript editor window 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 (page 2–920). 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 (page 2–855). CPY—Copy file. Contains postures, poses and tracks you have copied with the Copy/Paste rollout. See Copying and Pasting Postures and Poses (page 2–910) and Copying and Pasting Tracks (page 2–926). 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 (page 2–1032). Use Script—Turn this on to use a MAXScript script MIX—Motion Mixer file. Contains clip data, to control a clip. tracks and trackgroups, transitions between clips, track/clip weights, and scale, trim and time 1263 1264 Chapter 14: character studio warp information for edited clips. See Exporting Animation to the Biped (page 2–624). To preview biped motion using biped playback stick figure: (page 2–929) PHY—Physique file. Contains information on envelope sizes and vertex weights set up with the Physique modifier. See Saving and Loading Physique Data (page 2–1098). To preview biped motion using the full biped model: (page 2–929) STP—Step file. Contains footstep data. See Loading To use pivots: (page 2–907) and Saving STP Files (page 2–924). To make a hand or foot follow an object: (page 2–908) BVH, CSM, MNM—These file formats contain motion-capture data. They are not specific to character studio. See BVH File (page 3–920), CSM File (page 3–925), or MNM File (page 3–973) in the glossary. Procedures These procedures appear elsewhere in this User Reference, in their associated topics. Here, they are organized by feature. Animating the Biped with Freeform To anchor a hand or foot: (page 2–909) Animating the Biped with Footsteps To create footsteps automatically: (page 2–862) To create multiple footsteps: (page 2–988) To create footsteps beginning at the current frame: (page 2–864) To make the biped walk up or down stairs: (page 2–992) Biped and Physique To make the biped walk in place: (page 2–992) Creating a Biped To make the biped walk backward: (page 2–992) To delete a biped: (page 2–854) To create a biped on a surface: (page 2–845) To prepare for manual footstep creation: (page 2–864) To change the biped name upon creation: (page 2–847) To create footsteps manually, beginning at the current frame: (page 2–989) To change the biped name after creation: (page 2–847) To append footsteps onto the existing footsteps: (page 2–989) To create a Named Selection for the biped center of mass: (page 2–847) To create footsteps using AutoGrid: (page 2–864) Loading and Viewing Motion To activate footsteps: (page 2–865) To save animation you have created or imported to a BIP file: (page 2–921) To deactivate footsteps: (page 2–866) To load biped motion from an existing BIP file: (page 2–920) To make the biped speed up as it walks: (page 2–992) Editing Footsteps To save footstep data: (page 2–925) To move selected footsteps in time: (page 2–871) Procedures To change the duration of a footstep: (page 2–871) To scale keys in time: (page 2–871) To prevent keys from changing when active footsteps are edited: (page 2–872) To turn off Scale Stride mode: (page 2–922) To display footstep tracks: (page 2–889) To display footstep keys in Track View: (page 2–871) To change the display of numbers of footstep keys: (page 2–871) To convert an airborne period to freeform mode: (page 2–884) To convert between footsteps and freeform animation: (page 2–885) To rotate all links in the spine, neck, or tail: (page 2–895) To change Dynamics Blend for multiple Body Vertical keys: (page 2–882) To bend a biped trajectory: (page 2–915) To edit keys on the Center of Mass trajectory: (page 2–915) To edit biped trajectory keys in a viewport: (page 2–931) To use In Place mode to adjust keyframes: (page 2–930) Motion-Capture Data To import a motion-capture file: (page 2–1067) To create a purely freeform animation: (page 2–887) To import a marker file: (page 2–1063) To create a freefrom animation from a footstep animation: (page 2–887) To use Fit To Existing to import a motion-capture file: (page 2–1071) To save footstep data: (page 2–925) To use Convert From Buffer: (page 2–1066) To copy footsteps to the buffer: (page 2–873) To compare raw and filtered trajectories: (page 2–1066) To edit the footstep buffer: (page 2–873) To splice the footstep buffer: (page 2–873) Editing Biped Keys To use In Place mode to adjust keyframes: (page 2–930) To set the balance factor: (page 2–878) To set ballistic tension: (page 2–882) To set the IK Blend value of a key: (page 2–901) To locate vertical center of mass keys: (page 2–881) To set a Body Vertical key: (page 2–881) To change TCB for a biped arm: (page 2–894) To select and rotate multiple links: (page 2–895) To use Show Buffer: (page 2–1066) Motion Flow To create clips in the Motion Flow Graph: (page 2–1027) To create multiple clips in the Motion Flow Graph: (page 2–1028) To create transitions using From > To or To < From method: (page 2–1029) To create transitions using Create All Transitions: (page 2–1029) To optimize transitions in the Motion Flow Graph: (page 2–1030) To create a Motion Flow script: (page 2–1031) To save Motion Flow Editor files: (page 2–1032) 1265 1266 Chapter 14: character studio To load Motion Flow Editor files: (page 2–1033) To append Motion Flow Editor files: (page 2–1033) To manually customize transitions between two clips: (page 2–1034) To automatically customize transitions between two clips: (page 2–1035) To attach a mesh to a bones hierarchy using Physique: (page 2–1106) Applying Physique To attach a mesh to a biped using Physique: (page 2–1106) To adjust default envelope shape: (page 2–1087) To create a random script for one biped: (page 2–1036) To adjust envelopes around the biped’s pelvis: (page 2–1087) To customize transition “weighting” and setting a start clip: (page 2–1037) To add a bone after you’ve already used Attach To Node: (page 2–1107) Example: To create a unified motion: (page 2–1038) To troubleshoot bulges and tendons: (page 2–1109) Example: To share a random motion flow among multiple bipeds: (page 2–1039) To select and edit cross sections: (page 2–1088) To apply a shared motion flow to a different group of bipeds: (page 2–1041) To copy an envelope and its settings to a mirrored link (for example, from one thigh to the other): (page 2–1088) To load a Motion Flow scene from another system: (page 2–1042) To copy all Bulge angles from one link to its opposite: (page 2–1143) Posing the Biped To use Select Nearest Bulge Angle: (page 2–1144) To link a mechanical character to the biped (without Physique): (page 2–855) To remove a link’s influence on vertices: (page 2–1151) To fit biped legs to the skin: (page 2–850) To check vertex assignments: (page 2–1151) To fit the spine to the skin torso: (page 2–850) To remove deformable vertices from a link’s influence: (page 2–1151) To fit both arms using copy/paste: (page 2–851) To pose both arms simultaneously: (page 2–851) To override vertex assignments manually: (page 2–1151) To create a symmetrical pose by copying one side of the biped to the other: (page 2–851) To make vertices rigid: (page 2–1152) To copy a posture: (page 2–912) To paste the posture: (page 2–912) To copy a track from one biped to another: (page 2–927) To copy the entire pose of a biped: (page 2–912) To have a spline influence a mesh: (page 2–1110) To apply Physique to an FFD to animate the entire mesh: (page 2–1105) To use an FFD to complement the effects of Physique on a portion of a character mesh: (page 2–1105) To make compressible bones (bones with end effectors): (page 2–1081) Procedures To add a bone after Physique is applied using Reinitialize: (page 2–1081) To add a bone after Physique is applied using Add (Add Bone): (page 2–1082) To optimize skin objects: (page 2–1100) To reinitialize a scaled mesh: (page 2–1100) Bulges To create a new bulge angle using the Bulge Editor: (page 2–1115) To create a new bulge angle on a selected link: (page 2–1142) Saving and Reusing Physique Information To save Physique data: (page 2–1107) To load Physique data: (page 2–1107) To merge a skinned biped: (page 2–922) To clone a skinned biped: (page 2–924) Figure Mode To work in Figure mode: (page 2–849) To adjust the biped center of mass with Rubber Band: (page 2–853) To rubber band an arm or leg link: (page 2–853) To add a cross section: (page 2–1116) To Scale a Biped and a Physique Mesh: (page 2–984) To change the shape of a cross section: (page 2–1117) To save a biped’s figure information to a file: (page 2–856) To make a cross section the active cross section: (page 2–1116) To choose a specific bulge angle for editing: (page 2–1116) To change a bulge angle value: (page 2–1116) To select multiple cross sections: (page 2–1116) To move cross sections along the link: (page 2–1117) To copy and paste cross sections: (page 2–1117) To change the Profile view orientation: (page 2–1117) To delete a bulge angle: (page 2–1116) To load a biped figure: (page 2–856) Layers To increment all keys using layers (global offset): (page 2–914) To increment an interval of keys with an envelope (blended offset): (page 2–914) To increment an interval of keys without an envelope (nonblended offset): (page 2–914) To use layers to reposition a biped with freeform animation: (page 2–928) To delete a cross section: (page 2–1116) Props Links and Tendons Example: To animate a biped swinging a prop with one hand: (page 2–899) To adjust joint intersection parameters: (page 2–1140) Example: To animate the biped switching the prop to the other hand: (page 2–899) To create and attach a tendon: (page 2–1097) To collapse the transforms of a prop: (page 2–900) To attach a tendon to another link: (page 2–1097) To delete a tendon: (page 2–1097) Controllers and Biped To add a controller to a biped object: (page 2–896) 1267 1268 Chapter 14: character studio To collapse a controller: (page 2–897) To edit multiple delegates: (page 2–1197) To add controllers to multiple biped parts at the same time: (page 2–897) To group delegates into a team: (page 2–1201) To animate the weights of an added controller: (page 2–897) Miscellaneous To load a file created with different system units: (page 2–1099) To hide the finger, toe, and head dummy objects: (page 2–923) Behaviors To create a new behavior assignment: (page 2–1201) To use assign behaviors to delegates: (page 2–1162) To modify an existing behavior assignment or assignments: (page 2–1202) To use the Avoid behavior: (page 2–1165) To use the Orientation behavior: (page 2–1167) To change biped display: (page 2–854) To use the Path Follow behavior: (page 2–1163) To select from the screen: (page 2–889) To use the Repel behavior: (page 2–1166) To reposition a freeform animation (with no IK attachment) or a footstep animation: (page 2–927) To use the Seek behavior: (page 2–1163) To reposition a biped with limbs attached to an Object Space object (IK attachment): (page 2–928) To reposition a biped with limbs attached to world space (IK attachment): (page 2–928) To reposition a biped animated with a motion flow script: (page 2–928) To scale a biped that has a mesh attached to it by using Physique: (page 2–1100) Facial Animation (page 2–1100) To isolate lip vertices from influence by inappropriate links: (page 2–1103) Crowd System Crowd and Delegate Helpers To create a Crowd helper object: (page 2–1158) To add a Vector Field space warp: (page 2–1166) To use a Vector Field space warp with delegates: (page 2–1166) To use the Speed Vary behavior: (page 2–1168) To use the Surface Arrive behavior: (page 2–1164) To use the Surface Follow behavior: (page 2–1164) To use the Wall Repel behavior: (page 2–1165) To use the Wall Seek behavior: (page 2–1163) To use the Wander behavior: (page 2–1231) Solving a Crowd Simulation To solve a simulation: (page 2–1168) To speed up the solution time: (page 2–1168) To troubleshoot the simulation: (page 2–1168) To create a Delegate helper object: (page 2–1158) Cognitive Controllers To clone and scatter delegates: (page 2–1158) To set up and use a cognitive controller: (page 2–1170) To link objects to delegates: (page 2–1169) To associate bipeds with delegates: (page 2–1169) Testing a Particle System Parameter (page 2–1209) Procedures Testing an Atmospheric Property (page 2–1209) Testing Another Delegate’s Behavior (page 2–1209) To move all clips horizontally on one track: (page 2–611) To move a clip to another track: (page 2–611) Motion Synthesis To use Motion Synthesis with non-bipedal creatures: (page 2–1180) Procedures: Using Bipeds in a Crowd Simulation (page 2–1175) To change the length of a clip without changing its speed: (page 2–615) To change the speed of an entire clip: (page 2–616) To prepare to warp a clip’s time: (page 2–621) To warp a clip’s time: (page 2–621) Motion Mixer General To add multiple time warps to a clip: (page 2–622) To access the Motion Mixer from the Motion panel: (page 2–606) Trackgroups To display the Motion Mixer in a viewport: (page 2–607) To filter and name a trackgroup: (page 2–614) To remove the Motion Mixer from a viewport: (page 2–607) To add a new trackgroup for the biped: (page 2–614) To convert a clip track from one type to another: (page 2–608) To add a biped to the Motion Mixer: (page 2–608) To add a Transition or Layer track to a trackgroup: (page 2–608) To add a non-biped object to the Motion Mixer: (page 2–608) Transitions To see the motions in the Motion Mixer on the biped in the scene: (page 2–611) To create a transition between two clips: (page 2–618) Loading Clips To change the focus on a foot-based transition with Biped animation: (page 2–619) To import BIP clips from a file: (page 2–610) To adjust a weight curve: (page 2–620) To import clips from the Reservoir: (page 2–610) To import clips from a motion flow script: (page 2–611) To replace one clip with another: (page 2–612) To replace a clip with motion from a biped in the scene: (page 2–612) To clone a clip: (page 2–612) Clip Timing To move a clip in time within a track: (page 2–611) Biped Balance To adjust balance using the balance track: (page 2–623) To fine-tune balance compensation on the pelvis and spine: (page 2–624) Saving Mixer Data To perform a mixdown and copy it to the biped: (page 2–625) 1269 1270 Chapter 14: character studio To save Motion Mixer data to a MIX file: (page 2–626) Reservoir To access the Reservoir: (page 2–627) To add clips to the Reservoir: (page 2–627) To replace a clip in the Reservoir: (page 2–627) To save an instanced clip to a new clip: (page 2–628) To save multiple instanced clips from the Reservoir: (page 2–628) To remove clips not used in the Motion Mixer from the Reservoir: (page 2–628) Workbench General To display a biped body part curve in the Workbench, do one of the following: (page 2–1016) To hide or unhide the Tab panel: (page 2–1016) Workbench Panels To analyze a curve: (page 2–1017) To fix an individual error: (page 2–1020) To fix multiple errors: (page 2–1020) To remove keys from curves automatically: (page 2–1021) To filter a track: (page 2–1023) Lights and Cameras a physically accurate model of real-world lighting. The Daylight and Sunlight systems create outdoor 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 (page 2–1272) Cameras (page 2–1365) “Little Village Far, Far Away” Copyright 2000 Eni Oken Lights and cameras are scene objects that simulate their real-world counterparts. Lights provide lighting 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 1272 Chapter 15: Lights and Cameras Tip: One way to begin your work on lighting a Create panel > Lights scene is to convert the default lighting into light objects by using the command Add Default Lights To Scene (page 1–49). Create menu > Lights Note: A scene’s lighting is also affected by the Lights Ambient Light setting on the Environment And Effects dialog > Environment panel (page 3–272). 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 Nighttime scene with artificial lighting 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 (page 2–1341).) 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. Standard lights (page 2–1288) 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 (page 2–1301) use photometric (page 3–993) (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 photometric files available from lighting manufacturers to design lighting based on commercially available lights. Tip: Combine Photometric lights with the radiosity solution (page 3–51) 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 Name and Color Rollout (Lights) creation parameters. See Animating Lights (page 2–1282). make all spotlights red, and all omni lights blue to easily distinguish them. • You can use the Place Highlight (page 1–467) command to change a light’s position. See the Procedures in Working with Lights (page 2–1274). 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/Distribution rollout (page 2–1352) (for photometric lights), or its Intensity/Color/Attenuation rollout (page 2–1345) (for standard lights). • A Light viewport (page 3–750) can be a useful way to adjust lights other than omni lights. • To simulate sunlight, use a daylight or sunlight system (page 1–418), 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 (page 2–1296) light is distinct from the photometric daylight lights. The Skylight light is for use with light tracing (page 3–44). See also Procedure 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 (page 1–161). 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 Working with Lights (page 2–1274) field and enter the new name, then press the Enter key. Using Lights (page 2–1274) The light’s name has changed. Light Include/Exclude Tool (page 2–1283) Light Lister (page 2–1285) Interface Animating Lights (page 2–1282) Name and Color Rollout (Lights) Name—The name of the selected light. Create panel > Lights > Create a light. > Name and Color rollout Note: When you rename a target-type light, the Create menu > Photometric Lights > Create a light. > Modify panel > Name and Color rollout Color—The color of the light’s geometry. Create a light. > Modify panel > Name and Color rollout (This has no effect on the color the light emits.) 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 target object will be renamed to match the light. 1273 1274 Chapter 15: Lights and Cameras Using Lights In general, these are the reasons to use light objects (page 2–1272): 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 (page 2–1325). • 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 (page 2–1280) 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 (page 2–1337). • 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 (page 2–1341). • 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 (page 3–1009) material to make the geometry appear as if it’s emitting light. • To create lighting scenes using manufacturers’ IES (page 2–1328), CIBSE (page 3–921), or LTLI (page 3–964) files. You can visualize commercially available lighting in your model by creating photometric lights (page 2–1301) based on manufacturer’s photometric data files. By experimenting See also Working with Lights (page 2–1274) Properties of Light (page 2–1276) Lighting in 3ds Max (page 2–1279) Guidelines for Lighting (page 2–1280) Positioning Light Objects (page 2–1282) Animating Lights (page 2–1282) Light Include/Exclude Tool (page 2–1283) Light Lister (page 2–1285) Working with Lights The procedures in this topic apply to both standard and photometric lights. Here are some general tips about working with lights: • 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 (page 1–49). Note: Add Default Lights To Scene works only if you have used the Viewport Configuration dialog (page 3–853) 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 (page 3–775). See the “Procedures” section, below. • You can use the Place Highlight (page 1–467) button to change a light’s position. See the “Procedures” section, below. Working with Lights • A Light viewport (page 2–1338) can be a useful way to adjust spotlights in your scene. Shadows are visible only when rendered, either in a full rendering (page 3–1) or by ActiveShade (page 3–17). Procedures Tip: To turn shadows on or off for multiple lights, select the lights and then use the Light Lister (page 2–1285). To create a light: 1. On the Create panel, click Lights. You can set an object to not cast or not receive shadows. By default, objects do both. See Object Properties (page 1–117). 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. To control the display of light objects: • All light objects in the scene disappear, but the lighting itself is unchanged. 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. 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 (page 3–740) and Zoom Extents All (page 3–740) includes the lights in the zoom. 5. Set the creation parameters. Like all objects, lights have a name, a color, and a General Parameters rollout. 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 (page 1–117). To create shadows, do one of the following: • 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 (page 2–1363), Advanced Ray-traced (page 2–1356), Area Shadows, (page 2–1357) or Ray Traced Shadows (page 2–1363)) shadow rollouts. • 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. On the Display panel, on the Hide By Category rollout, turn on Lights. 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. 1275 1276 Chapter 15: Lights and Cameras 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. 3. On the Main toolbar, choose Place Highlight from the Align flyout (page 1–462). You can also choose Tools menu > Place Highlight. 4. Drag over the object to place the highlight. When you place an omni light (page 2–1295), free point (page 2–1304), free linear (page 2–1307), free area (page 2–1309) or free direct light (page 2–1293), the program displays a face normal for the face the mouse indicates. 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 (page 2–1395) let you specify the visual properties of surfaces. 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. When you place a target point (page 2–1303), target area (page 2–1307), target linear (page 2–1305) or target direct light (page 2–1292), the program 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 (page 1–467) 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. 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 Properties of Light incidence increases, the intensity of illumination decreases. 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. 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. 1277 1278 Chapter 15: Lights and Cameras A. Direct light B. Reflected light Additive mixing of colored lights 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. 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 Temperature Hue Overcast daylight 6000 K 130 Noontime sunlight 5000 K 58 White fluorescent 4000 K 27 Tungsten/halogen lamp 3300 K 20 Incandescent lamp (100 to 200 W) 2900 K 16 Incandescent lamp (25 W) 2500 K 12 Lighting in 3ds Max Light source Color Temperature Hue 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 (page 2–1301) with a radiosity solution (page 3–51) with your lights provides a better model of the real world. Intensity command (page 1–467) is one way to fine-tune the location of a light. Attenuation For standard lights, attenuation (page 3–912) 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. more information about material color and how it interacts with light intensity. 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 (page 3–271).) In an indoor setting, attenuation is useful for low-intensity light sources such as candles. The intensity of a photometric light is set by a real-world intensity value, measured in either lumens, candelas, or lux. See Intensity/Color/Distribution Rollout (page 2–1352). 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.) Angle of Incidence Reflected Light and Ambient Light 3ds Max uses a vector from the light object to the face, along with the face normal, to calculate the angle of incidence. 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 (page 3–51) to show the results of reflected light. 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 (page 2–1395) for 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 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 When you do not use a radiosity solution, you can use the Environment panel (page 3–272) 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 1279 1280 Chapter 15: Lights and Cameras 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. Tip: To better simulate reflected light and variations Whether a scene is indoors or outdoors can also affect your choice of material colors. See Designing Materials (page 2–1395). Natural Light 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 (page 2–1331). 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 (page 2–1276). 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. 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 specifically provides a daylight system to simulate the sun. See Sunlight and Daylight Systems (page 1–418). A single daylight system is appropriate as the main light source for sunlit scenes. 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. Guidelines for Lighting Artificial Light 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 (page 2–1301). Ambient 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 (page 2–1289), Free Spot (page 2–1290), and Omni (page 2–1295). Ambient light can be another element of your fill lighting. 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, 1281 1282 Chapter 15: Lights and Cameras 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 (page 3–272). You set a light to affect only ambient illumination with its Advanced Effects rollout (page 2–1341) > Ambient Only check box. 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: Scale: Scaling Point, Linear, or Area lights has no effect. Using Scale (page 1–441) 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 (page 3–750) 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 on Degradation Override (page 1–34). If Override is off and shaded viewports begin to display in wireframe, you can’t see the result of the changes you make to lights. Placing Highlights Move: Use Move (page 1–439) to change the position of lights. You can also use it to change the position of light targets. Rotate: Use Rotate (page 1–439) 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 isotropic light has no effect as these lights cast light uniformly in all directions. However, rotating an omni or isotropic projector light causes the projected image to rotate. Rotating a photometric isotropic light has no effect as these lights cast light uniformly in all directions. However, rotating an isotropic projector light causes the projected image to rotate. You use Place Highlight (page 1–467) 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 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. Animating Lights You animate lights by using transforms or changing creation parameters on different keyframes while the Auto Key button (page 3–717) 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. Light Include/Exclude Tool • Move an omni light (page 2–1295) 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. and assign a step tangent (page 2–305) 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 (page 3–792). • Use a free spotlight (page 2–1290) when a spotlight is to move within the scene. Free spotlights are especially intended to be animated along a path, using a Path constraint (page 2–398). Unlike target spotlights, free spotlights can bank as they travel. Use target spotlights (page 2–1289) when the light position is fixed. 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. • If you do need to move a target spotlight, link both the light and its target to a dummy object (page 2–16), then assign the path constraint to the dummy object. 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 (page 2–1335). • Use a LookAt Constraint (page 2–406) 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. 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. • Change the parameters of a daylight system (page 1–418) or sunlight system to simulate different times of day or year. Note: By default, no objects are excluded for a new light. It’s necessary only to include objects that have previously been excluded. Animating Light Creation Parameters See also The following techniques can be used to animate Modify panel parameters for lights. Lights (page 2–1272) • To dim or brighten a light over time, animate its Multiplier parameter. • To change the color of a light over time, animate its color parameters. Use a smooth tangent (page 2–305) 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, Light Lister (page 2–1285) Procedure 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. 1283 1284 Chapter 15: Lights and Cameras 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. Interface 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 Select Objects dialog (page 1–78) (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. 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. Light Lister Current displayed light—Names the currently Procedures selected light. To use global settings: 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 1. On the Light Lister dialog, on the Configuration rollout, choose General Settings. 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 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 (page 3–272). 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 (page 2–1283) 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. 1285 1286 Chapter 15: Lights and Cameras 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. General Settings rollout For specific effects, see Shadow Map Parameters (page 2–1363) and Ray-Traced Shadow Parameters (page 2–1363). Sm. Range (Sample Range)—For shadow-mapped shadows, sets the Sample Range value. See Shadow Map Parameters (page 2–1363). This value has no effect for ray-traced or area shadows. Transp. ( Transparency)— When on, turns on 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). transparency for advanced ray-traced and area shadows. Has no effect on shadow-mapped or standard ray-traced shadows. Default=off. Int. (Integrity)—For advanced ray-traced shadows or area shadows, sets the Shadow Integrity. See Advanced Ray-Traced Parameters Rollout (page 2–1356) or Area Shadows Rollout (page 2–1357). Qual. (Quality)—For advanced ray-traced shadows scene. When off, affected lights go dark in the viewports and renderings. or area shadows, sets the Shadow Quality. See Advanced Ray-Traced Parameters Rollout (page 2–1356) or Area Shadows Rollout (page 2–1357). Multiplier—Increases or decreases the light Decay—(For standard lights.) Sets the type of intensity of standard lights. See General Lighting Parameters (page 2–1331) for standard lights. decay: None, Inverse, or Inverse Square. See Intensity/Color/Attenuation Parameters (page 2–1345). On—When on, affected lights are active in the Color—By default, the color of all standard lights is white. Click to display the Color Selector (page 1–161) and change the light color for affected lights. Start—(For standard lights.) Sets the start Warning: For photometric lights, this changes the filter color, not the color temperature. Length—(For photometric lights.) Sets the Length 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. range for decay. See Intensity/Color/Attenuation Parameters (page 2–1345). value for Linear and Area lights. See Linear Light Parameters Rollout (page 2–1354) or Area Light Parameters Rollout (page 2–1354). Width—(For photometric lights.) Sets the Width value for Area lights. See Area Light Parameters Rollout (page 2–1354). 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. Global Tint—Adds a color tint to all lights in the scene except ambient light. Click to use the Color Selector (page 1–161). The tint is in addition to the Light Lister 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 (page 3–908), the color seen in shadows. Click to use the Color Selector (page 1–161). Lights rollout 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. 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. Color—Click to display the Color Selector (page 1–161) 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. 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 (page 2–1363) and Ray-Traced Shadow Parameters (page 2–1363) for specific effects. Sm. Range—For shadow-mapped shadows, sets the Sample Range value. See Shadow Map Parameters (page 2–1363). This value has no effect for ray-traced shadows. Default=4.0. 1287 1288 Chapter 15: Lights and Cameras 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 (page 2–1361). Int. (Integrity)—For advanced ray-traced shadows or area shadows, sets the Shadow Integrity. See Advanced Ray-Traced Parameters Rollout (page 2–1356) or Area Shadows Rollout (page 2–1357). Default=1. Qual. (Quality)—For advanced ray-traced shadows objects cast light in different ways, simulating different kinds of real-world light sources. Unlike photometric lights (page 2–1301), standard lights do not have physically-based intensity values. There are eight types of standard light objects: Target Spotlight (page 2–1289) Free Spotlight (page 2–1290) Target Direct Light (page 2–1292) Free Direct Light (page 2–1293) Omni Light (page 2–1295) or area shadows, sets the Shadow Quality. See Advanced Ray-Traced Parameters Rollout (page 2–1356) or Area Shadows Rollout (page 2–1357). Default=2. Skylight (page 2–1296) Decay—(Standard Lights only.) Sets the type Most of the parameters for standard lights are common to all five types. These are described in the following topics: of decay: None, Inverse, or Inverse Square. See Attenuation Parameters (page 2–1345). Default=None. Start—(Standard lights only.) Sets the start range for decay. See Attenuation Parameters (page 2–1345). Default=0.0. Length—(Photometric lights only.) Sets the Length mr Area Omni Light (page 2–1298) mr Area Spotlight (page 2–1299) General Lighting Parameters (page 2–1331) Intensity/Color/Attenuation Parameters (page 2–1345) Advanced Effects Rollout (page 2–1341) value for Linear and Area photometric lights. See Linear Light Parameters Rollout (page 2–1354) or Area Light Parameters Rollout (page 2–1354). Shadow Parameters (page 2–1337) Width—(Photometric lights only.) Sets the Width value for Area photometric lights. See Area Light Parameters Rollout (page 2–1354). Spotlights and Directional lights have rollouts specific to them: mental ray Indirect Illumination Rollout (for Lights) (page 2–1343) Spotlight Parameters (page 2–1338) Directional Parameters (page 2–1348) 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 For parameters specific to a particular kind of light, see that light’s description. Shadow Parameters Different rollouts can appear, depending on which type of shadows you have chosen for a light: Target Spotlight Advanced Ray-Traced Parameters Rollout (page 2–1356) Area Shadows Rollout (page 2–1357) Optimizations Rollout (page 2–1361) mental ray Shadow Map Rollout (page 2–1360) Ray-Traced Shadow Parameters Rollout (page 2–1363) Shadow Map Parameters Rollout (page 2–1363) Note: When you add a target spotlight, the software automatically assigns a Look At controller (page 2–344) 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 (page 2–1272) Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Target Spotlight Create panel > Lights > Standard > Target Spot button Intensity/Color/Attenuation Parameters (page 2–1345) Create menu > Standard Lights > Target Spotlight Advanced Effects Rollout (page 2–1341) Shadow Parameters (page 2–1337) Spotlight Parameters (page 2–1338) 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. Top: Top view of a target spotlight To adjust a target spotlight: Bottom: Perspective view of the same light 1. Select the 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. 2. Use Move on the main toolbar to adjust the light. As an alternative, right-click the light and choose Move. 1289 1290 Chapter 15: Lights and Cameras 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. 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 To select the target: Create panel > Lights > Standard > Free Spot button 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. Create menu > Standard Lights > Free Spotlight 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. Another way to adjust a spotlight is to use a Light viewport (page 2–1338). 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 (page 3–750) to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. 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. Free Spotlight See also Lights (page 2–1272) The default keyboard shortcut for switching to a Light viewport is $. Name and Color Rollout (Lights) (page 2–1273) Interface General Lighting Parameters (page 2–1331) You aim a free spotlight by adjusting its orientation in a scene using Move and Rotate. Intensity/Color/Attenuation Parameters (page 2–1345) Advanced Effects Rollout (page 2–1341) Shadow Parameters (page 2–1337) Spotlight Parameters (page 2–1338) General Parameters rollout Procedures To create a free spotlight: On the Create panel, click Lights. 1. 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 (page 3–930), or you need banking along the path. 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 (page 3–750) to adjust the light. When you create a Free Spot light, the Targeted parameter is adjustable on the General Parameters rollout (page 2–1331). 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. 1291 1292 Chapter 15: Lights and Cameras Target Direct Light Create panel > Lights > Standard > Target Direct button Create menu > Standard Lights > Target Directional Light (page 2–344) 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 (page 3–51) 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 (page 2–1272) Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Intensity/Color/Attenuation Parameters (page 2–1345) Advanced Effects Rollout (page 2–1341) Top: Top view of a target directional light Shadow Parameters (page 2–1337) Bottom: Perspective view of the same light Directional Parameters (page 2–1348) 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 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. Free Direct Light 4. Set the creation parameters. To adjust the light’s direction, move the target object. To change a viewport to a Light view: Free Direct Light Create panel > Lights > Standard > Free Direct button Create menu > Standard Lights > Directional Light 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 (page 3–750) to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. 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. 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 (page 1–418). 1293 1294 Chapter 15: Lights and Cameras 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 (page 3–51) 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). 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 (page 3–750) to adjust the light. The default keyboard shortcut for switching to a Light viewport is $. Interface See also Lights (page 2–1272) Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Intensity/Color/Attenuation Parameters (page 2–1345) Advanced Effects Rollout (page 2–1341) Shadow Parameters (page 2–1337) Directional Parameters (page 2–1348) Procedures To create a free direct light: 1. To change a viewport to a Light view: 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. Directional Parameters rollout When you create a Free Direct light, the Targeted parameter is adjustable on the General Parameters rollout (page 2–1331). 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 Omni Light Create panel > Lights > Standard > Omni button Create menu > Standard Lights > Omni Light 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 (page 3–999), 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 (page 2–1272) Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Intensity/Color/Attenuation Parameters (page 2–1345) Advanced Effects Rollout (page 2–1341) Shadow Parameters (page 2–1337) Procedure To create an omni light: 1. 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 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. 1295 1296 Chapter 15: Lights and Cameras 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 (page 3–44). You can set the color of the sky or assign it a map. The sky is modeled as a dome above the scene. 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 (page 2–1601) and then reduce the Indirect Light Bump Scale value. Model rendered with a single skylight, and light tracing When you render with the default scanline renderer (page 3–38), Skylight works best with advanced lighting: either the Light Tracer, or radiosity (page 3–51). Warning: When you render with the mental ray renderer (page 3–78), objects illuminated by a Skylight appear dark unless you turn on Final Gathering (page 3–940). The toggle for Final Gathering is on the Final Gather rollout (page 3–111) of the Render Scene dialog. 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. Skylight Using Render Elements with a Skylight If you use Render Elements (page 3–130) to output the lighting element (page 3–141) 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: On the Create panel, click Lights. 1. Standard is the default choice of light type. 2. In the Object Type rollout, click Skylight. 3. Click a viewport. 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. 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 (page 3–977) 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. Sky Color group Use Scene Environment—Colors the light using the environment set up on the Environment panel (page 3–272). This setting has no effect unless light tracing is active. Sky Color—Click the color swatch to display a Color Selector (page 1–161) and choose a tint for the Skylight. Interface 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 (page 3–613) for illumination. The map has no effect unless light tracing is active. 1297 1298 Chapter 15: Lights and Cameras 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 (page 3–17). 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. 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 (page 3–84) 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 (page 3–27) of the Render Scene dialog to speed up your rendering. See also mr Area Spotlight (page 2–1299) Procedures To create an area omni light: On the Create panel, click Lights. 1. 2. On the Object Type rollout, click mr Area Omni. 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 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: When you render a scene using the mental ray renderer (page 3–78), an area omni light emits light from a spherical or cylindrical volume, rather than 1. Select one or more lights. 2. Go to the Utilities panel. mr Area Spotlight 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. 6. Click Close to dismiss the “Convert To mr Area 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. Lights” and MAXScript rollouts. Samples group Interface 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 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. Create panel > Lights > mr Area Spot button > Area Light Parameters rollout When you render a scene using the mental ray renderer (page 3–78), 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. 1299 1300 Chapter 15: Lights and Cameras Note: In 3ds Max, area spotlights are created and 2. Go to the Utilities panel. supported by a MAXScript script. Only the mental ray renderer uses the parameters in the Area Light Parameters rollout. See Enhancements to Standard Features (page 3–84) for more details. 3. On the Utilities rollout, click MAXScript. 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 (page 3–27) of the Render Scene dialog to speed up your rendering. See also mr Area Omni Light (page 2–1298) Procedures 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 To create an area spotlight: Go to the Create panel and click 1. The MAXScript rollout is displayed. Lights and MAXScript rollouts. Interface Lights. 2. On the Object Type rollout, click mr Area Spot. 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. 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. Photometric Lights Type—Changes the shape of the area light. Can be either Rectangle, for a rectangular area, or Disc, for a circular area. Default=Rectangle. Note: Photometric lights always attenuate using an inverse-square falloff, and rely on your scene using realistic units. Radius—Available only when Disc is the active 3ds Max includes the following types of photometric light objects: 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. Target Point Light (Photometric) (page 2–1303) Free Point Light (Photometric) (page 2–1304) Target Linear Light (Photometric) (page 2–1305) Free Linear Light (Photometric) (page 2–1307) Target Area Light (Photometric) (page 2–1307) Free Area Light (Photometric) (page 2–1309) IES Sun Light (Photometric) (page 2–1309) Samples group IES Sky Light (Photometric) (page 2–1312) U and V—Adjust the quality of shadows cast by mr Sky (page 2–1318) 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) 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. mr Sun (page 2–1319) Note: The remainder of this topic discusses photometric lights with the exception of mr Sky and mr Sun. For information about these light types, see mental ray Sun & Sky (page 2–1313). Distribution Capabilities of Photometric Lights Each type of photometric light supports two or three different light distribution options. The point light sources (target and free) support these distributions: Photometric Lights • Isotropic (page 2–1323) Photometric lights use photometric (page 3–993) (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. • Spotlight (page 2–1324) • Web (page 2–1325) The linear and area light sources (target and free) support these distributions: • Diffuse (page 2–1323) • Web (page 2–1325) 1301 1302 Chapter 15: Lights and Cameras Parameters for Photometric Lights Most of the photometric light parameters are common to all photometric light types, and are described in the following topics: Intensity/Color/Distribution Rollout (page 2–1352) Photometric Linear and Area Lights have rollouts specific to them: Linear Light Parameters Rollout (page 2–1354) Area Light Parameters Rollout (page 2–1354) Area Light Sampling Rollout (page 2–1354) Photometric Lights: Preset Lights Create menu > Lights > Photometric Lights > Presets Preset Lights are photometric lights that have a preset configuration in 3ds Max. Preset Lights load up correct values based on their equivalent commercial product. For example, a 60W light setting loads up the correct intensity, lighting, and distribution settings corresponding to a real 60W bulb. Using Preset Lights, you’re able to quickly create lights that are correct simulations of real-world objects. The remaining photometric light parameters are shared with standard lights, and are described in the following topics: The Preset Lights available are: Name and Color Rollout (Lights) (page 2–1273) • Generic 75W Bulb General Lighting Parameters (page 2–1331) • Generic 100W Bulb Shadow Parameters (page 2–1337) Advanced Effects Rollout (page 2–1341) Other photometric-specific topics include: • Generic 60W Bulb • Generic Halogen Spotlight • Generic Recessed 75W Lamp (web) • Generic Recessed 75W Wallwash (web) • Generic Recessed 250W Wallwash (web) IES Standard File Format (page 2–1328) • Generic 4ft Pendant Fluorescent (web) Example of Photometric Data File (page 2–1329) • Generic 4ft Cove Fluorescent (web) Common Lamp Values for Photometric Lights (page 2–1329) • Generic Street 400W Lamp (web) Notes See also • A scene’s lighting can also be affected by the Ambient Light setting on the Environment panel (page 3–272). Photometric Lights (page 2–1301) • You can use the Place Highlight (page 1–467) command to change a light’s position. Target Linear Light (Photometric) (page 2–1305) • Generic Stadium 100W Lamp (web) Target Point Light (Photometric) (page 2–1303) Target Area Light (Photometric) (page 2–1307) Free Point Light (Photometric) (page 2–1304) Free Linear Light (Photometric) (page 2–1307) Free Area Light (Photometric) (page 2–1309) Target Point Light (Photometric) Procedure The procedures for adding any of the 11 Preset Lights are identical. Follow the same procedure for any of the other Preset Lights as shown for the following: To add a photometric preset generic 60W bulb to a scene: 1. From the Create menu, choose Photometric Lights > Preset Lights > Generic 60W Bulb. 2–344) 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 Point01 to Klieg causes Point01.Target to become Klieg.Target. The target’s name must have the extension .Target. Renaming the target object does not rename the light object. 2. Position your cursor where you want and click to place the light. Interface For each of the Preset Lights 3ds Max displays the appropriate parameters in the Command Panel. See the following interface descriptions for each Photometric Light object type: Icons for Target Point light with isotropic, spotlight and web distribution Target Point Light (Photometric) (page 2–1303) See also Target Linear Light (Photometric) (page 2–1305) Lights (page 2–1272) Target Area Light (Photometric) (page 2–1307) Isotropic Light Distribution (Photometric Lights) (page 2–1323) Free Point Light (Photometric) (page 2–1304) Free Linear Light (Photometric) (page 2–1307) Free Area Light (Photometric) (page 2–1309) Target Point Light (Photometric) Create panel > Lights > Photometric Lights > Target Point button Create menu > Lights > Target Point Light Spotlight Distribution (Photometric Lights) (page 2–1324) Web Distribution (Photometric Lights) (page 2–1325) Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Intensity/Color/Distribution Rollout (page 2–1352) Shadow Parameters (page 2–1337) A Target Point light, like a standard omni light, emits light from a geometric point. You can set the light distribution; this light has three types of distribution, with corresponding icons. You use a target object to aim the light. Note: When you add a Target Point light, 3ds Max automatically assigns a Look At controller (page Advanced Effects Rollout (page 2–1341) Procedures To create a Target Point light: 1. On the Create panel, click Lights. 1303 1304 Chapter 15: Lights and Cameras 2. Choose Photometric from the drop-down list. (The default is Standard.) 3. In the Object Type rollout, click Target Point. 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. 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 (page 3–694). 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. For target point lights with spotlight distributions, you can also adjust the light using a Light viewport (page 3–750). To change a viewport to a light view: Note: The viewport can only be set to a light view when the target point 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 Point lights are named Point01, Point02, 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 (page 3–750) controls to adjust the light. Tip: The default keyboard shortcut for Light viewports is $. Free Point Light (Photometric) To adjust the light and target: Create panel > Lights > Photometric Lights > Free Point button 1. Select the light or target or both. Create menu > Lights > Free Point Light 2. On the Main toolbar, click Move. Drag the selection to adjust the light. 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 (page 1–467) command to change a light’s position. A Free Point light, like a standard omni light, emits light from a geometric point. You can set the light distribution; this light has three types of distribution, with corresponding icons. A free point light has no target object. You use transforms to aim the light. Icons for Free Point light with isotropic, spotlight and web distribution Target Linear Light (Photometric) See also Lights (page 2–1272) Isotropic Light Distribution (Photometric Lights) (page 2–1323) Spotlight Distribution (Photometric Lights) (page 2–1324) Web Distribution (Photometric Lights) (page 2–1325) Name and Color Rollout (Lights) (page 2–1273) 2. On the Main toolbar, click Move. Drag the selection to adjust the light. 3. On the Main toolbar, click Rotate. Drag the selection to adjust the light. Tip: You can also adjust the light’s position with the Place Highlight (page 1–467) command. To change a viewport to a light view: Note: This is only available for lights with Spot General Lighting Parameters (page 2–1331) distribution. Intensity/Color/Distribution Rollout (page 2–1352) 1. Right-click the viewport label. Shadow Parameters (page 2–1337) Advanced Effects Rollout (page 2–1341) Procedures To create a Free Point light: 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 FPoint01, FPoint02, and so on. 3. Choose the name of the light you want. On the Create panel, click Lights. 1. 2. Choose Photometric from the drop-down list. (Standard is the default.) 3. In the Object Type rollout, click Free Point. 4. Click the viewport location where you want the The viewport now shows the light’s point of view. You can use the Light Viewport Controls (page 3–750) to adjust the light. The default keyboard shortcut for Light viewports is $. light to be. The light is now part of the scene. It points away from you in the viewport you clicked. 5. Set the creation parameters. You can position the light (page 2–1282) 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 (page 1–467) command. Target Linear Light (Photometric) Create panel > Lights > Photometric Lights > Target Linear button Create menu > Photometric Lights > Target Linear Light To adjust the light: A Target Linear light emits light from a line, like a fluorescent tube. You can set the light distribution; this light has two types of distribution, with corresponding icons. A target linear light uses a target object to aim the light. 1. Select the light. Note: When you add a Target Linear light, the software automatically assigns a Look At controller (page 2–344) to it, with the light’s target object 1305 1306 Chapter 15: Lights and Cameras 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 Linear light, the target is automatically renamed to match. For example, renaming Linear01 to Klieg causes Linear01.Target to become Klieg.Target. The target’s name must have the extension .Target. Renaming the target object does not rename the light object. 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. 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 light itself. 2. Right-click the light to open the quad menu Icons for Target Linear light with diffuse and web distribution (page 3–694). From the tools quadrant, choose Select Target. See also 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. Lights (page 2–1272) Diffuse Distribution (Photometric Lights) (page 2–1323) Web Distribution (Photometric Lights) (page 2–1325) To adjust the light and target: 1. Select the light or target or both. Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Intensity/Color/Distribution Rollout (page 2–1352) Shadow Parameters (page 2–1337) Advanced Effects Rollout (page 2–1341) Procedures To create a Target Linear 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 Linear. 2. On the Main toolbar, click Move. Drag the selection to adjust the light. 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 (page 1–467) command to change a light’s position. Free Linear Light (Photometric) Free Linear Light (Photometric) 4. 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. Create panel > Lights > Photometric Lights > Free Linear button Create menu > Photometric Lights > Free Linear Light A Free Linear light emits light from a line, like a fluorescent tube. You can set the light distribution; this light has two types of distribution, with corresponding icons. A free linear light has no target object. You use transforms to aim the light. 5. Set the creation parameters. You can position the light (page 2–1282) and adjust its direction with the transform tools. You can also adjust the light’s position with the Place Highlight (page 1–467) command. To adjust the light: 1. Select the light. 2. On the Main toolbar, click Move. Drag the selection to position the light. 3. On the Main toolbar, click Rotate. Drag the selection to adjust the light. Icons for Free Linear light with diffuse and web distribution See also Lights (page 2–1272) Diffuse Distribution (Photometric Lights) (page 2–1323) Web Distribution (Photometric Lights) (page 2–1325) Name and Color Rollout (Lights) (page 2–1273) General Lighting Parameters (page 2–1331) Tip: You can also adjust the light’s position with the Place Highlight (page 1–467) command. Target Area Light (Photometric) Create panel > Lights > Photometric Lights > Target Area button Create menu > Photometric Lights > Target Area Light Intensity/Color/Distribution Rollout (page 2–1352) Procedures A Target Area light emits light from a rectangular area, like a skylight. You can set the light distribution; this light has two types of distribution, with corresponding icons. A target area light uses a target object to aim the light. To create a Free Linear light: Note: When you add a Target Area light, the Shadow Parameters (page 2–1337) Advanced Effects Rollout (page 2–1341) 1. On the Create panel, click Lights. 2. Choose Photometric from the drop-down list. (Standard is the default.) 3. In the Object Type rollout, click Free Linear. software automatically assigns a Look At controller (page 2–344) 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. 1307 1308 Chapter 15: Lights and Cameras Note: When you rename a Target Area light, the target is automatically renamed to match. For example, renaming Area01 to Klieg causes Area01.Target to become Klieg.Target. The target’s name must have the extension .Target. Renaming the target object does not rename the light object. 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. 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 light itself. Icons for Target Area light with diffuse and web distribution 2. Right-click the light to open the quad menu (page 3–694). In the Tools quadrant, choose Select Target from the pop-up menu. See also Lights (page 2–1272) 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. Diffuse Distribution (Photometric Lights) (page 2–1323) Web Distribution (Photometric Lights) (page 2–1325) To adjust the light and target: Name and Color Rollout (Lights) (page 2–1273) 1. Select the light or target or both. General Lighting Parameters (page 2–1331) 2. Intensity/Color/Distribution Rollout (page 2–1352) Shadow Parameters (page 2–1337) Advanced Effects Rollout (page 2–1341) Procedures To create a Target Area 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 Area. On the Main toolbar, click Move. Drag the selection to adjust the light. 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 (page 1–467) command to change a light’s position. Free Area Light (Photometric) Free Area Light (Photometric) Create panel > Lights > Photometric Lights > Free Area button Create menu > Photometric Lights > Free Area Light A Free Area light emits light from a rectangular area, like a skylight. You can set the light distribution; this light has two types of distribution, with corresponding icons. A free area light has no target object. You use transforms to aim the light. Procedures To create a Free Area light: On the Create panel, click Lights. 1. 2. Choose Photometric from the drop-down list. (Standard is the default.) 3. In the Object Type rollout, click Free Area. 4. 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. 5. Set the creation parameters. You can position the light (page 2–1282) and adjust its direction with the transform tools. You can also adjust the light’s position with the Place Highlight (page 1–467) command. To adjust the light: 1. Select the light. Icons for Free Area light with diffuse and web distribution 2. See also Lights (page 2–1272) Diffuse Distribution (Photometric Lights) (page 2–1323) Web Distribution (Photometric Lights) (page 2–1325) On the Main toolbar, click Rotate. Drag the selection to adjust the light. Tip: You can also adjust the light’s position with the Place Highlight (page 1–467) command. IES Sun Light (Photometric) Name and Color Rollout (Lights) (page 2–1273) Create panel > Systems > Create a Daylight system in your scene. > Modify panel > Daylight Parameters rollout > Sunlight > Choose IES Sun. General Lighting Parameters (page 2–1331) Create panel > Lights > Photometric > IES Sun Intensity/Color/Distribution Rollout (page 2–1352) Create menu > Lights > Photometric > IES Sun Shadow Parameters (page 2–1337) Advanced Effects Rollout (page 2–1341) IES Sun is a physically-based light object that simulates sunlight (page 3–1018). When used in conjunction with a daylight system (page 1–418), its values are set automatically based on geographic location, time, and date. (IES stands 1309 1310 Chapter 15: Lights and Cameras for Illuminating Engineering Society; see IES Standard File Format (page 2–1328).) settings on the Motion panel to assign any other object in the scene as the Look At target. Interface On—Turns sunlight on and off in the viewport. 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 scanline renderer. You do not need to turn on Final Gather for light from IES Sun to render. Note: While you can create daylight lights manually, you should use them in conjunction with the Daylight system to get the best results. The Daylight system combines the two daylight components of sun and sky in a unified interface. Tip: If you use the IES sun or sky with the Targeted—Applicable only when you add the IES Sun light directly, rather than as part of a Daylight system (page 1–418). 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 (page 1–161) to set the color of the light. Typical intensities in a clear sky are around 90,000 lux. Logarithmic Exposure Control (page 3–297), 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. set manually if the sun is under the control of a daylight system. Note: When you add an IES Sun light, 3ds Max On—Determines whether the sunlight casts shadows or not. automatically assigns a Look At controller (page 2–344) to it, with the light’s target object assigned as the Look At target. You can use the controller Note: Intensity is set automatically and cannot be Shadows group Shadow Method drop-down list—Determines whether the renderer uses shadow maps (page IES Sun Light (Photometric) 3–1010), ray-traced shadows (page 3–1000), advanced ray-traced shadows (page 3–1000), mental ray shadow maps (page 2–1360), or area shadows (page 3–911) 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 (page 2–1335). 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 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 (page 2–1361) for advanced ray-traced and area shadows. 1311 1312 Chapter 15: Lights and Cameras IES Sky Light (Photometric) Create panel > Systems > Create a Daylight system in your scene. > Modify panel > Daylight Parameters rollout > Skylight > IES Sky Create panel > Lights > Photometric > IES Sky Create menu > Lights > Photometric > IES Sky IES Sky is a physically-based light object that simulates atmospheric effects on skylight (page 3–1012). 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 (page 3–44): radiosity or light tracing. Warning: When you render with the mental ray renderer (page 3–78), objects illuminated by IES Sky appear dark unless you turn on Final Gathering (page 3–940). The toggle for Final Gathering is on the Final Gather rollout (page 3–111) of the Render Scene dialog. When you add an IES Sky light, 3ds Max automatically assigns a Look At controller (page 2–344) 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. Using Render Elements with an IES Sky Light Outdoor scene lit by the IES sky light Note: (IES stands for Illuminating Engineering Society; see IES Standard File Format (page 2–1328).) You can create daylight lights manually, but to get the best results, you should use them in conjunction with the Daylight system (page 1–418). The Daylight system 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. If you use Render Elements (page 3–130) to output the lighting element (page 3–141) 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) (page 2–1309) mental ray Sun & Sky Interface 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 (page 3–17). 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. 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 (page 1–161), which lets you set the color of the sky. Coverage group Clear, Partly Cloudy, Cloudy—This choice 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. 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 (page 3–1012). If shadows are not important mental ray Sun & 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 1313 1314 Chapter 15: Lights and Cameras 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. mr Physical Sky is visible, but no lighting is present in the scene. 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. While you can use these separately, their intended functionality is unleashed only when used together. mr Sun and mr Sky are meant primarily for use within the 3ds Max Daylight system (page 1–418). When used in combination, this solution is called Sun & Sky. Note: Sun & Sky is a true high-dynamic range photometric lighting system that requires the Logarithmic Exposure Control to be enabled. In some of the mental ray rendering presets (page 3–23), 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 Logarithmic Exposure Control automatically. Using Sun & Sky with SSS Materials 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). To use a mental ray fast SSS material (page 2–1583) 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. 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. mental ray Sun & Sky Procedure To use mental ray Sun & Sky: 1. Make sure mental ray (page 3–78) 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 Logarithmic 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 activate Logarithmic Exposure Control with the Exterior Daylight Flag, if both are not already active. 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. 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 (page 3–272) (press 8 ) and make sure Common Parameters > Environment Map is set to mr Physical Sky, Exposure Control (page 3–293) is set to Logarithmic Exposure Control, and Logarithmic Exposure Control Parameters has Exterior Daylight on. 1315 1316 Chapter 15: 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 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 Scene dialog (page 3–2) ( F10 ) to the Indirect Illumination panel and turn on Enable Final Gather. Choose the Draft preset as a starting point. 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. 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 mental ray Sun & Sky 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. 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. of sunlight, the softness of the sun’s shadows, the softness of the glow around the sun, and the strength of the aerial perspective. 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. Horizon Blur—The “blurriness” with which the horizon is rendered. Haze—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 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 1317 1318 Chapter 15: Lights and Cameras 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. See also mental ray Sun & Sky (page 2–1313) mr Sun (page 2–1319) mr Physical Sky (page 2–1321) Interface 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 Sky On—Turns the light on and off. Daylight system > Modify panel > Daylight Parameters rollout > Skylight drop-down list > mr Sky Multiplier—A scalar multiplier for the light output. Create panel > Lights > Photometric > mr Sky Default=1.0. Create menu > Lights > Photometric Lights > mr Sky Haze—The amount of particulate matter in the air. The mr Sky light 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 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. 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. Horizon group Height—The vertical position of the horizon. Default=0.0. mr Sun For details, see Horizon Height. Aerial Perspective group Blur—The “blurriness” with which the horizon is 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. 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. 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. 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. mr Sun Daylight system > Modify panel > Daylight Parameters rollout > Sunlight drop-down list > mr Sun Create panel > Lights > Photometric > mr Sun Create menu > Lights > Photometric Lights > mr Sun The mr Sun light 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 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. See also Non-Physical Tuning group mental ray Sun & Sky (page 2–1313) Red/Blue Tint—Provides artistic control over the mr Sky (page 2–1318) 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). mr Physical Sky (page 2–1321) 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). 1319 1320 Chapter 15: Lights and Cameras Interface mr Sun Parameters rollout mr Sun Basic Parameters rollout On—Turns the mr Sun light on and off. Default=on. Targeted—Applicable only when you add an mr Multiplier—A scalar multiplier for the light output. Sun light directly to the scene via Create panel > Lights > Photometric, rather than as part of a Daylight system (page 1–418). 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. Default=1.0. Shadows group On—Toggles shadowing for the light. Default=on. 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—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 (page 2–1316) 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. Height—The vertical position of the horizon. Default=0.0. For details, see Horizon Height. 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 mr Physical Sky 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 (page 2–1319) Interface 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. 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 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. See also mental ray Sun & Sky (page 2–1313) mr Sky (page 2–1318) 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. 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 1321 1322 Chapter 15: Lights and Cameras 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. To apply a map or shader to this parameter, click the None button. 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. 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 (page 2–1316) 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. 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. 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. 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 Isotropic Light Distribution (Photometric Lights) 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. Icon for Target Point light with isotropic distribution See also Lights (page 2–1272) Target Point Light (Photometric) (page 2–1303) Free Point Light (Photometric) (page 2–1304) Intensity/Color/Distribution Rollout (page 2–1352) Procedure To create a light with an Isotropic distribution: Isotropic Light Distribution (Photometric Lights) 1. On the Create panel, click Lights. 2. Choose Photometric from the drop-down list. Create panel > Lights > Photometric Lights > Click Target Point or Free Point. > Intensity/Color/Distribution rollout > Choose Isotropic in Distribution list. > Click in viewport to create light. (The default is Standard.) 3. In the Object Type rollout, select Free Point. 4. In the Intensity/Color/Distribution rollout, An Isotropic light distributes the light equally in all directions. select Isotropic from the Distribution list. 5. Click in a viewport to position the light. The light is now part of the scene. 6. Set the creation parameters. You can use the Move transform to adjust the light. You can also use the Place Highlight (page 1–467) command to change a light’s position. Diffuse Distribution (Photometric Lights) Isotropic light distribution Create panel > Lights > Photometric Lights > Click Target Linear, Free Linear, Target Area, or Free Area. > Intensity/Color/Distribution rollout > Choose Diffuse in Distribution list. > Click in viewport to create light. Diffuse distribution emits light from a surface. Light that leaves the surface at a right angle is 1323 1324 Chapter 15: Lights and Cameras at the light’s greatest intensity. At increasingly oblique angles, the intensity of the emitted light diminishes. See also Lights (page 2–1272) Target Point Light (Photometric) (page 2–1303) Spotlight Distribution (Photometric Lights) Create panel > Lights > Photometric Lights > Click Target Point or Free Point. > Intensity/Color/Distribution rollout > Choose Spotlight in Distribution list. > Click in viewport to create light. Free Point Light (Photometric) (page 2–1304) Spotlight Parameters (page 2–1338) Intensity/Color/Distribution Rollout (page 2–1352) Procedures To create a light with a spotlight distribution: 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 its field angle, intensity has fallen to zero. (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 comparable to the falloff angle for standard lights.) 1. On the Create panel, click Lights. 2. Choose Photometric from the drop-down list. (Standard is the default.) 3. In the Object Type rollout, click Target Point or Free Point. 4. In the Intensity/Color/Distribution rollout, select Spotlight from the Distribution list. 5. If you are creating a Target Point light, 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. If you are creating a Free Point light, click in a Viewport to position the light. The light is now part of the scene. 6. Set the creation parameters. You can use the Move transform to adjust the light. You can also use the Place Highlight (page 1–467) command to change a light’s position. Spotlight distribution To adjust a target point spotlight: 1. Select the light. 2. Icon for Target Point light with spotlight distribution Use Move on the main toolbar to adjust the light. Because the spotlight is always aimed at its target, you can’t rotate it about its local X or Y Web Distribution (Photometric Lights) 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. You can use the Place Highlight (page 1–467) command to change a light’s position. Another way to adjust a spotlight is to use a Light viewport (page 3–750). To select the target: If the spotlight distribution is on a target point light, you can move the target to adjust the direction of the spotlight. 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. Web Distribution (Photometric Lights) A Web distribution uses a photometric web definition (page 2–1326) 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 (page 2–1328), LTLI (page 3–964), or CIBSE (page 3–921) format. Controls for assigning the web file are on the Web Parameters rollout. 1. First select the spotlight itself. 2. Right-click the light and choose Select Target from the pop-up menu. Clicking the line that connects the light and its target selects both objects. To change a viewport to a light view: 1. Right-click the viewport label. The Viewport Right-Click menu is displayed. Example of web distribution 2. Choose Views. The name of each light is displayed in the Views list. By default, photometric lights are named Point01, Point02, 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 (page 3–750) to adjust the light. The default keyboard shortcut for Light viewports is $. Various web distributions See also Lights (page 2–1272) Target Point Light (Photometric) (page 2–1303) Free Point Light (Photometric) (page 2–1304) Target Linear Light (Photometric) (page 2–1305) Free Linear Light (Photometric) (page 2–1307) Target Area Light (Photometric) (page 2–1307) 1325 1326 Chapter 15: Lights and Cameras Free Area Light (Photometric) (page 2–1309) Intensity/Color/Distribution Rollout (page 2–1352) Photometric Webs Web Parameters Rollout (page 2–1355) IES Standard File Format (page 2–1328) Procedure To create a light from a manufacturer’s IES file: 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, select any photometric light type. 4. In the Intensity/Color/Distribution rollout, select Web from the Distribution list. 5. If you are creating a Target Point, Linear, or Area light, 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. If you are creating a Free Point, Linear or Area light, click in a viewport to position the light. A light is created using the default photometric web which is a diffuse distribution shining from one edge. 6. Go to the Web Parameters rollout, and select the IES file that you want to use. See Web Parameters (page 2–1355). 7. Set the creation parameters. You can use the Move transform to position the light (page 2–1282). You can also use the Place Highlight (page 1–467) command to change a light’s position. Light that uses a photometric web 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 (page 2–1328), or in the LTLI or CIBSE formats for photometric data. You can load photometric data files provided by various manufacturers as web parameters (page 2–1355). The light icon represents the photometric web you select. 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 the system can compute the luminous intensity along an arbitrary direction by interpolation. Photometric Webs Goniometric Diagrams Photometric data is often depicted using a goniometric diagram. the photometric center, measured along a line leaving the center in the specified direction. Example 1: Isotropic Distribution Example of isotropic distribution 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. A sphere centered around the origin is a representation of an isotropic distribution. All the points in the diagram are equidistant from the center and therefore light is emitted equally in all directions. Example 2: Ellipsoidal Distribution 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 Example of ellipsoidal distribution 1327 1328 Chapter 15: Lights and Cameras 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 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. 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° Example of Photometric Data File 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 (page 2–1329). See also IES Standard File Format (page 2–1328) 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. Class. Watts Type Intensity A-19/ Med 60 Point 70 A-19/ Med 75 Point 95 A-19/ Med 100 Point 139 Beam Field Example of Photometric Data File The following is an example of a photometric data file: M16 Low Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 20 Spot 3300 6 12 Narrow Beam 50 Spot 9150 12 25 1329 1330 Chapter 15: Lights and Cameras Class. Watts Type Intensity Beam Field Class. Watts Type Intensity Beam Field Medium Beam 50 Spot 3000 25 50 Wide Beam 300 Spot 10000 30 60 Wide Beam 20 Spot 460 38 75 Wide Beam 500 Spot 18000 30 60 Wide Beam 50 Spot 1500 38 75 Par38 Line Voltage Lamps 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 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 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 Par56 Line Voltage Lamps Class. Watts Type Intensity Beam Field Narrow Beam 150 Spot 5400 22 50 Class. Watts Type Intensity Beam Field Spot 1040 76 130 300 Spot 68000 9 15 Wide Beam 150 Narrow Beam Spot 1950 76 130 500 Spot 95000 9 15 Wide Beam 300 Narrow Beam Medium Beam 300 Spot 24000 18 36 Medium Beam 500 Spot 47500 18 36 General Lighting Parameters Shadow Type Advantages Disadvantages Area Shadows Supports transparency and opacity mapping. Slower than shadow maps. Common Lighting Rollouts General Lighting Parameters Uses very little RAM. Create panel > Lights > Create a light. > General Parameters rollout Recommended for complex scenes with many lights or faces. Create menu > Photometric Lights > Create a light. > Modify panel > General Parameters rollout. The General Parameters rollout is displayed for all types of 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. Shadow Types 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. 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. Can be slower than shadow maps. Does not support Processes only soft shadows. once if there are no animated objects. Shadow Maps The following table describes the advantages and disadvantages of each shadow type: Shadow Type Advantages Processes at every frame. Disadvantages Produces soft shadows. Uses a lot of RAM. Does not support objects Processes only with transparency once if there are no or opacity maps. animated objects. Fastest shadow type. Advanced Ray-Traced 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. 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 (page 2–305) to this parameter. To have a light cast shadows: • In the General Parameters rollout > Shadows group, make sure On is selected. 1331 1332 Chapter 15: Lights and Cameras The light will now cast shadows when you render the scene. 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. Scene with shadow-mapped shadows Shadows rendered using default parameter settings Left: A spotlight’s projection cone truncates shadows. Right: An omni light casts complete shadows. 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 (page 2–1363), the default settings are: Map Bias=1; Size=512; Sample Range=4.0; Absolute Map Bias=Off. 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 (page 2–1357) 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 (page 3–907), 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 (page 2–1356) to adjust the shadow properties. To cast shadow-mapped shadows: 1. On the General Parameters rollout, choose Shadow Maps from the drop-down list. 2. Go to the Shadow Map Params rollout (page 2–1363). General Lighting Parameters • Use the Size spinner to set the size of the shadow map. • Use the Bias spinner to adjust the shadow offset, if necessary. Note: You can also prevent objects from casting shadows by excluding them from a light. Interface • Use the Sample Range spinner to create a soft-edged shadow. To cast ray-traced shadows: Ray-traced shadows (page 3–1000) 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 (page 2–1363) 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 (page 1–117) 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 (page 1–117) is displayed. 3. Turn off Receive Shadows, and then click OK. Now when you render the scene, the object receives no shadows. 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 (page 2–1288), the light can be changed to an omni, spot, or directional light. If you have selected a photometric light type (page 2–1301), 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. 1333 1334 Chapter 15: Lights and Cameras 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 (page 3–1010), ray-traced shadows (page 3–1000), advanced ray-traced shadows (page 3–1000), or area shadows (page 3–911), to generate shadows for this light. The “mental ray Shadow Map” type is provided for use with the mental ray renderer (page 3–78). When you choose this shadow type and enable shadow maps (on the Shadows & Displacement rollout (page 3–114) of the Render Scene 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 (page 2–1356) and Optimizations Rollout (page 2–1361). • Area shadows—See Area Shadows Rollout (page 2–1357) and Optimizations Rollout (page 2–1361). • mental ray shadow maps—See mental ray Shadow Map Rollout (page 2–1360). • Ray-traced shadows—See Ray-Traced Shadow Parameters Rollout (page 2–1363). • Shadow maps—See Shadow Map Parameters Rollout (page 2–1363). 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 (page 2–1335). 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 (page 2–1341)). To display the manipulator, select the light, right-click it, and then click Roll Angle Manipulator Toggle in the Tools 1 (upper left) quadrant of the quad menu. Exclude/Include Dialog or you’ll want a light to cast shadows from one object but not from another. 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, Roll angle manipulator on a target light Shadow Casting, or Both. 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. 4. In the list of object names on the left, highlight Note: You can also access the roll angle manipulator 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. by selecting the light object and then turning on Select And Manipulate (page 2–15) on the main toolbar. 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. 6. Click OK. Exclude/Include Dialog Create a light. > General Parameters rollout > Exclude button Rendering menu > Render > Render Scene 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 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: The Exclude/Include dialog determines which objects are not illuminated by a selected light, or which objects are considered in a Matte render element (page 3–130). 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, 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. 1335 1336 Chapter 15: Lights and Cameras 2. Click Clear. 3. Click OK. Interface 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. 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. 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. Selection Sets—Displays a list of named selection sets (page 1–83). 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 Shadow Parameters Interface Create panel > Lights > Create a light. > Shadow Parameters rollout Color—Displays a Color Selector (page 1–161) 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. 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 (page 2–1356) The shadow density increases from right to left. Area Shadows Rollout (page 2–1357) mental ray Shadow Map Rollout (page 2–1360) Optimizations Rollout (page 2–1361) Ray-Traced Shadow Parameters Rollout (page 2–1363) Shadow Map Parameters Rollout (page 2–1363) 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. 1337 1338 Chapter 15: Lights and Cameras 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. A cloud casts a colored shadow on the city. Spotlight Parameters Create a standard Target Spotlight or Free Spotlight, or a photometric light with Spotlight distribution. > Spotlight Parameters rollout A checker map is used to alter the shadow cast by the piano. The Spotlight Parameters rollout appears when you create or select a Target Spot (page 2–1289) or Free Spot (page 2–1290), or a photometric light with spotlight distribution (page 2–1324). Atmosphere Shadows group Procedures These controls let atmospheric effects cast shadows. To see the spotlight cone in viewports: On—When on, atmospheric effects cast shadows as the light passes through them. Default=off. The cone is always visible while the light is selected. This setting keeps the cone visible when the light is unselected. Note: This control is independent of the On toggle 1. Select the spotlight. 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. 2. In the Spotlight Parameters rollout > Light 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. 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. Note: The cone is always visible while the light is selected. Spotlight Parameters Tip: The hotspot and falloff borders are not visible in shaded viewports. Use controls in the Light Cone group to adjust hotspot and falloff in the viewport. Render the scene to see the full effect of the light’s border. 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: 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 (page 3–826) 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. To use manipulators to control hotspot and falloff: 1. Select the spotlight. Tip: When you select multiple spotlights, all their manipulators are accessible. 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 (page 3–911) 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. 1339 1340 Chapter 15: Lights and Cameras Interface 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). 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. Light Cone group These parameters control hotspots and falloff (page 3–954) 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 (page 3–988) is set, 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. 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. (As opposed to the Hotspot, where intensity is still 100 per cent.) Falloff/Field—Adjusts the angle of a light’s Aspect—Sets the aspect ratio (page 3–911) 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 (page 3–998). Manipulators for Spotlights Manipulators are visible and usable while the Select And Manipulate button (page 2–15) is turned on. This button is on the default main toolbar (page 3–685). 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. falloff. The Falloff value is measured in degrees. Default=45.0. For more information on using the spotlight manipulators, see the Procedures section at the top of this topic. 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. Hotspot manipulator: In a viewport, drag the hotspot circle to adjust the hotspot value. You can manipulate the hotspot and falloff by dragging manipulators in viewports, as described Falloff manipulator: In a viewport, drag the falloff to adjust the falloff value. Advanced Effects Rollout The hotspot and falloff constrain each other, as their spinner controls do. The Material Editor is where you adjust the map’s parameters. 2. Use an unused sample slot to display a map. 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 (page 2–1272) into a projector by choosing a map for the light to project. A projected map can be a still image or an animation. 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 (page 2–1412), 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: 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. • 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. Procedures To blur a projection map: To make a light a projector: • Increase the value of Blur Offset in the map’s Coordinates rollout in the Material Editor. 1. Open the Material Editor (page 2–1409). You can animate Blur Offset to have a projected map go in or out of focus. 1341 1342 Chapter 15: Lights and Cameras 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, 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. and then click Bitmap Fit. Specular—When on, the light affects the specular A file selection dialog is displayed. properties of an object’s surface. When off, the light has no effect on the specular properties. Default=on. 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 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. 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 eliminate edges that can appear on a surface under certain circumstances. Default=50. A: Affect specular only B: Affect diffuse only C: Affect ambient only mental ray Indirect Illumination Rollout (for Lights) 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. 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 (page 1–126) of the Object Properties dialog. You also need to turn on Caustics, Global, or both, on the Render Scene dialog’s Indirect Illumination rollout (page 2–1343). Interface 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 (page 3–78). The settings in 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 (page 3–92) and global illumination (page 3–93). Tip: By default, each light uses the global settings that are found in the Global Light Properties group on Render Scene Dialog > Indirect Illumination panel > Indirect Illumination rollout (page 2–1343). 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 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 1343 1344 Chapter 15: Lights and Cameras 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. 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 (page 1–161) 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. • 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 (page 3–994) 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 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. Shader Library Ambient/Reflective Occlusion base Light Infinite base Light Point base Light Spot base Note: This rollout does not appear on the Create Photon Emitter Shader—Click the button to display panel; only on the Modify panel. a Material/Map Browser (page 2–1412) and choose a shader. Once you have chosen a shader, its name appears on the button. The mental ray Light Shader rollout lets you add mental ray shaders (page 2–1710) to lights. When you render with the mental ray renderer (page 3–78), 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.) Interface 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. Additional Rollouts for Standard Lights Intensity/Color/Attenuation Parameters Create panel > Lights > Create a Standard light. > Attenuation Parameters rollout 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 (page 2–1412) 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: 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. 1345 1346 Chapter 15: Lights and Cameras Attenuation (page 3–912) 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 source to the distance specified by Start, then its value drops off to zero at the distance specified by End. 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 (page 3–272) 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 (page 1–161) 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. To use attenuation: 1. Set the Start and End values. 2. Turn on Use. 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. 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 (page 3–821). Intensity/Color/Attenuation Parameters Interface 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. Multiplier—Amplifies the power of the light by a positive or negative amount. For example, if you set the multiplier (page 3–977) to 2, the light will be twice as bright. Multipliers are also useful for subtracting light and 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 (page 1–161) so you can choose a color for the light. • 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 (page 2–1301). Tip: If Inverse Square decay makes the scene too dim, you can try using the Environment Panel (page 3–272) 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 words, the distance between Near End and Far End does not scale, or otherwise affect, the apparent ramp of decaying light. 1347 1348 Chapter 15: Lights and Cameras 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 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 (page 2–1292) or free direct (page 2–1293) light. These parameters control hotspots (page 3–954) and falloff (page 3–954). its full value. Procedures Use—Enables near attenuation for the light. To see the directional cone in viewports: Show—Displays the near attenuation range settings The cone is always visible while the light is selected. This setting keeps the cone visible when the light is unselected. 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 Start—Sets the distance at which the light begins to fade out. 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. End—Sets the distance at which the light has faded The cone is always visible while the light is selected. to zero. Tip: The hotspot and falloff borders are not 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. 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 Atmospheres and Effects for Lights in the Rendering panel (page 3–826) of the Preferences dialog. The falloff value can range from 0 to 10,000 units. Note: The cone is always visible when a light is When the hotspot and falloff values are equal, the light casts a hard-edged beam. Overshoot—When Overshoot (page 3–988) is set, the light casts light in all directions. However, projections and shadows occur only within its falloff cone. 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 (page 3–911) 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 selected, so clearing this check box has no apparent effect until you deselect the light. 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 (page 2–1338) (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 (page 3–911) 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 (page 3–998). Atmospheres and Effects for Lights Light Cone group These parameters control hotspots (page 3–954) and falloff (page 3–954) for spotlights. Show Cone—Turns display of the cone on or off. 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 1349 1350 Chapter 15: Lights and Cameras rollout appears only in the Modify panel; it doesn’t appear at creation time. To set up the parameters for an atmosphere or rendering effect: Adding an atmosphere or effect associates that atmosphere or effect with the light object. This rollout is a shortcut to either the Environment panel (page 3–272) or the Effects panel (page 3–219) on the Environment And Effects dialog. • In the Atmospheres & Effects rollout, choose the name of an atmosphere or effect in the list, then click Setup. 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 (page 2–1351). If you chose an atmosphere, clicking Setup displays the Environment panel (page 3–272). If you chose an effect, clicking Setup displays the Effects panel (page 3–219). Interface These controls are displayed for all light types. 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 (page 2–1351). 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. Add—Displays the Add Atmosphere or Effect dialog (page 2–1351), 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 (page 3–272). If the item is an effect, clicking Setup displays the Effects panel (page 3–219). Add Atmosphere or Effect Dialog 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. Interface 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. 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 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. 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 (page 3–220). By default, Use All Lights At Render Time 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. 1351 1352 Chapter 15: Lights and Cameras Interface Additional Rollouts for Photometric Lights Intensity/Color/Distribution Rollout Light hair—When on, the light can illuminate and Create panel > Lights > Create a Photometric light. > Intensity/Color/Distribution rollout 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 Intensity/Color/Distribution rollout lets you set the type of distribution for photometric lights (page 2–1301). You can also define the color and intensity of lights. 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. See also Fuzz—Sets the softness of the shadow edges. See Sample Range (page 3–1004). Isotropic Light Distribution (Photometric Lights) (page 2–1323) Lights (page 2–1272) Photometric Lights (page 2–1301) Spotlight Distribution (Photometric Lights) (page 2–1324) Diffuse Distribution (Photometric Lights) (page 2–1323) Left: Fuzz=0.0 Web Distribution (Photometric Lights) (page 2–1325) Center: Fuzz=5.0 Right: Fuzz=10.0 The arrow points to the shadow cast by the hair on the underlying surface. Procedure To change the distribution type of a photometric light: 1. Select the light. 2. In the Modify panel > Intensity/Color/ Distribution rollout, choose a type from the Distribution list. Intensity/Color/Distribution Rollout Interface color is visible in the color swatch next to the temperature spinners. Filter—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 (page 1–161). Default=white (RGB=255,255,255; HSV=0,0,255). 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: Distribution—Describes the directional distribution of the light emitted by a source. There are several different distributions: • Isotropic (page 2–1323) • Spotlight (page 2–1324) • Web (page 2–1325) • Diffuse (page 2–1323) Note: Target Point and Free Point lights can have either Isotropic, Spotlight, or Web distribution. All other photometric lights use either Web or Diffuse distribution. 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. Kelvin—Set the color of the light by adjusting the color temperature spinners. The color temperature is displayed in degrees Kelvin. The corresponding • lm (lumen)—Measures the overall output power of the light (luminous flux (page 3–955)). A 100-watt general purpose light bulb has a luminous flux of about 1750 lm. • cd (candela)—Measures the maximum luminous intensity (page 3–965) 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 (page 3–955) 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, you must set the lx value, and enter the distance at which that illuminance is measured. Note: You can obtain these values directly from lighting manufacturers. A table of some common 1353 1354 Chapter 15: Lights and Cameras lamp types is provided in Photometric Lights: Common Lamp Values (page 2–1329). Interface Linear Light Parameters Rollout Create panel > Lights > Create a photometric linear light. > Linear Light Parameters rollout Select a linear light. > Modify panel > Linear Light Parameters rollout The Linear Light parameters rollout lets you set the length of your photometric linear light. See also Length—Sets the length of your area light. Width—Sets the width of your area light. Area Light Sampling Rollout Select a linear or photometric area light. > Modify panel > Area Light Sampling rollout Photometric Lights (page 2–1301) Target Linear Light (Photometric) (page 2–1305) Free Linear Light (Photometric) (page 2–1307) Interface Length—Sets the length of your linear light. The Area Light Sampling rollout lets you control the number of samples to use for the minimum subdivision size conversion. The values in this rollout affect rendering performed by the default scanline renderer (page 3–38) and the mental ray renderer (page 3–78). It’s also used for Radiosity in order to compute Shoot Direct Lights (page 3–69) for area and linear lights. The number of samples are divided into the area of an area light or into the length of a linear light. Note: This rollout appears only on the Modify panel. Area Light Parameters Rollout Create panel > Lights > Create a photometric area light. > Area Light Parameters rollout See also Photometric Lights (page 2–1301) Target Linear Light (Photometric) (page 2–1305) The Area Light parameters rollout lets you set the dimensions of your photometric area light. Free Linear Light (Photometric) (page 2–1307) See also Free Area Light (Photometric) (page 2–1309) Photometric Lights (page 2–1301) Target Area Light (Photometric) (page 2–1307) Free Area Light (Photometric) (page 2–1309) Target Area Light (Photometric) (page 2–1307) Web Parameters Rollout Interface Procedures To select a photometric web file: 1. On the Web Parameters rollout for a selected light, click the Web File button. The Open A Photometric Web dialog is displayed. Enable Area Sampling—Toggles area sampling. Default=on. Num. Samples—The number of samples to use for subdivision conversion. Default=16. Web Parameters Rollout Create panel > Lights > Photometric Lights > Create a photometric light. > Intensity/Color/Distribution Parameters rollout > Choose Web distribution type. The Web Parameters rollout is displayed on the Modify panel when you create or select a photometric light with a web distribution (page 2–1325). Use these parameters to select a photometric web file and to adjust the orientation of the web. 3ds Max can use the IES (page 2–1328), CIBSE (page 3–921), or LTLI (page 3–964) photometric web formatting. See also Target Point Light (Photometric) (page 2–1303) Free Point Light (Photometric) (page 2–1304) Target Linear Light (Photometric) (page 2–1305) Free Linear Light (Photometric) (page 2–1307) Target Area Light (Photometric) (page 2–1307) Free Area Light (Photometric) (page 2–1309) 2. Navigate to the location of the file you want to import. Select the file and click Open. If you are modifying a light, the light’s icon is replaced by a wireframe outline of the photometric web. If you are creating a light, the photometric web icon appears when you drag your cursor in the viewport to create the light. Note: You can obtain photometric web files from various lighting manufacturers. You can use the Content Browser to download IES files or use IES files available in the Lightscape Libraries provided with Lightscape software. To change the orientation of the photometric web: • Use the rotation spinners to change the X, Y, or Z rotation or the photometric web. Note: These parameters cannot be animated. To change the direction of a light, you can also use the Rotation transform or for target point lights, move the light’s target point. Tip: To see the shape of the photometric web, you can make the light icon larger by increasing the Non Scaling Object size in Tools menu > Options dialog > Viewports panel > Viewport Parameters. Interface 1355 1356 Chapter 15: Lights and Cameras Web File—Selects an IES file to use as a photometric web. The default web is a diffuse distribution shining from one edge. 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. Advanced ray-traced shadows cast by an area light. Interface 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. Photometric web icon—Shows a three-dimensional representation of the light distribution. See Web Distribution (page 2–1326). Rollouts for Specific Shadow Types Basic Options group Advanced Ray-Traced Parameters Rollout Create panel > Lights > Create or select a light. > General Parameters rollout > Shadow type > Advanced Ray-traced Shadows Advanced Ray-traced shadows are similar to ray-traced shadows (page 3–1000), however they give you more control over shadow behavior. Additional controls are available in the Optimizations rollout (page 2–1361). Mode—Selects the type of raytracing for generating shadows: • Simple—Casts a single ray of light toward the surface. No antialiasing (page 3–907) 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. • 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 Area Shadows Rollout 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. 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. 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. 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. 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. Area Shadows Rollout Create panel > Lights > Create or select a light. > General Parameters rollout > 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 1357 1358 Chapter 15: Lights and Cameras properties in the Area Light Dimensions group of the Area Shadows rollout. Interface 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 (page 3–27) of the Render Scene dialog to speed up your rendering. When this toggle is on, the shadows are processed as if the light object is a point source. Basic Options group Area shadows create a soft edge that becomes more noticeable as the distance between the object and the shadow increases. A: Penumbra (soft area) B: Shadow Mode—Selects the way the area shadows are generated: • Simple—Casts a single ray from the light toward the surface. No antialiasing (page 3–907) or area light calculation is performed. • Rectangle Light—Casts rays from the light in a rectangular array. • Disc Light—Casts rays from the light in a circular array. • Box Light—Casts rays from the light as if it were a box. Area shadow cast by a point light • Sphere Light—Casts rays from the light as if it were a sphere. Area Shadows Rollout 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. The shape of the area shadow array affects how shadows are cast. Left: Rectangle Right: Box 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. 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. The faces inside the sliced sphere do not cast shadows if 2-Sided Shadows is off. 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: Antialiasing Options group • 2=5 rays Shadow Integrity—Sets the number of rays in the • 3 to N = NxN initial bundle of rays cast. These rays are projected from every surface that receives light from the light source. For example, setting Shadow Quality to 5 generates 25 rays. The number of rays is as follows: 1=4 rays 2=5 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. 1359 1360 Chapter 15: Lights and Cameras Increase Shadow Quality to fix banding in the penumbra, and eliminate the noise pattern from jittering. Increasing jitter blends the individual shadow samples. Area Light Dimensions group Increasing the Shadow Quality value produces a more accurate penumbra (soft area) within the contour defined by the Shadow Integrity value. The software uses these dimensions to compute the area shadowing. They do not affect the actual light object. Sample Spread—The radius, in pixels, to blur the Length—Sets the length of the area shadow. 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. 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 > 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 (page 3–78) to generate shadows using the mental ray shadow-map algorithm. If you render with the default scanline renderer (page 3–38) instead, no shadows appear in the rendering. Optimizations Rollout Interface 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. 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 (page 3–966). 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. Color—When on, surface color affects the color of the shadow. Default=on. 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 (page 3–907), 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 > Select Advanced Ray-traced Shadows or Area Shadows. > Optimizations rollout The Optimizations rollout provides additional controls for Advanced Ray-traced Shadow (page 3–1000) and Area Shadow (page 3–911) generation. See also General Lighting Parameters (page 2–1331) Shadow Parameters (page 2–1337) Area Shadows Rollout (page 2–1357) Advanced Ray-Traced Parameters Rollout (page 2–1356) 1361 1362 Chapter 15: Lights and Cameras Interface 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 (page 3–1018) 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. 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. 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). A stained glass appears solid with the transparency optimization turned off. Antialiasing Threshold—The maximum color difference allowed between transparent object samples before antialiasing (page 3–907) is triggered. Increasing the value of this color will make the shadow less sensitive to aliasing artifacts Ray-Traced Shadow Parameters Rollout Ray-Traced Shadow Parameters Rollout Create a light. > General Parameters rollout > Ray Traced Shadows chosen > Ray Traced Shadow Params rollout 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. 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 (page 2–1331). For greater control of ray-traced shadows, use Advanced Ray-Traced Shadows (page 2–1356). Interface 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 (page 3–999) 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 improvement is offset by the time it takes to generate the quadtree itself. This depends on the geometry of the scene. Default=7. Tip: Omni lights can generate up to six quadtrees, so they generate ray-traced shadows more slowly than spotlights. Avoid using ray-traced shadows with omni lights unless your scene requires this. Bias—Ray-Trace Bias (page 3–1000) 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 Shadow Map Parameters Rollout Create a light. > General Parameters rollout > Shadow Map chosen > Shadow Map Params rollout The Shadow Map Parameters rollout is displayed when you have chosen shadow mapping as the 1363 1364 Chapter 15: Lights and Cameras shadow-generation technique for a light. You select this in the General Parameters rollout (page 2–1331). Interface 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). Bias—Map Bias (page 3–966) moves the shadow toward or away from the shadow-casting object (or objects). 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. 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. The shadow map size specifies the amount of subdivisions for the map. The greater the value, the more detailed the map will be. 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. Left: Size set to 32. Right: Size set to 256. Cameras Sample Range—The sample range (page 3–1004) 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. 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. 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 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. The faces inside the sliced sphere do not cast shadows if 2-Sided Shadows is not selected. 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 (page 3–745) 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 (page 2–1392) 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 1365 1366 Chapter 15: Lights and Cameras 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 (page 1–52) 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 (page 3–655). You can hide them quickly by turning off the layer. Tip: The Camera Match utility (page 2–1387) 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. An example of a camera in a scene. There are two kinds of camera objects: • Target cameras (page 2–1371) 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. • Free cameras (page 2–1370) 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. 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 (page 3–745). 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 Cameras 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 (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 (page 2–1371) create a double icon, representing the camera (a blue box intersecting a blue triangle) and the camera target (a blue box). Free cameras (page 2–1370) 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 (page 3–821) of the Preferences dialog, and change the value of Non-Scaling Object Size. 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 (page 3–78), 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 1367 1368 Chapter 15: Lights and Cameras its volume (effectively making a volume out of the entire scene). Using Transforms to Aim a Camera (page 2–1379) Using Clipping Planes to Exclude Geometry (page 2–1379) Using the Horizon to Match Perspective (page 2–1380) Animating Cameras (page 2–1381) Procedures To render a scene using a camera: 1. Create the camera and aim it at the geometry A dimly lit scene 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 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 Scene dialog’s Camera Effects rollout (page 3–101) while the mental ray renderer is active. Note: No camera output shaders are provided with 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 (page 3–717) is on, you animate the camera. 3ds Max. You might have access to light map shaders if you have obtained them from other shader libraries or custom shader code. 4. Render the camera viewport. See also 1. Right-click the viewport label. Common Camera Parameters (page 2–1373) Characteristics of Cameras (page 2–1372) To change a viewport to a Camera view: The Viewport Properties menu is displayed. 2. Choose Views. Cameras 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. 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. 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. 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 Views > Hide > Hide By Category, and toggle the menu item Hide Cameras. • Choose Tools menu > Display Floater, and on the Object Level tab turn Cameras on or off. Cameras appear in viewports if Cameras is off; if Cameras is on, they don’t appear. When camera icons are displayed, the Zoom Extents commands (page 3–737) 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. 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. 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 (page 3–1030) are displayed in three concentric boxes. The outermost safe frame matches the render output resolution. The safe frame (page 3–1030) matches the render output resolution. 1369 1370 Chapter 15: Lights and Cameras needs to be directly overhead in a scene, use a free camera to prevent it from spinning. Boxes in the viewport indicate safe frames. To match a camera to a viewport: 1. (Optional) Select a camera. A free camera can move and be oriented without restrictions. 2. Activate a Perspective viewport. Initial Direction of a Free Camera 3. If no camera was selected, 3ds Max creates a A free camera’s initial direction is along the negative Z axis of the active construction grid of the viewport you click. 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 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 (page 3–1025), 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 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. Target Camera Procedure To create a free camera: 1. controller settings on the Motion panel to assign any other object in the scene as the Look At target. From the Create menu, choose Cameras > Free Camera, or click Cameras on the Create panel, then click Free on the Object Type rollout. 2. 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. 3. Set the creation parameters. 4. Rotate and move the camera to adjust the point Target cameras always face their target. of view. Procedure Interface To create a target camera: See Common Camera Parameters (page 2–1373). 1. Do one of the following: 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 (page 2–344) to it, with the camera’s target object assigned as the Look At target. You can use the • Click Cameras on the Create panel, then click Target in the Object Type rollout. • Choose Create menu > Cameras > 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. Interface See Common Camera Parameters (page 2–1373) 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. 1371 1372 Chapter 15: Lights and Cameras 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. 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 longer the lens, the narrower the FOV. The shorter the lens, the wider the FOV. Common Camera Parameters Relationship Between FOV and Perspective Procedure Short focal lengths (wide FOV) emphasize the distortions of perspective, making objects seem in-depth, looming toward the viewer. 1. Choose Rendering > Render. Long focal lengths (narrow FOV) reduce perspective distortion, making objects appear flattened and parallel to the viewer. To match a real-world camera frame proportion: The Render Scene dialog is displayed. 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 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. The program does have counterparts for the camera movements used in movie making, such as truck, dolly, and pan. See Camera Viewport Controls (page 3–745). 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: • Use the FOV spinner to increase the camera’s field of view. • 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: • Change the FOV parameter to decrease the camera’s field of view. • 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. 1373 1374 Chapter 15: 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 If you want to maintain the same lens, avoid using the FOV or Perspective controls among the navigation icon buttons. To find a lens’s focal length: • To find the focal length of a lens based on changes in aperture width, display the Render Scene dialog (page 3–2), 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 spinner is based on the new Aperture Width value. To display a camera’s cone: • Turn on Show Cone. using the FOV or Perspective controls among the navigation icon buttons, and don’t change the FOV spinner. The camera’s field-of-view cone appears outlined in light blue. Important: When a camera viewport is active, changing the Output Size or (custom) Aperture Width in the Render Scene dialog (page 3–2) will change the camera’s Lens setting. the camera object is selected, regardless of the Show Cone setting. Note: A camera’s cone is always visible while To match a camera to a film or video format: 1. In the Render Scene dialog (page 3–2), choose the type of output you want. • If it’s a preset, choose the preset from the Output Size drop-down list. The Aperture Width will be locked to the preset’s values. • If it’s Custom, you can set your own Aperture Width, and should do so at this point. (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. Once the Aperture Width is set, set the Lens spinner to the type of camera lens you want to emulate (for example, 50mm). 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. Common Camera Parameters 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. 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. 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. 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. To set clipping planes: The effect of 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. 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. Use the Depth Of Field Parameters rollout (page 2–1383) or the Motion Blur Parameters rollout (page 2–1386) to set the values for the effect you chose. 1375 1376 Chapter 15: Lights and Cameras 3. Activate a camera viewport. Interface 4. 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. 5. Render the scene or animation. 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. Common Camera Parameters When you change the Aperture Width value in the Render Scene dialog, you also change 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. 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 (page 2–1371) to a Free camera (page 2–1370), and vice versa. 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 • Vertical—Applies the FOV vertically. pyramid) defined by a camera’s field of view. The cone appears in the other viewports but does not appear in a camera viewport. • Diagonal—Applies the FOV diagonally, from one corner of the viewport to the other. Show Horizon—Displays the horizon line. A dark FOV—Determines how wide an area the camera views (field of view (page 3–937)). When FOV Direction is horizontal (the default), the FOV parameter directly sets the arc of the camera’s horizon (page 3–953), 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 (page 3–745) 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. 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 (page 3–272). 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. 1377 1378 Chapter 15: Lights and Cameras 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. Conceptual image of Near and Far clipping planes. Multi-Pass Effect group Top: Conceptual image of the Near and Far ranges. Bottom: Result after rendering. Clipping Planes group Sets options to define clipping planes (page 3–921). 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. 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 (page 3–981). 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. Using Transforms to Aim a Camera Effect drop-down list—Lets you choose which multi-pass effect to generate, Depth Of Field (page 2–1383) or Motion Blur (page 2–1386). These effects are mutually exclusive. Default=Depth Of Field. This list also lets you choose Depth of Field (mental ray) (page 2–1383), 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 (page 3–218), 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 (page 1–439) adjusts the position of the camera object or the position of a target camera’s target (page 2–1371). 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 (page 1–439) adjusts the orientation of the camera object. This transform is most useful with free cameras (page 2–1370). 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. 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 (page 3–745) 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. 1379 1380 Chapter 15: Lights and Cameras 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. 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. Clipping plane settings are part of the camera’s parameters (page 2–1373). 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. Horizon line displayed in a camera viewport 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. 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 near value is constrained to be less than the far value. The horizon line control is in the camera’s Parameters rollout (page 2–1373). 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.) 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: You can also use clipping planes in non-camera viewports. Simply right-click the viewport label and choose Viewport Clipping (page 3–731). Warning: If you use the mental ray renderer (page 3–78), geometry outside the clipping planes might still appear in renderings. 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. Animating Cameras If the image’s horizon and the camera horizon don’t match, you have to offset the image, perhaps by using a paint program. 3. Use Orbit (page 3–749) to move the camera until the perspective of the scene roughly matches that of the still image. 4. Adjust the camera’s perspective (page 3–747) to fine-tune the perspective match. 5. Use Move (page 1–439) 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 (page 2–1387) 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 (page 3–717) and Track View (page 2–501) for further descriptions of animation. This topic summarizes some possibilities and suggests some techniques. In general, it’s best to use a free camera (page 2–1370) when the camera is to move within the scene; use a target camera (page 2–1371) 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 (page 2–398) directly to the camera object. The camera follows the path, and you can adjust its point 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 (page 2–16), 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 (page 2–406) 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 (page 2–422) a target camera’s target to the object. Panning You can animate the pan of any camera very easily by following these steps: 1381 1382 Chapter 15: Lights and Cameras 1. Select the camera. 2. Activate the Camera viewport. 3. Turn on the Auto Key button and advance the Multi-Pass Rendering Effects time slider to any frame. 4. Use the Pan button (in the viewport navigation tools) and pan. Create panel > Cameras > Target or Free > Parameters rollout > Multi-Pass Effect group Orbiting You can animate the orbiting 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 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 (page 2–1373). Creating Animated Cutaway Views You can animate the creation of a cutaway view by animating the location of the near or far clipping planes (page 2–1379), or both. Motion blur applied to wings of the flying dragon Cameras can create two kinds of rendering effects: • Depth of field (page 2–1383) • Motion blur (page 2–1386) 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 (page 3–78). See Depth of Field Parameter (mental ray Renderer) (page 2–1383). Depth of Field Parameter (mental ray Renderer) 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 (page 2–1373), 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 both Enable in the camera’s Multi-Pass Effect group, and Depth Of Field on the Camera Effects rollout of the Render Scene dialog (page 3–2). 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 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 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. 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 (page 3–77). You turn it on in the Parameters rollout (page 2–1373) for cameras. Depth of field simulates a camera’s depth of field by blurring areas 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. 1383 1384 Chapter 15: Lights and Cameras Interface 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 (page 3–78) has its own depth-of-field effect. See Depth of Field Parameter (mental ray Renderer) (page 2–1383). 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 (page 3–38).) 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 (page 3–269). See also Multi-Pass Motion Blur Parameters for Cameras (page 2–1386) 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. 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 Multi-Pass Depth of Field Parameters for Cameras 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. 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. 1385 1386 Chapter 15: Lights and Cameras 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 Important: This effect is for the default scanline renderer. The mental ray renderer (page 3–78) has its own depth-of-field effect. See Motion Blur with the mental ray Renderer (page 3–89). 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 (page 3–38).) Also, try reducing the Dither Strength value, in the effect’s Pass Blending group, to the neighborhood of 0.2. Interface 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 (page 3–77). You turn it on in the Parameters rollout (page 2–1373) 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. Note: The multi-pass motion blur parameters are animatable. Sampling group Previewing multi-pass motion blur in a wireframe and a shaded viewport 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. Camera Match Utility 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. make the effect grainier, especially at the edges of objects. Default=0.4. Duration (frames)—The number of frames in the 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. animation to which the motion blur effect will be applied. Default=1.0. Scanline Renderer Params group 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 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. 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. To use camera matching: 1. Load a bitmap as a background for the renderer. 1387 1388 Chapter 15: Lights and Cameras 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 (page 1–431) 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 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. 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 (page 1–38). 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. to match the one that took the picture. The background appears in the viewport. 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. Note: You can click the Use Environment 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. 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. On the Object Type rollout, click the CamPoint button. 3. Open the Keyboard Entry rollout. Camera Match Utility 4. Enter the coordinates of the first CamPoint object (0,0,0), click the Create button, and then enter the name in the name field. 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. 5. 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. 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. 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 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. List window—Displays a list of the CamPoint helper objects in the scene. You select the CamPoint 1389 1390 Chapter 15: Lights and Cameras 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). 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. 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 Camera Match Helper Objects CamPoint Helper Create panel > Helpers > Camera Match > CamPoint Create menu > Helpers > Camera Point 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 (page 2–1391) object type, choose CameraMatch from the Object set list. See also CamPoint Helper (page 2–1391) Camera Match Utility (page 2–1387) The CamPoint helper lets you create camera points in your scene. These points are used by the Camera Match (page 2–1387) 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: • Create your camera match points using keyboard entry. Use this if you have accurate actual measurements of the locations of the points. • Build geometry that matches your scene geometry, and then snap the points to the 1391 1392 Chapter 15: Lights and Cameras geometry using snaps. Use this technique when you don’t have measurements and can approximate the geometry. • Create your camera match points interactively, and then use Transform Type-In to move them to the correct locations. Interface 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. Two-Point Perspective Camera Correction Modifier Select a camera. > Right-click. > Tools 1 (upper-left) quadrant of the quad menu > Apply Camera Correction Modifier 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. Create—Inserts the CamPoint object into the scene. 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 Interface Normal camera view (left) and corrected camera view (right) Amount—Sets the amount of correction for two-point perspective. Default=0.0. Procedure Direction—Biases the correction. Default=90.0. To apply two-point perspective to a camera: Setting Direction greater than 90.0 biases the correction to the left. Setting it less than 90.0 biases it to the right. 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. Guess— Click to have the Camera Correction modifier set a first-guess Amount value. 1393 1394 Chapter 15: Lights and Cameras Material Editor, Materials, and Maps Materials describe how an object reflects or transmits light. Within a material, maps can simulate textures, applied designs, reflections, refractions, and other effects. (Maps can also be used as environments and projections from lights.) The Material Editor is the dialog you use to create, alter, and apply the materials in your scene. Designing Materials Materials make objects more convincing. Image by Michael McCarthy See also Designing Materials (page 2–1395) Types of Materials (page 2–1457) Material Editor (page 2–1409) Types of Maps (page 2–1617) These topics give you an overview of using the Material Editor to design materials (page 3–971). The Material Editor (page 2–1427) gives you a huge number of options in material design. It also has a large number of controls. If you aren’t already familiar with using it, read this topic for a general idea of working with materials, and what the most important options are. For more details, follow the links in the workflow outline. 1396 Chapter 16: Material Editor, Materials, and Maps Workflow Outline In general, when you create a new material and apply it to an object, you follow these steps: Sample Slots and Material Name 1. Make a sample slot (page 2–1396) active, and enter a name for the material you are about to design. 2. Choose the material type (page 2–1397). Tip: 3ds Max provides two renderers, the default scanline renderer (page 3–38) and the mental ray renderer (page 3–78). Each has its own capabilities. In general, for each scene, you will decide which renderer you want to use. It is a good idea to design materials with a particular renderer in mind. The mental ray Connection rollout (page 2–1461) lets you add features unique to the mental ray renderer to basic 3ds Max materials. 3. For a Standard or Raytrace material, choose the shading type (page 2–1398). 4. Enter settings for the various material components (page 2–1399): diffuse color, glossiness, opacity, and so on. Note: Lights and Shading (page 2–1399) describes how lights affect the appearance of a material. Choosing Colors for Realism (page 2–1400) gives guidelines on getting good results from unmapped materials. 5. Assign maps (page 2–1403) to the components you want to map, and adjust their parameters. 6. Apply (page 2–1405) the material to the object. 7. If necessary, adjust the UV mapping coordinates (page 2–1405) in order to orient maps with objects correctly. 8. Save (page 2–1406) the material. The sample slots (page 2–1420) display previews of materials. They are the most prominent feature of the Material Editor interface. Below and to the right of the sample slots are various tool buttons (page 2–1427) for the Material Editor. Below the tool buttons is a name field that shows the name of the material. Tip: Always give a material a unique, intelligible name as soon as you begin to work on it. By default, six sample slots are visible at once. The Material Editor actually holds 24 materials at one time. You can use the scroll bars to move among the sample slots, or you can change the number of sample slots visible at once to 15 or 24 slots. Seeing more slots at once can be helpful if you are working with a complex scene. Important: While the Material Editor can edit no more than 24 materials at a time, a scene can contain an unlimited number of materials. When you are through editing one material, and have applied it to objects in the scene, you can use that sample slot to get a different material from the scene (or create a new one) and then edit it. To increase the number of sample slots visible at once, right-click a slot and then choose 5 X 3 Material Type Sample Windows or 6 X 4 Sample Windows from the pop-up menu. slots contain Standard materials of various colors, as they do if no medit.mat library is found. Material Type Every material has a type. The default is Standard (page 2–1465), which is the material type you will probably use most often. In general, other material types are for special purposes. The other material types are: • Advanced Lighting Override (page 2–1601) Note: The right-click menu also has an Options choice (page 2–1436). This displays a dialog with various options for sample display. Exploring these options can help you learn to preview materials effectively. However, keep in mind that these settings affect the sample display only. They change nothing in the 3ds Max scene. When more sample slots are visible, the images are smaller, but you can display a larger, floating, and resizable material sample by double-clicking the slot you want to see better. Click a sample slot to make it active. Now you can design a new material from scratch, or you can load a previously stored material by clicking Get Material (page 2–1439), which displays the Material/Map Browser. The Browser is a dialog that lets you choose materials and maps from a material library, from the scene, and so on. You can also copy a material from one sample slot to another. Drag the slot with the material to another slot. To avoid confusion, rename the copy in the new sample slot before you begin to make changes to it. If the \matlibs subdirectory contains a material library called medit.mat, the sample slots show the first 24 materials in this library file. If the library contains fewer than 24 materials, the remaining Used to fine-tune the effects of a material on Advanced Lighting (page 3–44), including light tracing (page 3–44) and radiosity solutions (page 3–51). Radiosity Override is not required for calculating advanced lighting, but it can enhance the result. • Blend (page 2–1588) Mixes two other materials together. Can use a mask or a simple amount control. • Composite (page 2–1589) Mixes up to 10 materials. • Double-Sided (page 2–1591) Contains two materials, one for the front and one for the back faces of an object. • Ink ’n Paint (page 2–1605) Creates cartoon effects with flat shading and “inked” borders. • Lightscape (page 2–1604) Supports import (page 3–573) and export (page 3–572) of data from the Lightscape product. • Matte/Shadow (page 2–1584) Displays the environment but receives shadows. This is a special-purpose material. The effect is similar to using a matte in filmmaking. • Morpher (page 2–1592) 1397 1398 Chapter 16: Material Editor, Materials, and Maps Lets you morph between materials using the Morpher modifier (page 1–729). • Multi/Sub-Object (page 2–1594) Lets you apply multiple sub-materials to a single object’s sub-objects. • Raytrace (page 2–1512) Supports the same kind of diffuse mapping as Standard material, but also provides fully raytraced reflections and refractions, along with other effects such as fluorescence. • Shell (page 2–1600) Contains a material that has been rendered to a texture (page 3–144), as well as the original material upon which the texture is based. Shading Type The Standard and Raytrace materials let you specify a shading type. Shading types are handled by a "shader," which describes how the surface responds to light. Warning: When you change the shading type of a material, you lose the settings (including map assignments) for any parameters that the new shader does not support. If you want to experiment with different shaders for a material with the same general parameters, copy the material to a different sample slot (page 2–1420) before you change its shading type. That way, you can still use the original material if the new shader doesn’t give you the effect you want. • Shellac (page 2–1597) Mixes two materials by applying a "shellac" material to another. • Top/Bottom (page 2–1599) Contains two materials, one for faces that point upward, the other for faces that point downward. Standard materials let you set values for components such as color, glossiness, and opacity. They also let you apply maps to the components, which can produce an enormous variety of effects. Some other material types have these features as well. Some materials, such as Multi/Sub-Object or Double Sided, have controls only for combining other materials. mental ray Materials A group of materials is provided for use with the mental ray renderer (page 3–78). See mental ray Materials (page 2–1543). Samples of different shading for a standard material 1. Anisotropic 2. Blinn 3. Metal 4. Multi-layer 5. Oren-Nayar-Blinn 6. Phong 7. Strauss 8. Translucent Material Components Several different shaders are available. Some of these are not available for the Raytrace material, as indicated below. Blinn is the most general-purpose of these shaders. The others have special purposes, especially regarding how the material creates highlights. • Anisotropic (page 2–1480) Creates surfaces with noncircular, "anisotropic" highlights; good for modeling hair, glass, or metal. • Blinn (page 2–1480) Creates smooth surfaces with some shininess; a general-purpose shader. • Metal (page 2–1481) Creates a lustrous metallic effect. • Multi-Layer (page 2–1481) Creates more complex highlights than Anisotropic by layering two anisotropic highlights. Not available for Raytrace material. Not available for the Raytrace material. Material Components A material’s components describe its visual and optical properties. The components in the Architectural material (page 2–1535) are based on physical qualities; for example, diffuse color, shininess, transparency, and so on. The components in a Standard material (page 2–1465) include color components, highlight controls, self-illumination, and opacity. Like the Standard material, the Raytrace material (page 2–1512) uses a nonphysical model to describe surfaces. Standard and Raytrace material components vary depending on which shader (page 2–1398) you use. You can assign maps to most components, including color components such as Diffuse, and value components such as Transparency or Opacity. Maps can increase the complexity and realism of the material’s appearance. • Oren-Nayar-Blinn (page 2–1482) Creates good matte surfaces such as fabric or terra-cotta; similar to Blinn. • Phong (page 2–1480) Creates smooth surfaces with some shininess; similar to Blinn, but doesn’t handle highlights (especially glancing highlights) as well. • Strauss (page 2–1483) Creates both nonmetallic and metallic surfaces; has a simple set of controls. Not available for Raytrace material. • Translucent (page 2–1484) Translucent shading is similar to Blinn shading, but it also lets you specify translucency, where light is scattered as it passes through the material. You can use translucency to simulate frosted and etched glass. Lights and Shading Materials work in combination with lights (page 2–1272). The intensity of light that falls on a surface determines the intensity of color to display. Three factors contribute to the intensity of light where it falls on an object: • Light intensity: A light’s original intensity at its point of origin. • Angle of incidence: The more a surface inclines away from the light source, the less light it receives and the darker it appears. The angle between a ray of light and the face normal (page 3–980) of a surface is the angle of incidence for that face. When the angle of incidence is 0 degrees (that is, the light strikes the face perpendicularly), the face is illuminated at full intensity unless 1399 1400 Chapter 16: Material Editor, Materials, and Maps the light is attenuated. Full intensity is the light’s Multiplier value times the value of the face’s surface color. The Multiplier value is 1.0 by default; the surface value is the Value component of the surface color’s HSV description (page 3–1001). As the angle of incidence increases, the intensity of the face illumination decreases. • Specular highlights appear where the viewing angle is equal to the angle of incidence. Glancing highlights appear where the angle of incidence is high, relative to the observer or camera (that is, the light ray is nearly parallel to the surface). Shiny surfaces usually have specular highlights. Glancing highlights are characteristic of metallic surfaces. Some surfaces are completely reflective, or nearly so. These reflect their environment as well as the light sources that illuminate them. To model such surfaces, you need to use reflection mapping (page 2–1699) or ray tracing (see Raytrace Material (page 2–1512)). Angle of incidence affects intensity. • Distance: Light diminishes over distance. This effect is known as attenuation (page 3–912). By default, attenuation is turned off, but you can turn it on and specify the distance over which it operates. Lights and the Component Colors of a Standard Material As the names of a standard material’s color components (page 2–1399) imply, the kind of light that strikes a surface with a material determines how the surface appears when it is shaded. • Ambient color appears where the surface is lit by ambient light alone (where the surface is in shadow). • Diffuse color appears where light falls directly on the surface. It is called "diffuse" because light striking it is reflected in various directions. Highlights, on the other hand, are reflections of light sources. The three color components blend at the edges of their regions. Between ambient and diffuse, the blending is calculated by the shader. Between diffuse and specular, you set the amount of blending by using the standard material’s highlight controls. Choosing Colors for Realism Materials add greater realism to a scene only if you choose their colors and other properties to appear like real-world objects. This topic presents some general guidelines for choosing standard material colors. When possible, you should also observe colors in the objects you are modeling, especially under different lighting conditions. For objects on which you want the viewer to focus attention, an unmapped standard material doesn’t often provide the level of realistic detail you probably want. However, for distant and peripherally visible objects, as well as some kinds of real-world materials, such as molded plastic, an unmapped standard material can work well. Keeping the number of maps to a minimum can help keep down the file size. Choosing Colors for Realism Indoor and Outdoor Lighting Representing Natural Materials Whether a scene is indoors or outdoors affects your choice of material colors, just as it affects the way you set up lights (page 2–1272). Full sunlight is bright and unidirectional. Most indoor lighting is less intense and more even (that is, multidirectional) than daylight. However, some special indoor lighting (and nighttime outdoor lighting), as for the stage, also features intense, directional light. Direct sunlight has a yellow tint. Materials for objects to appear in daylight should have a specular color of a pale, unsaturated yellow (for example, RGB values of 240, 240, 188). The ambient color should be the complement of the specular: a deep, dark purple with a hint of the diffuse color. Materials for objects to appear under normal interior lighting should have a specular color that is close to white. (Our perception compensates for the yellow or green tint that is often present in artificial light.) The ambient color can often have the same hue as the diffuse color, but with a darker value. Materials for objects to appear under spotlights should follow the general guidelines for daylight materials. The specular color should match the spotlight’s color, and the ambient color should be a very dark value of the spotlight color’s complementary hue, mixed with a bit of the material’s diffuse color. If you want to render an object under changing lighting conditions, you can choose colors that are a compromise between the optimal colors for each kind of lighting, or you can animate (page 2–1449) the material so that its colors change to suit the changing light. Outdoor scene with natural materials Most natural materials have a matte surface with little or no specular color. For natural materials such as these, use the following guidelines: • Ambient color: The ambient color depends on whether the scene is indoors or outdoors, as previously described. • Diffuse color: Choose a color found in nature. It is best to use the observed color of the object itself, or a similar object. • Specular color: Make the specular color the same hue as the diffuse, but with a higher value and a lower saturation. • Glossiness: Set the Glossiness to a low value. Some foliage, bird feathers, fish scales, and so on, are shiny. For materials such as these, set the Glossiness to higher values. You might also want to change the specular color so it’s closer to the lighting color than the surface’s diffuse color. Water is reflective, and is best modeled by a color component in combination with a reflection map (page 2–1699) or a water map (page 2–1683). While metal is a natural material, its special visual characteristics are most apparent when it has been polished. Standard material represents this by 1401 1402 Chapter 16: Material Editor, Materials, and Maps using a special shading type, described later in this topic. Representing Metallic Objects Representing Manufactured Materials Metallic cup and ice cream scoop Indoor scene with manufactured materials Manufactured materials often have a synthetic color rather than an "earth tone." Also, many manufactured materials, such as plastics and porcelain glazes, are very shiny. For manufactured materials, use the following guidelines: • Ambient color: The ambient color depends on whether the scene is indoors or outdoors, as previously described. • Diffuse color: Although the diffuse color doesn’t have to be an "earth tone," as with natural materials you should used the observed color of the object or a similar object. • Specular color: Make the specular color close to white, or to the color of the light source. White is especially characteristic of plastic materials. • Glossiness: Set the glossiness to a high value. Polished metal has a characteristic "glancing" highlight that appears where the light is at a high angle of incidence. To generate this effect, Metal shading uses the Cook/Torrance illumination model. For metallic materials, you can use the Metal shading type. This disables the specular color and highlight controls. The Metal shader calculates its own specular color, which can vary between the diffuse color and the color of the light. In the diffuse region of a metal material, the ambient component is greater than it is for other kinds of materials. The Anisotropic, Multi-Layer, and Strauss shaders give you further options for modeling polished metal. If the metallic object is the focus of the scene, you can improve realism by using a Blend material (page 2–1588) to combine metallic shading with a reflection map (page 2–1699). Tip: When you preview metallic surfaces, it is useful to turn on a backlight. This displays the metal’s glancing highlight. The Backlight button is to the right of the sample slots. Using Maps to Enhance a Material Using Maps to Enhance a Material Maps provide images, patterns, color adjustments, and other effects you can apply to the visual/optical components of a material. Without maps, material design in 3ds Max is limited. Maps give the Material Editor its full flexibility, and can give you dramatic results. Spheres with various maps applied to them (as well as a reflection map applied to the surface beneath them) The simplest use of a map is to assign a pattern to a material’s Diffuse color. Diffuse mapping (page 2–1498) is also known as "texture mapping." It applies an image or pattern to geometry the material is applied to. Example of designing a mapped material: 1. Choose a sample slot. 2. Increase the highlight. 3. Apply a checker map to the material’s diffuse component. 4. Apply a bump map to give the material ridges. 5. The checker map displays in viewports, but the bump map does not. 6. Rendering the material shows the full effect of mapping. Warning: When you change the shading type (page 2–1398) of a standard material, you lose the settings (including map assignments) for any parameters that the new shader does not support. If you want to experiment with different shaders for a material with the same general parameters, copy the material to a different sample slot (page 2–1420) before you change its shading type. That way, you can still use the original material if the new shader doesn’t give you the effect you want. 1403 1404 Chapter 16: Material Editor, Materials, and Maps Map Terminology The term "material map" is sometimes used to describe a map assigned in the material editor. A material map applies a color or pattern to a surface. This is different from maps used for displacement mapping with the Displace modifier (page 1–629), environment mapping for backgrounds, or projection mapping from lights. The term "texture map" is sometimes used as well. It is interchangeable with "diffuse map"; that is, with a map that applies colors to geometry, as opposed to a map that create reflections, bumps, and so on. In the Material/Map Browser (page 2–1412), maps are categorized according to how the map software functions. The categories are: • 2D maps A bitmap (page 2–1631) is the prototypical 2D map. 2D maps apply pictures and patterns to the surface of objects. • 3D maps 3D maps are generated procedurally. 3D maps apply patterns throughout an object’s geometry. • Compositors Compositors combine other maps. • Color Modifiers Color modifiers are usually composited with another map to adjust its color. The Vertex Color map is a special case that displays the colors you assign to vertices in a mesh. • Other "Other" maps include maps that simulate reflection or refraction. The names of individual map types describe the pattern or effect they create, such as Checker map, Bitmap, Gradient, Flat Reflection, and so on. Note: In some cases the user interface also uses "map" to describe not the map type, but the visual component being mapped. For example, a "diffuse map" means a map of any type applied to a material’s diffuse component. This is an ambiguity in the use of "map" that can be a bit confusing when you first encounter it. Assigning Maps For a standard material (page 2–1465), you assign maps using the Maps rollout. Click the Map button in line with the name of the visual component you want to map. The Material/Map Browser (page 2–1412) is displayed. Select the map type (for example, Bitmap) from the list of maps, and then click OK. Double-clicking the map’s name in the Browser also assigns the map type. The Browse From group box in the Browser creates new maps by default. You can also use it to obtain maps from a library (see Saving A Material), from the current scene, from objects selected in the scene, or from elsewhere in the material editor. In the Browser, you can turn on icons of differing sizes to preview maps before you assign them. A Standard material’s Basic Parameters rollout has shortcut buttons for assigning a map to some of the material’s visual components. These small buttons are equivalent to the buttons in the Maps rollout. Assigning a map to a button in one rollout changes the corresponding button in the other. Each type of map has its own set of parameters and controls. If the map is a Checker map, for example, you can choose the colors of the checkers, and whether a checker color has a map of its own. You can change tiling values to affect the scale of the checkers, adjust noise parameters to make the checkers irregular, and so on. Note: To save loading time, if a map with the same name is in two different locations (in two different paths), it is loaded only once. This poses a problem only if your scene includes two maps that have different content but the same name. Applying a Material to an Object In this case, only the first map encountered will appear in the scene. Navigating the Material/Map Tree As you drag, a tooltip appears over each object beneath the mouse, showing the object’s name. You can apply the material whether the object is selected or not. Release the mouse to apply the material. When you build a material of any complexity, you are building a material/map tree. The root of the tree is the material itself. The branches are the maps you have assigned to the material’s components. Some maps can themselves contain maps, as in a map applied to one color of a Checker material (page 2–1638), so the tree can be more than two levels deep, and can actually be as deep as you need it to be. Applying a material overrides any previous material assignment the object might have had. Once the material is applied, while the sample slot is active, the material is "hot" and changes you make to it affect the object automatically. See Sample Slots (page 2–1420) for more about hot and cold materials. The Material/Map Navigator (page 2–1447) is a dialog that displays the tree for the current material. It is useful for finding a map and displaying its parameters. Click the map to display its rollouts in the Material Editor. To copy a map to a different component of the same material, you can also drag the map’s name from the Navigator to a map button in the Material Editor. You can apply only one material to an object. To overcome this restriction, use a Multi/Sub-Object material (page 2–1594). This is a container for various sub-materials that correspond to specified sub-objects such as different faces in a mesh, NURBS surfaces in a NURBS model, and so on. The Go Forward To Sibling and Go To Parent buttons also navigate the map tree. Go Forward To Sibling moves laterally in the map tree, while Go To Parent moves up the tree. (To move down the tree, click a map button that has a map assigned to it.) Another way to move between parents and children in the tree is to drop down the material name field (page 2–1448) and click the name of a map or material. The Undo command (page 1–94) works for material assignment. You can apply the same material to multiple objects in the scene. See also Dragging and Dropping Maps and Materials (page 2–1423) Drag and Drop Sub-Object Material Assignment (page 2–1424) Mapping Coordinates Applying a Material to an Object There are two ways to apply a material to an object: • If the sample slot is active and the object is already selected, click Assign Material To Selection (page 2–1441). • Drag from the sample slot to the object. An object assigned a 2D mapped material (or a material that contains 2D maps) must have mapping coordinates. These coordinates specify how the map is projected onto the material, and whether it is projected as a "decal," or is tiled or mirrored. Mapping coordinates are also known as UV or UVW coordinates (page 3–1028). These letters refer to coordinates in the object’s own 1405 1406 Chapter 16: Material Editor, Materials, and Maps space, as opposed to the XYZ coordinates that describe the scene as a whole. Most renderable objects have a Generate Mapping Coordinates parameter. If you don’t turn this on, but apply a mapped material to the object, you get a warning when you try to render. Some objects, such as editable meshes, don’t have automatic mapping coordinates. For these types of objects, you can assign coordinates by applying a UVW Map Modifier (page 1–922). If the material appears the way you want it with the default mapping, you don’t need to adjust the mapping. If you need to adjust it, use the map’s Coordinates rollout. There are two typical sets of coordinates parameters: one for 2D maps such as Bitmaps (page 2–1631), and another for 3D maps such as Noise (page 2–1674). See Coordinates Rollout (2D) (page 2–1625) and Coordinates Rollout (3D) (page 2–1663). Saving a Material While a material is in the Material Editor or applied to an object, it is part of the scene, and is saved with the scene. However, for complicated scenes it is inconvenient to have all materials active in the Material Editor. You can also save a material by putting it into a material library. Some libraries are provided in the \matlibs subdirectory. The file 3dsmax.mat is the default library. You can add your material to this library, or create your own libraries. Procedure To save a material in a library: This stores a material in the current material library. To use a different library, first open it using the Material/Map Browser (page 2–1412). 1. In the Material Editor, click the sample sphere for the material to save. Note: The UVW Remove utility (page 2–1408) provides a way to remove mapping coordinates or an entire material from selected objects. 2. On the Material Editor toolbar, click Put to Library (page 2–1443). A Put to Library dialog (page 2–1455) is displayed. Either change the material name or leave it as is, and then click OK. 3. Choose Rendering > Material/Map Browser, or, on the Material Editor toolbar, click Get Material (page 2–1439). The Material/Map Browser (page 2–1412) opens. 4. In the Browser > Browse From group, choose Mtl Library, if necessary. Mapping coordinates shown as U and V axes local to a surface. Note: Mapping coordinates are local to each object, so they are termed UV or UVW coordinates (page 3–1028), as opposed to the XYZ coordinates of the scene as a whole. The stored material appears in the list. 5. In the Browser > File group, click Save to save the library with the current name (if any) or Save As to save it as a different file. Material XML Exporter Utility Tip: You can use the Merge function in the File group to add materials from the current library to another library. Interface Material XML Exporter Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Material XML Export You can export materials you create in 3ds Max to XML files, which can then be shared with other 3ds Max users or used in AutoCAD Architecture (formerly Autodesk Architectural Desktop) to modify material definitions. Note: You can add an exported XML material to your 3ds Max scene by dragging and dropping from a Web site or Windows Explorer onto an object in your scene, or by importing it directly onto objects. Selection Method group The Selection Method group lets you set the method for selecting the materials you wish to export. Material/Map Browser—Lets you select a material to export from the Material/Map browser (page 2–1412). Object List—Lets you select objects from a Select Objects dialog (page 1–78). All materials assigned to the selected objects are exported. Pick Object in Scene—Lets you select an object from your scene. Any materials assigned to the selected object are exported. All Objects in Scene—Exports all of the assigned materials in your scene. 1407 1408 Chapter 16: Material Editor, Materials, and Maps Output Format group The Output Format group defines the format of the XML Material output. Native XML (vizML)—Materials are exported as raw XML. Tip: Use this format for sharing XML material files within 3ds Max. Tool Catalog—Materials are exported to the ATC (Autodesk Tool Catalog) format. This file type is suitable for display in the AutoCAD Content Browser and the Autodesk VIZ Content Browser. Note: This file type cannot be imported to 3ds Max unless you also have Autodesk VIZ Render installed on the same system. Specify XSLT—This option lets you apply your own to XML. When the material is later imported, it will be assumed that the referenced bitmap file can be found in the bitmap search path. If you have elected to export thumbnails or to apply your own XSL transform, you are then prompted to set a path to store the thumbnail files and to locate your XSLT file, respectively. UVW Remove Utility Utilities panel > Utilities rollout > More button > Utilities dialog > UVW Remove The UVW Remove utility removes mapping coordinates or materials from the currently selected objects. Interface XSL transform to the XML output. Export group The Export group lets you define the parts of the material assignments to export. Material—Exports the material definitions. Create Thumbnails—Exports thumbnails for each material. Note: Thumbnail images are referenced by the ATC and displayed in the AutoCAD Content Browser and Autodesk VIZ Content Browser. Mapping Modifiers—Exports the mapping modifiers applied to specific objects. Export—This button begins the XML export process, using the defined selection method, output format, and export parameters. Upon clicking Export, you are prompted to set the path or URL to store in the XML file as the path to any referenced bitmap files. The default is an empty string, which means no path will be prepended to the bitmap filenames when written UVW—Click to remove UVW mapping from this object. Materials—Click to remove material assignment from the selected objects. Set Gray—If this is on when you click the Materials button, the object color is set to a neutral gray. Default=off. Material Editor The name field displays only 16 characters, but a material name can be longer than that. Material Editor Main toolbar > Material Editor Rendering menu > Material Editor To make a copy of a preview material: • Keyboard > M The Material Editor provides functions to create and edit materials (page 3–971) and maps (page 3–968). Materials create greater realism in a scene. A material describes how an object reflects or transmits light. Material properties work hand-in-hand with light properties; shading or rendering combine the two, simulating how the object would look in a real-world setting. You apply materials to individual objects or selection sets; a single scene can contain many different materials. Note: Creating a new material clears the Undo/Redo lists. Procedures To view the Material Editor: • Click the Material Editor button on the main toolbar. The Material Editor dialog has sample slots (page 2–1420) for viewing previews of materials. When you first view the Material Editor, the material previews have a uniform default color. To give a material a different name: • Edit the name field that appears below the Material Editor toolbar. The name of the active material appears in the title bar of the Material Editor dialog. The name of the material is not a file name: it can contain spaces, numbers, and special characters. On the Material Editor toolbar, click Make Material Copy (page 2–1442). To get a material from a scene: If a material that you want to change has been saved in the scene, but not in the Material Editor, you can load the material by getting it from the scene. 1. Click a sample slot to make it active. Be careful not to click the sample slot of a material you want to use later. 2. On the Material Editor toolbar, click Get Material (page 2–1439). A modeless Material/Map Browser (page 2–1412) is displayed. 3. In the Browse From group box at the upper left, make sure that either Selected or Scene is chosen. The Selected option lists only materials in the current selection. If no objects are selected, the list of materials is blank. The Scene option lists all the materials currently in the scene. 4. In the list of materials, double-click the name of the material you want. You can also drag the material name to the sample slot. The material you chose replaces the previous material in the active sample slot. Warning: When you get a material from a scene, it is initially a hot material (page 3–953). 1409 1410 Chapter 16: Material Editor, Materials, and Maps The Put Material button is available only when (1) the material in the active sample slot has the same name as a material in a scene, and (2) the material in the active sample slot is not hot. In other words, this command is meant to fit into the following overall sequence of handling materials: To apply a material to objects in a scene: 1. Select the sample slot that contains the material you want to apply. 2. Select the object you want to apply the material to. 3. Drag from the sample slot to the object. If you selected more than one object, you are asked if you want to apply to the single object only, or to the whole selection. • You create a hot material either by applying it to objects in the scene or by getting it from the scene. You can also apply materials by clicking Assign Material To Selection (page 2–1441) on the Material Editor toolbar. • You make a copy of the material. • You make changes to the copy of the material. • You update the scene by putting the changed material back into the scene. Warning: When you apply a material to an object or selection, that material becomes a hot material (page 3–953) (its sample slot is displayed with white corner brackets). When you change the properties of a hot material, the scene immediately updates to reflect those changes. Any object with that material will change its appearance, not just the objects in the current selection. These steps are not as immediate as changing a material while it is hot, but they help you avoid changing the scene’s materials unintentionally or in unexpected ways. When a material in the Material Editor is applied to objects in the scene, you can select the objects from the Material Editor. To remove a material from an object: 1. On the Material Editor toolbar, click Get Material. The Material/Map Browser appears. 2. Drag the entry NONE from the top of the list in the Browser to the object. The object now has no material applied to it. To select objects that have the same material applied: When a material in the Material Editor is applied to objects in the scene, you can select the objects from the Material Editor. 1. Click a sample slot that contains a material in the scene. To make a material no longer hot so it doesn’t change the current scene, click Make Material Copy (page 2–1442). To put a material back into a scene: • On the Material Editor toolbar, click Put Material To Scene (page 2–1440). The material in the active sample slot is now a hot material (page 3–953). White corner brackets indicate materials that are in the scene. 2. Click Select By Material (page 2–1439). This button is unavailable unless the active sample slot contains a material in the scene. A Select Objects dialog (page 1–78) is displayed. The names of objects with the active material applied are highlighted when the dialog appears. Material Editor 3. Click Select to select objects that have the active material applied to them. You can also change the selection by choosing other objects. If you change the selection, you must then click Assign Material To Selection (page 2–1441) to apply the active material to newly selected objects. To get a material from a library: 1. On the Material Editor toolbar, click Get Material (page 2–1439). A modeless Material/Map Browser (page 2–1412) is displayed. 2. In the Browse From group box at the upper left, make sure that Material Library is chosen. If you have opened a library, the list of materials shows the contents of the library. If you haven’t opened a library, click Open in the file area of the Browser. In the file dialog that is displayed, you can choose a material library to open. After you open the library, the list of materials updates to show the library’s contents. 3. In the list of materials, double-click the name of the material you want. You can also drag the name of the material to the sample slot. The material you chose replaces the previous material in the active sample slot. To save a material in a library: 1. Click to select the sample slot that has the material you want to save. 2. On the Material Editor toolbar, click Put To Library (page 2–1443). 3. A Put To Library dialog (page 2–1455) appears. 4. Either change the material name or leave it as is, and then click OK. The material is saved in the currently open library. If no library is open, a new library is created. You can save the new library as a file using the Material/Map Browser (page 2–1412) file controls. Interface 1411 1412 Chapter 16: Material Editor, Materials, and Maps For choosing materials, see Material/Map Browser (page 2–1412). For applying materials using drag and drop techniques, see Dragging and Dropping Maps and Materials (page 2–1423). For an overview of how to use the Material Editor, see Designing Materials (page 2–1395). For the user interface elements in Material Editor and the different materials and map types, see the following topics: Material Editor Menu Bar (page 2–1428) Sample Slots (page 2–1420) Material Editor Tools (page 2–1427) Types of Materials (page 2–1457) Types of Maps (page 2–1617) For information about how to animate materials, see Animating Materials (page 2–1449). Material/Map Browser (page 2–1341)), it appears as a modal dialog with OK and Cancel buttons. You can leave the modeless Browser displayed, and drag materials from its listings to material or map sample slots and buttons in the user interface. When the Browser displays a Material Library, you can also add materials to the library by dragging them from the Material Editor sample slots (page 2–1420). When you double-click a material, map, or shader in the Browser, it places that material, map, or shader in the Material Editor’s active sample slot. It automatically chooses between an instance or a copy, as follows: • Browsing New Materials: Creates a new material. • Browsing a Library: Makes a copy. • Browsing the Material Editor, Scene, or Selected: Depends on the status of the map or material. Rendering menu > Material/Map Browser When you browse the Material Editor, the Scene, or Selected objects, the choice between making a copy or an instance depends on the status of the material, as follows: Material Editor > Click Material Type button or Map Type button. > Material/Map Browser • If the material or map is already in the active slot, the Browser does nothing. Main toolbar > Material Editor > Get Material > Material/Map Browser Procedure (page 2–1413) Interface (page 2–1414) • If the material or map is in some other sample slot, the Browser puts a copy in the active slot. The Material/Map Browser lets you choose a material (page 3–971), map (page 3–968), or mental ray shader (page 2–1710). • In all other cases, the Browser makes an instance of the material or map. When you click Get Material (page 2–1439), the Browser that is displayed is modeless (you can leave it displayed while you do other work). However, when you display the Browser by clicking the Type (page 2–1449) button, a map assignment button in the Environment dialog (page 3–272), or from a projector light (see Advanced Effects Rollout Browsing mental ray Materials and Maps When you use the mental ray renderer (page 3–78), you might want to use the materials and shaders that provide effects for this renderer only. (The default scanline renderer renders these materials and shaders only as black or white, or it simply ignores their effects.) The Material/Map Browser lists mental ray maps and materials only if you Material/Map Browser assign the mental ray renderer as the currently active renderer. Once you have enabled the renderer, when you use the Browser, it shows mental ray materials and shaders. Materials are displayed with a yellow sphere, rather than blue for standard materials, and shaders are displayed with a yellow parallelogram, rather than green as for standard maps. See also Material/Map Navigator (page 2–1447) Procedures To navigate materials with the Browser: Tip: Use the Browser primarily in Root Only mode, to see only the top levels of the materials. This provides a simpler view of your materials, and speeds redraws when you’re using any of the icon display modes. (You can also create thumbnails to speed up redraws, as described below.) 1. In the Material Editor, choose any sample slot you want that contains a complex, multilevel material. 2. In the Browser > Browse From group, choose Active Slot mode to display all levels of the active sample slot. 3. Click any of the items in the Browser’s material/map list to move to that level of the current material. 4. When you want to switch to a different material, mental ray maps in the browser’s list are shown with yellow icons. When you use the mental ray Connection rollout (page 2–1461), or other shader buttons specific to mental ray materials and shaders, the shaders that appear in the Browser’s list are restricted to those that the mental ray renderer allows for that particular shader component. By default, only shaders that ship with 3ds Max are listed. If you have acquired other shader libraries, you might see the names of shaders that are not mentioned in this reference. Note: You can see the listing of materials, maps, or shaders that are incompatible with the current renderer, if you turn on the Incompatible toggle in the Show group, as described under “Interface,” below. select its sample slot in the Material Editor, and its hierarchy will appear in the Browser. 5. Again, click the items in the Browser to change levels. To delete an assigned map: 1. While viewing the map parameters, click the Map Type button. 2. In the Material/Map Browser, choose NONE as the new map type. Tip: You can also remove a material or map by dragging the NONE item from the Browser over to the object or map button. To merge material libraries: 1. In the Browse From group, choose Mtl Library, and then click the Merge button. 1413 1414 Chapter 16: Material Editor, Materials, and Maps 2. In the Merge Material Library dialog (page Interface 2–1454), select a material library other than the current library, or select a 3ds Max or VIZ Render (DRF (page 3–527)) scene. A Merge dialog (page 2–1453) is displayed, listing all materials in the specified library, or all materials assigned to the 3ds Max or VIZ Render file. Below the list are All and None buttons to help in the selection. 3. Select the materials in the list that you want to merge, and then click OK. The selected materials are merged into the current material library. 4. Save the library to save your changes. To save the sample spheres as thumbnail images: 1. Open the Browser. In the Browse From group, choose Mtl Library. 2. Choose View Small Icons. 3. Display all of the icons in the library by either scrolling through all of them, or by enlarging the Browser so that all of the icons have been displayed at least once. The action of displaying the icons automatically creates thumbnails in memory. Important: If you want to include thumbnails of the sub-materials and maps, be sure to turn off Root Only. 4. Save the library. When you save the library, you save the thumbnail images of the samples as they appeared in the Browser at that time. If you change any of the materials or maps later, you must re-save the library in order to update the thumbnails. If you do not re-save the library after altering or adding a materials, the icon of the material will still appear correctly, but it will be rerendered when it first appears in the Browser, while all the other icons will appear immediately. The Material/Map Browser contains the following controls: Material/Map list—The main part of the Material/Map Browser dialog is a scrollable list of materials and maps. The list indicates a material with a blue sphere, and indicates a map with a green parallelogram. When you list both materials and maps, the materials are listed first. Note: Icons of materials and maps for which Show Map in Viewport (page 2–1445) is on are red. Material/Map Browser Also, the names of instanced (page 3–957) materials and maps appear in boldface. Both of these effects are shown in the following illustration: Icons or View List + Icons) can be saved as thumbnail images in the material library file. (See the Procedures for this topic, above.) Keep in mind that the saved thumbnails increase the size of the material library file. View List—Displays the materials and maps in list format. Blue spheres are materials. Green parallelograms are maps. The green parallelograms turn red if Show Map in Viewport is on for a material. V iew List + Icons—Displays the materials and Text entry—As you enter a material name in this field, the first matching text item is selected in the list. Press Enter to select the next matching name, and so on. For example, if you enter ch when the list includes the material names Cherry Red, Chrome Blue, and Chrome Zinc, Cherry Red is selected first. Press Enter , and the Chrome Blue is selected. Press Enter again, and Chrome Zinc is selected. The search is not case-sensitive. Sample slot—Below the text-entry field is a single sample slot. This displays a sample of the current selection. You can drag the sample to any other sample slot or material button. The sample slot display is interruptible, so you can quickly click from one list item to the next without waiting. In addition, if you complete the display of one sample, then move on to another sample, when you return to the first sample, it displays instantly. Tool buttons The first part of this row of buttons controls how you view the list. The second part is for managing material libraries. To speed up the display of the sample spheres in the Browser, the smaller of the sample spheres (those displayed when you choose View Small maps in a list with small icons. View Small Icons—Displays the materials and maps as small icons. As you move the mouse over the icons, tooltip labels pop up, showing you the name of the material or map. View Large Icons—Displays the materials and maps as large icons. The large icons are labeled with the name of the material or map and are displayed using progressive refinement—samples are rendered quickly, with large pixels, then rendered a second time in greater detail. Update Scene Materials from Library—Updates materials in the scene with the materials of the same name stored in the library. When you click Update Scene Materials from Library, the Update Scene Materials dialog (page 2–1457) is displayed. This dialog lists materials in the library that have the same name as materials in the scene. In the list, select the materials you want to update in the scene, and then click OK. If no materials exist in the scene that match the names in the library, an alert informs you of this. 1415 1416 Chapter 16: Material Editor, Materials, and Maps This button is available only when the Browser is viewing a library. Delete from Library—Removes the selected material or map from the library display. The library on disk is not affected until you save it. Use Open to reload the original library from disk. This button is only active when you select a named material that exists in the current library. This button is available only when the Browser is viewing a library. Clear Material Library—Removes all materials from the library display. The library on disk is not affected until you save it. Use Open to reload the original library from disk. This button is available only when the Browser is viewing a library. Browse From group The controls in this group choose the source of the materials displayed in the material/map list. Material Library—Displays the contents of a material library file from disk. When you set this option, the buttons under File become active (see below). You can also load a library from a MAX file. When browsing from the Material Library in the Material/Map Browser, choose Open, and then choose 3ds Max (*.max) from Files of type. Select and load a .max file. All materials assigned in that scene are listed in the Browser. To convert the collection of materials to a library file, click Save, and save it as a MAT (.mat) file. This option is unavailable in the modal version of the Browser. When you choose this mode, all check boxes in the Show group box are made available. The entire material and map tree of the active material is displayed, regardless of the state of these check boxes in other Browse From modes. You can also use Active Slot mode to navigate the hierarchy of the active material. When Active Slot is chosen, clicking an item in the material/map list moves Material Editor controls to that level of the material. Selected—Displays the material applied to the selected objects. Scene—Displays all materials applied to objects in the scene. All maps assigned to the scene, including Environment Background or spotlight projector maps, are displayed in the Browser list. New—Displays the set of material/map types for you to create a new material. Show group sample slots. These options filter what is displayed in the list. Either Materials or Maps is always on, and both can be on at the same time. The first two options can be unavailable, depending on the active Browse From and View settings. Active Slot—Displays the contents of the currently Materials—Turns display of materials and active sample slot. sub-materials on or off. Material Editor—Displays the contents of the Material/Map Browser This is always unavailable in the modal version of the Browser. File group Maps—Turns display of maps on or off. This is always unavailable in the modal version of the Browser. Incompatible—When on, displays materials or maps and shaders that are incompatible with the currently active renderer. The incompatible materials are displayed in gray. You can still assign incompatible materials, maps, or shaders to buttons where they would be legal, but if you use the current renderer, the results might not be correct. Default=off. This button group is displayed when you’ve chosen Material Library, Material Editor, Selected, or Scene in the Browse From group. All four buttons are displayed only when browsing from the Material Library; otherwise, only the Save As button appears. Open—Opens a material library. Root/Object group Root Only—When on, the material/map list displays only the root of the material hierarchy. When off, the list displays the full hierarchy. The default state of Root Only depends on how you display the Browser. Generally, when you display the modeless Browser, you’re selecting materials rather than maps (to begin with), so Root Only is on. However, when you display the modal Browser (by clicking a map button anywhere in the user interface), Root Only is off so you can see all the maps. By Object—This is available only when you’re browsing from either Scene or Selected. When on, the list displays materials by their object assignment in the scene. At the left are the names of the objects arranged alphabetically, with a yellow cube icons as in Track View (page 2–501). Applied materials are shown as children of the objects. When off, the list displays only material names. Merge—Merges materials from another material library or scene. When you click Merge, the Merge Material Library dialog (page 2–1454) is displayed. This file dialog lets you choose a material library or a scene. When you choose a library or scene to merge, the Merge dialog (page 2–1453) is displayed. This lets you select which materials to merge. If there are duplicate names among the materials you’re merging, the Duplicate Name dialog (page 2–1453) is displayed so you can resolve the name conflicts. Save—Saves the open material library. Save As—Saves the open material library under another name. Display group 1417 1418 Chapter 16: Material Editor, Materials, and Maps This group of radio buttons is displayed only when you’ve chosen New under Browse From. It controls what types of maps the Browser displays in the material/map list. (The Browser displays materials regardless of this setting.) 2D Maps—Lists only 2D map types. 3D Maps—Lists only 3D (procedural) (page 3–997) map types. Compositors—Lists only compositor map types. Color Mods—Lists only color modifier map types. Other—Lists reflection and refraction map types. All—(The default.) Lists all map types. Copying and Pasting: Right-Click Menu for Materials, Maps, Bitmaps, and Colors Material Editor > Right-click a Type button, sub-materials button, map button, bitmap button, or color swatch. Elsewhere in the user interface > Right-click a map button or color swatch. A set of right-click pop-up menus in the Material Editor (and elsewhere in the program’s user interface) lets you copy and paste, and otherwise manage materials, maps, bitmaps, and colors. You see these menus only if copy and paste actions are appropriate. For example, if you copy a material and then right-click a map button, nothing happens. Material Right-Click Menu When you right-click a button that represents a material, this menu appears. This includes the Type button (page 2–1449) for a material, and sub-material buttons such as you find in the Multi/Sub-Object material (page 2–1594), the Blend material (page 2–1588), and others. Cut—Makes a copy of the material. If you right-click a sub-material button, this also removes the material from that sub-material component. If you right-click the Type button, Cut is equivalent to Copy. Copy—Makes a copy of the material. Paste (Copy)—Pastes a copy from the copy buffer. This item doesn’t appear if you haven’t yet copied a material. Paste (Instance)—Pastes an instance from the copy buffer. This item doesn’t appear if you haven’t yet copied a material. Clear—If you right-click a sub-material button, Clear removes the material from that sub-material component without making a copy of it. If you right-click the Type button, Clear has no effect. Map Right-Click Menu When you right-click the button for a map component (a “map slot”), the menu you see depends on whether a map has been assigned yet. When a Map Has Been Assigned The following menu appears if a map has been assigned: Copying and Pasting: Right-Click Menu for Materials, Maps, Bitmaps, and Colors When No Map Has Been Either Assigned or Copied If no map has been assigned and you haven’t copied a map yet, then no right-click menu appears at all. Bitmap Right-Click Menu Cut—Removes the assigned map, and puts a copy of it in the copy buffer. Copy—Copies the map without removing it. This menu appears when you click a button that specifies an external bitmap (page 3–917). See Bitmap 2D Map (page 2–1631). Paste (Copy)—Pastes a copy from the copy buffer. This item doesn’t appear if you haven’t yet copied a map. Clear—Removes the assigned map without copying it. Copy—Copies the bitmap. Open—For bitmaps (page 2–1631), launches Paste—Pastes the bitmap from the copy buffer. whichever application is associated with the currently assigned 2D map. This item does not appear for other map types such as procedural maps. Open—Launches whichever application is associated with the bitmap. Reveal Location in Explorer—Launches a copy of Reveal Location in Explorer—Launches a copy of Windows Explorer to display the folder where the bitmap is saved. Windows Explorer to display the folder where the map is saved. Color Swatch Right-Click Menu When No Map Has Been Assigned If no map has been assigned, all you can do is paste another: This menu appears when you right-click a color swatch. Note: This menu does not apply to the VertexPaint modifier’s Color Palette (page 1–950), which has its own right-click menu. Paste (Copy)—Pastes a copy from the copy buffer. Paste (Instance)—Pastes an instance from the copy buffer. Copy—Copies the color. Pastes—Pastes a color from the copy buffer. 1419 1420 Chapter 16: Material Editor, Materials, and Maps Sample Slots Material Editor > Sample slots display The Material Editor has 24 sample slots. You can view them all at once, six at a time (the default), or 15 at a time. When you view fewer than 24 slots at once, scroll bars let you move among them. See Material Editor Options (page 2–1436) and Sample Slot Right-Click Menu (page 2–1422). A material in a slot is shown on a sample object. By default, the object is a sphere. Use the Sample Type flyout (page 2–1432) to change the sample object. The sample slots let you maintain and preview materials (page 3–971) and maps. (page 3–968) Each slot previews a single material or map. You can change the material by using the Material Editor controls, and you can apply the material to objects in the scene. The easiest way to do this is to drag the material from the sample slot to objects in viewports. See Dragging and Dropping Maps and Materials (page 2–1423). By default, a standalone map in a slot fills the whole slot. This is when the slot shows only a standalone map at the top of a tree; when the map is assigned to a material, the slot shows it as part of the material, mapped to the sample object. See Get Material (page 2–1439) and Material Editor Options (page 2–1436). Important: While the Material Editor can edit no more than 24 materials at a time, a scene can contain an unlimited number of materials. When you are through editing one material, and have applied it to objects in the scene, you can use that sample slot to get a different material from the scene (or create a new one) and then edit it. Sample slot showing a map You can display a sample slot in a window of its own. This magnifies the sample slot, which can make it easier to preview the material. You can resize the magnified window to make it even larger. To magnify a sample slot, double-click it, or right-click and choose Magnify from the pop-up menu. See Sample Slot Right-Click Menu (page 2–1422). Sample slot showing a material The Material Editor renders only the active sample sphere for the current frame. If the \matlibs subdirectory contains a material library called medit.mat, the sample slots show the first 24 materials in this library file. If the library contains fewer than 24 materials, the remaining slots contain Standard materials of various colors, as they do if an medit.mat library is not found. Sample Slots Hot and Cool Materials A sample slot is "hot" (page 3–953) when the material in the slot is assigned to one or more surfaces in the scene. When you use the Material Editor to adjust a hot sample slot, the material in the scene changes at the same time. If you drag to copy a material from a hot slot to another slot, the destination slot is cool, and the original slot remains hot. See also Sample Slot Right-Click Menu (page 2–1422) The corners of a sample slot indicate whether the material is a hot material: Dragging and Dropping Maps and Materials (page 2–1423) • No triangle: The material is not used in the scene. Creating a Custom Sample Object (page 2–1425) • Outlined white triangle: The material is hot. In other words, it’s instanced in the scene. Changes you make to the material in the sample slot will change the material displayed in the scene. Procedures • Solid white triangle: The material is not only hot, but is applied to the currently selected object. To use a sample slot: • Click the sample slot to make it active. The active sample slot is displayed with a white border around it. The sample slot shows a sample object shaded with a material. (By default, the sample object is a sphere.) The sample object is lit by a light source above it and slightly toward the viewer. For the sphere, the highlight is in the upper-left quadrant. The diffuse color shows most clearly above and to the left of the highlight, shading toward the ambient color at the sphere’s lower right. Left: "Hot" material applied to currently selected object. Middle: "Hot" material assigned to scene but not to currently selected object. Right: "Cool" material: active but not assigned to scene. A material is "cool" (page 3–924) if it is not applied to any object in the scene. To make a hot sample slot cool, click Make Material Copy (page 2–1442). This copies the material in the sample slot on top of itself so that it’s no longer used in the scene. You can have the same material (with the same name) in more than one sample slot, but only one slot containing that material can be hot. You can have more than one hot sample slot, as long as each has a different material. To change the preview shape: 1. Make sure the sample slot of the material you want to view is active. 2. Use the Sample Type flyout (page 2–1432) to choose the shape you want to view. The flyout gives you three options: sphere (the default), cylinder, or box. The new shape is displayed in the sample slot, with the material mapped to it. To render the current mapping level: 1. Move to the level of the map hierarchy that you want to render. 1421 1422 Chapter 16: Material Editor, Materials, and Maps 2. Right-click in the sample slot, and choose Render Map from the pop-up menu. The Render Map dialog (page 2–1455) is displayed. 3. Choose Single or the range of frames you want to render. 4. In the Dimensions group box, specify the pixel resolution of the map. 5. Click the Files button, and specify a path and file name for the file. Make sure Save To File is on unless you want to see the image only in a rendered frame window (page 3–5). 6. Click Render. A rendered frame window appears displaying the map. If Save To File is on, the image is also saved to disk. Sample Slot Right-Click Menu Material Editor > Right-click active sample slot. When you right-click the active sample slot, a pop-up menu is displayed. For other sample slots, click or right-click once to select them, then right-click to use the pop-up menu. The pop-up menu is available in magnified sample slot windows. See the "Magnify" option, below. Interface The pop-up menu has these options: Drag/Copy—Sets dragging a sample slot to copy mode. When on, dragging a sample slot copies the material from one sample slot to another, or from the sample slot to an object in the scene or a material button. Drag/Rotate—Sets dragging a sample slot to rotate mode. When on, dragging in the sample slot rotates the sample object. This helps you preview the material. Drag over the object to rotate it about its X or Y axis; drag in the corners of the sample slot to rotate the object about its Z axis. In addition, if you press Shift before dragging in the center, the rotation is constrained to the vertical or horizontal axis, depending on your initial drag direction. If you have a three-button mouse and are using Windows NT, the middle mouse button rotates the sample object while Drag/Copy mode is active. Reset Rotation—Resets the sample object to its default orientation. Render Map—Renders the current map, creating a bitmap or an AVI file (if the map is animated). Only the current map level renders. That is, the rendering shows the image displayed when Show End Result is turned off. If you’re at a material level instead of a map level, this menu item is disabled. Options—Displays the Material Editor Options dialog (page 2–1436). This is an alternative to clicking the Options button. Magnify—Generates a magnified view of the current sample slot. The magnified sample is displayed in its own, floating (modeless) window. You can display up to 24 magnified windows, but you can’t display the same sample slot in more than one magnified window at a time. You can resize magnify windows. Clicking a magnify window activates the sample slot, and vice versa. Dragging and Dropping Maps and Materials Shortcut—Double-click a sample slot to display the magnified window. The magnify window’s title bar displays the contents of the editable material name field (page 2–1448). It varies depending on which level of the material is active. 6 X 4 Sample Windows—Displays a 6 X 4 array of sample slots. (24 windows.) Dragging and Dropping Maps and Materials You can move materials from sample slots to objects using a drag-and-drop operation. You can also drag to and from map and material buttons. See the following lists to determine where in the interface you can drag from and drag to. When dragging materials, use the Undo command (page 1–94) to cancel material assignments. Where You Can Drag From • Sample Slots (page 2–1420) Auto—Turn off to prevent the magnified window from updating automatically. This can save rendering time, especially when you have resized the magnified window to make it larger. Default=on. Update—Click to update the magnified window. This button is unavailable unless Auto is turned off. Dragging a different sample slot to the magnify window changes the contents of the magnify window. The content you drag from a sample slot is always at the top level of the sample slot, regardless of which level is currently displayed. If the sample slot contains a material, you can’t drag from the sample slot to a map button, even if you’re at the map level of the material. • The Material Editor Type button (page 2–1449) • Material/Map Browser (page 2–1412) lists (text or icon lists) You can’t drag from the modal version of the Browser (when OK and Cancel buttons are present). Sample Windows options • The sample slot in the Browser The Material Editor always has 24 sample slots available. You can choose to display fewer sample slots at a larger size. When you do, scroll bars let you move around among the sample slots. • Material map buttons (see below) 3 X 2 Sample Windows—Displays a 3 x 2 array of sample slots. (The default: 6 windows.) • A projector light map button (see Advanced Effects Rollout (page 2–1341)) • The Environment Background (page 3–272) map button 5 X 3 Sample Windows—Displays a 5 X 3 array of • Fog (page 3–282) Color and Opacity map buttons sample slots. (15 windows.) • Displace modifier (page 1–629) map buttons 1423 1424 Chapter 16: Material Editor, Materials, and Maps one of these selection modifiers: Mesh Select (page 1–719), Patch Select (page 1–751), or Poly Select (page 1–762). Material Map Buttons The material map buttons you can drag from include: • The buttons in the Maps rollout (page 2–1474) See also • The small shortcut map buttons on the Basic Parameters rollouts (page 2–1470). Applying a Material to an Object (page 2–1405) • Any map buttons at any level. Drag and Drop Sub-Object Material Assignment (page 2–1424) • Sub-material buttons, such as those found in the Multi/Sub-Object material (page 2–1594). Where You Can Drag To • Objects in viewports. Drag from a material button, sample slot, or Browser listing into the viewport and over an object. When you release the mouse, the material is applied. If you drag a material over two or more selected objects, an alert message asks if you want to apply the material to the object or to the selection. Choose the option you want, and click OK. • The Material Editor Type button (page 2–1449). You can drag to the Type button only from the Browser. If the Type button shows a standalone map, you can drag only a map to it. If it shows a material type, you can drag only a material to it. • All of the items in the previous list, except that you can drag to the Browser only when it displays a material library. When the Browser is set to browse from a Material Library, dragging materials and maps into the Browser adds them to the library. Drag and Drop Sub-Object Material Assignment You can apply a material to a selection of renderable sub-objects, such as faces in a mesh. In the Material Editor, you can use Assign Material to Selection (page 2–1441). You can also drag the material from the Material Editor or the Material/Map Browser (page 2–1412) to the selected faces. This can create a new Multi/Sub-Object material (page 2–1594) on the fly. You can disable drag-and-drop of materials to sub-objects. To do so, go to the General tab (page 3–815) of the Preferences dialog (page 3–815), and in the Sub-Materials group, turn off Assign Automatically. This check box is on by default. Procedure To drag materials onto sub-object selections: 1. In the Modify panel > Modifier Stack rollout, choose Face as the sub-object level. 2. Select faces of an editable mesh object. 3. Drag a material from a Material Editor sample slot to the selected faces. • A Face, Polygon, Patch, or Element sub-object selection of an editable surfacemesh object (mesh, patch, or poly). 4. In the Modifier Stack rollout, click to turn off • A Face, Polygon, Patch, or Element sub-object selection created by the Edit Mesh modifier (page 1–634) or Edit Patch (page 1–638); or by 5. Sub-Object and return to the object level. On the Material Editor, click Pick Material From Object, then use the eyedropper to get the material from the sphere. Creating a Custom Sample Object The new Multi/Sub-Object material appears in the active sample slot. How the Multi/Sub-Object Material Is Created The Multi/Sub-Object material is created in one of three ways, depending on what material is already applied to the selected sub-objects: • No material applied If the selected faces have no material applied, a new Multi/Sub-Object material is created. The dragged material becomes a sub-material in the new material. If material IDs already exist, they are preserved. is used and the new material replaces the old sub-material at this ID. Otherwise, a new material ID number is assigned to the faces, and used for the dragged material. In this case, any existing material IDs are preserved. Creating a Custom Sample Object Material Editor > Right-click the active sample slot. > Right-click menu > Options > Material Editor Options dialog Material Editor > Material Editor Options > Material Editor Options dialog • Existing material applied (other than Multi/Sub-Object material) A new Multi/Sub-Object material is created and applied to the selected faces. The existing material is moved into the Multi/Sub-Object material and becomes the first sub-material. Unselected faces get material ID #1, the selected faces get material ID #2, and the dragged material becomes part of the Multi/Sub-Object material. Existing material IDs are not preserved. • Multi/sub-object material applied If the existing Multi/Sub-Object material is already applied more than once in the scene, the material is copied and the new copy is applied to the selected faces. Custom sample object fits within a 100-unit cube By default, the sample object in a sample slot is a sphere. You can use the Sample Type flyout (page 2–1432) to change this to a cube or a cylinder. You can also create a custom sample object by creating a 3ds Max scene that shows the object. If the Multi/Sub-Object material is only applied once in the scene, then the existing material is used. The dragged material is added to the existing Multi/Sub-Object material. Overview of Using a Custom Sample Object If the dragged material already is a part of the Multi/Sub-Object material, then the selected faces receive the corresponding material ID number. If the selected faces all have the same material ID number, and no unselected faces are already using this number, then this number The scene you create should contain a single object that fits into an imaginary cube that is 100 units on each side. The object must be at the root level of the scene: it can’t be linked to other objects. If more than one object is in the scene, only the first See Procedures for more details. 1425 1426 Chapter 16: Material Editor, Materials, and Maps object listed in the Track View hierarchy is used as the sample object. If the object is of a type that doesn’t have a Generate Mapping Coords check box, apply a UVW Map modifier (page 1–922) to it. After you have saved the single-object scene as a .max file, use the Custom Sample Object group in the Material Editor Options dialog (page 2–1436) to specify the file. When you specify the file, a new button is displayed at the right of the Sample Type flyout. This button, which shows an object with a question mark, displays the sample object file you chose. If the sample object scene contains only the object, sample slots display it with default lighting. If the scene also contains a camera and lights, you can use the camera to specify the view, and the lights to light the object as you choose. Turn on Load Camera and/or Lights in the Custom Sample Object group. Procedures To set up a custom sample object: 1. Create a scene with a single object, such as a pyramid. The object should fit into an imaginary cube that is 100 units on each side. Also, the object must be at the root level of the scene: it can’t be linked to other objects. If more than one object is in the scene, the Material Editor uses the first object listed in the Track View hierarchy. 2. If the object does not have built-in mapping coordinates (via a Generate Mapping Coords check box), then assign a UVW Map modifier to it to provide mapping coordinates. If the object has a Generate Mapping Coords check box, it’s on by default, and the Material Editor uses those coordinates. If you want to use coordinates other than those built into the object, assign a UVW Map modifier (page 1–922) and set up your own coordinates. 3. Save the .max file. 4. In the Material Editor Options dialog, click the File Name button in the Custom Sample Object group box, and choose the .max file that contains your object. 5. Activate the sample slot in which you want to see the custom object, then choose the button at the far right of the Sample Type flyout. Your custom object is displayed in the sample slot. If the size of your object is not quite right for the sample slot, adjust its size and save the scene again. To update the sample slot so it uses the newly saved .max file, open the Material Editor Options dialog, and then click OK. To use a camera and lights with the custom sample object: 1. Create a camera in the scene that contains your sample object, and then adjust the camera to show the object as you want it seen in sample slots. Tip: Viewports have a different aspect ratio than sample slots, so using Zoom Extents (page 3–740) on the sample object usually results in the object appearing smaller in a sample slot. Do Zoom Extents on the object, and then before you save the file, zoom in a little farther so the object more than fills the viewport. The sample slot projection is based on the width of the sample object’s geometry, not on the image in the viewport. If more than one camera is in the scene, the Material Editor uses the first camera listed in the Track View hierarchy. 2. If you want to use your own lighting rather than the default sample-slot lighting, set up as many lights as you need. If you want to use the Material Editor Tools sample-slot lighting, do not add any lights to the scene. Note: These fields are not displayed unless you 3. Save the .max file. change a toggle in Preferences > Advanced Lighting. 4. In the Material Editor Options dialog, specify Buttons below the sample slots (the "toolbar") the file as the Custom Sample Object file. 5. Turn on Load Camera and/or Lights. Sample Slots set to use the custom object now display the object as seen through the camera. If lights are in the scene, those lights are used in the sample slot instead of the default lights. Get Material (page 2–1439) Put Material to Scene (page 2–1440) Assign Material to Selection (page 2–1441) Reset Map/Mtl to Default Settings (page 2–1442) Material Editor Tools Main toolbar > Material Editor Make Material Copy (page 2–1442) Make Unique (page 2–1442) Put to Library (page 2–1443) Material Effects Channel (page 2–1443) Show Map in Viewport (page 2–1445) Show End Result (page 2–1446) Go to Parent (page 2–1446) Go Forward to Sibling (page 2–1447) Material Editor tools below and to the right of the sample slots Above the sample slots (page 2–1420) is the menu bar. Below and to the right of the Material Editor sample slots are buttons and other controls that you use to manage and change maps and materials. Material Editor Menu Bar (page 2–1428) Reflectance and Transmittance Display (page 2–1430) Buttons to the right of the sample slots Sample Type (page 2–1432) Backlight (page 2–1432) Pattern Background (page 2–1433) Sample UV Tiling (page 2–1433) 1427 1428 Chapter 16: Material Editor, Materials, and Maps Video Color Check (page 2–1434) Make Preview, Play Preview, Save Preview (page 2–1434) Material Editor > Menu bar Material Editor Options (page 2–1436) The Material Editor menu bar appears at the top of the Material Editor window. It provides another way to invoke the various Material Editor tools. Select By Material (page 2–1439) Material Menu Material/Map Navigator (page 2–1447) The Material menu provides the most commonly used Material Editor tools. Controls below the toolbar Pick Material from Object (page 2–1448) Material name field (page 2–1448) Material Type button (page 2–1449) Procedures To use the Material Editor Options dialog: 1. Material Editor Menu Bar Click Options (page 2–1436) to the right of the sample slots. • Get Material (page 2–1439) • Pick from Object (page 2–1448) • Assign to Selection (page 2–1441) • Put to Scene (page 2–1440) • Put to Library (page 2–1443) • Change Material/Map Type—Equivalent to clicking the Material Type Button (page 2–1449). • Make Material Copy (page 2–1442) To change the preview shape: • Launch Magnify Window—Equivalent to double-clicking the active sample slot (page 2–1420), or choosing Magnify on its right-click menu (page 2–1422). 1. Activate the sample slot of the material you • Make Preview (page 2–1434) 2. Set the options as you want, and then click OK. want to view. 2. Use the Sample Type flyout (page 2–1432) to choose the shape you want to view. The new shape is displayed in the sample slot, with the material mapped to it. The flyout gives you three options: sphere (the default), cylinder, or box. An additional custom object option is available if you define a custom object as described in Creating a Custom Sample Object (page 2–1425). • View Preview (page 2–1434) • Save Preview (page 2–1434) • Show End Result (page 2–1446) • Show Map in Viewport (page 2–1445) • Activate All Maps—Turns on Show Map in Viewport (page 2–1445) for every material used in the scene. • Deactivate All Maps—Turns off Show Map in Viewport (page 2–1445) for every material used in the scene. • Reset Sample Slot Rotation—Returns the active sample slot’s object to its default orientation; Material Editor Menu Bar equivalent to choosing Reset Rotation on the sample slot right-click menu (page 2–1422). • Update Active Material—If Material Editor Options dialog (page 2–1436) > Update Active Only is on, choosing this updates the active material in its sample slot. Utilities Menu The Utilities menu provides map rendering and selecting objects by material. • Render Map—Equivalent to choosing Render Map on the sample slot right-click menu (page 2–1422). Navigation Menu • Select Objects by Material (page 2–1439) The Navigation menu provides tools that navigate a material’s hierarchy. • Clean MultiMaterial (page 2–1742) • Go to Parent (page 2–1446) • Reset Material Editor Slots—Replaces all materials in the Material Editor with the default material type. This action is not undoable, but you can restore the previous state of the Material Editor with the Restore Material Editor Slots command (see below). • Go Forward to Sibling (page 2–1447) • Go Backward to Sibling—Like Go Forward To Sibling, but navigates to the preceding sibling map in the tree, instead of the succeeding one. Options Menu The Options menu provides some additional tools and display choices. • Propagate Materials to Instances (page 2–1432) • Manual Update Toggle—Equivalent to the Manual Update toggle in the Material Editor Options dialog (page 2–1436). • Copy/Rotate Drag Mode Toggle—Equivalent to choosing either Drag/Copy or Drag/Rotate on the sample slot right-click menu (page 2–1422). • Background (page 2–1433) • Custom Background Toggle—If you have used the Material Editor Options dialog (page 2–1436) to assign a custom background, this toggles its display. • Backlight (page 2–1432) • Cycle 3X2, 5X3, 6X4 Sample Slots—Cycles through the equivalent choices on the sample slot right-click menu (page 2–1422). • Options—Opens the Material Editor Options dialog (page 2–1436). • Instance Duplicate Map (page 2–1744) • Condense Material Editor Slots—Sets all unused materials in the Material Editor to the default type, retaining only materials in the scene and moving those materials to the first slots in the editor. This action is not undoable, but you can restore the previous state of the Material Editor with the Restore Material Editor Slots command (see below). • Restore Material Editor Slots—When you use either of the two previous commands, 3ds Max saves the current state of the Material Editor in a buffer; using this command restores the state of the editor using the buffer contents. Tip: The buffer that holds the material definitions survives the File menu > Reset command. Thus, if you use either the Reset Material Editor Slots or the Condense Material Editor Slots function, and then reset 3ds Max, you can then use Restore Material Editor Slots to bring all materials back into the Material Editor. This makes it easy to use the same materials in different projects. For best results, follow this procedure: 1. Save your scene. 1429 1430 Chapter 16: Material Editor, Materials, and Maps 2. Use the Reset Material Editor Slots or Condense Material Editor Slots function. 3. Reset 3ds Max. When prompted to save the scene, click No. Otherwise, you might lose material definitions in the Material Editor that were saved with the scene. Note: Materials and Radiosity 4. Open the Material Editor and choose Utilities menu > Restore Material Editor Slots. The Material Editor status before step 2 is restored. Reflectance and Transmittance Display Material Editor > Reflectance and Transmittance fields (below the sample slots) These fields show the reflectance and transmittance of the active material. Both the average value and the maximum value are shown. Note: These fields are not displayed unless you turn on Display Reflectance & Transmittance Information in the Advanced Lighting panel (page 3–836) of the Preferences dialog. These fields can change according to the current Show End Result setting (page 2–1446). When Show End Result is off, the reflectance and transmittance show the properties of the current element in the material hierarchy, not the properties of the material overall. The reflectance and transmittance values of a material are particularly important when you are preparing a radiosity solution (page 3–51) to obtain a physically accurate lighting simulation. If a material’s reflectance or transmittance values are not what your scene needs, you need to adjust these values. Upper left: Washed-out walls due to high reflectance. Right: Better radiosity achieved by reducing the HSV Value (V) of materials in the scene. To get good radiosity results, keep these points in mind as you design materials: • Before you generate a radiosity solution, check the reflectance value of all materials in the scene, to make sure it is not too high. The reflectance of a material determines how much of the light energy it receives is subsequently used in the radiosity calculation. Keep this value within the range of the physical materials you are simulating. (See the table in the description of “Reflectance,” below.) • Don’t be concerned if a material preview seems too dark. For example, a white wall with the maximum recommended reflectance of 80% appears gray. The color balance will be adjusted correctly by the exposure control (page 3–293) in the final rendering. • Bitmaps used as diffuse textures have already been illuminated by the scanner, digital camera, or paint program in which you created them. To bring them into the proper reflectance range, you might have to dim them by reducing the Reflectance and Transmittance Display RGB Level value in the bitmap’s Output rollout (page 2–1621). Left: Wood grain bitmap as originally photographed has too high a reflectance. Right: Reducing the RGB Level value reduces the map’s reflectance. Here are some typical reflectance ranges for common materials: Material Minimum Maximum Ceramic 20% 70% Fabric 20% 70% Masonry 20% 50% Metal 30% 90% Paint 30% 80% Paper 30% 70% Plastic 20% 80% Stone 20% 70% Wood 20% 50% Interface Reflectance—Reflectance is the percentage of diffuse light energy that is reflected from a material. When you increase a material’s HSV value (V), the material reflects more diffuse light. Decreasing a material’s Opacity also decreases its reflectance. Typically, the reflectance of a material should never be greater than 85%. this is an unusually high value that will lead to poor-quality renderings. In the real world, even the whitest wall reflects no more than 80% of the light it receives. One source of high reflectance can be a map assigned to the material’s diffuse component. For example, a white tile bitmap might create high reflectance. In this case, you can reduce reflectance by reducing the RGB Level in the bitmap’s Output rollout. An alternate way to reduce a bitmapped material’s reflectance is to set the diffuse color of the material to black, and then reduce the diffuse map’s Amount (in the parent material’s Maps rollout (page 2–1474)). You can use this method to reduce the reflectance of 3D procedural maps (page 2–1662) as well. Transmittance—Transmittance is the amount of light energy transmitted through a material. A completely opaque material has 0% transmittance. When the material is transparent (like clear glass), the energy transmitted is specular, and light passes directly through the material (subject to refraction). The value of specular transmittance is an interaction between the material’s Opacity value (page 2–1488) and its filter color (page 3–939). When the filter color is pure white, specular transmittance is the inverse of Opacity. When the material is translucent (like frosted glass), the energy transmitted is diffuse, and scattered in all directions. The value of diffuse transmittance is based on the HSV value (V) of the translucent color (page 2–1491). Diffuse transmittance happens only for materials that use the Translucent shader (page 2–1484), or Raytrace materials (page 2–1512), that specify translucency. Usually, when a material has high transmittance, it has low reflectance, and the other way around. 1431 1432 Chapter 16: Material Editor, Materials, and Maps Sample Type Material Editor > Sample Type The Sample Type flyout lets you choose which geometry to display in the active sample slot (page 2–1420). This flyout has three buttons: When Propagate Materials To Instances is off, materials are assigned in traditional 3ds Max fashion; each object has a unique material assignment. Backlight Material Editor > Backlight Material Editor menu > Options menu > Backlight • Sphere (the default)—Displays the material on a sphere. • Cylinder—Displays the material on a cylinder. • • Cube—Displays the material on a cube. Custom—Displays the material on a custom object. This button appears only if you have used the Material Editor Options dialog (page 2–1436) to specify a custom object for sample slots. Left: Backlight on See also Right: Backlight off Creating a Custom Sample Object (page 2–1425) Turning on Backlight adds a backlight to the active sample slot. This button is on by default. Propagate Materials to Instances The effect is most easily seen with the sample spheres, where the backlight highlights the lower-right edge of the sphere. Material Editor > Options menu > Propagate Materials to Instances When Propagate Materials To Instances is on, any material assignment you make will be propagated to all instances (page 3–957) of the object in your scene, including imported AutoCAD blocks and ADT style-based objects; these object types are common in DRF files (page 3–527). Assignments are also propagated to instances of Revit objects and of other instances that you’ve made in the current scene. Backlight is especially useful whenever you’re creating metal (page 2–1481) and Strauss (page 2–1483) materials. Backlight lets you see and adjust the specular highlight created by glancing light, which is much brighter on metals. Sample Slot Background Sample Slot Background Material Editor > Background Material Editor menu > Options menu > Background The buttons on the Sample UV Tiling flyout adjust the repetition of the map (page 3–968) pattern on the sample object in the active sample slot. The tiling pattern you set with this option affects only the sample slot. It has no effect on the tiling on the geometry in the scene, which you control with parameters in the map’s own coordinates rollout. 1 x 1 (the default)—Tile once in the U • dimension and once in V. This is equivalent to no tiling at all. 2 x 2—Tile twice in U and twice in V. • 3 x 3—Tile three times in U and three • times in V. Left: Background on Right: Background off Turning on Background adds a multicolored checkered background to the active sample slot. The pattern background is helpful when you want to see effects of opacity and transparency. The Material Editor Options dialog (page 2–1436) also lets you assign a bitmap to use as a custom background. Sample UV Tiling Material Editor > Sample UV Tiling 4 x 4—Tile four times in U and four times • in V. The buttons specify the number of times the pattern repeats over the surface of the sample object. Because maps are mapped spherically around the sample sphere, the tiling (page 3–1022) repetition covers the entire surface of the sphere. The sample cylinder maps cylindrically. The sample cube uses box mapping: the tiling appears on each side of the cube. Custom sample objects use the default mapping coordinates for that kind of object, unless the object has a UVW Map modifier (page 1–922) applied to it, in which case the modifier controls the mapping. This flyout is unavailable when the sample slot displays a standalone (top-level) map. See also Creating a Custom Sample Object (page 2–1425) 1x1, 2x2, and 3x3 sample tiling 1433 1434 Chapter 16: Material Editor, Materials, and Maps Procedures Video Color Check Material Editor > Video Color Check To check for illegal video colors: 1. On the Material Editor, turn on Video Color Check (page 2–1434). The active sample slot now renders "illegal" pixels as black. Illegal pixels have a color that is beyond the safe video threshold. If Video Color Check detects illegal colors, try reducing the saturation of the material colors in question. 2. You can also check for legal video colors when you render a scene. To change the video system: Right: Video color check shows black areas that are beyond the video threshold NTSC (page 3–980) is the default video system to check. You can change the video checking to PAL (page 3–988). Video Color Check checks the material on the sample object for colors that are beyond the safe NTSC (page 3–980) or PAL (page 3–988) threshold. • In the Tools menu > Options > Options dialog > Rendering panel (page 3–826) > Video Color Check group, change the setting to PAL. Left: Material with oversaturated colors Such colors tend to blur or fuzz when transferred from computer to video. Pixels containing these "illegal" or "hot" colors are flagged on the sample object. You can have 3ds Max correct illegal colors automatically when you render, depending on the settings in the Rendering tab (page 3–826) of the Customize/Preferences dialog (page 3–815). Use this option as a guide only. The colors in a rendered scene depend not only on the material color but also on the intensity and color of the lighting. A material that shows as safe in the sample slot might become illegal if rendered under several bright lights. A safe practice for video is to use colors whose saturation is less than 80 to 85 percent. The sample slot does not automatically update when you change the video system preference. Turn video checking off and back on to see the change. Note: The Rendering panel also shows options for choosing alternate ways to display illegal pixels. These apply to renderings only, not to the sample slots in the Material Editor. Make Preview, Play Preview, Save Preview Material Editor > Make/Play/Save Preview flyout Material Editor menu > Material menu > Make Preview, View Preview, or Save Preview You can use animated maps to add movement to a scene. For example, to simulate a sky view, Make Preview, Play Preview, Save Preview you could map an animation of moving clouds to a clerestory window. The Make Preview options let you experiment with the effect in the Material Editor before you apply it to your scene. The buttons on the Make Preview, Play Preview, Save Preview flyout let you preview the effect of an animated map on the object in a sample slot (see Sample Type (page 2–1432) for alternatives to the default sphere.) You can use an AVI file (page 3–609), or IFL file (page 3–616) as a source for the animation. The finished preview is saved as a new AVI file and automatically played back. You can also view the preview in a sample slot by dragging the time slider. This flyout has three options: • Make Preview—Displays a Create Material Preview dialog (page 2–1452) to create an AVI file of the animated material. When the preview is complete, it is saved as _medit.avi in the \previews subdirectory. The file is then opened in the Windows Media Player and played back. Without this option, the only other way to preview a complex animated material in real time is to use the renderer (page 3–27) to render an animated sequence and save it to an AVI file, a digital disk recorder, or a video tape recorder. • Play Preview—Uses the Windows Media Player to play the current _medit.avi preview file in the \previews subdirectory. • Save Preview—Saves the _medit.avi preview to an AVI file of a different name in the \previews subdirectory. Procedures To create a preview of an animated material: 1. Choose Make Preview from the flyout. 2. In the Create Material Preview dialog, set the preview conditions you want, and then click OK. The preview is created, and then plays. To play back a preview of an animated material: • Choose Play Preview from the flyout. The Material Editor starts the Windows Media Player. The Player then loads the current _medit.avi preview file in the \previews subdirectory and plays it in a separate window. To view an animated material in a sample slot: • Drag the time slider through the range of frames. By default, all sample slots with animated maps update at the same time. To change this, see Material Editor Options Dialog (page 2–1436). To save a preview under a different name: 1. Choose Save Preview from the flyout. The Material Editor displays a File Save dialog. 2. Enter a new name for the preview, and then click OK to save the file in the \previews subdirectory. To play a renamed preview: 1. Choose Tools menu > Display Image. 2. In the View File dialog, change to the \previews subdirectory. 3. Select the renamed preview file and click Open. The preview is played in a separate window. 1435 1436 Chapter 16: Material Editor, Materials, and Maps Material Editor Options Material Editor > Material Editor Options Material Editor menu > Options menu > Options Manual Update—When on, the sample slots don’t update their contents until you click them. This option affects only the updating of the sample slots; it doesn’t affect the icon displays in the Browser. Default=off. These settings are “sticky”; they survive a reset, and even quitting and restarting 3ds Max. Don’t Animate—When on, animated maps are not updated in the sample slots while you play an animation or drag the time slider. However, the animation is updated to the current frame when you stop the animation or release the time slider. An animated map can use an AVI file (page 3–609) or IFL file (page 3–616)as a source. Default=off. Note: The controls to assign a renderer for the Animate Active Only—When on, only the active sample slots are on the Assign Renderer rollout (page 3–35). sample slot is animated when you play an animation or drag the time slider. This option is good for situations where you have multiple animated materials in the Material Editor, but you only need to see one at a time. This check box is unavailable when Don’t Animate is on. Default=off. This button displays the Material Editor Options dialog to let help you control how materials and maps are displayed in the sample slots (page 2–1420). Interface Update Active Only—When on, sample slots do not load or generate maps until you make one sample slot active. This can save time while you use the Material Editor, especially when your scene uses a lot of materials with maps. Default=off. Antialias—Turns on antialiasing (page 3–907)in the sample slots. Default=off. If the mental ray renderer is used to render sample slots, this setting is disregarded. The mental ray renderer’s sampling values control antialiasing. Progressive Refinement—Turns on progressive refinement in the sample slots. When on, samples are rendered quickly, with large pixels, then rendered a second time in greater detail. Default=off. Simple Multi Display Below Top Level—When on, the sample sphere for a Multi/Sub-Object material displays the multiple patches only at the top level of the material. The sub-materials are displayed over the entire sphere. When you use nested Material Editor Options Multi/Sub-Object materials, the multiple patches again appear at the top level of the nested material, but the sample sphere is again whole when displaying any of the sub-materials. Default=on. Scale on the map’s Coordinates rollout to see the sample sphere as you’d expect. Available only when Auto-Select Texture Map Size (above) is off. Default=off. Display Maps as 2D—When on, sample slots display maps, including standalone maps, in 2D. The map fills the entire slot. When off, maps are displayed on the sample object, as materials are. Default=on. Custom Background—Lets you specify a custom background for the sample slots, instead of the default checkers background. Click the file-assignment button to display a file dialog from which you can select the custom background. This can be any bitmap format supported by 3ds Max. Turn on Custom Background to use the new background instead of the checkered background. The custom background is stored in the 3dsmax.ini (page 1–18) file, so it is available from session to session. Default=off. Display Multi/Sub-Object Material Propagation Warning—Toggles display of warning dialog when you apply a Multi/Sub-Object material (page 2–1594) to an instanced ADT style-based object. Auto-Select Texture Map Size—When on, and you have a material that uses a texture map set to Use Real-World Scale, ensures that the map will be displayed correctly on the sample sphere. Turn off to be able to enable Use Real-World Map Size For Geometry Samples (see following). Note: If a material uses several texture maps at different levels, and only one is set to Use Real-World Scale, the sample sphere will render with real-world size coordinates. Use Real-World Map Size For Geometry Samples—This is a global setting that allows you to manually choose which style of texture coordinates are used. When on, real-world coordinates are used for the sample slot display. Otherwise, the old style of 3ds Max mapping coordinates is active. When off, you must turn on Use Real-World Top Light color/Back Light color—Specify the two lights used in the sample slots. Click the color swatch to alter the color of either light. Adjust the Multiplier spinners to multiply the values (intensity) of the lights. Use the Default buttons to return to the initial settings. Ambient Light—Shows the color of ambient light (page 3–908) used in the sample slots. Click the color swatch to change the color. When the lock button is on, changing the Ambient Light color here or on the Environment panel (page 3–272) changes both; when off, changing one setting does not affect the other. Use the Default button to return to the initial setting. Background Intensity—Sets the background intensity in the sample slots. The range is from 0 (black) to 1 (white). Default=0.2. Use the Default button to return to the initial setting. Render Sample Size—Sets the scale of the sample sphere to any size, making it consistent with the object or objects in the scene that have the texture on them. This setting affects how 2D and 3D maps are displayed providing that the sample spheres are set to display real-world scale. Note: The size is scaled to use the current units. This is a global option that affects all the sample slots. Default=100.0 (Imperial units) and 2.54m (Metric units). 1437 1438 Chapter 16: Material Editor, Materials, and Maps Use the Default button to return to the initial setting. Default Texture Size—Controls the initial size (both height and width) of a newly created real-world texture. You see the result of changing this option only when you create a new texture in a material; the change appears in the Coordinates rollout (page 2–1625). Default=48.0 (Imperial units) and 1.219m (Metric units). Note: This setting applies to real-world textures only. For the default size to be applied to newly created textures, the Preferences dialog > General panel > Use Real-World Texture Coordinates check box must be on. Use the Default button to return to the initial setting. DirectX Shader group These options affect the viewport behavior of the DirectX 9 Shader material (page 2–1613). Force Software Rendering—When on, forces DirectX 9 Shader materials to use the selected software render style for viewports. When off, the FX file specified in the DirectX 9 Shader is used unless the material’s local Force Software Rendering toggle is on. Default=off. Shade Selected—When Force Software Rendering is on, selected objects, and only selected objects, are shaded by the DirectX 9 Shader material. This toggle is unavailable unless Force Software Rendering is on. Default=off. Custom Sample Object group Controls in this group let you specify a custom sample object (page 2–1425) to use in the sample slots (page 2–1420). File Name—Selects the MAX scene file. The scene should contain a single unlinked object that fits in an imaginary cube 100 units on a side. The object must be either a primitive with a Generate Mapping Coords. check box, or have a UVW Map modifier (page 1–922) applied to it. The scene can contain a camera and lights. Load Camera and/or Lights—Turn on to have sample slots use the camera and lights in the scene, instead of the default sample slot lighting. Slots group These options let you choose how many sample slots to display at a time. The Material Editor always has 24 sample slots available. You can choose to display fewer sample slots at a larger size. When you do, scroll bars let you move around among the sample slots. 3 X 2—Specifies a 3 x 2 array of sample slots. (The default: 6 windows.) 5 X 3—Specifies a 5 X 3 array of sample slots. (15 windows.) 6 X 4—Specifies a 6 X 4 array of sample slots. (24 windows.) Apply—Applies the current settings, except for changes to the Slots group, without leaving the Material Editor Options dialog. This is useful when you adjust lighting values for the sample slots. OK—Closes the dialog and applies any changes you made. Cancel—Closes the dialog and cancels any changes you made, including changes you applied with the Apply button. Select By Material You can also change the selection by choosing other objects. If you change the selection, you must then click Assign Material To Selection (page 2–1441) to apply the active material to newly selected objects. Select By Material Material Editor > Select By Material Material Editor menu > Utilities menu > Select Objects by Material Select By Material allows you to select objects in the scene, based on the active material in the Material Editor. This button is unavailable unless the active sample slot contains a material used in the scene. Get Material Clicking this button displays a Select Objects dialog (page 1–78). All objects that have the selected material applied to them are highlighted in the list. Get Material displays the Material/Map Browser (page 2–1412) to allow you to choose a material (page 3–971) or map (page 3–968). Note: Hidden objects don’t appear in this list, even if the material is applied to them. However, in the Material/Map Browser (page 2–1412), you can choose Browse From: Scene, turn on By Object, and then browse from the scene. This lists all objects in the scene, hidden or unhidden, along with their assigned materials. Procedure To select objects that have the same material applied: 1. Click a sample slot that contains a material in the scene. White corner brackets indicate materials that are in the scene. 2. Material Editor > Get Material Material Editor menu > Material menu > Get Material Procedures To get a material from a scene: 1. Click a sample slot to make it active. Be careful not to click the sample slot of a material you want to use later. 2. On the Material Editor toolbar, click Get Material (page 2–1439). A modeless Material/Map Browser (page 2–1412) is displayed. 3. In the Browse From group box at the upper left, make sure that either Selected or Scene is chosen. Click Select By Material (page 2–1439) in the Material Editor. The Selected option lists only materials in the current selection. If no objects are selected, the list of materials is blank. This button is unavailable unless the active sample slot contains a material in the scene. The Scene option lists all the materials currently in the scene. A Select Objects dialog (page 1–78) is displayed. The names of objects with the active material applied are highlighted. 3. Click Select to select objects with the active material applied. 4. In the list of materials, double-click the name of the material you want to get. You can also drag the material name to the sample slot. 1439 1440 Chapter 16: Material Editor, Materials, and Maps The material you chose replaces the previous material in the active sample slot. 5. Double-click the name of the map type (not a material type) you want to use, or drag the map to a sample slot. Warning: When you get a material from a scene, initially it is a hot (page 3–953) material. To get a material from a library: 1. The sample slot now contains a standalone map not associated with material parameters. 6. Use the Material Editor to modify the map as you would any other map. On the Material Editor toolbar, click Get Material (page 2–1439). By default, the sample slots distinguish maps from materials by displaying maps as 2D surfaces without lighting or shading. A modeless Material/Map Browser (page 2–1412) is displayed. 2. In the Browse From group box at the upper left, To remove a material from an object: make sure that Material Library is chosen. If you have opened a library, the list of materials shows the contents of the library. If you haven’t opened a library, click Open in the file area of the Browser. A file dialog is displayed. Choose a library. After you open the library, the list of materials updates to show the library contents. Note: Open also lets you get materials from a 3ds Max scene (a .max file). 3. In the list of materials, double-click the name On the Material Editor toolbar, click Get Material. The Material/Map Browser appears. 2. Drag the entry NONE from the top of the list in the Browser to the object. The object now has no material applied to it. Put Material to Scene of the material you want to get. Material Editor > Put Material to Scene You can also drag the name of the material to the sample slot. Material Editor menu > Material menu > Put to Scene The material you chose replaces the previous material in the active sample slot. To create a standalone map tree: 1. Activate a sample slot. 2. 1. On the Material Editor toolbar, click Get Material. 3. In the Material/Map Browser (page 2–1412), make sure Browse From is set to New. 4. In the Show group box, turn off Materials so only maps are displayed in the list. Put Material To Scene updates a material in the scene after you edit the material. Put Material To Scene is available only when: • The material in the active sample slot has the same name as a material in a scene. • The material in the active sample slot is not hot. In other words, this command is intended to fit into the overall sequence of handling materials: • You create a hot material either by applying it to objects in the scene or by getting it from the scene. • You make a copy of the material. • You make changes to the copy of the material. Assign Material to Selection • You update the scene by putting the changed material back into the scene. Notes apply a mapped material with Show Map In Viewport (page 2–1445) active to a parametric object, that object’s Generate Mapping Coords option is turned on if necessary. • If you apply a mapped material to a parametric object whose Generate Mapping Coords option is off, the software automatically turns on mapping coordinates at render time. In addition, if you apply a mapped material with Show Map in Viewport active to an object, that object’s Generate Mapping Coords option is turned on if necessary. The Show Map In Viewport flag is saved with individual materials, so when you drag mapped materials from the modeless Browser (page 2–1412) onto objects in your scene, the mapping appears in the viewports. • The Show Map In Viewport flag is now saved with individual materials, so you can drag mapped materials from the modeless Browser onto objects in your scene, and the mapping appears in the viewports. Procedure The Undo command works for material assignment. To apply a material to objects in a scene: 1. Select the sample slot that contains the material you want to apply. 2. Select the objects you want to apply the material Procedure To put a material back into a scene: • On the Material Editor toolbar, click Put Material To Scene (page 2–1440). The material in the active sample slot is now a hot material (page 3–953). Assign Material to Selection Material Editor > Assign Material to Selection Material Editor menu > Material menu > Assign to Selection Assign Material to Selection applies the material in the active sample slot to the currently selected object or objects in the scene. At the same time, the sample slot becomes hot (page 3–953). If you apply a mapped material to a parametric object whose Generate Mapping Coords option is off, the software automatically turns on mapping coordinates at render time. In addition, if you to. 3. Drag from the sample slot to the objects. If more than one object is selected, you are asked whether you want to apply to the single object or to the whole selection. You can also apply materials by clicking Assign Material To Selection (page 2–1441) on the Material Editor toolbar. Warning: When you apply a material to an object or selection, that material becomes a hot material (page 3–953). When you change the material’s properties, the scene immediately updates to reflect those changes. Any object with that material will change its appearance, not just the objects in the current selection. When a material is hot, its sample slot is displayed with white corner brackets. To make a material no longer hot so it doesn’t change the current scene, click Make Material Copy (page 2–1442). 1441 1442 Chapter 16: Material Editor, Materials, and Maps Reset Map/Mtl to Default Settings Make Unique (Material Editor) Material Editor > Make Unique Material Editor > Reset Map/Mtl to Default Settings Reset Map/Mtl to Default Settings resets the values for the map or material in the active sample slot. The material colors are removed and set to shades of gray. Glossiness, opacity, and so on are reset to their default values. Maps assigned to the material are removed. If you are at a map level, this button resets the map to default values. Reset changes the name (page 2–1448) only when this field names a material used in the scene. Make Material Copy Material Editor > Make Material Copy Material Editor menu > Material menu > Make Material Copy Make Material Copy "cools" (page 3–924) the current hot (page 3–953) sample slot by copying the material to itself. The sample slot is no longer hot, but the material retains its properties and name. You can adjust the material without affecting it in the scene. Once you’ve got what you want, you can click Put Material to Scene (page 2–1440) to update the material in the scene and change the sample slot to hot again. Make Unique makes a map instance (page 3–957) into a unique copy. It also makes an instanced sub-material into a unique, standalone sub-material. It gives the sub-material a new material name. A sub-material is a material within a Multi/Sub-Object material (page 2–1594). Using Make Unique prevents changes to the top-level material instance from affecting the sub-material instance within the Multi/Sub-Object material. You can also use Make Unique at the map level, when a map is instanced to different components of the same material. Note: If you drag an instanced map to a Material Editor sample slot, the Make Unique button will not be available, because it is not clear from the context what it would be unique relative to. Instead, you need to bring one of the parent maps or materials into the Material Editor, browse down into the map, and then make the map unique relative to that parent. Procedure Example: Create an instanced sub-material: 1. Create a box and a sphere. 2. Open the Material Editor. 3. Choose a sample slot, click the Material Type button, choose Multi/Sub-Object in the Material/Map Browser, and then click OK. 4. Select the box, and then apply the new Multi/Sub-Object material to it. Put to Library 5. Drag one of the Sub-Material buttons from the Material Editor to the sphere. 6. Choose a different sample slot, and use the Pick Material From Object button to get the sub-material applied to the sphere. At this point, the material applied to the sphere and the sub-material are instances of each other. 7. Go to the parameters for the instanced sub-material by clicking its Sub-Material button. 8. The Make Unique button is now available. Click it to make the sub-material unique again, and assign it a new material name. Make Unique is not available for the top-level instance of the sub-material. Procedure To save a material in a library: 1. Click to select the sample slot that has the material you want to save. 2. On the Material Editor toolbar, click Put To Library (page 2–1443). 3. A Put To Library dialog (page 2–1455) is displayed. 4. Either change the material name or leave it as is, and then click OK. The material is saved in the currently open library. If no library is open, a new library is created. You can save the new library as a file using the Material/Map Browser (page 2–1412) file controls. Material ID Channel Put to Library Material Editor > Put to Library Material Editor menu > Material menu > Put to Library Put to Library adds the selected material to the current library. A Put to Library dialog (page 2–1455) is displayed, which lets you enter a name for the material that’s different from the one you used in the Material Editor. Material Editor > Material ID Channel The buttons on the Material ID Channel flyout tag a material as a target for a Video Post (page 3–311) effect or a rendering effect (page 3–218), or for storing with a rendered image saved in RLA (page 3–630) or RPF (page 3–631) file format (so that the channel value can be used in a post-processing application). The material ID value is the counterpart of a G-buffer value (page 3–946) for objects. The material becomes visible in the material library display in the Material/Map Browser (page 2–1412). The material is saved to the library file on disk. (You can also save a library by using the Save button in the Material/Map Browser.) Zero (0), the default, indicates that no material ID channel is assigned. 1443 1444 Chapter 16: Material Editor, Materials, and Maps A value from 1 to 15 means to apply a Video Post or rendering effect that uses this channel ID to this material. For example, you might want a material to glow wherever it appears in the scene. The material is in the Material Editor and the glow comes from a rendering effect. First, you add a Glow rendering effect (page 3–226) and set it up so that it operates on ID 1. Use Material ID Channel to give the material an ID number of 1, then apply the material to objects in the scene in the usual way. To save the channel data with the rendering, use the RLA or RPF format. Warning: The mental ray renderer (page 3–78) does not recognize Z-depth with G-buffers. G-buffer data is saved on a single layer. Also, the mental ray renderer does not support the following effects: • Glow lens effect (page 3–226) (rendering effect) • Ring lens effect (page 3–230) (rendering effect) • Lens effects Focus filter (page 3–362) (Video Post) Procedure To assign a material ID channel to a material: • Choose a channel number from the Material ID Channel flyout (page 2–1444). Note: Giving a material a nonzero ID channel number tells the renderer to generate a material ID channel containing that value. This information is stored in images only if you save the rendered scene in RLA or RPF format. However, the ID channel data is available to rendering effects at render time. Material ID Channel Flyout Material Editor > Tool buttons > Material ID Channel flyout The Material ID Channel (page 2–1443) flyout in the Material Editor (page 2–1409) lets you assign a material ID to the material. The ID value can associate a Video Post effect (page 3–311) or rendering effect (page 3–218) to objects assigned this material. The channel ID can also be saved if you render to a file in the RLA (page 3–630) or RPF (page 3–631) format. Saving the material ID in an image file lets you use the channel in post-processing applications, such as Autodesk Combustion. Zero (0), the default, indicates that no material ID channel is assigned. A value from 1 to 15 says that an effect that uses this material ID will be applied to this material. Show Map in Viewport Show Map in Viewport Material Editor > Show Map in Viewport Material Editor menu > Material menu > Show Map in Viewport Left: Map shown on sample cube Right: Map shown in a viewport Show Map In Viewport displays mapped materials on the surfaces of objects in viewports with the interactive renderer (page 3–1030). The following conditions must be met for mapped materials to display in the viewport: Note: With the software display driver (page 3–840), viewports don’t accurately display a map with transparency that has UV tiling or mirroring. Also, this driver cannot display a map on a faceted material. The state of this button is saved with the material in the library. When you apply a mapped material while Show Map In Viewport is active, the object’s Generate Mapping Coords. check box is turned on. This means that you can drag mapped materials from the Material Library in the Browser over objects in your scene, and have the mapped material appear in the viewports. Tip: You can turn Show Map In Viewport on or off for all materials by choosing Views menu > Activate/Deactivate All Maps. Note: In the Material/Map Browser (page 2–1412) and Material/Map Navigator (page 2–1447), icons of materials and maps for which Show Map in Viewport is on are red, as shown in the following example: • Mapping coordinates (page 3–967) must be applied to the object. This is already the case with most primitive objects, which by default have Generate Mapping Coords on at creation. If an object doesn’t have mapping coordinates, you can turn this on, or apply a mapped material to the object (if it has a Generate Mapping Coords check box), or apply a UVW Map modifier (page 1–922) or an Unwrap UVW modifier (page 1–878). 3D Maps in Viewports • A mapped material must be applied to the object. Show Map In Viewport works for 3D procedural maps as well as 2D maps. • Show Map In Viewport must be on, either at the level of the material that contains the map (page 3–968), or at the top level of the material. 3D map display in viewports is not necessarily accurate. To improve the 3D preview, you can use the Material Editor Options dialog (page 2–1436) to set the 3D Map Sample Scale to equal a main dimension of the object you are applying the map to. For example, if you want to use the planet map Tip: Displaying mapped materials in a viewport can slow performance. If you don’t need to view the map, turn off its viewport display. 1445 1446 Chapter 16: Material Editor, Materials, and Maps on a sphere with a radius of 20, change the map scale from 100 (the default) to 20. Particle Age and Particle MBlur maps do not preview in viewports. To turn off interactive texture display: • Turn off Show Map In Viewport. The object is shaded but the map no longer appears. Multiple Maps in Viewports Viewports can display multiple maps. For multiple map display, the display driver must be OpenGL (page 3–841) or Direct3D (page 3–844). The software display driver (page 3–840) does not support multiple map display. The composite map (page 2–1688) and mix map (page 2–1689) support multiple map display. In addition, turning on Show Map In Viewport at the top level of a standard material (page 2–1465) lets you view maps on both the diffuse and opacity components (though not on other mapped components). Procedures To view maps interactively: Show End Result Material Editor > Show End Result Material Editor menu > Material menu > Show End Result Show End Result lets you look at the material at the level you’re on instead of looking at the end result of all the other maps (page 3–968) and settings. When this button is off, the sample slot shows only the current level of the material. This tool is useful when you are working with compound materials (page 3–922). It would be difficult to see exactly what effect you’re creating on a particular level if you didn’t have the ability to turn off the display of the other levels. 1. Select an object. 2. In the object’s creation parameters, make sure that Generate Mapping Coords. is on. (If this option isn’t enabled, the object can’t be mapped.) If the object type does not have a mapping coordinates check box, apply a UVW Map (page 1–922) modifier. 3. In the Material Editor, apply the mapped material to the object. 4. Turn on Show Map In Viewport. The map appears on objects assigned the material in all shaded viewports. Now when you adjust a map, the viewports update to display the adjustments. Go to Parent Material Editor > Go to Parent Material Editor menu > Navigation menu > Go to Parent Go To Parent moves up one level in the current material. This button is available only when you are not at the top level of a compound material (page 3–922). You can tell you’re at the top level when this button is unavailable and the name in the edit field matches the name in the Material Editor title bar. A typical situation is one in which you have a material with a Diffuse map. The Material level is the parent and the Diffuse map is the child. The Go To Parent button becomes available at the level of the Diffuse map. Go Forward to Sibling Tip: You can also navigate through the levels of a material with the Material/Map Navigator (page 2–1447). Go Forward to Sibling Material Editor > Go Forward to Sibling Material Editor menu > Navigation menu > Go Forward to Sibling Go Forward To Sibling moves to the next map or material at the same level in the current material. This button is available only when you are not at the top level of a compound material (page 3–922), and there is more than one map or material at the current level. A typical situation is one in which you have a material with a Diffuse map, a Bump map, and a Glossiness map. The Material level is the parent and the Diffuse map, Bump map, and Glossiness map are its children. Go Forward To Sibling becomes available at the level of the children and allows you to go from one to another. material or map listed in the Navigator. Conversely, as you navigate the material in the Material Editor, the current level is highlighted in the Navigator. The selected material or map becomes active in the sample slot, while the rollouts for the selected material or map are displayed below. You can also drag from the Navigator to any valid sample slot or button in the user interface. Use the view buttons at the top to change the display. The list displayed in the Navigator is similar to the one displayed in the Track View hierarchy. See also Material/Map Browser (page 2–1412) Interface You can also navigate through the levels of a material with the Material/Map Navigator (page 2–1447). Material/Map Navigator Material Editor > Material/Map Navigator The Material/Map Navigator is a modeless dialog that provides quick navigation through the hierarchy of maps (page 3–968) in a material (page 3–971), or of sub-materials in a compound material (page 3–922). The Navigator displays the material and maps in the currently active sample slot. You can navigate the hierarchy of the current material by clicking the Note: Icons of materials and maps for which Show Map in Viewport (page 2–1445) is on are red. Also, the names of instanced (page 3–957) materials and maps appear in boldface. Both of these effects are shown in the following illustration: 1447 1448 Chapter 16: Material Editor, Materials, and Maps Pick Material From Object (Eyedropper) Material Editor > Pick Material From Object Material Editor menu > Material menu > Pick from Object The view buttons are as follows: V iew List—Displays the materials and maps in list format. Blue spheres are materials. Green parallelograms are maps. The green parallelograms turn red if Show Map in Viewport is on for a material. View List + Icons—Displays the materials and maps as small icons in a list. V iew Small Icons—Displays the materials and maps as small icons. As you move the mouse over the icons, tooltip labels show you the name of the material or map. View Large Icons—Displays the materials and maps as large icons. As you move the mouse over the icons, tooltip labels show you the name of the material or map. The large icons are labeled with the name of the material or map and are displayed using progressive refinement. That is, samples are rendered quickly, with large pixels, then rendered a second time in greater detail. Pick Material From Object lets you select a material from an object in the scene. Click the eyedropper button, and then move the eyedropper cursor over the objects in the scene. When the eyedropper cursor is over an object containing a material, it fills with "ink" and a tooltip with the name of the object pops up. Click the object. The material is placed in the active sample slot. If the material is already in the active sample slot, the eyedropper has no effect. If the eyedropper cursor is over an editable mesh (page 1–996) with faces selected at the sub-object level, and the mesh has a Multi/Sub-Object material (page 2–1594) applied to it, then the eyedropper picks up the sub-material. However, if the selected faces have more than one sub-material assigned to them, then the eyedropper picks up the entire Multi/Sub-Object material. Name Field (Materials and Maps) Material Editor > Material Name field The Name field displays the name of the material or map. Default material names are "01 Default," and so on, the number changing to reflect the material’s sample slot. Maps are named "Map #1," and so on. You can edit this field to change the name of the material in the active sample slot. You can also edit Type Button (Materials and Maps) the names of maps and sub-materials assigned at lower levels of the map or material hierarchy. The name of the material is not a file name: it can contain spaces, numbers, and special characters. It can be of any length. Note: In releases prior to 3ds Max 4, material names were limited to 16 characters. As of 3ds Max 4, you can assign material names of arbitrary length. This field also functions as a drop-down list. At the top level, it shows only the material or map name. At lower levels of the hierarchy, drop the list down to see the names of ancestors to the map or material. The top level is at the top of the list, the current level is at the bottom, and intermediate levels appear between them. Procedure To give a material a different name: • Edit the name field that appears below the Material Editor toolbar. The name of the active material appears in the title bar of the Material Editor dialog. Type Button (Materials and Maps) Material Editor > Type button Material Editor menu > Material menu > Change Material/Map Type Click the Type button to display the Material/Map Browser (page 2–1412) and choose which material type or map type to use. When changing a material’s type, the original material type is replaced unless you choose a compound material (page 3–922), in which case a Replace Material dialog (page 2–1456) is displayed. The Replace Material dialog lets you choose between discarding the original material or using it as a sub-material within the new material. For a standalone map (a map at the top level), clicking the Type button lets you change the map type instead of the material type. However, you can’t use this button to make a map standalone. To make a standalone map, you have to click Get Material (page 2–1439) and choose a map from the Browser it displays. When you change the type of a standalone map, a Replace Map dialog (page 2–1456) is displayed. The Replace Map dialog lets you choose between discarding the original map or using it as a sub-map within the new map. Animating Materials This topic provides some suggestions about how to animate materials. Animating Basic Materials In general, you animate a basic material by changing its parameters in different keyframes while Auto Key is active. 3ds Max interpolates values between keyframes, as it does when you animate transforms and modifiers. Be aware that the tracks for a material assigned to an object are distinct from the material tracks that belong to the Material Editor: animating a material in the Material Editor affects the scene only if the material is hot (page 3–953). Animating Mapped Materials As with basic materials, you can create animation keys for map parameters. The noise parameters and the Noise map (page 2–1674) itself provide the Phase parameter specifically for animating the noise function. You can also produce an animated material by applying an animated bitmap as a map. This 1449 1450 Chapter 16: Material Editor, Materials, and Maps automated bitmap can be an AVI (page 3–609) or MOV (page 3–621) file, or an image sequence in the form of an IFL (page 3–616) file. Procedures Changing One Material into Another 2. In the Create Material Preview dialog, set the Probably the easiest way to animate the change of one material into another is to create a Blend material (page 2–1588), make the two other materials its sub-materials, and then animate its Mix Amount parameter. To create a preview of an animated material: 1. Choose Make Preview from the flyout. preview conditions you want, and then click OK. The Material Editor creates the preview. To play back a preview of an animated material: 1. Choose Play Preview from the flyout. Preview and Playback When you animate a material, or use an animated bitmap in a material, you can create and view a preview of this material before you decide to use it in a fully rendered animation. See also Creating and Playing Animated Material Previews (page 2–1450) The Material Editor starts the Windows Media Player with the active preview movie loaded. 2. Click Play to view the preview movie. To save a preview movie under a different name: 1. Choose Save Preview from the flyout. The Material Editor displays a file save dialog. 2. Enter a new name for the preview, and then click OK. Synchronizing an Animated Bitmap with the Scene (page 2–1450) Creating and Playing Animated Material Previews You can create a preview movie of an animated material. Use Make Preview (page 2–1434) in the Material Editor. Clicking this button displays the Create Material Preview dialog (page 2–1452), which like the Renderer has controls for which frames to render, playback speed, and output size. The preview movie is saved in the \previews subdirectory in a file called _medit.avi. Each time you create a new preview, the Material Editor overwrites this file. To keep a preview movie on hand, save it under a different name by using the Save Preview button on the same flyout as Make Preview. Synchronizing an Animated Bitmap with the Scene Material editor > Bitmap map > Time rollout Bitmaps (page 2–1631) have a Time rollout with controls that let you synchronize an animated bitmap with scene animation. Interface Copy (Instance) Map Dialog Start Frame—The frame number of the 3ds Max scene at which the bitmap animation begins to play. Playback Rate—Sets the bitmap’s playback rate. This value is a multiplier: 1.0 is one bitmap frame per scene frame, 2.0 is twice as fast, 3.33 is 1/3 as fast, and so on. Default=1.0. Sync Frames to Particle Age—When on, the software synchronizes the frames of a bitmap sequence to the age of particles to which the map is applied. With this effect, each particle displays the sequence from the start when it is born, rather than being assigned whichever frame is current. Default=off. When using Particle Flow, assign the material containing the Bitmap map to a Material Dynamic operator. For more details and a procedure, see Material Dynamic Operator (page 2–191). Material Editor Subdialogs Copy (Instance) Map Dialog Material Editor > Maps rollout > Drag one map button to another. The Copy (Instance) Map dialog is displayed when you copy a map by dragging and dropping a map button. It gives you the choice of copying the map, making the newly assigned map an instance of the one you dragged, or swapping maps. You can drag map buttons in the Maps rollout, in the Basic Parameters rollout, or from one rollout to the other. Tip: Usually when you use the same map for mental ray renderer. multiple parameters, such as both self-illumination and opacity, it is easier to work with an instance rather than a copy. End Condition group Interface Note: This functionality is not supported by the Determines what happens after the last frame of the bitmap animation if the animation is shorter than the scene. Loop—Causes the animation to repeat over and over again from the beginning. Ping-Pong—Causes the animation to be played forward and then backward repeatedly, making every animated sequence "loop smoothly." Hold—Freezes on the last frame of the bitmap animation. Instance—Makes an instance of the map you dragged. The newly assigned map is not independent. Adjusting the parameters of one map or the other changes both of them. Copy—Copies the map you dragged. The newly assigned map is a copy whose parameters you can adjust independently. 1451 1452 Chapter 16: Material Editor, Materials, and Maps Swap—Swaps the maps. This option isn’t displayed Interface when you drag from one rollout to another. Copy or Swap Colors Dialog Material Editor > Basic Parameters rollout or Extended Parameters rollout or both > Drag one color swatch to another. The Copy or Swap Colors dialog is displayed when you copy a color by dragging and dropping a color swatch. It gives you the choice of copying the color or swapping the colors, trading one for the other. Interface Swap—Swaps the colors. Copy—Copies the color you dragged. Preview Range group Create Material Preview Dialog Active Time Segment—Renders the active time segment (page 3–904). Custom Range—Renders a custom range from the Material Editor > Make/Play/Save Preview flyout > Make Preview The Create Material Preview dialog is displayed when you click Make Preview (page 2–1434) to preview an animated material. By default, the preview is saved in the \previews subdirectory with the name _medit.avi. You can use Save Preview to give the preview a different name so it won’t be overwritten the next time you use Make Preview. start to the end frame you specify in the spinners below. Frame Rate group These controls specify the playback rate. Every Nth Frame—Renders a regular sampling of the animation. For example, a value of 8 includes only every eighth frame in the preview. Default=1 (every frame). Playback FPS—Specifies the playback rate in frames per second. Default=30 (full speed). Duplicate Name Dialog (Material Library) Image Size group Percent of Output—Specifies the resolution of the preview. This value is a percentage; 100 percent has a resolution of 101 x 99 pixels (the size of a sample slot in the 3 x 2 array). Default=100. Duplicate Name Dialog (Material Library) Material Editor > Get Material or Type button > Browse From group > Select Mtl Library. > File group > Open material library. > File group > Merge > Merge Material Library dialog > Open another material library or a 3ds Max scene. > Merge dialog > Select materials to merge > OK File > XRef Objects > XRef Objects dialog > Create XRef Record from File > Choose a file. > Select objects to XRef. > Duplicate Name dialog The Duplicate Name dialog is displayed if, after you click OK in the Merge dialog (page 2–1453), one or more materials to merge have the same name as materials in the open library. If this dialog appears while you are using XRef Objects (page 3–394), in the XRef Objects dialog you can see the updated material name in the “Scene Name” column, while the original name in the source scene appears in the “Source Name” column. Interface make it unique before you merge it with the open (current) library by clicking the Merge button. Apply to All Duplicates—If you turn this on before you use the buttons, all subsequent incoming materials with duplicate names are treated the same way as the current one, and no further alert messages are displayed. Use this option when you know that you’ve got several duplicate materials, and don’t need constant reminders. This check box is unavailable if you edit the material name. Merge—Merges the material with the open, current library. This button is unavailable unless you edit the duplicate name to be a different, unique name. Skip—Skips this material and doesn’t merge it with the open, current library. Delete Old—Deletes the "old" material in the open, current library and replaces it with the material to merge. Auto-Rename—Click to have 3ds Max automatically rename the material by appending a sequence number to the duplicate material name. Cancel—Cancels further merging of materials with duplicate names. If you have already merged some materials, they appear in the open, current library. Merge Dialog (Material Library) Material Editor > Get Material or Type button > Browse From group > Select Mtl Library. > File group > Open material library. > File group > Merge > Merge Material Library dialog > Open another material library or a 3ds Max scene. Material name—At the right, the dialog displays a duplicate material name. You can edit the name to The Merge dialog displays a list of materials to merge with the open library. The materials are from a different material library or from a 3ds Max or VIZ Render (DRF (page 3–527)) scene. 1453 1454 Chapter 16: Material Editor, Materials, and Maps Procedures Material list—Shows the names of all materials in To merge all materials: the library or scene. • Click All. All—Selects all materials in the list. To select a single material to merge: None—Deselects all materials in the list. • Click the material’s name. To select materials to merge one by one: 1. Click a material’s name. 2. Hold down Ctrl , and click other material Merge Material Library Dialog Material Editor > Get Material or Type button > Material/Map Browser > Browse From group > Select Mtl Library. > File group > Open material library. > File group > Merge names. To select a group of contiguous materials to merge: 1. Click a material’s name. 2. Hold down Shift , and click another material’s name. The dialog selects the two materials you clicked, and all materials whose names lie between the two. The Merge Material Library dialog lets you merge materials in the open material library with materials in another material library or another 3ds Max or VIZ Render (DRF (page 3–527)) scene. Interface Interface This is a standard Windows file dialog. It lets you select either material library (.mat) files, 3ds Max (.max), or VIZ Render (DRF (page 3–527)) scene files. When you click OK, a further Merge dialog (page 2–1453) is displayed. This lets you select by name the materials you want to merge with the open library. Put to Library Dialog Interface Put to Library Dialog Material Editor > Put To Library The Put To Library dialog is displayed when you want to save the material in an active sample slot (page 2–1420) into a material library file. It lets you change the material’s name before you save it. Interface Time Output group These controls specify how many frames to render. Name—Shows the name of the material to save. You can edit this name to save it under a different name. Render Map Dialog Material Editor > Right-click a sample slot. > Render Map > Render Map dialog The Render Map dialog is displayed when you use Render Map on the Sample Slots Right-Click Menu (page 2–1422) to render the map displayed in a sample slot Single—Renders a single frame. Every Nth Frame—Renders a regular sampling of the animation. For example, a value of 8 includes only every eighth frame in the preview. Default=1 (every frame). Active Time Segment—Renders the active time segment (page 3–904). Range—Renders a custom range from the start to the end frame you specify in the spinners below. Dimensions group These controls specify the size of the rendered frames, in pixels. Width—Specifies the frame width, in pixels. Height—Specifies the frame height, in pixels. Output group These controls let you save the rendered map to a file. 1455 1456 Chapter 16: Material Editor, Materials, and Maps Files—Click to display a file dialog that lets you specify where to save the rendered map. When you click Save in the file dialog, you might see an additional dialog that gives you options specific to the file type you chose. These are the file formats available for a rendered map: Replace Map Dialog Material Editor > Go to a map level or a standalone map. > Type button > Material/Map Browser > Choose a compound map. Kodak Cineon (page 3–610) The Replace Map dialog is displayed when you change a map type to any type of map that can have sub-maps. It gives you the choice of replacing the original ("old") map completely, or using the original map as a sub-map of the new map. Encapsulated Postscript (page 3–612) Interface AVI (page 3–609) BMP (page 3–610) JPEG (page 3–620) PNG (page 3–628) MOV (QuickTime) (page 3–621) SGI (page 3–633) RLA (page 3–630) RPF (page 3–631) Targa (page 3–633) Discard old map—Discards the old map. TIFF (page 3–634) Keep old map as sub-map—Retains the old map as Save to File—When on, the rendered map is saved to a file. When off, the map is rendered only to a rendered frame window (page 3–5). This check box is unavailable unless you use Files to specify a file name, when it defaults to on. a sub-map. Replace Material Dialog Material Editor > Type button > Material/Map Browser > Choose a compound material. File name field—Displays the name of the file you chose. Render—Renders the map to a rendered frame window (page 3–5), and to a file if you chose one. The Replace Material dialog is displayed when you change a material type to one of the compound material types (page 2–1587). It gives you the choice of replacing the original ("old") material completely, or using the original material as a sub-material of the new material. Update Scene Materials Dialog Interface Interface Discard old material—Discards the old material. Keep old material as sub-material—Retains the old material as a sub-material. Update Scene Materials Dialog Material Editor > Get Material > Material/Map Browser > Update Scene Materials from Library > Update Scene Materials dialog The Update Scene Materials dialog lets you use a library to update materials in the scene. It appears only when you click Update Scene Materials From Library in the Material/Map Browser (page 2–1412), and the scene contains materials that have the same name as materials in the library. Material name list—Shows the materials that have the same name in the library and in the scene. All—Selects all material names in the list. None—Deselects all material names in the list. Procedures To update a material in the scene and replace it with a material from the library: • In the Update Scene Materials dialog, select the name of the material, and then click OK. Materials Rendering menu > Material Editor > Type button > Material/Map Browser > In Show group, turn off Maps. > Material types are listed. • In the Update Scene Materials dialog, make sure the name of the material is not selected, and then click OK. Materials create greater realism in a scene. A material describes how an object reflects or transmits light. You assign materials to individual objects or selection sets; a single scene can contain many different materials. • Click Cancel. Different materials have different uses. To leave a material in the scene unchanged, do one of the following: 1457 1458 Chapter 16: Material Editor, Materials, and Maps • Standard material (page 2–1465) is the default material. This is a versatile surface model with a large number of options. • • Raytrace material (page 2–1512) can create fully raytraced reflections and refractions. It also supports fog, color density, translucency, fluorescence, and other special effects. Other material types fall into the category of Compound materials (page 2–1587). • Architectural material (page 2–1535) provides a physically accurate material. It is especially intended for use with the default scanline renderer and radiosity (page 3–51). • mental ray materials (page 2–1543) are provided for use with the mental ray renderer (page 3–78). • Matte/Shadow material (page 2–1584) is specifically for making an object into a matte object (page 3–971) that reveals the current environment map (page 3–934). A matte object is effectively invisible in the scene, but it can receive shadows cast onto it from other objects. • Shell material (page 2–1600) is for storing and viewing rendered textures (page 3–144). • Advanced Lighting Override material (page 2–1601) is used to fine-tune the effects of a material on radiosity solutions (page 3–51) or the Light Tracer (page 3–44). This material is not required for calculating advanced lighting, but it can help improve the result. Note: The Architectural material has its own controls for adjusting advanced lighting. • Lightscape material (page 2–1604) helps support import and export of data from the Lightscape product. • Ink ’n Paint material (page 2–1605) gives a cartoon appearance to objects. • The DirectX 9 Shader material (page 2–1613) enables you to shade objects in viewports using DirectX 9 (DX9) shaders. To use this material, you must have a display driver that supports DirectX 9, and you must be using the Direct3D display driver. The XRef material (page 2–1616) lets you externally reference a material in a different scene file. Compound Materials Compound materials combine other materials in some way. • Blend (page 2–1588) material mixes two materials on a single side of a surface. • Composite (page 2–1589) material mixes up to 10 materials, using additive colors, subtractive colors, or opacity mixing. • Double-Sided (page 2–1591) material lets you assign different materials to the front and back faces of an object. • Morpher (page 2–1592) material uses the Morpher modifier (page 1–729) to manage multiple materials over time. • Multi/Sub-Object (page 2–1594) material uses the sub-object level to assign multiple materials to a single object, based on material ID values. • Shellac (page 2–1597) material superimposes one material on another using additive composition. • Top/Bottom (page 2–1599) material lets you assign different materials to the top and bottom of faces of an object. Procedures To get a material: 1. Click Get Material on the Material Editor toolbar. The Material/Map Browser (page 2–1412) is displayed. 2. Double-click a material type (not a map type) in the list, or drag the material to a sample slot. SuperSampling Rollout The Material Editor replaces the original material. To change a material type: 1. At the level of a material, click the Type button below the Material Editor toolbar. A modal Material/Map Browser (page 2–1412) is displayed. If you were at a material when you clicked Type, the Browser lists only materials (if you were at a map, it lists only maps). 2. Choose a material from the list, and then click OK. If you choose a compound material, a Replace Material (page 2–1456) dialog is displayed. This dialog lets you choose whether to keep or discard the original material. The Material Editor now displays controls for the new material. SuperSampling Rollout Material Editor > Architectural material > SuperSampling rollout use of many materials, by letting you control the supersampling at a global level from the Rendering dialog. You can override this locally by turning off Use Global Settings. It also gives you file compatibility and workflow replication with DRF files imported from VIZ Render. Note: SuperSampling settings are ignored by the mental ray Renderer (page 3–78), which has its own sampling method. Use supersampling when you notice artifacts in your final renderings. For example, a thin bump map might produce scintillating, jagged bumps that supersampling can correct. Supersampling requires considerably more time to render, although it does not necessarily require any additional RAM. Note: Supersampling is not processed when you turn off Antialiasing in the production renderer (page 3–27). You can also globally disable supersampling for all materials using the parameters for the default scanline renderer (page 3–38). Globally disabling supersampling can speed up test renderings. Material Editor > Raytrace material > SuperSampling rollout Material Editor > Standard material > SuperSampling rollout The SuperSampling rollout is used by Architectural, Raytrace, and Standard. It lets you choose a supersampling method (page 3–1018). Supersampling performs an additional antialiasing (page 3–907) pass on the material. This requires more time but can improve image quality. Supersampling is especially helpful when you need to render very smooth specular highlights, subtle bump mapping, or high resolutions. In 3ds Max the default is to apply a single supersampling method to all materials in the scene. This feature gives you more control over your scenes, especially larger models that make Supersampling uses smaller sampling points, and returns averaged values to increase the antialiasing effect. Supersampling and Antialiasing Supersampling is one of several antialiasing techniques. Textures, shadows, highlights, and 1459 1460 Chapter 16: Material Editor, Materials, and Maps raytraced reflections and refractions all have their own preliminary antialiasing strategies. Supersampling is an additional step that provides a "best guess" color for each rendered pixel. The supersampler’s output is then passed on to the renderer, which performs a final antialiasing pass. Name Description Hammersley Spaces samples regularly along the X axis, but along the Y axis it spaces them according to a scattered, "quasi random" pattern. Depending on Quality, the number of samples can range from 4 to 40. This method is not adaptive. A single rendered pixel represents an area of the scene’s geometry. The pixel can stand in for multiple colors, especially when it appears at the edge of an object or a region of color. This is where aliasing effects occur. MAX 2.5 Star The sample at the center of the pixel is averaged with four samples surrounding it. The pattern is like the fives on dice. This is the supersampling method that was available in 3ds Max 2.5. When supersampling is turned off, 3ds Max simply looks at the center of the geometry covered by the pixel, and uses that for the pixel color. Regular sampling, as performed by the Adaptive Uniform and MAX 2.5 Star methods, is more prone to aliasing than the irregular patterns performed by the Adaptive Halton and Hammersley methods. When you turn on supersampling, a supersampler performs an additional antialiasing pass on the material. You can choose one of four supersamplers. As the name implies, a supersampler takes additional samples of geometry color in or near each pixel, in order to obtain a more accurate pixel color that is less prone to aliasing error. You can set a variable Quality value for the Adaptive Halton, Adaptive Uniform, and Hammersley methods. Quality can range from 0.0 to 1.0. A quality of 0.0 is minimal, with about four samples per pixel. A quality of 1.0 is the highest possible, with between 36 and 40 samples per pixel. High-quality supersampling is very time consuming. These are the supersampling methods: Another setting for the Adaptive Halton and Adaptive Uniform supersamplers is the Adaptive toggle, which works in conjunction with the Threshold spinner. When Adaptive is on, these methods take fewer samples unless a change in color is greater than the Threshold value. In that case, they take the full number of samples specified by the Quality. To reduce the amount of time the supersampler spends, leave the Adaptive check box on. Name Description Adaptive Halton Spaces samples along both X and Y axes according to a scattered, "quasi random" pattern. Depending on Quality, the number of samples can range from 4 to 40. This method is adaptive, as described below. Adaptive Uniform Spaces samples regularly, from a minimum quality of 4 samples to a maximum of 36. The pattern is not square, but skewed slightly to improve accuracy in the vertical and horizontal axes. This method is adaptive, as described below. mental ray Connection Rollout Interface Turning on Adaptive On can reduce the amount of time required to supersample. Default=on. Threshold—Controls the Adaptive methods. Use Global Settings—When on, the material uses the supersampling options set in the Default Scanline Renderer rollout (page 3–38). Default=on. Visible only for the Adaptive Halton and Adaptive Uniform methods. A change in color greater than the Threshold value causes the adaptive methods to take the full number of samples specified by the Quality. If the color does not change as much, the adaptive method takes fewer samples and does not require as much processing time. Can range from 0.0 to 1.0. Setting Threshold to 0.0 has the same effect as turning off Adaptive On. Default=0.1. Enable Local Supersampling—When on, applies supersampling to the material. Default=off Sampler drop-down list—Lets you choose which supersampling method to apply. The list is not active unless Use Global Settings is turned off. Default=Max 2.5 Star. Supersample Maps—When on, the maps applied to the material are supersampled as well. When off, the supersampler uses pixel averages for maps. This switch is active only when Use Global Settings is turned off. Default=on. Quality—Adjusts the quality of supersampling by controlling the number of samples used for each pixel. At the minimum value, 0.0, four samples are taken per pixel. At the maximum value, 1.0, about 40 samples are taken per pixel (the value varies depending on which shader is active). Range=0.0 to 1.0. Default=0.5. This spinner is unavailable for the Max 2.5 Star method. Adaptive—Visible only for the Adaptive Halton and Adaptive Uniform methods. When on, these methods take fewer samples than the Quality specifies unless samples show a change in color greater than the Threshold value. In that case, they take all the samples specified by the Quality. mental ray Connection Rollout Material Editor > Click a sample slot that contains a material other than a Multi/Sub-Object or a mental ray material. > mental ray Connection rollout The mental ray Connection rollout is available for all types of materials except the Multi/Sub-Object material and the mental ray materials themselves (for which it would be redundant). With this rollout you can add mental ray shading to conventional 3ds Max materials. These effects are visible only when you use the mental ray renderer (page 3–78). Important: The mental ray Connection rollout does not appear unless you have enabled the mental ray extensions by using the mental ray Preferences panel (page 3–837). In addition, you can’t assign shaders to the options in this rollout unless the mental ray renderer is the currently active renderer. 1461 1462 Chapter 16: Material Editor, Materials, and Maps Interface Note: Using a shader for the Surface component can result in a material whose appearance in mental ray renderings is completely different from the appearance it has in the sample slot, viewports, and scanline renderings. Basic Shaders group Surface—Shades the surface of objects that have this material. Default=locked to parent material. In addition to any of the usual 3ds Max materials, the surface component can be assigned the following mental ray materials or shaders: For each kind of shader on this rollout, there is a toggle and a button. • The toggle controls whether the assigned shader is active or not. If no shader is assigned, the toggle has no effect. • The button lets you assign a shader to the component type. Clicking it displays the Material/Map Browser (page 2–1412): assigning a shader is just like assigning a map to a component of a standard material. While a shader is assigned, its name appears on the button. • In addition to the toggle and button, some of the shader types have a lock button to the right. When button is on, the component is inherited from the base material, and you can’t assign a shader. For example, by default the Surface component is locked, and the surface is shaded using the settings of the 3ds Max material (basic parameters, maps, and so on). Turn off this button to replace the base material’s settings with a mental ray shader. Shader Library Bump (page 2–1716) 3ds Max DGS Material (page 2–1580) 3ds Max Dielectric base Dielectric Material (page 2–1719) 3ds Max Edge lume Facade lume Glass lume Glow lume Landscape lume Material to Shader (page 2–1723) 3ds Max Metal lume Ocean lume Opacity base Reflect base Refract base Shader List (page 2–1723) 3ds Max Stain lume Translucency lume Transmat physics Transparency base Two Sided base mental ray Connection Rollout Shader Library Shader Library UV Generator (page 2–1724) 3ds Max DGS Material (page 2–1580) 3ds Max Water Surface lume 3ds Max Wet-Dry Mixer lume Dielectric Material Photon (page 2–1719) Edge lume Glow lume Material to Shader (page 2–1723) 3ds Max Metal lume Photon Basic base Translucency lume Transmat physics XYZ Generator (page 2–1729) 3ds Max Note: Unlike a standard 3ds Max material, if you assign the Surface component a bitmap with tiling turned off, the original surface color does not “show through.” In renderings, you see only the untiled map, and none of the rest of the object. Shadow—Assigns a shadow shader. Default=locked to parent material. The shadow component can be assigned the following shaders: Photon Volume—Assigns a photon volume shader. Photon volume shaders affect how an object’s volume responds to photons; that is, they control how the volume behaves when generating caustics and global illumination. Shader Library Edge Shadow lume Facade lume Glass lume Glow lume Material to Shader (page 2–1723) 3ds Max Metal lume Shader List (page 2–1723) 3ds Max Shadow Transparency base Translucency lume Extended Shaders group Transmat physics Water Surface Shadow lume Displacement—Assigns a displacement shader (page 3–96). Default=locked to parent material. Caustics and GI group Photon—Assigns a photon shader. Photon shaders affect how object surfaces respond to photons; that is, they control how the surfaces behave when generating caustics and global illumination. Default=locked to parent material. The photon component can be assigned the following shaders: The photon volume component can be assigned the following shaders: Shader Library Material to Shader (page 2–1723) 3ds Max Parti Volume Photon physics Shader List (page 2–1723) 3ds Max The displacement component can be assigned the following shaders: Shader Library 3D Displacement (page 2–1714) 3ds Max Material to Shader (page 2–1723) 3ds Max Ocean lume 1463 1464 Chapter 16: Material Editor, Materials, and Maps Volume—Assigns a volume shader (page 3–95). Shader Library The volume component can be assigned the following shaders: Width From Color contour Width From Light contour Shader Library Width From Light Dir contour Beam lume Light Map—Assigns a light map shader. Material to Shader (page 2–1723) 3ds Max Mist lume Parti Volume Photon physics Shader List (page 2–1723) 3ds Max Submerge lume Warning: No light map 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. Optimization group Flag Material as Opaque—When on, indicates Environment—Assigns an environment shader. The environment shader provides an environment local to the material. It is visible if the material is reflective or transparent. The environment component can be assigned the following shaders: Shader Library Environment (page 2–1721) 3ds Max Material to Shader (page 2–1723) 3ds Max Shader List (page 2–1723) 3ds Max Advanced Shaders group Contour—Assigns a contour shader (page 3–96). The contour component can be assigned the following shaders: that the material is fully opaque. This tells the mental ray renderer that it doesn’t need to process transparency for this material, or to use the shadow shader. This can improve rendering time. Default=off. DirectX Manager Rollout Material Editor > DirectX Manager rollout Lets you select a DirectX viewport shader for viewing Direct3D hardware shaders. DirectX shaders require the Direct3D graphics driver (page 3–844), which uses DirectX. With DirectX shading, materials in a viewport more accurately represent how the material will appear in another application, or on other hardware such as a game engine. Shader Library Combi contour DirectX viewport shaders are especially useful for previewing texture-baked materials (page 3–144). Curvature contour 3ds Max provides two DirectX shaders: Depth Fade contour • LightMap shader (page 2–1614) Factor Color contour • Metal Bump shader (page 2–1614) Layer Thinner contour Note: This rollout does not appear for Simple contour Multi/Sub-Object and Shell materials, which are simply containers of other materials. Standard Material See also DirectX 9 Shader Material (page 2–1613) Interface Standard Material Material Editor > Type button > Material/Map Browser > Standard DX Display of Standard Material—When on, displays the active material as a DX shader. You can save the material as an FX file by clicking Save As .FX File. For full support of this feature, DX9 must be active. Warning: Not all standard 3ds Max features can be represented by DX shaders, and you it is possible to create a standard material that is more complex than a DX video card can display. DX shaders do support the most commonly used material components: diffuse color (or texture), specular highlights, opacity, bump mapping, and reflections. Save as .FX File—Click to display a Save Effect File dialog that lets you save the active material as an FX file (page 3–946). Enable Plugin Material—Turn on to use the chosen DirectX shader in shaded viewports. Default=off. When not enabled, viewports continue to use the default viewport (interactive) renderer (page 3–1030) (or the ActiveShade renderer (page 3–17), if that has been chosen). This toggle is unavailable if no shader plug-in has been chosen from the drop-down list, and when DX Display Of Standard Material is on. Scooter rendered with the default standard material Standard material is the default material in the Material Editor sample slots. There are several other kinds of material types (page 2–1457). The Standard material type provides a fairly straightforward way to model surfaces. In the real world, the appearance of a surface depends on how it reflects light. In 3ds Max, a standard material simulates a surface’s reflective properties. If you don’t use maps (page 3–968), a standard material gives an object a single, uniform color. This topic introduces the controls for Standard material, exclusive of mapping. Standard Color Components choose a DirectX viewport shader. A surface of a "single" color usually reflects many colors. Standard materials typically use a four-color model to simulate this. (There are some variations depending on which shader (page 2–1466) you use.) The list is unavailable when DX Display Of Standard Material is on. • Ambient color (page 3–908) is the color of the object in shadow. Plug-in drop-down list—Use the drop-down list to 1465 1466 Chapter 16: Material Editor, Materials, and Maps • Diffuse (page 3–929) is the color of the object in direct, "good" lighting. • Specular (page 3–1014) is the color of shiny highlights. Some shaders generate the specular color, rather than letting you choose it. • Filter (page 3–939) is the color transmitted by light shining through the object. The Filter color component isn’t visible unless the material’s Opacity is less than 100 percent. Note: Raytrace material (page 2–1512) uses a different, six-color model to simulate surfaces. Several components are similar to those in Standard Material, but they behave differently in Raytrace. When we describe an object’s color in conversation, usually we mean its diffuse color. The choice of an ambient color depends on the kind of lighting. For moderate indoor lighting, it can be a darker shade of the diffuse color, but for bright indoor lighting and for daylight, it should be the complement of the primary (key) light source. The specular color should be either the same color as the key light source, or a high-value, low-saturation version of the diffuse color. For more tips on choosing color components, see Choosing Colors for Realism (page 2–1400). Warning: When you change the shading type of a material, you lose the settings (including map assignments) for any parameters that the new shader does not support. If you want to experiment with different shaders for a material with the same general parameters, copy the material to a different sample slot (page 2–1420) before you change its shading type. That way, you can still use the original material if the new shader doesn’t give you the effect you want. Other Standard Material Components A standard material’s specular color appears in highlights. You can control the size and shape of the highlight. A polished surface has a small and strong highlight. A matte surface has a large, weak highlight, or no highlight at all. Standard materials also have controls for making the object appear transparent, and for making it self-illuminating so that it appears to glow. Along with the material’s color components, components also refers to the parameters that control highlights, transparency, self-illumination, and so on. See also Material Components (page 2–1399) Choosing Colors for Realism (page 2–1400) Interface The interface for a standard material is organized into several rollouts: Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Extended Parameters Rollout (Standard Material) (page 2–1471) SuperSampling Rollout (page 2–1459) Maps Rollout (Standard Material) (page 2–1474) Dynamics Properties Rollout (page 2–1479) DirectX Manager Rollout (page 2–1464) Shader Basic Parameters Rollout Material Editor > Standard material > Shader Basic Parameters rollout > Choose shader from drop-down list. The Shader Basic Parameters rollout lets you choose the type of shader to use with a Standard (page 2–1465) material. Some additional controls affect how the material appears. Shader Basic Parameters Rollout Procedures To set a material’s shading type: 1. On the Shader Basic Parameters rollout, open the shader drop-down list. 2. Click the name of the shader type to use for the active material. To use Wire mode: • On the Shader Basic Parameters rollout, turn on Wire. The material is now shaded as a wireframe mesh. The wire portions of the geometry do not change; color components, shininess, and so on, remain the same. Tip: For a wireframe material, turn on the 2-Sided option as well. You have two choices for how wireframe materials are rendered. The controls for tuning wireframe shading are on the Extended Parameters (page 2–1471) rollout. • If you choose Pixels, the thickness of the wires maintains the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. In other words, pixel wires have a constant display size as if the wires were traced over an image. • If you choose Units, the wires behave as if they were modeled in the geometry. They appear thinner at a distance and thicker at close range. Scaling a wireframe object does scale wire width. Interface to show the controls for the shader you choose. Default shader=Blinn There are seven different shaders. Some are named for what they do; others are named for their creators. These are the basic material shaders: • Anisotropic (page 2–1480): For surfaces with elliptical, "anisotropic" highlights. These highlights are good for modeling hair, glass, or brushed metal. • Blinn (page 2–1480): For rounder, softer highlights than Phong shading • Metal (page 2–1481): For metallic surfaces • Multi-Layer (page 2–1481): For surfaces with more complex highlights than Anisotropic • Oren-Nayar-Blinn (page 2–1482): For matte surfaces such as fabric or terra-cotta • Phong (page 2–1482): For surfaces with strong, circular highlights • Strauss (page 2–1483): For metallic and nonmetallic surfaces. The Strauss shader has a simpler interface than other shaders. • Translucent (page 2–1484): Similar to Blinn shading, the Translucent shader also lets you specify translucency, where light is scattered as it passes through the material. For more information about the shaders, including illustrations, see Understanding Shaders (page 2–1468). Wire—Renders the material in wireframe mode (page 3–1034). You can set the size of the wire in Extended Parameters (page 2–1471). 2-Sided—Makes the material 2-sided (page 3–901). Applies the material to both sides of selected faces. Face Map—Applies the material to the faces of the shader drop-down list—Chooses a shader. The material’s Basic Parameters rollout can change geometry. If the material is a mapped material, it requires no mapping coordinates (page 3–967). The map is automatically applied to each facet of the object. 1467 1468 Chapter 16: Material Editor, Materials, and Maps Faceted—Renders each face of a surface as if it were flat. Understanding Shaders For standard materials, a shader is an algorithm that tells 3ds Max how to calculate surface rendering. Each shader has a unique set of characteristics in order to serve a particular purpose. Some are named for what they do well, such as the Metal shader. Others are named for the person who developed them, such as the Blinn and Strauss shaders. The default shader in 3ds Max is the Blinn shader. • Metal: Used for making metals. Note: In addition to the shaders listed below, 3ds Max supports plug-in shader types. The following list describes the shaders supplied with the software: • Anisotropic: Used for brushed metal or hair. Creates a highlight that is stretched and angled, rather than the standard circular highlight. • Blinn: Has the same features as the Phong shader, but its mathematics are more accurate. This is the default shader for Standard materials. • MultiLayer: Two anisotropic shaders in one. Used to make two different highlights with independent controls. Simulates materials such as a metal that is covered with a shiny coat of wax. • Oren-Nayar-Blinn: An adaptation of the Blinn shader. It gives objects a porous, non-plastic appearance, and is suitable for surfaces like skin. Understanding Shaders object allows light to pass through, and also scatters light within the object. You can use translucency to simulate frosted and etched glass. • Phong: A classic shading method that was the first to enable specular highlights. Suitable for plastic surfaces. Comparing Shader Parameters A shader is an algorithm that tells the program how to calculate surface rendering. Each shader has a unique set of characteristics in order to serve a particular purpose. Compare the parameters of different shader types: 1. Open the Material Editor and click an available sample slot. 2. In the list on the Shader Basic Parameters • Strauss: Suitable for metals. Allows you to control the degree of metallic characteristics of the material. • Translucent Shader: Translucent shading is similar to Blinn shading, but it also lets you specify translucency. A translucent rollout, change Blinn to Anisotropic. The Blinn Basic Parameters rollout changes to the Anisotropic Basic Parameters rollout. Observe the differences in the available basic parameters. 1469 1470 Chapter 16: Material Editor, Materials, and Maps Basic Parameters Rollout (Standard Material) Material Editor > Standard material > Basic Parameters rollout for the shader you’ve chosen The Basic Parameters rollouts for Standard materials contain controls that let you set the color of your material, the shininess, the transparency, and so on, and specify maps (page 3–968) to use for the various components of the material. Example: The Basic Parameters rollout for the Anisotropic shader. Basic Parameters rollouts vary depending on which shader is chosen. The Basic Parameters rollout changes depending on which kind of shader you choose in the Shader Basic Parameters (page 2–1466). 3. Select each shader type from the list and compare its parameters with the others. Some parameters are shared in common, but each shader has its own unique combination of settings. For more information on shader types, see Shader Basic Parameters Rollout (page 2–1466). Note: The Strauss shader’s Basic Parameters rollout is simpler than those for other shaders. See Strauss Shader (page 2–1483) for a description. Component Controls The first part of the Basic Parameters rollout contains controls for overall material components. They are described in the following topics: • Color Controls (page 2–1485) let you choose the material’s color components, or replace them with maps. Extended Parameters Rollout (Standard Material) • Self-Illumination (page 2–1487) makes a material appear lit from within. Self-illumination is not available for the Strauss shader (page 2–1483). • Opacity (page 2–1488) controls how opaque or transparent a material is. • Diffuse Level (page 2–1489) controls the brightness of the diffuse color component. Diffuse Level is available only for the Anisotropic (page 2–1480), Multi-Layer (page 2–1481), and Oren-Nayar-Blinn (page 2–1482) shaders. • Roughness (page 2–1490) controls how quickly the diffuse component blends into the ambient component. Roughness is available only for the Multi-Layer (page 2–1481) and Oren-Nayar-Blinn (page 2–1482) shaders. Highlight Controls The second part of the Basic Parameters rollout contains controls for specular highlights, which in some ways are the greatest difference between the various shaders. See these topics for a description: • Anisotropic Highlights (page 2–1480) • Blinn, Oren-Nayar-Blinn, and Phong Highlights (page 2–1493) • Metal Highlights (page 2–1494) • Multi-Layer Highlights (page 2–1495) For information on highlights with the Strauss shader, see Strauss Shader (page 2–1483). Translucency Controls For the Translucent shader (page 2–1484), an additional group on the Basic Parameters rollout contains controls for translucency (page 2–1491). Extended Parameters Rollout (Standard Material) Material Editor > Standard material > Extended Parameters rollout The Extended Parameters rollout is the same for all shading types of Standard material. It has controls related to transparency and reflection, as well as options for Wire mode. This topic contains tables of the Index of Refraction for some common physical materials. These can be used to create Standard materials with realistic transparency. Additive Opacity and the Alpha Channel By default, additive opacity does not generate an alpha value. In other words, the alpha value is zero, indicating no transparency. This gives correct results with backgrounds in renderings, but if you want to composite objects with additive opacity using video post (page 3–311) or a different compositing program, you might want to have additive opacity render with transparency. To do so, add the following line to the [Renderer] section of the 3dsmax.ini file, and then restart 3ds Max: AlphaOutOnAdditive=1 To revert to the default method of rendering additive opacity, in the 3dsmax.ini file, change the value of AlphaOutOnAdditive back to 0 (zero), and then restart 3ds Max. 1471 1472 Chapter 16: Material Editor, Materials, and Maps Interface (page 3–1000) cast by transparent objects are tinted with the filter color. Advanced Transparency group These controls affect the opacity falloff (page 3–984) of a transparent material. Note: For the Translucent shader (page 2–1484), these controls do not appear. They are replaced by the Translucency controls (page 2–1491) on the Basic Parameters rollout. Falloff—Chooses whether falloff is in or out, and how great it is. • In—Increases transparency toward the inside of the object, as in a glass bottle. • Out—Increases transparency toward the outside of the object, as in a cloud of smoke. Amt (Amount)—Specifies the amount of transparency at the outside or inside extreme. Type—These controls choose how transparency is applied. • Filter (page 3–939) computes a filter color that it multiplies by the color behind the transparent surface. Click the color swatch to change the filter color. Click the button to assign a map to the filter color component. The filter, or transmissive color, is the color transmitted through transparent or semi-transparent materials such as glass. You can use the filter color with volumetric lighting to create effects such as colored light through a stained-glass window. Ray-traced shadows A shadow’s color is changed with a red filter color. • Subtractive (page 3–1017) subtracts from the color behind the transparent surface. • Additive (page 3–906) adds to the color behind the transparent surface. Index of Refraction—Sets the index of refraction (IOR) used by refraction maps and raytracing. The IOR controls how severely the material refracts transmitted light. Left at 1.0, the IOR of air, the object behind the transparent object does not distort. At 1.5 the object behind distorts greatly, like a glass marble. At an IOR slightly less than 1.0, the object reflects along its edges, like a bubble seen from under water. Default=1.0. Common IORs (assuming the camera is in air or a vacuum) are: Material IOR Value Vacuum 1.0 (exactly) Air 1.0003 Water 1.333 Glass 1.5 (clear glass) to 1.7 Diamond 2.417 In the physical world, the IOR results from the relative speeds of light through the transparent Extended Parameters Rollout (Standard Material) material and the medium the eye or the camera is in. Typically this is related to the object’s density; the higher the IOR, the denser the object. You can also use a map to control the index of refraction. IOR maps always interpolate between 1.0 (the IOR of air) and the setting in the IOR parameter. For example, if the IOR is set to 3.55 and you use a black-and-white Noise map to control IOR, the IORs rendered on the object will be set to values between 1.0 and 3.55; the object will appear denser than air. If, on the other hand, your IOR is set to 0.5, then the same map values will render between 0.5 and 1.0, as if the camera were under water and the object was less dense than the water. Material IOR Value Lapis Lazuli 1.610 Topaz 1.610 Carbon Bisulfide 1.630 Quartz 1 1.644 Sodium Chloride (Salt) 2 1.644 Glass, Heavy Flint 1.650 Methylene Iodide 1.740 Ruby 1.770 Sapphire 1.770 Glass, Heaviest Flint 1.890 Crystal 2.000 Chromium Oxide 2.705 Here are some more IOR values for various materials: Copper Oxide 2.705 Amorphous Selenium 2.920 Material IOR Value Iodine Crystal 3.340 Carbon Dioxide, Liquid 1.200 Ice 1.309 Wire group Acetone 1.360 Size—Sets the size of the wire in wireframe mode Ethyl Alcohol 1.360 Sugar Solution 30% 1.380 (page 3–1034). You can set either pixels or current units. Alcohol 1.329 In—Chooses how to measure wire. Flourite 1.434 Quartz, Fused 1.460 Calspar2 1.486 Sugar Solution 80% 1.490 • Pixels—(The default.) Measures wire in pixels. With pixels, wires maintain the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. Glass, Zinc Crown 1.517 Glass, Crown 1.520 Sodium Chloride 1.530 Sodium Chloride (Salt) 1 1.544 Polystyrene 1.550 Quartz 2 1.553 Emerald 1.570 Glass, Light Flint 1.575 • Units—Measures wire in 3ds Max units. With units, the wires appear thinner at a distance and thicker at close range, as if they were modeled in the geometry. Reflection Dimming group These controls dim reflection maps that are in shadow. 1473 1474 Chapter 16: Material Editor, Materials, and Maps Maps Rollout (Standard Material) Material Editor > Standard material > Maps rollout A material’s Maps rollout lets you access and assign maps (page 3–968) to various components of the material. You can choose from a large variety of map types. To find descriptions of these types, and how to set their parameters, see Map Types (page 2–1617). Assigning the Same Map to Different Parameters Applying the same map to different parameters is useful in some cases. For example, using a pattern to map both self-illumination and opacity can make the pattern appear to glow and hover in space. Reflection dimming Above: None Below: 0.0 (100% dimming) Apply—Turn on to use reflection dimming. When off, the reflection-mapped material is not affected by the presence or absence of direct light. Default=off. Dim Level—The amount of dimming that takes place in shadow. At 0.0, the reflection map is completely dark in shadow. At 0.5, the reflection map is half dimmed. At 1.0, the reflection map is not dimmed and the material appears as if Apply were turned off. Default=0.0. Refl. Level—Affects the intensity of the reflection that is not in shadow. The Reflection Level value multiplies the illumination level of the lit area of the reflection, to compensate for dimming. In most cases, the default value of 3.0 keeps the reflection in the lit area at about the same level it would appear if reflection dimming were not on. Blending Map Amounts for Opacity and Other Material Components When you map a scalar component (such as Specular Level, Glossiness, Self-Illumination, and Opacity), the component’s value in the Basic Parameters (page 2–1470) rollout is blended with its associated map Amount in the Maps rollout. For example, when the Opacity spinner is set to 0, the map Amount spinner completely controls Opacity. That is, reducing the Amount value increases the transparency of the entire surface. On the other hand, when Opacity is 100, reducing the map’s Amount value increases the opacity of the entire surface. You can adjust a Checker Opacity map so that the opaque areas remain opaque, while the transparent areas become semi-transparent. Other scalar components behave in the same way. Setting the map’s Amount to 100 applies all of the map. Setting the Amount to 0 is the equivalent of turning the map off. Intermediate Amount Maps Rollout (Standard Material) values are blended with the value of the scalar component. When you load old 3ds Max files or bring earlier materials from the Browser into the Materials Editor, the spinner values for Opacity, Specular Level, Glossiness, and Self-Illumination are altered, where necessary, to maintain the equivalent material effect. Procedures To use the same map for different parameters: 1. In the Maps rollout, use a map button to assign a map. The Material Editor is now at the map level, and displays controls for the map parameters. 2. 3. Drag the assigned map button to another map button. To assign a map: The Copy (Instance) Map dialog (page 2–1451) is displayed. 1. In the Maps rollout, click a map button. A modal Material/Map Browser (page 2–1412) is displayed. 4. Choose Copy or Instance, and then click OK. If you choose Swap, the Material Editor swaps the two button assignments. 2. Use the Browse From buttons to choose where you want to look. If you choose Material Library and the dialog’s display area is blank, you need to open a library file. Click the Open button and then choose the library to browse. 3. Use the display buttons to choose how you view maps. • View List shows each map by name. • View List + Icons shows a small preview and each map’s name. • View Small Icons shows a small preview for each map. • View Large Icons shows a large preview for each map, along with the map’s name. Tip: You can resize the Browser dialog to increase the size of the display area. This is especially useful when you view large icons. 4. Double-click the map you want. Click Go To Parent to return to the material level, and then open the Maps rollout. To view the parent material’s parameters: • If you are currently at the map level in the Material Editor, click Go To Parent. The parameters for the map’s parent material are displayed. Also, the Show End Result and Go To Parent buttons become unavailable. To view a map’s parameters: • If you are currently at the material level in the Material Editor, click the button that corresponds to the map. The parameters for the map are displayed. Also, the Show End Result (page 2–1446) and Go To Parent (page 2–1446) buttons become available. In the Basic Parameters rollout, if a map has been assigned to a color component or parameter, the corresponding button displays a letter M. In the Maps rollout, if a map has been assigned, the corresponding button displays the map name. 1475 1476 Chapter 16: Material Editor, Materials, and Maps assign mapping coordinates by applying a UVW Map modifier (page 1–922). To view a map’s location: • Click Material/Map Navigator to view the Navigator. The Material/Map Navigator (page 2–1447) displays the hierarchy of the current material, which contains the map. To go to a map using the Navigator: 3. In the Material Editor, assign the mapped material to the object. 4. If you are at the material level (the top level), click the appropriate map button to go to the map level. 5. • In the Material/Map Navigator (page 2–1447), click the name of the map, or the green or red parallelogram to the left of the map’s name. The map appears on objects assigned the material in all shaded viewports. Now when you adjust the map, the viewports update to display the adjustments. The Navigator goes to the level of the map, and the Material Editor displays the controls for the map you clicked. Turning on Show Map In Viewport for one map automatically turns this button off for all other maps the material has. As the Navigator’s map tree shows, maps for basic material components and parameters are one level below the material itself. Viewports can display 2D maps such as Checker and Bitmap. To preview a map in a sample slot: Viewports can also display most kinds of 3D maps. The exceptions are Particle Age and Particle MBlur. Also, the appearance of the Falloff map in viewports give only a vague indication of how it will appear when rendered. 1. Go to the level of the map, as described in previous procedures. The Material Editor displays the map’s parameters. 2. Show Map In Viewport is unavailable if the active map type cannot display in viewports. Turn off Show End Result (page 2–1446). The sample slot shows the map instead of the material. If the map contains sub-maps, these are also visible. By default, the sample slot displays a map with no three-dimensional shading. You can change this in the Material Editor Options dialog (page 2–1436). Displaying mapped materials in a viewport can slow performance. If you don’t need to view the texture, turn off its viewport display. To turn off interactive texture display: 1. Go to the map level. If you are at the material level, click the appropriate map button to go to the map level. To view the map interactively: 1. Select an object. 2. In the object’s creation parameters, make sure that Generate Mapping Coords is on. If the object type does not have a Generate Mapping Coordinates toggle, you need to Turn on Show Map In Viewport (page 2–1445). 2. Turn off Show Map in Viewport (page 2–1445). The object is shaded but the map no longer appears. Maps Rollout (Standard Material) maps (if you were at a material when you clicked Type, the Browser lists only materials). To turn a map off: • In the Maps rollout, turn off the map’s check box. 2. Choose a map type from the list, and then click OK. The check box is to the left of the map’s name. If you change a map type and the new map type can have component maps, a Replace Map dialog is displayed. This dialog gives you a choice between discarding the original map or using it as a component map. To turn a map on: • In the Maps rollout, turn on the map’s check box. The check box is to the left of the map’s name. If the new map type does not have components, it simply replaces the original map type. To change a map’s strength: • In the Maps rollout, adjust the map’s Amount spinner. The material’s sample slot reflects the change. Note: Adjusting a map’s output (in the map’s Output rollout) can also change the map’s strength. To move directly to an ancestor: 1. Below the Material Editor toolbar, click the arrow to the right of the map’s name field (page 2–1448). A drop-down list of ancestors is displayed. 2. Click a name in the Ancestor list. With this list, you can skip intermediate levels in the tree. The Ancestor drop-down list shows only part of the tree. It does not show side branches and siblings. To view these, use the Material/Map Navigator (page 2–1447) or the Go Forward To Sibling (page 2–1447) and Go To Parent (page 2–1446) buttons on the Material Editor toolbar. To change a map type: 1. At the level of a map, click the button labeled Type below the Material Editor toolbar. A modal Material/Map Browser (page 2–1412) is displayed. If you were at a map, it lists only To create a standalone map tree: 1. Activate a sample slot. 2. Click Get Material (page 2–1439). 3. In the Material/Map Browser (page 2–1412), make sure Browse From is set to New. 4. Double-click the name of the map type (not a material type) you want to use, or drag the map to a sample slot. The sample slot now contains a standalone map not associated with material parameters. 5. Use the Material Editor to modify the map as you would any other map. By default, the sample slot displays a map with no three-dimensional shading. You can change this in the Material Editor Options dialog (page 2–1436). 1477 1478 Chapter 16: Material Editor, Materials, and Maps Interface colors of the material without mapping) shows through. Ambient Color Mapping (page 2–1497) Diffuse Color Mapping (page 2–1498) Diffuse Level Mapping (page 2–1499) Diffuse Roughness Mapping (page 2–1500) Specular Color Mapping (page 2–1500) Glossiness Mapping (page 2–1502) Glossiness and Specular Level Settings (page 3–950) Self-Illumination Mapping (page 2–1502) Opacity Mapping (page 2–1503) Filter Color Mapping (page 2–1503) Anisotropy Mapping (page 2–1504) Orientation Mapping (page 2–1505) Metalness Mapping (page 2–1506) Bump Mapping (page 2–1506) Reflection Mapping (page 2–1508) Refraction Mapping (page 2–1509) The Maps rollout contains a wide button for each map type. Click this button to select a bitmap file stored on disk or to select a procedural map type (page 3–997). After you select a map, its name and type appears on the button. Use the check box to the left of the button to turn the effect of the map off and on. When the check box is off, the map is not computed and has no effect in the renderer. The Amount spinner determines the amount that the map affects the material expressed as a percentage of full intensity. For example, a diffuse map at 100% is completely opaque and covers the base material. At 50%, it is semi-transparent and the base material (the diffuse, ambient, and other Displacement Mapping (page 2–1511) The Maps rollout can have unused, disabled control rows at the bottom. This is because the number of components that can be mapped varies depending on the current shader (page 2–1466). The last four rows are always Bump, Reflection, Refraction, and Displacement, in that order. Note: The sub-material and sub-map buttons for most materials and maps have check boxes beside each button. These turn that branch of the material or map off or on. For example, in the Top/Bottom material, the Top Material and Bottom Material buttons each have check boxes. Similarly, the Checker map has two map buttons, one for each color. Each button has check box beside it that lets you turn off that color’s map. Dynamics Properties Rollout Ambient and Diffuse Map Lock In the Maps rollout, the lock button to the right of the Diffuse Color map button locks ambient mapping to diffuse mapping. It is on by default. Usually it makes sense to use the same map for the ambient and diffuse components. To use different maps for ambient and diffuse, turn off the lock button. The map button for Ambient Color becomes available. Dynamics Properties Rollout Material Editor > Standard material > Dynamics Properties rollout The Dynamics Properties rollout lets 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. The dynamics properties are used by the Dynamics utility (page 2–686). Since the Dynamics Properties rollout is available at the top level of any material (including submaterials), 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 Materials Editor lets you alter the surface properties at the sub-object level, through use of a Multi/Sub-Object material (page 2–1594). As a default, the values in the Dynamics Properties rollout provide a surface that’s similar to Teflon-coated hardened steel. Interface Bounce Coefficient—Sets how far an object bounces after hitting a surface. The higher the value, the greater the bounce. A value of 1 represents a "perfectly elastic collision," or a bounce in which no kinetic energy is lost. Default=1.0. If you’ve seen the desktop toy with four ball bearings swinging back and forth on strings and hitting one another, you’ve seen an example that comes very close to a bounce coefficient of 1. Generally, hardened steel or a super ball have a bounce near 1, while lead has a bounce near 0. Static Friction—Sets how difficult it is for the object to start moving along a surface. The higher this value, the more difficult. Default=0.0. If something weighs ten pounds and sits on Teflon (a static friction of near 0), 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, on the order of 0.5 to 0.8. A static friction near 1 is very difficult to create in the real world without adhesives or friction material. Sliding Friction—Sets how difficult it is for the object to keep moving over a surface. The higher this value, the more difficult for the object to keep moving. Default=0.0. 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 0.05 to 0.2), the sliding friction drops to a significantly lower value, on the order of .01 to 0.1. For some materials, such as specific friction materials like brake linings, sliding friction is just as high as static friction because it is used in conjunction with a nearly frictionless material such as hardened polished steel. 1479 1480 Chapter 16: Material Editor, Materials, and Maps See also Basic Material Shaders Anisotropic Shader Material Editor > Standard material > Shader Basic Parameters rollout > Anisotropic shader > Anisotropic Basic Parameters rollout Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Anisotropic Highlights (page 2–1492) Blinn Shader The Anisotropic shader creates surfaces with elliptical, "anisotropic" highlights. These highlights are good for modeling hair, glass, or brushed metal. The basic parameters are similar to those for Blinn or Phong shading (page 2–1480), except for the Specular Highlight parameters, and Diffuse Level controls such as those for Oren-Nayar-Blinn shading (page 2–1482). Material Editor > Standard material > Shader Basic Parameters rollout > Blinn shader > Blinn Basic Parameters rollout Blinn shading is a subtle variation on Phong shading. The most noticeable difference is that highlights appear rounder. In general, you don’t need to use the Soften parameter (described in Blinn, Oren-Nayar-Blinn, and Phong Highlights (page 2–1493)) as often as you do with Phong shading. Anisotropic highlights are elliptical, with differing U and V dimensions. Anisotropy measures the difference between sizes of the highlight as seen from two perpendicular directions. When anisotropy is 0, there is no difference at all. The highlight is circular, as in Blinn or Phong shading. When anisotropy is 100, the difference is at its maximum. In one direction the highlight is very sharp; in the other direction it is controlled solely by Glossiness. For more complex highlights, see the Multi-Layer shader (page 2–1481). Blinn shading tends to have soft, round highlights. With Blinn shading, you can obtain highlights produced by light glancing off the surface at low angles. These highlights are lost when you increase the value of Soften using Phong shading. The Blinn and Phong shaders have the same basic parameters (page 2–1470). Metal Shader See also Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Blinn, Oren-Nayar-Blinn, and Phong Highlights (page 2–1493) Metal Shader Material Editor > Standard material > Shader Basic Parameters rollout > Metal shader > Metal Basic Parameters rollout Metal shading provides realistic-looking metallic surfaces and a variety of organic-looking materials. Metal shading has a distinct curve for specular highlights. Metal surfaces also have glancing highlights. Metal materials calculate their own specular color, which can vary between the material’s diffuse color and the color of the light. You can’t set a metal material’s specular color. affects both the intensity and size of the specular areas. Tip: When you create a metal material, make sure the backlight (page 2–1432) is on in the sample slot. See also Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Metal Highlights (page 2–1494) Multi-Layer Shader Material Editor > Standard material > Shader Basic Parameters rollout > Multi-Layer shader > Multi-Layer Basic Parameters rollout Upper left: No highlights Upper right: Single highlight Lower middle: Multiple highlights from the multi-layer shader Metal shading has distinctive highlights. Because there’s no separate specular highlight, the two specular highlight spinners behave differently than the spinners for Blinn and Phong shading (page 2–1480). The Specular Level spinner still controls intensity, but the Glossiness spinner The Multi-Layer shader is similar to the Anisotropic shader (page 2–1480), but it has a set of two specular highlight controls. The highlights are layered, letting you create complex highlights that are good for highly polished surfaces, special effects, and so on. Highlights in the Multi-Layer shader can be anisotropic. Anisotropy measures the difference between sizes of the highlight as seen from two perpendicular directions. When anisotropy is 1481 1482 Chapter 16: Material Editor, Materials, and Maps 0, there is no difference at all. The highlight is circular, as in Blinn or Phong shading. When anisotropy is 100, the difference is at its maximum. In one direction the highlight is very sharp; in the other direction it is controlled solely by Glossiness. Basic Parameters Rollout (Standard Material) (page 2–1470) See also Phong Shader Blinn, Oren-Nayar-Blinn, and Phong Highlights (page 2–1493) Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Multi-Layer Highlights (page 2–1495) Oren-Nayar-Blinn Shader Material Editor > Standard material > Shader Basic Parameters rollout > Blinn shader > Oren-Nayar-Blinn shader > Oren-Nayar-Blinn Basic Parameters rollout Material Editor > Standard material > Shader Basic Parameters rollout > Phong shader > Phong Basic Parameters rollout Phong shading smoothes the edges between faces and renders highlights realistically for shiny, regular surfaces. This shader interpolates intensities across a face based on the averaged face normals of adjacent faces. It calculates the normal for every pixel of the face. The Oren-Nayar-Blinn shader is a variant of the Blinn shader (page 2–1480). It contains additional "advanced diffuse" controls, Diffuse Level and Roughness, that you can use to give the material a matte effect. This shader is good for matte surfaces such as fabric, terra-cotta, and so on. Phong-shaded highlights are typically less regular than Blinn highlights. Phong shading can accurately render bump, opacity, shininess, specular, and reflection maps. The Blinn and Phong shaders have the same basic parameters (page 2–1470). Oren-Nayar-Blinn shading typically has a matte appearance. See also Shader Basic Parameters Rollout (page 2–1466) See also Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Strauss Shader Blinn, Oren-Nayar-Blinn, and Phong Highlights (page 2–1493) Strauss Shader Material Editor > Standard material > Shader Basic Parameters rollout > Strauss shader > Strauss Basic Parameters rollout The Strauss shader is for modeling metallic surfaces. It uses a simpler model and has a simpler interface than the Metal shader (page 2–1481). 2. In the Color Selector, change the values of the color. As you change color values, the color also changes in the sample in the sample slot. To reduce a material’s opacity: • Change Opacity to a value less than 100%. The material becomes more transparent. An object that is fully transparent (0% Opacity) is nearly invisible except for the light it reflects (the specular highlights). To preview transparency in the sample slots, view the sample object against a background. Click the checkered Background (page 2–1433) button to the right of the sample slots. Transparent materials render more realistically when you turn on 2-Sided in the material’s Shader Basic Parameters (page 2–1466). To increase or decrease the size and intensity of highlights: • Change the Glossiness value. Sample of Strauss shading Note: The Strauss shader’s Basic Parameters rollout differs a great deal from the Basic Parameters rollouts for other shaders, and is described in this topic. The width of the Highlight curve and the highlights in the preview change. At 0% glossiness, the curve is at its maximum width. At 100% glossiness, the curve is extremely narrow. Increasing Glossiness also dims the diffuse color. See also To make the material appear more metallic: Shader Basic Parameters Rollout (page 2–1466) Procedures To change the color of a Strauss material: 1. Click the Color swatch. The Color Selector (page 1–161) is displayed. Right-clicking the color swatch also displays the Color Selector. 1. Increase the Glossiness value. The metallic effect requires visible highlights. 2. Increase the value of Metalness. Highlights become more focused, and the (diffuse) color component is dimmed. 1483 1484 Chapter 16: Material Editor, Materials, and Maps Interface Color—Controls the color of the material. This previewed against a pattern background (page 2–1433) in the sample slot. You can control opacity falloff (page 3–984) in the Extended Parameters. Default=100. Click the map button to assign a map to the opacity component. See Opacity Mapping (page 2–1503). This button is a shortcut: you can also assign opacity mapping in the Maps rollout (page 2–1474). corresponds to the diffuse color (page 3–929) you specify for other kinds of shaders. With the Strauss shader, you control only this color. The shader calculates the ambient and specular color components. Highlight graph—This curve shows the effect of adjusting the value of Glossiness. As you decrease Glossiness, the curve grows shorter; as you increase it, the curve grows taller. Click the map button to assign a map to the color component. See Diffuse Mapping (page 2–1498). This button is a shortcut: you can also assign color mapping in the Maps (page 2–1474) rollout. Translucent Shader Glossiness—Affects the size and intensity of the Material Editor > Standard material > Shader Basic Parameters rollout > Translucent shader > Translucent Basic Parameters rollout specular highlight. As you increase the value, the highlight gets smaller and the material appears shinier. Default=25. Glossiness also controls the strength of reflection maps assigned to a Strauss material. Click the map button to assign a map to the glossiness component. See Glossiness Mapping (page 2–1502). This button is a shortcut: you can also assign glossiness mapping in the Maps (page 2–1474) rollout. Metalness—Changes the metallic appearance of a material. Increasing the Metalness value increases the metallic appearance, with glancing as well as primary highlights. Because a metallic appearance principally depends on highlights, the Metalness value has little effect unless you also increase the Glossiness value. Default=0. Tip: When you create a metal material, make sure the backlight (page 2–1432) is on in the sample slot. Opacity—Sets the opacity/transparency of the material as a percentage. The effect is best The bust on the right has been made translucent. Translucent shading is similar to Blinn shading, but it also lets you specify translucency. A translucent object allows light to pass through, and also scatters light within the object. You can use translucency to simulate frosted and etched glass. Translucency is inherently a two-sided effect: with the translucent shader, backface illumination appears on front faces. To generate translucency, Color Controls both sides of the material receive diffuse light, though only one side is visible in renderings and shaded viewports unless you turn on 2-Sided (in the Shader Basic Parameters rollout). If you use radiosity (page 3–51), it will process light transmitted by translucency. The accuracy of this depends on the mesh: the more subdivided the faces are, the more accurate the solution will be (at a cost of processing time). For specular highlights, you have a choice: to model materials like translucent plastic, you can choose to have highlights on both sides; to model materials like frosted glass, which is reflective on one side only, you can choose to have highlights on only one side. This is controlled by the Backside Specular toggle in the translucent highlight controls. Tip: To simulate frosted glass, a fine-grained bump map can also help. The translucent effect appears only in renderings. It does not appear in shaded viewports. Note: The translucent shader does not simulate the scattering of light within the object. Because of this, it is better at simulating thin objects such as glass or paper, than at thick objects. For thicker objects, the light passing through might saturate excessively. To avoid this, try reducing the HSV Value of the material’s Translucent Color. Translucent materials also capture shadows cast on the backfaces of the material. However, because the translucent shader doesn’t scatter light, for thicker objects the effect is not an accurate simulation of real-world translucency. Warning: Do not use shadow maps with the translucent shader. Shadow maps result in artifacts at the edge of translucent objects. See also Shader Basic Parameters Rollout (page 2–1466) Basic Parameters Rollout (Standard Material) (page 2–1470) Translucency Setting (page 2–1491) Translucent Highlights (page 2–1496) Basic Parameters for Standard Materials Color Controls Material Editor > Standard material > Anisotropic, Blinn, Metal, Multi-Layer, Oren-Nayar-Blinn, or Phong Basic Parameters rollout > First group in the rollout (unlabeled) Color controls set the colors for different color components. You can set the color by clicking the color swatch to display the Color Selector (page 1–161). Note: The Metal shader does not have a Specular component, because it generates the specular color automatically. The Multi-Layer shader can have two different Specular color components, so for this material the Specular color swatches are found in the Specular Highlights group. The Strauss shader has only a single color component, which corresponds to Diffuse. 1485 1486 Chapter 16: Material Editor, Materials, and Maps To lock two color components: 1. Click the lock button between Ambient and Diffuse or between Diffuse and Specular. The Material Editor displays an alert that asks whether you want to lock the two color components. 2. Click Yes. The color above replaces the color below. In other words, Ambient replaces Diffuse and Diffuse replaces Specular. If two colors are locked, and you lock the other two, all three component colors are replaced by the active color. 1. Specular color 2. Diffuse color 3. Ambient color While two colors are locked, adjustments to one color component affect the other as well. Procedures To change a color component: 1. Click the color swatch next to the color component you want to change. The Material Editor displays a Color Selector (page 1–161). Right-clicking the color swatch also displays the Color Selector. To unlock two color components: • Click the lock button to turn it off. The two colors remain the same until you change one of them, or both. Interface 2. Use the Color Selector to change the values of the color component. As you change color values, the color component also changes in the sample slot. To copy one color component to another: 1. Drag the color swatch of the color you want to copy to the color swatch of the other color component. A Copy or Swap Colors dialog (page 2–1452) is displayed. 2. Click Copy to replace the second color swatch with the color you dragged. Click Swap to swap the two color components. Ambient—Controls the ambient color (page 3–908). The ambient color is the color in shadow (indirect light). Diffuse—Controls the diffuse color (page 3–929). The diffuse color is the color in direct light. Specular—Controls the specular color (page 3–1014). The specular color is the color of the highlight on a shiny object. You can control the size and shape of highlights in the Specular Highlights group, described below. Self-Illumination Setting Copying and Locking Color Components For convenience in changing color components, the Material Editor lets you copy one color component to another by dragging, and to lock two color components together with the lock buttons to the left of the Ambient and Diffuse, and Diffuse and Specular color swatches. When you drag and drop a color swatch, the Copy or Swap Colors dialog (page 2–1452) asks if you want to copy the color or swap the two colors. In general, materials with two identical color components do not look realistic, and except for materials that are close to solid black, you should avoid using copied or locked color components in materials you use in a scene. Color copying and locking are best used as conveniences when you design a new basic material. Self-Illumination Setting Material Editor > Standard material > Anisotropic, Blinn, Metal, Multi-Layer, Oren-Nayar-Blinn, or Phong Basic Parameters rollout > Self-Illumination group These controls make the material self illuminated (page 3–1009). Self-illumination creates the illusion of incandescence by replacing shadows on the surface with the diffuse color. As you increase self-illumination, the self-illumination color takes over from the ambient color. At a setting of 100, the material shows no shaded areas, although it can show specular highlights. The self-illumination color appears in viewports. (In releases prior to 3ds Max 5,, viewports showed the self-illumination value but not the color.) Note: The Strauss shader (page 2–1483) does not have self-illumination. Shortcut Map Buttons The small buttons to the right of the color swatches access the Material/Map Browser (page 2–1447), where you select a map for that component. These buttons are shortcuts: you can also use the corresponding buttons in the Maps rollout (page 2–1474) If you have assigned a map to one of these color components, the button displays the letter M. An uppercase M means that the corresponding map is assigned and active. A lowercase m means that the map is assigned and inactive (turned off). The lock button to the right of the Diffuse map button locks Ambient mapping to Diffuse mapping. It is on by default. Usually it makes sense to use the same map for the ambient and diffuse components. To use different maps for ambient and diffuse, turn off the lock button. A map shortcut button for Ambient appears. There are two ways to specify self-illumination. You can turn on the check box and use a self-illumination color, or turn off the check box and use a monochrome spinner, which is comparable to using a gray scale self-illumination color. Self-illuminated materials do not show shadows cast onto them, and they are unaffected by the lights in the scene. The brightness (Value in the HSV color description (page 3–1001)) remains the same regardless of the scene’s lighting. To make a visible light source in a scene, you can combine a geometric object with a light object, and give the geometric object a self-illuminating surface. For example, you could create a lofted light bulb shape, assign it a self-illuminating white or yellowish material, and place an omni light in the same location. To make a material both self-illuminating and transparent, use the Additive transparency type in 1487 1488 Chapter 16: Material Editor, Materials, and Maps combination with self-illumination. See Extended Parameters (page 2–1471). Interface Color check box—When on, the material uses a special self-illumination color. When off, the material uses the diffuse color for self-illumination, and displays a spinner to control the self-illumination amount. Default=off. An object that is self-illuminated using a percentage value and a color Procedure To make a material self-illuminating: 1. Click the color swatch in the Self-Illumination group. 2. In the Color Selector (page 1–161), choose a color for self-illumination. 3. Use the color’s Value parameter (in the HSV model) to increase or decrease the amount of self-illumination (page 3–1009). You can also set self-illumination with a monochrome spinner. To do so, turn off the self-illumination check box and adjust the spinner. The self-illumination color is mixed with the material’s diffuse color. The closer to black the self-illumination color, the more diffuse color is used. As self-illumination increases, the sample object appears flatter and more luminous. Color swatch—When Color is on, the color swatch shows the self-illumination color. To change the color, click the swatch and then use the Color Selector (page 1–161). Adjusting the Value (in the color’s HSV description (page 3–1001)) adjusts the amount of self-illumination. The greater the Value, the more the self-illumination color dominates both the ambient and diffuse color components. Mono spinner—When Color is off, the diffuse component is used as the self-illumination color, and this spinner lets you adjust the amount of self-illumination. At 0, there is no self-illumination. At 100, the diffuse color takes over from the ambient color. Click the map button to assign a map to the self-illumination component. See Self-Illumination Mapping (page 2–1502). This button is a shortcut: you can also assign self-illumination mapping in the Maps rollout (page 2–1474). Opacity Material Editor > Standard material > Anisotropic, Blinn, Metal, Multi-Layer, Oren-Nayar-Blinn, or Phong Basic Parameters rollout > Opacity group (unlabeled) Opacity controls whether a material is opaque, transparent, or translucent. (A more physically accurate way to generate translucency is to use the Translucent shader (page 2–1484).) Diffuse Level Click the map button to assign a map to the opacity component. See Opacity Mapping (page 2–1503). This button is a shortcut: you can also assign opacity mapping in the Maps rollout (page 2–1474). Diffuse Level Material Editor > Standard material > Anisotropic, Multi-Layer, or Oren-Nayar-Blinn Basic Parameters rollout > Diffuse Level group (unlabeled) or Advanced Diffuse group Controlling opacity using the Opacity setting (left) or an opacity map (right). Procedure To reduce a material’s opacity: Diffuse Level controls the brightness of the material’s diffuse component. Note: The Blinn, Metal, Phong, and Strauss shaders do not have Diffuse Level control. • Change Opacity to a value less than 100%. The material becomes more transparent. An object that is fully transparent (0% Opacity) is nearly invisible except for the light it reflects (the specular highlights). To preview transparency in the sample slots, view the sample object against a background. Click the checkered Background button (page 2–1433) to the right of the sample slots. Transparent materials render more realistically when you turn on 2-Sided in the material’s Shader Basic Parameters (page 2–1466). Interface Adjusting diffuse level Procedure To adjust the diffuse level: • Change the value of Diffuse Level. Opacity—Sets the opacity/transparency of the material as a percentage. The effect is best previewed against a pattern background (page 2–1433) in the sample slot. You can control opacity falloff (page 3–984) in the Extended Parameters. The material grows lighter or darker. Lowering the Diffuse Level dims the material’s diffuse color without affecting the specular highlight. Diffuse Level is intended primarily so you can create a map (page 2–1499) that makes portions of the material very dark. 1489 1490 Chapter 16: Material Editor, Materials, and Maps Interface Diffuse Level—Increasing this value increases diffuse brightness, and decreasing it reduces diffuse brightness without affecting the specular highlight. You can increase the diffuse level over and above the diffuse color’s Value (in its HSV description (page 3–1001)). This parameter can range from 0 to 400. Default=100. Click the map button to assign a map to the diffuse level parameter. See Diffuse Level Mapping (page 2–1499). This button is a shortcut: you can also assign diffuse level mapping in the Maps rollout (page 2–1474). Increasing the blending area between diffuse and ambient with Roughness Procedure To adjust the roughness: • Change the value of Roughness. Roughness Material Editor > Standard material > Multi-Layer or Oren-Nayar-Blinn Basic Parameters rollout > Advanced Diffuse group (unlabeled for Multi-Layer) Increasing roughness makes the material have a flatter, more matte appearance. Interface Roughness controls how quickly the diffuse component blends into the ambient component. Note: The Roughness parameter is available only Roughness—As you increase this value, the matte with the Oren-Nayar-Blinn (page 2–1482) and Multi-Level (page 2–1481) shaders, and with the Arch & Design material (mental ray) (page 2–1549). appearance of the material increases. It also grows darker and appears more flat. At 0, the roughness is the same as it is with Blinn shading (page 2–1480). Default=50. Click the map button to assign a map to Roughness. This button is a shortcut: you can also assign Diffuse Roughness mapping in the Maps rollout (page 2–1474). See Diffuse Roughness Mapping (page 2–1500). Translucency Setting Translucency Setting Interface Material Editor > Standard material > Shader Basic Parameters rollout > Translucent shader > Translucent Basic Parameters rollout > Translucency group The translucency controls are available for the Translucent shader (page 2–1484). Warning: Do not use shadow maps with the translucent shader. Shadow maps result in artifacts at the edge of translucent objects. Procedure To make a material translucent: • Increase the HSV Value (V) (page 3–1001) of the Translucent Color. As the Value increases, the material becomes more translucent. The Hue of the Translucent Color tints the light that is scattered within the material. Translucent materials render more realistically when you turn on 2-Sided in the material’s Shader Basic Parameters (page 2–1466). The translucent effect does not appear in shaded viewports. Translucent Clr (Color)—Specifies a translucency color. This is the color of light that is scattered within the material. It does not need to be the same as the filter color, which is light transmitted by the material. The two color values are multiplied. Click the color swatch to change the translucent color. Click the button to assign a map to the translucent color component. Filter Color—Specifies a filter color (page 3–939) that is multiplied by the translucent color. Click the color swatch to change the filter color. Click the button to assign a map to the filter color component. The filter, or transmissive color, is the color transmitted through transparent or semi-transparent materials such as glass. You can use the filter color with volumetric lighting to create effects such as colored light through a stained-glass window. Ray-traced shadows (page 3–1000) cast by transparent objects are tinted with the filter color. Opacity—Sets the opacity/transparency (page 2–1488) of the material as a percentage. The effect is best previewed against a pattern background (page 2–1433) in the sample slot. Click the map button to assign a map to the opacity component. See Opacity Mapping (page 2–1503). This button is a shortcut: you can also assign opacity mapping in the Maps rollout (page 2–1474). Example of translucency 1491 1492 Chapter 16: Material Editor, Materials, and Maps Specular Highlight Controls the less blending there is and the sharper the edge of the specular highlight. To adjust the shape (anisotropy) of the highlight: Anisotropic Highlights Material Editor > Standard material > Anisotropic Basic Parameters rollout > Specular Highlight group Material Editor > Raytrace material > Raytrace Basic Parameters rollout > Shading: Anisotropic > Specular Highlight group Anisotropic highlights are good for modeling hair, glass, or brushed metal. • Change the value of Anisotropy. The width of the white highlight curve and the highlights in the preview change. At 0% anisotropy, both highlight curves are the same and the highlight is circular, as in Blinn and Phong shading. At 100% anisotropy, the white highlight curve and the highlights are extremely narrow. Note: For the Raytrace material (page 2–1512), the To adjust the orientation of the highlight: Specular Color component appears in the Specular Highlight group. Also, highlight controls that don’t pertain to the current shader are labeled “N / A.” • Change the value of Orientation. Procedures To increase or decrease the size of a highlight: Highlights in the preview show the change in orientation. The display of the highlight curve does not change. Interface • Change the Glossiness value. The width of the Highlight curves and the highlights in the preview change. At 0% glossiness, the curves are at their maximum width. At 100% glossiness, both curves are extremely narrow. To increase or decrease the strength of a highlight: • Change the value of Specular Level. The intensity of the Highlight curves and the highlights in the preview change. At 0% specular level, there is no highlight. At 100% specular level, the curves are at their maximum height with no overloading. At values greater than 100%, the curves are overloaded: they grow wider, and a wider area is at the maximum highlight intensity. The shape of the Highlight curves affects the blending between the specular and diffuse color regions of the material. The steeper the curve, Specular Level—Affects the intensity of the specular highlight. As you increase the value, the highlight grows brighter. Default=5. Click the map button to assign a map to the specular level component. See Specular Level Mapping (page 2–1501). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Glossiness—Affects the size of the specular highlight. As you increase the value, the highlight gets smaller and the material appears shinier. Default=25. Click the map button to assign a map to the glossiness component. See Glossiness Mapping Blinn, Oren-Nayar-Blinn, and Phong Highlights (page 2–1502). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Anisotropy—Controls the anisotropy, or shape, of the highlight. At 0, the highlight is round. At 100, the highlight is extremely narrow. One axis of the Highlight graph changes to show changes in this parameter. Default=50. Orientation—Changes the orientation of the highlight. The sample slot shows changes in orientation. This is a value in degrees that can range from 0 to 9,999. Default=0. Highlight graph—These two intersecting curves show the effect of adjusting the values of Specular Level, Glossiness, and Anisotropy. As you decrease Glossiness, the curves grow wider; as you increase Specular Level, the curves grow taller. As you adjust Anisotropy, the white curve changes to show how wide or narrow the highlight is. Blinn, Oren-Nayar-Blinn, and Phong Highlights Material Editor > Standard material > Blinn, Oren-Nayar-Blinn, or Phong Basic Parameters rollout > Specular Highlight group Procedures To increase or decrease the strength of a highlight: • Change the value of Specular Level. The intensity of the Highlight curve and the highlight in the preview change. At 0% specular level, there is no highlight. At 100% specular level, the curve is at its maximum height with no overloading. At values greater than 100%, the curve is overloaded: it grows wider, and a wider area is at the maximum highlight intensity. The shape of the Highlight curve affects the blending between the specular and diffuse color regions of the material. The steeper the curve, the less blending there is and the sharper the edge of the specular highlight. To increase or decrease the size of a highlight: • Change the Glossiness value. The width of the Highlight curve and the highlight in the preview change. At 0% glossiness, the curve is at its maximum width. At 100% glossiness, the curve is extremely narrow. Interface Material Editor > Raytrace material > Raytrace Basic Parameters rollout > Shading: Blinn, Oren-Nayar-Blinn, or Phong > Specular Highlight group The Blinn (page 2–1480), Oren-Nayar-Blinn (page 2–1482), and Phong (page 2–1482) shaders all have circular highlights and share the same highlight controls. Blinn and Oren-Nayar-Blinn highlights are somewhat softer and rounder than Phong highlights. Note: For the Raytrace material (page 2–1512), the Specular Color component appears in the Specular Highlight group. Also, highlight controls that don’t pertain to the current shader are labeled “N/A.” Specular Level—Affects the intensity of the specular highlight. As you increase the value, the highlight grows brighter. Default=5. Click the map button to assign a map to the specular level component. See Specular Level Mapping (page 2–1502). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Glossiness—Affects the size of the specular highlight. As you increase the value, the highlight 1493 1494 Chapter 16: Material Editor, Materials, and Maps gets smaller and the material appears shinier. Default=25. Click the map button to assign a map to the glossiness component. See Glossiness Mapping (page 2–1502). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Soften—Softens the effect of specular highlights, especially those formed by glancing light. When Specular Level is high and Glossiness is low, you can get harsh backlights on surfaces. Increase the value of Soften to mitigate this effect. At 0, there is no softening. At 1.0, the maximum amount of softening is applied. Default=0.1. Note: The Soften control was a check box in releases prior to 3ds Max 2. When you load a material created in an earlier version of 3ds Max, if Soften was originally off, the new Soften value is 0.0. If Soften was originally on, the new Soften value is 0.6. Highlight graph—This curve shows the effect of adjusting the values of Specular Level and Glossiness. As you decrease Glossiness, the curve grows wider; as you increase Specular Level, the curve grows taller. Metal Highlights Material Editor > Standard material > Metal Basic Parameters rollout > Specular Highlight group Material Editor > Raytrace material > Raytrace Basic Parameters rollout > Shading: Metal > Specular Highlight group Metal-shaded materials generate their own specular color. Also, the highlight curve for the Metal shader differs in shape from the curve for Blinn Oren-Nayar-Blinn, and Phong highlights (page 2–1493). Note: For the Raytrace material (page 2–1512), the Specular Color component appears in the Specular Highlight group. Also, highlight controls that don’t pertain to the current shader are labeled “N/A.” Procedures To increase or decrease the size and intensity of a highlight: • Change the Glossiness value. The width of the Highlight curve and the highlights in the preview change. At 0% glossiness, the curve is at its maximum width. At 100% glossiness, the curve is extremely narrow. To increase or decrease the strength of a highlight: • Change the value of Specular Level. The intensity of the Highlight curve and the highlight in the preview change. At 0% specular level, there is no highlight. At 100% specular level, the curve is at its maximum height with no overloading. At values greater than 100%, the curve is overloaded: it grows wider, and a wider area is at the maximum highlight intensity. Increasing the Specular Level also dims the diffuse color. The shape of the Highlight curve affects the blending between the specular and diffuse color regions of the material. The steeper the curve, the less blending there is and the sharper the edge of specular and glancing highlights. Interface Specular Level—Affects the intensity of the specular highlight. As you increase the value, the highlight grows brighter and the diffuse color grows dimmer. Default=5. Multi-Layer Highlights Click the map button to assign a map to the specular level component. See Specular Level Mapping (page 2–1501). This button is a shortcut: you can also assign specular level mapping in the Maps (page 2–1474) rollout. Glossiness—Affects the size of the specular highlight. As you increase the value, the highlight curve grows narrower and the highlight gets smaller. Default=25. Click the map button to assign a map to the glossiness component. See Glossiness Mapping (page 2–1502). This button is a shortcut: you can also assign specular level mapping in the Maps (page 2–1474) rollout. Highlight graph—This curve shows the effect of adjusting the values of Specular Level and Glossiness. As you decrease Glossiness, the curve grows wider; as you increase Specular Level, the curve grows taller. Multi-Layer Highlights Material Editor > Standard material > Multi-Layer Basic Parameters rollout > First Specular Layer/Second Specular Layer groups Multi-layer highlights consist of two layers, each of them anisotropic. The highlights are transparent to each other. Where they overlap, the Multi-Layer shader blends their colors. To increase or decrease the strength of a highlight (specular) layer: • Change the value of Specular Level. The intensity of the Highlight curves and the highlights in the preview change. At 0% specular level, there is no highlight. At 100% specular level, the curves are at their maximum height with no overloading. At values greater than 100%, the curves are overloaded: they grow wider, and a wider area is at the maximum highlight intensity. The shape of the Highlight curves affects the blending between the specular and diffuse color regions of the material. The steeper the curve, the less blending there is and the sharper the edge of the specular highlight. To adjust the shape (anisotropy) of a highlight (specular) layer: • Change the value of Anisotropy. The width of the white highlight curve and the highlights in the preview change. At 0% anisotropy, both highlight curves are the same and the highlight is circular, as in Blinn and Phong shading. At 100% anisotropy, the white highlight curve and the highlights are extremely narrow. To adjust the orientation of a highlight (specular) layer: • Change the value of Orientation. Procedures To increase or decrease the size of a highlight (specular) layer: • Change the Glossiness value. The width of the Highlight curves and the highlights in the preview change. At 0% glossiness, the curves are at their maximum width. At 100% glossiness, both curves are extremely narrow. Highlights in the preview show the change in orientation. The display of the highlight curve does not change. 1495 1496 Chapter 16: Material Editor, Materials, and Maps Interface Anisotropy—Controls the anisotropy, or shape, of this highlight. At 0, the highlight is round. At 100, the highlight is extremely narrow. One axis of the Highlight graph changes to show changes in this parameter. Default=0. Orientation—Changes the orientation of this highlight. The sample slot shows changes in orientation. This is a value in degrees that can range from 0 to 9,999. Default=0. The First Specular Layer and Second Specular Layer groups have identical controls, which can have different settings. Color—Controls the specular color (page 3–1014) of this highlight. The specular color is the color of the highlight on a shiny surface. Level—Affects the intensity of this specular highlight. As you increase the value, the highlight grows brighter. Default: First layer=5, Second layer=0. Click the map button to assign a map to the specular level component. See Specular Level Mapping (page 2–1501). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Glossiness—Affects the size of this specular highlight. As you increase the value, the highlight gets smaller and the material appears shinier. Default=25. Click the map button to assign a map to the glossiness component. See Glossiness Mapping (page 2–1502). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Highlight graph—These two intersecting curves show the effect of adjusting the values of Level, Glossiness, and Anisotropy. As you decrease Glossiness, the curves grow wider; as you increase Specular Level, the curves grow taller. As you adjust Anisotropy, the white curve changes to show how wide or narrow the highlight is. Translucent Highlights Material Editor > Standard material > Translucent Basic Parameters rollout > Specular Highlight group Like the Blinn shader, the Translucent shader has circular highlights. Procedures To increase or decrease the strength of a highlight: • Change the value of Specular Level. The intensity of the Highlight curve and the highlight in the preview change. At 0% specular level, there is no highlight. At values greater than 100%, the curve is overloaded: it grows wider, and a wider area is at the maximum highlight intensity. At 100% specular level, the curve is at its maximum height with no overloading. The shape of the Highlight curve affects the blending between the specular and diffuse color regions of the material. The steeper the curve, Ambient Color Mapping the less blending there is and the sharper the edge of the specular highlight. To increase or decrease the size of a highlight: • Change the Glossiness value. The width of the Highlight curve and the highlight in the preview change. At 0% glossiness, the curve is at its maximum width. At 100% glossiness, the curve is extremely narrow. Interface Leave Backside Specular on to model materials like translucent plastic. Turn it off to model materials like frosted glass. Tip: When Backside Specular is turned off, the front side is always the one that receives a specular highlight. You can change this by reversing the normals of surfaces that have the translucent-shaded material. Mapping Standard Material Components Ambient Color Mapping Specular Level—Affects the intensity of the specular highlight. As you increase the value, the highlight grows brighter. Default=0. Material Editor > Standard material > Maps rollout > Ambient button Click the map button next to the spinner to assign a map to the specular level component. See Specular Level Mapping (page 2–1501). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Glossiness—Affects the size of the specular highlight. As you increase the value, the highlight gets smaller and the material appears shinier. Default=10. Click the map button next to the spinner to assign a map to the glossiness component. See Glossiness Mapping (page 2–1502). This button is a shortcut: you can also assign specular level mapping in the Maps rollout (page 2–1474). Backside specular—When on, both sides of the material receive a specular highlight. When off, only the front side of the material receives a highlight. Default=on. Mapping the ambient color You can select a bitmap file or procedural map (page 3–997) to map an image to the material’s ambient color (page 3–908). The image is painted on the shaded parts of the object. By default, diffuse mapping maps the ambient component as well, so you seldom need to use a different map for diffuse and ambient components. 1497 1498 Chapter 16: Material Editor, Materials, and Maps If you do want to apply a separate ambient map, first click to turn off the lock button to the right of the long Map buttons in the Maps rollout (page 2–1474). This unlocks ambient and diffuse mapping. The Map button for ambient color becomes available. You can then click the ambient button to select a map. Diffuse Color Mapping Material Editor > Standard material > Maps rollout > Diffuse button (or Color button for the Strauss shader) Note: Ambient color mapping is not visible in viewports or renderings unless the level of ambient light is greater than default value of black. Choose Rendering > Environment, then adjust the level of ambient light using the Environment dialog (page 3–272). Procedure To map the ambient color: 1. Make sure the ambient and diffuse components have their maps unlocked. Click to turn off the lock button. The Map button for ambient color becomes available. 2. Click the Map button for Ambient color. The Material/Map Browser (page 2–1447) is displayed. 3. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 4. Use the map controls to set up the map. Applying a texture by mapping the diffuse color You can select a bitmap file or procedural map (page 3–997) to assign a pattern or texture to a material’s diffuse color (page 3–929). The colors of the map replace the material’s diffuse color component. This is the most common kind of mapping. Mapping the diffuse color is like painting an image on the surface of the object. For example, if you want a wall to be made out of brick, you can choose a map with an image of bricks, such as Bricks (page 2–1658). By default, diffuse mapping applies the same map to the ambient color (page 3–908) as well. You seldom need to use a different map for diffuse and ambient components. It isn’t strictly necessary to lock the ambient and diffuse maps. By turning the lock off and using a different map for each component, you can obtain interesting blend effects. But in general, the purpose of diffuse mapping is to simulate a single surface that is more complex than a basic material, and for this purpose the lock should be on. Diffuse Level Mapping Procedure To map the diffuse color: 1. Make sure the ambient and diffuse components have their maps locked. This button is to the right of the map shortcut buttons for Ambient and Diffuse on the Basic Parameters rollout, and on the Maps rollout in a similar position. It is on by default. When it is on, the map button for the ambient color component is unavailable. Diffuse Level Mapping Material Editor > Standard material > Shader Basic Parameters rollout > Anisotropic, Oren-Nayar-Blinn, or Multi-Level shader > Maps rollout > Diffuse Level button 2. Click the Map button for Diffuse color. The Material/Map Browser (page 2–1447) is displayed. 3. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 4. Use the map controls to set up the map. Mapping diffuse level Top: No mapping Bottom: Mapping diffuse level with a bitmap You can select a bitmap file or procedural map (page 3–997) to control the Diffuse Level parameter. White pixels in the map leave the diffuse level unchanged. Black pixels reduce the diffuse level to 0. Intermediate values adjust the diffuse level accordingly. The diffuse level parameter is available with the Anisotropic (page 2–1480), Oren-Nayar-Blinn (page 2–1482), and Multi-Level (page 2–1481) shaders. Reducing the Amount of the diffuse level map reduces the map’s effect, and increases the effect of the Diffuse Level value on the Basic Parameters 1499 1500 Chapter 16: Material Editor, Materials, and Maps rollout. When the Amount is 0 percent, the map isn’t used at all. Procedure To map the diffuse level value: 1. Click the Map button for Diffuse Level. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. Procedure To map the roughness value: 1. Click the Map button for Diffuse Roughness (Diff. Roughness). The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. 3. Use the map controls to set up the map. Specular Color Mapping Diffuse Roughness Mapping Material Editor > Standard material > Maps rollout > Specular button Material Editor > Standard material > Shader Basic Parameters rollout > Oren-Nayar-Blinn or Multi-Level shader > Maps rollout > Diff. Roughness button You can select a bitmap file or procedural map (page 3–997) to control the Roughness parameter on the Basic Parameters rollout. White pixels in the map increase roughness. Black pixels reduce roughness to 0. Intermediate values adjust roughness accordingly. Note: The Roughness parameter is available only with the Oren-Nayar-Blinn (page 2–1482) and Multi-Level (page 2–1481) shaders, and with the Arch & Design material (mental ray) (page 2–1549). Reducing the Amount of the Diffuse Roughness map reduces the map’s effect, and increases the effect of the Roughness value on the Basic Parameters rollout. When the Amount is 0 percent, the map isn’t used at all. Mapping the specular highlight You can select a bitmap file or procedural map (page 3–997) to apply an image to the material’s specular color component (page 3–1014). The map’s image appears only in the specular highlight areas. When the amount spinner is at 100, all specular color is provided by the map. Specular mapping is used primarily for special effects such as placing an image in a reflection. The important thing to remember is that, unlike Specular Level Mapping Specular Level or Glossiness mapping, which alter the intensity and location of specular highlights, specular mapping alters the color of specular highlights. Procedure To map the specular color: 1. Click the Map button for Specular color. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. highlights completely, and intermediate values reduce the specular highlights accordingly. Mapping the specular level component is different from mapping specular color. Mapping the specular level alters the intensity of highlights, while specular mapping alters the color of highlights. Specular level mapping usually works best when you assign the same map to both Specular Level and Glossiness. (In the Maps (page 2–1474) rollout, you can do this by dragging from one map button to another.) Procedure To map the specular level value: 1. Click the Map button for the Specular Level value. Specular Level Mapping Material Editor > Standard material > Maps rollout > Specular Level button The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Mapping the specular level: the sea reflects more than the land. You can select a bitmap file or procedural map (page 3–997) to alter the intensity of specular highlights, based on the intensity of the bitmap. White pixels in the map produce full specular highlights. Black pixels remove the specular 1501 1502 Chapter 16: Material Editor, Materials, and Maps Glossiness Mapping Material Editor > Standard material > Maps rollout > Glossiness button Procedure To map the glossiness value: 1. Click the Map button for the Glossiness value. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Self-Illumination Mapping Material Editor > Standard material > Maps rollout > Self-Illumination button An object with glossiness mapping. The sea appears more reflective than the land. You can select a bitmap file or procedural map (page 3–997) that affects where specular highlights appear. A map assigned to glossiness determines which areas of the whole surface are more glossy and which areas are less glossy, depending on the intensity of colors in the map. Black pixels in the map produce full glossiness. White pixels remove glossiness completely, and intermediate values reduce the size of the highlight. Mapping the glossiness component is different from mapping specular color. Mapping glossiness alters the location of highlights, while specular mapping alters the color of highlights. Glossiness mapping usually works best when you assign the same map to both Glossiness and Specular Level. (In the Maps rollout, you can do this by dragging from one map button to the other.) (Glossiness was known as Shininess prior to 3ds Max 3.) Mapping self-illumination You can select a bitmap file or procedural map (page 3–997) to map the self-illumination (page 3–1009) value. This makes portions of an object appear to glow. White areas of the map render as fully self illuminating. Black areas render with no self-illumination. Gray areas render as partially self illuminating, depending on the grayscale value. Self-illumination means that the glowing area is not affected by lights in the scene (its ambient Opacity Mapping color component goes away), and does not receive shadows. Procedure To map the self-illumination value: 1. Click the Map button for Self-Illumination. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Opacity Mapping Setting the Amount to 0 is the equivalent of turning the map off. Intermediate Amount values are blended with the Opacity value on the Basic Parameters rollout. Transparent areas of the map become more opaque. Specular highlights are applied to transparent areas of the opacity map, as well as to opaque areas, creating the effect of glass. If you want the transparent areas to look like holes, map the specular level (page 2–1502) as well. Procedure To map the opacity value: 1. Click the Map button for Opacity. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then Material Editor > Standard material > Maps rollout > Opacity button click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Filter Color Mapping Material Editor > Standard material > Maps rollout > Filter Color button The gray levels of an opacity map determine the amount of opacity. You can select a bitmap file or procedural map (page 3–997) to make an object partially transparent. Lighter (higher-value) areas of the map render as opaque; darker areas render as transparent; and values in between are semi-transparent. Setting the opacity map’s Amount to 100 applies all of the map. Transparent areas are fully transparent. Mapping filter color 1503 1504 Chapter 16: Material Editor, Materials, and Maps The filter, or transmissive color, is the color transmitted through transparent or semi-transparent materials such as glass. You can select a bitmap file or procedural map (page 3–997) to map the filter color component. This map applies a transparent-color effect based on the intensity of the map’s pixels. Anisotropy Mapping Material Editor > Standard material > Shader Basic Parameters rollout > Anisotropic or Multi-Level shader > Maps rollout > Anisotropy button You can combine a mapped filter color with volumetric lighting (page 3–288) to create effects such as colored light through a stained-glass window. Ray-traced shadows (page 3–1000) cast by transparent objects are tinted by the filter color. (In version 1 and 2, you specified the filter color on the Basic Parameters rollout (page 2–1470). As of version 3, the filter color is specified on the Extended Parameters rollout (page 2–1471).) Procedure To map the filter color: 1. Click the Map button for Filter color. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Mapping anisotropy. The stretch of the highlight depends on the level of gray in the map. You can select a bitmap file or procedural map (page 3–997) to control the Anisotropy parameter. The map controls the shape of the anisotropic highlight, roughly (but not necessarily) within the area specified by the glossiness parameter. Black and white values have little effect. Maps with a good deal of grayscale values, such as Noise (page 2–1674) or Falloff (page 2–1670), can be very effective. The anisotropy parameter is available with the Anisotropic (page 2–1480) and Multi-Level (page 2–1481) shaders. The effect of mapping anisotropy is not very apparent unless the specular level is fairly high and glossiness is fairly low. Reducing the Amount of the anisotropy map reduces the map’s effect, and increases the effect of the Anisotropy value on the Basic Parameters rollout. When the Amount is 0 percent, the map isn’t used at all. Orientation Mapping Procedure To map the anisotropy value: 1. Click the Map button for Anisotropy. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Orientation Mapping Material Editor > Standard material > Shader Basic Parameters rollout > Anisotropic or Multi-Level shader > Maps rollout > Orientation button The orientation parameter is available with the Anisotropic (page 2–1480) and Multi-Level (page 2–1481) shaders. Reducing the Amount of the orientation map reduces the map’s effect, and increases the effect of the Orientation value on the Basic Parameters rollout. When the Amount is 0 percent, the map isn’t used at all. The effect of mapping orientation, like anisotropy, is not very apparent unless the specular level is fairly high and glossiness is fairly low. Tip: Using an instance of the same map to control both anisotropy and orientation can give you good control over anisotropic highlights. Procedure To map the orientation value: 1. Click the Map button for Orientation. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Mapping anisotropy orientation You can select a bitmap file or procedural map (page 3–997) to control the Orientation parameter. Orientation controls the position of the anisotropic highlight. Mapping orientation changes the highlight’s position. Black and white values have little effect. Maps with a good deal of grayscale values, such as Noise (page 2–1674) or Falloff (page 2–1670), can be very effective. You can also get a good effect using the same map for orientation mapping and bump mapping (page 2–1506). 1505 1506 Chapter 16: Material Editor, Materials, and Maps Metalness Mapping Material Editor > Standard material > Shader Basic Parameters rollout > Strauss shader > Maps rollout > Metalness button Procedure To map the metalness value: 1. Click the Map button for Metalness. The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. Bump Mapping Material Editor > Standard material > Maps rollout > Bump button Mapping metalness Top: No mapping Bottom: Mapping metalness with noise map You can select a bitmap file or procedural map (page 3–997) to control the Metalness parameter. White pixels in the map increase metalness. Black pixels reduce metalness to 0. Intermediate values adjust metalness accordingly. The metalness parameter is available with the Strauss shader (page 2–1483). Reducing the Amount of the metalness map reduces the map’s effect, and increases the effect of the Metalness value on the Basic Parameters rollout. When the Amount is 0 percent, the map isn’t used at all. An object with two different bump maps. You can select a bitmap file or procedural map (page 3–997) to use for bump mapping. Bump mapping makes an object appear to have a bumpy or irregular surface. When you render an object with a bump-mapped material, lighter (whiter) areas of the map appear to be raised, and darker (blacker) areas appear to be low. Note: The effect of a bump map is not previewed in viewports. You must render the scene to see the bump effect. Bump Mapping Bump mapping uses the intensity of the map to affect the surface of the material. In this case, the intensity affects the apparent bumpiness of the surface: white areas protrude, and black areas recede. Use bump maps when you want to take the smoothness off a surface, or to create an embossed look. Keep in mind, however, that the depth effect of a bump map is limited. If you want extreme depth in a surface, you should use modeling techniques instead. For example, the Displace modifier (page 1–629) pushes surfaces or faces in and out based on the intensity of a bitmap image. (Displacement mapping (page 2–1511) is another way to do emboss a surface.) Grayscale images can make effective bump maps. Maps that shade between white and black generally work better than maps with hard edges between the white and black areas. The bump map Amount adjusts the degree of bumpiness. Higher values render as higher relief; low values render as low relief. The bumps are a simulation created by perturbing face normals before the object is rendered. Because of this, bumps don’t appear on the silhouette of bump-mapped objects. Tip: If you render a bump-mapped material and notice aliasing in the highlights, try turning on supersampling (page 2–1459) and rendering again. Note: Most controls on the Output rollout (page 2–1621) don’t affect bump mapping. Only the Invert toggle is considered; it reverses the direction of the bumps. Procedure To assign a bump map: 1. Click the Map button labeled Bump. The Material/Map Browser (page 2–1412) is displayed. 2. Choose from the list of map types (page 2–1617), and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. (If you choose Bitmap as the map type, you first see a file dialog that lets you choose the image file.) 3. Use the map controls to set up the map. Tip: To avoid aliasing caused by a 2D bump map, go to the bump map’s Coordinates rollout. Set Blur to be in the range 0.3 to 0.6, and increase Blur Offset to be greater than 0.0. The default Blur and Blur Offset values work well for mapping other material components, but for bump mapping, lower Blur and higher Blur Offset values give better results. To remove a bump map from a material: Tip: You can disable the map without removing it. Simply turn off the toggle immediately to the left of the map button on the Special Effects rollout. 1. If the Material Editor is displaying the map controls, click the Type button (page 2–1449) to display the Material/Map Browser. If the map controls aren’t visible, click the Bump map button to display them, and then click the Type button. 2. In the Browser, choose NONE as the map type, and then click OK. The map is removed. 1507 1508 Chapter 16: Material Editor, Materials, and Maps Reflection Mapping Material Editor > Standard material > Maps rollout > Reflection button move with the object, but with changes in the view, as do real reflections. The most common use of reflection maps in a realistic scene is to add just a touch of reflection to an otherwise non-reflective surface. By default, reflection map strength is 100 percent, as it is for other maps. For many kinds of surfaces, however, reducing the strength gives the most realistic result. A polished table top, for example, primarily shows a wood grain; the reflections are secondary. Reflection maps look more realistic if you increase the Glossiness and Specular Level values in the Basic Parameters rollout (page 2–1470). They are also affected by the diffuse (page 3–929) and ambient (page 3–908) color values. The darker the color, the stronger the mirror effect. Reflection created by mapping You can select a bitmap file or procedural map (page 3–997) to use as a reflection map. You can create three kinds of reflection: basic reflection maps, automatic reflection maps, and flat-mirror (page 3–942) reflection maps. • A basic reflection map creates the illusion of chrome, glass, or metal by applying a map to the geometry so that the image looks like a reflection on the surface. • An automatic reflection map uses no mapping at all, but looks outward from the center of the object, and maps what it sees onto the surface. Another way to generate reflections automatically is to assign a Raytrace map (page 2–1698) to be the reflection map. • A flat-mirror reflection map is applied to a series of coplanar faces and reflects objects facing it, exactly like a real mirror. Reflection maps don’t need mapping coordinates (page 3–967) because they’re locked to the world, not to the geometry. The illusion of a reflection is created because the map doesn’t Even when the Amount spinner is at 100, the reflection map is tinted by the ambient, diffuse, and specular (page 3–1014) colors. In metal materials, the Diffuse color tints the reflection map. Specifically, the color from the reflection map is multiplied by the diffuse color (including a diffuse map, if one exists). The value (in the HSV (page 3–1001) description) of the diffuse color controls the reflection map intensity. If the diffuse color value is 255, the reflection is at full intensity; if the value is 0, the map is not visible. In non-metal materials, the Specular color multiplies only reflection maps. The value (in the HSV (page 3–1001) description) of the specular color affects the reflection intensity. If the specular color value is 255, the reflection is at full intensity; if the value is 0, the map is not visible. Procedures To create an automatic reflection: 1. In the Maps rollout, click the Map button labeled Reflection. Refraction Mapping 2. In the Material/Map Browser (page 2–1447), choose the Reflect/Refract map type, and then click OK. Adjusting the map’s Strength slider in the parent material’s Maps rollout controls how reflective the material is. At 100 percent, the material is fully reflective. To assign a bitmap as a reflection map: 1. In the Maps rollout, click the Map button labeled Reflection. In the Material/Map Browser (page 2–1447), double-click Bitmap. You can select a bitmap file or a procedural map (page 3–997) such as Reflect/Refract (page 2–1699) to use for refraction mapping. Refraction mapping is similar to reflection mapping. It maps the view onto the surface in such a way that the image looks like you’re seeing it through the surface, rather than being reflected off it. Like a reflection map, a refraction map’s orientation is locked to the view rather than to the object. That is, as you move or rotate the object, the position of the refracted image remains fixed. 2. In the Bitmap Parameters rollout, click the Bitmap button. 3. Use the file dialog to choose the bitmap file. 4. Reduce the Reflection map’s Amount to get the effect you want. Refractions are similar to reflections. Bitmaps simulate reflections, while Reflect/Refract maps generate them based on the scene’s background and geometry. Refraction Mapping Material Editor > Standard material > Maps rollout > Refraction button Setting the Index of Refraction The physical properties of refractive objects often distort the image. A special parameter adjusts this distortion. It is in the parent material’s Extended Parameters rollout (page 2–1471). Index of Refraction—The index of refraction (IOR) controls how severely the material refracts transmitted light. Left at 1.0, the IOR of air, the object behind the transparent object does not distort. At 1.5 the object behind distorts greatly (like a glass marble). At an IOR slightly less than 1.0, the object reflects along its edges (like a bubble seen from under water). Default=1.5 (the IOR of typical glass). Common IORs (assuming the camera is in air or a vacuum) are: Refractions show the scene or background through a refractive object. Material IOR Value Vacuum 1.0 (exactly) Air 1.0003 Water 1.333 Glass 1.5 to 1.7 Diamond 2.419 In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is 1509 1510 Chapter 16: Material Editor, Materials, and Maps in. Typically this is related to the object’s density. The higher the IOR, the denser the object. Material IOR Value Topaz 1.610 You can also use a map to control the index of refraction. IOR maps always interpolate between 1.0 (the IOR of air) and the setting in the IOR parameter. For example, if you set the IOR to 3.55 and use a black-and-white Noise map to control IOR, the IORs rendered on the object will be set to values between 1.0 and 3.55; the object will appear denser than air. If, on the other hand, you set the IOR to 0.5, then the same map values will render between 0.5 and 1.0: as if the camera is under water and the object is less dense than the water. Carbon Bisulfide 1.630 Quartz 1 1.644 Sodium Chloride (Salt) 2 1.644 Glass, Heavy Flint 1.650 Methylene Iodide 1.740 Ruby 1.770 Sapphire 1.770 Glass, Heaviest Flint 1.890 Crystal 2.000 Here are some more IOR values for various materials: Diamond 2.417 Chromium Oxide 2.705 Material IOR Value Copper Oxide 2.705 Carbon Dioxide, Liquid 1.200 Amorphous Selenium 2.920 Ice 1.309 Iodine Crystal 3.340 Acetone 1.360 Ethyl Alcohol 1.360 Sugar Solution 30% 1.380 Alcohol 1.329 Flourite 1.434 Quartz, Fused 1.460 Calspar2 1.486 Procedures Sugar Solution 80% 1.490 To create an automatic refraction: Glass 1.500 1. In the Maps rollout, click the Map button Glass, Zinc Crown 1.517 Glass, Crown 1.520 Sodium Chloride 1.530 Sodium Chloride (Salt) 1 1.544 Polystyrene 1.550 Quartz 2 1.553 Emerald 1.570 Glass, Light Flint 1.575 Lapis Lazuli 1.610 Tip: The Reflect/Refract (page 2–1699) map type used as a Refraction map doesn’t effectively model a material surrounding an object, such as a pencil in a glass of water. For this effect, use either the Thin Wall Refraction (page 2–1703) or the Raytrace map type (page 2–1698). labeled Refraction. 2. In the Material/Map Browser (page 2–1447), choose the Reflect/Refract (page 2–1699) map type, and then click OK. At a Refraction Amount of 100 percent, the material is extremely refractive, regardless of the material’s Opacity setting. At a Refraction Amount of 0 percent, the map is turned off. When the Amount is less than 100 percent, both the Reflect/Refract map and the Opacity setting control transparency. Displacement Mapping To assign a bitmap as a refraction map: 1. In the Maps rollout, click the Refraction map button. 2. Use the Material/Map Browser (page 2–1447) to choose the Bitmap type. 3. Use the file dialog to choose the bitmap file. For bitmapped refractions, you don’t necessarily want to reduce the map strength. The displacement Amount is measured as a percentage of the diagonal of the bounding box for the object that contains the patch or surface. This makes the displacement effect consistent for all surfaces in an object, and it also means that when you scale the object, the displacement is scaled with it. You can apply a displacement map directly to the following kinds of objects: • Bezier patches (page 1–993) Displacement Mapping Material Editor > Standard material > Maps rollout > Displacement button • Editable meshes (page 1–996) • Editable polymeshes (page 1–1022) • NURBS surfaces (page 1–1078) For other kinds of geometry such as primitives, extended primitives, compound objects, and so on, you can’t apply displacement mapping directly. To use displacement mapping with these kinds of objects, apply a Disp Approx (page 1–628) (Displacement Approximation) modifier. This makes the object’s surface displaceable. Disp Approx works with any kind of object that you can convert to an editable mesh. Using displacement mapping to alter a surface A displacement map displaces the geometry of surfaces. The effect is similar to using the Displace (page 1–629) modifier. Unlike bump mapping (page 2–1506), displacement mapping actually changes the geometry of the surface or patch tessellation. Displacement maps apply the gray scale of the map to generate the displacement. Lighter colors in the 2D image push outward more strongly than darker colors, resulting in a 3D displacement of the geometry. Warning: A displacement map generates many triangular faces per surface, sometimes over 1M faces per surface. While displacement mapping can create good effects, there is a large cost in terms of time and memory. Displacement mapping isn’t visible in viewports unless you apply a modifier to make it so. • For NURBS surfaces, you can make displacement mapping visible in viewports and editable as a mesh object by using the Displace NURBS (page 1–515) world space modifier. • For editable meshes and objects with Disp Approx applied to them, use the Displace Mesh (page 1–514) modifier to obtain the same effect. Note: If you apply a UVW Map (page 1–922) modifier to the surface, all maps obtain their coordinates from the modifier except for the displacement map, which always obtains its coordinates from the original surface or the Disp Approx modifier. Under certain circumstances, such as when the underlying mesh is fairly simple, displacement 1511 1512 Chapter 16: Material Editor, Materials, and Maps mapping of an editable mesh can cause problems because of the way the underlying mesh is tessellated. (These problems don’t occur when you apply displacement mapping to a NURBS surface.) When this happens, smoothing does not work properly and you can see the underlying wireframe mesh in the surface itself. To correct this problem, use these techniques: • Avoid applying displacement mapping to large areas of a single color. Map the diffuse color and use a small amount of variation, such as slight amount of noise, in the map you use for the diffuse color. • Add a small amount of noise to the map you use for displacement. This can complicate the tessellation enough to ease the problem. • Add detail to the mesh. The more initial faces, and the smoother the mesh curvature, the more even the displacement mapping will be. You can adjust the Disp Approx modifiers parameters, or you can leave them at their default settings. 2. Go to the Material Editor. 3. In a material’s Maps rollout, click the map button for Displacement. The Material/Map Browser (page 2–1447) is displayed. 4. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 5. Use the map controls to set up the map. For example, if you chose Bitmap as the map type, you now need to select the bitmap file to use. Procedures To apply a displacement map to a NURBS surface, editable mesh, or patch: Raytrace Material 1. In a material’s Maps rollout, click the map button for Displacement. Material Editor > Type button > Material/Map Browser > Raytrace The Material/Map Browser (page 2–1447) is displayed. 2. Choose from the list of map types, and then click OK. The Material Editor is now at the map level, and displays controls for the map parameters. 3. Use the map controls to set up the map. To apply a displacement map to other kinds of objects: 1. Select the object. Go to the Modify panel and choose Disp Approx from the Modifiers drop-down list. Balls using raytrace material to reflect each other Raytrace material is an advanced surface shading material. It supports the same kinds of diffuse Raytrace Material surface shading that a standard material does. It can also create fully raytraced reflections and refractions. It also supports fog, color density, translucency (page 3–1027), fluorescence (page 3–942), and other special effects. The reflections and refractions Raytrace material generates are more accurate than those produced by the Reflect/Refract (page 2–1699) map. Rendering raytraced objects can be slower than using Reflect/Refract. On the other hand, Raytrace is optimized for rendering 3ds Max scenes. You can further optimize it for your scene by excluding specific objects from raytracing. Note: If you want accurate, raytraced reflections or refractions in a standard material you can use the Raytrace map (page 2–1698), which uses the same raytracer. The Raytrace map and material share global parameter settings. Important: Raytrace map and Raytrace material use a surface’s normal to decide whether a ray is entering or exiting a surface. If you flip the normals of an object, you can get unexpected results. Making the material 2-Sided doesn’t correct the problem as it often does with reflections and refractions in Standard materials. In some cases, the colors in the Basic Parameters rollout of Raytrace material behave differently from colors in standard materials. Standard material has a diffuse shading model that does an excellent job of rendering solid, nonreflective objects such as plastic, ceramic, and so on. In effect, this model applies color to the object. The color components in Raytrace material, on the other hand, attempt to model their physical counterparts in nature. In Raytrace material, the surface reflects its Diffuse color component without specular reflection, while the Reflect color component controls the amount of specular reflection. These two material components are layered together. The results you see depend on the layering effect. For example, if the material is not transparent and completely reflective, no diffuse color is visible. If the material is not transparent and completely nonreflective, only the diffuse color is visible. The Dynamics Properties rollout for the Raytrace material contains the same controls as the dynamics properties for a standard material (page 2–1465). Raytrace material has a large user interface with a lot of controls. In general, if you are using Raytrace to create reflections and refractions, the controls in the Basic Parameters rollout are the only ones you need to adjust. The Extended Parameters rollout for Raytrace has controls for special effects. The Raytracer Controls rollout affects the raytracer itself. Use the Raytracer Controls to turn the raytracer on or off, and to toggle other options. Use the Global Raytracer Settings dialog (page 2–1528) (Rendering > Raytrace Globals) to set options globally (for all Raytrace materials and maps in the scene), including recursion depth. Interface Raytrace material has the following rollouts, which are described in these topics: Raytrace Basic Parameters Rollout (page 2–1514) Raytrace Extended Parameters Rollout (page 2–1519) Raytracer Controls Rollout (page 2–1521) SuperSampling Rollout (page 2–1459) Raytrace Maps Rollout (page 2–1523) Raytrace Dynamics Properties Rollout (page 2–1527) The following dialogs are also part of the Raytrace material’s interface: Raytracer Global Parameters Rollout (page 2–1528) Raytracing Acceleration Parameters Dialog (page 2–1531) 1513 1514 Chapter 16: Material Editor, Materials, and Maps Raytrace Exclude/Include Dialog (page 2–1531) Raytrace Antialiaser Dialog: Fast Adaptive Antialiaser (page 2–1533) Raytrace Antialiaser Dialog: Multiresolution Adaptive Antialiaser (page 2–1534) Raytrace Basic Parameters Rollout Main toolbar > Material Editor > Type button > Material/Map Browser > Raytrace > Basic Parameters rollout Menu bar > Tools menu > Material Editor > Type button > Material/Map Browser > Raytrace > Basic Parameters rollout The Basic Parameters rollout for a Raytrace material (page 2–1512) controls the material’s shading, color components, reflectivity or refractivity, and bumps. Interface As with standard materials, you can use a map for Raytrace color components and various other parameters. The small buttons to the right of the color swatches and parameters take you to the Material/Map Browser (page 2–1412), where you select a map of corresponding type. These are shortcuts that also have corresponding buttons in the Maps rollout. If you have assigned a map to one of these colors, the button displays the letter M. An uppercase M means that the corresponding map is assigned and active. A lowercase m means that the map is assigned and inactive (turned off). Shading drop-down list—Chooses a shader. Depending on the shader you choose, the Specular Highlight can change to show the controls for that shader. The alternatives are: • Anisotropic: (page 2–1492) For surfaces with elliptical, "anisotropic" highlights. • Blinn: (page 2–1493) For rounder, softer highlights than Phong shading. • Metal: (page 2–1494) For metallic highlights. • Oren-Nayar-Blinn: (page 2–1493) For matte surfaces such as fabric or terra-cotta. • Phong: (page 2–1493) For surfaces with strong, circular highlights. Phong is the default shading type. 2-Sided—Same as for standard materials. When on, shades and raytraces both sides of faces. By default, objects are one-sided in order to speed up rendering. The basic parameters in this rollout are similar to the basic parameters for standard materials, but the color components of a Raytrace material behave differently. If you have a 2-sided, reflective and refractive object, and you use the raytrace map (page 2–1698) rather than the material, the raytracer runs until it hits the maximum recursion level. This can be time-consuming. Wire—Same as for standard materials. When on, renders the material in wireframe mode (page 3–1034). You can specify the wire size in the Extended Parameters rollout. Raytrace Basic Parameters Rollout With pixels, wires maintains the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. With units, the wires appear thinner at a distance and thicker at close range, as if they were modeled in the geometry. Face Map—Applies the material to the faces of the geometry. If the material is a mapped material, it requires no mapping coordinates (page 3–967). The map is automatically applied to each facet of the object. Faceted—Renders each face of a surface as if it were flat. Note: Raytrace material has the same SuperSampling (page 2–1459) options as a Standard material. Ambient—This is not the same as the standard ambient color. For Raytrace material, this controls an ambient absorption factor: that is, how much the material absorbs ambient light. Setting Ambient to white is the same as locking the ambient and diffuse colors in a standard material. Default=black. • Ambient Color check box—When on, the material uses an ambient color. When off, the material uses a spinner to set a grayscale value only. Default=on. Diffuse—Sets the diffuse color. This is the same as the standard diffuse color. It is the color that the object reflects, without specular reflection. Reflection and transparency effects are layered on top of the diffuse result. When Reflect is 100% (pure white), the diffuse color isn’t visible. (This differs from the standard material.) Default=50% gray. Reflect—Sets the specular reflection color. This is the color that the reflected environment (that is, the rest of the scene) is filtered through. The color’s Value controls the amount of reflection. If your reflect color is saturated and the diffuse color is black, the effect is like colored chrome (for example, colored Christmas tree balls). Default=black (no reflection). If raytracing is off (on the Raytracer Controls rollout), the object still reflects the environment, but ignores other objects in the scene. The environment can be the background color, the environment map, or the map in the Raytrace material’s Environment component. Tip: If you turn off raytraced reflections, set the Reflect color to a color other than black, and use a Reflect/Refract map for the local environment (see the Environment parameter, below), you get the same effect as a reflection map in a standard material. This can improve rendering time. • Color swatch—When on, the color swatch shows the ambient color. To change the color, click the swatch and then use the Color Selector (page 1–161). Note: Raytrace reflects and transmits the IDs in • Mono spinner—When the check box is off, the ambient component is gray, and this spinner lets you adjust the gray value. • Reflect Color check box—When on, the material uses a reflection color. When off, the material uses a spinner to set a grayscale value only. Default=on. Click the map button to assign a map to the ambient component. See Ambient Mapping (page 2–1497). This button is a shortcut: you can also assign ambient mapping on the Raytrace Maps rollout (page 2–1523). material effects channel (page 2–1443) (G-buffer (page 3–946)), so it can create glowing reflections, and so on. • Color swatch—When the check box is on, the color swatch shows the reflection color. To change the color, click the swatch and then use the Color Selector (page 1–161). 1515 1516 Chapter 16: Material Editor, Materials, and Maps • Mono spinner—When the check box is off, the reflection color component is gray, and this spinner lets you adjust the gray value. • Fresnel—Clicking the check box a second time displays this option. When active, applies a Fresnel effect to the reflection. This can add a bit of refraction to the reflecting object, depending on the viewing angle of the object. Click the map button to assign a map to the reflect component. This button is a shortcut: you can also assign reflect mapping in the Raytrace Maps rollout (page 2–1523). Luminosity—Similar to the Standard material’s white is fully transparent, and any value in between filters objects behind the raytraced object. A fully saturated color in both the diffuse and transparency components gives the effect of tinted glass. If you want more of an opaque look, pick the color you want as a transparent color, copy it to the diffuse color, make the diffuse color fully saturated, and then adjust the transparency to get the effect you want. Default=black (no transparency). If raytracing is turned off (in the Raytracer Controls rollout), the object still refracts the environment mapping, but ignores other objects in the scene. Note: When Luminosity is off, the name of this control changes to Self-Illum (Self-Illumination). Note: By separating the diffuse, reflect, and transparency components, Raytrace material gives you a great deal of control over how the object reacts to its environment. For example, an object might diffusely reflect red, specularly reflect green, and transmit blue. This is not a real-world effect, but it can be useful. • Luminosity check box—When on, the material uses a luminosity color. When off, the material uses a spinner to set a grayscale value only for self-illumination. Default=on. • Transparency Color check box—When on, the material uses a transparency color. When off, the material uses a spinner to set a grayscale value only. Default=on. • Color swatch—When the check box is on, the color swatch shows the luminosity color. To change the color, click the swatch and then use the Color Selector (page 1–161). • Color swatch—When the check box is on, the color swatch shows the transparency color. To change the color, click the swatch and then use the Color Selector (page 1–161). • Mono spinner—When the check box is off, the luminosity color component is gray, and this spinner lets you adjust the gray value. • Mono spinner—When the check box is off, the transparency color component is gray, and this spinner lets you adjust the gray value. Click the map button to assign a map to the luminosity component. This button is a shortcut: you can also assign reflect mapping in the Raytrace Maps rollout (page 2–1523). Click the map button to assign a map to the transparency component. See Filter Color Mapping (page 2–1503). This button is a shortcut: you can also assign reflect mapping in the Raytrace Maps rollout (page 2–1523). self-illumination component, except that it does not depend on the diffuse color. You can have a blue diffuse object with red luminosity. Default=black. Transparency—Similar to the standard material’s filter color for transmitted light, combined with the standard material’s opacity controls. This color filters scene elements that are behind the object with Raytrace material. Black is opaque, Index of Refr. (Refraction)—The index of refraction (IOR) controls how severely the material refracts transmitted light. At 1.0, the IOR of air, the object behind the transparent object does not distort. At Raytrace Basic Parameters Rollout 1.5, the object behind distorts greatly, like a glass marble. At an IOR slightly less than 1.0, the object reflects along its edges, like a bubble seen from under water. Default=1.0. Common IORs (assuming the camera is in air or a vacuum) are: Material IOR Value Vacuum 1.0 (exactly) Air 1.0003 Water 1.333 Glass 1.5 to 1.7 Diamond 2.419 In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is in. Typically this is related to the object’s density, and the higher the IOR, the denser the object. You can also use a map to control the IOR. IOR maps always interpolate between 1.0 (the IOR of air) and the setting in the IOR parameter. For example, if the IOR is set to 3.55 and you use a black-and-white Noise map to control IOR, the IORs rendered on the object will be set to values between 1.0 and 3.55. The object will appear denser than air. If, on the other hand, your IOR is set to 0.5, then the same map values will render between 0.5 and 1.0, as if the camera were under water and the object was less dense than the water. Here are some more IOR values for various materials: Material IOR Value Carbon Dioxide, Liquid 1.200 Ice 1.309 Acetone 1.360 Ethyl Alcohol 1.360 Sugar Solution 30% 1.380 Material IOR Value Alcohol 1.329 Flourite 1.434 Quartz, Fused 1.460 Calspar2 1.486 Sugar Solution 80% 1.490 Glass 1.500 Glass, Zinc Crown 1.517 Glass, Crown 1.520 Sodium Chloride 1.530 Sodium Chloride (Salt) 1 1.544 Polystyrene 1.550 Quartz 2 1.553 Emerald 1.570 Glass, Light Flint 1.575 Lapis Lazuli 1.610 Topaz 1.610 Carbon Bisulfide 1.630 Quartz 1 1.644 Sodium Chloride (Salt) 2 1.644 Glass, Heavy Flint 1.650 Methylene Iodide 1.740 Ruby 1.770 Sapphire 1.770 Glass, Heaviest Flint 1.890 Crystal 2.000 Diamond 2.417 Chromium Oxide 2.705 Copper Oxide 2.705 Amorphous Selenium 2.920 Iodine Crystal 3.340 Specular Highlight group The controls in this group affect the appearance of specular highlights. Specular highlights simulate 1517 1518 Chapter 16: Material Editor, Materials, and Maps the surface of the raytraced object reflecting the lights in the scene. Changing the color or intensity of lights in the scene can change the appearance of specular highlights. As in standard materials, as you adjust the values in this group the highlight curve at the right changes to give you an idea of the effect. The material preview in the sample slot also updates. Specular Color—Sets the specular color (page 3–1014), assuming there are white lights in the scene. Click the color swatch to display the Color Selector (page 1–161) and change the highlight color. Click the map button to assign a map to the specular color. See Specular Mapping (page 2–1500). This button is a shortcut: you can also assign specular level mapping in the Raytrace Maps rollout (page 2–1523). The remaining controls in the Specular Highlight group depend on the active shader, as shown next to “Shading:” at the top of this rollout. These highlight controls are the same as for the Standard material shaders. These are the highlight controls available to Raytrace materials: • Anisotropic highlights (page 2–1492) • Blinn, Oren-Nayar-Blinn, and Phong highlights (page 2–1493) • Metal highlights (page 2–1494) Note: Highlight controls that don’t pertain to the current shader are labeled “N/A.” Environment—Specifies an environment map that overrides the global environment map. Both Reflect and Transparency use the scene-wide environment map unless you use this button to specify another map. With this control, you can use different environment maps on a per-object basis, or provide an environment to specified objects when the scene as a whole has none. This map overrides the scene-wide environment for both reflection and refraction. To override for refraction alone, see the Transparency Environment control in the Extended Parameters rollout. Use the check box to turn this map on or off. Tip: You can use any map as the Raytrace environment, including the Reflect/Refract (page 2–1699) map. Reflect/Refract map is often adequate for getting the required look, and it usually renders more quickly than raytracing the entire scene, especially if the Raytrace material is transparent. If you are using Raytrace material just to get the glass to look right on a car’s headlight or on a light bulb hanging in the middle of a room, turn off the raytracer and use an environment map instead. Lock button—Locks the Environment map to the Transparency Environment map (found on the Extended Parameters rollout (page 2–1519)). When on, the Transparency Environment map controls are disabled, and a map applied to the Raytrace Environment applies to the Transparency Environment as well. When off, the Transparency Environment map controls are enabled, and the Transparency Environment can have a different map assigned to it. Default=on. Changing this button’s setting here also changes it on the Extended Parameters rollout (page 2–1519) and the Maps rollout (page 2–1523). Bump—This is the same as bump mapping (page 2–1506) for Standard materials. Click the button to assign the map. Use the spinner to change the bump Amount. Use the check box to turn the map on or off. Raytrace Extended Parameters Rollout Raytrace Extended Parameters Rollout Material Editor > Type button > Material/Map Browser > Raytrace > Extended Parameters rollout The Extended Parameters rollout for a Raytrace material (page 2–1512) controls the material’s special effects, transparency properties, and advanced reflectivity. Interface Object with raytrace material using translucency and fluorescence Extra Lighting—Adds light to the surface of objects with the Raytrace material. You can view this as an ambient lighting color that you can control on a per-material basis, but don’t confuse it with the ambient absorption from the Basic Parameters rollout. Except for the wireframe controls, the controls in the Extended Parameters rollout for Raytrace material are specific to the Raytrace material. Special Effects group The controls in this group are special effects. They are powerful, but you might need to experiment to use them effectively. By mapping this parameter, you can simulate radiosity: the ambient light that results from reflected light in a scene. One effect of radiosity is color bleeding. For example, in strong light a white shirt next to an orange wall will show a reflected orange color. Translucency—Creates a translucent effect (page 3–1027). The Translucency color is a non-directional diffuse reflection. The diffuse color on an object depends upon the angle between the surface normal and the position of the light source. By ignoring the surface normal alignment, this color component simulates translucent materials. For thin objects, the appearance can be like shining a light on the back of a piece of rice paper. You can cast shadows onto the back of the paper and see them projected through the paper; this works well 1519 1520 Chapter 16: Material Editor, Materials, and Maps with a projector light. On thicker objects, you can get some good wax-like effects. Fluorescence and Fluor. Bias—Creates an effect similar to black light on a black light poster. The light from a black light is largely ultraviolet, outside the visible spectrum. Under black light, fluorescent (page 3–942) paints flare or glow. The fluorescence in Raytrace material takes whatever light it sees in the scene, applies the Bias to it, and then, regardless of the color of the lights in the scene, illuminates the fluorescent material as if it were lit by white light. At 0.5, The Bias makes Fluorescence behave just like diffuse coloring. Bias values higher than 0.5 increase the fluorescent effect, making the object brighter than other objects in the scene. Bias values lower than 0.5 make the object dimmer than other objects in the scene. You can get some chromatic shifting effects with this. Tip: Full saturation and value for the Fluorescence color help give the effect of commercial fluorescent paints. Tip: A slight amount of Fluorescence can add to the realism of skin and eyes. Wire group Size—Sets the size of the wire in wireframe mode (page 3–1034). You can set either pixels (the default) or current units. In—Chooses how to measure wire. With pixels, wires maintain the same apparent thickness regardless of the scale of the geometry or how near or far the object is positioned. With units, the wires appear thinner at a distance and thicker at close range, as if they were modeled in the geometry. Pixels—(The default.) Measures wire in pixels. Units—Measures wire in 3ds Max units. Advanced Transparency group The controls in this group let you further tune transparency effects. Transp. (Transparency Environment)—Similar to the environment map in Basic Parameters, but overrides the scene’s environment map for transparency (refraction) only. Transparent objects refract this map, while reflections still reflect the scene (or the Basic Parameters Environment map, if one is chosen). Click the button to choose the Transparency Environment map. Use the check box to toggle the effect of the map. Lock button—Locks the Transparency Environment map to the Environment map (found on the Basic Parameters rollout (page 2–1514)). When on, the Transparency Environment map controls are disabled, and a map applied to the Raytrace Environment applies to the Transparency Environment as well. When off, the Transparency Environment map controls are enabled, and the Transparency Environment can have a different map assigned to it. Default=on. Changing this button’s setting here also changes it on the Basic Parameters rollout (page 2–1514) and the Maps rollout (page 2–1523). Density—The density controls are for transparent materials. If the material is opaque (the default), they have no effect. Color—Sets a transmission color based on thickness. While filter (Transparency) color tints objects behind the transparent object, the density color gives the appearance of color within the object itself, like tinted glass. To use, first make sure the object is transparent. Click the color swatch to display the Color Selector. Choose a color, and then turn on the check box. Raytracer Controls Rollout The Amount controls the amount of density color. Reducing this value reduces the density color effect. Range=0 to 1.0. Default=1.0. Render objects inside raytraced objects—Turns the rendering of objects inside raytraced objects on or off. Default=on. A thin piece of tinted glass is mainly clear, while a thick piece of the same glass has more color. The Start and End controls help you simulate this effect. They are expressed in world units. Start is the position in the object where the density color begins to appear. (Default=0.0.) End is the position in the object where the density color reaches its full Amount value. (Default=25.0) To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value. Render atmospherics inside raytraced objects—Turns the rendering of atmospheric The object must be at least as thick as the Start value before the density color is visible. You can map this color component. Fog—Density fog is also a thickness-based effect. It fills the object with a fog that is both opaque and self illuminated. The effect is like smoke trapped in a glass, or wax at the tip of a candle. Colored fog in tubular objects can resemble neon tubes. To use, first make sure the object is transparent. Click the color swatch to display the Color Selector. Choose a color, and then turn on the check box. The Amount controls the amount of density fog. Reducing this value reduces the density fog effect and makes the fog translucent. Range=0 to 1.0. Default=1.0. The Start and End controls let you adjust the fog effect based on the object’s dimensions. They are expressed in world units. Start is the position in the object where the density fog begins to appear. (Default=0.0.) End is the position in the object where the density fog reaches its full Amount value. (Default=25.0) To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value. You can map this color component. effects inside raytraced objects on or off. Atmospheric effects include fire, fog, volume light, and so on. Default=on. Reflections group Controls in this group give you finer control over reflections. Type—When set to Default, reflections are layered with the Diffuse color. For example, if the material is not transparent and completely reflective, no diffuse color is visible. When set to Additive, reflections are added to the Diffuse color, as in Standard materials (page 2–1465). The diffuse component is always visible. Gain—Controls reflection brightness. The lower the gain value, the brighter the reflection. At a gain of 1.0, no reflection is visible. Default=0.5. Raytracer Controls Rollout Material Editor > Type button > Material/Map Browser > Raytrace material > Raytracer Controls rollout The Raytracer Controls rollout for a Raytrace material (page 2–1512) controls affect the operation of the raytracer itself. It can help you improve rendering performance. 1521 1522 Chapter 16: Material Editor, Materials, and Maps Interface in the renderer’s G-buffer (page 3–946) on or off. Default=on. By default, Raytrace material and Raytrace map reflect effects assigned to a material’s ID, so that G-buffer effects are not lost. For example, if a raytraced object reflects a lamp made to glow with the Video Post Glow filter (Lens Effects Glow), the reflection glows as well. Raytracer Enable group Local Options group Enable Raytracing—Turns the raytracer on or off. Default=on. Even with raytracing off, Raytrace material and Raytrace map still reflect and refract the environment, including both the environment map for the scene, and the environment map assigned to the Raytrace material. Raytrace Atmospherics—Turns the raytracing These two check boxes turn raytracing of reflections or refractions on or off for this material. If you are using the Raytrace material to create only reflections or refractions, turn off the one you aren’t using to improve rendering time. Raytrace Reflections—Turns raytracing of reflective objects on or off. Default=on. Raytrace Refractions—Turns raytracing of transparent objects on or off. Default=on. Local Exclude—Displays the local Exclude/Include dialog (page 2–1531). An object that is excluded locally is excluded from this material only. of atmospheric effects on or off. Atmospheric effects include fire, fog, volume light, and so on. Default=on. Tip: Using exclusion lists is one of the best and Enable Self Reflect/Refract—Turns self Bump Map Effect—Adjusts the effect of bump reflection/refraction on or off. Default=on. maps on raytraced reflections and refractions. Default=1.0. Can an object reflect itself? For example, a teapot’s body reflects the teapot’s handle, but a sphere will never reflect itself. If you don’t need this effect, you can improve render time by turning off this toggle. Tip: If you have a transparent object such as glass, and Enable Self Reflect/Refract is on, you don’t have to make the object 2-sided (page 3–901). The raytracer sees back faces when exiting refractive objects. Reflect/Refract Material IDs—When on, the material reflects effects assigned to material IDs simplest ways to speed up the raytracer. Falloff End Distance group Reflect—Dims reflections to black at this distance. Default=100.0. Refract—Dims refractions to black at this distance. Default=100.0. Note: The toggles for Reflect Falloff and Refract Falloff aren’t animatable. Raytrace Maps Rollout Raytraced Reflection and Refraction Antialiaser group Controls in this group let you override the global antialiasing settings for raytraced maps and materials. They are unavailable if antialiasing is turned off globally. To turn on antialiasing globally, choose Rendering > Raytrace Globals to display the Global Raytracer Settings dialog (page 2–1528). Raytrace Maps Rollout Material Editor > Type button > Material/Map Browser > Raytrace material > Maps rollout As with a standard material, the Maps rollout for a Raytrace material (page 2–1512) contains map buttons for the components of the Raytrace material that can be mapped. Default=unavailable unless global antialiasing is on; on if global antialiasing is turned on. You can choose from a large variety of map types. See Map Types (page 2–1617) to find descriptions of these types, and how to set their parameters. Drop-down list—Chooses which antialiasing settings to use. There are three alternatives: Assigning the Same Map to Different Parameters Use Global Antialiasing Settings—(The default.) Uses the global antialiasing settings. Applying the same map to different parameters is useful in some cases. For example, using a pattern as both a self-illumination map and an opacity map can make the pattern appear to glow and hover in space. On—When on, uses antialiasing. Fast Adaptive Antialiaser—Uses the Fast Adaptive antialiaser, regardless of the global setting. Multiresolution Adaptive Antialiaser—Uses the Multiresolution Adaptive antialiaser, regardless of the global setting. Blending Map Amounts for Opacity and Other Material Components ...—The button with the ellipsis to the right of The Specular Level, Glossiness, Self-Illumination, and Opacity values in the four spinners in the Basic Parameters rollout are blended with their associated map Amount values in the Maps rollout. the drop-down list displays another dialog to let you set antialiasing controls locally. The dialog displayed depends on which alternative you chose in the drop-down list, as follows: Use Global Antialiasing Settings—Clicking ... displays the Global Raytracer Settings dialog (page 2–1528). Fast Adaptive Antialiaser—Clicking ... displays the Fast Adaptive Antialiaser dialog (page 2–1533). Multiresolution Adaptive Antialiaser—Clicking ... displays the Multiresolution Adaptive Antialiaser dialog (page 2–1534). When you change settings for an antialiaser locally, you don’t affect the global settings for that antialiaser. When the Opacity spinner is set to 0, the map Amount spinner completely controls Opacity. That is, reducing the Amount value increases the transparency of the entire surface. On the other hand, when Opacity is 100, reducing the map Amount value increases the opacity of the areas where the Opacity map is less than 1. For example, you can now adjust a Checker Opacity map so that the solid areas remain solid, while the clear areas are semi-transparent. The Specular Level, Glossiness, and Self-Illumination channels all behave in the same way. A setting of 100 applies all of the map; a setting of 0 is the equivalent of turning the map off. 1523 1524 Chapter 16: Material Editor, Materials, and Maps When you load old 3ds Max files or bring earlier materials from the Browser into the Materials Editor, the spinner values for Opacity, Specular Level, Glossiness, and Self-illumination are altered, where necessary, to maintain the equivalent material effect. Procedures To assign a map: 2. 3. Drag the assigned map button to another map button. The Copy (Instance) Map dialog (page 2–1451) is displayed. 4. Choose Copy or Instance, and then click OK. If you choose Swap, the Material Editor swaps the two button assignments. 1. Click a map button. A modal Material/Map Browser (page 2–1412) is displayed. 2. Use the Browse From buttons to choose where you want to look. To view the parent material’s parameters: • If you choose Material Library and the dialog’s display area is blank, you need to open a library file. Click the Open button and then choose the library to browse. 3. Use the display buttons to choose how you view maps. • View List shows each map by name. • View List + Icons shows a small preview and each map’s name. Click Go To Parent to return to the material level, and then open the Maps rollout. If you are currently at the map level in the Material Editor, click Go To Parent. The parameters for the map’s parent material are displayed. Also, the Show End Result and Go to Parent buttons become unavailable. To view a map’s parameters: • If you are currently at the material level in the Material Editor, click the button that corresponds to the map. The parameters for the map are displayed. Also, the Show End Result (page 2–1446) and Go to Parent (page 2–1446) buttons become available. • View Small Icons shows a small preview for each map. In the Basic Parameters rollout, if a map has been assigned to a color component or parameter, the corresponding button displays a letter M. In the Maps rollout, if a map has been assigned, the corresponding button displays the map name. • View Large Icons shows a large preview for each map, along with the map’s name. Tip: You can resize the Browser dialog to increase the size of the display area. This is especially useful when you view large icons. 4. Double-click the map you want. To view a map’s location: To use the same map for different parameters: 1. In the Maps rollout, use a map button to assign a map. The Material Editor is now at the map level, and displays controls for the map parameters. • Click Material/Map Navigator to view the Navigator. The Material/Map Navigator (page 2–1447) displays the hierarchy of the current material, which contains the map. Raytrace Maps Rollout To go to a map using the Navigator: • In the Material/Map Navigator (page 2–1447), click the name of the map, or the green or red parallelogram to the left of the map’s name. 5. The map appears on objects assigned the material in all shaded viewports. Now when you adjust the map, the viewports update to display the adjustments. The Navigator goes to the level of the map, and the Material Editor displays the controls for the map you clicked. Turning on Show Map In Viewport for one map automatically turns this button off for all other maps the material has. As the Navigator’s map tree shows, maps for basic material components and parameters are one level below the material itself. Viewports can display 2D maps such as Checker and Bitmap. They cannot display other kinds of maps such as 3D maps. Show Map in Viewport is unavailable if the active map type cannot display in viewports. To preview a map in a sample slot: 1. Go to the level of the map, as described in previous procedures. The Material Editor displays the map’s parameters. 2. Tip: Displaying mapped materials in a viewport can slow performance. If you don’t need to view the texture, turn off its viewport display. Turn off Show End Result (page 2–1446). The sample slot shows the map instead of the material. If the map contains sub-maps, these are also visible. By default, the sample slot displays a map with no three-dimensional shading. You can change this in the Material Editor Options dialog (page 2–1436). To view the map interactively: 1. Select an object. 2. In the object’s creation parameters, make sure that Generate Mapping Coords is on. If the object type does not have a Generate Mapping Coordinates toggle, you need to assign mapping coordinates by applying a UVW Map modifier (page 1–922). 3. In the Material Editor, assign the mapped material to the object. 4. If you are at the material level (the top level), click the appropriate map button to go to the map level. Turn on Show Map in Viewport (page 2–1445). To turn off interactive texture display: 1. Go to the map level. If you are at the material level, click the appropriate map button to go to the map level. 2. Turn off Show Map in Viewport (page 2–1445). The object is shaded but the map no longer appears. To turn a map off: • Turn off the map’s check box. The check box is to the left of the map’s name on the Maps rollout. To turn a map on: • Turn on the map’s check box. The check box is to the left of the map’s name on the Maps rollout. 1525 1526 Chapter 16: Material Editor, Materials, and Maps To change a map’s strength: • Adjust the map’s Amount spinner in the Maps rollout. The material’s sample slot reflects the change. If the new map type does not have components, it simply replaces the original map type. Interface Note: Adjusting a map’s output (in the map’s Output rollout) can also change the map’s strength. To move directly to an ancestor: 1. Click the arrow to the right of the map’s name (page 2–1448) field. A drop-down list of ancestors is displayed. 2. Click a name in the Ancestor list. With this list, you can skip intermediate levels in the tree. The Ancestor drop-down list shows only part of the tree. It does not show side branches and siblings. To view these, use the Material/Map Navigator (page 2–1447). You can also use the Go Forward to Sibling (page 2–1447) and Go to Parent (page 2–1446) buttons. To change a map type: 1. At the level of a map, click the button labeled Type below the Material Editor toolbar. A modal Material/Map Browser (page 2–1412) is displayed. If you were at a map, it lists only maps (if you were at a material when you clicked Type, the Browser lists only materials). 2. Choose a map type from the list, and then click OK. If you change a map type and the new map type can have component maps, a Replace Map dialog is displayed. This dialog gives you a choice between discarding the original map or using it as a component map. The Maps rollout for Raytrace contains a wide button for each map type. Click this button to select a bitmap file stored on disk or to select a procedural-map type (page 3–997). After you select a map, its name and type appears on the button. Use the check box to the left of the button to turn the effect of the map off and on. When the check box is off, the map is not computed and has no effect in the renderer. The Amount spinner determines the amount that the map affects the material, expressed as a percentage of full intensity. For example, a diffuse map at 100% is completely opaque and covers the base material. At 50%, it is semi-transparent and the base material (the diffuse, ambient, and other colors of the material without mapping) shows through. Raytrace Dynamics Properties Rollout Lock button—Locks the Environment map to the Transparency Environment map. When on, the Transparency Environment map controls are disabled, and a map applied to the Raytrace Environment applies to the Transparency Environment as well. When off, the Transparency Environment map controls are enabled, and the Transparency Environment can have a different map assigned to it. Default=on. Changing this button’s setting here also changes it on the Basic Parameters rollout (page 2–1514), and the Extended Parameters rollout (page 2–1519). Diffusion Mapping The Diffusion map component lets you apply an additional, second texture to modify the Diffuse component. Typically, you will want to reduce the Amount of this map to allow the main Diffuse map to show through. For example, you might have a clean, bright image for a billboard. You use this image as the Diffuse map, and then use a second map as a Diffusion map to apply soot and city grime. Tip: Animating the Amount can change the appearance of the material over time, letting the Diffusion map either conceal or reveal the underlying Diffuse map. Note: Show Map In Viewport does not display the Diffusion map. Raytrace Dynamics Properties Rollout Material Editor > Type button > Material/Map Browser > Raytrace material > Dynamics Properties rollout As with a standard material, the Dynamics Properties rollout for a Raytrace material (page 2–1512) lets 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. Since 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 Materials Editor lets you alter the surface properties at the sub-object level, through use of a Multi/Sub-Object material (page 2–1594). As a default, the values in the Dynamics Properties rollout provide a surface that’s similar to Teflon-coated hardened steel. Interface Bounce Coefficient—Sets how far an object bounces after hitting a surface. The higher the value, the greater the bounce. A value of 1 represents a "perfectly elastic collision," or a bounce in which no kinetic energy is lost. Default=1.0. If you’ve seen the desktop toy with four ball bearings swinging back and forth on strings and hitting one another, you’ve seen an example that comes very close to a bounce coefficient of 1. Generally, hardened steel or a super ball have a bounce near 1, while lead has a bounce near 0. Static Friction—Sets how difficult it is for the object to start moving along a surface. The higher this value, the more difficult. Default=0.0. If something weighs ten pounds and sits on Teflon (a static friction of near 0), 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, on the order of 0.5 to 0.8. A static 1527 1528 Chapter 16: Material Editor, Materials, and Maps friction near 1 is very difficult to create in the real world without adhesives or friction material. Sliding Friction—Sets how difficult it is for the object to keep moving over a surface. The higher this value, the more difficult for the object to keep moving. Default=0.0. these controls have no impact on the mental ray renderer, which has its own ray-tracing controls. Interface 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 0.05 to 0.2), the sliding friction drops to a significantly lower value, on the order of .01 to 0.1. For some materials, such as specific friction materials like brake linings, sliding friction is just as high as static friction because it is used in conjunction with a nearly frictionless material such as hardened polished steel. Raytracer Global Parameters Rollout Rendering menu > Raytracer Settings Rendering menu > Render > Render Scene dialog > Choose Default Scanline Renderer as the active production renderer. > Raytracer panel > Raytracer Global Parameters rollout Ray Depth Control group Ray depth is also known as recursion depth. This is how many times a ray is allowed to bounce before it is considered lost or trapped. Main toolbar > Render Scene > Render Scene dialog > Choose Default Scanline Renderer as the active production renderer. > Raytracer panel > Raytracer Global Parameters rollout Parameters in the Global Raytracer Settings dialog globally control the raytracer itself. That is, they affect all Raytrace materials and Raytrace maps in your scene. They also affect the generation of Advanced Ray-traced shadows (page 3–1000) and Area shadows (page 3–911). Note: These controls adjust ray-trace settings for the scanline renderer only. The settings of Upper left: Ray depth is zero Upper right: Ray depth of 2 Lower middle: Extremely high ray depth Raytracer Global Parameters Rollout Maximum Depth—Sets the maximum recursion depth. Increasing this value potentially increases the realism of your rendered scene, at a cost of rendering time. You can reduce this value to reduce rendering time. Range=0 to 100. Default=9. Cutoff Threshold—Sets a cutoff threshold for environment background, or is set locally in the Raytracer Parameters rollout (page 2–1704). Global Ray Antialiaser group Controls in this group let you set global antialiasing for raytraced maps and materials. adaptive ray levels. If the contribution of any ray to the final pixel color drops below the cutoff threshold, the ray is terminated. Default: 0.05 (5% of the final pixel color). This can speed up your rendering time considerably. Color to use at Max Depth—As a rule, when a ray reaches the maximum depth, it is rendered the same color as the background environment. You can override the color returned at maximum depth by either selecting a color, or setting an alternative environment map. This can make the "lost" ray invisible in the scene. Tip: If you are having trouble with getting complex Above: No antialiasing objects to render, especially glass, specify the maximum recursion color to something obvious, like magenta, and your background color to something that contrasts, like cyan. The chances are that a lot of your rays are getting lost in either maximum recursion or just being shot off into the world, totally missing anything you think they should strike. Try rendering the scene again. If this is the problem, try reducing the Maximum Depth value. Below: Antialiasing of reflections • Specify—Specifies what color the raytracer returns when the ray is considered lost or trapped. Click the color swatch to change this color. settings to use. There are two alternatives: • Background—(The default.) Returns the background color when the ray is considered lost or trapped. For Raytrace material, the background color is the global environment background or the environment specified locally for the material. For Raytrace map, the background color is either the global Tip: Turning on Supersample for a Raytraced material (in the Raytrace Basic Parameters rollout (page 2–1514)) usually provides adequate antialiasing. Use one of the raytrace antialiasers (Fast Adaptive or Multiresolution Adaptive) when you want to blur reflections or refractions. On—When on, uses antialiasing. Default=off. Drop-down list—Chooses which antialiasing • Fast Adaptive Antialiaser—(The default.) Uses the Fast Adaptive antialiaser. • Multiresolution Adaptive Antialiaser—Uses the Multiresolution Adaptive antialiaser. ...—The button with the ellipsis to the right of the drop-down list displays another dialog to let you set antialiasing controls globally. The dialog displayed depends on which alternative you chose in the drop-down list, as follows: 1529 1530 Chapter 16: Material Editor, Materials, and Maps • Fast Adaptive Antialiaser—Clicking ... displays the Fast Adaptive Antialiaser dialog (page 2–1533). • Multiresolution Adaptive Antialiaser—Clicking ... displays the Multiresolution Adaptive Antialiaser dialog (page 2–1534). Global Raytrace Engine Options group These options are comparable to the local options on Extended Parameters rollout (page 2–1519) and the Raytracer Controls rollout (page 2–1521). Their setting affects all Raytrace materials and Raytrace maps in the scene, unless you set local overrides. Note: In versions prior to 3ds Max 5, these controls were found on the Raytracer Options dialog, which is no longer present. Enable Raytracing—Turns the raytracer on or off. Default=on. Even with raytracing off, Raytrace material and Raytrace map still reflect and refract the environment, including both the environment map for the scene, and the environment map assigned to the Raytrace material. Raytrace Atmospherics—Turns the raytracing of atmospheric effects on or off. Atmospheric effects include fire, fog, volume light, and so on. Default=on. Enable Self Reflect/Refract—Turns self reflection/refraction on or off. Default=on. Can an object reflect itself? For example, a teapot’s body reflects the teapot’s handle, but a sphere will never reflect itself. If you don’t need this effect, you can improve render time by turning off this toggle. Tip: If you have a transparent object such as glass, and Enable Self Reflect/Refract is on, you don’t have to make the object 2-sided (page 3–901). The raytracer sees back faces when exiting refractive objects. Reflect/Refract Material IDs—When on, the material reflects effects assigned to material IDs in the renderer’s G-buffer (page 3–946) on or off. Default=on. By default, Raytrace material and Raytrace map reflect effects assigned to a material’s ID, so that G-buffer effects are not lost. For example, if a raytraced object reflects a lamp made to glow with the Video Post Glow filter (Lens Effects Glow), the reflection glows as well. Render objects inside raytraced objects—Turns the rendering of objects inside raytraced objects on or off. Default=on. Render atmospherics inside raytraced objects—Turns the rendering of atmospheric effects inside raytraced objects on or off. Atmospheric effects include fire, fog, volume light, and so on. Default=on. Enable Color Density / Fog Effects—Turns the color density and fog features on or off. Acceleration Controls—Click to display the Raytracing Acceleration Parameters dialog (page 2–1531), which lets you adjust settings. Exclude—Click to display the Raytrace Exclude/Include dialog (page 2–1531), which lets you exclude objects from ray-tracing. Show Progress Dialog—When on, rendering displays a window with progress bars titled Raytrace Engine Setup. Default=on. Show Messages—When on, displays a window, Raytrace Messages, that shows status and progress messages from the raytrace engine. Default=off. Raytracing Acceleration Parameters Dialog Raytracing Acceleration Parameters Dialog Rendering menu > Raytracer Settings > Render Scene dialog > Raytracer panel > Raytracer Global Parameters rollout > Global Raytrace Engine Options group > Acceleration Controls button The controls in this dialog let you override the default acceleration values and specify your own requirements. Typically you don’t need to use them, but if you are familiar with the requirements of your scene, they can help you optimize raytrace rendering for your specific needs and time constraints. Raytracing subdivides the scene, organizing it into a tree for raytrace purposes. A node in this tree is known as a "voxel." Voxel trees are dynamic, and you can’t explicitly specify the structure of the tree. (If you set Max. Divisions to 2, the tree is an octree, which is possibly a more familiar data structure.) Max. Depth—Sets the maximum number of lattice subdivisions. Default=8. Raytrace Exclude/Include Dialog Rendering menu > Raytrace Global Include/Exclude Material Editor > Raytrace material > Raytracer Controls rollout > Local Exclude button Material Editor > Raytrace map > Raytracer Parameters rollout > Local Exclude button Rendering menu > Raytracer Settings > Render Scene dialog > Raytracer panel > Raytracer Global Parameters rollout > Global Raytrace Engine Options group > Exclude button Main toolbar > Render Scene > Render Scene dialog > Raytracer panel > Raytracer Global Parameters rollout > Global Raytrace Engine Options group > Exclude button Tip: If your scene is very unbalanced (for example, it has a giant planet object and a cluster of small spacecraft objects) keep the Balance setting low. Interface Upper left: Bottle excluded from both mirrors Upper right: Bottle reflected by both mirrors Lower middle: Bottle excluded from one mirror Face Limit—Sets the maximum number of faces allowed in a lattice voxel before it is subdivided. Default=10. Balance—Determines the sensitivity of the subdivision algorithm. Increasing this value uses more memory but can increase performance. Default=4.0. Max. Divisions—Sets the initial lattice dimension. For example, 4 is a 4 x 4 x 4 lattice. Default=30. These dialogs let you specify which objects the raytracer will and won’t see. This is a good optimization when you are working with complex scenes and all you really need is for an object to reflect itself or some other, simpler elements in the scene. The global dialog affects all Raytrace materials and Raytrace maps in your scene. The local dialog affects only the current material or map. 1531 1532 Chapter 16: Material Editor, Materials, and Maps Tip: Another good use for exclusion can be when Exclude/Include—Choose whether raytracing will you are working on a scene where the world-space scale of objects is not realistic. For example, consider an animation of a space dog-fight, with a planet and its moon in the background. You would use a planet that was actually much smaller, relative to the fighters, than an actual planet. (For example, the planet might be only five times bigger than the fighters, and the moon only half as big as the fighters.) If the fighters are reflective, the reflections of the planet and moon will be incorrect and will give away the fact that you are using miniatures. In this case, raytrace the reflective fighters, and laser blasts, and so on, but exclude the planet and moon props from the raytracer. Create an environment map that represents the planet and moon at their correct scale, and make that the Raytrace material’s local environment. When you render, the scale of the planet and moon geometry appears to be correct, and the reflections on the fighters will behave as your eye expects. exclude or include the objects named in the list on the right. Interface Illumination / Shadow Casting / Both—For the raytracer, this is turned off (always set to Illumination). 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. Search Field—The edit box above the Scene Objects list lets you search for object names by entering names that use wildcards. Display Subtree—When on, indents the list according to the object hierarchy. Case Sensitive—When on, uses case sensitivity when searching object names. 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. OK—Closes the dialog and retains the exclude or include operations you performed. Cancel—Closes the dialog and cancels the exclude or include operations you performed. Both the Global and the Local Exclude/Include dialogs contain the following controls: Raytrace Antialiaser Dialog: Fast Adaptive Antialiaser Raytrace Antialiaser Dialog: Fast Adaptive Antialiaser Rendering menu > Raytracer Settings > Global Raytracer Settings dialog > Global Ray Antialiaser group > Turn on global antialiasing. > Choose Fast Adaptive Antialiaser from the drop-down list. > ... button Material Editor > Type button > Material/Map Browser > Raytrace material > Raytracer Controls rollout > Raytraced Reflection and Refraction Antialiaser group (enabled only if antialiasing is globally enabled) > Choose Fast Adaptive Antialiaser from the drop-down list. > ... button Material Editor > Type button > Material/Map Browser > Raytrace map > Raytracer Parameters rollout > Raytraced Reflection and Refraction Antialiaser group (enabled only if antialiasing is globally enabled) > Choose Fast Adaptive Antialiaser from the drop-down list. > ... button The Fast Adaptive Antialiaser dialog changes settings for the Raytrace material and maps Fast Adaptive antialiaser. You can use this dialog either globally, from the Global Raytracer Settings dialog (page 2–1528), or locally, from the Raytracer Controls rollout (page 2–1521). When you locally change settings for an antialiaser, you don’t affect the global settings for that antialiaser. Interface Blur Offset—Affects the sharpness or blurriness of the reflections or refractions without regard to distance. You can use Blur Offset to soften or defocus the details of a reflection or refraction. The value is specified in pixels. Default=0.0. Tip: The default Blur Offset setting usually produces good results. If you see aliasing in reflections or refractions, increase its value in increments of 0.5 until the aliasing goes away. See Blur/Blur Offset (page 3–918). Blur Aspect—This is an aspect ratio that changes the shape of the blur. Usually you will not need to change it. Default=1.0. Tip: If you see aliasing that occurs mostly along horizontal lines, try increasing Blur Aspect to 1.5. This changes the shape of the blurred effect. The reverse is also true. If aliasing occurs mostly along vertical lines, try decreasing Blur Aspect to 0.5. Defocusing—Defocusing is a blur based on distance. With Defocus, objects near the surface are not blurred, but objects farther away are blurred. The rays cast are spread as they leave the Raytrace material object’s surface. Default=0.0. Tip: Increasing the value of Defocusing can give a good distance blurring effect. Small adjustments are usually adequate. Try starting with a value less than 0.1, and increase or decrease it as necessary. Also try adjusting Reflect Falloff in Raytrace material or Attenuation in Raytrace map to get the best distance blurring effect. Defocus Aspect—This is an aspect ratio that changes the shape of the defocusing. Usually you will not need to change it. Default=1.0. Blur / Defocus (Distance Blur) group Blur Offset is similar to blur offset for Bitmaps, while defocus is based on distance. 1533 1534 Chapter 16: Material Editor, Materials, and Maps Raytrace Antialiaser Dialog: Multiresolution Adaptive Antialiaser Interface Rendering menu > Raytracer Settings > Render Scene dialog > Raytracer panel > Raytracer Global Parameters rollout > Raytracer Global Parameters > Global Ray Antialiaser group > Turn on global antialiasing. > Choose Multiresolution Adaptive Antialiaser from the drop-down list. > ... button Material Editor > Type button > Material/Map Browser > Raytrace material > Raytracer Controls rollout > Raytraced Reflection and Refraction Antialiaser group (enabled only if antialiasing is globally enabled) > Choose Multiresolution Adaptive Antialiaser from the drop-down list. > ... button Material Editor > Type button > Material/Map Browser > Raytrace map > Raytracer Parameters rollout > Raytraced Reflection and Refraction Antialiaser group (enabled only if antialiasing is globally enabled) > Choose Multiresolution Adaptive Antialiaser from the drop-down list. > ... button Adaptive Control group The Multiresolution Adaptive Antialiaser dialog changes settings for the Raytrace material and maps Multiresolution Adaptive antialiaser. You can use this dialog either globally, from the Global Raytracer Settings dialog (page 2–1528), or locally, from the Raytracer Controls rollout (page 2–1521). When you locally change settings for an antialiaser, you don’t affect the global settings for that antialiaser. Initial Rays—Sets the initial number of rays cast per pixel. Default=4. Threshold—Determines the sensitivity of the adaptation algorithm. It can range from 0 to 1, where 0 always casts the maximum number of rays and 1 always casts only the minimum number of rays. Default=0.1. Max. Rays (Maximum Rays)—Sets the maximum number of rays the algorithm will cast. Default=32. Blur / Defocus (Distance Blur) group Blur Offset is similar to blur offset (page 3–918) for bitmaps, while Defocusing is based on distance. Blur Offset—Affects the sharpness or blurriness of the reflections or refractions without regard to distance. You can use Blur Offset to soften or defocus the details of a reflection or refraction. The value is specified in pixels. Default=0.0. Tip: The default Blur Offset setting usually produces good results. If you see aliasing in reflections or refractions, increase its value in increments of 0.5 until the aliasing goes away. Architectural Material Blur Aspect—This is an aspect ratio that changes the shape of the blur. Usually you will not need to change it. Default=1.0. Tip: If you see aliasing that occurs mostly along horizontal lines, try increasing Blur Aspect to 1.5. This changes the shape of the blurred effect. The reverse is also true. If aliasing occurs mostly along vertical lines, try decreasing Blur Aspect to 0.5. Defocusing—Defocusing is a blur based on distance. With Defocus, objects near the surface are not blurred, but objects farther away are blurred. The rays cast are spread as they leave the Raytrace material object’s surface. Default=0.0. Tip: Increasing the value of Defocusing can give a good distance blurring effect. Small adjustments are usually adequate. Try starting with a value less than 0.1, and increase or decrease it as necessary. Also try adjusting Reflect Falloff in Raytrace material or Attenuation in Raytrace map to get the best distance blurring effect. Defocus Aspect—This is an aspect ratio that changes the shape of the defocusing. Usually you will not need to change it. Default=1.0. Architectural material, with some limitations described below. Tip: If you don’t need the degree of realism that the Architectural material provides, you can use a standard material (page 2–1465) or other material type. Material Templates When you create a new material, you can choose from a variety of templates. A template is simply a set of preset material parameters, which approximates the kind of material you want to create, and gives you a starting point. See Templates Rollout (page 2–1536). Rendering Architectural Materials with the mental ray Renderer The mental ray Renderer (page 3–78) can render Architectural materials. There are some limitations, as follows: • Emit Energy (Based on Luminance): This setting is ignored. The Architectural material does not contribute to the scene’s lighting. • Sampling Parameters: These settings are ignored, as the mental ray renderer uses its own sampling. Architectural Material The settings for an Architectural material are physical properties, so it provides the greatest possible realism when used with photometric lights (page 2–1301) and radiosity (page 3–51). With this combination of features, you can create lighting studies with a high degree of accuracy. It is not recommended that you use the Architectural material with standard 3ds Max lights in the scene, or with the Light Tracer. The point of this material is to provide accurate modeling. Use it with photometric lights and radiosity. The mental ray renderer, on the other hand, can render the Tip: When rendering with mental ray, instead of the Architectural material, we highly recommend that you use the Arch & Design material (page 2–1549) instead. This material was designed especially for mental ray and provides superior flexibility, rendering characteristics, and speed. Interface Templates Rollout (page 2–1536) Physical Qualities Rollout (page 2–1536) Special Effects Rollout (page 2–1539) Advanced Lighting Override Rollout (page 2–1540) SuperSampling Rollout (page 2–1459) 1535 1536 Chapter 16: Material Editor, Materials, and Maps mental ray Connection Rollout (page 2–1461) Templates Rollout Material Editor > Architectural material > Templates rollout The Templates rollout gives you a list of material types to choose from. A template is simply a set of preset parameters for the Physical Qualities rollout, which approximates the kind of material you want to create, and gives you a starting point. Once you choose a template, you can adjust its settings and add maps (page 2–1617) to enhance realism and improve the material’s appearance. The templates do not affect the Diffuse Color on the Physical Qualities rollout, only the numeric settings. Interface Template Comments Metal - Flat Even less shiny Metal - Polished Highly shiny Mirror Completely shiny Paint Flat Another neutral white material Paint Gloss Also white, but shiny Paint Semi-Gloss Also white, only slightly shiny Paper Paper - Translucent Plastic Stone A good base for a diffuse map Stone Polished Has a bit of shininess; also a good base for a diffuse map User Defined Neutral; a good base for a diffuse map User-Defined Metal Somewhat shiny; also a good base for a diffuse map Water Completely clear and shiny Wood Unfinished Neutral; a good base for a map Template drop-down list—Chooses the kind of material you are designing. Each template provides preset values for the various material parameters. Wood Varnished These are the material templates provided with 3ds Max. The purpose of most templates is clear, so the table doesn’t comment on all of them. Physical Qualities Rollout Template Comments Ceramic Tile - Glazed Material Editor > Architectural material > Physical Qualities rollout When you create a new Architectural material (page 2–1535) or edit an existing one, the settings on the Physical Qualities rollout are the ones you are most likely to need to adjust. Fabric Glass - Clear Glass - Translucent Ideal Diffuse A neutral white material Masonry A good base for a diffuse map Metal Shiny and reflective Metal - Brushed Less shiny Procedure To match a material’s luminance to a light: Warning: Only photometric lights give correct luminance. Also, the mental ray renderer disregards the Emit Energy setting. Physical Qualities Rollout • Click to turn on Set Luminance From Light (below the Luminance setting), then in a viewport, click the light. After you choose the light, the button turns off once more. Tip: If you are using a radiosity solution (page 3–51), make sure to turn on Emit Energy (Based On Luminance) for any material whose luminance is greater than zero. This control is on the Advanced Lighting Override rollout (page 2–1540). Diffuse Map—These controls assign a map to the material’s diffuse component. To assign a map, click the oblong button (labeled “None” by default). This displays the Material/Map Browser. In the Browser, choose the map type, and then click OK. If you choose Bitmap as the map type, an additional dialog prompts you to choose the particular bitmap file to use. While a map is assigned to the material, its name appears as the map button’s label. Interface • Amount spinner—The spinner at the left sets the amount of diffuse map to use. This value is a percentage: at 100.0, only the map is visible; at lower amounts, the diffuse color shows through; at 0.0, the map is not visible at all. • On/off—The check box between the spinner and the map button is an on/off switch. When on, the map appears in the material. When off, the map does not appear. Shininess—Sets the shininess of the material. This Diffuse Color—Controls the diffuse color (page 3–929). The diffuse color is the color this material has in direct light. Click the color swatch to display the Color Selector (page 1–161) and change the diffuse color. Set color to texture average—Click to change the diffuse color to an average of the colors in the current diffuse map. (If no map is assigned, this button has no effect.) This button is useful when you are going to reduce the diffuse map’s Amount. When the diffuse map pattern appears over an average of itself, for most kinds of materials the effect is more realistic than when the pattern appears over an unrelated color. Warning: This button will change the diffuse color even if the diffuse map is turned off. value is a percentage: at 100.0, the material is as shiny as possible; at lower values, it is less shiny; at 0.0, it is not shiny at all. In general, the shinier a material is, the smaller its specular highlights appear. Specular highlights are reflections of the lights that illuminate the material. (The index of refraction can also affect the size of highlights.) Shininess also controls how much the material reflects other objects in the scene. Note: Shininess alone is not sufficient to produce specular reflections and highlights on a surface. You must also consider the Index Of Refraction (IOR), described below. The amount spinner for a shininess map scales the map. If no map is assigned, the spinner value is used by itself. 1537 1538 Chapter 16: Material Editor, Materials, and Maps Transparency—Controls how transparent the material is. This value is a percentage: at 100.0, the material is completely transparent; at lower values, the material is partly opaque; and at 0.0, the material is completely opaque. In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is in. Typically this is related to the object’s density: the higher the IOR, the denser the object. Tip: The effect of transparency is best previewed against a pattern background. If the material preview doesn’t show a pattern of colored checks, right-click the material preview or the map preview, and choose Background from the pop-up menu. The IOR affects how shiny a material appears; or, in the case of transparent materials such as water or glass, the amount of distortion. For nontransparent materials, the higher the IOR, the more light is reflected from the material, and the shinier the material appears. The amount spinner for a transparency map scales the map. If no map is assigned, the spinner value is used by itself. A refractive index of 1.0 means that all light is transmitted into the material. In this case, even if the material has a high Shininess value, the surface appears perfectly diffuse, and shows no specular highlights. Translucency—Controls how translucent the material is. A translucent object transmits light, but also scatters it within the object. This value is a percentage: at 0.0, the material is completely opaque; at 100.0, the material is as translucent as possible. The amount spinner for a translucency map scales the map. If no map is assigned, the spinner value is used by itself. Index of Refraction—The index of refraction (IOR) controls how severely the material refracts transmitted light, and how reflective the material appears. At 1.0, the IOR of air, the object behind the transparent object does not distort. At 1.5, the object behind distorts greatly, like a glass marble. Range=1.0 to 2.5. Common IORs (assuming the camera is in air or a vacuum) are: Material IOR Value Vacuum 1.0 (exactly) Air 1.0003 Water 1.333 Glass 1.5 to 1.7 Diamond 2.419 Luminance cd/m2—When its luminance is greater than 0.0, the material appears to glow, and if you turn on Emit Energy (see below), it contributes energy to the radiosity solution (page 3–51). Luminance is measured in candelas per meter squared. The amount spinner for a luminance map scales the map. If no map is assigned, the spinner value is used by itself. Set luminance from light—Obtains the material’s luminance from a light in the scene. Click to turn on this button, then click a light in a viewport. The material’s luminance is set to match the luminance of the light, and the button is turned off once more. 2-Sided—When on, makes the material 2-sided (page 3–901). Applies the material to both sides of selected faces. Raw Diffuse Texture—When on, excludes the material from lighting and exposure control. This makes the material render with a completely flat look, using the pure RGB values of the diffuse color or map. Default=off. Special Effects Rollout Special Effects Rollout Material Editor > Architectural material > Special Effects rollout When you create a new Architectural material (page 2–1535) or edit an existing one, the settings on the Special Effects rollout let you assign maps that create bumps or displacement, adjust light intensity, or control transparency. Displacement controls—These controls assign a displacement map (page 2–1511) to the material. To assign a map, click the oblong button (labeled “None” by default). This displays the Material/Map Browser. In the Browser, choose the map type, and then click OK. If you choose Bitmap as the map type, an additional dialog prompts you to choose the particular bitmap file to use. While a map is assigned to the material, its name appears as the map button’s label. Interface Bump controls—These controls assign a bump map (page 2–1506) to the material. To assign a map, click the oblong button (labeled “None” by default). This displays the Material/Map Browser. In the Browser, choose the map type, and then click OK. If you choose Bitmap as the map type, an additional dialog prompts you to choose the particular bitmap file to use. While a map is assigned to the material, its name appears as the map button’s label. • Amount spinner—The spinner at the left sets the amount of bump mapping to use. At 1000.0, bump mapping has its greatest effect; at lower amounts, the bumps are less pronounced; at 0.0, the bumps are not visible at all. Negative values reverse the direction of the bump effect. Range: –1000.0 to 1000.0. • On/off—The check box between the spinner and the map button is an on/off switch. When on, the map is used in the material. When off, the map is not used. • Amount spinner—The spinner at the left sets the amount of displacement mapping to use. At 1000.0, displacement mapping has its greatest effect; at lower amounts, the displacement is less pronounced; at 0.0, the displacement are not visible at all. Negative values reverse the direction of the displacement. Range: –1000.0 to 1000.0. • On/off—The check box between the spinner and the map button is an on/off switch. When on, the map is used in the material. When off, the map is not used. Intensity controls—These controls assign an intensity map to the material, modulating the material’s brightness. The map is treated as a black-and-white scale of intensity values. Tip: Applying a low-frequency Noise map (page 2–1674) to the intensity can help reduce the “computer-generated” look of a texture, and add a natural feel to surfaces such as bricks and carpets lit by daylight. To assign a map, click the oblong button (labeled “None” by default). This displays the Material/Map Browser. In the Browser, choose the map type, and then click OK. If you choose Bitmap as the map type, an additional dialog prompts you to choose the particular bitmap file to use. 1539 1540 Chapter 16: Material Editor, Materials, and Maps While a map is assigned to the material, its name appears as the map button’s label. Advanced Lighting Override Rollout Material Editor > Architectural material > Advanced Lighting Override rollout • Amount spinner—The spinner at the left sets the amount of intensity mapping to use. At 100.0, intensity mapping has its greatest effect; at lower amounts, the effect is less pronounced; at 0.0, the map has no effect; and at values less than 0.0, the material is dimmed. Range: –100.0 to 100.0. • On/off—The check box between the spinner and the map button is an on/off switch. When on, the map is used in the material. When off, the map is not used. Cutout controls—These controls assign a cutout map (page 2–1542) to the material. To assign a map, click the oblong button (labeled “None” by default). This displays the Material/Map Browser. In the Browser, choose the map type, and then click OK. If you choose Bitmap as the map type, an additional dialog prompts you to choose the particular bitmap file to use. While a map is assigned to the material, its name appears as the map button’s label. • Amount spinner—The spinner at the left sets the amount of cutout mapping to use. This value is a percentage: at 100.0, the map has its full effect; lower amounts have the effect of darkening the map, reducing its effect and increasing transparency. At 0.0, the map is completely black, making objects with this material completely transparent. • On/off—The check box between the spinner and the map button is an on/off switch. When on, the map is used in the material. When off, the map is not used. When you create a new Architectural material (page 2–1535) or edit an existing one, the settings on the Adjust Radiosity rollout let you adjust how the material behaves in a radiosity solution (page 3–51). Obtaining a Better Image Materials with a bright diffuse color or high shininess can be highly reflective. This can lead to overexposed or washed-out radiosity solutions. In general, the best way to adjust this is to reduce the HSV Value (V) of a material’s diffuse color; or, for a material with a diffuse map, reduce the map’s RGB level. In some situations, the controls on this rollout can improve the appearance of the radiosity solution. Examples of situations where the material’s radiosity settings can help include color bleeding and large dark areas: • You might want to reduce Reflectance Scale or Color Bleed Scale when a large area of color (for example, a red carpet in a room with white walls) creates excessive color bleeding. This might be physically accurate, but the eye adjusts for such effects, and the radiosity result might look better with less reflectance or less color bleeding. Advanced Lighting Override Rollout Left: Excessive bleeding of the floor color onto the walls and ceiling. Right: Reducing the floor’s Reflectance Scale causes less bleeding. • You might want to increase Reflectance Scale when the scene includes a large dark area (for example, a black floor). This can lead to a very dark radiosity result. You can maintain the floor’s color but increase reflectance, giving the solution the colors you want while increasing its brightness. Emit Energy (Based on Luminance)—When on, the material contributes energy to the radiosity solution, based on the material’s luminance value (see above). Note: The mental ray renderer (page 3–78) does not use this setting. The Architectural material does not contribute to the scene’s lighting. Increasing the Luminance (above 0.0) makes an object appear to glow in ordinary renderings, but does not contribute energy to the radiosity solution. To have radiosity processing take a self-illuminating material into account, turn on Emit Energy (Based On Luminance). The room is lit only by spotlights pointed at the floor. Increasing reflectance of the floor brightens the entire room. Tip: Check the reflectance and transmittance display (page 2–1430) to get an idea of how the current material will affect the radiosity solution. Interface Warning: There is no problem with reducing the default scale, but increasing it for any of these parameters might cause colors to “burn out”: if the scale is too great, they render as pure white, appearing overexposed. Upper left: By default, luminous neon lights do not influence the scene light. Right: With Emit Energy on, the radiosity solution takes luminance into account. Tip: When you increase luminance to achieve a special effect in the rendering (for example, to make the globe surrounding a lamp appear to be glowing), probably you shouldn’t turn on Emit Energy (in the example, both the globe and lamp would then add light to the scene). When you 1541 1542 Chapter 16: Material Editor, Materials, and Maps increase luminance because the object really glows (for example a neon light tube), then you should turn on Emit Energy, so that the object contributes light to the scene. Tip: Don’t use this control to increase self-illumination. Use the material’s Luminance instead. The Luminance control is on the Physical Qualities rollout (page 2–1536). Color Bleed Scale—Increases or decreases the saturation of reflected color. Range=0.0 to 100.0. Default=100.0. Transmittance Scale—Increases or decreases the amount of energy the material transmits. Range=0.1 to 5.0. Default=1.0. Color Bleed increases or decreases the saturation of reflected color. Transmittance Scale increases or decreases the energy of transmitted rays. Indirect Bump Scale—Scales the effect of the base material’s bump mapping (page 2–1506) in areas lit by indirect light. When this value is zero, no bump mapping is done for indirect light. Increasing Indirect Light Bump Scale increases the bump effect under indirect lighting. This value does not affect the Bump amount in areas where the base material is lit directly. Range=–999.0 to 999.0. Default=100.0. Tip: This parameter is useful because indirect bump mapping is simulated and not always accurate. Indirect Light Bump Scale lets you adjust the effect by hand. Reflectance Scale—Increases or decreases the amount of energy the material reflects. Range=0.0 to 100.0. Default=100.0. Reflectance Scale increases or decreases the energy of reflected rays. Cutout Mapping Material Editor > Architectural material > Special Effects rollout > Cutout map button Assigning a bitmap (page 2–1631) or procedural map (page 3–997) to the Cutout component of an Architectural material (page 2–1535) makes the material partially transparent. Lighter (higher-value) areas of the map render as opaque; darker areas render as transparent; and values in between are semi-transparent. Setting the cutout map’s Amount to 100 applies all of the map. Transparent areas are fully transparent. Setting the Amount to 0 is the equivalent of turning the map off. Intermediate Amount values are blended with the Transparency value on the Physical Qualities rollout. Transparent areas of the map become more opaque. mental ray Materials 2. In the Browser, choose NONE as the map type, and then click OK. The map is removed. mental ray Materials The gray levels of a cutout map determine the amount of transparency. Procedure 3ds Max comes with several materials created specifically for use with the mental ray renderer (page 3–78). These materials are visible in the Material/Map Browser (page 2–1412) when mental ray is the active renderer. • mental ray (page 2–1544) The mental ray material has components for the surface shader, and for the other nine optional shaders that make up a material in mental ray. To use a cutout map: 1. Click the Cutout map button. The Material/Map Browser (page 2–1412) is displayed. • The Arch & Design material is a monolithic material shader designed to support most materials used in architectural and product-design renderings. 2. Choose from the list of map types (page 2–1617), and then click OK. The Material is now at the map level, and displays map controls. (If you choose Bitmap as the map type, you first see a file dialog that lets you choose the image file.) 3. Use the map controls to set up the map. Arch & Design (page 2–1562) • Car Paint (page 2–1576) Car Paint, available as both a material and a shader, has components for a paint layer with embedded metal flakes, a clear-coat layer, and a Lambertian dirt layer. • DGS (page 2–1580) To remove a cutout map from a material: Tip: You can disable the map without removing it. Simply turn off the toggle immediately to the left of the map button on the Special Effects rollout. 1. If the Material Editor is displaying the map controls, click the Type button (page 2–1449) to display the Material/Map Browser. If the map controls aren’t visible, click the Cutout map button to display them, and then click the Type button. DGS stands for Diffuse, Glossy, and Specular. This material behaves in a physically realistic way. • Glass (page 2–1582) The Glass material simulates both the surface properties and the light-transmitting (photon) properties of glass. • Subsurface Scattering Materials (page 2–1583) 1543 1544 Chapter 16: Material Editor, Materials, and Maps The subsurface scattering materials, supported by a shader library from mental images, can model skin and similar organic materials. Note: When you wire the parameters of an object with a mental ray material assigned, names of material parameters might differ from those in the Material Editor interface. Also, parameters not supported by 3ds Max might appear as blanks in the wiring menu. mental ray Material Material Shaders Rollout (mental ray Material) Material Editor > Type button > Material/Map Browser > mental ray > Material Shaders rollout Note: The mental ray material appears in the Browser only if the mental ray renderer is the currently active renderer. The mental ray material lets you create a material exclusively for use by the mental ray renderer (page 3–78). The Material Shaders rollout provides controls for the main kinds of component shaders you are likely to assign. Material Editor > Type button > Material/Map Browser > mental ray Important: You must assign a shader to the material’s Surface component. Otherwise, the mental ray material will not be visible when you render. Note: The mental ray material appears in the Browser only if the mental ray renderer is the currently active renderer. See also The mental ray material lets you create a material exclusively for use by the mental ray renderer (page 3–78). A mental ray material consists, at the top level, of from one to 10 kinds of shaders, or shading components. Advanced Shaders Rollout (mental ray Material) (page 2–1548) Interface Important: You must assign a shader to the material’s Surface component. Otherwise, the mental ray material will not be visible when you render. Interface The interface to the mental ray material consists of two rollouts: • Material Shaders Rollout (mental ray Material) (page 2–1544) • Advanced Shaders Rollout (mental ray Material) (page 2–1548) Each shader component has a toggle at the left of its name. When the toggle is on, the shader is used in rendering. When the toggle is off, the shader is not used, even if it has been assigned. Clicking the button to the right of the component name displays Material Shaders Rollout (mental ray Material) the Material/Map Browser (page 2–1412) so you can assign a particular shader to the component. Basic Shaders group Surface—Shades the surface of objects that have this material. In addition to any of the usual 3ds Max materials, the surface component can be assigned the following mental ray materials or shaders: 1545 1546 Chapter 16: Material Editor, Materials, and Maps Shader Library 1 Ambient/Reflective Occlusion base (see note, below) Bump (page 2–1716) 3ds Max DGS Material (page 2–1580) 3ds Max Dielectric base Dielectric Material (page 2–1719) 3ds Max Edge lume Facade lume Glass lume Glow lume Landscape lume Material to Shader (page 2–1723) 3ds Max a material that uses the older version of the shader, that same version is still used in the scene, and the shader is renamed "Ambient/Reflective Occlusion (base) (old)". The old version of the shader continues to be used in the scene until you reapply it in the Material Editor. Note: Unlike a standard 3ds Max material, if you assign the Surface component a bitmap with tiling turned off, the original surface color does not “show through.” In renderings, you see only the untiled map, and none of the rest of the object. Shadow—Assigns a shadow shader. The shadow component can be assigned the following shaders: Shader Library lume Metal lume Edge Shadow Ocean lume Facade lume Opacity base Glass lume Reflect base Glow lume Refract base Material to Shader (page 2–1723) 3ds Max Shader List (page 2–1723) 3ds Max Metal lume SSS Physical Material subsurface scattering Shader List (page 2–1723) 3ds Max Stain lume Shadow Transparency base Texture Wave base Translucency lume Translucency lume Transmat physics Transmat physics Water Surface Shadow lume Transparency base Two Sided base UV Generator (page 2–1724) 3ds Max Water Surface lume Wet-Dry Mixer lume XYZ Generator (page 2–1729) 3ds Max As of the current version of 3ds Max, the Ambient/Reflective Occlusion shader has been updated to support certain capabilities for texture baking (see this note). If you load a file containing Note: Caustics and GI group Photon—Assigns a photon shader. Photon shaders modify the appearance of caustics and global illumination. They modify light energy (luminous flux) rather than color (radiance). The photon component can be assigned the following shaders: Material Shaders Rollout (mental ray Material) Shader Library Shader Library Shader Library Ocean lume DGS Material (page 2–1580) 3ds Max Shader List (page 2–1723) 3ds Max Dielectric Material Photon (page 2–1719) 3ds Max Edge lume Glow lume Material to Shader (page 2–1723) 3ds Max Metal lume Photon Basic base SSS Physical Material subsurface scattering Translucency lume Transmat physics Photon Volume—Assigns a photon volume shader. Like a photon shader, a photon volume shader modifies caustics and global illumination, but it affects photons that pass through the inside of the object, rather than photons that collide with its surface. The photon volume component can be assigned the following shaders: Displacement—Assigns a displacement shader (page 3–96). The displacement component can be assigned the following shaders: Shader Library 3D Displacement (page 2–1714) 3ds Max Material to Shader (page 2–1723) 3ds Max Ocean lume Volume—Assigns a volume shader (page 3–95). The volume component can be assigned the following shaders: Shader Library Beam lume Material to Shader (page 2–1723) 3ds Max Mist lume Shader Library Parti Volume Photon physics Material to Shader (page 2–1723) 3ds Max Shader List (page 2–1723) 3ds Max Parti Volume Photon physics Submerge lume Shader List (page 2–1723) 3ds Max Extended Shaders group Bump—Assigns a bump shader. Bump shading for Environment—Assigns an environment shader. Like an environment you assign using the Render Scene dialog, the environment shader changes the scene background. mental ray materials is similar to bump mapping (page 2–1506) for standard materials. The environment component can be assigned the following shaders: The bump component can be assigned the following shaders: Shader Library Environment (page 2–1721) 3ds Max Shader Library Bump (page 2–1716) 3ds Max 1547 1548 Chapter 16: Material Editor, Materials, and Maps Shader Library Material to Shader (page 2–1723) 3ds Max Contour—Assigns a contour shader (page 3–96) to the material. Shader List (page 2–1723) 3ds Max The contour component can be assigned the following shaders: Optimization group Flag Material as Opaque—When on, indicates that the material is fully opaque. This tells the mental ray renderer that it doesn’t need to process transparency for this material, or to use the shadow shader (if one has been assigned). This can improve rendering time. Default=off. Advanced Shaders Rollout (mental ray Material) Material Editor > Type button > Material/Map Browser > mental ray > Advanced Shaders rollout Note: The mental ray material appears in the Browser only if the mental ray renderer is the currently active renderer. The mental ray material lets you create a material exclusively for use by the mental ray renderer (page 3–78). The Advanced Shaders rollout provides controls for two component shaders that aren’t always used. Interface Each shader component has a toggle at the left of its name. When the toggle is on, the shader is used in rendering. When the toggle is off, the shader is not used, even if it has been assigned. Clicking the button to the right of the component name displays the Material/Map Browser (page 2–1412) so you can assign a particular shader to the component. Shader Library Combi contour Curvature contour Depth Fade contour Factor Color contour Layer Thinner contour Simple contour Width From Color contour Width From Light contour Width From Light Dir contour Note: Contours don’t render unless you have also enabled them on the Render Scene dialog > Renderer panel > Camera Effects rollout (page 3–101). Light Map—Assigns a light map shader to the material. Warning: No light map 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. Arch & Design Material (mental ray) Templates rollout Arch & Design Material (mental ray) Material Editor > Type button > Material/Map Browser > Arch & Design Material Material Editor > any material > Click a Map button. > Material/Map Browser > Car Paint Shader Note: The Car Paint material and shader appear in the Browser only if the mental ray renderer is the currently active renderer. The mental ray Arch (architectural) & Design material improves the image quality of architectural renderings and improves workflow and performance in general and for glossy surfaces such as floors in particular. Special features include advanced options for reflectivity and transparency, ambient occlusion settings, and the ability to round off sharp corners and edges as a rendering effect. See also Arch & Design Material (mental ray) – Overview (page 2–1562) Arch & Design Material (mental ray) – Tips & Tricks (page 2–1569) Interface Main material parameters rollout (page 2–1549) BRDF rollout (page 2–1554) Special Effects rollout (page 2–1555) Advanced Rendering Options rollout (page 2–1557) Fast Glossy Interpolation rollout (page 2–1559) Special Purpose Maps rollout (page 2–1561) General Maps rollout (page 2–1562) Provides access to Arch & Design material presets for quickly creating different types of materials such as wood, glass, and metal. You can also use these as starting points for generating customized materials. Choose a template from the drop-down list; a description of the material then appears in the left-hand pane. Note: The Arch & Design material works only with the mental ray renderer, so in order to see it represented accurately in the sample slots, you must first set mental ray to render in the Material Editor. For details, see Assign Renderer Rollout (page 3–35). Main material parameters rollout 1549 1550 Chapter 16: Material Editor, Materials, and Maps Diffuse group Diffuse Level—Diffuse Level (page 2–1489) controls the brightness of the diffuse color component. Range=0.0 to 1.0. Default=1.0. Note: Because the material is energy conserving, the actual diffuse level used depends on the reflectivity and transparency, as discussed in the introductory section, above. This value is the maximum value; the actual value also depends on the angle of the surface and comes from the BRDF curve. This curve (see BRDF rollout (page 2–1554)) lets you define 0–degree reflectivity for surfaces facing the view and 90–degree reflectivity for surfaces perpendicular to the view. Color—Controls the diffuse color (page 3–929). The diffuse color is the color in direct light. Default=50% gray. Roughness—Roughness (page 2–1490) controls how quickly the diffuse component blends into the ambient component. Range=0.0 to 1.0. Default=0.0. The diffuse component uses the Oren-Nayar shading model. When the Roughness value is 0.0 this is identical to classical Lambertian shading, but with higher values the surface gets a more “powdery” look, as shown in the following illustration. Left: No reflectivity, with a purely diffuse material Center: Angle-dependent reflectivity, with 0–degree reflectivity of 0.1 and a 90–degree reflectivity of 1.0 Right: Constant reflectivity, with both 0–degree reflectivity and 90–degree reflectivity of 0.9 Note: In the preceding illustration, the high reflectivity automatically “subtracts” from the white diffuse color. If this didn’t happen, the material would become unrealistically overbright, and would break the laws of physics. Color—The overall color of reflected light. Default=white. Glossiness—Defines the surface “glossiness,” Left: Roughness=0.0; Center: 0.5; Right: 1.0 ranging from 1.0 (a perfect mirror) to 0.0 (a diffusely reflective surface). Default=1.0. Reflection group Reflectivity—The overall level of reflectivity. Range=0.0 to 1.0. Default=0.6. The Reflectivity and Color values combine to define the level of reflections as well as the intensity of the traditional highlight, also known as the specular highlight. Left: Glossiness=1.0; Center, 0.5; Right, 0.25 Arch & Design Material (mental ray) Glossy Samples—Defines the maximum number of samples (rays) that mental ray shoots to create glossy reflections. Higher values cause slow rendering but create a smoother result. Lower values render faster but create a grainier result. Generally 32 is enough for most cases. Available only when Glossiness does not equal 1.0. Because a Glossiness value of 1.0 creates a “perfect mirror,” it is meaningless to shoot multiple rays for this case, hence only one reflection ray is shot. Note: If you set Glossy Samples to 0, the reflections take the form of a “perfect mirror” and only one ray is shot, regardless of the actual value of Glossiness . You can use this to boost performance for surfaces with very weak reflections. The highlight still respects the Glossiness value. Glossy reflections need to trace multiple rays to yield a smooth result, which can affect performance. For this reason, the material includes the following two special features designed to enhance performance: Fast (interpolate)—When on, a smoothing algorithm allows rays to be reused and smoothed. The result is faster and smoother glossy reflections at the expense of accuracy. Interpolation is explained in greater detail in the section on the Fast Glossy Interpolation rollout (page 2–1559). weak reflections or extremely glossy (blurred) reflections, as shown in the following illustration: The two cups on the left use real reflections, while those on the right use Highlights+FG Only. Metal material—Metallic objects actually influence the color of their reflection, whereas other materials do not. For example, a gold bar will have gold colored reflections, but a red glass orb does not have red reflections. This is supported through the Metal Material option: • When off, the Reflection Color parameter defines the color, and the Reflectivity parameter together with the BRDF settings defines the intensity and colors of reflections. • When on, the Diffuse Color parameter defines the color of reflections, and Reflectivity parameter sets the “weight” between diffuse reflections and glossy (metallic) reflections. Note: This method works best on flat surfaces. Highlights+FG only—When on, mental ray traces no actual reflection rays. Instead, only the highlights are shown, as well as soft reflections emulated with the help of using Final Gathering. The Highlights+FG Only mode takes no additional rendering time compared to a non-glossy (diffuse) surface, yet can yield surprisingly convincing results. While it might not be completely convincing for “hero” objects in a scene, it can work very well for less-essential scene elements. It tends to work best on materials with Left: Non-metallic reflections (Metal Material is off). Reflections clearly contain the color of the objects they reflect and are not influenced by the color of the materials. Center: Metallic reflections (Metal Material is on). Now the color of reflections are influenced by the color of the object. Right: A variant of this with Reflectivity=0.5, creating a 50:50 mix between colored reflections and diffuse reflections 1551 1552 Chapter 16: Material Editor, Materials, and Maps Refraction group Transparency—Defines the level of refraction. Range=0.0 to 1.0. Default=0.0. Due to the material’s energy-conserving nature, the value set in the Transparency parameter is the maximum value; the actual value depends on the reflectivity as well as the BRDF curve. Color—Defines the color of refraction. While this color can be used to create “colored glass,” a slightly more accurate method to do this is described in the Colored Glass section (page 2–1570) of the Tips & Tricks topic. Glossiness—Defines the sharpness of the refraction/transparency, ranging from 1.0 (completely clear transparency) to 0.0 (extremely diffuse or blurry transparency). Default=1.0. Left: Refraction Glossiness=1.0; Center: 0.5; Right: 0.25 Glossy refraction needs to trace multiple rays to yield a smooth result, which can affect performance. For this reason, the material includes the following special feature designed to enhance performance: glossy refraction. Higher values cause slow rendering but create a smoother result. Lower values render faster but create a grainier result, like frosted glass. Generally 32 is enough for most cases. Available only when Glossiness does not equal 1.0. Because a Glossiness value of 1.0 creates a perfectly clear (non-blurry) transparency, it is meaningless to shoot multiple rays for this case, hence only one refraction ray is shot. Note: If you set Glossy Samples to 0, the refraction takes the form of a “perfect lens” and only one ray is shot, regardless of the actual value of Glossiness. You can use this to boost performance for draft renderings. IOR—The Index of Refraction, which is a measurement of how much a ray of light bends when entering a material. The direction in which light bends depends on whether it is entering or exiting the object. The Arch & Design material use the direction of the surface normal as the primary cue for figuring out whether it is entering or exiting. It is therefore important to model transparent, refractive objects with the surface normals pointing in the proper direction. The IOR can also be used to define the BRDF curve, which is what happens in the class of transparent materials known as “dielectric” materials, and is illustrated here: Fast (interpolate)—When on, a smoothing algorithm allows rays to be reused and smoothed. The result is faster and smoother glossy refraction at the expense of accuracy. Interpolation is explained in greater detail in the section on the Fast Glossy Interpolation rollout (page 2–1559). Note: This method works best on flat surfaces. Glossy Samples—Defines the maximum number of samples (rays) that mental ray shoots to create Left: IOR=1.0; Center: 1.2; Right: 1.5 Arch & Design Material (mental ray) The leftmost cup looks completely unrealistic and is almost invisible. Because an IOR of 1.0, which equals that of air, is impossible in solid matter, we get no change in reflectivity across the material and hence perceive no edges or changes of any kind. On the other hand, the center and rightmost cups have realistic changes in reflectivity guided by the IOR. Instead of basing the reflectivity on the IOR, you can instead use the BRDF mode to set it manually: Different types of transparency As in the previous illustration, the leftmost cup acquires its curve from the index of refraction. The center cup has a manually defined curve, which has been set to a 90 degree reflectivity of 1.0 and a 0 degree reflectivity of 0.2; this looks a bit more like metallized glass. The rightmost cup uses the same BRDF curve, but instead is set to thin-walled transparency (page 2–1558). Clearly, this method is better for making non-refractive objects than simply setting IOR to 1.0, as we tried above. fast nor as powerful as the dedicated SSS shaders (page 2–1583). Translucency—When on, the remaining Translucency become available and take effect when rendering. Weight—Determines how much of the existing transparency is used as translucency. For example, if Weight=0.0, all of the transparency is used as transparency. If Weight=0.3, 30 percent of the transparency is used as translucency. All: Transparency=0.75. Left: Weight=0.0; Center: Weight=0.5; Right: Weight=1.0 Translucency is intended for use primarily in thin-walled mode, as in the example above) to model things like curtains, rice paper, and similar effects. In thin-walled mode it simply allows the shading of the reverse side of the object to bleed through. The shader also operates in solid mode, but, as explained above, the SSS shaders are better suited for such purposes. Translucency group Translucency is handled as a special case of transparency; in order to use translucency there must first exist some level of transparency. The implementation of translucency in the Arch & Design material is a simplification concerned solely with the transport of light from the back of an object to its front faces and is not true SSS (subsurface scattering) effect. You can create an SSS-like effect by using glossy transparency coupled with translucency, but this is neither as Solid translucency with: Left: Weight=0.0; Center: Weight=0.5; Right: Weight=1.0 Color—The translucency color. 1553 1554 Chapter 16: Material Editor, Materials, and Maps Anisotropy group Anisotropy—Controls the anisotropy, or shape, of the highlight. At 1.0, the highlight is round; that is, no anisotropy. At 0.01, the highlight is elongated. One axis of the highlight graph changes to show changes in this parameter. Default=1.0. If the Map Channel setting is Automatic, the base rotation follows the object’s local coordinate system. If it is any other value (in other words, a specific map channel), the space that defines the stretch directions of the highlights is derived from that channel’s texture space. Warning: Deriving the anisotropy from the texture space creates only one space per triangle and can cause visible seams between triangles. Also see Brushed Metal (page 2–1575). BRDF rollout Left: Anisotropy=1.0; Center: Anisotropy=4.0; Right: Anisotropy=8.0 Rotation—Changes the orientation of the highlight. The sample slot shows changes in orientation. This value can range from 0.0 to 1.0, with 1.0=360 degrees. So, for example, 0.25=90 degrees and 0.5=180 degrees. Default=0.0. BRDF stands for bidirectional reflectance distribution function. As explained in the introduction (page 2–1566), this property lets the material’s reflectivity be ultimately guided by the angle from which the object surface is viewed. Left: Anisotropy Rotation=0.0; Center: Anisotropy Rotation=0.25; Right: Anisotropy Rotation=[texture map] Tip: When using texture-mapped Anisotropy Rotation, make sure the texture is not antialiased (filtered). You can achieve this by setting the map’s Blur parameter to 0.0. Otherwise the antialiased pixels cause local vortices in the anisotropy that appear as seam artifacts. 0 degree (green) and 90 degree (red) view angles [BRDF method]—Lets you choose how the BRDF Automatic/Map Channel—Lets you optionally apply curve is defined: anisotropy to a specific map channel. • By IOR (fresnel reflections)—How the reflectivity depends on the angle is guided solely by the Arch & Design Material (mental ray) material’s index of refraction. This is known as Fresnel reflections and follows the behavior of most dielectric materials such as water and glass. Special Effects rollout • Custom Reflectivity Function—When chosen, the following settings determine reflectivity based on angle of view. • 0 deg. refl.—Defines the reflectivity for surfaces directly facing the viewer (or incident ray). • 90 deg. refl.—Defines the reflectivity of surfaces perpendicular to the viewer. • Curve shape—Defines the falloff of the BRDF curve. This mode is used for most hybrid materials or for metals. Most materials exhibit strong reflections at grazing angles; hence the 90 degree reflectivity parameter can generally be kept at 1.0, using the Reflectivity parameter to guide the overall reflectivity instead. Metals tend to be fairly uniformly reflective and the 0 degree reflectivity value is high (0.8–1.0), but many other layered materials, such as linoleum and lacquered wood have lower 0 degree reflectivity values, in the range 0.1–0.3). For further information, see Quick Guide to Some Common Materials (page 2–1569). Ambient Occlusion—When on, enables AO and makes the remaining group controls available. Reflectivity vs. Angle graph—Depicts the combined Custom Reflectivity Function settings. Max Distance—Defines the radius within which Provides settings for ambient occlusion (page 2–1567) (AO) and round corners/edges. Ambient Occlusion group Samples—The number of samples (rays) shot for creating AO. Higher values yield smoother results but render more slowly, while lower values render faster but look grainier. Values in the range 16–64 cover most situations. mental ray looks for occluding objects. Smaller values restrict the AO effect to small crevices only but are much faster to render. Larger values cover larger areas but render more slowly. The following illustrations show the raw AO contribution with two different distances: 1555 1556 Chapter 16: Material Editor, Materials, and Maps ambient light” that is then attenuated by the AO effect to create shadows. Left: Higher Max Distance value; Left: Lower Max Distance value Use AO as Detail Enhancement for GI/FG—Applies short-distance AO, multiplying it with the existing indirect illumination (Final Gathering or GI/photons) to bring out small details. The following illustration depicts a model helicopter that is lit almost exclusively by indirect light: Left: Without AO; Right: With AO Note how the helicopter does not feel “grounded” in the left image and the shadows under the landing skids are far too vague. The right image uses AO to “punch out” the details and the contact shadows. Shadow Color—Sets the darkness of the AO shadows. It is used as the multiplier value for completely occluded surfaces. In practice, a black color makes the AO effect very dark; a middle-gray color makes the effect less noticeable (brighter), and so on. Custom/Global Ambient Light Color—You can specify a color for the ambient light used in AO, or use the global color specified on the Environment panel (page 3–272) > Common Parameters rollout. This parameter is used for doing more traditional AO; that is, supplying an imagined “ever-present While traditional AO is generally used when rendering without other indirect light, you can also combine it with existing indirect light. Bear in mind that this “ever-present ambient light” is inherently non-physical, but can possibly help lighten some troublesome dark corners. Round Corners group This effect rounds off corners and straight edges as a rendering effect only; it has no effect on geometry. The rounding effect happens to convex corners and surfaces that actually intersect. Concave corners that merely touch will not display the effect. To get the effect to work in concave corners the objects must be pushed into each other a little. The effect is intended for straight edges and is not guaranteed to work properly for highly curved, complex intersections. Round Corners—When on, rounds off corners and straight edges at render time. Fillet Radius—Specifies the radius of the filleted corners and/or edges. Blend with other materials—By default, the rounding effect happens only between surfaces of the same material, but if you turn this on the filleting is performed against any material. In the following image, the molten chocolate is rounded off against the submerged objects even though they use different materials. In actuality, the molten chocolate is a completely flat plane. Arch & Design Material (mental ray) Reflections group Max Distance—Allows limiting reflections to a certain distance, which both speeds up rendering and avoids pulling distant objects into extremely glossy reflections. Fade to end color—When on, reflections fade Objects in molten chocolate Advanced Rendering Options rollout These parameters define performance-boosting options. to this color. When off, reflections fade to the environment color. The former tends to be more useful for indoor scenes; the latter, for outdoor scenes. Available only when Max Distance is on. Left: Full reflections (Max Distance=off); Center: 100mm; Right: 25mm Max Trace Depth—When this trace depth is reached, the material behaves as if the Highlights+FG Only switch is on; that is, it shows only highlights and “emulated” reflections created with the help of Final Gathering. Cutoff Threshold—The level at which reflections are rejected; that is, not traced. It’s a relative value: For example, the default setting of 0.01 means that rays that contribute less than 1 percent to the final pixel are ignored. A setting of 0.25 means that mental ray discards rays that contribute less than a quarter of the value of the final pixel. Refraction group The optimization settings for refraction (transparency) are nearly identical to those for reflections. The exception is that of Color At Max Distance, which behaves differently. 1557 1558 Chapter 16: Material Editor, Materials, and Maps Max Distance—Allows limiting refraction to a certain distance. Color at Max Distance—When on, the material simulates physically correct absorption. At the distance specified by Max Distance, the refracted image has the color given by Color At Max Distance, but the rays are not limited in reach. At twice the distance, the influence of Color At Max Distance is double, at half the distance half, etc. When off, transparency rays simply fade to black. This is like smoked glass and other highly absorbent materials. Transparency just stops at the specified distance. This has the same performance advantage as using the Max Distance for reflections: Tracing shorter rays is much faster. Available only when Max Distance is on. Icon In Renderer property on create no specular highlights. Default=on. The Show Icon In Renderer check box is found on the light’s Area Light Parameters rollout. When on, the light is visible and reflects in any glossy, reflective objects. If both the reflection of the visible area light and the highlight is rendered, the light is added twice, causing an unrealistic brightening effect. When on, this switch causes visible area lights to lose their highlights and instead only appear as reflections. Note that this does not apply to the Highlights+FG Only mode, which doesn’t actually reflect anything. Skip reflections on inside (except total internal reflection)—Most reflections inside transparent objects are very faint, except in the special case that occurs at certain angles known as total internal reflection (TIR). When on, this option saves rendering time by ignoring the weak reflections completely but retaining the TIRs. Default=on. Advanced Transparency Options group The options give you control over some of the deepest details of the Arch & Design material. Left: No limit (Max Distance=off); Center: Fade to black; Right: Fade to blue Max Trace Depth—When this trace depth is reached, the material refracts black. Cutoff Threshold—The level at which refraction is rejected; that is, not traced. It’s a relative value: For example, the default setting of 0.01 means that rays that contribute less than 1 percent to the final pixel are ignored. A setting of 0.25 means that mental ray discards rays that contribute less than a quarter of the value of the final pixel. Glass/Translucency treat objects as...— • Solid—The object behaves as if it is made of a solid, transparent substance. • Thin-walled—The object behaves as if made of wafer-thin sheets of a transparent material. For more information, see Solid vs. Thin-Walled (page 2–1567). Advanced Reflectivity group Visible area lights cause no Highlights—When on, mental ray area lights (Omni (page 2–1298) and Spotlight (page 2–1299)) with the Show Left: Solid; Right: Thin-walled Arch & Design Material (mental ray) When Caustics are enabled, transparent objects:—When not rendering caustics, the Arch & Design material uses a shadow shader to create transparent shadows. For objects such as window panes this is perfectly adequate, and actually creates a better result than using caustics, because the direct light is allowed to pass more or less undisturbed through the glass into a space such as a room. Traditionally, enabling caustics in mental ray causes all materials to stop casting transparent shadows and instead start to generate refractive caustics. In most architectural scenes this is undesirable; you might want a glass decoration on a table to generate caustic effect, but still want the windows to the room to let in normal direct light. This switch makes this possible at the material level. • Refract light and generate Caustic effects—The material refracts light and generates caustics. • Use Transparent Shadows—No caustics are produced; the material and object simply transmit the light, with greater shadowing in thicker areas. In the following illustration, the left side shows the result with Use Transparent Shadows chosen, and the right side shows the result with Refract Light And Generate Caustic Effects chosen. You can freely mix the two modes in the same rendering. Photons are automatically treated accordingly by the built-in photon shader, shooting straight through as direct light in the former case, and being refracted as caustics in the latter. Left: Using transparent shadows; Right: Using refractive caustics. Back Face Culling—When on, enables a special mode that makes surfaces invisible to the camera when seen from the reverse side. You can use this to create “magic walls” in a room. If all walls are planes with the normals facing inwards, the Back Face Culling switch allows the room to be rendered from “outside.” The camera can see into the room, but the walls will still exist and cast shadows, bounce photons, etc. while being invisible when the camera goes outside. Left: Back Face Culling=off; Right: Back Face Culling=on Transparency propagates Alpha channel—Defines how transparent objects treats any alpha channel information in the background. When on, refraction and other transparency effects propagate the alpha of the background “through” the transparent object. When off, transparent objects have an opaque alpha. Indirect Illumination Options FG/GI multiplier—Allows tweaking of how strongly the material responds to indirect light. FG Quality—A local multiplier for the number of final gather rays shot by the material. Fast Glossy Interpolation rollout Glossy reflections and refraction can be interpolated, which causes them to render faster and look smoother. Interpolation works by precalculating glossy reflection in a grid across the image. The number of samples (rays) taken at each point is govern by the Reflection > Glossy Samples or Refraction > Glossy Samples parameters, as in the non-interpolated case. 1559 1560 Chapter 16: Material Editor, Materials, and Maps Note that interpolation can cause artifacts. Because it is done on a low-resolution grid, it can lose details. And because it blends neighbors of this low-resolution grid, it can cause oversmoothing. For this reason it is useful primarily with flat surfaces. Interpolation does not work well with wavy, highly detailed surfaces or surfaces that use bump maps. In the following illustration, the reflection of the left cup in the floor does not use interpolation, and some grain is evident (here intentionally exaggerated). The floor tiles under the other two cups use a half-resolution interpolation with point lookup set to 2 (center) and 4 (right), respectively. Left: No interpolation; Center: Looking up two points; Right: Looking up four points. Interpolation grid density—The resolution of the grid used for interpolating glossy reflections and refraction. Choose a setting from the drop-down list. The preceding image also illustrates one of the consequences of using interpolation: The foot of the left cup, which is near the floor, is reflected quite sharply, and only the parts of the cup far from the floor are blurry. However, the interpolated reflections of the right cups have a base level of blurriness, due to the smoothing of interpolation, which makes even the closest parts somewhat blurry. In most scenes with weak glossy reflections this discrepancy will never be noticed, but in other cases this can make things like legs of tables and chairs feel “unconnected” with a glossy floor, if the reflectivity is high. To resolve this, you can use the High Detail Distance setting (see following). High detail distance—Allows tracing of a second set Within the grid, data is stored and shared across the points. Using a lower grid resolution is faster, but causes greater loss of detail information. of detail rays to create a “clearer” version of objects within the specified radius. Reflective interpolation group In the following illustration, all three floor tiles use interpolation but the two on the right use different distances for the detail distance. Neighboring points to look up—Defines how many stored grid points (in an N by N group around the currently rendered point) is looked up to smooth out reflective glossiness. The default is 2, and higher values will “smear” the glossiness more, but are hence prone to more oversmoothing artifacts. Arch & Design Material (mental ray) best used together with a local, “pre-blurred" environment map. You can do the pre-blurring in an image-processing program or with the Material Editor > Coordinates rollout (page 2–1625) > Blur and Blur Offset settings. Refractive interpolation group Left: No detail distance; Center: 25mm detail distance; Right: 150mm detail distance This also allows an interesting trick: Set Reflection > Glossy Samples to 0, which renders reflections as if they were mirror-perfect, but also use interpolation to introduce blur into this reflection, and perhaps use High Detail Distance to make nearby parts less blurry. This is a fast way to obtain a glossy reflection. The floor tiles in the following illustration are rendered with mirror reflections, and the blurriness comes solely from the interpolation. This renders as fast as or faster than pure mirror reflections, yet gives a satisfying illusion of true glossy reflections, especially when utilizing the High Detail Distance option, as on the right. Neighboring points to look up—Defines how many stored grid points (in an N by N group around the currently rendered point) are looked up to smooth out refractive glossiness. The default is 2; higher values tend to “smear” the glossiness more, but are hence prone to more oversmoothing artifacts. Special Purpose Maps rollout Lets you apply bump, displacement, and other maps. Each left-justified setting has a check box for enabling and disabling the map, and a button for defining the map. Bump—Lets you apply a bump map and multiplier. Do not apply bumps to the diffuse shading—When Left: No detail distance; Right: With detail distance Single Sample from Environment—Creating realistically blurry glossy reflections normally requires taking multiple samples from the environment, which can result in grainy, slow-rendering environment reflections. With this check box on, mental ray instead takes only one sample, thus preventing the grain. This also prevents blurring the environment, so it is off, the bumps apply to all shading components: diffuse, highlights, reflections, refractions, etc. When on, bumps are applied to all components except the diffuse. This means bumps are seen in reflections, highlights, etc. but the diffuse shading shows no bumps. It is as if the material’s diffuse surface is smooth, but is covered by a bumpy lacquer coating. 1561 1562 Chapter 16: Material Editor, Materials, and Maps parameter’s shader, using the check box, without removing the map. Arch & Design Material (mental ray) – Overview Left: Do Not Apply Bumps ...=off; Right: Do Not Apply Bumps ...=on Displacement—Lets you apply a displacement map and multiplier. Cutout—Lets you apply an opacity map to This topic serves as an introduction to the Arch & Design material for mental ray. For a detailed reference to the material interface, see Arch & Design Material (mental ray) (page 2–1549). For a variety of suggestions for using the material to create specific effects, see Arch & Design Material (mental ray) – Tips & Tricks (page 2–1569). completely remove parts of objects. A classic example is to map an image of a tree to a flat plane and use opacity to cut away the parts of the tree that are not there. Left: Mapped transparency; Right: Using Cutout Environment—Lets you apply an environment map and shader. Additional Color/Self illum.—Lets you apply any shader. The output of this shader is added on top of the shading done by the Arch & Design material and can be used for self-illumination-type effects, as well as adding any additional shading you want. General Maps rollout This rollout enables application of maps or shaders to any of the Arch & Design material parameters. Of course, you can apply a shader to a parameter at its standard location in the user interface by clicking its Map button, so the principal value of this rollout is that it also lets you toggle a A range of material effects available with the Arch & Design material What is the Arch & Design material? The mental ray Arch & Design material is a monolithic material shader designed to support most materials used in architectural and product-design renderings. It supports most hard-surface materials such as metal, wood and glass. It is especially tuned for fast glossy reflections and refractions (replacing the DGS material (page 2–1580)) and high-quality glass (replacing the dielectric material (page 2–1719)). Arch & Design Material (mental ray) – Overview The major features are: • Easy to use, yet flexible - controls are arranged logically in a most-used-first fashion. • Templates - allow fast access to settings combinations for common materials. • Physically accurate - the material is energy conserving, making it impossible to create shaders that break the laws of physics. • Glossy performance - advanced performance boosts including interpolation, emulated glossiness, and importance sampling. • Tweakable BRDF (bidirectional reflectance distribution function) - the user can define how reflectivity depends on angle. • Transparency - “Solid” or “thin” materials: transparent objects such as glass can be treated as either solid (refracting, built out of multiple faces) or thin (nonrefracting, can use single faces). • Round corners - simulate fillets to allow sharp edges to still catch the light in a realistic fashion. • Indirect Illumination control - set the final gather accuracy or indirect illumination level on a per-material basis. • Oren-Nayar diffuse - allows “powdery” surfaces such as clay. • Built-in Ambient Occlusion - for contact shadows and enhancing small details. • All-in-one shader - photon and shadow shader built in. • Waxed floors, frosted glass and brushed metals - all fast and easy to set up. Physics and the display The Arch & Design material attempts to be physically accurate, hence its output has a high dynamic range. How visually pleasing the material looks depends on how colors inside the renderer are mapped to colors displayed on the screen. When working with the Arch & Design material it is highly recommended that you operate through a tone mapper/exposure control such as the Logarithmic Exposure Control (page 3–297), or at the very least use gamma correction. A note on gamma Describing all the details of gamma correction is beyond the scope of this topic; this is just a brief overview. The color space of a normal, off-the-shelf computer screen is not linear. The color with RGB value 200 200 200 is not twice as bright as a color with RGB value 100 100 100, as one might expect. This is not a bug because, due to the fact that our eyes see light in a non-linear way, the former color is actually perceived to be about twice as bright as the latter. This makes the color space of a normal computer screen roughly perceptually uniform. This is a good thing, and is actually the main reason 24-bit color (with only 8 bits or 256 discrete levels for each of the red, green and blue components) looks as good as it does to our eyes. The problem is that physically correct computer graphics operates in a true linear color space where a value represents actual light energy. If one simply maps the range of colors output to the renderer naively to the 0-255 range of each RGB color component it is incorrect. The solution is to introduce a mapping of some sort. One of these methods is called gamma correction. Most computer screens have a gamma of about 2.2 (known as the sRGB color space), but most software defaults to a gamma of 1.0, which makes everything look too dark (especially midtones), and light does not “add up” correctly. Using a gamma of 2.2 is the theoretically correct value, making the physically linear light inside 1563 1564 Chapter 16: Material Editor, Materials, and Maps the renderer appear in a correct linear manner on screen. However, because the response of photographic film isn’t linear either, users find that this theoretically correct value looks too bright and washed out. A common compromise is to render to a gamma of 1.8, making things look more photographic; that is, as if the image had been shot on photographic film and then developed. Tone mapping Another method for mapping the physical energies inside the renderer to visually pleasing pixel values is known as tone mapping. This can be accomplished either by rendering to a floating-point file format and using external software, or with a plug-in that allows the renderer to do it on the fly. In 3ds Max such plug-ins are known as exposure controls and are accessed from the Environment dialog. Note: When using the Logarithmic Exposure Control, the need for gamma correction is largely replaced. You should use either gamma correction or the Logarithmic Exposure Control but not both. Use Final Gathering and Global Illumination The Arch & Design material is designed to be used in a realistic lighting environment; one that incorporates full direct and indirect illumination. mental ray provides two basic methods for generating indirect light: Final Gathering and Global Illumination. For best results, be sure to use at least one of these methods. At the very least, enable Final Gathering, or use Final Gathering combined with Global Illumination (photons) for quality results. Performance tips for using Final Gather and Global Illumination can be found here (page 2–1569). If you use an environment for your reflections, make sure the same environment (or a blurred copy of it) is used to light the scene through Final Gathering. In 3ds Max this means you should include a Skylight (page 2–1296) in your scene set to Use Scene Environment, or use Daylight system (page 1–418) with Skylight set to mr Sky. Use physically correct lights Traditional computer-graphics light sources live in a cartoon universe where the intensity of the light doesn’t change with the distance. The real world doesn’t agree with that simplification. Light decays when leaving a light source due to the fact that light rays diverge from their source and the intensity of the light changes over distance. This decay of a point light source is 1/d2; in other words, light intensity is proportional to the inverse of the square of the distance to the source. One of the reasons for this traditional oversimplification is the fact that in the early days of computer graphics, tone mapping was not used and problems of colors blowing out to white in the most undesirable ways was rampant. (Raw clipping in sRGB color space is displeasing to the eye, especially if one color channel clips earlier than the others. Tone mapping generally solves this by “soft clipping” in a more suitable color space than sRGB.) However, as long as only Final Gathering (FG) is used as indirect illumination method, such traditional simplifications still work. Even light sources with no decay still create reasonable renderings. This is because FG is concerned only with the transport of light from one surface to the next, not with the transport of light from the light source to the surface. It’s when working with Global Illumination (GI) (that is, with photons) the troubles arise. When GI is enabled, light sources shoot photons. For the Arch & Design material (or any other Arch & Design Material (mental ray) – Overview mental ray material) to be able to work properly, it is imperative that the energy of these photons to match the direct light cast by that same light. And since photons model light in a physical manner, decay is built in. Hence, when using GI: • Light sources must emit photons at the correct energy. • The direct light must decay in a physically correct way to match the decay of the photons. The Arch & Design material shading model Therefore it is important to make sure the light shader and the photon emission shader of the lights work well together. Direct and indirect light from the scene cause diffuse reflections as well as translucency effects. Direct light sources also create specular highlights. In 3ds Max this is most easily solved by using the photometric lights (page 2–1301). All of these lights are guaranteed to have their photon energy in sync with their direct light. It is built in and automatic and one does not need to worry about it. Ray tracing is used to create reflective and refractive effects, and advanced importance-driven multi-sampling is used to create glossy reflections and refraction. The Shading Model The rendering speed of the glossy reflections/refraction can further be enhanced by interpolation as well as “emulated” reflections with the help of Final Gathering. From a usage perspective, the shading model consists of three components: Conservation of Energy Features • Diffuse - diffuse channel /including Oren Nayar “roughness”). • Reflections - glossy anisotropic reflections (and highlights). • Refraction - glossy anisotropic transparency (and translucency). One of the most important features of the material is that it is automatically energy conserving. This means that it makes sure that diffuse + reflection + refraction <= 1. In other words, no energy is magically created and the incoming light energy is properly distributed to the diffuse, reflection and refraction components in a way that maintains the first law of thermodynamics. In practice, this means, for example, that when adding reflectivity, the energy must be taken from somewhere, and hence the diffuse level and the transparency will be automatically reduced accordingly. Similarly, adding transparency happens at the cost of the diffuse level. The rules are as follows: 1565 1566 Chapter 16: Material Editor, Materials, and Maps • Transparency takes energy from diffuse; that is, at 100% transparency, there is no diffuse at all. • Reflectivity takes energy from both diffuse and transparency; that is, at 100% reflectivity there is neither diffuse nor transparency. • Translucency is a type of transparency, and the Translucency Weight parameter defines the percentage of transparency vs. translucency. Many materials exhibit this behavior. The most obvious examples are glass, water, and other dielectric materials with Fresnel effects (where the angular dependency is guided strictly by the index of refraction), but other layered materials such as lacquered wood and plastic display similar characteristics. The Arch & Design material allows this effect to be defined by the index of refraction, and also allows an explicit setting for the two reflectivity values for: • 0 degree faces (surfaces directly facing the camera) From left to right: Reflectivity=0.0, 0.4, 0.8, and 1.0 • 90 degree faces (surfaces 90 degrees to the camera) For more information, see BRDF rollout (page 2–1554). Reflectivity features From left to right: Transparency=0.0, 0.4, 0.8, and 1.0 Conservation of energy also means that the level of highlights is linked to the glossiness of a surface. A high Reflection Glossiness value causes a narrow, intense highlight, while a lower value causes a wider, less intense highlight. This is because the energy is now spread out and dissipated over a larger area. The final surface reflectivity is in reality caused by the sum of three components: • The diffuse effect • The actual reflections • Specular highlights that simulate the reflection of light sources BRDF - how reflectivity depends on angle In the real world, the reflectivity of a surface is often view-angle dependent. A fancy term for this is bidirectional reflectance distribution function (BRDF); that is, a way to define how much a material reflects when seen from various angles. The reflectivity of the wood floor depends on the view angle. Diffuse, reflections, and highlights In the real world, highlights are just glossy reflections of the light sources. In computer graphics it’s more efficient to treat these separately. However, to maintain physical accuracy the material automatically keeps highlight intensity, glossiness, anisotropy, etc. in sync with the intensity, glossiness and anisotropy of reflections. Thus, there are no separate controls for these as both are driven by the reflectivity settings. Arch & Design Material (mental ray) – Overview Transparency features The material supports full glossy anisotropic transparency and includes a translucent component, described in detail here (page 2–1553). Solid vs. thin-walled transparency and translucency Translucency Solid vs. Thin-Walled The transparency/translucency property can treat objects as either solid or thin-walled. If all objects were treated as solids at all times, every window pane in an architectural model would have to be modeled as two faces: an entry surface that refracts the light slightly in one direction, and immediately following it an exit surface, where light is refracted back into the original direction. Not only does this entail additional modeling work, it is a waste of rendering power to simulate refraction that has very little net effect on the image. Hence the material allows modeling the entire window pane as a single flat plane, foregoing any actual refraction of light. In the preceding illustration the helicopter canopy, the window pane, the translucent curtain, and the right-hand sphere all use thin-walled transparency or translucency, whereas the glass goblet, the plastic horse, and the left-hand sphere all use solid transparency or translucency. Cutout opacity Beyond the “physical” transparency, which models an actual property of the material, the material provides a completely separate, non-physical “cutout opacity” channel to allow “billboard” objects such as trees, or to cut out objects such as a chainlink fence with an opacity mask. Special Effects Built-in Ambient Occlusion Ambient Occlusion (AO) is a method spearheaded by the film industry for emulating the look of true global illumination by using shaders that calculate the extent to which an area is occluded, or prevented from receiving incoming light. Used alone, an AO shader, such as the separate mental ray Ambient/Reflective Occlusion shader, creates a grayscale output that is dark in areas light cannot reach and bright in areas where it can: The following image illustrates the main results of AO: dark crevices and areas where light is blocked 1567 1568 Chapter 16: Material Editor, Materials, and Maps by other surfaces, and bright areas that are exposed to the environment. • Traditional AO for adding an omnipresent ambient light that is then attenuated by the AO to create details. • Use AO for detail enhancement together with existing indirect lighting methods such as Final Gathering or photons. The latter method is especially interesting when using a highly smoothed indirect illumination solution, such as a high photon radius or an extremely low final gather density, which could otherwise lose small details. By applying the AO with short rays these details can be brought back. An example of AO applied to a scene One important aspect of AO is that the user can tune the distance it looks in for occluding geometry. Round corners Computer-generated imagery tends to look unrealistic, partly because edges of objects are geometrically sharp, whereas most edges in the real world are slightly rounded, chamfered, worn, or filleted in some manner. This rounded edge tends to “catch the light” and create highlights that make edges more visually appealing. The Arch & Design material can create the illusion of rounded edges at render time. This feature is intended primarily to speed up modeling, so that you need not explicitly fillet or chamfer edges of objects such as a tabletop. AO looked up within a shorter radius Using a radius creates a localized AO effect; only surfaces within the given radius are considered as occluders (which is also faster to render). The practical result is that the AO provides nice “contact shadow” effects and makes small crevices visible. The Arch & Design material gives you two ways to utilize its built-in AO: Left: No round corners; Right: Round corners The function is not a displacement; it is merely a shading effect, like bump mapping, and is best suited for straight edges and simple geometry, not advanced, highly curved geometry. Arch & Design Material (mental ray) – Tips & Tricks Performance Features Finally, the Arch & Design material contains a large set of built-in functions for optimal performance, including but not limited to: • Advanced importance sampling with ray rejection thresholds • Adaptive glossy sample count • Interpolated glossy reflection/refraction with detail enhancements • Ultra-fast emulated glossy reflections (Highlights+FG Only mode) • The option to ignore internal reflections for glass objects • The choice between traditional transparent shadows, suitable for objects such as a window pane, and refractive caustics, suitable for solid glass objects, on a per-material basis. Arch & Design Material (mental ray) – Tips & Tricks This topic contains information to help you more effectively use the Arch & Design material (page 2–1549) for mental ray. See also Arch & Design Material (mental ray) – Overview (page 2–1562) Arch & Design Material (mental ray) (page 2–1549) Final Gather Performance The final gather algorithm in mental ray 3.5 is vastly improved from earlier versions, especially in its adaptiveness. This means you can often use much lower ray counts and much lower densities than in previous versions of mental ray. In many cases, you can render still images with such extreme settings as 50 rays and a density of 0.1. If this causes “oversmoothing” artifacts, you can use the built-in ambient occlusion (page 2–1555) to solve those problems. When using final gather together with GI (photons), make sure the photon solution is fairly smooth by first rendering with Final Gather disabled first. If the photon solution is noisy, increase the photon search radius until it “calms down,” and then enable Final Gather. Quick Guide to Some Common Materials Following are some quick rules of thumb for creating various materials. Each assumes the basic default settings as a starting point. General Rules of Thumb for Glossy Wood, Flooring, etc. These are the kind of “hybrid” materials you might require for architectural renderings; lacquered wood, linoleum, etc. For these materials, set BRDF to Custom Reflectivity Function; that is, you’ll define a custom BRDF curve. Start out with 0 degree reflectivity of 0.2, 90 degree reflectivity of 1.0, and apply a suitable texture map to the Diffuse Color. Set Reflectivity between 0.6 and 1.0. How glossy is the material? Are reflections clear or blurry? Are they strong or weak? • For clear, fairly strong reflections, keep Reflection Glossiness at 1.0. • For slightly blurry but strong reflections, set a lower Reflection Glossiness value. If performance becomes an issue try turning on Fast (interpolate). • For slightly blurry but also very weak reflections, you can “cheat” by applying a lower Reflection Glossiness value for broader highlights while setting Reflection Glossy Samples to 0. This shoots only one mirror ray 1569 1570 Chapter 16: Material Editor, Materials, and Maps for reflections, but if they are very weak, the viewer can often not really tell. • For moderately blurry surfaces, set an even lower Reflection Glossiness value and maybe increase the Reflection Glossy Samples value. Again, for improved performance turn on Fast (interpolate). • For extremely blurry surfaces or surfaces with very weak reflections, try turning on Highlights+FG Only. A typical wooden floor could use Reflection Glossiness of 0.5, Reflection Glossy Samples of 16, Reflectivity of 0.75, a nice wood texture for Diffuse Color, perhaps a slight bump map. If bumpiness should appear only in the lacquer layer, turn on Special Purpose Maps rollout > Do Not Apply Bumps To The Diffuse Shading. Linoleum flooring could use the same settings but with a different texture and bump map, and probably with slightly lower Reflectivity and Reflection Glossiness values. Ceramics Ceramic materials are glazed; that is, they’re covered by a thin layer of transparent material. They follow rules similar to the general materials mentioned above, but choose By IOR (fresnel reflections) and set IOR to about 1.4 and Reflectivity to 1.0. Set the Diffuse Color to a suitable texture or color, such as white for white bathroom tiles. Stone Materials A stone object usually has a fairly matte finish, or has reflections that are so blurry they are nearly diffuse. You can simulate the “powdery” character of stone with the Diffuse Roughness parameter; try 0.5 as a starting point. Porous stone such as brick would have a higher value. Stone would have a very low Reflection Glossiness (lower than 0.25) and one can most likely use Highlights+FG Only to good effect for very good performance. Use a nice stone texture for Diffuse Color, some kind of bump map, and perhaps a map that varies the Reflection Glossiness value. The Reflectivity would be around 0.5-0.6 with By IOR (fresnel reflections) off and 0 degree reflectivity at 0.2 and 90 degree reflectivity at 1.0 Glass Glass is a dielectric, so By IOR (fresnel reflections) should definitely be on. The IOR of standard glass is 1.5. Set Diffuse Level to 0.0, Reflectivity to 1.0 and Transparency to 1.0. This is enough to create basic, completely clear refractive glass. If this glass is for a window pane, turn Thin-walled on. If this is a solid glass block, turn Thin-walled off and consider if caustics are necessary or not, and set Refractive Caustics accordingly. If the glass is frosted, set Refraction Glossiness to a suitable value. Tune the Refraction Samples for good quality or turn on Fast (interpolate) for performance. Colored glass For clear glass, use the tips in the preceding section. Colored glass, however, is a different story. Many shaders set the transparency at the surface of the glass. And indeed this is what happens if one simply sets a Refractive Color to some value, such as blue. For glass with Thin-walled turned on this works perfectly. But for solid glass objects this is not an accurate representation of reality. The scene in following illustration contains two glass blocks of different sizes, a sphere with a spherical hole inside it, and a glass horse. Note: The spherical hole was created by inserting a second sphere with its normals flipped inside the Arch & Design Material (mental ray) – Tips & Tricks outer sphere. Don’t forget to flip the normals of such surfaces or they will not render correctly. With a blue refraction color: Glass with color changes at the surface The problems are evident: • The two glass blocks are of different thicknesses, yet they are exactly the same level of blue. • The inner sphere is darker than the outer one. Why does this happen? Consider a light ray that enters a glass object. If the color is located at the surface, the ray is colored somewhat as it enters the object, retains this color through the object, and receives a second coloration (attenuation) when it exits the object: In the above illustration the ray enters from the left, and at the entry surface it drops in level and gets slightly darker (the graph illustrates the level schematically). It retains this color throughout its travel through the medium and then drops in level again at the exit surface. For simple glass objects this is quite sufficient. For any glass using Thin-walled it is by definition the correct thing to do, but for any complex solid it is not. It is especially wrong for negative spaces inside the glass (like the sphere in our example) because the light rays have to travel through four surfaces instead of two, getting two extra steps of attenuation at the surface. In real colored glass, light travels through the medium and is attenuated as it goes. In the Arch & Design material this is accomplished by turning on Advanced Rendering Options > Refraction > Max Distance, setting the Color At Max Distance, and setting the Refraction Color to white. This is the result: Glass with color changes within the medium The result is clearly much more satisfactory: The thick glass block is a deeper blue than the thin one, and the hollow sphere now looks correct. In diagram form it looks as follows: Diagram for glass with color changes at the surface 1571 1572 Chapter 16: Material Editor, Materials, and Maps the more widely used Simple shadow mode. But if it is not used, the shadow intensity will not take the attenuation through the media into account properly. However, the image might still look pleasing. Water and Liquids Water, like glass, is a dielectric with an IOR of 1.33. Hence, the same principles as for glass (above) apply to bodies of water, which truly need to refract their environment. An example is water running from a tap. Colored liquids use the same principles as colored glass. d=Max Distance where attenuation is Color at Max Distance The ray enters the medium and is attenuated throughout its travel. The strength of the attenuation is such that precisely the Max Distance (d in the figure) the attenuation matches that of Color At Max Distance. In other words, at this depth the attenuation is the same as was received immediately at the surface with the previous scene. The falloff is exponential, so at double the Max Distance value the effect is that of Color At Max Distance squared, and so on. There is one minor tradeoff: To render the shadows of a material correctly using this method, you must either use caustics or make sure mental ray is rendering shadows in Segments mode (see Shadows and Displacement Rollout (mental ray Renderer) (page 3–114)). Using caustics naturally gives the most correct-looking shadows (the above image was rendered without caustics), but requires that the scene has caustic photons enabled and contains a physical light source that shoots caustic photons. On the other hand, the mental ray Segments shadows have a slightly lower performance than Water into wine To create a liquid in a container, as in the preceding image, it is important to understand how the Arch & Design material handles refraction through multiple surfaces vs. the real-world behavior of light in such circumstances. What is important for refraction is the transition from one medium to another with a different IOR. Such a transition is known as an interface. For lemonade in a glass, imagine a ray of light travelling through the air (IOR=1.0). When it enters the glass, it is refracted by the IOR of the glass (1.5). The ray then leaves the glass and enters the liquid; that is, it passes through an interface from a medium of IOR 1.5 to another medium of IOR 1.33. One way to model this in computer graphics is to make the glass one separate closed surface, with the normals pointing outward from the surface of Arch & Design Material (mental ray) – Tips & Tricks the glass and an IOR of 1.5, and a second, closed surface for the liquid, with the normals pointing outward and an IOR of 1.33, leaving a small air gap between the container and the liquid. In the most common case of an interface with air, the IOR to use is the IOR of the media (because the IOR of air is 1.0), whereas in an interface between two different media, the situation is different. This approach works, but can cause a problem: When light goes from a higher IOR to a lower there is a chance of an effect known as total internal reflection (TIR). This is the effect you see when diving into a swimming pool and then looking up: You can see the objects above the surface only in a small circle straight above. Anything below a certain angle shows only a reflection of the pool and things below the surface. The larger the difference in the IOR of the two media, the greater the chance of TIR. To correctly model this scenario, then, we need three surfaces, each with a different Arch & Design material applied: So in our example, as the ray goes from glass (IOR=1.5) to air, there is a large chance of TIR. But in reality the ray would move from a medium of IOR=1.5 to one of IOR=1.33, which is a much smaller step with a much smaller chance of TIR. This looks different: • the air-glass surface (blue), with normals pointing out of the glass, covering the area where air directly touches the glass, having an IOR of 1.5 • the air-liquid surface (green), with normals pointing out of the liquid, covering the area where air directly touches the liquid, having an IOR of 1.33 • the glass-liquid surface (red), with normals pointing out of the liquid, covering the area where the glass touches the liquid, having an IOR of 0.8 The three interfaces for a liquid in a glass Left: Correct refraction; Right: the “air gap” method The result on the left is the correct one, but how it is obtained? The solution is to rethink the modeling, and not to think in terms of media, but in terms of interfaces. In our example, we have three different interfaces, where we can consider the IOR as the ratio between the IORs of the outside and inside media: • air-glass interface (IOR=1.5/1.0=1.5) • air-liquid interface (IOR=1.33/1.0=1.33) • glass-liquid interface (IOR=1.33/1.5=0.8) By setting suitable Max Distance and Color At Max Distance values for the two liquid materials (to get a colored liquid), we obtain the glass on the left in the preceding rendered image. Ocean and Water Surfaces A water surface is a slightly different matter than a visibly transparent liquid. The ocean isn’t blue; it is reflective. Not much of the light that penetrates the surface of the ocean gets anywhere of interest. A small amount of light is scattered back up again, doing a bit of literal subsurface scattering. 1573 1574 Chapter 16: Material Editor, Materials, and Maps To make an ocean surface with the Arch & Design material, follow these steps: 1. Set Diffuse Level to 0.0, Reflectivity to 1.0, and Transparency to 0.0. That’s right: No refraction is necessary. 2. Set IOR to 1.33 and turn on By IOR (fresnel reflections). Apply an interesting wobbly shader to Bump (Ocean (lume) works well here) and your ocean is basically done. This ocean has reflections guided only by the IOR. But this might work fine; try it. Just make sure there is something there for it to reflect. Add a sky map, objects, or a just a blue gradient background. There must be something or it will be completely black. Enjoy the tropics. Metal Metals are reflective, which means they need something to reflect. The best looking metals come from having a true HDRI environment, either from a spherically mapped HDRI photo, or something like the mental ray physical sky. To create classic chrome, turn off By IOR (fresnel reflections), set Reflectivity to 1.0, 0 degree reflectivity to 0.9 and 90 degree reflectivity to 1.0. Set Diffuse Color to white, and turn on Metal Reflections. The ocean isn’t blue; the sky is. For a more tropical look, try setting Diffuse Color to a slightly blue-green color, set the Diffuse Level to a fairly low number such as 0.1, and turn on Do Not Apply Bumps To The Diffuse Shading. Now you have a base color in the water that emulates the small amount of scattering that occurs in the top level of the ocean. This creates an almost completely reflective material. Tweak the Reflection Glossiness parameter for various levels of blurry reflections. Also consider using the Round Corners effect (page 2–1556), which tends to work very well with metallic objects. Metals also influence the color of their reflections. Because you turned on Metal Reflections, this is already happening; try setting the Diffuse Color to a golden color to create gold. Try various levels of Reflection Glossiness (with the help of Fast (interpolate) for performance, when necessary). You can also change the Reflectivity value. This has a slightly different meaning when Metal Material is on; it blends between the reflections (colored by the Diffuse Color) and normal diffuse shading. This allows a blend between the glossy reflections Arch & Design Material (mental ray) – Tips & Tricks and the diffuse shading, both driven by the same color. For example, an aluminum material would need a bit of diffuse blended in, whereas chrome would not. Many small adjacent cylinders Gold, silver, and copper Brushed Metal Brushed metal is an interesting special case. In some cases, creating a brushed metal requires only turning down the Reflection Glossiness to a level where you obtain a very blurred reflection. This is sufficient when the brushing direction is random or the brushes are too small to be visible even as an aggregate effect. For materials that have a clear brushing direction and/or where the actual brush strokes are visible, creating a convincing look is slightly more involved. The tiny grooves in a brushed metal surface all work together to cause anisotropic reflections. This can be illustrated by the following schematic, which simulates the brush grooves by modeling many tiny adjacent cylinders, shaded with a simple Phong shader: As you can see, the specular highlights in the cylinders work together to create an aggregate effect which is the anisotropic highlight. Also note that the highlight isn’t continuous; it is actually broken up into small, adjacent segments. So the primary visual cues that a material is brushed metal are: • Anisotropic highlights that stretch out in a direction perpendicular to the brushing direction • A discontinuous highlight with breaks in the brushing direction Many attempts to simulate brushed metals have looked only at the first effect: the anisotropy. Another common mistake is to think that the highlight stretches in the brushing direction. Neither is true. Hence, to portray brushed metals, it is necessary to simulate these two visual cues. The first is simple: Use Anisotropy and Anisotropy Rotation to make anisotropic highlights. The second can be done in several ways: • with a bump map • with a map that varies the Anisotropy or Reflection Glossiness values • with a map that varies the Reflection Color Each has advantages and disadvantages, but the one we suggest here is the last one. The reason for 1575 1576 Chapter 16: Material Editor, Materials, and Maps choosing this method is that it works well with interpolation. 1. Create a map for the brush streaks. The possible ways to do this include painting a map in a paint program, or using a Noise map that has been stretched heavily in one direction. The map should vary between middle-gray and white. 2. Apply this map to the Reflection Color in a scale suitable for the brushing. 3. Set Diffuse Color to white (or the color of the metal) but set Diffuse Level to 0.0 (or a small value). 4. Make sure Metal Material is on. 5. Set Reflection Glossiness to 0.75. 6. Set Anisotropy to 0.1 or a similar value. Use Anisotropy Rotation to align the highlight properly with the map. If necessary use Anisotropy Channel to base it on the same texture space as the map. Brushed metal Car Paint Material/Shader (mental ray) Material Editor > Type button > Material/Map Browser > Car Paint Material Material Editor > any material > Click a Map button. > Material/Map Browser > Car Paint Shader Note: The Car Paint material and shader appear in the Browser only if the mental ray renderer is the currently active renderer. Car Paint is available as both a mental ray material and shader; both have identical parameters, and support the following unique characteristics of real-world car paint: • The lowest surface, applied directly to the car body, is a thin layer of pigment. The properties of this layer are such that the perceived color changes depending on the viewing angle as well as the incident angle of the incoming light. • Tiny metal flakes are suspended within this layer. The flakes reflect light and can be seen glittering on a sunny day, due to individual flakes reflecting sunlight directly at the observer. • On top of this is a clear-coat layer, which can be more or less reflective and more or less glossy, depending on the quality of the layer and any added wax coating. Most notably, this layer tends to exhibit a pronounced Fresnel effect, reflecting more light at glancing angles. • Includes a Lambertian dirt layer for that "unwashed" look. Car Paint Material/Shader (mental ray) Interface Light facing color bias—The falloff rate of the color Diffuse coloring rollout towards the light. Higher values make the colored region facing the light smaller/narrower; lower values make it larger/wider. The useful range is 0.0 to approximately 10.0, where the value 0.0 turns the effect off. Color shift due to view angle, shifting between a red base color and a green light facing color (atypical colors chosen for demonstration purposes) with varying Light Facing Color Bias values Ambient/Extra light—The ambient light Diffuse weight—Controls the overall level of the component. Diffuse Coloring parameters. Note: This parameter is treated differently from Diffuse bias—Modifies the falloff of the diffuse shading. Higher values push the diffuse peak towards the light source, and lower values flatten the diffuse peak. The useful range is approximately 0.5 to 2.0, where 1.0 represents standard Lambertian shading. the ambient/ambience parameter pair of many other base shaders in that it is influenced by the additional Diffuse Coloring parameters, and hence represents incoming light, rather than the object’s "ambient color." Base color—The base diffuse color of the material. Flakes rollout Edge color—The color seen at glancing angles (that is, edges), which tends to appear much darker. For deep metallic paints seen on sports cars it tends to be almost black. Edge bias—The falloff rate of the color towards the edge. Higher values make the edge region narrower; lower values make it wider. The useful range is 0.0 to approximately 10.0, where the value 0.0 turns the effect off. Flake color—The color (reflectivity) of the flakes, which is generally white. Color shift due to view angle, shifting between a red base color and a blue edge color (atypical colors chosen for demonstration purposes) with varying Edge Bias values color. Light facing color—The color of the area facing the Flake reflections (ray traced)—The amount of light source. ray-traced reflection in the flakes, which allows Flake weight—A scalar multiplier for the flake 1577 1578 Chapter 16: Material Editor, Materials, and Maps glittery reflections of, for example, an HDRI environment. The value 0.0 turns the effect off. This effect should generally be very subtle; a value of 0.1 is often enough. The final intensity of reflections also depends on the Flake Color and Flake Weight values. Flake specular exponent—The Phong specular exponent for the flakes. Flake density—The density of the flakes. The useful range is from 0.1 to approximately 10.0, where lower values indicate sparser flakes and higher values indicates denser flakes. Flake decay distance—The distance at which the influence of the flakes fades out. A value of 0.0 disables fading. Any positive value causes the Flake Weight value to be modulated so that it reaches zero at this distance. Because flakes are relatively small, using can introduce rendering artifacts if their visual density becomes significantly smaller than a pixel. If the oversampling of the rendering is set high, small flakes can also potentially trigger massive oversampling and hence overlong rendering times needlessly, because the averaging caused by the oversampling will essentially cancel out the flake effect. If you experience these issues, use Flake Decay Distance to counteract them. Using flake decay. The flake strength diminishes with distance. The same intentionally low oversampling as in the previous image has been used. Flake strength—The difference between the orientation of the flakes. The useful range is 0.0 to 1.0 where 0.0 means that all flakes are parallel to the surface, while higher values vary the orientation of flakes increasingly. Flake scale—The size of the flakes. The procedural texture is calculated in object space, and will hence follow the object. Thus, the scale is influenced by any scale transformation on the object. Specular reflections rollout Specular Color #1—The color of the primary specular highlight. Specular Weight #1—A scalar multiplier applied to Specular Color #1. Flakes at different distances with no flake decay. The farthest flakes might cause flicker in animations, or trigger unnecessary oversampling and long render times (rendered here with low oversampling for illustrative purposes). Specular exponent #1—The Phong exponent of Specular Color #1. Specular Color #2—The color of the secondary specular highlight. Specular Weight #2—A scalar multiplier applied to Specular Color #2. Car Paint Material/Shader (mental ray) Specular exponent #2—The Phong exponent of Glossy reflections spread—Sets the amount of Specular Color #2. glossiness. Cars are generally near-mirrors so this value should be kept small. Glazed specularity #1—Enables a special mode on the primary specular highlight called glazing. By applying a threshold to the specular highlight, it makes the surface appear more polished and shiny. For a new sports car with a lot of wax, turn this on. For a beat-up car in the junkyard, turn it off. Max distance—Limits the reach of reflective rays. Single environment sampling—Optimizes lookup of environment maps. Dirty layer (lambertian) rollout Left to right: Flake specularity only; standard specularity; "glazed" mode enabled; "glazed" mode specularity with flakes Reflectivity rollout Real cars are rarely clean. This shows the dirt layer (hand-painted dirt-placement map), including a bump map applied in the dirty regions. A simple Lambertian dirt layer covers the underlaying paint and clear-coat layers. Reflection color—The color of the reflections in the clear-coat layer. This is generally white. Edge factor—Clear coat tends to reflect more at glancing angles (edges). This parameter defines the "narrowness" of this edge. Edge reflections weight—The reflective strength at the edge (generally 1.0). Facing reflections weight—The reflective strength at facing angles (generally low: 0.1 - 0.3). Glossy reflection samples—Enables a glossy clear coat. This parameter sets the number of glossy reflection rays traced. A value of 0 disables glossiness. Dirt color—The color of the dirt. Dirt weight—The amount of dirt in the layer. This is typically connected to a texture shader to obtain variations in the dirt across the surface. If the value is 0.0, no dirt is added. Advanced options rollout 1579 1580 Chapter 16: Material Editor, Materials, and Maps Irradiance weight (indirect illumination)—The Interface influence of indirect light (photons and final gathering) on the surface. It is internally divided by pi (3.14159); for example, a value of 1.0 means the standard 1.0/pi weight. Parameters rollout Global weight—A global tuning parameter that affects the entire diffuse, flake, and specular subsystems. It does not affect reflections or dirt. Shaders rollout This rollout enables application of maps or shaders to any of the Car Paint parameters. Of course, you can apply a shader to a parameter by clicking its Map button, so the principal value of this rollout is that it also lets you toggle a parameter’s shader, using the check box, without removing the map. DGS Material (mental ray) Material Editor > Type button > Material/Map Browser > DGS Material (physics_phen) Note: The DGS material appears in the Browser only if the mental ray renderer is the currently active renderer. DGS stands for Diffuse, Glossy, Specular. This material is a mental ray phenomenon (a scripted shader tree) that provides a physically accurate simulation of a surface. Using DGS materials with the mental ray renderer is comparable to using the Architectural material (page 2–1535) with the default scanline renderer. The DGS material’s basic components appear on the Parameters rollout. You can assign shaders to these components, creating a material of greater complexity. Buttons for assigning shaders are on both the Parameters rollout and the Shaders rollout. Note: The button to the right of each control is a shortcut shader button. Clicking one of these buttons displays the Material/Map Browser (page 2–1412) so you can assign a shader to this component. When a map or a shader has been assigned to a component, this button displays the letter “M,” and the comparable button on the Shaders rollout displays the map or shader name. Diffuse—Click the color swatch to display a Color Selector (page 1–161) and change the material’s diffuse color. Glossy Highlights—Click the color swatch to display a Color Selector and change the color of glossy highlights. Specular—Click the color swatch to display a Color Selector and change the color of mirror reflections. When the specular color is white, the material is 100 percent reflective, like a mirror. When the specular color is black, the material does not reflect any of its surroundings. Shiny—Sets the width of glossy highlights. The larger this value, the smaller the highlights. Default=30.0. Transparency—Specifies the transparency. The effective range of Transparency is from 0.0 to 1.0. At 0.0 the material is fully opaque. At 1.0 it is fully transparent. Default=0.0. DGS Material (mental ray) Warning: You can set the value of Transparency to be greater than 1.0, but this has no effect. An anomaly of the user interface for shaders in the mental ray and lume libraries is that spinner values are not “clamped” to lie within their effective ranges, as they are for controls in 3ds Max. The value of Transparency also indirectly specifies the reflectivity of the material, which is calculated as 1.0 minus the Transparency value. Index Of Refraction—Specifies the IOR. In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is in. Typically this is related to the object’s density. The higher the IOR, the denser the object. Default=1.5. See Extended Parameters Rollout (Standard Material) (page 2–1471) for a list of IOR values for commonly encountered materials. Note: When the IOR equals 1.0, there is no refraction, and calculating the transparency can take less time than when the material is refractive. Shaders rollout The controls on this rollout let you assign a map or shader to one of the basic parameters of the DGS material. This is comparable to mapping a component of a standard material; by adding shaders, you can create a shader tree that generates complex effects. Click the button for a component to display the Material/Map Browser (page 2–1412) and assign the map or shader. Use the toggle at the left to turn the effect of the map off or on. The button to the right of each main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinates (page 2–1728) and XYZ Coordinates (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might encounter multiple return values in shaders provided with other shader libraries or custom shader code. For all the DGS material components, the available mental ray shaders are the same: Shader Library Bump (page 2–1716) 3ds Max DGS Material (page 2–1717) 3ds Max Dielectric base Dielectric Material (page 2–1719) 3ds Max Edge lume Facade lume Glass lume Glow lume Landscape lume Material to Shader (page 2–1723) 3ds Max Metal lume Ocean lume Opacity base Reflect base Refract base Shader List (page 2–1723) 3ds Max Stain lume Translucency lume 1581 1582 Chapter 16: Material Editor, Materials, and Maps Shader Library Transmat physics Transparency base Two Sided base UV Generator (page 2–1724) 3ds Max Water Surface lume Wet-Dry Mixer lume create a physically accurate model of this situation, use three glass materials: one for the glass itself, one for the alcohol, and a third material for the surfaces where they touch each other. For this third material, set the “inside” IOR to 1.3, and the outside IOR to 1.5. Interface XYZ Generator (page 2–1729) 3ds Max Glass Material (mental ray) Material Editor > Type button > Material/Map Browser > Glass (physics_phen) Note: The Glass material appears in the Browser only if the mental ray renderer is the currently active renderer. The Glass material simulates both the surface properties and the light-transmitting (photon) properties of glass. It is a mental ray phenomenon (a scripted shader tree) that is equivalent to a mental ray material (page 2–1544) with a Dielectric Material shader (page 2–1719) assigned to both its Surface and Photon components, with the parameter settings identical for both. A dielectric material, such as glass, is a material whose surface transmits most light that strikes it at angles close to perpendicular (90 degrees), but reflects most light that strikes at glancing angles (close to zero degrees). Note: This material does not use a shadow shader, so shadows will always be opaque unless you generate caustics. Adjacent Refractive Materials Two controls, Outside Light Persistence and Index Of Refraction (Out), are for situations where you are modeling two adjacent refractive materials. Consider a drink in a martini glass. The glass has an index of refraction (IOR) of 1.5, while the alcohol in the glass has an IOR of about 1.3. To Light Persistence—In conjunction with the Persistence Distance, controls the percentage of light that the volume transmits. For example, if the color is set to R=G=B=0.5 and the Persistence Distance is set to 2.0, then objects with a thickness of 2.0 units will appear 50 per cent transparent. Default=white (R=G=B=1.0). Because transparency depends on the thickness of the object, objects with varying thickness show different transparency depending on the angle from which they are viewed. Index Of Refraction—Specifies the Index Of Refraction (IOR). In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is in. Typically this is related to the object’s density. The higher the IOR, the denser the object. Default=1.5. See Extended Parameters Rollout (Standard Material) (page 2–1471) for a list of IOR values for commonly encountered materials. Subsurface Scattering (SSS) Materials Outside Light Persistence—In conjunction with the Persistence Distance, controls the percentage of light transmitted on the other side of a surface. When set to the default of black, this control has no effect. See the section “Adjacent Refractive Materials,” above. Default=black (R=G=B=0.0). Index Of Refraction (out)—Sets the IOR on the other side of a surface. When set to the default of zero, this control has no effect. See the section “Adjacent Refractive Materials,” above. Default=0.0. Persistence Distance—In conjunction with the Light Persistence color, controls the percentage of light that the volume transmits. It is the distance at which light transmission is reduced to the percentage specified by the Light Persistence RGB values. Default=1.0. If you specify an Outside Light Persistence color, that setting also uses the Persistence Distance. Ignore Normals—When on, the renderer does not use normals to decide whether a light ray is entering or leaving the object. Normally, the material uses normals to decide whether a ray is entering or leaving an object. (It is entering if the normal points toward the ray, leaving if the normal points away from the ray.) This can present a problem for rendering objects whose normals are not unified. hen Ignore Normals is on, the material decides whether a ray is entering or leaving the object by counting the number of times the ray has intersected the object. Default=off. this value must be greater than 10 for highlights to be apparent. Default=0.0. Subsurface Scattering (SSS) Materials Material Editor > Type button > Material/Map Browser > Choose SSS Fast Material (mi), SSS Fast Skin Material (mi), SSS Fast Skin Material+Displace (mi), or SSS Physical Material (mi), and then click OK. Note: The SSS materials appear in the Browser only if the mental ray renderer is the currently active renderer. The subsurface scattering (SSS) materials are provided especially to model skin and other organic materials whose appearance depends on more than one layer of light scattering. 3ds Max provides four of these materials. Each material is a top-level wrapper (a “phenomenon”) for shaders whose controls are documented in the Standard mental ray Shader Libraries document. Click a link to see the mental images documentation for the shader. Tip: When you follow a link to the documentation for mental images library shaders, scroll up a bit in your browser. The links tend to go past the title of the section, and there might be introductory content above the link location. If the link goes to the beginning of a section, scroll down instead. Material Name mi Library Shader Name SSS Fast Material (mi) misss_fast_simple_phen Opaque Alpha—When on, refracted rays that touch SSS Fast Skin Material (mi) misss_fast_skin_phen the environment don’t generate a transparent alpha value. (This is how 3ds Max usually treats the environment.) When off, refracted rays that touch the environment render a transparent alpha value, which can help if you plan to use the rendering as part of a composite. Default=off. SSS Fast Skin Material+Displace (mi) misss_fast_skin_phen_d SSS Physical Material (mi) misss_physical Phong Coefficient—When greater than zero, generates Phong highlights on the material. The highlights appear in the sample slot. In general Also see Subsurface Scattering Shaders and the topics that follow it for more general information. See Physically Correct Subsurface Scattering for background information and tips about the Physical material. 1583 1584 Chapter 16: Material Editor, Materials, and Maps Note: The SSS Physical Material can also be used as a shader for the Surface and Photon components of a mental ray material (page 2–1544). For a downloadable tutorial offering a practical demonstration of using the SSS Fast Skin material, see this Web page . Light Controls for the SSS Physical Material The SSS Physical material includes light controls that correspond to the lights array in the parameters for the misss_physical shader. Lights—When on, the material is illuminated only Simply rendering the framed photo against a background shows the photo in front of the background. by those lights specified in the list. When Lights is turned off, all lights in the scene affect the material. Default=off. The remaining light controls are available only when Lights is on. • List of lights—Displays the lights you have chosen to illuminate this material. • Add—Adds a light to the list. Click Add to turn it on, then click the light object in a viewport. • Replace—Replaces a light in the list. Highlight a light’s name in the list, click Replace to turn it on, then click the replacement light object in a viewport. • Delete—Deletes a light from the list. Highlight a light’s name in the list, then click Delete. Matte/Shadow Material Material Editor > Type button > Material/Map Browser > Matte/Shadow The Matte/Shadow material allows you to make whole objects (or any subsets of faces) into matte objects (page 3–971) that reveal the current environment map (page 3–934). A matte object hides parts of the photo, revealing the background to make it appear the photo is behind the goblets. It can also receive shadows cast on it from non-matte objects in the scene. Using this technique, you can cast shadows on backgrounds by building matte proxy objects and placing them in front of similarly shaped objects in the background. Matte/Shadow Material Example: To see the effect of Affect Alpha and Matte Reflection: 1. Create a scene with one or more objects on a box platform, and one or more shadow-casting spotlights. Tip: If you use only one spotlight, increase its Multiplier value. 2. Assign a Matte/Shadow material to the box, and render the scene with default Matte/Shadow parameters (Opaque Alpha is on, and Affect Alpha is off). 3. In the rendered frame window (page 3–5) that is displayed, click Display Alpha Channel. The objects all appear as white silhouettes, including the platform. Creating a matte object for casting shadows against a background image Matte/Shadow materials can also have reflections. Note: The Matte/Shadow effect is visible only when you render the scene. It isn’t visible in viewports. Procedures To render objects seamlessly against a background environment: There are three ways you can render objects to blend seamlessly into a background environment: 4. On the Matte/Shadow Basic Parameters rollout, turn off Opaque Alpha, and turn on Receive Shadows and Affect Alpha. 5. Press F9 (Render Last (page 3–25)). The silhouette of the box no longer appears, but the other objects and their shadows appear. 6. On the Matte/Shadow Basic Parameters rollout, click the Map button in the Reflection group, and use the Material/Map Browser (page 2–1412) to assign a Flat Mirror (page 2–1695) map to the box’s material. 1. By assigning a Matte/Shadow Material 7. Press F9 (Render Last (page 3–25)). 2. By assigning a 100% self-illuminated diffuse 8. In the rendered frame window, turn off Display texture to an object using Camera Mapping 3. By assigning a 100% self-illuminated diffuse texture using Environment/Screen projection Use the Plate Match/MAX R2.5 antialiasing whenever you are trying to match foreground objects with an unfiltered background, or trying to match the antialiasing qualities of the 3ds Max 2.5 renderer. See the description of Antialiasing Filter in the description of the Default Scanline Renderer (page 3–38). Alpha Channel. The reflections of the objects appear on the box, even though the box itself is invisible. 1585 1586 Chapter 16: Material Editor, Materials, and Maps Interface and then renders its shadows. In this case, the shadows won’t be lightened by the fog. If you want to lighten the shadows, you need to turn up the shadow brightness. At Object Depth—This is the 3D method. The renderer first renders the shadows, and then fogs the scene. Since this varies the amount of fog over the 3D matte surface, the generated matte/alpha channels don’t blend perfectly into the background. Use At Object Depth when the matte object is meant to be a 3D object in the scene that the 2D background represents. Shadow group Matte group Opaque Alpha—Determines whether or not the matte material appears in the alpha channel. If you turn off Opaque Alpha, the matte object will not make an alpha channel, and the image can be used for compositing, just as if there are no matte objects in the scene. Default=off. Atmosphere group These options determine whether fog effects are applied to the matte surfaces, and how they are applied. Apply Atmosphere—Turns the fogging of matte objects on and off. When applying fog, you can choose between two different methods. You can either apply fog as if the matte surface is at an infinite distance from the camera or you can apply it as if the matte surface is actually at that point on the object being shaded. In other words, you can apply the fog to the matte surface in either 2D or 3D. The following controls determine how this is applied: At Background Depth—This is the 2D method. The scanline renderer (page 3–1006) fogs the scene, This group determines whether the matte surfaces receive shadows that are cast upon them, and how they receive them. Receive Shadows—Renders shadows on the matte surfaces. Default=on. Affect Alpha—When on, shadows cast on a matte material are applied to the alpha channel. This lets you render bitmaps with alpha channels that you can composite later. Default=on. Affect Alpha is available only when Opaque Alpha (in the Matte group box) is turned off. When Affect Alpha is on, the higher the Shadow Brightness value, the more transparent the shadow, allowing the background to show through more, and making the shadow appear brighter. Shadow Brightness—Sets shadow brightness. At 0.5, the shadows will not be attenuated on the matte surface; at 1.0, the shadows are brightened to the color of the matte surface; and at 0.0 they are darkened to completely obliterate the matte surface. Color—Displays a Color Selector (page 1–161) to let you choose the color of the shadow. Default=black. Setting shadow color is especially useful when you’re using a Matte/Shadow material to composite Compound Materials your shadows against a background image, such as video. It lets you tint your shadows to match pre-existing shadows in the image. Reflection group Controls in this group determine whether the matte surfaces can have reflections. You create matte reflections using a shadow map. Tip: Matte reflections don’t successfully create an alpha channel unless you render them against a black background. Amount—Controls the amount of reflection to use. This is a percentage that can range from 0 to 100. This control is unavailable unless you have assigned a map. Default=50. You can animate this parameter. Map—Displays the Material/Map Browser (page 2–1412) so you can assign a map to use for reflections. The reflection is independent of the environment unless you choose a Reflect/Refract (page 2–1695) or Flat Mirror map (page 2–1695). Compound Materials Compound materials combine two or more sub-materials. Compound materials are similar to compositor maps (page 2–1687), but they exist at the material level. Applying a compound material to an object creates a compound effect that often uses mapping. You load or create compound materials using the Material/Map Browser. Using a filter control, you can choose whether the Browser lists maps or materials or both. Different types of materials create different effects, behave in particular ways, or are provided as ways to combine multiple materials. Note: The sub-material buttons and sub-map buttons for most materials and maps have check boxes beside each button. These let you turn that branch of the material or map on or off. For example, in the Top/Bottom material, the Top Material and Bottom Material buttons each have check boxes. Similarly, the Checker map has two map buttons, one for each color. Each button has a check box beside it that lets you disable that color’s map. These are the different types of compound materials: Blend (page 2–1588): Combines two materials by mixing their pixel colors, as Mix maps do. Composite (page 2–1589): Mixes up to 10 materials, using additive colors, subtractive colors, or opacity mixing. Double-Sided (page 2–1591): Stores two materials. One material is rendered on the object’s outer faces (the usual side for one-sided materials, as determined by face normals), and the other is rendered on the object’s inner faces. Morpher Material (page 2–1592): Morpher materials use the Morpher modifier (page 1–729) to manage multiple materials over time. Multi/Sub-Object (page 2–1594): Lets you assign more than one material to the same object. Stores two or more sub-materials, which you assign at the sub-object level by using the Mesh Select (page 1–719) modifier. You can also assign the sub-materials to whole objects by using the Material modifier (page 1–714). Shellac (page 2–1597): Superimposes one material on another. Top/Bottom (page 2–1599): Stores two materials. One material is rendered on an object’s top faces and the other is rendered on the object’s bottom faces, depending on whether a face normal points up or down. 1587 1588 Chapter 16: Material Editor, Materials, and Maps Procedure To have the Browser list only materials: • At the top of the Show group, leave Materials on and turn off Maps. Note: This option is available only at the material level in the Material Editor. A Replace Map (page 2–1456) dialog is displayed. This dialog asks whether you want to discard the original material in the slot, or retain it as a sub-material. Blend materials have similar controls to Mix maps. To specify a component material: Blend Material Material Editor > Type button > Material/Map Browser > Blend • In the Blend Basic Parameters rollout, click one of the two material buttons. The parameters for the sub-material are displayed. By default, a sub-material is a Standard material with Blinn shading. To control the mix amount: • In the Basic Parameters rollout, adjust the Mix Amount value. You can also control the mix amount by using a map. Blend material combines bricks and stucco. The Blend material lets you mix two materials on a single side of the surface. Blend has an animatable Mix Amount parameter that lets you draw material morphing (page 3–974) function curves to control the way that the two materials are blended over time. Note: If even one sub-material has its shading set to Wire (see Shader Basic Parameters Rollout (page 2–1466)), the entire material displays and renders as a wire material. Procedures To create a Blend material: 1. Activate a sample slot in the Material Editor. 2. Click the Type button. 3. In the Material/Map Browser (page 2–1412), choose Blend and then click OK. Map used to reveal brick beneath stucco To control the mix amount using a map: • In the Basic Parameters rollout, click the map button next to Mask. The Browser is displayed so you can select a map type. The intensity of pixels in this mixing map controls the mix. When the intensity is close to zero, one of the component colors or maps Composite Material is visible; when it is close to full intensity, the other component is visible. Material 2. Use the check box to turn the mask map on or off. Tip: Using a Noise map for the mixing map can Mix Amount—Determines the proportion of the give good effects that have a natural appearance. blend (percentage). 0 means only Material 1 is visible on the surface; 100 means only Material 2 is visible. Unavailable if you have assigned a mask map and the mask’s check box is on. Mix Amount is unavailable while a map is assigned to this parameter. If Use Curve is turned off, the mixing map is used as is. If Use Curve is on, you can shift the effect of the mixing map’s gradient ramp to reveal more of one material and less of the other. Interface You can animate this parameter. Create Material Preview (page 2–1434) is useful for testing the effect. Mixing Curve group The mixing curve affects how gradual or how sharp the transition between the two colors being blended will be. It affects the blend only when a mask map is assigned. Tip: For mottled effects, blend two standard materials using a noise map as a mask. Use Curve—Determines whether the Mixing Curve affects the mix. This control is available only when a mask is assigned and active. Transition Zone—These values adjust the level of Material 1/Material 2—Set the two materials to be blended. Use the check boxes to turn the materials on and off. the Upper and Lower limits. If the two values are the same, the two materials meet at a definite edge. Wider ranges give more gradual blending from one sub-material to the other. The mixing curve displays the effect of changing these values. Interactive—Chooses which of the two materials is displayed on object surfaces in viewports by the interactive renderer. If one material has Show Map in Viewport (page 2–1445) on, this takes precedence over the Interactive setting. Only one map at a time can be displayed in viewports. Mask—Sets a map to use as a mask. The degree of blending between the two materials depends on the intensity of the mask map. Lighter (whiter) areas of the mask show more of Material 1, while darker (blacker) areas of the mask show more of Composite Material Material Editor > Type button > Material/Map Browser > Composite Composite material composites (page 3–922) up to 10 materials. The materials are superimposed from top to bottom, as listed in the rollout. Materials are combined using additive opacity (page 3–906), subtractive opacity (page 3–1017), or mixed using an Amount value. 1589 1590 Chapter 16: Material Editor, Materials, and Maps Note: If even one sub-material has its shading set to Wire (see Shader Basic Parameters Rollout (page 2–1466)), the entire material displays and renders as a wire material. Interface ASM buttons—These buttons control how the material is composited. Default=A. A—When on, this material uses additive opacity (page 3–906). Colors in the material are summed based on their opacity. S—When on, this material uses subtractive opacity (page 3–1017). Colors in the material are subtracted based on their opacity. M—When on, this material mixes materials based on the Amount. Both color and opacity are blended as they are when you use a Blend material (page 2–1588) with no mask. Amount spinner—Controls the amount of mixing. Default=100.0. For additive (A) and subtractive (S) compositing, the Amount can range from 0 to 200. When the Amount is 0, no compositing happens, and the material below is not visible. When the Amount is 100, the composite is complete. When the amount is greater than 100, compositing is "overloaded": transparent portions of the material become more opaque, until the material below is no longer visible. Base Material—Displays the Material/Map Browser (page 2–1412), where you assign the base material. By default, the base material is a Standard material. The other materials are composited by superimposing them on top of this material, in order from top to bottom. Mat 1 through Mat 9—Each of these nine groups contains controls for a material to composite. By default, no materials are assigned. Check box—When on, uses the material in the composite. When off, doesn’t use it. Default=on. Button—Displays the Material/Map Browser (page 2–1412), where you assign a material to composite. For mix (M) compositing, the Amount can range from 0 to 100. When the Amount is 0, no compositing happens, and the material below is not visible. When the amount is 100, compositing is complete, and only the material below is visible. Double-Sided Material Double-Sided Material Material Editor > Type button > Material/Map Browser > Double-Sided To choose the outer material: • Click the button labeled Facing Material. The parameters for the sub-material are displayed. By default, a sub-material is a Standard material with Blinn shading. To choose the inner material: 1. Go back to the parent material (parameters for the Double-Sided material). 2. On the Double-Sided Basic Parameters rollout, click the button labeled Back Material. The parameters for the sub-material are displayed. By default, a sub-material is a Standard material with Blinn shading. To make the material translucent: On the right, a double-sided material creates a pattern for the inside of the trash can. The Double-Sided material lets you assign two different materials to the front and back faces of an object. Note: If even one sub-material has its shading set to Wire (see Shader Basic Parameters Rollout (page 2–1466)), the entire material displays and renders as a wire material. Procedures • Set Translucency to a value greater than 0. The Translucency control affects the blending of the two materials. When Translucency is 0, there is no blend. When Translucency is 100.0 percent, the outer material is visible on inner faces and the inner material is visible on outer faces. At intermediate values, the specified percentage of the inner material "bleeds through" and is visible on outer faces. Interface To create a double-sided material: 1. Activate a sample slot in the Material Editor. 2. Click the Type button. 3. In the Material/Map Browser, choose Double-Sided and then click OK. A Replace Map dialog (page 2–1456) is displayed. This dialog asks whether you want to discard the original material in the slot, or retain it as a sub-material. The Double-Sided material controls let you choose the two materials, and the translucency of the material overall. Translucency—Sets the amount that one material shows through the other. This is a percentage that can range from 0.0 to 100.0. At 100 percent, the outer material is visible on inner faces and the inner material is visible on outer faces. At intermediate values, the specified percentage of 1591 1592 Chapter 16: Material Editor, Materials, and Maps the inner material "bleeds through" and is visible on outer faces. Default=0.0. You can animate this parameter. Facing Material and Back Material—Click to display the Material/Map Browser (page 2–1412) and choose a material for one side or the other. Use the check boxes to turn the materials on or off. Morpher Material Material Editor > Type button (labeled Standard by default) > Material/Map Browser > Morpher material Procedures (page 2–1592) Interface (page 2–1593) The Morpher material works hand-in-hand with the Morpher modifier. You can use it to make the cheeks of a character blush, or to wrinkle a character’s forehead when the eyebrows are raised. With the Morpher modifier’s channel spinners, you can blend materials the same way you morph the geometry. The Morpher material has 100 material channels that map directly to the 100 channels in the Morpher modifier. After you apply the Morpher material to an object and bind it to the Morpher modifier, you use the channel spinners in the Morpher modifier to morph materials and geometry. Empty channels in the Morpher modifier, with no geometry morph data, can be used to morph materials only. Note: The mental ray renderer (page 3–78) does not support the Morpher material. Note: If even one sub-material has its shading set to Wire (see Shader Basic Parameters Rollout (page 2–1466)), the entire material displays and renders as a wire material. See also Morpher Modifier (page 1–729) Applying the Morpher Material An object must have at least one Morpher modifier in its modifier stack. You can assign the material to an object and bind it to the object’s Morpher modifier in either of two ways. • After the Morpher modifier is applied to an object, use the Assign New Material command in the Global Parameter rollout of the Morpher modifier. This is the simplest way, and applies the Morpher Material to the object and binds the material to the Morpher modifier at the same time. • Open the Material Editor, select the Morpher material, and click Choose Morph Object in the Parameters rollout, then click the object in the viewports. After clicking the object, a dialog displays in the viewports, select the Morpher modifier from the dialog (an object may have multiple Morpher modifiers). This binds the Morpher material to the Morpher modifier. Note: You can bind a Morpher material to only one Morpher modifier. Procedures Example: To apply and use the Morpher material: 1. Create a sphere in the Perspective viewport. 2. On the Modify panel, right-click the sphere’s entry in the modifier stack display, and choose Convert To: Editable Mesh. 3. From the Modifier List, choose Morpher. This applies the Morpher modifier to the sphere. 4. On the Morpher modifier’s Global Parameters rollout, click Assign New Material. The Morpher material is now applied to the object and bound to the Morpher modifier. Morpher Material 5. Open the Material Editor, and click Pick Material from Object (the eyedropper), then click the sphere in the viewports. The Material Editor displays the Morpher material parameters. 6. On the Morpher Material Parameters rollout, click the Mat 1 slot. 7. On the Material/Map Browser choose Standard. 8. On the Basic Parameters rollout, click the Diffuse color swatch. 9. On the Color Selector, choose a bright yellow, and close the color selector. Leave the Material Editor open. 10. Turn on the Auto Key button, then move the time slider to frame 50. 11. Select the sphere, and then open the Modify panel. 12. On the Morpher modifier’s Channel List rollout, set the channel 1 spinner to 100. In the Material Editor, the color of the sample sphere changes to yellow. 13. On the main toolbar, click Render. The sphere is yellow. If you render an animation the sphere changes from a grey color to yellow. Interface The Morpher material interface is on a Parameters rollout in the Material Editor. Modifier Connection group Choose Morph Object—Click this option, then select an object in the viewports that has a Morpher modifier applied to it. Clicking an object in the viewports displays the Choose Morpher modifier dialog. Choose a Morpher modifier, and click Bind. 1593 1594 Chapter 16: Material Editor, Materials, and Maps Mixing Calculation Options group The system can slow down if there are many active materials being blended. Options in this group allow you to control when the morph result will be computed. Constantly—Choose to compute the material morph result all the time. When Rendering—Choose to compute the material morph result at render time. Never Calculate—Choose to bypass material Name Field—Displays the name of object to which blending. the Morpher material is applied. If no object has been specified, the field displays "No Target". Refresh—Updates the channel data. Marker List—This list is identical to the marker list in the Morpher modifier. Markers you save in the Morpher modifier appear here. Multi/Sub-Object Material Material Editor > Type button > Material/Map Browser > Multi/Sub-Object Base Material group Base material button—Click to apply a base material to the object. The base material represents what the model looks like before any channel blending takes place. Channel Material Setup group Map #—100 material channels are available. The scroll bar allows you to scroll through all the channels. Double-click a channel to jump to the material parameters for that channel. There is a one-to-one correspondence between the channels in the Morpher material and the Morpher modifier. A material in channel 1 of the Morpher material is controlled by the channel 1 spinner in the Morpher modifier. Material on/off toggle—Turns a channel on and off. Channels that are off do not affect the morph result. Figure mapped using a Multi/Sub-Object material The Multi/Sub-Object material lets you assign different materials at the sub-object level of your geometry. You create a multi-material, assign it to an object, and then use the Mesh Select modifier (page 1–719) to select faces and choose which of the sub-materials in the multi-material are assigned to the selected faces. If the object is an editable mesh (page 1–996), you can drag and drop materials to different selections of faces, building a Multi/Sub-Object material on Multi/Sub-Object Material the fly. See Drag and Drop Sub-Object Material Assignment (page 2–1424). 3. In the Material/Map Browser (page 2–1412), choose Multi/Sub-Object and then click OK. A Replace Map dialog (page 2–1456) is displayed. This dialog asks whether you want to discard the original material in the slot, or retain it as a sub-material. You can also create a new Multi/Sub-Object material by dragging to faces selected with the Edit Mesh modifier (page 1–634). Sub-material IDs do not depend on the order of the list, and you can enter new ID values. The Make Unique button (page 2–1442) in the Material Editor lets you make an instanced sub-material into a unique copy. At the Multi/Sub-Object material level, the sample slot’s sample object shows a patchwork of the sub-materials. When you edit a sub-material, the sample slot display depends on the setting of the Simple Multi Display Below Top Level toggle in the Material Editor Options dialog (page 2–1436). The controls for a Multi/Sub-Object material are essentially a list of the sub-materials it contains. To assign a sub-material: • On the Multi/Sub-Object Basic Parameters rollout, click a sub-material button. The parameters for the sub-material appear. By default, a sub-material is a Standard material with Blinn shading. To make one of the sub-materials a solid color: Using Multi/Sub-Object Materials Here are some usage tips with regards to mesh editing and managing sub-materials. • On the Multi/Sub-Object Basic Parameters rollout, click the color swatch next to the sub-material button. In the Color Selector (page 1–161), choose a color. • When working at sub-object levels of Editable Meshes, Polys, Patches and Splines, or with objects that have Edit Mesh, Spline or Patch modifiers applied to them, you can browse by sub-material names if the object has a multi-sub-object material applied to it. • Sub-materials that are not assigned to an object, or surface of an object, can be ’cleaned’ from the Multi-Sub-Object material by using the Clean MultiMaterial utility (page 2–1742). • Duplicate maps, assigned to materials, can be changed to instances by using the Instance Duplicate Maps utility (page 2–1744). The color swatches for sub-materials are shortcuts. They assign the color you choose to the sub-material’s Diffuse component. To assign one of the sub-materials to a sub-object selection: 1. Select the object, and assign a Multi/Sub-Object material to it. 2. On the Modify panel (page 3–758), apply Mesh Select (page 1–719) to the object. 3. Click Sub-Object and choose Face as the Procedures To create a Multi/Sub-Object material: 1. Activate a sample slot in the Material Editor. 2. Click the Type button. sub-object category. 4. Select the faces to which you will assign a sub-material. 1595 1596 Chapter 16: Material Editor, Materials, and Maps 5. Apply a Material modifier (page 1–714), and set the material ID value to the number of the sub-material you want to assign. The viewport updates to show the sub-material assigned to the selected faces. The material ID values in the Multi/Sub-Object material and the material ID numbers in the Select Face rollout correspond. If you set the ID to a number that doesn’t correspond to a material contained in the Multi/Sub-Object material, the faces render as black. If the list of sub-materials is longer than the rollout will hold, you can use the scroll bar at the right to display other parts of the list. 2. Click Delete. The sub-material is removed. Deleting a sub-material is an undoable operation. Interface Warning: Some geometric primitives do not use 1 as the default material ID, and some, such as hedra or box, have multiple material IDs by default. Tip: You can also use the Edit Mesh modifier (page 1–634) to assign a contained material to selected faces. Apply Edit Mesh to the object, go to the Face sub-object level, and select the faces to assign. Then on the Edit Surface rollout, set the material ID value to the ID of the sub-material. (You can drag and drop (page 2–1424) a Multi/Sub-Object material to an Edit Mesh modifier as you can to an editable mesh object.) To add a new sub-material: • Click Add. A new sub-material is added to the end of the list. By default, the new sub-material’s ID number is one greater than the highest material ID already in use. To remove a sub-material: 1. Select the sub-material by clicking its small sample sphere in the Multi/Sub-Object Basic Parameters rollout. The small sample sphere is surrounded by a black and white border to show the sub-material is selected. Number—This field displays the number of sub-materials contained in the Multi/Sub-Object material. Set Number—Sets the number of sub-materials make up the material. At the Multi/Sub-Object material level, the sample slot’s sample object shows a patchwork of the sub-materials. (When you edit a sub-material, the sample slot display depends on the setting of the Simple Multi Display Below Top Level toggle on the Material Editor Options dialog (page 2–1436).) Reducing the number of sub-materials removes sub-materials from the end of the list. You can Shellac Material undo Set Number when you have used it to delete materials. same ID, a warning message appears at the top of the rollout. Add—Click to add a new sub-material to the list. By default, the new sub-material’s ID number is one greater than the highest material ID already in use. When the Multi/Sub-Object material is applied to an object, faces in the object assigned the same material ID number render with this sub-material. Delete—Click to delete the currently chosen You can click Sort by ID to sort the sub-material list by this value, from lowest to highest. sub-material from the list. You can undo deleting a sub-material. Note: Sometimes the Sub-Material button shows a material number. This is not the sub-material ID. Sort list controls Name—Lets you enter a custom name for the material. A sub-material name appears in the Name (page 2–1448) field when you’re at the level of the sub-material. It also appears in the Browser and the Navigator. These buttons appear above three of the columns in the sub-materials list. ID—Click to sort the list so it begins with the sub-material that has the lowest material ID, and ends with the sub-material that has the highest material ID. Name—Click to sort the list by the names you have entered in the Name column. Sub-Material—Click to sort the list by the sub-material names that appear on the Sub-Material buttons. List of sub-materials Each sub-material has a single entry in this list. The rollout displays up to 10 sub-materials at a time. If the Multi/Sub-Object material contains more than 10 sub-materials, you can scroll the list using the scrollbar at the right. Sub-Material button—Click the sub-material button to create or edit one of the sub-materials. Each of the sub-materials is a complete material in its own right, with as many maps (page 3–968) and levels as you want. By default, each sub-material is a Standard material (page 2–1465) with Blinn shading (page 2–1480). Color swatch—Click the color swatch to the right of the Sub-Material button to display the Color Selector (page 1–161) and choose a diffuse color for the sub-material. On/Off toggle—Turns the sub-material on or off. When a sub-material is off, it appears black in the sample slot and on objects in the scene. Default=on. Each sub-material in the list has the following controls: Small sample sphere—The small sample sphere is a "mini-preview" of the sub-material. Click it to select this sub-material. You must select a sub-material before you delete it. ID—Shows the ID number assigned to this sub-material. You can edit this field to change the ID number. If you assign two sub-materials the Shellac Material Material Editor > Type button > Material/Map Browser > Shellac Shellac material mixes two materials by superimposing one over the other. Colors in the superimposed material, called the "shellac" material, are added to colors in the base material. 1597 1598 Chapter 16: Material Editor, Materials, and Maps A Shellac Color Blend parameter controls the amount of color mixing. Interface Base Material—Goes to the level of the base sub-material. By default, the base material is a Standard material with Blinn shading. Shellac Material—Goes to the level of the shellac material. By default, the shellac material is a Standard material with Blinn shading. Shellac Color Blend—Controls the amount of color mixing. At 0.0, the shellac material has no effect. Increasing the Shellac Color Blend value increases the amount of shellac material color blended into the base material color. There is no upper limit on this parameter. Large values "overload" the shellac material colors. Default=0.0. You can animate this parameter. Top: Base material Middle: Shellac material Bottom: Materials combined with a shellac color blend value of 50% Note: If even one sub-material has its shading set to Wire (see Shader Basic Parameters Rollout (page 2–1466)), the entire material displays and renders as a wire material. Top/Bottom Material Top/Bottom Material Material Editor > Type button > Material/Map Browser > Top/Bottom to discard the original material in the slot, or retain it as a sub-material. The Top/Bottom material controls let you choose the two materials, and also the transition between them. To choose the top or bottom material: • On the Top/Bottom Basic Parameters rollout, click the Top Material button or the Bottom Material button. The parameters for the sub-material appear. By default, a sub-material is a Standard material with Blinn shading. To swap the two component materials: • In the Basic Parameters rollout, click Swap. Top/bottom material gives the pot a charred bottom. The Top/Bottom material lets you assign two different materials to the top and bottom portions of an object. You can blend the materials into one another. The remaining controls, described in the "Interface" section, affect the transition between top and bottom. Interface The object’s top faces are those whose normals point up. The bottom faces have normals that point down. You can choose whether "up" and "down" refer to the scene’s world coordinates or to the object’s local coordinates. Note: If even one sub-material has its shading set to Wire (see Shader Basic Parameters Rollout (page 2–1466)), the entire material displays and renders as a wire material. Procedures To create a top/bottom material: 1. Activate a sample slot in the Material Editor. 2. Click the Type button. 3. In the Material/Map Browser (page 2–1412), choose Top/Bottom and then click OK. A Replace Map (page 2–1456) dialog is displayed. This dialog asks whether you want Top Material and Bottom Material—Click to display the parameters for the top or bottom sub-material. By default, a sub-material is a Standard material with Blinn shading. The check box to the right of each button lets you turn off that material, making it invisible in the scene and in the sample slot. Swap—Swaps the position of the top and bottom materials 1599 1600 Chapter 16: Material Editor, Materials, and Maps Coordinates group Controls in this group let you choose how the software determines the boundary between top and bottom. World—Faces point up or down according to the scene’s world coordinates. When you rotate the object, the boundary between top and bottom faces remains in place. The Shell material is a container for other materials, like Multi/Sub-Object. It also lets you control which material is used in which renderings. Note: The Material/Map Browser lists the Shell material when you assign a new material. You can apply two materials to a single object this way, but changing a material’s type to Shell does not generate a baked texture that is saved to disk. Local—Faces point up or down according to the Procedures object’s local coordinates. When you rotate the object, the material rotates with it. To load a shell material into a sample slot: 1. Click an unused sample slot. Blend—Blends the edge between the top and bottom sub-materials. This is a percentage that can range from 0 to 100. At 0, there is a sharp line between the top and bottom sub-materials. At 100, the top and bottom sub-materials tint each other. Default=0. You can animate this parameter. Position—Determines where the division between the two materials lies on an object. This is a percentage that can range from 0 to 100. 0 is at the bottom of the object, and displays only the top material. 100 is at the top of the object, and displays only the bottom material. Default=50. 2. Click Pick Material From Object. 3. In a viewport, click an object that has a baked material. The sample slot now contains the baked material, and the Shell Material Parameters rollout is displayed. Interface You can animate this parameter. Original Material—Displays the name of the Shell Material Render to a texture. > Material Editor > Pick Material from Object > Click object with “baked” material. The Shell material is for use with texture baking (page 3–144). When you use Render To Texture to bake a texture, it creates a Shell material that contains two materials: the original material used in the rendering, and the baked material. The baked material is a bitmap that is saved to disk by Render To Texture. It is “baked,” or attached to an object in the scene. original material. Click the button to view that material and adjust its settings. Baked Material—Displays the name of the baked material. Click the button to view that material and adjust its settings. In addition to the color and mapping of the original material, the baked material can include shadows from lighting, and other information. Also, a baked material has a fixed resolution. Viewport—Use these buttons to choose which material appears in shaded viewports: the original Advanced Lighting Override Material material (upper button) or the baked material (lower button). Render—Use these buttons to choose which material appears in renderings: the original material (upper button) or the baked material (lower button). Advanced Lighting Override Material Material Editor > Type button > Material/Map Browser > Advanced Lighting Override This material lets you directly control the radiosity properties of a material. Advanced Lighting Override is always a supplement to a base material, which can be any renderable material. The Advanced Lighting Override material has no effect on ordinary renderings. It affects the radiosity solution (page 3–51) or light tracing (page 3–44). Advanced Lighting Override has two main uses: • Adjusting the material properties used in a radiosity solution or light tracing • Creating special effects such as having self-illuminating objects contribute energy to the radiosity solution As the rollout for the Advanced Lighting Override material states, you don’t have to apply this material to obtain a radiosity solution, and most models will never require it. Radiosity Override can improve the appearance of the radiosity solution. Examples of situations where Radiosity Override can help include color bleeding and large dark areas: • You might want to reduce Reflectance Scale or Color Bleed when a large area of color (for example, a red carpet in a room with white walls) creates excessive color bleeding. This might be physically accurate, but the eye adjusts for such effects, and the radiosity result might look better with less reflectance or less color bleeding. Left: Excessive bleeding of the floor color onto the walls and ceiling. Right: Radiosity Override material reduces the floor’s reflectance, causing less bleeding. • You might want to increase Reflectance Scale when the scene includes a large dark area (for example, a black floor). This can lead to a very dark radiosity result. You can maintain the floor’s color but increase reflectance, giving the solution the colors you want while increasing its brightness. Important: The mental ray renderer (page 3–78) does not support the Advanced Lighting Override material. Obtaining a Better Image Materials that use default settings can be highly reflective. This can lead to overexposed or washed-out radiosity solutions. In general, the best way to adjust this is to reduce the HSV Value (V) of a material color; or, for a bitmapped material, reduce the RGB Level. In some situations, The room is lit only by spotlights pointed at the floor. Increasing reflectance of the floor brightens the entire room. 1601 1602 Chapter 16: Material Editor, Materials, and Maps Tip: Check the reflectance and transmittance display (page 2–1430) to get an idea of how the current material will affect the radiosity solution or light-traced rendering. Procedures To adjust a material’s reflectance and transmittance: 1. Create a material for your scene. 2. Click the Type button and choose Advanced Creating Special Effects Self-illumination (page 2–1487) makes an object appear to glow in ordinary renderings, but does not contribute energy to the radiosity solution. To have radiosity processing take a self-illuminating material into account, make this material the base material of Advanced Lighting Override, then increase the value of Luminance Scale. Lighting Override. 3. In the Replace Material dialog (page 2–1456), choose Keep Old Material As Sub-Material, and click OK. 4. Adjust the Reflectance Scale and Transmittance Scale parameters. As you do, watch the Reflectance and Transmittance display, and make sure the values are good for a radiosity solution. For example, 85 percent reflectance is about the highest that will work with radiosity. Most real-world materials have much lower reflectance. See Reflectance and Transmittance Display (page 2–1430) for some reflectance properties of real-world materials. To make a self-illuminating material emit radiosity energy: 1. Create a material that is self-illuminating. Upper left: By default, self-illuminated neon lights do not influence the scene light. 2. Click the Type button and choose Advanced Lighting Override. Right: Advanced Lighting Override material scales the neon lights’ Luminance so the radiosity solution can take it into account. 3. In the Replace Material dialog (page 2–1456), Luminance scale takes self-illumination mapping (page 2–1502) into account. You can use this to model effects such as a computer monitor in a darkened room. 4. Increase the value of Luminance Scale to The Special Effects group of the Advanced Lighting Override material also has a control for adjusting the quality of bump mapping (page 2–1506) in areas of indirect lighting. choose Keep Old Material As Sub-Material, and click OK. have the material emit energy for radiosity processing. Advanced Lighting Override Material Interface Color Bleed—Increases or decreases the saturation of reflected color. Range=0.0 to 1.0. Default=1.0. Color Bleed increases or decreases the saturation of reflected color. Transmittance Scale—Increases or decreases the amount of energy the material transmits. Range=0.1 to 5.0. Default=1.0. Override Material Physical Properties group These parameters directly control the base material’s advanced lighting properties. Warning: There is no problem with reducing the default scale, but increasing it for any of these parameters might cause colors to “burn out”: if the scale is too great, they render as pure white, appearing overexposed. Transmittance Scale increases or decreases the energy of transmitted rays. Note: This parameter affects only radiosity. It has no effect on light tracing. Reflectance Scale—Increases or decreases the amount of energy the material reflects. Range=0.1 to 5.0. Default=1.0. Special Effects group These parameters relate to specific components in the base material. Luminance Scale (cd/m^2)—When greater than Reflectance Scale increases or decreases the energy of reflected rays. Tip: Don’t use this control to increase self-illumination. Use the Luminance Scale instead. Luminance Scale is in the Special Effects group (below). zero, scales the self-illumination component (page 2–1487) of the base material. Use this parameter to have self-illuminating objects contribute energy to the radiosity or light-traced solution. Cannot be less than zero. Default=0.0. Typically, a value of 500 or more will give good results. Indirect Light Bump Scale—Scales the effect of the base material’s bump mapping (page 2–1506) in areas lit by indirect light. When this value is 1603 1604 Chapter 16: Material Editor, Materials, and Maps zero, no bump mapping is done for indirect light. Increasing Indirect Light Bump Scale increases the bump effect under indirect lighting. This value does not affect the Bump amount in areas where the base material is lit directly. Cannot be less than zero. Default=1.0. Interface Tip: This parameter is useful because indirect bump mapping is simulated and not always accurate. Indirect Light Bump Scale lets you adjust the effect by hand. Base Material—Click to go to the base material and adjust its components. You can also replace the base material with a different material type. Radiosity Mapping group To return from the base material to the Advanced Lighting Override level, click Go To Parent. displayed image on your monitor. The setting of this control does not affect the actual lighting levels in the model. Note: The default value is exactly the same as the values set in the Import Lightscape Solution dialog. Lightscape Material Contrast—Controls the contrast between light and Material Editor > Type button > Material/Map Browser > Lightscape Mtl The Lightscape material lets you set radiosity behavior for 3ds Max materials you want to use in existing Lightscape radiosity meshes. Note: This material is for use with Lightscape. It is not meant for use with the advanced lighting solution in 3ds Max. For adjusting a material’s radiosity properties in 3ds Max, use the Advanced Lighting Override material (page 2–1601). Important: The mental ray renderer (page 3–78) does not support the Lightscape material. Brightness—Controls the brightness of the dark regions in the model. Note: The default value is exactly the same as the values set in the Import Lightscape Solution dialog. Ambient Light—Controls the amount of 3ds Max ambient light that will be mixed in with the radiosity calculations. If the value is 0, none of the 3ds Max ambient light is used. If the value is 1, the 3ds Max ambient light value is added into the radiosity calculations. Default=0.0. Bump Amount—This value controls the strength of the bump map that is applied to the lighting from Lightscape, as opposed to lighting done by 3ds Max. It can be separately controlled from the bump amount in the 3ds Max material, so you can adjust the bumps in Lightscape lighting to match the bumps in 3ds Max lighting. Default=5.0. Daylight—Determines whether you want natural daylight to be used in the calculation. Note: The default value is exactly the same as the values set in the Import Lightscape Solution dialog. Ink ’n Paint Material Exterior Scene—Used for exterior daylight simulations. Note: The default value is exactly the same as the values set in the Import Lightscape Solution dialog. Apply Changes to All Lightscape Materials—Determines whether or not the changes you make in this dialog are applied to every Lightscape Radiosity material. Default=off. Disable Radiosity—Determines whether or not the radiosity is calculated. This option provides a quick way to see the effect of the Lightscape-specific illumination. Default-off. Snake rendered with ink ’n paint Base Material—Displays the base 3ds Max material Because Ink ’n Paint is a material, you can create a scene that combines 3D-shaded objects with flat-shaded cartoon objects. to which the radiosity illumination is applied. (The base material displays on the object while the Lightscape Radiosity material adds radiosity effects.) Use this button to change the base material on the object. Ink ’n Paint Material Material Editor > Type button > Material/Map Browser > Ink ’n Paint The Ink ’n Paint material creates cartoon effects. Rather than the three-dimensional, realistic effect most other materials provide, Ink ’n Paint provides flat shading with “inked” borders. Rendering that combines realistic shading with cartoon shading In the Ink ’n Paint material, ink and paint are two separate components, with customizable settings. 1605 1606 Chapter 16: Material Editor, Materials, and Maps 1. Collect the objects for cartoon rendering into a single surface model such as an Editable Mesh. 2. Assign different material ID values (page 3–969) to portions of the model you want to color differently. Typically, you would do this at the Element sub-object level, although you can certainly apply different material IDs to faces and polygons as well. 3. Create a Multi/Sub-Object material (page 2–1594). In it, create a sub-material for each of the colors in the model. Make each sub-material an Ink ’n Paint material, then assign colors and maps using each sub-material’s Paint controls. Left: The paint component only Right: The ink component only Tip: Ink ’n Paint uses the Raytracer Settings (page 2–1528), so adjusting raytrace acceleration can have an effect on the speed of Ink ’n Paint. Also, while you work with Ink ’n Paint, disabling antialiasing can speed up the material, until you’re ready to create final renderings. (Turning off Ink really speeds it up.) If necessary, adjust the Ink controls as well. Tip: ActiveShade (page 3–17) works with the Ink ’n Paint material, and can be a good way to preview the material’s effect. Interface Basic Material Extensions rollout Note: Motion blur does not work with Ink ’n Paint. (Typically, hand-drawn cartoons are not motion blurred.) Note: Shadows don’t appear on objects shaded with Ink ’n Paint unless the value of Paint Levels is 4 or greater. Warning: Ink ’n paint will only give correct results when rendered from a camera or perspective view. It does not work in orthographic views. Using Ink ’n Paint You can use Ink ’n Paint on multiple objects, but in general, it tends to work best if you do the following: 2-Sided—Makes the material 2-sided (page 3–901). Applies the material to both sides of selected faces. Face Map—Applies the material to the faces of the geometry. If the material is a mapped material, it requires no mapping coordinates (page 3–967). The map is automatically applied to each facet of the object. Faceted—Renders each face of a surface as if it were flat. Ink ’n Paint Material Fog BG when not painting—When paint is turned off, the painted areas of the material color are the same as the background. This toggle, when on, lets the background in paint areas be affected by fog between the camera and the object. Default=off. Turning off this component makes the object invisible, except for the ink. Default=on. Opaque alpha—When on, the alpha channel is opaque even if ink or paint is turned off. Default=off. Bump—Adds bump mapping to the material. • Toggle—When on, enables the bump map. • Spinner—Controls the bump map amount. • Map button—Click to assign a map to use for bump mapping. Displacement—Adds displacement mapping to the material. • Toggle—When on, enables the displacement map. • Spinner—Controls the displacement map amount. Left: A lighted character Right: Lighted and Highlight both turned off to render only the ink • Paint Levels—The number of shades of color that are rendered, from light to dark. Lower values make objects look flatter. Range=1 to 255. Default=2. • Map button—Click to assign a map to use for displacement mapping. Paint Controls rollout Paint is the main color of the material. Increasing the value of Levels increases the number of shades of the basic color seen in the lighted area. Shaded—The value in the spinner at the left is the percent of the Lighted color that appears on the unlighted side of objects. Default=70.0. There are three main components of the “paint” of Ink ’n Paint. Each has several associated controls, most of which are documented toward the end of this section. Lighted—The fill color for the lighted side of objects. Default=light blue. Turning off this component displays a color swatch, which you can use to assign a distinct color to shaded areas. Default=on. 1607 1608 Chapter 16: Material Editor, Materials, and Maps Increasing glossiness decreases the size of the highlight. Color component controls: These are the controls that are duplicated for each of the paint components. Each has an on/off toggle, a main control, and then on the right, a set of map controls. Increasing the value of Shaded increases the saturation of the shaded area. You can also use Shaded to assign a distinct color for shading. Highlight—The color of the specular highlight. Default=white. When this component is off, there is no specular highlight. Default=off. Tip: A specular highlight can destroy the illusion of 2D. Use this component sparingly. • Check box—The check box at the left of the rollout enables or disables that particular component. In the case of Shaded, it toggles between a percentage value (of the Lighted color) or a distinct Shaded color. • Color swatch or spinner—The main control for each component. Click a color swatch to display a Color Selector (page 1–161) and set the color of the component. In the case of Shaded, this control can also be a percentage spinner. • Map spinner—The spinner to the right of the main control is the percentage of the map to use. Default=100.0. Left: No highlights Right: Highlight on • Glossiness—The size of the specular highlight. The greater the Glossiness, the smaller the highlight. Default=50.0. Ink ’n Paint Material Mapping the Lighted component Right rear: The original, unmapped material Left: Lighted component with a falloff map applied Right front: Lighted component with a bitmap applied • Map check box—The check box between the spinner and the button enables or disables the map. Default=off until a map is assigned, then on. • Map button—Click the button to assign a map to this component. While a map is assigned and enabled, at 100 percent it completely overrides the main color component. At lower percentages, the map is blended with the color. Ink Controls rollout Ink is the linework, the outlines, in the material. Except for Ink Width, each of the ink components has an on/off toggle and a color swatch. Click the color swatch to display a Color Selector (page 1–161) and change the ink component’s color. Each ink component, Ink Width included, also has a set of map controls. Ink—When on, the rendering is “inked.” When off, no ink lines appear. Default=on. 1609 1610 Chapter 16: Material Editor, Materials, and Maps Width is on, the Max (maximum) spinner is also enabled, and the ink width can vary between the minimum and maximum values. Default: Min=2.0, Max=4.0. Left: One-pixel ink width Middle: Five-pixel ink width Right: Ink width varies from one to five pixels. Variable Width—When on, the ink’s width can vary between the minimum and maximum Ink Width values. Ink with Variable Width looks a bit more streamlined than ink with a constant width. Default=off. Left: Rendering with ink Right: Ink turned off Ink Quality—Affects the shape of the brush and the number of samples it uses. When Quality equals 1, the brush is a “+” shape, and samples are taken over an area of 5 pixels. When Quality equals 2, the brush is octagonal and the samples are taken over an area of 9 to 15 pixels. When Quality equals 3, the brush is nearly circular, and samples are taken over an area of 30 pixels. Range=1 to 3. Default=1. Tip: For most models, increasing the Quality value introduces only a very subtle change, and can take considerably longer to render. Do so only when a sub-object’s ink shows too many artifacts in the finished rendering, using the default Ink Quality. (Don’t rely on the ActiveShade preview, which will tend to be aliased.) Ink Width—The width of the ink, in pixels. This is specified by the spinner labeled Min (minimum) unless Variable Width is on. When Variable The thickness of ink can be mapped. Left: Thickness mapped with a gradient map Right: Thickness mapped with a noise map Clamp—When Variable Width is on, sometimes the scene lighting causes some ink lines to become so thin they nearly disappear. If this happens, turn on Clamp, which forces the ink width to Ink ’n Paint Material always remain between the Min and Max values, regardless of the lighting. Default=off. Outline—The ink where the outer edges of the object appear against the background or in front of a different object. Default=on. Underlap—Similar to Overlap, but applies ink to the farther surface rather than the nearer one. Default=off. • Underlap Bias—Use this to adjust artifacts that might appear in ink that traces the underlap. It says how far the underlap has to be behind the front surface for Underlap ink to turn on. Positive values push the object away from the point of view, negative values pull it closer. Default=0.0. SmGroup—The ink drawn between the boundaries of smoothing groups (page 3–1013). In other words, it inks the edges of the object that have not been smoothed. Default=on. Mat ID—The ink drawn between different material ID values (page 3–969). Default=on. Tip: If two Ink ’n Paint materials overlap in the Left: Rendering the outline only viewport, and both have Mat ID on, you will often get a doubly thick ink line where they overlap. To correct this, turn off the Mat ID component for one of these materials. Right: Rendering only the overlap and underlap • Intersection Bias—Use this to adjust artifacts that might appear when two objects intersect each other. In effect, this moves the inked object closer to the rendering point of view, or farther away, so Ink ’n Paint can decide which object is in front. Positive values push the object away from the point of view, negative values pull it closer. Default=0.0. Overlap—The ink used when a portion of an object overlaps itself. Default=on. • Overlap Bias—Use this to adjust artifacts that might appear in ink that traces the overlap. It says how far the overlap has to be in front of the rear surface for Overlap ink to turn on. Positive values push the object away from the point of view, negative values pull it closer. Default=10.0. Inking the edges between sub-materials • Only Adjacent Faces—When on, inks the material ID edge between adjacent faces, but not between one object and another. When off, inks the material ID edge between two objects or other non-adjacent faces. Default=on. 1611 1612 Chapter 16: Material Editor, Materials, and Maps • Intersection Bias—When Only Adjacent Faces is turned off, use this to adjust any artifacts that appear at the boundary between two objects with different material IDs. Default=0.0. Map controls—There are map controls for each of the ink components: Width, Outline, Overlap, Underlap, SmGroup, and Mat ID. These work the same as they do for the material’s paint components, as described above. The Overlap bias is probably too high. Decrease it. If Underlap is turned on, this might also have too high a bias. Another possible reason is that you have a self-intersecting object, or an object built by attaching smaller objects, thus creating intersecting faces. In this case, set up the objects to use the Mat ID or SmGroup ink components. If elements already have differing material IDs, try turning off Only Adjacent Faces. • Ink looks sloppy on sloping parts of the object. The Overlap or Underlap bias might be too low. Try increasing it. • Ink looks sloppy between interpenetrating objects. Find out which ink component is the sloppy one. Then adjust its bias control. • Ink lines disappear or are too narrow when Variable Width is on. Turn on Clamp. You can also try to see if reducing the lighting level helps. Or, you can try turning off Variable Width, then assigning a Falloff map (page 2–1670) to the Ink Width component. Tip: To isolate which ink component is causing a problem, you can try assigning each component a different, distinctive (and easy to read) color, then rendering the image. Warning: Ink ’n paint will only give correct results when rendered from a camera or perspective view. It does not work in orthographic views. Mapping the outline and overlap components to simulate the look of drawing on paper Troubleshooting Here are some commonly encountered problems, and potential solutions: • Internal ink lines are missing. DirectX 9 Shader Material DirectX 9 Shader Material Material Editor > Type button > Material/Map Browser > DirectX 9 Shader Note: Typically, this material is visible in the Browser only if DirectX 9 is available on your system, and you are using the Direct3D display driver with DirectX 9.0 chosen as the Direct3D version. If this material is not visible, you can see it (in gray) by turning on Incompatible in the Show group. The DirectX 9 Shader material enables you to shade objects in viewports using DirectX 9 (DX9) shaders. With DirectX shading, materials in a viewport more accurately represent how the material will appear in another application, or on other hardware such as a game engine. You can use this material only when you are using the Direct3D Display driver (page 3–844) and DirectX 9.0 is chosen as the Direct3D version. DX9 shaders are FX files. Several sample FX files are provided in the \3ds Max 9\maps\fx directory (the name of the 3ds Max root directory might differ on your system). See also DirectX Shader group (page 2–1438) FX File (page 3–946) Shader-specific rollouts The rollouts that appear below the DirectX 9 Shader rollout and above the Software Rendering rollout are the interface to the shader you chose. These rollouts are specific to each shader. Software Rendering rollout Specifies a material that controls software shading and rendering of objects to which the DirectX 9 Shader material is applied. Viewports use DX9 shading unless the Software or OpenGL driver is active. Renderings always use software shading. Usually you will want to choose a material that clearly identifies which objects in your scene have the DirectX 9 Shader material applied. Note: The DirectX 9 Shader material has no specific settings for software shading. Any type of 3ds Max material will do. Scenes from previous versions that used DX9-specific settings are assigned a Standard material with equivalent rendering properties. Note: If DirectX 9 is not available on your system, Interface DirectX 9 Shader rollout Shader button—Click to display a file dialog that lets you select a DX9 FX effect (FX) file. By default, the default.fx file is chosen. Reload—Click to reload the active FX file. To update an FX file, you can edit it and then click Reload. You don’t have to restart 3ds Max to see the effect of the changes to the shader. but you assign the DirectX 9 Shader material anyway (by using the Material/Map Browser’s Incompatible option), this is the only rollout that appears in the Material Editor. 1613 1614 Chapter 16: Material Editor, Materials, and Maps Mapping Channel—Shows the map channel (page DirectX Viewport Shaders 3–966) this texture uses. Light Map group LightMap Shader Rollout Material Editor > Viewport Manager rollout > Choose LightMap from the drop-down list. > LightMap Shader rollout appears. When you have chosen LightMap as the DirectX viewport shader (page 2–1464), this rollout appears. The LightMap shader can display both a base texture and a lighting map. Typically both these maps come from rendering to textures (texture baking) (page 3–144) The base texture typically would be a completed map, a blend map, or a diffuse map. You can choose these map types, as well as lighting map, to render as elements of a baked texture (page 3–146). Note: In order to use the LightMap shader, you must have 3ds Max configured to use the Direct3D graphics driver. To change the graphics driver configuration, refer to the Viewport Preferences (page 3–821) topic. Interface Button—Shows the name of the lighting map. Toggle—When on, shaded viewports display the lighting map. When off, it is not displayed. If both the Base Texture and Light Map toggles are off, the material appears black in viewports. Mapping Channel—Shows the map channel this texture uses. Metal Bump Shader Rollout Material Editor > Viewport Manager rollout > Choose LightMap from the drop-down list. > Metal Bump Shader rollout appears. When you have chosen Metal Bump as the DirectX viewport shader (page 2–1464), this rollout appears. The Metal Bump shader can display a variety of texture-baked maps (page 3–144), including normal maps for an embossed effect. It is good for displaying shiny surfaces. Note: In order to use the Metal Bump shader, you must have 3ds Max configured to use the Direct3D graphics driver. To change the graphics driver configuration, refer to the Viewport Preferences (page 3–821) topic. The Metal Bump shader’s results are alway visible in viewports, regardless of the object type. Base Texture group Button—Shows the name of the base texture. Click the button to display that material’s parameters, and adjust them if necessary. Toggle—When on, shaded viewports display the base texture. When off, it is not displayed. If both the Base Texture and Light Map toggles are off, the material appears black in viewports. Warning: The Metal Bump shader lets you adjust settings to get various effects in shaded viewports. These settings will not necessarily apply when you display the texture-baked object on other Direct3D devices. See also Baked Texture Elements (page 3–146) Metal Bump Shader Rollout Interface See the section “Map Controls,” below, for a description of the individual controls. Use Alpha—When on, displays the alpha channel. When off, does not. Default=off. Mix Amount—Adjusts the mixing of the two texture maps in shaded viewports. Specular group Enable—When on, enables specular highlights for the object. Default=off. Specular Color—Specifies a specular color for the object. Click the color swatch to display a Color Selector and choose a color. Default=white. Texture—Displays a specular map for the object. Typically this would be a texture-baked specular map. See the section “Map Controls,” below, for a description of the individual controls. Bump group Ambient & Diffuse group Normal—Displays a normal map for the object. Ambient Color—When not black, tints the object’s Typically this would be a texture-baked normals map. ambient color. Click the color swatch to display a Color Selector (page 1–161) and choose the ambient color. Default=black. Diffuse Color—When not white, tints the diffuse color. Click the color swatch to display a Color Selector and choose the diffuse color. Default=white. Texture 1—Displays a texture map for the diffuse color. Typically this would be a texture-baked diffuse map, completed map, or blend map. See the section “Map Controls,” below, for a description of the individual controls. Bump—Displays a bump map for the object. Typically this would be a bump map used for the original material. See the section “Map Controls,” below, for a description of the individual controls. Bump Intensity—Adjusts the intensity of the bumps in shaded viewports. See the section “Map Controls,” below, for a description of the individual controls. Reflection group Texture 2—Displays a second texture map for Cubemap—Displays a reflection map projected the diffuse color. Typically this would be a texture-baked lighting map or shadows map. cubically (around the scene). Typically this would be an environment map. 1615 1616 Chapter 16: Material Editor, Materials, and Maps Reflection Intensity—Adjusts the intensity of Note: If an XRef object has a material applied to it reflections in shaded viewports. in the original source file (and Merge Materials is turned off when you reference the source file), then that material is automatically externally referenced in the scene, and can be loaded in the Material Editor if you browse from the scene. When you explicitly use the Material Editor to create an XRef material, you don’t have to have any XRef objects from that particular source file. However, the record’s source file and material do appear in the XRef Objects dialog (page 3–397). Pick object and create—Click to choose an object and have the program generate the reflections used in the viewport. Sync Standard Material When on, adjustments you make to the Metal Bump shader update settings in the active standard material, letting you save the changes you made. When off, the standard material is unchanged. Default=off. Map Controls In this rollout, all texture maps have the same general controls. The rollout appears only when you are using the DirectX viewport shader. The Show Map In Viewport button works for an XRef material only if the same button is turned on in the source file. Otherwise, it is disabled. Interface Toggle—When on, the map is used in viewports. When off, it is not used. Default=on if a map is assigned, off otherwise. Map button—Click to choose the texture map to use for this component of the object. Map Channel—Specifies the map channel (page 3–966) used by this map. This control is not present for the cubic reflection map. XRef Material Material Editor > Type button > Material/Map Browser > XRef Material The XRef material lets you externally reference a material applied to an object in another scene file. As with XRef objects (page 3–394), the material resides in a separate source file. You can set the material properties only in the source file. When you change them in the source file and then save it, the material’s appearance can change in the master file that contains the XRef. Highlight Corresponding XRef Record in the XRef Objects Dialog—Click to open the XRef Objects dialog (page 3–397) that highlights the source file’s current record with its object displayed in the XRef Entities list. If no file and object have yet been selected for the material, the XRef Objects dialog is displayed, and lets you browse for the file and material to use. File name field—Displays the path and file name of the scene file containing the source of the XRef material. You can edit this to point to a different path and file. Types of Maps File name display—Displays the file name only, without the path. Path button—Click to display the Open File dialog from which you can specify a different path and file name for the source file. After you choose the file, 3ds Max displays the XRef Merge dialog (page 3–406) that lets you choose the object whose material you want to reference. Accessing Map Types You use the Material/Map Browser (page 2–1412) to load a map or create a map of a particular type. The Browser groups maps into categories according to their type. You can choose whether the Browser lists maps, materials, or both; you can choose which map types. To list map types by category: Object name field—Displays the name of the source object pointed to in the source file. 1. Open the Material Editor. Object name and material—Displays the name of the source object followed by the material name in parentheses. For example, “Shaker ( Chrome ).” 2. Click Get Material to display the Material/Map Browser. 3. On the left side of the Material/Map Browser, Path button—Click to display the XRef Merge dialog (page 3–406) pointing to the scene in the XRef File Name field. Here, you can specifiy a different object whose material you want to reference. in the Show group, turn off Materials. Leave Maps turned on. 4. In the lower set of buttons, choose the category you want listed, or choose All to show all map types. Status line—Displays the status of the material. For example, if the file and object are both found, this field says “Status: XRef Resolved.” The list is displayed in the right panel of the Browser. To open the Browser from the Material Editor: As you work with materials, you can open the Material/Map Browser from the Material Editor. Maps The most common use for maps (page 3–968) is to improve the appearance and realism of Materials (page 3–971). You can also use maps to create environments (page 3–272) or projections from lights (see Advanced Effects Rollout (page 2–1341) ). Maps can simulate textures, applied designs, reflections, refractions, and other effects. Used with materials, maps add details without adding complexity to the geometry of an object. (Displacement mapping (page 2–1511) can add complexity.) 1. 2. Open the Material Editor. On the Material Editor toolbar, click Get Material to display the Material/Map Browser. Understanding Map Types Different types of maps create different effects and behave in particular ways. • 2D maps (page 2–1624) are two-dimensional images that are typically mapped onto the surface of geometric objects, or used as environment maps to create a background for the scene. The simplest 2D maps are 1617 1618 Chapter 16: Material Editor, Materials, and Maps bitmaps; other kinds of 2D maps are generated procedurally. • 3D maps (page 2–1662) are patterns generated procedurally in three dimensions. For example, Marble has a grain that goes through the assigned geometry. If you cut away part of an object with Marble assigned as its texture, the interior matches the exterior. • Compositors (page 2–1687) are for compositing other colors or maps. • Color Modifiers (page 2–1692) alter the color of pixels in a material. • The "Other" category includes maps that create reflections and refractions (page 2–1695). It also includes mental ray shaders (page 2–1710) , Normal Bump maps, (page 2–1731) and Camera Per-Pixel Projection maps (page 2–1732). Maps and mental ray Shaders When the mental ray renderer (page 3–78) is active, the Material/Map Browser also lists mental ray shaders. Shaders are similar to maps, but use yellow icons. You assign them the way you do maps. The mental ray shaders don’t fit into the map categories described in the previous section, and aren’t described in this topic. See mental ray Shaders (page 2–1710) for links to shader descriptions. mental ray maps in the browser’s list are shown with yellow icons. Tip: When the default scanline renderer is active, you can view mental ray shaders in the Browser list, and assign them, by turning on Incompatible in the Show group. Incompatible shaders in the list are displayed in gray. Maps and Mapping Coordinates Maps have a spatial orientation. When you apply a material with maps in it to an object, the object must have mapping coordinates. These are specified in terms of UVW axes local to the object. Most objects have a Generate Mapping Coordinates toggle. You can turn this on to provide default mapping coordinates. If the object has this toggle, it is also turned on automatically when you render the scene, or use Show Map In Viewport (page 2–1445). Some objects, such as editable meshes, don’t have automatic mapping coordinates. For these types of objects, you can assign coordinates by applying a UVW Map modifier (page 1–922). If you assign a map that uses a mapping channel, but don’t apply a UVW Map modifier to the object, the renderer displays a warning that lists objects that require Real-World Mapping mapping coordinates. You can also use UVW Map to change an object’s default mapping. See Mapping Coordinates (page 2–1405). UVW Mapping Coordinate Channels Each object can have from 1 to 99 UVWmapping coordinate channels. The default mapping (from the Generate Mapping Coordinates toggle) is always UVW 1. The UVW Map modifier can send coordinates to any of these channels. Each map in a material can use any UVW channel (if present), or other type of mapping that depends on whether the map is 2D or 3D. You can set the mapping channel used by NURBS surface (page 1–1101) sub-objects in their creation or modification parameters. Mapping for 2D Maps You can position a 2D map on the surface of an object by using a map channel, any assigned vertex color, or the local or world coordinate systems. You can also choose different environment mappings. See Coordinates Rollout (2D) (page 2–1625). Real-World Mapping Real-world mapping is an alternative mapping paradigm in 3ds Max that is off by default. The idea behind real-world mapping is to simplify the correct scaling of texture-mapped materials applied to geometry in the scene. This feature lets you create a material and specify the actual width and height of a 2D texture map in the Material Editor. When you assign that material to an object in the scene, the texture map appears in the scene with correct scaling. For real-world mapping to work, two requirements must be met. First, the correct style of UV texture coordinates must be assigned to the geometry. Essentially, the size of the UV space needs to correspond to the size of the geometry. To this end, a new option called Real-World Map Size has been added to many of the dialogs and rollouts that let you generate texture coordinates (see list at the end of this topic). Any dialog or rollout that lets you turn on Generate Mapping Coords also lets you enable Real-World Map Size. Also, you can toggle this option globally on the Preferences dialog > General panel (page 3–815). Mapping for 3D Maps You can position a 3D map within the volume of an object by using a map channel, any assigned vertex color, or the local or world coordinate systems. See Coordinates Rollout (3D) (page 2–1663). Noise for Maps Random noise values increase the complexity of maps and can give them a more natural look. For 2D maps, see Noise Rollout (2D) (page 2–1630). For 3D maps, you can assign a separate Noise map. See Noise Map (page 2–1674). Most object parameters settings now include a Real-World Map Size toggle. The second requirement is available in the Material Editor. All 2D texture maps, such as 1619 1620 Chapter 16: Material Editor, Materials, and Maps Bitmap, provide a Use Real-World Scale check box on the Coordinates rollout (page 2–1625). Like Real-World Map Size, this check box is off by default, but when on, the U/V parameter names change to Width/Height and the Tiling label changes to Size. You can then specify the horizontal/vertical offsets and size of the texture map in current system units (page 3–850). • Importing AutoCAD Drawing • Importing DXF Files • Lathe Modifier • L-Ext Extended Primitive • L-Type Stair • Loft > Surface Parameters Rollout • Material Editor Coordinates Rollout • Material Editor Options (page 2–1436) • OilTank Extended Primitive • Plane Primitive • Point Curve • Pyramid Primitive • Railing • Renderable Spline Modifier 2D map coordinates settings now include a Use Real-World Scale toggle. Following is a list of affected features (note links to topics with more extensive information): • Sphere Primitive • Spindle Extended Primitive • Spline Rendering File Link Settings • Bevel Modifier • Splines and Extended Splines • Bevel Profile Modifier • Stairs • Box Primitive • Sweep Modifier • Capsule Extended Primitive • Teapot Primitive • C-Ext Extended Primitive • Torus Primitive • ChamferBox Extended Primitive Create panel > Geometry button • Tube Primitive • ChamferCyl Extended Primitive • Wall • Cone Primitive • Windows • CV Curve • Cylinder Primitive Create panel • Doors • Editable Spline • Extrude Modifier • Gengon Extended Primitive • GeoSphere Primitive • UVW Map Modifier (page 1–922) Output Rollout Output Rollout Material Editor > Select sample slot. > Get Material > Material/Map Browser > Turn on 2D Maps and 3D Maps. > Choose a map type (Bitmap, Cellular, Falloff, Gradient, Gradient Ramp, Mix, Noise, or Output). > Double-click a map type to apply it to sample slot. > Output rollout (displayed near the bottom of the Material Editor) After applying a map and setting its internal parameters, you can adjust its output parameters to determine the final appearance of the map. Note: Most controls on the Output rollout are for color output, and don’t affect bump mapping (page 2–1506). Only the Invert toggle is considered; it reverses the direction of the bumps. Interface Clamp—When on, this parameter limits the values of the colors to no greater than 1.0. Turn this on when you’re increasing the RGB Level, but don’t want the map to appear self-illuminated. Default=off. Note: If you set the RGB Offset to a value greater than 1.0 while Clamp is on, all colors become white. Alpha from RGB Intensity—When on, an alpha channel is generated based on the intensity of the RGB channels in the map. Black becomes transparent and white becomes opaque. Intermediate values are translucent according to their intensity. Default=off. Enable Color Map—Turn on to use the Color Map. See “Color Map group.” Default=off. Output Amount—Controls the amount of the map being mixed into a composite material. Affects the saturation and alpha value of the map. Default=1.0. RGB Offset—Adds to the RGB values of the map colors by the amount set by the spinner, which affects the tonal value of the colors. Eventually the map becomes white and self-illuminated. Lowering the value decreases the tonal value toward black. Default=0.0. RGB Level—Multiplies the RGB values of the map colors by the amount set by the spinner, which affects the saturation of the color. Eventually the map becomes fully saturated and self-illuminated (page 3–1009). Lowering the value decreases the saturation and makes the map colors grayer. Default=1.0. These controls appear on the Output rollout for a number of 2D and 3D maps: Invert—Reverses the hues of the map, like a negative color photo. Default=off. Bump Amount—Adjusts the amount of bumpiness. This value has an effect only when the map is used as a bump map. Default=1.0. For example, suppose you have a map instanced for both the Diffuse and the Bump components. If you want to adjust the amount of bumpiness 1621 1622 Chapter 16: Material Editor, Materials, and Maps without affecting the Diffuse colors, adjust this value, which changes the amount of bumpiness without affecting the map’s use in other material components. Color Map group At the bottom of the Output rollout, the Color Map group is inactive until you turn on Enable Color Map. automatically constrained as they are when you manually move or scale a point. You can zoom into the graph to make detailed adjustments. As you zoom in, the graph updates to show decimal measurements along the left vertical axis. You can pan anywhere on the graph with the horizontal and vertical scroll bars, use a button option, or the middle mouse button. Points can be deleted, and you can reset the graph to its default at any time. RGB/Mono—Specifies a map curve to either filter the RGB channels separately (RGB) or in combination (Mono). Copy CurvePoints—When turned on, points added to a Mono graph are copied when you switch to an RGB graph. If you start with an RGB graph, the points are copied to a Mono graph. You can animate the control points but not the Bezier handles. Important: When Copy CurvePoints is on, animation created in Mono mode is carried over to RGB mode and you can switch channels. The reverse doesn’t work. The Color Map graph lets you adjust the tonal range of an image. The point at 1,1 controls highlights, the point at 0.5,0.5 controls midtones, and the point at 0,0 controls shadows. You adjust the shape of the graph by adding points to the line and moving or scaling them. You can add Corner, Bezier-Smooth, or Bezier-Corner points. When a move or scale option is active, points can be selected much like objects in a viewport, by clicking a point, dragging a region around one or more points, and holding down Ctrl to add or subtract from the selection. When you select an individual point, its exact coordinates are displayed in the two fields below the graph at the lower left. You can enter values directly in these fields, but the values are The following controls affect the points on the graph: Move flyout Moves a selected point in any direction, limited by the unselected points on either side. Constrains movement to the horizontal. Constrains movement to the vertical. On a Bezier smooth point, you can move the point or either handle. Scale Point—Changes the output amount of control points while maintaining their relative position. On a Bezier corner point, this control is effectively the same as a vertical move. On a Missing Map Coordinates Dialog Bezier smooth point, you can scale the point itself or either handle. As with the move controls, scale is limited by the unselected points on either side. Add Point flyout Adds a Bezier corner point anywhere on the graph line. The point makes a sharp angle when moved. Adds a Bezier smooth point anywhere on the graph line. Handles attached to the point create smooth curves when moved. When either Add Point button is active, you can use Ctrl +click to create the other type of point. This eliminates the need to switch between buttons. Delete Point—Removes selected points. Reset Curves—Returns graph to its default, a straight line between 0,0 and 1,1. The following controls affect the view of the graph. The change in view does not affect the graph’s results. Pan—Drags the graph in any direction within the viewing window. Zoom Extents—Shows the entire graph. Zoom Horizontal Extents—Shows the entire horizontal range of the graph. The scale of the curve will be distorted. Zoom Vertical Extents—Shows the entire vertical range of the graph. The scale of the curve will be distorted. Zoom Horizontally—Compresses or expands the graph in a horizontal direction. Zoom Vertically—Compresses or expands the view of the graph in a vertical direction. Zoom—Zooms in or out around the cursor. Zoom Region—Draws a rectangular region around any area of the graph, then zooms to that view. Missing Map Coordinates Dialog Material Editor > Assign a mapped material to an object that has no UVW Map modifier. > Map level > Coordinates rollout > Change Map Channel to a value other than 1. > Render Menu bar > File menu > Open > One or more maps in MAX file can’t be found. The Missing Map Coordinates dialog is displayed when you attempt to render one or more objects with materials whose maps use a map channel (page 3–966) other than channel 1. (Channel 1 is an exception because channel 1 mapping coordinates are automatically turned on when you assign a mapped material to an object.) Only maps with Show Map In Viewport toggled on are listed as missing. To use other map channels, you must assign a UVW Map modifier (page 1–922) to the object. In UVW Map, set Map Channel to match the value used in the material. If the material has multiple maps that use multiple channels, you must assign a separate UVW Map modifier for each channel besides channel 1. If the object is a NURBS surface sub-object (page 1–1177), you don’t need to use UVW Map. Instead, set the map channel on the surface sub-object’s Material Properties rollout (page 1–1149). The Missing Map Coordinates dialog is also displayed when you open a MAX file that 1623 1624 Chapter 16: Material Editor, Materials, and Maps references bitmaps that can’t be found in their original location, or are at a location not specified via the Configure User Paths dialog (page 3–808). To open the MAX file, click the Browse button on the Missing Map Coordinates dialog. This opens the Configure User Paths dialog so you can assign one or more paths for the MAX file to access. These settings are then stored with the MAX file. Note: When you open a MAX file that references bitmaps that can’t be found, you might also see a Missing Map/Photometric Files dialog (page 3–503), which lets you browse for the missing files. Interface 2D 2D Maps are two-dimensional images that are typically mapped onto the surface of geometric objects, or used as environment maps to create a background for the scene. The simplest 2D maps are bitmaps; other kinds of 2D maps are generated procedurally. Bitmap (page 2–1631): An image saved as an array of pixels in one of a number of still-image file formats, such as .tga, .bmp, and so on, or an animation file such as .avi, .mov, or .ifl. (Animations are essentially sequences of still images.) Any of the bitmap (or animation) file types that 3ds Max supports can be used as a bitmap in a material. Checker (page 2–1638): Combines two colors in a checker pattern. You can replace either color with a map. Combustion (page 2–1639): Works in conjunction with the Autodesk Combustion product. You can paint directly on a bitmap or object and have the result update in the Material Editor and viewports. The map can include other Combustion effects. Painting and other effects can be animated. Gradient (page 2–1650): Creates a linear or radial ramp of three colors. Gradient Ramp (page 2–1652): Creates a great variety of ramps, using as many colors, maps, and blends as you choose. The list shows the map channel followed by the name of the object. Continue—Proceeds with the rendering. The objects listed will not show maps in the material assigned to them, and might not be visible at all. Cancel—Cancels rendering. Swirl (page 2–1656): Creates swirled (spiraling) patterns of two colors or maps. Tiles (page 2–1658): Creates bricks or other tiled materials with colors or material mappings. Includes commonly defined architectural brick patterns, but you can also customize patterns. Coordinates Rollout (2D) Coordinates Rollout (2D) Material Editor > Select sample slot. > Get Material > Material/Map Browser > Turn on 2D Maps. > Double-click a map type to apply it to sample slot. > Coordinates rollout is displayed on the Material Editor. As with tiling, you can mirror in the U dimension, the V dimension, or both. The Tiling parameter for each dimension specifies how many copies of the map are shown. Each copy is flipped relative to its neighbors. In the Coordinates rollout, by adjusting coordinate parameters, you can move a map relative to the surface of the object to which it is applied and achieve other effects. Tiling Often when you apply a bitmap, especially as a texture pattern, you want the pattern to repeat. This effect is known as tiling, as in a tiled floor or fountain. You control tiling directly from the Coordinates rollout for any 2D map. Mirroring a map Tiling and Mirroring Combined Because mirroring defaults to two reflected images of the map, the meaning of the Tiling value differs when Mirror is set. In a single mapping dimension (U or V), a value of 1.0, the default, shows two copies of the bitmap; a value of 2.0 shows four copies; a value of 1.5 shows three copies; and so on. Mirroring in both dimensions multiplies the effect. Tiling a map In default mapping, tiling is active, but because the map is scaled to fit the object, you don’t see the effect of tiling unless you offset the UV coordinates or rotate the map. In this case, the portions of the surface from which the bitmap has moved away are filled by other portions of the map. Tiling wraps the object with the map image. Mirroring Mirroring a map is an effect related to tiling. It repeats the map and flips the repeated copy. Mirroring and tiling a map 1625 1626 Chapter 16: Material Editor, Materials, and Maps Decals • Tiling values less than one increase the size of the map relative to the object. For example, a value of 0.5 maps half of the bitmap. Decals are useful for mapping single designs, small elements such as stickers, or light switches. A 2D map used as a decal appears only once and is not repeated as with tiling. Wherever the decal doesn’t appear on the surface, the surface is rendered as a basic material, with the component colors specified at the material level. With map trees, a decal might appear on top of a different bitmap or other map type. • Tiling is uniform if both the U and V dimensions are tiled by the same amount. To preview the effect of tiling: • In the Material Editor, use the Tiling flyout to choose a 1x, 2x, 3x, or 4x tiling preview. The button you choose changes tiling in the active sample slot to 1.0, 2.0, 3.0, or 4.0 in both U and V. The flyout setting has no effect on the material or its mapping. It does not change the Tiling value or the check box setting. It only helps you preview the effect of changing these settings. To set mirroring: Decal mapping 1. On the Coordinates rollout, make sure Mirror is turned on for the U or V coordinate, or both. Procedures To set tiling: 1. In the Coordinates rollout, make sure Tile is turned on for the U or V coordinate, or for both. 2. Set the Tiling value for the corresponding coordinates. In the Material Editor, the sample slot changes to show the tiling value you chose. • The Tiling value is the number of times the bitmap repeats along the specified dimension. A value of 1.0, the default, maps the bitmap exactly 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 a half times. Mirror and Tile are exclusive settings: if one is set when you choose the other, the original setting turns off. 2. Set the Mirror value for the corresponding coordinate or coordinates. The material preview changes to show the Mirror value you chose. To create a decal: 1. In the Material Editor, choose a bitmap as a diffuse map. 2. On the map’s Coordinates rollout, turn off both Mirror and Tile for both the U and V coordinates. Change the mapping to Planar from Object XYZ. 3. Adjust the U and V Tiling parameters to scale the decal. Coordinates Rollout (2D) Changing the Tiling value changes the size of the mapped bitmap as it does when you tile the map, but with Mirror and Tile turned off, the bitmap appears only once. 4. Adjust the U and V Offset parameters to position the decal. Note: You can also use the Parameters rollout’s Cropping and Placement controls to achieve a decal effect. To offset the position of a map: • On the Coordinates rollout, set the U and V values to be between 0.0 and 100, or between -100 and 0.0. On the surface of the object, the map shifts in the directions you chose. UV offsets are especially useful when you have turned tiling off and want the bitmap to appear in a single location. To rotate the map: in the 0.5-20 range. Lower values decrease antialiasing; higher values increase it. The Blur Offset parameter adjusts the image before antialiasing Blur is applied. If all you need is antialiasing, leave Blur Offset at its default of 0.0. To make a map image fuzzier: • On the map’s Coordinate’s rollout, increase the Blur Offset value. Blur Offset is a very strong parameter. The Blur Offset spinner has increments of 0.001 Values greater than 0.1 are likely to be too high. To make a map image sharper: • On the map’s Coordinates rollout, decrease the Blur Offset value to a value below 0.0. The negative Blur Offset value sharpens the image. Interface • On the Coordinates rollout, set the Angle U, V, and W spinners. Positive angles rotate the map in the clockwise direction; negative angles rotate it counterclockwise. The angle can be up to 360 degrees, which rotates the map completely and has no visible effect unless you are animating the map’s rotation. You can also click Rotate to use the Rotate Mapping Coordinates dialog, which lets you change the rotation by dragging the mouse. To increase or decrease antialiasing: • On the map’s Coordinates rollout, increase or decrease the Blur value. For diffuse maps and other maps besides bump maps, the Blur value is most effective These controls appear on the Coordinates rollout for many 2D maps: Texture—Applies the map as a texture map to a surface. Select the type of coordinates from the Mapping list: Environ—Uses the map as an environment map (page 3–934). Select the type of coordinates from the Mapping list: 1627 1628 Chapter 16: Material Editor, Materials, and Maps Mapping list—Options vary depending on choice of Texture or Environ mapping: Back is turned on or not. To override this, turn off Tiling. • Explicit Map Channel—Uses any map channel. When selected, the Map Channel field becomes active, and you can choose any channel from 1 to 99. Use Real-World Scale—When turned on, applies the map to objects using the real-world Width and Height values instead of UV values. Default=on. • Vertex Color Channel—Uses assigned vertex colors as a channel. See Editable Mesh (page 1–996) for details on assigning vertex color. When Real-World Scale is on, the texture placement is relative to the corner of the texture map so alignment with architectural objects likes walls is more efficient. When off, the texture placement is relative to the center of the texture map. See also Vertex Color Map (page 2–1693) and Assign Vertex Colors Utility (page 2–1734). • Planar from Object XYZ—Uses planar mapping based on the object’s local coordinates (disregarding the pivot point location). For rendering purposes, planar mapping doesn’t project through to the back of the object unless you turn on Show Map On Back. • Planar from World XYZ—Uses planar mapping based on the scene’s world coordinates (disregarding the object’s bounding box). For rendering purposes, planar mapping doesn’t project through to the back of the object unless you turn on Show Map On Back. • Spherical Environment, Cylindrical Environment, Shrink-wrap Environment—Project the map into the scene as though it were mapped to an invisible object in the background. See Environment Map (page 3–934). • Screen—Projects as a flat backdrop in the scene. Show Map on Back—When on, planar mapping (Planar from Object XYZ, or with the UVW Map modifier) projects through to render on the back of the object. When off, planar mapping doesn’t render on the object’s back. Default=on. This toggle is available only when Tiling is off in both dimensions. Its effect is visible only when you render the scene. Note: In viewports, planar mapping always projects to the back of the object, whether Show Map On Offset—Changes the position of the map in UV coordinates (page 3–1028). The map moves in relation to its size. For example, if you want to shift the map its full width to the left, and half its width downward from its original position, you enter -1 in the U Offset field and 0.5 in the V offset field. UV/VW/WU—Changes the mapping coordinate (page 3–967) system used for the map. The default UV coordinates project the map onto the surface like a slide projector. The VW and WU coordinates rotate the map so that it is perpendicular to the surface. Tiling—Determines the number of times the map is tiled (page 3–1022) (repeated) along each axis. Mirror—Mirrors (page 3–1022) the map left-to-right (U axis) and/or top-to-bottom (V axis). Tile—Turns tiling on or off in the U or V axis. Coordinates Rollout (2D) When Use Real-World Scale is off Offset (Width/Height)—Move the map horizontally or vertically along the width or height of the object to which the material is applied. The offset distance is relative to the lower-left corner of the map. UV/VW/WU—Changes the mapping coordinate Offset (UV )—Changes the position of the map in UV coordinates (page 3–1028). The map moves in relation to its size. For example, if you want to shift the map its full width to the left, and half its width downward from its original position, you enter -1 in the U Offset field and 0.5 in the V offset field. UV/VW/WU—Changes the mapping coordinate (page 3–967) system used for the map. The default UV coordinates project the map onto the surface like a slide projector. The VW and WU coordinates rotate the map so that it is perpendicular to the surface. Size—Determines the real world width and height of the map. For example, if you scan a piece of marble that is 12” x 8” and then assign this image as the Diffuse Map, you can type 12” (or 1’) and 8” as the Width and Height. This ensures that the scale of the marble is correct in the rendered scene. (page 3–967) system used for the map. The default UV coordinates project the map onto the surface like a slide projector. The VW and WU coordinates rotate the map so that it is perpendicular to the surface. Note: The default setting for the texture size can be set using the Default Texture Size option in the Material Editor Options Dialog (page 2–1436). Tiling—Determines the number of times the map horizontally and/or vertically. is tiled (page 3–1022) (repeated) along each axis. Mirror—Mirrors (page 3–1022) the map Tile—Turns horizontal and/or vertical tiling on or Mirror—Mirrors (page 3–1022) the map off. left-to-right (U axis) and/or top-to-bottom (V axis). Note: If the Use Real-World Size switch is turned Tile—Turns tiling on or off in the U or V axis. When Use Real-World Scale is on off in the Material Editor, the Real-World Map Size settings in modifiers like UVW Map or for primitives like Box will not work. Likewise, moving vertices at a sub-object level or scaling an object, in general, will not honor the Use Real-World Scale settings. Angle U/V/W—Rotates the map about the U, V, or W axis (in degrees). Rotate—Displays a schematic Rotate Mapping Coordinates dialog that lets you rotate the map by dragging on an arcball diagram (similar to 1629 1630 Chapter 16: Material Editor, Materials, and Maps the arcball used to rotate viewports, although dragging inside the circle rotates along all three axes, and dragging outside it rotates about the W axis only). The Angle UVW values change as you drag in the dialog. Blur—Affects the sharpness or blurriness of the map based on its distance from the view. The farther away the map is, the greater the blurring. The Blur value blurs maps in world space. Blur is primarily used to avoid aliasing (page 3–907). Blur Offset—Affects the sharpness or blurriness of the map without regard to its distance from the view. Blur Offset blurs the image itself in object space. Use this option when you want to soften or defocus the details in a map to achieve the effect of a blurred image. See Blur/Blur Offset (page 3–918). Above: A checker map and a bitmap Below: The same maps with noise applied Procedures To add noise to a material: 1. In the Noise rollout, select On. 2. Adjust the three noise parameters to get an Noise Rollout (2D) Material Editor > Select sample slot. > Get Material > Material/Map Browser > Turn on 2D Maps. > Select a map type. > Drag map from Browser thumbnail to sample slot. > Noise rollout is displayed in the Material Editor. You can add a random noise to the appearance of your material. Noise perturbs the UV mapping of pixels by applying a fractal noise function. Noise patterns can be very complex and are a versatile way to create apparently random patterns. They are also good for simulating surfaces found in nature, as is characteristic of fractal images. Noise parameters interact closely with each other. Slight variations in each can create noticeably different effects. Note: Noise settings aren’t displayed in viewports. effect you like. To remove noise from a material: • In the Noise rollout, turn off On. Noise is no longer applied to the map. To animate the noise effect: 1. Turn on the Auto Key button. 2. Move to a non-zero frame. 3. In the Noise rollout, turn on Animate. By default, animation keys are set at either end of the active frame range. 4. Change the Phase value at different keyframes. Interface Bitmap 2D Map These controls appear on the Noise rollout for many 2D maps: On—Determines whether the Noise parameters affect the map. Bitmap 2D Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Bitmap Amount—Sets the strength of the fractal function, expressed as a percentage. If the amount is 0 there is no noise. If the amount is 100 the map becomes pure noise. Default=1.0. Levels—Or iterations: the number of times the function is applied. The effect of the level is dependent on the Amount value. The stronger the amount, the greater the effect of increasing the Levels value. Range=1 to 10; Default=1. Size—Sets the scale of the noise function relative to geometry. At very small values, the noise effect becomes white noise. At large values, the scale can exceed the scale of the geometry, in which case it has little or no effect. Range=0.001 to 100; Default=1.0. Animate—Determines whether animation is on the noise effect. This parameter must be turned on if you intend to animate the noise. Phase—Controls the speed of the animation of the noise function. Bitmaps shown in Material Editor sample slots A bitmap is an image produced by a fixed matrix of colored pixels, like a mosaic. Bitmaps are useful for creating many kinds of materials, from wood grains and wall surfaces to skin and feathers. You can also use an animation or video file instead of a bitmap to create an animated material. When you assign the Bitmap map, the Select Bitmap Image File dialog (page 2–1635) opens automatically. Use this dialog to specify a file or sequence as the bitmap image. The Bitmap map can synchronize the frames of a bitmap sequence to the age of particles to which the map is applied. With this effect, each particle displays the sequence from the start when it is born, rather than being assigned whichever frame is current. This is achieved by turning on the Sync Frames To Particle Age check box. Also, when using Particle Flow, assign the material containing the Bitmap map to a Material Dynamic operator. For more details and a procedure, see Material Dynamic Operator (page 2–191). Note: To save loading time, if a map with the same name is in two different locations (in two different paths), it is loaded only once. This poses a problem only if your scene includes two maps 1631 1632 Chapter 16: Material Editor, Materials, and Maps that have different content but the same name. In this case, only the first map encountered will appear in the scene. Coordinates Rollout (2D) (page 2–1625) Noise Rollout (2D) (page 2–1630) Output Rollout (page 2–1621) Supported File Types The Material Editor supports the following file formats: AVI files (page 3–609) BMP files (page 3–610) CIN files (Kodak Cineon) (page 3–610) DDS files (page 3–611) GIF files (page 3–613) IFL files (page 3–616) JPEG files (page 3–620) MOV files (QuickTime Movies) (page 3–621) MPEG files (page 3–621) Procedures To crop an image: 1. On the Bitmap Parameters rollout, click the Bitmap button and assign a bitmap. 2. In the Cropping/Placement group, turn on Apply to see the results of cropping in the sample slot (and in shaded viewports, if Show Map In Viewport is active). 3. Turn on Crop. 4. Click View Image to display the bitmap. A frame window appears, displaying the image surrounded by a region outline (a dashed line at the outer edges of the image, with handles on the sides and corners). PNG files (page 3–628) 5. Specify a cropping region by adjusting the PSD files (page 3–629) spinners at the top of the window, or by dragging the region outline. RGB files (SGI format) (page 3–633) RLA files (page 3–630) RPF files (page 3–631) TGA files (Targa) (page 3–633) TIFF files (page 3–634) YUV files (page 3–635) Note: If your scene includes animated bitmaps with materials, projector lights, or environments, the animation file is reloaded once per frame. If your scene uses multiple animations, or if the animations are large files, rendering will be slower. See also For functionality shared with other 2D maps, see the following topics: To place an image: 1. On the Bitmap Parameters rollout, click the Bitmap button and assign a bitmap. 2. In the Cropping/Placement group, turn on Apply to see the results of cropping in the sample slot (and in shaded viewports if Show Map In Viewport is active). 3. Turn on Place. 4. Click View Image. A frame window appears, displaying the image surrounded by a region outline (a dashed line at the outer edges of the image, with handles on the sides and corners). 5. Move the image by adjusting the spinners at the top of the window, or by dragging the region outline. Bitmap 2D Map The reduced image "decals" on the sample sphere. The diffuse color is visible around the image. The software ignores the bitmap’s alpha channel, if present, and does not create a new one. To use the alpha channel that is part of the bitmap: Interface 1. On the Maps rollout, assign the map to the Bitmap Parameters rollout Opacity component. (You can assign a copy or instance of this map to other components, such as Diffuse, as well.) 2. Click the map button for the Opacity component. This lets you adjust the settings for the Opacity map. 3. In the Bitmap Parameters rollout > Alpha Source group, choose Image Alpha. This option is not available if the bitmap does not have an alpha channel. 4. In the Bitmap Parameters rollout > Mono Channel Output group, choose Alpha. This option is not available if the bitmap does not have an alpha channel. The bitmapped material will now have the transparency specified by the alpha channel. This will appear in renderings. Transparency does not appear in viewports or ActiveShade renderings. To create an alpha channel based on intensity: • In Bitmap Parameters rollout > Alpha Source group, turn on RGB Intensity. The software creates an alpha channel. Full-intensity areas of the image are opaque, zero-intensity areas are transparent, and intermediate colors become partially transparent. Bitmap—Selects the bitmap using the standard file browser. After selection, the full path name appears on this button. Reload—Reloads the bitmap file using the same name and path. You don’t need to use the file browser to reload the bitmap after you’ve updated it in your paint program. Clicking reload for any instance of the map updates the map in all sample slots and in the scene. Filtering group Filtering (page 3–939) options let you select the method of pixel averaging used in antialiasing (page 3–907) the bitmap. Pyramidal—Requires less memory and is adequate for most purposes. To use a completely opaque bitmap: • In Bitmap Parameters rollout > Alpha Source group, turn on None (opaque). Summed Area—Requires much more memory, but yields generally superior results. None—Turns off filtering. 1633 1634 Chapter 16: Material Editor, Materials, and Maps Mono Channel Output group Some parameters, such as opacity or specular level are a single value as opposed to a material’s three-value color components. Controls in this group determine the source of the Output mono channel in terms of the input bitmap. Cropping and placement settings affect the bitmap only as it’s used for this map and any instances of the map. They have no effect on the bitmap file itself. Apply—Turn on to use the cropping or placements settings. RGB Intensity—Uses the intensity of the red, green, View Image—Displays a rendered frame window and blue channels for mapping. The color of the pixels is ignored and only the value or luminance of the pixels is used. The colors are computed as gray values in the range between 0 (black) and 255 (white). (page 3–5) that shows the bitmap surrounded by a region outline. The region outline has handles at its sides and corners. When cropping is on, dragging the handles changes the size of the crop area. You can also drag within the region area to move it. Alpha—Uses the intensity of the alpha channel (page 3–907) for mapping. RGB Channel Output group The frame window has U/V and W/H (width/height) spinners on its toolbar. Use these to adjust the location and size the image or crop area. The RGB Channel Output determines where the output RGB part comes from. The controls in this group affect only maps for material components that display color: Ambient, Diffuse, Specular, Filter Color, Reflection, and Refraction. When Place is turned on, dragging the region area handles changes the scale of the bitmap (hold down Ctrl to preserve the bitmap’s aspect ratio), and dragging the image changes its location within the tile area. RGB—Displays the full color values of the pixels. When Crop is turned on, the UV or XY button at the right of the rendered frame window toolbar lets you switch between using UV or XY coordinates in the toolbar spinners. Also, you can zoom out by pressing Shift+Z and zoom in by pressing Z . (Default) Alpha as Gray—Displays tones of gray based on the levels of the alpha channel. Cropping/Placement group The controls in this group let you crop the bitmap or reduce its size for custom placement. Cropping a bitmap means to reduce it to a smaller rectangular area than it originally had. Cropping doesn’t change the scale of the bitmap. Placing a bitmap lets you scale the map and place it anywhere within its tile. Placing can change the bitmap’s scale, but shows the entire bitmap. The four values that specify the placement and size of the cropping or placement region are all animatable. Crop—Makes cropping active. Place—Makes placement active. U/V—Adjusts the bitmap location. W/H—Adjusts the width and height of the bitmap or crop area. Jitter Placement—Specifies the amount of random offset. At 0, there is no random offset. Range = 0.0 to 1.0 When Place is turned on, the size and position specified by the spinners or editing window are ignored. The software then chooses a random size and tile position for the image. Select Bitmap Image File Dialog Alpha Source group Playback Rate—Lets you speed up and slow down Controls in this group determine the source of the Output alpha channel in terms of the input bitmap. the rate that the animation is applied to the map (for example, 1.0 is normal speed, 2.0 is twice as fast, .333 is 1/3 as fast). Image Alpha—Uses the image’s alpha channel (disabled if the image has no alpha channel). RGB Intensity—Converts the colors in the bitmap to grayscale tonal values and uses them for transparency. Black is transparent and white is opaque. None (Opaque)—Does not use transparency. Premultiplied Alpha—Determines how alpha is treated in the bitmap. When turned on, the default, premultiplied alpha (page 3–997) is expected in the file. When turned off, the alpha is treated as non-premultiplied, and any RGB values are ignored. Tip: If you apply an alpha image as a Diffuse map, for example, and it doesn’t decal correctly, the bitmap file probably contains non-premultiplied alpha; the RGB values are maintained separately from the alpha values. To correct this, turn off Premultiplied Alpha. Time rollout Sync Frames to Particle Age—When on, the software synchronizes the frames of a bitmap sequence to the age of particles to which the map is applied. With this effect, each particle displays the sequence from the start when it is born, rather than being assigned whichever frame is current. Default=off. When using Particle Flow, assign the material containing the Bitmap map to a Material Dynamic operator. For more details and a procedure, see Material Dynamic Operator (page 2–191). Note: This functionality is not supported by the mental ray renderer. End Condition group Determines what happens after the last frame of the bitmap animation if the animation is shorter than the scene. Loop—Causes the animation to repeat over and over again from the beginning. Ping-Pong—Causes the animation to be played forward and then backward repeatedly, making every animated sequence "loop smoothly." Hold—Freezes on the last frame of the bitmap animation. These controls let you change the start time and speed of animation (AVI (page 3–609) or MOV (page 3–621)) files used as animated texture maps. They make it easier to use sequences of images as maps in scenes, because you can control the timing very precisely Start Frame—Specifies the frame where the playback of the animated map will begin. Select Bitmap Image File Dialog Material Editor > Maps Rollout > Click any map selector button. > Material/Map Browser > Double-click Bitmap. > Select Bitmap Image. Material Editor > Bitmap map > Bitmap Parameters rollout > Bitmap button The Select Bitmap Image dialog allows you to choose a file or sequence of files for a map. If 1635 1636 Chapter 16: Material Editor, Materials, and Maps a sequence of files is selected by turning on Sequence, the Image File List Control dialog (page 3–618) is opened when you click Setup or Open. Procedures To select a bitmap image for a map: 1. In the Material Editor, open the Maps rollout. 2. Click any button in the Map column. This adds a map into the channel you’ve selected. For example, clicking in the Map column of the Diffuse channel creates a diffuse or texture map. The Material Map Browser is displayed. 3. In the Material/Map Browser, double-click Bitmap. 4. In the Select Bitmap Image dialog, navigate the Look in field to select the directory containing the sequence of files. 5. If necessary, change file type to match the file extension of the sequence, or choose All Formats. 6. Turn on Sequence, and choose the name of the first sequential file. 7. Click the Setup button. The Image File List Control Dialog opens. 8. Click the Browse button and set the Target path to a writable directory on your hard disk. Do not set the path to a CD-ROM drive. 9. Choose the options you want and click OK. The IFL file is written to the target directory. The Select Bitmap Image dialog is displayed. 4. In the Select Bitmap Image dialog, navigate the Look In field to select the appropriate directory. Note: The Select Bitmap Image File dialog uses Interface Tip: You can resize the dialog by dragging an edge or a corner. the last location where a bitmap was chosen, rather than the default bitmap path defined in Customize > Configure User Paths. 5. Highlight the file name in the file list window. 6. Click Open to close the dialog. To select a set of still images as a bitmap sequence: 1. In the Material Editor, open the Maps rollout. 2. Click any button in the Map column. This adds a map into the channel you’ve selected. For example, clicking in the Map column of the Diffuse channel creates a diffuse or texture map. The Material Map Browser is displayed. 3. In the Material/Map Browser, double-click Bitmap. The Select Bitmap Image dialog is displayed. History—Displays a list of the most recent directories searched. Whenever an image is selected, the path used is added to the top of the history list as the most recently used path. The Select Bitmap Image File Dialog history information is saved in the 3dsmax.ini (page 1–18) file. Look In—Opens a navigation window to browse other directories or drives. Up One Level—Moves you up a level in the Info—Displays expanded information about the file, such as frame rate, compression quality, file size, and resolution. The information here depends on the type of information that is saved with the file type. directory structure. View—Displays the file at its actual resolution. If the file is a movie, the Media Player is opened so the file can be played. Create New Folder—Lets you create a new folder while in this dialog. Gamma Group List—Displays the contents of a directory without the details. Details—Displays the contents of a directory with all the details. List Window—When details are turned on, the Gamma—Selects the type of gamma to be used for the selected file. This is unavailable unless Enable Gamma Correction is turned on in the Gamma panel (page 3–824) of the Preferences dialog. Use Image’s Own Gamma—Uses the gamma of the incoming bitmap. contents of the directory are displayed with Name, Size, Type, Date Modified, and Attributes. You can sort based on each of these columns by clicking the column label. Use System Default Gamma—Ignores the image’s File Name—Displays the file name of the file Override—Defines a new gamma for the bitmap selected in the list. Files of Type—Displays all the file types that can be displayed. This serves as a filter for the list. Open—Selects the highlighted file and closes the dialog. Cancel—Cancels the selection and closes the dialog. Devices—Lets you choose the hardware output device, for example, a digital video recorder. The device, its driver, and its 3ds Max plug-in must all be installed on your system to use the device. Setup—When Sequence is turned on, and there are sequential files in the directory displayed, this Setup displays an Image File List Control dialog (page 3–618) to create an IFL file. own gamma and uses the system default gamma instead, as set in the Gamma panel of the Preferences dialog. that is neither the image’s own, nor the system default. Sequence—Creates an "Image File List " using the given information. Note that each time an image is selected, an evaluation is done to see if an IFL sequence can be created. If the selected image does not yield a list, this option box is unavailable. In the past, it was necessary to enter a wild card in order to create a list. Now it is possible to use wild card to filter files in the file selector. Preview—Displays the image as a thumbnail in the image window. Image Window—Displays a thumbnail of the selected file. Statistics—Displays the resolution, color depth, file type, and number of frames of the selected file. 1637 1638 Chapter 16: Material Editor, Materials, and Maps Location—Displays the full path for the file. With Procedures this information at the bottom of the dialog, you always know exactly where you are. To create a Checker map: 1. Click a map button to assign a map. 2. Choose Checker in the Material/Map browser, Checker Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Checker and then click OK. To change the color of one set of squares: 1. In the Checker Parameters rollout, click a color swatch to display the Color Selector (page 1–161). 2. Adjust the color. 3. Click Close. To use a map for one set of squares: • In the Checker Parameters rollout, click a map button to assign a map to a color. To soften the edge between the two checker colors: Checker map used for the tablecloth and (in a composite) for the floor of the ice-cream shop The Checker map applies a two-color checkerboard pattern to the material. The default checker map is a pattern of black and white squares. Checker maps are 2D procedural maps. The component checkers can be either colors or maps. Tip: Turning on Noise for a Checker map can be an effective way to create irregular patterns with a natural appearance. • In the Checker Parameters rollout, increase the value of Soften. When Soften equals 0.0, there is a hard edge between the checker colors. Low positive values soften or blur the checker boundary. Larger Soften values can blur the entire material. To swap the two checker components: • In the Checker Parameters rollout, click Swap. Interface See also For functionality shared with other 2D maps, see: Coordinates Rollout (2D) (page 2–1625) Noise Rollout (2D) (page 2–1630) Soften—Blurs the edges between the checkers. A little blurs a lot. Swap—Switches the position of the two checkers. Combustion Map Color #1—Sets the color of one of the checkers. Click to display the Color Selector (page 1–161). Color #2—Sets the color of one of the checkers. Click to display the Color Selector (page 1–161). Maps—Selects a map to use within the area of the checker color. For example, you could put an additional checkerboard within one of the checker colors. The check boxes enable or disable their associated map. Combustion Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Combustion With the Combustion map, you can create maps interactively using the Autodesk Combustion software and 3ds Max at the same time. You use Combustion to paint on a bitmap, and the material updates automatically in the Material Editor and in shaded viewports. Important: The Combustion map works only if Autodesk Combustion is installed on your system. Only Combustion 2.1 and later formats are supported. Maps in the Combustion 1 format are not supported in 3ds Max. Important: The mental ray renderer (page 3–78) does not support the Combustion map. See also CWS (Combustion Workspace) Files (page 3–611) Noise Rollout (2D) (page 2–1630) About the 3ds Max and Combustion Integration You can use Combustion as a material map in 3ds Max. With a Combustion map, you can create a material from a Paint or composite operator, and in turn apply that material to objects in a 3ds Max scene. The Combustion map can include Combustion effects, and it can be animated. In addition, with Combustion you can import 3ds Max scenes that have been rendered to a rich pixel file (page 3–631) (RPF (page 3–631) or RLA (page 3–630) file). The imported rich pixel rendering becomes an element of your composite. You can adjust its 3D position relative to video elements of the composite, and you can apply Combustion 3D Post effects to objects within it. See the Combustion User’s Guide for more information. Note: Because 3ds Max runs only on Windows, you cannot use Combustion to create material maps on a Macintosh. Note: The environmental atmospheric effect known as "Combustion" in versions of 3ds Max prior to v4 is now known as the Fire effect (page 3–276). 3ds Max Materials and the Combustion Map In 3ds Max, a material (page 3–971) is data that you assign to the surface or faces of an object so that it appears a certain way when rendered. Materials affect the color of objects, their shininess, their opacity, and so on. The Material Editor (page 2–1409) is the portion of 3ds Max that creates and manages materials. In the Material Editor, you can assign maps to a material’s color components and to its numeric components such as opacity. Maps add images, patterns, color adjustments, and other effects to the visual properties of the material. In the 3ds Max Material Editor, you assign a map by clicking the map button for a component color or other component. This displays the Material/Map Browser, which lets you choose the map type. 1639 1640 Chapter 16: Material Editor, Materials, and Maps 3ds Max provides several types of maps (page 3–968). The most basic is a 2D map, a two-dimensional image that is typically mapped onto the surface of geometric objects. Other uses of 2D maps are as environments to create a background for the scene, as projections from lights, and as displacements to "emboss" geometry. A Combustion map is a 2D map (page 2–1624). It is a Combustion project used by the 3ds Max Material Editor, so like any Combustion project, it is vector-based, animatable, and fully editable. From within the Material Editor, you can have Combustion create a new project from scratch, or use an existing composite or Paint branch. You can synchronize the Combustion Timeline with the 3ds Max time slider so animated materials synchronize with your 3D scene. With a Combustion map, you can paint in either program: that is, you can paint either in the Combustion viewport or on 3ds Max objects. Both programs update the paint display. You also have the option of using Combustion to paint on an "unwrapped" projection of 3ds Max object geometry. In addition, with Combustion effects that require you to pick a point, such as Lens Flare or Ripple, you can use either program, Combustion or 3ds Max, to pick the point. Coordinates toggle, which is automatically enabled when you assign a mapped material to the object. Some objects, such as editable meshes, do not have a Generate Mapping Coordinates toggle. For these kinds of objects, go to the Modify panel and apply a UVW Map modifier (page 1–922). • Sometimes it can be hard to see how the Combustion operator is oriented to the 3ds Max object’s mapping coordinates. It can help to paint some temporary strokes in Combustionto see how they are aligned in 3ds Max viewports. Displaying the mapping coordinates in Combustion can help. See the procedure, "To display an unwrapped mesh." It can also help to paint directly on the object in a 3ds Max viewport. See the procedure, "To paint directly on the 3D object." Procedures To create a new Combustion map: 1. Open the Material Editor. 2. Drag an unused sample slot from the Material Editor to the object you want to paint. 3. In the Material Editor, click the map button for the Diffuse Color component. This button is on the material’s Basic Parameters rollout. Tips for Working with a Combustion Map in 3ds Max • If you have a dual-screen configuration, you can set it up so you can see both the 3ds Max and the Combustion windows at the same time. Otherwise, you need to use Alt+Tab to switch between the two windows. • To work with Combustion, the 3ds Max object must have mapping coordinates (page 3–967). Primitive objects have a Generate Mapping All standard materials have a Basic Parameters rollout, whose controls vary depending on the chosen shader. The Strauss shader has only one color component, labeled Color. The Material/Map Browser appears. 4. In the Material/Map Browser, choose Combustion, and click OK. Combustion Map A Combustion map is assigned to the Diffuse Color, and a black material map appears in the active sample slot. 5. Click to turn on Show Map In Viewport. In the scene, the object turns black in shaded viewports. 6. In the Parameters rollout, click Edit. Paint operator in Combustion Painted object in 3ds Max This launches Combustion, which displays the New Workspace dialog. 7. Set up the new project. The composite or Paint branch that you create in Combustion appears on the object in 3ds Max viewports, as well as in the sample slot for the material with the Combustion map. The workspace name and path are assigned to the material, and appear on the Project button in the material’s Combustion Parameters rollout. For example, you can use the Paint operator in Combustion. When you release the mouse, the stroke appears on the 3ds Max object. To display an unwrapped mesh: In the 3ds Max Material Editor, you can use the Unwrap Mesh feature to display your 3D object as a 2D mesh in Combustion. You can adjust the color and size of the mesh. The mesh display is only an overlay to help you orient paint strokes and other Combustion effects. It is displayed in Combustion but is not a part of the composite or the map. 1. Create a Combustion map. 2. In the 3ds Max Material Editor, enable Unwrap Selected in the Live Edit group. 1641 1642 Chapter 16: Material Editor, Materials, and Maps Use To Display During Playback Display the mesh when you play back the animation. Color Click the color box to set the color of the mesh using a color picker. In Combustion, a mesh appears. This is an "unwrapped" projection of the 3D object. To paint directly on the 3D object: 1. Create a Combustion map. 2. In Combustion, select one of the following drawing tools: 3D object in 3ds Max • Freehand • Straight Line • Rectangle • Ellipse 3. In the 3ds Max Material Editor, enable Paint in the Live Edit group of the Combustion Parameters rollout. Corresponding mesh in Combustion To set the mesh parameters: • In Combustion, choose File > Preferences > Mesh. Use To Anti-Alias Mesh Remove jaggies from the mesh. In the 3ds Max viewport, a pen cursor appears. Drag the cursor over the object to paint on it. Combustion Map your animated material. For more information on animating objects in Combustion, refer to the Combustion User’s Guide. You can add Paint strokes in either program, but to modify them you must use Combustion. Note: Remember, Combustion tracks the time slider in 3ds Max, but 3ds Max does not track the Timeline indicator in Combustion. If the 3ds Max viewport does not appear to be updating as you paint in Combustion, you might be painting on a different frame than the one displayed in 3ds Max. To find your Paint objects, move to the correct frame in 3ds Max. When you release the cursor, the Paint object also appears in Combustion. To animate Combustion Paint strokes: 1. Create a Combustion map. 2. In Combustion, set the time scale to start at frame number 0. Choose File > Preferences. In the Preferences dialog select General, set Display Time As to Frames (From 0), and then click OK. To use an existing Combustion workspace as a material map in 3ds Max: 1. Open the Material Editor and select an unused sample slot. 2. In the Material Editor, expand the Maps rollout, and click the Map button next to the Diffuse Color component. 3. In the 3ds Max Material Editor, enable Track Time in the Live Edit group of the Combustion Parameters rollout. Now the time slider in 3ds Max controls the Timeline indicator in Combustion. 4. In 3ds Max, move the time slider to a frame and create a Paint object. The Paint object appears on that frame in both Combustion and 3ds Max. 5. Move to another frame and use Combustion to modify the Paint object. Combustion uses interpolation to determine the appearance of the Paint object between keyframes. If you add a new Paint object, that object simply appears, starting on the frame where you created it. 6. Continue advancing in the clip, adding and modifying Paint strokes and effects to create The Material/Map Browser appears. 1643 1644 Chapter 16: Material Editor, Materials, and Maps 3. In the Material/Map Browser, choose 5. Click the map’s Type button. Combustion, and click OK. A Combustion map is assigned to the Diffuse Color, and a black material map appears in the active sample slot. 4. In the Combustion Parameters rollout, click the Project bar. The Material/Map Browser appears. 6. In the Material/Map Browser, choose Combustion to change the type from Bitmap to a Combustion map. 7. On the Paint Parameters rollout, click the blank Project button, and then choose the same bitmap. The Open Project dialog appears. 5. Browse for the workspace file (.cws) that you 8. Click Edit. want to use as a map, and click the Open button. Combustion is launched and the Import Footage dialog appears. Import the same bitmap. The Combustion workspace name and path appear in the Project button. To paint on the bitmap, select Paint. You can also key or color correct the bitmap, or use it to build a composite. For more information, see the Combustion User’s Guide. To apply the map to an object, drag the sample slot from the Material Editor to the object in a 3ds Max viewport. To edit the map, click the Edit button in the Parameters rollout. In Combustion, the workspace corresponding to the selected map opens, and you can edit the image. To paint geometry with a bitmapped material already assigned to it: 9. In the 3ds Max Material Editor, click Show Map In Viewport. In the scene, the object is mapped in shaded viewports. 1. In 3ds Max, select the object that you want to paint. 2. In the Material Editor, select an unused sample slot. 3. Click the Pick Material From Object button, then click the object in the viewport to put the object’s material in the selected sample slot. Object with original bitmap 4. Open the Maps rollout and note the name of the bitmap file. Click Map to go to the bitmap level of the material. Combustion Map Object with painted bitmap To paint selected faces: Use a Multi/Sub-Object material to control the location of your painting. Any sub-material can have a Combustion map, so you can use Combustion to affect only the selected faces. 1. In 3ds Max, select the object you want to paint. 2. In the Modify panel, apply an Edit Mesh modifier to the object. (Choose Edit Mesh from the Modifier drop-down list.) If you are working with an editable mesh object, or a patch or NURBS surface, skip step 2. For geometry primitives, an option is to convert the object to a mesh, patch, or NURBS surface before step 3. However, you then lose the ability to adjust object parameters (for example, the radius of a sphere, the height of a box). 3. Choose Face as the sub-object selection level. Select the faces on which you want to paint. 4. Drag a material from a sample slot in the Material Editor onto the selected faces. 5. In the modifier stack display, choose the object again, to disable sub-object selection. 6. In the Material Editor, use Pick Material From Object to grab the material from the geometry. You now have a new Multi/Sub-Object material. The original material appears as a sub-material applied to the selected faces. 7. In the Multi/Sub-Object material, go to the material assigned to the faces you want to paint. A Multi/Sub-Object material is simply a container for multiple sub-materials assigned to different faces of the same object. Click a Sub-Material button to go to a sub-material. 1645 1646 Chapter 16: Material Editor, Materials, and Maps To create a displacement map: In 3ds Max, the Displace modifier (page 1–629) acts as a force field to push and reshape an object’s geometry. You can apply its variable force directly from the modifier gizmo, from a bitmap image, or from a Combustion workspace. The grayscale component of the image is used to generate the displacement. Lighter colors in the image push outward more strongly than darker colors, resulting in a 3D displacement of the geometry. 1. In 3ds Max, select the object to which you want to apply the displacement map. In this example, the displacement is applied to a box primitive. 8. Assign a Combustion map to the Diffuse component of the sub-material applied to the selected faces. 9. Click Edit to launch Combustion. 10. Use the tools in Combustion to modify the material. To modify a Combustion map: 1. In the Material Editor, select the material you want to modify. Material maps created in Combustion are vector-based and fully modifiable. 2. In the Combustion Parameters rollout, click the Edit button. The workspace corresponding to the Combustion map opens in Combustion. As you modify the workspace in Combustion the map is updated in 3ds Max. 3. In Combustion, save the workspace before you disable the Edit button in 3ds Max. In the object’s Parameters rollout, increase the number of Length and Width Segments. The closer the number of segments approaches the resolution of the displacement map, the more accurate is the result. In the example, 150 by 150 gives good results. 2. Apply a Displace modifier: in the Modify panel, choose Displace from the Modifier drop-down list. 3. In the Parameters rollout, Image group, click the Map button. Combustion Map 7. In the Material Editor, Combustion Parameters rollout, click Edit. This launches Combustion. In the New dialog, set the Type To Paint, and create a grayscale image to use as a displacement map. For more information, see the Combustion User’s Guide. 8. In 3ds Max, increase the Displacement strength in the modifier Parameters rollout. 4. The Material/Map Browser appears. Select Combustion and click OK. As you increase the strength, you can see the result of the displacement map on the selected object. The Map button now reads Map #1 (Combustion). 5. Open the Material Editor, and then click and drag the Map #1 (Combustion) button to an unused sample slot in the Material Editor. An Instance (Copy) Map dialog is displayed. 9. In Combustion, save your project, then in 3ds Max, disable Edit in the Combustion Parameters rollout to exit Edit mode. 6. Select Instance and click OK. 1647 1648 Chapter 16: Material Editor, Materials, and Maps Interface 2D Mapping Coordinates Like any 2D map in 3ds Max, mapping coordinates control how a Combustion map is positioned on objects. For geometric primitives, mapping coordinates are usually provided automatically. For some kinds of geometry, such as meshes (page 1–996), patches (page 1–993), and NURBS surfaces (page 1–1078), you must apply a UVW Map modifier (page 1–922) to provide mapping coordinates. project the map at right angles to the geometry. With a Combustion map, UV is almost always the most useful choice. Combustion Parameters rollout The Combustion Parameters rollout appears when you assign a Combustion map to a material. Controls in a 2D map’s Coordinates rollout (page 2–1625) affect how the map is positioned. When you work with a Combustion map, these are the important points to remember: • When you apply a Combustion map to an object, leave mapping set to the default values of Texture and Explicit Map Channel. • When you use a Combustion map as an environment map, set mapping to Environ and then choose the mapping shape from the Mapping drop-down list. • The offset, tiling, mirror, and angle controls are useful especially when the size of the projected Combustion map is smaller than the geometry. • You can choose between UV, VW, and WU projections. (You can also do this from the Combustion Parameters rollout, as described below.) UV projects onto the surface of geometry like a slide projector. VW and WU Project—Loads the file to use in Combustion. You can load only file types supported by Autodesk Combustion, such as Combustion workspace files (cws), or footage and image file formats supported by Combustion (see the Combustion User’s Guide for information on supported footage formats). Edit—Launches Combustion from the 3ds Max Material Editor. If a project is loaded, it is opened in Combustion. If no project is loaded, Combustion displays the New dialog. This dialog lets you specify a project type, name, video format, duration, and background color. Live Edit group These controls affect how you use Combustion with 3ds Max. Combustion Map Operator—Switches control to Combustion, where you can select an operator. The results of the operator appear as the image in the Combustion map. The operator does not have to be the last operator in the pipe. mapping coordinates. When paint strokes are unconstrained on an object such as a box, they can jump to the other side of the map when you cross a map’s edge. This can give erratic results. To prevent this, enable Constrain To UV. While Combustion is active, you can also adjust the operator. The Combustion map updates to show the results. In general, use the Constrain To UV option when you paint on boxes and other objects with planar maps. Disable this option when you want to paint on spherical maps or anywhere else the mapping has a singularity (where the edges of the map converge to a single point). Unwrap Selected—Takes the current UVW mapping coordinates of the currently selected 3D object (or the current Face sub-object selection), and displays them in Combustion. This can help you coordinate the map and the mesh as you paint. The Unwrap display is only an overlay. It is displayed in Combustion but is not a part of the composite or the map. UV List—Changes the mapping coordinate system (the direction in which the map is projected) from UV to VW or UW. UV projects onto the surface of geometry like a slide projector. VW and WU project the map at right angles to the geometry. With a Combustion map, UV is almost always the most useful choice. Selected Faces—Constrains the Combustion image to only the faces selected. This gives additional control or masking based on faces rather than UV mapping. Project Info group These readouts display the format of the Combustion Paint or composite operator. They are active when a Combustion workspace is loaded or Edit mode is active. Width—Sets horizontal resolution of the frame in pixels. UV—Specifies which mapping channel to unwrap and paint. Range=1 to 99. Height—Sets vertical resolution of the frame in Track Time—Links the Timeline in Combustion to Frames—Sets number of frames in the Combustion the time slider in 3ds Max. When Track Time is enabled, you can use the time slider in 3ds Max to navigate between frames in Combustion. Note: This control is not bidirectional; changing the frame in Combustion does not change the frame in 3ds Max. Paint—When enabled, displays a paint cursor in 3ds Max viewports. You can then paint directly on the 3D geometry. Dragging the cursor in the viewport over the geometry in 3ds Max creates paint strokes inside Combustion. Constrain To UV—When enabled, constrains paint strokes to remain within the edges of the UV pixels. workspace. Rate—Sets playback speed in frames per second. Custom Resolution group With these controls, you can customize the resolution of the Combustion map. Enable—Enables the Width and Height controls. Width and Height—Width changes the horizontal resolution of the map. Height changes the vertical resolution of the map. 1649 1650 Chapter 16: Material Editor, Materials, and Maps Time group These controls relate frames in the Combustion workspace to frames in the Combustion map. See the controls under "End Condition Group" for how to handle the map when it contains fewer frames than the 3ds Max scene. Start Frame—Determines which frame of the Combustion sequence is used as the first frame of the Combustion map in 3ds Max. Duration—Sets how many frames of the backward until the rendering sequence is completed. Hold—Plays the animation once, then repeatedly displays the last frame of the project until the rendering sequence is completed. Gradient Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Gradient Combustion file sequence are used by the Combustion map in 3ds Max. Filtering group These controls determine the method for calculating antialiasing (page 3–907): Pyramidal—Sets the default antialiasing method. This method is faster than Summed Area filtering. Summed Area—Implements a better method of antialiasing. Summed Area filtering uses more memory than Pyramidal. If it has to use virtual memory, it can dramatically increase rendering time. None—Performs no antialiasing. This option takes the least time to render, but yields the lowest quality results. End Condition group These controls define what the 3ds Max renderer should do when the duration of the Combustion project (or the range of frames used in the Combustion map) is shorter than the rendering sequence in 3ds Max. Loop—Plays the Combustion project animation repeatedly until the rendering sequence ends. Ping Pong—Plays the animation forward, then backward, and repeatedly plays forward and Gradient maps used for the stoplight lamps, and for the background of the scene Gradients shade from one color to another. You specify two or three colors for the gradient; the software interpolates intermediate values. Gradient maps are 2D maps. Tip: You can swap colors by dragging one color swatch over another, then clicking Swap in the Copy or Swap Colors dialog. To reverse the overall direction of the gradient, swap the first and third colors. See also For functionality shared with other 2D maps, see: Coordinates Rollout (2D) (page 2–1625) Noise Rollout (2D) (page 2–1630) Output Rollout (page 2–1621) Gradient Map from the bottom at 0.0 to the top at 1.0. For a radial gradient, the second color’s position ranges from the inside at 0.0 to the outside at 1.0. Interface Gradient-mapped material tiled and with noise Procedures To create a Gradient map: 1. Click a map button to assign a map. 2. Choose Gradient in the Material/Map Browser, and then click OK. To change a gradient color: 1. In the Gradient Parameters rollout, click a color swatch to display the Color Selector (page 1–161). 2. Adjust the color. 3. Click one of the other color swatches. 4. Adjust the color. Color #1-3—Sets the three colors that the gradient interpolates between. Displays the Color Selector (page 1–161). You can drag and drop the colors from one swatch to another. To choose the kind of gradient: • Choose either Linear or Radial. A linear gradient shades from one color to another along a line. A radial gradient has one color on the inside and another on the outside, shading in a circular pattern. To use a map for a color in the gradient: • In the Gradient Parameters rollout, click a map button to assign a map to a color. To adjust the position of the second color: • Change the Color 2 Position value. At the default value of 0.5, the second color is between the first and third colors. For a linear gradient, the second color’s position ranges Maps—Displays a map (page 3–968) instead of the color. Maps are blended into the gradient in the same way that the gradient colors are blended. You can add nested procedural gradients in each window to make 5-, 7-, 9-color gradients, or more. The check boxes enable or disable their associated maps. Color 2 Position—Controls the center point of the middle color. The position ranges from 0 to 1. When it is 0, color 2 replaces color 3. When it is 1, color 2 replaces color 1. Gradient Type—Linear interpolates the color based on the vertical position (V coordinate) while radial interpolates based on the distance from the center of the map (center is: U=0.5,V=0.5). With 1651 1652 Chapter 16: Material Editor, Materials, and Maps both of these, you can rotate the gradient using the angle parameter under Coordinates, which is animatable. discontinuity at the threshold transition and thus causes less potential aliasing. Low—Sets the low threshold. Noise group High—Sets the high threshold. Amount—When nonzero (ranges from 0 to 1), applies a noise effect. This perturbs the color interpolation parameter using a 3D noise function based on U, V, and Phase. For example, a given pixel is halfway between the first and second color (the interpolation parameter is 0.5). If noise is added, the interpolation parameter would be perturbed by some amount so that it may become less or more than 0.5. Smooth—Helps make a smoother transition from the threshold value to the noise value. When smooth is 0, no smoothing is applied. When it is 1, the maximum amount of smoothing is applied. Gradient Ramp Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Gradient Ramp Regular—Generates plain noise. This is the same as Fractal noise with the Levels setting at 1. When the noise type is set to Regular, the Levels spinner becomes disabled (because Regular is not a fractal function). Fractal—Generates noise using a fractal algorithm. The Levels option sets the number of iterations for the fractal noise. Turbulence—Generates fractal noise with an absolute value function applied to it to make fault lines. The noise amount must be greater than 0 to see any effects of turbulence. Gradient ramp used for the layers of the cake Size—Scales the noise function. Smaller values give smaller chunks of noise. Phase—Controls the speed of the animation of the noise function. A 3D noise function is used for the noise. The first two parameters are U and V and the third is phase. Levels—Sets the number of fractal iterations or turbulence (as a continuous function). Gradient Ramp is a 2D map similar to the Gradient map. It shades from one color to another. In this map, however, you can specify any number of colors or maps for the gradient. There are a variety of controls, making highly customized gradients possible. Almost any parameter of Gradient Ramp can be animated. See also Noise Threshold group For functionality shared with other 2D maps, see: When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0–1. This produces a smaller Coordinates Rollout (2D) (page 2–1625) Noise Rollout (2D) (page 2–1630) Gradient Ramp Map Output Rollout (page 2–1621) Interface Procedure To create a material with a Gradient Ramp map: 1. Open the Material Editor, and choose an unused sample slot. 2. Close the Basic Parameters rollout, and open the Maps rollout. 3. Click the Map button for Diffuse to display the Material/Map Browser. 4. In the Browser list, click Gradient Ramp. The map appears in the upper-left of the Browser window. Click OK. Gradient Ramp map is applied to the sample slot as the Browser closes. 5. In the Material Editor, under its toolbar, give the material a name to identify its use in your scene. When you replace an existing map with a gradient ramp map, choosing to Keep Old Map as Submap in the Replace Map dialog, the old map becomes assigned to the first flag as a texture. Gradient bar shows default gradient and interpolation types Gradient bar—Presents an editable representation of the gradient being created. The effect of the gradient moves from left (start point) to right (end point). By default, three flags appear along the bottom edge of a red/green/blue gradient. Each flag controls a color (or map). The currently selected flag is green, and its RGB value and its position in the gradient (in the range 0 to 100) appear above the gradient bar. Each gradient can have any number of flags. The gradient bar has the following features: • Click anywhere along the bottom edge to create additional flags. • Drag any flag to adjust the position of its color (or map) within the gradient. The start and end flags (Flag #1 at 0 and Flag #2 at 100) cannot be moved. However, other flags can occupy these positions and still be moved. Gradient Ramp-mapped material with a colored gradient • More than one flag can occupy a given position. If two flags are at the same position, a slight edge appears between the colors. With three or more flags at the same position, the edge is a hard line. 1653 1654 Chapter 16: Material Editor, Materials, and Maps Right-click options for gradient bar—Right-click in the gradient bar to display a menu with these options: Reset—Returns gradient bar to defaults. Load Gradient—Loads an existing gradient (.dgr file) into the gradient bar. Save Gradient—Loads your current gradient bar as a .dgr file. • Mapped—Lets you assign a map to use as the gradient. Enables the Source Map controls for specifying the map and turning it on and off. • Normal—Based on the angle between the vector from the camera to the object and the surface normal vector at the sample point. The leftmost flag of the gradient is 0 degrees; the rightmost flag is 90 degrees. Copy, Paste—Copies a gradient and pastes it into • Pong—A diagonal sweep that repeats in the middle. another Gradient Ramp map. • Radial—A radial transition of colors. Load UV Map—Selects a UV map. • Spiral—A smooth, circular transition of colors. Load Bitmap—Selects a bitmap. • Sweep—A linear sweep transition of colors. Flag Mode—Toggles flag display. Right-click options for flags—Right-click any flag to display a menu with the following options: Copy and Paste—Lets you copy the current key and paste it to replace another key. The other key could be in another Gradient Ramp as well as the current one. Edit Properties—Choose this option to display the • Tartan—A plaid. Interpolation—Chooses the type of interpolation. The following Interpolation types are available. These affect the entire gradient. Note: Gradients are ordered from left to right. The “next” flag is to the right of the current flag; the “previous” flag is to the left. Custom—Sets an individual interpolation type Delete—Deletes the flag. for each flag. Right-click the flag to display the Flag Properties dialog (page 2–1655) and set the interpolation. Gradient Type—Chooses the type of gradient. The Ease In—Weighted more toward the next flag than following Gradient types are available. These affect the entire gradient. the current flag. Flag Properties dialog (page 2–1655). • 4 Corner—An asymmetrical linear transition of colors. • Box—A box. • Diagonal—A linear diagonal transition of colors. • Lighting—Based on the light intensity value. No light=far left; brightest light=far right. • Linear—A smooth, linear transition of colors. Ease In Out—Weighted more toward the current flag than the next flag. Ease Out—Weighted more toward the previous flag than the next flag. Linear—Constant from one flag to the next. (Default.) Solid—No interpolation. Transitions are a sharp line. Source Map—Click to assign a map to a mapped gradient. The check box turns the map on or off. Flag Properties Dialog The Source Map controls are available only when Mapped is the chosen gradient type. Smooth is 0, no smoothing is applied. When Smooth is 1, the maximum amount of smoothing is applied. Noise group Amount—When nonzero, a random noise effect is applied to the gradient, based on the interaction of the gradient ramp colors (and maps, if present). The higher this value, the greater the effect. Range=0 to 1. Regular—Generates plain noise. Basically the same as fractal noise with levels disabled (because Regular is not a fractal function). Fractal—Generates noise using a fractal algorithm. The Levels option sets the number of iterations for the fractal noise. Flag Properties Dialog Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Gradient Ramp > Gradient Ramp Parameters rollout > Right-click a flag at the bottom of the gradient bar. > Edit Properties > Flag Properties dialog By setting parameters on the Flag Properties dialog, you can customize the effect of each flag on the Gradient Ramp map. You have access to all flags from this dialog. See also Turbulence—Generates fractal noise with an Gradient Ramp Map (page 2–1652) absolute value function applied to it to make fault lines. Note that the noise amount must be greater than 0 to see any effects of turbulence. Interface Size—Sets the scale of the noise function. Smaller values give smaller chunks of noise. Phase—Controls the speed of the animation of the noise function. A 3D noise function is used for the noise; the first two parameters are U and V and the third is phase. Levels—Sets the number of fractal iterations or turbulence (as a continuous function). Noise Threshold group When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0 to 1. This causes a smaller discontinuity at the threshold transition and produces less potential aliasing. High—Sets the high threshold. Low—Sets the low threshold. Smooth—Helps make a smoother transition from the threshold value to the noise value. When Name field—Select any flag with the spinners. The selected flag turns green on the gradient bar. Use this field to rename a flag to represent its use in the gradient. Interpolation—Disabled unless the Interpolation type for the Gradient Ramp map is set to Custom. The available interpolation types for flags are 1655 1656 Chapter 16: Material Editor, Materials, and Maps similar to the corresponding ones in the Gradient Ramp map: Note: Gradients are ordered from left to right. The “next” flag is to the right of the current flag; the “previous” flag is to the left. Swirl Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Swirl Ease In—Weighted more toward the next flag than the current flag. Ease In Out—Weighted more toward the current flag than the next flag. Ease Out—Weighted more toward the previous flag than the next flag. Linear—Constant from one flag to the next. (Default.) Solid—No interpolation. Transitions are a sharp line. Swirl used to create the whirlpool Texture—Assigns a map in place of a color. When unselected, the flag turns blue to indicate a map assignment. Color—Click the color swatch to change the color controlled by the selected flag. Swirl is a 2D procedural map that generates patterns similar to the swirls in two-flavor ice creams. Like other two-color maps, either color can be replaced with other maps, so it’s possible to swirl marble with wood, for example. Position—Shows the current position of the See also selected flag. Use the spinners to reposition the flag, or enter a value directly. Position is not available for the start and end flags, because these flags can’t be moved. Animation keys—Animation keys are created by default for Color and Position, and the keys are active, indicated by the green triangles next to the Color and Position labels. You can turn these keys off if you don’t intend to animate the gradient. For functionality shared with other 2D maps, see: Coordinates Rollout (2D) (page 2–1625) Noise Rollout (2D) (page 2–1630) Procedure To create a Swirl-mapped material: 1. Open the Material Editor, and choose an unused sample slot. 2. Close the Basic Parameters rollout, and open the Maps rollout. 3. Turn on Diffuse Color. Click its Map button to display the Material/Map Browser. 4. In the Browser list, click Swirl. The map appears in the upper-left of the Browser window. Click OK. Swirl Map Swirl map is applied to the sample slot as the Material/Map broswer closes. 5. In the Material Editor, under its toolbar, give the material a name to identify its use in your scene. Interface Swirl Amount are very high. Range=0 to 4.0; Default=0.4. Swirl Intensity—Controls the intensity of the swirl color. Higher values create a more vibrant mix of colors. At 0, the swirl effect disappears. Range=-10 to 10.0; Default=2.0. Swirl Amount—Controls the quantity of the Swirl color that gets mixed into the Base color. If set to 0, only the base color is used. Range=0 to 3.0; Default=1.0. Swirl Appearance group Twist—Changes the number of spirals in the swirl effect. Higher values increase the number of spirals. Negative values change the direction of the twist. At 0, the colors are randomly distributed, not swirled. Range=-20.0 to 20.0; Default=1.0. Constant Detail—Changes the level of detail within a swirl. Lower values minimize the level of detail within the swirl. At 0, all detail is lost. Higher values increase detail until the swirl effect disappears. Values are in whole numbers. Range=0 to 10; Default=4. Swirl Color Setup group Swirl Location group Base—The underlying layer for the swirl effect. Center Position X and Y—Adjusts the location of the Click the color swatch to change. Click None to assign a map in place of a color. The check box enables or disables the map. Swirl—Mixed with the Base color or map, produces the swirl effect. Click the color swatch to change this color. Click None to assign a map in place of a color. Swap—Reverses the color or map assignments for Base and Swirl. Color Contrast—Controls the contrast between Base and Swirl. At 0, the swirl is blurred. Higher values increase the contrast until all colors become black and white, even if Swirl Intensity and swirl’s center on the object. Lock—X and Y values remain identical as you adjust them. By turning off Lock and adjusting either the X or Y position, you can “slide” the swirl effect across the object. Default=on. Configuration group Random Seed—Sets a new starting point for the swirl effect. Changes the swirl pattern while maintaining other parameters. Range=0 to 65,535; No default. 1657 1658 Chapter 16: Material Editor, Materials, and Maps Tiles Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Tiles Procedures Example: To create a brick wall: 1. Create a wall using a Box primitive, or use an existing surface in one of your scenes. 2. Open the Material Editor (page 2–1409). Select an unused sample slot. 3. Click the Maps rollout to open it. Click the Map button for Diffuse to display the Material/Map Browser. 4. In the map list, select Tiles, then click OK. The Tiles map is now assigned to the sample slot. On the Material Editor, you see new rollouts appear for this map. Tiles used for the walls of a house Using the Tiles procedural map, you can create brick or stacked tiling of colors or material mappings. There are commonly defined architectural brick patterns available, or you can design custom patterns. With the Tiles map, you can: • Assign many of the maps available through the Material Editor. • Load textures and use colors in the pattern. • Control the number of tiles in columns and rows. • Control the size of the grout gap and its roughness. • Apply random variance in the pattern. • Control the stacking layout by shifting how the tiles line up. See also For functionality shared with other 2D maps, see: Coordinates Rollout (2D) (page 2–1625) Noise Rollout (2D) (page 2–1630) 5. On the Standard Controls rollout, use Preset Type to select the type of tiles for the wall. Stack Bond is the default. 6. On the Material Editor toolbar, click Assign Material To Selection to apply the tile map to the wall. Then click Show Map In Viewport to see the applied map. 7. Open the Advanced Controls rollout. Under Tiles Setup, adjust Horizontal and Vertical Count. The default is eight rows high, with three repeats of the pattern in each row. Visually scale the size of the tiles to your scene. Also adjust Texture as well as Color and Fade Variance to fine-tune the appearance of the tiles. 8. Under Grout Setup, adjust parameters for the texture of the grout, gap spacing between tiles, and roughness of the grout. You can also create missing bricks in the map by setting % Holes to a value above 0. 9. Under Miscellaneous, you can vary the color of the tiles by using the Random Seed option. Example: To match the tiles on the top and side of a wall: 1. Select a wall mapped with tile. Tiles Map 2. On the Modify panel, choose Editable Mesh. 3. Turn on Sub-Object > Face. 4. Select the top face of the wall. 5. Open the Material Editor. Drag the wall’s tile material to an unused sample slot to duplicate the material. 6. Under Tiles Setup, adjust the horizontal and vertical count of the new material to match the side of the wall. Fine Running 7. Apply the new tile material to the selected faces on the top of the wall. 8. Under Stacking Layout, align the tiles by using the Line Shift option. Interface Standard Controls rollout Fine Stack Preset Type—Lists the commonly defined architectural tile bonds, or patterns, plus a custom pattern, which you design by selecting options under the Advanced Controls and Stacking Layout rollouts. The following illustrations show some of the different bonds: 1/2 Running Common Flemish 1659 1660 Chapter 16: Material Editor, Materials, and Maps Advanced Controls rollout Running Stack Show Texture Swatches—Updates to show the texture assigned by a map for Tiles or Grout. Tiles Setup group Texture—Controls the display of the current texture map for the tiles. When on, the texture is used as the tile pattern instead of the color swatch. When turned off, the color of the tiles is displayed; clicking the color swatch displays the Color Selector (page 1–161). None—Acts as a target where you drag and drop maps for the tiles. When you click this button with a map assigned, the software displays the rollout for the map. You return this button to Tiles Map None (removing the assigned map) by dragging and dropping a None map from the Map/Material Browser. % Holes—Sets the percentage of holes in the tiled surface caused by missing tiles. The grout shows through the holes. Horiz. Count—Controls the number of tiles in a Rough—Controls the roughness of the edges of the row. grout. Vert. Count—Controls the number of tiles in a column. Color Variance—Controls the color variation among the tiles. Fade Variance—Controls the fading variation among the tiles. Grout Setup group Texture—Controls the display of the current texture map for the grout. When on, the texture is used as the grout pattern instead of the color swatch. When off, the color of the grout is displayed, and clicking the color swatch displays the Color Selector (page 1–161). None—Acts as a target where you drag and drop maps for the grout. When you click this button with a map assigned, the software displays the rollout for the map. You return this button to None (removing the assigned map) by dragging and dropping a None map from the Map/Material Browser. Horizontal Gap—Controls the horizontal size of the grout between the tiles. This value is locked by default to the vertical gap, so that both values change as you edit one or the other. To unlock them, click the lock icon. Vertical Gap—Controls the vertical size of the grout between the tiles. This value is locked by default to the horizontal gap, so that both values change as you edit one or the other. To unlock them, click the lock icon. Miscellaneous group Random Seed—Randomly applies patterns of color variation to the tiles. Does not require any other setting to generate completely different patterns. Swap Texture Entries—Swaps the texture maps or colors between the tiles and the grout. Stacking Layout group Note: This group of controls is active only when Custom Tiles is selected in Standard Controls rollout > Pattern Setup > Preset Type. Line Shift—Shifts every second row of tiles a distance of one unit. Random Shift—Randomly shifts all rows of tiles a distance of one unit. Row and Column Editing group Note: This group of controls is enabled only when Custom Tiles is selected in Standard Controls rollout > Pattern Setup > Preset Type. Row Modify—When on, creates a custom pattern for rows, based on the values of Per Row and Change. Default=off. • Per Row—Specifies which rows to change. When Per Row equals 0, no rows change. When Per Row equals 1, every row changes. When Per Row is a value greater than 1, the change appears every N rows: a value of 2 changes every second row, a value of three changes every third row, and so on. Default=2. • Change—Changes the width of tiles in the affected rows. A value of 1.0 is the default tile width. Values greater than 1.0 increase the 1661 1662 Chapter 16: Material Editor, Materials, and Maps width of tiles, and values less than 1.0 decrease it. Range=0.0 to 5.0. Default=1.0. including mosaic tiling, pebbled surfaces, and ocean surfaces. A value of 0.0 is a special case: When the Change value is 0.0, no tiles appears in that row, and the underlying material shows through. Dent (page 2–1667): Generates three-dimensional bumps over a surface. Column Modify—When on, creates a custom pattern for columns, based on the values of Per Column and Change. Default=off. • Per Column—Specifies which columns to change. When Per Column equals 0, no columns change. When Per Column equals 1, every column changes. When Per Column is a value greater than 1, the change appears every N columns: a value of 2 changes every second column, a value of three changes every third column and so on. Default=2. • Change—Changes the height of tiles in the affected columns. A value of 1.0 is the default tile height. Values greater than 1.0 increase the height of tiles, and values less than 1.0 decrease it. Range=0.0 to 5.0. Default=1.0. A value of 0.0 is a special case: When the Change value is 0.0, no tile appears in that column, and the underlying material shows through. 3D 3D maps are patterns generated procedurally in three dimensions. For example, Marble has a grain that goes through the assigned geometry. If you cut away part of an object with marble assigned as its texture, the grain in the cutaway portion matches the grain on the object’s exterior. The following 3D maps are available in 3ds Max: Cellular (page 2–1664): Generates a cellular pattern that’s useful for a variety of visual effects, Falloff (page 2–1670): Generates a value from white to black based on the angular falloff of the face normals on the surface of the geometry. The Falloff map provides greater flexibility when creating opacity falloff effects. Other effects include Shadow/Light, Distance Blend, and Fresnel. Marble (page 2–1673): Simulates the grain of marble with two explicit colors and a third intermediate color. Noise (page 2–1674): Noise is a turbulence pattern in three dimensions. Like Checker in 2D, it is based on two colors, either of which can be mapped. Particle Age (page 2–1675): Alters the color (or map) of a particle based on the particle’s life. Particle MBlur (page 2–1676): (MBlur is short for Motion Blur.) Alters the opacity of the leading and trailing ends of particles based on their rate of movement. Perlin Marble (page 2–1677): An alternative, procedural marble map with a turbulence pattern. Planet (page 2–1678): Simulates the contours of a planet as seen from space. Smoke (page 2–1679): Generates fractal-based turbulence patterns to simulate the effects of smoke in a beam of light, or other cloudy, flowing mapping effects. Speckle (page 2–1680): Generates a speckled surface for creating patterned surfaces that can simulate granite and similar materials. Splat (page 2–1681): Generates a fractal pattern similar to splattered paint. Coordinates Rollout (3D) Stucco (page 2–1682): Generates a fractal pattern similar to stucco. Waves (page 2–1683): Creates watery or wavy effects by generating a number of spherical wave centers and randomly distributing them. Wood (page 2–1684): Creates a 3D wood grain pattern. Coordinates Rollout (3D) Material Editor > Select sample slot. > Get Material > Material/Map Browser > Turn on 3D Maps. > Double-click a map type to apply it to sample slot. > Coordinates rollout is displayed in Material Editor. By adjusting coordinate parameters, you can move a map relative to the volume of the object to which it is applied. Interface See also Vertex Color Map (page 2–1693). When one of the map channels is set, it locks the map into position on the vertices of the object so that the map "sticks" to the object as it deforms during animation. When an object is deforming through its own local space (for example, when it is bending or twisting), the object appears to move through the map, because it passes through the XYZ coordinates of the 3D texture. Map Channel—Unavailable unless the source is Explicit Map Channel. When available, you can choose any channel from 1 to 99. Offset—Moves the map pattern along the specified axis. Tiling—Tiles (page 3–1022) the map pattern along the specified axis and makes the pattern narrower. Angle—Rotates the map pattern along the specified axis. Blur—Affects the sharpness or blurriness of the map based on its distance from the view. The farther away the map is, the greater the blurring. The Blur value blurs maps in world space. Blur is primarily used to avoid aliasing (page 3–907). Source—Chooses the coordinate system to use. There are four options: • Object XYZ—Uses the object’s local coordinate system. • World XYZ—Uses the scene’s world coordinate system. • Explicit Map Channel—Activates the Map Channel field. You can choose any channel from 1 to 99. • Vertex Color Channel—Assigns vertex colors as a channel. See Editable Mesh (page 1–996) for details on assigning vertex color. Blur Offset—Affects the sharpness or blurriness of the map without regard to its distance from the view. Blur Offset blurs the image itself in object space. Use when you want to soften or defocus the details in a map to achieve the effect of a blurred image. 1663 1664 Chapter 16: Material Editor, Materials, and Maps Cellular Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Cellular Variation: 55 Division Colors (use RGB values after clicking the color swatch): • First: 127, 150, 197 • Second: 0, 119, 163 Cell Characteristics: • Circular • Size: 2.4 • Spread: 0.43 • Fractal: off Thresholds: • Low: 0.19 • Mid: 0.65 Cellular maps create the goblet textures. The Cellular procedural map generates a pattern that’s useful for a variety of visual effects, including mosaic tiling, pebbled surfaces, and even ocean surfaces. Tip: The Material Editor sample slot doesn’t show the cellular effect very clearly. For a better visual aid to getting the effect you want, assign the map to geometry and render the scene. See also For functionality shared with other 3D maps, see the following topics: Coordinates Rollout (3D) (page 2–1663) Output Rollout (page 2–1621) • High: 0.86 Example: To create alien skin: 1. Assign the Cellular map as a Diffuse map. 2. Set the parameters as follows: Cell Color (use RGB values after clicking the color swatch): 52, 107, 58 Variation: 0.0 Division Colors (use RGB values after clicking the color swatch): • First: 112, 119, 64 • Second: 143, 137, 112 Cell Characteristics: • Circular • Size: 7.9 Procedures • Spread: 0.61 Example: To create confetti: • Fractal: on 1. Assign the Cellular map as a Diffuse map. • Iterations: 2.0 2. Set the parameters as follows: Thresholds: Cell Color (use RGB values after clicking color swatch): 202, 75, 171 • Low: 0.17 • Mid: 0.64 Cellular Map • High: 1.0 3. Copy the Diffuse map to the Bump map. If you increase the Bump amount, increase the Cellular bump map’s Bump Smoothing value as well. Example: To create a tile mosaic: 1. Assign the Cellular map as a Diffuse map. 2. Set the parameters as follows: Noise Type: Fractal Levels: 6.0 Size: 9.3 8. In the Mix Parameters rollout of the Mix map, set the Mix Amount to 0.5. 9. Go to top level of the material. In the Maps rollout, set Bump Amount to 82. Interface Cell Color (use RGB values after clicking the color swatch): 141, 120, 87 Variation: 54 Division Colors (use RGB values after clicking the color swatch): • First: 128, 128, 128 • Second: 221, 221, 221 Cell Characteristics: • Chips • Size: 7.0 • Spread: 0.35 • Fractal: off Thresholds: • Low: 0.42 • Mid: 0.76 • High: 1.0 3. Assign a Mix map as the Bump map. 4. Click Material/Map Navigator to display the Navigator. Copy the Cellular Diffuse map by dragging it from the Navigator to the Color #2 map window of the Mix map. 5. A dialog is displayed. You are asked if this should be an instance or a copy. Select Copy and click OK. 6. Assign a Noise map to the Color #1 map window of the Mix map. 7. Set the Noise parameters as follows: Cell Color group These controls specify the color of the cells. Color swatch—Displays the Color Selector (page 1–161). Choose a color for the cells. Map button—Assigns a map to the cells, rather than a solid color. Check box—When on, enables the map. When off, disables the map (cell color reverts to the color swatch). Variation—Varies the color of the cells by randomly altering RGB values. The higher the variation, the 1665 1666 Chapter 16: Material Editor, Materials, and Maps greater the random effect. This percentage value can range from 0 to 100. At 0, the color swatch or the map completely determines the cell color. Default=0. Division Colors group These controls specify the color of the divisions between cells. Cell divisions are a ramp between two colors or two maps. Color swatches—Display the Color Selector for choosing a cell division color. Iterations—Sets the number of times the fractal function is applied. Caution: Increasing this value increases rendering time. Default=3.0. Adaptive—When on, the number of fractal iterations is set adaptively. That is, the number of iterations increases the closer the geometry is to the scene’s point of view, and decreases in the distance. This reduces aliasing and also saves time while rendering. Default=on. Roughness—When you use the Cellular map as a These controls change the shape and size of the cells. bump map (page 2–1506), this parameter controls how rough the bumps are. When Roughness is zero, each iteration is half the strength of the previous iteration, and half the size. As Roughness increases, each iteration is closer in strength and size to the previous iteration. When Roughness is at its maximum value of 1.0, each iteration is the same size and strength as the previous. In effect, this turns off the fractalization. Roughness has no effect unless Iterations is greater than 1.0. Default=0.0. Circular / Chips—With Circular, the cells are Thresholds group Map buttons—Assigns a map to one of the cell division colors. Check boxes—When on, enables the associated map. When off, disables the associated map (the division color reverts to the color swatch). Cell Characteristics group circular. This gives a more organic, or bubbly look. With Chips, the cells have linear edges. This gives a more chipped or mosaic appearance. Default=Circular. These controls affect the relative size of cells and divisions. They are expressed as normalized percentages (0 to 1) of the sizes specified by the default algorithm. Size—Alters the overall scale of the map. Adjust this value to fit the map to your geometry. Default=5.0. Low—Adjusts the size of the cells. Default=0.0. Spread—Alters the size of individual cells. relative to the second. Default=0.5. Default=0.5. High—Adjusts the overall size of divisions. Bump Smoothing—When you use a cellular map as Default=1.0. a bump map (page 2–1506), you might encounter aliasing or jagginess at the boundaries of the cells. If this occurs, increase this value. Default=0.1. Fractal—Defines the cellular pattern as a fractal, thus enabling the three following additional parameters. Default=off. Mid—Adjusts the size of the first division color, Dent Map Dent Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Dent Dent bump maps At left, default parameters produce fairly uniform dents over surface. At right, increased Strength parameter creates a deeper and more irregular pitting effect. Dent diffuse maps At left, Dent as a two-color diffuse map. Dent map gives texture to the cup on the left; cup on the right has same pattern, but without dents. Dent is a 3D procedural map. During scanline rendering, Dent creates a random pattern based on fractal noise. The effect of the pattern depends on the map type. At right, colors replaced with Dent and Marble maps. See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) Procedures To make a Dent map: 1. In the Material Editor, click a sample slot to Effect of default parameters make it active. Defaults: Iterations=2, Size=200, Strength=20 2. Open the Maps rollout. Dent was designed to be used primarily as a bump map, and its default parameters are optimized for this usage. As a bump map, Dent renders three-dimensional dents over the surface of an object. Editable parameters control the size, depth, and complexity of the denting effect. 3. Click Bump or other map button to display the Dent can also be used with other maps. With a diffuse color map, for example, the two colors assigned to Dent mix in random swirls over the surface of the object. Either of the colors can be replaced by other maps. Material/Map Browser. 4. Double-click Dent in the list of map types. The Material Editor displays the Coordinates and Dent Parameters rollouts. 5. Set parameters on the Dent Parameters rollout. The active sample slot updates to show the Dent effect. 1667 1668 Chapter 16: Material Editor, Materials, and Maps To replace a color: 1. Click a color swatch labeled Color #1 or Color #2. 2. In the standard Color Selector (page 1–161), choose a replacement color. The color updates in the color box and sample slot. Size=10, 500, and 1000 Iterations=1, Strength=20 (default) To swap a color: • Click Swap. The position of the two colors is reversed in the color boxes and sample slot. To replace a color with a map: 1. Click a Map bar marked None next to one of the color swatches. The Material/Map Browser is displayed. 2. Select a map from the list. The sample slot updates to show the map in place of the color. Interface Size=10, 500, and 1000 Iterations=3, Strength=20 (default) Each set of three spheres uses the same size range, but varies the number of iterations. Strength is held constant in both sets. Strength—Determines the relative coverage of the two colors. Higher values increase the coverage of Color #2, while lower values increase the coverage of Color #1. Default=20. When using Dent as a bump map, increasing the Strength value typically makes the dents look deeper. In the following illustrations, each set of three spheres uses the same Strength range, but varies the Size value between the two sets. The Iterations value is the same in both sets. Size—Sets the relative size of dents. As the size increases, the number of dents decreases when other settings are the same. Default=200. Decreasing Size creates the appearance of tiny dents spaced fairly evenly. The effect can resemble a "sand-covered" surface. Increasing Size creates the appearance of distinct grooves and gouges on a surface. The effect sometimes has a "hardened lava" look. Size=10, Iterations=3 Strength=5, 20 (default), and 100 Dent Map Size=500, Strength=60 Size=1000, Iterations=3 Strength=5, 20 (default), and 100 Iterations—Sets the number of calculations used to create the dents. Default=2. Dent is based on a fractal-noise equation. During rendering, a dented surface is calculated one or more times to produce the finished effect. Each calculation pass is an iteration. As a surface is calculated, each iteration adds to the number of dents and the complexity and randomness of the final surface (dents become dented). The Dent texture requires heavy calculation, especially at higher iterations. This can slow down rendering time considerably. Iterations=2 Two colors are mixed to produce a random pattern, governed by size, strength, and iteration settings. The default colors are black and white, but either can be replaced or swapped. Left sphere: Sets the color to black and white. Middle sphere: Replaces white with red. Right sphere: Swap black and red. By adjusting Strength, Size, and Iterations parameters, you vary the Dent patterns on a diffuse color map. • Size sets the density of the dent pattern. At low settings, the pattern is dense. As Size increases with other settings held constant, the pattern becomes increasingly sparse. • Strength sets the color strength in the dent pattern. At low settings, Color #1 (black) dominates the pattern. As Strength increases, Color #2 (white) replaces Color #1. Iterations=1, 3, and 6 Size=500, Strength=20 The three spheres have uniform settings for size and strength. Only the number of iterations varies. Swap—Reverses the position of colors or maps. • Iterations sets the color iterations in the dent pattern. At low settings, Color #1 is dominant. As iterations increase, Color #2 gradually increases in the pattern. Dent is applied as a diffuse map in the following examples. Colors are default black and white. Colors—Allows choice of two colors where appropriate for a color component (such as Diffuse). Defaults=black for Color #1 and white for Color #2. Dent can create patterns in an object’s color as well as its surface. By using Dent as a diffuse color map, the entire surface is affected. Size=100, 500, and 1000 Strength=20, Iterations=2 Color #1, #2=black, white (defaults) 1669 1670 Chapter 16: Material Editor, Materials, and Maps Falloff Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Falloff Strength=20, 50, and 100 Size=500, Iterations=2 Iterations=2, 4, and 8 Size=500, Strength=20 Maps—Replaces colors with maps in the dent pattern. The check boxes enable or disable their associated map. You can assign maps to one or both of the Dent color slots. Any kind of map can be used, including Dent. The map overrides the assigned color, which has no effect. In the three spheres below, the assigned colors are progressively replaced with maps. Parameters of the original Dent map are the same for all spheres. Size=500, Strength=60, Iterations=2 Left sphere: Applies Dent as a diffuse map. Color #1 is black; Color #2 is red. Middle sphere: Replaces black with Dent map (all defaults). Right sphere: Replaces red with Marble map (all defaults). Falloff map creates the appearance of translucency. The Falloff map generates a value from white to black, based on the angular falloff of the face normals on the surface of the geometry. The direction used to specify the angular falloff varies, depending on the methods you choose. However, with the default settings, the map generates white on faces whose normals point outward from the current view, and black on faces whose normals are parallel to the current view. Falloff map provides a greater variety of opacity falloff effects than those in the Falloff settings in a standard material’s Extended Parameters rollout (page 2–1471). You assign the Falloff map as an opacity map (page 2–1503). However, you can also use Falloff for special effects, such as an iridescent look. Note: When old files that use Falloff maps are brought into 3ds Max, the old Falloff interface is displayed, replacing the new Falloff interface. See also For functionality shared with other 3D maps, see Output Rollout (page 2–1621) Falloff Map Procedure To control opacity using a Falloff map: 1. Assign the Falloff map as an opacity map. 2. Render to see the effect. 3. Adjust the falloff parameters to vary the effect. Interface Falloff Parameters rollout • Click Swap Colors/Maps (the curved arrow) to exchange the assignments. Falloff Type—Chooses the kind of falloff. Five options are available: • Perpendicular/Parallel—Sets the angular falloff ranges between face normals that are perpendicular to the falloff direction and normals that are parallel to the falloff direction. The falloff range is based on a 90-degree change in face normal direction. (Default.) • Towards/Away—Sets the angular falloff ranges between face normals that face toward (parallel to) the falloff direction and normals that face away from the falloff direction. The falloff range is based on a 180-degree change in face normal direction. • Fresnel—Based on adjustments to the Index of Refraction (IOR). Results in dim reflections on surfaces facing the view, with much brighter reflections on angled faces, creating highlights like those on the sides of a glass. • Shadow/Light—Adjusts between two subtextures based on how much light is falling on the object. Front : Side—By default, "Front : Side" is the name of the group at the top of this rollout. Front : Side indicates Perpendicular/Parallel falloff. This name changes depending on the falloff type selected. In all cases, the name on the left refers to the top set of controls, and the name on the right to the bottom set. The controls are as follows: • Click the color swatches to assign colors. • Use the numeric fields and spinners to adjust the relative strength of the colors. • Click the buttons marked None to assign maps. • Turn on the check boxes to activate the maps; otherwise the colors are used. These are on by default. • Distance Blend—Adjusts between two subtextures based on Near Distance and Far Distance values. Uses include reducing aliasing on large terrain objects and controlling the shading in non-photorealistic environments. Falloff Direction—Chooses the direction of falloff. Five options are available: • Viewing Direction (Camera Z-Axis)—Sets the falloff direction relative to the camera (or screen). Changing object orientation doesn’t affect the falloff map. (Default.) • Camera X/Y Axis—Similar to Camera Z-Axis. For example, using Camera X-Axis with the Toward/Away falloff type runs the gradient from left (Toward) to right (Away). 1671 1672 Chapter 16: Material Editor, Materials, and Maps • Object—Uses an object whose position determines the falloff direction. Click the wide button next to Object in the Mode Specific Parameters group, and then pick an object in the scene. The falloff direction is the direction from the point being shaded toward the object’s center. Points on the side toward the object center get the Towards value, and those away from the object get the Away value. Extrapolate—When on, the effect continues beyond the Near and Far distances. Mix Curve rollout • Local X/Y/Z Axis—Sets the falloff direction to one of the object’s local axes. Changing the orientation of the object changes the falloff direction. • World X/Y/Z Axis—Sets the falloff direction to one of the world coordinate system axes. Changing object orientation doesn’t affect the falloff map. When no object is chosen, the falloff direction uses the local X, Y, or Z axis of the object being shaded. Mode Specific Parameters group The first parameter applies and is available only when you set Falloff Direction to Object: Object—Picks object from scene and puts its name on the button. The following are parameters for the Fresnel falloff type: Override Material IOR—Allows change to the Index of Refraction set by the material. Index of Refraction—Sets a new Index of Refraction. This option is unavailable unless Override Material IOR is turned on. The following are parameters for the Distance Blend falloff type: Using the graph on the Mix Curve rollout, you can precisely control the gradient produced by any falloff type. You see the resulting gradient in the bar below the graph. Move flyout Moves a selected point in any direction, limited by the unselected points on either side. Constrains movement to the horizontal. Constrains movement to the vertical. Scale Point—Scales the selected point within the range of its gradient. On a Bezier corner point, this control is effectively the same as a vertical move. On a Bezier smooth point, you can scale the point itself or either handle. As with the move controls, scale is limited by the unselected points on either side. Add Point flyout Near Distance—Sets the distance at which the blend effect begins. Far Distance—Sets the distance at which the blend effect ends. Adds a Bezier corner point anywhere on the graph line. The point makes a sharp angle when moved. Marble Map Adds a Bezier smooth point anywhere on the graph line. Handles attached to the point create smooth curves when moved. On a Bezier smooth point, you can move the point or either handle. Procedures To create a Marble map: 1. Click a map button to assign a map. 2. Choose Marble in the Material/Map Browser, and then click OK. Delete Point—Removes selected points. To adjust the size of Marble veins: Reset Curves—Returns graph to its default, a straight line between 0 and 1. Marble Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Marble • In the Marble Parameters rollout, change the Size value to change the overall scale of the vein pattern, and change Vein Width to change the width of veins relative to the overall scale. The larger the Size value, the wider the veins. The larger the Vein Width value, the more veins appear relative to the overall pattern. To change vein color: 1. In the Marble Parameters rollout, click a color swatch to display the Color Selector (page 1–161). 2. Adjust the color. 3. Click Close to dismiss the dialog. To use a map for a vein: • In the Marble Parameters rollout, click a map button to assign a map to a color. Marble map used for the balusters To swap the two vein colors: The Marble map produces a marbled surface with colored veins against a colored background. A third color is automatically generated. • In the Marble Parameters rollout, click Swap. Note: Another way to create marble is to use the Perlin Marble Map (page 2–1677). • In the Coordinates rollout, adjust Offset, Tiling, or Angle. See also Interface For functionality shared with other 3D maps, see Coordinates Rollout (3D) (page 2–1663). To adjust mapping coordinates: 1673 1674 Chapter 16: Material Editor, Materials, and Maps Size—Sets the spacing between the veins. Coordinates Rollout (3D) (page 2–1663) Vein Width—Sets the width of the veins. Output Rollout (page 2–1621) Swap—Switches the position of the two colors or maps. Color # 1 and Color # 2—Displays the Color Selector (page 1–161). Select one color for the veins (color 1) and another for the background (color 2). A third color is generated from the two colors you select. Procedures To change a component color: 1. In the Noise Parameters rollout, click a color swatch to display the Color Selector (page 1–161). 2. Adjust the color. Maps—Selects the bitmaps or procedural maps 3. Click OK to dismiss the dialog. (page 3–997) to appear in the veins or in the background color. To use a map for a component: Turn on the check boxes to make the maps active. • In the Noise Parameters rollout, click a map button to assign a map to a color. Noise Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Noise To swap the two component colors: • In the Noise Parameters rollout, click Swap. To adjust mapping coordinates: • In the Coordinates rollout, adjust Offset, Tiling, or Angle. Interface Note: For the Noise map, the tiling and mirroring controls are disabled in the Texture Tiling And Output rollout. Noise map used for the edges of the street The Noise map creates random perturbation of a surface based on the interaction of two colors or materials. See also For functionality shared with other 3D maps, see the following topics: Noise Type— • Regular—(The default.) Generates plain noise. Basically the same as fractal noise with the Levels setting at 1. When the noise type is set to Particle Age Map Regular, the Levels spinner is inactive (because Regular is not a fractal function). Maps—Select the bitmaps or procedural maps to appear in one or the other noise color. • Fractal—Generates noise using a fractal algorithm. The Levels option sets the number of iterations for the fractal noise. Turn on the check boxes to make the maps active. • Turbulence—Generates fractal noise with an absolute value function applied to it to make fault lines. Particle Age Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Particle Age Regular, Fractal, Turbulence Size—Sets the scale of the noise function, in 3ds Max units. Default=25.0. Noise Threshold—When the noise value is above the Low threshold and below the High threshold, the dynamic range is stretched to fill 0 to 1. This creates a smaller discontinuity (technically, 1st order instead of 0 order) at the threshold transition and produces less potential aliasing (page 3–907). • High—Sets the high threshold. Default=1.0. • Low—Sets the low threshold. Default=0.0. Levels—Determines how much fractal energy is used for the Fractal and Turbulence noise functions. You can set the exact amount of turbulence you want, and also animate the number of fractal levels. Default=3.0. Phase—Controls the speed of the animation of the noise function. Use this option to animate the noise function. Default=0.0. Swap—Switches the position of the two colors or maps. Color # 1 and Color # 2—Display the Color Selector (page 1–161) so you can choose one or the other of the two principal noise colors. Intermediate color values are generated from the two colors you select. Particle age changes the appearance of particles over time. The Particle Age map is for use with particle systems (page 3–990). Typically you assign the Particle Age map as a Diffuse map (page 2–1498), or in Particle Flow with the Material Dynamic operator (page 2–191). It alters the color (or map) of a particle based on the particle’s life. The particles in a system begin as one color. At a specified age, they begin changing (by interpolation) to a second color, and then they change again to a third color before they die out. Tip: This map works well with the Particle MBlur map (page 2–1676). For example, you could assign Particle Age as a diffuse map (page 2–1498) and Particle MBlur as an Opacity map (page 2–1503). Another way to use Particle Age is in the mask channel of a Blend (page 2–1588) material. In this case, you could set up two of the colors to white, and one to black, which would make the particles change materials over their age. In addition, you could set up one of the two materials with an effects 1675 1676 Chapter 16: Material Editor, Materials, and Maps channel (page 3–946) and use a Glow (page 3–355) filter on it through Video Post. See also Particle MBlur Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Particle MBlur For functionality shared with other 3D maps, see Output Rollout (page 2–1621). Interface Particle MBlur makes particles blur as they move. Color #1—Sets the color of a particle at its birth. Click the button to the right of the color swatch to assign a map instead of a solid color. The check box turns the map on or off. Age #1—Sets the age where a particle starts changing from Color #1 to Color #2, expressed as a percentage of the particle’s entire life. Color #2—Sets the color of a particle in mid-life. You can also assign a map to this color. Age #2—Sets the age where a particle’s color equals Color #2, expressed as a percentage of the particle’s entire life. Color #3—Sets the color of a particle at its death. You can also assign a map to this color. Age #3—Sets the age where a particle changes to Color #3, expressed as a percentage of the particle’s entire life. The Particle MBlur (Motion Blur) map is for use with particle systems (page 3–990). The map alters the opacity of the leading and trailing ends of particles based on their rate of motion. The map is usually applied as an opacity map, but you can use it as a diffuse map for special effects. The following conditions must be in effect to achieve particle motion blur: • The Particle MBlur map must be in the same material that is assigned to the particles. For best results, it should be assigned as an opacity map • The particle system must support the Particle MBlur map. Particle systems that support Particle MBlur include PArray, PCloud, Super Spray, and Spray. • In the particle system’s Particle Rotation rollout, in the Spin Axis Controls group, the Direction of Travel/MBlur option must be on. • In this same group, the Stretch spinner must be greater than 0 to stretch the particles as a percent of their length based on the particle Speed setting. Perlin Marble Map • The correct type of particle must be used. MBlur works on all particle types except Constant, Facing, Metaparticles, and PArray Object Fragments. Also, in the Standard Particles category, MBlur does not support the Triangle and SixPoint particle types. Perlin Marble Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Perlin Marble • The material assigned to the particle system must not be a Multi/Sub-Object material. Interface Color #1—A particle approaches this color as it reaches its slowest speed. By default, this color is white to provide the opaque end of the range for an opacity map. Color #2—A particle approaches this color as it speeds up. As a default, this color is black to provide transparency in an opacity map. Typically, you don’t need to change either of these two colors. Sharpness—Controls the transparency, relative to the speed. If Sharpness is set to 0, the entire particle is blurry and transparent, no matter how slow it is traveling. The default works well in many cases. Default=2.0. Perlin marble used for the texture of the goblet The Perlin Marble map generates a marble pattern using the Perline Turbulence algorithm. This map is an alternative to Marble (page 2–1673), which is also a 3D material. See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) Interface 1677 1678 Chapter 16: Material Editor, Materials, and Maps Size—Sets the size of the marble pattern. Change this to change the scale of marble, relative to the object’s geometry. Default=50. Levels—Sets the number of times the turbulence algorithm is applied. Can range from 1.0 to 10.0. The higher the value, the more complicated the marble pattern. Default=8.0. Color 1 and Color 2 groups The controls in these groups are identical. They determine the two main colors of the marble. Color swatch—Click to display the Color Selector (page 1–161). and change the color. Map—Click to assign a map instead of a solid color. The check box turns the map on or off. Saturation—Controls the saturation of the color in the map, without altering the color displayed in the color swatch. Lower values darken the color, and higher values lighten it. Range=1 to 100; Default=85 for Color 1, 70 for Color 2. Swap—Click to swap Color 1 and Color 2. Planet Map Planet is a 3D map that uses fractal math to simulate the colors on the surfaces of a planet. You can control the size of continents, percent of ocean coverage, and so on. This map is meant to be used as a diffuse map. It does not work well as a bump map. Tip: The Material Editor’s sample slot doesn’t show the planet effect very clearly. To help get the effect you want, double-click the sample slot to get a larger sample slot, or assign the map to geometry and render the scene. Another way to preview the planet map is to use the Material Editor Options dialog (page 2–1436) to set the 3D Map Sample Scale to equal a main dimension of the object you are applying the map to. For example, if you want to use the planet map on a sphere with a radius of 20, change the map scale from 100 (the default) to 20. See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) Interface Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Planet Continent Size—Sets the size of the fractal noise Planet map used to create another world pattern used to generate the continents. The higher the value, the larger the continents. Default=40. Smoke Map Island Factor—Sets the size of the fractal noise pattern used to generate islands and mountains. Can range from 0 to 100. At 0, the geography is very low. Higher settings create a more rugged landscape. Default=0.5. Smoke Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Smoke Ocean %—Sets the percentage of the planet’s surface that is covered by water. Default=60.0. Random Seed—Sets the seed for pseudo-random generation of the pattern. Changing this number can change the pattern completely, even if other settings remain the same. On the other hand, a different Planet map with the same settings including the same Random Seed will appear the same. Water Colors group The colors in these three swatches are applied to the water areas of the planet surface. Water colors—Click a swatch to display the Color Selector (page 1–161) and change the color. Color #1 is the "center" area of the water mass, Color #2 surrounds Color #1, and Color #3 surrounds Color #2, meeting the land. Land Colors group The colors in these five swatches are applied to the land areas of the planet surface. Their arrangement continues that of the water colors. Land colors—Click a swatch to display the Color Smoke map used to create clouds in the sky Smoke is a 3D map that generates amorphous, fractal-based turbulent patterns. It’s primarily designed for animated opacity mapping (page 2–1503) to simulate the effects of smoke in a beam of light, or other cloudy, flowing mapping effects. See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) Interface Selector (page 1–161) and change the color. Color #4 is the shoreline of the land, meeting the water; Color #5 comes next, working toward the center of the land mass. Color # 8 is at the center of the land mass. Blend Water/Land—When on, the boundary between water and land is blended, giving a hazy appearance. When off, the boundary between water and land is sharp. Size—Changes the scale of the smoke "clumps." Default=40. 1679 1680 Chapter 16: Material Editor, Materials, and Maps # Iterations—Sets the number of times the fractal function is applied. The higher the value, the more detail within the smoke, but the longer the calculation time. Default=5. Speckle Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Speckle Phase—Shifts the turbulence within the smoke pattern. Animate this parameter to animate the movement of the smoke. Default=0.0. Exponent—Makes color #2, representing the smoke, sharper and more wispy. As this value increases, the smoke "tendrils" become smaller within the pattern. Default=1.5. Swap—Exchanges the colors. Color #1—Represents the smokeless portion of the effect. Color #2—Represents the smoke. Because this map is usually used as an opacity map, you can adjust the luminance of the color values to alter the contrast of the smoke effect. • Click a color swatch to change the color. Usually you only need to do this to adjust luminance. • Click a map button to assign a map instead of a solid color. Turn on the check box to activate the map. Speckle map used for rocks Speckle is a 3D map that generates a speckled surface pattern that’s useful for diffuse mapping (page 2–1498) and bump mapping (page 2–1506) to create granite-like and other patterned surfaces. See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) Interface Size—Adjusts the size of the speckles. Use this to make the speckles match your geometry. Default=60. Swap—Exchanges the two color components. Color #1—Represents the color of the speckles. Splat Map Color #2—Represents the color of the background. Interface Click one of the swatches to display the Color Selector (page 1–161) and change one of these component colors. Maps—Click a button to assign a map that replaces one of the color components. Turning off the check box turns off the associated map (the Speckle map reverts to the associated color component). Splat Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Splat Size—Adjusts the size of the splats. Use this to make the splats match your geometry. Default=40. # Iterations—Sets the number of times the fractal function is evaluated. The higher the number, the more detailed the splats, but the longer the calculation time. Default=4. Threshold—Determines how much of Color #1 is mixed with Color #2. At 0, only Color #1 is displayed; at 1, only Color #2 is displayed. Default=0.2. Swap—Exchanges the two color components. Color #1—Represents the color of the background. Color #2—Represents the color of the splats. Splat map used for the patterns in ice cream Click one of the swatches to display the Color Selector (page 1–161) and change one of these colors. Splat is a 3D map that generates a fractal surface pattern that is useful as a Diffuse map (page 2–1498) for creating a pattern similar to splattered paint. Maps—Assigns a map to replace one of the color components. Turning off the check box turns off the associated map (the Splat map reverts to the associated color component). See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) 1681 1682 Chapter 16: Material Editor, Materials, and Maps Stucco Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Stucco Thickness, the more the borders are blurred and the less distinct the indentations are. When you use Stucco as a bump map, the indentations are very faint at 0.5 and disappear at values not much greater. Default=0.15. Threshold—Determines how much of Color #1 is mixed with Color #2. At 0, only Color #2 is displayed; at 1, only Color #1 is displayed. Default=0.57. Swap—Exchanges the two color components. Color #1—Represents the color of the indentations. Color #2—Represents the background stucco color. Stucco map used for a plaster wall Stucco is a 3D map that generates a surface pattern that is useful for bump mapping (page 2–1506) for creating the effect of a stuccoed surface. See also For functionality shared with other 3D maps, see the following topic: Coordinates Rollout (3D) (page 2–1663) Interface Size—Adjusts the size of the indentations. Use this to make the scale of the stucco match your geometry. Default=20. Thickness—Blurs the border between the two colors. At 0, the borders are sharp. The higher the Click one of the swatches to display the Color Selector (page 1–161) and change one of these component colors. Tip: Because the Stucco map is meant to be used as a bump map, usually you don’t need to adjust the default colors. Maps—Assigns a map to replace one of the color components. Turning off the check box turns off the associated map (the Stucco map reverts to the associated color component). Waves Map Waves Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Waves randomly computed points along the surface of an imaginary sphere inside the object (a circle, in the case of 2D wave distribution). For calm water, set this to a low number. Use a high number for choppy water. Range= 1 to 50; Default=10. Wave Radius—Specifies the radius, in 3ds Max units, of the imaginary sphere (3D distribution) or circle (2D distribution) whose surface is the origin of each wave set. A large radius produces large circular wave patterns, while a small radius produces dense, smaller waves. Default=800. Waves map used for the pool in the fountain Waves is a 3D map that creates watery or wavy effects. It generates a number of spherical wave centers and randomly distributes them over a sphere. You can control the number of wave sets, the amplitude, and the speed of the waves. This map works effectively as both a diffuse and bump map at the same time. It can also be useful in combination with an opacity map. Interface Wave Len Max and Wave Len Min—Define the interval used to randomly chose each wave center. If these two values are close together, the water appears more regular. If they’re farther apart, the water is less regular. Default Max=50.0; Default Min=5.0. Amplitude—Adjusts the strength and the depth of the waves by increasing the contrast between the two colors. Default=1.0. Phase—Shifts the wave pattern. Animate this parameter to animate the motion of the pattern. Distribution 3D/2D—3D distributes the wave centers on the surface of an imaginary sphere, affecting all sides of a 3D object. 2D distributes the wave in circles centered on the XY plane, which is more appropriate for flat water surfaces such as oceans and lakes. Random Number Seed—Provides a seed number to generate the water pattern. The pattern changes with each seed, but all other settings are maintained. Swap—Exchanges the colors. Color #1 and #2—Click the color swatches to change the colors used in the pattern. Use one color for the wave troughs and the other for the wave peaks. Num Wave Sets—Specifies how many wave sets are used in the pattern. Wave sets are groups of radially symmetrical waves that originate from You can also click the map buttons to replace one or both colors with a mapped pattern. The check box enables or disables the map. 1683 1684 Chapter 16: Material Editor, Materials, and Maps Wood Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Wood Wood used as a bump map Procedures To replace a color: 1. Click a color swatch labeled Color #1 or Color #2. 2. In the standard Color Selector (page 1–161), choose a replacement color. The color updates in the color box and sample slot. Wood map used for the seat of the bench To exchange colors: Wood is a 3D procedural map that renders a wavy grain-like pattern throughout the volume of an object. You can control the direction, thickness, and complexity of the grain. • Click Swap. Wood is primarily intended as a diffuse color map. Two colors assigned to Wood mix to form the grain pattern. Either of the colors can be replaced by other maps. To replace a color with a map: Wood can also be applied to other map types. When used as a bump map, Wood renders the grain pattern as a three-dimensional engraving of the surface. 2. Select a map from the list. The position of the two colors is reversed in the color boxes and sample slot. 1. Click a Map bar marked None next to one of the color swatches. This displays the Material/Map Browser. The sample slot updates to show the map in place of the color. Interface Coordinates rollout Wood mapped to a box and cylinder Wood Map Tiling—Controls grain complexity or "distortion." By increasing this parameter along a given axis, the grain becomes increasingly compressed and wavy along that axis. Default=1.0 (X, Y, and Z axes). Box A shows the default on all three axes. Boxes B and C show progressively higher Tile settings for the X axis. Increasing Tile on other axes produces similar effects. Rotated Grain: By rotating the direction of the grain around an axis, you change the rendered effect. In the right cube, the Y axis is set to 90. This rotates the grain direction 90 degrees around the Y axis so that the grain is now running along the Z axis. Other Angle Effects: Varying a single angle can create distorted grain effects (cylinder at left). Varying the three angles by a uniform amount keeps the grain running parallel through an object (cylinder at right). Angle=0,0,0 (defaults) and 0,90,0 Radial, Axial Noise=1 (defaults) A: Tile, X axis=1.0 (default) Grain Thickness=3 B: Tile, X axis=4.0 C: Tile, X axis=8.0 Grain Thickness=3 Angle=0,30,0 and 30,30,30 Radial, Axial Noise=1 (defaults) Grain Thickness=3 Tile, X axis=4.0 for both (See Coordinates Rollout (3D) (page 2–1663) for a description of the other parameters in this rollout.) Axial Noise=1 (left), 4 (right) Grain Thickness=3 By combining Tile with Axial Noise, even greater distortion is possible. The bottom left box is the same as B, with Tile at 4.0 on the X axis. The bottom right box adds Axial Noise at 4.0. Angle—Controls grain direction. Default Grain: Wood is rendered with the grain running along the X axis of the object. This is illustrated by the left cube below. The default angle is 0 for X, Y, and Z axes. Wood Parameters rollout 1685 1686 Chapter 16: Material Editor, Materials, and Maps Axial Noise—Sets the relative randomness of the pattern on a plane parallel with the grain, along the length of the grain (cylinder A). Default=1.0. Defaults: Grain Thickness=7, Radial Noise=1.0, Axial Noise=1.0 Grain Thickness—Sets the relative thickness of the color bands that make up the grain. Default=7. The effect of thickness is relative to the context of the object. A grain that appears unrealistically wide on a small table might be acceptable on a large overhead beam. Decreasing Grain Thickness creates grain lines that are closer together. The effect can resemble the fine grain of slow-growth hardwoods. At 0, grain disappears, resulting in what can look like composition board made from sawdust. Noise settings let you set the randomness or "irregularity" of the grain pattern in two directions. Without any noise, rings and grain are uniform and look inorganic (upper-left cylinder). The defaults for both parameters produce moderate irregularities (upper-right cylinder). Radial, Axial Noise=0,0 and 1,1 Angle Y=90, Grain Thickness=3 Increasing Grain Thickness creates grain lines that are farther apart. The effect can resemble tropical woods that grow continuously. Grain thickness is shown increasing with identical noise settings. A: Radial, Axial Noise=0,2 Grain Thickness=1, 3 B: Radial, Axial Noise=2,0 Radial, Axial Noise=1 (defaults) C: Radial, Axial Noise=2,2 Angle Y=90, Grain Thickness=3 Cylinders A and B show each parameter acting alone. Cylinder C shows the combination of the same settings. Grain Thickness=7 (default), 14 Swap—Exchanges the position of the colors. Radial, Axial Noise=1 (defaults) Colors—Selects any two colors for the grain Radial Noise—Sets the relative randomness of the pattern. Defaults=brownish yellow for Color #1 and dark brown for Color #2. Either color can be replaced or swapped. pattern on a plane perpendicular to the grain, the circular ring structure (cylinder B). Default=1.0. Compositor Maps The choice of colors, along with grain pattern, is the primary way to represent different types of wood. In fairly uniform woods like yellow pine or redwood, the two colors are often near the same settings (examples B and C). Lighting also makes a difference in the apparent colors. Left: Default Right: Color #1 replaced with Checker map Grain Thickness=3 Other settings at defaults Compositor A: Default colors B: Color #1=RGB 160,125,50 Color #2=RGB 170,135,25 C: Color #1=RGB 140,90,0 Color #2=RGB 130,80,50 Grain Thickness=3 Compositors are meant specifically for compositing other colors or maps. In image processing, compositing images refers to superimposing two or more images to combine them. The following compositor maps are supplied with the software: Other settings at defaults Maps—Replace colors with maps. The check boxes enable or disable their associated maps. You can assign maps to one or both of the Wood color slots. Any kind of map can be used, including Wood. The map overrides the assigned color, which has no effect. The left box uses defaults. The right box is the same, except that Color #1 has been replaced with a Checker map, whose colors have been changed to wood tones. Composite (page 2–1688): Composites multiple maps. Unlike Mix, Composite doesn’t have explicit controls for the amount of mixing. Instead, it bases the mix amount on the maps’ alpha channel. Mask (page 2–1689): A mask is a map itself, used in this case to control where a second map is applied to the surface. Mix (page 2–1689): Mix mixes two colors or two maps. You can adjust the amount of mixing using a blend level you specify. The blend level can be mapped. RGB Multiply (page 2–1691): Combines two maps by multiplying their RGB and alpha values. 1687 1688 Chapter 16: Material Editor, Materials, and Maps Composite Map 2. Choose a map type. To change the number of maps to composite: Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Composite 1. In the Composite Parameters rollout, click Set Number. 2. In the subdialog, choose the number of maps you want, and then click OK. Warning: If you reduce the number of maps, previously assigned maps can be lost. Interface Composite map combines stars, moon, and a glow into the sky. The Composite map type is made up of other maps (page 3–968), which are overlaid on top of one another using the alpha channel (page 3–907). For this type of map, use overlay images that already contain an alpha channel. The controls for a Composite map are essentially a list of the maps it combines. Viewports can display the multiple maps in a composite map. For multiple map display, the display driver must be OpenGL (page 3–841) or Direct3D (page 3–844). The software display driver (page 3–840) does not support multiple map display. Procedures To assign a map: 1. In the Composite Parameters rollout, click a map button. The Browser is displayed. Set Number—Sets the number of maps to be composited. Map 1, Map 2, and so on—Choose the button to add a map. Use the check boxes to enable or disable the associated map. If there are more maps than the Material Editor can display in the Composite Parameters rollout, use the scroll bar on the right to move among them. Mask Map Mask Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Mask Mix Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Mix Mask map applies labels to the fire extinguisher. Mix map blends skull and crossbones with the reflected scene. With the Mask map, you can view one material through another on the surface. The mask controls where a second map is applied to the surface. With the Mix map, you can combine two colors or materials on a single side of the surface. You can also animate the Mix Amount parameter, and draw map morphing (page 3–974) function curves to control how the two maps are blended over time. By default, lighter (whiter) areas of the mask are opaque, showing the map. Darker (blacker) areas of the mask are transparent, showing the underlying material. You can use Invert Mask to reverse the mask’s effect. Interface Viewports can display both maps in a mix map. For multiple map display, the display driver must be OpenGL (page 3–841) or Direct3D (page 3–844). The software display driver (page 3–840) does not support multiple map display. See also For functionality shared with 3D maps, see the following topic: Output Rollout (page 2–1621) These are the controls for the Mask map: Procedures Map—Selects or creates the map to be viewed To change a component color: through the mask. 1. In the Mix Parameters rollout, click one of the Mask—Selects or creates the map to use as a mask. Invert Mask—Inverts the effect of the mask. two color swatches to display the Color Selector (page 1–161). 2. Adjust the color. 1689 1690 Chapter 16: Material Editor, Materials, and Maps To use a map as a component: 1. In the Mix Parameters rollout, click a map button next to one of the two color swatches. The Material/Map Browser is displayed. 2. Change the shape of the curve by adjusting the Transition Zone values. Interface 2. Select a map type. To exchange the two component colors: • In the Mix Parameters rollout, click Swap. To control the mix amount: • In the Mix Parameters rollout, adjust the Mix Amount value. Mix Amount is the percentage of Color #2 used in the mix. You can also control the mix amount by using a map. To control the mix amount using a map: 1. In the Mix Parameters rollout, click the map button next to Mix Amount. The Browser appears so you can 2. Select a map type. The intensity of pixels in this mixing map controls the mix. When the intensity is close to 0, one of the component colors or maps is visible; when it is close to full intensity, the other component is visible. Tip: Using a Noise map for the mixing map can give good effects that have a natural appearance. In the Mix Parameters rollout, Mix Amount is inactive while a map is assigned to this parameter. If Use Curve is off, the mixing map is used as is. If Use Curve is on, you can shift the effect of the mixing map’s gradient ramp, offsetting it one way or the other and revealing more or less of the mix components. To control the mix amount using the mix curve: 1. In the Mixing Curve group, turn on Use Curve. Swap—Exchanges the two colors or maps. Color # 1, Color # 2—Displays the Color Selector (page 1–161) to select the two colors to be mixed. Maps—Select or create the bitmaps or procedural maps to be mixed instead of each color. The check boxes enable or disable their associated maps. Black areas of the map reveal color #1, and white areas of the map reveal color #2. Gray values reveal intermediate mixes. Mix Amount—Determines the proportion of the mix. 0 means only Color 1 is visible on the surface, 1 means only Color 2 is visible. You can also use a map instead of the mix amount. The two colors will mix in greater or lesser degree according to the intensity of the map. RGB Multiply Map Mixing Curve group The RGB Multiply map is typically used for bump maps (page 2–1506), where you might want to combine two maps to achieve the correct result. This map combines two maps by multiplying their RGB values. For each pixel, the red of one map is multiplied times the red of the second map, the blue times the blue, and the green times the green. These parameters control how gradual or how sharp the transition between the two colors being mixed will be. (This really only has meaning when you have a map applied to Mix Amount.) If the maps have alpha channels, RGB Multiply can output either map’s alpha channel, or a new alpha channel created by multiplying the alpha channel values of the two maps. Tip: Try mixing two standard materials using a You can also make one of the maps a solid color. This tints the other map. noise map as a mask for some interesting mottled effects. Use Curve—Determines whether the Mixing Curve Interface effects the mix. Transition Zone—Adjusts the level of the upper and lower limits. If the two values are the same, the two materials will meet at a definite edge. Wider ranges give more gradual mixing. RGB Multiply Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > RGB Multiply Color #1, Color #2—Click a map button to assign one of the maps. The check box disables or enables the map. To tint one of the maps, turn off the other map and click its color swatch to choose the tint color, using the Color Selector (page 1–161). Alpha From group The buttons in this group let you determine how to generate alpha for the map. If neither map has an alpha channel, these options have no effect. Map #1—Uses the first map’s alpha channel. RGB Multiply enhances the texture of the ashtray. Map #2—Uses the second map’s alpha channel. 1691 1692 Chapter 16: Material Editor, Materials, and Maps Multiply Alphas—Generates a new alpha channel by multiplying the alpha channels of the two maps. Map—Displays a modal version of the Material/Map Browser so you can choose the map type. The check box turns the map on or off. Color Modifier Color Modifier maps alter the color of pixels in a material. Each of the following maps uses a specific method to modify the color: Output (page 2–1692): Applies bitmap output functions to parametric maps, such as Checker, that don’t have these settings. These functions adjust the colors of the map. RGB Tint (page 2–1693): Tints the color of a map based on red, green, and blue values. Vertex Color (page 2–1693): Displays the effects of assigned vertex colors in the rendered scene. You assign vertex colors from the editable mesh. Output Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Output With Output map, you can apply output settings to procedural maps, such as Checker or Marble, that don’t have these settings. Interface Output Parameters rollout In this rollout, you choose the map to apply the output controls to. Output rollout The controls in this rollout are the same as for maps with a built-in output option. See Output Rollout (page 2–1621). RGB Tint Map RGB Tint Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > RGB Tint To replace one color with another: 1. Click the R, G, or B color swatch. 2. On the Color Selector, increase or decrease Hue to change the color. Interface RGB Tint map RGB Tint adjusts the value of the three color channels in an image. Three color swatches represent these channels. Changing a color swatch adjusts the value of its associated color channel. The channels are named Red, Green, and Blue for their default colors, but you can assign them any color. You are not limited to variations of red, green, and blue. R/G/B—The red, green, and blue (page 3–1001) color swatches display the Color Selector (page 1–161) to adjust the value of the specific channel. Map—Displays the Material/Map Browser to select the map to be tinted. The check box turns the effect of the map on or off. Procedures To tint a map: 1. In the RGB Tint Parameters rollout, click the Map button marked None. Vertex Color Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Vertex Color The Material/Map Browser is displayed. 2. Select the map you want to tint 3. Click the R, G, or B color swatch. The Color Selector (page 1–161) is displayed. 4. Choose a new color. The red, green, or blue value of each pixel in the underlying map changes accordingly. To change the saturation of one color in an image: 1. Click the R, G, or B color swatch. 2. On the Color Selector, increase or decrease Value to vary the color from light to dark. Mapping vertex colors Vertex Color map makes any vertex coloring applied to an object available for rendering. You 1693 1694 Chapter 16: Material Editor, Materials, and Maps can assign vertex colors using the VertexPaint Modifier (page 1–936), the Assign Vertex Colors utility (page 2–1734), or the vertex controls for an editable mesh (page 1–1003), editable patch (page 1–975), or editable poly (page 1–1029). While vertex color assignment is primarily used for special applications, such as game engines or radiosity renderers, you can also use it to create colorful, gradient surface effects. You can also use it in design visualization: Use the VertexPaint Modifier (page 1–936) to paint your landscape different colors to represent grass, shrubbery, parking areas, etc., and then use Vertex Color map to use the vertex coloring in your rendered images. Incidentally, when you use the Terrain object’s (page 1–347) Color By Elevation function, the software assigns a material that uses a Vertex Color map as the diffuse component. Tip: To view vertex colors in a viewport, right-click the object, choose Properties from the quad menu, and then turn on Vertex Channel Display in the Display Properties group. Procedure To use the vertex color map: 1. Assign vertex colors to an object. 2. Assign a material to the object, then assign a Vertex Color map to the material’s diffuse component. 3. Optionally, if manipulating the map channels with the Channel Info utility (page 2–1738), choose a map channel or sub-channel to render. 4. Render the scene. Interface These parameters let you define which map channel or sub-channel is to be rendered. One application is to support usage of the Vertex Color map in conjunction with the Channel Info utility (page 2–1738). The settings are interlinked; changing one parameter will change the other two, as appropriate. Map Channel—Lets you specify which map channel to use. Range=0 to 99. Default=0. Notes regarding this setting: • If you set Map Channel to a channel that doesn’t contain any vertex coloring data, attempting to render will generate a Missing Map Coordinates error message. To resolve this, apply vertex coloring to that channel. • By default, the vertex coloring in map channel 1 is a color gradient derived from the UVW texture coordinates by converting UVW values to RGB values. Thus, at UV=0,0 (the lower-left corner of the map), the coloring is black; at UV=1,0, the coloring is red, and at UV=1,1 (the upper-right corner), the coloring is yellow (red + green=yellow). You can change these colors with a tool such as VertexPaint modifier (page 1–936). • Map Channel cannot be set to a negative value, thus the map doesn’t support rendering of the vertex illumination (-1) or vertex alpha (-2) channel. Reflection and Refraction Maps Sub Channel—Lets you can specify that the map will use either the Red, Green, or Blue sub-channel of the specified map channel, or all sub-channels. Channel Name—After assigning the material with Flat Mirror Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Flat Mirror the Vertex Color map to an object with named map or vertex-color channels (see Channel Info Utility (page 2–1738)), you can click Update, and then, from this drop-down list, choose a named map channel from the object. Update—Refreshes the contents of the Channel Name drop-down list. Use Update after applying the material to an object, or after adding channels to the object. Note: There could be conflicts if one material with a Vertex Color map is assigned to objects with different named Map Channels, where one channel’s name may be displayed in preference to another’s. Reflection and Refraction These maps, grouped as "Other" in the Material/Map Browser (page 2–1412), are maps that create reflections and refractions. Each of the following maps has specific uses: Flat Mirror (page 2–1695): Generates reflections for flat surfaces. You assign it to faces rather than to the object as a whole. Raytrace (page 2–1698): Creates accurate, fully raytraced reflections and refractions. Reflect/Refract (page 2–1699): Generates reflections or refractions automatically, based on surrounding objects and the environment. Thin Wall Refraction (page 2–1703): Generates refractions automatically, simulating objects and the environment seen through a refractive material such as glass or water. Flat mirror map reflects the ice-cream shop’s interior. The Flat Mirror (page 3–942) map produces a material that reflects surrounding objects when it is applied to a collection of coplanar faces. You assign it as a material’s reflection map (page 2–1508). Reflect/Refract maps don’t work well for flat surfaces because each face reflects part of the environment based on where its surface normal points. Using this technique, a large flat face can reflect only a small part of the environment. Flat Mirror automatically generates a reflection that encompasses a larger part of the environment, to better simulate a mirror-like surface. Rules for Using Flat Mirror Flat Mirror cannot generate reflections correctly unless you observe these rules: • Assign Flat Mirror to selected faces only. There are two ways to do this. You can make the Flat Mirror material a sub-material of a Multi/Sub-Object (page 2–1594) material, or you can use the Apply To Faces With ID control. 1695 1696 Chapter 16: Material Editor, Materials, and Maps • If you assign Flat Mirror to multiple faces, the faces must lie in a plane. 4. Select a single face or multiple faces that lie in a • Non-coplanar faces in the same object cannot have the same Flat Mirror material. 5. Assign the faces the material ID you chose for In other words, if you want two different planes of an object to have flat reflections, you must use a Multi/Sub-Object material. Assign Flat Mirror to two different sub-materials, and assign different material IDs to the to different planar faces. • The material ID used by the Flat Mirror sub-material must be unique to the coplanar faces in the object. If you assign Flat Mirror using Apply to Faces with ID, faces without that ID display the nonreflective components (diffuse color, and so on) of the material with the Flat Mirror reflection map. Procedures To assign a flat mirror to one face of an object: 1. In the Material Editor, create a standard material. 2. Assign a Flat Mirror map as the material’s reflection map. 3. In the Flat Mirror Parameters rollout > Render group, turn on Apply To Faces With ID, and choose the material ID number the mirrored face will have. 4. Follow the next set of steps for assigning the material to the object. To assign the mirror to a flat surface: 1. Select an object. 2. In the Modify command panel, apply Edit Mesh to the object. 3. Make sure Sub-Object is selected, and choose Face as the sub-object level. single plane. the Flat Mirror map. 6. Assign the material to the object. To assign a flat mirror using a Multi/Sub-Object material: 1. In the Material Editor, create a Multi/Sub-Object material. 2. Click one of the unused material buttons in the Multi/Sub-Object material’s parameters. 3. In the new Standard sub-material, open the Maps rollout and click the map button for Reflection. 4. In the Material/Map Browser, choose Flat Mirror, and then click OK. Flat Mirror controls are similar to those for automatic reflection and refraction. 5. Apply Edit Mesh to the object, and then in the stack view area of the modifier stack display (page 3–760), choose Face as the sub-object level. 6. Select a single face or multiple faces that lie in a single plane. 7. Assign the faces the material ID corresponding to the Flat Mirror sub-material slot. Using a Multi/Sub-Object material, you can apply Flat Mirror to different faces of the object that are not coplanar. However, faces that are not coplanar must use different sub-material slots, otherwise the software doesn’t correctly generate the flat mirror reflections. Flat Mirror Map Interface Every Nth Frame—The renderer creates the automatic flat mirror based on the frame rate (page 3–944) set by the spinner. Use Environment Map—When off, environment maps are ignored by the mirror during rendering. It’s useful to turn this off when you have mirrors in the scene and you’re rotoscoping against a flat screen environment map. A screen environment map does not exist in 3D space the way the other environment-map types do, and will not render properly. Default=on. Apply to Faces with ID—Specifies the material ID number where you want the mirror assigned. Blur group Apply Blur—Turns on filtering to blur the maps. Antialiasing is also applied to the Distortion effect, if any, when Apply Blur is turned on. Blur—Affects the sharpness or blurriness of the generated map based on its distance from the object. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing (page 3–907). It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. Default=1.0. You can assign a flat-mirror material to an object without having to make it a component of a Multi/Sub-Object (page 2–1594) material. The restriction is that the other faces on the object must be able to use the nonmirrored properties of the same material (its diffuse color, and so on). If the other faces need completely different material characteristics, you need to use a Multi/Sub-Object material. For example, if you have an object, such as a box, with unique material IDs for each side, you can use Apply To Faces With ID to specify the side of the box that will show the mirror reflection. The remaining sides of the box will have the same material characteristics, but without the reflection. Distortion group To simulate irregular surfaces, you can distort the flat-mirror reflections. Distortion can be based on a bump map or on noise controls built into Flat Mirror material. Render group None—No distortion. First Frame Only—The renderer creates the Use Bump Map—Distorts the reflection using the automatic flat mirror only on the first frame. material’s bump map. 1697 1698 Chapter 16: Material Editor, Materials, and Maps A flat mirror surface that has a Bump map will appear bumpy, but its reflection won’t be distorted by the bumps unless you use this option. Use Built-In Noise—Distorts the reflection using the settings in the Noise group. Distortion Amount—Adjusts the amount of distortion to the reflected image. This is the only value that affects the amount of distortion. No matter how high the Bump map’s Amount spinner is set, or how extreme the Noise settings, if this Distortion Amount is set to 0, no distortion appears in the reflection itself. This control is inactive when None is chosen. Levels—Sets the number of fractal iterations or turbulence (as a continuous function). Raytrace Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Raytrace Noise group The controls in this group are inactive unless you choose Use Built-In Noise as the active distortion type. Regular—Generates plain noise. Basically the same as Fractal noise with the Levels setting at 1. When the noise type is set to Regular, the Levels spinner is inactive (because Regular is not a fractal function). Fractal—Generates noise using a fractal algorithm. The Levels setting determines the number of iterations for the fractal noise. Turbulence—Generates fractal noise with an absolute value function applied to it to make fault lines. Phase—Controls the speed of the animation of the noise function. A 3D noise function is used for the noise, so that the first two parameters are U and V and the third is phase. You can animate this parameter to animate the noise effect. Size—Sets the scale of the noise function. Smaller values give smaller chunks of noise. Raytrace map creates highly reflective and refractive surfaces. Raytrace map provides fully raytraced reflections and refractions. The reflections and refractions it generates are more accurate than those produced by the reflect/refract map (page 2–1699). Rendering raytraced objects is slower than using Reflect/Refract. On the other hand, Raytrace is optimized for rendering 3ds Max scenes, and you can further optimize it for your scene by excluding specific objects or effects from raytracing. You can also use the Raytrace material (page 2–1512), which uses the same raytracer to generate accurate, raytraced reflections and refractions. The differences between Raytrace map and Raytrace material are: • You use Raytrace map as you do other maps. This means you can add raytraced reflections or refractions to any kind of material. • You can assign Raytrace map to material components other than reflect or refract, Reflect/Refract Map although these are the main ways to use this map. • Raytrace map has more extensive attenuation controls than Raytrace material. Reflect/Refract Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Reflect/Refract • Raytrace map often renders more quickly than Raytrace material. Raytrace Map and Raytrace material have the same name because they use the same raytracer and share global parameters. Note: Raytracing does not always work correctly in orthogonal viewports (left, front, and so on). It works correctly in perspective viewports and camera viewports. Interface The interface for the Raytrace map is contained in four rollouts: Raytracer Parameters Rollout (page 2–1704) Raytrace: Attenuation Rollout (page 2–1706) Raytrace: Basic Material Extensions Rollout (page 2–1707) Raytrace: Refractive Material Extensions Rollout (page 2–1708) Reflect/Refract map used for the balloons The Reflect/Refract map produces a reflective or refractive surface. To create reflection, assign this map type as the material’s reflection map (page 2–1508). To create refraction, assign it as the refraction map (page 2–1509). Note: A reflective object can reflect another reflective object. In real life, this creates a virtually infinite number of interreflections. In 3ds Max, you can set the number of interreflections in a range from 1 to 10. You set this Rendering Iterations parameter in the Render Scene dialog (page 3–12). This map works by using six renderings in the form of a cube that surrounds the objects. Reflect/Refract views the cubic maps from the perspective of the pivot point (page 3–995) of the object, mapping them onto the object’s surface as a spherical reflection map. You can choose to generate the cubic maps automatically, or to load previously created maps. A reflective surface reflects the surrounding maps like a mirror. A refractive surface creates 1699 1700 Chapter 16: Material Editor, Materials, and Maps the illusion that the surrounding maps are seen through the surface. Note: Reflect/Refract is meant to be used with curved or irregularly shaped objects. For mirror-like flat surfaces that you want to reflect the environment accurately, use Flat Mirror (page 2–1695) material. For more accurate refractions, especially for an object in a refractive medium (such as a pencil in a glass of water), use Thin Wall Refraction material (page 2–1703). Automatic Cubic Maps When you choose automatic cubic maps, 3ds Max generates the maps based on the perspective of the mapped object’s pivot point. Automatic maps are based on the geometry of the scene. The advantage to using automatic maps is that the six views are automatically generated at rendering time and can be easily updated for each frame of an animation. The disadvantage is that regenerating the maps increases rendering time. In addition, the maps exist only for the rendering and can’t be edited or otherwise manipulated. In the Material Editor, automatic reflections or refractions reflect or refract the background of the sample slot. Assigning Cubic Maps When you choose to load cubic maps from files, you use the controls in the From File group. The advantage to using From File is that the bitmap files already exist and take less rendering time. In addition, you can edit the bitmap images. The disadvantage is that it’s more difficult to use bitmaps to render an animation because first you need to create the animated bitmaps. Important: Assigned cubic maps must be square, and each of the six maps must be the same size. You can automatically load six bitmaps at once if the six bitmaps have valid cubic-map file names. The first part of all six file names must be the same, and the last part is an underscore followed by a two-letter abbreviation of the map position, as shown in the following table: Last Part of Cubic Map File Meaning Name _UP Up _DN Down _LF Left _RT Right _FR Front _BK Back For example, if you have six bitmaps on disk, labeled view_up.bmp, view_fr.bmp, view_lf.bmp, and so on, when you click one of the file buttons and choose the bitmap for that position, all six views are loaded. If you select a bitmap whose name doesn’t follow the convention, or you select one with a valid cubic-map name but assign it to the wrong button, only that bitmap will be loaded. Since all assigned bitmaps must be the same size, when you assign a new bitmap to one of the windows, the sample slot doesn’t update automatically. This avoids generating an error message each time you assign a bitmap. Once you’ve assigned all six maps and are sure they are square and the same size, click the Reload button to update all of the maps and redisplay the sample slot. You can also use the Reload button to see your changes after you’ve edited one of the cubic maps by using a paint program. Rendering Cubic Maps The controls in the Render Cubic Map Files group let you generate the maps automatically and save them to disk. Use the To File button to specify the Reflect/Refract Map folder and file name of the Up (_UP) bitmaps. Click Pick Object and Render Maps, and then click the object to map. The software creates the files and also assigns them to the six From File map buttons. Rendering cubic maps has the same effect as automatic with the advantage that map rendering doesn’t have to take place at scene rendering time. The disadvantage is that you can’t create an automatically animated reflections or refractions this way. object where you will apply the material, but it doesn’t have to be. After selecting the object, a rendered frame window is displayed while the six views are rendered and saved to disk. Their file names then appear in the six buttons in the From File group. Each of the six file names is identical, except for a two-letter suffix indicating the direction of the rendered view. Interface Using Animated Cubic Maps The cubic maps can be animations instead of bitmaps. Be sure that each is square and all have the same resolution. If you want the animated reflections to match animated changes in the scene, use automatic maps and set them to render every Nth frame. Procedure To generate and save cubic maps: 1. In the Source group, choose From File. 2. In the Render Cubic Map Files group, click the button next to To File. A file dialog is displayed. Type a name for one of the six cubic bitmap files. You’re specifying the name of the Up bitmap. There are two ways to do this: • Specify the entire file name; for example, myview_up.bmp. • Specify the file prefix and extension only; for example, myview.bmp. Important: You must specify at least a prefix and extension. The "_UP" is added automatically. 3. Click Pick Object and Render Maps. 4. Click an object in your scene where you want the six views rendered. This is usually the same Source—Chooses the source of the six cubic maps. Automatic—Automatically generates by looking out in six directions from the pivot of the object with the material, then mapped onto the surface during rendering. When on, the options in the Automatic group are active, letting you choose whether the maps will be generated only once, or regenerated at specified frames in the animation. 1701 1702 Chapter 16: Material Editor, Materials, and Maps From File—When on, you can specify the bitmaps to use. When From File is active, the controls in the Render Cubic Map Files group are also available. You can generate the six cubic reflection maps automatically and save them to files, where you can load them with the From Files controls. Size—Sets the size of the Reflect/Refract maps. The default value of 100 produces distinct images. Lower values lose progressively more detail. Use Environment Map—When off, environment maps are ignored by Reflect/Refract map during rendering. It’s useful to turn this off when you have mirrors in the scene and you’re rotoscoping against a flat screen environment map. A screen environment map does not exist in 3D space the way the other environment-map types do, and will not render properly. Blur group Apply—Turns on filtering to blur the maps. Blur Offset—Affects the sharpness or blurriness of the map without regard to its distance from the object. Use Blur Offset when you want to soften or defocus the details in a map to achieve the effect of a blurred image. Blur—Affects the sharpness or blurriness of the generated map based on its distance from the object. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing (page 3–907). It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. Default=1. point of view of the object assigned the material. The Near and Far spinners in this group let you specify a fog range relative to the object. Near—Sets the near range for fog. Far—Sets the far range for fog. Get From Camera—Uses the Near and Far atmosphere range settings of a camera in the scene. Click this option, and then select the camera. These values aren’t dynamically linked to the camera object. They are simply copied from the camera’s range values at the time you click the camera. If the camera’s range values later change, the map’s Near and Far values remain the same. Automatic group This controls are active only when Automatic is the active source for the Reflect/Refract maps. First Frame Only—Tells the renderer to create automatic maps only on the first frame. Every Nth Frame—Tells the renderer to create animated auto maps based on the frame rate (page 3–944) set by the spinner. From File group These controls are active when From File is active as the Reflect/Refract source. Here you assign the six bitmaps to be used as the cubic maps. Up / Down / Left / Right / Front / Back—Assigns one of the six cubic maps. If the map is one of a set of six with the correct file name, all six are loaded. If the map doesn’t follow file naming conventions, or you assign it to a button of a different position (_UP to Front, for example), only that map is assigned. You must assign the others manually. Atmosphere Ranges group Reload—Reloads the assigned maps and updates If your scene contains environmental Fog (page 3–282), the cubic maps must have near and far range settings to properly render the fog from the the sample slot. Thin Wall Refraction Map You can edit one or more of the cubic maps using a paint program, then click Reload to update the material and the scene. the Basic Parameters rollout, set Opacity to a value greater than 0. Procedure Render Cubic Map Files group To assign the Thin Wall Refraction map to a material: To File—Choose a file name for the Up map (_UP). 1. Click the Map button for Refraction in the Pick Object and Render Maps—Active when you choose a file. Click to turn on, then select the mapped object to render the six cubic maps. Assign the cubic maps to the six From File buttons. material’s Maps rollout. 2. In the Material/Map Browser, choose Thin Wall Refraction. 3. Adjust the map’s parameters. 4. In the parent material, set the Refraction Map Thin Wall Refraction Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Thin Wall Refraction Amount to 50%. 5. Assign the material to an object. Interface Thin wall refraction Blur group Thin Wall Refraction simulates the "jog," or offset effect, you find when you view part of an image through a plate of glass. For objects that model glass, such as a Box in the shape of a window pane, this map is faster, uses less memory, and provides a much better visual effect than the Reflect/Refract map. These controls are for antialiasing. Tip: At 100% refraction and opacity, you can see no diffuse color or mapping, and there is not much illusion of a refractive material. The effect is invisible. In the Maps rollout of the parent material, set Refraction Amount to 50%, and in Apply Blur—Turns on filtering to blur the maps. Blur—Affects the sharpness or blurriness of the generated map based on its distance from the object. The farther away the map is, the greater the blurring. Blur is primarily used to avoid aliasing (page 3–907). It’s a good idea to use a small amount of blurring for all maps in order to avoid the scintillation or aliasing that can occur when pixel details are reduced off in the distance. Default=1.0. 1703 1704 Chapter 16: Material Editor, Materials, and Maps Render group These controls affect how the refraction should behave in animations. First Frame Only—Tells the renderer to create the refracted image only on the first frame. This is the fastest option. You can use it if the camera and refractive object don’t move. Every Nth Frame—Tells the renderer to regenerate the refracted image based on the frame rate (page 3–944) set by the spinner. no bump map assigned, this value has no effect. Default=1.0. If there is unevenness in the surface of the glass, there is a secondary refraction. Thin Wall Refraction generates this secondary refraction if the material also has a bump map present. The algorithm guesses at the scaling of the secondary refraction, and can create too large an effect. If this happens, scale the effect down by reducing this value to less than one. Every single frame provides the most accurate result, but takes longest to render. Use Environment Map—When off, environment maps are ignored by the refraction during rendering. It’s useful to turn it this off when you have refractions in the scene and you’re rotoscoping against a flat screen environment map. A screen environment map does not exist in 3D space the way the other environment map types do, and will not render properly. Default=on. Refraction group These controls are specific to the Thin Wall Refraction effect: Thickness Offset—Affects the size of the refractive offset, or jog effect. At 0, there’s no offset, and the object can appear invisible in the rendered scene. At 10.0, the offset is at its greatest. Range from 0.0 to 10.0; Default=0.5. Note: The IOR (index of refraction) spinner in the parent material’s Extended Parameters rollout also affects the offset effect. Bump Map Effect—Affects the magnitude of refraction due to the presence of a bump map. This parameter multiplies the current bump map Amount in the parent material. Reduce this value to reduce the effect of the secondary refraction; increase this value to increase the effect. If there is Raytrace Map Rollouts Raytracer Parameters Rollout Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Raytrace > Raytracer Parameters rollout This rollout contains the main controls for the Raytrace map (page 2–1698). Interface Raytracer Parameters Rollout Local Options group Enable Raytracing—Turns the raytracer on or off. Default=on. Even with raytracing off, Raytrace material and Raytrace map still reflect and refract the environment, including both the environment map for the scene, and the environment map assigned to the Raytrace material. Raytrace Atmospherics—Turns the raytracing of atmospheric effects on or off. Atmospheric effects include fire, fog, volume light, and so on. Default=on. Enable Self Reflect/Refract—Turns self reflection/refraction on or off. Default=on. Can an object reflect itself? For example, a teapot’s body reflects the teapot’s handle, but a sphere will never reflect itself. If you don’t need this effect, you can improve render time by turning off this toggle. Tip: If you have a transparent object such as glass, Auto Detect—If assigned to the material’s Reflection component, the raytracer will reflect. If assigned to Refraction, it will refract. If you assign Raytrace to any other component, you have to manually specify whether you want reflected rays or refracted rays. (Default.) Note: Auto Detect might fail when you use Raytrace map in a material with a strong bump map. When you use a strong bump map, choose one of the explicit options. Reflection—Casts reflected rays off the object’s surface. Refraction—Casts refracted rays into or through the object’s surface. Note: Raytrace reflects and transmits the IDs in material effects channel (page 2–1443) (G-buffer (page 3–946)), so it can create glowing reflections, and so on. Local Exclude—Click to display the local Include/Exclude dialog (page 2–1531). and have self reflect/refract turned on, you don’t have to make the object 2-sided (page 3–901). The raytracer sees back faces when exiting refractive objects. Tip: Using exclusion lists is one of the best and Reflect/Refract Material IDs—When on, the simplest ways to speed up the raytracer. material reflects effects assigned to material IDs in the renderer’s G-buffer (page 3–946) on or off. Default=on. Background group By default, Raytrace material and Raytrace map reflect effects assigned to a material’s ID, so that G-buffer effects are not lost. For example, if a raytraced object reflects a lamp made to glow with the Video Post Glow filter (Lens Effects Glow), the reflection glows as well. Trace Mode group With options in this group, you select whether to cast reflected or refracted rays. An object that is excluded locally is excluded from this map only. Use Environment Settings—Respects the environment settings of the current scene. Color Swatch—Overrides the environment settings with the specified color. Map Button—Overrides the environment settings with the specified map. By specifying an environment map, you override the environment map for the scene as a whole. Both reflection and refraction use the scene-wide environment map unless you use this option to specify another map. With this control, you can use different environment maps on a per-object 1705 1706 Chapter 16: Material Editor, Materials, and Maps basis, or provide an environment to specified objects when the scene as a whole has none. When you change settings for an antialiaser locally, you don’t affect the global settings for that antialiaser. Raytraced Reflection and Refraction Antialiaser group Controls in this group let you override the global antialiasing settings for raytraced maps and materials. They are unavailable if antialiasing is turned off globally. To turn on antialiasing globally, choose Rendering > Raytrace Globals to display the Global Raytracer Settings dialog (page 2–1528). On—When on, uses antialiasing. Default=unavailable unless global antialiasing is turned on; on if global antialiasing is turned on. Drop-down list—Chooses which antialiasing settings to use. There are three alternatives: • Use Global Antialiasing Settings—(The default.) Uses the global antialiasing settings. • Fast Adaptive Antialiaser—Uses the Fast Adaptive antialiaser, regardless of the global setting. Raytrace: Attenuation Rollout Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Raytrace > Attenuation Rollout When a ray is reflected off an object or refracted through it, by default the ray travels through space forever, with no attenuation (page 3–912). The controls in this rollout allow you to attenuate rays, so their strength diminishes over distance. In the Raytrace map (page 2–1698), attenuation is implemented by a clipping algorithm. Objects beyond the maximum attenuation range aren’t even considered by the raytracer. Because of this, assigning attenuation can speed up rendering time. Interface • Multiresolution Adaptive Antialiaser—Uses the Multiresolution Adaptive antialiaser, regardless of the global setting. ...—The button with the ellipsis to the right of the drop-down list displays another dialog to let you set antialiasing controls locally. The dialog displayed depends on which alternative you chose in the drop-down list, as follows: • Use Global Antialiasing Settings—Clicking ... displays the Global Raytracer Settings dialog (page 2–1528). • Fast Adaptive Antialiaser—Clicking ... displays the Fast Adaptive Antialiaser dialog (page 2–1533). • Multiresolution Adaptive Antialiaser—Clicking ... displays the Multiresolution Adaptive Antialiaser dialog (page 2–1534). Falloff Type—Choose the falloff to use. • Off—Turns off attenuation. (Default.) • Linear—Sets linear attenuation. Linear attenuation is calculated between the start and end range values. Raytrace: Basic Material Extensions Rollout • Inverse Square—Sets inverse square attenuation. Inverse square attenuation is calculated beginning at the start range, and doesn’t use the end range. Inverse square is the actual attenuation rate for light in the real world. However, it doesn’t always give the effect you want in a rendered scene. • Exponential—Sets exponential attenuation. Exponential attenuation is calculated between the start and end range values. You also specify the exponent to use. • Custom Falloff—Specifies a custom curve to use for attenuation (falloff). Custom Falloff group These controls are inactive unless the Falloff Type is set to Custom Falloff. Custom Falloff—Uses the falloff curve to determine the falloff between the start and the end ranges. These are the controls for custom attenuation. The custom attenuation curve is at the left. The gray scale bar below the curve shows how the curve will affect the falloff as light rays diminish in strength. Near—Sets the strength of the reflected/refracted Start Range—The distance in world units where ray at the start range distance. This is a normalized percentage that can range from 0.0 to 1.0. Default=1.0. attenuation begins. Default=0.0. Control 1—Controls the shape of the curve near the End Range—Sets the distance in world units where curve start. Default=0.667. the ray is fully attenuated. Default=100.0. Control 2—Controls the shape of the curve near the This is not used by inverse square attenuation. curve end. Default=0.333. Exponent—Sets the exponent used in exponential Far—Sets the strength of the reflected/refracted ray falloff. Default=2.0. This is used only by exponential attenuation. at the end range distance. This is a normalized percentage that can range from 0.0 to 1.0. Default=0.0. Color These controls affect the behavior of light rays as they attenuate out. By default, as a ray fades out, it is rendered as the background color. You can set a custom color instead. Background—As the ray attenuates out, returns the background (either the scene’s background or the background specified locally in the Raytracer Parameters rollout) rather than the actual color of what the reflected/refracted ray sees. (Default.) Specify—Sets the color that is returned by the ray as it attenuates out. If you choose not to use the background color, black or gray usually work best as the attenuation color, Raytrace: Basic Material Extensions Rollout Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Raytrace > Basic Material Extensions Rollout This rollout contains controls for fine-tuning the effect of the Raytrace map (page 2–1698). Interface 1707 1708 Chapter 16: Material Editor, Materials, and Maps Reflectivity/Opacity—These controls affect the intensity of the raytracer’s results. • Spinner—Controls the amount of raytracing used by the material it is assigned to. Analogous to the Output Amount parameter in the Output rollout of the Bitmap map type (page 2–1631). • Map button—Assigns a map that controls the amount of raytracing. You can vary the amount of raytracing used over the surface of the object. • Check box—Enables or disables the map. Tint—With these controls, you can tint the colors returned by the raytracer. Tinting applies only to reflected colors; it doesn’t affect the material’s diffuse component. Bump Map Effect equals 1.0. The refraction of tiles behind the glass is distorted by the bump map. • Check box—Turns basic tinting on or off. Default=off. • Color swatch—Assigns a tint color for reflections. Default=white. • Amount spinner—Sets the amount of tinting used. Default=1.0. • Map button—Assigns a map to use for tinting. You can vary the tint colors over the surface of the object. • Check box—Enables or disables the map. Bump Map Effect—Controls the effect of a bump Bump Map Effect equals 0.0. map on rays that the surface reflects and refracts. For example, you might want to make a glass object highly bumpy, but reduce the bump effect on refracted parts of the scene. The refraction of tiles behind the glass is not distorted. Bump Map Effect is active only when raytracing is enabled. Raytrace: Refractive Material Extensions Rollout Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Raytrace > Refractive Material Extensions Rollout With the controls in this rollout, you can fine-tune the effect of the Raytrace map (page 2–1698) on a material’s refraction component. Raytrace: Refractive Material Extensions Rollout Interface Fog—Density fog is also a thickness-based effect. It fills the object with a fog that is both opaque and self illuminated. The effect is like smoke trapped in a glass, or wax at the tip of a candle. Colored fog in tubular objects can resemble neon tubes. • Enable—Turns fog on or off. • Color swatch—Displays a Color Selector (page 1–161) for choosing the fog color. • Amount—Controls the amount of density fog. Reducing this value reduces the density fog effect and makes the fog translucent. Range=0 to 1.0. Default=1.0. Internal Density Effects Color—With these controls, you can specify a transmission color based on thickness. The density color gives the appearance of color within the object itself, like tinted glass. • Enable—Turns color density on or off. • Color swatch—Displays a Color Selector (page 1–161). Choose the transmission color. • Amount—Controls the amount of density color. Reducing this value reduces the density color effect. Range=0 to 1.0. Default=1.0. • Color Map—Assigns a map to the density color component. Use the check box to enable or disable the map. • Start and End—A thin piece of tinted glass is mainly clear, while a thick piece of the same glass has more color. Start and End Distance, expressed in world units, controls help you simulate this effect. Start is the position in the object where the density color begins to appear (Default=0.0). End is the position in the object where the density color reaches its full Amount value. To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value. • Color Map—Assigns a map to the fog component. Use the check box to enable or disable the map. • Start and End—Start and End Distance controls, expressed in world units, adjust the fog effect based on the object’s dimensions. Start is the position in the object where the density fog begins to appear (default=0.0). End is the position in the object where the density fog reaches its full Amount value. To have a lighter effect, increase the End value. To have a heavier effect, reduce the End value. Render objects inside raytraced objects—Turns the rendering of objects inside raytraced objects on or off. Default=on. Render atmospherics inside raytraced objects—Turns the rendering of atmospheric effects inside raytraced objects on or off. Atmospheric effects include fire, fog, volume light, and so on. Default=on. Treat Refractions as Glass (Fresnel effect)— When on, applies a Fresnel effect to the refraction. This can add a bit of reflection to the refracting object, depending on the viewing angle of the object. When off, the object is refractive only. Default=on. 1709 1710 Chapter 16: Material Editor, Materials, and Maps mental ray Shaders In mental ray, a shader is a function that calculates light effects. There can be shaders for lights, cameras (lens shaders), materials, shadows, and so on. Note: In 3D modeling, the more common usage of “shader” signifies an algorithm that specifies how a surface responds to light. (The shaders for standard 3ds Max fall into this category.) With the mental ray renderer, “shader” has a more general sense of any algorithm used in rendering. The mental ray renderer (page 3–78) can render most types of 3ds Max materials and maps. See 3ds Max Materials in mental ray Renderings (page 3–83). In addition, if you have enabled mental ray extensions (see mental ray Preferences (page 3–837)), you can apply a variety of shaders to materials. Materials designed for use with the mental ray renderer have specific components to which you can assign a shader. And for standard 3ds Max material types, the mental ray Connection rollout (page 2–1461) lets you add mental ray shading. Warning: When you use the scanline renderer, mental ray shaders typically appear as black or white surfaces, or they are ignored entirely. You assign a mental ray shader the same way you do a map. In the Material/Map Browser (page 2–1412), mental ray shaders appear with a yellow icon, instead of the green icon used for maps. mental ray maps in the browser’s list are shown with yellow icons. The shaders listed in the Browser depend on which type of shader component you have chosen in the Material Editor. For example, when you assign a Surface shader, the Browser lists a variety of shaders and standard 3ds Max maps. But when you assign a more special-purpose Contour shader, the Browser lists only those shaders that generate contour lines. Note: Other kinds of special-purpose shaders include shaders for cameras and lights. Buttons to assign camera shaders are found on the Render Scene dialog’s Camera Effects rollout (page 3–101), and the buttons to assign light shaders are on a light object’s mental ray Light Shader rollout (page 2–1345) (which appears only on the Modify panel, not the Create panel). The shaders listed in the Browser come from several libraries that are provided with 3ds Max. Shaders created specifically for 3ds Max are described in this document. Shaders provided with the mental images or lume shader libraries have their own online documentation. The following topics link to the descriptions of specific shaders: Custom Shaders for 3ds Max • Custom Shaders for 3ds Max (page 2–1711) links to descriptions of the shaders provided in the product-specific library, 3dsmax.mi. • mental images Shader Libraries (page 2–1712) links to descriptions of the shaders provided in the three standard mental ray libraries from mental images: base.mi, contour.mi, and physics.mi. • Shaders in the LumeTools Collection (page 2–1713) includes links to descriptions of shaders in the lume library, lume.mi. • The Car Paint (page 2–1576) material is also available as a shader, with the same set of parameters. • The mr Sun (page 2–1319), mr Sky (page 2–1318), and mr Physical Sky (page 2–1321) shaders are components of the mental ray Sun & Sky (page 2–1313) solution. Note: When you wire the parameters of an object whose material has mental ray shaders assigned, names of shader parameters might differ from those in the Material Editor interface. Also, parameters not supported by 3ds Max might appear as blanks in the wiring menu. mental ray Shaders not Provided with 3ds Max If your installation includes shader libraries other than those listed in this reference (whether obtained from a third-party source, or custom written), then the Browser might list those shaders as well. Documentation for third-party or custom shaders should come from the shader’s provider. Where Shaders Are Installed Shaders provided with 3ds Max are installed in the subdirectory \mentalray\shaders_standard\, below the 3ds Max root directory. The \include folder is for the MI include files, and the \shaders folder is for the DLLs. Third-party shaders should not be installed in \shaders_standard. They should be installed either in \shaders_3rdparty or \shaders_autoload. If a third-party shader is present in \shaders_autoload, it is loaded automatically when you start 3ds Max. If a third-party shader is present in \shaders_3rdparty, you must update the file 3rdparty.mi so it explicitly loads the shader. The MI file \shaders_3rdparty\3rdparty.mi contains comments that explain how to add load statements. Note: Shaders listed in the MI file are loaded in reverse order: that is, from the bottom of the list to the top. Custom Shaders for 3ds Max Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Pick a mental ray shader other than a mental images library shader or a lume shader. Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. For use with the mental ray renderer (page 3–78), 3ds Max provides a number of custom shaders. These are the following: 3D Displacement Shader (mental ray) (page 2–1714) Bump Shader (mental ray) (page 2–1716) DGS Material Shader (mental ray) (page 2–1717) Dielectric Material Shader (mental ray) (page 2–1719) Environment Shader (mental ray) (page 2–1721) Height Map Displacement Shader (mental ray) (page 2–1722) Material to Shader (mental ray) (page 2–1723) Shader List (mental ray) (page 2–1723) UV Generator Shader (mental ray) (page 2–1724) UV Coordinate Shader (mental ray) (page 2–1728) 1711 1712 Chapter 16: Material Editor, Materials, and Maps XYZ Generator Shader (mental ray) (page 2–1729) Shader Library XYZ Coordinate Shader (mental ray) (page 2–1730) Contour Store Function contour Curvature contour Depth Fade contour mental images Shader Libraries DGS Material Photon physics Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Pick a mental ray shader other than a custom 3ds Max shader or a lume shader. Dielectric base Factor Color contour Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. Layer Thinner contour Light Infinite base The shaders provided with standard libraries from mental images are meant for use with the mental ray renderer (page 3–78). There are three standard libraries: Base Shaders (base.mi), Physics Shaders (physics.mi), and Contour Shaders (contour.mi). Light Point base Light Spot base Opacity base Parti Volume physics Note: In the mental image libraries, the names of Photon Basic base base shaders have the prefix “mib_” and the names of contour shaders have the prefix “contour_”. These prefixes don’t appear in the 3ds Max user interface or in the table that follows. (Names of physics shaders have no conventional prefix.) Reflect base Refract base The following table lists the mental images library shaders provided with 3ds Max. Shadow Transparency base Simple contour Texture Remap base Texture Rotate base Texture Wave base Tip: When you follow a link to the documentation for mental images library shaders, scroll up a bit in your browser. The links tend to go directly to the shader’s declaration code, and often there are some introductory paragraphs directly above the code. If the link goes to the beginning of a section, scroll down instead. Shader Library Ambient/Reflective Occlusion base Transmat physics Combi contour Transmat Photon physics Contour Composite contour Transparency base Contour Contrast Function Levels contour Contour Only contour Two Sided base Contour PS (PostScript) contour Shaders in the LumeTools Collection Shader Library • Ocean Width From Color contour • Stain • Submerge Width From Light contour • Translucency • Water Surface Width From Light Dir contour • Wrap Around • Wet-Dry Mixer Note: You can also access the mental images shader help by choosing Help > Additional Help, highlighting Mental Ray Standard Library in the list, and then clicking Display Help. Shaders in the LumeTools Collection Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Pick a shader with “(lume)” in its name. Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The LumeTools Collection of shaders provide a variety of naturalistic effects when used with the mental ray renderer (page 3–78). In the Material/Map Browser, the name of these shaders is followed by “(lume).” These are the lume shaders provided with 3ds Max: • Beam • Distortion • Edge and Edge Shadow • Facade • Glass • Glow • Landscape • Metal • Mist • Night Note: You can also access the lume shader help by choosing Help > Additional Help, highlighting Lume Tools in the list, and then clicking Display Help. Connect Parameter to Shader Dialog (mental ray) Material Editor > mental ray Connection rollout > Click a shader button. > Material/Map Browser > Pick a mental ray shader that returns multiple values. Material Editor > Shader controls > Click a shader button. > Material/Map Browser > Pick a mental ray shader that returns multiple values. Material Editor > DGS material > Click a shader button. > Material/Map Browser > Pick a mental ray shader that returns multiple values. Material Editor > Shader controls > Click a shader return parameter button (to the right of the main shader button). Note: The mental ray Connection rollout is available in the Material Editor only if you have enabled the mental ray extensions by using the mental ray Preferences panel. In addition, shaders don’t appear unless the mental ray renderer is the currently active renderer. Some mental ray shaders return multiple values. If you choose one of these, a Connect Parameter To Shader dialog appears. Choose one of the return values in the list, and then click OK. Important: UV Coordinates (page 2–1728) and XYZ Coordinates (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might encounter multiple return values in shaders provided with other shader libraries or custom shader code. 1713 1714 Chapter 16: Material Editor, Materials, and Maps The components for some mental ray materials and shaders can be assigned other shaders. For these components, the main shader button is accompanied on the right by a small button. If no shader is assigned, or the shader assigned has only a single return value, the button is disabled and shows a dot in the middle. If the shader assigned can return multiple values, text appears in this button, and a tooltip shows the parameter name. Clicking the button displays the Connect Parameter To Shader dialog, allowing you to change the parameter being used. Interface 3ds Max Custom Shaders 3D Displacement Shader (mental ray) Material Editor > mental ray Connection rollout > For the Displacement component, turn off the lock button. > Click the button for the Displacement component. > Material/Map Browser > 3D Displacement (3dsmax) Material Editor > mental ray material > Click the button for the Displacement component. > Material/Map Browser > 3D Displacement (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. A 3D Displacement shader displaces the geometry of surfaces. The effect is similar to displacement mapping of a standard material. You can apply mental ray displacement to any kind of object, unlike standard displacement mapping, which is restricted to surface models (meshes, patches, polys, and NURBS surfaces). List of return values—Lists the parameters that the shader returns. The type of each parameter is indicated in parentheses, following the parameter’s name. Show Compatible Only—When on the list shows only the return values whose type is compatible with the component the shader is assigned to. When off, shows all return values from the shader, whether they are compatible or not. Default=on. Displaced surfaces are smooth if the displaced polygons share normals; otherwise, the displaced surfaces are faceted. Also, unless normals are shared, faces can become separated in the displaced mesh. To prevent this, make sure adjacent surfaces belong to the same shading group. When the mental ray renderer is the active renderer, mental ray displacement is the only displacement method used, unless your scene includes a Displace modifier (page 1–629), which always uses standard 3ds Max displacement. Tip: Before you render, you can disable or enable displacement by using the Displacement toggle in the Options group on the Common Parameters rollout (page 3–27). Global settings for the mental ray displacement method are in the Displacement group on the 3D Displacement Shader (mental ray) Shadows And Displacement rollout (page 3–114) of the Render Scene dialog’s Renderer panel. See also mental ray Displacement (page 3–96) mental ray Connection Rollout (page 2–1461) mental ray Material (page 2–1544) Displacement Length—This is the length of displacement when Object Independent is on, the extrusion map is at 100 per cent (white) and the Extrusion Strength equals 1.0. Lower gray levels in the extrusion map, or other values of Extrusion Strength, scale the amount of displacement. When Object Independent is off, this value is disregarded. Default=1.0. Extrusion Strength—Controls the height of the Interface displacement. This value is a multiplier: at the default value of 1.0, the map’s effect is unchanged. Greater values increase the effect of the map, and lower values decrease it. Default=1.0. Extrusion Map—Click to display the Material/Map Browser (page 2–1412) and choose a map to use for the displacement. Displacement maps apply the gray scale of the map to generate the displacement. Lighter colors in the 2D image push outward more strongly than darker colors, resulting in a 3D displacement of the geometry. Direction Strength—Controls the strength of the direction shader. Default=0.0. 3D Displacement (3dsmax) Parameters rollout Note: The button to the right of the Factor and Direction Strength controls is a shortcut shader button. Clicking one of these buttons displays the Material/Map Browser (page 2–1412) so you can assign a shader to this component. When a map or a shader has been assigned to a component, this button displays the letter “M,” and the comparable button on the Shaders rollout displays the map or shader name. Object Independent—When on, the displacement effect is independent of the size of the object’s bounding box. When off, the displacement effect is scaled according to the size of the object. Default=on. Scaling the displacement based on object size is the standard behavior for regular 3ds Max displacement mapping. Important: Adding a direction shader has no visible effect unless you set Direction Strength to be greater than its default value of zero. (Direction Strength values less than zero have no effect.) Direction Map—Click to display the Material/Map Browser (page 2–1412) and choose a shader to use for the map direction. The direction of the displacement is perturbed according to the RGB values of the shader output or map pixels. Red values offset in the U axis, Green values offset in V, and Blue values offset in W (using the object-local UVW coordinates). Shaders rollout The controls on this rollout let you assign a map or shader to the Factor or Direction Strength parameters. Click the button for a component to display the Material/Map Browser (page 2–1412) 1715 1716 Chapter 16: Material Editor, Materials, and Maps and assign the map or shader. Use the toggle at the left to turn the effect of the map off or on. The button to the right of each main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinate (page 2–1728) and XYZ Coordinate (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might encounter multiple return values in shaders provided with other shader libraries or custom shader code. Bump Shader (mental ray) Material Editor > mental ray material > Click the button for the Surface or Bump component. > Material/Map Browser > Bump (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The Bump shader provides bump mapping for the mental ray renderer. Bumps are created by perturbing face normals before the object is rendered, using the same method as bump mapping (page 2–1506) for the scanline renderer. Warning: Although you can assign a Bump shader to the Surface component, if you assign only a Bump shader, the surface will render as black. For the Surface component, use the Bump shader in a Shader List (page 2–1723), or for the mental ray material (page 2–1544), use the Bump component itself. Interface Bump (3dsmax) Parameters rollout Multiplier—Adjust the bump effect by multiplying the map values. Negative Multiplier values reverse the bump effect: hollow areas now protrude, and raised areas become hollow. Default=1.0. Map—Click to display the Material/Map Browser (page 2–1412) and choose a map to use for generating bumps. Bump mapping uses the intensity of the map to affect the surface of the material. The intensity affects the apparent bumpiness of the surface: white areas protrude, and black areas recede. Shaders rollout The controls on this rollout let you assign a map or shader to the Multiplier parameter. Click the button for a component to display the Material/Map Browser (page 2–1412) and assign the map or shader. Use the toggle at the left to turn the effect of the map off or on. The button to the right of the main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinate (page 2–1728) and XYZ Coordinate (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might DGS Material Shader (mental ray) encounter multiple return values in shaders provided with other shader libraries or custom shader code. Interface Parameters rollout DGS Material Shader (mental ray) Material Editor > mental ray Connection rollout > Unlock the Surface or Photon component. > Click the shader button for the Surface or Photon component. > Material/Map Browser > DGS Material (3dsmax) Material Editor > mental ray material > Click the button for the Surface or Photon component. > Material/Map Browser > DGS Material (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. DGS stands for Diffuse, Glossy, Specular. This shader is a mental ray phenomenon (a scripted shader tree) that provides a physically accurate simulation of a surface. With the mental ray Connection rollout of a basic 3ds Max material, or a mental ray material, you can assign the DGS Material shader to either the Surface or Photon component. Despite the similarity in name, this shader is distinct from the DGS material (page 2–1580). Both, in turn, provide a custom 3ds Max interface to the “DGS Material Photon” shader that is part of the mental images physics library. Note: The button to the right of the first six controls is a shortcut shader button. Clicking one of these buttons displays the Material/Map Browser (page 2–1412) so you can assign a shader to this component. When a map or a shader has been assigned to a component, this button displays the letter “M,” and the comparable button on the Shaders rollout displays the map or shader name. Diffuse—Click the color swatch to display a Color Selector (page 1–161) and change the material’s diffuse color. Glossy Highlights—Click the color swatch to display a Color Selector and change the color of glossy highlights. Specular—Click the color swatch to display a Color Selector and change the color of mirror reflections. When the specular color is white, the material is 100 percent reflective, like a mirror. When the specular color is black, the material does not reflect any of its surroundings. Shiny—Sets the width of glossy highlights. The larger this value, the smaller the highlights. Default=30.0. 1717 1718 Chapter 16: Material Editor, Materials, and Maps Transparency—Specifies the transparency. The effective range of Transparency is from 0.0 to 1.0. At 0.0 the material is fully opaque. At 1.0 it is fully transparent. Default=0.0. Warning: You can set the value of Transparency to be greater than 1.0, but this has no effect. An anomaly of the user interface for shaders in the mental ray and lume libraries, is that spinner values are not “clamped” to lie within their effective ranges, as they are for controls in 3ds Max. • Delete—Deletes a light from the list. Highlight a light’s name in the list, then click Delete. Shaders rollout The controls on this rollout let you assign a map or shader to one of the basic parameters of the DGS Material shader. This is comparable to mapping a component of a standard material; by adding shaders, you can create a shader tree that generates complex effects. The value of Transparency also indirectly specifies the reflectivity of the material, which is calculated as 1.0 minus the Transparency value. Index Of Refraction—Specifies the IOR. In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is in. Typically this is related to the object’s density. The higher the IOR, the denser the object. Default=1.5. See Extended Parameters Rollout (Standard Material) (page 2–1471) for a list of IOR values for commonly encountered materials. Note: When the IOR equals 1.0, there is no refraction, and calculating the transparency can take less time than when the material is refractive. Lights—When on, the material is illuminated only by those lights specified in the list. When Lights is turned off, all lights in the scene affect the material. Default=off. The remaining light controls are unavailable unless Lights is turned on. • List of lights—Displays the lights you have chosen to illuminate this material. • Add—Adds a light to the list. Click Add to turn it on, then click the light object in a viewport. • Replace—Replaces a light in the list. Highlight a light’s name in the list, click Replace to turn it on, then click the replacement light object in a viewport. Click the button for a component to display the Material/Map Browser (page 2–1412) and assign the map or shader. Use the toggle at the left to turn the effect of the map off or on. The button to the right of each main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinates (page 2–1728) and XYZ Coordinates (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might encounter multiple return values in shaders provided with other shader libraries or custom shader code. For all the DGS Material shader components, the available mental ray shaders are the same: Dielectric Material Shader (mental ray) Shader Library Bump (page 2–1716) 3ds Max DGS Material (this shader) 3ds Max Dielectric base Dielectric Material (page 2–1719) 3ds Max Edge lume Facade lume Glass lume Glow lume Landscape lume Material to Shader (page 2–1723) 3ds Max Metal lume Ocean lume Opacity base Reflect base Refract base Shader List (page 2–1723) 3ds Max Stain lume Translucency lume Transmat physics Transparency base Two Sided base UV Generator (page 2–1724) 3ds Max Water Surface lume Wet-Dry Mixer lume XYZ Generator (page 2–1729) 3ds Max Dielectric Material Shader (mental ray) Material Editor > mental ray Connection rollout > Unlock the Surface or Photon component. > Click the shader button for the Surface or Photon component. > Material/Map Browser > Dielectric Material (3dsmax) or Dielectric Material Photon (3dsmax) Material Editor > mental ray material > Click the button for the Surface or Photon component. > Material/Map Browser > Dielectric Material (3dsmax) or Dielectric Material Photon (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The Dielectric Material shader creates transparent, refractive materials that are physically accurate. A dielectric material, such as glass, is a material whose surface transmits most light that strikes it at angles close to perpendicular (90 degrees), but reflects most light that strikes at glancing angles (close to zero degrees). When applied to the Surface component, this shader affects the surface’s appearance. When applied to the Photon component, it affects its photon behavior for caustics and global illumination. (The Glass material is a mental ray phenomenon (a scripted shader tree) that is equivalent to a mental ray material (page 2–1544) with a Dielectric Material shader assigned to both its Surface and Photon components, with the parameter settings identical for both.) Note: This material does not use a shadow shader, so shadows will always be opaque unless you use a Dielectric Material shader for the Photon component, and generate caustics when you render. Adjacent Refractive Materials Two controls, Outside Light Persistence and Index Of Refraction (Out), are for situations where you are modeling two adjacent refractive materials. Consider a drink in a martini glass. The glass 1719 1720 Chapter 16: Material Editor, Materials, and Maps has an index of refraction (IOR) of 1.5, while the alcohol in the glass has an IOR of about 1.3. To create a physically accurate model of this situation, use three glass materials: one for the glass itself, one for the alcohol, and a third material for the surfaces where they touch each other. For this third material, set the “inside” IOR to 1.3, and the outside IOR to 1.5. Interface See Extended Parameters Rollout (Standard Material) (page 2–1471) for a list of IOR values for commonly encountered materials. Outside Light Persistence—In conjunction with the Persistence Distance, controls the percentage of light transmitted on the other side of a surface. When set to the default of black, this control has no effect. See the section “Adjacent Refractive Materials,” above. Default=black (R=G=B=0.0). Index Of Refraction (out)—Sets the IOR on the other side of a surface. When set to the default of zero, this control has no effect. See the section “Adjacent Refractive Materials,” above. Default=0.0. Persistence Distance—In conjunction with the Light Persistence color, controls the percentage of light that the volume transmits. It is the distance at which light transmission is reduced to the percentage specified by the Light Persistence RGB values. Default=1.0. Light Persistence—In conjunction with the Persistence Distance, controls the percentage of light that the volume transmits. For example, if the color is set to R=G=B=0.5 and the Persistence Distance is set to 2.0, then objects with a thickness of 2.0 units will appear 50 per cent transparent. Default=white (R=G=B=1.0). Because transparency depends on the thickness of the object, objects with varying thickness show different transparency depending on the angle from which they are viewed. Index Of Refraction—Specifies the Index Of Refraction (IOR). In the physical world, the IOR results from the relative speeds of light through the transparent material and the medium the eye or the camera is in. Typically this is related to the object’s density. The higher the IOR, the denser the object. Default=1.5. If you specify an Outside Light Persistence color, that setting also uses the Persistence Distance. Ignore Normals—When on, the renderer does not use normals to decide whether a light ray is entering or leaving the object. Normally, the shader uses normals to decide whether a ray is entering or leaving an object. (It is entering if the normal points toward the ray, leaving if the normal points away from the ray.) This can present a problem for rendering objects whose normals are not unified. When Ignore Normals is on, the shader decides whether a ray is entering or leaving the object by counting the number of times the ray has intersected the object. Default=off. Opaque Alpha—When on, refracted rays that touch the environment don’t generate a transparent alpha value. (This is how 3ds Max usually treats the environment.) When off, refracted rays that touch the environment render a transparent alpha value, which can help if you plan to use the rendering as part of a composite. Default=off. Environment Shader (mental ray) Phong Coefficient—When greater than zero, generates Phong highlights on the surface. The highlights appear in the sample slot. In general this value must be greater than 10 for highlights to be apparent. Default=0.0. Environment Shader (mental ray) Material Editor > mental ray Connection rollout > Assign a shader to the Environment component. > Material/Map Browser > Environment (3dsmax) Material Editor > mental ray material > Assign a shader to the Environment component. > Material/Map Browser > Environment (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The Environment shader lets you specify an environment that is local to the material. Controls for the Environment shader are similar to those for a scene’s environment on the Render Scene dialog’s Environment panel. However, the local Environment shader doesn’t affect the scene background. Instead, it provides an environment that the material can reflect or refract. If an environment map is present, it generates the reflections or refractions, and they are not ray traced. Interface Parameters rollout Note: The button to the right of the UseAlpha and Color controls is a shortcut shader button. Clicking one of these buttons displays the Material/Map Browser (page 2–1412) so you can assign a shader to this component. When a map or a shader has been assigned to a component, this button displays the letter “M,” and the comparable button on the Shaders rollout displays the map or shader name. UseAlpha—When on, uses the map’s alpha channel, if it has one. The alpha channel specifies those portions of the map that are transparent or translucent. Default=off. Color—Click the color swatch to display a Color Selector (page 1–161) and choose a color to use as the environment. Map—Click the button to display a Material/Map Browser (page 2–1412) and choose a map to use as the environment. Shaders rollout The controls on this rollout let you assign a map or shader to the UseAlpha and Color parameters. Click the button for a component to display the Material/Map Browser (page 2–1412) and assign the map or shader. Use the toggle at the left to turn the effect of the map off or on. The button to the right of each main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinates (page 2–1728) and XYZ Coordinates (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might 1721 1722 Chapter 16: Material Editor, Materials, and Maps encounter multiple return values in shaders provided with other shader libraries or custom shader code. Height Map Displacement Shader (mental ray) Material Editor > mental ray Connection rollout > For the Displacement component, turn off the lock button. > Click the button for the Displacement component. > Material/Map Browser > Height Map Displacement (3dsmax) Material Editor > mental ray material > Click the button for the Displacement component. > Material/Map Browser > Height Map Displacement (3dsmax) Note: Shaders don’t appear unless the mental ray renderer is the currently active renderer. The Height Map Displacement shader displaces the geometry of surfaces, and is specifically intended for use with height maps generated by normal mapping; see Creating and Using Normal Bump Maps (page 3–150). Important: When applying a material containing this map to an object, the mental ray Displacement > Smoothing option must be off. If such materials are applied to all objects in the scene, you can turn off Smoothing globally. Otherwise, turn off smoothing for each object whose material uses a height map via the Object Properties > mental ray panel (page 1–126) (turn off Use Global Settings and then turn off Smoothing). Tip: Avoid the temptation to apply MeshSmooth to a model when creating a height map for it. This changes the shape of the model so the height values will not be correct. The low-res model must have exactly the same shape when the map is created and when it is used for displacement. Also, MeshSmooth does not use the same algorithm as the mental ray displacement smoothing, so using both forms of smoothing won’t work perfectly. The best results are obtained by not smoothing the low-res model when the map is created and also not using mental ray smoothing. Also, avoid using a paint program to modify the height map. The values in the height map depend on the shape of both the low-res and high-res models, and it’s easy to damage the mathematical accuracy. If you paint any changes onto the map, you must be careful to preserve the faceted look, and avoid the temptation to blur away the facets. You might try painting in Additive and Subtractive mode to add or subtract to the displacement, because Normal mode will set a fixed displacement, making it difficult for an artist to control the result. See also 3D Displacement Shader (mental ray) (page 2–1714) mental ray Displacement (page 3–96) mental ray Connection Rollout (page 2–1461) mental ray Material (page 2–1544) Interface Height Map Displacement (3dsmax) Parameters rollout Be sure to enter the same values for Minimum and Maximum Height as the equivalents on the Projection Options dialog, as specified below. Minimum Height—The “Min Height” value specified on the Render to Texture: Projection Options dialog (page 3–165) when creating the height map. Default=-10.0. Maximum Height—The “Max Height” value specified on the Render to Texture: Projection Material to Shader (mental ray) Options dialog (page 3–165) when creating the height map. Default=10.0. Height Map—The height map itself (usually a bitmap). If you need to further adjust the material, you can repeat these steps (without having to reassign the Material To Shader). Interface Material to Shader (mental ray) Material Editor > mental ray Connection rollout > Assign a shader. > Material/Map Browser > Material to Shader Material Editor > mental ray or DGS material > Assign a shader. > Material/Map Browser > Material to Shader Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. Lets you use a regular 3ds Max material as a shader. Depending on the component to which this shader is assigned (Surface, Shadow, Displacement, Volume, and so on), the mental ray renderer uses the appropriate material component. For example, if you want a mental ray material’s Surface component to look like a standard material you have, assign Material To Shader as the Surface shader, and then assign it the standard material. Note: Material To Shader doesn’t work as an environment background. Use the original 3ds Max material, instead. Tip: To edit the material assigned to Material To Shader, you can drag the button to an unused sample slot in the Material Editor (be sure to choose Instance when prompted). Or you can follow these steps: 1. In an unused sample slot, create the material and adjust its settings. 2. Save the material to a library. 3. Assign the Material To Shader to its component. 4. When you click the Material To Shader’s shader button, browse from the library and load the material you prepared in advance. Material button—Click to display the Material/Map Browser (page 2–1412) and choose the material to use for shading. Shader List (mental ray) Material Editor > mental ray Connection rollout > Assign a shader. > Material/Map Browser > Shader List Material Editor > mental ray, DGS, or Glass material > Assign a shader. > Material/Map Browser > Shader List Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The Shader List shader provides an interface for constructing a mental ray shader list. A shader list combines the effect of multiple shaders: each shader is called in turn, the first one’s output being treated as input to the next, and so on. Interface 1723 1724 Chapter 16: Material Editor, Materials, and Maps List of shaders—Shows the names of the shaders in the list. Highlight a shader’s name to alter its position in the list, or to access its parameters. Each active shader in the list is called in order, from top to bottom. Up—Moves the selected shader up in the list. Down—Moves the selected shader down in the list. Add Shader—Displays a Material/Map Browser (page 2–1412) so you can choose a shader to add to the list. Remove Selected—Removes the selected shader from the list. Selection group On—When on, the shader is active. When off, the shader is inactive and isn’t called. You can use this toggle to disable a shader without removing it from the list entirely. UV Generator Material Editor > Any shader with a Coords parameter (or other vector value). > Click the shader button. > Material/Map Browser > UV Generator (3dsmax) Material Editor > mental ray Connection rollout > Unlock the Surface component and click the shader button. > Material/Map Browser > UV Generator (3dsmax) Material Editor > DGS material > Assign a shader to any component. > Material/Map Browser > UV Generator (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The UV Generator shader returns 2D mapping coordinates. You can use its settings to adjust a 2D map. The parameters for this shader are equivalent to parameters on the Coordinates rollout for 2D maps (page 2–1625). Interface Shader button—Shows the name of the currently selected shader. Click the button to view that shader’s parameters in the Material Editor. The interface for this shader consists of two rollouts: When you are done adjusting an individual shader’s parameters, you can click Go To Parent to return to the Shader List Parameters rollout. Shaders Rollout (UV Generator) (page 2–1727) UV Generator Parameters Rollout (page 2–1725) UV Generator Parameters Rollout UV Generator Parameters Rollout Interface Material Editor > Any shader with a Coords parameter (or other vector value). > Click the shader button. > Material/Map Browser > UV Generator (3dsmax) > UV Generator (3dsmax) Parameters rollout Material Editor > mental ray Connection rollout > Unlock the Surface component and click the shader button. > Material/Map Browser > UV Generator (3dsmax) > UV Generator (3dsmax) Parameters rollout Material Editor > DGS material > Assign a shader to any component. > Material/Map Browser > UV Generator (3dsmax) > UV Generator (3dsmax) Parameters rollout Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The parameters for this shader are equivalent to parameters on the Coordinates rollout for 2D maps (page 2–1625). MapSlotType—Chooses whether the map is applied as an environment map or a texture map. Default=0 (Texture). • 0 is for a Texture map. • 1 is for an Environment map. EnvType—If the map is applied as an environment map, this value chooses the mapping type. If 1725 1726 Chapter 16: Material Editor, Materials, and Maps the map is applied as a texture map, this value is ignored. Default=4 (screen). of the object. When off, planar mapping doesn’t render on the object’s back. Default=on. • 1 is for Spherical. This toggle is available only when Tiling is off in both dimensions. Its effect is visible only when you render the scene. • 2 is for Cylindrical. • 3 is for Shrink-Wrap. • 4 is for Screen. Screen projection projects as a flat backdrop in the scene. See UVW Map Modifier (page 1–922) for a description of spherical, cylindrical, and shrink-wrap projection. MapChannel—If the map is applied as a texture map and UVWSource is set to 0 (Explicit), this value sets the map channel index; otherwise, this value is ignored. Range=1 to 99. Default=1. UVWSource—If the map is applied as a texture map, this value chooses the source of UVW coordinates. If the map is applied as an environment map, this value is ignored. Default=0 (Explicit). • 0 is for Explicit. When Explicit is the source, use MapChannel to set the specific map channel. • 1 is for Object XYZ. Object XYZ uses planar mapping based on the object’s local coordinates (disregarding the pivot point location). For rendering purposes, planar mapping doesn’t project through to the back of the object unless you turn on ShowMapOnBack. • 2 is for World XYZ. World XYZ uses planar mapping based on the scene’s world coordinates (disregarding the object’s bounding box). For rendering purposes, planar mapping doesn’t project through to the back of the object unless you turn on ShowMapOnBack. ShowMapOnBack—When on, planar mapping (Planar from Object XYZ, or with the UVW Map modifier) projects through to render on the back Note: In viewports, planar mapping always projects to the back of the object, whether Show Map On Back is turned on or not. To override this, turn off Tiling. UOffset—Changes the U position of the map in UV coordinates (page 3–1028). The map moves in relation to its size. Default=0.0. For example, if you want to shift the map its full width to the left, and half its width downward from its original position, you enter -1 in the U Offset field and 0.5 in the V offset field. UScale—Determines the number of times the map is tiled (page 3–1022) (repeated) along the U axis. Default=1.0. UWrap—Turns tiling on or off in the U axis. Default=on. UMirror—Mirrors (page 3–1022) the map left-to-right along the U axis. Default=off. VOffset—Changes the V position of the map in UV coordinates. Default=0.0. VScale—Determines the number of times the map is tiled (repeated) along the V axis. Default=1.0. VWrap—Turns tiling on or off in the V axis. Default=on. VMirror—Mirrors the map top-to-bottom along the V axis. Default=off. UAngle, VAngle, and WAngle—Rotate the map about the U, V, or W axis (in degrees). Default=0.0. UVAxis—Changes the mapping coordinate system used for the map. The default UV coordinates project the map onto the surface like a slide projector. The VW and WU coordinates rotate Shaders Rollout (UV Generator) the map so that it is perpendicular to the surface. Default=0 (UV). amount, the greater the effect of increasing the Level value. Range=1 to 10. Default=1. • 0 is for UV. • 1 is for VW. Phase—Controls the speed of the animation of the noise function. Default=0.0. • 2 is for WU. RealWorldMapSize—Controls the scaling method Clip—When on, UVs are clipped. When off, UVs are wrapped. Default=on. Blur—Affects the sharpness or blurriness of the map based on its distance from the view. The farther away the map is, the greater the blurring. The Blur value blurs maps in world space. Blur is primarily used to avoid aliasing (page 3–907). Default=1.0. BlurOffset—Affects the sharpness or blurriness of the map without regard to its distance from the view. Blur Offset blurs the image itself in object space. Use this option when you want to soften or defocus the details in a map to achieve the effect of a blurred image. See Blur / Blur Offset (page 3–918). Default=0.0 Noise—When on, noise settings affect the map. When off, no noise is applied. Default=off. Animate—Determines if the noise effect is animated. This parameter must be turned on if you intend to animate the noise. Default=off. Amount—Sets the strength of the fractal function, expressed as a percentage. If the amount is 0 there is no noise. If the amount is 100 the map becomes pure noise. Default-1.0. Size—Sets the scale of the noise function relative to geometry. At very small values, the noise effect becomes white noise. At large values, the scale can exceed the scale of the geometry, in which case it has little or no effect. Range=0.001 to 100. Default=1.0. Level—Or iterations: the number of times the function is applied. The effect of the level is dependent on the Amount value. The stronger the used for texture mapped materials that are applied to the object. The scaling values are controlled by the Use Real-World Scale settings found on the applied material’s Coordinates rollout. Default=on. Shaders Rollout (UV Generator) Material Editor > Any shader with a Coords parameter (or other vector value). > Click the shader button. > Material/Map Browser > UV Generator (3dsmax) > Shaders rollout Material Editor > mental ray Connection rollout > Unlock the Surface component and click the shader button. > Material/Map Browser > UV Generator (3dsmax) > Shaders rollout Material Editor > DGS material > Assign a shader to any component. > Material/Map Browser > UV Generator (3dsmax) > Shaders rollout Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The controls on this rollout let you assign a map or shader to one of the basic parameters of the UV Generator shader. This is comparable to mapping a component of a standard material; by adding shaders, you can create a shader tree that generates complex effects. 1727 1728 Chapter 16: Material Editor, Materials, and Maps Interface UV Coordinate Shader (mental ray) Material Editor > Any shader with a Coords parameter or other vector value. > Click the shader button. > Material/Map Browser > UV Coordinate (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. This shader is identical to the UV Generator shader (page 2–1724), except that it returns two values instead of one. • The UV coordinate (same value as UV Generator would return) This value is named UV. • The UV coordinate’s derivative This value, also a vector, is named dUV. When you choose this shader, a Connect Parameter To Shader dialog (page 2–1713) is displayed, prompting you to choose which of the two values to use. You can later change the choice of value by using the “dot” button to the right of the main shader button. Interface The button to the right of each main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinates (page 2–1728) and XYZ Coordinates (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might encounter multiple return values in shaders provided with other shader libraries or custom shader code. The UV Coordinate shader has the same parameters as the UV Generator shader. See UV Generator Parameters Rollout (page 2–1725) for a description of the basic settings. XYZ Generator Shader (mental ray) XYZ Generator Material Editor > Any shader with a Coords parameter (or other vector value). > Click the shader button. > Material/Map Browser > XYZ Generator (3dsmax) Material Editor > mental ray Connection rollout > Unlock the Surface component and click the shader button. > Material/Map Browser > XYZ Generator (3dsmax) Material Editor > DGS material > Assign a shader to any component. > Material/Map Browser > XYZ Generator (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The XYZ Generator shader returns 3D mapping coordinates. You can use its settings to adjust a 3D map. The parameters for this shader are equivalent to parameters on the Coordinates rollout for 3D maps (page 2–1663). XYZ Generator Parameters Rollout Material Editor > Any shader with a Coords parameter (or other vector value). > Click the shader button. > Material/Map Browser > XYZ Generator (3dsmax) > XYZ Generator (3dsmax) Parameters rollout Material Editor > mental ray Connection rollout > Unlock the Surface component and click the shader button. > Material/Map Browser > XYZ Generator (3dsmax) > XYZ Generator (3dsmax) Parameters rollout Material Editor > DGS material > Assign a shader to any component. > Material/Map Browser > XYZ Generator (3dsmax) > XYZ Generator (3dsmax) Parameters rollout Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The parameters for this shader are equivalent to parameters on the Coordinates rollout for 3D maps (page 2–1663). Interface Interface The interface for this shader consists of two rollouts: XYZ Generator Parameters Rollout (page 2–1729) Shaders Rollout (XYZ Generator) (page 2–1730) CoordinateSystem—Chooses the source coordinate system. Default=0 (Object XYZ). • 0 is for Object XYZ. Object XYZ uses the object’s local coordinate system. • 1 is for Explicit Map Channel. Lets you use the MapChannel value to choose any channel from 1 to 99. • 3 is for World XYZ. MapChannel—When Explicit Map Channel is the coordinate system source, this value lets you set the 1729 1730 Chapter 16: Material Editor, Materials, and Maps map channel; otherwise, it is ignored. Range=1 to 99. Default=1. Offset—Moves the map pattern in X, Y, and Z. Default=(0.0, 0.0, 0.0). shaders, you can create a shader tree that generates complex effects. Interface Tiling—Tiles (page 3–1022) the map pattern in X, Y, and Z, and makes the pattern narrower. Default=(1.0, 1.0, 1.0). Angle—Rotates the map pattern in X, Y, and Z. Default=(0.0, 0.0, 0.0). Blur—Affects the sharpness or blurriness of the map based on its distance from the view. The farther away the map is, the greater the blurring. The Blur value blurs maps in world space. Blur is primarily used to avoid aliasing. Default=1.0. BlurOffset—Affects the sharpness or blurriness of the map without regard to its distance from the view. Blur Offset blurs the image itself in object space. Use when you want to soften or defocus the details in a map to achieve the effect of a blurred image. Default=0.0. Shaders Rollout (XYZ Generator) Material Editor > Any shader with a Coords parameter (or other vector value). > Click the shader button. > Material/Map Browser > XYZ Generator (3dsmax) > Shaders rollout Material Editor > mental ray Connection rollout > Unlock the Surface component and click the shader button. > Material/Map Browser > XYZ Generator (3dsmax) > Shaders rollout Material Editor > DGS material > Assign a shader to any component. > Material/Map Browser > XYZ Generator (3dsmax) > Shaders rollout Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. The controls on this rollout let you assign a map or shader to one of the basic parameters of the XYZ Generator shader. This is comparable to mapping a component of a standard material; by adding The button to the right of each main shader button is for shaders that can return multiple parameters. If a shader that returns multiple parameters is assigned to the component, the button’s tooltip shows the parameter name. Clicking the button displays a Connect Parameter To Shader dialog (page 2–1713), which lets you change which parameter is being used. Important: UV Coordinates (page 2–1728) and XYZ Coordinates (page 2–1730) are the only shaders with multiple return values provided with 3ds Max. You might encounter multiple return values in shaders provided with other shader libraries or custom shader code. XYZ Coordinate Shader (mental ray) Material Editor > Any shader with a Coords parameter or other vector value. > Click the shader button. > Material/Map Browser > XYZ Coordinate (3dsmax) Note: Shaders appear in the Browser only if the mental ray renderer is the currently active renderer. This shader is identical to the XYZ Generator shader (page 2–1729), except that it returns two values instead of one. • The XYZ coordinate (same value as XYZ Generator would return) Normal Bump Map This value is named XYZ. Interface • The XYZ coordinate’s derivative This value, also a vector, is named dXYZ. When you choose this shader, a Connect Parameter To Shader dialog (page 2–1713) is displayed, prompting you to choose which of the two values to use. You can later change the choice of value by using the “dot” button to the right of the main shader button. Normal—As a rule, contains a Normals map Interface generated by Render To Texture (page 3–144). The XYZ Coordinate shader has the same parameters as the XYZ Generator shader. See XYZ Generator Parameters Rollout (page 2–1729) for a description of the basic settings. Use the toggle to enable or disable use of the map (default=on). Use the spinner to increase or decrease the map’s effect. Normal Bump Map Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Normal Bump The Normal Bump map lets you use a texture-baked Normals map (see Baked Texture Elements (page 3–146)). Typically you assign it to a material’s Bump component, Displacement component, or both. Using the map for Displacement can correct edges that otherwise look unrealistically smooth; however, this adds faces to the geometry. Tip: A Normals map for the indicated material component is generated automatically if you turn on Output Into Normal Bump in the Selected Elements Unique Settings group of the Render To Texture dialog’s Output rollout (page 3–160). Additional Bump—This optional component can contain an additional map to modify the bump or displacement effect. It is treated as a regular bump map (page 2–1506). Use the toggle to enable or disable use of the map (default=on). Use the spinner to increase or decrease the map’s effect. Channel Direction group By default, the Normals map’s red channel indicates left versus right, while green indicates up versus down (and blue indicates vertical distance). The controls in this group let you adjust that interpretation. Flip Red (X)—Flips the red channel so that left and right are reversed. Flip Green (Y )—Flips the green channel so that up and down are reversed. Swap Red & Green—Swaps the red and green channels so that normal mapping rotates 90 degrees. 1731 1732 Chapter 16: Material Editor, Materials, and Maps Method group The Method group lets you choose which coordinate to use on the normals. These controls are the same as those in the Projection Options dialog (page 3–165). • Tangent—(The default.) Project at a tangent to the target object’s surface. This is the method to use for objects that both move and deform, such as animated characters. • Local XYZ—Project using the object’s local coordinates. This method can be used for stationary or moving objects, but not for objects that deform: if the object deforms, the projection will appear incorrect at some frames. • Screen—Project using screen coordinates; that is, flat projection in the Z axis. X is horizontal, increasing in a positive direction to the right; Y is vertical, increasing in a positive direction upward; and Z is perpendicular to the screen, increasing in a positive direction toward the viewer. This method is useful mainly for stationary objects seen only from a single angle; for example, a statue seen through a window. • World—Project using world coordinates. This is useful mainly for objects that don’t move or deform; otherwise, a moving object with world-projected normals will appear to “swim” through the texture. image-editing application, then use this adjusted image as a matte that is projected back onto the 3D geometry. Tip: Final rendering can be slow. Script-driven network rendering (page 3–173) can help improve performance. Limitations The Camera Map Per Pixel does not handle these situations: • Animated objects. The projection does not use UVW mapping. • Animated textures. • Occlusion based on a Z-depth channel is handled in a limited way only. Procedure To use Camera Map Per Pixel: 1. Create the 3D model. 2. Set up a camera. 3. Set up the rendering resolution you want. To get good results, the plate should be at least 2K pixels; 3K to 6K, or higher is recommended. 4. Render the scene to an editable image format such as TIFF (page 3–634). 5. Render the scene again, this time to a format such as RPF (page 3–631) that has a Z-depth component. Make sure the Z option is turned on. 6. Use an image-editing application to make Camera Map Per Pixel Map changes you want to the editable image. 7. Apply Camera Map Per Pixel to the diffuse Material Editor > Maps rollout > Click a Map button. > Material/Map Browser > Camera Map per Pixel The Camera Map Per Pixel map lets you project a map from the direction of a particular camera. It is meant as an aid to 2D matte painting: You can render a scene, adjust the rendering using an component (page 2–1498) of the geometry on which you want the matte to appear. Use these settings: • Set Camera to the same camera you used for the renderings. Camera Map Per Pixel Map • Set Texture to the matte image you edited. • Set ZBuffer Mask to the Z-depth rendering (the RPF or RLA file). Adjusting (which usually means increasing) the value of ZFudge can improve the quality of edges of the projection. Usually it is a good idea to have Remove Back Face Pixels turned on. Another way to adjust the projection edge is to adjust this control’s Angle Threshold. Tip: If you have persistent problems with seams, try generating a mask with an alpha channel and using it to clean up the edge of the projection. If you have multiple mattes to project, you might need to slice geometry to make each map’s target a separate object. Interface Once you have assigned a camera, its name appears on this button. This camera should be the one used to render the map used in the Texture and ZBuffer Mask components. Texture—Click to assign the texture to project. 3ds Max lets you assign any kind of map, but typically this will be a Bitmap (page 2–1631) that contains an image file that you first rendered from the same camera, then edited using a different application. ZBuffer Mask—Click to assign a map that contains Z-depth data used to mask the projection from unwanted surfaces. Typically this will be an RPF file (page 3–631) or an RLA file (page 3–630) rendered using the same camera, with the Z channel option turned on. Use the toggle to turn use of the ZBuffer Mask on or off. By default, it is off, and it is not turned on automatically when you assign the ZBuffer Mask. • ZFudge—ZFudge values other than 1.0 add a margin of deviation to the use of the Z-depth data, letting you fine-tune the Z-Buffer masking. Default=1.0. Mask—Behaves like the mask in the Mask map (page 2–1689): it lets you view one map through another. Black areas of the mask are transparent, white areas are opaque, and gray areas are partially transparent, based on the percentage of the gray. • Mask Uses the Camera Projection—When on, the mask uses the same camera projection as the Texture and ZBuffer Mask. When off, it uses the object’s UVW coordinates. Default=on. Map Channel—Sets which map channel to use. Default=1. Camera—Click to turn on, then select a camera in the scene by picking it in a viewport or using the Select Objects dialog (page 1–78). Remove Back Face Pixels—When on, sets the projection to exclude surfaces that face away from the camera, based on the value of Angle Threshold. Default=on. 1733 1734 Chapter 16: Material Editor, Materials, and Maps • Angle Threshold—Specifies the angle to use as a cutoff when removing backface pixels. Default=90.0. At the default of 90 degrees, faces perpendicular to the camera, or at a greater angle, are not projected. Material, Mapping, and Vertex Color Utilities Assign Vertex Colors Utility Utilities panel > Utilities rollout > More button > Utilities dialog > Assign Vertex Colors The Assign Vertex Colors utility assigns vertex colors based on the material assigned to the object and the lighting in the scene. The utility applies a VertexPaint modifier (page 1–936) to the object when Assign To Selected is clicked. Once the VertexPaint modifier has been applied to the object, go to the Modify panel or click Edit to access the VertexPaint tools. Tip: To render vertex colors, you must apply a Vertex Colors and Radiosity The Vertex Colors utility supports radiosity (page 3–51). If you use radiosity with assigned vertex colors, be sure to turn on the option Re-Use Direct Illumination From Radiosity Solution. This option is in the Rendering Parameters rollout. See Radiosity Controls (page 3–61). When this option is on, the renderer simply displays the vertex colors assigned by the radiosity solution: strictly speaking, it is not rendering at all. The additional option Render Direct Illumination, also on the Rendering Parameters rollout, causes direct lighting not to be saved in the corresponding mesh. This corresponds to the options Radiosity, Render Direct Illumination, in which case Assign Vertex Colors gets indirect illumination from the radiosity mesh but renders direct illumination separately; or Radiosity, Indirect Illumination Only, in which case Assign Vertex Colors doesn’t apply direct illumination to vertices at all. See also VertexPaint Modifier (page 1–936) Vertex Color Map (page 2–1693) Procedures material that has a Vertex Color map (page 2–1693) in its diffuse component. To view vertex colors in viewports, right-click the object, choose Properties (page 1–117) from the quad menu, and then turn on Vertex Color in the Display Properties group. To use the Assign Vertex Colors utility: The Assign Vertex Colors utility supports light inclusion or exclusion when using the Scene Lights option. 3. Select the objects you want to affect. All of the commands found within the Assign Vertex Color utility are also available from the Modify panel when a VertexPaint modifier has been applied to an object. 5. Access the Assign Vertex Colors utility. 1. Assign materials to the objects you want to affect. These can be mapped or unmapped materials. 2. Light the objects. 4. Expand the Display Properties rollout in the Display panel and turn on Vertex Colors. 6. Choose one of the Light Model options. 7. Choose one of the Color Assignment choices. 8. Click Assign to Selected. Assign Vertex Colors Utility VertexPaint modifiers are applied to the selected objects, and the vertex colors for the objects are taken from their materials and from the lighting in the scene, depending on the options you choose under Light Model. 8. Move down in the Stack to the creation Changing the material or the lighting in the scene won’t change the vertex colors. To do this, click the Update All button. 9. Return to the VertexPaint level of the stack, Note: The new vertex colors are stored in the Vertex Paint modifier. If you want to access them, go to the Modify panel and access the parameters in the rollouts there. You can also use the tools found in the Vertex Paint floating dialog to create layers, paint, blur or adjust color. The Vertex Paint floater launches when you go to the Modify panel and the object is selected. Example: To use the Assign Vertex Colors utility on a specific object: 1. Create a sphere with 24 segments. 2. Apply a mapped material to the sphere, and turn on Show Map In Viewports. The mapped sphere is displayed in the viewport. 3. Open the Object Properties dialog for the sphere, turn on Vertex Colors, and click OK. 4. With the sphere selected, open the Assign Vertex Colors utility. 5. Choose Shaded and turn on Use Maps. 6. Click Assign To Selected. A blurred version of the mapping appears on the sphere. The vertices are now colored based on the material and the lighting in the scene. The mapping is blurred because the resolution of the mesh at 24 segments is much lower than the pixel resolution of the map. 7. Go to the Modify panel and note the VertexPaint modifier. parameters, click Yes at the warning prompt, and increase the Segments to 70. The new vertices shift the already assigned vertices. and click Assign in the Assign Vertex Colors rollout. Had we returned to the Utilities panel, we would have added another Vertex Paint modifier to the stack; clicking Assign in the VertexPaint Modifier only updates that modifier. Tip: Vertex colors will only show up in a rendered scene if you assign the Vertex Color map to the diffuse channel. However, if you do this, you can’t properly update your vertex colors with the Assign Vertex Colors utility. The solution is to assign a Blend material to your object. Assign the straight diffuse bitmap to Material 1, and the Vertex Color map to Material 2 of the Blend. Switch to 100 percent of Material 2 when rendering, and 100 percent of Material 1 when updating the vertex colors. 1735 1736 Chapter 16: Material Editor, Materials, and Maps Interface Channel group Here you’ll find tools to choose which channel type the vertex color utility will assign. If you choose map channel, you can also specify the map channel ID number. • Vertex Color—Choose this to assign a vertex color layer. • Vertex Illum—Choose this to assign a vertex lighting layer. • Vertex Alpha—Choose this to assign a vertex transparency layer. • Map Channel—Choose this to assign a specifically numbered map channel. Map channel spinner—Use this to define the channel number. Available only when Map Channel is chosen. Name—If a channel has a name defined, it will appear here. Channels can be named using the Channel Info Utility (page 2–1738). Note: Although the Color, Illum, and Alpha channels have specific names, in fact 3ds Max does not enforce what kind of data is saved in them, and any of the three channels can contain four-channel (RGBA) vertex color data. Light Model group Provides options that let you specify how the surface of the object appears to be illuminated. Assign Vertex Colors Utility Rendering Options group The options in this group let you choose whether to include shadows, texture maps, or a radiosity solution in vertex colors. Note: You can save a radiosity solution in • Lighting + Diffuse—Uses the current scene lighting and materials to affect the vertex colors. vertex colors, but not Light Tracer (page 3–44) illumination, which is not stored in the scene’s geometry. • Lighting Only—Uses only lighting to assign vertex colors, ignoring material properties. When this option is chosen, Shadows and Mapping are disabled in the Rendering Options rollout. • Diffuse—Uses the material’s diffuse color, ignoring the lighting. Color Assignment group Lets you specify how colors are interpolated across surfaces. Shadows—When on, shadows are used when the • Color by Face—(The default.) Colors are interpolated between the center of each face. Color By Face samples fewer points, so it is the quicker method. On the other hand, results are less accurate. • Color by Vertex—Colors are interpolated between vertices. For each face, this method uses three points instead of one, so it is slower but usually more accurate. An exception can occur when an object’s shadow falls between two vertices: in such a case, the object should occlude lighting, but because only vertices are taken into account, the shadow is not calculated and a “light leak” occurs. vertices are shaded. Default=off. Tip: You can soften the shadow edge by using the VertexPaint modifier’s Paint or Blur tools. Mapping—When on, texture maps are used when the vertices are shaded. Default=off. The radio buttons specify how to use radiosity data. • No Radiosity—(The default.) Do not use the radiosity solution when assigning vertex colors. Note: This option is the only one available unless a radiosity solution (page 3–51) is present in the scene. 1737 1738 Chapter 16: Material Editor, Materials, and Maps • Radiosity, Reuse Direct Illum. from Solution—Includes radiosity in the vertex color assignments, and uses the direct illumination from the solution. This is comparable to the choice Re-Use Direct Illumination From Radiosity Solution on the Rendering Parameters rollout (page 3–71). This choice disables the Shadows toggle, because shadows don’t need to be recomputed. • Radiosity, Render Direct Illumination—Includes radiosity in the vertex color assignments, but uses a separate pass to render direct illumination. This is comparable to the choice Render Direct Illumination on the Rendering Parameters rollout (page 3–71). • Radiosity, Indirect Illum. Only—Includes only indirect illumination from the radiosity solution in the vertex color assignments. This choice disables the Shadows toggle, because shadows don’t need to be recomputed. Reminder field—Displays a message that says whether regathering is enabled or disabled. Regathering provides the most accurate radiosity results, but it can add considerable time to radiosity calculations. Radiosity Setup—Click to display the Advanced Lighting panel (page 3–44) of the Render Scene dialog, where you can set up and generate a radiosity solution. This button is not available if the mental ray renderer is the active renderer. modifier and adds it to the stack of the selected objects. Edit—Click to display the VertexPaint Paintbox (page 1–941), the floating dialog that holds the vertex painting tools. This button is unavailable if you haven’t yet clicked Assign To Selected. Channel Info Utility Utilities panel > More button > Channel Info > Click Channel Info button. Tools menu > Channel Info The Channel Info utility gives game artists and others direct access to objects’ channel information that might not otherwise be easily available. All objects in 3ds Max have mapping channels, which hold information pertinent to texture mapping as well as vertex color, illumination, and alpha. Mesh objects also have geometry and vertex-selection channels. The Channel Info utility lets you view an object’s channels, give them meaningful names, delete unused channels, and copy information between channels. The utility’s Map Channel Info dialog shows all the channel data for selected objects. It displays the number of channels, the number of vertices per channel, and how much memory the channel uses. It also lets you name channels, as well as clear (or delete), copy, and paste channels. Each of these commands except renaming puts a modifier on the stack to achieve the results. Note: Channel Info supports mesh, polygon, and patch objects. It does not support NURBS objects. Assign to Selected—Assigns vertex colors to the selected objects based on the assigned material, and the choices specified in the preceding group boxes. Assign to Selected creates a VertexPaint See also This map and utility and these modifiers work in conjunction with Channel Info: Vertex Color Map (page 2–1693) Channel Info Utility Skin Utilities (page 2–700) Select By Channel Modifier (page 1–785) UVW Mapping Add Modifier (page 1–933) UVW Mapping Clear Modifier (page 1–933) UVW Mapping Paste Modifier (page 1–934) Procedure To use the Channel Info utility: 6. To minimize a channel’s memory footprint, click the channel and then click the Clear button. This removes most all or of the data from the channel, so first make sure the data is unnecessary or is available elsewhere. If the cleared channel is the last one in the list, it might be deleted from the list. Interface This procedure is a guide to basic usage of the Channel Info utility. For more detailed usage methods and examples, see the tutorial Using the Channel Info Utility. 1. Select an object or objects to use with the utility. 2. Open the utility. The Map Channel Info dialog opens. 3. To create a map channel, click any channel and then click the Add button. The new, empty channel appears at the end of the list. 4. Most channels have three components. For example, a mesh or map channel has X, Y, and Z components, and an alpha channel has R, G, and B components. To expand all three-component channels, click the SubComp button. To collapse all expanded channels, click SubComp again. 5. To copy one channel to another, click the source channel, click Copy, and then click the destination channel and click Paste. In some cases, you might need to expand or collapse the component display (see previous step). For example, when copying a vertex selection (vsel) channel to a map channel, you must paste the vsel channel to a component channel. The primary user interface of the Channel Info utility is the Map Channel Info dialog, which you open by clicking the utility’s Channel Info button on the command panel. This modeless dialog shows information about all map channels belonging to the current selection, at the object level. If you change the selection, the dialog automatically updates to reflect the selection. The dialog consists of two parts: a button toolbar at the top, and a tabular display of map channels belonging to each object in the current selection. Channel Info toolbar Copy—Copies the channel data from the highlighted channel to the copy buffer, where it becomes available for pasting. After you copy a channel, its name appears on the line below the button toolbar. Paste—Pastes the contents of the copy buffer to the highlighted channel. 1739 1740 Chapter 16: Material Editor, Materials, and Maps You can copy and paste only between channels with the same topology, or you can copy from any channel to a channel with no vertices. Source and destination channels need not be of the same type. For instance, you can copy from a mesh channel to a map channel, and vice-versa. Name—Lets you rename the highlighted channel. Click this button to open a small dialog that displays the current channel name and lets you edit this name or enter a new one from the keyboard. Clear—Use this function to remove channels or delete data from a map channel (including alpha, illumination, and vertex color channels). Clear has no effect on geometry or vertex selection channels. The specific result depends on the type of object and which channel you clear. In terms of reducing the object’s memory footprint, the utility is most effective with Editable Poly objects. • Geometric primitive or Editable/Edit Mesh object—Deletes the highlighted texture map channel if it is the last map channel in the object, and it’s not the default map channel (1:map). If the highlighted channel is not the last, Clear deletes all vertices in the channel. The faces remain, so the memory-footprint reduction is partial. Note: This also applies to objects that collapse to editable mesh, such as Loft objects. • Editable Poly object—Deletes the highlighted texture map channel if it is the last map channel in the object, and it’s not the default map channel. If the highlighted channel is not the last, Clear deletes all vertices and faces in the channel. • Patch object—Deletes the highlighted texture map channel if it is the last map channel in the object, and it’s not the default map channel. If the highlighted channel is not the last, Clear has no effect. Note: When you use the Clear function, the software adds a UVW Mapping Clear modifier to the object’s modifier stack. You can recover the deleted data by removing the modifier from the stack, or changing its Map Channel setting. Add—Appends a new map channel to the object’s channel list. If multiple objects are selected, Add becomes available only after you click a track, so the software knows which object to add the channel to. Note: If you apply mapping with a channel number higher than any existing channels, the software automatically creates all intermediate channels. For example, if you apply a UVW Mapping modifier to a standard object and set Map Channel to 5 in the modifier, the software adds map channels 2, 3, 4, and 5. SubComp—Toggles display of the channels’ subcomponents. When displayed, you can rename, copy, and paste each subcomponent independently of its parent channel. Each channel except vsel has three subcomponents. Mesh and map channels’ subcomponents are labeled X, Y, and Z; those of alpha, illumination, and vertex color channels are R, G, and B (red, green, and blue). Lock—Retains the current mapping data information in the table even if you change the selection. For example, if you want to see mapping data for a specific object or objects constantly, first select the objects and then click Lock. Thereafter, if you select different objects in the viewport, the table continues to display the data for the selection when you clicked Lock. If you turn off Lock, the table updates to show data only for the current selection. If you click Update when Lock is on, the software will refresh the table contents to reflect the current selection, and then retain that data. Channel Info Utility Update—Refreshes the displayed data to reflect any changes in the objects or mapping, or, when Lock is on, the selection. For example, if you apply mapping to an object, or change its mapping, click Update to display the changes in the Map Channel Info dialog. Channel Info table The table functions similarly to a spreadsheet. If not all rows or columns are visible, you can scroll the table using standard methods, including rolling the mouse wheel for vertical scrolling. To highlight a row, click anywhere in the row. You can highlight only one row at a time. To resize a column, drag the vertical divider at the right of the column heading. To automatically set a column’s width to the size of the longest entry, double-click the vertical divider to the right of the column heading. Following is a brief explanation of each of the columns in the table: Object Name—The name of the object. If you change the name in the Modify panel, click the dialog’s Update button to display the new name in the dialog. ID—The type of channel. The available channel types are: • mesh/poly—The object’s mesh or poly data, depending on whether it’s a mesh or poly object: vertices and faces. You can copy this channel and paste it to any other three-component channel. This channel is not available for patch objects. • vsel—The vertex selection. You can copy this channel and paste it to other channels’ subcomponents. This channel is not available for patch objects. • -2:Alpha—The vertex alpha channel. You can transfer all vertex alpha values between objects with the same topology by copying and pasting this channel. You can apply vertex alpha information to objects with the VertexPaint modifier (page 1–936), and to editable surfaces with the Vertex Properties settings (editable poly (page 1–1034)) and Surface Properties (editable mesh (page 1–1005) and editable patch (page 1–978)). • -1:Illum—The vertex illumination channel. You can transfer all vertex illumination values between objects with the same topology by copying and pasting this channel. You can apply vertex illumination information to objects with the VertexPaint modifier (page 1–936), and to editable surfaces with the Vertex Properties settings (editable poly (page 1–1034)) and Surface Properties (editable mesh (page 1–1005) and editable patch (page 1–978)). • 0:vc—The vertex color (vc) channel. You can transfer all vertex color values between objects with the same topology by copying and pasting this channel. You can apply vertex color information to objects with the VertexPaint modifier (page 1–936), and to editable surfaces with the Vertex Properties settings (editable poly (page 1–1034)) and Surface Properties (editable mesh (page 1–1005) and editable patch (page 1–978)). • 1:map—The default mapping channel. You can transfer all UVW mapping information between objects with the same topology by copying and pasting this channel. You can create additional mapping channels by various means, including with the Channel Info utility. Channel Name—The name of the channel. By default, a channel has no name, as indicated by the entry “-none-”. To name or rename the channel, click the channel to highlight it and then click the Name button at the top of the dialog, or right-click 1741 1742 Chapter 16: Material Editor, Materials, and Maps the channel and choose Name from the right-click menu. choose to remove any unused sub-materials, thus consolidating your Multi/Sub-Object materials. Note: Most channels can be split into subcomponents. You can name the subcomponents separately from the channel itself. This utility searches an entire scene. You do not need to select objects or materials. Num Verts—The number of vertices in the channel. Procedures To paste one channel to another, they must have the same number of vertices. To clean all materials: Some channels have faces but no vertices. This is typically the case with Alpha, Illumination, and vertex color channels in newly created non-poly objects. In such cases, these channels function as placeholders for the corresponding data should you add it later. They do consume a small amount of memory, so if you have no intention of using a channel, you can save some memory by converting the object to Editable Poly. 2. On the Material Editor, open the Utilities menu 1. Open a scene. and choose Clean MultiMaterial. The Clean Multi-Materials dialog opens, displaying the following: Num Faces—The number of faces in the channel. If a channel has faces but not vertices, that means it’s a placeholder. See Num Verts, above, for more information. Dead Verts—The number of unused map vertices in the channel. Such vertices can be left over from sub-object editing. Size(KB)—The approximate amount of memory consumed by the channel. Use this figure to check for unused channels that are using up memory. Clean MultiMaterial Utility Material Editor > Utilities menu > Clean MultiMaterial Select an object. > Utilities panel > More button > Clean MultiMaterial > Click Find All button. The Clean MultiMaterial utility parses Multi/Sub-Object materials and displays any that contain sub-materials are not assigned to any material IDs in the scene. You can then The dialog displays a list of all Multi/Sub-Object materials that contain unassigned sub-materials. All the Multi/Sub-Object materials are automatically turned on, and thus subject to cleaning. 3. Click the OK button. Clean MultiMaterial Utility All unused sub-materials are deleted and the dialog closes. To clean specific Multi/Sub-Object materials: When you create a Multi/Sub-Object material, you might create extra sub-materials in anticipation of objects that haven’t been added to the scene yet. In such cases, you can prevent the utility from removing the extra sub-materials. 1. Open a scene. 2. On the Material Editor, open the Utilities menu and choose Clean MultiMaterial. The Clean Multi-Materials dialog opens. 4. Click OK. All unused sub-materials are deleted from the indicated materials and the dialog closes. 3. In the list, turn off any Multi/Sub-Object materials you do not want to clean. 1743 1744 Chapter 16: Material Editor, Materials, and Maps Interface name to turn it off and prevent the utility from cleaning it. Clean—Deletes unused sub-materials from Multi/Sub-Object materials that are turned on. Cancel—Cancels the operation. Instance Duplicate Maps Utility Material Editor > Utilities menu > Instance Duplicate Map Utilities panel > More button > Instance Duplicate Maps > Click Find All button. The Instance Duplicate Maps utility searches an entire scene for materials that have duplicate Bitmap maps and give you the option to instance them. If your scene has different materials that use the same texture maps, creating instances will reduce the load on your video card, which can improve viewport performance. The Clean dialog presents you with a list of all Multi/Sub-Object materials in the scene that contain unassigned sub-materials. You can then select materials from which to remove unassigned sub-materials. The dialog consists of two parts: a status field at the top and a list of Multi/Sub-Object materials. Status Field The Status Field is not interactive. It displays prompts about the unused materials. Materials list This list displays Multi/Sub-Object materials that have sub-materials that are not currently being used in the scene. When the Clean MultiMaterial utility opens, it lists all Multi/Sub-Object materials with unused sub-materials and turns them on to be cleaned. Click the check box next to a material For example, if you render a scene containing three materials that reference the texture map MyMap.bmp, the software searches for that texture map three times: once for each material it is used in. However, if you use the Instance Duplicate Maps utility, you can create instances of the duplicate maps so the renderer will find the first reference to MyMap.bmp and use it for any subsequent material that uses the same maps. This utility searches an entire scene. You do not need to select objects or materials. Note: In order to be eligible for instancing, the Bitmap maps must be identical in all aspects with regard to their initial settings. For example, if two materials use the same bitmap image applied as Diffuse maps, but have different initial Tiling settings, their maps aren’t eligible for instancing. Animation is not supported as a criterion for determining duplication, so any differences in the animation of Bitmap map parameters will be Instance Duplicate Maps Utility lost from the use of this utility. For example, if two materials use the same bitmap image applied as Diffuse maps, and have the same initial Tiling settings, but their Tiling settings are animated to different subsequent values, after using the utility both maps will have the same animation as the first map. Procedures To instance all duplicate maps: To instance only specific maps: Perhaps you only want to instance a few of the texture maps found in specific materials. Note: You have to select at least two maps from the Duplicates list 1. Open a scene. 2. On the Material Editor, open the Utilities menu and choose Instance Duplicate Map. The Instance Duplicate Maps dialog opens. 1. Open a scene. 2. On the Material Editor, open the Utilities menu and choose Instance Duplicate Map. The Instance Duplicate Maps dialog opens, displaying the following: 3. From the Duplicated Textures list, click the arrow button to open the list of duplicated textures and choose a texture you want to instance. The dialog displays a list of all texture maps found to have exact duplicates in the scene. The search will include all copies found to have identical paths and settings. 3. Click the Instance All button. All identical maps are instanced and the dialog closes. 1745 1746 Chapter 16: Material Editor, Materials, and Maps 4. From the Duplicate list, select at least two map entries. Since all three of the maps were instanced, the dialog now shows there are 42 duplicated textures. 6. Continue instancing texture or click Close when you are done. Interface If you don’t select at least two entries, you will see a warning in the status field at the top of the dialog. 5. Click Instance. The primary user interface of the Instance Duplicate Maps utility is the Instance Duplicate Maps dialog, which you open from the Utilities menu in the Material Editor. This utility works Instance Duplicate Maps Utility globally, so you do not need to select objects or materials in order to use it. The dialog consists of three parts: a status field at the top, a drop menu containing duplicated texture maps and a list of map names and the materials that belong to. Status Field The Status Field is not interactive. It shows you prompts and warnings about the duplicate textures and maps. Some of the messages displayed in this section include: • “No duplicate textures were found in the scene.” – when the utility is run in a scene containing no duplicates. • “Select duplicates and press “Instance” to consolidate.” – when the utility is run in a scene containing duplicates. • “The selected duplicates contain parameters that are animated. Animation is not supported as criteria for determining duplication so differences in the animation will be lost.” – when animation is present in a set of duplicates. • “At least two maps must be selected in order to proceed.” – when the Instance button is pressed with one or no duplicates selected. Duplicated Textures list This drop-down list contains all the maps in the scene found to be identical in every way, including texture map path and name, and initial parameter settings. The number after “Duplicated Textures” indicates how many sets were found in the scene. This list appears with the first entry visible and once active can be scrolled using the up/down arrow keys. Duplicates list When you choose a texture in the Duplicated Textures list, the software displays its duplicates in the Duplicates list, showing the map name and the name of the parent material. The number after “Duplicates” indicates how many copies were found in the scene. Textures in this list can be chosen individually. Only duplicates chosen in this list will be consolidated into the final instance if you click the Instance button. The name of the resulting instance is that of the first chosen duplicate in the list. Instance All—Performs the consolidation on all duplicates in the scene regardless of selections made from the Duplicated Textures or Duplicates lists. Instance—Performs the consolidation on only the duplicates chosen on the Duplicates list. Selected duplicates will disappear from this list after consolidation. If all are selected, the corresponding texture will disappear from the first list as well. Close—Closes the operation at its current point. 1747 1748 Chapter 16: Material Editor, Materials, and Maps index Index Symbols & Numerics A 1-rail sweep surface 1–1204 2 3 4 links 2–1111, 2–1150 2 feet down 2–988, 2–997 2.5D snap 2–35 2-point perspective 2–1392 2-rail sweep surface 1–1209 2-sided 3–855, 3–901 2D 2D coordinates rollout 2–1625 2D images 3–608 2D maps 2–1624 2D snap 2–35 2D map glossary 3–901 32–bit floating-point output 3–613 3D 3D coordinates rollout 2–1663 3D maps 2–1662 3D snap 2–35 viewing and navigating 3D space 1–21 3D displacement shader (mental ray) 2–1714 3D DWF exporting 3–555 glossary 3–901 3D map glossary 3–902 3DS files 3DS import dialog 3–530 exporting 3–532 importing 3–530 3ds Max bones 2–834, 2–1080 knowledge of 2–832 main window 1–9 materials 3–83 3dsmax.ini file 1–17 to 1–18 about about MAXScript 1–xvii buttons 2–1106 footstep animation 2–856 freeform animations 2–886 absolute 2–1150 absolute snap 2–35, 2–41 absolute/offset coordinate display 3–709 abut selected (video post) 3–329 acceleration (raytrace) 2–1531 acceleration techniques (raytracer) 2–1528 acceleration test (particle flow) 2–233 accuracy 2–120, 3–815 AccuRender materials in 3ds Max 3–455 actions (particle flow) 2–141, 3–903 action recovery 2–121 adding 2–131 and order/priority 2–124 and time frames 2–141 editing parameters 2–131 order of 2–123, 2–130 activate all maps 1–50 activate options 2–974 activating grid object 2–34 home grid 2–34 joint axes 2–485 maps 1–50 activating footsteps 2–865 active 2–1136 active link (glossary) 3–903 active time segment 2–286 active time segment (glossary) 3–904 active viewport 1–22 active/inactive footsteps 3–904 1750 Index ActiveShade 3–17 commands (quad menu) 3–22 floater 3–21 glossary 3–904 quick render 3–17 viewport 3–21 actual stride height 2–992, 2–995 actual stride length 2–992, 2–995, 2–997 actual stride width 2–992, 2–995, 2–997 adapt locks 2–871, 2–980, 3–905 adaptation 3–905 adapting keyframes to edits 2–871 keys to footstep edits 2–871 adaptive antialiaser dialogs 2–1533 to 2–1534 adaptive control 1–167, 1–828, 2–1534, 2–1698 adaptive degradation glossary 3–905 override 1–34 viewport configuration dialog 3–859 adaptive subdivision dialog 1–706 add alpha compositor (video post) 3–381 atmosphere 2–1351, 3–304 contrast filter (video post) 3–343 cross fade compositor (video post) 3–381 default lights to scene 1–49 effect 2–1351 external event (video post) 3–340 fade filter (video post) 3–344 image alpha filter (video post) 3–344 image filter event (video post) 3–335 image input event (video post) 3–332 image layer event (video post) 3–337 image output event (video post) 3–339 lens effects filter (video post) 3–345 loop event (video post) 3–342 negative filter (video post) 3–345 note track (Track View) 2–552 pseudo alpha compositor (video post) 3–382 pseudo alpha filter (video post) 3–346 scene event (video post) 3–329 simple additive compositor (video post) 3–383 simple wipe compositor (video post) 3–383 simple wipe filter (video post) 3–347 starfield filter (video post) 3–347 time tag dialog 3–710 visibility track 2–556 add change option 2–1108 add keys function curves 2–581 Track View toolbar 2–560 add layer 2–326, 2–334 add selection to current layer 3–667 add texture elements dialog 3–164 add to track set 2–591 add twist pose 2–950 add/edit DBR host dialog 3–128 adding comments (particle system) 2–134 editable spline vertices 1–297 footsteps 2–863 poses 2–1096 splines 1–303, 1–308 adding controllers to bipeds 2–896 additive opacity (glossary) 3–906 adjust animation range (track bar) 3–703 adjust color dialog vertexpaint modifier 1–949 adjust pivot rollout 2–488 adjust talent pose option 2–1065 adjust transform rollout 2–489 adjusting default envelope shape 2–1086 keys in Track View 2–875 link parameters 2–1091 normals and smoothing 1–166 object transforms 2–432 pivots 2–423 talent pose 2–1065, 3–906 Adobe Illustrator files exporting 3–534 importing AI 88 format 3–533 advanced effects rollout 2–1341 advanced file link settings 3–431 advanced key info 2–306 advanced lighting object properties 1–123 select advanced lighting rollout 3–44 advanced lighting override material 2–1601 advanced quad menu options 3–801 advanced ray-traced parameters rollout 2–1356 advanced rollout 1–791 advanced shaders rollout mental ray material 2–1548 advanced surface approximation dialog 1–1245 AEC design elements 1–210 AEC extended 1–210 editing wall objects 1–228 foliage 1–214 railing 1–217 wall 1–223 affect region 1–557 soft selection rollout (EMesh) 1–963 soft selection rollout (NURBS) 1–1147 affine transformation (glossary) 3–906 Index after trajectory 2–944 age test 2–211 AI import dialog 3–524 airborne option 2–988, 2–995, 2–997 airborne periods 2–878, 3–906 aliasing/antialiasing alias against background 3–826 and supersampling 2–1459 fast adaptive 2–1533 filters 1–567, 3–38 glossary 3–907 multiresolution adaptive 2–1534 align 1–462 align geometry dialog (edit poly) 1–679 and pivot point 2–488 camera 1–468 dialog 1–462 editable mesh objects 1–1011 editable mesh vertices 1–1011 flyout 1–462 grid to view 2–35 keys (Track View) 2–556 normals 1–465, 2–10 objects 2–8 selected left (video post) 3–328 selected right (video post) 3–328 to view (dialog) 1–468 to view (toolbar) 1–468 all bipeds 2–944 all links 2–1150 allow non-vertical jambs 1–210 alpha channel 3–272, 3–907 alpha compositor (video post) 3–381 alpha map (baking) 3–149 alternate 2–992, 2–995, 2–997 altitude (sunlight and daylight systems) 1–421 ambient and diffuse map lock 2–1474 and raytrace materials 2–1514 color (glossary) 3–908 light 2–1276, 2–1279 to 2–1280, 3–908 lighting (rendered environment) 3–272 mapping 2–1497 ambient occlusion map (baking) 3–149 analysis of lighting 3–76 analyze errors 2–1017 analyze panel 2–1017 analyzing Shockwave 3D files 3–585 W3D files 3–585 anatomy of biped 2–846 anchor (VRML97 helpers) 3–597 anchor patches 1–968 anchors 2–962 angle 1–286, 2–1070 transition editor 2–1051 angle of incidence 2–1276, 2–1279 angle separation 3–826 angle snap 2–37 angular dashpot 2–732 animatable IK attachments to 3ds Max objects 2–908 animated bitmap 2–1450 material previews 2–1450 reference objects (particle flow) 2–178 texture 3–908 animating a biped with footsteps 2–856 a tablecloth (FFD(cylinder) space warp) 2–95 attachment 2–433 cameras 2–1381 lens effects properties (video post) 3–349 lights 2–1282 links 2–430 materials 2–1449 NURBS models 1–1099 parameters 2–121 scene 1–8 shift+rotate 1–482 shift+scale 1–482 sub-object geometry 1–998 transforms 1–432 vertices 2–346 with applied IK 2–481 with IK solvers 2–446, 2–461, 2–472 with interactive IK 2–480 animating a quadruped 2–907 animating hair 1–520, 1–540, 1–545 animation and particle system time frames 2–123 auto key mode 2–278 combining animations 2–1026 concepts 2–275 to 2–276 constraints 2–392 controllers 2–307, 3–909 dynamics & adaptation rollout 2–980 expanding tracks 2–886 glossary 3–909 hair and fur modifier 1–520, 1–540, 1–545 importing and exporting 2–921 importing from another scene 3–466 insert animation 1–114 layers 3–910 loading 3–474 mapping 3–478 to 3–479, 3–481 methods 2–275 1751 1752 Index NURBS 1–1091 preferences settings 3–828 previewing animations after attaching Physique 2–1084 sample animations in this release 2–920 saving 3–476 selecting and moving tracks 2–886 show ghosting 1–46 tips (NURBS) 1–1099 toggle animation mode 2–278 utilities 2–653 with radiosity 3–60 animation controls 3–716 animation layer weight 2–325 to 2–326 animation layers 2–325 to 2–326, 2–333 to 2–334, 3–690 animation layers toolbar 3–690 animation menu 3–681 bone tools 1–411 constraints 2–371, 2–392 to 2–393, 2–396, 2–398, 2–401, 2–406, 2–409 create bones 1–404 dummy 2–16 IK solvers 2–440, 2–473 make preview 3–168 parameter collector 1–138 parameter editor 1–129 previews 3–168 rename preview 3–170 view preview 3–170 wire parameters 2–411 to 2–412 animation mode set key 2–280 animation modifiers 1–557 animation quad menu 3–697 animation range ignore 2–521 respect 2–521 animation workbench 2–1012 anisotropic highlights 2–1492 anisotropic shader anisotropy mapping 2–1504 basic parameters rollout 2–1480 ankle attach option 2–846, 2–984 ankle tension 2–959 antialiasing 3–98, 3–939, 3–1005 append .mfe file 2–1032 motion flow editor 2–1032 append footsteps 2–863, 2–936 applied ik glossary 3–910 applied IK 2–439, 2–481, 2–491, 2–497 apply ease curve 2–584 apply ease or multiplier curve (Track View) 2–584 apply increment 2–962, 2–965 apply multiplier curve 2–584 applying materials 2–1405, 2–1409 arc 1–274 arc rotate 3–744 arch & design material main reference 2–1549 overview 2–1562 tips & tricks 2–1569 architectural material 2–1535 advanced lighting override rollout 2–1540 and radiosity solution 2–1540 physical qualities rollout 2–1536 special effects rollout 2–1539 templates rollout 2–1536 archive file menu 3–499 program (files preferences) 3–819 archiving scenes 1–19 area light rollout 2–1354 area light sampling rollout 2–1354 area lights 3–910 omni 2–1298 spotlight 2–1299 area omni light 2–1298 area shadows 3–911 area shadows rollout 2–1357 area spot light 2–1299 arms arm link 2–984 resizing 2–852 turning on 2–846 array 1–450 arraying objects 1–484 button 1–450 creating 1–471 creating arrays 1–487, 1–489 dialog 1–450 flyout 1–448 using the array dialog 1–485 array dialog 1–450 array flyout 1–448 artificial light 2–1280 ASCII files: exporting 3–534 ASE files 3–534 aspect ratio 3–30, 3–911 assemblies and groups 1–98 and selection sets 1–98 attach to 1–111 close 1–109 create 1–107 disassemble 1–110 Index explode 1–110 open 1–109 using 1–98 assembly commands 1–107 assembly heads helper objects 1–111 assembly menu assemble 1–107 attach 1–111 detach 1–110 disassemble 1–110 explode 1–110 asset browser 3–504 internet download dialog 3–515 preferences 3–514 using 1–17 asset tracking dialog 3–487 icons 3–498 open from vault 3–389 asset tracking dialog 2–920, 3–487 asset tracking dialog icons 3–498 asset tracking prompts 3–498 assign controller (Track View) 2–546 controller rollout (motion panel) 3–774 material to selection 2–1441 object effects dialog 2–696 random colors 1–161 vertex colors utility 2–1734 assign controller rollout (character studio) 2–934 assign random colors 1–161 assign renderer rollout 3–35 assign to link 2–1089, 2–1150 assigning colors to objects 1–159 controllers 2–292 materials 2–1405, 2–1409 associate bipeds with delegates 2–1199 associate objects with delegates 2–1196 assume skin pose 1–116 asterisk (in modifier stack) 1–508 atmospheres and effects adding atmosphere 3–276 and raytracing 2–1528 atmospheric effect 3–272, 3–282, 3–284, 3–288 for atmospheric apparatus 3–304 for lights 2–1349 atmospheric apparatus 3–304 BoxGizmo 3–304 CylGizmo 3–306 SphereGizmo 3–307 attach attach options 1–1018 attaching and importing 3ds Max objects 1–1120 controls dialog (block controller) 2–388 editable mesh edges 1–1011 editable mesh vertices 1–1011 editable patch object 1–986 object 1–968, 1–988 splines 1–295, 1–297, 1–308 to assembly 1–111 to groups 1–106 attach points/tendon 2–1147 attach to deforming mesh constraint 2–799 attach to node 2–1106 attach to rigid body constraint 2–798 attached links 2–1147 attaching mesh to a biped using Physique 2–1106 tendon to another link 2–1096 attachment animating 2–433 constraint 2–393 attachments (IK) 3–912 attenuation 2–1276, 2–1279, 3–912 and lights 3–821 parameters 2–1345 raytrace attenuation rollout 2–1706 attribute holder modifier 1–559 attributes (custom) 1–129 audio controller 2–309, 2–386 AudioClip (VRML97 helpers) 3–606 auto 2–1070 auto clip names 2–1027 auto expand animated 2–527 base objects 2–527 keyable 2–527 materials 2–527 transforms 2–527 xyz components 2–527 auto key 2–278, 3–717 and set key 2–280 auto termination rollout 2–499 auto timing 2–992, 2–995, 2–997 AutoCAD blocks 3–456 to 3–457 importing DWG and DXF files 3–536 importing DXF files 3–551 instanced objects 3–456 AutoCAD Architecture files 3–444 materials 3–445 objects 3–444, 3–461 styles 3–461 AutoCAD blocks in 3ds Max 3–441 1753 1754 Index AutoCAD DWG/DXF import options dialog 3–536 AutoCAD, AutoCAD Architecture, and Revit working with 3–440 autodesk inventor files importing 3–552 Autodesk Vault 3–487 Autodesk VIZ files 3–525 autogrid 3–913 AutoGrid 2–7 automatic auto archive 3–819 auto backup 1–19, 3–819 auto secondary (lens effects) 3–238 auto termination (IK) 2–499 automatic exposure control 3–295 unit conversion 3–815 automatic mapping rollout rendering to texture 3–163 autoplay preview file 3–815 AVI files 3–168, 3–609 avoidance behavior 2–1164, 2–1211, 3–913 preventing collisions 2–1240 awning window 1–256 axis constraints 1–437, 3–687 and hierarchies 2–500 and rollouts 2–500 and snaps 2–41 axis constraints toolbar 3–687 axis order 2–916, 2–948 axis ordering 2–1012 axis tripod 1–45 and transform managers 1–433 and World Axis 1–424 axonometric views 1–24, 3–913 azimuth (sunlight and daylight system 1–421 B B-spline (glossary) 3–913 backburner network rendering 3–201, 3–208 Backburner 3–173 backburner command line control 3–215 backface cull on object creation 3–821 backfacing - ignore 1–996, 1–1011, 1–1019 background 1–44 and antialiasing 1–567, 3–38 color 3–272, 3–276 image 3–272 reset background transform 1–45 sample slot 2–1433 select background image 1–42 update viewport image 1–44 viewport 3–731 viewport background 1–38 VRML97 helpers 3–605 backlight (sample slot) 2–1432 backup auto 3–819 backing up and archiving scenes 1–19 backup on save 3–819 files 3–819 recovered files 1–20 backward knees (creating characters with) 2–891 baked material rollout rendering to texture 3–162 baking animation 2–120 baking textures 3–144 target map slot 3–150 texture elements 3–146 balance animating 2–876 to 2–877 shifting 2–876 shifting for entire footstep animation 2–876 balance factor 2–876 to 2–877, 2–954, 3–914 balance parameters dialog 2–629 balance track 2–622 ballistic gait 2–878, 3–914 ballistic tension 2–846, 2–878, 2–945, 2–954, 3–914 barycentric coordinates (glossary) 3–914 morph controller 2–300, 2–309 morph controller key info dialog 2–346 base layer 2–974 basic file link settings 3–429 basic key info 2–304 basic parameters rollout materials 2–1470 PArray 2–258 basics basic building blocks 1–155 creating and modifying objects 1–153 file linking 3–416 selecting objects 1–64 batch rendering 3–201, 3–203, 3–208 batch file conversion (motion capture) 2–1065, 2–1075 batch rendering 3–201, 3–203, 3–208 backburner 3–201 to 3–202, 3–208 batch render dialog 3–203 batch render tool 3–203 cameras 3–201, 3–203, 3–208 error dialog 3–203 errors 3–203 network rendering 3–201, 3–203, 3–208 presets 3–203 quick start 3–201 scene states 3–201, 3–203, 3–208 Index using 3–202 batch rendering completed 3–203 before trajectory 2–944 behavior assignments and teams dialog 2–1200 behavior rollout 2–1211 behaviors 2–1159, 3–915 avoid 2–1211, 3–913 fabric 1–579 obstacle-avoidance 2–1164, 3–983 orientation 2–1214, 3–985 patch-based 3–991 path follow 2–1216, 3–992 repel 2–1218, 3–1003 scripted 2–1220, 3–1008 seek 2–1220, 3–1008 space warp 2–1221, 3–1013 speed vary 2–1222, 3–1015 surface arrive 2–1223, 3–1018 surface follow 2–1226, 3–1019 wall repel 2–1227, 3–1033 wall seek 2–1229, 3–1033 wander 2–1231, 3–1033 bend 2–990, 2–1136 bend links mode 2–895, 2–936, 2–952, 3–915 bend modifier 1–560 bend parameters (links) 2–1091 bending center of mass track 2–914 footstep path 2–869 bevel bevel modifier 1–562 bevel profile modifier 1–565 deformation 1–366 faces and polygons 1–1011 patches 1–986 types of beveling 1–366 bevel polygons dialog 1–1066 bezier controllers 2–310 handle control 2–582 bezier curves 3–915 bias 2–950, 2–956, 2–1091, 2–1136 mental ray shadow maps 2–1360 bifold door 1–252 billboard (VRML97 helpers) 3–607 binding objects 2–437, 2–461, 2–491 to space warp 2–58 vertices 1–297 BioVision motion capture data files 2–1065 BIP files 2–919 to 2–920, 2–1065, 2–1263, 3–916 adding to motion mixer 2–609 adjust time in motion mixer 2–615 adjusting in motion mixer 2–611 combining motions 2–924 combining with mixer 2–604 export with motion mixer 2–624 filtering in motion mixer 2–612 loading 2–942 path 2–1041 saving 2–882, 2–941 transitions in motion mixer 2–616 biped 2–833, 3–916 add to motion mixer 2–607 and physique 2–834 assign controller rollout 2–934 body parameters 2–844, 2–846 center of mass 2–833 colored keys 2–1005 creating 2–844 display options 2–944 dummies 2–922 dynamics 2–833, 2–980 dynamics parameters 2–954 edit 2–1038 editing keys in Track View 2–875 figure files (.fig) 2–855 figure mode 2–847 IK key colors 2–1005 keyboard shortcuts 2–1006 layer 2–974 load motion file 2–936 moving keys 2–1004 naming 2–847 playback 2–936, 3–916 previewing motion 2–929 root object 2–846 select keys based on foot states 2–965 setting keys 2–904 shifting balance 2–876 structure 2–847 tracks in Track View 2–888 user interface 2–932 working with 2–843 biped apps rollout 2–935 biped balance, motion mixer 2–622 biped clips 2–649 biped colored keys 2–1005 Track View 2–1005 biped crowds 2–1172 biped dynamics 3–916 biped IK key colors 2–1005 biped links selecting and rotating 2–895 biped object 2–636 biped playback 2–936 1755 1756 Index biped rollout 2–936 bipeds and crowd simulation 2–1187 correcting posture 2–925 deleting 2–854 linking objects to 2–854 moving objects 2–890 posing 2–847 posing a biped 2–925 rotating objects 2–891 scaling after physique is applied 2–1099 visible in playback 2–944 bipeds dialog 2–643 birth event 3–916 birth operator 2–143 birth script operator 2–145 bitmap map 2–1631 bitmap pager 3–828 bitmap pager statistics dialog 3–514 bitmap proxies 3–32 bitmap proxies dialog 3–496 bitmap/photometric path editor 3–510, 3–516 bitmaps choosing 2–1635 display 3–840 to 3–841, 3–844 glossary 3–917 Material Editor 2–1631, 2–1635 path configuration 3–503, 3–811 path editor 3–510 blend blend curve (NURBS) 1–1158 blend element parameters 3–140 blend material 2–1588 blend object (glossary) 3–917 blend surface (NURBS) 1–1183 blend from/to 2–1140 blend map (baking) 3–149 blend materials limitations when baking textures 3–147 blend weight 1–807 blending between links 2–1085, 2–1111, 2–1150 envelopes 2–1086 blending envelope display options dialog 2–1125, 2–1128 Blinn highlights 2–1493 Blinn shader basic parameters 2–1480 blizzard 2–251 BlobMesh object 1–331 block controller 2–389 to 2–390, 2–392 block controller 2–313 block controllers (Track View) 2–1179 block reference 3–917 block/style parent 3–918 blocks 3–457 and linking to 3ds Max 3–918, 3–1031 AutoCAD 3–441, 3–456 AutoCAD and 3ds Max 3–438 material assignment 3–458 materials 3–458 multi-view 3–459 propagation 2–1432 blowup (render) 3–13 blue vertices 2–1150 blur and blur offset (glossary) 3–918 particle motion blur 2–240 rendering effect 3–260 BMP files 3–610 body 2–960 horizontal tracks 2–846, 2–945 parameters (biped) 2–846 space 3–918 tracks 2–846 turning track 2–945 vertical tracks 2–846, 2–945 bomb space warp 2–105 bone tools 1–411 bone editing 1–411 fin adjustment 1–413 object properties 1–414 bones 1–404, 2–1080 and IK solvers 2–440, 2–472 bone base 2–944 bone tip 2–944 display 2–853 exporting 3–580 floating bones rollout (Physique) 2–1110 linking to follow objects 2–461 spline IK solver 2–477 stretch factor 1–415 used with physique 2–1079, 2–1082 using objects as 1–410, 2–440 using unlinked bones with Physique 2–1082 Boolean controller 2–316 Booleans alignment 1–338 and editable splines 1–308 Boolean objects 1–338, 1–378, 1–388 Boolean operation (glossary) 3–919 colinear edges 1–338 combining objects that have materials 1–345 complexity between operands 1–338 coplanar faces 1–338 face normals 1–338 inverted meshes 1–338 Index material IDs 1–338 overlapping elements 1–338 surface topology 1–338 troubleshooting problems with 3–885 with maps and materials 1–338 bound vertex 1–297, 3–919 boundary conditions (and tendons) 2–1147 bounding box (and envelope creation) 2–1111 bounding box (glossary) 3–919 bounds (inner/outer) 2–1085 box BoxGizmo 3–304 standard primitive 1–171 box caustics filter 3–106 box method 2–1242 box selected render bounding box/selected dialog 3–16 branching events (particle flow) 2–123 break spline at selected vertex 1–297 vertices 1–1011 breathe option (links) 2–1091, 2–1136 bricks 2–1658 bridge dialog 1–1067 bridge edges dialog 1–1068 brightness and contrast effect 3–265 browse 2–1070 browser material/map 2–1412 browsing from 3ds Max 3–504 brush styling hair with a 1–529 brush options 1–960 brush preset manager 3–692 brush presets 3–690 BSP method 3–129 BSP method, raytrace acceleration 3–1000 bubble motion rollout (PArray) 2–270 bubble motion with Particle Flow 2–123 bubble notification communication center 3–716 buckets, distributed rendering 3–124 buffer mode 2–936 build face 1–1011 bulge angle display properties dialog 2–1127 bulge angles 2–1114, 2–1141, 3–920 adding 2–1095 changing 2–1095 choosing for editing 2–1095 color 2–1141 deleting 2–1095 parameters 2–1114 setting 2–1095 bulge editor 2–1096, 2–1106, 2–1114, 2–1135, 2–1141 bulge sub-object 2–1127, 2–1141 bulges 2–1111, 2–1113, 3–920 creating 2–1094 fine-tuning 2–1096 overview 2–1093 shaping 2–1096 workflow 2–1094 bump mapping 2–1506, 2–1539 bump shader (mental ray) 2–1716 button 2.5D snap 2–35 2D snap 2–35 3D snap 2–35 ActiveShade floater 3–21 align 1–462 align camera 1–468 align to view 1–468 angle snap 2–37 animate 3–717 arc rotate 3–744 array 1–450 auto key 3–717 bind to space warp 2–58 button sets (utilities) 3–779 clone and align tool 1–459 crossing 1–93 current frame 3–724 dolly camera 3–746 dolly light 3–751 dolly target 3–746, 3–751 edit current event 3–324 edit scene event (video post) 3–329 full screen 3–738 get material 2–1439 go forward to sibling 2–1447 go to end 3–724 go to frame 3–724 go to parent 2–1446 go to start 3–722 light falloff 3–753 light hotspot 3–752 lock selection 2–555 make unique (Material Editor) 2–1442 material and map type 2–1449 Material Editor 2–1427 Material Editor options 2–1436 maximize viewport 3–738 mirror 1–448 new sequence 3–323 next frame 3–724 normal align 1–465 open sequence 3–323 1757 1758 Index orbit/pan camera 3–749 orbit/pan light 3–755 pan (Track View) 2–595 pan (user interface) 3–743 percent snap 2–38 perspective 3–747 pick material from object 2–1448 place highlight 1–467 play/stop 3–723 previous frame 3–723 quick align 1–465 quick render 3–17 quick render (Production) 3–17 render scene 3–12 roll camera 3–747 roll light 3–753 save sequence 3–324 scale keys 2–559, 2–580 scale values 2–581 select and link 2–422 select and manipulate 2–15 select and move 1–439 select and rotate 1–439 select and uniform scale 1–441 select by material 2–1439 select by name 1–77 select object 1–77 selection center 1–447 selection lock 3–707 sets of modifiers 3–772 show curves 3–705 show end result 2–1446 snapshot 1–453 spacing tool 1–455 spinner snap 2–38 squash 1–442 transform coordinate center 1–447 truck camera 3–748 truck light 3–755 unlink selection 2–422 use pivot point center 1–446 zoom 3–739 zoom (Track View) 2–596 zoom all 3–740 zoom extents 3–740 zoom extents all 3–737 zoom extents all selected 3–737 zoom extents selected 3–740 zoom horizontal extents 2–595 zoom region 3–742 zoom region (Track View) 2–597 zoom selected object 2–588 zoom value extents 2–596 button appearance 3–803 BVH files 2–919, 2–1061, 2–1065, 2–1263, 3–920 by layer 3–920 bylayer 3–655 C C-Ext 1–200 cache operator (particle flow) 2–197 CAL files 2–1070 calculation order (joint precedence) 2–467 calculator 1–12 calibrating marker files 2–1065 camera correction modifier 2–1392 camera effects rollout 3–101 camera map modifier object space 1–567 world space 1–513 camera map per pixel map 2–1732 camera match camera match helper 2–1391 camera match point 2–1391 camera match utility 2–1387 camera point 2–1391 CamPoint 2–1391 camera tracker batch track rollout 2–678 camera tracker utility 2–667 error thresholds rollout 2–677 match move rollout 2–680 motion trackers rollout 2–673 move smoothing rollout 2–682 movie rollout 2–670 movie stepper rollout 2–676 movie window 2–671 object pinning rollout 2–683 position data rollout 2–679 requirements for camera tracking 2–669 troubleshooting 2–685 camera view right-click menu 3–731 camera viewports 1–33, 3–745 cameras 2–1365, 2–1372 align camera button 1–468 animating 2–1381 camera object icons 2–1365 camera view 1–24 camera viewport controls 3–745 choosing for vertical views 2–1365 common parameters 2–1373 create camera from view 1–48 depth of field parameters (mental ray renderer) 2–1383 dolly or target 3–746 free 2–1370 match camera to view 1–468 Index multi-pass parameters 2–1383, 2–1386 orbit/pan 2–1381, 3–749 placing 1–7 roll 3–747 setting lens size 2–1373 target 2–1371 truck 3–748 using clipping planes to exclude geometry 2–1379 using horizon to match perspective 2–1380 using move and rotate to aim 2–1379 using transforms to aim 2–1379 with target 2–1371 zoom 2–1381 candela 3–965 canopy mode 1–214 cap holes modifier 1–569 cap surface 1–1195 capsule 1–195 capture viewport 1–35 car paint material and shader 2–1576 car-wheel constraint 2–757 cartoon shading 2–1605 casement window 1–257 category, hiding and unhiding objects by 1–72 caustics 3–92, 3–106 caustics (mental ray) 3–80 caustics and global illumination rollout 3–106 CCB files 1–950 cellular map 2–1664 center 1–435 center of mass 2–833, 2–933, 3–920 object 2–846 selecting tracks 2–888 shadow 2–846 shifting balance with 2–876 tracks in Track View 2–945 chains (kinematic) 2–471, 3–960 chamfer and editable splines 1–297 chamfer curve (NURBS) 1–1161 ChamferBox 1–191 ChamferCyl 1–192 editable mesh edges 1–1011 glossary 3–920 chamfer dialog 1–1070 change of value over time 2–578 changed feature 1–334, 2–66, 2–543, 2–1546, 3–149, 3–398, 3–539 changing biped body parameters 2–844 biped name 2–847 controller properties 2–291 initial biped anatomy 2–846 light objects 2–1282 link inheritance 2–434 smoothing 1–167 video system 2–1434 changing biped to bones 2–921 channel 1–285 channel (map) 3–966 channel info skin utilities 2–700 channel info utility 2–1738 character 1–112 character assembly 1–102 and parameter wiring 1–104 create character 1–112 destroy character 1–115 insert animation 3–466 insert character 1–115 lock/unlock 1–115 save character 1–115 skin pose 1–116 character modeling 1–842 character studio assign controller rollout 2–934 definition 2–831 file formats 2–1263 space warp behavior 2–1221 checker map 2–1638 child overlap 2–1130 children don’t affect 2–489 choose directory dialog 3–808, 3–810 choose renderer dialog 3–36 choosing child-to-parent precedence 2–469 colors for realism 2–1400 parent-to-child precedence 2–470 playback speed and frame rate 2–288 transform center 1–435 CIBSE files 3–921 cineon image file format dialog 3–610 circle 1–273 circular falloff graph 3–254 circular arrays 1–489 circulating materials 2–1432 clean multimaterial utility 2–1742 clean remove 1–1039 clear UVW mapping 1–933 clip ratio 2–615 replace 2–634 timing 2–615 1759 1760 Index transition 2–1048 clip controllers 2–1179, 3–921 clip frame numbers motion mixer 2–615 clip mode 2–1027 clip properties dialog 2–1027, 2–1045, 2–1059 clipping planes 2–1373, 2–1379, 3–921 clips 2–1045 combining 2–1026 create 2–1027 looping with motion-capture filtering 2–1061 menu 2–632 move 2–1027 path 2–1041 ClipState dialog 2–1253 clone 1–476 clone and align tool 1–459 clone options dialog (particle flow) 2–132, 2–136 cloning 1–476 clone 1–476 materials 2–1432 objects 1–453, 1–474, 1–483 shape sub-object selections 1–289 shift+move 1–479 shift+rotate 1–480 shift+scale 1–481 sub-object geometry 1–998 cloning characters 2–922 close assembly 1–109 group (group menu) 1–105 close curve dialog 1–1228, 1–1235 cloth 2–778 cloth modifier 1–578 cloth simulation 1–571 collection 2–781 collision detection 1–572 dT messages during simulation 1–583 effect of geometry on 1–576 fabric behavior 1–579 garment maker modifier 1–607 how it works 1–576 mesh density 1–577 modifier 2–778 object properties 1–602 overview 1–571 troubleshooting and error codes in garment maker 1–622 units of measure 1–579 cloth modifier 1–578 user interface 1–582 clothing design 1–575 CLR files 3–799 cmdjob.exe 3–215 codec (glossary) 3–921 cognitive controller 3–921 state dialog 2–1207 state transition dialog 2–1208 cognitive controller editor 2–1206 cognitive controllers 2–1170 coincident - making splines 1–842 collapse collapse utility 1–966 stack 1–504, 1–966 vertices 1–1011 collapse controller tool (Track View) 2–522 collapse layer 2–326, 2–333 collapsing animation tracks 2–886 layers 2–974 collections cloth 2–781 creating and deleting 2–966 deforming mesh 2–794 loading and saving 2–966 rigid body 2–723 rope 2–792 soft body 2–788 collision 2–243 collision detection 2–891 cloth 1–572 collision tests (particle flow) collision 2–212 collision spawn 2–215 collisions storing and accessing 2–774 collisions rollout 2–810, 2–1240 color and light 2–1276, 2–1279, 2–1331 and particle view display operator 2–131 and program state 1–12 and realism 2–1400 assigning to objects 1–159 balance (render effect) 3–265 bleeding 3–93 changing vertex color 1–1009 color bleeding 3–45 color selector 1–161 copying 1–165, 2–1452 display 1–52 illegal video colors 2–1434 name and color rollout 3–757 object color dialog 1–159 parameters 2–1345 selecting vertices by 1–652, 1–1029 temperature (light color) 2–1276 Index color clipboard files 1–950 color clipboard utility 1–165 color coding 2–945 color controls 2–1485 color modifier maps 2–1692 color palette vertexpaint modifier 1–950 color RGB controller 2–317 color selector 1–161, 3–815 color space 3–1 colors assign random 1–161 biped IK/FK keys 2–1005 biped keys in Track View 2–947 biped trajectories 2–1005 footsteps 2–869 in Track View 2–944 vertex type 2–1089 colors panel (customize UI) 3–799 COM 2–933 COM/DCOM server control utility 3–792 combining animations 2–1026 combining motions motion mixer 2–604 combining objects 1–338, 1–378, 1–388 Combustion adding workspace 3–135 combustion map 2–1639 combustion workspace file 3–611 command line rendering 3–209, 3–211, 3–215 startup options 3–671 command panel troubleshooting when missing 3–893 command panels create 3–757 display 3–775 hierarchy 3–773 modify 3–758 motion 3–774 overview 3–756 utilities 3–778 command-line options (MAXScript) 3–783 command-line options (starting 3ds Max) 3–671 command-line rendering 3–209, 3–215 backburner command line 3–215 batch render 3–209 DOS 3–211 pre-render scripts 3–209, 3–215 commands provided only from the keyboard 3–669 comments particle system 2–134, 2–206 comments on the documentation 3–874 common panel render scene dialog 3–27 common parameters rollout 3–27 common procedures video post 3–315 commonality 1–509 communication center 3–712 to 3–713 bubble notification 3–716 configure 3–713 new information 3–716 notifications 3–716 refresh content 3–715 settings 3–713 welcome wizard 3–713 compare dialog (loft objects) 1–374 compass helper object 2–27 complete map (baking) 3–147 component color - specular 3–1014 components hair and fur feature 1–517 composite glossary 3–922 map 2–1688 material 2–1589 composite materials limitations when baking textures 3–147 compositor compositor maps 2–1687 compound materials glossary 3–922 kinds of 2–1587 compound objects 1–313 BlobMesh 1–331 Boolean 1–338, 1–378, 1–388 conform 1–324 connect 1–328 mesher 1–374 morph 1–314 ProBoolean 1–378 ProCutter 1–388 scatter 1–318 ShapeMerge 1–336 terrain 1–347 compound rigid bodies 2–722 concepts 3–88 cone 1–172 cone (spotlight) 2–1338 cone angle manipulator 2–27 cone caustics filter 3–106 configuration network rendering 3–175 configuration settings 3–119 1761 1762 Index configure communication center 3–713 Direct3D 3–844 driver 3–821, 3–840 key mode 3–725 modifier sets 3–772 OpenGL 3–841 presets (video post) 3–327 software display driver 3–840 system paths 3–810 time 3–725 track bar 3–703 user paths 3–808 utilities button sets 3–779 viewports 3–853 configure paths 3–808 configure preset dialog 3–33 configure system paths 3–810 plug-ins path configuration 3–814 configure user paths 3–808 bitmaps 3–189 external files 3–811 file i/o path configuration 3–810 FX files 3–811 using 3–189 conform compound object 1–324 space warp 2–103 connect to child link 2–1147 to parent link 2–1147 connect compound object 1–328 connect edges dialog 1–1070 connect parameter to shader dialog (mental ray) 2–1713 constant coordinate system 3–815 facet shading 3–937 constrained point glossary 3–922 constraint solver 2–736 constraint spaces 2–725 constraints 2–289, 2–392, 2–724 and bones 1–404 and cloth 1–580 angular dashpot 2–732 attachment 2–393 axis constraints 1–437, 3–687 breakable 2–735 car-wheel 2–757 concepts 2–725 constraint solver 2–736 constraint spaces 2–725 cooperative constraints 2–735 deformable constraints 2–795 hinge 2–747 linear dashpot 2–730 link 2–403 look-at 2–406 orientation 2–409 path 2–398 point-path 2–762 point-point 2–750 position 2–401 prismatic 2–754 rag doll 2–737 simple constraints 2–727 spring 2–727 surface 2–396 contact object (particle flow) 3–922 contacting us 1–xiv containers (glossary) 3–922 continuity 2–956, 2–1091, 2–1136, 3–923 continuity level (glossary) 3–923 NURBS concepts 1–1091 continuous time frame 2–141 contour shading mental ray 3–96 contrast filter (video post) 3–343 contrast sampling thresholds 3–98 control lattice (glossary) 3–923 control objects (IK) 2–435, 2–446 control points 2–1114, 2–1130, 2–1141, 2–1147, 3–923 and bulges 2–1096 and envelopes 2–1088 rotating 2–1088 control vertex (CV) 3–926 control vertex (glossary) 3–924 controller 3–924 controller menu, Track View 2–521 controller toolbar, Track View 2–540 controller type 2–333 to 2–334 controller window, Track View 2–512 controllers 2–295 to 2–297, 2–307, 2–375, 2–896 assigning 2–292 audio 2–309 barycentric morphing 2–309 bezier 2–310 block 2–313 Boolean 2–316 categories of 2–289 changing length 2–502 changing properties 2–291 changing range 2–502 collapsing procedural controllers 2–522 color RGB 2–317 copy 2–544 Index default settings 3–828 Euler XYZ rotation 2–318 expression 2–320 frame duration 2–502 general-purpose controllers 2–295 limit 2–335 linear 2–341 list 2–342 local euler XYZ rotation 2–344 look at 2–344 make unique 2–550 master point 2–346 morph 2–300 motion capture 2–347 noise 2–353 on/off 2–355 paste 2–545 point3 XYZ 2–317 position XYZ 2–356 properties 2–560 PRS 2–357 reaction 2–358 scale XYZ 2–371 script 2–372 slave 2–313 smooth rotation 2–374 specifying default 2–294 TCB 2–377 time duration 2–502 transform script 2–379 types of 2–289, 2–546 understanding 2–289 viewing types 2–289 waveform 2–381 working with 2–289 xref 2–383 controlling colors 2–299 display performance 1–28 flipping on path 2–398 IK precision 2–463 object display 1–51 position 2–298 rotation 2–299 time 2–285 transforms 2–298 viewport rendering 1–27 controls camera viewport 3–745 light viewport 3–750 perspective and orthographic 3–738 special 1–12 viewport 3–735 conversion modifier turn to mesh 1–871 turn to patch 1–873 turn to poly 1–874 convert 2–936 between footstep and freeform animations 2–885 data in motion capture buffer 2–1065 from buffer 2–1065 to freeform 2–886 to freeform/footsteps dialogs 2–999 convert curve dialog 1–1225 convert surface dialog 1–1227 convert to mesh 2–206 converting event-level selection to particle level 2–138 TRC into CSM 2–665 convex hull property (glossary) 3–924 cool (glossary) 3–924 cooperative constraints 2–735 coordinate display (mouse position) 3–708 coordinate space 3–924 coordinate system 1–443 coordinates absolute/offset display 3–709 barycentric (glossary) 3–914 coordinate display 3–708 coordinate system 1–443 coordinates rollouts 2–1625, 2–1663 mapping 2–1405 copies 1–472 creating 1–471 overview 1–472 copy 2–1141, 2–1147 a material, map, bitmap, or color 2–1418 footsteps 2–990 pose 2–962 poses and postures 2–910 posture 2–962 selected cross section 2–1114 copy biped animation to clip dialog 2–635 copy controller 2–544 copy keys 2–579 copy layer 2–325 to 2–326 copy map dialog 2–1451 copy tangent handles 1–297 copy time (Track View) 2–568 copy tracks 2–926 copy/paste rollout 2–966 copying actions, events (particle flow) 2–127, 2–132, 2–134 and pasting items/objects 2–575 to 2–576 colors 1–165, 2–1452 copy controller (Track View) 2–544 1763 1764 Index copy time (Track View) 2–568 copy track (Track View) 2–568 joint parameters 2–495 materials 2–1409, 2–1432 modifiers 2–544 patch surface 1–968 presets 3–437 splines 1–308 transform keys 2–283 CPY files 2–1263 crash recovery 1–20 crease at link’s joint 2–1140 at parent’s joint 2–1140 create clip 2–1027, 2–1045 envelopes 2–1111 footsteps 2–988 keys for inactive footsteps 2–865, 2–990 layer 2–974 random motion 2–1035, 2–1055 script 2–1030, 2–1048 separate tracks for biped arms 2–980 shared motion flow 2–1039, 2–1056 transition 2–1045, 2–1051 unified motion 2–1038 create assembly (assembly menu) 1–107 create assembly dialog 1–107 create biped rollout 2–844 create camera from view 1–48 create character 1–112 create key dialog 2–284 create layer 2–326, 2–334 create material preview dialog 2–1452 create menu 1–347, 3–675 AEC objects 1–214, 1–217, 1–223, 1–232, 1–235, 1–239, 1–243, 1–251 to 1–252, 1–256 to 1–261 cameras 2–1365, 2–1370 to 2–1371 compound objects 1–318, 1–328, 1–331, 1–336, 1–338, 1–352 extended primitives 1–186 lights 2–1272 NURBS 1–1102 to 1–1103, 1–1106, 1–1110 particles 2–237 patch grids 1–993 to 1–995 photometric lights 2–1302 to 2–1305, 2–1307, 2–1309 shapes 1–262, 1–270, 1–272 to 1–274, 1–276 to 1–278, 1–281 to 1–282, 1–284 to 1–288 standard lights 2–1288 to 2–1290, 2–1292 to 2–1293, 2–1295 standard primitives 1–170 create method rollout 2–1242 create multiple footsteps 2–988, 2–992 jump 2–988, 2–997 run 2–988, 2–995 walk 2–988, 2–992 create new layer 3–667 create new map files 2–332 create out of range keys 2–533 create out-of-range keys utility (Track View) 2–562 create panel 1–154, 3–757 cameras 2–1365 helpers 2–2 lights 2–1272, 2–1301 space warps 2–55 systems 1–404 create position lock key 2–310 create rotation lock key 2–310 create shape (editable patch) 1–988 creating 1-rail sweep surface 1–1204 2-rail sweep surface 1–1209 a script 2–1045 an object 1–157 animated material previews 2–1450 arrays 1–471 biped character 2–844 biped skin 2–1076 blend surface 1–1183 bulges 2–1094 cap surface 1–1195 chamfer curve 1–1161 circular and spiral arrays 1–489 copies 1–471 crowd system 2–1155 curve sub-objects 1–1151 custom sample object 2–1425 CV curve on surface 1–1172 CV curve sub-object 1–1153 CV surface 1–1103 CV surface sub-object 1–1179 dependent curve point 1–1220 dependent curve-curve point 1–1223 dependent curves 1–1151 dependent offset point 1–1219 dependent surface point 1–1222 dependent surface-curve point 1–1224 dependent surfaces 1–1177 editable mesh edges from shapes 1–1006 editable mesh vertices 1–1011 extrude surface 1–1188 faces 1–1011 fillet curve 1–1164 fillet surface 1–1216 footsteps 2–863 Index footsteps automatically 2–862 freeform animations 2–886 independent surfaces from NURBS curve objects 1–1114 individual footsteps 2–863 iso curve 1–1168 lathe surface 1–1190 linear arrays 1–487 mirror curve 1–1160 mirror surface 1–1187 models with NURBS 1–1094 multicurve trim surface 1–1214 multiple footsteps 2–862 multiple slices 1–1019 multisided blend surface 1–1213 normal projected curve 1–1169 NURBS curves from splines 1–1115 NURBS CV curve 1–1110 NURBS models 1–1079 NURBS point curve 1–1106 NURBS sub-objects 1–1081 NURBS surfaces 1–1101, 1–1116 objects (basics) 1–153 offset curve 1–1159 offset surface 1–1186 particle emitter 2–239 particle system 2–238 particles 2–143, 2–145 physique links and envelopes 2–1111 physique modifier 2–1083 point curve on surface 1–1175 point curve sub-object 1–1155 point curve with curve fit 1–1157 point sub-objects 1–1078, 1–1219 point surface 1–1102 point surface sub-object 1–1181 primitives from the keyboard 1–169 ruled surface 1–1193 shapes 1–262 skin 2–1076 sub-objects 1–1177 surface edge curve 1–1177 surface offset curve 1–1167 surface sub-objects 1–1177 surface-surface intersection curve 1–1166 tendons 2–1096 transform curve 1–1157 transform surface 1–1182 U loft surface 1–1196 UV loft surface 1–1200 vector projected curve 1–1171 creation method rollout 1–354 creation parameters 2–844 glossary 3–925 cross fade compositor (video post) 3–381 cross section editor viewport options 2–1141 cross sections 1–282, 1–284 to 1–288, 1–623, 1–842, 2–1108, 2–1114, 2–1130, 2–1141, 2–1147, 3–925 and bulges 2–1096 and envelopes 2–1088 and tendons 2–1147 initialization 2–1125 parameters 2–1114 view (bulge editor) 2–1096 cross-hairs cursor 3–815 crossing selection 1–93 CrossSection modifier 1–623 crowd behaviors 2–1159, 2–1164 creating crowd systems 2–1155 crowd object 2–1157 definition 3–925 delegate object 2–1159 keyboard shortcuts 2–1182 with bipeds 2–1172 crowd animation and bipeds 2–1187 ClipState dialog 2–1253 motionclip parameters dialog 2–1252 orientation behavior 2–1214 path follow behavior 2–1216 repel behavior 2–1218 scripted behavior 2–1220 seek behavior 2–1220 speed vary behavior 2–1222 surface arrive behavior 2–1223 surface follow behavior 2–1226 synthesis dialog 2–1246 user interface 2–1182 vector field space warp 2–1241 wall repel behavior 2–1227 wall seek behavior 2–1229 wander behavior 2–1231 working with 2–1154 crowd behaviors path follow 2–1162 seek 2–1162 wall seek 2–1162 crowd helper object 2–1187, 3–925 crowd object associate bipeds with delegates dialog 2–1199 behavior assignments and teams dialog 2–1200 behavior rollout 2–1211 collisions rollout 2–1240 edit multiple delegates dialog 2–1197 1765 1766 Index geometry rollout 2–1240 global clip controller 2–1241 icon size 2–1240 object/delegate associations dialog 2–1196 priority rollout 2–1235 scatter objects dialog 2–1189 select behavior type dialog 2–1205 select delegates dialog 2–1205 set start frames dialog 2–1237 setup rollout 2–1188 smoothing rollout 2–1238 solve rollout 2–1232 state dialog 2–1207 state transition dialog 2–1208 crowd simulation avoid behavior 2–1211 cognitive controller 2–1206 solving 2–1168 crowd system 3–925 CS amplitude option (links) 2–1091, 2–1136 CSM files 2–919, 2–1061, 2–1065, 2–1263, 3–925 cube method 2–1242 cubic morph controller 2–300 CUI files 3–804 to 3–806 current bulge angle 2–1114, 2–1141 current event (video post) 3–324 current frame 3–701, 3–724 current value editor 2–533, 2–565 currentdefaults.ini 3–790 currently assigned links only 2–1150 currently installed driver 3–821 curve editor 2–501, 2–507, 2–535, 2–1002 display menu 2–530 modes menu 2–521 curve view 3–925 curves curve approximation 1–1238 curve fit 1–1157 curve point 1–1220 curve-curve intersection point 1–1223 curve-curve point 1–1223 freeze non-selected 2–587 function 2–837, 2–1008 curves menu Track View 2–525 curves toolbar 2–535 custom attributes 1–129 custom grid 2–20 custom splash screen 1–17 custom UI and defaults switcher 3–789 custom UI scheme 3–804 customize keyboard shortcut 2–1432 toolbar 2–1432 transitions 2–1034 customize menu 3–683 configure system paths 3–810 configure user paths 3–808 customize user interface 3–792 grid and snap settings 2–41 load custom UI scheme 3–805 lock UI layout 3–788 plug-in manager 3–788 preferences 3–815 revert to startup UI layout 3–807 save custom UI scheme 3–806 show UI 3–788 viewport configuration 3–853 customize user interface 3–792 colors 3–799 keyboard shortcuts 3–793 load UI scheme 3–805 lock UI layout 3–788 menus 3–798 overview 3–785 quad menus 3–795 revert to startup layout 3–807 save UI scheme 3–806 shortcuts 3–793 toolbars 3–794 customizing biped characters in figure mode 2–847 customizing user interface Track View 2–599 cut and slice 1–1011, 1–1019 and snaps 1–1019 time (Track View) 2–567 cut time (Track View) 2–567 cutout mapping 2–1540, 2–1542 cutting hair 1–529 CV 3–926 CV curve CV curve 1–1110 CV curve (glossary) 3–926 CV curve on surface 1–1172 CV curve sub-object 1–1153 CV sub-objects 1–1085 CV surface CV surface 1–1103 CV surface (glossary) 3–926 CV surface sub-object 1–1179 CWS file 3–135 CWS file (combustion workspace) 3–611 cycling animation 2–551 Index cylinder chamfer 1–192 CylGizmo 3–306 standard primitive 1–177 cylindrical area omni light 2–1298 D damper 1–396, 2–66 damping joint action 2–466 dashpots angular 2–732 linear 2–730 data files path for 3–813 data management asset tracking dialog 3–487 open from vault 3–389 daylight IES sky 2–1312 IES sun 2–1309 DDS files (glossary) 3–611 deactivate all maps 1–50 deactivate footsteps 2–865, 2–990 decay 2–1345 default controller settings 2–294, 3–828 controllers 2–294 heights 2–1 keyboard shortcuts 1–900, 2–140, 2–510, 2–1006, 2–1111, 2–1182, 3–871 lighting 2–1272, 2–1274 material settings 2–1442 tangent types 3–721 default color 2–1141 default scanline rollout 3–38 default tangent types 3–721 defaults setting 3–790 setting and changing 1–17 switching 3–789 define append 2–1048 inser below 2–1048 insert above 2–1048 script 2–1048 defining search terms (HTML help viewer) 3–876 time tags 3–710 deflector space warp 2–90 deflector space warps deflector 2–90 PDynaFlect 2–81 POmniFlect 2–78 SDeflector 2–87 SDynaFlect 2–85 SOmniFlect 2–84 UDeflector 2–89 UDynaFlect 2–86 UOmniFlect 2–85 deform deform bevel 1–366 deform fit 1–367 deform scale 1–364 deform teeter 1–365 deform twist 1–364 deformable bodies 2–777 cloth 2–778 constraints 2–795 deforming meshes 2–793 ropes 2–789 soft bodies 2–783 soft selection 2–800 deformable constraints 2–795 attach to deforming mesh 2–799 attach to rigid body 2–798 fixing vertices 2–796 keyframe points 2–797 deformable envelopes 2–834, 2–1085, 2–1090, 2–1108, 2–1111, 2–1130, 3–927 deformation 2–1083, 3–927 deformation spline 2–1083, 2–1085, 2–1091, 2–1135, 3–927 deformations (and loft objects) 1–363, 1–368 deforming meshes 2–793 collection 2–794 degradation override 1–34 degree 1–1091, 3–927 degree of freedom and rotating links 2–891 delegate adjusting parameters 2–1159 geometry parameters rollout 2–1183 motion parameters rollout 2–1183 delegates 2–1157 definition 3–928 helper objects 2–1183, 3–928 using bipeds with 2–1172 delete 1–95, 2–1141, 2–1147 biped 2–854 bulge angle 2–1114, 2–1141 bulge angles 2–1095 bulge cross sections 2–1096 clip/transition 2–1027, 2–1045 control points 2–1114 controller 2–549 cross section slice 2–1114 current event (video post) 3–324 footsteps 2–869, 2–990 1767 1768 Index key 2–904, 2–956, 2–962 keys 2–554, 3–703 layers 2–974 maps 2–1413 material 2–1413 mesh modifier 1–626 operator (particle flow) 2–146 patch modifier 1–627 Schematic View 3–652 script 2–1030, 2–1048 selected keys (track bar) 3–703 spline modifier 1–627 tendons 2–1096 time (Track View) 2–567 Track View 2–598 transition 2–1051 transitions 2–1034 delete keys 2–502, 2–554 delete selected animation 3–698 delete time (Track View) 2–567 delete Track View 2–598 delete twist pose 2–950 delete UVW mapping 1–933 deleting blocks of time 2–567 editable mesh edges 1–1011 editable mesh vertices 1–1011 isolated editable mesh vertices 1–1011 particles 2–146 patch surfaces 1–968 splines 1–308 vertices 1–297 dent map 2–1667 dependencies (views menu) 1–47 dependent 3–928 dependent sub-objects 1–1087, 3–928 depot (particle view) display of 2–129 glossary 3–928 depth of field 2–1383, 3–90, 3–101, 3–269 description panel (particle view) display of 2–129 glossary 3–928 deselect all 1–88 Design Web Format 3–555 designing clothing (garment maker) 1–575 designing materials 2–1395 destination clip transition editor 2–1051 destination directory 2–1075 destroy character 1–115 detach 2–1147 detach (assembly) 1–110 detach (group menu) 1–106 detach dialog (edit poly) 1–679 detach dialog (NURBS curve/surface) 1–1228 editable mesh vertices 1–1011 editable patches 1–986 patch surface 1–968 DGS material (mental ray) 2–1580 dgs material shader (mental ray) 2–1717 diagnostics mental ray renderer 3–123 dialog asset tracking 3–487 bevel polygons 1–1066 bitmap pager statistics 3–514 chamfer 1–1070 color selector 1–161 connect edges 1–1070 extrude polygons 1–1072 filter selected euler tracks (Track View) 2–564 flatten mapping 1–907 MAXScript debugger 3–783 mixer transition editor 2–638 normal mapping 1–908 pelt map parameters 1–909 pick nodes 2–641 pivot selection 2–959 prompts 3–498 relax tool 1–912 render UVs 1–914 shared motion flow 2–1039, 2–1056 track sets editor 2–591 unfold mapping 1–919 unwrap options 1–920 weight tool 1–807 XRef objects 3–397 dialogs bitmap proxies 3–496 global settings and defaults for bitmap proxies 3–496 toggling 3–670 dielectric material shader (mental ray) 2–1719 different ambient and different diffuse materials dialog 3–512 diffuse diffuse color (glossary) 3–929 diffuse distribution 2–1323 diffuse level 2–1489 diffuse level mapping 2–1499 diffuse mapping 2–1498 roughness mapping 2–1500 diffuse map (baking) 3–147 diffuse parameters rollout 3–143 diffuse texture element rollout 3–143 direct manipulation mode 1–1022 Index Direct3D driver 3–838, 3–843 to 3–844 Direct3D driver setup dialog 3–843 directional parameters 2–1348 directories for network rendering 3–187 mounting 3–188 sharing 3–188 DirectX 10 3–847 DirectX 9 shader material 2–1613 DirectX 9 shaders, FX file 3–946 DirectX shaders 2–1464, 2–1613 to 2–1614 disable layer 2–325 to 2–326 disable particle system 2–121 disabling playback 2–1084 disassemble 1–110 disc (circular) area light 2–1299 displace disp approx modifier (OSM) 1–628 displace mesh (world space) 1–514 displace modifier (OSM) 1–629 displace NURBS (world space) 1–515 displace space warp 2–76 displacement mapping 1–628, 2–1511, 2–1539 displacement shading mental ray renderer 3–96 display backface cull 3–775 coordinate display 3–708 cross-hairs cursor 3–815 display controls for NURBS models 1–1117 display driver (specifying at startup) 3–671 display floater 3–775 display floater (Schematic View) 3–651 display image 3–502 display operator (particle flow) 2–202 display performance 1–28 display plane 2–6 display properties rollout 1–55 grid settings 3–709 hide/unhide (glossary) 3–951 hide/unhide objects 3–775 key bracket display 3–828 layer properties 3–656 line parameters for NURBS surfaces 1–1119 marker 2–1065 nth frame 3–821 NU scale warning 3–815 options/preferences 2–847, 2–853, 2–931, 2–944, 2–1090, 2–1130, 2–1141 properties 3–775 reflectance 2–1430 selection floaters 1–79 stack collapse warning 3–815 topology-dependence warning 3–815 track bar 3–707 trajectories 2–931 transmittance 2–1430 world axis 3–821 display color rollout 1–52 display driver setup dialog 3–838 display menu curve editor 2–530 particle view 2–129 display menu (Schematic View) 3–644 display panel 3–775 display color rollout 1–52 display properties rollout 1–55 freeze rollout 1–54 hide by category rollout 1–52 hide rollout 1–53 link display rollout 1–58 object display 1–51 display rollout 1–791, 2–812 hair and fur modifier 1–549 display subtree 2–1130 display trajectories;trajectories,displaying 2–957 displaying links 2–421 selected key statistics (Track View) 2–595 selected keys 2–594 distance distance from origin (accuracy setting) 3–815 measuring 2–13, 2–15 distributed bucket rendering rollout 3–124 distributed maps 3–124 distributed rendering 3–124, 3–1001 distribution materials 2–1432 dithering (glossary) 3–930 divide edges 1–1019 editable mesh edges 1–1011 faces 1–1011 segments 1–303 divisions 2–1114, 2–1141 docking 3–930 documentation for 3ds Max 1–xiv DOF 2–1383, 3–269 dolly camera 3–746 light 3–751 target 3–746, 3–751 don’t affect children 2–489 donut 1–276 doors 1–210, 1–246 bifold 1–252 1769 1770 Index pivot 1–251 sliding 1–251 dope sheet 2–501, 2–507, 2–1002 modes menu 2–521 toolbars 2–538 Dope Sheet editing footstep timing 2–869 DOS command-line rendering 3–211 double support 2–988, 2–992, 3–930 double-sided 3–901 double-sided material 2–1591 download options (asset browser) 3–515 drag and drop and copied/instanced maps 2–1451 and instanced objects 3–456 content from web pages 3–523 maps and materials 2–1423 modifier 1–499 sub-object material assignment 2–1424 with i-drop indicator 3–523 drag space warp 2–66 draw control points 2–1114 draw in profile view 2–1114 draw links as lines 3–821 drawing aids 2–1, 2–52 DRF files 3–527, 3–529 driver setup/configuration 3–838, 3–840 to 3–841, 3–844 dummies 2–922 dummy helper object 2–16 dummy object (glossary) 3–930 dummy objects using 2–429 duplicate name dialog (material library) 2–1453 DWF exporting 3–555 DWG files 3–931 exporting 3–550 importing 3–536 DWG/DXF import options dialog 3–536 geometry panel 3–539 layers panel 3–544 spline rendering panel 3–545 DXF files 3–931 exporting 3–552 importing 3–536, 3–551 dynaflectors 2–81, 2–85 to 2–86, 3–931 dynamic names (particle flow) 2–131 dynamics 2–122, 3–916, 3–932 and footsteps 2–1002 dynamics blend 2–945, 2–954, 3–932 hair and fur modifier 1–520, 1–540, 1–545 options 2–846 dynamics & adaptation rollout 2–980 dynamics deflectors 2–81, 2–85 to 2–86 dynamics objects 1–395 dynamics rollout hair and fur modifier 1–545 dynamics utility 2–686 dynamics properties rollout (Material Editor) 2–686, 2–1479 edit object dialog 2–696 edit object list dialog 2–700 E ease curve applying 2–584 deleting 2–585 enable toggle 2–585 glossary 3–932 ease options key info rollout 2–958 transition editor 2–1051 ease out-of-range types (Track View) 2–585 edge - definition 3–932 edge count 1–1253, 3–861 edge visibility threshold 1–1006 edges aligning 1–1011 and rendering 3–826 attaching 1–1011 chamfer 1–1011 creating shapes from 1–1006 cut and slice 1–1011 deleting 1–1011 divide 1–1019 dividing 1–1011 extruding 1–1011 make planar 1–1011 rotating 1–1011 welding 1–1011 edit alpha compositor (video post) 3–381 biped 2–1038 button appearance 3–803 clip 2–1048 contrast filter (video post) 3–343 cross fade compositor (video post) 3–381 current event (video post) 3–324 external event (video post) 3–340 fade filter (video post) 3–344 filter event (video post) 3–335 footsteps 2–936, 2–1000 freeform 2–1000 ghosts 2–1034 image alpha filter (video post) 3–344 image input event (video post) 3–332 Index layer event (video post) 3–337 lens effects filter (video post) 3–345 loop event (video post) 3–342 negative filter (video post) 3–345 normals 1–634 output image event (video post) 3–339 preset settings 3–438 pseudo alpha compositor (video post) 3–382 pseudo alpha filter (video post) 3–346 range bar (video post) 3–327 ranges (Track View) 2–573 scene event (video post) 3–329 simple additive compositor (video post) 3–383 simple wipe compositor (video post) 3–383 simple wipe filter (video post) 3–347 starfield filter (video post) 3–347 tag 3–711 time 2–566, 2–1002 time tag dialog 3–711 transition 2–1048 transitions 2–1034 edit commands 1–94, 2–1130 and envelopes 2–1088 edit curve on surface dialog 1–1229 edit geometry rollout edit poly modifier 1–673 editable mesh 1–1011 editable poly 1–1055 edit keys 2–1002 edit keys (Track View) 2–528, 2–554, 2–559 edit keys mode 2–508 edit macro button dialog 3–803 edit menu 3–673 clone 1–476 delete 1–95 edit named selections 1–84 fetch 1–95 hold 1–95 move 1–439 object properties 1–117 particle view 2–127 region 1–92 rotate 1–439 scale 1–440 select all 1–87 select by 1–88 select by color 1–88 select by name 1–88 select invert 1–88 select none 1–88 select region crossing 1–93 select similar 1–88 selection method 1–92 transform type-in 1–431 undo/redo 1–94 edit menu (Schematic View) 3–642 edit modifiers and editable objects 1–506 edit mesh modifier 1–634 edit patch modifier 1–638 edit poly modifier 1–640 edit spline modifier 1–680 edit multiple delegates dialog 2–1197 edit named selections 1–84 edit normals edit normals modifier 1–634 edit object dialog 2–696 edit object list dialog 2–700 edit poly align geometry dialog 1–679 bevel polygons dialog 1–1066 border 1–663 bridge borders/polygons dialog 1–1067 bridge edges dialog 1–1068 chamfer dialog 1–1070 connect edges dialog 1–1070 detach dialog 1–679 edge 1–656 extrude edges dialog 1–1073 extrude polygons along spline dialog 1–1071 extrude polygons dialog 1–1072 extrude vertices dialog 1–1073 hinge from edge dialog 1–1073 inset polygons dialog 1–1074 meshsmooth selection dialog 1–1074 object 1–651 paint deformation rollout 1–1064 polygon/element 1–666 preserve map channels dialog 1–1075 relax dialog 1–1076 tessellate selection dialog 1–1077 vertex 1–652 weld dialog 1–1077 weld edges dialog 1–1077 weld vertices dialog 1–1077 edit poly modifier 1–640 edit geometry rollout 1–673 selection rollout 1–647 edit ranges 2–573 edit ranges mode (Track View) 2–509, 2–528 edit texture surface dialog 1–1230 edit time mode (Track View) 2–528, 2–566 edit time tag 3–711 edit track set 2–591 edit UVWs dialog 1–888 menu bar 1–895 1771 1772 Index edit wire 2–412 editable mesh 1–996, 3–932 aligning 1–1011 edge 1–1006 edit geometry rollout 1–1011 element 1–1009 exploding 1–1011 face 1–1009 object 1–1001 polygon 1–1009 selection rollout 1–999 vertex 1–1003 editable objects and edit modifiers 1–506 editable patch 1–968 attach 1–986 changing vertex type 1–986 deleting vertices 1–986 detach 1–986 edge 1–980 element 1–984 geometry rollout 1–986 handle 1–979 object 1–974 patch 1–981 vector 1–979 vertex 1–975 visibility of 1–989 editable poly 1–1022 bevel polygons dialog 1–1066 border 1–1044 bridge borders/polygons dialog 1–1067 bridge edges dialog 1–1068 chamfer dialog 1–1070 connect edges dialog 1–1070 edge 1–1035 edit geometry rollout 1–1055 extrude edges dialog 1–1073 extrude polygons along spline dialog 1–1071 extrude polygons dialog 1–1072 extrude vertices dialog 1–1073 glossary 3–933 hinge from edge dialog 1–1073 inset polygons dialog 1–1074 meshsmooth selection dialog 1–1074 object 1–1028 paint deformation rollout 1–1064 polygon/element 1–1048 preserve map channels dialog 1–1075 relax dialog 1–1076 selection rollout 1–1024 subdivision displacement rollout 1–1063 subdivision surface rollout 1–1060 tessellate selection dialog 1–1077 vertex 1–1029 weld dialog 1–1077 weld edges dialog 1–1077 weld vertices dialog 1–1077 editable spline 1–289, 1–842 and overlapping vertices 1–289 attaching to 1–303 general rollout (for object and sub-objects) 1–289 identification numbers and 1–289 object 1–295 rendering options 1–289 segment 1–303 setting vertex type 1–297 spline 1–308 vertex 1–297 vertex area selection 1–289 editing action parameters (particle view) 2–131 active footsteps in time 2–871 animation 2–304 bones 1–411, 1–413 curve cv sub-objects 1–1127 curve sub-objects 1–1135 fins (bones) 1–413 footstep placement 2–869 footsteps 2–988 footsteps in time 2–869 footsteps in Track View 2–869 modifier stack 1–504 named selection sets 1–67 point sub-objects 1–1123, 1–1219 strokes 3–865 surface cv sub-objects 1–1130 surface sub-objects 1–1141 time (Track View) 2–566 time tags 3–711 wall objects 1–228 editing track sets 2–590 editor cognitive controller 2–1206 edtiable patch selection rollout 1–971 effects 3–217 auto secondary lens effects 3–238 blur lens effects 3–260 brightness and contrast lens effects 3–265 color balance lens effects 3–265 depth of field lens effects 3–269 effects (rendering menu) 3–218 effects panel 3–219 environment and effects dialog 3–217 file output lens effects 3–266 film grain lens effects 3–268 Index glow lens effects 3–226 lens effects 3–223 manual secondary lens effects 3–242 merging from other files 3–220 ray lens effects 3–234 rings lens effects 3–230 star lens effects 3–246 streak lens effects 3–250 elements 3–933 of rendered textures 3–146 rendering 3–130 ellipse 1–274 email notification network rendering 3–196 rendering 3–33 emission rollout (particle view) 2–136 emit start/stop values, and frame rate 2–144 emitter (particle flow) 2–135, 3–933 empty flow operator 2–209 enable ease or multiplier curve toggle 2–585 enable layer 2–326 encapsulated PostScript files 3–612 end effector 2–1080 end effectors 2–437, 2–440, 2–463, 2–471, 3–933 animating 2–461 linking to parent 2–461 entering frames 2–594 entire link 2–1114, 2–1141 entities AutoCAD 3–441 envelope parameters 2–1130 envelope sub-object 2–1125, 2–1128 exclude envelopes dialog 2–1126 envelopes 2–1130, 3–934 adjusting shapes 2–1086 and control points 2–1088 and cross sections 2–1088 and edit commands 2–1088 and weighted vertices 2–834 blending types 2–1086 choosing default fit 2–1083 choosing default types 2–1083 copying 2–1086 copying to mirrored link 2–1088 display options 2–1090 exclude for selected links 2–1126 excluding influence 2–1086 overview 2–1085 scaling size 2–1086 selecting 2–1086 types of 2–1085 updating display manually 2–1090 using transforms with 2–1086 working with 2–1090 working with both envelope types 2–1091 working with rigid 2–1091 environment 3–271 and raytrace materials 2–1514 environment map (glossary) 3–934 environment panel 3–272 exposure controls 3–293 environment and effects dialog 3–217 effects panel 3–219 environment panel 3–272 environment effect fire 3–276 fog 3–282 volume fog 3–284 volume light 3–288 environment shader (mental ray) 2–1721 environments 3–217 environment and effects dialog 3–217 EPS files 3–612 error threshold (camera tracker) 2–677 errors 1–20 garment maker 1–622 euler filter 2–564 euler rotation 2–916, 2–948 controller 2–891 Euler XYZ rotation controller 2–318 euler/tangent 2–916 events (particle flow) and action sequence 2–123 branching 2–123 event display 2–131, 2–133, 3–936 event level 3–936 glossary 3–935 inputs 3–957 local 3–963 notating 2–206 properties 2–134 events (video post) 3–325 every step update script (particle flow) 2–139 exclude exclude left end point (Track View) 2–570 exclude right end point (Track View) 2–571 exclude/include lights 2–1283, 2–1335 exclude envelopes dialog 2–1126 exclude left end point (Track View) 2–570 exclude option 2–1086, 2–1126 exclude right end point (Track View) 2–571 excluding layers 3–438 excluding particles from lighting 2–121 execute network rendering 3–182 execute sequence (video post) 3–325 exit command (file menu) 3–503 1773 1774 Index expanding animation tracks 2–886, 2–888 expert mode 1–51 explicit axis keys 2–297, 2–357 explode assemblies 1–110 editable mesh objects/sub-objects 1–1011 explode angle threshold 1–1011 groups 1–106 objects into faces 2–105 particle system 2–68 splines 1–308 explode angle threshold 1–1011 exploding objects 2–68 explosion 2–68 explosions 2–120 export animation motion mixer 2–624 export selected (file menu) 3–486 exporting 3D DWF 3–555 3DS files 3–532 Adobe Illustrator files 3–534 animation 2–921 ASCII files 3–534 bones 3–580 DWG files 3–550 DXF files 3–552 export (file menu) 3–486 FBX 3–558 HTR/HTR2 3–578 IGES files 3–562 m3g files 3–563, 3–565 to 3–566 MTL 3–590 OBJ 3–589 objects 3–486 selected objects 3–486 Shockwave 3D files 3–580 to 3–581 stereolithography 3–588 STL files 3–588 texture coordinates 1–914 to IGES 3–563 UVs 1–914 VRML97 files 3–591 W3D files 3–580 to 3–581 exporting materials 2–1407 expose transform helper object 2–17 exposetm 2–17 helper object 2–17 exposure control 3–293 automatic 3–295 linear 3–296 logarithmic 3–297 pseudo color 3–300 expression controller 2–320, 2–324 expression evaluator 1–12 expression techniques 1–146 extended parameters rollout (materials) 2–1471 extended primitives 1–186 C-Ext 1–200 capsule 1–195 chamfer box 1–191 chamfer cylinder 1–192 gengon 1–199 hedra 1–187 hose 1–206 L-Ext 1–198 L-Extrusion 1–198 oil tank 1–194 prism 1–205 ringwave 1–202 spindle 1–196 torus knot 1–189 extended shapes angle 1–286 channel 1–285 tee 1–287 wide flange 1–288 wrectangle 1–284 extended splines 1–266 extents scene extents 3–1007 zoom extents (particle view) 2–129 extents (glossary) 3–936 external event (video post) 3–340 external reference 3–1037 external reference, AutoCAD (glossary) 3–1036 extraction tolerance 2–1070 extras dope sheet toolbar Track View 2–541 extras toolbar 3–688 extrude editable mesh edges 1–1011 extrude modifier 1–680 extrude surface (NURBS) 1–1188 faces 1–682 faces and polygons 1–1011 patches 1–986 extrude edges dialog 1–1073 extrude polygons along spline dialog 1–1071 extrude polygons dialog 1–1072 extrude vertices dialog 1–1073 extruded shapes 1–198, 1–200 eyedropper tool 2–1448 F f-curves 2–837, 2–1008 Index f-stop 3–90, 3–101 face - definition 3–936 face extrude modifier 1–682 face/edge thresholds (optimize modifier) 1–748 faces assigning to smoothing groups 1–1009 beveling and extruding 1–1011 creating 1–1011 dividing 1–1011 tessellating 1–1011 faceted (glossary) 3–937 facial animation 2–1100 facial expression 1–729 fade filter (video post) 3–344 fade in/out (lights) 2–1345 falloff 2–1111, 2–1130, 2–1136, 2–1338 falloff map 2–1670 glossary 3–954 light falloff 3–753 family elements from Revit 3–457 rendering properties 3–457 fast adaptive antialiaser 2–1533 fast view display mode 3–853 favorite location dialog 3–516 favorites asset browser 3–516 HTML help viewer 3–878 FBX exporting 3–558 importing 3–558 FBX files 2–921 features crowd 2–839 feedback about the documentation 1–xiv, 3–874 fence selection region 1–90 fetch (edit menu) 1–95 FFD soft bodies 2–786 FFD(box) space warp 2–91 FFD(cyl) space warp 2–95 FFDs 2–834, 3–937 and physique 2–1104 FFD 2x2x2 1–683 FFD 3x3x3 1–683 FFD 4x4x4 1–683 FFD modifier 1–683 FFD select modifier 1–689 FFD(box) modifier 1–685 FFD(box) space warp 2–91 FFD(cyl) modifier 1–685 FFD(cylinder) space warp 2–95 FGM files 3–937 field of view flyout 3–741 glossary 3–937 field-of-view field-of-view button 3–741 fields (glossary) 3–938 FIG (figure) files 2–936, 2–1070 saving and loading 2–855 FIG files 2–1263 loading 2–942 saving 2–941 figure mode 2–834, 2–936, 2–982, 2–984, 3–939 figure structure 2–1070 file corruption 3–883 file formats 2–919, 2–1263 file i/o path configuration 3–810 file link 3–903 advanced settings 3–431 basic settings 3–429 basics 3–416 excluding layers 3–438 file link settings dialog 3–428, 3–435 including layers 3–438 manager utility 3–422 presets 3–429, 3–431 tips for using 3–419 working with drawing files 3–417 xref resolution 3–439 file menu 3–386, 3–673 archive 3–499 exit 3–503 export 3–486 export selected 3–486 file link manager 3–422 file properties 3–500 import 3–485 load animation 3–474 merge 3–463 merge animation 3–466 new 3–386 open 3–387 open recent 3–390 replace 3–470 reset 3–387 save 3–390 save animation 3–476 save as 3–391 save copy as 3–392 save selected 3–392 summary info 3–499 view image file 3–502 XRef objects 3–394 XRef scene 3–407 1775 1776 Index file output 3–266 file properties 3–500 file types BIP 2–920, 3–916 BVH 3–920, 3–969 CAL 2–1070 CSM 2–1065, 3–920, 3–925, 3–969 CWS 3–135 FIG 2–936, 2–1070 .mfe file 2–1045 MNM 2–1061, 2–1065 MOC 2–1065, 2–1070 PHY 2–1098, 2–1106, 3–994 STP 2–924 file-handling commands 3–386 files backup and saving 3–819 compressed 3–819 finding 3–510 incremental saves 3–819 managing 1–15 mismatched units 3–852 motion flow editor 2–1041 preferences settings 3–819 recent in file menu 3–819 fillet and editable splines 1–297 fillet curve 1–1164 fillet surface 1–1216 fillet/chamfer modifier 1–689 glossary 3–939 film grain effect 3–268 filter color mapping 2–1503 filter color/filter opacity (glossary) 3–939 filtering 2–837 euler tracks (Track View) 2–564 motion capture and marker data 2–1070 trackgroups 2–645 tracks in motion mixer 2–612 filtering bitmaps 3–939 filtering character animation 3–940 filters 3–98 add filter event (video post) 3–335 caustics 3–106 creating custom 1–68 edit filter event (video post) 3–335 environment backgrounds (viewports) 3–821 euler tracks (Track View) 2–564 filter (track bar) 3–703 filter combinations dialog 1–81 filtering selections 1–81 filters button (Track View) 2–541 filters dialog (Track View) 2–542 key 3–718 sampling 3–1005 filters panel 2–1023 final gather map (FGM file) 3–937 final gather rollout 3–111 final gathering 3–93, 3–111, 3–940 final step update script (particle flow) 2–139 find target test (particle flow) 2–218 finding errors 2–1012 fine-tuning envelopes 2–1088 fingers option 2–846 fins (bones) 1–404, 1–413 fire environment effect 3–276 first vertex 1–297, 3–941 fit 2–1130, 2–1147 fit (deformation) 1–367 fit to existing 2–1070 fix ambient utility 3–512 fix panel 2–1020 fix vertices constraint 2–796 fixed transition editor 2–1051 fixed width text button 3–815 fixed window 1–258 fixing errors 2–837, 2–1012, 2–1020 fixing motion errors 2–1023 fixing problems 3–883 flag properties dialog (Material Editor) 2–1655 flag with black 3–826 flat mirror map 2–1695, 3–83, 3–942 flatten footsteps 2–1070 flatten mapping 1–898, 1–907 flatten sides 1–1011 flex modifier 1–691, 1–700 flexibility (neck and spine) 2–846 flip normals 1–166, 1–1009 float controllers 2–297 float limit controller 2–335 floaters 1–431, 3–775 bone tools 1–411 display floaters 3–775 Schematic View display floater 3–651 selection floaters 1–79 transform type-in 1–431 floating 3–930 floating bones 2–1082, 2–1110 flows (particle flow) 2–208 empty flow 2–209 glossary 3–942 standard flow 2–209 fluorescence (glossary) 3–942 flyouts 1–12 align 1–462 Index arc rotate 3–744 array 1–448 default tangent types 3–721 dolly camera/target 3–746 dolly light/target 3–751 field of view 3–741 flyout (glossary) 3–943 material ID channel 2–1444 orbit/pan light 3–755 quick render 3–17 select and scale 1–440 selection region 1–80 timing preferences 3–815 use center 1–445 zoom extents 3–740 zoom extents all 3–737 focus plane 3–90 fog VRML97 helper 3–600 fog environment effect 3–282 folder motion flow editor 2–1041 foliage 1–210, 1–214 follow object binding to 2–461 glossary 3–943 follow/bank utility 2–653 foot states 2–833, 2–936, 2–965, 3–943 footcandle 3–955 footstep adaptation 2–988 animation (glossary) 3–943 animation workflow 2–856 converting to freeform 2–885 creation 2–863 edge selection 2–1000 editing 2–988 keys 2–867 leg states 2–867 timing (gait parameters) 2–861 footstep creation 2–833, 2–936, 2–988 create multiple footsteps (jump) 2–997 create multiple footsteps (run) 2–995 footstep operations 2–990 footstep extraction 2–1070 using motion-capture filtering 2–1061 footstep keys body horizontal 2–867 body turning/rotation 2–867 body vertical 2–867 footstep method 2–833 footstep mode 2–936, 2–988 footstep operations rollout 2–936, 2–990 footsteps 2–999 activating 2–865 airborne period 2–883 appending 2–863 bending path 2–869 convert to 2–999 creating 2–863 creating automatically 2–862 creating multiple 2–862 deleting 2–869 display 2–853 editing in time 2–869 editing placement 2–869 footstep mode dialog 2–1000 freeform period between 2–883 moving and rotating 2–869 saving 2–882 selecting in Dope Sheet mode 2–869 selecting in viewports 2–869 timing 2–869 timing gait parameters 2–861 footsteps method 3–943 force operator (particle flow) 2–204 force space warps displace 2–76 drag 2–66 gravity 2–73 motor 2–61 path follow 2–71 PBomb 2–68 push 2–59 vortex 2–63 wind 2–75 forward kinematics 2–954, 3–944 and IK 2–435 manipulating hierarchies with 2–426 forward kinematics and bipeds 3–944 FOV field-of-view button 3–741 fps 1–1253 fracture 2–770 tips 2–773 fragmentation (particle flow) 2–120 frame transition editor 2–1051 frame rate 2–288, 3–725, 3–944 and emit start/stop values (particle flow) 2–144 frames (snapping) 2–554 frames per second 3–861 free area light 2–1309 free camera 2–1370 free key defaults 2–956 1777 1778 Index free lights direct 2–1293 linear 2–1307 spot 2–1290 free-form deformation (FFD) box 2–91 box/cyl modifier 1–685 cylinder 2–95 modifier 1–683 select modifier 1–689 freeform 2–999 animation 2–902 convert to 2–999 converting to footsteps 2–885 inserting period between footsteps 2–883 method 2–833 setting period in footstep animations 2–883 freeform animation 2–886, 2–1002, 3–945 freeform method 3–945 freeze freeze rollout (display panel) 1–54 freeze/unfreeze (glossary) 3–945 freezing/unfreezing objects 1–70, 3–775 freeze non-selected curves (Track View) 2–587 frequently asked questions reactor 2–821 frizz animation hair and fur modifier 1–520, 1–540 frizz parameters rollout hair and fur modifier 1–540 from z level 2–1070 full screen 3–738 function curve editor 2–507, 2–535 function curves 2–837, 2–1008, 2–1012 add keys mode 2–581 glossary 3–945 show tangents 2–582 Track View 2–578 funnel-like objects 2–63 fuse vertices 1–297, 1–303, 1–308 fusing (glossary) 3–946 FX files 3–946 G G-buffer glossary 3–946 layers (rendering preferences) 3–826 gait pattern 3–947 gait type 3–947 game engine - edit normals 1–634 gamma correction (glossary) 3–948 gamma preferences 3–824 garment maker troubleshooting and error codes 1–622 garment maker modifier 1–607 user interface 1–613 using 1–575 general parameters (lights) 2–1331 general parameters rollout hair and fur modifier 1–534 general preferences settings 3–815 general settings rollout render to texture 3–157 generate colors 2–944 gengon 1–199 geographic location dialog 1–422 geometric primitives 3–948 geometric/deformable space warps bomb 2–105 conform 2–103 FFD(box) 2–91 FFD(cyl) 2–95 ripple 2–102 wave 2–100 geometry AutoCAD 3–441 AutoCADArchitectural Desktop 3–443 compound objects 1–313 doors 1–246 effect on cloth 1–576 extended primitives 1–186 file formats 3–523 geometric primitives 1–169 importing 3–524 loft object 1–352 standard primitives 1–170 types of 1–155 windows 1–253 geometry parameters rollout 2–1183 geometry rollout 2–1240 patch 1–986 GeoSphere 1–176 get material 2–1439 getting started 1–1 ghost transition editor 2–1051 ghosts ghost before/after current frame 3–821 ghost in wireframe 3–821 GI (global illumination) 3–51 GIF files 3–613 gizmo box atmospheric apparatus 3–304 cylinder atmospheric apparatus 3–306 gizmo/center (glossary) 3–949 preferences 3–832 sphere atmospheric apparatus 3–307 Index tracker 2–671 types of 3–304 using transform gizmos 1–426 gizmos rollout 1–791 global and local exclude/include dialog (for raytraced maps and materials) 2–1531 global clip 2–1179, 2–1246 global clip controller 2–1241, 3–950 global event (particle flow) 3–949 global illumination 3–51, 3–61, 3–93, 3–106, 3–940 global illumination (mental ray) 3–80 global lighting (rendered environment) 3–272 global motion clip 2–1179 global raytracer settings dialog 2–1528 global settings and defaults for bitmap proxies dialog 3–496 global shadow parameters (Track View) 2–512 glossary 3–901 glossiness mapping 2–1502, 3–950 glow render effect 3–226 go to rotation test 2–224 go to settings Material Editor 2–1446 to 2–1447 time 3–707, 3–722, 3–724 goal (and IK chain) 2–440 goniometric diagrams 2–1326 grab viewport 1–35 gradients gradient map 2–1650 gradient mapping 2–195 gradient ramp map 2–1652 lens effects gradient colors (video post) 3–381 lens effects gradient options (video post) 3–378 lens effects gradient types (video post) 3–379 lens effects gradients (Video Post) 3–377 graph editors menu 3–682 delete schematic view 3–652 delete Track View 2–598 new schematic view 3–638, 3–652 new Track View 2–597 saved schematic views 3–638, 3–653 saved Track View 2–599 Track View 2–598 Track View - curve editor 2–501 Track View - dope sheet 2–501 graphics driver setup dialog 3–838 GravAccel (gravitational acceleration) 2–846, 2–878, 2–980, 3–950 gravity 3–950 computation 2–878 gravity space warp 2–73 green line 2–1114 rigid vertices 2–1150 grid autogrid 2–7 grid and snap settings 2–41 grid nudge distance 3–821 grid setting display 3–709 home grid settings 2–49 options 2–46 snap override 2–45 snaps 2–41 user grids settings 2–51 grid method 3–129 grid method, raytrace acceleration 3–1000 grids 2–33, 3–951 activating 2–34 align to view 2–35 aligning to 1–1011 and resolution of patch model surface 1–991 grid and snap settings 2–41 grid helper object 2–20 show home grid 2–34 using 2–4 to 2–5 viewing 2–6 ground plane (and collision detection) 2–891 group script 2–1048 group menu 1–104, 1–109, 3–674 attach 1–106 close 1–105 detach 1–106 explode 1–106 group 1–104 open 1–105 ungroup 1–106 groups 1–96 and assemblies 1–98 and attaching physique 2–1083 and selection sets 1–96, 3–674 closing nested groups 1–105 detach from 1–110 explode 1–106 smoothing 1–167 using 1–96, 3–674 grow 1–809 growth objects hair and fur modifier 1–517 guide hairs hair and fur modifier 1–518, 1–526 H hair brush for styling 1–529 compositing method 3–222 cutting 1–529 1779 1780 Index light attributes 2–1351 shadows 3–223 styling 1–526 styling rollout 1–526 hair and fur and lighting 1–519, 3–220 rendering options 3–221 hair and fur feature components 1–517 hair and fur modifier 1–516 animation 1–520, 1–540, 1–545 display rollout 1–549 dynamics 1–520, 1–540, 1–545 dynamics rollout 1–545 frizz animation 1–520, 1–540 frizz parameters rollout 1–540 general parameters rollout 1–534 growth objects 1–517 guide hairs 1–518, 1–526 instanced hair 1–523 kink parameters rollout 1–542 material parameters rollout 1–537 mr parameters rollout 1–540 multi strand parameters rollout 1–544 quad menu 1–532 selection rollout 1–521 splines 1–517 styling hair 1–518, 1–526 styling rollout 1–526 surfaces 1–517 tools rollout 1–523 user interface 1–521 hair and fur render effect 3–220 hair and fur render element 3–140 hair light attributes 2–1351 handle display size 3–822 HD IK solver 2–440, 2–461, 2–467, 2–491 to 2–492, 2–494 to 2–496 HD solver 2–496 HD Solver 2–461, 2–463, 2–468, 2–471, 2–491 to 2–492, 2–494 to 2–495 HDR file format 3–613 HDRI files 3–613 head object 1–111 head object (glossary) 3–951 hedra 1–187 height map (baking) 3–148 height map displacement shader (mental ray) 2–1722 height option 2–846, 2–984 helix 1–281 help 3–873 about HTML help 3–874 contents 3–874 favorites tab 3–878 index 3–874 search 3–874 searching for help topics 3–876 help menu 3–684 helper object 3–951 helpers 2–2, 2–13 atmospheric apparatus 3–304 camera match 2–1391 compass 2–27 cone angle 2–27 dummy 2–16 expose transform 2–17 exposetm 2–17 grid 2–20 luminaire 1–111 manipulators 2–27 plane angle 2–29 point 2–23 protractor 2–26 reactor 2–715 slider 2–31 standard 2–16 tape 2–24 VRML97 3–597 HI IK solver 2–440, 2–446, 2–449 IK display options rollout 2–458 IK solver properties rollout 2–456 IK solver rollout 2–453 sliding and rotational joints 2–459 HI Solver 2–456 hide 1–53, 2–1150, 3–951 hide attached nodes 2–1108 hide by category 1–52 hide reference geometry 1–772 hide/show all 2–944 hiding and unhiding 1–53 by category 1–52, 1–72 by selection 1–70 edges 1–986 editable spline vertices 1–297 hide rollout 1–53 hierarchical linkage 3–951 hierarchical subdivision surfaces 1–701 hierarchies hierarchical linkage (glossary) 3–951 joint limits 2–421 navigating 2–425 terminology 2–416 using multiple 2–418 viewing 2–424 hierarchy of biped objects (Track View) 2–886 Index hierarchy panel 3–773 commands 2–487 IK 2–491 link info rollouts 2–499 pivot 2–487 hierarchy right-click menu (Track View) 2–516 hierarchy window (Track View) placing selected objects 2–588 selecting by name 2–589 high dynamic range images 3–613, 3–621 high-resolution rendering 3–197 highlights anisotropic 2–1492 Blinn 2–1493 metal 2–1494 multi-layer 2–1495 Oren-Nayar-Blinn 2–1493 Phong 2–1493 specular color 3–1014 hinge constraint 2–747 hinge polygons from edge dialog 1–1073 history list 3–390, 3–502, 3–641 history-dependent IK solver 2–440 history-independent IK solver 2–440, 2–446 hold (edit menu) 1–95 home grid 1–23 glossary 3–952 settings 2–49 using 2–4 views based on the world coordinate axes 1–23 hopping (dynamics of) 2–878 horizon (glossary) 3–953 horizontal (move key) 2–579 horizontal bezier handle control 2–582 horizontal text in vertical toolbar 3–815 hose 1–206 hosts file 3–124 hot (glossary) 3–953 hot keys 1–900, 2–140, 2–510, 2–1006, 2–1111, 2–1182, 3–871 hotspot 2–1338, 3–752, 3–954 how many 2–992, 2–995, 2–997 how to (NURBS) fix objects 1–1098 improve performance 1–1099 make things 1–1094 how tos 2–1264 HSDS modifier 1–576 to 1–577, 1–701, 1–706 HSV (glossary) 3–1001 HTML help viewer favorites tab 3–878 keyboard shortcuts 3–879 right-click menus 3–879 searching in 3–876 toolbar 3–878 using 3–874 HTR/HTR2 exporting 3–578 importing 3–576 hue/saturation/value (glossary) 3–1001 I i-drop Indicator 3–523 IAM files importing 3–552 ICB targa files (glossary) 3–633 icons color scheme 3–806 path for additional 3–813 reactor 2–707 ID material ID channel 2–1443 IES 2–1328 IES sky 2–1312 IES sun 2–1309 IFL files 3–616 and view file command 3–5, 3–502 IFL manager utility 3–619 image file list control dialog 3–618 IGES and NURBS surfaces 3–558 export/import log file 3–560, 3–562 exporting to 3–563 file translation 3–558 glossary 3–954 history 3–558 IGES import dialog 3–560 import table to 3ds Max 3–561 log files 3–560 overview 3–558 temporary files 3–560 ignore animation range 2–549 ignore backfacing 1–996, 1–1011, 1–1019 IK and control objects 2–435 and set key 2–281 animating with interactive IK 2–480 IK joints 2–437 IK solution (glossary) 3–955 overlapping chains 2–446 preferences 3–830 IK blend 2–959, 3–954 IK constraints 2–900, 2–902 IK limb solver 2–440, 2–472 IK object 2–954 IK only option 2–980 1781 1782 Index IK rollouts 2–491 auto termination 2–499 display options 2–458 IK solver rollout 2–453 inverse kinematics 2–497 object parameters 2–491 spline IK solver rollouts 2–478 IK solvers 2–440, 2–446, 2–453, 2–461, 2–472 illegal video colors 2–1434 illuminance 3–955 image alpha filter (video post) 3–344 image file formats 3–608 image file list IFL control dialog 3–618 IFL manager utility 3–619 image filter event (video post) 3–335 image input event (video post) 3–332 image input options (video post) 3–334 image layer event (video post) 3–337 image motion blur (glossary) 3–955 image output event (video post) 3–339 image sequence 3–5 images (2D) 3–608 import animations 3–466 file menu 3–485 IGES files 3–560 to 3–561 import options 3–586 merge animation 3–466 importing 3DS files 3–530 Adobe Illustrator 88 files 3–533 and attaching 3ds Max objects 1–1120 animation 2–921 DDF 3–571 DEM Models 3–571 DWG and DXF files 3–536 DXF files 3–551 FBX 3–558 HTR/HTR2 3–576 IAM files 3–552 IGES files 3–560 IPT files 3–552 landXML 3–571 marker file 2–1061 motion-capture file 2–1061 PRJ files 3–531 scenes 1–16 SHP files 3–533 STL files 3–586 TRC 3–577 VRML files 3–591 importing geometry 3–524 merge or replace scene 3–524 importing motion-capture data 2–925 IMSQ files 3–620 in tangent 3–721 in place mode 2–930, 2–936, 3–956 using to adjust keyframes 2–930 include new bones 2–1111 include/exclude lights 2–1283 including layers 3–438 incremental saves 1–19, 3–819 independent 3–558, 3–956 index of refraction 2–1471, 2–1509, 2–1514, 2–1538, 2–1670, 2–1703 indirect illumination 3–106, 3–994 influence 1–78 to 1–79, 2–1114, 2–1141, 3–407, 3–465, 3–957 areas of and envelopes 2–1085 influenced vertices 2–1147 inherit rollout 2–500 inheritance 2–434 initial graphics exchange specification (IGES) 3–558, 3–954 initial pose 2–1111, 2–1113, 2–1130, 2–1141, 2–1147, 2–1150, 3–957 initializing and ActiveShade 3–904 initializing physique 2–1083, 3–957 ink ’n paint material 2–1605 inline (VRML VRML97 helpers) 3–608 inner envelope 2–1130 inner/outer bounds 2–1085 input devices for motion capture 2–655 inputs (particle flow) 3–957 insert 2–1141, 2–1147 actions, events (particle view) 2–133 bulge angle 2–1114, 2–1141 control points 2–1114 cross section slice 2–1114 insert animation 1–114 insert character 1–115 insert tracks dialog 3–466 time (Track View) 2–570 tracks 3–466 vertices 1–295, 1–308 insert keys 2–558 inset polygons dialog 1–1074 inside 2–1136 installing 3ds Max (for network rendering) 3–186 instance duplicate maps utility 2–1744 Index instanced hair hair and fur modifier 1–523 instanced modifiers 1–511 instanced objects AutoCAD 3–456 rendering properties 3–457 instances 1–472 glossary 3–957 make unique 2–575, 2–577 of maps 2–1451 overview 1–472 propagating materials 2–1432 propagation 2–1432 shape instance operator (particle flow) 2–178 instances in motion mixer 3–958 integration steps (particle flow) 2–139 intensity (light) 2–1276, 2–1279 intensity mapping 2–1539 intensity/color/attenuation parameters 2–1345 intensity/color/distribution rollout 2–1352 interactive IK 2–480 interactive manipulation mode 1–1022 interactive redraw 2–1141, 2–1147 interactive rendering 3–17, 3–21, 3–1030 interactive reshade 3–17, 3–22 interactive update (Track View) 2–526 internet access 3–522 connection 3–504 internet download dialog 3–515 interparticle collision 2–243 interpolation 2–992, 2–995, 2–997, 3–958 stride 2–862 intersection 3–821 introduction dynamics 2–707 inverse kinematics 2–435 NURBS modeling 1–1078 object selection 1–61 particle flow 2–109 physics 2–707 reactor 2–703 rendering effects 3–218 sub-object selection 1–74 to this reference 3–873 introduction to character studio 2–831 inventor files importing 3–552 inverse kinematics 2–954 controlling precision 2–463 glossary 3–958 introduction 2–435 methods 2–439 preferences settings 3–830 rollout 2–497 terminology 2–437 inverse kinematics with bipeds 3–959 invert selection 1–88 IOR 2–1471, 2–1509, 2–1514, 2–1538, 2–1670, 2–1703 IPT files importing 3–552 iso curves 1–1168 iso line (glossary) 3–959 isolate selection tool 1–73 isometric views 1–24 isotropic light distribution 2–1323 iteration setting (HD IK solver) 2–463 J jambs 1–210 jitter (antialiasing control) 3–98, 3–1005 to 3–1006 job archives network job assignment 3–199 network rendering 3–173 job dialogs (network rendering) 3–190 join dialogs (NURBS) 1–1232 to 1–1233 join to previous ik key option 2–960 joint intersections 2–1108 parameters 2–1094, 2–1098 joint intersections rollout 2–1140 joint rotation data (in BVH files) 2–1061 joints activating joint axes 2–485 joint limits (hierarchies) 2–421 joint parameters 2–483, 2–495 joint precedence 2–467 to 2–468, 2–494 joint resistance and spring back 2–466 limiting joint action 2–486 path 2–483 rotational 2–483 setting joint precedence 2–467 setting joint resistance 2–466 setting parameters 2–483 sliding 2–483 sliding and rotational 2–496 surface 2–483 using default joint precedence 2–468 JPEG files (glossary) 3–620 JSR-184 editing parameters 3–566 export/import files 3–563, 3–565 to 3–566 log files 3–569 m3g player 3–570 texture parameters 3–565 JSR-184 player 3–570 jump 2–936, 2–988 1783 1784 Index jumping dynamics of 2–878 parameters 2–861 K KBD files 3–793, 3–804 keep apart operator 2–172 key filters 2–590, 3–718 key info Bezier controllers 2–310 key info rollouts 2–304, 2–306 master track key info dialog 2–391 key info rollout 2–954 key interpolation 2–833 key mode 3–724 key modes (links) 2–430 key reduction settings 2–1070 using motion-capture filtering 2–1061 key tangents toolbar 2–535 key tools toolbar 2–535 keyable icons 2–531 keyboard additional commands 3–669 creating primitives from 1–169 keyboard entry rollout 1–169 keyboard panel (customize UI) 3–793 keyboard shortcuts 1–900, 2–140, 2–510, 2–1006, 2–1111, 2–1182, 3–793, 3–871 HTML help viewer 3–879 override toggle 3–872 keyframe interpolation 2–305 keyframe mode 3–717 glossary 3–960 keyframe vertices constraint 2–797 keyframes adapting to edits 2–871 adjusting with in place mode 2–930 keyframing the biped 2–833 keyframing tools 2–962 keys adding 2–560 aligning 2–556 colors in Biped 2–947, 2–1005 create out of range 2–533 create out-of-range 2–562 default tangent types 3–721 delete 2–502, 2–554 editing 2–554 glossary 3–960 interpolating 2–305 key mode 3–724 key properties (track bar) 3–703 key statistics (Track View) 2–595 key time display (Track View) 2–594 master track 2–346 moving 2–558, 2–579 moving a group of 2–558 moving horizontal and vertical (Track View) 2–579 randomize 2–533 randomize utility 2–562 reducing 2–572 select 2–502 select by time 2–533, 2–563 soft selection manager 2–533 keys (setting) 2–904 keys menu Track View 2–524 keys windows (Track View) 2–504 kinematic chains 2–437, 3–960 kink parameters rollout hair and fur modifier 1–542 knot (glossary) 3–961 Kodak Cineon 3–610 L L-Ext 1–198 L-Extrusion 1–198 l-type stair 1–232 landXML importer 3–571 landXML/DEM model import dialog 3–571 Large BSP method 3–129 lasso selection region 1–90 lateral ratio 2–622 lathe lathe modifier 1–707 lathe surface (NURBS) 1–1190 lattice modifier 1–709 lattice parameters rollout 2–1242 launch script (glossary) 3–961 layer controller dialog 2–325 layer defaults 3–815 layer list 3–666 layer manager 3–656 layer properties 2–333 layer properties dialog 3–662 layer track 2–607 layers 1–117, 2–974, 3–655, 3–961 AutoCAD and 3ds Max 3–438 excluding in file linking 3–438 from AutoCAD 3–421 from Revit 3–421 glossary 3–961 including in file linking 3–438 layer event (video post) 3–337 layer list button 3–666 layer manager 3–656 Index layer properties dialog 3–662 select dialog 3–438 layers toolbar 3–688 add selection to current layer 3–667 create new layer 3–667 select objects in current layer 3–667 set current layer to selection’s layer 3–667 layout (viewports) 1–26, 3–856 layout menu (Schematic View) 3–643 layout mode glossary 3–961 leg link 2–984 leg states 2–867 legacy DWG import 3–547 length 2–990 transition editor 2–1051 lens effects 3–223 auto secondary 3–238 blur 3–260 brightness and contrast 3–265 color balance 3–265 depth of field 3–269 file output 3–266 film grain effect 3–268 glow 3–226 gradients 3–377 manual secondary 3–242 ray 3–234 ring 3–230 star 3–246 streak 3–250 lens effects (video post) animating properties 3–349 automatic secondary flare parameters 3–356 flare 3–350 flare glow parameters 3–355 flare inferno parameters 3–360 flare preferences 3–353 flare ray parameters 3–358 flare ring parameters 3–355 flare star parameters 3–359 flare streak parameters 3–360 focus 3–362 glow 3–364 glow inferno 3–368 glow preferences 3–367 glow properties 3–365 gradient colors 3–381 gradient options 3–378 gradient types 3–379 highlight 3–370 highlight geometry 3–374 highlight preferences 3–376 highlight properties 3–371 manual secondary flare parameters 3–357 lens effects filters (video post) 3–345 lens size (cameras) 2–1373 level of detail utility 1–1253 VRML97 helpers (LOD) 3–602 lift 2–936, 2–965, 3–962 leg state 2–867 lift dynamics 2–878 light distribution diffuse 2–1323 isotropic 2–1323 spotlight 2–1324 web 2–1325 light include/exclude tool 2–1283 light lister 2–1285 light map 3–962 light painting rollout (radiosity) 3–70 light parameters mental ray indirect illumination rollout 2–1343 mental ray light shader rollout 2–1345 light shader rollout 2–1345 light shaders mental ray 2–1345 light tracer 3–44 to 3–45 light viewports 1–24, 1–33, 3–750 lighting exclude/include dialog 2–1335 general parameters 2–1331 guidelines 2–1280 hair and fur 1–519, 3–220 in 3ds Max 2–1279 lighting analysis 3–76, 3–300, 3–628 lighting analysis dialog 3–76 lighting data exporter utility 3–303 lighting exclusion 2–121 lighting map (baking) 3–148 lighting parameters rollout 3–141 lighting texture element rollout 3–141 lightmap shader 2–1614 lights 2–1272, 2–1301 add default lights to scene 1–49 advanced effects rollout 2–1341 and atmospheres 2–1351 and effects 2–1351 and materials 2–1399 and shading 2–1399 and shadows 2–1279 animating 2–1282 atmospheres and effects for 2–1349 dolly 3–751 free area 2–1309 1785 1786 Index free direct 2–1293 free linear 2–1307 free point 2–1304 free spotlight 2–1290 light falloff 3–753 light include/exclude tool 2–1283 light lister 2–1285 mental ray shadow maps 2–1360 mr sky 2–1318 mr sun 2–1319 name and color rollout 2–1273 omni 2–1295 orbit/pan 3–755 photometric lights 2–1301 placing 1–7 positioning 2–1282 properties of 2–1276 roll 3–753 standard 2–1288 target area 2–1307 target direct 2–1292 target linear 2–1305 target point 2–1303 target spotlight 2–1289 truck 3–755 types of 2–1272, 2–1301 using 2–1274 viewport controls 3–752 to 3–753 working with 2–1274 lights name and color rollout 2–1273 Lightscape export 3–572 import 3–573 Lightscape import Lightscape Materials utility 3–574 lightscape material 2–1604 Lightscape Materials utility 3–574 limit controller 2–335 limiting animation ranges 2–335 limiting joint action 2–486 line 1–270 linear arrays (creating) 1–487 linear controller 2–341 linear dashpot 2–730 linear exposure control 3–296 linear light rollout 2–1354 link 2–1130, 2–1141, 2–1147 biped hand to an object 2–960 blending 2–1108 envelopes list (left side) 2–1126 length 2–1111 length as basis for envelope creation 2–1083 linking drawing files 3–1004 linking objects to biped 2–854 name 2–1150 scale 2–1091, 2–1136 sub-object 2–1135 to root attach node 2–1106 link constraint 2–403 link rollouts 1–58, 2–499 link info inherit 2–500 link info locks 2–500 link settings rollout 2–1136 link sub-object level joint intersections rollout 2–1140 link settings rollout 2–1136 linkage, hierarchical 3–951 linked file states 3–422 linked objects assigning materials to 3–445, 3–454 conversion settings 3–428, 3–435 selecting when file linking 3–440 linked XForm modifier 1–712 linking and unlinking objects 2–421 animatable parameters 2–411 to 2–412 bones to follow objects 2–461 end effectors to parent 2–461 strategy 2–418 linking files 3–422 links 3–963 adding and deleting 2–430 adjusting parameters 2–1091 and joint settings 2–1111, 2–1113 and pivots 2–426 animating links 2–430 blending between 2–1083, 2–1085 changing link inheritance 2–434 displaying 2–421 link inheritance (selected) utility 2–435 main toolbar 2–422 moving 2–890 parameters 2–1091 radial scale parameters 2–1091 rotating 2–891 scaling 2–851 setting parameters 2–1091 sliding parameters 2–1091 twist parameters 2–1091 lip sync 1–729 list layers 3–666 list controller 2–342 named selection sets 1–83 selection filter 1–81 transformation axis coordinate system 1–443 Index list views (Schematic View) 3–645 listener listener window (glossary) 3–963 MAXScript listener 3–781 load 2–1070 buffer only 2–1065, 2–1070 file option 2–936 marker name file 2–1065 .mfe file 2–1032 motion capture file 2–1065 motion flow editor 2–1032 parameters 2–1070 specification 2–1106, 2–1123 load animation 3–474 load custom UI scheme 3–805 load envelopes 1–805 load/save presets rollout (PArray) 2–274 loading BIP files 2–942 biped figure files 2–855 biped step files 2–924 FIG files 2–942 motion files 2–920 STP files 2–942 loading animation 3–472 local working folder 3–487 local biped curve 2–1012 local center during animate 3–828 local coordinate system (glossary) 3–963 local euler XYZ rotation controller 2–344 local event (particle flow) 3–963 local illumination 3–51 locate vertical center of mass keys 2–945 lock character 1–115 lock selection 2–555 lock time tag 3–710 lock UI layout 3–788 locking object transforms 2–433 selection lock 3–707 lock assignments 2–1089, 2–1150 lock com keying 2–945 lock selection status bar 3–707 Track View 2–555 locks rollout 2–500 LOD level of detail utility 1–1253 thresholds 1–1256 VRML97 helpers 3–602 loft object 1–352 creation method rollout 1–354 deform bevel 1–366 deform fit 1–367 deform scale 1–364 deform teeter 1–365 deform twist 1–364 deformation dialog 1–368 deformations 1–363 path commands 1–372 path parameters rollout 1–356 shape commands 1–373 skin parameters rollout 1–358 surface parameters rollout 1–354 lofting glossary 3–964 shapes 1–262 log file 3–124, 3–964 log files IGES 3–560 logarithmic exposure control 3–297 LogLUV format (TIFF files) 3–303 look at controller 2–344 look at object (particle flow) 3–964 look-at constraint 2–406 loop 1–809 looping 2–1061, 2–1070 animation 2–551 animation (Track View) 2–570 to 2–571 loop event (video post) 3–342 low res environment background 3–821 low-polygon modeling 1–1252 lower bound 2–1147 LS colors 1–550 LS colors modifier 1–550 LS mesh modifier 1–713 LTLI files 3–964 lume shaders 2–1713 lumen 3–965 LumeTools shaders 2–1713 luminaire helper object 1–111 luminance 3–964 luminous flux (glossary) 3–965 luminous intensity (glossary) 3–965 LUT preferences 3–824 lux 3–955 LZF files 3–965 LZG files 3–965 LZH files 3–965 LZO files 3–965 LZV files 3–965 M m3g files 3–563 m3g player 3–570 macro recorder (MAXScript) 3–782 1787 1788 Index macros path for additional 3–813 MACUtilities 2–665 main toolbar 3–686 main window 1–9 make absolute 3–809 make controller/object unique (Track View) 2–550 make curve on surface dialog 1–1226 make loft dialog 1–1234 make material copy 2–1442 make point curve dialog 1–1235 make point dialog 1–1235 make preview 2–1434, 3–168 make relative 3–809 make selected same size (video post) 3–328 make unique 1–504, 1–511, 2–577, 3–770 Material Editor 2–1442 particle view 2–127, 2–133 manage scene states 3–518 manage scene states dialog 3–520 manager brush presets 3–692 manager (network rendering) 3–182 managers (transform) 1–433 managing files 1–15 scenes and projects 3–385 manipulator 2–27 manipulator helper objects cone angle 2–27 plane angle 2–29 slider 2–31 manipulators built-in 2–15 select and manipulate 2–15 manual secondary flares 3–242 manual update (envelopes) 2–1130 map animation 3–478 map track to track rollout 3–481 motion mapping parameters rollout 3–479 retargeting rollout 3–481 map channel info dialog 2–1738 map track to track rollout 3–481 mapped material glossary 3–967 mapping ambient color 2–1497 anisotropy 2–1504 bump 2–1506 coordinates (glossary) 3–967 cutout 2–1542 diffuse color 2–1498 diffuse level 2–1499 diffuse roughness 2–1500 displacement 2–1511 filter color 2–1503 flatten 1–907 glossiness 2–1502 map network drive dialog 3–188 mapping coordinates 2–1405 mapping operator (particle flow) 2–195 metalness 2–1506 normal 1–908 opacity 2–1503 orientation 2–1505 reflection 2–1508 refraction 2–1509 self-illumination 2–1502 shininess 2–1502 shininess strength 2–1501 specular color 2–1500 specular level 2–1501 unfold 1–919 mapping biped motion 2–921 maps 2–1662, 3–124, 3–503 2D 2–1624 3D 2–1662 activate all 1–50 camera map per pixel 2–1732 cellular 2–1664 checker 2–1638 color modifier 2–1692 combustion 2–1639 composite 2–1688 compositor maps 2–1687 custom 3ds Max mental ray shaders 2–1711, 2–1714, 2–1716 to 2–1717, 2–1719, 2–1721 to 2–1724, 2–1728 to 2–1730 cutout mapping 2–1542 deactivate all 1–50 deleting 2–1413 dent 2–1667 dragging and dropping 2–1423 falloff 2–1670 flat mirror 2–1695 glossary 3–968 gradient 2–1650 gradient ramp 2–1652 hierarchy (glossary) 3–970 light map 3–962 lume shaders 2–1713 map bias (glossary) 3–966 map channel (glossary) 3–966 map types 2–1617 mapped materials 2–240, 2–1445 maps rollout 2–1474 Index marble 2–1673 mask 2–1689 mental ray shaders 2–1712 mix 2–1689 noise 2–1674 normal bump 2–1731, 3–150 ”other” (in the material/map browser) 2–1695, 2–1698 to 2–1699, 2–1703, 2–1711 to 2–1714, 2–1716 to 2–1717, 2–1719, 2–1721 to 2–1724, 2–1728 to 2–1732 output 2–1692 particle age 2–1675 particle MBlur 2–1676 Perlin marble 2–1677 planet 2–1678 procedural 3–997 projected 2–1341 raytrace 2–1698 reflect/refract 2–1699 reflection and refraction 2–1695 RGB multiply 2–1691 RGB tint 2–1693 show in viewport 2–1445 smoke 2–1679 speckle 2–1680 splat 2–1681 stucco 2–1682 swirl 2–1656 thin wall refraction 2–1703 tiles 2–1658 to enhance material 2–1403 transparency 2–1542 type button (Material Editor) 2–1449 vertex color 2–1693 waves 2–1683 wood 2–1684 MapScaler object-space modifier 1–713 MapScaler world-space modifier 1–551 marble map 2–1673 marker data 2–1061, 3–969 marker display dialog 2–1075 marker files 2–1065, 3–920, 3–969 importing 2–1061 name files 2–1061 marker name file dialog 2–1061 market-specific defaults 3–790 marking a contact object (particle flow) 2–183 mask map 2–1689 mask viewport to safe region 3–821 master block parameters dialog (block controller) 2–390 master clip 2–1179 master motion clip 2–1179, 3–969 master object 1–494 master point controller 2–346, 2–391 material xref material 2–1616 material assignment blocks 3–458 material attach options dialog (Boolean objects) 1–345 Material Editor 2–1409 bitmap 2–1631 dynamics properties rollout 2–1479 maps rollout 2–1474 material ID channel 2–1443 menu bar 2–1428 morpher material 2–1592 options dialog 2–1436 tools 2–1427 type button 2–1449 material ID and attaching objects 1–1018 and Booleans 1–338 and editable meshes 1–1009 and editable patches 1–981 and editable splines 1–308 and particles 2–190 changing (particle flow) 2–191 glossary 3–969 material ID channel flyout 2–1444 Material Editor 2–1443 material operators dynamic 2–191 frequency 2–189 static 2–187 material parameters rollout hair and fur modifier 1–537 material propagation 2–1432 material shaders rollout mental ray material 2–1544 material to shader 2–1723 material xml exporter utility 2–1407 material/map browser 2–1412 material/map navigator 2–1447 materialbyelement modifier 1–716 materials 2–1395, 2–1400, 3–83 adding to library 2–1406 advanced lighting override 2–1601 and attaching objects 1–1018 and blocks 3–457 and particle array 2–239 and particle system events 2–124 and particle systems 2–240, 2–242 and set key 2–281 and styles 3–461 animating 2–1449 1789 1790 Index applying in particle flow 2–186 applying to an object 2–1405 applying to objects 2–1409 arch & design (mental ray) 2–1549 architectural 2–1535 Architectural Desktop 3–446 assign to selection 2–1441 assigning 3–445, 3–454 AutoCAD Architecture 3–445 blend 2–1588 blocks 3–458 car paint (mental ray) 2–1576 changing 3–446, 3–454 combined when attaching objects/splines 1–295, 1–1011 components 2–1399 composite 2–1589 compound materials 2–1587 copying 2–1409 default material settings 2–1442 deleting 2–1413 designing 2–1395 DGS material (mental ray) 2–1580 DirectX 9 shader 2–1613 double-sided 2–1591 dragging and dropping 2–1423 editable 2–1535 exporting 2–1407 get 2–1439 getting from library 2–1409 glass (mental ray) 2–1582 glossary 3–971 hierarchy (glossary) 3–970 ID channel 2–1443 ink ’n paint 2–1605 lightscape 2–1604 loading from scene 2–1409 make copy 2–1442 material blending (morpher material) 2–1592 material modifier 1–714 material name field 2–1448 material properties rollout (NURBS) 1–1149 matte/shadow 2–1584 mental ray 2–1544 morpher 2–1592 multi/sub-object 2–1594 name 2–1396, 2–1409 pick from object 2–1448 propagation 2–1432 put to library 2–1443 put to scene 2–1440 raytrace 2–1512 Revit 3–453 to 3–454 saving 2–1406, 2–1409 scene 2–1440 select by 2–1439 shell 2–1600 shellac 2–1597 show end result 2–1446 SSS materials (mental ray) 2–1583 standard 2–1465 subsurface scattering (SSS) materials (mental ray) 2–1583 top-bottom 2–1599 type 2–1397, 2–1457 type button (Material Editor) 2–1449 types of 2–1457 updating 2–1440 using 1–6 using maps to enhance 2–1403 matte object (glossary) 3–971 matte parameters rollout 3–141 matte texture element rollout 3–141 matte/shadow material 2–1584 max clips 2–649 MAX file finder utility 3–510 MAX files and Autodesk VIZ 3–525 max object add to motion mixer 2–607 max objects to mix dialog 2–642 maximum angular/positional deviation for a track 2–1070 MAXScript 2–120 about MAXScript 1–xvii and particle flow 2–208, 2–229 command-line 3–783 glossary 3–972 listener 3–781 MAXScript listener 3–781 menu 3–684, 3–780 mini listener 3–699 open MAXScript 3–781 preferences settings 3–834 run script 3–781 visual MAXScript utility 3–783 MAXScript debugger dialog 3–783 MAXScript menu 3–684, 3–780 macro recorder 3–782 MAXScript listener 3–781 new script 3–781 open script 3–781 run script 3–781 maxstart.cui file 1–12, 1–17 maxstart.max file 1–17 measure distance 2–15 measuring 2–13, 2–24, 2–52 melt modifier 1–717 Index memory management 3–514 memory use 3–129 mental ray add/edit DBR host dialog 3–128 arch & design material 2–1549, 2–1562, 2–1569 car paint material and shader 2–1576 DGS material 2–1580 distributed bucket rendering 3–128 distributed bucket rendering rollout 3–124 glass material 2–1582 material 2–1544 object properties 1–126 satellite processors 3–128 satellites 3–124 subsurface scattering materials 2–1583 mental ray Connection rollout 2–1461 mental ray indirect illumination rollout 2–1343 mental ray light shader rollout 2–1345 mental ray material advanced shaders rollout 2–1548 material shaders rollout 2–1544 mental ray materials 2–1543 mental ray messages 3–124 mental ray renderer 3–78, 3–940 contour shading 3–96 diagnostic tools 3–123 displacement shading 3–96 feature enhancements 3–84 FGM file 3–937 final gather map 3–937 materials 2–1543 messages window 3–87 MI files 3–972 object properties 1–126 PASS file 3–990 photon map 3–994 preferences 3–837 processing panel 3–86 shadow map rollout 2–1360 volume shading 3–95 mental ray shaders 2–1461, 2–1710, 2–1712 3D displacement 2–1714 bump shader 2–1716 car paint shader 2–1576 connect parameter to shader dialog 2–1713 custom 3ds Max shaders 2–1711 dgs material shader 2–1717 dielectric material shader 2–1719 environment shader 2–1721 height map displacement 2–1722 material to shader 2–1723 mr physical sky 2–1321 shader list 2–1723 third-party shaders 2–1711 uv coordinate 2–1728 uv generator 2–1724 uv generator parameters rollout 2–1725 uv generator shaders rollout 2–1727 XYZ coordinate 2–1730 XYZ generator 2–1729 XYZ generator parameters rollout 2–1729 XYZ generator shaders rollout 2–1730 menu bar curve editor 2–521 dope sheet 2–521 Material Editor 2–1428 particle view 2–126 Track View 2–521 menus animation 3–681 controller 2–521 create 3–675 customize 3–683 edit 3–673 file 3–673 graph editors 3–682 group 3–674 help 3–684 material editor copy and paste 2–1418 MAXScript 3–684, 3–780 menu bar 3–672 menus panel (customize UI) 3–798 modifiers 3–678 particle view 2–126 reactor 2–706, 3–681 rendering 3–683 Schematic View 3–642 tools 3–674 views 3–675 merge 3–463 animation (file menu) 3–466 custom sections 1–859 effects 3–220 insert tracks command 3–466 merge dialogs 2–1453 to 2–1454, 3–406, 3–463, 3–465 scenes 1–16 shapes 1–859 merge from file sweep modifier 1–859 merge xref controller 2–383 merging characters 2–922 mesh editable mesh 1–996 mesh select modifier 1–719 meshsmooth modifier 1–722 skin morph modifier 1–812 1791 1792 Index skin wrap modifier 1–818 skin wrap patch modifier 1–824 turbosmooth modifier 1–868 working with mesh sub-objects 1–998 mesh - definition 3–972 mesh conversion 2–206 mesh density, and cloth 1–577 mesh editing 1–935 mesh object (as Physique skin) 2–1076 mesh size (reducing) 2–1099 mesher object 1–374 meshing parameters rollout (radiosity) 3–67 meshsmooth modifier 1–722 MeshSmooth modifier and cloth 1–576 meshsmooth selection dialog 1–1074 messages 3–124 meta-operators cache 2–197 metaballs 1–331, 3–972 metal bump shader 2–1614 metal highlights 2–1494 metal shader 2–1481 metalness mapping 2–1506 methods (IK) 2–439 .mfe file append 2–1032 file types 2–1045 load 2–1032 save 2–1032 MFE files 2–652, 2–919, 2–1263 folder 2–1041 MI file 3–119, 3–124 MI files 3–972 middle button pan/zoom (viewports preferences) 3–821 MIDI time slider control (animation preferences) 3–828, 3–847 mini listener (MAXScript) 3–699 mini Track View (track bar) 3–703 minimum key spacing 2–1070 mirror 1–448, 2–913, 2–962, 2–1130, 2–1141, 2–1147 main toolbar 1–448 mirror curve (NURBS) 1–1160 mirror dialog 1–448 mirror modifier 1–728 mirror surface (NURBS) 1–1187 mirroring joint parameters 2–495 mirroring objects 1–491 splines 1–308 mirror dialog 1–448 mirror parameters rollout 1–791 mirror selected cross section 2–1114 mirrored link copying envelope settings to 2–1088 mirrored UVs 3–155 mirroring 3–972 mirroring motion 2–913 missing external files dialog 3–503 missing map coordinates dialog 2–1623 missing XRef paths dialog 3–415 MIX files 2–935, 2–1263 mix map 2–1689 mix menu 2–629 mixdown 2–624 mixer and BIP files 2–924 load mix 2–652 mode 2–652 rollout 2–652 save mix 2–652 mixer clip source options dialog 2–634 mixer transition editor dialog 2–636, 2–638 MNM file 3–973 MNM files 2–919, 2–1061, 2–1065, 2–1263 MNU files 3–795, 3–798, 3–804 mobile gaming editing JSR-184 parameters 3–566 exporting JSR-184 files 3–563 MOC files 2–1065, 2–1070 modal (glossary) 3–973 mode motion flow 2–1026, 2–1043 modeless (glossary) 3–973 modeling objects 1–5, 1–842 modes 2–936, 2–982, 2–988 in place 2–930 mixer 2–652 rubber band 2–876 talent figure 2–1061 Track View 2–521 modes menu curve editor and dope sheet 2–521 modifier list 3–758 modifier sets menu 3–771 modifier stack 3–760 collapsing 1–504 editing 1–504 glossary 3–973 modifier stack rollout 1–502 right-click menu 3–766 using 1–502 using at sub-object level 1–508 modifier-based space warps 2–107 modifiers 1–493, 1–497, 1–555, 1–557 affect region 1–557 and AutoCAD object transforms 3–442 Index and set key 2–281 and transforms 1–499 attribute holder 1–559 bend 1–560 bevel 1–562 bevel profile 1–565 camera correction 2–1392 camera map 1–513, 1–567 cap holes 1–569 cloth 1–578 conversion 1–871, 1–873 to 1–874 CrossSection 1–623 delete mesh 1–626 delete patch 1–627 delete spline 1–627 displace 1–629 displace mesh (world space) 1–514 displace NURBS (world space) 1–515 edit mesh 1–634 edit normals 1–634 edit patch 1–638 edit poly modifier 1–640 edit spline 1–680 extrude 1–680 face extrude 1–682 FFD 1–683, 1–685, 1–689 fillet/chamfer 1–689 flex 1–691 free-form deformation 1–683, 1–685, 1–689 garment maker 1–607 glossary 3–974 hair and fur 1–516 HSDS 1–701, 1–706 instanced 1–509, 1–511 lathe 1–707 lattice 1–709 linked XForm 1–712 list of 1–497 LS colors (world space) 1–550 LS mesh 1–713 make controller unique 2–550 MapScaler (object space) 1–713 MapScaler (world space) 1–551 material 1–714 materialbyelement 1–716 melt 1–717 mesh select 1–719 meshsmooth 1–722 mirror 1–728 morpher 1–729 multires 1–739 noise 1–743 normal 1–746 normalize spline 1–747 NSurf sel 1–747 object space 1–557 patch select 1–751 PatchDeform 1–552, 1–754 PathDeform 1–552, 1–755 point cache 1–555, 1–758 poly select 1–762 preserve 1–766 projection 1–769, 1–771 to 1–773, 1–775 to 1–777 projection holder 1–778 push 1–779 reactor cloth 2–778 reactor rope 2–789 reactor soft body 2–784 relax 1–779 renderable spline 1–781 ripple 1–783 select by channel 1–785 shell 1–785 skew 1–790 skin 1–791 skin morph 1–812 skin wrap 1–818 skin wrap patch 1–824 slice 1–825 smooth 1–828 spherify 1–829 spline IK control modifier 1–830 spline select 1–831 squeeze 1–833 STL check 1–834 stretch 1–836 substitute 1–840 surface 1–842 surface mapper (world space) 1–556 SurfDeform 1–557, 1–848 sweep 1–848, 1–857 to 1–858 symmetry 1–861 taper 1–863 tessellate 1–865 topology dependent 3–1023 trim/extend 1–866 turbosmooth 1–868 turn to mesh 1–871 turn to patch 1–873 turn to poly 1–874 turn-to modifiers 1–871, 1–873 to 1–874 twist 1–876 unwrap UVW 1–878 UVW map 1–922, 3–447, 3–455 UVW mapping add 1–933 UVW mapping clear 1–933 1793 1794 Index UVW mapping paste 1–934 UVW Xform 3–447, 3–455 UVW XForm 1–934 vertexpaint 1–936 volume select 1–952 wave 1–957 world space 1–512 WSM 1–512 XForm 1–959 modifiers menu 3–678 animation modifiers 1–557, 1–712, 1–754 to 1–755, 1–848 cache tools 1–758 free-form deformers 1–683, 1–685 mesh editing 1–569, 1–626, 1–634, 1–680, 1–682, 1–746, 1–748, 1–828, 1–834, 1–861, 1–865, 1–935 to 1–936 nurbs editing 1–557, 1–628, 1–848, 1–1101 parametric deformers 1–557, 1–560, 1–629, 1–709, 1–728, 1–743, 1–766, 1–779, 1–783, 1–790, 1–825, 1–829, 1–833, 1–863, 1–876, 1–957, 1–959 patch/spline editing 1–623, 1–627, 1–638, 1–680, 1–689, 1–707, 1–747, 1–842, 1–848, 1–857 to 1–858, 1–866 radiosity modifiers 1–555, 1–839 selection modifiers 1–719, 1–751, 1–831, 1–952 subdivision surfaces 1–722, 1–839 surface 1–628, 1–714, 1–716 UV coordinates 1–513, 1–551, 1–556, 1–567, 1–922, 1–934 modify child keys 2–529 modify child keys (Track View) 2–509 modify panel 1–499, 3–758 modify subtree (Track View) 2–509, 2–528 modifying at sub-object level 1–506 multiple objects 1–509 NURBS models 1–1081 objects (basics) 1–153 morph 1–314 morph controllers 2–300 morpher material 2–1592 morpher modifier 1–729 morphing (glossary) 3–974 motion combining BIP files 2–924 mapping 2–921 mirroring 2–913 Motion Analysis 2–665, 3–576 to 3–578 motion blending 3–975 motion blur 2–122, 2–240, 2–1386, 3–89, 3–101, 3–114, 3–269, 3–955, 3–981, 3–1007 and particle flow 2–191 motion capture 2–347, 2–655, 2–1059, 2–1064, 3–975 batch file conversion dialog 2–1075 buffer 2–1061, 2–1065, 2–1070 conversion parameters dialog 2–1070 converting data from buffer 2–1065 file 2–1070 importing files 2–1061 introduction to importing 2–925 rollout 2–1061, 2–1065 motion clip 2–1246, 3–975 motion clips Track View pick dialog 2–1252 motion clips panel 2–1246 motion damper 2–66 motion editing 2–1012 motion files 2–919, 3–976 information saved in 2–920 loading motion files 2–920 samples 2–920 motion flow 2–837, 3–976 and BIP files 2–924 BIP file location 2–920 clip properties dialog 2–1045 compare with motion mixer 2–604 editor file 2–1045 graph 2–1027 to 2–1028, 2–1045 mode 2–936, 2–1026, 2–1030, 2–1043, 2–1045, 2–1048 optimize transition 2–1058 random motion 2–1035 random motion flow 2–1039, 2–1056 rollout 2–1045 script 2–1026 to 2–1027, 2–1048 shared 2–1056 shared motion flow 2–1039, 2–1056 transition 2–1028 unified motion 2–1038 workflow 2–1043 motion flow editor 3–976 append 2–1032 files 2–1041 load 2–1032 save 2–1032 motion flow graph optimize 2–1058 motion flow mode 2–936 motion fow scripts 3–976 motion mapping parameters rollout 3–479 motion mixer 2–604 adding bipeds 2–607 adding max objects 2–607 adding tracks 2–607 adjusting balance 2–622 clip timing 2–615 Index cloning clips 2–611 compare with motion flow 2–604 editor 2–646 export animation 2–624 filtering biped parts 2–645 how to use 2–604 importing clips 2–609 menus 2–629 moving clips 2–611 optimize transition 2–641 preferences 2–651 replacing clips 2–611 reservoir 2–649 toolbar 2–642 trackgroups 2–612 transitions 2–616 user interface 2–628 weight curve 2–619 motion panel 2–301, 2–303 to 2–304, 2–306, 2–463, 2–933, 3–774 motion parameters rollout 2–1183 motion synthesis 2–1172, 3–977 global clip controller 2–1241 motionclip parameters dialog 2–1252 motor 2–765 motor space warp 2–61 mounting a directory (network rendering) 3–188 mouse sensitivity 3–821 MOV files 3–621 move 1–439, 2–936, 2–965 clip 2–1045 leg state 2–867 move keys (Track View) curve editor 2–579 dope sheet 2–558 edit keys 2–558 function curves 2–579 moved pivot 2–959 movie window (camera tracker) 2–671 moving actions, events (particle flow) 2–132 cameras 1–7 center of mass 2–876 keys 2–558 keys (biped) 2–1004 lights 1–7, 2–1282 links 2–890 through time 2–287 to first frame 3–722 to last frame 3–724 to next frame 3–724 to previous frame 3–723 to transform keyframes 3–724 moving biped keys 2–1004 MPEG files 3–621 mr parameters rollout hair and fur modifier 1–540 mr physical sky shader 2–1321 MSP files 3–977 MTL exporting 3–590 mtl files (wavefront) 3–588 multi strand parameters rollout hair and fur modifier 1–544 multi-layer basic parameters 2–1481 multi-layer highlights 2–1495 multi-level shader 2–1504 multi-pass parameters (cameras) depth of field 2–1383 motion blur 2–1386 multi-pass rendering effects 3–77 multi-pass rendering effects (cameras) 2–1382 multi/sub-object material 1–834, 2–242, 2–1594 multi-threading 3–826 multi-view blocks 3–459 multicurve trim surface 1–1214 multiple biped links 2–895 selecting and rotating 2–895 multiple instanced objects 2–121 multiplicity (glossary) 3–977 multiplier (glossary) 3–977 multiplier curve applying 2–584 deleting 2–585 enable toggle 2–585 glossary 3–978 multiplier out-of-range types (Track View) 2–586 MultiRes modifier 1–739 multiresolution adaptive antialiaser 2–1534 multisided blend surface 1–1213 multithreading and rendering 3–828 MVBlocks 3–459 N N blend surface 1–1213 n links 2–1111, 2–1150 N links 3–978 name object name 3–757 name and color rollout 3–757 for lights 2–1273 named selection sets 1–67, 1–83 to 1–84, 1–508 names material 2–1396 selecting by (Track View) 2–589 naming layers 3–655 1795 1796 Index naming materials 2–1409 natural light 2–1280 navigating 3D space 1–21 blocks 3–460 camera and light views 1–33 hierarchies 2–416, 2–425 rendered panorama 3–173 viewports 3–735 navigating the workbench 2–1010 navigator (material/map) 2–1447 NavInfo (VRML97 helpers) 3–599 neck link 2–984 negative filter (video post) 3–345 nested expressions (HTML help viewer) 3–876 net render control (common parameters rollout) 3–79 network working folder 3–487 network plug-in configuration 3–814 network rendering 3–173, 3–175, 3–1001 advanced settings 3–199 Backburner 3–173 configuration 3–175 email notification 3–196 error messages 3–183 glossary 3–979 how it works 3–180 installing 3ds Max for 3–186 job dependencies 3–196 job dialogs 3–190 job handling 3–199 manager 3–978 per-job timeouts 3–199 pre-render MAXScript 3–199 pre-render scripts 3–173 server (glossary) 3–979 set up 3–175 single computer 3–202 starting 3–182 TCP post number 3–199 troubleshooting 3–183 new new command (file menu) 3–386 new Schematic View 3–652 new script 3–781 new sequence (video post) 3–323 new Track View 2–597 new feature 1–88, 1–163, 1–446, 1–500, 1–775, 1–1070, 2–289, 2–291, 2–293, 2–301, 2–332, 2–414, 2–425, 2–518, 2–533, 2–543 to 2–544, 2–561, 2–564, 2–596, 2–959, 2–1005, 2–1414, 2–1447, 3–6, 3–426, 3–462, 3–474, 3–537, 3–556, 3–697, 3–761, 3–847 new preset 3–437 new settings preset dialog 3–437 new Track View 2–597 newton (glossary) 3–979 next frame 3–724 next key 3–724 next key-previous key 2–955 next transition transition 2–1051 next/previous 2–1130, 2–1141 next/previous key;finding, next/previous key 2–955 NGon 1–277 no blending 2–1111, 2–1150 no footsteps 2–1070 no key reduction 2–1070 node (glossary) 3–979 node track (glossary) 3–979 noise and terrain effects 1–744 noise controller 2–353 noise map 2–1674 noise modifier 1–743 noise rollout (2D) 2–1630 noise threshold 2–1650, 2–1652, 2–1674, 3–282, 3–288 non-biped object 2–638, 2–641 non-vertical jambs 1–210 nonrelational NURBS surfaces 1–1116 nonscaling object size 3–821 normal bump map 2–1731 normal bump maps 3–150 troubleshooting 3–151 normal mapping 1–898, 1–908 normal projected curve 1–1169 normalize spline modifier 1–747 normalized 2–1150 normals 1–166 adjusting 1–166 aligning 1–465, 2–10, 2–488 editing 1–634 flipping 1–166 normal modifier 1–746 scaling vertex and face 1–996 unifying 1–166 viewing and changing 1–166 normals map (baking) 3–148 note keys 2–552 note track 2–552 to 2–553 notes adding 2–197, 2–206 notes operator 2–206 notes dialog (parameter collector) 1–145 NSurf sel modifier 1–747 nth serial numbering 3–826 NTSC 3–826, 3–980 Index numbers of links that can affect a vertex 2–834 show/hide all 2–944 numeric calculator 1–12 numerical expression evaluator 1–12 NURBS 2–834 and animation 1–1091 and modifiers 1–1089 animation tips 1–1099 blend curve 1–1158 blend surface 1–1183 cap surface 1–1195 chamfer curve 1–1161 concepts 1–1091 creating models 1–1094 curve approximation 1–1238 curve fit 1–1157 curve point 1–1220 curve sub-objects 1–1135 CV curve 1–1110 CV surface 1–1103 definition 1–1091 extrude surface 1–1188 fixing problems with models 1–1098 glossary 3–980 improving performance 1–1099 introduction 1–1078 lathe surface 1–1190 mirror curve 1–1160 mirror surface 1–1187 offset curve 1–1159 offset surface 1–1186 point 1–1219 point curve 1–1106 point point 1–1219 point surface 1–1102 ruled surface 1–1193 sub-object clone options dialog 1–1237 surf point 1–1222 surface approximation 1–1239 tips 1–1094, 1–1099 transform curve 1–1157 transform surface 1–1182 U and V iso curves 1–1168 U loft surface 1–1196 using toolbox to create sub-objects 1–1083 working with models 1–1080 NURBS curve/surface detach dialog 1–1228 NURBS curves 1–1106 creating from splines 1–1115 fillet 1–1164 glossary 3–980 NURBS models 1–1078 creating 1–1079 creating sub-objects 1–1081 dependent sub-objects 1–1087 display controls for 1–1117 glossary 3–980 modifying 1–1081 objects and sub-objects 1–1078 overview 1–1080 sub-object selection 1–1084 working with 1–1080 NURBS surfaces 1–1101 and IGES 3–558 creating from geometric primitives 1–1116 display line parameters 1–1119 glossary 3–981 making rigid imported surfaces independent 3–558 surface approximation 1–1239 NURMS 1–722, 1–1003 O OBJ exporting 3–589 obj files (wavefront) 3–588 object bounding box 2–1111 object color dialog 1–159 object data flow 1–494 object display 1–51 object display culling 1–58 object fragmentation (particle flow) 2–120 object instance 3–981 object motion blur (glossary) 3–981 object motion inheritance rollout (PArray) 2–269 object parameters rollout 2–491 copying/pasting/mirroring joint parameters 2–495 position/orientation/bind to follow 2–492 precedence 2–494 sliding and rotational joints 2–496 object properties 1–117, 3–80 advanced lighting panel 1–123 cloth 1–602 edit menu 1–117 general panel 1–117 mental ray panel 1–126 user defined panel 1–127 object selection (introduction) 1–61 object space 3–982 object space (biped) 3–983 object space modifiers 3–983 object transforms 2–432 to 2–433 object/delegate associations dialog 2–1196 object-layer relationships 3–655 object-space modifier 1–557 MapScaler 1–713 1797 1798 Index objects 1–153, 2–960, 2–1282 aligning 2–8 arraying 1–484 binding 2–461 color 1–159 combining 1–338, 1–378, 1–388 copies/instances/references 1–472 creating 1–157 exporting 3–486 freezing and unfreezing 1–70 glossary 3–981 make controller unique (Track View) 2–550 modeling 1–5 modifying multiple objects 1–509 object properties 1–117 select and manipulate 2–15 select and move 1–439 select and rotate 1–439 to 1–440 selecting 1–61, 1–77 selecting by material 2–1439 techniques for cloning 1–474 using as bones 1–410 objects to bake rollout 3–158 obsolete file alert 3–390, 3–819 obstacle avoidance 2–1164 obstacle parameters rollout 2–1242 obstacle-avoidance behavior 3–983 odd/even 3–826 offset offset curve 1–1159 offset point 1–1219 offset surface 1–1186 offset/absolute coordinate display 3–709 oiltank (extended primitive object) 1–194 omni light 2–1295, 3–983 omnidirectional light 3–983 omniflector 2–78, 2–84 to 2–85, 3–984 on selected objects/on all objects 2–1075 on/off controller 2–355 once time frame 2–141 online help using HTML help viewer 3–874 online reference introduction 3–873 searching in 3–876 using HTML help viewer 3–874 only extract footsteps within tolerance 2–1070 opacity 2–1488 falloff (glossary) 3–984 mapping 2–1503 open assembly 1–109 file (file menu) 3–387 from vault 3–389 group (group menu) 1–105 new bitmap file 2–1635 particle view dialog 2–136 script (MAXScript menu) 3–781 video post sequence 3–323 open dialog 2–942 open from vault 3–389 open physique file 2–1106 open physique file button 2–1098 open recent 3–390 OpenEXR files format 3–621 opening 3–626 saving 3–623 OpenGL driver 3–838, 3–841 opening screen 1–17 operands 1–338, 1–378, 1–388, 3–985 operator icon 3–985 operators 2–142 birth 2–143 birth script 2–145 delete 2–146 display 2–202 empty flow 2–209 force 2–204 glossary 3–985 keep apart 2–172 mapping 2–195 material dynamic 2–191 material frequency 2–189 material static 2–187 notes 2–206 operator time frames 2–141 position icon 2–147 position object 2–148 render 2–206 rotation 2–153 scale 2–156 script 2–208 shape 2–176 shape facing 2–176 shape instance 2–178 shape mark 2–183 speed 2–159 speed by icon 2–162 speed by surface 2–167 spin 2–154 standard flow 2–209 opposite tracks 2–945 optical markers 3–985 optimizations rollout 2–1361 Index optimize motion flow 2–1058 motion mixer 2–641 transition 2–641, 2–1058 optimize modifier 1–748 optimize transition transition editor 2–1051 optimizing performance (particle flow) 2–120 options 3–828 grid and snap 2–46 Material Editor 2–1436 rendering 3–826 viewports 3–821 options menu Track View 2–526 options menu (particle view) 2–130 options menus (Schematic View) 3–644 to 3–645 orbit/pan camera 2–1381, 3–749 light 3–755 Oren-Nayar-Blinn basic parameters rollout 2–1482 Oren-Nayar-Blinn highlights 2–1493 organic surfaces 1–842 orientation changing 1–423 constraint 2–409 mapping 2–1505 orientation bar 2–1114, 2–1141 orientation behavior 2–1214, 3–985 origin (glossary) 3–986 origin point helper 3–431 origin slider 3–815 ortho snapping mode 2–38 orthographic view 3–986 orthographic views 1–24 out tangent 3–721 out-of-range keys (Track View) 2–562 types 2–551, 2–585 to 2–586, 3–987 outdoor lighting 3–45 outer envelope 2–1130 outline 1–308 output image event (video post) 3–339 output map 2–1621, 2–1692 output rollout 2–1621, 3–160 outputs (particle flow) 3–987 outside 2–1136 overlap 2–1111 overlapping IK chains 2–446 overlapping vertices and editable rollout (for object and sub-objects) 1–289 overlays xref scenes 3–408, 3–412 overriding (degradation) 1–34 overshoot (glossary) 3–988 overview cloth 1–571 clothing and pattern design 1–572 garment maker modifier 1–607 physique 2–834 workflow 2–839 overview of 3ds Max 1–1 P pack UVs dialog 1–909 paint (vertexpaint modifier) 1–936 paint deformation rollout 1–1064 brush options 1–960 paint selection region 1–91 paint weights 1–960 paintbox vertexpaint modfier 1–941 painter options 1–960 PAL 3–826, 3–988 palette vertexpaint modifier 1–950 paletted 3–826 pan panning views 1–29 particle view 2–129, 2–135 Track View 2–595 viewport controls 3–743 pan view 3–743 panels create 3–757 customize UI 3–793 to 3–795, 3–798 to 3–799 display 3–775 hierarchy 3–773 modify (command panel) 1–499, 3–758 motion 3–774 render scene 3–61, 3–219 scripted utility 3–1008 utilities (command panel) 3–778 panorama exporter 3–170 render setup dialog 3–171 viewer 3–173 pants (cloth) 1–574 parallel projection 1–24 parameter (glossary) 3–989 parameter animation 2–121 parameter collector 1–138 menu bar 1–142 parameter collector menu bar 1–142 parameter collector notes dialog 1–145 parameter curve out-of-range types (Track View) 2–551 1799 1800 Index parameter editor 1–129 parameter space (glossary) 3–988 parameter wiring 1–104, 2–411 to 2–412 parameters custom attributes 1–129 HD Solver 2–491 notes 1–145 parameter collector 1–138 parameter collector menu bar 1–142 parameter editor 1–129 wiring 2–411 parameters panel (particle view) display of 2–129 glossary 3–988 parameters rollout 1–791 parametric (glossary) 3–989 parametric stride length 2–992, 2–995, 2–997 parametric stride width 2–992, 2–995, 2–997 parent overlap 2–1130 PArray 2–256, 2–258, 2–260, 2–262, 2–268 to 2–271, 2–274 partial blending 2–1092, 2–1130 particle age map 2–122, 2–191, 2–1675 particle collision 2–243 particle deflector deflector 2–90 SDeflector 2–87 UDeflector 2–89 particle emission 2–145 particle flow frequently asked questions 2–118 introduction 2–109 keyboard shortcuts 2–140 source 2–135 particle generation 2–145 particle level 3–990 particle MBlur map 2–122, 2–1676 particle motion blur 2–122 particle motion damper 2–66 particle rotation rotation operator 2–153 spin operator 2–154 particle system 2–134, 2–209, 3–990 particle systems blizzard 2–251 creating 2–238 glossary 3–990 overview 2–237 PArray 2–256 particle MBlur map 2–1676 PCloud 2–253 snow 2–246 spray 2–244 super spray 2–249 particle tests 2–210 age 2–211 collision 2–212 collision spawn 2–215 find target 2–218 go to rotation 2–224 scale 2–227 script 2–229 send out 2–230 spawn 2–230 speed 2–233 split amount 2–234 split selected 2–235 split source 2–236 particle view depot 2–125 description panel 2–125 display tools 2–125 event display 2–131 introduction 2–109, 2–125 menu bar 2–126 open 2–136 parameters panel 2–125 particles along a path 2–163 and age 2–146 and binding to space warps 2–121 and deflector space warps 2–212, 2–215 and materials 2–187, 2–189, 2–191 and particle flow 2–110 and stretch 2–122 appearance when selected 2–138 caching 2–197 creating particle systems 2–238 direction 2–123, 2–159, 2–162, 2–167, 2–172, 2–176, 2–178 display in viewports 2–202 emission 2–143 emission rate 2–145 generation 2–143 geometry type 2–176, 2–178 leaving a mark 2–183 limiting life span 2–146 mapping 2–195 MBlur map 2–191 motion blur 2–191 number of 2–119, 2–145 orientation 2–153 parent particle 3–989 particle age map 2–1675 particle diagram 3–989 particle emitter 2–239 particle generation rollout (PArray) 2–260 Index particle motion blur 2–240 particle spawn rollout (PArray) 2–271 particle type rollout (PArray) 2–262 positioning 2–147 to 2–148 rendered as 2–206 rotation 2–153 scaling 2–156 size 2–176 spawn particles 3–1014 speed 2–123, 2–159, 2–162, 2–167, 2–172 spinning 2–154 synchronize animated bitmap textures 2–121 testing particle scale 2–227 unexpected spawning 2–122 viewport display 2–202 PASS file mental ray renderer 3–990 paste 2–1141, 2–1147 a material, map, bitmap, or color 2–1418 paste controller (Track View) 2–545 paste footsteps 2–990 paste from buffer 2–1065 paste layer 2–325 to 2–326 paste posture 2–962 paste posture opposite 2–962 paste selected cs 2–1114 paste skin data dialog 2–700 paste tangent handles 1–297 paste time/track (Track View) 2–568 paste-pos tolerance 1–807 pasting 2–910 pasting joint parameters 2–495 patch (glossary) 3–991 patch grids 1–993 quad patch 1–994 tri patch 1–995 patch select modifier 1–751 patch surfaces 1–842, 1–993 copying 1–968 deleting 1–968 patch-based objects 3–991 PatchDeform object-space modifier 1–754 world-space modifier 1–552 path motion flow 2–1041 path constraint 2–398 and particles 2–163 path follow behavior 2–1162, 2–1216, 3–992 path follow space warp 2–71 path joints 2–485 to 2–486 PathDeform object-space modifier 1–755 world-space modifier 1–552 paths and AutoCAD xrefs 3–431 and particles 2–122, 2–163 and XRefs 3–411, 3–415 configuring paths 1–15 configuring system paths 3–810, 3–814 configuring user paths 3–808, 3–810 to 3–812 glossary 3–991 moving a camera along 2–1381 path commands (loft objects) 1–372 path follow space warp 2–71 path parameters rollout 1–356 pattern background 2–1433 pattern design (cloth) 1–572 PBomb space warp 2–68 PCloud particle system 2–253 PDynaFlect space warp 2–81 pelt map parameters dialog 1–909 per-bitmap resolution for bitmap proxies dialog 3–496 per-pixel camera map 2–1732 per-pixel camera projection 2–1732 percent snap 2–38 perform footstep extraction 2–1070 performance 3–106, 3–129, 3–1000 and biped’s motion previewing 2–929 and weight painting 1–961 controlling display performance 1–28 improving in NURBS 1–1099 optimizing with physique 2–1099 while running 3ds Max 3–889 performance optimization (particle flow) 2–120 period 3–992 Perlin marble map 2–1677 perspective and orthographic viewport controls 3–738 glossary 3–992 matching 2–1380 viewport control 3–747 perspective view 1–24 phases of leg motion 3–993 Phong highlights 2–1493 Phong shader 2–1480, 2–1482 photometric lights 1–7, 2–1272, 2–1301 area light sampling rollout 2–1354 common lamp values 2–1329 data file 2–1328 to 2–1329, 2–1355 example of photometric data file 2–1329 free area light 2–1309 free linear light 2–1307 free point light 2–1304 IES standard file format 2–1328 linear light rollout 2–1354 1801 1802 Index mr sky light 2–1318 mr sun light 2–1319 photometric webs 2–1326 preset lights 2–1302 target area light 2–1307 target linear light 2–1305 target point light 2–1303 web 2–1326 web parameters 2–1355 photometry 3–993 photon map 3–994 photon maps 3–93, 3–106 photorealistic renderer 3–38 PHY files 2–1098, 2–1106, 2–1263, 3–994 physical scale 3–295 to 3–297, 3–300 physique 2–834, 2–1080, 2–1083, 3–994 and changing geometry 2–1104 and FFDs 2–1104 and groups 2–1083 and other modifiers 2–1104 applying 2–1083 blending envelope display 2–1125, 2–1128 bulge angle display 2–1127 deformation spline 2–834, 2–1135 getting started with 2–1076 initializing 2–1083 joint intersections rollout 2–1140 keyboard shortcuts 2–1111 link settings rollout 2–1136 overview 2–834 reinitializing settings 2–1098 saving settings 2–1098 storing settings in PHY files 2–1098 tendon display 2–1128 user interface 2–1106 Physique initialization 2–1123, 2–1125 physique initialization dialog 2–1083, 2–1111 physique level of detail rollout 2–1108 physique load specification dialog 2–1106, 2–1123 physique rollout 2–1106 Physique sub-objects 2–1129 PIC file format 3–613 PIC files 3–303, 3–628 pick material from object 2–1448 pick nodes dialog 2–641 pinch 2–1147 pinch bias 2–1147 ping-pong (playback direction setting) 3–723 pivot door 1–251 pivot points 2–487, 2–959 glossary 3–995 use pivot point center 1–446 using 1–509 pivot selection dialog 2–959 pivoted window 1–259 pivots adjust pivot rollout 2–488 adjust transform rollout 2–489 adjusting 2–423 and links 2–426 resetting 2–423 pivots (IK extensions) 2–905 pixel 3–995 pixel data (rendered frame window) 3–7 place highlight 1–467, 2–1282 planar constraints 1–437 make edges 1–1011 make vertices 1–1011 threshold 1–719, 1–996 plane 1–185, 2–764 plane angle manipulator 2–29 planet map 2–1678 plant 2–936, 2–965, 3–995 leg state 2–867 planted key defaults 2–956 plate match 3–38 plate match/MAX R2.5 antialiasing 1–567 play selected 3–723 playback 2–853, 2–936 real-time 2–197 playback speed 2–288 playing animated material previews 2–1450 animation 3–723 preview 2–1434 plug-ins color selector (general preferences) 3–815 glossary 3–995 plug-in manager 3–788 sharing over a network 3–814 system path configuration 3–814 plugin.ini file 1–17 PMAP file 3–995 PNG file (glossary) 3–628 point 1–1219, 2–1070 glossary 3–995 helper object 2–23 sub-object 1–1085, 1–1219 point cache modifiers 1–555, 1–758 point curve 1–1106 glossary 3–996 on surface 1–1175 sub-object 1–1155 point point 1–1219 Index point surface 1–1102 glossary 3–996 sub-object 1–1181 point-path constraint 2–762 point-point constraint 2–750 point3 XYZ controller 2–317 polar snapping mode 2–39 poly select modifier 1–762 polygon - definition 3–936 polygon count 1–1253, 3–861 polyhedra 1–187 POmniFlect space warp 2–78 ponytails 2–984 pose copying and pasting 2–966 pose adjustment 2–1070 poses 3–996 adding 2–1096 copying between bipeds 2–910 reference 2–1076 posing bipeds 2–847 position changing 1–423 ranges (Track View) 2–574 position constraint 2–401 position data (in CSM files) 2–1061 position operators position icon 2–147 position object 2–148 position ranges (Track View) 2–574 position XYZ controller 2–356 position/orientation/bind to follow object 2–492 position/rotation threshold (IK) 2–463 position/rotation/scale (PRS) controller (Track View) 2–357 parameters (motion panel) 2–303 positional markers 3–996 posture copying and pasting 2–966 postures 2–910 power 2–1114, 2–1141 pre-calculating particle motion 2–120 pre-render scripts advanced settings 3–173 command-line rendering 3–211 network rendering 3–190 precedence 2–494 child-to-parent 2–469 glossary 3–997 parent-to-child 2–470 setting manually 2–471 precedence, and keyboard shortcuts 3–872 precision and drawing aids 2–1 preferences 3–815 animation 3–828 asset browser 3–514 files 3–819 gamma 3–824 general settings 3–815 gizmos 3–832 inverse kinematics 3–830 MAXScript preferences 3–834 mental ray renderer 3–837 MIDI time slider control 3–847 motion mixer 2–651 preference settings dialog 3–815 radiosity settings 3–836 rendering 3–826 Schematic View 3–646 strokes 3–862, 3–867 viewports 3–821 preferences (display) 2–931 premultiplied alpha (glossary) 3–633, 3–997 preserve map channels dialog 1–1075 preserve modifier 1–766 preset lights 2–1302 preset rendering options 3–23 preset views 1–24 presets 3–23, 3–437 brush 3–690 configure (video post) 3–327 rendering 3–23 preview animated material previews 2–1450 make 2–1434 play 2–1434 renderings 3–168 save 2–1434 preview and animation rollout 2–806 preview window 2–815 previewing biped motion 2–929 motion 2–1084 Shockwave 3D files 3–585 W3D files 3–585 previous frame 3–723 previous key 3–723 previous link/next link 2–1114, 2–1147 previous transition transition 2–1051 primitives creating with keyboard 1–169 extended 1–186 standard 1–170 print size wizard 3–25 priority of actions (particle flow) 2–124 1803 1804 Index priority rollout 2–1235 prism 1–205 prismatic constraint 2–754 PRJ files 3–531, 3–902 problems 3–883 problems caused by unit settings 3–891 ProBoolean 1–378 procedural maps dent 2–1667 glossary 3–997 wood 2–1684 procedures 2–1264 process options rollout 3–124 processing panel mental ray 3–86 processing parameters rollout (radiosity) 3–64 ProCutter 1–388 production render 3–17 productivity 2–833 profile 2–1141 profile view 2–1114 program window 1–9 progressive morphing 1–737 project file format 3–531 project folder 3–393 project mapping projector 1–777 project workflow in 3ds Max 1–1 projected window 1–260 projection - preferences 3–821 projection holder modifier 1–778 projection modifier 1–769, 3–150 cage rollout 1–773 project mapping rollout 1–777 projection rollout 1–776 reference geometry rollout 1–772 selection check rollout 1–775 selection rollout 1–771 projection options dialog 3–165 projector light 2–1341, 3–998 projectors project mapping 1–777 projects - managing 3–385 prompt line 3–699 prop bone 2–1065, 3–998 propagate materials to instances 2–1432 propagation 2–622 blocks 2–1432 instances 2–1432 materials 2–1432 styles 2–1432 properties animation controllers 2–519 changing layer properties 3–666 controller (Track View) 2–560 dialog (Track View) 2–519 file menu 3–500 of light 2–1276 particle system 2–134 rigid body 2–717 viewports 3–731 waveform controllers 2–519 properties (clips) 2–1027 motion flow 2–1045 properties rollout 2–815 props 2–898 using 2–898 protractor helper object 2–26 proximity test (particle flow) 2–218 ProxSensor (VRML97 helpers) 3–598 proxy object XRef object 3–414 proxy object rollout XRef object 3–414 PRS PRS controller (Track View) 2–357 PRS parameters 2–303 PS files 3–612 PSD file (glossary) 3–629 pseudo alpha compositor (video post) 3–382 pseudo alpha filter (video post) 3–346 pseudo color exposure control 3–300 publish Shockwave 3–580 publishing to 3D DWF 3–555 pull 2–1147 pull bias 2–1147 pull/pinch/stretch options (tendons) 2–1147 push modifier 1–779 space warp 2–59 put material to scene 2–1440 put to library 2–1443, 2–1455 pyramid 1–182 Q QOP files 3–801, 3–804 quad menu Schematic View 3–653 quad menus 1–1082, 2–534, 3–694, 3–696, 3–795, 3–801 animation 3–697 hair and fur modifier 1–532 reactor 2–707 quad meshing 1–392 quad patch 1–994 quadruped animating a 2–907 quads panel (customize UI) 3–795 Index quadtree 3–999 quaternion rotation 2–916, 2–948 quaternion/tcb 2–916 quaternions 2–318 queue video post 3–312 queue manager 3–999 queue monitor client (glossary) 3–999 quick align 1–465 quick render ActiveShade 3–17 flyout 3–17 production 3–17 quick start (batch rendering) 3–201 quickslice 1–676, 1–1058 QuickTime movies 3–621 R radial dialogs density 3–256 falloff 3–257 size 3–259 radial scale 2–1130, 2–1136 parameters (links) 2–1091 radiance file format 3–613 radiance map 3–613 radiance picture files 3–628 radiosity 2–1279, 3–51 and animation 3–60 and architectural materials 2–1540 choosing radiosity 3–44 controls 3–61 how it works 3–56 light painting rollout 3–70 lighting analysis 3–76 lighting analysis dialog 3–76 meshing parameters rollout 3–67 preferences settings 3–836 processing parameters rollout 3–64 rendering parameters rollout 3–71 skylight 2–1296 statistics rollout 3–75 workflows 3–57 radiosity solution 3–51, 3–56 radius 2–1147 rag doll constraint 2–737 railing 1–210, 1–217 RAM player 3–635, 3–637 random motion create 2–1035, 2–1055 motion flow 2–1035 script 2–1035, 2–1055 transition 2–1035 random placement difficulty dialog 2–1195 randomize keys 2–533 randomize keys utility (Track View) 2–562 range bar (video post) 3–327 ranges editing 2–573 positioning 2–574 realigning with keys 2–574 recoupling 2–574 ranges toolbar Track View - dope sheet 2–541 ray render effect 3–234 ray tracing 3–80, 3–116 ray-traced reflections and refractions 3–88 shadows 3–89, 3–114, 3–1011 ray-traced shadows glossary 3–1000 parameters 2–1363 ray-trace bias (glossary) 3–1000 RAYHOSTS file 3–124, 3–1001 specifying name and path 3–124 raytrace acceleration parameters 2–1531 adaptive antialiaser dialogs 2–1533 attenuation rollout 2–1706 basic material extensions rollout 2–1707 basic parameters rollout 2–1514 dynamics properties rollout 2–1527 extended parameters rollout 2–1519 global settings 2–1528 map 2–1698 map and material 2–1531 maps rollout 2–1523 material 2–1512 messages 2–1528 raytracer controls rollout 2–1521 refractive material extensions rollout 2–1708 raytrace acceleration 3–116, 3–1000 parameters for BSP method 3–129 parameters for Grid method 3–129 parameters for Large BSP method 3–129 raytrace map 3–83 raytrace material 3–80, 3–83 raytracer parameters rollout 2–1704 raytracing acceleration parameters dialog 2–1531 re-attachment 2–1113 reaction controllers 2–358, 2–361 reaction manager dialog 2–361 reaction manager dialog 2–361 1805 1806 Index reactor analyze world 2–813 angular dashpot 2–732 car-wheel constraint 2–757 cloth 2–778 cloth collection 2–781 cloth modifier 2–778 collisions rollout 2–810 compound rigid bodies 2–722 constraint solver 2–736 constraints 2–724 cooperative constraints 2–735 create animation 2–806 deformable bodies 2–777 deformable constraints 2–795 deforming mesh collection 2–794 deforming meshes 2–793 display rollout 2–812 FFD soft bodies 2–786 fracture 2–770 frequently asked questions 2–821 gravity 2–808 hinge constraint 2–747 icons 2–707 introduction 2–703 linear dashpot 2–730 menu 2–706 motor 2–765 plane 2–764 point-path constraint 2–762 point-point constraint 2–750 preview 2–815 preview and animation rollout 2–806 prismatic constraint 2–754 properties rollout 2–815 quad menu 2–707 rag doll constraint 2–737 rag doll script 2–817 real-time preview 2–815 reduce keys 2–813 rigid bodies 2–716 rigid body collection 2–723 rope collection 2–792 rope modifier 2–789 ropes 2–789 scale 2–711 scripts 2–817 setup scripts 2–817 simple constraints 2–727 soft bodies 2–783 soft body collection 2–788 soft body modifier 2–784 solver 2–806 special features 2–712 spring 2–727 storing and accessing collisions 2–774 toolbar 2–706 toy car 2–766 troubleshooting 2–823 utilities 2–813 utility 2–805 utils rollout 2–813 water 2–801 water space warp 2–801 wind 2–803 world rollout 2–808 reactor helpers 2–715 reactor menu 3–681 real time (glossary) 3–1001 real-time playback 2–197, 2–1084 real-time preview 2–815 real-world map size 2–1619 real-world mapping 2–1619 reassign globally 2–1108 reassigning vertices 2–1089 rebuild dialogs CV curve 1–1236 CV surface 1–1236 texture surface 1–1236 recorder (MacroRecorder) 3–782 recouple ranges (Track View) 2–574 _recover.max files 1–20 recovered file 1–20 rectangle 1–272 rectangular area light 2–1299 rectangular region 3–742 rectangular selection region 1–89 recursion depth 2–1528 red deformable vertices 2–1150 line 2–1114 red/green/blue (glossary) 3–1001 redefine script 2–1048 redo 1–36, 1–94 redraw all views 1–50 reduce keys (Track View) 2–572 reducing mesh size 2–1099 reference biped 2–974 reference coordinate system 1–435, 1–443, 3–815 reference objects 2–178, 3–1002 reference pose 2–1076 references 1–472, 2–577 glossary 3–1002 overview 1–472 using XRefs 3–393 Index refine editable spline segments 1–303 editable spline vertices 1–297 glossary 3–1002 refining curves and surfaces (concept) 1–1091 reflect/refract map 2–1699, 3–83 reflectance display 2–1430 reflection maps 2–1508, 2–1695 reflections 3–88 refraction maps 2–1509, 2–1695 refractions 3–88 refresh content communication center 3–715 refresh viewport display 1–50 regathering 3–61 region 1–65 selection 1–65, 1–80, 1–89 to 1–91 selection method (edit menu) 1–92 selection preferences 3–860 zoom region (particle view) 2–129 zoom region (viewport control) 3–742 region net render 3–197 reinitialize 3–1002 reinitialize (physique) 2–1098, 2–1106, 2–1113 reinitialize selected links 2–1091, 2–1136 relative scale 2–1150 relative snap 2–35, 2–41 relax dialog 1–1076 relax mesh 1–986 relax modifier 1–779 relax tool dialog 1–912 relaxing texture coordinates 1–912 remap locally 2–1108 remove ease or multiplier curve (Track View) 2–585 note track (Track View) 2–553 remove from link 2–1089, 2–1150 remove from track set 2–591 remove note track 2–553 rename objects tool 1–128 rename preview 3–170 rename settings preset dialog 3–437 render ActiveShade 3–17, 3–21 blowup 3–13 common parameters rollout 3–27 default scanline 3–38 dialogs 2–1455, 3–2, 3–9, 3–633 presets 3–23 render operator (particle flow) 2–206 render scene 3–2, 3–12 render type list (main toolbar) 3–13 rendered output 3–272 rendering elements separately 3–130 scripts rollout 3–34 selected objects 3–13 to texture 3–144 vertex coloring 2–1693 VUE files 3–130 render bounding box/selected dialog 3–16 render effects 2–512, 3–218 to 3–219, 3–223, 3–226, 3–230, 3–234, 3–238, 3–242, 3–246, 3–250, 3–260, 3–265 to 3–266, 3–268 to 3–269 hair and fur 3–220 render elements 3–130, 3–137 to 3–138 hair and fur 3–140 velocity 3–142 render scene dialog advanced lighting panel 3–44 common panel 3–27 render panel 3–2 renderer panel 3–36 render shortcuts toolbar 3–689 render to texture 3–144, 3–146, 3–150, 3–158, 3–160, 3–162 to 3–165 normal bump mapping 3–150 render to texture dialog 3–156 add texture elements dialog 3–164 automatic mapping rollout 3–163 baked material rollout 3–162 general settings rollout 3–157 objects to bake rollout 3–158 output rollout 3–160 projection options dialog 3–165 render UVs dialog 1–914 render UVW Template 1–914 renderable spline modifier 1–781 rendered frame window 3–5 rendered output 3–173 renderer configure preset dialog 3–33 renderer panel render scene dialog 3–36 renderers 3–35 to 3–36, 3–38, 3–130 interactive 3–1030 panorama exporter 3–170 photorealistic 3–1006 scanline 3–1006 viewport 3–1030 rendering 3–1, 3–79 and multithreading 3–828 batch 3–201 to 3–202, 3–208 bones 1–404 command line 3–209, 3–211, 3–215 commands 3–11 don’t alias against background 3–826 1807 1808 Index elements separately 3–137 email notification 3–33 large images 3–828 on multiprocessor systems 3–828 portions of scene 2–1379 preferences settings 3–826 presets 3–23 reactor toolbar 3–688 render farms 3–180 render operator (particle flow) 2–206 rendering method 3–853 scene 1–9 shapes 1–262 to texture 3–144, 3–146, 3–150 with caustics (mental ray) 3–80 with global illumination (mental ray) 3–80 with motion blur 3–89 with shadow maps 3–89 rendering algorithms rollout 3–116 rendering commands render last 3–25 rendering effects multi-pass (cameras) 2–1382 rendering for print 3–197 rendering menu 3–683 ActiveShade floater 3–21 ActiveShade viewport 3–21 advanced lighting 3–44 effects 3–218 environment 3–271 to 3–272 lighting analysis 3–76 Material Editor 2–1409 material/map browser 2–1412 print size wizard 3–25 radiosity 3–61 RAM player 3–635 raytrace global exclude 2–1531 raytrace settings 2–1528 render 3–12 render scene 3–12 render to texture 3–156 show last rendering 3–25 video post 3–311 rendering parameters rollout (radiosity) 3–71 rendering properties family elements 3–457 instanced objects 3–457 renderingmenu panoramic exporter 3–170 reparameterize dialog 1–1237 repathing 3–487 repel behavior 2–1218, 3–1003 replace (file menu) 3–470 replace clip 2–634 replace dialogs 2–1456, 3–470 replace keys 2–579 replacing scenes 1–16 requirements for camera tracking 2–669 system (see Installation Guide) 1–xiv rescale world units utility 2–53 reservoir 2–626, 2–649 reservoir file groups dialog 2–635 reset 3–387 reset background transform (viewport image) 1–45 reset material settings to default 2–1442 reset XForm (transform) utility 1–438, 2–432 reset position 3–442 reset tangents 1–297 reshade 3–17, 3–22 resizing arms 2–852 resolution 2–1114, 2–1141, 2–1147 glossary 3–1003 resolve externally referenced file dialog 3–439 resource collector utility 3–512 resource information dialog 3–517 respect animation range 2–550 restore active view (views menu) 1–37 to default settings (animation controllers) 3–828 restrict to axis buttons 1–437 restrict to x 1–437 restrict to xy plane 1–437 restrict to y 1–437 restrict to yz plane 1–437 restrict to z 1–437 restrict to zx plane 1–437 restructure biped to match file 2–936, 2–1065 retarget 2–974 retargeting rollout 3–481 reverse knees (creating characters with) 2–891 reverse time (Track View) 2–569 revert to startup UI layout 3–807 reviewing and editing strokes 3–865 Revit files 3–447 materials 3–453 objects 3–447 settings 3–450 workflow 3–452 Revit material 3ds Maxobjects 3–455 RGB (glossary) 3–1001 RGB files 3–633 RGB maps multiply 2–1691 Index tint 2–1693 right-click menus 3–694 additional quad menus 3–696 animation 3–697 customize display 3–787 display option 3–821 display preference setting 3–821 event display (particle view) 2–133 HTML help viewer 3–879 material editor copy and paste 2–1418 modifier stack 3–766 morpher modifier 1–729 named selection sets 1–85 NURBS 1–1082 sample slot 2–1422 Schematic View selection 3–653 snaps 2–41 spinner 2–282 Track View 2–516, 2–534 Track View toolbar 2–603 viewports 3–731 XRef entities list (XRef object dialog) 3–405 XRef files list (XRef object dialog) 3–403 rigid bodies 2–716 basics 2–717 collection 2–723 compound 2–722 constraints 2–724 fracture 2–770 properties 2–717 storing and accessing collisions 2–774 rigid envelopes 2–834, 2–1085, 2–1091, 2–1108, 2–1111, 2–1130 rigid surfaces (NURBS) 1–1089 ring 1–809 render effect 3–230 ring array 1–415 ringwave 1–202 ripple modifier 1–783 space warp 2–102 RLA files 3–630 RMAT materials in 3ds Max 3–446 roll angle manipulator 2–1334 roll viewport controls camera 3–747 light 3–753 rollout distributed bucket rendering 3–124 twist poses 2–950 rollouts 1–12, 2–488, 2–491 inverse kinematics 2–497 maps 2–1474 materials 2–1470 paint deformation 1–1064 PArray rollouts 2–258, 2–260, 2–262, 2–268 to 2–271, 2–274 root name 2–847, 2–984 ropes 2–789 collection 2–792 modifier 2–789 rotate 1–439 rotating curling fingers 1–446 editable mesh edges 1–1011 elbows and knees 2–891 hierarchy 1–446 lights 2–1282 links 2–891 multiple biped links 2–895 multiple linked objects 1–446 particles 2–153 spine 2–891 views 1–29 rotation and collision rollout (PArray) 2–268 go to rotation test 2–224 increment (viewport preference) 3–821 rotation operator 2–153 rotational joints 2–486, 2–496 rotoscoping (glossary) 3–1003 roughness 2–1490 roughness mapping 2–1500 RPF files 3–631 RPS files 3–23 rubber band mode 2–852, 2–876, 2–936 rubber-band mode 3–1003 rubber-banding arms and legs 2–852 ruled surface sub-object 1–1193 run 2–936, 2–988 run footstep 2–988, 2–995 run script 3–781 running dynamics of 2–878 in place 2–930 parameters 2–861 RVT link 3–1004 S safe frames 3–733, 3–857, 3–1030 safe video threshold 2–1434 sample object 2–1432 preview 2–1434 UV tiling 2–1433 video color check 2–1434 1809 1810 Index sample range (glossary) 3–1004 sample rate 3–98 sample slot 2–1420, 2–1422 active 2–1441 adding bitmap 2–1631 and material name 2–1396 background 2–1433 backlight 2–1432 cool 2–1442 default 2–1442 display adjustment 2–1436 hot 2–1442 right-click menu 2–1422 sample type cube 2–1432 cylinder 2–1432 sphere 2–1432 sample UV tiling 2–1433 samples animations 2–920 motion files 2–920 samples threshold (motion capture) 2–655 sampling 3–1005 filters 3–98 sampling quality rollout 3–98 thresholds 3–98 satellites 3–124 save .mfe file 2–1032 motion flow editor 2–1032 save animation 3–476 save as dialog 2–941 save commands hold 1–95 save (file menu) 3–390 save active view (views menu) 1–37 save as (file menu) 3–391 save character 1–115 save copy as (file menu) 3–392 save custom UI scheme 3–806 save preview (Material Editor) 2–1434 save selected (file menu) 3–392 save sequence (video post) 3–324 scene/settings in buffer 1–95 save copy as 3–392 save custom UI scheme 3–806 save file 2–936 save parameters 2–1070 save physique file 2–1106 save reservoir items dialog 2–650 save segment 2–936 save talent figure structure 2–1065 save talent pose adjustment 2–1065 saved schematic views 3–653 saving backup on save 3–819 BIP files 2–920, 2–941 biped figure files 2–855 biped step files 2–924 compressed file 3–819 FIG files 2–941 files from previous versions 3–390 material 2–1406 materials 2–1409 physique data 2–1098 STP files 2–941 thumbnail image 3–819 UI configuration on exit 3–815 saving animation 3–472 scale 1–440, 2–990, 2–1141 a biped 2–1113 factor 2–1070 in reactor 2–711 stride 2–936, 3–1006 tail keys 2–965 scale operator (particle flow) 2–156 scale synchronization between AutoCAD and 3ds Max 3–422 scale test (particle flow) 2–227 scale values (Track View) 2–581 scale weight 1–810 scaling 1–441 a biped 2–984 a node 2–1091 and system units 2–1099 arm 2–852 changing 1–423 characters 2–1100 deformation 1–364 face and vertex normals 1–996 function curves 2–580 height 2–878 keys (Track View) 2–559, 2–580 links 2–851 particles 2–156 rendering preferences 3–826 scale XYZ controller 2–371 time (Track View) 2–570 values (Track View Curve Editor) 2–581 scaling objects 1–440 scanline renderer 3–38, 3–1006 scanline rendering 3–116 scatter 1–318 scatter objects dialog 2–1189 scene event (video post) 3–329 scene extents 3–1007 Index scene motion blur (glossary) 3–1007 scene state camera properties 3–518 camera transforms 3–518 delete 3–520 environment 3–518 layer assignments 3–518 layer properties 3–518 light properties 3–518 light transforms 3–518 materials 3–518 object properties 3–518 rename 3–520 restore 3–520 save 3–520 selected parts 3–518 scenegraph 3–581 scenes 1–4 animating 1–8 archiving 1–19 backing up 1–19 importing 1–16 managing 3–385 merging 1–16 rendering 1–9 replacing 1–16 Schematic View delete Schematic View 3–652 display floater 3–651 displaying in viewport 3–731 glossary 3–1007 list views 3–645 menus 3–642 new Schematic View 3–652 preferences dialog 3–646 right-click menu (selection) 3–653 saved schematic views 3–653 Schematic View window 3–638 selecting with 1–69 toolbars 3–649 using 3–640 screen 3–738 script and scripting definitions 3–1008 motion flow 2–1026 random motion 2–1035, 2–1055 script controller (Track View) 2–372 shared motion flow 2–1039, 2–1056 script rollout (particle flow) 2–139 script wiring 2–134, 2–175 scripted behavior 2–1220, 3–1008 scripting birth operator 2–145 script operator 2–208 script test 2–229 script wiring (particle flow) 2–175, 2–205 scripts 2–1030 and controlling particles 2–120 debugging 3–783 define script 2–1030 path for additional 3–813 start frame 2–1030 start position x 2–1030 start position y 2–1030 start position z 2–1030 start rotation 2–1030 scripts group clip mode 2–1048 copy 2–1048 create 2–1048 cut 2–1048 define script 2–1048 delete script 2–1048 go to frame 2–1048 group 2–1048 paste 2–1048 random motion 2–1048 redefine 2–1048 start frame 2–1048 start position x 2–1048 start position y 2–1048 start position z 2–1048 start rotation 2–1048 unified motion 2–1048 scripts in motion flow 3–1008 scripts rollout 3–34 scrolling panels/toolbars 1–12 SDeflector space warp 2–87 SDynaFlect space warp 2–85 searching defining search terms 3–876 for files 3–510 for help topics 3–876 using nested expressions 3–876 section 1–282 section view 2–1114 sections 2–1141, 2–1147 seed value (glossary) 3–1008 seek behavior 2–1162, 2–1220, 3–1008 segment (glossary) 3–1009 segments 2–1114 segments shadow mode 3–114 select 1–442, 2–1150 and rotate control points 2–1114 and scale control points 2–1114 and translate cross section 2–1114 1811 1812 Index by link 2–1089, 2–1150 clip/transition 2–1027, 2–1045 multiple biped links 2–895 nearest bulge angle 2–1095, 2–1114, 2–1141 select all (edit menu) 1–87 select and link button 2–422 select and manipulate 2–15 select background image dialog 1–42 select bitmap image file dialog 2–1635 select invert (edit menu) 1–88 select keys by time (Track View) 2–563 select layers dialog 3–438 select linked objects dialog 3–440 select none (edit menu) 1–88 select object (main toolbar) 1–77 select objects dialog 1–77 select similar 1–88 select time (Track View) 2–566 selection floater 1–79 select and move 1–439 select and non-uniform scale 1–441 select and rotate 1–439 select and scale 1–440 select and squash 1–442 select and transform buttons move 1–439 non-uniform scale 1–441 rotate 1–439 scale flyout 1–440 squash 1–442 uniform scale 1–441 select and uniform scale 1–441 select behavior type dialog 2–1205 select bitmap image file dialog 2–1635 select button 2–1089 select by 1–88 color 1–88 material 2–1439 material ID 1–303, 1–308, 1–981, 1–1009, 1–1238 name 1–77, 2–589 name (button) 1–77 name (edit menu) 1–88 select similar 1–88 smoothing group 1–981, 1–1009 time (Track View) 2–563 vertex color 1–1003 select by channel modifier 1–785 select delegates dialog 2–1205 select emitter objects dialog 2–151 select keys 2–502 select keys by time 2–533 select menu (particle view) 2–128 select menu (Schematic View) 3–643 select objects dialog 1–77 select objects in current layer 3–667 select pivot 2–959 select region crossing 1–93 lasso 1–90 paint 1–91 window 1–92 window/crossing 1–93 select scale rotate control points 2–1114 select similar 1–88 select time (Track View) 2–566 select tool (particle view) 2–128 selected deformable/rigid envelope areas 2–1130 selecting actions, events (particle flow) 2–132 and blocks 3–460 basics 1–64 by ID 1–303, 1–308, 1–981, 1–1009 by material 2–1439 by name 1–67 by particle event 2–138 by particle ID 2–138 by region 1–65 hierarchies 2–424 mesh sub-objects 1–998 named selection sets 1–67 objects 1–61, 1–64 open editable mesh edges 1–1011 particles 2–138 selection filters 1–68 shadow type 2–1331 shape sub-objects 1–289 successive vertices 1–297 time 2–566 with Schematic View 1–69 with Track View 1–69 selecting workbench tracks 2–1011, 2–1016 selection (particle view) 2–128 selection center (use center flyout) 1–447 selection commands 1–76 selection filter (main toolbar) 1–81 selection floater (tools menu) 1–79 selection list 3–718 selection lock toggle 3–707 selection region 1–80, 1–89 to 1–91 selection rollout edit poly modifier 1–647 editable mesh 1–999 editable poly 1–1024 hair and fur modifier 1–521 selection sets 1–67, 1–81, 1–83, 1–511 selection statistics 1–1253 Index self-illumination 2–1480 to 2–1482, 2–1487 self-illumination (glossary) 3–1009 self-illumination mapping 2–1502 send out test 2–230 separate tracks options 2–888, 2–980, 2–1002 separating particles 2–172 server setup and managing (network rendering) 3–182 set all 2–1070 set as skin pose 1–116 set bulge angle 2–1114, 2–1141 set current layer to selection’s layer 3–667 set free key 2–956 set key 2–280, 2–904, 2–956, 2–962, 3–718 set lowest starting foot height to Z=0 2–936 set multiple keys 2–965 set parents 2–962 set planted key 2–956 set project folder 3–393 set sliding key 2–956 set start frames dialog 2–1237 set twist pose 2–950 set weight 1–810 setting keys 2–904 setting up directories 3–187 rendering software 3–186 your scenes 1–4 settings communication center 3–713 Revit 3–450 setup rollout 2–1188 setup rollout (particle view) 2–136 SGI image file formats (glossary) 3–633 shade selected (views menu) 1–47 shaded viewports 1–52 shader basic parameters rollout 2–1466 shader list 2–1723 shaders 2–1466, 2–1468, 2–1480 to 2–1484, 2–1504 car paint (mental ray) 2–1576 custom 3ds Max 2–1711 DirectX 2–1464 for standard materials 3–1010 lume 2–1713 LumeTools 2–1713 mental ray 2–1710 to 2–1712, 2–1723, 3–1009 mental ray (third party) 2–1711 mr physical sky 2–1321 viewport 2–1464 shading and lights 2–1399 shading type 2–1397 to 2–1398 shading, cartoon 2–1605 shadow (center of mass) 2–846, 2–933 shadow maps 2–1363, 3–1010 mental ray 2–1360 shadow parameters (lights) 2–1337 shadow types 2–1331, 3–45 shadows 3–89 shadow maps 3–89, 3–114, 3–1011, 3–1037 shadow modes 3–114 shadows rollout 3–114 shadows and rendering 2–1331 shadows from hair 3–223 shadows map (baking) 3–148 shape check utility 1–265 shape commands (loft objects) 1–373 shape operators (particle flow) shape 2–176 shape facing 2–176 shape instance 2–178 shape mark 2–183 shape sub-objects cloning selections 1–289 selecting 1–289 shape-file format 3–533 ShapeMerge object 1–336 shapes 1–262, 1–282, 3–1011 creating from edges 1–656, 1–1035 lofting 1–262 rendering 1–262 shared motion flow 2–1056 shared motion flow create 2–1039, 2–1056 dialog 2–1039, 2–1056 script 2–1039, 2–1056 sharing materials 2–1432 sharing a directory (network rendering) 3–188 sharing plug-ins with a network 3–814 shell material 2–1600 shell modifier 1–785 shellac material 2–1597 shift+clone animating 1–482 using 1–474, 1–478 to 1–481 shifting center of mass 2–876 shininess 2–1537 shininess and shininess strength 2–1501 to 2–1502, 3–950 shirt (cloth) 1–573 Shockwave 3D files analyzing 3–585 exporting 3–580 to 3–581 previewing 3–585 1813 1814 Index shortcuts 3–871 Biped 2–1006 Crowd 2–1182 particle flow 2–140 Physique 2–1111 shortcuts - default keyboard Track View 2–510 unwrap UVW 1–900 show show curves button 3–705 show dependencies (views menu) 1–47 show end result (Material Editor) 2–1446 show end result (modifier stack) 1–503 show frame numbers (viewports preference) 3–821 show ghosting (views menu) 1–46 show home grid (views menu) 2–34 show key times (views menu) 1–46 show last rendering (rendering menu) 3–25 show map in viewport (Material Editor) 2–1445 show safe frame 3–1030 show selected key statistics (Track View) 2–595 show tangents (Track View) 2–582 show UI 3–788 show vertices as dots (viewports preference) 3–821 transform gizmo 1–45 show buffer 2–1065 to show original motion 2–1061 trajectory 2–1065 show entire trajectory 2–944 show graph motion flow 2–1045 show icon control 2–1298 to 2–1299 show markers 2–1065, 2–1075 show prop markers 2–1075 show recognized markers 2–1075 show safe frame 3–857 show selected key statistics (Track View) 2–595 show statistics 1–1253 show tangents (Track View) 2–582 show time 2–944 show unrecognized markers 2–1075 show/hide all 2–944 SHP files 3–533, 3–1012 shrink 1–809 shutter speed 3–101 sibling go forward 2–1447 go to 2–1447 sides 2–1141 simple additive compositor (video post) 3–383 simple constraints 2–727 simple shadow mode 3–114 simple wipe compositor (video post) 3–383 simple wipe filter (video post) 3–347 simulation, cloth 1–571 single-axis constraints 1–437 size of particle view icons 2–137 of particle view logo 2–137 or particles 2–156 size of grid square 3–709 size test (particle flow) 2–227 skeletal deformation tool 1–791 skeletons 2–833 and physique 2–1079 structure 2–834 used with physique 2–1082 sketch tool dialog 1–916 sketch UVWs 1–898 skew modifier 1–790 skin attaching to skeleton 2–1076 creating 2–1076 defined 2–1076 deformable 2–1076 mesh 2–1099 optimizing 2–1099 rigid 2–1076 save/load envelopes 1–802 save/load vertex weights 1–802 sliding 2–1108 sliding parameters 2–1091 valid types 2–1076 skin modifier 1–791 paint weights 1–960 weight table 1–810 skin morph modifier 1–812 skin parameters rollout (loft objects) 1–358 skin pose commands 1–116 skin pose mode 1–116 skin utilities 2–700 skin wrap modifier 1–818 skin wrap patch modifier 1–824 skirt (cloth) 1–572 sky 2–1312 skylight 2–1296 radiosity 2–1296 skylight (glossary) 3–1012 slave controller 2–313 slave parameters dialog (block controller) 2–391 sleeves (cloth) 1–573 slice editable mesh edges 1–1011 editable mesh vertices 1–1011 modifier 1–825 slide keys 2–558 Index slider manipulator 2–31 slider, time/frame 3–701 sliding 2–1136 angle 2–1070 distance 2–1070 footsteps 2–1064, 3–1013 parameters (links) 2–1091 sliding and rotational joints (HI IK solver) 2–459 sliding angle 2–1070 sliding distance 2–1070 sliding door 1–251 sliding joints 2–485 to 2–486, 2–496 sliding key defaults 2–956 sliding window 1–261 smart scale 1–440 smart select 1–77, 1–80 smoke map 2–1679 smooth 2–1111 smooth modifier 1–828 smooth rotation controller 2–374 smooth twist mode 2–952 smoothing groups 3–429, 3–1013 assigning faces to 1–1009 assigning patches to 1–981 viewing and changing 1–166 to 1–167 smoothing rollout 2–1238 SMPTE (glossary) 3–1013 snap frames (Track View) 2–554 snap options 2–12 snap set key 2–974 snaps 2D/2.5D/3D 2–35 and cuts 1–1019 grid and snap settings 2–41 options/settings 2–12, 2–46 setting standard 2–11 snap commands 2–35 snap override 2–45 snaps toggle angle 2–37 percent 2–38 spinner 2–38 snaps toolbar 3–690 snapshot 1–453 cloning objects over time 1–483 dialog 1–453 snapshot dialog 1–453 snow 2–246 soft bodies 2–783 collection 2–788 FFD soft bodies 2–786 modifier 2–784 soft selection 2–525 soft selection manager 2–533 soft selection rollout brush options 1–960 soft selection rollouts 1–963, 1–1147 software display driver 3–838, 3–840 solve rollout 2–1232 solver plane 2–472 SOmniFlect space warp 2–84 sort order (select objects dialog) 1–77 sort shadow mode 3–114 sound options dialog (Track View) 2–520 sound plug-in (animation preference) 3–828 threshold 2–386 VRML97 helpers 3–601 source clip transition editor 2–1051 source file selection 2–1075 source icon (particle flow) 2–135 source outputs (particle flow) 3–987 space warp (vector field) 2–1241 space warp behavior 2–1221, 3–1013 space warps 2–55 binding to 2–58 bomb 2–105 conform 2–103 deflector 2–90 displace 2–76 drag 2–66 FFD(box) 2–91 FFD(cyl) 2–95 glossary 3–1014 gravity 2–73 modifier-based 2–107 motor 2–61 path follow 2–71 PBomb 2–68 PDynaFlect 2–81 POmniFlect 2–78 push 2–59 reactor water 2–801 ripple 2–102 SDeflector 2–87 SDynaFlect 2–85 SOmniFlect 2–84 UDeflector 2–89 UDynaFlect 2–86 UOmniFlect 2–85 vortex 2–63 wave 2–100 wind 2–75 spacing tool 1–455, 1–491 spawned particles 2–242 1815 1816 Index spawning particles 2–215, 2–230, 3–1014 special controls 1–12 special-purpose controllers 2–296 specification 3–597, 3–954 specify conversion parameters once option 2–1075 specify parameters for each file option 2–1075 specifying default controller values 2–294 default controllers 2–294 reference coordinate system 1–435 speckle map 2–1680 specular color 3–1014 color mapping 2–1500 level mapping 2–1501 specular highlight 2–1481 specular highlights anisotropic 2–1492 Blinn 2–1493 metal 2–1494 multi-layer 2–1495 Oren-Nayar-Blinn 2–1493 Phong 2–1493 specular map (baking) 3–147 speed 2–992, 2–995, 2–997 speed operators (particle flow) keep apart 2–172 speed 2–159 speed by icon 2–162 speed by surface 2–167 speed test (particle flow) 2–233 speed vary behavior 2–1222, 3–1015 sphere object 1–174 SphereGizmo helper 3–307 spherical area omni light 2–1298 spherical deflector 2–87 spherify modifier 1–829 spin operator (particle flow) 2–154 spindle 1–196 spine flexibility 2–846 spine link 2–984 spinner right-click menu 2–282 spinners 1–12 spinner precision 3–815 spinner snap 2–38, 3–815 spiral stair 1–235 splash screen 1–17 splash.bmp file 1–17 splat map 2–1681 spline dynamics 2–833, 2–856, 2–980, 3–1015 spline IK animating with spline IK solver 2–473 control modifier 1–830, 2–473 spline IK solver dialog 2–477 spline IK solver rollouts 2–478 spline select modifier 1–831 spline-based deformation in physique 2–1083 splines 1–266, 1–842 adding 1–303, 1–308 arc 1–274 attach 1–297, 1–308 circle 1–273 cleaning up segments 1–308 copying (outline) 1–308 deleting 1–308 donut 1–276 editable splines 1–289, 1–295, 1–297, 1–303, 1–308 ellipse 1–274 explode 1–308 glossary 3–1015 helix 1–281 line 1–270 making coincident 1–842 mirror 1–308 NGon 1–277 rectangle 1–272 star 1–277 text 1–278 used with physique 2–1082 split mesh 1–1011 split scan lines 3–197 split tests (particle flow) split amount 2–234 split selected 2–235 split source 2–236 splitting particle stream 2–234 to 2–236 spotlights parameters 2–1338 spotlight distribution (photometric lights) 2–1324 spray 2–244 spring 2–727 spring back - setting (IK) 2–466 spring controller 2–375 spring dynamics object 1–400 spring options (flex modifier) 1–700 squash 1–442 squeeze modifier 1–833 SSS materials (mental ray) 2–1583 stack 1–502, 1–504, 1–508, 3–973 stack updates 2–1104, 2–1108 stack.see modifier stack 3–760 stairs 1–210, 1–231 l-type 1–232 Index spiral 1–235 straight 1–239 u-type 1–243 standard flow operator 2–209 standard helpers 2–16 compass 2–27 dummy 2–16 expose transform 2–17 exposetm 2–17 grid 2–20 point 2–23 protractor 2–26 tape 2–24 standard lights 2–1272, 2–1288 skylight 2–1296 standard material 2–1465 standard materials shaders (glossary) 3–1010 standard primitives 1–170 box 1–171 cone 1–172 cylinder 1–177 GeoSphere 1–176 plane 1–185 pyramid 1–182 sphere 1–174 teapot 1–183 torus 1–180 tube 1–179 standard snaps 2–11 standard user grids 2–20 star 1–277 lens effects 3–246 starfield filter (video post) 3–347 start after last footstep 2–992, 2–995, 2–997 start at current frame 2–992, 2–995, 2–997 start frame scripts 2–1048 transition editor 2–1051 start left 2–992, 2–995, 2–997 start position x scripts 2–1048 start position y scripts 2–1048 start position z scripts 2–1048 start right 2–992, 2–995, 2–997 start rotation scripts 2–1048 starting manager and server (network rendering) 3–182 network rendering 3–182 startup files 1–17 startup layout - return to 3–807 startup screen 1–17 startup script (glossary) 3–1015 startup scripts path for additional 3–813 startup.ms file 1–17 state dialog 2–1207 state filters 2–965 state panel 2–1248 state transition dialog 2–1208 statistics 3–861 statistics rollout (radiosity) 3–75 status bar controls main window 3–698, 3–701 Track View 2–588 video post 3–313 step files 2–924, 2–936 step update scripts (particle flow) 2–139 steps and editable patch 1–986 and editable spline 1–289 stereolithography (STL) 3–586 stick 2–1070 stick figures transition editor 2–1051 stitch tool dialog 1–918 stitch UVWs 1–897 STL exporting files 3–588 importing files 3–586 STL check modifier 1–834 stop animation playback 3–723 STP files 2–919, 2–924, 2–1263 loading 2–942 saving 2–882, 2–941 straight stair 1–239 Strauss basic parameters rollout 2–1483 streak render effect 3–250 strength 2–1130 stretch 2–1091, 2–1136, 2–1147 stretch bias 2–1147 stretch modifier 1–836 stretcher 1–909 strokes 3–868 defining 3–863 preferences 3–862, 3–867 reviewing and editing strokes 3–865 viewport preferences 3–821 structure rollout 2–982, 2–984 stucco map 2–1682 styles and Architectural Desktop objects 3–461 1817 1818 Index propagation 2–1432 styling hair hair and fur modifier 1–518, 1–526 styling rollout hair and fur modifier 1–526 sub-materials 3–815 sub-object chamfer curve (NURBS) 1–1161 common controls 1–1122 glossary 3–1017 material assignment 2–1424 selection 1–74, 1–506, 1–508, 1–998, 1–1084 sub-objects Physique 2–1129 subanim controller 2–896 subdivide 1–986, 1–1011, 1–1019 subdivide modifier 1–839 subdivide modifier (world space) 1–555 subdivision displacement rollout editable poly 1–1063 subdivision surface rollout editable poly 1–1060 subdivision surfaces 1–701, 1–963 substeps 2–710 substitute modifier 1–840 subsurface scattering (SSS) materials (mental ray) 2–1583 subtractive opacity (glossary) 3–1017 subtree - modifying (Track View) 2–528 summary info 3–499 sun 2–1309 sunlight 1–418 sunlight (glossary) 3–1018 super black 3–826, 3–1018 super spray 2–249 superimposed material 2–1597 supersampling 2–1459, 3–1018 support period 3–1018 surf point 1–1222 surface approximation 1–1239, 1–1245 to 1–1246 surface arrive behavior 2–1223, 3–1018 surface constraint 2–396 surface follow behavior 2–1226, 3–1019 surface joints 2–485 to 2–486 surfaces NURBS surfaces 1–1101 surface approximation (NURBS) 1–1239, 1–1245 to 1–1246, 1–1252 surface deform (SurfDeform) 1–557 surface edge curve 1–1177 surface mapper (world space) 1–556 surface modifier 1–623, 1–842 surface offset curve 1–1167 surface parameters (loft objects) 1–354 surface point 1–1222 surface properties rollout (editable objects) 1–308, 1–981, 1–1001, 1–1003, 1–1006, 1–1009 surface sub-objects - creating 1–1177 surface tools 1–623, 1–842 surface trimming 1–1080 surface-curve intersection point 1–1224 surface-surface intersection curve 1–1166 SurfDeform modifiers 1–848 SurfDeform modifiers 1–557, 1–848 swap colors 2–1452 events (video post) 3–325 maps 2–1451 sweep modifier 1–848 extract 1–858 merge from file 1–859 pick shape 1–857 swirl map 2–1656 swivel angle 2–449, 2–472 symmetrical tracks 2–945 symmetry modifier 1–861 synchronizing animated bitmap with the scene 2–1450 synthesis control dialog 2–1179 synthesis dialog 2–1179 motion clips panel 2–1246 state panel 2–1248 synthesis panel 2–1250 synthesis panel 2–1250 synthesis/synthesize 3–1019 system paths 3–813 system unit setup dialog 3–850 units mismatch dialog 3–852 system units and scaling 2–1099 systems 1–404 bones 1–404 daylight 1–418 ring array 1–415 sunlight 1–418 T tags (time) 3–710 tails adding 2–846 talent definition area 2–1070 talent figure mode 2–1061, 2–1065, 3–1019 tangent handles 1–297 tangent types 2–305 tangents glossary 3–1019 locking 2–583 type of 2–310 tape helper object 2–24 Index taper modifier 1–863 targa files (glossary) 3–633, 3–997 target and particles 2–218 camera 3–746 lights 2–1289, 2–1292, 2–1303 to 2–1305, 2–1307 target area light 2–1307 target camera 2–1371 target distance 3–90 target linear light 2–1305 target map slot 3–150 target objects - look at controller 2–344 target point light 2–1303 TCB 2–957 controllers 2–377 glossary 3–1020 TCB (biped) 3–1019 tcb rotation controller 2–891 teapot 1–183 techniques cloning objects 1–474 NURBS 1–1094 tee 1–287 teeter deformation 1–365 temp path for 3–813 temporary buffer 1–95 IGES files 3–560 tendon display options dialog 2–1128 tendons 2–1076, 2–1108, 2–1111, 2–1113, 2–1147, 3–1020 adding 2–1096 adjusting 2–1147 and fixed attach points 2–1147 attach points 2–1147 attached links 2–1147 attaching to another link 2–1096 attaching to link 2–1096 boundary conditions 2–1147 creating 2–1096 cross sections 2–1147 deleting 2–1096 inserting 2–1096 overview 2–1096 using 2–1096 workflow 2–1147 tendons sub-object 2–1128 tension/continuity/bias 2–956, 2–1135 tension/continuity/bias (glossary) 3–1020 tension/continuity/bias in biped 3–1020 terminating chains 2–471 terminators 2–437 terminology (inverse kinematics) 2–437 terrain 1–347 creating effects with noise modifier 1–744 glossary 3–1021 tessellate and displace space warp 2–76 faces 1–1011 tessellate modifier 1–865 tessellate selection dialog 1–1077 test outputs (particle flow) 3–987 test time frames 2–141 tests (particle flow) 2–210, 3–1021 acceleration 2–233 age 2–211 circular travel 2–233 collision 2–212 collision spawn 2–215 distance from target 2–218 find target 2–218 go to rotation 2–224 scale 2–227 script 2–229 send out 2–230 size 2–227 spawn 2–230 speed 2–233 split amount 2–234 split selected 2–235 split source 2–236 time 2–211 velocity 2–233 texel 3–1021 text 1–278 texture baked elements 3–146 baking 3–144 rendering to 3–144, 3–146, 3–150 target map slot 3–150 texture baking - shell material 2–1600 textures and animated NURBS models 1–1099 and imported mask bitmaps 3–530 and material properties 1–1149 and NURBS models 1–1099 baking 3–156 disable texture map display 3–853 pick texture option (edit UVWs dialog) 1–888 pinning 1–878 TGA files (glossary) 3–633 thin wall refraction map 2–1703, 3–83 three-DOF limb 2–950 threshold 1–167, 1–828 adaptive control 2–1534, 2–1698 1819 1820 Index and HD IK solver 2–463 color 2–1681 to 2–1682 edge visibility 1–1006 error (camera tracker) 2–677 explode angle 1–1011 LOD 1–1253 motion capture samples 2–655 noise 2–1650, 2–1652, 2–1674, 3–282, 3–288 optimize 1–748 planar 1–719, 1–996 position/rotation (IK) 2–463 reduce keys 2–572 safe video 2–1434 sound 2–386 super black 3–826 supersampling 2–1459 use secondary (IK) 3–830 weld 1–297, 1–842, 1–888, 1–920, 1–1011, 3–542, 3–586 thumbnails open file 3–387 viewport image 3–819 ticks (glossary) 3–1021 TIFF files 3–303, 3–634 tile/mirror (glossary) 3–1022 tiles map 2–1658 time 2–955 controlling 2–285 copy (Track View) 2–568 cutting 2–567 deleting 2–567 editing 2–566 fitting into 2–570 in particle flow 2–119 insert (Track View) 2–570 moving through 2–287 paste (Track View) 2–568 removing 2–570 rescaling active time segment 2–286 reverse (Track View) 2–569 scale (Track View) 2–570 selecting 2–566 setting time segments 2–286 specifying active time segment 2–286 time configuration button 3–725 time ruler (Track View) 2–510 time slider 2–510, 2–556, 3–701 time tags 3–710 to 3–711 time controls 3–716 time frames 2–141 time in the air 2–878 time menu, Track View 2–526 time paste (Track View) 2–568 time reverse (Track View) 2–569 time ruler (Track View) 2–510 time steps 2–709 time to next footstep 2–992, 2–995, 2–997 time warps 2–620 TimeSensor (VRML97 helpers) 3–604 timing parameters 2–988 tips adjusting radiosity 2–1540 animation and textures (NURBS) 1–1099 camera correction 2–1393 copying keys between frames 3–703 flipping face normals 1–1010 magnifying camera adjustment 3–747 maintaining consistent camera lens size 2–1374 NURBS 1–1094 output size and rendering speed 3–28 playing animations in all viewports 3–723 propagating layer properties 3–657 radiosity and walkthroughs 3–60 selecting faces to hide 1–1001 testing radiosity 3–60 textures (NURBS) 1–1099 turning off material propagation 3–770 updating information in light lister 2–1285 using file link manager 3–419 VRML97 3–595 toes option 2–846 toggles angle snap 2–37 animation mode 2–278, 3–717 auto key mode 2–278, 3–717 auto material propagation 2–1432 degradation override 1–34 enable ease or multiplier curve 2–585 full screen 3–738 key mode 3–724 maximize viewport 3–738 percent snap 2–38 selection lock 3–707 shortcut keys 3–872 spinner snap 2–38 window/crossing 1–93 toggling events (particle view) 2–131 operators (particle view) 2–131 toggling dialogs 3–670 tolerance 2–1070 toolbars 3–685, 3–803 axis constraints 3–687 brush presets 3–690 controller toolbar 2–540 curve editor 2–535 Index displaying toolbars 3–787 dope sheet 2–538 extras 3–688 extras dope sheet toolbar 2–541 HTML help viewer 3–878 icon scheme 3–806 layers 3–688 main 3–686 ranges toolbar 2–541 reactor 2–706, 3–688 render shortcuts 3–689 Schematic View 3–649 snaps 3–690 toolbars panel (customize UI) 3–794 troubleshooting when missing 3–893 video post 3–323 toolbox (NURBS) 1–1083 tools for low-polygon modeling 1–1252 Material Editor 2–1427 precision 2–1 rename objects 1–128 tools menu 3–674 align 1–462 align camera 1–468 align to view 1–468 array 1–450 camera match 2–1387 clone and align tool 1–459 color clipboard 1–165 display floater 3–775 floaters 3–775 grab viewport 1–35 isolate selection 1–73 light lister 2–1285 measure distance 2–15 mirror 1–448 normal align 1–465 open 1–109 place highlight 1–467 quick align 1–465 rename objects 1–128 selection floater 1–79 snapshot 1–453 spacing tool 1–455 tools rollout hair and fur modifier 1–523 tooltips 2–133, 3–699 tooltips in viewports preferences 3–815 toon shader 2–1605 top/bottom material 2–1599 topology (glossary) 3–1022 topology dependent modifier 3–1023 torus 1–180 torus knot 1–189 total statistics 1–1253 touch 2–936, 2–965, 3–1023 leg state 2–867 touch dynamics 2–878 TouchSensor (VRML97 helpers) 3–603 toy car 2–766 trace depth 3–106, 3–116, 3–994 track copying 2–568 glossary 3–1024 note 2–552 to 2–553 track bar 3–703 track selection 2–945 using motion-capture filtering 2–1061 track selection in workbench 2–1016 track selection rollout 2–888 track set list 2–535, 2–538 track sets editor 2–591 track sets list 2–590 Track View 2–1000, 2–1002 assign controller 2–546 biped colored keys 2–1005 concepts 2–503 controller menu 2–521 controller toolbar 2–540 controller window 2–504, 2–512 curve editor 2–501, 2–507 curves menu 2–525 customization 2–599 delete Track View 2–598 dope sheet 2–501 editing biped keys 2–875 extras dope sheet toolbar 2–541 glossary 3–1023 hierarchy 2–512 hierarchy icons (glossary) 3–1024 hierarchy of biped objects 2–886 key time display 2–594 keys menu 2–524 keys window 2–504 menu bar 2–521 modes menu 2–521 new Track View 2–597 opening 2–886 Options menu 2–526 pan 2–595 pasting time 2–568 pick dialog 2–1252 pick dialog (block controller) 2–392 properties 2–560 1821 1822 Index ranges toolbar 2–541 selecting with 1–69 shortcuts 2–510 sound options 2–520 status bar/view controls 2–588 time menu 2–526 tracks menu 2–524 utilities 2–561 to 2–564 utilities menu 2–533 value display 2–594 view menu 2–532 working with 2–503 workspace 2–504 zoom 2–596 zoom horizontal extents 2–595 zoom region 2–597 zoom selected object 2–588 zoom value extents 2–596 Track View utilities current value editor 2–565 tracker gizmo 2–671 trackgroup filter 2–645 trackgroup filter dialog 2–631, 2–645 trackgroups adjusting balance 2–622 creating and filtering 2–612 menu 2–631 tracks adding to motion mixer 2–607 copying and pasting 2–966 menu 2–632 selecting workbench 2–1011 tracks menu, Track View 2–524 trajectories 2–957 display 2–853, 2–931 glossary 3–1025 motion panel 2–301 trajectories (biped) 3–1025 trajectory key editing 2–914 transform coordinates and coordinate center 1–442, 1–447 transform gizmo 3–1025 transform gizmos preferences 3–832 show transform gizmo 1–45 using 1–426 transform script controller 2–379 transform tools 1–448 transform type-in 1–431, 3–709 transformation axis coordinate system list 1–443 transforms adjusting 2–432 and envelopes 2–1086 and light objects 2–1282 and mesh sub-objects 1–998 and modifiers 1–499 animating 1–432 applying 1–423 commands 1–438 controllers (glossary) 3–909 curve 1–1157 curve sub-object 1–1157 glossary 3–1026 locking 2–433 locking axes 2–500 managers 1–433 resetting AutoCAD objects 3–442 surface 1–1182 surface sub-object 1–1182 transform tools 1–448 using 1–424 viewing and copying keys 2–283 transition 2–1028 clip 2–1048 create 2–1028 create all 2–1028 customize 2–1034 edit 2–1028, 2–1034, 2–1048 focus 2–616 motion mixer 2–616 optimize 2–616, 2–641 optimize transition 2–1058 random motion 2–1035 transition editor 2–1028 angle 2–1051 ease in 2–1051 ease out 2–1051 fixed 2–1051 frame 2–1051 length 2–1051 mixer 2–636, 2–638 optimize 2–1051 probability 2–1051 rolling 2–1051 start frame 2–1051 transition optimization dialog 2–1058 motion mixer 2–641 transition track 2–607 motion mixer 2–616 transitions menu 2–633 state transition dialog 2–1208 translate only 3–124 translation file (specifying name and path) 3–124 translator options rollout 3–119 Index translucency 2–1491, 2–1538 glossary 3–1027 translucent highlights 2–1496 translucent shader 2–1484 transmittance display 2–1430 transparency 2–1537 TRC convert into CSM 2–665, 3–577 importing 3–577 tri patch 1–995 triangle count 1–1253, 3–861 triangle pelvis 2–984 and physique 2–846 trigonometric functions 1–150 trim clips motion mixer 2–615 trim overlapping segments 1–308 trim/extend modifier 1–866 troubleshooting 3–883 assertion failed errors 3–883 basic troubleshooting start point 3–896 Boolean objects 3–885 camera match 2–1387 camera tracker 2–685 creases or ridges in Boolean objects 3–885 Direct3D failed to initialize message 3–896 Direct3D reports a memory warning 3–896 dual monitor configuration 3–896 garment maker errors 1–622 large font problems 3–893 lost dialogs 3–893 merging corrupt files 3–883 missing command panel 3–893 missing gizmos 3–893 multiple or missing buttons on toolbars 3–893 network rendering 3–183 normal bump maps 3–151 objects disappear when the camera gets close 3–891 reactor 2–823 remember back up files 3–883 slow file opening 3–889 slow response to open or drag dialogs 3–889 slow startup time 3–889 sluggish command response 3–889 spanning across monitors 3–896 splines and Boolean operations 3–885 tips for successful Boolean operations 3–885 unit scale and movement resolution relationship 3–891 video post 3–314 viewport transparency 3–896 truck camera 3–748 truck light 3–755 true/false, setting test results (particle view) 2–132 truecolor 3–826, 3–1027 tube 1–179 turbosmooth modifier 1–868 turn to mesh modifier 1–871 turn to patch modifier 1–873 turn to poly modifier 1–874 turning on/off actions, events (particle view) 2–133 particle system 2–136 tweens 2–276 twist 2–950, 2–1136 deformation 1–364 modifier 1–876 twist individual mode 2–952 twist links 2–855, 2–984 twist links mode 2–895, 2–952, 3–1028 twist parameters (links) 2–1091 twist poses 2–855 two-DOF limb 2–950 two-point perspective 2–1392 two-sided 3–855 type-in weights 2–1150 types of dynamics objects 1–395 space warps 2–55 transforms 1–424 U U and V iso curves 1–1168 U loft surface and sub-object 1–1196 u-type stair 1–243 UDeflector space warp 2–89 UDynaFlect space warp 2–86 UI 3–683, 3–785, 3–788, 3–792, 3–805 to 3–807, 3–853, 3–856 customizing 3–804 UI files 3–804 unbinding objects 2–461, 2–491 vertices 1–297 UNC 3–1028 understanding crowds 2–838 motion flow 2–837 motion mixer 2–604 workbench 2–837, 2–1008 understanding crowd behaviors 2–1159 undo 1–12, 1–36, 1–94 undo levels 3–815 unexpected particle spawning 2–122 unfold mapping 1–898, 1–919 unfreezing objects 1–70, 3–775 ungroup 1–106 unhide 1–53, 3–951 1823 1824 Index unhide all 2–1150 unified motion create 2–1038 uniform scale 1–441 unify normals 1–166, 3–429 units and display of mouse position 3–709 automatic unit conversion 3–387 file load units mismatch 3–852 mismatch 3–852 setup 3–848 synchronizing between programs 3–422 system setup 3–850 troubleshooting problems with 3–891 unit scale preference 3–815 using 2–2 universal deflector 2–89 universal naming convention (UNC) 3–1028 unlink selection 2–422 unlock character 1–115 unlock assignments 2–1150 unlock interior edges (of selected patches) 1–968 unwrap UVW 1–878, 1–900 automatic mapping 1–898 Edit UVWs dialog 1–888 options dialog 1–920 pack UVs dialog 1–909 relax tool dialog 1–912 UOmniFlect space warp 2–85 up vector 2–1070 update 2–119 ActiveShade 3–904 background image 1–44 background while playing 3–821 during spinner drag 1–51 particle shape 2–182 scene materials 2–1457 update types (particle flow) 2–130 upper bound 2–1147 use center flyout 1–445 use pivot point center 1–446 use selection center 1–447 use transform coordinate center 1–447 use dual planes (viewport preference) 3–821 use key reduction 2–1070 use large toolbar buttons preference 3–815 use pivot point center 1–446 use pivot points 1–509 use planes (viewport preference) 3–821 use secondary threshold (IK) 3–830 use selection center 1–447 use soft select 2–525 use transform coordinate center 1–447 UseEnvironAlpha setting 3–934 user grids 2–20, 2–51 user interface cloth modifier 1–582 customizing 3–785 garment maker modifier 1–613 hair and fur modifier 1–521 introduction 3–669 menu bar 3–672 problems and recovery 3–893 user reference 3–873 user views 1–24 user-defined object properties 1–127 using assemblies 1–98 asset browser 1–17 auto key button 2–278 axis constraints 1–437 batch rendering 3–202 bend links mode 2–895 bipeds with crowd delegates 2–1172 clipping planes to exclude geometry 2–1379 configure paths 3–189 create panel 1–154 default joint precedence 2–468 dummy objects 2–429 grid objects 2–5 grids 2–4 groups 1–96, 3–674 help 3–873 home grid 2–4 horizon to match perspective 2–1380 HTML help viewer 3–874 IK keyframe parameters 2–900 in place mode to adjust keyframes 2–930 interparticle collision 2–243 layers 2–913 lights 2–1274 mapped materials with Particle Systems 2–240 maps to enhance a material 2–1403 materials 1–6 materials with particle array 2–239 modifier stack 1–502 modifier stack at sub-object level 1–508 modify panel 1–499 move and rotate to aim 2–1379 multi/sub-object materials with particle systems 2–242 multiple computers 3–173 named selection sets 1–67 NURBS toolbox to create sub-objects 1–1083 online reference 3–873 Schematic View 3–640 Index select by name 1–67 selection filters 1–68 shapes 1–262 shift+clone 1–478 spawned particles 2–242 standard view navigation 1–29 transform gizmos 1–426 transforms 1–424 transforms to aim a camera 2–1379 units 2–2 using crowds behaviors 2–1162 crowd helper 2–1157 delegate helper 2–1157 using props 2–898 using the track sets list 2–590 utilities animation 2–653 asset browser 3–504 assign vertex colors 2–1734 camera match 2–1387 camera tracker 2–667 channel info 2–1738 clean multimaterial 2–1742 collapse 1–966 color clipboard 1–165 create out-of-range keys (Track View) 2–562 dialog 3–779 dynamics 2–686 3ds Max file finder 3–510 filter selected euler tracks (Track View) 2–564 fix ambient 3–512 follow/bank 2–653 IFL manager 3–619 instance duplicate maps 2–1744 level of detail 1–1253 lighting data exporter 3–303 Lightscape Materials 3–574 link inheritance (selected) 2–435 list of 3–778 LOD 1–1253 MACUtilities 2–665 material xml exporter 2–1407 MAXScript 3–684, 3–780 measure 2–52 motion capture 2–655 object display culling 1–58 panorama exporter 3–170 randomize keys (Track View) 2–562 rescale world units 2–53 reset XForm (transform) 1–438 resource collector 3–512 select keys by time (Track View) 2–563 shape check 1–265 skin utilities 2–700 strokes 3–868 surface approximation 1–1245 Track View 2–561 utilities menu, Track View 2–533 utilities panel 3–778 UVW remove utility 2–1408 visual MAXScript 3–783 utils rollout 2–813 UV coordinates 2–1405 loft surface 1–1200 sample UV tiling 2–1433 uv coordinate shader (mental ray) 2–1728 uv generator shader (mental ray) 2–1724 uv generator shader parameters rollout (mental ray) 2–1725 uv generator shaders rollout (mental ray) 2–1727 UVW coordinates 2–1405 coordinates (glossary) 3–1028 edit UVWs dialog menu bar 1–895 map modifier 1–922 mapping in AutoCAD Architecture objects 3–447 mapping in Revit objects 3–455 remove utility 2–1408 XForm modifier 1–934 UVW mapping add modifier 1–933 UVW mapping clear modifier 1–933 UVW mapping paste modifier 1–934 V v command-line option 3–672 -v command-line option 3–672 value display 2–594 Vault 3–487 setting working folder 3–488 VDA targa files (glossary) 3–633 vector editable patch handle sub-object 1–979 handles and editable patch vertex sub-objects 1–986 introduction 1–151 vector handles (glossary) 3–1029 vector projected curve 1–1171 vector field 3–1029 vector field space warp 2–1241, 3–1029 create method rollout 2–1242 lattice parameters rollout 2–1242 obstacle parameters rollout 2–1242 velocity element parameters rollout 3–142 velocity interpolation 3–1030 verbosity (messages) 3–124 versioning 3–487 1825 1826 Index vertex 2–1089 operations 2–1150 settings 2–1111, 2–1113 vertex sub-object 2–1150 vertex - definition 3–1030 vertex alpha 1–938 vertex color 1–936 rendering 2–1693 vertex color map 2–1693 vertex count 1–1253, 3–861 vertex display size 3–822 vertex illumination 1–938 vertex normals (scaling) 1–996 vertex to link assignment initialization 2–1123 vertex type 1–975 vertex weld modifier 1–935 vertex-link assignments 2–1111, 2–1113 vertexpaint modifier 1–936 adjust color dialog 1–949 brush options 1–960 color palette 1–950 paintbox 1–941 palette 1–950 vertical (move key) 2–579 vertical motion dynamics of 2–878 vertices adding 1–297, 1–303 align 1–1011 attach/detach 1–1011 breaking 1–1011 changing type 2–1089 checking assignments 2–1089 checking for alignment in loft objects 1–374 choosing type 2–1089 creating 1–1011 deleting 1–297, 1–1011 inserting 1–295, 1–308 make planar 1–1011 making rigid 2–1089 manually assigning deformable blended 2–1089 manually overriding assignments 2–1089 painting 1–936 reassigning manually 2–1089 removing deformable 2–1089 selecting by color 1–652, 1–1029 slice 1–1011 weld 1–1003, 1–1011 working with 2–1089 video color check 2–1434 video driver and display problems 3–896 video post 3–311, 3–315 abut 3–329 add external event 3–340 add image input event 3–332 add layer event 3–337 add loop event 3–342 add output event 3–339 add scene event 3–329 align left 3–328 align right 3–328 alpha compositor 3–381 alpha filter 3–344 animating lens effects 3–349 automatic secondary flare parameters 3–356 common procedures 3–315 composite image sequences 3–315 composite scene over image sequence 3–315 configure presets 3–327 contrast filter 3–343 create animation from still images 3–315 create starfield 3–315 cross fade compositor 3–381 edit current event 3–324 edit external event 3–340 edit image input event 3–332 edit layer event 3–337 edit loop event 3–342 edit output event 3–339 edit range bar 3–327 edit scene event 3–329 execute sequence 3–325 fade filter 3–344 flare glow parameters 3–355 flare inferno parameters 3–360 flare lens effect 3–350 flare preferences 3–353 flare ray parameters 3–358 flare ring parameters 3–355 flare star parameters 3–359 flare streak parameters 3–360 focus lens effect 3–362 glow inferno 3–368 glow lens effect 3–364 glow preferences 3–367 glow properties 3–365 highlight geometry 3–374 highlight lens effect 3–370 highlight preferences 3–376 highlight properties 3–371 image input event 3–334 image input options 3–334 join two animations 3–315 lens effects 3–349 Index lens effects filters 3–345 lens effects gradient colors 3–381 lens effects gradient options 3–378 lens effects gradient types 3–379 make an object glow 3–315 make same size 3–328 manual secondary flare parameters 3–357 negative filter 3–345 new sequence 3–323 open sequence 3–323 pseudo alpha compositor 3–382 pseudo alpha filter 3–346 queue 3–312 render in reverse 3–315 resize images 3–315 save sequence 3–324 simple additive compositor 3–383 simple cross fade 3–315 simple wipe compositor 3–383 simple wipe filter 3–347 starfield filter 3–347 status bar 3–313 swap events 3–325 switch views 3–315 toolbar 3–323 troubleshooting 3–314 view controls 3–313 video post compositors alpha compositor 3–381 cross fade compositor 3–381 pseudo alpha compositor 3–382 simple additive compositor 3–383 simple wipe compositor 3–383 video post filters alpha filter 3–344 animating lens effects 3–349 automatic secondary flare parameters 3–356 contrast filter 3–343 fade filter 3–344 flare glow parameters 3–355 flare inferno parameters 3–360 flare lens effect 3–350 flare preferences 3–353 flare ray parameters 3–358 flare ring parameters 3–355 flare star parameters 3–359 flare streak parameters 3–360 focus lens effect 3–362 glow inferno 3–368 glow lens effect 3–364 glow preferences 3–367 glow properties 3–365 highlight geometry 3–374 highlight lens effect 3–370 highlight preferences 3–376 highlight properties 3–371 lens effects 3–345, 3–349 lens effects gradient colors 3–381 lens effects gradient options 3–378 lens effects gradient types 3–379 manuarl secondary flare parameters 3–357 negative filter 3–345 pseudo alpha filter 3–346 simple wipe filter 3–347 starfield filter 3–347 video safe frame (glossary) 3–1030 view align to view button 1–468 axonometric views 1–24 camera views 1–24 light views 1–24 navigation 1–29 perspective views 1–24 preset 1–24 view file dialog 3–502 view image file (file menu) 3–502 view preview (rendering menu) 3–170 view change 1–36 view controls video post 3–313 view image file 3–502 view menu Track View 2–532 view menu (Schematic View) 3–644 view samples 3–1005 view steps 1–991 view-handling commands 1–35 viewing 3D space 1–21 and changing normals 1–166 grid objects 2–6 portions of scene 2–1379 smoothing 1–167 transform keys 2–283 viewing sample biped animations 2–920 viewport clipping 2–1379, 3–731, 3–853 viewport configuration 3–853 adaptive degradation 3–859 layout 3–856 regions 3–860 rendering method 3–853 safe frames 3–857 viewport configuration dialog 3–853 viewport controls 3–735 viewport display, particles 2–202 1827 1828 Index viewport navigation walkthrough 1–30, 3–738 viewport properties menu 3–731 viewport renderer (glossary) 3–1030 viewport rendering 3–853 viewport shaders 2–1464 lightmap 2–1614 metal bump 2–1614 viewport shading 3–853 viewports 1–22, 3–729 and display of modifier effect 3–760 arc rotate snap angle preference 3–821 background 1–38 configuring 3–853 controlling rendering 1–27 create snapshot of 1–35 DirectX manager rollout 2–1464 general concepts 1–22 grab 1–35 layout 3–856 navigating 3–735 preferences 3–821, 3–838, 3–840 prompt line 3–699 redraw all views 1–50 reset layout 3–785 right-click menu 3–731 setting layout 1–26 status line 3–701 tooltips 3–729 tooltips preference 3–815 viewport controls 3–735, 3–738, 3–745, 3–750 viewport renderer (glossary) 3–1030 views menu commands and 3–675 views menu 3–675 activate all maps 1–50 adaptive degradation toggle 3–859 add default lights to scene 1–49 create camera from view 1–48 deactivate all maps 1–50 expert mode 1–51 grids 2–33 redraw all views 1–50 reset background transform 1–45 restore active view 1–37 save active view 1–37 shade selected 1–47 show dependencies 1–47 show ghosting 1–46 show key times 1–46 show transform gizmo 1–45 undo/redo 1–36 update background image 1–44 update during spinner drag 1–51 viewport image 1–44 to 1–45 virtual viewport 3–860 visibility tracks 2–549, 2–556 visible after/before 2–979 visible/invisible 1–1006 visual MAXScript utility 3–783 VIZ files linked geometry 3–525 VIZBlock 3–525 VIZ Render files 3–527, 3–529 Linked Geometry 3–529 VIZBlock 3–1031 VIZBlocks selecting when file linking 3–440 volume fog environment effect 3–284 volume light environment effect 3–288 volume select modifier 1–952 volume shading mental ray 3–95 vortex space warp 2–63 voxel 2–1531 voxel size 3–129 VPX files 3–1031 VRML format 3–591 VRML97 3–595 exporting to 3–591, 3–594 helpers 3–597 to 3–608 specification 3–597 VST targa files (glossary) 3–633 VUE file glossary 3–1031 renderer 3–130 W W3D files analyzing 3–585 exporting 3–580 to 3–581 previewing 3–585 walk 2–936, 2–988 footstep 2–988, 2–992 walking gait 3–1033 walking parameters 2–861 walkthrough button 1–30 walkthrough flyout 3–738 walkthrough navigation 1–30, 3–738 wall 1–210, 1–223 editing wall objects 1–228 wall behaviors repel 2–1227, 3–1033 seek 2–1229, 3–1033 wall seek behavior 2–1162 wander behavior 2–1231, 3–1033 warning messages 3–819 Index water 2–801 rendering 2–803 space warp 2–801 wave wave modifier 1–957 waveform controller 2–381 wave space warp 2–100 wavefront files (obj, mtl) 3–588 Wavefront material files 3–590 Wavefront object files 3–589 waves map 2–1683 web distribution 2–1325 to 2–1326 web distribution (photometric lights) 2–1355 web parameters rollout 2–1355 web site getting content from 3–504 weight 2–1114, 2–1141, 2–1150 assignments (Skin modifier) 1–807 assignments (vertex) 2–1092 vertices (Skin modifier) 1–791 weight table 1–810 weight tool dialog 1–807 weighted vertices 2–834, 2–1130 weld 1–935 editable mesh edges 1–1011 editable mesh vertices 1–1003, 1–1011 threshold 1–297, 1–842, 1–888, 1–920, 1–1011, 3–542, 3–586 vertices 1–297 weld vertices/edges dialog 1–1077 what you should know to use character studio 2–832 white paper, swivel angle and HI IK solver 2–449 wide flange 1–288 width 2–990 wind 2–803 wind space warp 2–75 window/crossing toggle 1–93 windows 1–210, 1–253 3ds Max 1–9 awning 1–256 casement 1–257 fixed 1–258 pivoted 1–259 projected 1–260 sample preview 2–1420 sliding 1–261 wire editor 2–412 wire parameters 2–411 to 2–412 expression techniques 1–146 wireframe color 3–757 wireframes 1–46, 1–52, 3–1034 wiring particle view 2–134 wiring (particle flow) 2–134, 3–1033 wiring parameters 2–411 wiring tests to events (particle view) 2–131 wood map 2–1684 workbench 2–837, 2–1008 analyze panel 2–1017 analyzing curves 2–1011 animation 2–1012 curve view 3–925 filters panel 2–1023 fix panel 2–1020 fixing curves 2–1012 navigating 2–1010 select panel 2–1016 workflow 3–1035 and biped 2–843 applying physique 2–1083 creating bulges 2–1094 footstep animation 2–856 in character studio 2–839 motion capture 2–1061 motion flow 2–1043 procedures in this reference 2–1264 Revit 3–452 tendons 2–1147 workflows designing materials 2–1395 edit poly 1–643 editable poly 1–1022 project workflow in 3ds Max 1–1 radiosity 3–57 set key 3–719 sub-object selection (NURBS) 1–1084 working folder 3–487 to 3–488 working with crowd animation 2–1154 workbench 2–1008 working with AutoCAD, AutoCAD Architecture and Revit files 3–440 working with biped 2–843 working with crowd animation 2–1154 working with drawing files 3–417 world axis 1–424 world coordinate system (glossary) 3–1035 world rollout 2–808 world space 2–959, 3–1036 world space (biped) 3–1036 world-space modifier 1–512 camera map 1–513 displace mesh 1–514 displace NURBS 1–515 glossary 3–1036 LS colors 1–550 1829 1830 Index MapScaler 1–551 PatchDeform 1–552 PathDeform 1–552 subdivide 1–555 surface mapper 1–556 SurfDeform 1–557 world-space tripod 3–729 wrap cursor near spinner 3–815 wrectangle 1–284 WSM modifier 1–512, 1–550 camera map 1–513 displace mesh 1–514 displace NURBS 1–515 MapScaler 1–551 PatchDeform 1–552 PathDeform 1–552 subdivide 1–555 surface mapper 1–556 SurfDeform 1–557 X XAF files 3–472 adding to motion mixer 2–609 adjust time in motion mixer 2–615 adjusting in motion mixer 2–611 combining with mixer 2–604 filtering in motion mixer 2–612 transitions in motion mixer 2–616 XForm modifier 1–959 XLI files 3–560 XLO files 3–560, 3–562 XMM files 3–472 xref 2–918 add offset 2–383 xref biped 2–918 xref controller 2–298, 2–383 xref ik chain 2–436 xref material 2–1616 XRef object proxy object 3–414 XRef objects dialog entities list right-click menu 3–405 files list right-click menu 3–403 XRef objects dialog 3–397 xref scenes overlays 3–408, 3–412 xref systems 1–404 Xrefs glossary 3–1036 resolving in file linking 3–439 resolving paths 3–431 XRefs and paths 3–411, 3–415 glossary 3–1037 scenes 3–411 user path configuration 3–812 using XRefs 1–16 XRef merge dialog 3–406 XRef objects 3–393 to 3–394, 3–397, 3–414 XRef scenes 3–393, 3–407 XYZ controllers 2–317 to 2–318, 2–344, 2–356, 2–371 XYZ coordinate shader (mental ray) 2–1730 XYZ generator shader (mental ray) 2–1729 to 2–1730 xyz position 2–958 XYZ to UVW option (UVW map modifier) 1–922 Y YUV file (glossary) 3–635 Z -z command-line option 3–672 z element parameters rollout 3–143 zero all 2–952 zero twist 2–952 zoom about mouse point (preference) 3–821 no zoom (particle view) 2–129 region zoom (particle view) 2–135 zoom 3–739 zoom (particle view) 2–129, 2–135 zoom (Track View) 2–596 zoom all 3–740 zoom extents (particle view) 2–129 zoom extents all/all selected 3–737 zoom extents/extents selected 3–740 zoom horizontal extents/extents keys (Track View) 2–595 zoom region (particle view) 2–129 zoom region (Track View) 2–597 zoom selected object (Track View) 2–588 zoom value extents (Track View) 2–596 zooming views 1–29 zoom selected object option (Track View) 2–886 zoom value extents (Track View) 2–596 zoom value extents range (Track View) 2–596 ZT file 3–1037
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.6 Linearized : Yes XMP Toolkit : 3.1-701 Producer : Acrobat Distiller 7.0 (Windows) Creator Tool : PScript5.dll Version 5.2.2 Modify Date : 2007:04:13 11:42:16-07:00 Create Date : 2007:04:13 10:43:29-07:00 Metadata Date : 2007:04:13 11:42:16-07:00 Format : application/pdf Title : Print Preview - C:\DOCUME~1\prettod\LOCALS~1\Temp\.aptcache\aea04832/tfa04832 Creator : prettod Document ID : uuid:d43fd96d-daaa-4a9d-a475-321fa35bafca Instance ID : uuid:708fd6b1-4e52-4154-9e46-68bfff7a91eb Has XFA : No Page Count : 1848 Author : prettodEXIF Metadata provided by EXIF.tools