Ejemplo n.º 1
0
        public static void ConfigurationInspector(FaceTarget faceTarget)
        {
            HumanoidControl humanoid = faceTarget.headTarget.humanoid;

            SkinnedMeshRenderer[] avatarMeshes = HeadTarget.FindAvatarMeshes(humanoid);
            string[] avatarMeshNames           = HeadTarget.DistillAvatarMeshNames(avatarMeshes);
            int      meshWithBlendshapes       = HeadTarget.FindBlendshapemesh(avatarMeshes, faceTarget.headTarget.smRenderer);//HeadTarget.FindMeshWithBlendshapes(avatarMeshes);

            meshWithBlendshapes = EditorGUILayout.Popup("Head Mesh", meshWithBlendshapes, avatarMeshNames);
            string[] blendshapes;
            if (meshWithBlendshapes < avatarMeshes.Length)
            {
                faceTarget.headTarget.smRenderer = avatarMeshes[meshWithBlendshapes];
                blendshapes = HeadTarget.GetBlendshapes(avatarMeshes[meshWithBlendshapes]);
            }
            else
            {
                blendshapes = new string[0];
            }

            EyeBrowsInspector(faceTarget);
            EyesInspector(faceTarget, blendshapes);
            CheeksInspector(faceTarget);
            NoseInspector(faceTarget);
            MouthInspector(faceTarget.mouth);
            faceTarget.jaw.bone.transform = (Transform)EditorGUILayout.ObjectField("Jaw", faceTarget.jaw.bone.transform, typeof(Transform), true);
        }
Ejemplo n.º 2
0
        public void Init(HeadTarget _headTArget, bool _isLeft)
        {
            headTarget = _headTArget;
            face       = headTarget.face;

            isLeft = _isLeft;

            string eyeTargetName = isLeft ? "LeftEye" : "RightEye";

            if (headTarget.head.target.transform != null)
            {
                target.transform = headTarget.head.target.transform.Find(eyeTargetName);
            }
            if (target.transform == null)
            {
                target.transform        = NewTargetTransform(eyeTargetName);
                target.transform.parent = headTarget.head.target.transform;
            }
            RetrieveBone(headTarget.humanoid, isLeft ? HumanBodyBones.LeftEye : HumanBodyBones.RightEye);
            if (bone.transform != null)
            {
                target.transform.position = bone.transform.position;
                target.transform.rotation = headTarget.head.bone.targetRotation; // target.transform.rotation;
            }

            DoMeasurements();

            bone.minAngles = minEyeAngles;
            bone.maxAngles = maxEyeAngles;

            InitEyeLids();

            SkinnedMeshRenderer[] avatarMeshes = HeadTarget.FindAvatarMeshes(headTarget.humanoid);
            if (avatarMeshes != null && avatarMeshes.Length > 0)
            {
                int      meshWithBlendshapes = HeadTarget.FindMeshWithBlendshapes(avatarMeshes);
                string[] blendshapes         = HeadTarget.GetBlendshapes(avatarMeshes[meshWithBlendshapes]);

                if (isLeft)
                {
                    HeadTarget.FindBlendshapeWith(blendshapes, "AU45", "Left", ref headTarget.face.leftEye.blink);
                }
                else
                {
                    HeadTarget.FindBlendshapeWith(blendshapes, "AU45", "Right", ref headTarget.face.rightEye.blink);
                }
            }
        }