Guida per gli sviluppatori di volti aumentati per AR Foundation

Scopri come utilizzare Volti aumentati per eseguire il rendering degli asset sopra i volti umani nella tua app.

Prerequisiti

Prima di procedere, assicurati di conoscere i concetti fondamentali dell'AR e come configurare una sessione ARCore.

Rilevamento dei volti

I volti sono rappresentati da oggetti ARFace creati, aggiornati e rimossi dal ARFaceManager. Una volta per frame, ARFaceManager invoca un evento facesChanged contenente tre elenchi: i volti che sono stati aggiunti, quelli che sono stati aggiornati e quelli che sono stati rimossi dall'ultimo frame. Quando ARFaceManager rileva un volto nella scena, crea un'istanza di un Prefab con un componente ARFace collegato per monitorare il volto. Il prefabbricato può essere lasciato null.

Per configurare ARFaceManager, crea un nuovo oggetto di gioco e aggiungi ARFaceManager.

Face Prefab è il prefabbricato creato nella posa centrale del viso. Maximum Face Count indica il numero massimo di volti che possono essere monitorati.

Accedere ai volti rilevati

Accedi ai volti rilevati tramite il componente ARFace, che è associato al prefab Face. ARFace fornisce vertici, indici, normali dei vertici e coordinate della texture.

Parti di un volto rilevato

L'API Augmented Faces fornisce una posa centrale, tre pose a regioni e un mesh 3D dei volti.

Posizione al centro

La posa centrale, che indica il centro della testa di un utente, è il punto di origine del prefabbricato istanziato da ARFaceManager. Si trova all'interno del cranio, dietro il naso.

Gli assi della posa centrale sono i seguenti:

  • L'asse X positivo (X+) punta verso l'orecchio sinistro
  • L'asse Y positivo (Y+) punta verso l'alto fuori dal volto
  • L'asse Z positivo (Z+) è rivolto verso il centro della testa

Pose per regione

Posizionate sulla fronte sinistra, sulla fronte destra e sulla punta del naso, le pose di regione contrassegnano parti importanti del viso di un utente. Le pose della regione seguono lo stesso orientamento dell'asse della posa centrale.

Per utilizzare le pose della regione, esegui il downgrade del sottosistema di ARFaceManager a ARCoreFaceSubsystem e utilizza subsystem.GetRegionPoses() per ottenere informazioni sulle pose per ciascuna regione. Per un esempio di come fare, vedi l'esempio di utilizzo di Unity su GitHub.

Maglia del viso 3D

La mesh del viso è composta da 468 punti che formano un volto umano. Viene inoltre definito in relazione alla posa centrale.

Per visualizzare la mesh del viso, allega un ARFaceMeshVisualizer al Face Prefab. ARFaceMeshVisualizer genererà un Mesh che corrisponde al volto rilevato, impostandolo come mesh nei MeshFilter e MeshCollider allegati. Utilizza MeshRenderer per impostare la Material utilizzata per il rendering del volto.

L'AR Default Face Prefab esegue il rendering di un materiale predefinito sui mesh di volti rilevati.

Per iniziare a utilizzare il Volto predefinito AR:

  1. Configura un ARFaceManager.
  2. Nella scheda Hierarchy, usa + > XR > AR Default Face per creare un nuovo oggetto volto. Questo oggetto è temporaneo e può essere eliminato dopo che avrai creato il volto prefabbricato.

  3. Accedi a AR Default Face nell'inspector.

  4. Trascina il Volto predefinito AR appena creato dalla scheda Hierarchy nella finestra Project Assets per creare un prefab.

  5. Imposta il prefab appena creato come prefab del volto nel campo Face Prefab di ARFaceManager.

  6. Nella scheda Hierarchy, elimina l'oggetto face, poiché non è più necessario.

Accedere ai singoli vertici della mesh del viso

Utilizza face.vertices per accedere alle posizioni dei vertici del mesh della faccia. Utilizza face.normals per accedere alle normali dei vertici corrispondenti.

Visualizzare i singoli vertici del mesh delle facce

Puoi utilizzare Blender per visualizzare facilmente i numeri di indice corrispondenti ai vertici di una mesh del lato:

  1. Apri Blender e importa canonical_face_mesh.fbx da GitHub.
  2. Vai a Edit > Preferences > Interface.
  3. Nel menu Display, seleziona Developer Extras.

  4. Seleziona il volto facendoci clic sopra nella visualizzazione 3D e premi Tab per accedere alla modalità di modifica.

  5. Apri il menu a discesa accanto all'area visibile Overlays e seleziona Indices.

    Indici della mesh del viso di Blender

  6. Evidenzia il vertice di cui vuoi determinare il numero di indice. Per evidenziare tutti i vertici, utilizza Select > All.