2
0
Эх сурвалжийг харах

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

Fix `LookAtModifier3D` rest space incorrect rotation
Rémi Verschelde 9 сар өмнө
parent
commit
f83919c088

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