Download - Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

Transcript
Page 1: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

1

mjb – August 10, 2020

1

Computer Graphics

Animation

Animation.pptx

Mike Bailey

[email protected]

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

mjb – August 10, 2020

2

Computer Graphics

Animation

Rendering is the process of giving motion to your geometric modes. Before animating, there are questions you need to ask first:

• Why am I doing this?

• Do I want the animation to obey the real laws of physics?

• Am I willing to “fake” the physics to get the objects to want to move in a way that I tell it?

• Do I have specific key positions I want the objects to pass through no matter what?

• Do I want to simply record the motion of a real person, animal, etc., and then play it back?

Page 2: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

2

mjb – August 10, 2020

3

Computer Graphics

Keyframe Animation

anim2.mp4

These icons refer to explanatory videos on the class web site

mjb – August 10, 2020

4

Computer Graphics

Blender:

Keyframe Animation

Page 3: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

3

mjb – August 10, 2020

5

Computer Graphics

Forward Kinematics:Change Parameters – Connected Things Move

(All Tinker Toy users understand this)

1

2

3

mjb – August 10, 2020

6

Computer Graphics

1

2

3

Ground

1

2

3

Forward Kinematics: Transformation Hierarchies

Determine Object Locations?

Page 4: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

4

mjb – August 10, 2020

7

Computer Graphics

Inverse Kinematics (IK):Things Need to Move to a Particular Location –

What Parameters Will Make Them Do That?

Of course, there will always be target locations that can never be reached.Think about that spot in the middle of your back that you can never scratch!

mjb – August 10, 2020

8

Computer Graphics

Inverse Kinematics (IK)

Forward Kinematics solves the problem “if I know the link transformation parameters, where are the links?”.

Inverse Kinematics (IK) solves the problem “If I know where I want the end of the chain to be (X*,Y*), what transformation parameters will put it there?”

(X*,Y*)

1?

2?

3?

Ground

Page 5: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

5

mjb – August 10, 2020

9

Computer Graphics

Particle Systems:A Cross Between Modeling and Animation?

mjb – August 10, 2020

10

Computer Graphics

Display

Display

Update

Particle Systems:A Cross Between Modeling and Animation?

The basic process is:

EmitRandom Number

Generator

Page 6: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

6

mjb – August 10, 2020

11

Computer Graphics

Particle Systems Examples

Chuck Evans

mjb – August 10, 2020

12

Computer Graphics

Particle Systems Examples

particles.mp4

Page 7: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

7

mjb – August 10, 2020

13

Computer Graphics

Particle Systems Examples

mjb – August 10, 2020

14

Computer Graphics

Particle Systems Examples

The Lion King (2019) -- Disney

Page 8: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

8

mjb – August 10, 2020

15

Computer Graphics

A Particle System to Simulate Colliding Galaxies in Cosmic Voyage

mjb – August 10, 2020

16

Computer Graphics

Particles Don’t Actually Have to Be “Particles”

Page 9: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

9

mjb – August 10, 2020

17

Computer Graphics

Animating using Rigid-body Physics

dominos.mp4

Newton’s second law:force = mass * acceleration

oracceleration = force / mass

In order to make this work, you need to supply physical properties such as mass, center of mass, moment of inertia, coefficients of friction, coefficients of restitution, etc.

mjb – August 10, 2020

18

Computer Graphics

Animating using Fluid Physics

fluid.avi

Page 10: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

10

mjb – August 10, 2020

19

Computer Graphics

D-D0

k = spring stiffness in Newtons/meter or pounds/inch

0( ) F

D Dk

Force = F

Animating using Physics

D0

D0 = unloaded spring length

Or, if you know the displacement, the force exerted by the spring is:

0 F k D D

This is known as Hooke’s Law

D

mjb – August 10, 2020

20

Computer Graphics

“Lumped Masses”

+Y

Animating using the Physics of a Mesh of Springs

Page 11: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

11

mjb – August 10, 2020

21

Computer Graphics

Simulating a Bouncy String

mjb – August 10, 2020

22

Computer Graphics

Simulating a Bouncy String

string.mp4

Page 12: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

12

mjb – August 10, 2020

23

Computer Graphics

Placing a Physical Barrier in the Scene

mjb – August 10, 2020

24

Computer Graphics

Animating Cloth

Page 13: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

13

mjb – August 10, 2020

25

Computer Graphics

Cloth Examples

mjb – August 10, 2020

26

Computer Graphics

Cloth Example

cloth.mp4

Page 14: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

14

mjb – August 10, 2020

27

Computer Graphics

Pixar

Cloth Example

mjb – August 10, 2020

28

Computer Graphics

0mx cx kx

k

c

m

Functional Animation:Make the Object Want to Move Towards a Goal Position

Page 15: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

15

mjb – August 10, 2020

29

Computer Graphics

repulsivemx F

m

Functional Animation:While Making it Want to Move Away from all other Objects

repulserepulsive Power

CF

d

Repulsion Coefficient

Distance between the boundaries of the 2 bodies

Repulsion Exponent

mjb – August 10, 2020

30

Computer Graphics

k

c

m

Total Goal – Make the Free Body Move Towards its Final PositionWhile Being Repelled by the Other Bodies

mx cx kx F

Page 16: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

16

mjb – August 10, 2020

31

Computer Graphics

Increasing the Stiffness

Stiffness = 9

Stiffness = 3

Stiffness = 6

mjb – August 10, 2020

32

Computer Graphics

Increasing the Repulsion Coefficient

Repulse = 10 Repulse = 30

Page 17: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

17

mjb – August 10, 2020

33

Computer Graphics

avoid.mp4

Functional Animation

mjb – August 10, 2020

34

Computer Graphics

Motion Capture as an Input for Animation

Natural Point

Page 18: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

18

mjb – August 10, 2020

35

Computer Graphics

Motion Capture is for Faces Too

mjb – August 10, 2020

36

Computer Graphics

Tron I –They probably should have used physics, but didn’t

MAGI

Page 19: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

19

mjb – August 10, 2020

37

Computer Graphics

Card Trick

Rob Russ

mjb – August 10, 2020

38

Computer Graphics

Pixar Animated Shorts

Pixar

Page 20: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

20

mjb – August 10, 2020

39

Computer Graphics

class Keytimes:

void AddTimeValue( float time, float value );float GetFirstTime( );float GetLastTime( );int GetNumKeytimes( );float GetValue( float time );void PrintTimeValues( );

Sidebar: DIY KeyTime Animation

A C++ class can do it all for you

mjb – August 10, 2020

40

Computer Graphics

Keytimes Xpos;

intmain( int argc, char *argv[ ] ){

Xpos.AddTimeValue( 0.0, 0.000 );Xpos.AddTimeValue( 2.0, 0.333 );Xpos.AddTimeValue( 1.0, 3.142 );Xpos.AddTimeValue( 0.5, 2.718 );fprintf( stderr, "%d time-value pairs:\n", Xpos.GetNumKeytimes( ) );Xpos.PrintTimeValues( );

fprintf( stderr, "Time runs from %8.3f to %8.3f\n", Xpos.GetFirstTime( ), Xpos.GetLastTime( ) );

for( float t = 0.; t <= 2.01; t += 0.1 ){

float v = Xpos.GetValue( t );fprintf( stderr, "%8.3f\t%8.3f\n", t, v );

}}

DIY KeyTime Animation

Page 21: Animation - web.engr.oregonstate.eduweb.engr.oregonstate.edu/~mjb/cs550/PDFs/Animation.2pp.pdf · 2 mjb –August 10, 2020 3 Computer Graphics Keyframe Animation anim2.mp4 These icons

21

mjb – August 10, 2020

41

Computer Graphics

( 0.00, 0.000) ( 0.00, 0.000) ( 2.00, 0.333) ( 0.00, 0.000) ( 1.00, 3.142) ( 2.00, 0.333) ( 0.00, 0.000) ( 0.50, 2.718) ( 1.00, 3.142) ( 2.00, 0.333) 4 time-value pairsTime runs from 0.000 to 2.000

0.000 0.0000.100 0.2320.200 0.8060.300 1.5350.400 2.2340.500 2.7180.600 2.9890.700 3.1700.800 3.2580.900 3.2501.000 3.1421.100 2.9351.200 2.6461.300 2.3021.400 1.9241.500 1.5391.600 1.1691.700 0.8401.800 0.5741.900 0.3972.000 0.333

DIY KeyTime Animation

mjb – August 10, 2020

42

Computer Graphics

Using the System Clock for Timing in Display( )

#define MSEC 10000 // i.e., 10 secondsKeytimes Xpos, Ypos, Zpos;Keytimes ThetaX, ThetaY, ThetaZ;

. . .

if( AnimationIsOn ){

// # msec into the cycle ( 0 - MSEC-1 ):int msec = glutGet( GLUT_ELAPSED_TIME ) % MSEC;

// turn that into a time in seconds:float nowTime = (float)msec / 1000.;glPushMatrix( );

glTranslatef( Xpos.GetValue( nowTime ), Ypos.GetValue( nowTime ), Zpos.GetValue( nowTime ) );glRotatef( ThetaX.GetValue( nowTime ), 1., 0., 0. );glRotatef( ThetaY.GetValue( nowTime ), 0., 1., 0. );glRotatef( ThetaZ.GetValue( nowTime ), 0., 0., 1. );<< draw the object >>

glPopMatrix( );}

Number of msec in the animation cycle