Skapandet av Galaxy Explorer för HoloLens 2

Ny Galaxy Explorer-logotyp

Välkommen till det uppdaterade Galaxy Explorer for HoloLens 2-programmet! Galaxy Explorer utvecklades ursprungligen som ett program med öppen källkod för HoloLens (första generationen) via Share Your Idea-programmet och är en av de första mixed reality-upplevelserna som många människor hade. Nu uppdaterar vi den för de nya och spännande funktionerna i HoloLens 2.

Som en av Microsoft Mixed Reality Studios utvecklar vi vanligtvis lösningar i kommersiell kvalitet och utvecklar & testning på målplattformar under hela processen för kreativ utveckling och utveckling. Vi inleder det här projektet med ramverken och verktygen (som MRTK) när de blir tillgängliga för oss och samhället - och vi vill ta med dig på resan.

Precis som den ursprungliga Galaxy Explorer kommer vårt team att ha öppen källkod för projektet på GitHub för att säkerställa att communityn har fullständig åtkomst. Vi kommer också att dokumentera vår resa här i fullständig transparens om hur vi porterade från MRTK v1 till MRTK v2, förbättrade upplevelsen med nya funktioner som är tillgängliga i HoloLens 2 och såg till att Galaxy Explorer förblev en upplevelse med flera plattformar. Oavsett om du tittar på Galaxy Explorer på HoloLens (första generationen), HoloLens 2, ett Windows Mixed Reality headset eller på ditt Windows 10 skrivbord, vill vi se till att du njuter av resan lika mycket som vi är!

Den här sidan expanderar när vi går igenom projektet med länkar till mer detaljerade artiklar, kod, designartefakter och ytterligare MRTK-dokumentation för att ge dig en insiders titt på projektet.

Ladda ned appen från Microsoft Store i HoloLens 2

Om du har HoloLens 2 enhet kan du ladda ned och installera appen direkt på din enhet.

Märke på engelska

Tänka på interaktioner

Som kreativ studio var vi extatiska över privilegiet att porta Galaxy Explorer till HoloLens 2. Vi visste redan från början att vi ville att upplevelsen skulle vara en hyllning till den nya enheten och att visa att Mixed Reality empowerment endast begränsas av fantasin.

HoloLens 2 gör att användarna kan röra vid, förstå och flytta hologram på ett sätt som känns naturligt – de svarar ungefär som riktiga objekt. Fullständigt formulerade handmodeller är fantastiska, eftersom det låter användarna göra det som känns naturligt. Till exempel plockar alla upp en kopp något annorlunda – och i stället för att framtvinga ett visst sätt att göra det, HoloLens 2 låter dig göra det på ditt sätt.

Detta är en betydande förändring från air tap-baserade gränssnitt på första generationens HoloLens-enheter. I stället för att interagera med hologram på avstånd kan användarna nu komma "nära och personligt". När du porterar befintliga upplevelser till HoloLens 2 eller planerar nya är det viktigt att du bekantar dig med direkt manipulering av hologram.

Direkt manipulering jämfört med de stora avstånden i rymden

Det är en magisk upplevelse att nå ut, ta tag i en planet och hålla den i handen. Utmaningen med den här metoden är storleken på solsystemet – den är enorm! Användaren skulle behöva gå runt i sitt rum för att komma nära varje planet för att interagera med den.

För att tillåta användare att interagera med objekt som är längre bort, erbjuder MRTK handstrålar som skjuter ut från mitten av användarens handflata, som fungerar som en förlängning av handen. En ringformad markör är fäst vid strålens ände för att indikera var strålen korsar ett målobjekt. Objektet som markören hamnar på kan sedan ta emot gesturalkommandon från handen.

I den ursprungliga versionen av Galaxy Explorer skulle användaren rikta in sig på en planet med blickmarkören och sedan lufttryck för att kalla den närmare. Det enklaste sättet att porta upplevelsen till HoloLens 2 är att ta detta beteende och använda handstrålar för att välja planeter. Även om detta var funktionellt, lämnade det oss att vilja ha mer.

Tillbaka till ritbordet

Vi gick samman för att se vad som skulle kunna byggas ovanpå de befintliga interaktionerna. Tanken var: Även om HoloLens 2 tillåter användare att interagera med hologram på naturliga, realistiska sätt, är hologram per definition inte verkliga. Så länge en interaktion är rimlig för användaren spelar det ingen roll om den interaktionen skulle vara möjlig med ett verkligt objekt eller inte – vi kan göra det möjligt.

Ett begrepp som vi utforskade baserades på telekinesis – kraften att manipulera objekt med ett sinne. Ofta sett i superhjältefilmer, skulle en person nå ut med sitt sinne och kalla ett föremål i sin öppna hand. Vi lekte med idén lite mer och kom på en snabb skiss av hur konceptet kunde fungera.

Koncept för interaktion med force grab

Användaren skulle peka handstrålen på en planet, vilket skulle ge målfeedback. När användaren sedan utökar sin öppna hand, skulle planeten dras mot användaren av en magisk kraft tills den är tillräckligt nära för att ta tag i den. Därför vårt namn för interaktionen: force grab. Eftersom användaren skulle trycka bort planeten med sin öppna hand skulle den återvända igen till sin omloppsbana.

Framtvinga prototyper

Sedan skapade vi flera prototyper för att testa konceptet: Hur känns interaktionen överlag? Ska det anropade objektet stanna framför användaren eller hålla sig i händerna tills det placeras? Ska det anropade objektet ändra storlek eller skala när det anropas?

Implementera force grab i programmet

När vi provade kraftgreppet på planeter insåg vi att vi var tvungna att ändra solsystemets skala. Det visade sig att en korrekt, medelstor representation av solsystemet är svår för användare att förstå och navigera - de visste inte var de skulle leta. En liten representation gjorde dock vissa planeter för små för att enkelt väljas ut. Som ett resultat var storleken på planeterna och avståndet mellan solobjekt utformades för att känna sig bekväma i ett medelstort rum samtidigt som relativ noggrannhet upprätthålls.

Under de senare stadierna av vår utvecklingsspurt hade vi turen att ha andra MSFT-Mixed Reality experter internt, så vi fick arbeta med att få deras indata som experttestare och göra snabba iterationer på force grab-interaktionen.

Jenny Kam testar en förhandsversion av Galaxy Explorer

På bild: Jenny Kam, Senior Design Lead, testar ett pågående arbete i Galaxy Explorer.

Lägga till priser för målanpassning

När vi experimenterade på HoloLens 2 upptäckte vi att även om de nya interaktionerna är naturliga och intuitiva förblir hologram desamma: utan vikt eller taktila förnimmelser. Eftersom hologram inte ger naturlig feedback som människor är vana vid att ta emot när de interagerar med objekt, behövde vi skapa dem.

Vi tänkte på den visuella och ljudfeedback som användarna skulle få för de olika stadierna av deras interaktioner, och eftersom mekanismen för kraftgrepp är central för att interagera med Galaxy Explorer gjorde vi många iterationer. Syftet var att hitta rätt balans mellan ljud- och visuell feedback för varje steg i interaktionen: fokusera på det avsedda objektet, anropa det för användaren och sedan släppa det. Vad vi har lärt oss är att mer feedback från ljud och visuella objekt krävdes för att förstärka interaktionen än vi var vana vid för HoloLens (första generationen).

Visuella priser på planeter

Lägga till affordances för force grab

  När vi hade den grundläggande kraftgreppsmekanismen med ljud- och visuella priser tittade vi på hur vi skulle göra valet av planeter mer användarvänligt. Det fanns två huvudsakliga saker att ta itu med: Eftersom solsystemet är ett 3D-rörligt gränssnitt, finns det ökad komplexitet för användare att lära sig att rikta objekt konsekvent. Detta förvärrades av det faktum att handstrålen är snabb på att välja ett objekt, vilket gör att planeter rör sig mot användaren otroligt snabbt.

Vi närmade oss detta med en tredelade lösning. Den första var ganska intuitiv: sakta ner urvalsprocessen så att planeter närmar sig användaren i en mer naturlig takt. När hastigheten justerades var vi tvungna att gå tillbaka till ljud- och visuella priser och lägga till ljudfeedback när planeten spårade mot användaren.

Den andra delen av lösningen var att göra visualiseringen av hela kraftgreppsinteraktionen påtaglig. Vi visualiserade en tjock linje som rör sig mot målobjektet när handstrålen ansluter till det och sedan tar tillbaka objektet till användaren – som en lasso.

Visuella

Slutligen optimerade vi solsystemets skala så att planeterna var tillräckligt stora för att användarens blick och handstråle skulle riktas mot dem.

Dessa tre förbättringar gjorde det möjligt för användare att göra korrekta val och anropa planeter till dem på ett intuitivt sätt. På det hela taget är effekten av det slutliga kraftgreppet en mer uppslukande och interaktiv upplevelse i solsystemet.

Spotlight på Jupiter

Att skapa solkropparna på Vintergatan var en ödmjuk upplevelse. I synnerhet gör Jupiters unika egenskaper det till en syn att se. Det är den största och mest färgstarka av gasjättarna, och innehåller mer massa än alla andra planeter tillsammans. Dess stora storlek och fascinerande band av turbulens och molndynamik är prefekt för särskild konstnärlig uppmärksamhet.

Geometri och nät

Som gasjätte består Jupiters yttre skal av gasformiga lager. Kombinationen av dess snabba rotationshastighet, inre värmeutbyte och Coriolis-krafter skapar färgglada lager och strömmar som bildas i virvlande molnbälten och virvelband. Att fånga denna invecklade skönhet var nyckeln till att skapa vårt solsystem.

Det stod omedelbart klart att det var uteslutet att använda visualiseringstekniker som vätskesimuleringar och animerade texturer med förberäknade strömmar. Den beräkningskraft som krävs för att simulera detta i kombination med allt annat som händer samtidigt skulle ha haft betydande skadliga effekter på prestandan.

Översikt över Jupiter-objekt

Nästa metod var en "rök-och-spegel"-lösning, bestående av överlägg transparenta texturskikt, som var och en tog upp en specifik aspekt av den atmosfäriska rörelsen, sammanställd på en sammansättning av roterande nät.

I bilden nedan kan du se det inre gränssnittet till vänster. Det här mattlagret gav en bakgrund till kompositionen för att skydda mot små luckor mellan de flera lager som utgjorde molnen. På grund av lagrets långsamma rotation fungerade det också som en visuell buffert mellan de snabbare rörliga banden för att skapa visuell enhet i lagren.

När den här fästpunkten hade ställts in på modellen projicerades de rörliga molnlagren på mitten och höger mesh som visas nedan.

Översikt över Jupiter-objekt med avgränsade gränssnitt

Texturering

Den befintliga strukturen var uppdelad i en texturatlas i tre delar: Den övre tredjedelen är värd för ett orört lager av moln med luckor för att ge en parallaxeffekt, den mellersta delen innehåller de snabbt rörliga yttre strömmarna och den nedre tredjedelen innehåller ett långsamt roterande inre basskikt.

Den karakteristiska stora röda fläcken var också separerad i dess olika rörliga delar och sedan infogas i ett annars osynligt område av texturen. Dessa komponenter kan ses som de rödtonade specifikationerna i mitten av bilden nedan.

Eftersom varje band har en specifik riktning och hastighet applicerades strukturen på varje nät individuellt. Näten hade sedan en gemensam mitt- och pivotpunkt, vilket gjorde det möjligt att sammanfoga hela ytan koncentriskt.

Översikt över Jupiter-texturer

Rotations- och strukturbeteende

När Jupiters visuella sammansättning sattes, behövde vi se till att rotations- och omloppsbanahastigheterna beräknades och tillämpades korrekt. Det tar ungefär 9 timmar för Jupiter att slutföra en fullständig rotation. Detta är en definitionsfråga på grund av dess differentiella rotation. Därför har ekvatorialströmmen ställts in som en "huvudström", vilket tar 3 600 bilder för en fullständig rotation. Alla andra lager behövde ha en rotationshastighet som en faktor på 3600 för att matcha dess ursprungliga position, vilket gör det möjligt, t.ex. 600, 900, 1200, 1800 osv.

Jupiter-skalstrukturer

Den stora röda fläcken

De individuellt roterande strömmarna gav ett bra visuellt intryck, men saknades i detalj när de observerades på nära håll.

Den mest iögonfallande delen var Jupiters stora röda fläck, så vi skapade en uppsättning nät och texturer specifikt för att visa upp den.   Vi använde en liknande mekanism som med Jupiters band: en uppsättning roterande delar komponerades ovanpå varandra, samtidigt som de grupperades under dess "huvudskikt" för att säkerställa att de förblir på plats oavsett hur snabbt resten rör sig.

När näten sattes upp och på plats applicerades olika lager av den stormiga virveln och varje skiva animerades sedan individuellt, mittbitarna rörde sig snabbast, och resten saktade gradvis ner när den rörde sig utåt.

Jupiter Great Red Spot mesh

Kompositionen hade också samma pivot som alla andra nät, samtidigt som den höll sin lutning från sin ursprungliga y-axel (!) för att tillåta frihet att animera rotationen. 3 600 bildrutor är bashastigheten, där varje lager har en faktor av detta som en rotationsperiod.

Jupiter Great Red Spot textur

Få det rätt i Unity

Det finns några viktiga saker att tänka på när du implementerar detta i Unity.

Unity är lätt att förväxla när du hanterar stora uppsättningar transparenta lager. Lösningen var att duplicera texturmaterialet för varje nät och tillämpa stigande Render Queue-värden progressivt från det inre till det yttre med 5 för varje material.

Resultatet var att det inre gränssnittet hade renderningskövärdet 3 000 (standard), den statiska rödtonade yttre senare hade värdet 3005, de snabba vita yttre molnen hade 3010. Den stora röda fläcken (som går från inre till yttre lager) avslutades med värdet 3025 i den här modellen.

Jupiters sista objekt

Sista handen

De texturerade Jupiterskikten inrättades först, vilket visade sig vara otillräckligt för implementering.

Den ursprungliga Planet Standard shader, och alla dess variationer, får sin belysningsinformation via ett skript, SunLightReceiver, som inte stöds av MRTK Standard Shader.

Att bara byta skuggorna var inte en lösning eftersom Planet Standard-skuggningen inte stöder texturkartor med transparencies. Vi redigerade den här skuggningen för att få Jupiter-bygget att fungera som avsett.

Slutligen behövde Alpha Blends konfigureras genom att ange Source Blend till 10 och Destination Blend till 5.

Egenskaper för Jupiter Unity

Du kan se den slutliga återgivningen av Jupiter i Galaxy Explorer!

Träffa teamet

Vårt Mixed Reality studioteam består av designers, 3D-konstnärer, UX-specialister, utvecklare, programchef och studiochef. Vi kommer från hela världen: Belgien, Kanada, Tyskland, Israel, Japan, Storbritannien och USA. Vi är ett tvärvetenskapligt team som kommer från en mångfaldig bakgrund: spel - både traditionell och indie, digital marknadsföring, sjukvård och vetenskap.

Vi är glada över att skapa Galaxy Explorer för HoloLens 2 och att uppdatera HoloLens(första generationen), VR och skrivbordsversioner.

Galaxy Explorer-teamet

Längst upp från vänster till höger: Artemis Tsouflidou (Developer), Angie Teickner (Visual Designer), David Janer (UX Designer), Laura Garrett (Delivery & Production Lead), Yasushi Zonno (Creative Lead), Eline Ledent (Developer) och Ben Turner (Sr. Developer). Längst ned från vänster till höger: Amit Rojtblat (Teknisk konstnär), Martin Wettig (3D Artist) och Dirk Songuer (Studio Head). Inte aktuell: Tim Gerken (Tech Lead) och Oscar Salandin (Visual Designer).

Ytterligare information

Mixed Reality Studios

Microsoft Mixed Reality Studio-team – som finns i Amerika, Europa och Asia-Pacific – är experter på design av användarupplevelser, holografisk databehandling, AR/VR-teknik och 3D-utveckling, inklusive 3D-tillgångsskapande, DirectX, Unity och Unreal. Vi hjälper dig att föreställa dig önskade framtider, utforma, skapa och leverera lösningar, samtidigt som kunderna kan skapa mätbara effekter i hela organisationen. Studiorna har ett nära samarbete med över 22 000 Microsoft Services-experter för integrering, implementering, drift och support av företagsprogram.