parametric animation blending - siggraph tehran local chapter
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?