First female Synthespian. Plan For Today. • Topics. – Advanced Techniques in
articulated figure motion. • Genetic Methods. • Human motion and models.
Paper Summaries • Any takers?
Articulated Figures IV Advanced Algorithms
Projects • Presentations – Schedule is now up on Web site – Please e-mail me with your preference of presentation day/time • First come, first served
Plan for Articulated Figure Motion • Articulated Figure Motion – Last Monday: Intro / Forward Kinematics / Spacetime Constraints – Last Wednesday: Inverse Kinematics – Today: Walking / Assignment #4 – Wednesday: • Advanced Techniques in Articulated Figure Motion
– Next week • Character animation / Motion Capture
Motivation Films • Virtual Performers – Diana Walczak and Jeff Kleiser – Synthespian, (Synthetic Thesbians) – Now does Commercials and SFX for films
Motivational Film • Sextone for President (1988) – One of the first digital humans
• Mortal Kombat Annihilation • X-Men
Motivational Film • Don’t Touch Me (1989) – First female Synthespian
Plan For Today • Topics – Advanced Techniques in articulated figure motion • Genetic Methods • Human motion and models
Role of Animation • Degrees of freedom – Number of parameters whose values must be defined in order to fully position the articulated figure Purpose of animation Provide values to each of the DOF for each time step.
The Role of Animation • So how does one do this?
Alternate Approach • Use of genetic algorithms
– Kinematic approaches • Forward Kinematics • Inverse Kinematics
– Dynamical approaches • Physical simulation
– Spacetime Constraints – Use of Empirical / Motion capture data
Genetic Algorithms Initialize population
• Genetic Algorithms
Select individuals for crossover (based on fitness function
– Class of adaptive algorithms used to solve search and optimization problems that are based on evolution and “survival of the fittest” – Populations of solutions are evolved with most fit solutions mated and mutated to form next generation of solutions.
Insert new offspring into population Are stopping criteria satisfied?
Genetic Algorithms • Genetic Algorithms – Coding - Solution to a given problem must be encoded by a data structure (e.g. lists, arrays, trees). – Reproduction - operators must be defined, on the solution data structure for
Genetic Algorithms • Crossover and Mutation of trees crossover
Before crossover After crossover
Before mutation After mutation
• crossover (offspring of 2 parent solutions) • mutation (modification of a single solution)
Genetic Algorithms • Genetic Algorithms – Fitness -- function that, given a solution encoded using a data structure, evaluates the “goodness” or “fitness” of this solution. – Convergence -- if defined correctly, successive generations will produce better solutions so that fitness converges to the optimum.
Genetic Programming • Subarea of Genetic Algorithms – Structures being manipulates (individuals of populations) are “functional programs” – Data structure is a parse tree
Genetic Programming & Texture
• Mutating parse trees (sin (+ (- (grad-direction (blur (if (hsvto-rgb (warped-color-noise #(0.57 0.73 0.92) (/ 1.85 (warped-color-noise x y 0.02 3.08)) 0.11 2.4)) #(0.54 0.73 0.59) #(1.06 0.82 0.06)) 3.1) 1.46 5.9) (hsvto-rgb (warped-color-noise y (/ 4.5 (warped-color-noise y (/ x y) 2.4 2.4)) 0.02 2.4))) x))
Genetic Programming and Animation • Applying GP to animation – Gritz & Hahn (1995) – Joint angles controlled by mutated control programs represented as parse trees
Genetic Programming and Animation • Coupled motions – Note that “nodes” in parse trees can refer to internal state of articulated figures: • Current joint position • Current desired joint position • Velocity / Acceleration at a given joint
Genetic Programming and Animation • Introducing Dynamics – Control programs actually define “desired” joint angle – Motion is determined by physical simulation using simple spring model to determine torques at joints
Genetic Programming and Animation • Evaluating Fitness – Fitness function evaluates a given motion sequence • Start / End configuration • Statistics maintained during motion generation • User defined based on goal
– Allows for coupled motion
Genetic Programming and Animation • Evaluating Fitness
Genetic Programming and Animation • Genetic Luxo
– Like with the IK solution • Main Goal • Style Points
– Example • Goal: get from point A to point B • Style points – – – –
Bonus for completing motion early Penalty for movement after goal is met Penalty for hitting head or falling over Bonus for ending with joints at neutral angles.
Taking Genetics to the Extreme
• Sims (1994) – Not only used GP as a means for defining motion but also used it to evolve creatures for performing given motions
Creature Control • Creator has: – A body – Sensors • World as experienced by a given joint in the body
– A Brain • Containing neutrons which are the nodes of a parse tree • Nodes for internal state (via sensors)
Creature Control • Sensors – World as experienced by a given joint in the body • Joint angle sensors (current joint angle values) • Contact sensors (collision detection) • Photosensors (reaction to global light source)
– Effectors • Controls joint force to be applied at each joint angle • Motion is generated via physical simulation
Combining Brain to body
• Fitness determined by observation of motion for a given task – Examples • Swimming – locomotion amongst a viscous force field. – Straight swimming given more points than circular
• Walking – Locomotion over land
• Jumping – Maximum height off of ground
• Following – Follow a light source
Evolving Creatures • Galápagos (1997) – Interactive museum installation that allows visitors to "evolve" 3D animated forms. – Visitors act as fitness function by determining which creatures they like the best
GP and Animation • This is clearly a case where we’ve crossed the line between Graphics and AI – Creatures, given a task, are “learning” via GP how to best perform the task. – Functional control programs represented and manipulated as parse trees
• Questions/Comments? • Break.
Noise • From SIGGRAPH Bowl III (1998) – Ken Perlin, who stays in New York City because he really likes the noise.
• Life is random – Randomness in textures – Randomness in motion
• Natural things require a level of randomness – For CG & Animation, randomness must be controllable.
Noise • “Controlled” Noise function
Noise • Perlin Noise – Controllable random number generator – Emphasized importance of stochastic functions in texture design – Very efficient in time and space – Implemented as a basic operation in the MMX chipset – Won Ken an Academy Award
Noise • Noise frequency and detail
– white noise = noise at all frequencies – control the frequency of the noise used – e.g. noise (2x) will contain twice as much frequency (detail) as noise(x)
Noise in procedural shading/modeling
Procedural Gestures • Applying the principles of procedural textures to animation. • General approach – Define individual motions (gestures) – Combine gestures into fluid motion – Use noise to eliminate repetition.
• Example: dancer (LINK)
Defining Actions • For each joint angle define: – Min – Max – Interpolation Method • Sin / Cos • Noise
Defining Actions s1 =
1 + sin t 2
1 + sin 2t 2
n1, n2, n3 = noise expressions
Combining actions • Each action will have associated with it a weight: – Weight defines the contribution of the gesture to motion – Weights are time-varying – Allows for even transition between actions
The system • Like with his procedural texture system – Provides a framework for programmable motion. – Real trick is using the system to achieve given results • Defining actions • Defining time dependent weight functions
– Used as basis for a high level directing system (as we’ll see in a couple of weeks)
Demo • Danse Interactif (1994) – Ken Perlin, NYU Media Research Lab
Standard Human Hierarchies • H-Anim – Goals • specify a way of defining interchangeable humanoids and animations in standard VRML 2.0 without extensions. • Animations include limb movements, facial expressions and lip synchronisation with sound. • Our goal is to allow people to author humanoids and animations independently.
Standard Human Hierarchies
• H-Anim – Standard link/joint hierarchy with limits and constraints – Based on anotomical references
H-anim Examples • Nancy • Baxter • Dilbert
MPEG-4 • The MPEG-4 standard, initiated in 1995, aims at proposing tools for efficient coding of multimedia scenes. • efficient coding of diverse kind of data : – – – – –
Video Objects StillTexture Objects Face Objects Body Objects Mesh Objects
MPEG-4 and VRML
Body Animation in MPEG-4
• Work of MPEG-4 systems group was inspired and based on VRML. • MPEG-4 = VRML + extensions.
Body Animation in MPEG-4 • BAP (Body Animation Parameter) contains 296 parameters describing the topology of the skeleton. – Interoperates with the work of the H-Anim group
• The BDP set defines the set of parameters to transform the default body to a customized body optionally with its body surface, body dimensions, and texture.
Take Home Message • There are standards for human body hierarchies • Any others? – In the game word perhaps?
Next time • Character Animation – Levels of Control – Systems – Motion Capture