Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
                };
            }
        }
Esempio n. 3
0
 public static void Draw2D(VRM10Controller target)
 {
 }
Esempio n. 4
0
 public VRMSpringBoneTreeView(TreeViewState treeViewState, VRM10Controller root)
     : base(treeViewState)
 {
     m_root = root;
     Reload();
 }
Esempio n. 5
0
        /// <summary>
        /// 3D の Handle 描画
        /// </summary>
        public static void Draw3D(VRM10Controller target, SerializedObject so)
        {
            var tree = GetTree(target, so);

            tree.Draw3D();
        }