From 08a2f0ae39e1cf492b3868c0bba2606c3cc6a6cd Mon Sep 17 00:00:00 2001 From: "Silc Lizard (Tokage) Renew" <61938263+TokageItLab@users.noreply.github.com> Date: Thu, 9 Jan 2025 05:22:47 +0900 Subject: [PATCH] Fix LookAtModifier rest space rotation --- scene/3d/look_at_modifier_3d.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scene/3d/look_at_modifier_3d.cpp b/scene/3d/look_at_modifier_3d.cpp index 578f6bdde9..24a9e6fec0 100644 --- a/scene/3d/look_at_modifier_3d.cpp +++ b/scene/3d/look_at_modifier_3d.cpp @@ -501,9 +501,11 @@ void LookAtModifier3D::_process_modification() { Transform3D bone_rest_space; int parent_bone = skeleton->get_bone_parent(bone); if (parent_bone < 0) { - bone_rest_space = skeleton->get_global_transform() * skeleton->get_bone_rest(bone); + bone_rest_space = skeleton->get_global_transform(); + bone_rest_space.origin += skeleton->get_bone_rest(bone).origin; } else { - bone_rest_space = skeleton->get_global_transform() * skeleton->get_bone_global_pose(parent_bone) * skeleton->get_bone_rest(bone); + bone_rest_space = skeleton->get_global_transform() * skeleton->get_bone_global_pose(parent_bone); + bone_rest_space.origin += skeleton->get_bone_rest(bone).origin; } // Calculate forward_vector and destination.