1 / 21

Motion Graphs

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

kerryn
Download Presentation

Motion Graphs

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Motion Graphs By Lucas Kovar, Michael Gleicher, and Frederic Pighin Presented by Phil Harton

  2. Overview • What • Why • Creating • Using

  3. 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

  4. 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

  5. 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

  6. Building motion graphs • Identify transition candidates • Select transition points • Eliminate problematic edges

  7. 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

  8. Identify transition candidates

  9. 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

  10. 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

  11. Create transitions • Blend weight function • Root position interpolation • Joint rotation interpolation

  12. 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

  13. 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

  14. 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:

  15. 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)

  16. 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)

  17. 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

  18. 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

  19. 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

  20. 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

  21. Questions?

More Related