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

Slides:



Advertisements
Similar presentations
ECE 667 Synthesis and Verification of Digital Circuits
Advertisements

Traveling Salesperson Problem
Synchronized Multi-character Motion Editing Manmyung Kim, Kyunglyul Hyun, Jongmin Kim, Jehee Lee Seoul National University.
Types of Algorithms.
Optimal Rectangle Packing: A Meta-CSP Approach Chris Reeson Advanced Constraint Processing Fall 2009 By Michael D. Moffitt and Martha E. Pollack, AAAI.
NUS CS5247 Motion Planning for Camera Movements in Virtual Environments By Dennis Nieuwenhuisen and Mark H. Overmars In Proc. IEEE Int. Conf. on Robotics.
Data Structures Using C++
Verbs and Adverbs: Multidimensional Motion Interpolation Using Radial Basis Functions Presented by Sean Jellish Charles Rose Michael F. Cohen Bobby Bodenheimer.
S. J. Shyu Chap. 1 Introduction 1 The Design and Analysis of Algorithms Chapter 1 Introduction S. J. Shyu.
Automating Graph-Based Motion Synthesis Lucas Kovar Michael Gleicher University of Wisconsin-Madison.
The Out of Kilter Algorithm in Introduction The out of kilter algorithm is an example of a primal-dual algorithm. It works on both the primal.
Algorithm Strategies Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
Introduction to Data-driven Animation Jinxiang Chai Computer Science and Engineering Texas A&M University.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 24: Motion Capture Ravi Ramamoorthi Most slides courtesy.
Automated Extraction and Parameterization of Motions in Large Data Sets SIGGRAPH’ 2004 Lucas Kovar, Michael Gleicher University of Wisconsin-Madison.
Animating reactive motion using momentum-based inverse kinematics CASA 2005.
Curve Analogies Aaron Hertzmann Nuria Oliver Brain Curless Steven M. Seitz University of Washington Microsoft Research Thirteenth Eurographics.
Measuring and Extracting Proximity in Networks By - Yehuda Koren, Stephen C.North and Chris Volinsky - Rahul Sehgal.
Randomized Planning for Short Inspection Paths Tim Danner Lydia E. Kavraki Department of Computer Science Rice University.
Randomized Motion Planning for Car-like Robots with C-PRM Guang Song, Nancy M. Amato Department of Computer Science Texas A&M University College Station,
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 5: February 2, 2009 Architecture Synthesis (Provisioning, Allocation)
Dynamic Response for Motion Capture Animation Victor B. Zordan Anna Majkowska Bill Chiu Matthew Fast Riverside Graphics Lab University of California, Riverside.
Chapter 5: Path Planning Hadi Moradi. Motivation Need to choose a path for the end effector that avoids collisions and singularities Collisions are easy.
Design and Implementation of Motion Synthesis System Based on Support Phase Quan Yu.
Composition of complex optimal multi-character motions C. Karen Liu Aaron Hertzmann Zoran Popović.
Computer Animation CS 445/645 Fall Let’s talk about computer animation Must generate 30 frames per second of animation (24 fps for film) Issues.
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
06 - Boundary Models Overview Edge Tracking Active Contours Conclusion.
Introduction Tracking the corners Camera model and collision detection Keyframes Path Correction Controlling the entire path of a virtual camera In computer.
1 1 1-to-Many Distribution Vehicle Routing John H. Vande Vate Spring, 2005.
CS774. Markov Random Field : Theory and Application Lecture 13 Kyomin Jung KAIST Oct
Solving Hard Instances of FPGA Routing with a Congestion-Optimal Restrained-Norm Path Search Space Keith So School of Computer Science and Engineering.
Motion Editing (Geometric and Constraint-Based Methods) Jehee Lee.
Representing and Using Graphs
Character Animation for Realtime Applications Michael Putz Klaus Hufnagl Institute of Computer Graphics Graz University of Technology Austria.
Linear Programming Data Structures and Algorithms A.G. Malamos References: Algorithms, 2006, S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani Introduction.
Lecture 5: Mathematics of Networks (Cont) CS 790g: Complex Networks Slides are modified from Networks: Theory and Application by Lada Adamic.
Fast and Accurate Goal- Directed Motion Synthesis For Crowds Mankyu Sung Lucas Kovar Michael Gleicher University of Wisconsin- Madison
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
UNC Chapel Hill M. C. Lin Introduction to Motion Planning Applications Overview of the Problem Basics – Planning for Point Robot –Visibility Graphs –Roadmap.
1cs426-winter-2008 Notes  Will add references to splines on web page.
Graphs A ‘Graph’ is a diagram that shows how things are connected together. It makes no attempt to draw actual paths or routes and scale is generally inconsequential.
Types of Algorithms. 2 Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We’ll talk about a classification.
Author: Haoyu Song, Murali Kodialam, Fang Hao and T.V. Lakshman Publisher/Conf. : IEEE International Conference on Network Protocols (ICNP), 2009 Speaker:
Flexible Automatic Motion Blending with Registration Curves
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
Announcements Finish up Network Flow today Then Review for Final on Monday ◦ HW#5 is due on Monday, let me or the TA’s know if you have trouble starting.
Interactive Control of Avatars Animated with Human Motion Data By: Jehee Lee, Jinxiang Chai, Paul S. A. Reitsma, Jessica K. Hodgins, Nancy S. Pollard Presented.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
Algorithms For Solving History Sensitive Cascade in Diffusion Networks Research Proposal Georgi Smilyanov, Maksim Tsikhanovich Advisor Dr Yu Zhang Trinity.
A global approach Finding correspondence between a pair of epipolar lines for all pixels simultaneously Local method: no guarantee we will have one to.
Data Driven Models of Motion Walking the Fine Line Between Performance, Realism and Style Chris White G-Lunch 2007.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Constrained Synthesis of Textural Motion for Animation Shmuel Moradoff Dani Lischinski The Hebrew University of Jerusalem.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
Object Animation CMT3317. Do you need to do animation? We consider ways of animating composite objects – that have a number of different parts e.g. a.
Computer Animation CS 446 September 5, 2001.
BackTracking CS255.
Courtsey & Copyright: DESIGN AND ANALYSIS OF ALGORITHMS Courtsey & Copyright:
Types of Algorithms.
CSE 373 Data Structures and Algorithms
Synthesis of Motion from Simple Animations
Backtracking and Branch-and-Bound
Types of Algorithms.
Motion Graphs Davey Krill May 3, 2006.
Major Design Strategies
Stefan Oßwald, Philipp Karkowski, Maren Bennewitz
Vehicle Routing John H. Vande Vate Fall,
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 Walk2 Walk1 Run2/Jog Jog/Walk1 Run1 Run2 Walk1/Walk1 Run2/Run2 Jog Walk1Walk2 Jog Run1 Run2 Original motion data Walk2/Walk1

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

Identify transition candidates

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 A i and B j which fell under the distance error threshold, blend A i through A i+k-1 with B j through B j-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 w opt and cut current branch when the error exceeds f(w opt )  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 for n (2.67 to 4 sec), 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(e i ) 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(e i ) with t(e i ), 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

Questions?