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 sequence of pose m = ( q 1 , · · · q T )
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: k ( q i � q j k 2 ✦ Parameters have different overall effects on the character ✦ Velocity: k ˙ q i � ˙ q j k 2 ✦ Global position and orientation: ( x 0 , R 0 )
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: X S k : w k S k k =0 ✦ Shapes are independent of the skeletal motion ✦ Interpolated shapes might be distorted
SSD (Skinning) ✦ A vertex on the deforming surface of an articulated object lies in the subspace defined by the rigid transformations of that point X p = ¯ w i C i ( p ) p
Skin Collapsing ✦ The vertex position in the mesh deformed by linear blend skinning (SSD) is computed as: n ! n X X ¯ p = w i C i ( p ) p = w i C i ( p ) p i =1 i =1
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 rigid movement with skeleton deviation for this pose p + δ ( q ) ✦ Interpolate deformation for each vertex based on the current skeleton pose ✦ Adjust interpolated deformation if needed
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
Recommend
More recommend