Modulo lunare

Modulo lunare

Nota

Questo articolo illustra un esempio esplorativo creato in 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 correlati alla progettazione si evolveranno man mano che si apportano nuove scoperte.

Nota

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

Lunar Module è un'app di esempio open source di Microsoft Realtà mista Design Labs. Scopri 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 sistemi di menu semplici. Tutti i componenti del progetto sono disponibili per l'uso nelle proprie esperienze di app di realtà mista.

Video demo

Registrato con HoloLens 2 tramite acquisizione di Realtà mista

Ripensamento delle esperienze classiche per Windows Mixed Reality

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

Interfaccia originale del lander lunare di Atari del 1979
Interfaccia originale del lander lunare di Atari del 1979

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

Oltre al gameplay, l'era arcade dei giochi ha portato un'innovazione costante di 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 tiratori ferroviari). Lo schema di input usato nella macchina Lunar Lander è intrigante per due motivi: frenare l'appello e l'immersione.

Console Arcade di Atari
Console Lunar Lander Arcade di Atari

Perché Atari e così tante altre aziende di gioco decidono di ripensare l'input?

Un bambino che cammina attraverso un arcade sarà naturalmente incuriosito dalla macchina più recente, più lampeggiante. Ma Lunar Lander presenta un romanzo meccanico di input che si distingue dalla folla.

Lunar Lander utilizza due pulsanti per ruotare la nave verso sinistra e destra e una leva di spinta per controllare la quantità di spinta prodotta dalla nave. Questa leva dà agli utenti un certo livello di finezza un joystick regolare non può fornire. Si tratta anche di un componente comune alle moderne cabine di pilotaggio dell'aviazione. Atari voleva che Lunar Lander immergesse l'utente nella sensazione che stessero di fatto pilotando un modulo lunare. Questo concetto è noto come immersione tattile.

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

Probabilmente, il tipo più importante di immersione nella realtà mista è l'immersione spaziale. L'intero punto della realtà mista è 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 immersione tattile in Lunar Lander.

Progettazione con immersione

Come possiamo applicare un'immersione tattile a un sequel aggiornato emetrico del classico Atari? Prima di affrontare lo schema di input, è necessario affrontare 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, sono disponibili opzioni di terreno infinite per l'atterraggio del modulo lunare. Per rendere il gioco più simile al titolo originale, un utente potrebbe potenzialmente manipolare e posizionare i riquadri di destinazione di diverse difficoltà nell'ambiente.

Richiedere all'utente di imparare lo schema di input, controllare la nave e avere un piccolo obiettivo per atterrare su è 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 in una superficie analizzata da HoloLens. Una volta che un utente ottiene il blocco del gioco, può poi scherzare la difficoltà come vedono in forma.

Aggiunta dell'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 sfumature contestuali o un elenco di movimenti specifici che rendono l'interfaccia della piattaforma versatile e facile da imparare. Anche se il sistema può esporre questi due movimenti, HoloLens come dispositivo è in grado di tenere traccia di due mani contemporaneamente. Il nostro ode a Lunar Lander è una [app immersiva, il che significa che possiamo estendere il set di movimenti di base per sfruttare due mani e aggiungere i nostri mezzi deliziosamente tattili per la navigazione del modulo lunare.

Guardando indietro lo schema di controllo originale, abbiamo bisogno di risolvere la spinta e la rotazione. L'avvertenza è la rotazione nel nuovo contesto aggiunge un asse aggiuntivo (tecnicamente due, ma l'asse Y è meno importante per l'atterraggio). I due movimenti distinti della nave si prestano naturalmente a 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 qui è come l'utente può prendere 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 della spinta inizia a zero. L'utente tocca e trascina per aumentare il valore. A quel punto potevano lasciarsi andare a gestirlo. Qualsiasi modifica del valore del movimento di tocco e trascinamento corrisponde 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. È stato creato un metodo usando il tocco e il trascinamento, che consente a un utente di "spingere e tirare" in modo efficace nella direzione in cui vuole che faccia. Ogni volta che un utente tocca e tiene premuto, il punto nello spazio in cui il movimento è stato avviato 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 verso sinistra <-> destra, su <-> giù, avanti <-> indietro in 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 dalla sinistra. Finesse è il fattore di guida per il successo in questo gioco. L'impressione di queste interazioni è la priorità assoluta. Soprattutto nel contesto dell'immersione tattile. Una nave che reagisce troppo rapidamente sarebbe difficile da guidare, mentre uno troppo lento richiederebbe all'utente di "spingere e tirare" sulla nave per un periodo di tempo difficile.

Aggiunta di input per i controller di gioco

Mentre i movimenti delle mani su HoloLens forniscono un nuovo metodo di controllo granulare, c'è ancora una certa mancanza di feedback tattile "true" che si ottiene dai controlli analogici. La connessione di un controller di gioco Xbox ci consente di riportare questo senso di fisicità sfruttando i bastoncini di controllo per mantenere un controllo granulare.

Esistono diversi modi per applicare lo schema di controllo relativamente semplice al controller Xbox. Dal momento che stiamo cercando di rimanere il più vicino possibile alla configurazione arcade originale, La spinta esegue il mapping migliore al pulsante del trigger. Questi pulsanti sono controlli analogici, il che significa che hanno più di semplici stati on e off , rispondono effettivamente 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 movimento della mano, questo controllo taglierà la spinta della nave una volta che un utente smette di mettere pressione sul trigger. Dà comunque all'utente lo stesso grado di finezza del gioco arcade originale fatto.

La levetta sinistra è mappata a Yaw e Roll, la levetta destra è mappata a Pitch e Roll
La levetta sinistra è mappata a yaw e roll; la levetta destra è mappata all'inclinazione e al rotolo

Le levette doppie si prestano naturalmente al controllo della rotazione delle navi. Purtroppo, ci sono tre assi su cui la nave può ruotare e due levette che supportano entrambi due assi. Questa mancata corrispondenza significa che una levetta controlla un asse; o c'è sovrapposizione di assi per le levette. La soluzione precedente si sentiva "rotta" poiché le levette si fondono intrinsecamente i valori X e Y locali. La seconda soluzione richiedeva alcuni test per trovare gli assi ridondanti più naturali. L'esempio finale usa yaw e roll (assi Y e X) per la levetta sinistra, e inclinazione e rollio (assi Z e X) per la levetta destra. Questo sembrava il più naturale come roll sembra associare in modo indipendente bene con yaw e pitch. Come nota laterale, l'uso di entrambe le levette per il rollio si verifica anche per raddoppiare il valore di rotazione; è piuttosto divertente avere i cicli do lander.

Questa app di esempio illustra come 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 può essere vicino a 40 anni in età, i concetti esposti con quel piccolo ottagono con 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 in GitHub di Realtà mista Design Labs.

Informazioni sull'autore

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

Vedi anche