Om VR, del 5: Interaktion

När man befinner sig i en virtuell miljö är det ju inget roligt om man inte kan röra sig runt och påverka det man ser. Hur ska detta gå till? I vanliga (2D-)skrivbordsapplikationer använder vi typiskt mus och tangentbord för att kontrollera miljön, men i en VR-värld råder ju helt andra förutsättningar. Eller?

Hur ska man navigera runt i- och interagera med en virtuell värld? Det är naturligtvis en lika intressant som viktig fråga. Det är välkänt att ett datorprogram med nyttiga funktioner kan ses som värdelöst om det inte har ett genomtänkt gränssnitt, och samma sak gäller för VR-tillämpningar.

En faktor som försvårar diskussionen är förstås att "äkta" VR-världar inte existerar ännu. Det finns helt enkelt inte tekniska lösningar som gör det möjligt för användaren att helt uppslukas av en konstgjord omgivning som tycks lika verklig som originalet. Om så varit fallet så hade vi ju kunnat navigera runt i den precis som vanligt.

Situationen är nu istället ofta att man vill kunna röra sig runt i VR-miljön utan att röra sig så mycket i verkligheten. Till exempel har ju eventuell trackingutrustning begränsad räckvidd, vilket ställer direkta krav på alternativ navigering. Dessutom vill man kanske plocka upp virtuella objekt för att pilla på dem, eller vad det nu kan tänkas vara. Okej, vi tar och tittar på navigeringsproblemet först, för att sedan dyka litet djupare i själva manipulationsbiten.

Navigering i virtuella världar

Grundförutsättningen är alltså att man inte får röra för mycket på sin kropp rent fysiskt, men att man ändå måste kunna jazza omkring obehindrat (helst) i låtsasvärlden. Det finns förstås flera olika lösningsförslag, och ett vanligt är konceptet att flyga. Jag vet inte om det beror på att förmågan att kunna flyga finnas som en dröm hos många människor eller om det helt enkelt är resultatet av rationellt problemlösande, men navigering genom flykt tycks ses som en naturlig approach till problemet.

Hur ska man då styra? Det finns alla möjliga varianter. Man kan använda en fysisk styrspak, ratt eller motsvarande. Man kan använda trackingutrustning för att använda kroppsgester (Stålmannen, någon?) för att kontrollera framfarten och man kan använda virtuella styrspakar och liknande. För att ta några exempel. Att justera hastighet har liknande problematik och (förslag på) lösningar.

Man måste inte flyga omkring i sin VR-värld. Naturligtvis kan man hitta på andra varianter. Om man vet var man ska så kan datorn lika gärna räkna ut färdvägen och "köra" en till slutmålet. Eller varför inte krympa ner hela världen till kartstorlek, för att sedan använda en enkel pekning avgöra var man dimper ned när världen återfår sin fulla storlek? Eller teleportering, det låter ju fräckt!

Jag vill påstå att fantasin sätter gränserna, och kanske är det just denna frihet som gör det så svårt att ta fram ett bra navigeringssystem. Det är ju så lätt att fastna för "Stålmannengrejen", en uppenbar lösning... Men är den den bästa? Jag tror inte det. Men jag ska inte klaga egentligen – jag implementerade precis en sådan variant när jag labbade tillsammans med Peter Asplund under VR-kursen.

Virtuella världar är något nytt och därför helt främmande, trots att det är vi själva som skapar dem. Jag tror att mer energi, fantasi och nytänkande måste till för att få fram de riktigt geniala navigeringssystemen. Kom ut ur lådan!

Objektmanipulering

Att "manipulera objekt", hur kul låter det egentligen? Ganska nördigt, ganska torrt. Å andra sidan behövs kanske inga hippa omskrivningar. Jag tror att det är svårt att beskriva själva förfarandet kort i ord just eftersom vi inte tänker på det i vår vardag. Det ligger (för de flesta av oss) ingen problematik i handlingar som "plocka upp glaset", "öppna dörren" eller "slå på TV:n". I en virtuell värld är förutsättningarna annorlunda just eftersom alla de här sakerna per definition inte existerar. Men vi kan se dem, och med en portion tekniska prylar kanske vi till och med kan känna dem. Då ska det väl inte vara så svårt att "manipulera" dem?

Ändå ska jag inte försöka att fördumma problemställningen. I och med att tillämpningsområdena för VR är så skilda så krävs olika metoder för interaktion.

I ett projekt som folket på NVIS håller på med gäller det att hantera flygplansrutter i ett flygledningsprogram. Hela Skandinavien kan vara synligt på samma gång, med alla dess flighter. Planen måste kunna väljas för att styras om. Hur ska man göra? Peka och klicka? Det fungerar inte alltid. Röststyrning är ett alternativ, gärna i kombination med något form av handstyrt inmatningssystem.

En annan tillämpning är träningssimuleringar inom kirurgi, där användaren låtsas operera en patient. Där krävs precis kontroll över verktygen, och inmatningen måste förstås ske på ett sätt som liknar det verkliga – annars vore ju träningen rätt värdelös.

Låt säga att vi har en situation där vi vill kunna hantera objekt som finns en längre bit ifrån oss. Vi kan välja dem genom att peka med en virtuell laserpenna, till exempel. Sedan då? Antag att vi vill snurra på objektet, samtidigt som vi tar en närmare titt på det. Ska objektet under själva handlingen flyttas till oss, som om vi hade det i våra händer? Då skulle vi ju kunna vrida och vända på det hur mycket vi ville. Men hur skulle detta se ut för en utomstående användare som också befann sig i VR-världen?

Som ni ser så finns det en hel del nötter att knäcka när det gäller interaktionsteknik i VR. Jag tror personligen att man ska akta sig för att fastna i samma metaforer som man har i 2D-datorprogram, att man faktiskt måste våga tänka nytt. Det är faktiskt en ny situation. Detta borde man se som något inspirerande istället för begränsande! Här har vi ju ett område som folk inte bemästrat i århundraden, och som därmed är mycket möjligt att påverka.

Jag tänker faktiskt avsluta min lilla mini-artikelserie här. Jag hoppas att den har erbjudit någon stunds intressant läsning och att du kanske lärt dig något du inte visste innan. Tack för uppmärksamheten!

Anders Fjeldstad

Anders Fjeldstad
Publicerad 17 oktober 2005

Copyright © 2005 Anders Fjeldstad et al.