Skip to content

Commit

Permalink
コメント修正。InitializeLookAtOriginTransform
Browse files Browse the repository at this point in the history
  • Loading branch information
ousttrue committed Sep 25, 2024
1 parent 952730c commit 4f8e98e
Showing 1 changed file with 38 additions and 14 deletions.
52 changes: 38 additions & 14 deletions Assets/VRM10/Runtime/Components/Vrm10Runtime/Vrm10RuntimeLookAt.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,20 +42,11 @@ internal Vrm10RuntimeLookAt(Vrm10Instance instance, UniHumanoid.Humanoid humanoi
{
_lookAt = instance.Vrm.LookAt;

// 視点計算用の empty object
LookAtOriginTransform = new GameObject("_look_at_origin_").transform;
if (controlRig != null)
{
// controlRig に連結
LookAtOriginTransform.SetParent(controlRig.GetBoneTransform(HumanBodyBones.Head));
}
else
{
// 直接連結
LookAtOriginTransform.SetParent(humanoid.Head);
}
LookAtOriginTransform.position = humanoid.Head.TransformPoint(_lookAt.OffsetFromHead);
LookAtOriginTransform.rotation = instance.transform.rotation;
LookAtOriginTransform = InitializeLookAtOriginTransform(
humanoid,
controlRig,
_lookAt.OffsetFromHead,
instance.transform.rotation);

_lookAtOriginTransformLocalPosition = LookAtOriginTransform.localPosition;
_lookAtOriginTransformLocalRotation = LookAtOriginTransform.localRotation;
Expand Down Expand Up @@ -108,6 +99,39 @@ public void SetYawPitchManually(float yaw, float pitch)
return (yaw, pitch);
}

/// <summary>
/// Generate empty object for gaze calculation.
/// NOTE: このメソッドを実行するとき、モデル全体は初期姿勢(T-Pose)でなければならない。
/// NOTE: Vrm10Instance.Runtime 呼び出しによりトリガーされる。
/// From v0.127.0: VRM Root( Vrm10Instance が Add されている)GameObject は初期姿勢でなくてもよい #2445
/// </summary>
/// <param name="humanoid"></param>
/// <param name="controlRig">if provided parent is controlrig head else humanoid head</param>
/// <param name="eyeOffsetValue">A humanoid head local offset</param>
/// <param name="rootRotation">world rotation of vrm model</param>
/// <returns></returns>
private static Transform InitializeLookAtOriginTransform(UniHumanoid.Humanoid humanoid, Vrm10RuntimeControlRig controlRig,
Vector3 eyeOffsetValue, Quaternion rootRotation)
{
var lookAtOrigin = new GameObject("_look_at_origin_").transform;
if (controlRig != null)
{
// controlRig のHeadに連結
lookAtOrigin.SetParent(controlRig.GetBoneTransform(HumanBodyBones.Head));
}
else
{
// humanoid のHeadに連結
lookAtOrigin.SetParent(humanoid.Head);
}

lookAtOrigin.position = humanoid.Head.TransformPoint(eyeOffsetValue);
// v0.127.0
lookAtOrigin.rotation = rootRotation;

return lookAtOrigin;
}

#region Obsolete
[Obsolete("Use " + nameof(LookAtOriginTransform))]
public Transform GetLookAtOrigin(Transform head)
Expand Down

0 comments on commit 4f8e98e

Please sign in to comment.