Unity, OpenXR e WebXR forniscono un kit di strumenti versatile per creare diverse interazioni nelle esperienze immersive. L'obiettivo è sviluppare app immersive con cui gli utenti possono interagire utilizzando le esperienze apprese esistenti. Puoi progettare qualsiasi cosa, da semplici gesti a complesse simulazioni basate sulla fisica.
Tieni presente che le app Unity, OpenXR e WebXR funzionano solo in Full Space.
Scopri i principi di progettazione di Android XR.
Input
Le app XR possono includere interazioni con il rilevamento di mani, occhi e viso, gesti, comandi vocali e dispositivi di input tradizionali come tastiere, mouse e controller. Valuta quali input saranno necessari per la tua app per offrire un'esperienza utente naturale e accessibile.
- Supporta gesti familiari per ridurre la curva di apprendimento della tua app. Quando interagisci con l'interfaccia utente 2D, utilizza i gesti di sistema standard, come lo schiacciamento. Per le interazioni 3D come raccogliere e lanciare una palla, devi progettare con gesti che simulano l'interazione nel mondo reale. Questo si basa sulle conoscenze esistenti di un utente e riduce la necessità di tutorial.
- Se sono necessari altri gesti, assicurati che siano facili da imparare, ricordare ed eseguire. Evita gesti complessi e articolati o posizioni innaturali che possono causare disagio e affaticamento. Valuta la possibilità di fornire guide per insegnare agli utenti a utilizzare i gesti delle mani.
- Assicurati che l'esperienza sia utilizzabile con la mano sinistra o destra. Se non è possibile, segui la preferenza per l'uso della mano del sistema.
- Sebbene le interazioni con due mani possano essere immersive, potrebbero essere complicate per gli utenti con mobilità limitata. Dai la priorità alle interazioni con una sola mano per le azioni essenziali. Se sono necessari gesti con due mani, fornisci metodi alternativi con una sola mano per ottenere lo stesso risultato.
- Le app Unity, OpenXR e WebXR non sfruttano automaticamente la back stack di Android. Valuta la possibilità di implementare una serie di comandi precedenti per consentire agli utenti di accedere al gesto Indietro di Android XR per annullare le azioni o tornare indietro utilizzando la navigazione con i gesti.
Interfaccia utente
Elementi dell'interfaccia utente come pulsanti, riquadri e testo sono essenziali per interazioni naturali nelle app XR. Il design deve dare la priorità a un'esperienza utente fluida e intuitiva. Le scelte specifiche di progettazione dell'interfaccia utente dipendono dai requisiti specifici della tua app.
- Posiziona gli elementi interattivi principali e i contenuti fondamentali all'interno della linea di vista e del campo visivo naturale dell'utente. In questo modo, ne viene migliorata la visibilità e viene garantita un'esperienza confortevole. Valuta in che modo gli utenti dovrebbero interagire con l'interfaccia per determinare a quale distanza deve essere posizionata. Ad esempio, usa un puntatore laser o tocca i pulsanti direttamente con le dita? Configura le dimensioni dell'interfaccia in base alla distanza prevista dall'utente. Fai riferimento alla guida relativa alle dimensioni e alle proporzioni di Android XR.
- Quando progetti elementi dell'interfaccia utente interattivi come i pulsanti, tieni presente il modo in cui gli utenti dovrebbero interagire con questi elementi, il livello di precisione necessario per ogni metodo di inserimento (monitoraggio delle mani o mouse) e adatta di conseguenza fattori come le dimensioni e la spaziatura del target. Assicurati che le posizioni dell'interfaccia utente consentano interazioni confortevoli. Fornisci un feedback visivo per le azioni dell'utente. Consulta le linee guida sullo stile di Android XR.
- L'interfaccia utente 2D, come i riquadri, è adatta per le interazioni basate su menu. L'interfaccia utente 3D, come pulsanti, leve e interruttori fisici, può essere più immersiva quando interagisci con ambienti spaziali. Un equilibrio attento tra le interazioni basate su riquadri per un'elevata leggibilità e gli oggetti 3D per le interazioni incentrate sul mondo può creare un'esperienza coinvolgente e potente.
- Assicurati che il testo sia leggibile utilizzando dimensioni, tipi e contrasto dei caratteri appropriati. Posiziona l'interfaccia utente in base alla distanza a cui gli utenti visualizzeranno il testo. Utilizza caratteri con campo di distanza firmato per un rendering uniforme del testo in una varietà di dimensioni dei caratteri. Consulta la guida alla tipografia di Android XR.
Interazioni spaziali
Alcune delle interazioni più ricche in XR richiedono la capacità dell'utente di interagire direttamente con gli oggetti 3D. Potrebbe essere semplice come raccogliere, ispezionare e girare un oggetto. Sono incluse anche interazioni più complesse come tirare le leve, premere i pulsanti e interagire con elementi già in mano all'utente, ad esempio spruzzare uno spray. Per interazioni intuitive con oggetti 3D, progetta in base alle conoscenze preesistenti dell'utente sul mondo.
- Valuta la possibilità di integrare un motore fisico se vuoi creare azioni realistiche. Se stai creando un progetto con Unity, hai a disposizione un motore fisico integrato. Tieni presente la potenza di elaborazione impiegata dagli engine fisici e ottimizza per le prestazioni.
- La credibilità è più importante del realismo. Ad esempio, se un utente ritiene di aver lanciato una palla con forza, l'app deve applicare una forza maggiore alla palla rispetto a quanto indicato dai sensori del dispositivo.
- Gli oggetti devono essere costruiti in modo da corrispondere alle loro affordance. Ciò significa che ogni possibile azione che un utente potrebbe eseguire su o con un oggetto deve essere presa in considerazione nella tua app. Ad esempio, una ciambella può essere sollevata, lanciata e mangiata. Invece di mangiare la ciambella, l'app potrebbe utilizzare una voce fuori campo che dica: "Non ho fame in questo momento". Queste soluzioni rispondono alle azioni che un utente si aspetta di eseguire con un donut.
- Gli oggetti possono essere trattenuti utilizzando varie tecniche, tra cui parent, giunti fisici, movimento in seguito e forze fisiche. Ogni tecnica presenta vantaggi e svantaggi. Prima di implementare un metodo di acquisizione personalizzato, è fondamentale eseguire ricerche e testare approcci diversi per determinare quello più adatto.
- L'ergonomia è importante quando si progetta in un ambiente 3D. Per l'accessibilità, valuta la possibilità di aggiungere una maniglia alle superfici piane per consentire all'utente di regolarla a un'altezza confortevole. Assicurati di testare ogni oggetto nello spazio con diversi utenti, poiché il corpo di ognuno è diverso.
Design delle scene
Le scene possono variare da mondi virtuali completamente immersivi a esperienze di realtà aumentata che combinano elementi virtuali con l'ambiente reale di un utente. Progetta sceneggiature confortevoli, funzionali e sfrutta le funzionalità uniche della realtà XR.
- Limita le scene che si spostano intorno all'utente, ad esempio i voli. Ciò può causare disagio, soprattutto se il corpo fisico di un utente rimane fermo. Alcune tecniche di mobilità, come la visione a tunnel (descritta nella sezione successiva), aiutano a ridurre il disagio.
- Per creare esperienze di realtà mista, puoi utilizzare le funzionalità di comprensione della scena di Android XR per integrare oggetti virtuali nell'ambiente fisico di un utente.
- Per le applicazioni di realtà virtuale, ti consigliamo di incorporare visualizzazioni limitate del mondo reale nello spazio virtuale. In questo modo, gli utenti possono essere consapevoli del loro ambiente e interagire con oggetti fisici senza uscire dall'esperienza immersiva.
Locomozione
Le esperienze Android XR sono incoraggiate a consentire agli utenti di muoversi liberamente nel loro spazio fisico come definito da un confine configurato. Ad esempio, alcuni utenti trovano che le esperienze virtuali sono più immersive quando sono progettate attorno a un spazio creato dall'autore non in movimento. Se prevedi che gli utenti si muovano in uno spazio virtuale più grande di quanto consentito dal confine, ti consigliamo di utilizzare tecniche di locomozione che amplifichino il movimento, come il teletrasporto.
Con la teletrasportazione, un utente indica e seleziona un punto o utilizza un controller per passare istantaneamente a una nuova posizione. È ideale per coprire lunghe distanze rapidamente ed è spesso il metodo di locomozione che provoca meno mal di mare. Oscurare brevemente lo schermo durante la transizione può contribuire a ridurre al minimo il disagio.
Altri metodi di locomozione
Se utilizzi altri metodi di locomozione, valuta la possibilità di offrire anche il teletrasporto come alternativa.
- Camminata sul posto con braccia che oscillano: simula la camminata oscillando le braccia o muovendo il controller verso l'alto e verso il basso. Alcuni utenti potrebbero trovare questa operazione faticosa o meno intuitiva.
- Movimento continuo: utilizza il joystick o il tasto direzionale di un controller per muoverti nel tuo ambiente virtuale. Nella maggior parte dei casi, dovresti evitare questo metodo perché è una causa comune del mal di mare.
Se decidi di utilizzare il movimento nella tua esperienza, offri più opzioni per soddisfare le preferenze individuali e migliorare l'esperienza utente.
La cinetosi può verificarsi quando c'è una disconnessione tra il movimento fisico di un utente e la sua esperienza virtuale. Per ottimizzare il comfort dell'utente durante la locomozione:
- Assicurati che l'orizzonte virtuale rimanga stabile e a livello.
- Se è necessario un movimento continuo, evita accelerazioni o decelerazioni progressive. Mantieni la velocità costante.
- La visione a tunnel può contribuire a ridurre il mal di mare restringendo il campo visivo dell'utente durante il movimento, con un effetto vignettatura che limita il movimento percepito nelle aree periferiche.
- Per la rotazione, allinea il punto di vista di un utente ad angoli specifici. Potrebbe causare un po' di disorientamento, ma ridurrà il mal di viaggio.
- Gli utenti hanno diversi livelli di tolleranza. Consenti loro di regolare le impostazioni di comfort in base alle proprie preferenze, ad esempio scegliendo il metodo di locomozione, attivando o disattivando la visione a tunnel o regolando la velocità di movimento.
Audio spaziale
L'audio è uno strumento potente per creare paesaggi sonori immersivi che trasportano gli utenti in un altro mondo ed evocano emozioni specifiche. L'audio spaziale posiziona con precisione i suoni nell'ambiente virtuale.
- L'audio ambisonico è come una sfera celeste per l'audio, in quanto offre un paesaggio sonoro immersivo per i tuoi utenti. Utilizza l'ambisonic per i suoni ambientali di sottofondo o altri scenari in cui vuoi replicare un campo sonoro sferico completo che circonda l'ascoltatore.
- Gli indicatori audio spaziali possono guidare l'attenzione di un utente.
- Spazializza gli effetti sonori per aumentare l'immersione.
- La spazializzazione dell'audio vocale in base alla posizione di chi parla dà agli utenti un senso di presenza anche se non sono rivolti direttamente verso chi parla.
- Consenti agli utenti di regolare l'audio. Ad esempio, potrebbe voler disattivare o regolare il volume della musica di sottofondo, degli effetti sonori o delle voci fuori campo.
- Valuta la possibilità di aggiungere sottotitoli codificati per le persone non udenti o con problemi di udito.
Altre considerazioni per il comfort
Per dare la priorità all'accessibilità, offri opzioni personalizzabili che soddisfino diverse abilità e preferenze. In questo modo, un'ampia gamma di utenti può usufruire dell'esperienza immersiva.
- Fai in modo che l'applicazione venga eseguita a 72 frame al secondo: in questo modo contribuirai a ridurre al minimo il tremolio visivo e a prevenire la nausea.
- Dai agli utenti il controllo: per rendere la tua app facile da usare per chi ha diversi livelli di affinità con la realtà virtuale, consenti agli utenti di personalizzare la propria esperienza con impostazioni personalizzabili. Valuta la possibilità di consentire agli utenti di rimappare i pulsanti e i gesti del controller in base alle loro esigenze o preferenze fisiche. Ad esempio, gli utenti con limitata mobilità delle mani possono trarre vantaggio da diversi layout dei pulsanti o da controlli di input più grandi e semplici.