Target di tracciamento in Unity AR - target
Un target in Unity rappresenta vari oggetti tracciabili. Di seguito scoprirai i concetti fondamentali, lo stato e il ciclo di vita del target di tracciamento in Unity AR.
Prima di iniziare
- Comprendi i concetti di base, i componenti e il flusso di lavoro della session attraverso Introduzione a ARSession.
Cosa è un target
Un target è la rappresentazione in Unity di oggetti reali riconosciuti e tracciati dalle funzionalità AR. Nel mondo reale, questi oggetti possono essere immagini, oggetti 3D, mappe spaziali, ecc. Riconoscendo e tracciando questi oggetti, le applicazioni AR possono sovrapporre contenuti virtuali al mondo reale, offrendo esperienze interattive ricche.
Alcuni target sono fissi nel mondo reale (come un poster su un muro).
Questo video mostra una semplice scena AR con tracciamento di immagini. A sinistra è visualizzata la vista
Hierarchy, al centro la vistaScene, a destra la vistaGame. Il video è stato registrato in modalitàPlaydell'editor Unity utilizzando dati di simulazione. Il contenuto della vistaGamecorrisponde a ciò che un utente vedrebbe nel mondo reale con uno smartphone. In questo video, il target (ImageTarget) rappresenta un biglietto da visita reale. Abbiamo posizionato sopra una sfera gialla per osservarne il movimento.Puoi notare che il target è fisso sia nel mondo reale che nella scena, mentre la telecamera che rappresenta l'utente (cono blu) si muove in base allo spostamento dell'utente nel mondo reale. Il cono bianco mostra la traiettoria passata di posizione e orientamento della telecamera. La sfera gialla è posizionata sotto il nodo target (ImageTarget), tipica organizzazione degli oggetti in questo tipo di scene.
Alcuni target sono mobili nel mondo reale (come un poster su un autobus).
Questo video mostra la stessa scena, ma questa volta abbiamo spostato il target (biglietto da visita) nel mondo reale. Osserva che quando il target si sposta, la sfera gialla lo segue, mantenendo l'allineamento nella vista
Game.
Per chiarezza, in entrambi i video abbiamo disattivato la visualizzazione del gizmo di ImageTarget e utilizzato la modalità centro SessionOrigin. In queste scene, il movimento degli oggetti nella vista Scene corrisponde al mondo reale. Nelle scene AR reali, questa relazione è più complessa.
Comportamento del target nelle diverse modalità centro
In Unity, il punto di riferimento centrale per tutto il tracciamento AR è chiamato centro della session, e la regola che determina questo centro durante l'esecuzione è chiamata modalità centro. In diverse modalità centro, il comportamento del target varia:
Nella modalità centro SessionOrigin, il target non può essere spostato liberamente.
La modalità SessionOrigin esiste solo in scene con tracciamento del movimento.
Sebbene questa modalità mostri bene il movimento di target e telecamera nelle scene semplici, non è comunemente usata nelle scene AR reali perché qui la session controlla il movimento del target. A causa di errori di calcolo nel tracciamento del movimento o nelle funzionalità AR stesse, è difficile garantire che il target rimanga completamente fisso. In questo caso, il nodo radice del contenuto deve seguire il movimento del target, influenzando comportamenti come il sistema fisico in Unity.
Nelle modalità centro FirstTarget o SpecificTarget, se il target è selezionato come centro, può essere spostato liberamente.
Generalmente, la modalità FirstTarget è la più comune. Garantisce che il primo target tracciato nella scena non sia controllato dalla session. Se non c'è necessità di muovere il target, rimane fisso, indipendentemente dal movimento dell'oggetto reale corrispondente.
Nelle modalità centro FirstTarget o SpecificTarget, se il target non è selezionato come centro, e nella modalità centro Camera, il target non può essere spostato liberamente.
Quando si tracciano più oggetti contemporaneamente, anche se sono fissi nel mondo reale, a causa degli errori di calcolo solo un target alla volta può non essere controllato dalla session. In base alla configurazione, il movimento degli altri target non è garantito: potrebbero mostrare leggeri movimenti anche se fissi nella realtà. Considera attentamente questo comportamento con tracciamento multiplo e adatta la strategia dei contenuti di conseguenza.
Per dettagli sulla modalità centro e il movimento degli oggetti nella scena, consulta: Modalità centro.
Stati del target
Lo stato del target riflette la sua rilevazione e tracciamento nella session corrente. Gli stati comuni includono:
- Tracciato (Tracked): il target è stato riconosciuto e tracciato con successo. L'applicazione AR può sovrapporre contenuti virtuali che si adattano all'oggetto reale.
- Non tracciato (Not Tracked): il target non è attualmente rilevato o tracciato. Se l'applicazione AR sovrappone contenuti, non si adatteranno all'oggetto reale.
Durante i cambiamenti di stato, puoi reagire tramite questi eventi:
- TargetFound: attivato quando il target viene riconosciuto e tracciato con successo.
- TargetLost: attivato quando il target perde lo stato di tracciamento.
Ciclo di vita del target
Nelle scene AR di Unity, i target sono generalmente gestiti dai componenti frame filter corrispondenti. Il frame filter elabora i dati dell'immagine dal frame source, riconoscendo e tracciando i target al suo interno. Il ciclo di vita del frame filter dipende dalla session. Sebbene diverse funzionalità AR possano variare nell'implementazione, generalmente all'avvio della session i target vengono caricati, diventando controllati dalla session dopo il caricamento. All'arresto della session, i target vengono scaricati e rimangono in posizione fino al riutilizzo nella session successiva o alla rimozione manuale.
Prossimi passi
- Prova a Ottenere lo stato del target
- Prova a utilizzare i target corrispondenti in varie funzionalità AR