parametric animation blending - siggraph tehran local chapter

59
Parametric Animation Blending Tehran ACM SIGGRAPH Peyman Massoudi Animation programmer - Animator at Fanafzar

Upload: peyman-massoudi

Post on 18-Feb-2017

417 views

Category:

Software


2 download

TRANSCRIPT

Siggraph- Parametric Animation Blending

Parametric Animation Blending

Tehran ACM SIGGRAPH

Peyman Massoudi

Animation programmer - Animator at Fanafzar

IntroductionReal-time video games need real-time animations

Video games are dynamic environments

Early video games need continuous spaces of motions

Real time animation techniques are here for this reason

So as parametric animation blending

What topics are going to be covered?Representation of 3D animations

Animation blending and its different schemes

Ways to organize animation blending

Concept of parametric animation

Some practical cases to be studied

Representation of 3D animationsAnimations are stored in tracks

Animation tracks consist of transformation or scalar keyframes

3D characters are represented by skeletons

Skeleton is an abstract representation of a living entity body

Skeleton is a tree data structure which its nodes are called bones

Bones are containers for 3D transformations

Each bone has its own animation track

Representation of 3D animationsEach bone transformation is calculated based on its corresponding animation

Using keyframe interpolation to achieve the final pose

Representation of 3D animations

Graphical representation of a skeleton

Representation of 3D animations

Skeleton is a tree data structure

Animation blendingAnimation affect visual, logic and controls in video games

Each of which might work within a continuous space

Animation numbers are limited

Animation blending helps to create a continuous motion space with limited animations

Animation blending schemes:Mixing animationsAdditive animation blending

Animation blending MixingMixing refers to interpolation of different transformations

Transformations are obtained from animation tracks

The final mixed transformation is applied to each bone

Each animation has a weight showing its influence to final pose

Animation blending mixing

Animation blending mixing

Animation blending mixing animations

Animation blending mixingMixing two animations

Animation blending mixingMixing has different use cases:Transitional BlendingPartial BlendingSynchronous animation blending

Animation blending transitional blendingTransitional blending creates smooth transitions between source and destination animation(s)

Source animation(s) fade out and destination animation(s) fade in

Animation Blending Transitional Blending

Transitional blending between two animations

Animation blending partial blendingA portion of skeleton is being blended between different animations

Usually used for asynchronous events in game

Animation blending partial blending

A full body aim to be used in partial animation blending

Animation blending partial blending

Partial aim animation overrides locomotion animations

Animation blending synchronizing animationsSometimes the length of animations need to be interpolated as well as poses

For example blending between walk and run

To make synchronous blending, main poses of two animations have to be blendable

Two pose are blendable if their blend does not produce visual artifacts

Main poses of two animations should have almost same normalized times

Normalized Time 0Normalized Time 0.25Normalized Time 0.5Normalized Time 0.75

Animation blending synchronizing animations

Blending between walk and run without synchronization

Animation blending synchronizing animations

Synchronous blending between walk and run

Animation blending synchronizing animationsSometimes the main poses of two animations can not have same normalized times

For example a walk injured and a walk

Defining sync points in animations can solve the problem

Sync points specifies the main poses of animations

By defining sync points, the animations are divided into sub animations and sub animations can be synchronized separately

Animation blending synchronizing animations

A walk animation with 36 frames length

Animation blending synchronizing animations

A walk injured animation with 32 frames length

Normalized Time = 0Normalized Time = 0.5Normalized Time = 1Normalized Time = 0Normalized Time = 0.375Normalized Time = 1

Animation blending synchronizing animations

Animation blending additive animation blendingAdding animations without mixing between transformations

The transformation of additive animation is multiplied directly to the other animations based on its weight

Additive animations are usually created:

From the difference of two animation framesFrom the reference pose of characters

Animation blending additive animation blending

An additive look animation from reference pose

Animation blending additive animation blending

Additive look animation blend with idle animation

Animation Blending organizing animationsSo far, different animation blending techniques has been reviewed

Using different animation blending techniques in action

Animation blend tree is a famous way to organize animation blending

Animation blending organizing animationsEach node in a blend tree is a pose generator

Nodes are generating poses based on the weights provided with nodes

The leafs are animations

The other nodes except leafs, can use different mentioned blending schemes to generate poses

The final pose is generated based on the weights and the poses of each node

Animation blending organizing animations

A simple animation blend tree

Animation blending organizing animationsThere exists other well known animation organization techniques:

Animation state machinesMotion graphsParametric motion graphsReinforcement learning based motion controllers

Each of which can be combined with blend trees as well

Parametric animation blendingMany components in games works in continuous spaces

For example a path planner, or user input control system

The provided motion from other components need animation

Parametric animation system accepts motion parameters from other components as input

It returns suitable motion based on parameters

Parametric animation blendingThe returned motion can be calculated with different animation methods (procedural animation, blending or both)

For parametric animation blending it uses animation blending techniques

Parametric animation blending

Parametric animation blendingInput parameter samples are manually mapped on some specific motions at most times

The animations are being interpolated based on input parameter

A target aiming scenario can be considered as an example

The input parameter is a vector in characters modeling space

Input parameter shows the target going to be aimed

Parametric animation blendingThe input parameter is decomposed into two scalar parameters in animation system:

Horizontal angle to targetVertical angle to target

5 motions are used here

5 parameter samples are used to specify each 5 motions

Horizontal angle = 90Vertical angle = 0Horizontal angle = 0Vertical angle = -90Horizontal angle = 0Vertical angle = 0Horizontal angle = 0Vertical angle = 90Horizontal angle = 90Vertical angle = 0Five animations used for aimanimation blending

Parametric animation blending

Parametric animation blending for aim

Parametric animation Blending different techniquesThere exist different ways for parametric animation blending

Linearly mapping parameters to motion weights is the most famous one

Usually works in video games

Easy to implement

Smooth interpolation

Good accuracy at most cases

Parametric animation blending different techniquesTwo famous linear parameter mapping are:Barycentric coordinatesCartesian freeform

Parametric animation blending Barycentric coordinatesIn Barycentric parametric animation:

A triangle (2D input parameter) or tetrahedron( 3D input parameter) is formed The vertices show the motion examples Weight of each vertex shows the blend weight for each motion

Aiming example used barycentric blending

Parametric animation blending Barycentric coordinates

Aiming example using Barycentric parametric blending

Parametric animation blending Cartesian free formIn Cartesian free form animation blending:

Animations are placed in dimensions Each dimension blends between 2 animations The final pose is blended from blended pose of each dimension

This technique is good for parameters which are independent

Parametric animation blending Cartesian free formFor example speed in a locomotion system

The magnitude of speed can be mapped on one dimension

The angle of speed direction to camera can be mapped on other dimension

Parametric animation blending Cartesian freeform

A locomotion controller using Cartesian parametric blending

Parametric animation blendingThere exists other parametric animation blending techniques:

K-Nearest NeighborsRadial Basis FunctionInverse Blending

Linear parametric blending is the most used technique in video game industry

Parametric animation - beyond blendingParametric animation can be done using procedural animations as well:

Inverse kinematicsRun time rigsPhysics based animation

Parametric animation - beyond blendingAn example could be a hit response using physics based animation

Input parameter is the force vector

Force is decomposed into two parameters in animation system:Its direction is used to blend between three different unstable run animationsIts magnitude is used to blend between physics based animation and the animationThe magnitude is used to blend between unstable run and normal run as well

Parametric animation - beyond blending

Run animation

Parametric animation - beyond blendingUnstable run animation

Parametric animation - beyond blending

Unstable run left animation

Parametric animation - beyond blending

Unstable run right animation

Parametric animation - beyond blending

Parametric animation blending between unstable runs and physics base animationwith force parameter as input

ConclusionsContinuous space using limited animations

Smooth interpolation between motions

Abstract view of animations using parametric animation

Handling different events using animation blending

Questions?