motion graphs l.
Download
Skip this Video
Download Presentation
Motion Graphs

Loading in 2 Seconds...

play fullscreen
1 / 21

Motion Graphs - PowerPoint PPT Presentation


  • 343 Views
  • Uploaded on

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

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

PowerPoint Slideshow about 'Motion Graphs' - kerryn


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

Motion Graphs

By Lucas Kovar, Michael Gleicher, and Frederic Pighin

Presented by Phil Harton

overview
Overview
  • What
  • Why
  • Creating
  • Using
what are motion graphs
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
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
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
Building motion graphs
  • Identify transition candidates
  • Select transition points
  • Eliminate problematic edges
identify transition candidates
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
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
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 transitions11
Create transitions
  • Blend weight function
  • Root position interpolation
  • Joint rotation interpolation
eliminate problematic edges
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 edges13
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
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
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)
searching16
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
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
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 synthesis19
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
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