Guide du développeur Augmented Faces pour AR Foundation

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:

  1. Configurez un ARFaceManager.
  2. 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.

  3. Accédez à AR Default Face dans l'outil d'inspection.

  4. 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.

  5. Définissez le Prefab nouvellement créé comme Prefab de cadran dans le champ Face Prefab de ARFaceManager.

  6. 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:

  1. Ouvrez Blender et importez canonical_face_mesh.fbx à partir de GitHub.
  2. Accédez à Edit > Preferences > Interface.
  3. Dans le menu Display, sélectionnez Developer Extras.

  4. 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.

  5. Ouvrez le menu déroulant à côté du viewport Overlays, puis sélectionnez Indices.

    Indices de maillage de visage Blender

  6. 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.