164

evans hagedorn GDC07 public

Embed Size (px)

Citation preview

Page 1: evans hagedorn GDC07 public
Page 2: evans hagedorn GDC07 public
Page 3: evans hagedorn GDC07 public

Notes on downloaded slides: The accompanying videos can be

downloaded from: www.ChrisEvans3D.com/tutorials.htm

The videos were captured with various software which sometimes seriously butchers the framerate, please keep this in mind

We have added comments generally summing up what we said about each slide

The audio of our session in mp3 format can be purchased from ‘GDC Radio’ (http://store.cmpgame.com/product.php?id=1847&cat=)

Page 4: evans hagedorn GDC07 public

Christopher EvansSenior Technical Artist, Crytek

Responsibilities: R&D Artist Artist tools Getting characters in-game

Page 5: evans hagedorn GDC07 public

Hanno HagedornSenior Character Artist, Crytek

Responsibilities Character Heads

Modeling Texturing Rigging

Facial Setup Character Bodies (partially)

Page 6: evans hagedorn GDC07 public

What is this stuff? A cross section of current

character-related R&D at Crytek

Mostly WIP, all real-time, real assets

Presenting collaborative work Artist-driven, or real world

data-driven tools

Page 7: evans hagedorn GDC07 public

Intended Audience Intermediate to Advanced –

Requires experience and familiarity with the subject

Technical Artists (TA) and artists with technical interests

Not too complicated Simple, pragmatic approaches

Page 8: evans hagedorn GDC07 public

Session Overview Low Level

Deformation How you drive deformations How you deform geometry

Animation High Level

Character Variation Case Studies Internal Tools Asset Creation Facial Editor

Setup Animation

Page 9: evans hagedorn GDC07 public

What is a Character?

Page 10: evans hagedorn GDC07 public

What is a Character?

Person or creature?

Rejected internal concept art

Page 11: evans hagedorn GDC07 public

What is a Character?

Vehicle or machine withmoving parts?

Rejected internal concept art

Page 12: evans hagedorn GDC07 public

What is a Character?

Any object or set of objects whose movement is derived from a skeleton.

Page 13: evans hagedorn GDC07 public

What is a Character? People and creatures Vehicles and machines Moving character attachments

Guns, backpacks, heads, hands Dynamic, jointed physics

simulations Ropes, complex constraint setups

Pre-baked physics and broken objects Pre-baking cinematic destruction

Page 14: evans hagedorn GDC07 public

VIDEO: VIDEO: 00:0400:04

Page 15: evans hagedorn GDC07 public

The Low Level:

Deformation

George Bridgman, The Human Machine 1929

Page 16: evans hagedorn GDC07 public

The Low Level:

Deformation What drives the

deformation? Motion? Arbitrary inputs? Shader-based?

How do you move and deform geometry? Is it efficient? What kind of approach?

Page 17: evans hagedorn GDC07 public

VIDEO: 00:45

VIDEO: VIDEO: 00:4500:45

Page 18: evans hagedorn GDC07 public

The Low Level:

Deformation What drives the

deformation? Motion? Arbitrary inputs? Shader-based? (procedural noise)

How do you move and deform geometry? Is it efficient? What kind of approach?

Page 19: evans hagedorn GDC07 public

Driving Deformation:

Pose Driven Systems

George Bridgman, The Human Machine 1929

Page 20: evans hagedorn GDC07 public

Driving deformation:

Pose-Driven Systems

You can drive many things with skeletal poses: Morph Targets Joints Maps

Outside our industry: Not a new Not a new idea at allidea at all

Page 21: evans hagedorn GDC07 public

Simple 3 Vector Driver: Shape

VIDEO: VIDEO: 01:0301:03

Page 22: evans hagedorn GDC07 public

Simple Driver: Color and Shape

VIDEO: VIDEO: 01:0901:09

Page 23: evans hagedorn GDC07 public

Driving deformation:

Pose-Driven Systems

Pre-baked Baked to keys/shapes

Runtime In engine

Page 24: evans hagedorn GDC07 public

Pros/Cons:

Pre-Baked Pose-Drivers Pros:

Setup is in the asset creation app Implementations work well in most

animation-based games (joints) Cons:

Non-dynamic - Does not work with motion generated at runtime

Ragdoll physics Physically-based motion Other procedurally-generated motions

Page 25: evans hagedorn GDC07 public

Driving deformation:

Pose-Driven Systems

Pre-baked Baked to keys/shapes

Runtime In engine

Page 26: evans hagedorn GDC07 public

Driving deformation:

Runtime Pose-Drivers Pros:

Works dynamically in any situation Only limit is the number of poses you

define Cons:

Difficult to set up Need to mirror in the asset package

Constraints Parameterization

Page 27: evans hagedorn GDC07 public

Driving deformation:

Arbitrary-Drivers Holy grail of driven systems General Arbitrary Drivers

General input/output system Houdini, Shadetree, etc…

The more general the better Runtime expressions?

Not limited to deformation at all!Not limited to deformation at all!

Page 28: evans hagedorn GDC07 public

VIDEO: VIDEO: 01:1601:16

Page 29: evans hagedorn GDC07 public

VIDEO: VIDEO: 02:1102:11

Page 30: evans hagedorn GDC07 public

VIDEO: VIDEO: 02:5402:54

Page 31: evans hagedorn GDC07 public

VIDEO: VIDEO: 03:1903:19

Page 32: evans hagedorn GDC07 public

The Low Level:

Deformation What drives the

deformation? Character motion? Skeletal motion? Arbitrary inputs? Shader-based? (procedural noise)

How do you move and deform geometry? Is it efficient? Is it an Artist-centric approach?

Page 33: evans hagedorn GDC07 public

Deformation:

Skinning

George Bridgman, The Human Machine 1929

Page 34: evans hagedorn GDC07 public

Linear Skinning Weight vertices in a linear fashion to n bones

Definitely nothing new First use in a game (software)

Trespasser? (1997-1998) First use in a game (hardware)

dx8 via vert shaders dx7 rarity

Hardware ‘deceleration’

Page 35: evans hagedorn GDC07 public

Linear Skinning,or smooth skinning, or linear blend skinning..

Pros Industry Standard Lots of available research

Cons Poor volume preservation

The more a joint bends, the more it collapses Difficult to get specific control Can be more resource intensive

Page 36: evans hagedorn GDC07 public

“Hardware Skinning with Quaternions” (2004) by Jim Hejl (EA) Game Programming

Gems 4 First game to utilize it?

Our Implementation of:

Spherical Skinning

Page 37: evans hagedorn GDC07 public

Pros/Cons

Spherical Skinning

Pros Much better volume preservation Less resource usage

(Skinning position, tangent, and bi-normal)

72 bones per draw call ~48 (Linear w/ matrices) ~72 (Linear w/ quats)

20 instructions ~40 instructions (Linear w/ matrices) ~60 instructions (Linear w/ quats)

Page 38: evans hagedorn GDC07 public

VIDEO: VIDEO: 04:1104:11

Page 39: evans hagedorn GDC07 public

VIDEO: VIDEO: 04:4504:45

Page 40: evans hagedorn GDC07 public

Cons Needs support in the asset creation

package Plugin, preview, etc…

Inherent issues with some weighting configurations

N bones per vert Non-consecutive or interleaved bones

Pros/Cons

Spherical Skinning

Page 41: evans hagedorn GDC07 public

Interleaved BonesExample: Character Studio Biped

Page 42: evans hagedorn GDC07 public

Cons Needs support in the asset creation

package Plugin, preview, etc…

Inherent issues with some weighting configurations

N bones per vert Non-consecutive or interleaved bones

The volume preservation sometimes corrects things we have come to rely on linear skinning for

Pros/Cons

Spherical Skinning

Page 43: evans hagedorn GDC07 public

Interested in New Skinning Technology?

GDC Session: Skinning with DualQuaternions

Tomorrow (Fri)9am – 10amRoom 2009, West Hall

Page 44: evans hagedorn GDC07 public

Deformation:

Morph Targets

George Bridgman, The Human Machine 1929

Page 45: evans hagedorn GDC07 public

Deformation:

Morphs are Your Friends Also known as:

Blendshapes, shapes, vertex animation Artistic approach – Artist

defines the look completely Facial animation

Sculpt muscles, phonemes, visimes Corrective shapes

Driven by arbitrary inputs Baked simulations

Bending metal, ocean waves, soft tissue

Page 46: evans hagedorn GDC07 public

Keep them light in engine Sparse morphs

Only the verts that move Corrective shapes can be *very* light Only move the points that you have to

Sparse morphs on DX10 hardware Sparse morphs running on dx10 hardware

Supports binding to more than 4 color images Store morphs in a texture Blend between textures

There is a demo in the DX10 SDK They also have wrinkle maps in this example!

Deformation:

Morphs are Your Friends

Page 47: evans hagedorn GDC07 public

Driving Morphs

Pose-Driven morphs Artist-Sculpted Pipeline

Define pose vectors Artist sculpts the pose Link sculpts to those pose vectors Parameterize/blend between poses

Simulation-Sculpted Artist creates deformation Links deformation to some arbitrary

parameter in the engine

Page 48: evans hagedorn GDC07 public

Our asset creation tool Allows the artist to pose the rigged

character We decided to use pre-defined pose vectors

Generates a mesh in that pose for him to sculpt

Extracts the artists sculpt with the skin deformation culled

Created a shape for that pose

Driving Morphs

Page 49: evans hagedorn GDC07 public

VIDEO: VIDEO: 05:2605:26

Page 50: evans hagedorn GDC07 public

VIDEO: VIDEO: 06:4306:43

Page 51: evans hagedorn GDC07 public

Our In Engine Setup Apply the shape locally before the

skinning Assign the shape to the correct bone and

pose vector This is the simplest scenario

Single pose vector

Page 52: evans hagedorn GDC07 public

VIDEO: VIDEO: 06:4906:49

Page 53: evans hagedorn GDC07 public

Corrective morph shapesSAY GOODBYE TO SAY GOODBYE TO

SKINNING ARTIFACTS!SKINNING ARTIFACTS! Complex deformation

You don’t have to sculpt these You don’t have to sculpt these targets by hand!targets by hand!

The sky is the limit

This is a simple test, there are many more uses!

Page 54: evans hagedorn GDC07 public

VIDEO: VIDEO: 09:1409:14

Page 55: evans hagedorn GDC07 public

VIDEO: VIDEO: 10:3510:35

Page 56: evans hagedorn GDC07 public

Deformation:

Helper Joints

George Bridgman, The Human Machine 1929

Page 57: evans hagedorn GDC07 public

Helper Joints Jason Parks: Advanced

Deformations on Runtime Characters – GDC 05/06

http://www.jason-parks.com/HelperJoints/ http://www.jason-parks.com/MuscleSystems/

Great but less artist-driven Universal Needs a lot of technical support

Non-intuitive Examples

Same driving issues as with morphs Pre-baked vs. Runtime

Page 58: evans hagedorn GDC07 public

VIDEO: VIDEO: 10:4610:46

Page 59: evans hagedorn GDC07 public

Example: Shark

Page 60: evans hagedorn GDC07 public

Example:Example:NanosuitNanosuit

Page 61: evans hagedorn GDC07 public

Example:Example:NanosuitNanosuit

Page 62: evans hagedorn GDC07 public

Example:Example:NanosuitNanosuit

Helper Joints (12):Helper Joints (12): Deltoids (shoulders) (8 joints)Deltoids (shoulders) (8 joints)

4 on each shoulder4 on each shoulder Pectoralis (chest) (2 joints)Pectoralis (chest) (2 joints)

1 per side1 per side Latissimus (back) (2 joints)Latissimus (back) (2 joints)

1 per side1 per side

Page 63: evans hagedorn GDC07 public

VIDEO: VIDEO: 11:2011:20

Page 64: evans hagedorn GDC07 public

All these systems, when do I use what? Dependent:

On your pipeline Result you want to achieve

Page 65: evans hagedorn GDC07 public

The Low Level:

Animation

George Bridgman, The Human Machine 1929

Page 66: evans hagedorn GDC07 public

The Low Level: Animation IK Retargetting

Look IK Analytical IK for arms/legs

Feet on uneven surfaces CCD IK

7 DoF for bone chains Used for retargeting and planting

Parameterization + IK can yield good results IK fallback for dynamic motion

Page 67: evans hagedorn GDC07 public

VIDEO: VIDEO: 12:0812:08

Page 68: evans hagedorn GDC07 public

Character Variation

Page 69: evans hagedorn GDC07 public

Character Variation

System supports 3 types of variation: Morph-based Attachment-based Decal-based

Page 70: evans hagedorn GDC07 public

Character Variation Morph-based

Thinner/fatter body types Change size/position of design elements Characters divided up into ‘regions’ to

mask morph variations (vertex colors) Attachment-based

Skin Attachments Object Attachments

Decal-based Small 128px dirt, scars, camouflage, etc Layers on top of current texture

Super low resource usage

Page 71: evans hagedorn GDC07 public

Case Study:

Variations for E3 2006

3 x 128px Camouflage Face Textures

1 x 128px Dirt Texture 2 Head Variations 2 Body Variations

Thinner/Fatter body types, Longer/Shorter clothing

Attachments Skin Attachments

Hands, Heads Object Attachments

Pouches, Helmets, Ammunition

Page 72: evans hagedorn GDC07 public

E3 Character Variations 1/10

Page 73: evans hagedorn GDC07 public

E3 Character Variations 2/10

Page 74: evans hagedorn GDC07 public

E3 Character Variations 3/10

Page 75: evans hagedorn GDC07 public

E3 Character Variations 4/10

Page 76: evans hagedorn GDC07 public

E3 Character Variations 5/10

Page 77: evans hagedorn GDC07 public

E3 Character Variations 6/10

Page 78: evans hagedorn GDC07 public

E3 Character Variations 7/10

Page 79: evans hagedorn GDC07 public

E3 Character Variations 8/10

Page 80: evans hagedorn GDC07 public

E3 Character Variations 9/10

Page 81: evans hagedorn GDC07 public

E3 Character Variations 10/10

Page 82: evans hagedorn GDC07 public

Issues We Ran Into

Morph-based Maintaining point index in LODs (variations)

Too Much Detail? Not enough? Designer setup time

Procedural runtime generation (examples-based)

How much of a difference can the player perceive ingame?

Parameterization Non-Face attachments

Eye placement Bone attachments

Page 83: evans hagedorn GDC07 public

Case Study:

Character Flash Freezing Initial Freezing

Must be dynamic Any character in any pose or animation Slowly blend, do not ‘pop’ to a stop

Broken Pieces Physicalized parts

Interactive, physicalized parts Realistic

Actual parts

Page 84: evans hagedorn GDC07 public

Case Study:

Character Flash Freezing Implementation:

Frozen Mesh Procedural ‘Ice Shader’ (layer) Brittle Physicalized mesh

Shattering Ice particles emitted from joint phys proxies Broken human bodyparts are created for most

of the bones in the character. Pieces are spawned in the orientation of their

associated joints Broken pieces

Left as individual physicalized entities Pickable

Page 85: evans hagedorn GDC07 public

VIDEO: VIDEO: 13:1213:12

Page 86: evans hagedorn GDC07 public

Baking Out Simulations: Isn’t That Cheating?

Page 87: evans hagedorn GDC07 public

Baking Out Simulations: Isn’t That Cheating? Same thrilling game experience

for mid-low end users (though less interactive)

Benefits: Musculo-skeletal systems/Organic

Deformation Bake to joint-driven morphs Bake to joint-driven joints

Rigid-body physics Bake rigid body physics to keyframe data

1 joint per piece

Baked but still interactive?

Page 88: evans hagedorn GDC07 public

Baking Out Simulations: Interactivity Organics:

Pose-driven joints or morphs Physicalization of Rigid Bodies

Use the keyframe data to generate accurrate impulse

Physicalize the animated rigid body upon collision

Physicalize after the animation plays Physicalize after the joint has reached x

distance from the object center. Physicalize when received damage

Page 89: evans hagedorn GDC07 public

Pre-Baked Rigid Bodies

VIDEO: VIDEO: 14:0014:00

Page 90: evans hagedorn GDC07 public

Baking Out Simulations: Characters at Heart Keyframe data

Parameterization Blend between multiple simulations Inherent issues, but for low spec: much

better than the alternative Compression Can have attachments

Deformible (bending metal etc) Can attach other characters to it

Page 91: evans hagedorn GDC07 public

Baking Out Simulations: Issues We Ran Into

Draw calls Meshes need to be merged into one

Compression Piles of debris Export surroundings for

external sim Wavefront OBJ export

Terrain, objects, etc… Can run the simulation in Max, Maya,

etc… Better animator control for ‘Hollywood 11’

Page 92: evans hagedorn GDC07 public

VIDEO: VIDEO: 14:1714:17

Page 93: evans hagedorn GDC07 public

Hanno HagedornSenior Character Artist, Crytek

Responsibilities Character Heads

Modeling Texturing Rigging

Facial Setup Character Bodies (partially)

Page 94: evans hagedorn GDC07 public

I am going to talk about...

Pipeline improvements Polybump2

How we do faces, from the texture to animation:

Asset Creation Textures Model

Shaders Facial Animation System

Page 95: evans hagedorn GDC07 public

Crytek PolyBump2

Crunches assets with many millions of polygons

Capable of combining multiple models, each with many millions of polygons into one single calculation

32/64bit 3dsmax plugin or standalone application

Exports normal maps, displacement maps, and ambient occlusion maps

Gives out a storage file containing 100x the accuracy of a normal texture map

Extracting new data without recalculation

Page 96: evans hagedorn GDC07 public
Page 97: evans hagedorn GDC07 public
Page 98: evans hagedorn GDC07 public
Page 99: evans hagedorn GDC07 public
Page 100: evans hagedorn GDC07 public

Unoccluded Area Direction

Simulates self shadowing inside the normal map while softening hard details

Combines ACC with the normalmap Softshadowing within the normalmap Applies a very soft look to the skin

Page 101: evans hagedorn GDC07 public

VIDEO: VIDEO: 14:4014:40

Page 102: evans hagedorn GDC07 public
Page 103: evans hagedorn GDC07 public

VIDEO: VIDEO: 14:5814:58

Page 104: evans hagedorn GDC07 public

Asset Creation

Get good texture reference Bad texture reference Synchronizing texture maps Get the right software

Page 105: evans hagedorn GDC07 public

Get Good Texture Reference

We all love hand painted textures Hand painting * photorealistic / Schedule =

pain in the ass Well lit photos are key

Unwanted lighting will plague you later on The less lighting information will get

you closer to your desired result

Page 106: evans hagedorn GDC07 public

Bad texture reference

Very colored Very blurry Shiny nose Lots of direct and

only few ambient light

Very contrasted shading

Page 107: evans hagedorn GDC07 public

Good Texture reference

Equaly lit Very sharp No major highlights Interesting details Small

colorvariations in the skin

Page 108: evans hagedorn GDC07 public

Synchronizing texture maps

Model and texture should feel like a single unit

Pore stamps can be very handy but… Never fit the existing texture Create a repetitive look

Make sure your diffuse and spec map complement your high frequency or pore-detailed model

Page 109: evans hagedorn GDC07 public

Base Diffuse Texture

Page 110: evans hagedorn GDC07 public

Normalmap

Page 111: evans hagedorn GDC07 public

Specular Map

Page 112: evans hagedorn GDC07 public

Diffuse with ACC lighting

Page 113: evans hagedorn GDC07 public

Get the right Software

Z-Brush and Mudbox Great programs for sketching out faces and

shapes Great programs for polishing and detailing

assets Silo is looking very promising

Combining Modeling and sculpting into one workflow

Page 114: evans hagedorn GDC07 public

Shader

Rim Lighting Sub-Surface Scattering (SSS) Eyes

Page 115: evans hagedorn GDC07 public

Rim Lighting

Simulates greasy reflective Skin Works against the classic specular look of

last-gen games There is no such thing as ‘specular light’

in reality Similar to Fresnel reflections Adding ‘rim lighting’ by

Ambient color Cubemap Realtime automated cubemaps

Page 116: evans hagedorn GDC07 public

No Rim Lighting

Page 117: evans hagedorn GDC07 public

Basic Rim Lighting

Page 118: evans hagedorn GDC07 public

Strong Rim Lighting

Page 119: evans hagedorn GDC07 public

Sub-Surface Scattering (SSS)

Approximates light rays penetrating the skin and exiting another spot

Gives skin a nice reddish, fleshy look Even simulates thin vascular tissue

SSS-map allows us to define the skins thickness and color

Page 120: evans hagedorn GDC07 public

No SSS

Page 121: evans hagedorn GDC07 public

Basic SSS

Page 122: evans hagedorn GDC07 public

Strong SSS

Page 123: evans hagedorn GDC07 public

Eyes - Windows to the Soul

3dsMax screenshot

Eyes - Windows to the Soul

After several tests we decided to: Build a physically correct Eye model with

internal physiology Works better with new shader

possibilities Special Iris shader; glinting

Page 124: evans hagedorn GDC07 public

Eyes - Windows to the Soul

3dsMax screenshot

After several tests we decided to: Build a physically correct Eye model with

internal physiology Works better with new shader

possibilities Special Iris shader; glinting

Page 125: evans hagedorn GDC07 public

Eyes - Self shadowing

3dsMax screenshot

Eyes - Windows to the Soul

After several tests we decided to: Build a physically correct Eye model with

internal physiology Works better with new shader

possibilities Special Iris shader; glinting

Page 126: evans hagedorn GDC07 public

Eyes - Self shadowing

Using overlaying geometry for emulating the shaded eye

Comments Eyelids and Eyeballs together This allows us to simulate the shadowing

of the eyelashes and surrounding bone structure

3dsMax screenshot

Page 127: evans hagedorn GDC07 public

Eyes - Self shadowing

Self shadowing Using the same base as the Eyelids

saves textures and draw calls Eyeball moves under the Overlaying

Geometry while keeping the shading

3dsMax screenshot

Page 128: evans hagedorn GDC07 public

Eyes - Self shadowing

Self shadowing Using the same base as the Eyelids

saves textures and draw calls Eyeball moves under the Overlaying

Geometry while keeping the shading

3dsMax screenshot

Page 129: evans hagedorn GDC07 public

Eyes - Self shadowing

VIDEO: VIDEO: 15:0915:09

Page 130: evans hagedorn GDC07 public

Eyes – In motion

Eyelids move along the Eyeball via Fleshy Eyelid morphs

Automated Saccadic eye motion Automated Eye Blinking, synced with the

Saccadic eye motion

Page 131: evans hagedorn GDC07 public

Eyes – In motion

Eyelids move along the Eyeball via Fleshy Eyelid morphs

Automated Saccadic eye motion Automated Eye Blinking, synced with the

Saccadic eye motion

VIDEO:VIDEO:15:2315:23

Page 132: evans hagedorn GDC07 public

Facial Animation System

Page 133: evans hagedorn GDC07 public

Facial Animation System

Muscle Morphs Expressions

Linear Non-linear Phonemes Visimes

Joystick Controls Optical Flow

Page 134: evans hagedorn GDC07 public

Morphs – The Base

Muscle Morphs 89 Morphs

Each muscle a separate morph A facial expression is sculpted by “muscle

morphs” Asymmetrical morph setup

Natural face movement Adds character to the facial movement

Automatic ‘fleshy eye’ movement Eyelids move synchronized with the Eyeball

Using same topology for all faces Easy transfer of morphs between meshes

Page 135: evans hagedorn GDC07 public

Expressions – The Connection

Unlimited scalability Core system is very simple, yet very scalable

Multiple linear and nonlinear expressions

Can combine linear and non-linear Setting the base for the phoneme

extraction

Page 136: evans hagedorn GDC07 public

Linear Expressions

Linear blending of morphs or drivers

VIDEO: VIDEO: 15:3415:34

Page 137: evans hagedorn GDC07 public

Non-linear expressions

Non-linear blending of morphs Use multiple morphs to:

create a non-linear motion keep the volume of complex or twisted shapes

VIDEO:VIDEO:16:1316:13

Page 138: evans hagedorn GDC07 public

Expressions are drivers

System drives Morphs, Bones, and attachments All elements are treated equally Can be easily combined or parameterized

Page 139: evans hagedorn GDC07 public

Phonemes Phonemes

The smallest distinctive units of speech, or the mouth shapes to make each sound

Strong and weak phonemes for appropriate usage

96 phonemes, 48 strong and 48 weak

Seamless blending between strong and weak phonemes

Page 140: evans hagedorn GDC07 public

Phoneme Phonemes

The smallest distinctive units of speech, or the mouth shapes to make each sound

Strong and weak phonemes for appropriate usage

96 phonemes, 48 strong and 48 weak

Seamless blending between strong and weak phonemes

Page 141: evans hagedorn GDC07 public

Visimes

Visual simplification of phonemes Phonemes like ‘o’, ‘u’, ‘oo’, and

‘ow’ are visually very similar 14 visimes, 7 strong, 7 weak Massively simplifies the work

with visimes Tweaking several phonemes at

once is handy when transferring the setup to a different character

Page 142: evans hagedorn GDC07 public

Visual simplification of phonemes In use by 2D animations for over

90 years

Visimes

Page 143: evans hagedorn GDC07 public

Muscle/Phoneme/Visime Breakdown

Page 144: evans hagedorn GDC07 public

Phoneme Extraction Automated process

Automatically generates Phonemes from a pure Audio file

Manual process Breaks words into phonemes and places them

in the timeline corresponding to the audio waveform

barely needs touching up, easy to handle, batch-able.

Page 145: evans hagedorn GDC07 public

VIDEO: VIDEO: 17:1517:15

Page 146: evans hagedorn GDC07 public

Joystick Controls – Manual input device

User-friendly and intuitive Your Grandma could animate with this! Animator’s focus will be on animation and not

dragging sliders back and forth

Page 147: evans hagedorn GDC07 public

Joystick Controls – Manual input device

User-friendly and intuitive Your Grandma could animate with this! Animator’s focus will be on animation and not

dragging sliders back and forth

Page 148: evans hagedorn GDC07 public

Joystick Controls – Manual input device

Handles 4 diff expressions at once Example, Up/Down could be the

‘jawdropper’ and ‘jaw_presser’, Left/Right could be the ‘mouth_widener’ and ‘mouth_tightener’.

Automatically excludes opposing morphs

No more fighting with frown/smile or open/close

Puppeting Real-time Mouse input capture

Page 149: evans hagedorn GDC07 public

VIDEO: VIDEO: 17:2817:28

Page 150: evans hagedorn GDC07 public

VIDEO: VIDEO: 18:3218:32

Page 151: evans hagedorn GDC07 public

Joystick Controls – scalability

User-definable Joysticks plug into the cure interface, any

expressions can be mapped to them Scalable toolset

Can be used to limit the detail an animator sees

You can predefine A, B, and C class joystick setups

We got inspired by Jason Osipa’s book: ‘Stop Staring’, which popularized joystick control setups

Page 152: evans hagedorn GDC07 public

Optical-flow based Facial Motion Capture

Page 153: evans hagedorn GDC07 public

Optical-flow based Facial Motion Capture

Getting good results with a minimum amount of work

No expensive hardware needed Animators here have used webcams at their

desks. Very easy to polish

MoCap system uses the same interface the animators do (joysticks)

Combines with the auto phoneme extraction to polish lip-sync

Page 154: evans hagedorn GDC07 public

Theoretical Marker Setup

Page 155: evans hagedorn GDC07 public

Practical Marker Setup

Page 156: evans hagedorn GDC07 public

Marker corresponding joysticks

Page 157: evans hagedorn GDC07 public

Marker corresponding joysticks

VIDEO:VIDEO:19:4219:42

Page 158: evans hagedorn GDC07 public

The Capturing Workflow

VIDEO: VIDEO: 19:5519:55

Page 159: evans hagedorn GDC07 public

Final Result

VIDEO: VIDEO: 21:1121:11

Page 160: evans hagedorn GDC07 public

Final Result

Casual B-Level animation: Used a Hand camera for Motion capturing Used Eyeliner for the Markers Untouched Facial Mocap Data Automatic Phoneme Extraction Procedural Eye blinking Procedural Eye behavior

Page 161: evans hagedorn GDC07 public

Final Result

VIDEO: VIDEO: 21:2221:22

Page 162: evans hagedorn GDC07 public

Upcoming Improvements:

Giving animations to the animation department for:

Enhancing and exagerating the acting Polishing up Mocap Data Cleaning up Mocap Data Keys

Improved Phoneme Blending Improvement will come, but our mainfocus is

on finishing up the game right now ;]

Page 163: evans hagedorn GDC07 public

Questions?