Håndsporing ble først tilgjengelig på Oculus Quest på slutten av 2019. Av entusiasme for denne nye inndatametoden publiserte jeg en demo av kubisme til SideQuest med eksperimentell håndsporingsstøtte bare noen dager senere. Det burde være unødvendig å si at denne første demoen hadde flere feil, og tok egentlig ikke begrensningene til teknologien i betraktning, og derfor bestemte jeg meg for å utelate støtte for håndsporing fra den fullstendige utgivelsen av kubisme på Oculus Store. Det tok mer utvikling, støttet seg på lærdommene fra arbeidet til andre utviklere, for å bygge noe jeg var glad for å lansere i det siste kubisme håndsporingsoppdatering. Her er et innblikk i designprosessen.
Gjesteartikkel av Thomas Van Bouwel
Thomas er en belgisk-brasiliansk VR-utvikler som for tiden er basert i Brussel. Selv om hans opprinnelige bakgrunn er innen arkitektur, spenner hans nåværende arbeid innen VR fra indiespill som kubisme til bedriftsprogramvare for arkitekter og ingeniører som Løse.
Denne oppdateringen bygger på erfaringer fra mange andre spill og utviklere som har utforsket håndsporing det siste året (Den nysgjerrige historien om de stjålne kjæledyrene, Feriesimulator, Luca Mefisto, Dennys Kuhnert, og flere andre).
I denne artikkelen vil jeg dele noen ting jeg har lært når jeg taklet utfordringene som er spesifikke for Kubisme håndinteraksjoner.
Optimalisering for presise interaksjoner
Kubisme interaksjoner dreier seg om å plassere små uregelmessige puslespillbrikker i et puslespillrutenett. Dette betydde at hovedkravet for håndsporing var presisjon, både når det gjaldt å plukke opp og plassere brikker på rutenettet, samt nøyaktig å plukke ut brikker fra et fullført puslespill. Dette informerte de fleste av designbeslutningene angående håndinndata.
Spøkelseshender
Jeg bestemte meg tidlig for det ikke gjør hendene fysikkbaserte, men la dem i stedet passere gjennom brikker til en blir aktivt grepet.
Dette unngikk klønete å skyve bort de flytende puslespillbitene når du prøver å gripe dem midt i luften, men enda viktigere, det gjorde det lettere å plukke brikker midt i et fullt puslespill siden du bare kan stikke fingrene inn og ta en brikke i stedet for trenger å finne ut hvordan man fysisk lirker dem ut.
Hendene er ikke fysiske, noe som viser deres åpenhet, noe som gjør det lettere å plukke ut brikker fra midten av et puslespill.
Kontakt Grabbing
Det er flere tilnærminger for å oppdage en brukers intensjon om å gripe og slippe gjenstander, som å fokusere på fingerklemming eller total fingerleddrotasjon mens du sjekker en generell interaksjonssone i håndflaten.
Til Kubisme små og uregelmessige puslespillbrikker, men tilnærmingen som så ut til å håndtere presisjonskravene best var en kontaktbasert tilnærming, der en brikke gripes så snart tommel og indeks krysser den samme brikken og bringes sammen over en liten avstand, uten at det kreves en hel klype.
Ligner på nærme seg inn Den nysgjerrige historien om de stjålne kjæledyrene, låses fingrene på plass så snart en grip starter, for å gi inntrykk av en mer stabil grip. Stykket føres til roten av hånden (håndleddet) mens det gripes. Siden dette ser ut til å være det mest stabile belteleddet, bidrar det til å gi et stødigere grep, og garanterer at stykket forblir på linje med de låste fingrene.
Brikken gripes når tommel og indeks krysser den og bringes litt sammen. Rotasjon av indeks og tommel låses deretter på plass for å gi inntrykk av et stabilt grep.
Så snart en brikke er grepet, lagres avstanden mellom tommel og indeks, og en frigjøringsmargin beregnes basert på denne avstanden. Når tommel og indeks beveger seg fra hverandre utover denne margen, slippes brikken.
Flere sikkerhetstiltak prøver å forhindre utilsiktede utgivelser: vi sjekker ikke for utgivelse når sporingssikkerheten er under en viss terskel, og etter at sporingssikkerheten er gjenvunnet, venter vi flere bilder til vi sjekker utgivelsen igjen. Fingrene må også være utenfor utgivelsesmarginen i flere bilder før de faktisk utløses.
Feilsøkingsvisualisering: under et grep lagres den første gripeavstanden mellom fingertuppene (ytre rød sirkel). Brikken slippes når den virkelige posisjonen til fingertuppene beveger seg utover en viss margin (blå sirkel).
Det er også på plass et system som ligner på Feriesimulatorens overgrepsmetode. På grunn av mangelen på haptisk tilbakemelding når du griper et stykke, er det ikke uvanlig at fingrene driver nærmere hverandre under et grep. Hvis de lukker seg over en viss terskel, justeres frigjøringsmarginene for å gjøre det lettere å slippe stykket.
Prøv det selv: for å se disse feilsøkingsvisualiseringene i spillet, gå til "Innstillinger > Håndsporing > Feilsøkingsvisualiseringer" og slå på "Interaksjonsmoduler".
Feilsøkingsvisualisering: Hvis fingrene driver til hverandre under et grep over en viss terskel (indre rød sirkel), justeres utgivelsesmarginene på nytt for å gjøre det mindre "klebrig" å slippe stykket.
En grense for denne tilnærmingen er at den gjør det litt vanskeligere å støtte å gripe med andre fingre enn indeksen. En tidligere implementering tillot også å gripe mellom langfinger og tommel, men dette førte ofte til falske positiver når man tok brikker ut av et fullstendig puslespillrutenett, siden det var vanskelig å vurdere hvilken finger spilleren hadde til hensikt å ta en spesifikk brikke med.
Dette ville ikke ha vært et problem hvis griping dreide seg om fulle fingerklemminger, siden det resulterer i en mer tydelig inndatabinær for å bestemme brukerens hensikt (på bekostning av en mindre naturlig følelse av gripeposisjon).
Midtpunktssjekk
Foruten å sjekke hvilken del pekefingeren og tommelen krysser, skjer en ekstra sjekk midt mellom pekefingertuppen og tommelfingertuppen.
Uansett hvilken brikke dette midtpunktet peker over vil bli prioritert for å gripe, noe som bidrar til å unngå falske positiver når en spiller prøver å gripe en brikke i et fullt rutenett.
I eksemplet nedenfor, hvis spilleren har til hensikt å gripe den grønne brikken ved høyre kant, ville de utilsiktet ta tak i den gule brikken hvis vi ikke gjorde denne midtpunktskontrollen.
Venstre: tommel, indeks og midtpunkt mellom fingertuppene er i gult → grip gult. Høyre: tommel og indeks er i gult, midtpunkt er i grønt → ta tak i grønt
Griper puslespillet
Å gripe puslespillet fungerer på samme måte som å gripe puslespillbrikker, bortsett fra at det startes ved å utføre en hel klype innenfor gripesonen rundt puslespillet.
Størrelsen på denne sonen økes dynamisk når du bytter fra kontroller til hender. Dette gjør det litt lettere å ta tak i, og bidrar til å redusere sannsynligheten for at du ved et uhell tar tak i en brikke i rutenettet i stedet for selve rutenettet.
Gripesonen rundt puslespillet utvides når du bytter fra kontroller til hender, noe som gjør det lettere å gripe. Selv om det krever en hel klype, fungerer det å gripe puslespillet på samme måte som å gripe puslespillbrikker.
Dynamisk håndutjevning
Håndsporingsdataene fra Oculus Quest kan fortsatt ha litt jitter, selv når sporingssikkerheten er høy. Dette kan faktisk også påvirke spillingen, siden jitter kan være mye mer merkbar når du holder puslespillet eller en lang puslespillbrikke ved kanten, noe som gjør nøyaktig plassering av brikker på rutenettet vanskeligere.
Utjevning av sporingsdata kan gå langt for å produsere mer stabile grep, men må gjøres med måte siden for mye utjevning vil resultere i en "laggy" følelse i hendene. For å balansere dette, glatt inn hånden kubisme justeres dynamisk avhengig av om hånden din holder noe eller ikke.
Prøv det selv: For å se virkningen av håndutjevning, prøv å slå den av under
‘Innstillinger > Håndsporing > Håndutjevning’.
Å øke utjevningen av håndposisjoner mens du holder gjenstander bidrar til å gi et mer stabilt grep, noe som gjør presis plassering på rutenettet litt enklere.
Trykke på knappene
En ting jeg la merke til Kubisme Den originale håndsporingsdemoen var at de fleste prøvde å trykke på knappene selv om det ikke ble støttet på den tiden. Derfor var et av målene mine med denne nye versjonen av håndsporing å gjøre knappene faktisk skyvbare.
Knapper kan holdes over når et strålekast fra pekefingerspissen treffer en kolliderer på baksiden av knappen. Hvis pekefingeren da krysser kollideren, registreres et trykk. Hvis indeksen skjærer kollideren uten først å sveve den, registreres ingen trykk. Dette bidrar til å forhindre falske positiver når fingeren beveger seg fra bunn til topp.
Det er noen flere kontroller på plass for å forhindre falske positiver: raycasten er deaktivert når fingeren ikke vender mot knappen, eller når spilleren ikke ser på fingeren når han trykker.
Prøv det selv: for å se denne feilsøkingsvisualiseringen i spillet, gå til "Innstillinger > Håndsporing > Feilsøkingsvisualiseringer" og slå på "Interaksjonsmoduler".
Feilsøkingsvisualisering: en raycast fra indeksspissen sjekker om fingeren svever over en knapp. For å forhindre falske positiver deaktiveres interaksjon når fingeren ikke vender mot knappen, eller når spilleren ikke ser på fingeren.
Veiledende interaksjoner
En av hovedutfordringene med å bygge enhver interaksjon for håndsporing er at, i motsetning til knapper på en kontroller som enten trykkes eller ikke trykkes, er det mange forskjellige måter folk kan prøve å nærme seg en interaksjon med hendene mens de forventer det samme resultatet .
Leketesting med et mangfoldig sett av mennesker kan hjelpe deg med å lære hvordan folk nærmer seg interaksjonene som presenteres for dem, og kan bidra til å avgrense interaksjonssignalene som veileder dem til de forventede bevegelsene. Playtesting kan også hjelpe deg med å lære noen av avvikene du kanskje vil fange ved å legge til interaksjonsredundans.
Interaksjonssignaler
Det er flere signaler mens du griper en brikke. Når en bruker først svever over et stykke, får pekeren og tommelen fargen på stykket, både for å indikere at det kan gripes, og for å signalisere hvilke fingre som kan gripe det (inspirert av tidligere arbeid av Luca Mefisto, Barrett Fox og Martin Schubert). Brikken er også uthevet for å indikere at den kan gripes.
Flere signaler indikerer også når grepet er vellykket: fingertuppene blir solide, høydepunktene på stykket blinker, og en kort lydkikk spilles.
Ulike signaler både på hånden og puslespillbrikken veileder og bekrefter grip-interaksjonen.
Knapper har flere signaler for å indikere at de kan trykkes. På samme måte som med puslespillbrikker, er pekefingertuppen uthevet i hvitt når du holder musepekeren over en knapp, noe som indikerer hvilken finger som kan samhandle. Som de gjorde med kontrollere, strekker knappene seg utover når de svever, men denne gangen kan den utvidede knappen faktisk trykkes: når indeksen berører den, følger den fingeren til den er helt trykket ned, og da bekrefter en lydsignal klikket.
En subtil skygge på knappoverflaten indikerer hvor posisjonen og avstanden til indeksen til knappen er, og hjelper til med å styre presseinteraksjonen.
Ulike signaler styrer interaksjoner med knapper: knappene strekker seg utover når de holdes, pekefingertuppen er uthevet, en skygge viser hvor spissen vil samhandle, og knappen følger fingeren når den trykkes.
Interaksjonsredundans
Siden noen mennesker kan nærme seg noen interaksjoner på utilsiktede måter, kan det være greit å prøve å gjøre rede for dette der det er mulig ved å legge til litt redundans til måtene folk kan bruke hendene til å samhandle. Interaksjonssignaler kan fortsatt lede dem til den tiltenkte interaksjonen, men redundans kan bidra til å unngå at de setter seg unødvendig fast.
Når det gjelder å gripe brikker, ville noen få leketestere prøve å gripe brikker ved å lage en knyttneve i stedet for å bruke fingertuppene. Ved å la kollidere dekke hele fingeren i stedet for bare fingertuppen, vil en anstendig mengde av disse første grepene fortsatt registreres.
Jeg bør merke meg at denne tilnærmingen fortsatt trenger en viss forbedring, siden den også introduserer noen problemer som produserer utilsiktede grep i tilfeller der det er mange brikker som flyter rundt lekeområdet. En bedre tilnærming i fremtiden kan være å også sjekke den totale fingerrotasjonen for å ta høyde for knyttnevegrep i stedet.
Selv om griping er utformet rundt fingertuppene, dekker kollidere på pekeren og tommelen hele fingeren for å hjelpe med å fange forskjellige former for griping.
Med knapper var det noen spilletestere som ville prøve å klype dem i stedet for å trykke på dem. Til dels så dette ut til å skje da de tidligere lærte å knipe knapper på Oculus-hjemmeskjermen, rett før de startet spillet.
Av denne grunn kan knapper også klikkes ved å knipe når de er svevet, og forhåpentligvis vil signaler som den uthevede indeksen og skyggen til slutt lede dem til å trykke på knappene i stedet.
Klyping mens du holder musepekeren over knapper registreres også som et klikk.
Den første knappen spillere støter på når de bruker hender, sier også eksplisitt "Push to Start", for å hjelpe folk fra å knipe til å trykke etter å ha kommet fra Oculus Home-menyen.
Undervisningsbegrensninger
Selv om kvaliteten på Quests håndsporing har forbedret seg det siste året, har den fortsatt sine begrensninger – og en spillers bevissthet om disse begrensningene kan ha stor innvirkning på hvor god de opplever opplevelsen deres.
kubisme implementerer noen få måter å lære spillere om de nåværende begrensningene for håndsporing på Quest.
Når spilleren først bytter til håndsporing (enten ved lansering eller midt i spillet), informerer en modal dem om noen beste praksiser, som å spille i et godt opplyst rom og unngå å krysse hender.
Når en bruker bytter til håndsporing, informerer en modal dem om begrensninger og beste praksis. "Push to Start"-instruksjonen hjelper med å lære nye brukere at knapper naturlig kan trykkes i dette spillet.
Det er viktig å erkjenne at de fleste sannsynligvis vil umiddelbart avvise modaler som dette eller raskt glemme retningslinjene, så det er også viktig å signalisere hvorfor ting kan gå galt under opplevelsen.
In kubisme, vil hendene bli røde for å signalisere når sporingen gikk tapt. I noen leketester holdt folk den ene hånden på fanget og lekte med den andre, og ble forvirret over hvorfor fangehånden deres ville virke frossen. For å hjelpe til med å informere tilfeller som dette, vises en melding på hånden som tydelig forteller hvorfor hånden er frosset hvis sporingstapet vedvarer. Hvis sporingen går tapt spesielt fordi spilleren krysser hendene, endres meldingen for å informere dem om ikke å gjøre det.
Venstre: hendene blir røde når sporingen først går tapt. Midten: når sporingstapet vedvarer, informerer en melding spilleren om hva som skjer. Høyre: hvis sporingen går tapt på grunn av tilstoppede hender er dette også indikert
For mer erfarne spillere, eller spillere som foretrekker å spille med én hånd, kan denne funksjonen erstattes i innstillingene ved å la hendene tone ut når de mister sporing i stedet, noe som ligner mer oppførselen i Oculus-hjemmemenyen.
De røde viserne og varselmeldingene kan erstattes i innstillingene med falme hender.
Future Work
Håndsporing på Quest har fortsatt sine begrensninger, og skjønt Kubisme støtte for det er allerede i sin andre versjon, det er fortsatt mye rom for forbedring.
Uansett, jeg er glad for å begynne å utforske og støtte disse nye inndatametodene. På kort sikt tror jeg de kan bidra til å gjøre opplevelser som dette mer tilgjengelige og enklere å dele med nye VR-brukere.
Mixed reality-opptak tatt på en iPhone med Fabio Dela Antonios app Reality Mixer gir en idé om hvordan det kan være å spille kubisme på et AR-headset i fremtiden.
På lang sikt ser det ut til å være en god sjanse for at håndsporing vil være den viktigste inngangen for fremtidige frittstående AR-enheter, så forhåpentligvis kan denne oppdateringen være et første lite skritt mot en AR-versjon av kubisme.
Hvis du likte denne titten på håndsporingsdesignet i kubisme, sørg for å sjekke ut Thomas tidligere gjesteartikkel som gir en oversikt over utformingen av det bredere spillet.
Innlegget Casestudie: Designet bak 'kubismens' håndsporing dukket først på Vei til VR.
- Logg inn
- Ytterligere
- app
- AR
- AR-hodesett
- arkitektur
- AREA
- rundt
- Artikkel
- lyd
- BEST
- beste praksis
- Bit
- bygge
- Bygning
- case study
- saker
- Catch
- kontroll
- Sjekker
- Circle
- nærmere
- kommer
- selvtillit
- innhold
- controller
- Gjeldende
- dato
- utforming
- Utvikler
- utviklere
- Utvikling
- Enheter
- gJORDE
- avstand
- Drop
- Tidlig
- Edge
- Ingeniører
- Enterprise
- bedriftsprogramvare
- utvides
- Erfaringer
- vendt
- Trekk
- Figur
- Først
- Blitz
- feil
- fullt
- framtid
- spill
- Games
- general
- god
- grip
- Grønn
- Grid
- Gjest
- Gjesteartikkel
- veilede
- retningslinjer
- håndsporing
- Headset
- Høy
- Fremhevet
- Hjemprodukt
- Hvordan
- Hvordan
- HTTPS
- Tanken
- Påvirkning
- indeks
- hensikt
- interaksjon
- iPhone
- saker
- IT
- lansere
- LÆRE
- lært
- Led
- Lang
- Making
- flytte
- trekk
- nett
- Oculus
- Oculus Quest
- Oculus Store
- Annen
- andre
- Ansatte
- spiller
- Plenty
- Precision
- trykk
- puslespillet
- kvalitet
- søken
- Reality
- redusere
- Utgivelser
- Krav
- Resultater
- Skjerm
- sett
- Shadow
- Del
- Kort
- sidequest
- Størrelse
- liten
- So
- Software
- Rom
- Begynn
- Tilstand
- Stater
- stjålet
- oppbevare
- Studer
- vellykket
- støtte
- Støttes
- overflaten
- system
- Undervisning
- Teknologi
- Fremtiden
- tid
- tips
- topp
- Sporing
- Åpenhet
- Oppdater
- Brukere
- visualisering
- vr
- vente
- Hva er
- HVEM
- innenfor
- Arbeid
- virker
- år
- youtube