Title: Interactive Controllers V
1Interactive Controllers V
2What have we learned?
- Two approaches for animation
- Physically based
- Data driven
- Which is better for interactive controls?
3Lets (not) get physical
- During Limings WPE talk, Alla asked if physical
simulation had progressed much in 12 years - Hmm
- However, it can react in real time and is small,
which is good
4What about data driven?
- Data driven methods can produce good results
- Problem 1 Number of motion graph nodes can be
enormous - Problem 2 Search through this state space can
take a long time (not even interactive rates!)
5So why not combine powers?
- What we really want is the quality of the data
driven approach with the size of the physical
approach - These two papers suggest methods for decreasing
the size of the motion graph - They also have videos, but this time I get to
bash my own videos instead of someone elses!
6Two More Approaches
- Beaudoin, P., van de Panne, M., Poulin, P.
Technical Report 1296 Automatic Construction of
Compact Motion Graphs - Heck, R. Gleicher, M. Parametric Motion Graphs
Hedging his bets!
7Basic Idea
- Created a very structured graph with few nodes
- Edges between nodes represent transitions
- Good for quick decision making
- Not so great at optimal path planning
8Plan
- I found the Parametric Motion Graph paper more
interesting - They implemented a graph and a controller
- Other paper just a compact graph
- However, Id like to tell you the important facts
about the Compact Motion Graph paper - Do CMG first, then PMG
9CMGs
- Not focusing on building a controller
- Focus is on creating a structured motion graph
from unstructured motion capture data - Leads to motion bundles
- Ideal vision is to fully automate the process
of generating this motion graph - Well pretty close
10Overview
11Clustering
- Poses from the DB are clustered into k clusters
(specified by the user) after application of PCA - Like poses are now grouped together and can be
assigned a letter from a k-letter alphabet
12Clustering
Each letter represents a pose cluster, which
groups many similar poses together
13Clustering
Clusters are shown here near clusters that can
possibly be transitioned to. That is
pre-calculated and stored in a matrix
14Strings
- Now all of the poses in the DB can be converted
to letters corresponding to poses - s(j) is the new string
- p(j) keeps track of partitioned values
- Initially partitions are put between nodes which
cant possibly connect
15Sanity check
That string represents a motion, like a walk or a
run
16Motion Bundles
- To find bundles, pick the most common,
unpartitioned character in the DB - This indicates a pose cluster that has many
motions passing through it - Use that seed to find all substrings that contain
that character - Calculate which substring represents the most
motions - Voila, that substring is a motion bundle
17Uhh ... what?
18C is chosen since it is the most frequently
occurring character, i.e. pose
19We now want to find the most frequently seen
motion bundle. Consider all possible substrings
containing C, i.e. GOACEN, GOACHCEN, MBKCHJID,
etc.
20Now the substrings can be scored based on what
the user prefers. If he prefers shorter/longer
bundles, that can be factored in.
21Similar bundles, like GOACHEN and GOACEN need to
be in the same bundle. They build a substring
similarity matrix to check for this.
22After the bundle is created, the substrings
associated with that bundle are marked as
partitioned, and the algorithm repeats
23Tada!
24From strings to motions
- Many poses map to the same character
- They sample to determine the best point to enter
and exit a motion bundle - Motion is scored, and then a new motion is tried
- Algorithm is repeated until no further
improvement or a given number of iterations
25Motion Bundle Graph
- Create a node for each bundle
- Add edges between bundles if there are
overlapping poses - (i1,i2) in B1, (i2,i3) in B2, then an edge can be
built from B1 to B2 - Nice
26MBG
B5
B6
B5
B6
B1
B2
B1
B2
B3
B4
B3
B4
27Conclusion
- Determining edges was very simple
- Very small to store
- Paper claimed good results for its tests, but
then said that motion bundles may or may not mean
anything - ?
- Video was pretty bad, and didnt really
contribute much - Still required several parameters from the user
28Parametric Motion Graphs (PMG)
- Heck, R. Gleicher, M. Parametric Motion Graphs
- Basic Idea Parameterize motions to reduce the
number of clips needed - From a few sample motions, many motions can be
generated - End result looks like
29PMG
Run
Walk
Jump
30PMG
Represents a space of run motions
Run
Walk
Jump
31PMG
Represents a transition from one space to another
Represents a space of run motions
Run
Walk
Jump
32How?
- PMGs are constructed ahead of time in several
steps - Parameterize like motions
- Identify transitions between spaces
- Build edges (transitions)
33How?
- PMGs are constructed ahead of time in several
steps - Parameterize like motions
- Identify transitions between spaces
- Build edges (transitions)
34Step 1
- Surprisingly enough, use Kovar and Gleichers
work on parameterization - Categorize like motions, and then sample within
the boundaries of that motion - Creates many more motions without the need for
lots of mocap data
35Step 1
- This creates a motion space
- A motion space represents many versions of a
certain motion - Forms the basic unit in the PMG
Walk
36How?
- PMGs are constructed ahead of time in several
steps - Parameterize like motions
- Identify transitions between spaces
- Build edges (transitions)
37Step 2
- Transitions for PMG are different from MG
- In MG, transitions occur between frames
- For PMG, transitions must occur between spaces
- Thats where things get complicated
38Terminology Timeout
- Some terms to keep in mind for the next few
slides - Ns, Nt - Source node and target node
- M(t) function representing motion
- Pi(l) the parameterized motion space
represented by node Ni - l a vector of motion parameters
- Mi a short motion generated from a parametric
motion space with li vector
39PMG
In a transition from run to walk
Nt
Ns
Run
Walk
Jump
40Step 2
- Consider a basic example of transition finding
- Ns and Nt have parameter ranges which include
only 1 point
Ns
Nt
41Step 2
- Only one motion clip in each space
- Look for a frame near the end of Ns and at the
beginning of Nt - Using a distance metric, compute the distance
between all frames in the transition area - If the distance between two frames is a possible transition
- If the distance is Tbad, that is a bad
transition - Otherwise neutral
42Step 2
- Problem there are an infinite number of motions
in a parameterized space - Cant possibly compare all possible transitions
- Could discretize the parameterized space, but
then accuracy is lost - So
43How?
- PMGs are constructed ahead of time in several
steps - Parameterize like motions
- Identify transitions between spaces
- Build edges (transitions)
44Helmet time
- This part is a little thick
- Ill do an example after the explanation
- Just bear with me
45Step 3
- With an infinite number of motions, need to
sample transitions to create edges - Generate two lists of parameter samples, Ls and
Lt - Test transitions between each member of Ls with
each member of Lt - Use the same distance metric and mark good or bad
based on a threshold
46Step 3
- If one member of Ls has no good transitions to
any member of Lt, no edge can be created - Otherwise, create a bounding box around good
samples in Lt - This bounding box will be used for creating
transitions during run time
47Example
Nt
Ns
48Choose samples from Ns and Nt A few samples from
Ns and many samples from Nt
Nt
Ns
This is done to cover the range of motions you
could transition to
49After sampling, Ls and Lt are left.
Lt
Ls
50Transitions between samples from Ls and Lt are
now scored
Lt
Ls
51Good transitions are marked in yellow, neutral in
white, and bad in black
Lt
Ls
52A bounding box is then drawn around all good
samples
Lt
Ls
53Sometimes this encloses bad samples, which is not
permitted. In that case, the bounding box is
adjusted
Lt
Ls
54A single, normalized transition point is
calculated based on the weighted average of
eligible samples. This is used to define the
actual point at which the transition occurs.
Lt
Ls
55This process is repeated for all of the remaining
samples in Ls
Lt
Ls
56Step 3
- Now we have an edge representation
- An edge is a list of transition samples
- For each sample, the following is stored
- Value of the parameter vector li
- Bounding Box for li
- Average, normalized transition point for li
57Lookup!
- Now the graph is constructed
- How do lookups work?
Run
Walk
Jump
58Lookup!
- Lets consider a vector lx that we wish to look
up - Lx most likely was not sampled, so we consult its
nearest neighbors - Interpolate the bounding boxes of its nearest
neighbors to find a bounding box for lx - Find the average transition point from the
sampled transition points
59Calculate the transition point as before
Lets select an unsampled parameter vector
Nt
Ns
Compute a weighted average of the bounding boxes
Now compute the nearest sampled neighbors for
this parameter vector
60UI
- Author chooses parameterized motions
- These appears as disconnected nodes
- Author then selects where he wants an edge to be
created and sets threshold values (Tgood, Tbad)
61Results
- Edge creation can take between 2-147 seconds
based on complexity of two spaces - System then works interactively
- To the video!
62Comments The Bad/Ugly
- Who cares about random walks/boxing sequences?
- Cartwheeling is cheating!
- Cartwheel motion takes a long time
- Impossible to think about transitioning before it
is over - Model can pivot in place to adjust to the next
motion - Boo
- Walking was much less responsive/accurate
- This is because motions are limited to
transitioning at a point near the end of the clip - Responsiveness should be key for an interactive
controller - Accuracy should be another key
- Difference between Link walking off the edge and
saving Zelda! - Lives hang in the balance
63Comments The Bad/Ugly
- Edges can only be created if every motion in the
source can transition to some motion in the
target - Well sampling only covers 50 nodes in the
source, so how can this be guaranteed? - Edges can be created where transitions should not
be possible - Edges may not be created due to corner cases
- Ability to parameterize many similar motions can
be a weakness - Some kicks/punches that are considered similar
may be different enough to prevent edge generation
64Comments The Bad/Ugly
- Video only showed a user controlling the stupid
cartwheeling motion! - On the plus side, should be good for EAs
Cartwheeling Extreme Challenge (CEC)
Aggravating
65Comments The Good
- For longer motions, i.e. punching/kicking, it can
look pretty good - User would be less sensitive to slower
transitions since it makes more sense - A punch should be completed before another is
thrown
66Thoughts about these two papers
- PMG paper does demonstrate that a graph can be
created without a ton of mocap data - CMG creates a compact graph, but still maps back
to the mocap data - Id say PMG is a better model for interactive
controller, due to compactness
67Thoughts about interactive controllers
- The PMG controller implementation, like others,
still shows a fundamental flaw - Users mess everything up!
- They are frequently trying to turn in the middle
of a walk, or jump when they shouldnt be, or
trying to punch and kick at the same time, etc. - Users want to be able to do what they want when
they want
68Thoughts about interactive controllers
- Even though the McCann paper had some crazy/bad
results, heart was in the right place - Focus was on the user
- Maybe controllers need to look ahead to determine
what the user might want to do based on
environment
69Discussion