Designet og implementeringen av håndsporing i 'Myst' PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Designet og implementeringen av håndsporing i 'Myst'

Ved hjelp av Presence Platforms oppgraderte Hand Tracking API, introduserte vi Hand Tracking med vår siste oppdatering til Myst på Meta Quest-plattformen, med tittelen "Hands & More". Vi er veldig glade for å endelig la folk spille Myst på Quest uten fysiske kontroller! I dette innlegget vil vi diskutere utviklingen og iterasjonen av å implementere håndsporing Myst– og spesielt å legge til mer støtte for det i Unreal Engine 4.27.2.

Designet og implementeringen av håndsporing i 'Myst' PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Gjesteartikkel av Hannah Gamiel

Hannah Gamiel er utviklingsdirektør ved Cyan—studioet bak originalenMyst' spill – og bidro til å utvikle det nye 'Myst (2020)' som inkluderer VR-støtte. Hun kommer opprinnelig fra en rent teknisk bakgrunn, og hjelper nå med å lede produksjonen på alle titler og administrerer forretnings- og teknologiarbeid hos Cyan. Hun har jobbet med titler som 'Myst' (2020), 'The Witness', 'Braid, Anniversary Edition', 'Obduction', 'Firmament' (kommer snart!) og mer.

Designfase og vurderinger

Designe navigasjon for håndsporing

Bilde som viser hvor du ønsker å dra. Du har sannsynligvis tenkt på å peke, ikke sant? Det er derfor vi valgte å bruke en "pekemetode" for å bevege oss inn Myst.

Når du er i teleporteringsmodus, kan du peke på hvor du vil dra og teleporteringsringen vises på destinasjonen. Når du 'av-peker' (ved å strekke ut resten av fingrene, eller ganske enkelt trekke pekefingeren tilbake i håndflaten), utføres teleporteringen.

Når du er i jevn bevegelsesmodus, vil det å peke med den frie bevegelsesdominerende hånden din (som kan konfigureres i kontrollinnstillingene våre, men som er venstre hånd som standard) jevnt bevege deg rundt i retningen du peker.

Når du lekteste bevegelse med peking, fant vi ut at håndsporing noen ganger kan være upålitelig med pekefingeren og langfingeren når den er blokkert av resten av hånden. Systemet er ikke sikker på om disse fingrene peker helt eller helt "innesluttet" i hånden din. Vi la til litt av en "fudge"-faktor i koden for å gjøre rede for mer stabil bevegelsesinitiering/-utførelse på denne fronten – som vi skal gå inn på litt senere når vi diskuterer endringer som er gjort i ut-av-boksen håndsporing støtte i Unreal Engine.

Turning

'Point'-metoden fungerer ikke for alle navigasjonsbruk. Når det gjelder vending kombinerte vi i utgangspunktet peking med håndleddsrotasjon. Sammenligning av spillerens håndledd og kameraets fremovervektor vil indikere retningen på svingen (og hvor stor svingen skal være). Vi prøvde dette i utgangspunktet siden det virket intuitivt å holde "peking"-temaet for navigering i gang mellom alle moduser.

Det oppsto imidlertid komplikasjoner i komforttester. I playtesting vil de fleste spillere peke fremover med håndflaten vendt mot bakken, slik man sannsynligvis ville gjort når man forsøkte å peke på noe utenfor et spill også. Å rotere håndleddet til venstre og høyre (rundt opp-aksen på håndleddet) mens du har håndflaten vendt mot bakken er utfordrende og har et svært begrenset bevegelsesområde, spesielt hvis du prøver å snu deg bort fra brystet.

Dette problemet er det samme selv om du ba en spiller peke på noe foran seg med håndflatene vendt innover. Du kan bøye håndleddet inn mot kroppen din ganske mye, men du vil ikke få det samme bevegelsesområdet ved å bøye håndleddet bort fra kroppen.

Så hvordan løste vi dette? Vi endte opp med å tilordne snu til en "tommel opp"-bevegelse i stedet for en pekefinger-pekebevegelse.

Tenk deg å gi en tommel opp. Vri nå håndleddet til høyre og venstre. Merk at selv om du ikke har et stort bevegelsesområde, er det fortsatt ganske konsekvent å peke enten "venstre" og "høyre" med tommelen i denne gesten.

Dette er hva vi slo oss til for å slå i håndsporingsmodus. Selv om å peke med tommelen ikke virker som den mest intuitive måten å snu, det gjorde ende opp med å være den mest komfortable og konsekvente måten å gjøre det på.

Med snapvending vil rotering av håndleddet til venstre eller høyre fra en tommel opp-posisjon føre til at en enkelt snapvending starter. Du må deretter sette hånden tilbake til 'senter' (rett opp) posisjon for å tilbakestille snappen, og i tillegg vente på en veldig kort nedkjøling for å starte en snapsving igjen.

Ved jevn svinging vil det å dreie håndleddet mens du er i en tommel opp-posisjon begynne å rotere deg til venstre eller høyre – når du forlater en "død sone" som forhindrer en sving fra å skje før du passerer terskelen.

Håndtere konflikter mellom bevegelser og objektinteraksjonsposisjoner

Å peke en finger er selvfølgelig en for bred gest til å kunne antas å bare brukes til navigering. Folk vil gjøre den samme pekebevegelsen for å trykke på knapper eller samhandle med andre ting i verden bare av vane eller av deres egen forventning. Det ville vært ganske skurrende å gå opp til (men ikke ikke sant opp til) en knapp, pek fingeren for å trykke på den, og flytt så plutselig (og uønsket) nærmere den i spillet (eller start en teleportering utilsiktet)!

Måten vi forhindrer at bevegelse oppstår mens spilleren interagerer med noe, er ved å forhindre at enhver bevegelseskode utløses når hånden som gjør "bevegelsen"-bevegelsen er innenfor et visst område for et interagerbart objekt. Denne serien har blitt tilpasset flere ganger for å komme til et godt "sweet spot" basert på leketesting.

Vi har funnet ut at denne søte flekken er rundt 25 cm fra verdensrommets plassering av beinet på tuppen av pekefingeren. Myst er full av interaktive objekter i forskjellige størrelser (alt fra små knapper til veldig store spaker) oppstilt i både vidåpne rom og smale ganger, så det tok oss ganske mye testing å slå oss fast på dette tallet. Vi prøvde i utgangspunktet 60 cm (omtrent to fot), men det forhindret bevegelse i å oppstå når spillerne fortsatt trengte å komme nærmere en gjenstand. På samme måte førte alt under 25 cm til at uønsket spillerbevegelse utløste når spillere prøvde å gripe eller berøre en gjenstand.

Et av våre beste testområder var generatorrommet på Myst Island, hvor du tar deg gjennom en smal inngangsvei og umiddelbart blir møtt av et panel fullt av knapper. Når interaksjonstestområdet var for stort, klarte ikke spillerne å bevege seg gjennom inngangen og mot panelet fordi det oppdaget knapper innenfor rekkevidden til pekefingeren.

Når det er sagt, 25 cm er det som fungerte spesielt for Myst. Andre spill må kanskje justere dette tallet hvis de vil implementere noe lignende, med egne kriterier i tankene.

Designe objektinteraksjoner for håndsporing

Akkurat nå er alle gripbare interaksjoner inne Myst er bygget for å fungere med håndsporing – snu ventiler, åpne dører, trykke på knapper, bla i boksider og så videre.

Samhandlingene gir tilbake det vi allerede hadde satt opp for Myst med Touch-kontrollere. Der, ved å trykke på grip-knappen blander du automatisk netting-representasjonen av hånden din i en "grepet" positur, enten du setter hånden i en knyttneve (hvis den er tom) eller griper en gjenstand. Med håndsporing har vi lagt til kode som vil gjøre en kvalifisert gjetning om når du har krøllet fingrene nok til å "gripe" noe og starte den samme logikken som nevnt før.

For eksempel, når du bruker håndsporing og hånden din svever over noe som kan gripes, blir håndfargen oransje (dette er nøyaktig hva som skjer når du ikke bruker håndsporing i Myst VR også). Når du griper et interaksjonsbart objekt ved å begynne å krølle fingrene til en knyttneve, erstatter en oransje kule håndnettet ditt og representerer hvor hånden er festet til objektet.

Grunnen til at vi valgte denne metoden i stedet for å lage tilpassede poserbare netting for hendene dine – eller la hendene/fingrene dine se ut til å samhandle fysisk med deler av disse objektene – er fordi vi ønsket at interaksjonene skulle være i samsvar med det vi tilbyr på berøringskontrollsiden for nå.

Å trykke på knapper fungerer imidlertid annerledes. Det er ikke behov for abstraksjon siden knapper ikke er gripbare objekter, og i stedet lar vi deg bare trykke på en knapp ved å bruke genererte kapselkolliderer mellom hver av fingerleddene på det poserbare håndnettet. Du kan gjøre alle slags rare og morsomme ting på grunn av dette – som å bruke bare pinken eller knoken på ringfingeren for å samhandle med hver knapp i spillet, hvis du virkelig vil.

Denne implementeringen skiller seg litt fra måten Touch-kontrollere samhandler med knapper i spillet ved at vi vanligvis forventer at spillere bruker grip-knappen på kontrolleren for å sette hånden til å være et posert "fingerpekende" mesh for å få en nøyaktig knapp i spillet. trykk på enden deres. Med håndsporing er det åpenbart betydelig mer fleksibilitet i posituren du kan lage med hånden, og derfor betydelig flere måter å trykke på knapper med samme nøyaktighetsnivå.

Meny/UI-interaksjoner

For å samhandle med menyer, endte vi opp med det samme interaksjonsparadigmet som Meta bruker for Quest-plattformen: en to-finger klype mellom tommel og pekefinger, på hver hånd. Dette kan brukes både til å åpne spillets meny og samhandle med elementer i menyen. Ingen vits i å finne opp hjulet på nytt her når spillere allerede har lært å gjøre dette i menyene på OS-nivå når de først aktiverer håndsporing på Quest!

Kommuniser alt dette til spilleren

Fordi håndsporing ikke er en like vanlig inngang på Quest som Touch-kontrollere, og fordi det kan være noen som spiller Myst for aller første gang (eller til og med å spille deres aller første VR-spill!), prøvde vi å være hensynsfulle med hvordan vi kommuniserer all denne informasjonen om håndsporing til spilleren. Vi sørget for å inkludere en annen versjon av "kontrollerdiagrammet" vårt spesielt skreddersydd for å beskrive håndsporingsinteraksjoner (når aktivert i Myst), og vi viser spilleren spesialiserte varsler som forteller dem nøyaktig hvordan de skal bevege seg rundt med hendene.

I tillegg tenkte vi at det ville være viktig å minne spilleren på hvordan man kan ha en jevn håndsporingsopplevelse når den er aktivert. Spilleren blir varslet inn Mystsin meny at håndsporingsstabiliteten er mye bedre hvis de sørger for at de er i et godt opplyst rom og holder hendene innenfor synsfeltet.

Meta informerer også spillere om at disse er nøkkelen til et godt sporet håndsporingsmiljø, men vi erkjenner at noen spillere kan hoppe inn i et spill som ikke har analysert Metas merknader om dette først, så vi har valgt å minne folk i tilfelle de har glemt det.

Fortsett på side 2: Engine Modifications Made in Unreal »

Tidstempel:

Mer fra Vei til VR