浏览代码

Merge pull request #101311 from TokageItLab/fix-lookat-rest

Fix `LookAtModifier3D` rest space incorrect rotation
Rémi Verschelde 9 月之前
父节点
当前提交
f83919c088
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      scene/3d/look_at_modifier_3d.cpp

+ 4 - 2
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.