Computer Animation AYBU - CENG505 Advanced Computer Graphics
Computer Animation = Making Things Move
Computer Animation Used In n Movies n Special Effects n Games n Human Computer Interaction n Scientific / Data Visualization
Topic Overview n Traditional animation process n Keyframing and interpolation n Modeling and animating articulated figures n Motion capture n Motion editing n Physically based (dynamics) n Natural phenomena (plants, water, gas) n Rendering issues (compositing, motion blur ) n Other research topics
Traditional Animation n Computer animation builds on techniques and tools from traditional animation. n Film runs at 24 frames per second (fps) q That s 1440 pictures to create per minute q 1800 fpm for video (30 fps) n ~200.000 frames for a 90 min movie
Traditional Animation Pipeline Story Visual Development Character Design Storyboards Scene Layout Keyframes In-betweens Painting
Traditional Animation: The Process n Storyboard q q Sequence of drawings with descriptions Story-based description n Key Frames q q Draw a few important frames as line drawings n For example, beginning of stride, end of stride Motion-based description n In-betweens q Draw the rest of the frames n Painting q Redraw onto acetate Cels, color them in
Traditional Animation: Storyboarding n The film in outline form q specify the key scenes q specify the camera moves and edits q specify character gross motion n Typically paper&pencil sketches on individual sheets taped on a wall q Still not very many computers
Traditional Animation: Storyboarding (from A Bug s Life)
Storyboarding: Key Issues n Does the shot sequence q maintain continuity? q not confuse the audience? q contain variations in pacing? n Is the story clear? q Is the information clearly presented? q Are the characters clearly portrayed? n Possible to do it with the time and budget? q The techniques necessary to pull it off?
Keyframes
Principles of Traditional Animation 12 Principles Squash and stretch Anticipation Staging Pose to Pose Follow Through Slow In, Slow Out Arcs Secondary Action Timing Exaggeration Solid Drawing Appeal Introduced to computer animation in 1987 in a SIGGRAPH paper by John Lasseter The Illusion of Life, Disney Animation
Next reading assignment There is no mystery in animation.. It s really very simple, and like anything that simple, it is about the hardest thing in the world to do. Bill Tytla, Walt Disney Studio, June 28, 1937
Computer Assisted Animation n n Computerized cel painting q Digitize line drawing q Color using seed fill q Widely used in production (little hand painting any more) q e.g. Lion King Cartoon in-betweening q Automatically interpolate between two drawings to produce in-betweens (morphing) q Hard to get right q n in-betweens often don t look natural n what are the parameters to interpolate? Not clear... not used very often
Digital Animation Pipeline Story Visual Development Character Design Storyboards Scene Layout Modeling Animation Shading & Texturing Lighting Rendering Post Production
Principles of Traditional Animation
Principles of Traditional Animation n To study computer animation, useful to understand traditional animation principles
12 Principles n n Cartoon Physics q Squash and stretch q Timing q Secondary Actions q Slow In, Slow Out q Arcs Aesthetics Actions q Exaggeration q Appeal q Follow Through n n Effective Presentation of Actions q Anticipation q Staging Production Techniques q Straight Ahead q Pose to Pose Introduced to the computer animation community in 1987 in a SIGGRAPH paper by John Lasseter
Video n Luxo Jr. (again) n Geri s Game
12 Principles n n Cartoon Physics q Squash and stretch q Timing q Secondary Actions q Slow In, Slow Out q Arcs Aesthetics Actions q Exaggeration q Appeal q Follow Through n n Effective Presentation of Actions q Anticipation q Staging Production Techniques q Straight Ahead q Pose to Pose Introduced to the computer animation community in 1987 in a SIGGRAPH paper by John Lasseter
Cartoon Physics: Squash and Stretch n Squash: flatten an object or character by pressure or by its own power n Stretch: used to increase the sense of speed and emphasize the squash by contrast
Cartoon Physics: Squash and Stretch Approximately maintain volume...but distort its shape over time
Cartoon Physics: Timing n Timing related to weight: q Heavy objects move slowly q Light objects move faster n Important to define motion n Animators draw a time scale next to keyframe
Cartoon Physics: Secondary Actions n A secondary action is an action that results directly from another action n Usually, secondary actions support main action and typically represent physical reactions n Important in heightening interest and adding a realistic complexity to the animation
Cartoon Physics: Secondary Actions
Cartoon Physics: Slow in & Slow out n Concerned with how things move in space n Animator defines the most important or key frames n Instead of having a uniform velocity objects slow in and slow out of poses at extremes n Model inertia, friction, viscosity n Mathematically, 2 nd and 3 rd order continuity of motion
Cartoon Physics: Arcs n Visual path should be arc q Rather than a straight line n Can be a problem for computer methods: q Fast movement = straight lines n Solution: q Use independent curves for position interpolation and speed control
Aesthetics: Exaggeration n Not arbitrarily distorting shapes/actions n Any parameter can be exaggerated: q Scene design, object shapes, action, emotion, color, sound e.g. body proportions of Luxo Jr.
Aesthetics: Appeal n Creating a design or an action that the audience enjoys watching
Presentation: Anticipation and Staging n n n Action: q Anticipation + Action + Reaction Anticipation q The preparation for an action Staging q Presenting an idea so that it is unmistakably clear. q This idea can be an action, a personality, an expression, or a mood. q An important objective of staging is to lead the viewers eye to where the action will occur so that they do not miss anything.
Aesthetics: Follow Through n Termination part of an action. q Overlapping: establishes next action's relationship by starting it before the first action has completely finished. n Keeps interest of the viewer: no dead time between actions
Production Techniques: Straight Ahead n Animator starts at the first drawing in a scene q Then draws all subsequent frames q à until reaching the end of the scene. n Used for wild, scrambling action. q Creates very spontaneous and zany looking animation
Production Techniques: Pose to Pose n Animator carefully plans out animation q Draws a sequence of poses, i.e., the initial, some in-between, and the final poses q Then draws all the in-between frames (computer draws inbetween frames). n Used when scene requires more thought n When poses and timing are important.
Traditional to computerized n Traditional animation uses 12 design principles to create illusion of life n Computer animation borrows these techniques from traditional animation n Further information: q Thomas, Johnson, The Illusion of Life: Disney Animation (~1000 pages, suggested if you want to know traditional animation principles)
Keyframing
What is a Key? n Anything can be keyframed and interpolated q Position, Orientation, Scale, Deformation, Patch Control Points (facial animation), Color, Surface Normals n Special interpolation schemes for some types of parameters (e.g. rotations) q Use quaternions to represent rotation and interpolate between quaternions n Control of parameterization controls speed of animation
Keyframing Basics n n n n Despite the name, there aren t really keyframes, per se. For each variable, specify its value at the important frames. Not all variables need agree about which frames are important. Hence, key values rather than key frames Create path for each parameter by interpolating key values
Keyframing Recipe n Specify the key frames q rigid transforms, forward kinematics, inverse kinematics n Specify the type of interpolation q linear, cubic, parametric curves n Specify the speed profile of the interpolation q constant velocity, ease-in,out, etc. n Computer generates the in-between frames
Keyframing Pros and Cons n Gives good control over motion n Eliminates much of the labor of traditional animation q But still very labor-intensive n Impractical for complex scenes with everything moving: q grass in the wind, water, and crowd scenes, for example n Now, in more detail: q how to interpolate and what to interpolate (positions for this lecture, orientations next time)
Keyframing n Interpolation n Motion Along a Curve (arc length) n Interpolation of Rotations (quaternions) n Path following
Interpolation n Foundation of animation is interpolation of values. n Given: a list of values associated with a given parameter at specific frames (called key frames or keys) of the animation. n Goal: how best to generate the values of the parameter for the frames between the key frames. n The parameter to be interpolated may be q q q q a coordinate of the position of an object, a joint angle of an appendage of a robot, the transparency attribute of an object, any other parameter
Interpolation n The simplest case is interpolating the position of a point in space. n Even this is non-trivial to do correctly and requires some discussion of several issues: q the appropriate parameterization of position, q the appropriate interpolating function, q and maintaining the desired control of the interpolation over time.
Linear Interpolation
Cubic Curve Interpolation
Cubic Curves n First issue: interpolation vs. approximation q q q q q Interpolating curve passes through points Approximating curve passes near the points used as weights or control points Hermite and Catmull-Rom are interpolating Bezier and B-spline are approximating Interpolating for data fitting, approximating ok for UI
Interpolation n Second issue: continuity q which interpolation technique to use q how smooth the resulting function needs to be (i.e. continuity), 1 st order (C 1 ) Usually good for animation 0 th order (C 0 ) 2 nd order (C 2 ) Good for modeling
Interpolation n Third issue: whether local or global control of the interpolating function is required. q q Does a small change modify the whole curve or just a small segment? how much computation you can afford to do (order of interpolating polynomial) Local control: more intuitiv Global control
Interpolation n Local control is more intuitive: q Almost all composite curves provide local control n Curves which provide local control: q q q q Parabolic blending Catmull-Rom splines Composite cubic Bezier Cubic B-spline n Other curves provide less local control q q Hermite curves Higher-order Bezier and B-Spline curves
Interpolation n Curves play major role in interpolation
Curves Explicit form: y = f(x) e.g. y=x 2 Implicit form: f(x,y) = 0 e.g. x 2 + y 2 - r 2 = 0 Parametric form: x = f(u) y = g(u) Good for testing points or good for generating points?
Curves Parametric form: P = P(u) = (x,y,z) x = f(u) y = g(u) z = h(u) u=0.0 u=1/3 u=2/3 u=1.0 Space-curve P = P(u) 0.0 <=u<=1.0
Curves Interpolation v. approximation Computational complexity Expressiveness Local v. global control Continuity Hermite Bezier Catmull-Rom Blended parabolas B-splines, NURBS
Curves Hermite Bezier B-Spline/NURBS Catmull-Rom Blended Parabolas
Summary n Goal of interpolation: q q how best to generate the values of the parameter for the frames between the key frames. Any type of parameter can be interpolated. n Various curves to choose from: Curve Interpolating/ Approximating Input Parameters per Segment Hermite Interpolating P0, P1, P0, P1 Bezier Approximating P0, P1, P2, P3 B-Spline/NURBS Approximating P i, basis functions Catmull-Rom Interpolating P0, P1, P2, P3
Controlling Motion Along a Curve
Controlling Speed n Speed Curve S(t) : q Input: time t q Output: distance s (arclength) travelled n Reparameterize q Input: distance s q Output: parameter u n Space Curve P(u) -- Compute point on curve q Input: parameter u q Output: point (x,y,z) = P x,y,z (u)
Ease-in/Ease-Out
Speed Curve n 1. s(t) should be monotonic in t q i.e. traversed without going backwards in t n 2. s(t) should be continuous. q No jumps from one point to the next on the curve. n Normalizing (0-1 range) makes it easier to use in conjunction with arc length and other functions.
Sine Interpolation
Sinusoidal Pieces n Another method is to have user specify times t1, t2. n A sinusoidal curve is used for velocity to implement an acceleration from time 0 to t1. n A sinusoidal curve is also used for velocity to implement deceleration from time t2 to 1. n Between times t1 and t2, constant velocity is used. n Done by taking parameter t in the range 0 to 1: q and remapping it into that range according to the above velocity curves to get a new parameter rt. n So as t varies uniformly from 0 to 1, rt will accelerate from 0, then maintain a constant parametric velocity and then decelerate back to 1.
Sinusoidal Pieces
Sinusoidal Pieces
Parabolic Ease-In/Ease-Out n Instead of sinusoidal, use parabolic ease in/out n An alternative approach and one that avoids: q the transcendental function evaluation (sin, cos) q or corresponding table look-up and interpolation n is to establish basic assumptions about the acceleration and, from there, integrate to get the resulting interpolation function.
Parabolic Ease-In/Ease-Out n n n The default case of no easein/ease-out would produce a velocity curve that is a horizontal straight line of v0 as it goes from 0 to 1. The distance covered would be ease(1) = v0*1. To implement an ease-in/ ease-out function, assume constant acceleration and deceleration at the beginning and end of the motion, and zero acceleration during the middle of the motion.
Parabolic Ease-In/Ease-Out
Parabolic Ease-In/Ease-Out
Parabolic Ease-In/Ease-Out n Specifying motion with acceleration is not intuitive. n More intuitive if user specifies t1 and t2, and the system can solve for the maximum velocity
Parabolic Ease-In/Ease-Out n Distance function with parabolic sections at both ends.
Parabolic Ease-In/Ease-Out n Distance in this case is in parametric space, or t-space, and is the distance covered by the output value of t. n For a given range of t = [0,1], the user specifies times to control acceleration and deceleration: t1 and t2. n Acceleration occurs from time 0 to time t1. n Deceleration occurs from time t2 to time 1.
Parabolic Ease-In/Ease-Out n A problem with specifying motion with velocity-time curve q Total distance covered should be 1 (arc length) q Once total time and distance known, average velocity is fixed. à Hard for user to specify velocities at key frames
Keyframing: Issues n What should the key values be? n When should the key values occur? n How can the key values be specified? n How are the key values interpolated? n What kinds of BAD THINGS can occur from interpolation? q q q Invalid configurations (pass through walls) Unnatural motions n Painful twists/bends n Going the long way around Jerky motion
Deformation
Object Deformation n Many objects are not rigid q q q q jello mud gases/liquids etc. n Two main techniques: q q Geometric deformations this lecture Deforms object mesh / geometry directly Physically-based methods later in course Physically accurate simulation of objects n n n What is main difference between these two in terms of creation?
Geometric Deformations n Deform the object s geometry directly n Main techniques: q Non-Uniform Scale q Global Deformations q Skeletal Deformations q Grid Deformations q Free-Form Deformations (FFDs)
Non-Uniform Scale Sx 0 0 0 0 Sy 0 0 0 0 0 0 Sz 0 0 1 Transformation matrix - diagonal elements
Non-Uniform Scale
Warping an Object Displacement of a seed vertex
Warping an Object Attenuated displacement propagated to adjacent vertices.
Control Point /Vertex Manipulation Edit the surface vertices or control points directly
2D Coordinate Grid Deformations Overlay 2D grid on top of object Map object vertices to grid cells (create local coordinate system)
2D Coordinate Grid Deformations User distorts 2D grid vertices Object vertices are remapped to local coor sys of 2D grid
2D Coordinate Grid Deformations Initial Grid
2D Coordinate Grid Deformations Overlay 2D grid on top of object Map object vertices to grid cells (create local coordinate system) User distorts 2D grid vertices Object vertices are remapped to local coordinate system of 2D grid by using bilinear interpolation
2D Coordinate Grid Deformations Initial Grid
Bilinear Interpolation
2D Coordinate Grid Deformation
Skeletal (Polyline) Deformation
Skeletal (Polyline) Deformation
Skeletal (Polyline) Deformation Interior angle bisectors Perpendiculars at end points
Skeletal (Polyline) Deformation L Get object s Draw polyline d Map vertices to polyline Warp polyline Reposition vertices to polyline
Polyline (Polyline) Deformation
Polyline (Polyline) Deformation
Polyline (Polyline) Deformation
Global Deformations f(x,y,z) g(x,y,z) Transformation matrix elements - functions of coordinates
Global Deformation
Global Deformation Good for modeling [Barr 87] Animation is harder
Global Deformations -- Taper
Global Deformations -- Taper
Global Deformations Twist x = x*cos(f(y)) z*sin(f(y)) y = y z = x*sin(f(y)) + z*cos(f(y))
Global Deformations Twist
Global Deformations Rotate
Global Deformations -- Rotate
Global Deformations Compound
Free Form Deformation (FFD) Deform space by deforming a lattice around an object The deformation is defined by moving the control points Imagine it as if the object were encased in rubber
Free-Form Deformations Define local coordinate system for deformation T U S (not necessarily mutually perpendicular)
FFD - create control grid (not necessarily mutually perpendicular)
Extension of 2D Grid Deformation 2D Grid Deformation FFD -- 3D Grid Deformation
FFD Deformations Overlay 3D grid on top of object Map object vertices to grid cells (create local coordinate system) User distorts 3D grid vertices Object vertices are remapped to local coordinate system of 3D grid by using tri-cubic interpolation
FFD - register point in cell T P U S
FFD - register point in cell TxU ((TxU). S) P T T (TxU). (P-P0) S S U P0 s = (TxU). (P-P0) / ((TxU). S) P = P0 + ss + tt + uu
Free Form Deformation (FFD) n Local coord system: (S,T,U) n Point P coordinate along S:!!!!!!! n Same for T,U s = ( T U)( P P0 ) /(( T U) S) n Algorithm: q Introduce fine grid q Deform grid points q Use Bezier interpolation to get new position n Treat new grid points as control points
Polyline (Polyline) Deformation
Free Form Deformation (FFD) The lattice defines a Bezier volume P ( s, t, u) = pijk B( s) B( t) B( u) ijk Compute lattice coordinates ( s, t, u) Alter the control points p ijk Compute the deformed points P( s, t, u) ( u, v, w) ( u, v, w)
Bezier Solids n Trivariate Bezier interpolating function n In essence, we are interpolating a 3D solid space q 1D Bezier function interpolates a curve q 2D Bezier function interpolates a surface n As with Bezier curves, C 1 continuity can be ensured between two control grids P ( s, t, u) = pijk B( s) B( t) B( u) ijk
Bezier Solids
FFD Example
FFD Example Better control more than one block of FFD
FFD - move and reposition Move control grid points Usually tri-cubic interpolation is used with FFDs Originally Bezier interpolation was used. B-spline and Catmull-Rom interpolation have also been used (as well as tri-linear interpolation)
FFD - extensions Hierarchical FFDs Animated FFD Static FFD that object moves through Non-parallelpiped FFD
FFD - films and videos examples Boppin in Bean Town by John Chadwick Facit demo by Beth Hofer Balloon Guy by Chris Wedge
Animation with FFD n Hierarchical FFD q Coarse level FFD modifies vertices and finer FFD grids n Moving object through deformation tool q Can move the tool itself n Modifying control points of FFD q Any technique applies n Key frame n Physics based n Example: q q q FFD is relative to wire skeleton Moves of skeleton re-position FFD grid Skin position is computed within new FFD
FFD Animation Animate a reference and a deformed lattice reference deformed morphed
FFD Animation Animate the object through the lattice reference deformed morphed
FFD Animation Move FFD control points
A few examples n https://www.youtube.com/watch? v=kkpuu_vxtac n https://www.youtube.com/watch? v=pe8kgvwy2zi
Next time n Motion capture n Human animation n Natural phenomena q Fluids, Smoke etc. Thanks to Tolga Çapın, for most of these slides