Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EditorInspector - Custom EditorPlugin for Skeletons #33871

Closed
wants to merge 2 commits into from

Conversation

marstaik
Copy link
Contributor

The current skeleton editor in the EditorInspector lags hard with many bones and is very inflexible and hard to use for editing very large skeletons.

This is an initial push for a custom SkeletonEditor that has an instant load for complex skeletons with a Bone tree, allows bone re-parenting, keying, enabling/disabled bone pose activity, and all the basics that the previous system allowed.

Preview:
https://f.staik.net/f/2d1.mp4

Based off of: #33684

Allows Skeletons to share a common definition, as well as export
skeletons for future use
@marstaik marstaik force-pushed the skel_editor branch 2 times, most recently from 67023d7 to b6c2085 Compare November 25, 2019 07:17
@Chaosus Chaosus added this to the 4.0 milestone Nov 25, 2019
@fire
Copy link
Member

fire commented Jan 18, 2020

Bugfix.

diff --git a/editor/plugins/skeleton_editor_plugin.cpp b/editor/plugins/skeleton_editor_plugin.cpp
index 464720b53e6..08d76c9faf5 100644
--- a/editor/plugins/skeleton_editor_plugin.cpp
+++ b/editor/plugins/skeleton_editor_plugin.cpp
@@ -32,6 +32,8 @@
 
 #include "core/io/resource_saver.h"
 #include "editor/editor_file_dialog.h"
+#include "editor/editor_properties.h"
+#include "editor/editor_scale.h"
 #include "editor/plugins/animation_player_editor_plugin.h"
 #include "scene/3d/collision_shape.h"
 #include "scene/3d/physics_body.h"
@@ -680,8 +682,7 @@ void SkeletonEditor::_notification(int p_what) {
 			create_editors();
 			update_joint_tree();
 			update_editors();
-
-			get_tree()->connect("node_removed", this, "_node_removed");
+			get_tree()->connect("node_removed", this, "_node_removed", Vector<Variant>(), Object::CONNECT_ONESHOT);
 			file_dialog->connect("file_selected", this, "_file_selected");
 			joint_tree->connect("item_selected", this, "_joint_tree_selection_changed");
 			joint_tree->connect("item_rmb_selected", this, "_joint_tree_rmb_select");

Edited
Edited #2

get_tree()->connect is still a problem

Edited #
Trying CONNECT_ONESHOT

@marstaik
Copy link
Contributor Author

This work has been updated here: #36409

@sabudum
Copy link

sabudum commented Apr 13, 2020

How does one get this plugin?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants