Professional Documents
Culture Documents
Facial Muscles
Sadness
Anger
Happiness
Fear
Disgust
Surprise
FACS
FACS
Emotional Axes
Books
Papers
Shape Interpolation
Shape Interpolation
Shape interpolation allows blending between several presculpted expressions to generate a final expression
It is a very popular technique, as it ultimately can give total
control over every vertex if necessary
However, it tends to require a lot of set up time
It goes by many names:
Morphing
Morph Targets
Multi-Target Blending
Vertex Blending
Geometry Interpolation
etc.
Interpolation Targets
v v base i v i
where v i v i v base
Weighted sum:
x wi xi
i 0
Weighted average:
w
i 0
Convex average:
0 wi 1
Additive blend:
x x0 wi xi x0
1 wi x0 wi xi
i 1
i 1
i 1
vbase
v6
6=0.5
14=0.25
Normal Interpolation
n* n base i n i n base
n*
n *
n
v v base i v i v base
n n base i n i n base
The deformed vertex position is a weighted average over all of the joints that the
vertex is attached to. Each attached joint transforms the vertex as if it were rigidly
attached. Then these values are blended using the weights:
v wi v B i Wi
Where:
Note:
n* wi n B i1 Wi
n*
n *
n
Equation Summary
Skeleton
Morphing
L L jnt 1 , 2 ,..., N
W L Wparent
v v base i v i v base
n n base i n i n base
v wi v B i1 Wi
Skinning
n wi n B i Wi
*
n*
n *
n
Target Storage
Target Storage
Target Storage
Colors
Alpha
Texture coordinates
Auxiliary shader properties
Vascular Expression
Wrinkles
Artificial Muscles
Facial Features
Deformable Skin
Hair
Eyes
Articulated Jaw (teeth)
Tongue
Inside of mouth
Facial Modeling
Facial Modeling
Traditional Modeling
Laser Scan
Computer Vision
The modified version of the .skin file with texture information will
have an array of 2D texture coordinates after the array of normals
texcoords [numverts] {
[tx] [ty]
}
Morph File
positions [numverts] {
[index] [x] [y] [z]
}
normals [numverts] {
[index] [x] [y] [z]
}
Note: numverts and the indexing will match (its done this
way to support a possible extension where they wouldnt
match, but dont worry about that)
Rigging
Rigging
Rigging
Rigging
System
Triangles
Renderer
Rigging
System
v, n
2 ... M
L L jnt 1 , 2 ,..., m
M 1
M 2 ... N
v v base i v i v base
n n base i n i n base
W L Wparent
v wi v B i1 Wi
n* wi n B i1 Wi
n*
n *
n
v, n
Layered Approach
Skeleton Kinematics
Shape Interpolation
Smooth Skinning
Equation Summary
Skeleton
Morphing
L L jnt 1 , 2 ,..., N
W L Wparent
v v base i v i v base
n n base i n i n base
v wi v B i1 Wi
Skinning
n wi n B i Wi
*
n*
n *
n
DOF Types
Grouping DOFs
You can have one DOF control several properties. For example:
A DOF that makes all of the joints in a finger flex or extend simultaneously
Elbow DOF that controls both the elbow rotation and a morph target for the
bicep deformation
Head DOF that rotates several vertebra in the neck
Retract DOF that controls a landing gear retraction
DOF to control a highly constrained mechanical system
Smile DOF that controls several individual muscles
For flexibility, its nice to be able to have the master DOF range
from say 01 and allow each slave DOF to scale that number if
necessary
For more flexibility, you can use expressions
Grouping DOFs
DOF Expressions
DOF Mappings
2.
3.
4.
Minimalist Rigging