From fc1b2a80fd2a7afde2d9508df53e6b9cd8a84a3e Mon Sep 17 00:00:00 2001 From: ousttrue Date: Fri, 30 Aug 2024 17:37:30 +0900 Subject: [PATCH] comment --- .../Runtime/SpringBone/Logic/SpringBoneJointInit.cs | 10 ++++++++-- .../VRM/Runtime/SpringBone/Logic/SpringBoneSystem.cs | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) 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; } }