ソースを参照

Fix get_bone_pose_global_no_override()

(cherry picked from commit 565803ce3dbaabbd1cff76e3191c4297f212a0de)
Lyuma 2 年 前
コミット
9307d851a9
1 ファイル変更4 行追加4 行削除
  1. 4 4
      scene/3d/skeleton_3d.cpp

+ 4 - 4
scene/3d/skeleton_3d.cpp

@@ -925,18 +925,18 @@ void Skeleton3D::force_update_bone_children_transforms(int p_bone_idx) {
 
 			if (b.parent >= 0) {
 				b.pose_global = bonesptr[b.parent].pose_global * pose;
-				b.pose_global_no_override = b.pose_global;
+				b.pose_global_no_override = bonesptr[b.parent].pose_global_no_override * pose;
 			} else {
 				b.pose_global = pose;
-				b.pose_global_no_override = b.pose_global;
+				b.pose_global_no_override = pose;
 			}
 		} else {
 			if (b.parent >= 0) {
 				b.pose_global = bonesptr[b.parent].pose_global * b.rest;
-				b.pose_global_no_override = b.pose_global;
+				b.pose_global_no_override = bonesptr[b.parent].pose_global_no_override * b.rest;
 			} else {
 				b.pose_global = b.rest;
-				b.pose_global_no_override = b.pose_global;
+				b.pose_global_no_override = b.rest;
 			}
 		}
 		if (rest_dirty) {