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:
- Configura una
ARFaceManager
. 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.
Accedi a AR Default Face nell'inspector.
Trascina il volto predefinito AR appena creato dalla scheda Hierarchy nella finestra Project Assets per creare un prefab.
Imposta il Prefab appena creato come Prefabbricato volto nel campo Face Prefab di
ARFaceManager
.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:
- Apri Frullatore e importa
canonical_face_mesh.fbx
da GitHub. - Vai a Edit > Preferences > Interface.
Nel menu Display, seleziona Developer Extras.
Seleziona il volto facendovi clic nell'area visibile 3D e premi Tab per accedere alla modalità di modifica.
Apri il menu a discesa accanto all'area visibile Overlays e seleziona Indices.
Evidenzia il vertice di cui vuoi determinare il numero di indice. Per evidenziare tutti i vertici, utilizza Select > All.