150 likes | 179 Views
Motion Graphs. Davey Krill May 3, 2006. Overview: Project 2. MotionTestBed Framework Motion Graph for 2 motion clips Finding candidate transitions Selecting transition points Creating Transitions (linear blending) Goal / Testing / Results Project 3. Motion Framework.
E N D
Motion Graphs Davey Krill May 3, 2006
Overview: Project 2 • MotionTestBed Framework • Motion Graph for 2 motion clips • Finding candidate transitions • Selecting transition points • Creating Transitions (linear blending) • Goal / Testing / Results • Project 3
Motion Framework • Skeleton contains all information about the motion clip • Frames indicate the orientation of joints and root position at that time • Joints are hierarchically related, defining their position relative to their parent joint and globally with the root joint • Poses can be adjusted with rigid transformations [quaternion rotation, (x,y,z) translation]
P2: Find Candidate Transitions • Goal: Find the distance between two frames • Method: Compute the minimal sum of squared distances between corresponding points within the point clouds of each frame pose • Compute this distance for every pair of frames in the motion set
P2: Select Transition Points • The 2D distance map can have several local minima • Need to select only those below a certain threshold • Good transitions vs. high graph connectivity trade-off • Finding ways to determine this threshold is one focus of Project 3 Sampled 2D error function (Local minima are red dots)
P2: Creating Transitions • Align the second motion with the appropriate 2D transformation (the minimal Θ, x, z). • Create the transition frames between the ithframe of motion 1 and jth frame of motion 2. This is done by linearly blending the ith to ith+k-1 frames with the jth-k+1 to jth frames. • Use spherical linear interpolation on joint rotations, and linearly interpolate root positions
P2: Testing and Results • Goal of P2: Find transition points between two motions and generate linearly blended transitions at those points (i.e. create a 2-motion graph). • From this 2-motion graph, generate a new motion clip by manually selecting a single transition point. • Distance correctness: 2 identical motions, zero-diagonal on 2D distance function • Example: two kicking motions
P2: Two Kicking Motions • Empirically, any transition with a distance error <6.00 generated a “good” motion clip • Linear blending has been omitted to better illustrate the transition points • Clip72-47.bvh • Distance error of 5.11 • Clip86-70.bvh • Distance error of 4.87 • Clip62-102.bvh • Distance error of 31.66 • Example of how linear blending wouldn’t help since the direction of momentum is different • Which brings us to…
Project 3 • Full motion graph • Handle arbitrary number of motions • Pruning the graph • Testing • Transition point metrics • Beyond point cloud matching • Evaluate physical state, momentum, footskate
P3: Full Motion Graph • Nodes are choice points connecting clips of motion • Arcs between nodes are clips of motion • Expands on 2-motion graph. • Each new motion added to the graph searches for transition points with the rest of the nodes, and creates new arcs appropriately.
P3: Pruning the Graph • Goal: Prune the graph such that it is possible to generate arbitrarily long streams of motion. • Remove any nodes with few or no outgoing edges. • How to handle transition points that are “close neighbors” yet still distinct local minima. • Example: (78, 57, 5.48) and (76, 51, 6.83) are very close transitions. How should these be handled? Eliminate one? Let both persist?
P3: Testing • Problem of generating arbitrary motion clips from the motion graph not generally addressed. • Testing by having advance knowledge of where the good transitions are and manually walking the graph. • In progress…
P3: Transition point metrics • Problem: Determining what local minima threshold to use when selecting transition points is somewhat of a hack. • As was seen from the earlier example, there are cases when using the point cloud distance is not a good enough metric for determining transition points. • Need to consider momentum, physical state (imagine a person jumping up and down) • Adaptive thresholds for: • Slow motions vs. fast motions • Familiar (walking) motions vs. strange motions • Context of motion determines whether you want a low or high threshold value
Work in Progress • Generate examples of an arbitrarily long motion graph walk • Develop better graph pruning • Evaluating threshold-finding techniques • Spacing out transition points • Adaptive threshold model