Example #1
0
        private void Reset()
        {
            var animator = GetComponent <Animator>();

            if (animator != null)
            {
                LeftEye  = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.LeftEye));
                RightEye = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.RightEye));
            }
        }
Example #2
0
        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));
            }
        }
Example #3
0
        private void Reset()
        {
            Target = Camera.main.transform;

            var animator = GetComponent <Animator>();

            if (animator != null)
            {
                Head = OffsetOnTransform.Create(animator.GetBoneTransform(HumanBodyBones.Head));
            }
        }
Example #4
0
        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;
        }
Example #5
0
        public static OffsetOnTransform Create(Transform transform)
        {
            var coordinate = new OffsetOnTransform
            {
                Transform = transform
            };

            if (transform != null)
            {
                coordinate.OffsetRotation = transform.worldToLocalMatrix.RotationToWorldAxis();
            }

            return(coordinate);
        }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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;
            }
        }