Sign in to follow this  

Skeletal Animation - Transitioning to a new animation?

This topic is 2946 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

What do games normally do, for example, when a character switches from a running animation to a jumping animation? I'm about to implement skeletal animation, and I'm unsure if I should even implement inter-animation interpolation at all. Do games normally finish the current period of the running animation before switching to the jumping animation, or do they do some kind of dynamic interpolation between these two animations to make the transition smooth?

Share this post


Link to post
Share on other sites
Ultimately you want the player input response to be quick, which will mean cutting a run cycle short. Interpolation is a quick fix for a lot of problems, and a good fit if it's your first go at skeletal animation.

Share this post


Link to post
Share on other sites
Is it really possible to just render two animations at the same time for a brief moment? I suspect that might look weird at times. For example, a running animation transitioning to a walking animation would only work if the two animations were played in phase with each other.

Share this post


Link to post
Share on other sites
Quote:
Original post by ouraqt
Is it really possible to just render two animations at the same time for a brief moment? I suspect that might look weird at times. For example, a running animation transitioning to a walking animation would only work if the two animations were played in phase with each other.

Animation blending with a fast (in time) varying blend factor can be used. However, if the 2 animations are too different, it may be needed to do some intermediate animations, e.g. blending from A to B and then from B to C.

The different speeds of animations, e.g. the mentioned blending from running to going, can (and often must) be equilized by scaling the time that is used on the joint tracks. Scaling the time is also a fine instrument for realising different running speeds, and varying the scale factor over time is of course suitable for acceleration/decelaration of animations in general. Just be aware that each animation uses its own scaling factor. And yes, perhaps a phase offset need to be considered, resulting in a computation of the local time when the new animation is entered.

In some special cases the animation blending will be done between 2 animations of the same purpose, e.g. running and going (instead of going and shooting, for example). In such cases it may be possible to design the animations so that the blending duration could be reduced to zero (i.e. to switching) while the time scaling is sufficient to model the transition.

Share this post


Link to post
Share on other sites


With more complicated animations (lots of cyclic repeating patterns with different stances/poses) you would have intermediate animations to transition from one movement type to another (prefereably with a few neutral poses that can be shared for both sides of and entering/exiting cycle.

Standing -> transition1 --> run1 <-> run2 [repeat] --> transition2 -> standing

Standing--> transition3 --> crawl1 <-> crawl2 [repeat] --> transition4 -> standing



The poses at the end of each animation would match the start of the next one

Share this post


Link to post
Share on other sites
Wow, that paper describes exactly what I'm trying to do. But I think it's overkill for my system (and it's a lot of math to digest).

I think I found a simpler approximation. So we know how each joint needs to be oriented at any particular time in an animation. Well...what if we had some kind of inertia-based interpolation scheme. So each bone can have angular momentum.

In other words, the joint positions are not exactly defined by the animation sequences, but rather, they "spring" into those positions. So, for example, when switching from one animation to another, the joints would "spring" to their new positions. So basically, I'm suggesting a sort of "smoothing out" of the animations sequences (using damped spring-like thingies, almost how like the suspension in a car makes the ride smoother for the passengers), such that the transitions will not be discontinuous.

It might look weird for some animations, but it's a step up from having no interpolation at all.

I'm not sure if any of that made sense.

Share this post


Link to post
Share on other sites

This topic is 2946 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this