diff --git a/Assets/VRM10/Editor/Components/SpringBone/SpringBoneEditor.cs b/Assets/VRM10/Editor/Components/SpringBone/SpringBoneEditor.cs
deleted file mode 100644
index 36765b466..000000000
--- a/Assets/VRM10/Editor/Components/SpringBone/SpringBoneEditor.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-using UnityEditor;
-using UnityEditor.IMGUI.Controls;
-using UnityEngine;
-
-namespace UniVRM10
-{
- ///
- /// TreeView でアクティブな SpringBone, ColliderGroup を管理して、
- /// アクティブな SpringBone と ColliderGroup を SceneHandle で Edit する。
- ///
- public static class SpringBoneEditor
- {
- static SpringBoneTreeView s_treeView;
- static SpringBoneTreeView GetTree(Vrm10Instance target, SerializedObject so)
- {
- if (s_treeView == null || s_treeView.Target != target)
- {
- var state = new TreeViewState();
- s_treeView = new SpringBoneTreeView(state, target, so);
- s_treeView.Reload();
- }
- return s_treeView;
- }
-
- public static void Disable()
- {
- s_treeView = null;
- }
-
- public static MonoBehaviour Active;
-
- ///
- /// 2D の GUI 描画
- ///
- public static void Draw2D(Vrm10Instance target, SerializedObject so)
- {
- var tree = GetTree(target, so);
- if (GUILayout.Button("Reload"))
- {
- Disable();
- return;
- }
-
- tree.Draw2D();
- }
-
- ///
- /// 3D の Handle 描画
- ///
- public static void Draw3D(Vrm10Instance target, SerializedObject so)
- {
- var tree = GetTree(target, so);
- if (tree != null && target != null)
- {
- Active = tree.Draw3D(target.SpringBone);
- }
- }
- }
-}
diff --git a/Assets/VRM10/Editor/Components/SpringBone/SpringBoneEditor.cs.meta b/Assets/VRM10/Editor/Components/SpringBone/SpringBoneEditor.cs.meta
deleted file mode 100644
index 3e25de41b..000000000
--- a/Assets/VRM10/Editor/Components/SpringBone/SpringBoneEditor.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 33ca35799b1168949bb4466aae13dfd4
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/VRM10/Editor/Components/VRM10Window.cs b/Assets/VRM10/Editor/Components/VRM10Window.cs
index ad2125531..4701bf76f 100644
--- a/Assets/VRM10/Editor/Components/VRM10Window.cs
+++ b/Assets/VRM10/Editor/Components/VRM10Window.cs
@@ -32,7 +32,7 @@ namespace UniVRM10
void OnDisable()
{
- SpringBoneEditor.Disable();
+ s_treeView = null;
SceneView.duringSceneGui -= OnSceneGUI;
// Debug.Log("OnDisable");
@@ -61,31 +61,28 @@ namespace UniVRM10
}
m_root = id;
m_so = value != null ? new SerializedObject(value) : null;
- // m_constraints = null;
-
- if (Root != null)
- {
- var animator = Root.GetComponent();
- m_head = animator.GetBoneTransform(HumanBodyBones.Head);
- }
}
}
- Transform m_head;
-
- ScrollView m_scrollView = new ScrollView();
-
///
- /// public entry point
+ /// Scene 上の 3D 表示
+ ///
+ /// * Joint/Collider の Picker
+ ///
///
- ///
void OnSceneGUI(SceneView sceneView)
{
Tools.hidden = true;
- SpringBoneEditor.Draw3D(Root, m_so);
+ Draw3D(Root, m_so);
}
- //
+ ///
+ /// Window 上の GUI
+ ///
+ /// * 対象 VRM の保持
+ /// * 選択 Joint/Collider の表示
+ ///
+ ///
private void OnGUI()
{
if (Root == null)
@@ -101,7 +98,7 @@ namespace UniVRM10
}
// Root
- Root = (Vrm10Instance)EditorGUILayout.ObjectField("vrm1", Root, typeof(Vrm10Instance), true);
+ Root = (Vrm10Instance)EditorGUILayout.ObjectField("Editing Model", Root, typeof(Vrm10Instance), true);
if (Root == null)
{
return;
@@ -109,22 +106,47 @@ namespace UniVRM10
// active
EditorGUI.BeginDisabledGroup(true);
- EditorGUILayout.ObjectField("joint or collider", SpringBoneEditor.Active, typeof(MonoBehaviour), true);
+ EditorGUILayout.ObjectField("Selected Object", Active, typeof(MonoBehaviour), true);
EditorGUI.EndDisabledGroup();
- if (m_so == null)
- {
- m_so = new SerializedObject(Root);
- }
- if (m_so == null)
- {
- return;
- }
-
- m_so.Update();
- SpringBoneEditor.Draw2D(Root, m_so);
-
- m_so.ApplyModifiedProperties();
+ // if (m_so == null)
+ // {
+ // m_so = new SerializedObject(Root);
+ // }
+ // if (m_so == null)
+ // {
+ // return;
+ // }
+ // m_so.Update();
+ // SpringBoneEditor.Draw2D(Root, m_so);
+ // m_so.ApplyModifiedProperties();
}
+
+ SpringBoneTreeView s_treeView;
+ SpringBoneTreeView GetTree(Vrm10Instance target, SerializedObject so)
+ {
+ if (s_treeView == null || s_treeView.Target != target)
+ {
+ var state = new UnityEditor.IMGUI.Controls.TreeViewState();
+ s_treeView = new SpringBoneTreeView(state, target, so);
+ s_treeView.Reload();
+ }
+ return s_treeView;
+ }
+
+ public MonoBehaviour Active;
+
+ ///
+ /// 3D の Handle 描画
+ ///
+ public void Draw3D(Vrm10Instance target, SerializedObject so)
+ {
+ var tree = GetTree(target, so);
+ if (tree != null && target != null)
+ {
+ Active = tree.Draw3D(target.SpringBone);
+ }
+ }
+
}
}
diff --git a/Assets/VRM10/Editor/Vrm10InstanceEditor.cs b/Assets/VRM10/Editor/Vrm10InstanceEditor.cs
index 26b2ac7bd..3e17cb698 100644
--- a/Assets/VRM10/Editor/Vrm10InstanceEditor.cs
+++ b/Assets/VRM10/Editor/Vrm10InstanceEditor.cs
@@ -166,7 +166,7 @@ namespace UniVRM10
if (instance.Vrm != null)
{
- EditorGUILayout.HelpBox("SpringBone utility", MessageType.Info);
+ EditorGUILayout.HelpBox("SpringBone gizmo etc...", MessageType.Info);
if (GUILayout.Button("Open " + VRM10Window.WINDOW_TITLE))
{
VRM10Window.Open();