From adea40f0de2f100580bb5741b4f7a3026640fd14 Mon Sep 17 00:00:00 2001 From: moondog <159832633+dog-on-moon@users.noreply.github.com> Date: Wed, 27 Aug 2025 13:46:07 -0500 Subject: [PATCH] Fix physics interpolation with springbones --- scene/3d/spring_bone_simulator_3d.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scene/3d/spring_bone_simulator_3d.cpp b/scene/3d/spring_bone_simulator_3d.cpp index 5659238cf1..ced3f5876d 100644 --- a/scene/3d/spring_bone_simulator_3d.cpp +++ b/scene/3d/spring_bone_simulator_3d.cpp @@ -1660,7 +1660,7 @@ void SpringBoneSimulator3D::reset() { void SpringBoneSimulator3D::_init_joints(Skeleton3D *p_skeleton, SpringBone3DSetting *setting) { if (setting->center_from == CENTER_FROM_WORLD_ORIGIN) { - setting->cached_center = p_skeleton->get_global_transform(); + setting->cached_center = p_skeleton->get_global_transform_interpolated(); } else if (setting->center_from == CENTER_FROM_NODE) { if (setting->center_node == NodePath()) { setting->cached_center = Transform3D(); @@ -1669,7 +1669,7 @@ void SpringBoneSimulator3D::_init_joints(Skeleton3D *p_skeleton, SpringBone3DSet if (!nd) { setting->cached_center = Transform3D(); } else { - setting->cached_center = nd->get_global_transform().affine_inverse() * p_skeleton->get_global_transform(); + setting->cached_center = nd->get_global_transform_interpolated().affine_inverse() * p_skeleton->get_global_transform_interpolated(); } } } else {