diff options
author | TwistedTwigleg <beard.noah@gmail.com> | 2021-03-18 17:52:54 -0400 |
---|---|---|
committer | TwistedTwigleg <beard.noah@gmail.com> | 2021-03-18 17:52:59 -0400 |
commit | c15e23396da5d44b23dd6edc0df8ccaebbd9f6bc (patch) | |
tree | 7a28615e325483830492503fb2d96bcfc87a6273 | |
parent | 888051889ed0b63a6b88d3a7e0c2bfbbacde7b4b (diff) |
Fix for regression in SkeletonIK code
-rw-r--r-- | scene/3d/skeleton_ik_3d.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scene/3d/skeleton_ik_3d.cpp b/scene/3d/skeleton_ik_3d.cpp index 80c1f0ddb1..85da546430 100644 --- a/scene/3d/skeleton_ik_3d.cpp +++ b/scene/3d/skeleton_ik_3d.cpp @@ -268,6 +268,10 @@ void FabrikInverseKinematic::solve(Task *p_task, real_t blending_delta, bool ove p_task->skeleton->set_bone_global_pose_override(p_task->chain.tips[i].chain_item->bone, Transform(), 0.0, true); } + // Update the initial root transform + p_task->chain.chain_root.initial_transform = p_task->skeleton->get_bone_global_pose(p_task->chain.chain_root.bone); + p_task->chain.chain_root.current_pos = p_task->chain.chain_root.initial_transform.origin; + make_goal(p_task, p_task->skeleton->get_global_transform().affine_inverse(), blending_delta); if (p_use_magnet && p_task->chain.middle_chain_item) { |