Découvrez comment utiliser la fonctionnalité Visages augmentées pour afficher des assets au-dessus des visages humains dans votre propre application.
Prérequis
Assurez-vous de bien maîtriser les concepts fondamentaux de la RA. et comment configurer une session ARCore avant de continuer.
Détecter des visages
Les visages sont représentés par des objets ARFace
créés, mis à jour et supprimés par ARFaceManager
. Une fois par image, le ARFaceManager
appelle un événement facesChanged
contenant trois listes: les visages qui ont été ajoutés, ceux qui ont été modifiés et ceux qui ont été supprimés depuis la dernière image. Lorsque le ARFaceManager
détecte un visage dans la scène, il instancie un Prefab avec un composant ARFace
associé pour suivre le visage. Le Prefab peut être laissé null
.
Pour configurer le ARFaceManager
, créez un objet de jeu et ajoutez-y le ARFaceManager
.
Face Prefab est le Prefab instancié au centre du visage. Maximum Face Count représente le nombre maximal de visages qu'il est possible de suivre.
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 les sommets, les index, les normales de sommet et les coordonnées de texture.
Parties d'un visage détecté
L'API Augmented Faces fournit une posture centrale, trois postures spécifiques à une région et un maillage faciale 3D.
Centrer la pose
La position centrale, qui marque le centre de la tête de l'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 position centrale sont les suivants:
- L'axe X positif (X+) pointe vers l'oreille gauche
- L'axe Y positif (Y+) pointe vers le haut en sortant de la face.
- L'axe Z positif (Z+) pointe vers le centre de la tête
Poses de la région
Situées sur le front gauche, le front droit et la pointe du nez, les postures de la 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 postures de la région, réduisez le sous-système de ARFaceManager
à ARCoreFaceSubsystem
et utilisez subsystem.GetRegionPoses()
pour obtenir des informations sur les poses pour chaque région. Pour savoir comment procéder, 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. Elle est également définie par rapport à la position centrale.
Pour visualiser le maillage du visage, attachez un ARFaceMeshVisualizer
à la Face Prefab. Le ARFaceMeshVisualizer
génère un Mesh
correspondant au visage détecté, le définissant comme réseau maillé dans les MeshFilter
et les MeshCollider
associés. Utilisez un MeshRenderer
pour définir le Material
utilisé pour le rendu du visage.
AR Default Face Prefab affiche un matériau par défaut sur les grilles faciales détectées.
Suivez ces étapes pour commencer à utiliser le visage par défaut en RA:
- Configurez un
ARFaceManager
. Dans l'onglet Hierarchy, utilisez + > XR > AR Default Face pour créer un objet de visage Cet objet est temporaire et peut être supprimé une fois le Prefab de visage créé.
Accédez à AR Default Face dans l'outil d'inspection.
Faites glisser le visage par défaut RA nouvellement créé de l'onglet Hierarchy vers la fenêtre Project Assets pour créer un Prefab.
Définissez le Prefab nouvellement créé comme Prefab de reconnaissance faciale dans le champ Face Prefab de
ARFaceManager
.Dans l'onglet Hierarchy, supprimez l'objet de visage, car il n'est plus nécessaire.
Accéder aux sommets individuels du maillage de visages
Utilisez face.vertices
pour accéder aux positions des sommets du maillage. Utilisez face.normals
pour accéder aux normales de sommet correspondantes.
Visualiser les sommets individuels du maillage de visages
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é de la fenêtre d'affichage Overlays et 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.