Condividi tramite


Modulo lunare

Modulo lunare

Nota

Questo articolo illustra un esempio esplorativo creato nel Realtà mista Design Labs, un luogo in cui vengono condivise le informazioni e i suggerimenti per lo sviluppo di app di realtà mista. Gli articoli e il codice relativi alla progettazione si evolveranno man mano che vengono effettuate nuove individuazioni.

Nota

Questa app di esempio è stata progettata per HoloLens di prima generazione.

Modulo lunare è un'app di esempio open source di Microsoft Realtà mista Design Labs. Informazioni su come estendere i movimenti di base di HoloLens con il rilevamento a due mani e l'input del controller Xbox, creare oggetti reattivi al mapping della superficie e alla ricerca del piano e implementare semplici sistemi di menu. Tutti i componenti del progetto sono disponibili per l'uso nelle proprie esperienze di app di realtà mista.

Video dimostrativo

Registrato con HoloLens 2 con Realtà mista Capture

Ripensare alle esperienze classiche per Windows Mixed Reality

In alto nell'atmosfera, una piccola nave ricorda il modulo Apollo rileva metodicamente terreno frastagliato sotto. Il nostro impavido pilota individua un'area di atterraggio adatta. La discesa è ardua ma fortunatamente, questo viaggio è stato fatto molte volte prima...

Interfaccia originale del Lunar Lander di Atari del 1979
Interfaccia originale del Lunar Lander di Atari del 1979

Lunar Lander è un classico arcade in cui i giocatori tentano di pilotare un lander lunare su un punto piatto di terreno lunare. Chiunque sia nato negli anni '70 ha molto probabilmente trascorso ore in una sala giochi con gli occhi incollati a questa nave vettoriale che precipita dal cielo. Mentre un giocatore naviga verso un'area di atterraggio, il terreno si ridimensiona per rivelare progressivamente più dettagli. Successo significa atterraggio entro la soglia di sicurezza della velocità orizzontale e verticale. I punti vengono assegnati per il tempo impiegato per l'atterraggio e il carburante rimanente, con un moltiplicatore in base alle dimensioni dell'area di atterraggio.

A parte il gameplay, l'era arcade dei giochi ha portato costante innovazione degli schemi di controllo. Dalle configurazioni più semplici di joystick e pulsanti a quattro vie (viste nell'iconico Pac-Man) agli schemi altamente specifici e complicati visti alla fine degli anni '90 e '00 (come quelli nei simulatori di golf e nei tiratori su rotaia). Lo schema di input usato nella macchina Lunar Lander è intrigante per due motivi: il controllo dell'appeal e l'immersione.

Console arcade di Atari Lunar Lander
Console arcade Lunar Lander di Atari

Perché Atari e tante altre aziende di giochi hanno deciso di ripensare l'input?

Un bambino che cammina attraverso un arcade sarà naturalmente incuriosito dalla macchina più recente e più appariscibile. Ma Lunar Lander è dotato di un nuovo meccanico di input che si distingueva dalla folla.

Lunar Lander usa due pulsanti per ruotare la nave a sinistra e a destra e una leva di spinta per controllare la quantità di spinta che la nave produce. Questa leva offre agli utenti un certo livello di finezza che un joystick normale non può fornire. Capita anche di essere un componente comune ai moderni cockpit dell'aviazione. Atari voleva che Lunar Lander immergesse l'utente nella sensazione che stessero effettivamente pilotando un modulo lunare. Questo concetto è noto come immersione tattile.

L'immersione tattile è l'esperienza del feedback sensoriale derivante dall'esecuzione di azioni ripetitive. In questo caso, l'azione ripetitiva di regolare la leva e la rotazione della acceleratore, che i nostri occhi vedono e sentono le nostre orecchie, aiuta a connettere il giocatore all'atto di atterrare una nave sulla superficie lunare. Questo concetto può essere collegato al concetto psicologico di "flusso". Dove un utente è completamente assorbito in un'attività che ha la giusta combinazione di sfida e ricompensa, o più semplicemente, è "nella zona".

Probabilmente, il tipo più importante di immersione nella realtà mista è l'immersione spaziale. L'intero punto della realtà mista è quello di ingannare noi stessi a credere che questi oggetti digitali esistano nel mondo reale. Stiamo sintetizzando gli ologrammi nell'ambiente circostante, immersi nello spazio in interi ambienti ed esperienze. Questo non significa che non possiamo ancora impiegare altri tipi di immersione nelle nostre esperienze proprio come Atari ha fatto con l'immersione tattile in Lunar Lander.

Progettazione con immersione

Come possiamo applicare l'immersione tattile a un sequel volumetrico aggiornato al classico di Atari? Prima di affrontare lo schema di input, è necessario risolvere il costrutto di gioco per lo spazio tridimensionale.

Visualizzazione del mapping della superficie in HoloLens
Visualizzazione del mapping spaziale in HoloLens

Sfruttando l'ambiente circostante di un utente, abbiamo in effetti infinite opzioni di terreno per l'atterraggio del modulo lunare. Per rendere il gioco più simile al titolo originale, un utente potrebbe potenzialmente manipolare e posizionare landing pad di diverse difficoltà nel proprio ambiente.

Richiedere all'utente di apprendere lo schema di input, controllare la nave e avere un piccolo obiettivo su cui atterrare è molto da chiedere. Un'esperienza di gioco di successo offre il giusto mix di sfida e ricompensa. L'utente può scegliere un livello di difficoltà, con la modalità più semplice che richiede semplicemente all'utente di atterrare correttamente in un'area definita dall'utente su una superficie analizzata da HoloLens. Una volta che un utente ottiene il blocco del gioco, può poi aumentare la difficoltà come si ritiene opportuno.

Aggiunta di input per i movimenti della mano

L'input di base di HoloLens ha solo due movimenti: Air Tap e Bloom. Gli utenti non devono ricordare le sfumature contestuali o un elenco completo di gesti specifici che rendono l'interfaccia della piattaforma versatile e facile da imparare. Mentre il sistema può esporre solo questi due movimenti, HoloLens come dispositivo è in grado di tenere traccia di due mani contemporaneamente. Il nostro inno a Lunar Lander è una [app immersiva, il che significa che possiamo estendere il set di base di gesti per sfruttare due mani e aggiungere i nostri mezzi deliziosamente tattili per la navigazione del modulo lunare.

Guardando indietro allo schema di controllo originale, dovevamo risolvere la spinta e la rotazione. L'avvertenza è che la rotazione nel nuovo contesto aggiunge un asse aggiuntivo (tecnicamente due, ma l'asse Y è meno importante per l'atterraggio). I due distinti movimenti delle navi si prestano naturalmente ad essere mappati a ogni mano:

Toccare e trascinare il movimento per ruotare il lander su tutti e tre gli assi
Toccare e trascinare il movimento per ruotare il lander su tutti e tre gli assi

Spinta

La leva sulla macchina arcade originale mappata a una scala di valori, più alta è stata spostata la leva più spinta è stata applicata alla nave. Una sfumatura importante da sottolineare è il modo in cui l'utente può togliere la mano dal controllo e mantenere un valore desiderato. È possibile usare in modo efficace il comportamento di tocco e trascinamento per ottenere lo stesso risultato. Il valore di spinta inizia da zero. L'utente tocca e trascina per aumentare il valore. A quel punto avrebbero potuto lasciare andare a mantenerlo. Qualsiasi modifica del valore del movimento di tocco e trascinamento corrisponderebbe al delta del valore originale.

Rotazione

Questo è un po' più complicato. Avere pulsanti olografici "ruota" per toccare rende un'esperienza terribile. Non esiste un controllo fisico da sfruttare, quindi il comportamento deve provenire dalla manipolazione di un oggetto che rappresenta il lander o con il lander stesso. Abbiamo trovato un metodo che usa il tocco e il trascinamento, che consente a un utente di "spingere e tirare" in modo efficace nella direzione che vuole che affronti. Ogni volta che un utente tocca e trattiene, il punto nello spazio in cui è stato avviato il movimento diventa l'origine per la rotazione. Il trascinamento dall'origine converte il delta della traslazione della mano (X,Y,Z) e lo applica al delta dei valori di rotazione del lander. O più semplicemente, trascinando a sinistra <-> a destra, verso l'alto <-> verso il basso, in avanti <-> indietro negli spazi ruota la nave di conseguenza.

Poiché HoloLens può tenere traccia di due mani, la rotazione può essere assegnata alla mano destra mentre la spinta è controllata da sinistra. Finesse è il fattore trainante per il successo in questo gioco. L'aspetto di queste interazioni è la priorità assoluta. Soprattutto nel contesto dell'immersione tattile. Una nave che reagisce troppo rapidamente sarebbe difficile da guidare, mentre una troppo lenta richiederebbe all'utente di "spingere e tirare" sulla nave per un periodo di tempo imbarazzantemente lungo.

Aggiunta di input per i controller di gioco

Mentre i movimenti della mano su HoloLens forniscono un nuovo metodo di controllo a granularità fine, c'è ancora una certa mancanza di feedback tattile "vero" che si ottiene dai controlli analogici. La connessione di un controller di gioco Xbox ci permette di ripristinare questo senso di fisicità sfruttando al tempo stesso le levette di controllo per mantenere il controllo della granularità fine.

Esistono diversi modi per applicare lo schema di controllo relativamente semplice al controller Xbox. Poiché stiamo cercando di rimanere il più vicino possibile all'originale arcade configurato, Thrust esegue il mapping migliore al pulsante del trigger. Questi pulsanti sono controlli analogici, il che significa che hanno più che semplici stati on e off , in realtà rispondono al grado di pressione messo su di loro. Questo ci dà un costrutto simile alla leva di spinta. A differenza del gioco originale e del gesto della mano, questo controllo taglierà la spinta della nave una volta che un utente smette di mettere pressione sul grilletto. Offre ancora all'utente lo stesso grado di finezza del gioco arcade originale.

La levetta sinistra è mappata a imbardata e rollio, la levetta destra viene mappata a Pitch and Roll
La levetta sinistra è mappata all'imbardata e al rollio; levetta destra è mappata a passo e rotolo

Le doppie levette si prestano naturalmente al controllo della rotazione delle navi. Sfortunatamente, ci sono tre assi su cui la nave può ruotare e due levette che supportano entrambi due assi. Questa mancata corrispondenza significa che una delle due levette controlla un asse; o c'è sovrapposizione di assi per le levette. La soluzione precedente ha finito per sentirsi "rotta" perché le levette fondono intrinsecamente i valori locali X e Y. Quest'ultima soluzione richiedeva alcuni test per individuare gli assi ridondanti più naturali. L'esempio finale usa l'imbardata e il roll ( assi Y e X) per la levetta sinistra e pitch e roll (assi Z e X) per la levetta destra. Questo sembrava il più naturale come rotolo sembra in modo indipendente associare bene con imbardata e passo. Come nota laterale, l'uso di entrambe le levette per il roll è anche il doppio del valore di rotazione; è abbastanza divertente avere il lander fare cicli.

Questa app di esempio illustra in che modo il riconoscimento spaziale e l'immersione tattile possono cambiare significativamente un'esperienza grazie alle modalità di input estendibili di Windows Mixed Reality. Mentre Lunar Lander potrebbe essere prossimo a 40 anni di età, i concetti esposti con quel piccolo ottagono con le gambe vivranno per sempre. Quando si immagina il futuro, perché non guardare al passato?

Dettagli tecnici

È possibile trovare script e prefab per l'app di esempio Modulo lunare nell'Realtà mista Design Labs GitHub.

Informazioni sull'autore

Immagine di Addison Linville Addison Linville
Designer @Microsoft dell'esperienza utente

Vedere anche