Principles of

Christian Van Brussel – SPS ICTEAM/ELEN – February 2012 Overview

 3D animation and 3D deformation tools  Generating  Combining animations  Common animation problems Overview

 3D animation and 3D deformation tools  Generating animations  Combining animations  Common animation problems

 Render one frame: illumination model  Set of frames: motion model The Human Eye VS. the Motion 3D Meshes

 Defined by:

 Vertices  Triangles  Textures and texture coordinates  Normals  and other material properties Animating a 3D Mesh

 Three main categories of animation:

 Frame by frame  Key frames + interpolation  Procedural  Two main tools for the deformation:

 Morphing  Skeletal animation Morphing

 Pose of a mesh:

3  P= p0 ,... , pn, pi ∈ℝ  Morph targets (a.k.a. blend shapes):

 MT j=P j−Pneutral  Applying the morph targets: m  P final=Pneutral∑ w j×MT j j=0 Skeletal Animation

 Tree of bones:

 B0 ,... , Bn

 Transform of a given bone (neutral):

 T Gi =T 0×...×T i−1

 Transform of a given bone (posed):

 T Gi=T 0×P0×...×T i−1×Pi−1 Representation of the rotations

 Euler angles

 + understandable by humans

 - not composable

 - Gimbal lock  Axis angle

 + understandable by humans

 - not composable  Matrix

 + composable

 - not understandable by humans

 - quite costly in memory and computation Representation of the rotations

 Quaternion

 + composable

 + numerically stable

 + low memory

 + low computation costs

 - really not understandable by humans Skeletal Animation: Skinning

 Define bone influences per vertex  Move each vertex depending on their bone influences Animating a 3D Mesh con't

 Define animation channels:

 Type: float, vector, quaternion, color,...  Controls: bone, morph target, parameter,...  Interpolator  To be animated:

 Key framed animation  Overview

 3D animation and 3D deformation tools  Generating animations  Combining animations  Common animation problems Key Framed Animation

 Key frames defined either:

 by an artist  or acquired through  No possible interaction Procedural Animation

 Generate new animations:

 Noise  Physical simulation   PCA  …  Combine animations The Perlin Noise

 Coherent noise: smooth pseudorandom noise function  Cfr. http://mrl.nyu.edu/~perlin/ Physical Simulation

 Rigid bodies:

 Colliders  Mass, inertia, friction, elasticity,...  Joints  Soft bodies  → Detect collisions + simulate application of forces  Cfr. http://bulletphysics.org/ Dynamic Motion Controllers

 Generate animations by applying forces on the physical model Inverse Kinematics Principal Component Analysis Overview

 3D animation and 3D deformation tools  Generating animations  Combining animations  Common animation problems Animation Blending Trees Graph V1: Finite State Machine Graph V2: Motion Graphs

 Problems:

 Frame distance metrics  Identifying the set of animation sequences  Building a well-balanced graph  Finding a path to the required state Graph V3: Parametric Motion Graphs Graph V4: Motion Planning Overview

 3D animation and 3D deformation tools  Generating animations  Combining animations  Common animation problems Common Animation Problems

 Other complex topics:

 Path Finding  Locomotion  Grasping objects  Crowd animation Common Animation Problems

 Database management:

 Motion edition tools  Retargeting  Motion storage and retrieval  Motion classification Common Animation Problems

 Motion capture data:

 Noise filtering  Positioning of the root of the skeleton  Foot skating  Keyframing and motion compression Open source toolbox: http://www.crystalspace3d.org/