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); }
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); } } }