360Stories: Äventyret skapar virtual reality app för Samsung Gear VR
På Äventyret har vi experimenterat med virtual reality (VR) sedan Oculus släppte sin första prototyp 2013. I början av 2015 fick vi användning för våra erfarenheter och idéer inom VR i ett kundprojekt, i form av världens första panoramaspelar-app för Samsungs Gear VR.
Samsung Gear VR är ett VR-headset som använder Samsung Galaxy-mobiler som skärm för att köra appar som skapats med Oculus utvecklingsprogramvara för Android. I samband med lanseringen av Samsung Galaxy Note 4, behövde Samsung detta pilotprojekt för att ha appar färdiga i Samsung Gear VR. Detta för att kunna visa på plattformens möjligheter redan vid lansering.
Uppdraget kom från 360Cities, världens största tillhandahållare av 360-graders panoramabilder (och i förlängningen från Samsung, världens största tillverkare av mobiler). Äventyret stod i det här fallet för koncept och design medan vår teknikpartner Prototyp stod för den tekniska utvecklingen. Resultatet blev 360Stories, en app som tillåter fotografer att skapa berättelser av sina panoramor med hjälp av kommentatorspår. Är du nyfiken på vad vi lärde oss i processen?
Konceptet
I grunden är 360Stories en app för berättelser. Den används för att ladda ned och visa upp fängslande fotografiska panoramor ackompanjerade av kommentatorspår och ambienta ljud från platsen som skildras. Det vi gillar allra bäst med appen är att vem som helst kan skapa berättelser till den, eftersom 360Stories stödjer en öppen XML-standard kallad RPL. Precis som webbläsare renderar sidor byggda med html renderar 360Stories berättelser som kodats för RPL. Möjligheten finns alltså att både ladda ned färdiga berättelser från 360Cities och att skapa egna och ladda upp dem till appen.
En grundläggande sak vi lärt oss från utveckling av innehåll för virtuella miljöer (med början i ett projekt för Second Life 2007) är att undvika att kommunicera med hjälp av stora mängder text. Att läsa text i virtuella miljöer är inte bara tråkigt men även ineffektivt. Istället är det bättre att låta användaren fokusera på utforskning av miljöer medan de lyssnar till ljudspår med relevant information.
Tekniska utmaningar
En utmaning med att bygga appar för något så ovanligt som en prototyp av en ”uppfinnarversion” av en konsumentprodukt är att man siktar på en rörlig måltavla både mjukvaru- och hårdvarumässigt. Det fick vi erfara med Oculus software development kit (SDK). Många spelutvecklare gör rätt i att välja Unity 3D som renderingsmotor ovanpå Oculus SDK eftersom det tillhandahåller ett välutvecklat lager abstraktion som skyddar dem från en del större problem som kan uppstå när man bygger för ett föränderligt SDK.
Men Oculus egna SDK innehåller väloptimerade inbyggda renderingsverktyg för panoramor och det var på dem vi bestämde oss för att bygga vår app. Halvvägs in i processen lanserades dock en ny version av SDK:t där renderingsfunktionaliteten förändrats i grunden. Med slutresultatet i hand var det ändå värt det extra arbetet då renderingen blev skarp och precis.
Uppkopplat
Från början var vår tanke att låta användare hitta spelbara filer till appen var som helst på nätet med hjälp av en webbläsare. Vid nedladdning skulle dessa filer öppnas i 360Stories. Tyvärr visade det sig vara omöjligt då appar som skapas för Gear VR har restriktioner för kommunikation med andra appar. Detta gör att de bara kan användas inom kontextet Gear VR och Oculus ”Home” app/store. Det är inte ett problem för exempelvis spel där innehållet ofta är statiskt, men vi ville göra 360Stories till en universell spelare för specifika typer av webbaserat innehåll. Hur kommer man då runt det?
Vår lösning var att läsa in och lista innehåll från en RSS-ström i 360Stories-appen. På så sätt kan appen regelbundet få nytt innehåll utan att den i sig själv behöver uppdateras och laddas ned på nytt. RSS-flödet i sin tur kontrolleras av 360Cities men vem som helst kan själv skapa och ladda upp spelbara filer till 360Stories och sedan öppna och spela dem dem via Gear VR.
Framtida utveckling
Vårt arbete för 360Cities och Samsung resulterade i en minimum viable product (MVP), där appen hade stöd för ett begränsat antal funktioner och innehållstyper i RPL-standarden. Det innebar stöd för exempelvis popup-bildtexter och stereografiska 3D-panoraman men inte för video och riktat ljud eller bildtexter till specifika punkter i panoramat. RPL-specifikationen förutsåg den sortens utveckling. Det fanns också mycket kvar att göra för att förbättra den då något basala navigationen på skärmen. Slutligen var panoramorna vi hade att jobba med renderade från equirektangulära filer vilket genererar diskontinuiteter vid nadir och zenit-punkten. Framtida versioner av 360Stories kommer förhoppningsvis kunna stödja kubiska projektioner, men det blir nån annans story då vi gjorde en tekniköverlämning i slutet av 2015.