Guida per gli sviluppatori di volti aumentati per AR Foundation

Scopri come utilizzare i volti aumentati per visualizzare gli asset sopra i volti umani nella tua app.

Prerequisiti

Assicurati di comprendere i concetti fondamentali della realtà aumentata e su come configurare una sessione ARCore prima di procedere.

Rilevamento dei volti

I volti sono rappresentati da ARFace oggetti creati, aggiornati e rimossi dall'elemento ARFaceManager. Una volta per frame, l'ARFaceManager richiama un evento facesChanged contenente tre elenchi: volti aggiunti, volti aggiornati e volti 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 la ARFaceManager, crea un nuovo oggetto del gioco e aggiungi la ARFaceManager.

Face Prefab è l'istanza prefabbricata nella posizione centrale del volto. Maximum Face Count rappresenta il numero massimo di volti che possono essere rilevati.

Accedere ai volti rilevati

Accedi ai volti rilevati tramite il componente ARFace, collegato al prefab dei volti. ARFace fornisce vertici, indici, normali dei vertici e coordinate di texture.

Parti di un volto rilevato

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

Posa centrale

La posa centrale, che segna il centro della testa di un utente, è il punto di origine dell'istanza prefabbricata creata da ARFaceManager. Si trova all'interno del cranio, dietro il naso.

Gli assi della posa centrale sono i seguenti:

  • L'asse X positivo (X+) è rivolto verso l'orecchio sinistro
  • L'asse Y positivo (Y+) è rivolto verso l'alto rispetto alla faccia.
  • L'asse Z positivo (Z+) è rivolto verso il centro della testa

Pose regione

Situate sulla fronte sinistra, sulla fronte destra e sulla punta del naso, la regione evidenzia parti importanti del viso dell'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.

Mesh viso 3D

La rete facciale è composta da 468 punti che compongono un volto umano. Viene inoltre definito in relazione alla posizione centrale.

Per visualizzare il mesh di volti, collega un elemento ARFaceMeshVisualizer a Face Prefab. ARFaceMeshVisualizer genererà un Mesh che corrisponde al volto rilevato, impostandolo come mesh nei MeshFilter e MeshCollider collegati. 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 usare il volto predefinito AR:

  1. Configura una 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 Prefabbricato volto nel campo Face Prefab di ARFaceManager.

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

Accesso ai singoli vertici del mesh di volti

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

Visualizzare i singoli vertici del mesh delle facce

Puoi utilizzare Frullatore per visualizzare facilmente i numeri di indice che corrispondono ai vertici di un mesh di facce:

  1. Apri Frullatore 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 facendovi clic nell'area visibile 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 mesh frullatore

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