First Hand analysis: a good open source demo for hand-based interactions

Det lykkedes mig endelig (med en vis forsinkelse) at finde tid til at prøve First Hand, Metas opensource-demo af Interaction SDK , som viser, hvordan man korrekt udvikler håndsporede applikationer. Jeg har testet det for dig, og jeg vil gerne fortælle dig mine meninger om det, både som bruger og som udvikler.

Første hånd

Førstehånds trailer

First Hand er en lille applikation, som Meta har udviklet og udgivet på App Lab. Det er ikke en kommerciel app, men en oplevelse udviklet som et udstillingsvindue for Interaction SDK inde i Presence Platform af Meta Quest 2.

Den hedder “First Hand”, fordi den er blevet nogenlunde inspireret af Oculus første kontakt, udstillingsdemoen til Oculus Touch-controlleren udgivet til Rift CV1. Egentlig er det bare en meget vag inspiration, pga oplevelserne er helt forskelligeog den eneste lighed er tilstedeværelsen af ​​en sød robot.

Oplevelsen er open source, så udviklere, der ønsker at implementere håndbaserede interaktioner i deres applikationer, kan bogstaveligt talt kopiere og indsætte kildekoden fra denne prøve.

Her følger min mening om denne ansøgning.

Første hånd – Anmeld som bruger

Ansøgningen

Min gameplay-video af First Hand

Som bruger, Jeg har fundet First Hand en sød og afslappende oplevelse. Der er intet plot, ingen udfordring, intet at bekymre sig om. Jeg skulle bare bruge min bare hånd og interagere med objekter på en naturlig og tilfredsstillende måde. Det eneste problem for mig er, at det var meget kort: på 10 minutter var den allerede færdig.

Jeg forventede en klon af Oculus First Contact-oplevelsen, der fik mig til at opdage vidunderne ved Oculus Touch-controllere, men faktisk var det en helt anden oplevelse. De eneste ligheder er tilstedeværelsen af ​​en sød lille robot og nogle mål at skyde. Det giver mening i betragtning af det controllere skinner med andre former for interaktioner end de bare hænder, så applikationerne skal være anderledes. Under alle omstændigheder var formålet og den positive stemning ens, og dette er nok til at retfærdiggøre det lignende navn.

Som jeg har sagt, i First Hand er der ikke et rigtigt plot. Du befinder dig i et klokketårn, og en pakke bliver leveret til dig. Indeni er der nogle handsker (som er en blanding mellem Alyx’ og Thanos’), som du kan samle og derefter bruge til at spille et minispil med en robot. Over.

Interaktionerne

Det, der er vigtigt her, er ikke plottet, men de interaktioner, som du udfører i applikationen på en naturlig måde ved blot at bruge dine bare hænder. Og nogle af dem er virkelig seje, som for eksempel:

  • Klemmer en sten du har i hånden og brække den
  • Rulning et flydende display ved blot at stryge fingeren på det, noget der fik mig til at føle mig lidt som Tom Cruise i Minority Report
Dette var underligt tilfredsstillende
  • Sigter og skydning ved hjælp af din håndflade
  • Aktiverer et skjold ved at tage næverne tæt ind til ansigtet, som bokseatlet i forsvarsposition
  • Tvangsgribende objekter rundt ved at åbne håndfladen og derefter flytte hånden bagud, som i Half-Life: Alyx

Der var mange andre interaktioner, hvor nogle af dem var enkle, men meget naturlige og godt lavet. Det, der er utroligt ved denne demo, er det alle interaktioner er meget polerede og designet, så de er ideelle for brugeren.

For eksempel kræver et tryk på knapper blot at trykke på dem med pegefingeren, men detektionen er meget pålidelig, og knappen bliver aldrig overtrådt af fingerspidserne, resulterende meget vellavet og realistisk.

Skydningen med håndfladen er meget upålidelig, fordi du ikke kan sigte godt med håndfladen, så håndfladen skyder en laser i et par sekunderhvilket giver dig tid til at justere sigtet, indtil du skyder det objekt, du vil ødelægge.

Force Grib med mine bare hænder var mærkeligt tilfredsstillende

Og force-grabbing er smart nok at arbejde på en “synskegle” centreret på din håndflade. Når du strækker din håndflade, registrerer systemet, hvad der er det nærmeste objekt i det område, du sigter mod med hånden, og viser dig automatisk en buet linje, der går fra din håndflade til den. Dette er smart af to grunde:

  • Det kræver ikke, at du sigter præcist mod det objekt, du vil have fat i, fordi at sigte med håndfladen er upålidelig. Den bruger “en kegle af syn” fra din håndflade og vælger derefter det objekt, der er inde i den.
  • Det viser dig en forhåndsvisning af det objekt, du kan gribeså hvis ovenstående system valgte det forkerte, kan du ændre det ved at bevæge din hånd, før du udfører den gestus, der tiltrækker den.

Alle interaktioner er poleret, så man kan klare upålideligheden ved håndsporing. Jeg elskede, hvordan tingene blev designet, og jeg er sikker på, at Metas UX-designere lavede meget eksperimenter, før de nåede frem til denne endelige version. Jeg tænker på kraften i denne oplevelse som et udstillingsvindue er givet af dette polske niveauså udviklere og designere kan hente inspiration herfra til at skabe deres egne oplevelser.

Mine indtryk

Førstepersonsvisning af handlingen, der udløser skjoldet (Billede af Meta)

Som jeg har fortalt dig, fandt jeg som bruger oplevelsen sød og afslappende. Men samtidig, Jeg var ret frustreret over hænders sporing. Jeg brugte oplevelsen både med kunstigt og naturligt lys, og i begge scenarier, Jeg havde problemer med sporingen af ​​mine hænder, og mine hænder mistede sporingen mange gange. Det er meget mærkeligt, fordi jeg fandt sporing mere upålidelig end i andre oplevelser som f.eks. Hand Physics Lab. Dette gjorde min oplevelse en smule frustrerende, for da jeg f.eks. gik hen for at få fat i det første objekt for at tage fjernbetjeningen og aktivere elevatoren, frøs min virtuelle hånd mange gange, når jeg var tæt på den, og det tog mig mange forsøg, før faktisk at kunne gribe det.

Jeg lagde også mere mærke til hvordan håndsporing kan være upræcist: Meta gjorde et godt stykke arbejde med at maskere sine problemer ved at skabe en smart UX, men det er rigtigt, at disse smarte tricks beskrevet ovenfor var nødvendige, fordi håndsporing stadig er upålidelig. Uden at have triggere til at trykke på, er du desuden nødt til at opfinde andre former for interaktioner for at aktivere objekter, som kan være mere komplekse. Controllere er meget mere præcise end hænder, og så for eksempel at skyde ville have været meget nemmere med controllerne, præcis som force grab.

Dette viste mig, at håndsporing ikke er særlig pålideligt og kan ikke være den primære kontrolmetode for de fleste VR-oplevelser endnu.

Prøver mine nye handsker

Men samtidig, når tingene fungerede, at udføre handlinger med hænderne føltes meget bedre. Jeg ved ikke, hvordan jeg skal beskrive det: det er ligesom, når jeg bruger controllere, min hjerne ved, at jeg har et værktøj i mine hænder, mens jeg bare ved at bruge mine bare hænder føles det mere, at det virkelig er mig, der laver den virtuelle handling. Efter jeg havde samlet “Thanos”-handskerne, så jeg mine hænder med dem på, og jeg havde denne underlige fornemmelse, at de handsker var på mine rigtige hænder. Det er aldrig sket for mig med controllere. Andre interaktioner var tilfredsstillende for mig, som for eksempel at rulle på skærmen “Minoritetsrapport” eller tvinge greb. Force Grabbing er virkelig godt implementeret her, og det føltes meget sjovt at lave. Alt dette viste mig det håndsporing kan være upålidelig, men når det virker, giver det dig et helt andet niveau af fordybelse end controllere. I fremtiden vil håndsporing helt sikkert være meget vigtigt for XR-oplevelser, især dem, der ikke kræver, at du har værktøjer i hænderne (f.eks. en pistol i FPS-spil).

Da oplevelsen kun er 10 minutter lang, foreslår jeg, at alle giver det en chance på App Lab, så for bedre at forstå disse fornemmelser, jeg taler om.

Første hånd – Anmeldelse som udvikler

Enhedsprojektet

Unity-projektet i First Hand er tilgængeligt i denne GitHub-repo. Hvis du er en Unreal Engine-fyr, ja… jeg er ked af det på din vegne.

Projektet er meget velorganiseret inde i mapper, og også scenen har et meget ryddeligt træ af spilobjekter. Dette er helt klart et projekt lavet med produktionskvalitet, noget der ikke overrasker mig, fordi dette er en fælles egenskab for alle samples udgivet af Meta.

Da Interaction SDK kan være ret vanskelig, er mit forslag at læse dens dokumentation først, og først efter at have tjekket prøven. Eller for at se prøven, mens du læser dokumentationen. For der er nogle dele, der bare ved at se på prøven er ikke let forståelige.

Da demoen er fuld af mange forskellige interaktioner, det er muligt i eksemplet at have kildekoden til dem alle, og dette er meget værdifuldt, hvis du som udvikler vil lave en håndsporet applikation. Du kopierer bare et par præfabrikater, og du kan bruge dem i din oplevelse. Kudos til Meta for at have gjort dette materiale tilgængeligt for fællesskabet.

Interaktions-SDK

førstehånds meta enhed
Opbygning af scenen i First Hand-projekt. Læg mærke til, at det er meget ryddeligt, men også ret komplekst

Jeg har endnu ikke brugt Interaction SDK i et af mine projekter, så denne prøve var en god anledning for mig til at se, hvor nemt det er at implementere det.

Mit indtryk er det Interaction SDK er meget modulopbygget og meget kraftfuldt, men heller ikke så let at blive ansat. For eksempel, hvis du vil generere en terning, hver gang brugeren gør en tommelfinger op med en af ​​sine hænder, skal du:

  • Brug et script til at registrere, om brugeren kun har tommelfingeren op og de andre fingre nede for venstre hånd
  • Brug et andet script til at registrere, om brugeren har venstre hånd med tommelfingeren opad
  • Brug et andet script til at kontrollere, om begge ovenstående betingelser er sande
  • Brug et andet script til at starte en hændelse, hvis det forrige script registrerede en sand tilstand
  • Gentag alt ovenstående også for højre hånd
  • Skriv logikken for at generere kuben, hvis hændelsen kastes

Som du kan se, strukturen er meget pæn og modulær, men den er også ret tung. Det er meget nemmere at oprette en UI-knap, som når du peger-og-klikker med controllerne genererer kuben. Og når vi taler om knapper, for at have de smarte knapper, du kan stikke med fingerspidsen, har du også brug for forskellige scripts og forskellige underordnede spilobjekter. Strukturen er meget fleksibel og kan tilpasses, men det virker også ret kompliceret at mestre.

Af denne grund er det meget godt, at der er en prøve, der giver udviklerpræfabrikater klar ud af kassen, som kunne kopieres og indsættes, fordi jeg gætter på, at Det kan være ret frustrerende at udvikle alt dette fra bunden.

Dilemmaet på tværs af platforme

pico neo 3 link pro
Mig og mine to Pico Neo 3 enheder

Interaction SDK, som er en del af Presence Platform of the Meta Quest, er interessant. Men nogle gange undrer jeg mig: hvad er meningen med at have et så detaljeret Oculus/Meta SDK, hvis det kun virker på én platform? Hvad hvis nogen vil lave en oplevelse på tværs af platforme?

Jeg mener, hvis jeg baserer al min erfaring på disse Oculus-klasser og denne fantastiske SDK med fantastiske samples… hvordan kan jeg overføre alt dette til Pico? Det kan jeg højst sandsynligt ikke. Så jeg er nødt til at omskrive hele applikationen, måske administrere de to versioner i to forskellige grene af et Git-lager, med alt det administrationshelvede, der kommer ud af det.

Det er derfor, jeg normalt ikke er så begejstret for opdateringerne på Oculus SDK: Jeg ønsker, at mine applikationer skal være på tværs af platforme og arbejde på Quest, Pico og Vive Focus, og kun at binde sig til én SDK er et problem. Af denne grund, Jeg er en stor fan af Unity.XR og Unity XR Interaction Toolkit, selvom disse værktøjer er meget mere grove og umodne end Oculus SDK eller endda det gamle Steam Unity-plugin.

Sandsynligvis OpenXR kan redde os, og lad os udvikle noget med Oculus SDK og også få det til at køre på Pico 4. Men for nu, OpenXR-implementeringen er ikke særlig poleret i Unity, endnu, så udviklere skal stadig vælge, om de kun går efter én platform med en meget kraftfuld SDK, eller om de går på tværs af platforme med mere skrappe værktøjer… eller bruger 3. parts plugins, som for eksempel AutoHand, som fungerer godt til at give fysikbaserede interaktioner i Unity . Jeg håber, at situationen forbedres i fremtiden.


Jeg håber, du kunne lide dette dybe dyk i First Hand, og hvis det er tilfældet, så abonner på mit nyhedsbrev og del dette opslag på dine sociale mediekanaler!

(Overskriftsbillede af Meta)


Ansvarsfraskrivelse: denne blog indeholder reklame- og affilierede links til at opretholde sig selv. Hvis du klikker på et affiliate-link, vil jeg blive meget glad, fordi jeg tjener en lille kommission på dit køb. Du kan finde min kedelige fulde afsløring her.

William

Leave a Reply

Your email address will not be published.