Modalità centro per sessione AR
La modalità centro è un concetto fondamentale in Unity AR, che determina quale oggetto viene scelto come punto di riferimento (oggetto centro) per tutti i tracciamenti AR durante l'esecuzione di una sessione, e quali oggetti nella sessione possono muoversi liberamente. Di seguito, scoprirai i concetti di base della modalità centro e il suo impatto sul comportamento di movimento degli oggetti nella scena.
Prima di iniziare
- Comprendi i concetti fondamentali, i componenti e il flusso di lavoro di una sessione attraverso Introduzione alla sessione AR.
- Scopri il ruolo della fotocamera nelle scene AR e come la sessione controlla le proprietà della fotocamera per garantire un'esperienza AR corretta attraverso Fotocamera.
- Comprendi i concetti di base, i componenti e il ciclo di vita di XR Origin attraverso XR Origin.
- Scopri i concetti di base, gli stati e il ciclo di vita di un target attraverso Target.
Oggetto centro e modalità centro
In una sessione, potrebbero essere eseguite contemporaneamente una o più funzionalità AR diverse. Queste funzionalità AR potrebbero tracciare oggetti diversi e potrebbero utilizzare contemporaneamente la funzionalità di tracciamento del movimento per seguire la posizione e l'orientamento del dispositivo stesso.
Per garantire che il comportamento di movimento degli oggetti nella scena sia conforme alle aspettative, la sessione deve selezionare un punto di riferimento come centro per tutti i tracciamenti AR. Questo punto di riferimento è rappresentato nella scena Unity come oggetto centro (CenterObject). La modalità centro (CenterMode) è la regola che determina quale oggetto diventa l'oggetto centro durante l'esecuzione della sessione.
Il centro di una sessione può essere uno dei seguenti oggetti:
- Un target tracciato specifico
- XR Origin
- La fotocamera
La modalità centro determina quale oggetto viene selezionato come oggetto centro e se questo oggetto può muoversi liberamente. Gli oggetti al di fuori di questo (inclusi fotocamera non centrale, XR Origin e target) sono controllati dalla sessione e si muovono relativamente all'oggetto centro.
In Unity, la sessione supporta le seguenti quattro modalità centro:
| Nome | Diagramma | Descrizione |
|---|---|---|
| FirstTarget SpecificTarget |
![]() |
Utilizza un target come centro, che può muoversi liberamente. Tra questi,
|
| SessionOrigin | ![]() |
Utilizza XR Origin come centro, che può muoversi liberamente. La camera della sessione e i target sono controllati dalla sessione, muovendosi relativamente a XR Origin centrale. |
| Camera | ![]() |
Utilizza la camera come centro, che può muoversi liberamente. XR Origin e i target nella sessione sono controllati dalla sessione, muovendosi relativamente alla camera centrale. |
Nel diagramma ci sono tre oggetti: la sfera blu rappresenta XR Origin, il cono blu rappresenta la camera, l'immagine gialla rappresenta un target. In diverse modalità centro, la sessione seleziona diversi oggetti come centro, mostrando il sistema di coordinate locale corrispondente.
Consiglio
Se hai esperienza con AR Foundation, potresti notare che AR Foundation non ha un concetto simile. In realtà, il comportamento di AR Foundation è coerente con la modalità centro SessionOrigin.
Nella sessione, la relazione di movimento relativa tra target e camera è controllata dalla sessione corrente. La relazione di movimento relativa tra XR Origin e camera è controllata dalla sessione corrente o da framework di terze parti (come AR Foundation). Le modalità centro garantiscono che la sessione controlli correttamente il comportamento di movimento degli oggetti nella scena in diversi ambienti operativi.
Ad esempio, se AR Foundation o un headset SDK basato su Unity XR controlla la relazione di movimento tra XR Origin e camera, XR Origin - come progettato nel framework Unity XR - può essere mosso dalla sessione, mentre camera no. In questo caso, la sessione limiterà le modalità centro a FirstTarget, SpecificTarget o SessionOrigin. Così, per la sessione il centro sarà XR Origin o un target, mentre per il framework Unity XR il centro rimane XR Origin, permettendo al sistema di funzionare perfettamente.
Avvertenza
In Unity AR, qualsiasi oggetto presente nel sistema di coordinate world di Unity che non regoli il transform in base ai componenti della sessione potrebbe non essere visualizzato correttamente. Poiché la sessione regola posizione e orientamento di altri oggetti nella scena basandosi su quelli dell'oggetto centrale, gli oggetti non controllati dalla sessione potrebbero risultare disallineati, causando comportamenti imprevisti.
Ad esempio, se un modello di panda è posizionato nel sistema di coordinate world, la sua posizione/orientamento potrebbe non corrispondere a nulla nel mondo reale, apparendo fluttuante o muovendosi caoticamente.
La pratica corretta è posizionare sempre i contenuti sotto un nodo target o sotto il nodo XR Origin (se i contenuti devono seguire XR Origin). Così, posizione/orientamento saranno regolati in base ai calcoli della sessione, assicurando una corretta sovrapposizione nel mondo reale.
Allineare manualmente contenuti con target o XR Origin è possibile, ma richiede tempistiche precise (vedi Scegliere la modalità centro appropriata).
Modalità centro disponibili
Non tutte le modalità centro sono disponibili in ogni situazione. La sessione determina quali modalità sono disponibili in base all'ambiente operativo e alla sorgente frame scelta, garantendo un corretto controllo del movimento. La proprietà ARSession.AvailableCenterMode restituisce la lista delle modalità centro disponibili per la sessione corrente.
A seconda della sorgente frame utilizzata, le modalità centro disponibili variano come segue:
| Sorgente frame | Camera controllata | Dati movimento | Progetto origine | Modalità centro disponibili |
|---|---|---|---|---|
|
Sì | No | - |
|
|
Sì | Sì | Sì |
camera non èfiglio di XR Origin |
|
No | Sì | Sì |
|
|
No | Sì | No |
|
Tranne quando si usa FramePlayer, le modalità centro disponibili sono determinate al momento dell'assemblaggio della sessione. Con FramePlayer, sono determinate dinamicamente ogni frame in base alla presenza di dati di movimento.
Caratteristiche delle diverse modalità centro
Di seguito, mostreremo il comportamento di movimento degli oggetti in diverse modalità centro attraverso una serie di video dimostrativi.
Il contenuto video è il seguente:
Nel mondo reale, ci sono due oggetti tracciabili di tipo diverso:
- Uno è un albero di Natale, che è immobile. Viene tracciato tramite la funzionalità di mappa spaziale sparsa.
- L'altro è un foglio A4, sul quale è stampata in anticipo un'immagine, ed è mobile. Viene tracciato tramite la funzionalità di image tracking.
Durante la registrazione video, l'osservatore (telefono) inizia dietro e a destra dell'albero di Natale, muovendosi intorno ad esso. Il foglio A4 oscilla avanti e indietro davanti all'osservatore.
Per facilitare l'osservazione, abbiamo aggiunto alcuni indicatori a diversi oggetti nella scena:
- Albero di Natale: quando è in stato di tracciamento, viene sovrapposta una nuvola di punti blu brillante nello spazio che occupa. Questi indicatori scompaiono quando il tracciamento viene perso.
- Foglio A4: quando è in stato di tracciamento, viene sovrapposto un panda direttamente sopra di esso. Nella vista
Gameviene inoltre visualizzata un'immagine identica per contenuto e dimensioni al foglio A4. Questi indicatori scompaiono quando il tracciamento viene perso.- XR Origin: nella sua posizione è posizionata una sfera blu
- Fotocamera: nella sua posizione è posizionato un cono blu, il cui asse principale coincide con la direzione di vista della fotocamera.
Questi video sono stati registrati utilizzando dati di esecuzione simulati, in modalità Play dell'editor Unity. A sinistra del video è presente la vista Scene, a destra la vista Game. Il contenuto della vista Game corrisponde a ciò che l'utente vede nel mondo reale attraverso il telefono.
Modalità centro FirstTarget e SpecificTarget
I modelli FirstTarget e SpecificTarget sono modalità che prendono un target come oggetto centrale. In queste due modalità, oltre al target centrale, la camera nella sessione, XR Origin e altri target sono controllati dalla sessione e si muovono relativamente al target centrale come punto di riferimento.
Alcuni target possono muoversi nel mondo reale, come il foglio A4 nel video.
Nel video sopra, l'oggetto centrale è un foglio A4 tracciato tramite l'Image Tracking. Si può vedere che, senza interventi esterni, il foglio A4 (panda) rimane fermo, mentre la telecamera (cono blu), XR Origin (sfera blu) e l'albero di Natale (nuvola di punti azzurra) si stanno muovendo.
Alcuni target sono fissi nel mondo reale, come l'albero di Natale nel video.
Nel video sopra, l'oggetto centrale è un albero di Natale tracciato tramite la funzionalità Sparse Spatial Map. Si può vedere che, senza interventi esterni, l'albero di Natale (nuvola di punti azzurra) rimane fermo, mentre la telecamera (cono blu) e il foglio A4 (panda) si stanno muovendo. XR Origin (sfera blu) non si muove, ma questo perché è fermo rispetto all'albero di Natale.
In queste due modalità, il target centrale che funge da punto di riferimento può muoversi liberamente. In questo caso, la camera nella sessione, XR Origin e altri target si muoveranno di conseguenza, e i loro transform non possono essere controllati esternamente.
Nel video sopra, l'oggetto centrale è un foglio A4 tracciato tramite l'Image Tracking. Si può vedere che, spostando manualmente il foglio A4 (panda), la telecamera (cono blu), XR Origin (sfera blu) e l'albero di Natale (nuvola di punti azzurra) si muovono di conseguenza. È importante notare che il contenuto visualizzato nella vista
Gamenon cambia, perché la posizione e l'orientamento della telecamera rimangono invariati rispetto al foglio A4 e agli altri oggetti.
La differenza tra le modalità FirstTarget e SpecificTarget risiede nel fatto che durante l'esecuzione, il target centrale potrebbe cambiare, ma il modo in cui viene selezionato il centro quando cambia è diverso. Per spiegare questo, dobbiamo considerare il processo di tracciamento riuscito e perso.
Quando l'oggetto centrale della sessione cambia, ARSession.CenterObject rifletterà sempre l'oggetto centrale corrente, ma ARSession.CenterMode non cambierà.
Cambiamento del centro nella modalità FirstTarget
Nel centro FirstTarget, la sessione è sempre centrata sul primo target rilevato. Se questo target viene perso, la sessione riassegna il centro. Quando la sessione sta tracciando o rileva un nuovo target, quest'ultimo diventa il nuovo centro.
Il riassegnamento del centro avviene in questi casi:
Nessun
targetè tracciato nel frame corrente
Se la modalità SessionOrigin è attiva, la sessione passa alla modalità SessionOrigin selezionandoXR Origincome centro; altrimenti passa alla modalità Camera selezionando lacameracome centro.Nel frame corrente sono presenti
targettracciati, mentre nel frame precedente nessuntargetera tracciato
La sessione seleziona uno deitargettracciati come centro.Nel frame corrente sono presenti
targettracciati, e iltargetcentrale del frame precedente è stato perso
La sessione seleziona uno deitargettracciati come nuovo centro.
Nel video sopra, inizialmente il centro è un foglio A4 tracciato tramite image tracking. Quando il foglio (panda) viene perso, la sessione riassegna il centro rendendo l'albero di Natale (nuvola di punti azzurra) il nuovo centro. Alla fine, il foglio A4 viene ritrovato ma non ridiventa centro poiché l'albero è già il centro attivo.
Cambi di centro nella modalità SpecificTarget
Nella modalità SpecificTarget, la sessione è sempre centrata su un target specificato. Se questo target viene perso, la sessione riassegna il centro ma non seleziona altri target. Se il target specificato viene ritrovato, ridiventa automaticamente il centro.
Il riassegnamento avviene in questi casi:
Il
targetspecificato non è tracciato nel frame corrente
Se la modalità SessionOrigin è attiva, la sessione passa alla modalità SessionOrigin selezionandoXR Origincome centro; altrimenti passa alla modalità Camera selezionando lacameracome centro.Il
targetspecificato è tracciato nel frame corrente, mentre nel frame precedente non lo era
La sessione seleziona iltargetspecificato come centro.
Nel video sopra, il centro è specificato come foglio A4 tracciato tramite image tracking. Quando il foglio (panda) viene perso, la sessione non seleziona altri
target(l'albero di Natale non diventa centro). Quando il foglio viene ritrovato, ridiventa centro.
Modalità centro SessionOrigin
La modalità SessionOrigin utilizza XR Origin come centro. In questa modalità, la camera e i target della sessione si muovono relativamente al centro XR Origin.
Nel video sopra, il centro è XR Origin. Senza input esterni, XR Origin (sfera blu) è ferma mentre la camera (cono blu) e il foglio A4 (panda) si muovono. L'albero di Natale (nuvola di punti) è fermo poiché statico rispetto a XR Origin.
In questa modalità, spostando il centro XR Origin, anche camera e target seguono il movimento. Le loro transform non possono essere controllate esternamente.
Nel video sopra, muovendo manualmente XR Origin (sfera blu), la camera (cono blu), l'albero (nuvola di punti) e il foglio (panda) seguono il movimento. La scena in
Gamenon cambia poiché le posizioni relative rimangono invariate.
XR Origin è sempre attivo in questa modalità, quindi il centro non cambia.
Modalità centro Camera
La modalità Camera utilizza la camera come centro. XR Origin e target si muovono relativamente al centro camera.
Nel video sopra, il centro è la camera. Senza input, la camera (cono blu) è ferma mentre XR Origin (sfera blu), l'albero (nuvola di punti) e il foglio (panda) si muovono.
Spostando il centro camera, XR Origin e target seguono il movimento. Le loro transform non possono essere controllate esternamente.
Nel video sopra, muovendo manualmente la camera (cono blu), XR Origin (sfera blu), l'albero (nuvola di punti) e il foglio (panda) seguono il movimento. La scena in
Gamenon cambia poiché le posizioni relative rimangono invariate.
La camera è sempre attiva in questa modalità, quindi il centro non cambia.


