diff --git a/Packages/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableJointMutable.cs b/Packages/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableJointMutable.cs
index ccc69d2b60..8c592ac2eb 100644
--- a/Packages/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableJointMutable.cs
+++ b/Packages/UniGLTF/Runtime/SpringBoneJobs/Blittables/BlittableJointMutable.cs
@@ -38,6 +38,8 @@ public readonly struct BlittableJointMutable
public float anglelimit2 => _data.c2.z;
public quaternion anglelimitOffset => _data.c3.xyzw;
+ /// pitch when Spherical
+ /// yaw when Spherical
public BlittableJointMutable(float stiffnessForce = 0,
float gravityPower = 0,
float3 gravityDir = default,
diff --git a/Packages/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs b/Packages/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs
index d2f44d2725..72ce15e8b3 100644
--- a/Packages/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs
+++ b/Packages/VRM10/Editor/Components/SpringBone/VRM10SpringBoneJointEditor.cs
@@ -88,7 +88,7 @@ public override void OnInspectorGUI()
//
// angle limit
//
- var fold = EditorGUILayout.Foldout(m_showAnglelimitSettings, "AngleLimit Settings (experimental)");
+ var fold = EditorGUILayout.Foldout(m_showAnglelimitSettings, $"AngleLimit Settings (1.0-draft)");
if (m_showAnglelimitSettings != fold)
{
m_showAnglelimitSettings = fold;
@@ -96,29 +96,36 @@ public override void OnInspectorGUI()
}
if (m_showAnglelimitSettings)
{
- EditorGUILayout.HelpBox("SpringBoneの角度制限はまだdraft仕様です。将来的に仕様が変更される可能性があります。また、VRMファイルへのインポート・エクスポート機能はまだ実装されていません。\nThe angle limit feature for SpringBone is still in draft status. The specifications may change in the future. Also, the import/export of VRM files has not yet been implemented.", MessageType.Warning);
+ EditorGUILayout.HelpBox("SpringBoneの角度制限はまだdraft仕様です。将来的に仕様が変更される可能性があります。\nThe angle limit feature for SpringBone is still in draft status. The specifications may change in the future.", MessageType.Warning);
- EditorGUILayout.PropertyField(m_angleLimitType);
- switch ((UniGLTF.SpringBoneJobs.AnglelimitTypes)m_angleLimitType.enumValueIndex)
+ if (isLastTail)
{
- case UniGLTF.SpringBoneJobs.AnglelimitTypes.None:
- break;
-
- case UniGLTF.SpringBoneJobs.AnglelimitTypes.Cone:
- EditorGUILayout.PropertyField(m_angleLimitRotation);
- EditorGUILayout.PropertyField(m_angleLimitPitch);
- break;
-
- case UniGLTF.SpringBoneJobs.AnglelimitTypes.Hinge:
- EditorGUILayout.PropertyField(m_angleLimitRotation);
- EditorGUILayout.PropertyField(m_angleLimitPitch);
- break;
-
- case UniGLTF.SpringBoneJobs.AnglelimitTypes.Spherical:
- EditorGUILayout.PropertyField(m_angleLimitRotation);
- EditorGUILayout.PropertyField(m_angleLimitPitch);
- EditorGUILayout.PropertyField(m_angleLimitYaw);
- break;
+ EditorGUILayout.HelpBox("末端ノードでは無効です。", MessageType.Warning);
+ }
+ else
+ {
+ EditorGUILayout.PropertyField(m_angleLimitType);
+ switch ((UniGLTF.SpringBoneJobs.AnglelimitTypes)m_angleLimitType.enumValueIndex)
+ {
+ case UniGLTF.SpringBoneJobs.AnglelimitTypes.None:
+ break;
+
+ case UniGLTF.SpringBoneJobs.AnglelimitTypes.Cone:
+ EditorGUILayout.PropertyField(m_angleLimitRotation);
+ EditorGUILayout.PropertyField(m_angleLimitPitch, new GUIContent("Angle"));
+ break;
+
+ case UniGLTF.SpringBoneJobs.AnglelimitTypes.Hinge:
+ EditorGUILayout.PropertyField(m_angleLimitRotation);
+ EditorGUILayout.PropertyField(m_angleLimitPitch, new GUIContent("Angle"));
+ break;
+
+ case UniGLTF.SpringBoneJobs.AnglelimitTypes.Spherical:
+ EditorGUILayout.PropertyField(m_angleLimitRotation);
+ EditorGUILayout.PropertyField(m_angleLimitPitch);
+ EditorGUILayout.PropertyField(m_angleLimitYaw);
+ break;
+ }
}
}