Motion Graphs

1 / 21

# Motion Graphs - PowerPoint PPT Presentation

Motion Graphs. By Lucas Kovar, Michael Gleicher, and Frederic Pighin Presented by Phil Harton. Overview. What Why Creating Using. What are motion graphs?. Directed graph representing a roadmap of motion data for a character

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Motion Graphs' - kerryn

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Motion Graphs

By Lucas Kovar, Michael Gleicher, and Frederic Pighin

Presented by Phil Harton

Overview
• What
• Why
• Creating
• Using
What are motion graphs?
• Directed graph representing a roadmap of motion data for a character
• Edges are clips of motion, some from the original motion capture, some generated as transitions
• A vertex defines 2 sets of motion clips where motions from one set can flow seamlessly into motions from the other
A simple motion graph

Run2/Jog

Jog

Walk2

Run2

Run2/Run2

Walk2/Walk1

Run1

Walk1/Walk1

Walk1

Jog/Walk1

Original motion data

Walk1

Walk2

Run1

Jog

Run2

Why do we want them?
• To better utilize motion capture data because it’s:
• Difficult to modify
• Time consuming and expensive
• Hard to use in animations without having captured the exact motion desired
Building motion graphs
• Identify transition candidates
• Select transition points
• Eliminate problematic edges
Identify transition candidates
• For each frame A, calculate its distance to each other frame B by basically measuring volume displacement
• Use a weighted point cloud formed over a window of k frames ahead of A and behind B, ideally from the character mesh
• Calculate the minimal weighted sum of squared distances between corresponding points, given that a rigid 2D transformation may be applied to the second point cloud
Select transition points
• The previous step gave us all the local minima of the distance function for each pair of points
• Now we simply define a threshold and cut transition candidates with errors above it
• May be done with or without intervention
• Threshold level depends on type of motion – eg. walking vs. ballet
Create transitions
• For each pair of frames Ai and Bj which fell under the distance error threshold, blend Ai through Ai+k-1 with Bj through Bj-k+1
• Align frames with appropriate rigid 2D transformation
• Use linear interpolation to blend root positions
• Use spherical linear interpolation to blend joint rotations
• Treat constraints as binary flags – frames in first half of transition use A’s constraints, second half use B’s
• Transition tagged with union of A and B’s labels
Create transitions
• Blend weight function
• Root position interpolation
• Joint rotation interpolation
Eliminate problematic edges
• We want to get rid of:
• Dead ends – not part of a cycle
• Sinks – part of one or more cycles but only able to reach a small fraction of the nodes
• Logical discontinuities – eg. boxing motion forced to transition into ballet motion
• Goal is to be able to generate arbitrarily long streams of motion of the same type
Eliminate problematic edges
• Each frame is associated with a set of 0 or more labels
• For each unique set of labels, form a subgraph of edges whose frames have exactly this set
• Find the strongly connected components (SCCs) – maximal set of nodes where there is a connecting graph walk between each ordered pair
• Discard all edges that aren’t in the largest SCC
• Give warning if:
• A set of labels has below a certain threshold of frames
• For any ordered pair of SCCs there is no way to get from the first to the second
Using motion graphs
• We have a database of motion segments and mappings between them, now we want to find motion streams that conform to user specifications
• This is approached as a search problem, where the user specifies a non-negative scalar error function g(w,e) as well as a halting condition
• Total error of a path w defined as:
Searching
• Goal is to find a complete graph walk that minimizes f(w)
• Use branch and bound – keep track of the best complete graph walk wopt and cut current branch when the error exceeds f(wopt)
• Works best when a tight lower bound is found early
• Use a greedy ordering heuristic – for a set of unexplored child nodes, select the one that minimizes g(w,c)
Searching
• Even with branch & bound and ordering heuristic, search is still exponential
• Trade some optimality for speed by searching incrementally
• Find optimal graph walk of n frames, retain first m nodes and search again from the last retained node
• Their implementation used 80-120 for n (2.67 to 4 sec), 25-30 for m (~1 sec)
Defining optimization criteria
• So how do you define g(w,e) to find your desired motion??
• First, two guidelines:
• g should give some sort of guidance throughout the motion, not just evaluate the end result
• g should be no more restrictive than necessary – balance guiding search to a particular result with allowing it to consider many options
Path synthesis
• The example application they present is to make a character travel along a specified path on the ground
• Basic strategy for g is to measure difference between actual path traveled and desired path
• P(s) is the point on P whose arc-length distance from the start is s
• s(ei) is the arc-length from frame 0 to frame i in edge e
Path synthesis
• Potential problem if character stands still with no incentive to move, thereby accruing zero error
• Fix this by replacing s(ei) with t(ei), which forces a small amount of progress with each frame
• If we wish to require different types of motion, break the path into segments by type of motion desired during each part
• If character is within threshold distance from end of current path, allow search to consider motion edges of both types, otherwise just the type of the current path
• Allow only one type switch per path
Path synthesis applications
• Interactive control
• User controls a character, motion clips are selected in real time
• High-level keyframing
• Animator decides what the character should do and where, rather than tedious keyframing
• Motion dumping
• Same as the first, but with AI characters
• Crowds
• Paths are generated for multiple characters to avoid collisions