Title: How to Animate a Character
1How to Animate a Character
Youve Never Seen Before
Chris Hecker, Maxis checker_at_d6.com
2(No Transcript)
3traditional
game pipeline development
make pipeline
create assets
bake assets
test assets
ship game
4game pipeline development
spore
make pipeline
create assets
bake assets
test assets
ship game
make pipeline
ship game
create assets
bake assets
?
5What can players make?
6creatures
skin paint parts bones
7credits
Kees van Prooijen Jordan Maynard Ryan W.
Enslow Bernd Raabe John DeWeese
Bob King Gal Roth John Cimino Tony Gialdini
Steve Eng Steve Lim
Steven Sadler Patrick Benjamin
8how the animation system sees creatures
skin, just for wysiwyg bodies xforms for mesh
parts have capabilities parts, limbs,
spine joints between bodies ik chains
9very few limits on topology morphology
tree structure some socket constraints scale
limits shader bone limits see Chaims talk on
the editors Friday, 230pm 330pm
10So, we have a problem.
How do we make them move show intent
purpose convey emotions?
11idea describe the movement
1st approach classically procedural
12Now, we have another problem.
Do we hire animators who can program? programmers
who can animate?
13take a step back
Want to hire animators who can animate!
but how?
14How?
Show, dont tell.
Example based, not descriptive. Animate on one
creature, the software applies it to the
others...somehow.
15watch animators work
select bone
move bone
16selecting
Where is bone 57?
images from http//highend3d.com/articles/features
/25-4.html
17selecting
Need to add semantics describe what youre
selecting. we call this description a context.
Id like to select the left topmost grasper,
please.
18selecting
(demo)
19selecting in code
Code performs a context query, can return 0, 1,
or many bodies.
This is how the code reasons about the
creature. The code needs to deal with the
variable results. This is hard.
20moving
How do you punch something?
Move bone 57 to (3.14, 2.72, 1.62).
21moving
How do you punch something?
Move fist to the target, please.
Again, we require semantics, describe the
intent. this is the frame of the movement.
22moving - madlibs
move grasper to same creatures mouth.
move grasper to other creatures grasper.
move mouth to external target.
move slasher to position relative to ground.
move slasher to absolute position.
23moving - scaling
Is a given movement big because the creature is
big? the movement is inherently big? the target
is far away?
The animator needs to tell the system.
(demo)
24moving - frame
This description of the movement specifies the
frame in which it is recorded. Even for multiple
bodies on the same creature.
25moving - space
Generalized recorded in the frame of the movement
mode. all keys are in generalized
space. Specialized projected onto a single body
on a creature. multiple projections for multiple
bodies.
26a spore animation file
animation channel context descriptions (madlibs,
scaling) keys channel channel...
27the spore animation runtime loop
for each creature, for each animation tick to
time interpolates generalized splines for each
channel evaluate context query for each
body specialize onto body compute gait and
wiggles dump all goals into ik solver
28gaits
The game drives around an oriented particle.
The gait system tries to keep up.
29gaits
cluster legs based on length move foot goals
using parameters step height length trigger
duty factor lots of other parameters toe curl,
ankle angle hip rotation and translation
(demo)
30wiggles
We want secondary animation tail bobbing, arm
swaying, without manual keying.
31wiggles
Find wiggleable bodies that havent been
selected. Add secondary with damped spring mass
system.
(demo)
32the constant question
How well does an animation generalize across lots
of creatures?
33stochastic testing
AVG Animation Validation Grid
34branching
split up creature-space
has feet has graspers upright spine
35ik solver
Decouple procedural systems from needing to think
about creature topology. Just set goals on
bodies.
36ik solver
Want it to be fast. accurate in workspace. fail
gracefully if missing goal. decide not to hit
goals for quality. path independent.
37ik solver history
0.0 linked rigid bodies, constraints,
controllers slow, inaccurate, unstable, not
posable 1.0 multibranch 6DOF CCD complex,
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
38useful takeaways?
target relative curves
semantics are valuable
ik solver experience
custom tool was worth it
39thank you
(demo)
40How to Animate a Character
Youve Never Seen Before
Chris Hecker, Maxis checker_at_d6.com