diff --git a/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneJointInit.cs b/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneJointInit.cs
index 59f8ce7e3..079706853 100644
--- a/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneJointInit.cs
+++ b/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneJointInit.cs
@@ -15,14 +15,20 @@ namespace VRM.SpringBone
public float Length;
public Quaternion LocalRotation;
- public Quaternion CalcRotation(Transform m_transform, Vector3 nextTail)
+ ///
+ /// しっぽの位置から回転を計算する
+ ///
+ public Quaternion WorldRotationFromTailPosition(Transform m_transform, Vector3 nextTail)
{
var rotation = (m_transform.parent != null ? m_transform.parent.rotation : Quaternion.identity) * LocalRotation;
return Quaternion.FromToRotation(rotation * BoneAxis,
nextTail - m_transform.position) * rotation;
}
- public Vector3 CalcNextTail(float deltaTime, Transform center, Transform m_transform,
+ ///
+ /// Verlet積分で次の位置を計算する
+ ///
+ public Vector3 VerletIntegration(float deltaTime, Transform center, Transform m_transform,
SpringBoneSettings settings, SpringBoneJointState _state)
{
var state = _state.ToWorld(center);
diff --git a/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneSystem.cs b/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneSystem.cs
index 84154bd18..805f42fdc 100644
--- a/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneSystem.cs
+++ b/Assets/VRM/Runtime/SpringBone/Logic/SpringBoneSystem.cs
@@ -108,7 +108,7 @@ namespace VRM.SpringBone
var (transform, init, state) = m_joints[i];
// Spring処理
- var nextTail = init.CalcNextTail(deltaTime, scene.Center, transform, settings, state);
+ var nextTail = init.VerletIntegration(deltaTime, scene.Center, transform, settings, state);
// Collision
foreach (var collider in m_colliders)
@@ -120,7 +120,7 @@ namespace VRM.SpringBone
m_joints[i] = (transform, init, SpringBoneJointState.Make(scene.Center, currentTail: state.CurrentTail, nextTail: nextTail));
//回転を適用
- var r = init.CalcRotation(transform, nextTail);
+ var r = init.WorldRotationFromTailPosition(transform, nextTail);
transform.rotation = r;
}
}