diff options
author | Juan Linietsky <reduzio@gmail.com> | 2021-10-13 15:49:14 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-13 15:49:14 -0300 |
commit | 78cdfff0ec43a13406a7654eaf89aad50ddf8fde (patch) | |
tree | 43014179b44fedcca852bc32ff13ac3cd6929b30 /scene/resources | |
parent | c515fdd0fb480fe4e833ddd6cfe8c8162cd15e81 (diff) | |
parent | 2dc823273e8d7d0eb92049c0d687f6a2c247ce13 (diff) |
Merge pull request #53765 from reduz/skeleton-remove-rest-influence
Remove REST transform influence in skeleton bones
Diffstat (limited to 'scene/resources')
-rw-r--r-- | scene/resources/skeleton_modification_3d_fabrik.cpp | 2 | ||||
-rw-r--r-- | scene/resources/skeleton_modification_3d_twoboneik.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/scene/resources/skeleton_modification_3d_fabrik.cpp b/scene/resources/skeleton_modification_3d_fabrik.cpp index e615615924..20ebbda256 100644 --- a/scene/resources/skeleton_modification_3d_fabrik.cpp +++ b/scene/resources/skeleton_modification_3d_fabrik.cpp @@ -168,7 +168,7 @@ void SkeletonModification3DFABRIK::_execute(real_t p_delta) { // Apply magnet positions: if (stack->skeleton->get_bone_parent(fabrik_data_chain[i].bone_idx) >= 0) { int parent_bone_idx = stack->skeleton->get_bone_parent(fabrik_data_chain[i].bone_idx); - Transform3D conversion_transform = (stack->skeleton->get_bone_global_pose(parent_bone_idx) * stack->skeleton->get_bone_rest(parent_bone_idx)); + Transform3D conversion_transform = (stack->skeleton->get_bone_global_pose(parent_bone_idx)); local_pose_override.origin += conversion_transform.basis.xform_inv(fabrik_data_chain[i].magnet_position); } else { local_pose_override.origin += fabrik_data_chain[i].magnet_position; diff --git a/scene/resources/skeleton_modification_3d_twoboneik.cpp b/scene/resources/skeleton_modification_3d_twoboneik.cpp index ae7a3bab7e..c1a71148a7 100644 --- a/scene/resources/skeleton_modification_3d_twoboneik.cpp +++ b/scene/resources/skeleton_modification_3d_twoboneik.cpp @@ -455,7 +455,7 @@ void SkeletonModification3DTwoBoneIK::calculate_joint_lengths() { joint_two_length = 0; for (int i = 0; i < bone_two_children.size(); i++) { joint_two_length += bone_two_rest_trans.origin.distance_to( - stack->skeleton->local_pose_to_global_pose(bone_two_children[i], stack->skeleton->get_bone_rest(bone_two_children[i])).origin); + stack->skeleton->get_bone_global_pose(bone_two_children[i]).origin); } joint_two_length = joint_two_length / bone_two_children.size(); } else { |