Why animate humans? Why is this hard? Aspects of the Problem. These lectures. Animation Apreciation 101

Similar documents
Animation by Adaptation Tutorial 1: Animation Basics

Animation by Adaptation

Motion for Computer Animation. Michael Gleicher Department of Computer Sciences University of Wisconsin, Madison

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Animation. CS 465 Lecture 22

Today. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations

CS 775: Advanced Computer Graphics. Lecture 3 : Kinematics

1. Technologies for Motion Editing (Feb 25, 1999)G

Quaternions and Rotations

Geometric Transformations

Quaternions and Rotations

animation computer graphics animation 2009 fabio pellacini 1 animation shape specification as a function of time

animation computer graphics animation 2009 fabio pellacini 1

12.1 Quaternions and Rotations

2D/3D Geometric Transformations and Scene Graphs

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Computer Animation II

IntroductionToRobotics-Lecture02

animation projects in digital art animation 2009 fabio pellacini 1

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC

Animation Lecture 10 Slide Fall 2003

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017

COMP 175 COMPUTER GRAPHICS. Lecture 10: Animation. COMP 175: Computer Graphics March 12, Erik Anderson 08 Animation

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

Math background. 2D Geometric Transformations. Implicit representations. Explicit representations. Read: CS 4620 Lecture 6

Announcements: Quiz. Animation, Motion Capture, & Inverse Kinematics. Last Time? Today: How do we Animate? Keyframing. Procedural Animation

Visual Recognition: Image Formation

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala)

Articulated Characters

Synthesis by Example. Connecting Motion Planning and Example based Movement. Michael Gleicher

Data-driven Approaches to Simulation (Motion Capture)

3D Transformations and Complex Representations. Computer Graphics CMU /15-662, Fall 2016

Advanced Graphics and Animation

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Animation, Motion Capture, & Inverse Kinematics. Announcements: Quiz

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Last Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

Autonomous Navigation for Flying Robots

CS354 Computer Graphics Rotations and Quaternions

Quaternions and Rotations

Interactive Computer Graphics

Last Time? Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11

Quaternions and Rotations

Rigging / Skinning. based on Taku Komura, Jehee Lee and Charles B.Own's slides

Overview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc.

Visualizing Quaternions

This week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object.

Today. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices

Human body animation. Computer Animation. Human Body Animation. Skeletal Animation

CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

Keyframe Animation. Animation. Computer Animation. Computer Animation. Animation vs Modeling. Animation vs Modeling

Animation by Adaptation Tales of Motion Use and Re-Use

COMP371 COMPUTER GRAPHICS

Last Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation

Character Animation 1

CS184: Using Quaternions to Represent Rotation

Animation and Quaternions

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010)

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations

Retargetting Motion to New Characters. Retargetting Motion to New Characters. Page 1. Motion Retargetting. Motion Retargetting

Character Animation. Presented by: Pam Chow

Chapter 5. Transforming Shapes

CS 231. Inverse Kinematics Intro to Motion Capture. 3D characters. Representation. 1) Skeleton Origin (root) Joint centers/ bones lengths

Reading. Hierarchical Modeling. Symbols and instances. Required: Angel, sections , 9.8. Optional:

MOTION CAPTURE DATA PROCESSING - MOTION EDITING / RETARGETING - MOTION CONTROL / GRAPH - INVERSE KINEMATIC. Alexandre Meyer Master Informatique

Kinematical Animation.

Game Programming. Bing-Yu Chen National Taiwan University

Quaternions & Rotation in 3D Space

Vector Algebra Transformations. Lecture 4

Inverse Kinematics Programming Assignment

CS230 : Computer Graphics Lecture 12: Introduction to Animation. Tamar Shinar Computer Science & Engineering UC Riverside

About this document. Introduction. Where does Life Forms fit? Prev Menu Next Back p. 2

CSE452 Computer Graphics

Kinematics & Motion Capture

Applications. Human and animal motion Robotics control Hair Plants Molecular motion

3D Rotation: more than just a hobby

CS 231. Inverse Kinematics Intro to Motion Capture

To Do. History of Computer Animation. These Lectures. 2D and 3D Animation. Computer Animation. Foundations of Computer Graphics (Spring 2010)

Graphics and Interaction Transformation geometry and homogeneous coordinates

Coordinate Transformations. Coordinate Transformation. Problem in animation. Coordinate Transformation. Rendering Pipeline $ = $! $ ! $!

Translation. 3D Transformations. Rotation about z axis. Scaling. CS 4620 Lecture 8. 3 Cornell CS4620 Fall 2009!Lecture 8

COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates

METR 4202: Advanced Control & Robotics

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

MTRX4700 Experimental Robotics

Computer Graphics. Si Lu. Fall uter_graphics.htm 11/27/2017

Advanced Computer Graphics Transformations. Matthias Teschner

Motion Capture. Motion Capture in Movies. Motion Capture in Games

Lecture 5 2D Transformation

Rotation and Orientation: Fundamentals. Perelyaev Sergei VARNA, 2011

Game Mathematics. (12 Week Lesson Plan)

A Detailed Look into Forward and Inverse Kinematics

Quaternion Rotations AUI Course Denbigh Starkey

Computer Animation. Michael Kazhdan ( /657) HB 16.5, 16.6 FvDFH 21.1, 21.3, 21.4

Motion Capture & Simulation

Motion Capture. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

Computer Graphics I Lecture 11

Transcription:

Animation by Example Lecture 1: Introduction, Human Representation Michael Gleicher University of Wisconsin- Madison www.cs.wisc.edu/~gleicher www.cs.wisc.edu/graphics Why animate humans? Movies Television Videogames Training Simulation Analysis Why is this hard? People are good at watching people! Human appearance is very complex People do many things In many ways Subtlety matters Hard to describe movement Normal movements aren t interesting Aspects of the Problem Gross Body movement NOT: Appearance Models Facial animation Cloth, clothing, secondary movement Hands These lectures 1. Representation of humans 2. Motion capture processing and editing 3. Concatenative synthesis 4. Parametric synthesis 5. Skinning Animation Apreciation 101 Luxo Jr. Pixar, 1986 Brilliance (Sexy Robot) Robert Abel and Associates, 1985 Early motion capture Early computer graphics look (chrome) Final Fantasy Square Studios, 2001 Realistic, animated, human characters Hollowman Sony Imageworks (effects), 2000 Complex human models, terrible dialog

Luxo Jr Sexy Robot Final Fantasy Hollowman Why did I show those? Motion is rich, expressive, complex Hard to describe mathematically Amount of detail in characters varies Different representations needed Where s the math problem? How do we describe movement mathematically? So we can use it on a computer How do we describe the thing that is moving? The character

What is the character? What is a motion? Way to interpret a configuration A motion maps times to configurations A vector of parameters Some interpretation of these parameters such that a value can be drawn Representation m(t) R R n Vector-valued, timevarying signal Representation comes from creation All we have to do is define the functions! signal (p) Time (t) Why is this so hard? We are good at looking at motion! Motion is very expressive Mood, activity, personality, But those attributes are subtle What makes a motion sad? Realistic? We lack vocabulary Talk about motion with metaphor Three main ways to make motion Create it by hand Compute it Capture it from a performer Animate by example Re-use existing motions Editing Synthesis by Example Creating Motion by Hand: Keyframing Shrek Skilled animators place key poses Computer in-betweens Requires incredible amounts of talent But can be done extremely well Verdict: Produces the highest quality results, at a very high cost

Computing Motion: Procedural and Simulation Atlanta in Motion Define algorithms to create motions Ad-hoc rules, or simulate physics Physics provides realism But how do you control it? Verdict: Good for secondary effects, not for characters (yet) Computing Motion: Procedural and Simulation Define algorithms to create motions Ad-hoc rules, or simulate physics Physics provides realism But how do you control it? Verdict: Good for secondary effects, not for characters (yet) Motion Capture and Performance Animation Use sensors to record a real person Get high-degree of realism Which may not be what you want... Possibility for real-time performance Verdict: Good for realistic human motions. Scary to animators. DD Ghosts Motion Capture and Performance Animation Use sensors to record a real person Get high-degree of realism Which may not be what you want... Possibility for real-time performance Verdict: Good for realistic human motions. Scary to animators.

Motion Capture Technology: Optical Tracking User markers and special cameras Tracking + Math Motion Capture Technology: Video An interesting and open problem Limited information But seemingly enough Problem can be arbitrarily hard Or easy if you make assumptions Video is surprisingly bad The subject of these lectures Animation by Example Good motion is hard to get Can t get everything you need Need to create motion on the fly Re-use existing motions Editing (change an existing motion) Synthesis by example (make a new motion from old ones) Paths Where to begin Some preliminaries Human Representation Rigid bodies Kinematics Motion Capture and Processing Motion Signal Processing

Representation of Humans Need concise description of pose Goal: Summarize pose as a vector Motion is vector valued function Compact, yet flexible Make constraints implicit Modeling Humans Humans are complex! Human motion can be understood at a very fine level of detail! Abstractions Abstractions vs. Reality (skeletons vs. humans) Representation of complex human structure with varying degrees of simplification Simple Pin Joint 206 bones, muscles, fat, organs, clothing, 206 bones, complex joints 53 bones Kinematic joints Complex tendon and bone system How Realistic do you need? It depends! Generally, small numbers of degrees of freedom (50-60) Easier to animate/specify Don t really see the details from far away Standard simplified models of humans Small numbers of degrees of freedom for gross motion Articulated figures Rigid pieces Sometimes stretching alowed Kinematic joints Rotations between pieces Why this?

How to best match Can't be exact Something gets lost Don t want to lose what is important What is important? Essence! (not details) Data provides details, essence is hidden inside Articulated figure representation Sets of rigid pieces What are the rigid pieces? Rigid Body A set of points that undergoes a rigid transformation Describe configuration by the rigid transformation P = f (q, P) Transformed points Transform parameters Rest state points Rigid Transforms Mapping f : R n ->R n Defined by properties: Has a zero Preserves distances Preserves handedness Is a linear mapping Parameterizing Rotations Goal: encode rotations in a vector R n - > set of rotations Give names to members of the set of possible rotations Many ways to do this, all flawed No perfect method Use the best one for the job Goals for Parameterization Compact (as few variables as possible) Complete Every rotation can be represented 1-to-1 Every rotation has one value Every value has one rotation Singularity free close rotations are close in value

Parameterization 1: The Rotation Matrix We know the rotation is a linear function (e.g. Matrix) Use the matrix as the parameterization! Any rotation is represented by 1 matrix Must preserve distance Must preserve handedness Must preserve angles Positive, Orthonormal matrices Problems with Matrix as Parameterization Not compact 9 numbers (but 3 d.o.f.) Not all matrices are orthonormal Change 1 number, its not orthonormal Sensitive to numerical issues Can t tell quickly Given a matrix, determine if orthonormal Can t project quickly Given a matrix, find the closest orthonormal one More problems Given two rotation matrices, M 1 and M 2 Can you measure how different they are? Can you interpolate them? (e.g. find halfway) Fortunately, they are closed under multiplication Modulo numerical issues Problems are worse in 3D 3x3 matrices 9 parameters No intuitive meaning to parameters Only supports a few operations Apply to point Multiply (compose) beware drift Use rotation matrices to apply rotations Use other methods to parameterize and manipulate them Parameterizations of Rotations Rotation Matrices Euler Angles Axis Angle formulation Unit Quaternions Exponential Co-Ordinates Local linearizations Two theorems of Euler Any rotation can be represented by a single rotation about an arbitrary axis Axis / Angle Representation Any rotation can be represented by a sequence of 3 rotations around fixed axes Euler Angles

Axis / Angle Not compact (4 numbers, not 3) Each rotation represented by many groups of 4 numbers Can t compute with Hard to compose Hard to compare Hard to interpolate Inefficient Euler Angles Pick 3 axes (XYZ, ZXZ, ZXY, ) Compact Any 3 numbers is a rotation Every rotation has many values Singularities Not metric (close rotations->different numbers) Interpolations can be weird OK when 1 axis at a time False sense of security that can do math What else? Other parameterizations more recent in Computer Graphics Quaternions (introduced 1985, popular recently) Exponential co-ordinates (introduced 1995, popular recently) Easy case: 2D Rotations in 2D aren t too hard Examine them to see what happens in 3D (where it is much harder) Basic problems still occur Both method are old Graphics just took a while to discover them 2D Rotations Consider 1 point in 2D, center is the origin A rotation maps the point somewhere on the circle Each rotation is a point on the circle Not exactly There s the handedness thing

So how to name points on a circle? No good mapping to the real line Real line goes on forever Circle wraps around Same problems as rotation! Method 1: use a 2D coord Name point by x,y on circle Could be a complex number (i,j) Note: circle (in 2D) is a 1D set Extra coordinates Good points Every point can be named Every point has a unique name Close points have similar names (no singularity) Bad points Not all points are on the circle Can t manipuate vectors How to add? Takes you off the circle Quaternions Extension of this idea to 3D rotation 4 dimensional complex number Real part, 3 imaginary axes (vector) Represent 3D rotation as a point on the unit 4-sphere Need to stay on sphere E.g. UNIT Quaternions Good points about Quaternions Multiplication is defined Easy composition Interpolation is defined Special methods worked out Linear (1985), Cubic (1995) Relatively compact Singularity free Nearly 1-to-1 Bad point about Quaternions Can t add Can t take linear combinations Can t average Can t linear filter Distance metric is unclear

A hack Its easy to get back on the circle via reprojection Pretend points are in 2D, then project back Example: averaging Warning on the hack Gets the right answer for averaging Not for other linear combinations Works well when difference is small Small angle approximation Fails when opposite Useful since we can renormalize if computations have problems Method 2: distance How far around circle? (unit radius makes things easier) Basically an angle Method 3: velocity Suppose the particle starts at zero and has a constant velocity ω Where does it end up at the end of a unit of time? Method 4: velocity Velocity is tangent to circle therefore it is initially upwards If circle is in the complex plane, the velocity is purely imaginary Velocity (cntd) Velocity as up only works if we start at origin so always measure from origin shift the start around

Initial velocity is good It s linear! Linearizes the circle around the origin Can operate on it Add Scalar multiply Not perfect Many different ways to get to any place Local linearization Logarithmic map / Exponential map Good for describing the differences between orientations Good basis for performing linear operations on orientations Filtering Averaging In general Back to our real question Abstraction of Human Motion Use quaternions to represent orientation Use tangent space (log map) to perform linearized computations Hack often works, almost as well Don t tell anyone I said that! Humans too complex Need tractable models Some number of connected, rigid pieces (usually) Representations of Motion Angle vs. positional data Global vs. relative Hierarchical vs. non-hierarchical Representations of 2 bodies Position Only Skeletal vs. Non-Skeletal Independent: Absolute Orientation Absolute Position Hierarchical: Relative Orientation Fixed Relative Position

Good Points of Hierarchical Skeletons Enforce key constraints Connected segments Rigid limbs Fewer Dof s Only store angles between segments Easy for skinning Local coordinate systems defined Bad Points of Hierarchical Need 3D rotations Coupled parameters End effector controls require IK Forces rigidity Problems with reference Different ways of defining things Complexities of Skeletal Representation Can't just measure (even x-rays wouldn't help, no real "joints") Abstraction Don't know parameters Need to know skeleton and relation of skeleton to markers