0% found this document useful (0 votes)
10 views75 pages

9ab6e7460a5b93d6f97b08f95de23ebc_MIT6_837F12_Lec06

The document provides an overview of computer animation techniques, focusing on traditional animation principles, types of animation such as keyframing, procedural, and physically-based methods, and character animation using skinning and enveloping. It discusses the importance of animation controls, the process of rigging, and the use of vertex weights in skinning characters. Additionally, it highlights motion capture technology and the concept of skeletal subspace deformation for realistic character movement.

Uploaded by

durgasharma9097
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views75 pages

9ab6e7460a5b93d6f97b08f95de23ebc_MIT6_837F12_Lec06

The document provides an overview of computer animation techniques, focusing on traditional animation principles, types of animation such as keyframing, procedural, and physically-based methods, and character animation using skinning and enveloping. It discusses the importance of animation controls, the process of rigging, and the use of vertex weights in skinning characters. Additionally, it highlights motion capture technology and the concept of skeletal subspace deformation for realistic character movement.

Uploaded by

durgasharma9097
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 75

MIT EECS 6.

837 Computer Graphics

Basics of Computer Animation


Skinning/Enveloping

Many slides courtesy of Jovan


Popovic, Ronen Barzel, and
Jaakko Lehtinen
Courtesy of Blender Foundation. License CC-BY. This content is excluded from our Creative
Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
1
6.837 Matusik
Traditional Animation
• Draw each frame by hand
– great control, but tedious
• Reduce burden with cel animation
– Layer, keyframe, inbetween, …
– Example: Cel panoramas (Disney’s Image courtesy of Garrett Albright on Wikimedia
Commons. License: CC-BY-SA. This content is
excluded from our Creative Commons license.

Pinocchio) For more information, see


http://ocw.mit.edu/help/faq-fair-use/.

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
2
From ACM © 1997 “Multiperspective panoramas for cel animation.”
Traditional Animation Principles
• The in-betweening, was once a job for apprentice animators.
Splines accomplish these tasks automatically. However, the
animator still has to draw the keyframes. This is an art form and
precisely why the experienced animators were spared the in-
betweening work even before automatic techniques.
• The classical paper on animation by John Lasseter from Pixar
surveys some the standard animation techniques:
• "Principles of Traditional Animation Applied to 3D Computer
Graphics,“ SIGGRAPH'87, pp. 35-44.
• See also The Illusion of Life: Disney Animation, by Frank
Thomas and Ollie Johnston.

3
Example: Squash and Stretch
• Squash: flatten an object or character by pressure or by
its own power

• Stretch: used to increase the sense of speed and


emphasize the squash by contrast

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
Image adapted from: Lasseter, John. "Principles of Traditional Animation applied to 3D Computer Animation." ACM SIGGRAPH Computer Graphics 21, no. 4 (July 1987): 35-44.

4
Example: Timing
• Timing affects weight:
– Light object move quickly
– Heavier objects move slower

© ACM. All rights reserved. This content is excluded from


our Creative Commons license. For more information, see
http://ocw.mit.edu/help/faq-fair-use/.

• Timing completely changes the interpretation of the


motion.

5
Computer Animation
• How do we describe and generate motion of
objects in the scene?

© ACM. All rights reserved. This content is excluded from


our Creative Commons license. For more information, see

• Two very different contexts: http://ocw.mit.edu/help/faq-fair-use/.

– Production (offline)
• Can be hardcoded, entire sequence know beforehand
– Interactive (e.g. games, simulators)
• Needs to react to user interaction, sequence not known
6
Plan
• Types of Animation (overview)
– Keyframing
– Procedural
– Physically-based

• Animation Controls

• Character Animation
using skinning/enveloping
CERN 7
Types of Animation: Keyframing
• Specify scene only at
some instants of time
• Generate in-betweens automatically

© source unknown. All rights reserved. This content is excluded from our Creative
Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
8
Types of Animation: Procedural
• Describes the motion algorithmically
• Express animation as a function of
small number of parameters
• Example
– a clock/watch with second, minute and hour hands
– express the clock motions in terms of
a “seconds” variable
• the clock is animated by
changing this variable
• Another example: Grass in the wind,
tree canopies, etc. 9
Types of Animation: Physically-Based

• Assign physical properties to objects


– Masses, forces, etc.
• Also procedural forces (like wind)
• Simulate physics by solving equations of motion
– Rigid bodies, fluids, plastic deformation, etc.
• Realistic but difficult to control

v0
m g
10
Another Example
• Physically-Based Character Animation
– Specify keyframes, solve for physically valid motion
that interpolates them by “spacetime optimization”

• Anthony C. Fang and Nancy S. Pollard, 2003. Efficient


Synthesis of Physically Valid Human Motion, ACM
Transactions on Graphics 22(3) 417-426, Proc. SIGGRAPH
2003.http://graphics.cs.cmu.edu/nsp/projects/spacetime/space
time.html

11
Plan
• Types of Animation (overview)
– Keyframing
– Procedural
– Physically-based

• Animation Controls

• Character Animation
using skinning/enveloping
CERN 12
Because we are Lazy...
• Animation is (usually) specified using some form
of low-dimensional controls as opposed to
remodeling the actual geometry for each frame.

Can you think of examples?

13
Because we are Lazy...
• Animation is (usually) specified using some form
of low-dimensional controls as opposed to
remodeling the actual geometry for each frame.
– Example: The joint angles (bone transformations) in a
hierarchical character determine the pose
– Example: A rigid motion is represented by
changing the object-to-world transformation
(rotation and translation).

Courtesy Robert C. Duvall, Duke


University. License CC BY-NC-SA.

14
Because we are Lazy...
• Animation is (usually) specified using some form
of low-dimensional controls as opposed to
remodeling the actual geometry for each frame.
– Example: The joint angles (bone transformations) in a
hierarchical character determine the pose
– Example: A rigid motion is represented by
changing the object-to-world transformation
(rotation and translation).
“Blendshapes” are
keyframes that are just
snapshots of the Courtesy Robert C. Duvall, Duke
University. License CC BY-NC-SA.

entire geometry. 15
Example of Higher-Level Controls
• Ken Perlin’s facial expression
applet http://mrl.nyu.edu/~perlin/experiments/facedemo/

• Lower-level controls are


mapped to semantically
meaningful higher-level ones
– “Frown/smile” etc.

© Ken Perlin. All rights reserved. This content is excluded from


our Creative Commons license. For more information, see
http://ocw.mit.edu/help/faq-fair-use/. 16
Building 3D models and their animation controls is
a major component of every animation pipeline.

Building the controls is called “rigging”.

17
Articulated Character Models
• Forward kinematics
describes the positions of the
body parts as a function of
joint angles
– Body parts are
usually called “bones”
– Angles are the low-
dimensional control.
• Inverse kinematics specifies
constraint locations for bones
and solves for joint angles. Courtesy Robert C. Duvall, Duke University. License CC BY-NC-SA.
18
Skinning Characters
• Embed a skeleton into a
detailed character mesh

Courtesy of Blender Foundation. License CC-BY. This content


is excluded from our Creative Commons license. For more
information, see http://ocw.mit.edu/help/faq-fair-use. 19
Skinning Characters
• Embed a skeleton into a
detailed character mesh
• Animate “bones”
– Change the joint
angles over time
– Keyframing, procedural, etc.
• Bind skin vertices to bones
– Animate skeleton, skin will
move with it
Courtesy of Blender Foundation. License CC-BY. This content
is excluded from our Creative Commons license. For more
information, see http://ocw.mit.edu/help/faq-fair-use.

Courtesy Robert C. Duvall, Duke University. License CC BY-NC-SA. 20


Motion Capture
• Usually uses optical markers and multiple
high-speed cameras
• Triangulate to get marker 3D position
– (Again, structure from motion and projective
geometry, i.e., homogeneous coordinates)
• Captures style, subtle nuances and realism
• But need ability to record someone

Courtesy Robert C. Duvall, Duke University. License CC BY-NC-SA.


21
Motion Capture
• Motion capture records
3D marker positions
– But character is
controlled using
animation controls
that affect bone
transformations!
• Marker positions must be
This image is in the public domain. Source: Wikimedia Commons.

translated into character


controls (“retargeting”)
22
Questions?

23
Plan
• Types of Animation (overview)
– Keyframing
– Procedural
– Physically-based

• Animation Controls

• Character Animation
using skinning/enveloping
CERN 24
Skinning/Enveloping

Courtesy of Blender Foundation. License CC-BY. This content is excluded from our Creative
Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use.
25 25
Skinning
• We know how to animate a
bone hierarchy
– Change the joint angles, i.e.,
bone transformations, over
time (keyframing)

Courtesy of Blender Foundation. License CC-BY. This content


is excluded from our Creative Commons license. For more
information, see http://ocw.mit.edu/help/faq-fair-use.

Courtesy Robert C. Duvall, Duke University. License CC BY-NC-SA.


26
Skinning
• We know how to animate a
bone hierarchy
– Change the joint angles, i.e.,
bone transformations, over
time (keyframing)
• Embed a skeleton into a
detailed character mesh
• Bind skin vertices to bones
– Animate skeleton, skin will
move with it Courtesy of Blender Foundation. License CC-BY. This content is
excluded from our Creative Commons license. For more

– But how?
information, see http://ocw.mit.edu/help/faq-fair-use.

27
Skinning/Enveloping
• Need to infer how skin deforms
from bone transformations.
• Most popular technique:
Skeletal Subspace Deformation
(SSD), or simply Skinning
– Other aliases
• vertex blending
• matrix palette skinning
• linear blend skinning

This image is in the public domain. Source: Wikimedia Commons.

28
SSD / Skinning
• Each bone has a deformation of
the space around it (rotation, translation)
– What if we attach each
vertex of the skin to a single bone?
• Skin will be rigid, except at joints where it will
stretch badly
– Let’s attach a vertex to many bones at once!
• In the middle of a limb,
the skin points follow the bone rotation (near-
rigidly)
Courtesy Robert C. Duvall, Duke
University. License CC BY-NC-SA.

• At a joint, skin is deformed according to a


“weighted combination” of the bones
29
Example

Colored
triangles are
attached to 1
bone
Black triangles
are attached to
more than 1

Note how they


are near joints

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

James & Twigg, Skinning Mesh Animations, 2005, used with permission from ACM, Inc . 30
Example

Colored
triangles are
attached to 1
bone
Black triangles
are attached to
more than 1

Note how they


are near joints

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

James & Twigg, Skinning Mesh Animations. 31


Vertex Weights
• We’ll assign a weight wij
for each vertex pi for each bone Bj.
– “How much vertex i should move with bone j”
– wij = 1 means pi is rigidly attached to bone j.

32
Vertex Weights
• We’ll assign a weight wij
for each vertex pi for each bone Bj.
– “How much vertex i should move with bone j”
– wij = 1 means pi is rigidly attached to bone j.

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

From Automatic Rigging and Animation of 3D Characters. 33


Vertex Weights
• We’ll assign a weight wij
for each vertex pi for each bone Bj.
– “How much vertex i should move with bone j”
– wij = 1 means pi is rigidly attached to bone j.
• Weight properties
– Usually want weights to be non-negative

34
Vertex Weights
• We’ll assign a weight wij
for each vertex pi for each bone Bj.
– “How much vertex i should move with bone j”
– wij = 1 means pi is rigidly attached to bone j.
• Weight properties
– Usually want weights to be non-negative
– Also, want the sum over all bones
to be 1 for each vertex

35
Vertex Weights cont’d
• We’ll assign a weight wij
for each vertex pi for each bone Bj.
– “How much vertex i should move with bone j”
– wij = 1 means pi is rigidly attached to bone j.
• We’ll limit the number of bones N that can
influence a single vertex
– N=4 bones/vertex is a usual choice
– Why?

36
Vertex Weights cont’d
• We’ll assign a weight wij
for each vertex pi for each bone Bj.
– “How much vertex i should move with bone j”
– wij = 1 means pi is rigidly attached to bone j.
• We’ll limit the number of bones N that can
influence a single vertex
– N=4 bones/vertex is a usual choice
– Why? You most often don’t need very many.
– Also, storage space is an issue.
– In practice, we’ll store N (bone index j, weight wij)
pairs per vertex. 37
How to compute
vertex positions?

38
Linear Blend Skinning
• Basic Idea 1: Transform each vertex pi with each
bone as if it was tied to it rigidly.

39
Linear Blend Skinning
• Basic Idea 1: Transform each vertex pi with each
bone as if it was tied to it rigidly.
• Basic Idea 2: Then blend the results using the
weights.

40
Computing Vertex Positions
• Basic Idea 1: Transform each vertex pi with each
bone as if it was tied to it rigidly.
• Basic Idea 2: Then blend the results using the
weights.

“ ”
p’ij is the vertex i
transformed using
bone j.
Tj is the current
transformation of bone
j.
p’i is the new skinned
position of vertex i.
41
Computing Vertex Positions
Rest (“bind”) pose
• Vertex p0 has
weights
w01=0.5,
Bone 1: T1 Bone 2: T2
w02=0.5
p0
“Skin”

42
Computing Vertex Positions
Rest (“bind”) pose
• Vertex p0 has
weights
w01=0.5,
Bone 1: T1 Bone 2: T2
w02=0.5
After rotations
p0
“Skin”
• Transform by
T’1 and T’2
yields p’01,
p’02

p’01 p’02
43
Computing Vertex Positions
• Vertex p0 has
Rest (“bind”) pose
weights
w01=0.5,
Bone 1: T1 Bone 2: T2
w02=0.5
p0 • Transform by
After rotations “Skin” T’1 and T’2
yields p’01, p’02
• the new position
is p’0=
0.5*p’1 +
0.5*p’2
p’01p’0 p’02
44
Computing Vertex Positions
• Vertex p0 has
Rest (“bind”) pose
weights
w01=0.5,
Bone 1: T1 Bone 2: T2
w02=0.5
p0 • Transform by
After rotations “Skin” T’1 and T’2
yields p’01, p’02
• the new position
is p’0=
0.5*p’1 +
“Skin” 0.5*p’2
p’01p’0 p’02
45
SSD is Not Perfect

q0

p0
After rotations

46
SSD is Not Perfect Questions?

q0

p0
After rotations

47
Bind Pose
• We are given a skeleton and a
skin mesh in a default pose
– Called “bind pose”
– Undeformed vertices pi are
given in the object space of
the skin
• a “global” coordinate system,
no hierarchy

GNU Free Documentation License. Some rights reserved. This content is


excluded from our Creative Commons license. For more information, see
http://ocw.mit.edu/help/faq-fair-use/.

48
Bind Pose
• We are given a skeleton and a
skin mesh in a default pose
– Called “bind pose”
– Undeformed vertices pi are
given in the object space of
the skin
• Previously we conveniently
forgot that in order for
p’ij = Tj pi to make sense,
coordinate systems must GNU Free Documentation License. Some rights reserved. This content is
excluded from our Creative Commons license. For more information, see

match up.
http://ocw.mit.edu/help/faq-fair-use/.

49
Coordinate Systems
• Undeformed vertices pi are given
in the object space of the skin
• Tj is in local bone coordinate system
– according to skeleton
hierarchy

GNU Free Documentation License. Some rights reserved. This content is


excluded from our Creative Commons license. For more information, see
http://ocw.mit.edu/help/faq-fair-use/.
50
Bind Pose cont’d
• In the rigging phase, we
line the skeleton up with the
undeformed skin.
– This gives some “rest pose”
bone transformations Bj
from local bone coordinates to global
– Bj concatenates all hierarchy matrices
from node j up to the root

51
Bind Pose cont’d
• When we animate the model,
the bone transformations
Tj change.

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

52
Bind Pose cont’d
• When we animate the model,
the bone transformations
Tj change.
– What is Tj? It maps from the
local coordinate system of
bone j to world space.
– again, concatenates hierarchy matrices

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
53
Bind Pose cont’d
• When we animate the model,
the bone transformations
Tj change.
– What is Tj? It maps from the
local coordinate system of
bone j to world space. © ACM. All rights reserved. This content is excluded from
our Creative Commons license. For more information, see
http://ocw.mit.edu/help/faq-fair-use/.

• To be able to deform pi according


to Tj, we must first express pi in the local
coordinate system of bone j.
– This is where the bind pose
bone transformations Bj come in.
54
Bind Pose cont’d
• To be able to deform pi
according to Tj, we must first
express pi in the local
coordinate system of bone j.
– This is where the bind pose
bone transformations Bj come
in.

This maps pi from bind pose to the local


coordinate system of bone j using B-1j, and
then to world space using Tj.
55
Bind Pose cont’d

This maps pi from bind pose to the local


coordinate system of bone j using B-1j, and
then to world space using Tj.

What is Tj B-1j? It is the relative


change between the bone
transformations between the current
and the bind pose.
56
Bind Pose cont’d What is the
transformation
when the model
is still in bind
pose?

This maps pi from bind pose to the local


coordinate system of bone j using B-1j, and
then to world space using Tj.

What is Tj B-1j? It is the relative


change between the bone
transformations between the current
and the bind pose.
57
Bind Pose cont’d What is the
transformation
when the model
is still in bind
pose?
The
identity!
This maps pi from bind pose to the local
coordinate system of bone j using B-1j, and
then to world space using Tj.

What is Tj B-1j? It is the relative


change between the bone
transformations between the current
and the bind pose.
58
Bind Pose cont’d What is the
transformation
when the model
is still in bind
pose?
The
identity!
This maps pi from bind pose to the local
coordinate system of bone j using B-1j, and
then to world space using Tj.

What is Tj B-1j? It is the relative


change between the bone
transformations between the current
and the bind pose.
Questions? 59
Bind Pose & Weights
• We then figure out the vertex
weights wij.
– How? Usually paint by hand!
– We’ll look at much cooler
methods in a while.

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

From Automatic Rigging and Animation of 3D Characters. 60


Skinning Pseudocode
• Do the usual forward kinematics
– get a matrix Tj(t) per bone
(full transformation from local to world)
• For each skin vertex pi

61
Skinning Pseudocode
• Do the usual forward kinematics
– get a matrix Tj(t) per bone
(full transformation from local to world)
• For each skin vertex pi

Do you remember how to treat normals?

62
Skinning Pseudocode
• Do the usual forward kinematics
– get a matrix Tj(t) per bone
(full transformation from local to world)
• For each skin vertex pi

• Inverse transpose for normals!

63
Skinning Pseudocode
• Do the usual forward kinematics
• For each skin vertex pi

• Note that the weights & bind pose vertices are


constant over time
– Only matrices change
(small number of them, one per bone)
– This enables implementation on GPU “vertex
shaders”
(little information to update for each frame) 64
Hmmh...
• This is what we do to get deformed positions

65
Hmmh...
• This is what we do to get deformed positions

• But wait...

66
Hmmh...
• This is what we do to get deformed positions

• But wait...

• Rotations are not handled correctly (!!!)


67
Indeed... Limitations
• Rotations really need to be combined differently
(quaternions!)

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

• From: Pose Space Deformation: A Unified Approach to Shape Interpolation and Skeleton-Driven
Deformation, J. P. Lewis, Matt Cordner, Nickson Fong
68
Real-time enveloping with rotational regression
Wang, Pulli, Popovic
We learn a fast model from exported examples.

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

69
Figuring out the Weights
• Usual approach: Paint them on the skin.
• Can also find them by optimization from example
poses and deformed skins.
– Wang & Phillips, SCA 2002

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

From Automatic Rigging and Animation of 3D Characters. 70


Super Cool: Automatic Rigging
• When you just have some reference skeleton
animation (perhaps from motion capture) and a
skin mesh, figure out the bone transformations
and vertex weights!
• Ilya Baran, Jovan Popovic: Automatic Rigging
and Animation of 3D Characters,
SIGGRAPH 2007

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/. 71
Super Cool: Automatic Rigging

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

From Automatic Rigging and Animation


of 3D Characters by Baran and Popovic,
used with permission from ACM, Inc.
72
The Other Direction

© ACM. All rights reserved. This content is excluded from our Creative Commons
license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.

From Skinning Mesh Animations.


73
That’s All for Today!
• Further reading
– http://www.okino.com/
conv/skinning.htm

• Take a look at any


video game –
basically all the
characters are
animated using
SSD/skinning.
MIT EECS 6.837 - Duand 74
MIT OpenCourseWare
http://ocw.mit.edu

6.837 Computer Graphics


Fall 2012

For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

75

You might also like