diff --git a/crates/bevy_animation/src/lib.rs b/crates/bevy_animation/src/lib.rs index 25ed18aaf2..9593d67f73 100644 --- a/crates/bevy_animation/src/lib.rs +++ b/crates/bevy_animation/src/lib.rs @@ -957,13 +957,10 @@ impl AnimationTargetContext<'_> { }; let rot_start = keyframes[step_start]; - let mut rot_end = keyframes[step_start + 1]; - // Choose the smallest angle for the rotation - if rot_end.dot(rot_start) < 0.0 { - rot_end = -rot_end; - } + let rot_end = keyframes[step_start + 1]; + // Rotations are using a spherical linear interpolation - let rot = rot_start.normalize().slerp(rot_end.normalize(), lerp); + let rot = rot_start.slerp(rot_end, lerp); transform.rotation = transform.rotation.slerp(rot, weight); }