Animation by Example Michael Gleicher and the UW Graphics Group University of Wisconsin- Madison www.cs.wisc.edu/~gleicher www.cs.wisc.edu/graphics.

Slides:



Advertisements
Similar presentations
1.1 Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University
Advertisements

Solutions for Scheduling Assays. Why do we use laboratory automation? Improve quality control (QC) Free resources Reduce sa fety risks Automatic data.
1 Interactive Fiction CIS 487/587 Bruce R. Maxim UM-Dearborn.
Verbs and Adverbs: Multidimensional Motion Interpolation Using Radial Basis Functions Presented by Sean Jellish Charles Rose Michael F. Cohen Bobby Bodenheimer.
Automating Graph-Based Motion Synthesis Lucas Kovar Michael Gleicher University of Wisconsin-Madison.
1Notes  Handing assignment 0 back (at the front of the room)  Read the newsgroup!  Planning to put 16mm films on the web soon (possibly tomorrow)
1cs533d-winter-2005 Computer Animation Robert Bridson (preview of CPSC 426)
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.
Motion Editing and Retargetting Jinxiang Chai. Outline Motion editing [video, click here]here Motion retargeting [video, click here]here.
Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 24: Animation Many slides courtesy Adam Finkelstein,
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 24: Motion Capture Ravi Ramamoorthi Most slides courtesy.
Animation From Motion Capture Motion Capture Assisted Animation: Texturing and Synthesis Kathy Pullen Chris Bregler Motion Capture Assisted Animation:
1cs426-winter-2008 Notes  Example final exam up in Work section of website Take with a grain of salt  Collision notes part 1 (primitive operations) up.
Animation by Adaptation Tutorial 2: Motion Editing Michael Gleicher Graphics Group Department of Computer Sciences University of Wisconsin – Madison
Interactive Control of Avatars Animated with Human Motion Data Jehee Lee Carnegie Mellon University Seoul National University Jehee Lee Carnegie Mellon.
1cs426-winter-2008 Notes  Text: End of 7.8 discusses flocking 7.13 discusses skinning 7.10 discusses motion capture  Remember online course evaluations.
CS 223B Assignment 1 Help Session Dan Maynes-Aminzade.
05/09/02(c) 2002 University of Wisconsin Last Time Global illumination algorithms Grades so far.
Animation. Pre-calculated Animation Do more now, less later.
Lesson 1: Intro to Animation
Movie Maker in the High School Classroom Professional Development Workshop September 1, 2009 Facilitator: Heidi Camp Swartz Creek High School.
Retargeting Motion to New Characters By Dr. Michael Gleicher Aaron CrickenbergerCS551 Spring ‘02.
Course Title: M.M.T Chapter No: 01 “Introduction to Multimedia”
Motion Editing (Geometric and Constraint-Based Methods) Jehee Lee.
Computer Graphics 2 In the name of God. Outline Introduction Animation The most important senior groups Animation techniques Summary Walking, running,…examples.
CSE 381 – Advanced Game Programming Code Setup.
Multimedia Animation. Animation Principles Persistence of vision object seen by human eye remains mapped on retina for a brief time after viewing display.
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
A Hierarchical Approach to Interactive Motion Editing for Human-like Figures Jehee Lee Sung Yong Shin KAIST Jehee Lee Sung Yong Shin KAIST.
Computer Graphics Researched via: Student Name: James Wood Date: 4/29/10.
Animation by Example Michael Gleicher and the UW Graphics Group University of Wisconsin- Madison
Graphics Graphics Korea University cgvr.korea.ac.kr 1 Computer Animation 고려대학교 컴퓨터 그래픽스 연구실.
Automatic Storytelling in Comics
Gesture Recognition in a Class Room Environment Michael Wallick CS766.
Applications of 3D z Applications that are used and why we use them Product design Modelling TV and film Web games Education Reconstruction Illustration.
1cs426-winter-2008 Notes  Will add references to splines on web page.
UNC Chapel Hill M. C. Lin Basics of Motion Generation let X i = position,orient. of O i at t k = t 0,  i END = false while (not END) do display O i, 
CS-378: Game Technology Lecture #15.5: Physically Based Simulation Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney,
Human Animation for Interactive Systems: Reconciling High-Performance and High-Quality Michael Gleicher and the UW Graphics Group University of Wisconsin-
Rick Parent - CIS681 Motion Capture Use digitized motion to animate a character.
Scalable Behaviors for Crowd Simulation Mankyu Sung Michael Gleicher Stephen Chenney University of Wisconsin- Madison
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.
Computer Graphics Chapter 12 Computer Animation.
Lecture 5: 11/5/1435 Computer Animation Lecturer/ Kawther Abas CS- 375 Graphics and Human Computer Interaction.
Data Driven Models of Motion Walking the Fine Line Between Performance, Realism and Style Chris White G-Lunch 2007.
Constrained Synthesis of Textural Motion for Animation Shmuel Moradoff Dani Lischinski The Hebrew University of Jerusalem.
Introduction to Animation In animation, a series of images are rapidly changed to create an illusion of movement.
Animation Animation is about bringing things to life Technically: –Generate a sequence of images that, when played one after the other, make things move.
Fundamentals of Computer Animation Motion Synthesis.
Graphics/Vision Lab Open House! 1347 CS&S 1:30-4:00 Visual Computing UW Graphics Group (and friends)
Graphics Lab Open House! 1347 CS&S 1:30-4:00 The UW Graphics Group.
Model Optimization Wed Nov 16th 2016 Garrett Morrison.
Computer Graphics.
Computer Animation cgvr.korea.ac.kr.
N7 Graphic Communication
Learn… Create… Program
Procedural Animation Introduction to Procedural Methods in 3D Computer Animation Dr. Midori Kitagawa.
Learn… Create… Program
Easy Generation of Facial Animation Using Motion Graphs
(c) 2002 University of Wisconsin
WELCOME.
Computer Graphics Lecture 15.
Motion Graphs Davey Krill May 3, 2006.
ATEC Procedural Animation
Learn… Create… Program
Learn… Create… Program
Presentation transcript:

Animation by Example Michael Gleicher and the UW Graphics Group University of Wisconsin- Madison

Animation by Example: The Summary We can create new animations in response to situations by adapting existing animations and piecing them together as needed. To do this we will: Extend our work on adapting motions Present ways of putting motions together Adapt example-based synthesis to be appropriate for interactive applications

Virtual Experiences For training, entertainment, design, … Experience a scenario Not just a space People are a part of it Just one part, but an interesting one Emergency rescue training and rehearsal Crowds populating a space

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?

Cut to the chase… An Example How do you make a character sneak around? Start with some captured motion of a person sneaking around Synthesize a new motion of a character “sneaking” somewhere else

What did you just see? Small amount of example motion Examples of what I want Actions Quality Character did something different New path Character did it the same way Preserves “style” and “quality”

How to make a Character “Sneak”? What is sneaking? Hard to define mathematically Abstract qualities matter Style, mood, realism, … Details matter Feet not sliding on the floor Subtle gestures

Computer Animation 101: How do we get motion? Create it manually (keyframing) Common method used for film VERY talent and labor intensive Synthesize it by procedural methods Physical simulation, or ad-hoc methods Can’t get exactly what you want Capture it from a performer Motion Capture Animation from Observation

Use markers and special cameras Tracking + Math Motion Capture: Optical Tracking All examples I will show are from optical motion capture

Mocap Pipeline (Animation from Observation) Increasingly stable technology It’s more than just pointing cameras at somebody! Getting the observations is just one part of the process Need to build usable representations of motion PlanShootProcessApply

Why Edit Motion? What you get is not what you want! You get observations of the performance A specific performer A real human Doing whatever they did With the noise and “realism” of real sensors You want animation A character Doing something And maybe doing something else…

The General Challenge Get a specific motion From capture, keyframe, … Specific character, action, mood, … Want something else But need to preserve original But we don’t know what to preserve Can’t characterize motion well enough* *This is a working assumption of my research. I’d love to be proven wrong.

Three Problems Where does X live in the data? Where X  {style, personality, emotion, …} The things to keep or add Small artifacts can destroy realism Eye is sensitive to certain details Amazing what you can’t get away with Kovar, Schreiner and Gleicher, SCA ’02 How to specify what you want

How do we handle these problems? Don’t know which details are important! Must preserve ALL details Since you don’t know what is important Need to understand artifacts better Need to represent what is important

An Approach Constraint-Based Motion Editing Identify specific details in motions that must be preserved Constraints such as footplants Make conservative changes to motions Things that generally don’t cause problems Add low frequencies Blends with similar motions Re-establish constraints (solve) Avoid creating new artifacts

Band-limited adaptation High frequencies are important Eye is sensitive to them Always signifies important events Avoid high frequency changes Preserve existing high-frequencies Avoid adding new ones Band limit the changes Not the resulting motions

Band-limited adaptation? Can’t look at individual frames Need to look across space and time Popping can be worse than skating

Constraint Solutions for Editing Spacetime (single large non-linear optimization) Gleicher ’97, Gleicher ’98, Popovic and Witkin ’99 Hierarchical Splines Lee and Shin ’99 IK + Filter Gleicher ’00 Importance-Based Shin, Lee, Gleicher and Shin ’01 IK + Blending Kovar, Schreiner and Gleicher ’02

How to use this Editing methods just need to get close Avoid nasty artifacts (high-frequencies) Footskate cleanup fixes many important details Makes editing methods easier to devise and implement

Motion Editing Interactive methods Many are easy to implement Cleanup solvers Footskate Physics (Shin et al 2003) Alter clips Retain the length

Getting Beyond Clips Want to generate a wider range Want more control Applications need streams of motion Dynamically generated Applications need “long clips”

Idea: Put Clips Together New motions from pieces of old ones! Good news: Keeps the qualities of the original (with care) Can create long and novel “streams” (keep putting clips together) Challenges: How to connect clips? How to decide what clips to connect?

Connecting Clips Transition Generation Transitions between motions can be hard Simple method work sometimes Blends between aligned motions Cleanup footskate artifacts Just need to know when is “sometime”

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

Motion Graphs Kovar, Gleicher, Pighin ’02 Start with a database of motions, each with type and constraint information. Goal: add transitions at opportune points. Motion 1 Motion 2 Motion 1 Motion 2 Other Motion Graph-like projects elsewhere Differ in details, and attention to detail

Building a Motion Graph Find Matching States in Motions

Motion Graphs Quality: restrict transitions Control: build walks that meet constraints Idea: automatically add transitions within a motion database Edge = clip Node = choice point Walk = motion

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

Using a motion graph Any walk on the graph is a valid motion Generate walks to meet goals Random walks (screen savers) Search to meet constraints Other Motion Graph-like projects elsewhere Differ in details, and attention to detail

The initial example: Building a Motion Graph

The initial example: Using a Motion Graph Given a path Find a motion that minimizes distance Combinatorial optimization

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

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 Displacements not as good as blends “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

Still more to do Interactive Systems Online generation (no search) Low-cost runtimes Better synthesis Self-awareness (what can you do?) Parameterized motions Better goal specifications Multiple interacting characters Crowds Characters The bigger picture

The Vision… Visual Media for Everyone ! Visual Media Pictures / Models Animations / Interactive Environments Everyone Not just artists Easier for artists too

The Computer Science Tools for the creation and delivery of visual media What representations to use Build from “real-world” data Use for synthesis Some current projects…

Current Projects Animation (Virtual Experiences) Motion Synthesis Character Geometry Crowds and Behavior authoring Vascular Visualization Virtual Videography

Want to record classroom lectures And more (start with something easy) Needs to be done well Static camera video is unwatchable Good video holds interest, guides attention Can’t afford a professional crew Good videography is hard Intrusive Get a computer to simulate the crew?

Virtual Videography Cheap and unobtrusive capture Static cameras in back of the room synthesize decide analyze capture

Virtual Videography: Media Analysis Build a representation of what happens Computer Vision + Regions, Attention Model synthesize decide analyze capture

Virtual Videography: Computational Cinematography Decide what to be shown Simulate director and editor Combinatorial optimization chooses best shot sequence synthesize decide analyze capture

Virtual Videography: Synthesis Simulate Other cameras Plan good camera movements Create visual effects synthesize decide analyse capture

Vascular Visualization w/Garet Lahvis, UW Dept of Surgery How does the vascular system develop? In the brain? How do we help a biologist study this? How to work with visual complexity? Not an artist Not a film maker Not even a computer scientist

Vascular Visualization You could see every capillary? This is ONE of HUNDREDS of slices of this brain! From Lahvis Lab, UW Dept of Surgery. Image processing by UW CS Graphics Group

Vascular Visualization: How do you look at this? Goal driven: what do biologists need to see? Need to manage immense complexity Artistic presentation (abstraction) Analytical tools Build representations of the 3D structure Leverage efficient display mechanism Afford easy analysis Unlike traditional “volume” visulization

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.