Designet og implementeringen af ​​håndsporing i 'Myst' PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Designet og implementeringen af ​​håndsporing i 'Myst'

Ved brug af Presence Platforms opgraderede Hand Tracking API, introducerede vi Hand Tracking med vores seneste opdatering til Myst på Meta Quest Platform, med titlen 'Hands & More'. Vi er super glade for endelig at lade folk spille Myst på Quest uden fysiske controllere! I dette indlæg vil vi diskutere udviklingen og iterationen af ​​at implementere håndsporing i Myst— og især tilføjelse af mere understøttelse til det i Unreal Engine 4.27.2.

Designet og implementeringen af ​​håndsporing i 'Myst' PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Gæsteartikel af Hannah Gamiel

Hannah Gamiel er udviklingsdirektør hos Cyan—studiet bag originalenMyst' spil – og hjalp med at udvikle det nye 'Myst (2020)' som inkluderer VR-understøttelse. Hun kommer oprindeligt fra en rent teknisk baggrund og hjælper nu med at lede produktionen på alle titler og administrerer forretnings- og teknologiindsatser hos Cyan. Hun har arbejdet på titler som 'Myst' (2020), 'The Witness', 'Braid, Anniversary Edition', 'Obduction', 'Firmament' (kommer snart!) og meget mere.

Designfase og overvejelser

Design af navigation til håndsporing

Billede, der viser, hvor du gerne vil hen. Du tænkte sikkert på at pege, ikke? Derfor valgte vi at bruge en 'pegende' metode til at bevæge os ind Myst.

Når du er i teleporteringstilstand, kan du pege på, hvor du gerne vil hen, og teleporteringsringen vises på din destination. Når du 'af-peger' (ved at forlænge resten af ​​dine fingre, eller blot trække din pegefinger tilbage i din håndflade), udføres teleporteringen.

Når du er i jævn bevægelsestilstand, vil pege med din frie bevægelsesdominerende hånd (som kan konfigureres i vores kontrolindstillinger, men som standard er venstre hånd) jævnt begynde at bevæge dig rundt i den retning, du peger.

Når du afprøver bevægelse med at pege, fandt vi ud af, at håndsporing nogle gange kan være upålidelig med din pegefinger og langfinger, når den er tilstoppet af resten af ​​din hånd. Systemet er ikke sikker på, om disse fingre peger helt eller helt 'indesluttet' i din hånd. Vi føjede lidt af en 'fudge'-faktor til koden for at tage højde for mere stabil bevægelsesinitiering/-udførelse på denne front - hvilket vi vil gå ind på lidt senere, når vi diskuterer ændringer, der er foretaget til out-of-the-box håndsporing support i Unreal Engine.

Drejning

'Punkt'-metoden virker ikke for alle navigationsbrug. Når det kommer til at dreje, kombinerede vi i første omgang pegning med håndledsrotation. Sammenligning af spillerens håndled og kameraets fremadgående vektor ville indikere retningen af ​​drejningen (og hvor stor drejningen skulle være). Vi prøvede dette i starten, da det virkede intuitivt at holde "pegende"-temaet til navigation i gang mellem alle tilstande.

Der opstod dog komplikationer i komforttests. I playtesting ville de fleste spillere pege fremad med deres håndflade vendt mod jorden, som man sandsynligvis ville gøre, når man også forsøgte at pege på noget uden for et spil. At dreje dit håndled til venstre og højre (omkring opadgående akse af dit håndled), mens du har håndfladen vendt mod jorden, er udfordrende og har et meget begrænset bevægelsesområde, især hvis du forsøger at vende væk fra dit bryst.

Dette problem er det samme, selvom du bad en spiller om at pege på noget foran ham med håndfladerne vendt indad. Du kan bøje dit håndled ind mod din krop en del, men du vil ikke få det samme bevægelsesområde ved at bøje dit håndled væk fra din krop.

Så hvordan løste vi dette? Vi endte med at tildele vending til en 'thumbs-up'-bevægelse i stedet for en pege-finger-pege-bevægelse.

Forestil dig at give en tommelfinger op. Drej nu dit håndled til højre og venstre. Bemærk, at selvom du ikke har et stort bevægelsesområde, er det stadig ret konsekvent at pege enten 'venstre' og 'højre' med tommelfingeren i denne gestus.

Dette er, hvad vi nøjedes med at slå i håndsporingstilstand. Selvom at pege med tommelfingeren ikke virker som den mest intuitive måde at dreje på, er det gjorde ende med at være den mest komfortable og konsekvente måde at gøre det på.

Med snapdrejning vil drejning af dit håndled til venstre eller højre fra en tommelfinger-op-position få en enkelt snapdrejning til at starte. Du skal derefter vende din hånd tilbage til 'center' (lige opad) position for at nulstille snappet, og derudover vente på, at der sker en meget kort nedkøling for at starte en snapvending igen.

Ved jævn drejning vil drejning af dit håndled, mens du er i en tommelfinger-op-position, begynde at rotere dig til venstre eller højre—når du forlader en 'død zone', der forhindrer et sving i at finde sted, indtil du passerer tærsklen.

Håndtering af konflikter mellem bevægelser og objektinteraktion

At pege en finger er selvfølgelig en for bred gestus til at kunne antages kun at blive brugt til navigation. Folk vil gøre den samme pegebevægelse for at trykke på knapper eller interagere med andre ting i verden bare af vane eller deres egen forventning. Det ville være ret skurrende at gå op til (men ikke højre op til) en knap, peg med fingeren for at trykke på den, og flyt så pludselig (og uønsket) tættere på den i spillet (eller start en teleportering utilsigtet)!

Den måde, vi forhindrer bevægelse i at opstå, mens spilleren interagerer med noget, er ved at forhindre enhver bevægelseskode i at affyre, når hånden, der foretager 'bevægelse'-bevægelsen, er inden for et bestemt område af et interagerbart objekt. Denne serie er blevet justeret flere gange for at komme til et godt 'sweet spot' baseret på playtesting.

Vi har fundet ud af, at denne søde plet er omkring 25 cm fra verdensrummets placering af knoglen på spidsen af ​​pegefingeren. Myst er fuld af interaktive objekter i forskellige størrelser (alt fra små knapper til meget store håndtag) opstillet i både store åbne rum og smalle gange, så det tog os en del test at slå os fast på dette nummer. Vi prøvede i første omgang 60 cm (ca. to fod), men det forhindrede bevægelse i at opstå, når spillerne stadig skulle komme tættere på en genstand. Ligeledes fik alt under 25 cm uønsket spillerbevægelse til at udløse, når spillere forsøgte at gribe eller røre ved en genstand.

Et af vores bedste testområder var generatorrummet på Myst Island, hvor du går gennem en smal indgang og derefter straks bliver mødt af et panel fyldt med knapper. Når interaktionstestområdet var for stort, kunne spillerne ikke bevæge sig gennem indgangen og mod panelet, fordi det registrerede knapper inden for pegefingerens rækkevidde.

Når det er sagt, er 25 cm det, der fungerede specifikt til Myst. Andre spil skal muligvis justere dette tal, hvis de vil implementere noget lignende med deres egne kriterier i tankerne.

Design af objektinteraktioner til håndsporing

Lige nu er alle grabable interaktioner i Myst er bygget til at fungere med håndsporing - drejning af ventiler, åbning af døre, tryk på knapper, vending af bogsider og så videre.

Interaktionerne piggy-back off, hvad vi allerede havde sat op til Myst med Touch-controllere. Der blander et tryk på greb-knappen automatisk den in-game mesh-repræsentation af din hånd til en "grebet" positur, enten ved at sætte din hånd ind i en knytnæve (hvis den er tom) eller ved at gribe en genstand. Med håndsporing har vi tilføjet kode, der vil give et kvalificeret gæt på, hvornår du har krøllet dine fingre nok til at 'gribe' noget og starte den samme logik som nævnt før.

For eksempel, når du bruger håndsporing, og din hånd svæver over noget, der kan gribes, bliver din håndfarve orange (det er præcis, hvad der sker, når du ikke bruger håndsporing i Myst også VR). Når du griber et interagerbart objekt ved at begynde at krølle dine fingre til en knytnæve, erstatter en orange kugle dit håndnet og repræsenterer, hvor hånden er fastgjort til objektet.

Grunden til, at vi gik med denne metode i stedet for at lave brugerdefinerede poserbare masker til dine hænder – eller lade dine hænder/fingre se ud til at interagere fysisk med dele af disse objekter – er fordi vi ønskede, at interaktionerne skulle være i paritet med det, vi tilbyder på Touch-controller-siden indtil videre.

Tryk på knapper fungerer dog anderledes. Der er ikke behov for abstraktion, da knapper ikke er grebbare objekter, og i stedet giver vi dig mulighed for blot at trykke på en knap ved hjælp af genererede kapselkolliderer mellem hvert af fingerleddene på det poserbare håndnet. Du kan gøre alle mulige mærkelige og sjove ting på grund af dette – som at kun bruge din pink eller knoen på din ringfinger til at interagere med hver eneste knap i spillet, hvis du virkelig vil.

Denne implementering adskiller sig lidt fra den måde, Touch-controllere interagerer med knapper i spillet, idet vi normalt forventer, at spillere bruger greb-knappen på deres controller til at indstille hånden til at være et poseret "fingerpegende" mesh for at få en nøjagtig knap i spillet. tryk på deres ende. Med håndsporing er der åbenbart betydeligt mere fleksibilitet i den positur, du kan skabe med din hånd, og derfor betydeligt flere måder at trykke på knapper med samme nøjagtighed.

Menu/UI-interaktioner

For at interagere med menuer endte vi med at gå med det samme interaktionsparadigme, som Meta bruger til Quest-platformen: en to-finger klemme mellem tommel- og pegefinger på begge hænder. Dette kan bruges både til at åbne vores in-game menu og interagere med elementer i menuen. Ingen mening i at genopfinde hjulet her, når spillere allerede er lært at gøre dette i menuerne på OS-niveau, når de første gang aktiverer håndsporing på Quest!

Kommuniker alt dette til spilleren

Fordi håndsporing ikke er et så almindeligt input på Quest som Touch-controllere, og fordi der kan være nogle mennesker, der spiller Myst for allerførste gang (eller endda spille deres allerførste VR-spil!), forsøgte vi at være hensynsfulde med, hvordan vi kommunikerer alle disse oplysninger om håndsporing til spilleren. Vi sørgede for at inkludere en anden version af vores "controllerdiagram", der er specielt skræddersyet til at beskrive håndsporingsinteraktioner (når det er aktiveret i Myst), og vi viser spilleren specialiserede meddelelser, der fortæller dem præcis, hvordan de skal bevæge sig rundt med deres hænder.

Derudover tænkte vi, at det ville være vigtigt at minde spilleren om, hvordan man får en smidig håndsporingsoplevelse, når den først er aktiveret. Spilleren får besked i Mysts menu, at håndsporingsstabilitet er meget bedre, hvis de sikrer, at de er i et godt oplyst rum og holder deres hænder inden for deres synsfelt.

Meta informerer også spillerne om, at disse er nøglen til et velsporet håndsporingsmiljø, men vi erkender, at nogle spillere kan springe ind i et spil, der ikke har analyseret Metas meddelelser om dette først, så vi har valgt at minde folk om det, hvis de har glemt det.

Fortsæt på side 2: Motorændringer lavet i uvirkeligt »

Tidsstempel:

Mere fra Vejen til VR