Title: CPSC 641 Computer Graphics: Animation with Motion Capture
1CPSC 641 Computer Graphics Animation with
Motion Capture
2Data Process
Complete 3D marker trajectories (.c3d file)
3D marker positions (.c3d file)
Fill in missing data
Filter mocap data
Inverse Kinematics
How to represent motion data in joint angle space?
Joint angle data (.amc file)
3How to represent human motions?
4Human motion representation
A sequence of poses q1,q2,qT Each pose is
represented as a high-dimensional vector qt
Rn
Motion trajectories
Pose qt
Motion q1,qT
5How to represent human motions?
6How to represent human motions?
- The body proportion and size of characters
- the joint angle values across the entire
sequence
7Motion Capture Data Files
- Each sequence of human motion data contains two
files - Skeleton file (.asf) Specify the skeleton model
of a character - Motion data file (.amc) Specify the joint angle
values over the frame/time - Both files are generated by Vicon software
8Human skeletal file
Described in a default pose
9Human skeletal model
This is still a tree!
10Human skeletal model
- How to describe the skeletal model?
- What should you know about each bone?
This is still a tree!
11Human skeletal file (.asf)
- individual bone information
- - length of the bone
- - direction of the bone
- - local coordinate frame
- - number of Dofs
- - joint limits
- bone hierarchy/connections
12Individual bone information
- begin id bone_id                 / Unique
id for each bone /name bone_name       /
Unique name for each bone /direction dX dY
dZÂ Â Â / Vector describing direction of the
bone in world / coor. system length
7.01722Â Â Â Â Â Â Â Â Â Â / Length of the bone/
axis 0 0 20 XYZÂ Â Â Â Â Â Â Â / Rotation of local
coordinate system for                           Â
       this bone relative to the world
coordinate                                  Â
system. In .AMC file the rotation angles
                                   for this
bone for each time frame will be
                                  defined
relative to this local coordinate
                                   system/
dof rx ry rz               / Degrees of
freedom for this bone. limits (-160.0 20.0)
/ joint limits/Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
13Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
14Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
15Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
16Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
yk
xk
zk
Euler angle representation
RkRz(?)Ry(ß)Rx(a)
17Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
yk
xk
zk
- The number of dof for this joint - The minimal
and maximum joint angle for each dof
18Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
yk
1-dof joint
2-dof joint
3-dof joint
19Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
yk
yk1
Xk1
zk1
begin id 3Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
ltibia       direction 0.34 -0.93 0  Â
length 7.2138Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx           limits
(-10.0 170.0) end
20Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
yk
yk1
Xk1
zk1
begin id 3Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
ltibia       direction 0.34 -0.93 0  Â
length 7.2138Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx           limits
(-10.0 170.0) end
What do we miss?
21Individual bone information
begin id 2Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
lfemur       direction 0.34 -0.93 0  Â
length 7.01722Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx ry rz              Â
limits (-160.0 20.0) Â Â Â Â Â Â Â Â Â Â Â (-70.0 70.0)
           (-60.0 70.0) end
yk
yk1
Xk1
zk1
begin id 3Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â name
ltibia       direction 0.34 -0.93 0  Â
length 7.2138Â Â Â Â Â Â Â Â Â Â axis 0 0 20
XYZ        dof rx           limits
(-10.0 170.0) end
What do we miss? - global position - global
orientation
22Root representation
- root
- order TX TY TZ RX RY RZ
- axis XYZ
- position 0 0 0
- orientation 0 0 0
23Root representation
- root
- order TX TY TZ RX RY RZ
- axis XYZ
- position 0 0 0
- orientation 0 0 0
How to compute the coordinate of a joint in the
world coordinate frame?
24Root representation
- root
- order TX TY TZ RX RY RZ
- axis XYZ
- position 0 0 0
- orientation 0 0 0
How to compute the coordinate of a joint in the
world coordinate frame?
25Hierarchy/Bone Connections
hierarchy begin root lhipjoint rhipjoint
lowerback lhipjoint lfemur lfemur ltibia
ltibia lfoot lfoot ltoes rhipjoint
rfemur rfemur rtibia rtibia rfoot
rfoot rtoes lowerback upperback upperback
thorax thorax lowerneck lclavicle rclavicle
end
26Hierarchy/Bone Connections
hierarchy begin root lhipjoint rhipjoint
lowerback lhipjoint lfemur lfemur ltibia
ltibia lfoot lfoot ltoes rhipjoint
rfemur rfemur rtibia rtibia rfoot
rfoot rtoes lowerback upperback upperback
thorax thorax lowerneck lclavicle rclavicle
end
lowerback
root
rhipjoint
27Hierarchy/Bone Connections
hierarchy begin root lhipjoint rhipjoint
lowerback lhipjoint lfemur lfemur ltibia
ltibia lfoot lfoot ltoes rhipjoint
rfemur rfemur rtibia rtibia rfoot
rfoot rtoes lowerback upperback upperback
thorax thorax lowerneck lclavicle rclavicle
end
lowerback
root
rhipjoint
lhipjoint
lfemur
28Hierarchy/Bone Connections
hierarchy begin root lhipjoint rhipjoint
lowerback lhipjoint lfemur lfemur ltibia
ltibia lfoot lfoot ltoes rhipjoint
rfemur rfemur rtibia rtibia rfoot
rfoot rtoes lowerback upperback upperback
thorax thorax lowerneck lclavicle rclavicle
end
lowerback
root
rhipjoint
lhipjoint
lfemur
ltibia
29Hierarchy/Bone Connections
hierarchy begin root lhipjoint rhipjoint
lowerback lhipjoint lfemur lfemur ltibia
ltibia lfoot lfoot ltoes rhipjoint
rfemur rfemur rtibia rtibia rfoot
rfoot rtoes lowerback upperback upperback
thorax thorax lowerneck lclavicle rclavicle
end
lowerback
root
rhipjoint
lhipjoint
lfemur
ltibia
lfoot
30Hierarchy/Bone Connections
hierarchy begin root lhipjoint rhipjoint
lowerback lhipjoint lfemur lfemur ltibia
ltibia lfoot lfoot ltoes rhipjoint
rfemur rfemur rtibia rtibia rfoot
rfoot rtoes lowerback upperback upperback
thorax thorax lowerneck lclavicle rclavicle
end
lowerback
root
rhipjoint
lhipjoint
lfemur
ltibia
lfoot
ltoe
31What can we do with .asf file?
- We can visualize the default pose
- We can compute various transforms in the default
pose - - between world coordinate frame and local
coordinate - - between parent coordinate frame and child
coordinate frame -
32From local coordinate to world coordinate
yk
33From local coordinate to world coordinate
?
?
yk
34From local coordinate to world coordinate
yk
35From local coordinate to world coordinate
yk
36From child to parent node
- How to Compute the transformation Tkk-1 from a
child local coordinate frame to its parent local
coordinate frame
Tkk-1
x
37Bone transform
parent
Tkk-1?
world
child
38Bone transform
parent
Tkk-1?
world
child
39Bone transform
parent
Tkk-1?
world
child
40Forward kinematics
- How to compute the coordinate of a joint in the
world coordinate frame?
41Forward kinematics
- How to compute the coordinate of a joint in the
world coordinate frame?
42Forward kinematics
- How to compute the coordinate of a joint in the
world coordinate frame?
43Forward kinematics
- How to compute the coordinate of a joint in the
world coordinate frame?
We need to consider joint angle values!
44Motion data file (.amc)
- i
// frame
number - root 2.36756 16.4521 12.3335 -165.118 31.188
-179.889 // root position and orientation - lowerback -17.2981 -0.243065 -1.41128
// joint angles for lowerback joint - upperback 0.421503 -0.161394 2.20925
// joint angles for thorax joint - thorax 10.2185 -0.176777 3.1832
- lowerneck -15.0172 -5.84786 -7.55529
- upperneck 30.0554 -3.19622 -4.68899
- head 12.6247 -2.35554 -0.876544
- rclavicle 4.77083e-014 -3.02153e-014
- rhumerus -23.3927 30.8588 -91.7324
- rradius 108.098
- rwrist -35.4375
- rhand -5.30059 11.2226
- rfingers 7.12502
- rthumb 20.5046 -17.7147
- lclavicle 4.77083e-014 -3.02153e-014
- lhumerus -35.2156 -19.5059 100.612
45Motion data file (.amc)
- i
// frame
number - root 2.36756 16.4521 12.3335 -165.118 31.188
-179.889 // root position and orientation - lowerback -17.2981 -0.243065 -1.41128
// joint angles for lowerback joint - upperback 0.421503 -0.161394 2.20925
// joint angles for thorax joint - thorax 10.2185 -0.176777 3.1832
- lowerneck -15.0172 -5.84786 -7.55529
- upperneck 30.0554 -3.19622 -4.68899
- head 12.6247 -2.35554 -0.876544
- rclavicle 4.77083e-014 -3.02153e-014
- rhumerus -23.3927 30.8588 -91.7324
- rradius 108.098
- rwrist -35.4375
- rhand -5.30059 11.2226
- rfingers 7.12502
- rthumb 20.5046 -17.7147
- lclavicle 4.77083e-014 -3.02153e-014
- lhumerus -35.2156 -19.5059 100.612
- Rotation described in local coordinate frame -
Euler angle representation x-y-z
46Composite 3D Transformation
46
From .asf file
47Composite 3D Transformation
47
From .amc file
48Composite 3D Transformation
48
49Composite 3D Transformation
49
50Composite 3D Transformation
50
51Composite 3D Transformation
51
52Motion capture data
53Some character models
54More complex models
55Mesh skinning
- Skinning is the process of binding a skeleton to
a single mesh object - Skinning deformation is the process of deforming
the mesh as the skeleton is animated or moved.
56Mesh skinning
- Cylinder Being Deformed by Two Bones
57Skinning basics
- For each vertex, compute the position by
58Skinning basics
- For each vertex, compute the position by
v undeformed vertex position
59Skinning basics
- For each vertex, compute the position by
v undeformed vertex position v deformed
vertex position
60Skinning basics
- For each vertex, compute the position by
v undeformed vertex position v deformed
vertex position Mi articulated motion
61Skinning basics
- For each vertex, compute the position by
v undeformed vertex position v deformed
vertex position Mi articulated motion wi
blending weight
62Skinning basics
- For each vertex, compute the position by
From mesh model
v undeformed vertex position v deformed
vertex position Mi articulated motion wi
blending weight
From mocap data
Specified by artists
63The "Bind Pose
64Mesh skinning
- Skeleton causing deformation of a single skin
mesh
65Approach I Motion Graphs
- Key ideas
- Represent human motion is motion graphs, which
represent allowable transitions between poses or
motion segments - Motion graphs transform a motion synthesis
problem into a discrete graph search problem
(i.e., selecting sequences of nodes)
Hui Lou
66Approach II Motion Interpolations
- Key ideas
- - Motion interpolations register a set of
structurally similar but distinctive motion
examples and then parameterize them in an
abstract space defined for motion control. - - Given new values of the control
parameters, the sequences can be smoothly
interpolated
Rhema Linder
67Approach III Statistically Motion Synthesis
Jianyuan Min
- Key ideas
- - Construct statistical motion models from
pre-captured motion data - - Use the models to create an animation that
achieved the goal specified by the user
68Physics-based Animation
- Key ideas
-
- - Model the characters movement with
Newtonian dynamics - - Simulate the physics models to create an
animation that satisfies the users input.
Xiaolin Wei
69Controller-based Approach
- Key ideas
- - design a controller to move a human character
- - Similar to control a humanoid robot, but
needs to generate realistic motion.
Jianyuan Min
70Rigid-body Simulation
James Huang
- Key ideas
- - create realistic interactions between rigid
bodies - - fast and physically correct
- - control of rigid body simulation
71Deformable Objects
- Key-ideas
- - Changes the objects shape or volume while
being acted upon by an external force. - - Simulation and control of deformable
objects -
Billy Clack
72Faces
- Key ideas
- - Capture, Animate and Control realistic
facial expression.
Yen-Lin Chen
Rhema Linder
73Video-based Motion Capture
Xiaolin Wei