Data-Driven Animation Full-body animation Skin deformation Facial - - PowerPoint PPT Presentation
Data-Driven Animation Full-body animation Skin deformation Facial - - PowerPoint PPT Presentation
Data-Driven Animation Full-body animation Skin deformation Facial animation Motion Representation A pose is represented by root translation, root orientation, and joint angles q = ( q 1 , , q n ) Motion consists of a
✦ Full-body animation ✦ Skin deformation ✦ Facial animation
Motion Representation
✦ A pose is represented by root translation,
root orientation, and joint angles
✦ Motion consists of a sequence of pose
q = (q1, · · · , qn) m = (q1, · · · qT )
Motion Graphs
✦ Each edge corresponds to a motion clip ✦ Each node corresponds to a choice point connecting motion clips
Challenges
✦ How to identify transitions? ✦ How to create blends? ✦ How to fix the artifacts due to blending? ✦ What if the graph is poorly connected?
Similarity
✦ Transition is allowed when two motions are very similar ✦ Naive similarity metric: ✦ Parameters have different overall effects on the character ✦ Velocity: ✦ Global position and orientation:
k(qi qjk2 k ˙ qi ˙ qjk2 (x0, R0)
Blending
✦ Align two similar
segments in 2D
✦ Linearly interpolate the
root and use SLERP to interpolate joint angles
✦ Blend weight needs not to
be a linear function of time
Foot Skating
✦ Blending can cause fixed contact points to slide (e.g. foot sliding on
the floor)
✦ Can be fixed by constrained-based motion editing techniques such
as IK
✦ But how do we set positional constraints?
Graph Pruning
✦ Issues with connectivity only based on similarity: ✦ dead ends ✦ small loops ✦ logical discontinuity
Graph Pruning
✦ Assign labels to all the motion clips in the graph ✦ For each label, collect its motion clips and build a strong connected
component (SCC)
✦ Discard all the edges that do not belong to any SCC
✦ Full-body animation ✦ Skin deformation ✦ Facial animation
What is skinning?
✦ Skinning is the process of creating association between the
character’s skeleton (articulated rigid bodies) and its skin (meshes).
Deformation Algorithms
✦ Should handle the general problem of skeleton influenced
deformation rather than treating each area of anatomy as a special case
✦ Should allow direct manipulation of the desired deformations ✦ Common practice: shape interpolation, skeleton subspace
deformation (SSD)
✦ Advanced methods: pose space deformation (PSD), data-driven
method, dual quaternion, etc
✦ Shape interpolation ✦ Skeletal subspace deformation (skinning) ✦ Pose space deformation ✦ Data-driven deformation ✦ Dual quaternion
Shape Interpolation
✦ Surface control vertices are a linear combination of the
corresponding vertices on key shapes:
✦ Shapes are independent of the skeletal motion ✦ Interpolated shapes might be distorted
Sk : X
k=0
wkSk
SSD (Skinning)
✦ A vertex on the deforming surface of an articulated object lies in the
subspace defined by the rigid transformations of that point ¯ p = X wiCi(p)p
Skin Collapsing
✦ The vertex position in the mesh deformed by linear blend skinning
(SSD) is computed as: ¯ p =
n
X
i=1
wiCi(p)p = n X
i=1
wiCi(p) ! p
Dual Quaternion Skinning
✦ Dual quaternion skinning solves the problem of linear skinning
methods with minimal additional cost.
✦ No skin collapsing effects exhibited by linear skinning will manifest
themselves.
✦ Maya uses dual quaternion skinning now.
Blend Dual Quaternions
DLB always returns a rigid transformation, because DLB computes a unit dual quaternion
Pose Space Deformation
✦ The artist sculpts a deformation for a given pose and assigns a
falloff function for interpolation
✦ Define deformation function at sculpted poses ✦ Interpolate deformation for each vertex based on the current
skeleton pose
✦ Adjust interpolated deformation if needed
p + δ(q)
rigid movement with skeleton deviation for this pose
PSD vs SSD
Data-driven Deformation
✦ Use a mocap system and 350 markers
to capture body deformation
✦ The skin motion can be computed by
segmenting the markers into rigid motion and a residual deformation
Range Scans
✦ Example data consists of range scans of a human
body in a variety of poses
✦ Construct a mutually consistent parameterization of
all the scans using a posable subdivision surface template
✦ The detail deformations are represented as
displacements from this surface