blend two animations smoothly

Started by
1 comment, last by YoYoFreakCJ 14 years, 7 months ago
How to blend two animations smoothly? I have two ideas. First, artists make the transitional animation between two animations. I play the transitional aniamtion after previous animation, and then play the next animation. Second, write code to blend two animation. In the overlap of two animations, I blend the two animation with smoothly changing weight. Which idea is better? Or use both? Or use other better methods?
akira32 編程之家 Yahoohttp://tw.myblog.yahoo.com/akira32-akira32
Advertisement
Both are valid. The first one relies on the first animation ending before playing the transition then starting the next animation. This time can be considerable.

The second alternative is often used - simply blend each bone matrix from both animations over time. This will create smooth but sometimes jarring animations, but on the whole you will get away with it.

You can build on basic blending to create more complicated solutions (see Havok Behaviour for one) but to be honest this is an area of huge complexity and I would say out of the realm of a hobbyist who has other systems to work on!
On the one hand you might save some calculation time by using a transitional animation, but it probably won't look smooth on the other hand.
On the one hand it looks smooth if you blend [or interpolate as I like to call it] two animations, on the other hand it brings some calculations. But blending does not always result in a realistic animation unless you bring in some inverse kinematics.

I prefer interpolating, because it looks more realistic. It also depends on how you see the animation: if it is rather far from the viewer's eye [like in my game], it won't ruin too much. If you're developing a classic beat'em up, you should really be heading for realistic movements [which shouldn't be a problem of calculation time since "simple" beat'em ups like Tekken don't really calculate too much more than the actions of those two fighters].

As always, it depends on what you're doing ;)

Hope I could point you in some direction.

This topic is closed to new replies.

Advertisement