Proiectarea și implementarea urmăririi manuale în Inteligența datelor PlatoBlockchain „Myst”. Căutare verticală. Ai.

Proiectarea și implementarea urmăririi mâinilor în „Myst”

Utilizarea API-ul de urmărire a mâinilor actualizat de la Presence Platform, am introdus urmărirea mâinilor cu cea mai recentă actualizare a noastră Myst pe platforma Meta Quest, intitulată „Hands & More”. Suntem foarte încântați să îi lăsăm în sfârșit pe oameni să se joace Myst pe Quest fără controlere fizice! În această postare, vom discuta despre evoluția și iterația implementării urmăririi mâinilor în Myst— și în special, adăugarea de mai mult suport pentru acesta în Unreal Engine 4.27.2.

Proiectarea și implementarea urmăririi manuale în Inteligența datelor PlatoBlockchain „Myst”. Căutare verticală. Ai.Articol invitat de Hannah Gamiel

Hannah Gamiel este director de dezvoltare la Cyan— studioul din spatele originaluluiMyst' jocuri — și a ajutat la dezvoltarea noului 'Myst (2020)care include suport VR. Provenind inițial dintr-un mediu pur tehnic, acum ajută la conducerea producției pentru toate titlurile și gestionează eforturile de afaceri și tehnologie la Cyan. Ea a lucrat la titluri precum „Myst” (2020), „The Witness”, „Braid, Anniversary Edition”, „Obduction”, „Firmament” (în curând!) și multe altele.

Faza de proiectare și considerații

Proiectarea navigației pentru urmărirea mâinilor

Poza care indică unde doriți să mergeți. Probabil te-ai gândit să arăți, nu? De aceea am optat să folosim o metodă de „îndreptare” pentru mișcare Myst.

Când sunteți în modul de teleportare, puteți indica locul în care doriți să mergeți și inelul de teleportare apare la destinație. Atunci când „depuneți” (prin extinderea restului degetelor sau pur și simplu trăgând degetul arătător înapoi în palmă), teleportarea este executată.

Când sunteți în modul de mișcare lină, arătarea cu mâna dominantă în mișcare liberă (care poate fi configurată în setările noastre de control, dar este mâna stângă în mod implicit) va începe să vă miște ușor în direcția în care îndreptați.

Când testăm mișcarea cu indicarea în redare, am descoperit că urmărirea mâinii poate fi uneori nesigură cu degetul arătător și degetul mijlociu atunci când este blocat de restul mâinii. Sistemul nu este sigur dacă acele degete sunt complet îndreptate sau complet „închise” în mână. Am adăugat un pic de factor „fudge” la cod pentru a ține cont de inițierea/execuția mai stabilă a mișcării pe acest front - despre care vom intra puțin mai târziu, când vom discuta modificările aduse urmăririi mâinilor out-of-the-box suport în Unreal Engine.

Cotitură

Metoda „punct” nu funcționează pentru toate utilizările de navigare. Când vine vorba de întoarcere, inițial am combinat îndreptarea cu rotirea încheieturii mâinii. Compararea încheieturii jucătorului cu vectorul înainte al camerei ar indica direcția virajului (și cât de mare ar trebui să fie virajul). Am încercat acest lucru inițial, deoarece părea intuitiv să păstrăm tema „îndreptare” pentru navigare între toate modurile.

Complicațiile au apărut însă la testele de confort. În testul de joc, majoritatea jucătorilor ar arăta înainte cu palma îndreptată spre pământ, așa cum probabil ar face atunci când încearcă să arate ceva în afara jocului. Rotirea încheieturii mâinii la stânga și la dreapta (în jurul axei în sus a încheieturii mâinii) în timp ce ai palma îndreptată spre pământ este o provocare și are o gamă foarte limitată de mișcare, mai ales dacă încerci să te întorci de la piept.

Această problemă este aceeași chiar dacă ai cerut unui jucător să arate ceva în fața lui, cu palmele îndreptate spre interior. Îți poți îndoi încheietura spre corpul tău destul de puțin, dar nu vei avea aceeași gamă de mișcare îndoind încheietura mâinii departe de corp.

Deci cum am rezolvat asta? Am ajuns să atribuim întoarcerea unui gest de „degetul mare” în loc de un gest de arătare cu degetul.

Imaginați-vă că dați degetul mare în sus. Acum întoarceți încheietura mâinii la dreapta și la stânga. Rețineți că, deși nu aveți o gamă uriașă de mișcare, este totuși destul de consistent să îndreptați fie „stânga” și „dreapta” cu degetul mare în acest gest.

Acesta este ceea ce ne-am stabilit pentru a porni în modul de urmărire manuală. Deși a arăta cu degetul mare nu pare a fi cel mai intuitiv mod de a întoarce, ea a făcut ajung să fie cel mai confortabil și mai consistent mod de a face acest lucru.

Odată cu rotirea rapidă, rotirea încheieturii mâinii la stânga sau la dreapta dintr-o poziție cu degetul mare în sus provoacă inițierea unei singure rotații rapide. Apoi, trebuie să vă întoarceți mâna în poziția „centrură” (drept în sus) pentru a reseta snap-ul și, în plus, să așteptați să aibă loc o perioadă de răcire foarte scurtă pentru a iniția din nou o întoarcere rapidă.

Cu o rotire lină, întoarcerea încheieturii mâinii în poziție cu degetul mare va începe să vă rotească la stânga sau la dreapta - odată ce părăsiți o „zonă moartă” care împiedică virajul până când treceți pragul.

Gestionarea conflictelor dintre pozițiile de mișcare și interacțiunea obiectelor

Desigur, a arăta cu degetul este un gest prea larg pentru a fi presupus că poate fi folosit doar pentru navigare. Oamenii vor face același gest de arătare pentru a apăsa butoane sau pentru a interacționa cu alte lucruri din lume doar din obișnuință sau din propriile așteptări. Ar fi destul de supărător să mergi până la (dar nu dreapta până la) un buton, arată cu degetul pentru a-l apăsa, apoi brusc (și nedorit) te apropii de el în joc (sau inițiază o teleportare neintenționată)!

Modul în care împiedicăm să apară mișcarea în timp ce jucătorul poate interacționa cu ceva este prin a împiedica declanșarea oricărui cod de mișcare atunci când mâna care face gestul „de mișcare” se află într-un anumit interval al unui obiect interacționabil. Această gamă a fost ajustată de mai multe ori pentru a ajunge la un „punct ideal” pe baza testării jocului.

Am descoperit că acest punct dulce se află la aproximativ 25 cm de locația spațială mondială a osului vârfului degetului arătător. Myst este plin de obiecte interactive de diferite dimensiuni (de la butoane mici la pârghii foarte mari) dispuse atât în ​​spații larg deschise, cât și în holuri înguste, așa că ne-a luat destul de multă teste pentru a ne stabili cu acest număr. Am încercat inițial 60 cm (aproximativ două picioare), dar asta a împiedicat mișcarea să apară atunci când jucătorii mai aveau nevoie să se apropie de un obiect. De asemenea, orice lucru sub 25 cm a provocat declanșarea unei mișcări nedorite a jucătorului atunci când jucătorii încercau să apuce sau să atingă un obiect.

Una dintre cele mai bune zone de testare a noastră a fost camera generatoarelor de pe Insula Myst, unde îți faci drum printr-o intrare îngustă și apoi ești imediat întâmpinat de un panou plin de butoane. Când zona de testare a interacțiunii a fost prea mare, jucătorii nu s-au putut deplasa prin intrare și spre panou, deoarece a detectat butoane în raza degetului arătător.

Acestea fiind spuse, 25 cm este ceea ce a funcționat special pentru Myst. Alte jocuri ar putea avea nevoie să ajusteze acest număr dacă doresc să implementeze ceva similar, cu propriile criterii în minte.

Proiectarea interacțiunilor obiectelor pentru urmărirea mâinilor

În acest moment, toate interacțiunile care pot fi acaparate în Myst sunt construite pentru a funcționa cu urmărirea manuală - rotirea supapelor, deschiderea ușilor, apăsarea butoanelor, întoarcerea paginilor cărții și așa mai departe.

Interacțiunile se bazează pe ceea ce am stabilit deja Myst cu controlere tactile. Acolo, apăsarea butonului de prindere îmbină automat reprezentarea din plasă din joc a mâinii tale într-o poziție „prinsă”, fie punând mâna într-un pumn (dacă este gol), fie apucând un obiect. Cu urmărirea mâinilor, am adăugat un cod care va face o ghicire calificată cu privire la momentul în care v-ați ondulat suficient degetele pentru a „prinde” ceva și a iniția aceeași logică ca cea menționată anterior.

De exemplu, atunci când utilizați urmărirea mâinii și mâna dvs. trece peste ceva ce poate fi apucat, culoarea mâinii dvs. devine portocalie (asta se întâmplă exact când nu utilizați urmărirea mâinii în Myst de asemenea VR). Când apuci un obiect interacționabil începând să-ți îndoiești degetele într-un pumn, o sferă portocalie înlocuiește plasa mâinii tale și reprezintă locul în care mâna este atașată de obiect.

Motivul pentru care am optat pentru această metodă în loc să facem plase personalizabile pentru mâinile tale – sau să permitem mâinilor/degetelor tale să pară să interacționeze fizic cu porțiuni din aceste obiecte – este pentru că am dorit ca interacțiunile să fie egale cu ceea ce oferim pe noi. partea controlerului tactil pentru moment.

Apăsarea butoanelor funcționează diferit. Nu este nevoie de abstracție, deoarece butoanele nu sunt obiecte care pot fi apucate și, în schimb, vă permitem să apăsați pur și simplu un buton folosind ciocnitori de capsule generate între fiecare dintre articulațiile degetelor de pe plasa de mână articulabilă. Puteți face tot felul de lucruri ciudate și distractive din acest motiv, cum ar fi să folosiți doar mizul sau degetul inelar pentru a interacționa cu fiecare buton din joc, dacă doriți cu adevărat.

Această implementare diferă ușor de modul în care controlerele tactile interacționează cu butoanele din joc, prin aceea că, de obicei, ne așteptăm ca jucătorii să folosească butonul de prindere de pe controler pentru a seta mâna să fie o plasă de „îndreptat cu degetul” pentru a obține un buton precis în joc. apăsați pe capătul lor. Cu urmărirea mâinii, există în mod evident mai multă flexibilitate în poziția pe care o puteți crea cu mâna și, prin urmare, mult mai multe moduri de a apăsa butoanele cu același nivel de precizie.

Interacțiuni meniu/UI

Pentru a interacționa cu meniurile, am ajuns să mergem cu aceeași paradigmă de interacțiune pe care o folosește Meta pentru Platforma Quest: o ciupire cu două degete între degetul mare și arătător, pe ambele mâini. Acesta poate fi folosit atât pentru a deschide meniul nostru în joc, cât și pentru a interacționa cu elementele din meniu. Nu are sens să reinventăm roata aici, când jucătorii sunt deja învățați să facă acest lucru în meniurile la nivel de sistem de operare când activează pentru prima dată urmărirea mâinilor în Quest!

Comunicarea tuturor acestor lucruri jucătorului

Deoarece urmărirea mâinilor nu este o intrare la fel de obișnuită în Quest ca și controlerele Touch și pentru că este posibil să se joace unii oameni Myst pentru prima dată (sau chiar jucând primul lor joc VR!), am încercat să fim atenți cu modul în care comunicăm jucătorului toate aceste informații despre urmărirea mâinilor. Ne-am asigurat că includem o altă versiune a „diagramei controlerului” concepută special pentru a descrie interacțiunile de urmărire a mâinilor (când este activată în Myst), și arătăm jucătorului notificări specializate care îi spun exact cum să se miște cu mâinile.

În plus, ne-am gândit că ar fi vital să reamintim jucătorului cum să aibă o experiență de urmărire lină a mâinilor, odată activată. Jucătorul este notificat în MystDin meniul lui, stabilitatea urmăririi mâinilor este mult mai bună dacă se asigură că se află într-o cameră bine iluminată și își păstrează mâinile în câmpul lor vizual.

Meta informează, de asemenea, jucătorii că acestea sunt esențiale pentru un mediu de urmărire a mâinilor bine urmărite, dar recunoaștem că unii jucători ar putea să intre într-un joc care nu au analizat mai întâi notificările lui Meta despre acest lucru, așa că am ales să le reamintim oamenilor în cazul în care au uitat.

Continuați pe pagina 2: Modificări ale motorului făcute în Unreal »

Timestamp-ul:

Mai mult de la Drumul spre VR