Guide du développeur Augmented Faces pour AR Foundation

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:

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

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

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

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

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

  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é de la fenêtre d'affichage Overlays et sélectionnez Indices.

    Index des grilles du visage du mélangeur

  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.