You are on page 1of 40

Dynamics in Maya

Gary Monheit
Alias | Wavefront

SIGGRAPH ’97 COURSE NOTES SH1 PHYSICALLY BASED MODELING
Dynamics in Maya

• Overall Requirements
• Architecture and Features

• Animations

SIGGRAPH ’97 COURSE NOTES SH2 PHYSICALLY BASED MODELING
Overall Requirements

• Why Dynamics?

• Problems with traditional animation techniques
• Kinds of dynamics problems

• Requirements for software architecture

SIGGRAPH ’97 COURSE NOTES SH3 PHYSICALLY BASED MODELING
Why Dynamics?

SIGGRAPH ’97 COURSE NOTES SH4 PHYSICALLY BASED MODELING
Problems with traditional animation

• Hard to keyframe

• Rendered polygons don’t give desired effects
• Amorphous effects hard to achieve

• Lacks high−level control, simulation

• Lacks procedural control

SIGGRAPH ’97 COURSE NOTES SH5 PHYSICALLY BASED MODELING
Kinds of dynamics problems

Particles

• Contain a set of points in global space with attributes
• Affected by dynamic solver
• Created at either object creation time or by emitters
• Handle birth and death
• Support a variety of rendering techniques

Soft Bodies
• Geometry with points updated by a particle object
• Superset of all particle features

Rigid Bodies
• Geometry with fixed topology and points
• Affected by collisions, constraints, and external forces

SIGGRAPH ’97 COURSE NOTES SH6 PHYSICALLY BASED MODELING
Requirements for software architecture

• Integrated

• Extensible
• Reusable

• Tweakable

• Support Relationships

SIGGRAPH ’97 COURSE NOTES SH7 PHYSICALLY BASED MODELING
Integrated

Maya as scene object architecture
• Nodes
• Attributes
• Connections
Keyframing
• Any scalar attributes
• 3D motion of non−dynamic objects
• Keyframe editors are familiar to animators
Layered procedural animation
• Output from dynamics can be input to other nodes
• Outputs from other nodes can be input to dynamics

Rendering
• Rendered within Maya or exported to other renderer
• Software rendering (volumetric)
• Hardware rendering (openGL)

SIGGRAPH ’97 COURSE NOTES SH8 PHYSICALLY BASED MODELING
Extensible

• Maya embedded language (Mel)

• Parameter driven: attributes
• ASCII scene file format

SIGGRAPH ’97 COURSE NOTES SH9 PHYSICALLY BASED MODELING
Reusable

• Layered scenes with geometry and effects

• Create your own clipFX with Mel

SIGGRAPH ’97 COURSE NOTES SH10 PHYSICALLY BASED MODELING
Tweakable

Attributes are modifiable

• Keyframes
• Expressions
• Connect to other nodes
• Add user−defined attributes

SIGGRAPH ’97 COURSE NOTES SH11 PHYSICALLY BASED MODELING
Relationships

• Object−to−object relationships

• Attribute−to−attribute relationships

SIGGRAPH ’97 COURSE NOTES SH12 PHYSICALLY BASED MODELING
Dynamics in Maya

• Overall Requirements
• Architecture and Features

• Animations

SIGGRAPH ’97 COURSE NOTES SH13 PHYSICALLY BASED MODELING
Architecture & Features

• Maya Architecture

• Dynamic Architecture
• Rendering

• Expressions

• Integrated Dynamics

SIGGRAPH ’97 COURSE NOTES SH14 PHYSICALLY BASED MODELING
Maya Architecture (part 1)

• Nodes

• Attributes
• Connections

SIGGRAPH ’97 COURSE NOTES SH15 PHYSICALLY BASED MODELING
Maya Architecture (part 2)

• Transforms and Shapes

• DAG: Directed Acyclic Graph
• The "object" is really the transform
plus the shape(s)

SIGGRAPH ’97 COURSE NOTES SH16 PHYSICALLY BASED MODELING
Dynamics Architecture

• Particles

• Fields
• Emitters
• Collision Models
• Particle Collision Events

• Controllers
• Connectables and Connections

• Soft Bodies
• Springs
• Rigid Bodies

SIGGRAPH ’97 COURSE NOTES SH17 PHYSICALLY BASED MODELING
Particles

• A particle object is a particle system

• Per−particle (array) attributes vs.
scalar attributes
• User−defined attributes

• Particles act independently
• No particle−to−particle collisions

• What affects particles?
• Fields
• Springs
• Attribute values
• Expressions (one−line or multi−line)
• Dynamics controller attributes

SIGGRAPH ’97 COURSE NOTES SH18 PHYSICALLY BASED MODELING
Fields

• Positional fields

• Geometry fields. Example: sphere owns radial field
• Types of fields
• Air
• Drag
• Gravity
• Newton
• Radial
• Turbulence
• Uniform
• Vortex

SIGGRAPH ’97 COURSE NOTES SH19 PHYSICALLY BASED MODELING
Emitters

Emitters
• Creates new particles into a particle object
• Hose vs. water. Emitter is the hose.
Positional emitter
• The transform defines the position, orientation
• Parented, keyframed, in IK chain, ...

Geometry emitter
• Geometry owns the emitter
• Point vs. surface
• Particle, NURBS, polygon, lattice, curve ...

SIGGRAPH ’97 COURSE NOTES SH20 PHYSICALLY BASED MODELING
Collision Models

• Elasticity

• Friction
• Collision trace depth

SIGGRAPH ’97 COURSE NOTES SH21 PHYSICALLY BASED MODELING
Particle Collision Events

• In the event that a particle collides:
• Emit
• Split
• Die
• Optionally call a Mel proc each time the event occurs

SIGGRAPH ’97 COURSE NOTES SH22 PHYSICALLY BASED MODELING
Connectables and Connections

Dynamics object Connectable object
connect flags

Dynamics objects:
• Particles
• Soft bodies
• Rigid bodies

Connectable object owns one or more of any combination of:
• Fields
• Emitters
• Collision models

What kind of object can be a connectable:
• Polygon, NURBS, lattice, curve, ...

SIGGRAPH ’97 COURSE NOTES SH23 PHYSICALLY BASED MODELING
Examples of connections

Description Conn Type Connection

Sphere emits particles emission particles −> sphere
Particles fall under field particles −> gravity
gravity

Particles bounce on collision particles −> surface
surface

Particles owning radial field soft cube −> particles
field repel a soft cube
Point emitter emits emission soft mesh −> pt emitter
soft mesh

SIGGRAPH ’97 COURSE NOTES SH24 PHYSICALLY BASED MODELING
Controllers

• Manage dynamic objects that may interact

• Interface to a differential equations solver
• Necessary so that all dynamics objects get updated
in sync

• Hold global attributes for dynamics

SIGGRAPH ’97 COURSE NOTES SH25 PHYSICALLY BASED MODELING
Goals

• Goals are geometry, particles, or soft bodies referenced in a
particle object

• Create a force for each particle to move toward a point
on the goal

• Particles or soft bodies can have multiple goals

• Does not require the same number of points as target
• Individual goal weight 0 to 1

• Attribute goalPP 0 to 1 (per−particle)
• Dynamics weight 0 to 1 for the forces generated by fields
and collisions

SIGGRAPH ’97 COURSE NOTES SH26 PHYSICALLY BASED MODELING
Springs

• Classical mechanics spring

• Hook’s Law
• Stiffness and damping

• Start force weight, end force weight

• 0 to 1
• Amount of the force of the spring that gets applied
to either start or end point
• (0, 1) or (1, 0) simulates nailing one end of the spring

SIGGRAPH ’97 COURSE NOTES SH27 PHYSICALLY BASED MODELING
Soft bodies

• Soft is a command, not a node
• For the user, soft bodies are geometry whose points
are updated by a particle object
• Internally, soft bodies are the particle object

• Geometry converted or duplicated in a soft body

• Springs generated by min−max distance or by walk length
• Oversampling (small solver step size) stabilize springs

SIGGRAPH ’97 COURSE NOTES SH28 PHYSICALLY BASED MODELING
Rigid Bodies

• Nodes

• Rigid body
• Constraints
• Nail
• Pin
• Hinge
• Spring
• Barrier

• Transformations updated by a solver that applies forces

• Internal constraints added implicitly (by contact) or
explicitly (by constraint objects)

SIGGRAPH ’97 COURSE NOTES SH29 PHYSICALLY BASED MODELING
Rigid Body Features

• Contact forces handled for resting and sliding objects

• Static and dynamic friction
• Active rigid body
• collision detection
• dynamic response

• Passive rigid body
• collision detection
• independent control by keyframes, expressions,
other nodes

• Cache motion
• Collision layers used to reduce complexity

• Choice of 3 kinds of solvers

SIGGRAPH ’97 COURSE NOTES SH30 PHYSICALLY BASED MODELING
Rendering

• Render Types

• Hardware Rendering in OpenGL
• Software Rendering

SIGGRAPH ’97 COURSE NOTES SH31 PHYSICALLY BASED MODELING
Render Types

• Point
• Multi−point

• Streak (lines)
• Multi−streak

• Sprites (textures)

• Sphere
• Geometry

• Numeric (for debugging)

• Tube (Software)
• Cloud (Software)
• Blobby Surface (Software)

SIGGRAPH ’97 COURSE NOTES SH32 PHYSICALLY BASED MODELING
Software rendering

• Volumetric rendering

• Blobby surface render type uses any shader
• Tube and Cloud render types use specific
particle cloud shader

• Future: hair shader

SIGGRAPH ’97 COURSE NOTES SH33 PHYSICALLY BASED MODELING
Expressions

• Mel Language

• Attribute Expressions
• Particle Expressions

SIGGRAPH ’97 COURSE NOTES SH34 PHYSICALLY BASED MODELING
Mel Language

• Maya Embedded Language

• Unified language for file format, command
engine, and expressions
• Like C

• Like shell

SIGGRAPH ’97 COURSE NOTES SH35 PHYSICALLY BASED MODELING
Attribute Expressions

• Lazy evaluation − evaluate when needed

• Multi−line expressions
• Multiple input and output attributes

SIGGRAPH ’97 COURSE NOTES SH36 PHYSICALLY BASED MODELING
Particle Expressions

• Particle expressions executed per−particle
• Multi−line expressions are like small programs
• Any attribute accessible for setting and getting values
• Run−time vs. creation rules
• Built−in functions for math, system, I/O, arrays
• Data types: int, float, string, vector
int[], float[], string[], vector[]
• Maya commands can be called from expressions
Example:
// Creation rule for setting color:
dynExpression −c −at rgbPP −s "rgbPP = sphrand(1);"
colorCloud;
// Runtime rule for setting color:
dynExpression −r −at rgbPP −s
"if( age > .5 ) rgbPP += <<0,0,rand(.1)>>;"
colorCloud;

SIGGRAPH ’97 COURSE NOTES SH37 PHYSICALLY BASED MODELING
Integrated Dynamics

• Dynamics and transforms

• Rigid Bodies − active and passive
• Soft Body, curves, and IK chain

• Soft Body and deformers

• Soft Body, Rigid Body, and goals
• Particle collision events ...

SIGGRAPH ’97 COURSE NOTES SH38 PHYSICALLY BASED MODELING
Dynamics in Maya

• Overall Requirements
• Architecture and Features

• Animations

SIGGRAPH ’97 COURSE NOTES SH39 PHYSICALLY BASED MODELING
Future Work

• Maya 2.0

SIGGRAPH ’97 COURSE NOTES SH40 PHYSICALLY BASED MODELING