mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-06-02 22:14:30 -05:00
comment
This commit is contained in:
parent
2cc166f193
commit
fc1b2a80fd
|
|
@ -15,14 +15,20 @@ namespace VRM.SpringBone
|
|||
public float Length;
|
||||
public Quaternion LocalRotation;
|
||||
|
||||
public Quaternion CalcRotation(Transform m_transform, Vector3 nextTail)
|
||||
/// <summary>
|
||||
/// しっぽの位置から回転を計算する
|
||||
/// </summary>
|
||||
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,
|
||||
/// <summary>
|
||||
/// Verlet積分で次の位置を計算する
|
||||
/// </summary>
|
||||
public Vector3 VerletIntegration(float deltaTime, Transform center, Transform m_transform,
|
||||
SpringBoneSettings settings, SpringBoneJointState _state)
|
||||
{
|
||||
var state = _state.ToWorld(center);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user