Hello, we have observed an “overshooting” phenomenon in character animation blending (sudden amplitude changes during character rotation, see the attachment for details). After investigation, we found that the cause is when the character rotates with a large amplitude, the sign of the dot product result of quaternions between adjacent frames changes, leading to a shift in the interpolation path and resulting in visually discontinuous rotation. We do not wish to modify the art assets. Therefore, we would like to inquire about the following issues:
1.Does UE have an existing solution to avoid such issues?
2.Are there other interpolation methods that can ensure a constant rotation direction and avoid path switching?
Steps to Reproduce
1.Open the animation blueprint BP located in the /All/Game/LocalTest folder within the project.
2.Ensure that both TrueBlendTime and FalseBlendTime are set to 0.4.
3.Enable the BlendPoses boolean variable to set the initial pose as Stop.
4.Before starting playback, disable BlendPoses so that the transition from Stop to Start begins immediately.
Hi, the animations that you’re attempting to blend here are really quite different because of the facing orientations. One is facing in nearly a 180-degree offset versus the other (ie. one is facing left and the other is facing right). As a result, any blend between these animations isn’t going to look good. I think that the discontinuity that you see is just due to how the maths works out when blending between the opposite-facing directions, so you end up with a rotation flip, which causes the large pop that you see. The usual recommendation in this kind of situation would be to add more animations - having a stopping animation that begins with the character in the same orientation as the start animation would resolve this problem.
However, if you aren’t able to change the source animations you could look at using an Inertialized or Dead Blend based blend rather than the regular interpolation between the two animations. When I was testing with your setup, this gave a more consistent blend without the discontinuity:
[Image Removed]