Découvrez comment utiliser Visages augmentés pour afficher des composants sur des visages humains dans votre propre application.
Prérequis
Avant de continuer, assurez-vous de bien comprendre les concepts fondamentaux de la RA et de savoir configurer une session ARCore.
Détecter des visages
Les visages sont représentés par des objets ARFace
qui sont créés, mis à jour et supprimés par ARFaceManager
. Une fois par frame, ARFaceManager
appelle un événement facesChanged
contenant trois listes: les visages qui ont été ajoutés, ceux qui ont été mis à jour et ceux qui ont été supprimés depuis le dernier frame. Lorsque le ARFaceManager
détecte un visage dans la scène, il instancie un Prefab avec un composant ARFace
associé pour suivre le visage. Vous pouvez laisser le Prefab sur null
.
Pour configurer ARFaceManager
, créez un objet de jeu et ajoutez-y ARFaceManager
.
Face Prefab est le Prefab instancié au centre du visage. Maximum Face Count représente le nombre maximal de visages pouvant être suivis.
Accéder aux visages détectés
Accédez aux visages détectés via le composant ARFace
, qui est associé à Face Prefab. ARFace
fournit des sommets, des indices, des normales de sommet et des coordonnées de texture.
Parties d'un visage détecté
L'API Augmented Faces fournit une pose centrale, trois poses régionales et un maillage de visage 3D.
Centrer la pose
La pose centrale, qui marque le centre de la tête d'un utilisateur, est le point d'origine du Prefab instancié par ARFaceManager
. Il se trouve à l'intérieur du crâne, derrière le nez.
Les axes de la pose centrale sont les suivants:
- L'axe X positif (X+) pointe vers l'oreille gauche
- L'axe Y positif (Y+) pointe vers le haut, en dehors de la face
- L'axe Z positif (Z+) pointe vers le centre de la tête
Poses régionales
Situées sur le front gauche, le front droit et le bout du nez, les poses de région marquent des parties importantes du visage d'un utilisateur. Les postures de la région suivent la même orientation d'axe que la pose centrale.
Pour utiliser les poses de région, castez le sous-système ARFaceManager
vers ARCoreFaceSubsystem
et utilisez subsystem.GetRegionPoses()
pour obtenir des informations sur la pose pour chaque région. Pour obtenir un exemple, consultez l'exemple d'utilisation d'Unity sur GitHub.
Grille pour le visage 3D
La grille faciale se compose de 468 points qui forment un visage humain. Il est également défini par rapport à la pose centrale.
Pour visualiser le maillage du visage, joignez un ARFaceMeshVisualizer
à Face Prefab. ARFaceMeshVisualizer
génère un Mesh
correspondant au visage détecté, et le définit comme réseau maillé dans les MeshFilter
et MeshCollider
associés. Utilisez un MeshRenderer
pour définir le Material
utilisé pour afficher le visage.
AR Default Face Prefab affiche un matériau par défaut sur les maillages de visage détectés.
Pour commencer à utiliser le visage par défaut de la RA:
- Configurez un
ARFaceManager
. Dans l'onglet Hierarchy, utilisez + > XR > AR Default Face pour créer un objet face. Cet objet est temporaire et peut être supprimé une fois que vous avez créé le préfabriqué de visage.
Accédez à AR Default Face dans l'outil d'inspection.
Faites glisser le visage par défaut AR nouvellement créé depuis l'onglet Hierarchy dans la fenêtre Project Assets pour créer un préfablage.
Définissez le Prefab nouvellement créé comme Prefab de cadran dans le champ Face Prefab de
ARFaceManager
.Dans l'onglet Hierarchy, supprimez l'objet visage, car il n'est plus nécessaire.
Accéder aux sommets individuels du maillage du visage
Utilisez face.vertices
pour accéder aux positions des sommets du maillage de visages. Utilisez face.normals
pour accéder aux normales de sommet correspondantes.
Visualiser les sommets individuels du maillage du visage
Vous pouvez utiliser Blender pour afficher facilement les numéros d'index qui correspondent aux sommets d'un maillage de visages:
- Ouvrez Blender et importez
canonical_face_mesh.fbx
à partir de GitHub. - Accédez à Edit > Preferences > Interface.
Dans le menu Display, sélectionnez Developer Extras.
Sélectionnez la face en cliquant dessus dans la fenêtre d'affichage 3D, puis appuyez sur la touche de tabulation pour passer en mode Édition.
Ouvrez le menu déroulant à côté du viewport Overlays, puis sélectionnez Indices.
Mettez en surbrillance le sommet dont vous souhaitez déterminer le numéro d'index. Pour mettre en surbrillance tous les sommets, utilisez Select > All.