Transition between montages cause t-pose if blend out frames are less than blend in frames

Build Type: ‘Binary’ build from the Unreal Launcher

Build version: 4.15.3-3450819+++UE4+Release-4.15

Detailed description of the issue:

In code, use Montage_Play to play montage A. Then detect whether A is finished using Montage_IsPlaying. When It’s finished, use Montage_Play to play another montage B.

If the duration of blend-out of montage A is shorter than duration of blend-in of montage B. It blends to T-pose because the sum of weight of A and B is less than 100%, as illustrate in the following picture:

212205-ill.png

Below is an example in game. Note how jump_end_montage has almost faded out before jump_end_crouch_montage has hardly blended in, resulting in 66% of total weight.

212209-real.png

I’ve used many engines, the default behavior of the animation system is always that the total weight of current playing animations should always 100% in total. It doesn’t make sense to blend with T-pose. If the blend-out of 1st animation is really too short, the 2nd animation should be blending with the pose of the last frame of the 1st animation. A similar problem is this: Is it possible to prevent sudden jumps to the Tpose between AnimMontage transitions? - Character & Animation - Epic Developer Community Forums

I’m not using animation blueprint and state machine, because I’m porting an old project where it has lots of this “play a => if a finished => play b” code logic. I think any commercial engine should have this ability.

???

Also see a discussion in the forum.
https://forums.unrealengine.com/development-discussion/animation/1347687-playing-montages-one-after-another-causing-it-not-playing-and-t-pose-showing