Here's how crytek marketing puts that :
Parametric Skeletal Animation: By blending example-motions based on user-defined parameters, we obtain responsive interactive control over a character with a focus on believability and the ability to adapt automatically and naturally to the changing circumstances of a game environment. This enables the character to travel at different speeds, follow paths where the direction changes smoothly or suddenly, move uphill or downhill, dynamically blend in varying amounts of hit reaction animation, and/or change the style of locomotion.
User would give "environement" parameters (mostly ) and then don't have to handle the blending complexity. An implementation could be a state machine that would do the blending, with input parameters, character current states, states weights, bones weights, etc.... At the end, the user don't have to handle the blending complexity, just give some parameters.
An AnimationBlender, but far more advanced, and at higher level.
Really simple illustrative example :
Let's imagine user defines parameters in a .anim file:
Code: Select all
Walk
{
ReplaceWithTimedBlending : (Run, 0.5, Linear)
Blend {Aim, Fire, Crouch}
}
Die_Sudden
{
Replace {Run, Aim, Fire, Crouch}
}
Die_In_Motion
{
ReplaceWithTimedBlending {Run, Aim, Fire, Crouch, 0.7, Linear}
}
SmallHit
{
ReplaceWithTimedBlending {Run, Aim, Fire, Crouch, 0.2, CircularLoop}
}
BadHit
{
ReplaceWithTimedBlending {Run, Aim, Fire, Crouch, 0.6, CircularLoop}
}
Aim
{
ReplaceWithTimedBlending { Fire }
Blend {Run, Crouch}
}
Run
{
ReplaceWithTimedBlending { (Walk, 0.5, Linear_x2) }
Blend {Aim, Fire, Crouch}
}
Code: Select all
myAnimatedEntity->setManagedAnimation("Walk")
Here's a list of papers on that.