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 dont give desired effects


Amorphous effects hard to achieve

Lacks highlevel 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 nondynamic 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 userdefined attributes

SIGGRAPH 97 COURSE NOTES SH11 PHYSICALLY BASED MODELING


Relationships

Objecttoobject relationships

Attributetoattribute 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

Perparticle (array) attributes vs.


scalar attributes
Userdefined attributes

Particles act independently


No particletoparticle collisions

What affects particles?


Fields
Springs
Attribute values
Expressions (oneline or multiline)
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 (perparticle)


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

Hooks 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 minmax 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
Multipoint

Streak (lines)
Multistreak

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

Multiline expressions
Multiple input and output attributes

SIGGRAPH 97 COURSE NOTES SH36 PHYSICALLY BASED MODELING


Particle Expressions

Particle expressions executed perparticle


Multiline expressions are like small programs
Any attribute accessible for setting and getting values
Runtime vs. creation rules
Builtin 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

You might also like