diff --git a/scene/3d/skeleton_3d.cpp b/scene/3d/skeleton_3d.cpp index 1b46879079..4ea80fb373 100644 --- a/scene/3d/skeleton_3d.cpp +++ b/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) {