private void Reset() { var animator = GetComponent <Animator>(); if (animator != null) { LeftEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.LeftEye)); RightEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.RightEye)); } }
public void GetBones() { var animator = GetComponent <Animator>(); if (animator != null) { LeftEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.LeftEye)); RightEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.RightEye)); Head = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.Head)); } }
private void Reset() { Target = Camera.main.transform; var animator = GetComponent <Animator>(); if (animator != null) { Head = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.Head)); } }
public void CopyTo(GameObject _dst, Dictionary <Transform, Transform> map) { var dst = _dst.AddComponent <VRMLookAt>(); dst.Target = Target; dst.Head = OffsetOnTransform.Create(map[Head.Transform]); dst.RightEye = OffsetOnTransform.Create(map[RightEye.Transform]); dst.LeftEye = OffsetOnTransform.Create(map[LeftEye.Transform]); dst.HorizontalOuter = HorizontalOuter; dst.HorizontalInner = HorizontalInner; dst.VerticalDown = VerticalDown; dst.VerticalUp = VerticalUp; }
public static OffsetOnTransform Create(Transform transform) { var coordinate = new OffsetOnTransform { Transform = transform }; if (transform != null) { coordinate.OffsetRotation = transform.worldToLocalMatrix.RotationToWorldAxis(); } return(coordinate); }
void Update() { if (Target != m_offsetTransform.Transform) { m_offsetTransform = OffsetOnTransform.Create(Target); } var target = m_offsetTransform.Transform; if (target != null) { var targetPosition = target.position + m_offset; transform.position = targetPosition + (m_offsetTransform.WorldMatrix.ExtractRotation() * Vector3.forward) * m_distance; transform.LookAt(targetPosition); } }
public void OnImported(VRMImporterContext context) { var animator = GetComponent <Animator>(); if (animator != null) { LeftEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.LeftEye)); RightEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.RightEye)); } var gltfFirstPerson = context.VRM.firstPerson; HorizontalInner.Apply(gltfFirstPerson.lookAtHorizontalInner); HorizontalOuter.Apply(gltfFirstPerson.lookAtHorizontalOuter); VerticalDown.Apply(gltfFirstPerson.lookAtVerticalDown); VerticalUp.Apply(gltfFirstPerson.lookAtVerticalUp); }
public void OnImported(VRMImporterContext context) { var animator = GetComponent <Animator>(); if (animator == null) { Debug.LogWarning("animator is not found"); return; } var head = animator.GetBoneTransform(HumanBodyBones.Head); if (head == null) { Debug.LogWarning("head is not found"); return; } Head = OffsetOnTransform.Create(head); var gltfFirstPerson = context.VRM.extensions.VRM.firstPerson; switch (gltfFirstPerson.lookAtType) { case LookAtType.Bone: { var applyer = gameObject.AddComponent <VRMLookAtBoneApplyer>(); applyer.OnImported(context); } break; case LookAtType.BlendShape: { var applyer = gameObject.AddComponent <VRMLookAtBlendShapeApplyer>(); applyer.OnImported(context); } break; } }