Interactive Controllers V - PowerPoint PPT Presentation

1 / 69
About This Presentation
Title:

Interactive Controllers V

Description:

Video was pretty bad, and didn't really contribute much ... Video only showed a user controlling the stupid cartwheeling motion! ... – PowerPoint PPT presentation

Number of Views:37
Avg rating:3.0/5.0
Slides: 70
Provided by: csto1
Category:

less

Transcript and Presenter's Notes

Title: Interactive Controllers V


1
Interactive Controllers V
  • Part Five The fifth

2
What have we learned?
  • Two approaches for animation
  • Physically based
  • Data driven
  • Which is better for interactive controls?

3
Lets (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

4
What 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!)

5
So 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!

6
Two 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!
7
Basic 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

8
Plan
  • 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

9
CMGs
  • 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

10
Overview
11
Clustering
  • 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

12
Clustering
Each letter represents a pose cluster, which
groups many similar poses together
13
Clustering
Clusters are shown here near clusters that can
possibly be transitioned to. That is
pre-calculated and stored in a matrix
14
Strings
  • 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

15
Sanity check
That string represents a motion, like a walk or a
run
16
Motion 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

17
Uhh ... what?
18
C is chosen since it is the most frequently
occurring character, i.e. pose
19
We now want to find the most frequently seen
motion bundle. Consider all possible substrings
containing C, i.e. GOACEN, GOACHCEN, MBKCHJID,
etc.
20
Now the substrings can be scored based on what
the user prefers. If he prefers shorter/longer
bundles, that can be factored in.
21
Similar bundles, like GOACHEN and GOACEN need to
be in the same bundle. They build a substring
similarity matrix to check for this.
22
After the bundle is created, the substrings
associated with that bundle are marked as
partitioned, and the algorithm repeats
23
Tada!
24
From 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

25
Motion 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

26
MBG
B5
B6
B5
B6
B1
B2
B1
B2
B3
B4
B3
B4
27
Conclusion
  • 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

28
Parametric 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

29
PMG
Run
Walk
Jump
30
PMG
Represents a space of run motions
Run
Walk
Jump
31
PMG
Represents a transition from one space to another
Represents a space of run motions
Run
Walk
Jump
32
How?
  • PMGs are constructed ahead of time in several
    steps
  • Parameterize like motions
  • Identify transitions between spaces
  • Build edges (transitions)

33
How?
  • PMGs are constructed ahead of time in several
    steps
  • Parameterize like motions
  • Identify transitions between spaces
  • Build edges (transitions)

34
Step 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

35
Step 1
  • This creates a motion space
  • A motion space represents many versions of a
    certain motion
  • Forms the basic unit in the PMG

Walk
36
How?
  • PMGs are constructed ahead of time in several
    steps
  • Parameterize like motions
  • Identify transitions between spaces
  • Build edges (transitions)

37
Step 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

38
Terminology 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

39
PMG
In a transition from run to walk
Nt
Ns
Run
Walk
Jump
40
Step 2
  • Consider a basic example of transition finding
  • Ns and Nt have parameter ranges which include
    only 1 point

Ns
Nt
41
Step 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

42
Step 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

43
How?
  • PMGs are constructed ahead of time in several
    steps
  • Parameterize like motions
  • Identify transitions between spaces
  • Build edges (transitions)

44
Helmet time
  • This part is a little thick
  • Ill do an example after the explanation
  • Just bear with me

45
Step 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

46
Step 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

47
Example
Nt
Ns
48
Choose 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
49
After sampling, Ls and Lt are left.
Lt
Ls
50
Transitions between samples from Ls and Lt are
now scored
Lt
Ls

51
Good transitions are marked in yellow, neutral in
white, and bad in black
Lt
Ls

52
A bounding box is then drawn around all good
samples
Lt
Ls
53
Sometimes this encloses bad samples, which is not
permitted. In that case, the bounding box is
adjusted
Lt
Ls
54
A 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
55
This process is repeated for all of the remaining
samples in Ls
Lt
Ls
56
Step 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

57
Lookup!
  • Now the graph is constructed
  • How do lookups work?

Run
Walk
Jump
58
Lookup!
  • 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

59
Calculate 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
60
UI
  • 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)

61
Results
  • Edge creation can take between 2-147 seconds
    based on complexity of two spaces
  • System then works interactively
  • To the video!

62
Comments 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

63
Comments 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

64
Comments 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
65
Comments 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

66
Thoughts 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

67
Thoughts 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

68
Thoughts 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

69
Discussion
  • Thanks!
Write a Comment
User Comments (0)
About PowerShow.com