You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
Use a new approach to fix bone pose override not being reset when IK animation is stopped.
This reverts PR #35460 & commit551c37167b. (cherry picked from commitbb0358dd8d)
This commit is contained in:
committed by
Rémi Verschelde
parent
56336b4e24
commit
63daa19538
@@ -41,21 +41,12 @@ void SkeletonIKEditorPlugin::_play() {
|
||||
return;
|
||||
|
||||
if (play_btn->is_pressed()) {
|
||||
|
||||
initial_bone_poses.resize(skeleton_ik->get_parent_skeleton()->get_bone_count());
|
||||
for (int i = 0; i < skeleton_ik->get_parent_skeleton()->get_bone_count(); ++i) {
|
||||
initial_bone_poses.write[i] = skeleton_ik->get_parent_skeleton()->get_bone_pose(i);
|
||||
}
|
||||
|
||||
skeleton_ik->start();
|
||||
} else {
|
||||
skeleton_ik->stop();
|
||||
|
||||
if (initial_bone_poses.size() != skeleton_ik->get_parent_skeleton()->get_bone_count())
|
||||
return;
|
||||
|
||||
for (int i = 0; i < skeleton_ik->get_parent_skeleton()->get_bone_count(); ++i) {
|
||||
skeleton_ik->get_parent_skeleton()->set_bone_pose(i, initial_bone_poses[i]);
|
||||
skeleton_ik->get_parent_skeleton()->set_bone_global_pose_override(i, Transform(), 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user