void OnEnable() { m_target = (VRM10Controller)target; if (m_target.Expression.ExpressionAvatar != null && m_target.Expression.ExpressionAvatar.Clips != null) { m_expressionKeyWeights = m_target.Expression.ExpressionAvatar.Clips.ToDictionary(x => ExpressionKey.CreateFromClip(x), x => 0.0f); m_sliders = m_target.Expression.ExpressionAvatar.Clips .Where(x => x != null) .Select(x => new ExpressionSlider(m_expressionKeyWeights, ExpressionKey.CreateFromClip(x))) .ToList() ; } if (m_target?.Meta.Meta != null) { m_metaEditor = Editor.CreateEditor(m_target.Meta.Meta); } m_controller = PropGui.FromObject(serializedObject, nameof(m_target.Controller)); m_meta = PropGui.FromObject(serializedObject, nameof(m_target.Meta)); m_expression = PropGui.FromObject(serializedObject, nameof(m_target.Expression)); m_lookAt = PropGui.FromObject(serializedObject, nameof(m_target.LookAt)); m_firstPerson = PropGui.FromObject(serializedObject, nameof(m_target.FirstPerson)); }
public SelectedSpringGUI(VRM10Controller target, SerializedObject so, int i) : base(so, i) { Property = so.FindProperty($"SpringBone.Springs.Array.data[{i}]"); { var prop = Property.FindPropertyRelative("ColliderGroups"); _springColliderGroupList = new ReorderableList(so, prop); _springColliderGroupList.drawElementCallback = (rect, index, isActive, isFocused) => { rect.height -= 4; rect.y += 2; SerializedProperty element = prop.GetArrayElementAtIndex(index); var elements = target.SpringBone.ColliderGroups; var element_index = elements.IndexOf(element.objectReferenceValue as VRM10SpringBoneColliderGroup); var colliderGroups = target.SpringBone.ColliderGroups.Select((x, y) => x.GUIName(y)).ToArray(); var new_index = EditorGUI.Popup(rect, element_index, colliderGroups); if (new_index != element_index) { element.objectReferenceValue = elements[new_index]; } }; } { var prop = Property.FindPropertyRelative("Joints"); _springJointList = new ReorderableList(so, prop); _springJointList.drawElementCallback = (rect, index, isActive, isFocused) => { SerializedProperty element = prop.GetArrayElementAtIndex(index); rect.height -= 4; rect.y += 2; EditorGUI.PropertyField(rect, element); }; } }
public static void Draw2D(VRM10Controller target) { }
public VRMSpringBoneTreeView(TreeViewState treeViewState, VRM10Controller root) : base(treeViewState) { m_root = root; Reload(); }
/// <summary> /// 3D の Handle 描画 /// </summary> public static void Draw3D(VRM10Controller target, SerializedObject so) { var tree = GetTree(target, so); tree.Draw3D(); }