Merge pull request #87817 from Dheatly23/fix-87813

Fix quaternion keyframe optimization for collinear rotation over 180 degrees
This commit is contained in:
Rémi Verschelde 2024-02-12 13:34:22 +01:00
commit 27575c4d4b
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -4016,7 +4016,7 @@ bool Animation::_quaternion_track_optimize_key(const TKey<Quaternion> t0, const
if (q0.get_axis().dot(q1.get_axis()) >= 1.0 - p_allowed_angular_error * 2.0) {
double a0 = Math::acos(t0.value.dot(t1.value));
double a1 = Math::acos(t1.value.dot(t2.value));
if (a0 + a1 >= Math_PI) {
if (a0 + a1 >= Math_PI / 2) {
return false; // Rotation is more than 180 deg, keep key.
}
// Calc velocities.