diff --git a/Assets/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs b/Assets/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs
index 8d7699112..2bb0fbd61 100644
--- a/Assets/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs
+++ b/Assets/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs
@@ -59,12 +59,12 @@ namespace UniVRM10
m_showJointSettings = EditorGUILayout.Foldout(m_showJointSettings, "Joint Settings");
if (m_showJointSettings)
{
- LimitBreakSlider(m_stiffnessForceProp, 0.0f, 4.0f, 0.0f, Mathf.Infinity);
- LimitBreakSlider(m_gravityPowerProp, 0.0f, 2.0f, 0.0f, Mathf.Infinity);
+ Vrm10EditorUtility.LimitBreakSlider(m_stiffnessForceProp, 0.0f, 4.0f, 0.0f, Mathf.Infinity);
+ Vrm10EditorUtility.LimitBreakSlider(m_gravityPowerProp, 0.0f, 2.0f, 0.0f, Mathf.Infinity);
EditorGUILayout.PropertyField(m_gravityDirProp);
EditorGUILayout.PropertyField(m_dragForceProp);
EditorGUILayout.Space();
- LimitBreakSlider(m_jointRadiusProp, 0.0f, 0.5f, 0.0f, Mathf.Infinity);
+ Vrm10EditorUtility.LimitBreakSlider(m_jointRadiusProp, 0.0f, 0.5f, 0.0f, Mathf.Infinity);
}
if (serializedObject.ApplyModifiedProperties())
@@ -143,53 +143,6 @@ namespace UniVRM10
return jointIndex == (spring.Joints.Count - 1);
}
- ///
- /// スライダーと数値入力で限界値の違う、所謂「限界突破スライダー」を作成する
- /// `EditorGUILayout.PropertyField` の代替として利用する
- ///
- private static void LimitBreakSlider(SerializedProperty property, float sliderLeft, float sliderRight, float numberLeft, float numberRight)
- {
- var label = new GUIContent(property.displayName);
- var currentValue = property.floatValue;
-
- var rect = EditorGUILayout.GetControlRect();
-
- EditorGUI.BeginProperty(rect, label, property);
-
- rect = EditorGUI.PrefixLabel(rect, label);
-
- // slider
- {
- EditorGUI.BeginChangeCheck();
-
- var sliderRect = rect;
- sliderRect.width -= 55.0f;
- rect.xMin += rect.width - 50.0f;
-
- var clampedvalue = Mathf.Clamp(currentValue, sliderLeft, sliderRight);
- var sliderValue = GUI.HorizontalSlider(sliderRect, clampedvalue, sliderLeft, sliderRight);
-
- if (EditorGUI.EndChangeCheck())
- {
- property.floatValue = sliderValue;
- }
- }
-
- // number
- {
- EditorGUI.BeginChangeCheck();
-
- var numberValue = Mathf.Clamp(EditorGUI.FloatField(rect, currentValue), numberLeft, numberRight);
-
- if (EditorGUI.EndChangeCheck())
- {
- property.floatValue = numberValue;
- }
- }
-
- EditorGUI.EndProperty();
- }
-
void OnSceneGUI()
{
if (m_root == null)
diff --git a/Assets/VRM10/Editor/Components/VRM10ObjectLookAtEditor.cs b/Assets/VRM10/Editor/Components/VRM10ObjectLookAtEditor.cs
index 45576c5bb..3e53763af 100644
--- a/Assets/VRM10/Editor/Components/VRM10ObjectLookAtEditor.cs
+++ b/Assets/VRM10/Editor/Components/VRM10ObjectLookAtEditor.cs
@@ -27,10 +27,8 @@ namespace UniVRM10
{
EditorGUILayout.LabelField(_name);
EditorGUI.indentLevel++;
- // EditorGUILayout.PropertyField(_CurveXRangeDegree);
- _CurveXRangeDegree.floatValue = EditorGUILayout.Slider("CurveXRangeDegree", _CurveXRangeDegree.floatValue, 0, 90.0f);
- // EditorGUILayout.PropertyField(_CurveYRangeDegree);
- _CurveYRangeDegree.floatValue = EditorGUILayout.Slider("CurveYRangeDegree", _CurveYRangeDegree.floatValue, 0, yMax);
+ Vrm10EditorUtility.LimitBreakSlider(_CurveXRangeDegree, 0, 90.0f, 0, 90.0f);
+ Vrm10EditorUtility.LimitBreakSlider(_CurveYRangeDegree, 0, yMax, 0, 90.0f);
EditorGUI.indentLevel--;
EditorGUILayout.Space();
}
diff --git a/Assets/VRM10/Editor/Vrm10EditorUtility.cs b/Assets/VRM10/Editor/Vrm10EditorUtility.cs
new file mode 100644
index 000000000..4df9bfba3
--- /dev/null
+++ b/Assets/VRM10/Editor/Vrm10EditorUtility.cs
@@ -0,0 +1,55 @@
+using UnityEditor;
+using UnityEngine;
+
+namespace UniVRM10
+{
+ public static class Vrm10EditorUtility
+ {
+ ///
+ /// スライダーと数値入力で限界値の違う、所謂「限界突破スライダー」を作成する
+ /// `EditorGUILayout.PropertyField` の代替として利用する
+ ///
+ public static void LimitBreakSlider(SerializedProperty property, float sliderLeft, float sliderRight, float numberLeft, float numberRight)
+ {
+ var label = new GUIContent(property.displayName);
+ var currentValue = property.floatValue;
+
+ var rect = EditorGUILayout.GetControlRect();
+
+ EditorGUI.BeginProperty(rect, label, property);
+
+ rect = EditorGUI.PrefixLabel(rect, label);
+
+ // slider
+ {
+ EditorGUI.BeginChangeCheck();
+
+ var sliderRect = rect;
+ sliderRect.width -= 55.0f;
+ rect.xMin += rect.width - 50.0f;
+
+ var clampedvalue = Mathf.Clamp(currentValue, sliderLeft, sliderRight);
+ var sliderValue = GUI.HorizontalSlider(sliderRect, clampedvalue, sliderLeft, sliderRight);
+
+ if (EditorGUI.EndChangeCheck())
+ {
+ property.floatValue = sliderValue;
+ }
+ }
+
+ // number
+ {
+ EditorGUI.BeginChangeCheck();
+
+ var numberValue = Mathf.Clamp(EditorGUI.FloatField(rect, currentValue), numberLeft, numberRight);
+
+ if (EditorGUI.EndChangeCheck())
+ {
+ property.floatValue = numberValue;
+ }
+ }
+
+ EditorGUI.EndProperty();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/VRM10/Editor/Vrm10EditorUtility.cs.meta b/Assets/VRM10/Editor/Vrm10EditorUtility.cs.meta
new file mode 100644
index 000000000..2517d5419
--- /dev/null
+++ b/Assets/VRM10/Editor/Vrm10EditorUtility.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4b75cffea6a5f03418a9a698a32c15cb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/VRM10/Runtime/Components/LookAt/CurveMapper.cs b/Assets/VRM10/Runtime/Components/LookAt/CurveMapper.cs
index 1e7109d2a..b7f0508d8 100644
--- a/Assets/VRM10/Runtime/Components/LookAt/CurveMapper.cs
+++ b/Assets/VRM10/Runtime/Components/LookAt/CurveMapper.cs
@@ -7,10 +7,20 @@ namespace UniVRM10
[Serializable]
public class CurveMapper
{
- [Range(20.0f, 90.0f)]
+ ///
+ /// v0.128.3 VRM10ObjectLookAtEditor
+ ///
+ /// DegreeINput 0-90
+ ///
public float CurveXRangeDegree;
- [Range(0, 90.0f)]
+ ///
+ /// v0.128.3 VRM10ObjectLookAtEditor
+ ///
+ /// EyeBoneDegree 0-90
+ /// or
+ /// ExpressionWeight 0-1.0
+ ///
public float CurveYRangeDegree;
public CurveMapper(float xRange, float yRange)