Guide du développeur Augmented Faces pour AR Foundation

Découvrez comment utiliser Augmented Faces pour afficher des assets sur les visages humains dans votre propre application.

Conditions préalables

Assurez-vous de bien comprendre les concepts fondamentaux de la RA et de 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 le ARFaceManager. Une fois par image, le ARFaceManager appelle un événement facesChanged contenant trois listes: les visages ajoutés, les visages modifiés et les visages supprimés depuis la dernière image. Lorsque 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 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 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 pose centrale, trois poses régionales et un maillage de visages 3D.

Position centrale

La position centrale, qui marque le centre de la tête d'un utilisateur, est le point d'origine du Prefab instancié par ARFaceManager. Elle 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 de région

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 de l'utilisateur. Les postures de région suivent la même orientation d'axe que la pose centrale.

Pour utiliser les postures régionales, réduisez la valeur du sous-système de ARFaceManager à ARCoreFaceSubsystem et utilisez subsystem.GetRegionPoses() afin d'obtenir des informations sur les postures pour chaque région. Pour savoir comment procéder, consultez l'exemple d'utilisation Unity sur GitHub.

Maille faciale 3D

La grille faciale se compose de 468 points qui constituent un visage humain. Elle est également définie par rapport à la pose centrale.

Pour visualiser le maillage de visages, associez un ARFaceMeshVisualizer au Face Prefab. Le ARFaceMeshVisualizer génère un Mesh correspondant au visage détecté, qui est défini comme réseau maillé dans les MeshFilter et les MeshCollider associés. Utilisez un MeshRenderer pour définir la Material utilisée pour afficher la face.

AR Default Face Prefab affiche un contenu par défaut sur les grilles de visage détectées.

Pour utiliser la reconnaissance faciale par défaut, procédez comme suit:

  1. Configurez une 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éé Face Prefab.

  3. Accédez à AR Default Face dans l'inspecteur.

  4. Faites glisser la nouvelle face par défaut de RA de l'onglet Hierarchy vers la fenêtre Project Assets pour créer un Prefab.

  5. Définissez le Prefab nouvellement créé comme Face Prefab 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 de visages

Utilisez face.vertices pour accéder à la position des sommets du maillage de face. Utilisez face.normals pour accéder aux normales de sommet correspondantes.

Visualiser les sommets individuels du maillage de faces

Vous pouvez utiliser Blender pour afficher facilement les numéros d'index correspondant aux sommets d'un maillage de faces:

  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, puis sélectionnez Indices.

    Index des grilles frontales du mélangeur

  6. Sélectionnez le sommet dont vous souhaitez déterminer le numéro d'index. Pour mettre en surbrillance tous les sommets, utilisez Select > All.