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 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é dans la pose centrale 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é au préfablage de visage. 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.
Posture centrale
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 poses 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 savoir comment procéder, consultez l'exemple d'utilisation d'Unity sur GitHub.
Maillage du visage en 3D
La trame de visage se compose de 468 points qui représentent 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
qui correspond 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 effectue le rendu d'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 vers la fenêtre Project Assets pour créer un préfablage.
Définissez le Prefab nouvellement créé comme Prefab de visage 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 du visage. 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 correspondant aux sommets d'un maillage de face:
- Ouvrez Blender et importez
canonical_face_mesh.fbx
depuis GitHub. - Accédez à Edit > Preferences > Interface.
Dans le menu Display, sélectionnez Developer Extras.
Sélectionnez le visage en cliquant dessus dans la vue 3D, puis appuyez sur la touche 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.