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:
- Configura un
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 prefab del volto nel campo Face Prefab di
ARFaceManager
.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:
- Apri Blender e importa
canonical_face_mesh.fbx
da GitHub. - Vai a Edit > Preferences > Interface.
Nel menu Display, seleziona Developer Extras.
Seleziona il volto facendoci clic sopra nella visualizzazione 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.