Human Animation for Interactive Systems: Reconciling High-Performance and High-Quality Michael Gleicher and the UW Graphics Group University of Wisconsin-

Slides:



Advertisements
Similar presentations
Animation in Video Games presented by Jason Gregory
Advertisements

Lindsey Bleimes Charlie Garrod Adam Meyerson
Isoparametric Elements Element Stiffness Matrices
Verbs and Adverbs: Multidimensional Motion Interpolation Using Radial Basis Functions Presented by Sean Jellish Charles Rose Michael F. Cohen Bobby Bodenheimer.
Image-based Clothes Animation for Virtual Fitting Zhenglong Zhou, Bo Shu, Shaojie Zhuo, Xiaoming Deng, Ping Tan, Stephen Lin * National University of.
Learning a correlated model of identity and pose-dependent body shape variation for real-time synthesis Brett Allen 1,2, Brian Curless 1, Zoran Popović.
Automating Graph-Based Motion Synthesis Lucas Kovar Michael Gleicher University of Wisconsin-Madison.
SE 313 – Computer Graphics Lecture 14: Armatures Lecturer: Gazihan Alankuş 1.
Linear Blend Skinning.
© University of Wisconsin, CS559 Spring 2004
Character Setup Character Setup is the process of creating handles and controls for anything that a character animator will need to adjust in order to.
Pseudo-Skeleton based ARAP Mesh Deformation M. Zollhöfer, A. Vieweg, J. Süßmuth and G. Greiner Computer Graphics Group, FAU Erlangen-Nuremberg, Germany.
Section 4: Implementation of Finite Element Analysis – Other Elements
1Notes  Questions?  Assignment 1 should be ready soon (will post to newsgroup as soon as it’s out)
Physically Based Motion Transformation Zoran Popović Andrew Witkin SIGGRAPH ‘99.
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.
Character Animation CSE 191A: Seminar on Video Game Programming Lecture 5: Character Animation UCSD, Spring, 2003 Instructor: Steve Rotenberg.
1cs426-winter-2008 Notes  Collision notes part 1 (primitive operations) should be up on the weekend.
1cs426-winter-2008 Notes  Text: End of 7.8 discusses flocking 7.13 discusses skinning 7.10 discusses motion capture  Remember online course evaluations.
Dynamic Response for Motion Capture Animation Victor B. Zordan Anna Majkowska Bill Chiu Matthew Fast Riverside Graphics Lab University of California, Riverside.
Camera Parameters and Calibration. Camera parameters From last time….
Animation CMSC 435/634. Keyframe Animation From hand drawn animation – Lead animator draws poses at key frames – Inbetweener draws frames between keys.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
05/09/02(c) 2002 University of Wisconsin Last Time Global illumination algorithms Grades so far.
A Randomized Approach to Robot Path Planning Based on Lazy Evaluation Robert Bohlin, Lydia E. Kavraki (2001) Presented by: Robbie Paolini.
Curve Modeling Bézier Curves
Computer Graphics Group Tobias Weyand Mesh-Based Inverse Kinematics Sumner et al 2005 presented by Tobias Weyand.
Use and Re-use of Facial Motion Capture M. Sanchez, J. Edge, S. King and S. Maddock.
Facial animation retargeting framework using radial basis functions Tamás Umenhoffer, Balázs Tóth Introduction Realistic facial animation16 is a challenging.
Animation by Example Michael Gleicher and the UW Graphics Group University of Wisconsin- Madison
Light Using Texture Synthesis for Non-Photorealistic Shading from Paint Samples. Christopher D. Kulla, James D. Tucek, Reynold J. Bailey, Cindy M. Grimm.
ALIGNMENT OF 3D ARTICULATE SHAPES. Articulated registration Input: Two or more 3d point clouds (possibly with connectivity information) of an articulated.
Character Animation for Realtime Applications Michael Putz Klaus Hufnagl Institute of Computer Graphics Graz University of Technology Austria.
Computer Graphics 2 In the name of God. Outline Introduction Animation The most important senior groups Animation techniques Summary Walking, running,…examples.
3D Animation 5. Character Animation Dr. Ashraf Y. Maghari Information Technology Islamic University of Gaza Ref. Book: The Art of Maya.
Automated Construction of Parameterized Motions Lucas Kovar Michael Gleicher University of Wisconsin-Madison.
Motion Planning in Games Mark Overmars Utrecht University.
Fast and Accurate Goal- Directed Motion Synthesis For Crowds Mankyu Sung Lucas Kovar Michael Gleicher University of Wisconsin- Madison
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Maths & Technologies for Games Animation: Practicalities CO3303 Week 3.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Rigging.
CS-378: Game Technology Lecture #13: Animation Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Animation by Example Michael Gleicher and the UW Graphics Group University of Wisconsin- Madison
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Character Setup In addition to rigging for character models, rigging artists are also responsible for setting up animation controls for anything that is.
Raquel A. Romano 1 Scientific Computing Seminar May 12, 2004 Projective Geometry for Computer Vision Projective Geometry for Computer Vision Raquel A.
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
04/18/02(c) 2002 University of Wisconsin Last Time Hermite Curves Bezier Curves.
Flexible Automatic Motion Blending with Registration Curves
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler.
Scalable Behaviors for Crowd Simulation Mankyu Sung Michael Gleicher Stephen Chenney University of Wisconsin- Madison
Classification Course web page: vision.cis.udel.edu/~cv May 14, 2003  Lecture 34.
CSC321 Lecture 5 Applying backpropagation to shape recognition Geoffrey Hinton.
Motion Graphs By Lucas Kovar, Michael Gleicher, and Frederic Pighin Presented by Phil Harton.
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.
Constrained Synthesis of Textural Motion for Animation Shmuel Moradoff Dani Lischinski The Hebrew University of Jerusalem.
Search Control.. Planning is really really hard –Theoretically, practically But people seem ok at it What to do…. –Abstraction –Find “easy” classes of.
Animation Animation is about bringing things to life Technically: –Generate a sequence of images that, when played one after the other, make things move.
Differential Coordinates and Laplacians Nicholas Vining Technical Director, Gaslamp Games.
CGDD 4003 Character Animation. The Skeletal Hierarchy (aka the “rig”) Based on the concept of bones Each bone has exactly one parent Each bone has a transform.
Introduction to Parametric Curve and Surface Modeling.
© University of Wisconsin, CS559 Spring 2004
Easy Generation of Facial Animation Using Motion Graphs
UMBC Graphics for Games
(c) 2002 University of Wisconsin
Synthesis of Motion from Simple Animations
Introduction to Parametric Curve and Surface Modeling
Motion Graphs Davey Krill May 3, 2006.
Presentation transcript:

Human Animation for Interactive Systems: Reconciling High-Performance and High-Quality Michael Gleicher and the UW Graphics Group University of Wisconsin- Madison

The Vision: Virtual Experiences Simulate Experiences More than just being in a place More than just appearance One aspect: Other people

Virtual Experience Applications Training Emergency Rescure, Crowd Control Design Evaluating populated spaces Entertainment / Commerce Games, Shopping Malls, Chat All need people!

The Demands of Virtual Experiences Fast Responsive Streams of Motion Realistic Attractive Detailed Directable Autonomous

The problems What do characters do? How do they choose their actions? How do they do it? How do we generate their movements? What do they look like? How do we draw them?

Efficient Skins High-Quality Appearance Within Interactive Apps Two Sub-Projects Snap-Together Motion High-Quality Motion Within Interactive Apps

How do we synthesize character motion? Need streams not clips Generated in response to action Rules out capture, hand-animation, … Procedural Methods? Physics? Can’t get richness and quality

Synthesis by Example Graph-based approaches Kovar et al., Lee at al., Arikan and Forsyth Good: High quality results Flexible Bad: Offline (need to search) Limited Precomputation Trade some quality for performance We’ll fix this

A Review: Synthesis by Example Piece together clips of good motion Find “easy” transitions to make

What is Similar? Factor out invariances and measure 2) Extract windows 3) Convert to point clouds 4) Align point clouds and sum squared distances 1) Initial frames

An Aside: Other Invariances (Kovar&Gleicher ’03) Different Timing Different Curvature Different Constraints

An easy point to miss: Motions are Made Similar “Undo” the differences from invariances when assembling Rigidly transform motions to connect

Building a Motion Graph Find Matching States in Motions

Automatic Graph Construction Find many matches (opportunistic) Good: Automatic Good: Lots of choices

Motion Graph Problems Graphs built opportunistically Leads to unstructured graphs Don’t know what’s there No control over connectivity No way to know what is close Don’t know what character can or can’t do Lots of transitions Can’t check them all, be conservative

Why is this OK? Search the graphs for motions Look ahead to make sure we don’t get stuck Cleanup motions as generated Plan “around” missing transitions Optimization gets close as possible Not OK for Interactive Apps!

Snap-Together Motion Three basic ideas Find “Hub Nodes” Pre-process motions so they “snap” together Build small, contrived graphs

Snapable Motions What if motions matched exactly? Match both state and derivatives Match reasonably at a larger scale

Make motions match exactly Add in displacement maps Bumps we add to motions Modify motions to common pose Compute changes at author time Average or Common Pose

C(1) Displacement Maps Add displacements to make motions match in both value and derivative Displacement maps themselves are smoother Motion 1 Motion 2 Cut Together

Some features of Cuts Don’t need original motions Just use displacements No database growth Multi-way transitions Find common point for several motions

Hub Nodes Multi-way cuts yield Hub Nodes Hub nodes allow nice graphs

Contrived Graph Structure? Search: Look ahead to get where you need to go React: Always lots of choices. Something close to need.

Gamers use these

Semi-Automatic Graph Construction Pick set of match frames User selects System picks “best” one Modify motions to build hub node Check graph and transitions

Common poses for Multi-way Hubs All motions displace to one pose Pose must be consistent with all motions Average “common” pose Average of poses Constraints solved on frame Must solve constraints on all motions Inconsistencies are possible

Building the Motion Graphs

Why should we care? Precompute everything but rigid transforms = FAST! Nodes with high connectivity = RESPONSIVE / CONTROLLABLE Add in user interaction Build convenient graph structures Verify transitions (less conservative)

Some results Corpus of Karate Motions Pick two best poses Map motions to game controller 12 minutes – including picking buttons Walk Walk + Karate 20 minutes – including picking buttons

Nothing for Free Less Variety Less “Exactness” Lower Quality Transitions “Big” Transitions Big changes to get multi-way Need user intervention Pick Match Frames Verify Transitions In Practice, heuristics work REALLY well – but no guaruntees

Are we done yet? May not have exact motions you need Make them using blending techniques Discrete nature (choices) Parametric “fat” arcs Better matching of dissimilar motions New and better invariances Motion specific invariances How do characters decide what to do?

Snap Together Motion in Action Crowd Simulation

Snap-Together Motion Animation by Example for Interactive applications! User-controlled graph structures Multi-way cut transitions Pre-computed transitions

Now that we have Movements… How to draw characters? Skinning: Mapping controls to geometry n parameters, p points

How to do this? Arbitrary code Need to embody art in code Easier: deform given geometry

Where do “high-end” characters come from? Artists make model Technical director “rigs” model Defines deformations Arbitrary code Non-linear deformations Expressions Code Pieces (physical simulations) Animation system executes rig

Where do low-end (interactive) characters come from? Run-times (now hardware) embody a specific mathematical model Riggers forced to use these abstractions Skinning is setting vertex weights I will explain this, and why its bad Couples authoring and runtime

Skinning 101 Each “bone” is a coordinate system Rigid Skin (Catmul ’72) put each point in one coordinate system A coordinate system is a 4x4 matrix in graphics

Skinning 101 (2) Method with many names Linear blend skinning, skeletal subspace deformation, enveloping, smooth skin Each point influenced by multiple bones Weighted linear blend

Using Linear Blend Skins Each point has weight vector Artist (rigger) sets weights Possibly by direct manipulation (Mohr, Tokheim, Gleicher ’03) Often by “weight painting” Range of effects from different weightings

Why is this bad? Artists work with weights Good for hardware, not good for artists Hard to get complex effects Hard to know what can be gotten Can lead to bad artifacts Hard to know if artifacts can be fixed

Linear-blend skin artifacts Pinching Candy-Wrappering

Linear-blend skin artifacts Pinching Candy-Wrappering

What do others do? Give up on linear blend skinning But can’t fit in existing run-times Interpolate between example shapes Can’t scale and stay interactive Multi-weight enveloping (MWE) Add more parameters to LBS model Need artist input (approximate solution) Automatically determine parameters Mathematical tricks for stability

Our Solution: Decouple Authoring and Display Author skins using whatever high-end method they like Compute linear-blend skin that best approximates authored rig Optionally extend LBS model Add joints since they are used automatically

Mathematically Skin defines deformation field Sample this function Easy! Just run some animation Construct a good approximation Form of approximation should map to existing infrastructure Piecewise linear approximation with non-linear basis functions

The Details Linear Blend Skin Model point poisition weight vector bone matrices dress-pose matrices dress pose point position

Example skins For each example and each point: We know M i (bone configuration) We know p e (where point should be) We know D i -1 (inverse dress pose matrix) We sortof know p d (dress pose position) We want to find w d (weight vector)

Optimal Linear Blend Skins Minimize error across examples Bilinear least squares problem Solve by alternation We have a good estimate for p d

Extending Linear Blend Skinning Matrices are functions of parameters M i = f i (q) Consider as our basis functions To get a better approximation, pick better basis functions

Extending the basis set Still within linear blend skin model Little computational overhead Basis set is still small, many points User doesn’t do any more work What functions to add? Today: Ad-Hoc – pick known good functions Future: determine what bones to add

“Bones” to add Half-Angle Scale Remember:

Results original basic LBS our method

More results Bulging Muscles original basic LBS our method

More results

An addition: Deformation Sensitive Decimation Simplify geometry for speed Simplifying the rest shape doesn’t work Extend QSLIM to look at set of examples

Decimation Results originalQSLIM 1 poseour method

Use with Cloth Simulation Simulation (6170 faces)Simplified (2170 faces)

What did we just do? Used the existing skin model Works with existing runtimes (Almost) No performance penalty Better results with less work Avoids worst linear blend artifacts Avoids artists having to think about fast runtime models

Some things to think about Better than linear blend skinning? Now that we have programmable hardware… Better basis sets Less ad-hoc basis sets How to author the rigs to begin with

The bigger picture: Creating Virtual Experiences How do we author virtual experiences? How do we provide high-quality characters in virtual experiences?

Thanks! To the UW graphics gang. Animation research at UW is sponsored by the National Science Foundation, Microsoft, and the Wisconsin University and Industrial Relations program. House of Moves, IBM, Alias/Wavefront, Discreet, Pixar and Intel have given us stuff. House of Moves, Ohio State ACCAD, and Demian Gordon for data. And to all our friends in the business who have given us data and inspiration.