Table of Contents

Centro di tracciamento del movimento in Unity AR - XR Origin

XR Origin è il concetto centrale del tracciamento del movimento in Unity. Nelle moderne applicazioni AR, il tracciamento del movimento sta gradualmente diventando una funzionalità essenziale. Attraverso il tracciamento del movimento, le applicazioni possono comprendere la posizione e l'orientamento dell'utente nel mondo reale senza ricorrere ad altri marcatori, realizzando così un'esperienza AR immersiva. Di seguito scoprirai i concetti fondamentali, la composizione e il ciclo di vita di XR Origin, nonché quando è necessario utilizzarlo.

Prima di iniziare

Cosa è xr origin

Quando la funzionalità di tracciamento del movimento viene inizializzata, viene selezionato un punto di riferimento come origine del tracciamento. Questo punto di riferimento è generalmente la posizione del dispositivo quando l'utente avvia l'applicazione o quando il servizio AR di sistema viene avviato. La rappresentazione di questo punto di riferimento nella scena Unity è XR Origin. Nella maggior parte dei casi, la posizione iniziale di XR Origin nella scena è anche la posizione predefinita della telecamera.

Questo video mostra una semplice scena AR con solo il tracciamento del movimento in funzione. A sinistra è la vista Hierarchy, al centro la vista Scene, a destra la vista Game. Il video è stato registrato in modalità Play dell'editor Unity utilizzando dati di simulazione. Il contenuto della vista Game è identico a ciò che l'utente vedrebbe nel mondo reale sul proprio telefono.

Come si può vedere, in questo video XR Origin (sfera blu) ha una posizione fissa nella scena, mentre la telecamera che rappresenta l'utente (icona della telecamera) si sposta in base ai movimenti dell'utente nel mondo reale. I coni bianchi catturano la traiettoria di posizione e orientamento della telecamera in un periodo di tempo precedente, aiutando a comprendere meglio il movimento della telecamera nella scena. Si noti che questi coni bianchi sono generati sotto il nodo XR Origin, che è una tipica organizzazione gerarchica degli oggetti in questo tipo di scene.

Nel sistema di tracciamento del movimento di Unity, la telecamera generalmente segue XR Origin nei suoi movimenti. Sebbene la telecamera non sia necessariamente un nodo figlio di XR Origin, AR Session calcola la posizione della telecamera in base alla posizione di XR Origin, garantendo così la corrispondenza tra ciò che l'utente vede e il mondo reale.

Questo video mostra la stessa scena, ma questa volta abbiamo spostato XR Origin (sfera blu) durante l'esecuzione. Si può osservare che dopo lo spostamento di XR Origin, la telecamera si muove di conseguenza, mentre il contenuto nella vista Game rimane invariato.

Nelle scene AR reali, questa relazione di movimento è più complessa.

Comportamento di xr origin nelle diverse modalità di centro

In Unity, il punto di riferimento centrale per tutti i tracciamenti AR è chiamato centro della sessione, e le regole che determinano questo centro durante l'esecuzione della sessione sono note come modalità centro. In diverse modalità centro, XR Origin si comporta diversamente:

  • Nella modalità centro SessionOrigin, XR Origin può essere spostato liberamente.

    Generalmente la modalità SessionOrigin è utilizzata in scene con solo tracciamento del movimento attivo. Quando altre funzionalità sono in esecuzione simultanea, normalmente non si utilizza la modalità SessionOrigin.

    Tuttavia, quando si utilizzano visori, se il produttore non implementa correttamente il punto di riferimento del tracciamento del movimento in Unity, è necessario utilizzare il centro del mondo di Unity, forzando così l'uso della modalità SessionOrigin. Questa situazione richiede che il nodo radice del contenuto segua il movimento della funzionalità AR, il che potrebbe influenzare l'effetto visivo, ma non ci sono alternative finché i produttori terzi non apporteranno modifiche.

  • Nelle altre modalità centro (ad esempio FirstTarget), XR Origin non può essere spostato liberamente.

    Generalmente la modalità FirstTarget è utilizzata in scene senza tracciamento del movimento o con altre funzionalità AR in esecuzione simultanea.

    In questa modalità, la posizione di XR Origin è determinata dalla funzionalità AR, pertanto non può essere modificata arbitrariamente.

Per dettagli sulla modalità centro e sul movimento degli oggetti nella scena, consultare: Modalità centro.

Forma e composizione di xr origin

EasyAR può utilizzare due diverse forme di XR Origin:

  • XR Origin fornito da EasyAR
  • XR Origin fornito dal framework Unity XR

XR Origin (EasyAR)

Una tipica struttura di XR Origin è la seguente:

alt text

Il nodo radice di XR Origin è un GameObject vuoto, che può avere uno o più nodi figlio XR Origin Child. XR Origin Child contiene un componente XROriginChildController per gestire la logica di controllo proxy di XR Origin.

Durante l'esecuzione della sessione, se nella scena non è presente una struttura XR Origin corretta, XR Origin e un XR Origin Child vengono creati automaticamente. Durante l'esecuzione, XR Origin Child è vincolato alla stessa posizione e orientamento di XR Origin.

Gli oggetti generati dalla sessione, come la nuvola di punti della mappa spaziale sparsa o la mesh della ricostruzione spaziale densa, vengono creati sotto il nodo XR Origin Child.

Questo video mostra l'effetto della ricostruzione spaziale densa in esecuzione simultanea al tracciamento del movimento nella stessa scena. Si può osservare che la mesh generata è creata sotto il nodo XR Origin Child.

Nota: per facilitare la comprensione, nel video è disattivata la generazione della mappa di profondità, quindi il contenuto della vista Scene differirà da quello visualizzato durante l'esecuzione effettiva. L'effetto nella vista Game è identico a quando la trasparenza della mesh è disattivata.

[Opzionale] XR Origin (Unity XR)

Se necessario, è possibile utilizzare il componente XR Origin fornito dal framework Unity XR.

Quando si utilizza XR Origin fornito da Unity XR, una struttura tipica è la seguente:

alt text

In una scena con visore, una struttura tipica è la seguente:

alt text

Il nodo radice di XR Origin è un GameObject creato e gestito dal framework Unity XR, che può avere uno o più nodi figlio XR Origin Child. XR Origin Child contiene un componente XROriginChildController per gestire la logica di controllo proxy di XR Origin.

Durante l'esecuzione della sessione, se nella scena non è presente una struttura XR Origin Child corretta, XR Origin Child viene creato automaticamente. Durante l'esecuzione, XR Origin Child è vincolato alla stessa posizione e orientamento di XR Origin.

XR Origin fornito da Unity XR supporta principalmente due casi d'uso:

  • Stai già utilizzando AR Foundation nel tuo progetto e desideri che funzioni con EasyAR o passi tra i due in base al supporto del dispositivo.
  • L'SDK del visore che utilizzi impiega il componente XR Origin fornito da Unity XR.
Nota

Quando il pacchetto core di Unity XR com.unity.xr.core-utils non è importato nel progetto, se la telecamera nella scena si trova nella stessa struttura gerarchica di XR Origin fornito da Unity XR (telecamera e nodo genitore denominato Camera Offset), la sessione presuppone che questa struttura sia creata da Unity XR Framework e la utilizza. Ciò è fatto per garantire la massima compatibilità con la scena: scene create con AR Foundation continueranno a funzionare normalmente (eccetto le funzionalità esclusive di AR Foundation) anche quando AR Foundation non è importato nel progetto, senza compromettere la funzionalità AR o la compatibilità del dispositivo.

La maggior parte delle scene di esempio di EasyAR utilizza questo approccio per garantire il funzionamento anche senza AR Foundation e per dimostrare la capacità di collaborazione con AR Foundation quando presente.

Nella definizione di AR Foundation, il suo XR Origin è il centro dello spazio di tracciamento nella scena XR. Tuttavia, è importante notare che nel concetto di AR Foundation, il tracciamento del movimento è una funzionalità obbligatoria, e lo spazio di tracciamento XR descritto è proprio il tracciamento del movimento.

Nel sistema EasyAR, il tracciamento del movimento è una funzionalità opzionale, quindi XR Origin è opzionale. XR Origin viene creato e utilizzato solo quando è abilitata la funzionalità di tracciamento del movimento.

Ciclo di vita di xr origin

Il ciclo di vita di XR Origin dipende dalla sessione. All'avvio della sessione, XR Origin viene selezionato o creato (se nella scena non è presente una struttura XR Origin corretta). All'arresto della sessione, XR Origin rimane in posizione fino al riutilizzo da parte di una sessione successiva o alla rimozione manuale.

Passaggi successivi

Creazione

Controllo dell'esecuzione

  • Comprendi la strategia di controllo Active di XR Origin

Argomenti correlati