250 likes | 656 Views
Verbs and Adverbs: Multidimensional Motion Interpolation Using Radial Basis Functions. Charles Rose. Bobby Bodenheimer. Michael F. Cohen. Presented by Sean Jellish. The Problem. Creating believable animated humans is hard Results are difficult to reuse
E N D
Verbs and Adverbs: Multidimensional Motion Interpolation Using Radial Basis Functions Charles Rose Bobby Bodenheimer Michael F. Cohen Presented by Sean Jellish
The Problem • Creating believable animated humans is hard • Results are difficult to reuse • Modifying an animation can be almost as hard as creating the original motion • Exact motion may not be known until runtime
The Interpolation Method • Sets of example motions are combined with an interpolation scheme to produce new motions • Interpolated motions must keep the look and feel of the examples • Examples are precious and hard to obtain • Interpolation scheme must be efficient to run in real time
Verbs and Adverbs • Verb – a parameterized motion • Walking, Running, Swimming • Adverb – the parameters for the motion • Happy, Tired, Frustrated, Confused • Verb Graph – a graph of motions with transitions between them
Adverb Spaces • An axes is defined for each adverb • This creates a multidimensional adverb space of all possible variations of a particular verb • Every example or interpolated motion can be placed in this adverb space based on the values of its parameters
Parts of the System • Two main parts: • Authoring system • Allows for creating verbs from sets of examples • Allows for combining verbs together • Runtime system • Determines which verb is currently in use • Calculates figure’s pose at each frame
Animated Figures • System assumes figures are constructed from a hierarchy of rigid links connected by joints • Each joint may have one or more DOFs • Root of hierarchy has 6 additional DOFs • The DOF functions are created by interpolating the example motions which are weighted by their adverbs (this is the hard part)
Restrictions on Examples • All examples of a particular verb must be structured similarly • Start on same foot • Take same number of steps • The examples must have a consistent use of joint angles
Annotation • Each example motion is placed into the adverb space by giving it adverb values • Key times must also be defined in each example • Each example is given a set of constraints
Key Times • Keytime – an instant when an important structural event occurs • Foot down • Foot up • Specifying keytimes enables the different example motions to be of different time durations
Time Warping • For interpolation to work, time must be warped so that examples of varying lengths can be compared • Clock time gets transformed into a generic time based on the key times • In this way all of the examples can be put into a canonical timeline and will be at the same structural point of motion for any given t
Constraints • Key times also specify the periods during which kinematic constraints should be enforced • Specific constraint conditions are not evaluated until runtime when they are triggered by a key time being crossed • To find the DOF changes needed to satisfy the constraint, solve the linear system:
Creating New Motions • Populate adverb space with examples • Every point p in the adverb space defines a motion with the specified parameters • Combine radial basis functions of all the examples and add in a linear polynomial • Polynomial provides an approximation to the space • Radial basis functions locally adjust the polynomial
Linear Approximation • Create a best fit hyperplane through the adverb space that minimizes the error between an example’s value in the plane and its actual value
Radial Bases • These are used to locally adjust the linear approximation returned by the hyperplane • The basis functions are dilated cubic B-splines • Dilation factor gives a support radius equal to twice the distance to nearest example
Summing Up the Math Radial basis functions with parameter p Interpolated control point for new motion The height of p in the approximated hyperplane Sum of all the radial basis functions at p Weights of the radial basis functions Actual value of each of our examples in the hyperspace Special square matrix created to cancel out the residuals Value of our examples interpolated into the approximated hyperplane The residuals formed from the introduction of the hyperplane
Summing Up the Math • Creates a wavy hyperplane • The value of each example is on the hyperplane and there is a spline shaped mountain extending away from it in all directions for an amount equal to twice the distance to a neighbor • A new motion will be somewhat effected by all of the examples but even more so by its close neighbors
Verb Graphs • A directed graph of verbs • Nodes correspond to verbs • Arcs correspond to transitions between verbs • If multiple arcs leaving a node, each arc is given a likelihood of occurring • Adverbs are shared across verbs even if they do not apply • Static
Transitions • Transitions are meant to smoothly move control between verbs • They map similar segments between two verbs • Transition duration is determined by taking the average of the lengths of the transition intervals of the two verbs in generic time • The two verbs are blended by fading the joint angles of the first verb out while fading those of the second verb in
Transitions • DOFs are found by interpolating joint positions between the verbs
Transitioning at Runtime • A search is made to find shortest path through graph from current verb to desired verb • Upcoming transitions and verbs stored in queue • Must remember position and orientation between verbs • If queue goes empty and verb ends, a transition is chosen based on the transition weights
Runtime System • Events inserted into event queue in timestamp order and associated with callback function • Three event types • Normal • Sync • Optional • Render event calculates DOFs for timestamp • Display event displays rendered image when timestamp equals clock
Runtime Processing Only computed when the parameters to a verb or the whole verb itself changes Only four of these are needed at a time and they are only computed once per verb adverb set