40
How to Animate a Character You’ve Never Seen Before Chris Hecker, Maxis [email protected]

How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis [email protected]

Embed Size (px)

Citation preview

Page 1: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

How to Animate a Character

You’ve Never Seen BeforeChris Hecker, Maxis

[email protected]

Page 2: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com
Page 3: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

makepipeline

createassets

bakeassets

testassets

shipgame

traditionalgame pipeline development

Page 4: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

makepipeline

createassets

bakeassets

testassets

shipgame

game pipeline development

makepipeline

shipgame

createassets

bakeassets

?

spore

Page 5: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

What can players make?

Page 6: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

creatures

skin

paint

parts

bones

Page 7: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

creditsKees van ProoijenJordan MaynardRyan W. EnslowBernd RaabeJohn DeWeese

Bob KingGal RothJohn CiminoTony Gialdini

Steven SadlerPatrick Benjamin

Steve EngSteve Lim

Page 8: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

how the animation system sees creatures

skin, just for wysiwyg

bodiesxforms for mesh parts have capabilitiesparts, limbs, spine

joints between bodiesik chains

Page 9: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

very few limits on topology & morphology

tree structure

some socket constraints

scale limits

shader bone limits

see Chaim’s talk on the editors

Friday, 2:30pm — 3:30pm

Page 10: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

So, we have a problem.

How do we make themmoveshow intent & purposeconvey emotions?

Page 11: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

idea: describe the movement

1st approach: classically procedural

Page 12: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

Now, we have another problem.

Do we hireanimators who can program?programmers who can animate?

Page 13: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

take a step back

Want to hireanimators who can animate!

but how?

Page 14: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

How?

Show, don’t tell.

Example based, not descriptive.

Animate on one creature, the software applies it to the others...somehow.

Page 15: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

watch animators work

select bone

move bone

Page 16: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

selecting

Where is bone #57?images from http://highend3d.com/articles/features/25-4.html

Page 17: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

selecting

Need to add semanticsdescribe what you’re selecting.we call this description a “context”.

I’d like to select the left topmost grasper, please.

Page 18: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

selecting

(demo)

Page 19: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

selecting in code

This is how the code reasons about the creature.

The code needs to deal with the variable results.

This is hard.

Code performs a “context query,”can return 0, 1, or many bodies.

Page 20: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

moving

Move bone #57 to (3.14, 2.72, 1.62).

How do you punch something?

Page 21: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

moving

How do you punch something?

Again, we require semantics,describe the intent.this is the “frame” of the movement.

Move fist to the target, please.

Page 22: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

moving - madlibs

move grasper to same creature’s mouth.

move grasper to other creature’s grasper.

move mouth to external target.

move slasher to position relative to ground.

move slasher to absolute position.

Page 23: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

moving - scaling

Is a given movement “big” becausethe creature is big?the movement is inherently big?the target is far away?

The animator needs to tell the system.

(demo)

Page 24: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

moving - frame

This description of the movement specifies the frame in which it is recorded.

Even for multiple bodies on the same creature.

Page 25: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

moving - space

Generalizedrecorded in the frame of the movement mode.all keys are in generalized space.

Specializedprojected onto a single body on a creature.multiple projections for multiple bodies.

Page 26: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

a spore animation file

animationchannel

contextdescriptions (madlibs, scaling)keys

channelchannel...

Page 27: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

the spore animation runtime loop

for each creature, for each animationtick to time – interpolates generalized splinesfor each channel

evaluate context queryfor each body

specialize onto bodycompute gait and wigglesdump all goals into ik solver

Page 28: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

gaits

The game drives around an oriented particle.

The gait system tries to keep up.

Page 29: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

gaits

cluster legs based on length

move foot goals using parameters

step height & lengthtrigger & duty factor

lots of other parameters

toe curl, ankle anglehip rotation and translation

(demo)

Page 30: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

wiggles

We want “secondary animation”

tail bobbing, arm swaying,without manual keying.

Page 31: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

wiggles

Find “wiggleable” bodies that haven’t been selected.

Add secondary with damped spring mass system.

(demo)

Page 32: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

the constant question:

How well does an animation generalize across lots of

creatures?

Page 33: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

stochastic testing

AVG – Animation Validation Grid

Page 34: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

branching

split up creature-space

“has feet”

“has graspers”

“upright spine”

Page 35: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

ik solver

Decouple procedural systems from needing to think about creature topology.

Just set goals on bodies.

Page 36: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

ik solver

Want it to befast.accurate in workspace.fail gracefully if missing goal.decide not to hit goals for quality.path independent.

Page 37: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

ik solver history

0.0 – linked rigid bodies, constraints, controllersslow, inaccurate, unstable, not “posable”

1.0 – multibranch 6DOF CCDcomplex, slow, more accurate, not tunable

2.0 – particle IK – “control freak”fast, accurate, more tunable, twitchy, fails poorly

2.5 – particle IK – “laid back”fast, accurate, tunable, smooth, fails better

Page 38: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

useful takeaways?

target relative curves

ik solver experience

semantics are valuable

custom toolwas worth it

Page 39: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

(demo)

thank you

Page 40: How to Animate a Character Youve Never Seen Before Chris Hecker, Maxis checker@d6.com

How to Animate a Character

You’ve Never Seen BeforeChris Hecker, Maxis

[email protected]