Title: Computer Graphics Animation Techniques
1Computer GraphicsAnimation Techniques
Slides borrowed from Ronen Barzel http//www.ense
ignement.polytechnique.fr/profs/informatique/Ronen
.Barzel/
2Types of Animation
- Scripted Animation
- Procedural Animation
- Motion capture
3Scripted Animation
4Procedural animation
5Motion capture
6Motion Capture
- capture of motion of (human) actor
- whole body, upper body, face
- Technology optical, magnetic, mechanical
- Employs special sensors (trackers) to record
motion of human performer - Problems
- Difficult to accurately measure motion of human
body clothes may shift, etc - If object used to generate recorded motion and
graphical object have different dimensions -gt
animation will have noticeable flaws.
7Topics in Animation
- Scripted Animation
- Keyframe interpolation, articulated models,
inverse kinematics, deformations, - Procedural Animation
- Particle Systems, Flocks, Crowds, Cloth, Fire,
Smoke, Water, - Motion capture
- Filtering, editing, retargeting, stitching,
8Overview of CG animation
9Overview of CG animation
10Overview of CG animation
11Overview of CG animation
12Overview of CG animation
13Overview of CG animation
14Overview of CG animation
15Overview of CG animation
16Overview of CG animation
17Why CG animation?
- One medium of many
- live action, classical animation, clay, puppets,
- 3D has aspects of live film
- Camera, cinematography
- CG has aspects of classical animation
- Stylization, fantasy, scripted motion,
- Accessible
- Computer editing.
- Dont need to act, dont need to draw.
- Need to understand acting, need to understand
images
18Keyframe animation classical
- Animator draws character at extreme poses
- Fill in in-betweens
- Illusion of Life
19Keyframe animation CG
- Model parameters
- Position (x,y,z), joint angles, deformations,
- Key frames data points
- In-between interpolation
- Many ways to interpolate
- linear
- splines (polynomial curves)
20Linear interpolation
- Given points P0 and P1, define curve L(t)
- L(t) (1-t) P0 t P1 t in 0,1
- Weighted average of endpoints.
- Curve is linear segment
21Linear interpolation N points
- Given P0PN, define segment
- Li(s) (1-s) Pi s Pi1 s in 0,1
- Then define piecewise-linear curve
- L(t) Li(s) for tilt t lt ti1
- Where s (t-ti)/(ti1-ti)
- and (lets say) ti i/N
22Spline curves
- To make smooth curves from data points
- Many types of splines, many properties
- Interpolating, approximating,
- Build an order-k polynomial from k1 points
23Spline curve segment
- General form for a segment
- C(t) B0(t)P0 Bk(t)Pk
- Weighted average of k control points
- Basis functions Bi(t), order-k polynomials
- Many choices, many properties
- Most commonly k3 (cubic)
- E.g. Bézier curve
24Speed along the spline
- Uniform parameterization speed varies
- Arc-length parameterization constant speed
- User-specified speed
25Animation Principles
- From
- Principles of Traditional Animation Applied
to 3D Computer Animation - John Lasseter, ACM Computer Graphics, 21(4), 1987
- In turn from
- The Illusion of Life
26Squash and stretch
- Determines feeling of weight, flexibility,
response to pressure. - Maintain volume
27Timing
- Rate of acceleration conveys weight
- Speed and acceleration of characters movements
convey emotion
28Anticipation
- Prepare for each movement
- For physical realism
- To direct audiences attention
29Anticipation Overlap
30Follow Through
- Overlapping motion
- Motion doesnt stop suddenly
- Pieces continue at different rates
- One motion starts while previous is finishing,
keeps animation smooth
31Staging
- Picture is 2D
- Make situation clear
- Audience looking in right place
- Action clear in silhouette
32Action
- Traditional Pose-to-pose or straight ahead
- CG allows layered animation
- First animate core and important parts
- Gradually go back and refine, add others
- In practice, combination of blocked poses and
layered motion.
33Ease-in and Ease-Out
- Movement doesnt start stop abruptly.
- Also contributes to weight and emotion
34Arcs
- Move in curves, not in straight lines
- www.comet-cartoons.com
35Exaggeration
- Helps make actions clear
- Helps emphasize story points and emotion
- Must balance with non-exaggerated parts
36Secondary action
- Motion that results from some other action
- Needed for interest and realism
- Shouldnt distract from primary motion
- (today often use simulation to compute secondary
motion of hair, clothing, etc.)
37Appeal
- Attractive to the eye, strong design,
- Avoid symmetries
38Personality
- Action of character is result of its thoughts
- Must know purpose and mood before animating each
action. - No two characters move the same way.
39Animating skinned characters
40Skeleton
- restricted transformations
- no drawn geometry, just bones
41Use of skeleton
- support for direct manipulation
- support for inverse kinematics
- skinning to build models
42Even for non-humans
43Even for non-animals
44Kinematics
- Considers only motion
- Determined by positions, velocities,
accelerations - Forward kinematics
- Low level approach where animator has to
explicitly specify all motions of every part of
the animated structure - Each node in hierarchy inherits movement of all
nodes above it - Inverse kinematics
- Requires only the position of the ends of the
structure - Functions as black box - controls detailed
movement of entire structure
45Forward Kinematics
- Animator specifies joint angles
- Computer finds position of end-effector X
46Inverse Kinematics
- Animator specifies end-effector positions
- Computer finds joint angles
47Kinematics Summary
- Forward Kinematics
- Animator has complete freedom over the movements
of any part of the structure - Amount of work is function of the complexity of
the structure, much more expensive when dealing
with complex structures - Inverse Kinematics
- Does not leave much scope for the animator to
inject character into the movements - Model does not possess the interpretation of a
human being - Overall movement of structure depends on the
formula -gt same footprints, same movements
48What makes this hard?
- Not always a unique solution
- Not always well-behaved
- Nonlinear problem
- Joint limits
49Not always a unique solution
- Disjoint solutions
- Continuum ofsolutions
- No solution
50Not always well-behaved
- Small change in X can cause big change in ?
- Changing ? might not move end towards X
51Deformation
- To deform a model, move its control points.
- The rest is details
- Types of deformation
- Skeleton deformation
- Function-based deformation
- Free-form deformation
- Point cluster deformers
- Shape interpolation, morphing
52Skeleton deformation
- Skeleton (IK) inside the skin
53Skeleton deformation
- Associate each point with nearest link
- When link moves, transform its points.
54Problem collapsing, kinking
55Point weights
- Each point gets affected by several links
- Take weighted average
- Adjust the weights until it looks good
56Function-based deformation
- Define a function over all space
- M R3 ? Transformation (matrix)
- To transform a point P
- evaluate function M at P
- transform P by the result
- P M(P) P
57Undeformed model
58Taper
59Twist
60Vortex
61Bend
62Bend
- Given x0, y0, h, q, rh/q
- Three regions
- Below y0 unaffected
- Above y0h
- translate down by h
- rotate by -q about (x0r, y0)
- Between y0 and y0h
- interpolate translation
- interpolate rotation angle
63Combinations of deformations
Original
Bend
Twist
BendTwist
64Potential problem
- If there arent enough points, model collapses
- Solutions
- adaptively create new points
- build models with enough points where needed
65Free-form deformation (FFD)
- Define a lattice around the model
- Move the points of the lattice
- The model deforms with it
66FFD example
67FFD example
68FFD interpolation
- Different ways to interpolate
69Computing FFD
- find (s,t,u) coordinatesof P in original grid
- interpolate deformedgrid points at (s,t,u)
70Computing FFD coordinates
- Grid
- originQ, orthogonal axesU,V,W, cellsl,m,n
- Grid points
- Point to deform
71Computing FFD interpolation
- Grid points moved to Gijk
- Interpolate using multidimensional Bézier
- Or use piecewise lower-order Bézier segments
72FFD with arbitrary topology
73Skeleton with FFD
- Skeleton moves FFD grid
- FFD moves points
74Point cluster deformers
- Select cluster of points
- Apply an operation directly to some points
- Weights often set by spatial fields
75Point cluster deformers
76Point cluster deformers
- Weights painted on by hand
- (there are more points than shown in the
wireframe)
77Wires
- Reference curves on model
- Draw target curves
78Shape interpolation
- sculpt several target shapes
- use weighted average
- meshes must have same topology
79Shape interpolation
- used often for mouth shapes
- shapes with different topology