<<  Animal Play and Animal Communication Animation Techniques  >>
Animation in Video Games
Animation in Video Games
Agenda
Agenda
The Goal of Game Animation
The Goal of Game Animation
Old School Animation
Old School Animation
Old School Animation (2)
Old School Animation (2)
Old School Animation (3)
Old School Animation (3)
Old School Animation (4)
Old School Animation (4)
Skeletons and Skins
Skeletons and Skins
Skeletons and Skins (2)
Skeletons and Skins (2)
Skeletons and Skins (3)
Skeletons and Skins (3)
Skeletons and Skins (4)
Skeletons and Skins (4)
Skeletons and Skins (5)
Skeletons and Skins (5)
Skeletons and Skins (6)
Skeletons and Skins (6)
How Skinning Works
How Skinning Works
How Skinning Works (2)
How Skinning Works (2)
How Skinning Works (3)
How Skinning Works (3)
How Skinning Works (4)
How Skinning Works (4)
How Skinning Works (5)
How Skinning Works (5)
How Skinning Works (6)
How Skinning Works (6)
The Math of Skinning
The Math of Skinning
The Math of Skinning (2)
The Math of Skinning (2)
The Math of Skinning (3)
The Math of Skinning (3)
The Math of Skinning (4)
The Math of Skinning (4)
The Math of Skinning (5)
The Math of Skinning (5)
The Math of Skinning (6)
The Math of Skinning (6)
The Math of Skinning (7)
The Math of Skinning (7)
The Math of Skinning (8)
The Math of Skinning (8)
The Math of Skinning (9)
The Math of Skinning (9)
The Math of Skinning (10)
The Math of Skinning (10)
The Math of Skinning (11)
The Math of Skinning (11)
Animation: Bringing Characters to Life
Animation: Bringing Characters to Life
Bringing Characters to Life (2)
Bringing Characters to Life (2)
Bringing Characters to Life (3)
Bringing Characters to Life (3)
Bringing Characters to Life (3)
Bringing Characters to Life (3)
Interpolation and Blending
Interpolation and Blending
Interpolation and Blending (2)
Interpolation and Blending (2)
Interpolation and Blending (3)
Interpolation and Blending (3)
Interpolation and Blending (4)
Interpolation and Blending (4)
The Animation Pipeline
The Animation Pipeline
Advanced Topics
Advanced Topics
Q&A
Q&A

: Animation in Video Games. : . : Animation in Video Games.ppt. zip-: 819 .

Animation in Video Games

Animation in Video Games.ppt
1 Animation in Video Games

Animation in Video Games

presented by Jason Gregory

jgregory@ea.com

2 Agenda

Agenda

The Goal of Game Animation Old School Animation Skeletons and Skins How Skinning Works (Graphically) The Math of Skinning Animation: Bringing a Character to Life Blending and other Advanced Topics

3 The Goal of Game Animation

The Goal of Game Animation

Our goal is simple: To produce realistic looking animated characters in our games!

4 Old School Animation

Old School Animation

The very first animated characters were 2D sprites. Just like traditional cel animation or flip books.

5 Old School Animation (2)

Old School Animation (2)

6 Old School Animation (3)

Old School Animation (3)

When we moved to 3D, our first animated characters were jointed. Each limb or part of a limb is a separate rigid object. Problem: Interpenetration at joints!

7 Old School Animation (4)

Old School Animation (4)

8 Skeletons and Skins

Skeletons and Skins

Modern approach is called skinning. Basic idea: Create a jointed skeleton. Attach the skin to the skeleton. Move skeleton around skin follows it. Skin is a 3D model made out of triangles. Skeleton is invisible only the skin is seen by the player.

9 Skeletons and Skins (2)

Skeletons and Skins (2)

10 Skeletons and Skins (3)

Skeletons and Skins (3)

Each vertex of each triangle is attached to one or more bones. We use weights to define bones influences. Weights at a joint must always add up to 1.

11 Skeletons and Skins (4)

Skeletons and Skins (4)

12 Skeletons and Skins (5)

Skeletons and Skins (5)

Skeletons have two kinds of poses: Bind Pose: The skeletons pose when the skin was first attached. Current Pose: Any other pose of the skeleton; usually a frame of an animation. The bind pose is like a home base for the characters skeleton. If you drew the mesh without its skeleton, it would appear in its bind pose.

13 Skeletons and Skins (6)

Skeletons and Skins (6)

Bind Pose

Current Pose

14 How Skinning Works

How Skinning Works

Consider a single vertex (v) skinned to the joint J1. The skeleton is in bind pose:

v

y

J1

J0

x

15 How Skinning Works (2)

How Skinning Works (2)

We want to find the vertexs new location (v') in the current pose.

v

y

v'

x

16 How Skinning Works (3)

How Skinning Works (3)

The basic idea is to transform the vertex: from model space into joint space The coordinates of the vertex are invariant in joint space! So, we can move the joint around all we want. When were done, we go back to model space to find the final position (v').

17 How Skinning Works (4)

How Skinning Works (4)

Heres the original vertex (v), but now in the joint space of J1:

v

y

J1

J0

x

18 How Skinning Works (5)

How Skinning Works (5)

No matter what pose the skeleton is in, v and v' are the same when in joint space.

v

y

v'

x

19 How Skinning Works (6)

How Skinning Works (6)

Finally, we go back to model space to find the final location of the vertex (v').

v

y

v'

x

20 The Math of Skinning

The Math of Skinning

Let Xi be the translation of joint i.

v

y

X1

X0

x

21 The Math of Skinning (2)

The Math of Skinning (2)

Let Qi be the rotation of joint i.

v

y

Q1

Q0

x

22 The Math of Skinning (3)

The Math of Skinning (3)

We describe the bind pose matrix of joint J1 as the matrix product of all the translations and rotations from the root joint to the joint in question:

23 The Math of Skinning (4)

The Math of Skinning (4)

Now consider what happens when we move the skeleton into the current pose:

y

v'

J0

J1

x

24 The Math of Skinning (5)

The Math of Skinning (5)

This time, let Ti be the translation of joint i, and let Ri be the rotation of joint i:

y

R0

v'

T0

R1

T1

x

25 The Math of Skinning (6)

The Math of Skinning (6)

The matrix describing the current pose is: which is similar to the bind pose matrix:

26 The Math of Skinning (7)

The Math of Skinning (7)

We multiply v by B1 to get it into joint space from the bind pose. Then we multiply that by P to get it back into model space, in the current pose.

27 The Math of Skinning (8)

The Math of Skinning (8)

Mathematically, this is:

28 The Math of Skinning (9)

The Math of Skinning (9)

Voila! We can find v' for any pose imaginable!

v

y

v'

x

29 The Math of Skinning (10)

The Math of Skinning (10)

We do these calculations on each and every vertex in the model. Then we draw the final vertices. For vertices that are affected by more than one joint, we take a weighted average of the positions due to each joint.

30 The Math of Skinning (11)

The Math of Skinning (11)

The weighted average for a vertex affected by joints j and k would be:

31 Animation: Bringing Characters to Life

Animation: Bringing Characters to Life

An animation is really just a sequence of poses at various points in time. The poses are called keys. An animation can be described mathematically as: { Pj (t) } ? j i.e. a set of pose matrices (keys) for all joints j, each of which is a function of time t. To play back the animation, we extract a pose at the current time index, skin the model to that pose, and then draw the model.

32 Bringing Characters to Life (2)

Bringing Characters to Life (2)

Run Weasel, run!

33 Bringing Characters to Life (3)

Bringing Characters to Life (3)

In a simple animation system, the keys are equally spaced in time. If we further restrict ourselves to integer time indices, then extracting a pose amounts to selecting the appropriate key.

Joint 1:

Joint 2:

Joint 3:

N1

time 0 1 2 3 4

time = t

34 Bringing Characters to Life (3)

Bringing Characters to Life (3)

To reduce memory overhead, the keys can be compressed, and might not be uniformly spaced. We will want to allow the time index to be a real number (i.e. floating-point). So, extracting a pose now requires interpolation between adjacent key frames.

Joint 1:

Joint 2:

Joint 3:

N1

time 0 1 2 3 4

time = t

35 Interpolation and Blending

Interpolation and Blending

To interpolate positions, we use simple vector linear interpolation (LERP).

36 Interpolation and Blending (2)

Interpolation and Blending (2)

To interpolate rotations, we must use quaternions. (It is next to impossible to interpolate matrices.) We have two choices when interpolating quats: Linear interpolation (LERP) Spherical linear interpolation (SLERP)

37 Interpolation and Blending (3)

Interpolation and Blending (3)

A quaternion LERP is identical to a vector LERP, but with 4 components. SLERP is like a LERP, but the weights are no longer (1-?) and ?. Instead they are:

38 Interpolation and Blending (4)

Interpolation and Blending (4)

LERP and SLERP can be used to interpolate between adjacent key frames for a specific time t. Interpolation can also be used to blend two entirely different animations together! For example, instead of a character being able to walk or run, he can do anything in between! The blend factor controls how much walk and how much run we see. ?=0: full walk ?=1: full run ?=0.5: half walk, half run

39 The Animation Pipeline

The Animation Pipeline

Typical animation pipeline: Pose extraction at current time t Pose blending Matrix palette generation Palette-driven rendering The matrix palette maps directly to modern vertex shader architectures (a.k.a. indexed skinning).

40 Advanced Topics

Advanced Topics

Key frame compression techniques Representing animations as spline curves instead of interpolated key frames Action state machines Skeletal partitioning Rag-doll physics

41 Q&A

Q&A

Thanks for your attention! Questions can also be sent to: Jason Gregory Electronic Arts Los Angeles jgregory@ea.com

Animation in Video Games
http://900igr.net/prezentacija/bez_uroka/animation-in-video-games-242188.html
c

1
900igr.net > > > Animation in Video Games