Guida per gli sviluppatori di volti aumentati per AR Foundation

Scopri come usare la funzionalità Volti aumentati per visualizzare asset sopra i volti umani nella tua app.

Prerequisiti

Assicurati di aver compreso i concetti fondamentali di AR e di configurare una sessione ARCore prima di procedere.

Rilevamento dei volti

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

Per configurare la ARFaceManager, crea un nuovo oggetto di gioco e aggiungici l'oggetto ARFaceManager.

Face Prefab è l'istanza prefabbricata creata nella posizione centrale del volto. Maximum Face Count rappresenta il numero massimo di volti che è possibile monitorare.

Accedi ai volti rilevati

Accedi ai volti rilevati tramite il componente ARFace, collegato a Prefabbricato per i volti. ARFace fornisce vertici, indici, normali dei vertici e coordinate delle texture.

Parti di un volto rilevato

L'API Augmented Faces fornisce una posa centrale, tre pose con regioni e una mesh per il viso 3D.

Posa centrale

La posa centrale, che segna il centro della testa di un utente, è il punto di origine del prefabbricato creato l'istanza dalla 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 rispetto alla faccia
  • L'asse Z positivo (Z+) punta al centro della testa

Pose regione

Situate sulla fronte sinistra, sulla fronte destra e sulla punta del naso, l'area geografica contrassegna le parti importanti del volto di un utente. Le pose dell'area seguono lo stesso orientamento della posizione centrale.

Per utilizzare le pose della regione, annulla il sottosistema di ARFaceManager in ARCoreFaceSubsystem e utilizza subsystem.GetRegionPoses() per ottenere informazioni sulla posa per ogni regione. Per un esempio di come eseguire questa operazione, vedi l'esempio di utilizzo di Unity su GitHub.

Mesh per il volto 3D

La mesh del volto è composta da 468 punti che compongono un volto umano. Viene definita anche rispetto alla posa centrale.

Per visualizzare la mesh del viso, collega un elemento ARFaceMeshVisualizer a Face Prefab. La ARFaceMeshVisualizer genera un elemento Mesh corrispondente al volto rilevato, impostandolo come mesh negli elementi MeshFilter e MeshCollider allegati. Utilizza una MeshRenderer per impostare la Material utilizzata per il rendering del volto.

L'elemento AR Default Face Prefab esegue il rendering di un materiale predefinito sulle mesh di volti rilevate.

Per iniziare a usare il volto predefinito AR, procedi nel seguente modo:

  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 aver creato il prefabbricato per il volto.

  3. Accedi a AR Default Face in Inspector.

  4. Trascina il volto predefinito AR appena creato dalla scheda Hierarchy alla finestra Project Assets per creare un prefabbricato.

  5. Imposta il prefabbricato appena creato come prefabbricato per il volto nel campo Face Prefab di ARFaceManager.

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

Accesso ai singoli vertici della rete facciale

Utilizza face.vertices per accedere alle posizioni dei vertici del mesh del viso. Utilizza face.normals per accedere alle normali normali del vertice corrispondenti.

Visualizzare i singoli vertici della rete facciale

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

  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 facendo clic sul volto 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 in maglia milanese per frullatore

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