La creazione di Galaxy Explorer per HoloLens 2
Benvenuti nell'applicazione Galaxy Explorer aggiornata per HoloLens 2. è stato originariamente sviluppato come applicazione open source per HoloLens (prima generazione) tramite il programma Share Your Idea ed è una delle prime esperienze di realtà mista che molte persone avevano. Ora lo aggiorniamo per le nuove ed entusiasmanti funzionalità di HoloLens 2.
In qualità di microsoft Realtà mista Studios, in genere sviluppiamo soluzioni di livello commerciale e sviluppiamo & test su piattaforme di destinazione durante il processo creativo e di sviluppo. Stiamo intraprendendo questo progetto usando i framework e gli strumenti (ad esempio MRTK) man mano che diventano disponibili per noi e la community, e vogliamo portarli in viaggio.
Proprio come l'originale Galaxy Explorer, il nostro team sarà opensourcing del progetto su GitHub per garantire che la community abbia accesso completo. Il nostro percorso verrà anche documentato qui in completa trasparenza su come è stato convertito da MRTK v1 a MRTK v2, migliorato l'esperienza con nuove funzionalità disponibili in HoloLens 2 e si è verificato che Galaxy Explorer abbia mantenuto un'esperienza multipiattaforma. Sia che tu stia visualizzando Galaxy Explorer in HoloLens (prima generazione), HoloLens 2, un visore VR Windows Mixed Reality o sul tuo desktop Windows 10, vogliamo assicurarti di goderti il viaggio tanto quanto siamo!
Questa pagina verrà espansa man mano che si procede nel progetto con collegamenti ad articoli, codice, artefatti di progettazione e documentazione MRTK aggiuntiva per fornire un'occhiata al progetto da parte di Insider.
Scaricare l'app da Microsoft Store in HoloLens 2
Se hai HoloLens 2 dispositivo, puoi scaricare e installare direttamente l'app nel dispositivo.
Pensiero sulle interazioni
Come studio creativo, siamo stati estatici circa il privilegio di convertire Galaxy Explorer in HoloLens 2. Sapevamo fin dall'inizio che volevamo che l'esperienza fosse una celebrazione del nuovo dispositivo e per dimostrare che Realtà mista l'emancipazione è limitata solo dall'immaginazione.
HoloLens 2 consente agli utenti di toccare, afferrare e spostare gli ologrammi in modi naturali, che rispondono molto come oggetti reali. I modelli a mano completamente articolati sono incredibili, perché consente agli utenti di fare ciò che sembra naturale. Ad esempio, tutti prelevano una tazza leggermente diversa, e invece di applicare un modo particolare per farlo, HoloLens 2 ti permette di farlo nel tuo modo.
Si tratta di un cambiamento significativo rispetto alle interfacce basate su Air Tap nei dispositivi HoloLens di prima generazione. Invece di interagire con gli ologrammi da lontano, gli utenti possono ora ottenere "vicino e personale". Quando si effettuano le esperienze esistenti per HoloLens 2 o pianificarne di nuove, è importante acquisire familiarità con la manipolazione diretta degli ologrammi.
Manipolazione diretta rispetto alle vaste distanze nello spazio
È un'esperienza magica per raggiungere, afferrare un pianeta e tenerlo in mano. La sfida con questo approccio è la dimensione del sistema solare: è enorme! L'utente dovrà spostarsi intorno alla propria stanza per avvicinarsi a ogni pianeta per interagire con esso.
Per consentire agli utenti di interagire con oggetti più lontani, MRTK offre raggi della mano che escono dal centro del palmo dell'utente, fungendo da estensione della mano. Un cursore ad anello è collegato alla fine del raggio per indicare dove il raggio interseca con un oggetto di destinazione. L'oggetto su cui si posa il cursore può quindi ricevere i comandi gestuali dalla mano.
Nella versione originale di Galaxy Explorer, l'utente avrebbe chiamato un pianeta con il cursore sguardo fisso e quindi il tocco dell'aria per chiamarlo più vicino. Il modo più semplice per convertire l'esperienza in HoloLens 2 consiste nell'accettare questo comportamento e usare i raggi della mano per selezionare i pianeti. Mentre questo era funzionale, ci ha lasciato più voglia.
Ripartiamo da zero
Ci siamo riuniti per capire cosa poteva essere costruito sopra le interazioni esistenti. Il pensiero era: anche se HoloLens 2 consente agli utenti di interagire con gli ologrammi in modi naturali, realistici, gli ologrammi sono per definizione non reali. Finché un'interazione è plausibile per l'utente, non importa se tale interazione sia possibile con un oggetto reale o meno, è possibile renderla possibile.
Un concetto esplorato era basato sulla telecinesi: il potere di manipolare gli oggetti con la propria mente. Spesso visto nei film supereroi, una persona si sarebbe raggiunta con la propria mente e chiamare un oggetto nella mano aperta. Abbiamo giocato intorno con l'idea un po ' di più e si è venuto con un rapido schizzo di come il concetto potrebbe funzionare.
L'utente punterà il raggio della mano su un pianeta, che fornirà feedback di destinazione. Mentre l'utente estende quindi la mano aperta, il pianeta verrebbe trascinato verso l'utente da una forza magica fino a quando non è abbastanza vicino per afferrarlo. Di conseguenza, il nostro nome per l'interazione: forza afferrare. Come l'utente avrebbe spinto via il pianeta con la mano aperta, sarebbe tornato alla sua orbita.
Forzare la creazione di prototipi
Sono stati quindi creati più prototipi per testare il concetto: in che modo l'interazione si sente complessivamente? L'oggetto chiamato deve fermarsi davanti all'utente o attaccare le mani fino a quando non viene posizionato? È consigliabile modificare le dimensioni o la scala dell'oggetto chiamato durante la chiamata?
Implementazione di force grab nell'applicazione
Quando abbiamo cercato di afferrare la forza sui pianeti, ci siamo resi conto che dovevamo cambiare la scala del sistema solare. Si è scoperto che una rappresentazione accurata e media del sistema solare è difficile per gli utenti capire e navigare - non sapevano dove guardare. Tuttavia, una rappresentazione di piccole dimensioni ha reso alcuni pianeti troppo piccoli per essere facilmente selezionati. Di conseguenza, le dimensioni dei pianeti e la spaziatura tra gli oggetti solari sono state progettate per sentirsi a proprio agio all'interno di una stanza di medie dimensioni mantenendo la precisione relativa.
Durante le fasi successive dello sprint di sviluppo, siamo stati abbastanza fortunati ad avere altri esperti MSFT Realtà mista in casa, quindi abbiamo avuto modo di lavorare per ottenere il loro input come tester esperti e fare iterazioni rapide sull'interazione forza afferra.
Nell'immagine: Jenny Kam, Senior Design Lead, test di un lavoro in corso di Galaxy Explorer.
Aggiunta di inviti per la destinazione
Come abbiamo sperimentato su HoloLens 2, abbiamo scoperto che anche se le nuove interazioni sono naturali e intuitive, gli ologrammi rimangono invariati: senza pesi o sensazioni tattili. Poiché gli ologrammi non forniscono feedback naturale che gli esseri umani vengono usati per ricevere quando interagiscono con gli oggetti, è necessario crearli.
Abbiamo pensato al feedback visivo e audio che gli utenti sarebbero stati forniti per le varie fasi delle loro interazioni, e poiché il meccanismo di afferramento della forza è fondamentale per interagire con Galaxy Explorer, abbiamo fatto molte iterazioni. L'obiettivo era trovare il giusto equilibrio tra feedback audio e visivo per ogni fase dell'interazione: concentrandosi sull'oggetto previsto, chiamandolo all'utente e rilasciandolo. Ciò che abbiamo appreso è che è stato necessario un maggior numero di feedback audio e visivi per rafforzare l'interazione rispetto a quella usata per HoloLens (prima generazione).
Aggiunta di inviti per forza afferrare
Una volta che abbiamo avuto il meccanismo di afferramento di forza di base con inviti audio e visivi, abbiamo visto come rendere i pianeti selezionati più intuitivi. Ci sono stati due aspetti principali da affrontare: poiché il sistema solare è un'interfaccia in movimento 3D, c'è una complessità aggiuntiva per gli utenti per imparare a definire come indirizzare gli oggetti in modo coerente. Questo è stato composto dal fatto che il raggio della mano è veloce a selezionare un oggetto, rendendo i pianeti muoversi verso l'utente incredibilmente rapidamente.
Abbiamo affrontato questo approccio con una soluzione a tre prongedi. Il primo è stato abbastanza intuitivo: rallentare il processo di selezione in modo che i pianeti si avvicinano all'utente a un ritmo più naturale. Una volta regolata la velocità, abbiamo dovuto rivedere gli inviti audio e visivi, aggiungendo feedback audio come il pianeta monitorato verso l'utente.
La seconda parte della soluzione consiste nel rendere tangibile la visualizzazione dell'intera forza di interazione. È stata visualizzata una linea spessa che si sposta verso l'oggetto di destinazione una volta che il raggio della mano si connette con esso e quindi riporta l'oggetto all'utente, ad esempio un lazo.
Infine, abbiamo ottimizzato la scala del sistema solare in modo che i pianeti fossero abbastanza grandi per lo sguardo e il raggio della mano dell'utente per indirizzarli.
Questi tre miglioramenti hanno consentito agli utenti di effettuare selezioni accurate, chiamando i pianeti in modo intuitivo. In generale, l'effetto della cattura finale della forza è un'esperienza più immersiva e interattiva nel sistema solare.
Riflettori su Giove
La creazione dei corpi solari della Via Lattea era un'esperienza umiliante. In particolare, le caratteristiche uniche di Giove lo rendono una vista da vedere. È il più grande e più colorato dei giganti del gas, e contiene più massa di tutti gli altri pianeti combinati. Le sue dimensioni e le bande mesmerante di turbolenza e dinamiche cloud sono prefette per una particolare attenzione artistica.
Geometria e mesh
Come gigante del gas, i proiettili esterni di Giove sono costituiti da strati gassi. La combinazione della velocità rotazionale veloce, dello scambio di calore interno e delle forze di Coriolis crea strati colorati e flussi che si formano in cinghie e vortici. Catturare questa complessa bellezza era fondamentale per creare il nostro sistema solare.
È stato immediatamente chiaro che l'uso di tecniche di visualizzazione come simulazioni fluide e trame animate con flussi pre-calcolati era fuori questione. La potenza di calcolo necessaria per simulare questa situazione in combinazione con tutto il resto che accade contemporaneamente avrebbe avuto un impatto negativo significativo sulle prestazioni.
L'approccio successivo era una soluzione "fumo-mirror", costituita dalla sovrapposizione di strati di trama trasparente, ognuno dei quali ha affrontato un aspetto specifico del movimento atmosferico, compilato su una composizione di mesh rotanti.
Nell'immagine seguente è possibile visualizzare la shell interna a sinistra. Questo strato mat ha fornito uno sfondo alla composizione per proteggersi da eventuali piccole lacune tra i più livelli che costituiscono le nuvole. A causa della rotazione lenta del livello, funge anche da buffer visivo tra le bande mobili più veloci per creare l'unità visiva in tutti i livelli.
Dopo aver impostato l'ancoraggio sul modello, i livelli cloud mobili sono stati proiettati nelle mesh intermedie e destra visualizzate di seguito.
Texturing
La trama esistente è stata separata in un atlas a tre parti: il terzo superiore ospita un livello senza movimento di nuvole con spazi per fornire un effetto parallasse, la sezione centrale contiene i flussi esterni in movimento rapido e il terzo inferiore contiene un livello di base interno lentamente ruotante.
La caratteristica Great Red Spot è stata anche separata nelle varie parti mobili e poi inserita in un'area altrimenti invisibile della trama. Questi componenti possono essere visualizzati come gli speck rossi nella sezione centrale dell'immagine seguente.
Poiché ogni banda ha una direzione e una velocità specifiche, la trama è stata applicata singolarmente a ogni mesh. Le mesh avevano quindi un centro comune e un punto pivot, che ha reso possibile animare in modo incentrato l'intera superficie.
Comportamento di rotazione e trama
Una volta impostata la composizione visiva di Giove, era necessario assicurarsi che le velocità di rotazione e orbita siano state calcolate correttamente e applicate di conseguenza. Il completamento di una rotazione completa richiede circa 9 ore. Si tratta di una questione di definizione a causa della sua rotazione differenziale. Pertanto, il flusso equatoriale è stato impostato come "flusso master", prendendo 3600 fotogrammi per una rotazione completa. Ogni altro livello deve avere una velocità rotazionale come fattore di 3600 per trovare la corrispondenza con la posizione iniziale, consentendo, ad esempio, 600, 900, 1200, 1800 e così via.
Il grande punto rosso
I flussi ruotanti singolarmente hanno fornito una buona impressione visiva, ma mancavano in dettaglio quando si osservava a un intervallo di chiusura.
La parte più accattivante era il grande spot rosso di Giove, quindi abbiamo creato un set di mesh e trame specificamente per presentarlo. Abbiamo usato un meccanismo simile a quello delle bande di Giove: una serie di parti rotanti è stata composta l'una sopra l'altra, mentre è raggruppata sotto il suo "livello master" per garantire che rimangano in posizione indipendentemente dalla velocità con cui si muove il resto.
Quando le mesh sono state impostate e posizionate, sono stati applicati diversi strati del vortice tempestoso e ogni disco è stato poi animato singolarmente, i pezzi centrale che si spostano più velocemente, con il resto rallentando progressivamente verso l'esterno.
La composizione aveva anche lo stesso pivot di ogni altra mesh, mantenendo anche l'inclinazione dall'asse y originale (!) per consentire la libertà nell'animare la rotazione. 3600 frame è la frequenza di base, con ogni livello con un fattore di questo come periodo di rotazione.
Ottenere il giusto in Unity
Quando si implementa questa funzionalità in Unity, è necessario tenere presente un paio di aspetti chiave.
Unity è facilmente confuso quando si gestiscono grandi set di livelli trasparenti. La soluzione consiste nel duplicare il materiale della trama per ogni mesh e applicare progressivamente i valori della coda di rendering crescente dall'interno all'esterno di 5 a ogni materiale.
Il risultato era che la shell interna aveva un valore di Render Queue pari a 3000 (impostazione predefinita), il rosso statico esterno in seguito aveva un valore pari a 3005, le nuvole esterne bianche veloci avevano 3010. Il grande punto rosso (avanzamento dal livello interno a quello esterno), finito con un valore pari a 3025 in questo modello.
Passaggi finali
I livelli di Giove con trama sono stati impostati inizialmente, che si sono rivelati insufficienti per l'implementazione.
Lo shader Planet Standard originale, e tutte le sue varianti, ricevono le informazioni di illuminazione tramite uno script, SunLightReceiver, che non è supportato dallo shader MRTK Standard.
Semplicemente lo scambio degli shader non era una soluzione perché lo shader Planet Standard non supporta le mappe delle trame con transparencie. Abbiamo modificato questo shader per fare il lavoro di compilazione Giove come previsto.
Infine, le blend alfa devono essere configurate impostando la fusione di origine su 10 e la miscela di destinazione su 5.
Potete vedere il rendering finale di Giove in Galaxy Explorer!
Presentazione del team
Il nostro team di Realtà mista studio è costituito da designer, artisti 3D, specialisti dell'esperienza utente, sviluppatori, un program manager e un responsabile dello studio. Abbiamo grandine da tutto il mondo: Belgio, Canada, Germania, Israele, Giappone, Regno Unito e Stati Uniti. Siamo un team multidisciplinare che proviene da un background diversificato: giochi, sia tradizionali che indie, marketing digitale, assistenza sanitaria e scienza.
Siamo lieti di creare Galaxy Explorer per HoloLens 2 e di aggiornare le versioni di HoloLens (prima generazione), VR e desktop.
In alto da sinistra a destra: Artemis Tsouflidou (Sviluppatore), Angie Teickner (Visual Designer), David Janer (UX Designer), Laura Garrett (Delivery & Production Lead), Yasushi Zonno (Creative Lead), Eline Ledent (Developer) e Ben Turner (Sr. Developer). In basso da sinistra a destra: Amit Rojtblat (artista tecnico), Martin Wettig (artista 3D) e Dirk Songuer (Studio Head). Non in primo piano: Tim Gerken (Tech Lead) e Oscar Salandin (Visual Designer).
Informazioni aggiuntive
Realtà mista Studios
I team di Microsoft Realtà mista Studio, situati in America, Europa e Asia-Pacific, sono esperti nella progettazione dell'esperienza utente, nel calcolo olografico, nelle tecnologie AR/VR e nello sviluppo 3D, tra cui la creazione di asset 3D, DirectX, Unity e Unreal. Aiutiamo a immaginare i futuri desiderati, progettare, creare e offrire soluzioni, consentendo ai clienti di creare un impatto misurabile nell'intera organizzazione. Gli studi lavorano a stretto contatto con oltre 22.000 professionisti dei servizi Microsoft per l'integrazione di applicazioni aziendali, l'adozione, le operazioni e il supporto.