Elemente de interacțiune om-mașina pentru realitatea virtuală [305315]
UNIVERSITATEA “LUCIAN BLAGA” DIN SIBIU
FACULTATEA DE INGINERIE
DEPARTAMENTUL DE CALCULATOARE ȘI INGINERIE ELECTRICĂ
PROIECT DE DIPLOMĂ
Absolvent: [anonimizat], 2017 –
UNIVERSITATEA “LUCIAN BLAGA” [anonimizat]: Asistent Dr. Ing. Alexandru Butean
Absolvent: [anonimizat], 2017 –
Introducere
Prezentarea temei
Acest proiect de diploma urmărește crearea unui training destinat folosirii industriale la pregătirea angajaților pentru linia de producție. Crearea unei baze, a [anonimizat]-uri.
[anonimizat], [anonimizat].
Sistemul este bazat pe echipament de ultima generație de realitatea virtuala.
[anonimizat] a acestora. [anonimizat] v-a schimba în viitorul apropiat.
Un al motiv este faptul ca tehnologia a [anonimizat], se caută în continuare noi moduri de a interacționa cu lumea din jurului nostru. De acea putem să creăm o lumea noua în care ne putem transporta tot trupul și în mare măsura toate simțurile noastre. [anonimizat], poate să reducă din costuri extrem de mult daca este realizat într-o lume virtuală. De exemplu cum ar fi pregătirea noilor angajați pentru linia de producție.
[anonimizat]-a [anonimizat]:
[anonimizat] a unei firme cat mai rapid și cât mai ieftin din perspectiva costurilor. Tehnologiile de realitate de virtuala permit acest lucru.
[anonimizat]: medicină, arhitectură, industria auto. Unde multe din procesele costisitoare pot fi înlocuite cu tehnologii de realitate virtuala.
[anonimizat]. [anonimizat].
Utilitate
Utilitatea soluției implementate este perfectă pentru pregătirea angajaților pentru o linie de producție. Pentru prezentarea produsului unor investitori care sunt interesați de o tehnologie, dar aceasta este doar încă în stadiul de prototip. Acesta este stadiul perfect de prezentarea fără a irosii fonduri pentru implementarea fiecărui prototip nou.
Considerații teoretice
Realitate Virtuală
Termenul "realitate virtuala" a fost inventat de Jaron Lanier în 1987, pe parcursul unei perioade de activitate de cercetare intensă în această tehnologie. Dar, înainte de atunci, el a înființat VPL Research, o companie care a pionierat cercetarea în realitate virtuala și grafica 3D care sa vândut, de asemenea, primele echipamente de realitate virtuală, cum ar fi ochelari de realitate virtuală, mănuși de date și mai târziu, costumul complet de date.
Ce este Realitatea Virtuala?
Definiția realități virtuale vine, bineînțeles, din definițiile pentru "realitate" și "virtual". Definiția termenului ”virtual” este aproape și ”realitate” este ce simțim noi ca ființe umane. Deci termenul ”realitate virtuală” înseamnă ”aproape de realitate”, care poate însemna orice, dar de obicei se referă la un tip de emulare a realității.
Noi cunoaștem lumea prin simțurile noastre și percepțiile noastre. Se știe că avem cinci simțuri: gust, atingere, miros, vedere și auz. Acestea sunt cele mai importante. Adevărul este că oamenii au mai multe simțuri decât acestea, cum ar fi un echilibrul, de exemplu. Aceste alte intrări senzoriale, plus unele speciale de prelucrare a informațiilor senzoriale de către creierul nostru asigură că avem un flux bogat de informații. Cu alte cuvinte, întreaga noastră experiență a realității este pur și simplu o combinație de informații senzoriale. Ar fi de înțeles că dacă ne sunt prezentate informații contrafăcute, percepția realități se schimba în răspuns la aceste informații, deci am fi prezentați o realitatea care nu este cu adevărat acolo, dar din perspectiva noastră nu este reala. Astfel ne putem referi la ea ca și realitate virtuală
Așa că, realitatea virtuală presupune prezentarea simțurile noastre într-un mediu virtual generat de calculator, pe care o putem explora într-un fel.
În termeni tehnici
Realitatea virtuală este un termen folosit pentru a descrie un spațiu 3D generat de calculator, care poate fi explorat și interacționat de o persoana. Acea persoană devine o parte a acestei lumi virtuale, acesta este capabil de a manipula obiecte sau de a efectua o serie de acțiuni.
Cum se obține realitatea virtuala?
Realitatea virtuală este de obicei implementată cu ajutorul tehnologiei computerizate. Există o serie de sisteme care sunt utilizate în acest scop, cum ar fi seturi de căști, benzile de alergare omnidirecționale și mănuși speciale. Acestea sunt folosite pentru a stimula de fapt simțurile noastre. Acest lucru este mai dificil decât pare. Dacă ceva este chiar un pic în neregulă, de obicei, ne putem da seama. Aceste probleme care despart realitatea virtuală de experiențe convingătoare sau plăcute sunt parțial tehnice și parțial conceptuale.
Tehnologia de realitate virtuală trebuie să ia în considerare fiziologia noastră. De exemplu, câmpul vizual uman nu arata ca un cadru video. Avem nevoie (aproximativ) de 180 de grade de vizibilitate, cu toate ca suntem întotdeauna conștienți de viziunea periferică
În cazul în care o implementare a realității virtuale reușește să obțină o combinație de hardware, software și sincronizare senzorială aproape potrivită se atinge ceva supranumit ca și sentimentul de prezență, unde persoana se simte cu adevărat prezentă în acel mediu.
De ce să avem realitatea virtuală?
Valoarea potențială de divertisment este clară, filme imersive și jocuri video sunt exemple bune. Industria de divertisment este la urma urmei în valoare de miliarde de dolari și consumatorii sunt mereu dornici de noutate. Realitate virtuală are multe alte aplicații, de asemenea.
Există o mare varietate de aplicații de realitate virtuală, care includ:
Arhitectură
Sportive
Sănatate
Arte
Divertisment
Ori este prea periculos, scump sau imposibil de a face ceva în realitate, realitatea virtuală este răspunsul. De la piloții de vânătoare la medici chirurgi, realitatea virtuală ne permite asumarea de riscuri virtuale, în scopul de a câștiga experiență în lumea reală.
Pe măsură ce costul realității virtuale se duce în jos și devine mai mainstream ne putem aștepta la utilizări mai serioase, cum ar fi aplicații educaționale sau de productivitate Realitatea virtuală și realitatea augmentată ar putea schimba substanțial modul în care ne interfațăm cu tehnologiile noastre digitale.
Caracteristicile sistemelor de realitate virtuală
Există multe tipuri de sisteme de realitate virtuală, dar toate au în comun aceleași caracteristici, abilitatea de a prezenta utilizatorului imagini tridimensionale. Ele se schimbă în timp ce persoana se mișcă în interiorul mediului 3D. Acest lucru asigură faptul că mediul virtual este atât realist cat și plăcut.
Un mediu virtual ar trebui să ofere răspunsurile adecvate în timp real, în timp ce persoana explorează împrejurimile lor. Problemele apar atunci când există o întârziere între acțiunile persoanei și răspunsul sistemului sau latența care perturbă experiența lor. Persoana devine conștientă de faptul că acesta este într-un mediu artificial și își ajustează comportamentul în consecință, ceea ce rezultă într-o formă de interacțiune mecanică.
Echipamente pentru Realitatea Virtuală
Dispozitivele de intrare, îmbrăcămintea și echipamentul purtat de către persoanele care se angajează în realitate virtuală sunt:
Ochelari de realitate virtuală
Mănuși de date
Montate pe cap cu display-uri (HMD)
Costume de date
Joystick-uri
Ochelari de realitatea virtuală sunt o parte importantă a echipamentului și pot fi achiziționate de către utilizatori precum și de persoanele implicate în multe forme de cercetare în realitate virtuală.
Principala diferență dintre uneltele de realitate virtuală din trecut, și de acum este că atunci, au tendința de a fi voluminoase și incomode. Plus au un de preț ridicat.
La fel ca cele mai multe forme de tehnologie, echipamentele de realitate virtuală au devenit mai mici, mai ușoare și mai accesibile. Voluminoasele HMD-uri au fost înlocuit cu modele mai ușoare, care se potrivesc cu acuratețe pe partea din față a feței.
Fig. 2.1.1 Un exemplu de echipament original VR(lansat de Nintendo)
Fig. 2.1.2 Un exemplu modern de HMD modern (lansat de HTC/Valve sub numele de HTC Vive)
Head mounted display(HMD)
Acestea iau forma unei perechi de ochelari sau casca cu un ecran în fata care afișează imagini tridimensionale. Multe dintre acestea conțin căști și / sau difuzoare, astfel încât purtătorul primește audio.
Cele mai multe display-uri sunt conectate prin cabluri, deși există mai multe modele wireless disponibile. Dar există o problemă cu decalaj de timp (latență), care se referă la perioada de timp dintre acțiunile purtătorului și răspunsul adecvat, de ex schimbare de percepție.
HMD-urile conțin, de asemenea un dispozitiv de urmărire, ceea ce înseamnă că imaginile afișate la schimbarea purtătorului se mută odată cu capul lor. Acest lucru modifică punctul lor de vedere.
Evaluarea sistemelor de Virtual Reality
A existat un interes crescut în realitate virtuală, care a condus la unele noi evoluții interesante pentru societate în ansamblu. Această tehnologie este privit ca un concurent serios, decât ceva ce face parte din filmele SF și doar jocuri.
Realitatea virtuală are o gamă largă de aplicații care variază de la jocuri de noroc și de divertisment: în medicină, inginerie, pregătire militară, vizualizare științifică și de afaceri. Dar, ca și cu orice tehnologie, există probleme în ceea ce privește gradul de utilizare a acestui sistem. Întrebarea este cat de user friendly este realitatea virtuală și cum este evaluat?
Uzabilitatea este cel mai discutat factor când vine vorba despre impactul uman.
Realitate virtuală se bazează pe interacțiunea care se realizează prin intermediul unui dispozitiv de intrare, cum ar fi o mănușă de date, bagheta, joystick sau un alt tip de controler. În acest sens, VR poate fi privit ca o formă de interacțiune om-calculator (HCI Dar, obiectivul cu HCI este de a permite oamenilor sau utilizatorilor să folosească tehnologia pentru a atinge un obiectiv ușor și eficient.
Realitatea augmentată
Realitatea virtuală afundă simțurile complet într-o lume în care există numai în domeniul digital, realitatea augmentată ia lumea reală și proiectează imagini digitale și sunet în ea. Ambele cad într-o realitatea mediată. Care este un sistem care modifică percepția noastră asupra realității față de lumea "reală".
HMD-urile pe care le vedem în unele aeronave și mașinile care pot arăta lucruri cum ar fi "distanța până la țintă", poziția GPS sau viteza curentă sunt o formă de realitate augmentată. Evenimente cu avatare digitale de muzicieni decedați, cum ar fi Michael Jackson și Tupac proiectat pe un ecran folosind iluzia ”Ghost Pepper” ar putea beneficia, de asemenea, sub o definiție largă a realității augmentată.
Atunci când auzim despre realitate augmentată, de obicei, se referă la o implementare mult mai sofisticată, interactivă și spațial conștientă. Unde obiecte digitale, cum ar fi modele 3D sau video sunt proiectate pe viziunea noastră, ca și cum acestea au fost într-adevăr acolo.
Cum funcționează realitate augmentată?
Tipul de realitate augmentată cel mai întâlnit utilizează o gamă largă de senzori (inclusiv un aparat foto), componente de calculator și un dispozitiv de afișare(fie transparent, fie un ecran pe care sunt afișate imaginile de la aparatul foto) pentru a crea iluzia de obiecte virtuale în lumea reală. Grație popularității de smartphone-uri, care au toate componentele necesare, acestea au cele mai multe aplicații comerciale de realitate augmentată ce au fost eliberate pe piață.
În general, dispozitivul caută o anumită țintă. Acest lucru poate fi orice, dar, de obicei, este o imagine 2D imprimată pe ceva ca un poster de film. Odată ce aplicația de realitate augmentată recunoaște ținta prin intermediul camerei procesează imaginea și augmentează cu imagini și sunet. De exemplu, puteți vedea un poster de film care prinde viață și o să joace un trailer pentru film. Atâta timp cât te uiți la afișul prin "fereastra" a ecranului puteți vedea realitatea augmentată.
Prin utilizarea de algoritmi inteligenți și alți senzori, cum ar fi accelerometre și giroscoape dispozitivul poate păstra elementele augmentată aliniate cu imaginea lumii reale. Cu ajutorul unui smartphone calea spre lumea augmentată este un fel de a transmite aceste informații digitale spre ochii noștri, dar sunt multe alte moduri de a realiza acest lucru.
De exemplu imagini digitale pot fi proiectate direct pe obiecte fizice. Acest lucru este cunoscut sub numele de cartografiere de proiecție și pot fi utilizate cu rezultate destul de de bune. Dyadic Mano-o-Mano utilizează proiectoare și senzori Microsoft Kinect pentru a furniza utilizatorului cu imagini 3D proiectate direct pe mediul înconjurător. Utilizatorul nu are nevoie să poarte echipament sau nevoia de a folosi orice dispozitiv. Interacțiunea cu acest sistem este extrem de naturală și intuitivă.
Cartografiere de proiecție pentru realitatea augmentată
Proiecție ca metodă de realitate augmentată are o mulțime de potențial, dar necesită un spațiu controlat și mapat pentru ca aceasta să funcționeze corect. Metoda care este cel mai probabil să înlocuiască realitatea augmentată de tip smartphone în aplicarea comună în afara cea de laborator este unul care folosește sisteme montate pe cap. Acest lucru este în cazul în care realitatea virtuală și augmentată începe cu adevărat să conveargă, deoarece nu există nici un motiv real pentru care sistemele montate pe cap utilizate de ambele tehnologii nu pot fi multi-funcționale. Sistemele care folosesc telefonul ca și metodă de augmentare transmit informație de la cameră la ecran, dar mai întâi această informație este prelucrată. Cu alte cuvinte, cu toate că nu se poate vedea nimic altceva decât ecranul de afișare montat pe cap, acesta arăta lumea exterioară prin camera orientată spre partea din spate a telefonului.
O modalitate de a trece în jurul acestei limitări este prin utilizarea unui sistem așa cum se găsește în Google Glass și Microsoft Hololens. Ambele dispozitive folosesc ceva cunoscut ca un "proiector prismă". Ochii utilizatorului se uite la lume fără obstacole, dar imaginile digitale sunt proiectate în sistemul de proiecție prisma care stă între ochi și lumea exterioară, făcându-l să apară ca și când aceste obiecte sunt cu adevărat acolo. De exemplu un obiect așezat pe o masă sau agățat de un peretele. În imaginea de mai jos se poate vedea cum imaginea este proiectată o suprafață plană, în cazul dispozitivului Microsoft Hololens.
Fig. 2.2.3 Proiecție în HoloLens
Există mai multe modalități de a atinge obiectivul de realitate augmentată, dar după cum se poate vedea rezultatul final este că avem un amestec de informații digitale cu lumea reală.
Exemple de realitate augmentată
Realitatea augmentată este utilizată într-o varietate de moduri, dar toate acestea cu scopul de a îmbogăți viața noastră de zi cu zi. Ideea este de a spori viziunea asupra lumii reale prin aceasta cu grafica pe calculator, care schimbă percepția asupra lumi.
Exemple de domenii în care este utilizat de realitate augmentată includ:
Jocuri
Aplicații militare
Reclamă
Sportiv
Artele
Sănătate
Arhitectură
Construcție
Divertisment
Alte domenii includ arta, agrement și turism. Multe dintre aceste au folosit, de asemenea, realitatea virtuala, ambele forme de tehnologie permit să simplifice subiecte complexe sau de să îmbunătățească "experiența utilizatorului".
Aplicații ale Realității Augmentate
Cele două domenii în care am văzut dezvoltare comercială în realitate augmentată sunt educația și jocuri video.
Cele mai mari două console de jocuri video, Xbox și Playstation, au inclus capabilități de realitate augmentată pentru ultimele două generații de console. Acestea sunt sub forma de Kinect (pentru Xbox) și Playstation Eye sau Camera(pentru Playstation). Pentru că vă ne uităm atât la camera video și ecranul aceste implementări sunt mai mult ca oglinzi de realitate augmentată, în cazul în care te vezi "în" joc și poți interacționa cu caractere, care par a fi în aceeași cameră ca și tine.
Jocurile de realitate augmentată pot fi găsite pe smartphone-uri, tablete și console portabile, cum ar fi Nintendo 3DS și Playstation Vita.
Concluzie
Realitatea augmentată intră în viața noastră de zi cu zi tot mai mult. Odată ce computerele devin mai comune nu va fi ciudat pentru a vedea oameni care interacționează și reacționează la lucruri care nu sunt acolo din perspectiva ta. Grație tehnologiilor, cum ar fi realitatea augmentată modul de lucru cu dispozitive de calcul și felul în care ne gandim la decalajul dintre realitate digital și analogic este probabil să se schimbe în mod fundamental. Nimic nu ne oprește de a experimenta realitate augmentată pentru tine azi.
Mixed Reality (MR)
Mixed Reality sau Realitatea Combinată/Mixtă este folosită ca un concept independent sau pentru a clasifica spectrul tehnologiilor de realitate, așa cum se face referire în continuumul realitate-virtualitate. Ca un concept independent, realitatea mixtă combină cele mai bune tehnologii atât din realitatea virtuală cât și realitatea augmentată. Atunci când este utilizat pentru a clasifica domeniul de aplicare a tehnologilor de realitate virtuală, se referă la acoperirea tuturor variantelor posibile și compoziții ale obiectelor reale dar și virtuale.
Explicație simplă pentru Mixed Reality
Realitatea mixtă (uneori numită realitate hibridă) își propune să combine cele mai bune aspecte atât din realitatea virtuală cât și din realitatea augmentată. De asemenea, se referă la întregul spectru de situații care se întind pe continuumul între realitate virtuală și lumea reală. În acest caz, realitatea mixtă poate include realitatea augmentată, virtualitate augmentată, precum și alte configurații mixte.
În mediile de realitate mixtă, utilizatorii pot să navigheze perfect prin ambele medii reale cât și virtuale, în același timp. În loc de a te afla într-o lume cu totul virtuală (realitate virtuala), obiectele virtuale sunt ancorate în spațiu în lumea reală a unui utilizator interacțiunile cu virtuale par să fie "reale". Aceste interacțiuni imita comportamentul nostru natural de interacțiune, cum ar fi obiecte se măresc pe măsură ce se apropie și își schimbă perspectiva pe măsură ce utilizatorul se mișcă în jurul unui obiect
Tipuri de Realitate Mixtă
Continuumul Realități Mixte
Fig. 2.3.1 Continuumul Realități Mixte
Acesta se referă la toate variantele posibile și compoziții ale obiectelor reale și virtuale. Privind spectrul, începând de la stânga departe, unde este lumea reală în cazul în care nimic nu este generat de calculator. Punctul cel mai dreapta pe spectrul, este mediul virtual unde totul este generat de calculator.
Realitate Mixtă – Concept Independent
Realitatea Mixtă, ca un concept de sine stătător este utilizat pentru a se referi la întregul spectru de situații între realitatea efectivă (adică lumea reală) și realitatea virtuală, încearcă să combine cele mai bune din ambele realitate virtuală și realitatea augmentată.
Dezbaterea pe tema MR/AR
Ca și în cazul în care nu era suficient de nepătruns, dincolo de dezbaterea existenta pe tema "Ce este VR?". Există o conversație întreagă despre AR (realitate augmentată) vs. MR (realitatea mixtă).
Pentru cea mai mare parte, în domeniul consumatorului, termenul "realitatea mixtă" pare să fie în favoarea "realitate augmentată". Acest lucru se rezumă la faptul că accentul pe VR a însemnat distincția între MR și AR nu a fost suficient de clar trasată încă; înseamnă că în prezent acești termeni sunt utilizați interschimbabil, și ori de câte ori se întâmplă acest lucru, un termen va fi în mod inevitabil favorizat față de celălalt. Chiar acum, AR este câștigător.
Cum funcționează?
Realitatea mixtă funcționează prin scanarea mediul fizic și crearea unei hărți 3D a împrejurimilor, astfel încât dispozitivul va ști exact unde și cum să plaseze conținut digital în acel spațiu în același timp permițându-ne să interacționăm cu acesta folosind diferite gesturi. Mult diferit de realitatea virtuală în cazul în care utilizatorul este scufundat într-o lume cu totul diferită, experiența realității mixte invită conținutul digital în fața ta. permițându-ne să interacționăm cu el.
Utilizarea unor lentile transparente, sunet cu plasare spațială și o înțelegere a mediului fizic va permite hologramelor proiectate să se uite, să sune și să se comporte ca niște obiecte reale, care sunt capabile să ”interacționeze” cu mediul din jurul lor și, de asemenea, unele cu altele.
Ce se poate în face Realitatea mixta?
Realitatea mixtă nu va fi doar o altă consolă de jocuri avansată pentru a juca cea mai recentă versiune de Halo. În schimb, se va adăuga o nouă lume de interacțiuni, aplicații, jocuri și experiențe pe care putem să le imaginăm. Lumea din jurul tău va deveni o pânză cu care ne putem juca, învăța, comunica și interacționa.
Cateva exemple de folosire
Comunicare: Holoportarea va permite utilizatorilor de dispozitive din diferite orașe sau țări să interacționeze unii cu alții, în același spațiu virtual, în timp ce sunt la distanțe mari.
Fig. 2.3.2 Holoportare
Educație: Mai jos este un exemplu creat de Proiectul Esper care arată modul în care elevii la medicină vor beneficia și câștiga mai mult experiență în anatomia umană]
Fig. 2.3.3 Proiectul Esper
Divertisment: Microsoft Hololens este deja de lucru cu NFL pentru a schimba complet modul în care fanii se pot viziona și de a interacționa cu jucători, alți fani, experiențe de joc în timp real și agenții de publicitate și sponsori.
Figura 2.3.4 Divertisment NFL
Această tehnologie are un număr nelimitat de folosiri, în prima faza a ”revoluției” realității mixte toate dispozitivele mobile, tv-uri, laptopuri, etc vor fi înlocuite de dispozitive cu capabilități MR
Când vom vedea adoptarea în masă?
Cheia pentru a conduce la consumul în masă al acestor platforme constă în a face dispozitive de realitate mixtă care sunt mai mici și mult mai accesibile pentru toată lumea. Chiar acum, Microsoft Hololens este singurul dispozitiv premium pe piață cu o etichetă de preț de $3.000. Este într-adevăr proiectat numai pentru întreprindere și ingineri și încă nu are o bază de consum în masă. Meta 2 ar trebui să înceapă livrările în curând la $949, iar Magic Leap este încă neanunțat.
Cheia este de a începe dezvoltarea de dispozitive la prețuri accesibile mai mici capabile să garanteze că cantități masive de date pot fi. Această techonologie este foarte aproape, și vom vedea îmbunătățiri majore în 2017.
Dispozitive de intrare/input în Realitatea virtuală
Nu toată lumea își poate permite într-adevăr un sistem CAVE(un sistem unde câteva proiectoare sunt îndreptate intre trei sau șase pereți într-o încăpere de mărimea unui cub) sau de a cumpăra un costum pentru tot corpul. Există și alte opțiuni de a alege înafara de a folosi o baghetă sau un joystick. Sentimentul de imersiune a utilizatorului crește atunci când dispozitivele cu care navighează sunt foarte eficiente în concordanța cu o experiența reală a utilizatorului. Ținând cont de cele spuse mai sus, au fost create diferite sisteme de interacțiune pentru utilizator
Dispozitive de intrare (senzori) capturează acțiunile utilizatorului (de exemplu, mișcările capului) și transmite aceste informații la computer, care se ocupă de simularea interactivă.
Caracteristici generale ale dispozitivelor de input
Mărime și Formă
Grade de libertate
Integrat (mouse) vs separat
Manipulare directă vs indirectă
Input relativ vs Absolut
Re1ativ – măsoară diferența dintre inputul curent și ultimul introdus (mouse)
Absolut – măsoară inputul relativ la un punct constant de referință (tabletă)
Rata de control vs Controlul poziției
Isometric vs Isotonic
Isometric – măsoară presiunea sau forța de apăsare fără o mișcare actuală
Isotonic – măsoară distanța de la un punct central (mouse)
Putem identifica câteva categorii ale dispozitivelor de intrare care:
Integrează inputul cu ajutorul mâini în VR (Leap motion)
Fixe în lumea reală (joystick)
Ținute în mână dar nu sunt urmărite în spațiul virtual (Controlerul Xbox)
Urmărite în spațiul virtual (Controlerul Vive)
Purtate pe mâini (Manus VR)
Capturează inputul de la alte parți ale corpului: cap, ochi sau chiar captarea totală a corpului
Sisteme de input
O banda de alergare este destul de utilă. Aici utilizatorul rămâne static în raport cu lumea reală. Dar utilizatorul va simți exact că el însuși este în mișcare prin lumea virtuală. O banda de alergare este relativ simplu de atașat la sistemul informatic. Aici pași utilizatorului rezultată schimbări în sistemul virtual. Totuși, există o limitare în banda de alergare în care utilizatorul poate merge doar înainte și înapoi.
Benzile de alergare omni-direcționale sunt de asemenea dezvoltate, care permite libera mișcare a utilizatorilor în orice direcție. Benzile de alergare normale folosesc un singur motor în timp ce benzile de alergare omnidirecțional folosesc 2 motoare asigurând astfel libera circulație pentru utilizator. Suprafața de mers este de obicei acoperit cu un sistem complicat de cabluri și curele.
Există un substitut pentru o bandă de alergare. Acesta este cunoscut ca un preș de presiune. Există diferite tipuri de senzori de presiune. Cei mai frecvenți senzori utilizați cunoscut ca senzorul de presiune electromecanic. Acesta acționează ca releu de fiecare dată când presiune acționată pe senzor. Pe măsură ce circuitul se închide, un curent electric trece prin el. Acesta a fost folosit în jocuri video precum "Dance Dance Revolution."
VirtuSphere, Inc a creat o minge de hamster de aceeași dimensiune ca a unui om. Utilizatorul intră în interiorul bilei și poate să se miște liber. Sfera stă pe o platformă fixă, care are mai multe roți care se sprijină pe sfera. Astfel, acesta permite să se rostogolească în diferite moduri, fără a-și schimba poziția și rămânând fixă. Senzorii din roți trimit date către sistem, iar schimbarea în HMD-ul utilizatorului poate fi observată în mod corespunzător.
O examinare a ce controlere vor fi utilizați de consumatori în VR.
Majoritatea producătorilor de VR, cum ar fi Oculus Rift, HTC Vive și PlayStation VR sunt pregătiți de a lansa propria lor versiune de dispozitive de intrare. Chiar și Samsung a experimentat controlere de mana pentru Gear VR.
Controlere bazate pe urmărirea mișcării
Aceste controlere se bazează pe modelul de controlere Wii și integrează în VR. În experiențele VR, acestea adaugă un strat de realism de interacțiune prin reprezentarea mâinilor utilizatorilor. Cei trei producători majori de câști VR (Rift, Vive, PSVR) vor crea fiecare propriile lor controlere de mișcare proprii, precum și sisteme de urmărire externe.
Oculus Rift – răspunsul celor de la Oculus Rift la controlul mișcării este Oculus Touch.. Oculus Touch va fi livrat cu două controlere și o cameră suplimentară de urmărire pe care le va aduce acuratețea și precizie la sistemul lor de urmărire: ”Constellation”. Pe fiecare controler sunt două butoane de acțiune, un declanșator analogic, și un buton integrat de prindere care să permită interacțiunea cu lumea virtuală.
Fig. 2.4.1. Oculus Touch
HTC Vive – Vive va livra controlerele lor de mișcare proprii. Sistemul de urmărire ”Lighthouse” Vive va urmări ambele controlere precum și casca lor. Fiecare controler are un buton de declanșare, touchpad și declanșator analogic.
Fig. 2.4.2. Controlere HTC Vive
Playstation VR – Propria lor soluție se bazează pe deja existentele controlere Playstation Move, care sunt un concurent la Wiimote, care se bazează pe propria sa camera de urmărire. Playstation Move folosește un standard de 4 butoane de intrare ale consolei Playstation precum și un buton de declanșare și de mișcare pentru interacțiune în joc.
Fig. 2.4.3. Controlere Sony Playstation VR
Gamepad-uri
Acestea încorporează o metodă de mișcare și de interacțiune, în mod tipic văzute prin joystick-uri și butoane / declanșatoare. VR fiind un mediu nou de jocuri, dezvoltatorii au păstrat o sumă bună din jocurile lor, în toate cele trei seturi de VR, folosind un gamepad acestea păstrează un control familiar și permite utilizatorului să navigheze pe deplin și să interacționeze în VR. Cu toate acestea, acest control familiar se aplică numai jucătorilor și ar putea încetini adoptarea VR în afara comunității de jocuri.
Mouse-ul și Tastatura
Tastatură și mouse-ul au reprezentat modelul de control a calculatorului încă de la începuturi. Tastatura, adaptată la formatul digital de la mașina de scris, este cel mai des folosit în jocuri pentru navigare(săgeți sau tastele WASD). De asemenea, mouse-ul oferă aceeași interacțiune ca și cum ați avea cu calculatorul în fața ta. Atât Oculus Rift cât și HTC Vive au suport natural pentru mouse și tastatură, ia PSVR nu are același suport fiind o platformă bazată pe Playstation.
Alte sisteme importante
Privind în perspectivă, vom vedea companii abordând probleme precum ar fi adăugarea mâini la simularea VR și mișcarea degetelor, precum și un feedback haptic pentru un sentiment de atingere.
Recent, Leap Motion a lansat un update la tracker, care a arătat pași semnificativi în îmbunătățirea captări mișcări mâini și a degetelor.
Fig. 2.4.4. Leap motion
Alte sisteme care permit detectarea mișcării mâini și a degetelor este Manus VR, aceste mânuși promit să ia controlere portabile să fie scoase din realitatea virtuală permițând utilizatorilor o mișcare naturală a mâini și a degetelor
Fig. 2.4.5. Manus VR
UI and UX în Virtual Reality
Până acum designeri erau obișnuiți să proiecteze formulare, site-uri web și aplicații smartphone. Acum, ei trebuie să re-învețe acest lucru pentru a proiecta interfețe și interacțiuni pentru realitatea virtuală
Multe dintre elementele UI tradiționale, pur și simplu nu funcționează în VR, și o parte semnificativă a setului de instrumente existente destinate experienței utilizatorului(eng. user experience – UX) sunt nepotrivite cerințelor actuale. Pentru a începe cu proiectarea pentru o suprafață plană, în cazul de fața pentru laptop sau un telefon, este foarte diferit de la proiectarea pentru o lume. sferică în care utilizatorul se află în centrul. Din fericire, există oameni care cercetează UI și UX pentru noile tehnologii VR, și există câteva modele încercate și testate.
Design curbat
Un element la fel de simplu ca un dreptunghi, o imagine sau un player video. Toate acesta puse într-un mediu de VR, pur și simplu nu funcționează, mai ales dacă este prea lat sau înalt. Marginile unei suprafețe plane, vor fi mai departe de focalizarea ochiului utilizatorului, ceea ce le face neclare și greu de citit.
Fig. 2.5.1. Design curbat pentru UI
Soluția este un design curbat. Trebuie să încetăm sa ne mai gândim pânza unde se ”desenează” interfața utilizatorului ca o suprafață, și să ne-o imaginăm ca o sferă.
Soluția principală este să îngustăm câmpul de în care sunt puse elementele UI.
În VR plasarea oricărui element de control semnificativ la periferia câmpului de vizibilitate este o idee rea. Este un simplu biologic: viziunea noastră nu este pur și simplu destul de bună la periferie.
Fig. 2.5.2. Câmpul de vedere al utilizatorului
Suntem obișnuiți să gândim orientarea într-un format portret sau peisaj pe web și pe smartphone-uri. Nici una din metode lucrează deosebit de bine în VR, deoarece forțează utilizatorul să-și încline capul prea mult. În schimb, controalele ar trebui să fie plasate în interiorul unui dreptunghi.
Folosirea zonelor Z și adâncimea
Obiectele care sunt prea aproape de ochii vor deveni neclare. Ridicând mâna mișcând-o în fața noastră, nu vom putea menține focalizarea atunci când este aproape de ochi la câțiva centimetri. Obiectele și mai ales controalele nu ar trebui să fie plasate prea aproape de utilizator.
Oamenii sunt mult mai obișnuiți în a observa distanța dintre două obiecte la o distanta decât dacă sunt aproape, decât între două obiecte departe. În cazul în care distanța este importantă din punct de interacțiune de vedere, obiectele ar trebui să fie plasate în mod rezonabil aproape de ochii utilizatorului.
Fluxul mișcări
În realitate virtuala camera este mapată la capul utilizatorului, cu focalizarea fiind la centru (cu excepția cazului când se utilizează urmărirea ochilor). Acest lucru înseamnă că nu ar trebui să se schimbe vreodată mediul împotriva mișcărilor capului, sau să forțeze utilizatorul să întoarcă capul involuntar. Ambele vor duce la rău de mișcare, și grețuri. Uneori dorim să ghidăm utilizatorul prin interfața, spre direcția în care se întâmplă ceva. Acest lucru este cazul în care instrumentele subtile cum ar fi fluxul de mișcare vin în joc. Prin apăsarea unui buton se poate începe ghidarea utilizatorul pentru a-și întoarce capul. Se poate sugera o direcție pentru a ghida ochiul utilizatorului spre următorul punct de referință.
Interfață în mișcare
Este opusul fluxului de mișcare, atunci când nu îndeamnă utilizatorul să se uite într-o anumită direcție, ci mai degrabă mutăm elementele noi direct în câmpul vizual a utilizatorului. Stând în centrul unei sfere înseamnă că nu vedem, și nu știm despre elementele de UI care se schimbă în spatele nostru. Uneori e mai bine să fie puse chiar în partea din față a utilizatorului.
Un element important este capturarea atenției. Aceasta abilitate evolutivă este perfectă pentru a capta focalizarea într-un mediu de realitate virtuală.
Obiecte de ancorare
Realitatea virtuală poate provoaca amețeli pentru o mulțime de oameni. Șansele sunt, dacă am avut o experiență neplăcută în VR nu o vom încerca din nou, și cu siguranță nu v-om încerca areia oară.Suntem obișnuiți să stăm în picioare sau așezat în timp ce lumea se mișcă în jurul nostru, un bun exemplu este atunci când conducem. Aceasta nu provoacă greață, pentru că avem o ancoră vizual, bordul autoturismului.
Stabilirea unor astfel de obiecte ancoră în spațiul virtual este ceva ce designeri de interfață ar trebui să ia în considerare. Cercetările sugerează chiar un nas virtual poate ajuta. Noi toți ne vedem nasul tot timpul oricum, nu?
Fig. 2.5.3. Nas în VR
Sunet Holophonic
„Holophonic” înseamnă sunet 3D (cuvântul în sine rimează cu holografia). Ideea este că prin ascultarea prin echipamentul corect putem spune dacă sunetul vine de sus, de jos, sau din spate (și nu doar la stânga și la dreapta, precum sistemele stereo).
Sunetele holophonice sunt uimitoare în jocuri, dar ar putea fi folosite pentru interfețe de control VR. Imaginați-va un film care începe să în afara câmpului nostru de vedere, și veți auzi exact de unde sunetul vine. Noi nu suntem încă acolo, dar nu atât de departe.
Procesul de la VR
Proiectarea unui ecran 2D plat versus proiectarea 3D VR are proprii factori provocatori. Realizarând cea mai bună experiență de utilizare în dispozitivele VR este succesul cheie al întregului concept. Deoarece este o combinație de diferiți factori, cum ar fi detectarea mișcări capului, mișcarea ochilor, etc, ceea ce face toate aceste să fie sincronizate împreună și le leagă perfect cu designul și aspectul vizual.
Fig. 2.5.4. Procesul de design VR
Cine poate utiliza VR?
Toată lumea. Da, Căștile VR sunt de accesibile în 3 categorii pentru oameni din întreaga lume. Fiecare aplicație unică pe care o utilizăm în telefoanele mobile și computerele pot fi proiectate pentru VR. Există o concepție greșită mare printre oameni spunând că VR este favorizat doar pentru dezvoltarea de jocuri, care este total greșit. Designeri de interior, medici, E-Commerce, Bănci și orice altă linie aleatoare de afaceri poate folosi Realitatea virtuala pentru munca lor.
Setul VR la nivelul de intrare. Este de fapt doar un smartphone. Introduci telefonul într-o pereche de lentile care are curea și o fixezi o mască de scuba, și ești în lumea VR. Acestea pot fi construite din material plastic, sau chiar, după cum Google a lansat, Google Cardboard. Samsung are un astfel de model pe piață astăzi.
Setul VR de nivel mediu. Este complet de sine stătător, ca un Oculus Rift(dk1 sau dk2), HTC Vive sau PSVR, cu propriile sale de ecrane și, probabil, căști. Gândiți-vă la ea ca la un televizor foarte frumos sau un monitor de calculator pentru fața.
Realitatea augmentată. Este un pas înaintea VR-ului unde la imaginile din lumea reală sunt adăugate imagini virtuale. Imaginați-vă, mergi pe drum și puteți vedea efecte vizuale care apar în câmpul vizual. Două companii mari, Microsoft cu HoloLens și un alt set Magic Leap sunt încercarea de a realiza acest concept, iar HoloLens pare a fi o reușită în acest caz.
Câteva principii UX pentru proiectarea VR
1. Totul trebuie să fie reactiv
Fiecare obiect interactiv ar trebui să răspundă la orice mișcare. De exemplu, un buton, orice atingere ocazională ar trebui să provoace mișcarea butonului, chiar dacă această mișcare nu are ca rezultat butonul fiind complet apăsat. Atunci când se întâmplă acest lucru, răspunsul haptic al obiectului coincide cu un model mental al utilizatorului.
Când se proiectează un buton se poate utiliza o umbră a mâini pentru a indica cazul în care mâna utilizatorului este în interacțiune cu butonul, se poate crea o strălucire a butonului, care poate fi reflectat pe de o parte și pe mână pentru a ajuta utilizatorul să înțeleagă relația dintre obiect și mâna acestuia, sau utilizarea surselor de sunet pentru a indica atunci când butonul a fost apăsat ("clic")
Fig. 2.5.5 Exemplu de feedback pentru utilizator
2. Restricționarea mișcări pentru interacțiune
Display-ul ar trebui să răspundă la mișcările utilizatorului în orice moment, fără excepție. Chiar și în meniuri, atunci când jocul este întrerupt, utilizatorii ar trebui să poată să se uite în jur. Cheia este ca utilizatorul să nu sufere de rău de mișcare. Nu trebuie instigată o mișcare fără inputul utilizatorului. Trebuie restricționată mișcarea la periferie.
3. Lizibilitatea textului și a imagini
Texte luminoase, mai mari și mai bold-uite, trebuie să fie folosite pentru a indica diferite widget-uri. Imaginile trebuie să fie realiste și atrăgătoare pentru utilizator. Mintea utilizatorului va fi scufundată în întregime în realitatea virtuală pentru o perioadă prelungită de timp. Textele trebuie să fie ușor de citit și lizibile pentru experiență fară oboseală a utilizatorului. Culorile vii și mai luminoase vor face utilizatorii mai implicați
.
Fig. 2.5.6. Exemplu de lizibilitatea a imaginilor pentru a experiență aprofundată
4. Ergonomia
Proiectarea bazată pe modul în care funcționează organismul uman este un element esențial pentru a aduce o interfață nouă la viață. Corpurile noastre tind să se deplaseze în arce de cerc, decât linii drepte, deci este important să se compenseze prin permiterea de arce în spațiul 3D
5.Efecte sonore
Sunetul este un aspect esențial al unei experiențe VR cu adevărat captivantă.
Combinate cu urmărirea mâini și feedback-ul vizual, acestea pot fi folosite pentru a crea "iluzia" de senzație tactilă. Acestea poate fi, de asemenea, foarte eficiente în comunicarea succesului sau eșecului interacțiunilor.
Câteva puncte care ar trebuie avute în vedere pentru crearea unei experiențe bogate.
Evită mișcarea rapida, îi face pe oameni să se simtă rău
În cazul în care există o linie de orizont, aceasta trebuie menținută stabilă. Un orizont care se mișcă în VR este ca un orizont pe un avion, nu e o experiență plăcută.
A se evita tranziții rapide sau bruște în spațiu, acestea sunt foarte dezorientative.
Nu cere utilizatorului să miște capul sau corpul prea mult. Nu numai ca este derutant, dar utilizatorul poate fi purta casca într-un mediu pe care nu se pot deplasa în jurul lor, la fel ca pe un avion.
Trebuie avută atenție cu privire la amestecarea UI-ului 2D și 3D, schimbarea poate fi neplăcută.
Densitatea informațiilor și a obiectelor pe ecran trebuie să fie mult mai mică decât într-un ecran standard. Nu totul trebuie să fie în câmpul de vedere al utilizatorului.
Folosiți indicii din lumea reală, atunci când este cazul.
Scenele luminoase sunt obositoare.
Când ai dubii: testează, testează, testează.
Reducerea încărcăturii cognitive în VR
Mai întâi de toate, ce este de încărcarea cognitivă și de unde provine? Simplu spus, sarcina cognitivă este cantitatea de putere de procesare mentală necesară pentru a folosi produsul. Este un termen care este folosit foarte mult în proiectarea UX, și pot fi influențate pozitiv sau negativ de fiecare alegere de design care le facem. Chiar și cele mai simple decizii, cum ar fi compoziția de bază a elementelor de conținut, sau paleta de culori a interfeței de utilizator, poate ajuta sau răni sarcina cognitivă.
Ignorând impactul pe care sarcina cognitivă o poate avea asupra experienței VR înseamnă ca utilizatorii să rateze detalii critice sau instrucțiuni, sau chiar să renunțe la experiență în întregime. Există câteva teme de design pe care le putem utiliza pentru a examina critic dacă ceea ce am construit lucrează pentru sau contra utilizatorului.
1. Introdu obiectele sau conceptele noi, una câte una
Pentru aceia dintre noi care suntem în VR regulat, este ușor de uitat cât de copleșitor poate fi ca nou utilizator. Aruncând pe cineva în mijlocul unei experiențe VR plină de obiecte virtuale veți scurtcircuita foarte ușor capacitatea lor de a se concentra pe nimic. Popularea mediului cu un singur obiect, la un moment dat, elimină dezordinea, și limitează numărul de distrageri care vor ajuta utilizatorii să se concentreze asupra învățării noului concept pe care încercați să-l prezentați arate.
2. Bazează-te pe realitate
Proiectarea mediilor virtuale cu care utilizatorii sunt deja familiarizați va reduce enorm încărcătura cognitivă, aceasta este probabil cea mai mare schimbare pe care o putem face. Atunci când un mediu este familiar utilizatorilor, ei vor fi capabili să se bazeze pe instinctul lor cu privire la ceea ce pot face acolo.
În mod similar, obiecte virtuale, care arata și se comporta ca omologii lor din viața reală sunt, de asemenea, mai ușor pentru utilizatori să le înțeleagă. În cazul în care intenția este de a ne abate de viața reală în proiectarea mediului virtual și interfața acestuia, trebuie să avem în vederea designul de produs și concepte industriale. Acestea transmit utilizările lor prin forma și comportamentul lor atunci când cineva interacționează cu ele.
3. Obiectele sau acțiunile similare trebuie sa fie apropiate una de alta
Un termen pentru acest lucru este divizarea conținutului, care se referă la felul în care grupăm bucăți de informație similară. Gândiți-vă la modul în care vă organizați bucătăria: dacă avem mai multe elemente destinate pentru o anumită sarcină (condimente, ustensile de gătit), aceste obiecte tind să fie depozitate, stivuite sau așezate una lângă alta. Este mai ușor să ne amintim unde punem boia de ardei, dacă știm că toate condimentele sunt păstrate în același loc. Unde și cum să grupăm lucrurile este unul dintre fundamentele design-ului.
În fiecare experiență VR, vor exista mai multe moduri diferite da a grupa obiecte împreună: tipul, utilizarea, dimensiunea, culoarea, etc. Concentrându-ne pe ceea ce fiecare obiect este menit să facă, ne va ajuta să decidem unde ar trebui amplasat cu scopul de a reduce încărcarea cognitivă. Acesta este un proces iterativ, și afectează multe aspecte diferite ale experienței utilizatorului, astfel încât este neobișnuit să o obținem bine de la prima încercare.
4. Rulați design-ul prin testare de utilizare pentru a vă asigura că funcționează cu utilizatorii și nu împotriva lor
Un designer înțelept a spus odată, "Nu sunteți propriul vostru utilizator." Utilizatorii se bazează pe cunoștințe largi despre sistemele care le folosesc. Acest lucru este "modelul lor mental", cadrul cognitiv pe care fiecare utilizator se referă în scopul de a determina ceea ce este posibil și ceea ce este probabil să se întâmple în timpul experienței VR.
Modelele mentale pot varia de la o persoană la alta, uneori sălbatice și, uneori, în tipare. Dacă ați avut vreodată utilizatorii să vă spună că o caracteristică nu este la locul ei, o parte a interfeței ar trebui să fie mutată în altă parte, sau că ceva fundamental pare să lipsească din produs, acesta este un simptom al unei nepotriviri în design-ul și modelul mental al utilizatorului. Putem fie modifica designul pentru a reprezenta mai bine modelul mental al utilizatorului, sau să îmbunătățim modelul mental al utilizatorului prin interfața curentă pentru reflecta mai corect sistemele care stau la baza acesteia.
Instrucțiuni oferite de Oculus pentru designul de interfețe grafice
Randarea stereoscopică a UI-ului
În cazul în care un singur cuvânt poate ajuta dezvoltatorii să înțeleagă și să abordeze provocările legate de UI, este "stereoscopicul". În VR, totul trebuie să fie redat din două puncte de vedere unul pentru fiecare ochi. La proiectarea și punerea în aplicare a UI-ului, luarea în considerare frecventă a acestui fapt poate ajuta să aducă problemele la lumină înainte ca acestea fie întâlnite în punerea lor în aplicare. Acesta poate ajuta, de asemenea, în înțelegerea constrângerilor fundamentale care acționează asupra UI-ului. De exemplu, randarea stereoscopică în esență, face imposibilă să pună în aplicare un HUD ortografic, una dintre cele mai comune implementări GUI pentru aplicații 3D, în special pentru jocuri.
Problema infinitului
Nici proiecțiile ortografice, nici HUD-urile în sine sunt complet exclusive în VR, dar implementarea lor standard, întregul HUD este prezentat prin aceeași proeminență ortogonală pentru fiecare ochi.
Proiectarea de HUD în acest mod necesită ca utilizatorul să se concentreze pe infinit atunci când vizualizează un HUD. Acest lucru pune în mod eficient HUD-ul din spatele tot ceea ce este randat. Acest lucru se poate confunda sistemul vizual, care percepe HUD-ul să fie mai departe decât toate celelalte obiecte. Acest lucru provoacă în general, disconfort și poate contribui la oboseală oculară.
În general, o aplicație VR ar trebui să renunțe la ideea de a proiecta ortografic ceva direct pe ecran în timp ce este în modul VR. Va fi întotdeauna mai bine să se proiecteze pe o suprafață care este apoi plasat în spațiul vizibil al utilizatorului, deși acest lucru oferă propriul set de provocări.
3. Rezolvarea temei de proiect
3.1 Cercetări în domeniu
3.1.1 VRID: A Design Model and Methodology for developing Virtual Reality Interfaces
IDEE PRINCIPALĂ
În comparație cu interfețele convenționale, interfețele din realitatea virtuală (VR) conțin o varietate mai bogată și tipuri mai complexe de obiecte, comportamente, interacțiuni și comunicații. Prin urmare, proiectanții de interfețe VR se confruntă cu provocări conceptuale și metodologice semnificative: a) gândire cu privire la proiectarea generală a interfeței VR; b) sarcina de a descompune în sarcini mai mici procesul de dezvoltare și c) comunicarea structurii de design către dezvoltatorii de software. Pentru a ajuta designeri pentru a face față acestor provocări, se propune o interfață de proiectare Virtual Reality Interface Design (VRID) Model, precum și o metodologie VRID asociată. Realitatea virtuală (VR) este văzută ca o platformă promițătoare pentru dezvoltarea de noi aplicații în multe domenii, cum ar fi medicina, divertisment, știință și de afaceri. În ciuda avantajelor posibile lor, se observa încă dezvoltarea pe scară largă și utilizarea aplicațiilor VR în practică. Interfețele VR prezintă caracteristici distinctive vizuale, de comportament și de interacțiune.
REZULTATE
Bazându-se pe revizuirea și sinteza lucrărilor anterioare privind proiectarea interfeței VR, se identifica grafica obiect, comportamente obiect, interacțiunile obiect și comunicațiile obiect ca construcțiile cheie la care designerii ar trebui să se gândească la proiectarea interfețelor VR. Prin urmare, se organiza modelul VRID în jurul unei arhitecturi obiect multi-component, care este reprezentată în figură. Grafica, componentele de comportament, interacțiune și comunicație sunt incluse pentru a distinge și aborda caracteristicile distinctive ale interfețelor VR conceptual. Componenta de mediator este inclus pentru a coordona comunicațiile între celelalte patru componente ale unui obiect. Aceste cinci componente servesc ca constructele cheie ale modelului nostru de proiectare. Are la baza un sistem MVC(Model View Controller)
Fig. 3.1.1.1 – Componentele sistemului conceptual.
Componenta de grafică este pentru specificarea reprezentări grafice ale obiectelor interfața. Acesta acoperă specificațiile tuturor modelelor grafice care sunt necesare generarea tuturor scenelor, animațiilor și a obiectelor grafice.
Componenta de comportament este pentru specificarea diferitelor tipuri de comportamente obiect. În scopul de a ajuta proiectanții să înțeleagă și să simplifice comportamentele obiect complexe, clasificăm comportamente obiect în doua grupe: comportamente fizice și comportamente magice. Comportamentul fizic se referă la acele schimbări la starea unui obiect care sunt observabile în lumea reală. Comportamentul magic se referă la acele schimbări în starea unui obiect, care sunt rar văzute, sau care nu se văd deloc în lumea reală.
Componenta de interacțiune este utilizată pentru a specifica de unde provin intrările sistemului VR și modul în care se schimbă comportamentele obiect.
Componenta de mediator este pentru specificarea mecanismelor de control și de coordonare pentru comunicarea între celelalte componente ale obiectului. Obiectivele sunt de a evita conflictele în comportamente obiect, și pentru a permite cuplarea slabă (loose coupling) între
componente.
LIMITĂRI
Limitările pot apărea doar în cazul unui sistem rău întreținut și fără decuplarea propusă de acest model.
DEZVOLTARĂRI ULTERIOARE
Modelul poate fi util și în etapele de implementare și de întreținere a ciclului de viață al unei interfețe VR deoarece izolează detalii ale componentelor, și face modificări într-un singur element transparent pentru alte componente. Se poate decide o implementare asupra unui framework existent de lucru cu componente grafice, precum Unity 3D sau Unreal Engine
3.1.2 Navigation and interaction in a real-scale digital mock-up using natural language and user gesture
IDEEA PRINCIPALĂ
Acest studiu încearcă să demonstreze un nou sistem 3D la scală reală și de a însuma câteva din rezultatele legate de navigația multi-modală și interfețe de interacțiune într-un sistem virtual. Se are ca scop construirea unei săli, ce presupune imersiunea într-un spațiul virtual (VR), dezvoltarea unui set de instrumente software și interfețe de navigare / interacțiune. Aici vor fi introduse două seturi de interfețe: 1) dispozitive de interacțiune fizică, 2) limbaj natural(recunoaștere vocală) și procesarea gesturile fizice ale utilizatorilor. Domeniul construcțiilor este în prezent în curs de multe schimbări de mediu(reglementări noi), dar și industriale(procese mai bune). Aceste schimbări înseamnă trecerea de la soluțiile arhitecturale 2D la soluții CAD(Proiectarea asistată de calculator) 3D. În încercarea de a evita problemele în procesul de construcție(materiale, structura, rezistență etc), și de a reduce costurile de construcție și mentenanță, introducerea de modele 3D în procesul acesta l-a ajutat prin testarea în mod virtual a construcției, reducerea costurilor prin construirea unei machete reale, reducerea de materiale de construcție. În acest proces revine construirea acestei săli VR, care să ajute în procesul de construcție și proiectare al clădirilor. Se caută o abordare asupra subiectului care să fie cât mai confortabila pentru utilizator pentru a elimina disconfortul generat de diverse aspecte ale imersiuni într-un spațiu virtual.
REZULTATE
Soluția implementată a fost instalată într-un muzeu de știință și tehnologie de Paris. Navigația în VR a impus o problemă, deoarece multe soluții reprezentau o problemă din punct de vedere fizic, introducând o multitudine de dispozitive hardware. De aceea s-au ales următoarele metode de interacțiune în VR: (1) recunoaștere vocală pentru interacționare cu mediul înconjurător, NLI(natural language interface). (2) Două sisteme de navigație bazate pe gesturile utilizatorilor, NNI(natural navigation interface), DBNI(device-based navigation interface). Aceste sisteme au fost testate și s-au folosit pentru navigare un XBOX Kinect pentru NNI, iar pentru DBNI s-a folosit un joystick numit Flystick, care avea pe acesta diferite butoane pentru interacțiune(rotire, deplasare etc).
Sistemul NNI bazat de XBOX Kinect se baza pe faptul că utilizatorul stătea pe loc. Mișcarea înainte se făcea folosind un gest de mers pe jos (a), rotația invers acelor de ceasornic prin rotirea mâini(b).
Mișcarea se realiza cu viteza de 2 m/s, iar rotirea cu 10 grade/s
Fig. 3.1.2.1 Sistemul NNI
Sistemul DBNI folosea un sistem similar cu ce al unui joystick, acesta era folosit pentru rotație și translație, daca joystick-ul este împins în fata scena va fi translatată înapoi, etc.
Recunoașterea vocala a fost implementată folosind Microsoft Speech SDK, aplicația desolvatată procesează un semnal prin extragerea anumitor valori din domeniul frecventa și timp și echivalează cel mai apropiat cuvânt din dicționar. Fiecărui cuvânt ii este asignat un cod unic care l-a recunoaștere executa o funcție în aplicație. De exemplu ”Start” va da comanda ca muzica sa pornească. Se introduce conceptul de Speak-to-VR ca și mod de interacțiune.
Pentru a evalua diferențele dintre sistemele de navigație: DBNI și NNI, au fost selectate 17 persoane sănătoase care au navigat în line dreapta în timp ce au fost expuse la un stimul, un model dungat, alb și negru, pentru a putea investiga efectul ambelor tipuri de navigația. Iar ca model de navigație a fost ales un interior al unei clădiri. Calea care a trebuit parcursa a fost la un metru de peretele virtual și a fost marcata de set de bile galbene.
Rezultatele testele au indicat o diferența majora intre NNI și DBNI, au arătat faptul ca sistemul bazat pe Kinect are un impact mai mic asupra stări de greața, dezorientare și un efect redus asupra mișcărilor oculomotori. Aceste se datorează faptului ca folosește mai multe informații senzoriale pentru a genera mișcări, ca urmare este mai coerent și creează mai puține conflicte senzoriale.
Fig. 3.1.2.2 Discomfort
S-a arătat impactul asupra ușurinței navigării și interacțiunii într-un spațiu VR, dar și disconfortul creat.
LIMITĂRI
Cu toate ca soluțiile propuse sunt relativ ușor de implementat și de folosit, acestea nu oferă posibilitatea de interacțiune cu adevărat similare unei experiențe reale la nivel de navigare dar și la nivel de interacțiune cu mediul. O alta limitare este spațiul în care introdus acest proiect.
DEZVOLTARĂRI ULTERIOARE
Activitățile viitoare numără efectul percepției scalei asupra performanței utilizatorului în timpul unei sarcini de navigare, care este o altă problemă mare.
3.1.3 Investigating the Main Characteristics of 3D Real Time Tele-Immersive Environments through the Example of a Computer Augmented Golf Platform
IDEEA PRINCIPALĂ
Se propune să identifice și să definească caracteristicile 3D ale unui mediu Tele-Imersiv în timp real (RT-TIE), care sunt esențiale pentru proiectul de cercetare european 3D-LIVE. RT-TIE permite existența în "spațiu de amurg", care este un spațiu în cazul în care utilizatorii pot fi fizic și virtual prezenți. Această lucrare se concentrează pe conceptul de "Realitatea mixtă" (MR), acest lucru implică atât realitate virtuală (VR), realitate augmentată (AR), dar și virtualitate augmentată(AV). Se poate deduce ca mediul MR este o necesitate pentru a susține interacțiunea intre utilizatori. Acest proiect investighează și dezvoltă o platformă Tele-Imersiv în timp real, care este co-creat cu utilizatorii și evaluate prin evaluarea calității serviciului (QoS), dar și a calității experienței (QoE)
REZULTATE
O platformă MR este formată din tehnologii capabile să aducă obiecte virtuale în realitate și obiecte reale în virtualitate. O aplicație VR este o simulare pe calculator a mediilor reale sau imaginare, care este interactivă, captivantă etc. Pentru a realiza acest lucru, se combina dispozitive hardware și un spațiu
virtual, pentru a realiza o simulare cu adevărat imersivă este nevoie de o multitudine de aspecte precum un avatar 3D, feedback vizual, auditiv etc. Un sistem MR trebuie sa fie în timp real și tele-imersiv, iar o interacțiune în timp real se obține doar când utilizatorul nu percepe nici un fel de latență între acțiunea sa în mediul virtual și răspunsul senzorial.
Fig. 3.1.3.1 Sistem tipic de VR
Acest lucru este greu de atins, iar aplicația trebuie sa evite perturbările pe cat mai mult posibil. Pentru a oferi o experiență cat mai bogată utilizatorului sunt anumite caracteristici care au un impact major, acest sunt: mediul virtual, dispozitivele de input, vizualizarea mediului(dispozitivul CAVE, Head Mounted Display), captura corpului, reconstrucția corpului 3D, interacțiune vocală etc. Se pune un mare accent pe experiența utilizatorului poate fi văzută ca o consecință a mai multor interacțiuni între un utilizator și un produs într-un anumit context, care apare după efectuarea unei evaluări. Aceasta depinde de diferite aspecte precum: senzoriale, perceptuale, cognitive, emoționale, sociale, tehnologice. Realismul mediului 3D și interacțiunile disponibile sunt posibili parametri care au un impact profund asupra experienței de utilizare a lumii virtuale. Cu toate acestea, factorii sociali nu ar trebui să fie ignorați, deoarece acestea au, de asemenea, un impact asupra experienței utilizatorului. În cazul în care un sportiv ar trebui să împartă experiența sa cu altcineva, este foarte important ca el să se simtă fizic prezența acestuia.
Un impact major o au: mediul virtual, dispozitivele de input, dispozitivele de output, de afișare a informațiilor către utilizator.
LIMITĂRI
Una dintre principalele probleme cu utilizarea tehnologiilor VR rămân costurile asociate. Utilizarea VR înseamnă nu doar utilizarea dispozitive costisitoare, dar, și software, mentenanță, personal antrenat. Chiar dacă software-ul este dezvoltat în întregime pe tehnologii open-source, hardware-ul este încă costisitoar. În cele mai multe din cazuri, investiția financiară face parte dintr-o strategie globală pentru a dezvolta o platforma VR.
DEZVOLTARĂRI ULTERIOARE
–
3.1.4 Design and Evaluation of Virtual Reality–Based Therapy Games with Dual Focus on Therapeutic Relevance and User Experience for Children with Cerebral Palsy
IDEEA PRINCIPALĂ
Terapie bazată pe realitate virtuală pentru reabilitare motorie a copiilor cu paralizie cerebrală (PC) este în creștere în prevalentă. Scopul acestui studiu este de a proiecta și de a evalua două jocuri de terapie VR bazate pentru reabilitare membrelor superioare și inferioare a copiilor și de a evalua eficacitatea acestora cu accent pe dublă relevanță terapeutică și experiența utilizatorului
REZULTATE
”Interactive computer play”(ICP) este un subset al terapiei bazată pe VR în care utilizatorii pot interacționa cu obiecte virtuale într-un mediu simulat și vor primi un feedback în timp real cu privire la acțiunile lor. Se descrie design-ul și evaluarea a doua jocuri video care au scopul sa amestece relevanța terapeutica dar și experiența de joc pentru reabilitarea membrelor inferioare și superioare a celor afectați. Se consideră două grupuri distincte, copii cu paralizie cerebrala și terapeuți. Este de notat că se țintește asupra utilizării acestor metode, nu asupra eficienței lor. Copiii au fost toți într-o vârstă de dezvoltare de 8-12 ani. O parte din copii au luat parte la design ca și testeri. Terapeuți au participat la o sesiune de orientare scurtă pentru a se familiariza cu sistemul. Fiecare copil a fost introdus în sistemul de terapie și i-a cerut să se joace fiecare dintre jocuri timp de 20 de minute cu supravegherea și conducerea terapeutului pentru a asigura jocul în condiții de siguranță în abilitățile copilului. Fiecare copil a fost instruit ca el sau ea s-ar putea opri în orice moment, dacă are disconfort sau oboseală excesivă. Pentru validarea răspunsurilor s-au folosit o mixtură de chestionare. Chestionare terapeut. Terapeuți au fost rugați să evalueze eficacitatea jocurilor pe o scală Likert de 7 puncte. Chestionare pentru copii, participanții au fost rugați să completeze un sondaj personalizat după ce a jucat fiecare joc, în plus, față de un chestionar standardizat. Au fost dezvoltate două jocuri: ('' Dodgewall '') sa axat pe mișcările membrelor inferioare, în timp ce al doilea ('' Reach + '') pe mișcările membrelor superioare, acesta au fost dezvoltate folosind C# și XNA, folosind dispozitivul Kinect. Dodgewall – este un joc în care jucătorii trebuie să se contorsioneze pentru a se potrivi prin decupaje de polistiren. Reach+ – este un joc ce presupune în a avea grija de un animal pentru ai creste nivelul de fericire. Șase terapeuți au dat feedback asupra efectul terapeutic al jocurilor, utilizarea acestora, dar și utilizarea sistemului în general, iar copii au dat feedback în funcție de dificulatea jocului, feedback în timp ce se jucau, etc.
'' Reach + '' și '' Dodgewall '' livrat cu succes o experiență plăcută și terapeutice relevante evaluată de către terapeuți și copii cu PC. Testarea de utilizabilitate a identificat în mod eficient mai multe probleme de proiectare care ar trebui abordate pentru a optimiza experiența utilizatorului și relevanța terapeutică.
LIMITĂRI
Provocări în urmărirea corectă mișcările copiilor au fost întâlnite atunci când a fost nevoie de dispozitive de asistenta sau sprijinul terapeutului. Terapeuți remarcat faptul că nu a fost posibil ca un copil să ''trișeze'' în timp ce joacă ''Reach +”, nu au fost implementate mișcări pentru simula mișcările toate cotului. Copii au indicat că mișcările ce trebuiau să le facă pentru a juca jocul au fost obositoare.
DEZVOLTARĂRI ULTERIOARE
Captare mișcării îmbunătățită, în special pentru persoanele cu probleme de mobilitate. Trebuie asigurate îndeplinirea obiectivelor terapeutice. Feedback și setări inteligente și adaptabile.
3.1.5 Hybrid design tools în a social virtual reality using networked oculus rift: a feasibility study în remote real-time interaction
IDEEA PRINCIPALĂ
” Hybrid Design Tool Environments (HDTE)” permit designerilor și inginerilor să folosească instrumente reale tangibile, cât și obiecte fizice pentru a face și de a crea reprezentări și prezentări virtuale în timp real. HDTE este echipat cu un ”Loosely Fitted Design Synthesizer (NXt-LFDS)” pentru a sprijini acesta interacțiune multi-utilizator și procesul de prelucrare. Studiul actual explorează, pentru prima dată, fezabilitatea utilizării unui NXT-LFDS într-un mediu de multi-participant de realitate virtuală (VRE). Folosind ochelarii Oculus Rift și calculatoare la fiecare locație, care e legată prin intermediul Skype, membrii echipei localizate fizic în mai multe țări au avut iluzia de a fi localizați într-o singură lume virtuală, unde au folosit diferite tehnologi pentru a crea o poșeta pentru femei, de aici posibilitatea de a printa aceasta poșeta oriunde din acest spațiu virtual folosind o imprimantă 3D.
REZULTATE
Sistemul prezentat permite mai multor utilizatori să vizualizeze, să interacționeze, să comunice, și să colaboreze la o sarcina de proiectare, în realitate mixtă (MR). Utilizatorii au diferite feed-uri în rețea (de exemplu, audio, display-uri vizuale 2-D, seturi de căști 3D VR), care le permite să aleagă și să decidă în timp real, ceea ce li se potrivește cel mai bine în ceea ce privește vizualizare, prezentare a lumii virtuale.
Sistemul folosește Oculus Rift Head mounted display” (HMD)”, în combinație cu diverse surse audio și video (Skype) pentru a stabili legătura în timp real în rețea. HMD permite imersiune completă, aceasta permite vizualizarea utilizatorului și navigarea în mediu virtual. Oculus Rift are o rezoluție de 960×1080 de pixeli per ochi, iar câmpul de vedere este de 100 de grade
Schema sistemului este prezentată în schema alăturată
Fig. 3.1.4.1 Sistemul NXt.
În ansamblul sistemul este format din Oculus Rift pentru vizualizarea mediului 3D, sistemul hibrid de design NXt pentru procesul de design iterativ, și Skype pentru comunicare.
Procesul de design a fost transmis tot cu ajutorul Skype.
Interacțiunea dintre cei doi utilizatori este fluidă în sincronizare, clară în comunicare, și a arătat că coordonarea, cooperarea și colaborarea la distanță este posibilă. Utilizatori noi s-au adaptat repede sistemului, dar rareori, utilizatori au fost nevoiți să modifice poziția HDM-ului pentru a se sincroniza poziția exactă a mâinilor
Software-ul NXt-LFDS înregistrează și salvează toate interacțiunile virtuale. Rezultatele arată promițător în utilizarea modalităților de interacțiune la distanță, Cu toate acestea, calitatea generală este tangibilă, iar rezultatele pot fi dezbătute. Se simte necesitatea pentru mai multă cercetare și testare.
LIMITĂRI
Un dezavantaj este faptul că proiectantul poate simți, dar nu se poate vedea în mod direct obiectele din lumea reală, cu excepția prin intermediul camerei.
DEZVOLTARĂRI ULTERIOARE
Designerul a fost capabil să vadă mâinile și obiectele reale pentru a manipula în NXT, printr-un flux video de la un aparat de îndreptat către biroul ei. De exemplu, prin intermediul Magic Leap sau prin intermediul unei camere montate pe Oculus ar putea să funcționeze mai bine.
3.1.6 New Directions in 3D User Interfaces
IDEEA PRINCIPALĂ
Odată cu apariția mediilor virtuale, realitate augmentată, sisteme de afișare cu ecran mare, și (3D), aplicații tridimensionale de tot felul pentru desktop, o nouă tendință în interacțiunea om-calculator a început să apară. Acest domeniu de cercetare treptat a ajuns să fie cunoscut sub numele 3D User Interfaces, sau mai putem defini o interfață de utilizator 3D ca fiind "un UI care implică interacțiunea 3D". Putem considera următoarele câmpuri ca și contexte: medii desktop, medii virtuale, realitate augmentata, display-uri cu ecran mare, etc.
REZULTATE
Realitatea virtuală (VR, numite și medii virtuale) este o tehnologie importantă care invită interacțiunea 3D din cauza naturii sale spațiale. Pe măsură ce tehnologiile VR s-au îmbunătățit, mai multe încercări au fost făcute pentru a dezvolta aplicații reale ale tehnologiilor
Inițial, multe dintre interfețele la aplicațiile VR au fost proiectate pentru a fi "naturale" – pentru a vizualiza o cameră virtuală utilizatorul se plimba în jurul ei, pentru a acoperi un avion virtual utilizatorul a folosit controale reale de avion. Există două probleme majore cu un cadru natural 3D UI. În primul rând, din cauza limitărilor tehnologice, interacțiunea 3D nu poate fi reprodusă complet. De exemplu, un avion nu se simte destul de bine, din cauza nepotriviri între stimulii vizuali și vestibulari. În al doilea rând, deși o interfață naturalistă poate fi adecvată sau chiar necesară pentru unele aplicații, poate fi extrem de ineficientă.
Se propun patru direcții de cercetare: Creșterea specificitate în design 3D UI. Adăugare, modificare sau ajustarea tehnicilor 3D pentru a îmbunătății interacțiunea. Abordarea aspectelor legate de implementare pentru interfețe 3D, Aplicarea interfețelor 3D la tehnologiile emergente. Majoritatea interacțiunilor 3D se pot exemplifica în 4 feluri diferite: generalitate de aplicație și domeniu, generalitate de task, generalitate de dispozitiv și generalitate de utilizator
Există mai mulți factori care fac ca punerea în aplicare UI 3D problematică, inclusiv următoarele:
• trebuie să se ocupe de o cantitate mare și variată de date de intrare.
• Nu există nici o intrare sau de afișare standard de dispozitive UI.
• Unele dispozitive trebuie să fie prelucrate sau recunoscute înainte de a fi utile.
• necesită adesea intrări multimodale care produc ieșiri multimodale.
• răspunsuri în timp real sunt de obicei necesare.
• interacțiunile pot fi continue, în paralel, sau se suprapun.
Se propun ca teme de cercetare legate: de specificitatea (luarea în considerare explicită a domeniilor specifice, sarcini și dispozitive), arome (adăugând complexitate, caracteristici sau trucuri noi tehnicilor existente), implementare (care să permită dezvoltarea rapidă și robustă a interfețelor 3D) și tehnologii emergente (aplicarea sau redesignul interfețelor 3D existente pentru noile contexte tehnologice)
LIMITĂRI
Nu au fost acoperite absolut toate drumurile pe care interfețele 3D o iau în zilele de azi.
DEZVOLTARĂRI ULTERIOARE
De exemplu tema noua emergentă, cazul în care utilizatorii au experiență complet corporală în cea ce privește interacțiune 3D.
3.1.7 Plasticity for 3D User Interfaces: New Models for Devices and Interaction Techniques
IDEEA PRINCIPALĂ
Această lucrare introduce un nou model de dispozitiv și o nouă tehnică de interacțiune pentru a rezolva problemele de plasticitate pentru Realitatea Virtual (VR) și Realitatea Augmentată (AR). Scopul este de a oferi dezvoltatorilor soluții pentru a utiliza și de a crea o tehnici de interacțiune care se vor potrivi la sarcinile necesare ale unei aplicații 3D
și pentru dispozitive de intrare și de ieșire disponibile. Modelul de dispozitiv introduce o nouă descriere a dispozitivelor de intrare și ieșire. Abordarea aceasta încearcă sa faciliteze portabilitatea acestor tehnici de interacțiune asupra diferitor sisteme de operare dar și librăriilor 3D.În ultimi ani, interesul pentru interfețe 3D a crescut. De exemplu, interfețele 3D includ medii virtuale, jocuri serioase sau aplicații CAD. Acestea diferă de interfețele grafice tradiționale (GUI), prin includerea unei a treia dimensiuni pentru prezentarea conținutului și prin utilizarea unei game mai largi de dispozitive de interacțiune decât setul tradițional: mouse-ul, tastatura și touch-screen. De exemplu printre aceste noi dispozitive se pot găsii în Microsoft Kinect, Leap motion sau Oculus Rift, fiecare folosind un SDK propriu lucru care determină dezvoltatorii să-și reimplementeze parți din aplicație
REZULTATE
Pentru a manipula proprietatea de plasticitate pentru tehnicile de interacțiune, modelele noastre trebuie să ia în considerare un set de cerințe 3D: Asigură portabilitatea codului, Independența de dispozitivele utilizate, Adaptare la utilizator și sistem, Tehnicile de interacțiune trebuie să fie configurabile la runtime.
Modelul dispozitivului își propune să rezolve diferite probleme de input dar și de output, adică independența de dispozitivele utilizate cu o descrierea a capabilităților dispozitivelor, limitările și reprezentarea lor în lumea reală. Modelul trebuie să fie extensibil pentru că noile dispozitive vor apărea în continuare și s-ar putea includă noi proprietăți care nu au fost încă incluse în modelul actual. Modelul este descris cu diagrame de clase UML, deci este editat de orice dezvoltator care dorește să adauge noi proprietăți sau o nouă intrare sau de ieșire. În timpul rulării proprietățile a unui exemplu de dispozitiv sunt furnizate cu o descriere fișier XML editat cu un instrument grafic care să ia în considerare diagrama UML. Se oferă o descriere atât pentru sistemul de input cat și cel de output.
S-a stabilit o listă de 3 categorii pentru a aduna toate inputurile posibile: valori reale, valori discrete, stream-uri generice(vectori de elemente). în același timp s-au stabilit categorii și pentru cele de output: vizual, sunet, tactile, etc
Din punct de vedere al tehnicilor de interacțiune se folosește un model PAC(Presentation-Abstraction-Control) care este îmbunătățit apoi cu un concept ARCH. ARCH presupune adăugarea de componente adaptor dintre diferitele fațade ale modelelor PAC. De exemplu componenta de randare 3D.
Fig. 3.1.7.1 Modelul propus
Prin utilizarea acestei abordări PAC / ARCH ne asigura o bună decuplare între tehnica de interacțiune și implementarea ei concretă, independența tehnicii asupra librăria 3D și sistemul de operare, dispozitivele utilizate și asupra modului de interacțiune.
LIMITĂRI
Chiar dacă se dorește implementarea unui sistem plastic care sa ofere interacțiune tuturor dispozitivelor existente și al tuturor componentelor software, toate aceste depind foarte mult de dorința dezvoltatorilor de adopție a acestor modele și de implementarea a acestora în produsele lor.
DEZVOLTARĂRI ULTERIOARE
Activitățile viitoare constă în stabilirea și adaptarea motorului care va crea tehnicile de interacțiune în timpul rulării în funcție în contextul actual, în scopul de a oferi întotdeauna cea mai potrivită aplicație. Modelele trebuie să fie, de asemenea, extinse în ordine să ia în considerare diferitele niveluri de adaptare, cum ar fi utilizator
și adaptarea conținutului. Perspectiva este de a crea un instrument pentru promotori și designeri pentru crearea de interfețelor de utilizator 3D plastice. Un astfel de instrument este în curs de dezvoltare cu modelele noastre în Mono C # și interfațat cu motorul Unity3D
3.1.8 Assessing Empathy through mixed-reality
IDEEA PRINCIPALĂ
Această cercetare urmărește să producă un nou mod de a evalua empatia în indivizi. Actualele instrumente de diagnosticare utilizate pe scară largă sunt chestionare. Aceste chestionare sunt ușor de a trece în cazul în care individul, alege la întâmplare răspunsurile pe care ar fi cel mai benefic pentru el. Mai mult, este mai greu de demonstrat empatia într-un cadru clinic, deoarece aceasta nu este într-un context natural, o persoană poate inhiba în mod intenționat comportamentul lor să pară mai normal. Găsirea unor metode care ar evalua în timpul interacțiunii cu un calculator ar putea furniza o precizie mai mare diagnostic. Empatia influențează omul în interacțiunile zilnice. Deficite severe în empatie pot fi văzute ca tulburări de personalitate, psihopatie și autism. Simon Baron Cohen a creat o curbă de empatie cu scoruri variind de la zero până la șase. Această cercetare caută să folosească un mediu de realitate mixt pentru a clasifica utilizatorii pe o curbă de empatie. Se caută și crearea unui tool dezvoltat în Unity pentru Hololens pentru a se măsura empatia persoanelor în diferite contexte.
REZULTATE
În prezent, realitatea virtuală este folosită pentru reabilitarea prădătorilor sexuali precum și psihiatrie medico-legală. Aceste utilizări au avut efecte pozitive, dar cu toata ca VR este folositor este, totuși, virtual. Cu realitatea mixtă persoanele cu empatia scăzută ar avea libertatea de a manipula mediul înconjurător după plac. Acest lucru permite o mai bună diferențiere a indivizilor că fiecare persoană va manipula mediile lor într-un mod unic al lor înșiși.
În prezent, diagnosticul oficial se realizează prin chestionare, care sunt supuse exploatării.
Fig. 3.1.8.1. Schema sistemului
Psihologul va încărca mediul selectat. Vor exista teste orientate către copii, adolescenți, adulți tineri și adulți. 35+ Aceste teste vor prezenta ca scenarii diferite, copiii vor avea posibilitatea de se juca cu ceilalți, cu animale, astfel încât să se manifeste trăsături neemoționale, etc. La sfârșitul interacțiunii medicul va primi un punctaj de empatie al individului.
Utilizatorul va utiliza Hololens care o să fie scufundat într-o realitate mixtă. Hololens v-a afișa imaginile holografice care permit utilizatorului să interacționeze și să le manipuleze. Se vor utiliza vorbire, gest și recunoaștere a ochilor din capacitățile Hololens. Prin machine learning vom analiza o combinație de caracteristici care sugerează niveluri mai scăzute de empatie și vice-versa.
Utilizatorul nu va avea acces la scorul lui. Scopul interacțiunii este ca utilizatorul să se simtă cât mai natural posibil. În cazul în care utilizatorul are senzația că sunt supravegheați, ei își pot altera comportamentul.
Etică
Din cauza stigmei de a fi etichetat un psihopat, toți indivizii vor rămâne anonimi. Indivizii vor fi reprezentate prin numere fără date de contact, dacă nu se specifică altfel.
LIMITĂRI
Cu toate că este vorba de psihologia umană, acest tărâm este încă puțin cunoscut și indiferent de orice teste am crea, este aproape imposibil să determinăm nivelul de empatie al anumitor persoane, care se comportă ca persoane model ale societății, dar realitatea fiind alta.
DEZVOLTARĂRI ULTERIOARE
–
3.1.9 TurkDeck: Physical Virtual Reality Based on People
IDEEA PRINCIPALĂ
TurkDeck este un sistem imersiv de realitate virtuală, care reproduce nu numai ceea ce utilizatorii văd și aud, dar, de asemenea, ce se simt utilizatorii. TurkDeck produce senzația haptică folosind elemente de recuzită, adică, atunci când utilizatorii atinge sau manipulează un obiect în lumea virtuală, ei simultan, de asemenea, ating un obiect corespondent în lumea fizică. Spre deosebire de munca anterioară privind realitatea virtuală bazată pe obiecte, TurkDeck permite crearea de lumi virtuale de spațiu infinit și folosind un set finit de recuzită fizice. Ideea cheie din spatele TurkDeck este că ea creează aceste reprezentări fizice din zbor prin a face un grup de lucrători umani prezenți și funcționează numai atunci când utilizatorul poate ajunge de fapt, la recuzita. TurkDeck gestionează aceste așa-numitele "elemente de acționare umane", prin afișarea instrucțiunilor vizuale care spune ce elemente urmează ai fi furnizate. Încă de la concepție sistemele virtuale montate pe cap au fost în principal create în jurul simțurilor utilizatorului, iar pentru a simula realitatea fizică e nevoie de simțul haptic. Folosind o simplă cameră relativ mică ești ineficient în cazul sistemului prezentat și limitează mărimea lumi virtuale care poate fi randată
Fig. 3.1.9.1. TurkDeck
REZULTATE
Fig. 3.1.9.2. Vedere VR, Turkdeck
TurkDeck este un sistem fizic de realitate virtuală care reproduce nu numai ceea ce utilizatorii vedea sau auzi, dar, de asemenea, ce se simt utilizatorii. Ideea ei cheie este de a utiliza "servomotoare umane" să prezinte și să funcționeze numai atunci când și în cazul în care utilizatorul poate ajunge de fapt la recuzită.
Obiectivul din spatele propunerii TurkDeck lui este de a obține o lume virtual-reală cu cel mai mic număr posibil de elemente de recuzită generice, care face ca sistemul de mic și portabil. Fiecare element de acționare uman prezintă doar două elemente de recuzită principale, adică o placă și un băț. Cu ajutorul servomotoarelor umane, TurkDeck în mod constant re-utilizează aceste elemente de recuzită în locații diferite, orientări și combinații, aceste câteva elemente se combină într-o lume fizică completă.
Actuatori umani efectuează acțiunile lor sub conducerea TurkDeck.TurkDeck dă comenzi la servomotoarele umane prin proiectarea instrucțiuni vizuale de pe teren. Utilizarea unui sistem de proiecție oferă tutor actuatorilor o înțelegere comuna a sistemului.
Sunt folosite diferite elemente fizice pentru a simula de exemplu un perete sau un mâner. Sistemul de display este un proiector montat la 8 deasupra actuatorilor și este folosit o proiecție laser pentru a funcționa în lumina zilei, independent de zona de interacțiune. Acesta v-a proiecta pe sol instrucțiunile pentru fiecare actuator pentru a știi fiecare unde să pună piesele. Acesta dispune și de un sistem de input. Ca recuzită este folosit și corpul actuatorilor.
În timp ce toate mecanismele prezentate, se combină cu conceptul de recuzită fizice dar și cu sistemul vizual oferit de display-ul headmounted, realitatea fizică creată de TurkDeck poate fi utilizat de sine stătătoare. Pentru a ilustra acest lucru am creat o cameră în care utilizatorii sunt forțați să oprească puterea pentru a trece de o barieră laser, care, de asemenea, stinge luminile din cameră, lăsând utilizatorul în întuneric complet.
In imagine este descrisă schema de asamblu a sistemului
Fig 3.1.9.3 Schema sistemului.
LIMITĂRI
Se poate argumenta că, întrebarea cheie rămasă este: "nu ar trebui să fie automatizate toate astea în viitor; nu ar trebui să fie efectuate toate acționarea de mașini?”. Este susținut faptul că acest proces este o experiență captivantă din punct de vedere social. Utilizatorii pot repeta o experiență o dată sau de două ori, dar cu siguranță nu de sute de ori. Având în vedere că motivul pentru automatizare nu se aplică unei experiențe captivante.
DEZVOLTARĂRI ULTERIOARE
Se propune o utilizare pentru facilități militare. Cazul utilizări militare se caracterizează
prin disponibilitatea unor spatii mari, bugete mari, precum și disponibilitatea de mii de utilizatori care pot fi aduși la instalare pentru a experimenta exact aceeași experiență.
3.1.10 Qualitative analysis of user experience în a 3D virtual environment
IDEE PRINCIPALĂ
Această lucrare descrie elementele experienței de utilizare a unui mediu imersiv 3D. Se detaliaza acele elemente care sunt observate care îmbunătățesc dar și deteriorează experiența utilizatorului, și să ofere îndrumare de proiectare pentru cercetători și designeri. Sau organizat 117 interviuri și apoi sa analizat data pentru a identifica principalele elemente care afectează experiența utilizator
REZULTATE
Reprezentarea 3D a colecțiilor de documente și alte manifestări fizice ale informațiilor abstracte au fost adesea o provocare pentru a naviga și de a gestiona pe ecrane 2D datorită interacțiunii incomode și a dezorientării spațiale. În cazul în care suntem capabili de a atenua aceste provocări de navigație și dezorientare, spațiile virtuale au potențialul să ne sprijine în mod eficient sarcinile de lucru cu informații prin intermediul de display-uri spațiale ale informație
Se propune un mediu imersiv de realitate virtuală pentru a depăși dificultățile de navigare și orientare în spații de informații complexe. În acest tip de mediu utilizatorul este complet cufundat în spațiu, care le permite să navigheze cu ușurință și de a schimba perspectiva, prin mutarea în jurul spațiului. Sistemele de realitate virtuală oferă, de asemenea, posibilitatea pentru mai mulți utilizatori, dispersati geografic să fie prezenti în același spațiu care să permită în același timp o colaborare la distanță. La crearea unui mediu virtual, este important să se acorde atenție experiențelor utilizatorilor cu sistemul. Experiența de utilizator (UX), este un fenomen unic. Ea are mai multe sensuri, dintre care niciuna nu este în mod obișnuit acceptat
Cercetarea a fost realizată în trei etape. Situația și sarcinile au fost foarte similare în toate cele trei faze, cu variații minore în cadrul procedurii
Participanții au fost însărcinați cu planificarea unui program de două zile pentru un grup student străin a petrece un week-end la Budapesta, Ungaria. Sarcina și mediul au fost analog unei situații din viața reală, în care călătorii trebuie să planifice o excursie de la o agenție de turism. In mediul virtual sau oferit postere, o harta a orașului, un calendar, etc.
Experiența participanților la colaborarea au fost întrebați într-un interviu. Cei mai mulți dintre participanți au simțit (în 109 din 117 de cazuri), că au putut să colaboreze cu succes cu partenerii lor, ceea ce indică faptul că acestea ar putea rezolva cu ușurință sarcina. Toți dintre participanți ar putea rezolva sarcina, prin urmare, fiecare colaborare a avut succes, pentru că nu a existat nici o limită de timp, iar experimentul sa încheiat atunci când a fost planificat programul.
Sa folosit un sistem de tip CAVE și unul de tip Desktop.
În timp ce mana și capul avatarul au ajutat la comunicare, în multe cazuri, participanții nu au știut în multe din cazuri unde partenerul lor unde se uita și acest lucru a creat confuzie
LIMITĂRI
Experiența de utilizare a spațiilor imersive 3D este ușor diferită de cea a aplicațiilor de desktop. Atât hardware-ul și reprezentarea avatarelor prezintă caracteristici foarte importante ale acestei interacțiuni, acest lucru producând o limitare la nivelul de comunicare. Folosirea sistemelor desktop înseamnă o piedica în astfel de sisteme,
DEZVOLTARĂRI ULTERIOARE
Se poate îmbunătăți nivelul de comunicare având la dispoziție avatare animate sau să aibă posibilitatea de exprimare emotivă dar și de exprimare a diferitelor gesturi.
Proiectarea sistemului
Analiza și specificarea cerințelor
Aceasta aplicație dezvolta un sistem de interacțiune în realitatea virtuala orientat pe interacțiunea și experiența utilizatorului pentru ca aceasta să fie cat mai naturala. Interacțiunea acestuia prin diverse metode operare(meniuri, manipulare obiecte, etc) a aplicației. Aplicația oferă posibilitatea ca un muncitor de pe o linie de asamblare sa învețe sa construiască un ansamblu din diferite piese, prin folosirea de diferite unelte care iau fost puse la dispoziție. Deoarece este necesar ca acest proces sa se bazeze pe metode moderne de instruire s-a ales realitatea virtuală, care este o alegere buna pentru acest lucru. Este esențial ca aplicația să se modeleze astfel încât interacțiunea om-simularea sa fie cat mai fluida fără sa existe discrepanțe foarte mari în cea ce vede în lumea virtuala fata de cea reala.
Acest sistem permite crearea unui ansamblu predefinit cum ar fi crearea unui obiect cu o anumita întrebuințare(un piston în cazul de fața) sau a unei plăcute electronice și observarea tuturor pașilor în crearea acesteia, prin ghidarea utilizatorului spre produsul finit mai întâi prin realitatea virtuala. Apoi să fie permisa interacțiunea pe linia de asamblare fără a avea nevoie de suport foarte mare în realizarea task-ului de asamblare a acestui obiect.
Aplicația trebuie să acopere câteva principi de funcționare pentru a putea fi folosita de o persoana care nu a experimentat realitatea virtuala, dar sa fie o interacțiune naturala și pentru o persoana care a mai interacționat cu astfel de simulări.
Aplicația dispune de câteva metode de interacțiune cu lumea din jur prin intermundiul dispozitivelor de intrare, ”controller-ul”, care permite folosirea diverselor obiecte, dar și folosirea interfețelor, care sunt similara cu un meniu asupra caroia putem acționa. De exemplu meniul de pe telefon sau meniul unui calculator.
O astfel de aplicație îi este necesar sa respecte câteva principii care ajuta la o experiența complet imersia asupra lumii virtuale:
Interfața cu utilizatorul prezinta cea mai mare problema, aceasta nu mai este un simplu meniu în spațiul 2D, se transforma într-un meniu spațial care trebuie randat pentru fiecare ochi în parte.
Aplicația trebuie sa evite proiecția ortografica a oricărui lucru pe ecranul dispozitivului, aceasta trebuie făcută spațial iar distanța poate varia pentru a fi confortabilă pentru utilizator.
Utilizatorul trebuie sa fie tot timpul în control, acestuia nu trebuie să-i fie preluat controlul asupra lumii virtuale, lucru ce ar duce la ruperea imersiunii.
Trebuie să ofere feedback către utilizator în funcție de acțiunile acestuia.
Daca se poate, trebuie oferita o metoda de interacțiune cat mai naturala, de exemplu prin eliminarea oricărui element care fizic nu ar fi posibil, cum ar fi meniuri și orice metoda de afișare a instrucțiunilor pe ecranul caștii.
Toate obiectele din realitatea virtuala trebuie să fie scalate la o mărime similara cu cea reala astfel încât utilizatorului sa-i fie greu sa distingă dintre real și virtual când va lucra cu piesa, singura diferența fiind feedback-ul tactil care nu poate fii simulata complet.
Utilizatorul trebuie sa fie ghidat în utilizarea aplicației, prin oferirea acestuia câteva instrucțiuni direct în realitatea virtuala asupra operării diverselor simulări.
Posibilitatea de a interacționa cu orice obiect destinat training-ului simulat dar și impunerea anumitor interdicții pentru a nu pierde imersiunea, precum, ridarea unor obiecte care ar fi fizic imposibil sau foarte greu sa facă de unul singur.
Să oferă un sistem extensibil și programabil pentru realizarea altor training-uri ce permit asamblarea de diverse componente.
Să permită mișcarea utilizatorului fără mari dificultăți sau alte obstacole care să împiedice o interacțiune cat mai naturala în realitatea virtuala.
Trebuie să ofere o modalitate de schimbare a diverselor scenarii de training direct din realitatea virtuala prin folosirea a diferitelor metode de input pentru a acționa diverse meniuri sau triggere care oferă acest lucru.
Deoarece acest sistem a fost dezvoltat și este bazat pe „game engine-ul” Unity care oferă o magnitudine de librarii, module, etc și are o multitudine de avantaje.
Unity este accesibil oricărui programator și este ușor de folosit, astfel încât orice programator se poate adapta modului de lucru
Se poate programa atât în limbajul C# dar și în Java script, lucru care este accesibil indiferent de aptitudini
Pe tematica de realitate virtuala Unity este cel mai capabil deoarece oferă suport „out of the box”, adică fără configurări prea multe.
Cel mai popular sistem de acest gen pentru dezvoltatorii de mici dimensiuni, oferind o versiune gratis pentru proiecte personale, chiar daca acesta vor fi vândute.
Sunt prezente totuși câteva dezavantaje din cauza faptului ca sisteme de VR sunt încă în infantilizate:
Echipamentul este relativ scump, iar omologul sau mobil bazat pe telefonul mobil(Samsung Gear VR), adică fără fir, nu este la fel de capabil și nu oferă aceiași imersiune precum cel destinat pentru calculator.
Detecția mâinilor este făcută prin controllere care „emulează” mâinile, chiar daca exista dispozitive terțe care sunt capabile de așa ceva, în momentul actual, nu sunt perfecte iar detecția este defectuoasa în anumite cazuri.
Ești constrâns de spațiul de mișcare și de acoperirea senzorilor, care oferă pentru HTC Vive un maximum de 5 m^2, dar în același timp suntem limitați și de firul care este conectat la calculator, în aceasta privința s-au făcut avansuri și au început sa apară dispozitive care sa permită conectarea wireless a caștii de realitate virtuala
Aceasta aplicație poate sa fie utilizata pentru antrenarea viitorilor angajați în vederea eficientizării procesului de pregătire a angajaților și a scurta timpului pierdut pentru acest lucru.
Deoarece aplicația este intuitivă utilizatorul învață repede sa o folosească, de acea începătorii sunt sfătuiți sa devina familiari cu sistemul de interacțiune în realitatea virtuala, doar mai apoi acesta să continue cu utilizarea aplicației.
Acest sistem poate să fie folosit atât de persoane care s-au obișnuit cu acesta, prin ridicarea gradului de dificultate, deoarece este oferit feedback asupra majoritatea mișcărilor. de exemplu, ridicarea unui obiect determina afișarea de informații despre acesta, care pot fi citite, pentru ai oferii utilizatorului o descriere despre acesta și posibilele folosiri ale obiectului.
Cerințe specifice memorării datelor
Deoarece nu avem un număr mare de date, este accesibil sa memoram datele pe disk fără a fi nevoiți să apelam la o baze de date, aici nu vom acoperii modelele, materialele, texturile și altele componente care sunt oferite de Unity.
Este necesar sa memoram următoarele date:
Informații despre obiecte
Scenele care înglobează toate obiectele și funcționalitatea simulării
Date despre preferințe: daca este activat feedback-ul oferit către utilizator
Cerințele specifice sistemului
Sistemul evidențiat trebuie sa respecte cerințele unei simulări de realitate virtuala și trebuie de asemenea sa ofere câteva funcționalități de baza.
Aplicația sa fie compatibila cu mai multe dispozitive de realitate virtuala, existente pe piața(HTC Vive și Oculus Rift)
Compatibilitate cu alte sisteme de detecție a mâinilor, de exemplu: Leap motion
Utilizatorul să aibă cat mai mult control asupra ce se întâmpla în jurul acestuia
Să fie accesibil începătorilor
Sa ofere feedback tactil cat și vizual la eventualele acțiunii îndepliniți de utilizator
Sa ofere un mod dual de informații vizibile legat de descrierea fiecărei piese atât o descriere detaliata, dar și o descriere simpla, care evidențiază mai ușor folosirea lor
Să suporte mai multe simulări
Să monitorizeze utilizatorul și greșelile pe care le-a făcut acesta
Simularea sa fie continua fără întreruperi, înafara de cele care schimba scena curenta
Lumea înconjurătoare în care se afla utilizatorul sa nu fie corespunzătoare mediului simulat păstrând aceiași tematica
3.2.2 Proiectarea memorării datelor
Deoarece datele necesare pentru rularea aplicației sunt destul de mici este ineficient sa folosim un sistem de baze de date, precum MySQL. De acea vom memora datele în fișiere de tip JSON care v-or memora următoarele date despre fiecare obiect:
Nume obiect folosit în scena
Nume real afișat în scena
Descrierea detaliata a obiectului
Scurta Descriere a obiectului
Lista cu care obiect se v-a conecta
Structura fișierelor JSON arata în felul următor:
{
"GameObjectName": "Part1",
"Name": "Stativ",
"Description": "Este folosit ca suport pentru celelalte obiecte",
"Connected": [ "Part2" ],
"ShortDescription": "Stativ"
},
Unde:
GameObjectName – este numele obiectului din scena
Name – este numele obiectului real
Description – este folosit pentru a furniza o descriere pentru obiectul în cauza
Connected – lista de obiecte care se conectează la obiectul curent
ShortDescription – o scurta descriere ce este afișată deasupra obiectului în scena.
Pe lângă acestea se pot memora prin structurile de date oferite de Unity și diverse date/preferințe, cum ar fi
Sistemul de tooltip/hint-uri daca este activ sau inactiv
Hint-urile sunt în modul avansat sau în modul simplu.
3.2.3 Arhitectura sistemului
Sistemul a fost dezvoltat ca sa permită o utilizare cat mai natural posibila, acest lucru este influențat în mare măsura de modul de lucru din Unity în special felul în care se organizează o scena și/sau elementele din ea, dar în același timp și de modul de scriptare și împachetare(„prefabs”) a obiectelor(„gameobjects”) astfel încât acestea se supun stilurilor și convențiile pentru Unity.
Fig. 3.2.3.1 Schema sistemului
In figura anterioară este prezentată arhitectura conceptuală a sistemului de interacțiune a obiectelor în realizarea training-ului. Aceasta este o imaginea întreg ansamblului. Este prezentat în ansamblu structura, comunicația, funcționalitatea fiecărei componente, dar și informațiile care sunt partajate intre aceste module
Toate aceste componente au la baza câteva librarii pe lângă game engine-ul Unity deasupra cărora sunt construite și au oferit ușurința sporita în realizarea sistemului curent de interacțiune. Acestea vor fi prezentate în mod detaliat în capitolele următoare pentru a descriere funcționalitatea fiecăreia.
In ordinea importantei:
OpenVR – librărie opensource care oferă suport larg pentru aplicațiile și dispozitivele VR
SteamVR – o librărie construita de Valve care sa ajute dezvoltatori de VR pentru crearea aplicațiilor, care are la baza OpenVR
VRTK – librărie opensource care oferă un toolset extins de interacțiuni și operații în vr, suportând atât HTC Vive cat și oculus rift
Leapmotion – modul terț de interacțiune, parte tarță software.
HoverUI – librărie opensource care oferă suport pentru diferite meniuri sau module de interactiune în realitatea virtual, oferă interacțiune pentru toate tipurile de input: controllere Vive, Rift, dar și leap motion.
PowerUI – librărie terța construita special pentru Unity care oferă posibilitatea creării de interfețe bogate vizual folosind HTML.
Sistemul consta din următoarele module principale:
Un controller de scena pentru a controla logica simulări și a diferitor comenzi date de utilizator
Un modul de care oferă posibilitatea de a afișă tooltip-uri sau informații către utilizator.
Interfețe pentru interacțiune(meniuri)
Interacțiunea cu obiectele în sine(posibilitatea de unire)
Aplicația consta în mai multe scenarii în care utilizatorul poate interacționa cu mai multe elemente. In prima scena se poate interacționa cu un meniu care permite încărcarea diverselor scene prin interacțiunea cu meniul, dar și accesul la diverse opțiuni.
Modulul de opțiuni permite utilizatorului sa schimbe anumite setări la nivel global, care vor influența scenele ce vor fi încărcate, daca folosesc aceste sisteme. Sistemul de tooltip-uri poate fi gestionat prin acest meniu, acestea pot fi închise pentru toata aplicația sau pot fi schimbate intre docuri moduri, care afișează informații mai detaliat sau vor afișa informațiile pe scurt.
In momentul dezactivări opțiunii de hint-uri, acestea nu vor mai apărea deloc pentru a ajuta utilizatorul.
Daca hint-urile sunt active și este activata opțiunea de hint-uri simple, când sunt ridicate de pe masa de lucru acestea vor avea afișat deasupra lor informații simple, constând în câteva cuvinte. Acestea vor dispărea după ce vor fi lăsate jos.
Această informație va urmării obiectul și se va deplasa odată cu acesta în spațiu când este deplasat cu ajutorul controller-ului de către utilizatori. Aceste hint-uri vor dispărea în momentul în care utilizatorul va da drumul din „mana” a obiectului
Al doilea mod care oferă tooltip-uri este mai detaliat și nu se activează automat în momentul în care utilizatorul ridica obiectul, acestuia ii va fi afișat doar o iconița cu care poate interacționa pentru activarea și dezactivarea acestei informații. In momentul în care acționează aceasta iconița prin simpla atingere cu controller-ul în partea opusa unde sta utilizatorul vor apărea ecrane pe care este afișata toata informația detaliata pentru obiectul curent, daca piesa este lăsata libera din mana, acel meniu nu va dispărea, singurul lucru care va dispărea este iconița de interacțiune. Aceste noi ecrane pe care sunt afișate descrierile pot fi ridicate de din locul unde se afla, în momentul în care sunt lăsate libere acestea se vor întoarce la locul lor indiferent de poziția unde erau, făcând un „snap în place”
Din meniul în care se puteau selecta opțiunile utilizatorul poate selecta diferite scenarii care conțin diverse piese de asamblat sau scenarii de interacționat.
Pentru începerea simulării utilizatorul trebuie sa interacționeze cu butonul de start care apare la începutul simulării.
După ce a inițiat training-ul acesta este cronometrat și ii sunt numărate greșelile care le face pe parcursul rulării. Pentru interacțiunea cu obiectele acesta folosește controllerele sau alt modul de intrare care ii este pus la dispoziție, pentru a uni toate piesele care-i sunt puse în fata, acesta se poate folosi de informațiile oferite de sistemul de input. Din motive tehnice obiectele nu pot intra în coliziune intre ele deoarece acestea se vor comporta haotic din cauza complexității sistemului de coliziune oferit de Unity. Controlerul este un tool omniprezent și de acea ii sunt oferite atribute de non-coliziune cu lumea din jur, deoarece nu puteam influenta în mod direct ce se întâmpla cu controlerele.
Pentru a uni doua obiecte sau un grup de obiecte, este necesar sa unim în locul prestabilit daca nu utilizatorului ii va fi incrementat contorul de greșeli.
Pentru conectarea pieselor acestea trebuie sa fie compatibile, iar aceasta compatibilitatea este verificata printr-o serie de dicționare și o structura care formează o structura de arbore, acest lucru este necesar pentru verificarea conectarea lor în ordinea corecta sau pentru verificarea daca toata piesele au fost conectate, dar și în cazul în care se decide deconectarea acestora.
Aceste lucruri sunt acoperite atât pe piesa pe care se face unirea, deoarece acolo se detectează coliziunea dintre cele doua, dar și pe modulul de control al scenei care memorează aceasta structura.
Exista câteva module minore care acoperă interacțiunea dintre meniuri și scene.
3.3 Dezvoltarea aplicație
3.3.1 Mediul de dezvoltare
Implementare a fost realizata cu ajutorul limbajului de programare: C#. Acest limbaj nu este fundația proiectului fiindcă a ajutat doar la programarea comportamentului dorit în aplicație. Împreuna cu acest limbaj au fost folosite motoare de joc, editoare, librarii opensource, tehnologii destinate creării de jocuri video și nu numai.
Printre tehnologiile folosite, întâlnim:
Htc Vive – dispozitiv de realitate virtuala, care oferă posibilitatea de a urmării utilizatorul și acțiunile acestuia
Unity3D – motor de joc de ultima generație, permite crearea aplicaților cat mai natural printr-o interfață moderna, fără a fi nevoie de cunoștințe de c++ sau alte cunoștințe avansate de grafica 3D, cum ar fi openGL sau directX
Microsoft .NET – C# – își are rădăcinile în familia C lucru care-l face imediat familiar cu C, C++, Java și javascript, este una din platformele de scriptare suportate de editorul Unity, care construiește deasupra librăriilor Mono, care este implementarea pe linux a limbajului C# și a framework-ului .net
Visual studio – oferă suport nativ pentru proiectele create în Unity
Librarii utilizate:
UnityEngine – Librăriile oferite de Unity pentru scriptarea aplicațiilor, acestea stau la baza logici care însoțesc scripturile create în C#.
Json.Net – oferă posibilitatea citiri de fișiere JSON și maparea lor pe obiecte, se folosește o versiune care este compatibila cu versiunea de .net suportata de Unity
OpenVR/SteamVR – librarii terțe opensource, create și dezvoltate de Valve, care oferă suport pentru dispozitive de realitate virtuala și o serie de tool-uri pentru integrare mai ușoara cu Unity
VRTK – Virtual Reality Toolkit – librărie terța opensource care oferă o multitudine de tool-uri pentru a îmbunătăți și grăbii construirea de aplicații în VR, destinata folosiri pentru Unity3d, aceasta suporta majoritatea dispozitivelor de VR, și se folosește de SDK-ul specific fiecărui device.
HoverUI – o librărie opensource, care oferă posibilitatea creări de meniuri și interfețe cu utilizatorul, care suporta o serie larga de device-uri, inclusiv leap motion
PowerUI – tool terța pentru crearea de interfețe cu utilizatorul cu HTML și stilizate cu CSS
Unity3D
Aplicația a fost realizata cu ajutorul Unity, care este un motor de jocuri multiplatforma desolvatat de Unity Technologies, utilizat în principal în dezvoltarea jocurilor video și simulări pentru computere, console și sisteme portabile. Are suport în momentul de fata pentru 27 de platforme pe care se poate dezvolta aplicații. Este construit nativ în C++.
Este comercializat ca și un pentru a fi un motor cu scop general și, ca rezultat, suportă atât grafică 2D cât și grafică 3D, funcționalitate drag and drop și scripting pentru cele 3 limbi suportate(C#, JavaScript, Boo). Pentru platforma Windows pe care a fost dezvoltata aplicația acesta suporta următoarele API-uri grafice: DirectX și Vulkan, dar și OpenGL.
Câteva funcționalități care atrag atenția asupra lui sunt capabilitățile grafice excepționale și abilitatea de a ținti mai multe platforme(Oculus Rift, HTC Vive) fără a fi nevoie de foarte multe configurări.
Unity nu este singura platforme de acest gen, s-a avut în calcul și motorul de joc Unreal Engine care oferea același funcționalități, dar și un motor grafic superior. Detașarea dintre cele doua este acea de simplitatea folosiri, dar și de disponibilitatea unui număr mult mai mare de librarii și simplitatea utilizări primei opțiuni.
Alți factori care au motivat alegerea sunt:
Suportul pentru C#
Simplitatea interfeței și configurării obiectelor.
Scripturi relativ simplu de implementat
Posibilitatea refolosiri componentelor sub forma de prefab-uri
Design rapid și ușor, folosind drag and drop
Rularea aplicației fără a fi nevoie de timp de compilare mare, direct din editor
Fig. 3.3.1.1. Vedere in editor
In figura de mai sus este prezentata interfață editorului, aceasta poate fi aranjata în mai multe modalități. In partea de sus poate fi observata editorul de scena în care se pot edita obiectele și poziția acestora, în partea de jos a ferestrei este fereastra în care este randata imaginea care o va vedea utilizatorul, în cazul nostru, realitatea virtuala(simularea). In partea din dreapta se poate vedea structura arborescenta a tuturor elementelor vizuale din scena, apoi conține structura fișierelor care se afla în florerul proiectului, care conține scripturi, modele, etc.
In fereastra Inspector se afla proprietățile fiecărui obiect(„GameObject”), cum ar fi locația în spațiu: x, y, z(„Tranform”) și alte caracteristici ale obiectului, mesh, scripturi, etc
Despre Scene
Tot ce rulează într-un joc sau o simulare există într-o scenă. Când aplicație este împachetata pentru o platformă, jocul rezultat este o colecție de una sau mai multe scene, plus orice cod dependent de platformă pe care îl adaugi. Puteți avea cât mai multe scene doriți într-un proiect. O scenă poate fi considerată ca un nivel într-un joc. Înglobează toata logica de simulare/joc.
Cel mai important lucru în Unity este obiectul de baza GameObject
Fig. 3.3.1.2 Dependențele GameObject
Acesta reprezintă baza tuturor obiectelor în scena, deoarece toate sunt derivate din acest obiect, similar cu System.Object din .Net
Visual Studio
Aplicația a fost dezvoltata folosind cu ajutorul IDE-ului Visual Studio care cu ajutorul unui plug in oferă suport pentru Unity, cu ajutorul IDE-ului se oferă suport pentru debugging activ a aplicației care este pornita în editorul Unity.
Alegerea este motivată de către următorii factori:
Suport nativ pentru C#
Autocompletare folosind Intelisense
Refactorizare puternica susținuta de către JetBrains ReSharper
Debuggerul integrat funcționează atât ca debugger la nivel de sursă, cât și ca un depanator la nivel de mașină. Alte instrumente încorporate includ un profilator de cod, designer de formulare pentru construirea de aplicații GUI, web designer, designer de clasă și designer de schemă de baze de date.
Acesta acceptă pluginuri care îmbunătățesc funcționalitatea la aproape toate nivelurile – inclusiv adăugarea de suport pentru sistemele de control sursă (precum Subversion sau Git) și adăugarea unor noi seturi de instrumente, cum ar fi editorii și designeri vizuali, pentru limbile sau seturile de instrumente specifice domeniului pentru alte aspecte ale ciclului de viață al dezvoltării software cum ar fi clientul Team Foundation Server: Team Explorer.
Visual studio suporta 36 de limbaje de programare, în diferite grade de suport pentru fiecare limbaj în parte, dar suportul de baza este oferit pentru: C, C++, C#, Visual Basic, TypeScript, Javascript, etc.
Fig. 3.3.1.3 Visual studio
Deoarece paradigma de programare este puțin diferita pentru a suporta scripturile pentru unity, acestea trebuie sa urmez un anumit stil de programare pentru a implementa logica de joc.
C#
Limbajul de programare C# a fost ales din mai multe motive:
Folosit la scara larga
Suport nativ în Unity, fiind compilat cu ajutorul librăriilor Mono, pe baza cărora este construit Unity pentru suport multi-platforma
Compatibilitatea cu o larga varietate de aplicații
Ușurința în dezvoltare
Instrumente de dezvoltare profesionala
Structura unui script și cum afectează editorul Unity
Fig. 3.3.1.3. Proprietăți obiect
In figur[ sunt prezentate proprietățile unui obiect dintr-o scena activa, care asignat un script denumit EnemyAI
public class EnemyAI : MonoBehavior
{
// These values will appear în the editor, full properties will not.
public float Speed = 50;
private Transform _playerTransform;
private Transform _myTransform;
// Called on startup of the GameObject it's assigned to.
void Start()
{
}
// Called every frame. The frame rate varies every second.
void Update()
{
}
}
Se poate evidenția faptul ca proprietățile publice din script vor apărea în editor și vor putea fi editate de către programator, iar cele private vor fi ascunse. Scriptul se poate atașa pe orice obiect din scena.
O alta caracteristica importanta este faptul ca scriptul EnemyAI moștenește întotdeauna din MonoBehaviour lucru necesar pentru atașarea la obiectele din scena, daca acest lucru nu ar fi făcut, scriptul nu putea fi folosit în logica de joc.
Cele doua metode Start și Update fac parte din MonoBehaviour și vor fi apelate automat de către Unity, Start va fi chemat doar la inițializare iar Update va fi chemat la fiecare render al scenei sau mai bine zis la fiecare update de cadru.
Acestea sunt câteva particularități de baza ale paradigmei de programare pentru Unity.
Despre Prefabs
Din fericire, Unity are un tip de element numit Prefab care ne permite să stocam un obiect GameObject complet cu componente și proprietăți. Prefabul funcționează ca un șablon din care putem crea instanțe noi de obiecte în scenă. Orice modificări aduse unui prefab(în traducere prefabricat) se reflectă imediat în toate instanțele produse de acesta, dar putem, de asemenea, să înlocuim componentele și setările pentru fiecare instanță individual.
Atunci când tragem un fișier de activ (de ex., O meshă) în scenă, acesta va crea o instanță nouă a obiectului, iar toate aceste instanțe se vor schimba când se schimbă elementul original, adică șablonul. Cu toate acestea, deși comportamentul său este similar la nivel superficial, obiectul activ nu este un prefab, astfel încât nu vom putea să adăugam componente sau să folosim celelalte funcții similare prefab-urilor
Htc Vive
Dispozitivul din figura 3.3.1.4 a fost folosit pentru dezvoltarea aplicației, poziția caști și a celor doua controlere sunt translatate în lumea virtuala prin intermediul senzorilor „Lighthouse” care triangulează aceasta poziție.
Alegerea este motivată de către următorii factori:
Singurul dispozitiv în momentul de fata care oferă suport pentru acest gen de poziționare
Spațiu mare de acoperire
Intuitiv și ușor de folosit
Fig. 3.3.1.4 Echipament folosit
3.3.2 Structura modulelor
Deoarece Unity permite structurarea mai multor obiecte/scripturi/modele în Scene, am decis împărțirea aplicației în scene specifice fiecărei simulări fapt ce ne permite refolosirea diferitor aspecte a codului și a prefaburilor acolo unde este necesar.
Pentru ca scenele să funcționeze cu diversele librarii folosite, este necesară declararea următoarelor simboluri, care sunt dependente de librărie dar și de dispozitivul folosit. Acestea sunt fie configurate automat de către librărie, fie este necesara intervenția programatorului pentru a realiza acest lucru.
Unity este un motor de joc care are suport de compilare cross-platform, fiecare platforma are nevoie de o configurare aparte, chiar daca folosesc același cod.
Fig. 3.3.2.1. Fereastra deploy.
In figura 3.3.2.1 este prezentata platforma pe care este compilata aplicația, dar și scene care sunt împachetate în momentul în care aplicație este distribuita.
Din setările player-ului se regăsesc următoarele simboluri:
„HOVER_INPUT_VIVE” – Acest simbol este specific librăriei HoverUI, permițând sa recunoască ca dispozitiv de intrare HTC.
„HOVER_INPUT_LEAPMOTION” – Acest aparține aceleiași librarii, dar permite recunoașterea dispozitivului leap motion
„PowerUI” – simbol care permite folosirea de html pentru crearea interfețelor cu utilizatorul
„VRTK_SDK_STEAMVR” – specific librărie VRTK, specifica ce modul de interacțiune cu dispozitivul de realitatea virtuala poate sa folosească, în cazul de fata, sistemul e dependent de HTC Vive, care folosește la baza sdk-ul și librăriile furnizate de către SteamVR.
In figura 3.2.2.2 este prezentata fereastra specifica proprietăților folosite de către Unity în momentul compilări aplicației, aceste setări sunt dependente de platforma selectata.
Fig. 3.2.2.2 Inspector Player
Structura Scenelor cuprinse în proiecte este următoarea
Scena MainMenu
Aceasta scena este primul element care utilizatorul îl va întâlnii în momentul în care pornește simularea, este punctul principal de accesare a tuturor simulărilor care sunt accesibile la nivelul aplicației, dar și de un punct în se oferă posibilitatea configurări aplicației.
Scena MainMenu a fost ulterior schimbat cu alt modul de interacțiune care nu folosește meniuri, ci un mod mai natural de interacțiune, aceasta presupunând manipularea unor, iar mutarea sau manipularea acestora modifica opțiuni sau schimba scena.
In scena se regăsesc următoarele obiecte:
Un meniu cu mai multe submeniuri, care poate fi interacționat cu dispozitivul dorit, în cazul de fata se poate interacționa cu controlerele HTC Vive, dar și alte modalități de input, cum ar fi leap motion.
Un modul care încarcă scenele propriu zise.
Posibilitatea salvări și încărcări de preferințe în vederea salvării lor intre scene, în cazul de fata se evidențiază, preferințele legate de sistemul de feedback oferit utilizatorului pentru ai arata diverse informații contextuale.
In fig 3.2.2.3 este prezentata structura în ansamblu al scenei și a modulelor logice care le controlează, nu și a cele care sunt prezentate utilizatorului.
Fig. 3.3.2.3 Structura MainMenu
Structura cu elementele prezente în scena este următoarea.
Fig. 3.3.2.4 Elemente scena
In figura 3.3.2.4 sunt prezentate elementele scenei MainMenu.
Elementele:
DirectionalLight – oferă iluminare în scena
CursurRenderers – prefab, sunt o serie de cursori oferiți de către librăria HoverUI, care apar atașați de controller pentru interacțiunea cu meniurile
HoverKit – prefab. parte a librăriei HoverUI
[CameraRig] – prefab oferit de SteamVr și care e la baza gestionarii caștii de realitate virtuala și a controlerelor în interiorul lumii virtuale
PlayerPrefs
Oferă posibilitatea salvării preferințelor utilizatorului în cadrul simulării pentru activarea sau dezactivarea diverselor opțiuni necesare sistemul de feedback.
Acest modul conține clasa PreferencesController care implementează metodele pentru activarea celor doua moduri de tooltip-uri existente, dar și dezactivarea lor completa. Acest controller folosește clasa PlayerPrefs care este oferita de Unity și permite scrierea de valori și stocarea acestora în locația specifica platformei care a fost automat configurata.
Metoda SetAdvancedToolTip setează valoarea identificată prin string-ul „AdvancedTooltip”, prin negarea valorii precedent setata. Metoda GetAdvancedToolTip(), returnează valoarea aflata la locația indicata de acel string, în cazul în care valoarea nu a fost găsita se va returna ca și valoare implicita „true”.
Aceasta acoperă activarea sau dezactivarea intre sistemul de feedback avansat sau cel de baza.
Posibilitatea activări sau dezactivări complete a acestor descrieri sunt oferite de metodele SetEnableTooltip() și GetEnableTooltip(), care au o implementare similara, returnând aceleași valori și având aceiași funcționalitate.
SceneLoader
Este modulul care se ocupa încărcarea scenelor, folosește metodele oferite de Unity prin intermediul clasei SceneManager.
Metoda LoadScene primește ca parametru numele scenei și va încarcă o scena ca a fost introdusa în meniul de scene active în momentul compilării programului.
HoverMainMenu
Reprezintă meniul prin care interacționează utilizatorul, prezentat în figura 3.3.2.5, acesta conține un submeniu cu opțiunile prezentate mai sus, fiecare are atașat un script care dezactivează acele opțiuni în funții de valoare citita din modulul PlayerPrefs.
Fig. 3.3.2.5. Scena MainMenu
Scriptul SetCheckboxValue este atașat fiecărui rând din meniu care activează sau dezactivează opțiunile legate de sistemul de feedback. Acest script dezactivează meniul în funcție de opțiunea selectata, neputând fi activata sau dezactivata opțiunea de feedback avansat daca feedback-ul este dezactivat global.
Acesta este folosit pentru a reflecta opțiunile salvate prin PlayerPref și în acest meniu care folosește elemente de tipul CheckBox, iar pentru a identifica un daca un element a fost activat sau acesta este reprezentat ca atare. Conține un enum care identifică care rând din meniu trebuie dezactivat.
Metoda SetValue() setează aceste valori pe care obține prin accesarea gameObjectului respectiv. In funcție rândul din meniul respectiv acesta va activa sau dezactiva butonul în cauza.
Din cauza faptului ca multe obiecte se afla atașate la alte obiecte în scena, acestea sunt căutate cu ajutorul metodelor GameObject.Find(„numeObiect”), iar pentru accesarea unei componente sau a unui script din intermediul acestui gameObject se accesează cu metoda GameComponent<TipDorit>()
Scena Licenta_Vive
Aceasta scena conține elementele training-ului propriu zis, aici se afla toata logica simulări care compune toți pașii care utilizatorul trebuie sa-i facă pentru a completa cu succes simularea.
Acesta scena cuprinde următoarele module:
Obiectele care formează simularea în sine, acestea se asamblează pentru a completa simularea, acestea sunt așezate pe o masa
O masa pe care obiectele pot fi plasate
O camera 3D menita sa simuleze un mediu de producție
Un prefab care are rolul de a gestiona preferințele legate sistemul de feedback
Un controler de scena care controlează toata simularea și sincronizează acțiunile utilizatorului cu structurile de date implementate
Elementele pentru afișarea detaliilor asupra fiecărui obiect(feedback),
Obiecte specifice fiecărei librarii folosite, care ajuta la compunerea și folosiri scenei în realitatea virtuala
Fig. 3.3.2.6. Structura scenei.
In figura 3.3.2.6 este prezentata schema în ansamblu a modulelor prezente în scena. Sub input-ul utilizatorului asupra obiectelor din scena, dar și a butonului de start, acesta poate sa manipuleze obiectele, iar fiecare greșeala care o face este înregistrata. Exista un timer care contorizează durata totala a simulării, iar fiecare piesa conectata greșit ii este oferit feedback, Daca acesta dorește poate sa studieze descrierea obiectului.
Fig 3.3.2.7 Elemente din scena
Figura 3.3.2.7 prezinta elementele care cuprind toata scena.
In ordinea prezentării lor în figura 3.3.2.7 obiectele sunt:
PlayerPrefs
Acest prefab conține același elemente care sunt prezent în scena MainMenu, oferind acces la preferințele salvate în meniul precedent, în cazul scenei de fata acest modul este folosit pentru afișarea descrieri obiectului sau prin schimbarea celor doua moduri de descriere prezente în aplicație
CursorRenderers
Prezinta o serie de cursori oferiți de librăria HoverUI, pentru a putea interacționa cu meniurile din simulare.
Fig. 3.3.2.8. Controler cu cursori
In figura 3.3.2.8 prezinta o cursori atașați de controller, aceștia vor urmării poziția controllerului indiferent de poziția acestuia.
HoverKit
Acest prefab cuprinde logica de scriptare care activează sau dezactivează din cursorii atașați controlerului. Permite activarea sau dezactivarea și de asemenea interacțiunea cu meniurile pentru fiecare cursor în parte. De exemplu am putea avea activați doar un cursor pe meniu sau doar pe unul din controlere.
ParentSec
Acest obiect cuprinde toate obiectele ca și exemplu pentru utilizatorul care ia parte la training.
SceneController
In acest element se regăsesc toate elementele simulării, care controlează modul în care se unesc obiectele, ordinea lor, corectitudinea obiectului final, ordinea în care trebuie ca unirea sa fie făcută, pentru a nu apărea obiecte ciudate la final de simulare sau alte cazuri neprevăzute.
Acest element este încapsulat într-un prefab și poate fi refolosit în orice alta scena în care este necesar.
Cuprinde trei elemente vizuale în componența sa:
Un timer, care se activează la sfârșitul simulării pentru a afișă utilizatorului timpul total în timpul simulării
Un contor, care la rândul sau se activează doar la sfârșitul simulării și afișează numărul total de încercări de conectare greșite a obiectelor.
Un semn de atenție, care apare doar în momentul în care a greșit conectarea pieselor
Timer
Timarul conține toate componentele necesare prezentării vizuale a timpului cronometrat dar și pentru memorarea acestuia.
Fig. 3.3.2.9. Timer
In fig 3.3.2.9 se regăsește timer-ul sau mai bine zis Canevas-ul acestuia, modulele Canvas sunt folosite pentru randarea 2D ale interfețelor în Unity, iar textul care afișează timpul este localizat în acest Canvas. Pentru scrierea la secunda a timpului este necesara o referința la acesta.
In figura 3.3.2.10 este atașat la GameObject-ul Timer un script cu același nume, în momentul creări obiectului de către Unity3D în scena, injectează în câmpul TimerText al scriptului referința la elementul de tip text care este prezent pe Canvas.
Fig. 3.3.2.10. Gameobject-ul Timer
Pentru a crea o astfel de referința este ajuns sa declaram în script o variabila publica, iar din editorul Unity o sa facem drag-n-drop la obiectul dorit din scena noastre.
Variabila TimerText de tip Text codifica elementul de UI prezentat în figura 3.3.2.9, în variabila CurrentTime, este codificat timpul după ce a fost apăsat butonul de start, iar IsEnable va permite sau nu pornirea contorului.
Timpul de start este codificat într-o variabila privata
Deoarece scriptul implementează clasa MonoBehaviour, în metoda Update se calculează timpul la nivel de minute și secunde
Exista posibilitatea resetării de timer-ului, lucru care este posibil prin metoda ResetTimer()
Aceasta resetează timpul de start și resetează timer-ul de la 0.
Metodele StartTimer, acompaniat de Stop Timer, opresc timer-ul prin setarea flag-ului IsEnable pe false, respectiv true.
MistakeCounter
Prefab-ul are o implementare similara cu modulul care implementează măsurarea timpului scurs de la începutul simulări
Fig. 3.3.2.11. Fereastra greșeli
Acesta conține referințe la Text-ul care trebuie afișat utilizatorului, dar și numărul de greșeli. Pentru incrementarea contorului, se dispun de câteva metode care oferă acesta posibilitate
In câmpurile Mistakes și MistakeText sunt memorate numărul de greșeli și referința la elementul UI de tip Text. Inițial variabila oldMistakes se inițializează cu –1, acesta este folosita pentru a distinge daca s-a incrementat numărul de greșeli pentru a le afișă pe UI. Aceasta este folosita în metoda Update a scriptului, daca numărul de greșeli s-a modificat, se modifica textul afișat pe UI, iar oldMistakes ia valoarea curenta a numărului de greșeli.
Metodele AddMistake și ResetMistakes adaugă și respectiv resetează numărul de greșeli curente contorizate de script.
StartPanel
Acest prefab conține un element vizual prin care utilizatorul poate interacționa pentru a începe simularea, acesta apelează o metoda din SimulationController. In figura 3.3.2.12 este prezentat interfață acestuia în realitatea virtuale prin care utilizatorul poate interacționa.
Acest element de interfață face parte din librăria HoverUI
Fig. 3.3.2.12 Buton start
AttentionMark
Este un element de tip canevas care afișează o imagine cu semnul exclamării deasupra obiectului la care utilizatorul a greșit.
Scriptul SceneController este atașat la acest modul și se ocupa cu controlul și gestionarea scenei, în diferite momente ale simularii. Are referinte la toate sub modulele prezentate mai sus.
In metoda Start se inițializează variabilele private alea clasei, acestea conțin referințe la scripturile care au fost atașate pe Timer, MistakeCounter etc. Unity3D oferă posibilitatea căutării acestor referințe după tipul obiectului sau chiar după numele acestuia, astfel putem găsii obiecte foarte ușor în scena, indiferent unde se afla acestea. Aceasta metode se folosește în momentul în care nu putem referința un element într-un câmp direct din editor
Acest script conține și câteva metode care influențează scena și simularea, metoda StartSimulation, da start la timer și inițializează contorul de greșeli, dar în același timp ascunde butonul de start afișat utilizatorului.
Conține o metoda numita StopSimulation care la rândul ei, oprește timer-ul, și afișează UI-ul cu timpul total, greșelile, dar și butonul de start pentru reînceperea simulării din nou.
Următorul script SimulationController este cel care controlează toata logica simulări, adică îmbinării obiectelor, menținerea ordini lor, dar și oprirea scenei în momentul în care simularea s-a finalizat
In figura 3.3.2.13 este prezentata configurația din editor al scriptului, se poate observa faptul ca acesta conține referințe la toate obiectele care creează ansamblul complet, denumit simbolic "Parts", în total reprezentând șase piese care v-or fi unite pentru crearea obiectului.
Fig. 3.3.2.13 Simulation Controller
Se observa faptul ca acesta conține referințe la atât la contorul cu greșeli, dar și la obiectul care conține alerta. Cele doua obiecte denumite FirtPart și SecondPart sunt obiecte folosite global, atât în interiorul acestui script cat și în toate scripturile care cer aceste câmpuri. Sunt folosite pentru a identifica piesele curente ținute în mana, fie ca este vorba doar de una sau doua.
Aceste doua componente sunt accesate în momentul în care sunt ridicate în mana, fiecare piesa poate avea atașat o la ea alte piese.
Fig. 3.3.2.14. Structura arborescenta piese
Figura 3.3.2.14 prezinta felul și ordinea conectări obiectelor sub forma arborescenta, unde fiecare legătura dintre un nod și copilul acestuia este reversibila, adică orice obiect poate fi conectat la strămoșul sau fapt indicat prin săgețile duble. Astfel un obiect se construiește din orice nod, la acesta conectând-se restul obiectele în ordine.
Regula de baza considerata în acest este ca nodul tata este mai mic decât următoarelor n noduri copil. O parcurgere BFS v-a afișă elementele în ordine.
Structura de date care implementează acest arbore este bazat pe un dicționar care are o cheie pentru fiecare nod din arbore, la fiecare nod se poate conecta alt nod, dar în componenta v-a lua toți copii acestuia, de exemplu daca în cazul nostru avem în un dicționar de șase elemente iar obiectul complet construit poate fi găsit cu o căutare în arbore care v-a arata în ordine crescătoare toate obiectele:
"0":{ "1","2","3","4", "5"}
Acesta este implementat pe o arhitectura MVC, unde modelul este regăsit în clasa Part, iar controlerul este SimulationController, iar View-ul sunt obiectele în sine. Modelul Part, încapsulează un Id prin care este identificata simbolic piese, dar și o proprietate care memorează punctele de coliziune ale obiectului respectiv, punctele de coliziune sunt folositei pentru detectarea coliziunii intre doua obiecte, pentru fixarea precisa acestora.
Acesta clasa implementează câteva metode care ajuta găsirea acestor piese în colecțiile în care sunt memorate.
Clasa PartCollection este o clasa care implementează o lista de tipul, este folosita ca și valoare în interiorul dicționarului
PartDictionary implementează un dicționar cu cheie de tip Part și o valoare de tipul PartCollection
Inițiază de data fiecare un nou dicționar gol cu numărul de piese dorite.
Clasa statica PartsDictionaryFactory implementează o clasa statica care returnează regulile de conectare a pieselor, adică ce piese se pot conecta intre ele. De exemplu piesa Part 5 se poate conecta la Part 6 și la Part 2
Controlerul de simulare are următoarele variabile în componenta
Acesta sunt în ordine:
WaitTime – cate secunde este afișat mesajul de eroare
MistakeCounter – referința la GameObject-ul în care este implementat contorul de greșeli
AlertObject – similar cu MistakeCounter
IdDictionary – un dicționar de id-uri pentru identificarea piesei de la GameObject-ul la un int
PartsGameObjects – referința la piesele aflate în scena
_mistakeCounter – referință la scriptul respectiv
_sceneController – conține o referință la scriptul care controlează scena
_parts – dicționarul care codifica piesele în lucru
_ruleParts – dicționarul de reguli
_partsCollisionList – folosit pentru memorarea în ce puncte s-au colizionat obiectele
Indecși – sunt folosiți pentru obiectele selectate curent din colecția de obiecte, complementare cu FirstPart, SecondPart
_partMatrix – o matrice care memorează o matrice pentru arborele construit.
Toate elementele se inițializează în metoda de start al scriptului sau pe parcursul rulării.
Exista doua workflow-uri în acesta clasa, posibilitatea de a încarcă conecta piesele, dar și de a le deconecta.
Fig. 3.3.2.15. Flow input user
In momentul în care se detectează o coliziune intre doua obiecte se apelează metoda ConnectObjects, care primește ca parametru cele doua obiect curent ținute în mana sau conectate. Se inițializează mai întâi indecși celor doua piese selectate, daca acestea se pot conecta prin verificarea arborelui, în dicționarul asignat se vor modifica parametri ca sa reflecte schimbările, în momentul în care se returnează valoare de true, aceste obiecte vor fi legate fizic și se vor comporta ca un singur obiect. In caz că obiectele sunt incompatibile se v-a afișă un mesaj de eroare.
Pentru deconectarea a doua obiecte are o implementare similara, daca obiectele sunt compatibile sa fie deconectate, acestea vor fi deconectate. Acesta deconectare se face în momentul în care legătura fizica dintre ele doua se rupe.
Metoda CheckSimulationEnding verifica faptul daca obiectele sunt conectate, iar daca acest lucru s-a întâmplat, simularea se încheie.
Metodele ConnectIfCompatible și DisconnectIfCompatible(), implementează verificările pentru conectarea obiectele și deconectarea acestor asupra, al nivelul structurilor de date referite.
Fiecărei piese ii sunt asignate una sau mai multe puncte de coliziune, aceste puncte de coliziune detectează coliziunea doar intre ele, acestea sunt numite "CollisionPoints", sunt sfere semi-invizibile care au atașat în componenta lor un script numit CollisionPointController. In acest script este implementata metoda OnTriggerEnter(), aceasta fiind automat apelata de unity în momentul în care doua obiecte se ciocnesc și au atașat un script cu aceasta metoda
In aceasta metoda se verifica daca obiecte care sunt ținute în mana sunt corecte, prin verificarea punctelor de coliziune, dar și prin verificările făcute de către SimulationController asupra obiectelor. Întotdeauna în variabila FirstPart v-a fi memorat piese cu id-ul cel mai mic, iar în SecondPart, piese cu id-ul cel mai mare, deoarece la din structura arborelui piesa cu id mai mic este nod tata pentru a doua piesa.
Daca piesele sunt compatibile, atunci ele se conectează folosind un GameObiect numit Joint, care permită "sudarea" acestora, având aceleași proprietăți ca și un obiect întreg,
Deoarece exista piese care au mai multe puncte de coliziune exista o clasa numita CompoundCollisionController, care implementează controlerul CollisionPointController, care are se ocupa cu poziționarea corecta a obiectelor înainte de setarea Joint-ului intre ele.
In clasa JointWatcher, este implementata deconectarea obiectelor, fapt ce se întâmpla când joint-ul atașat intre cele doua obiecte se rupe.
In figura 3.3.2.16 este prezentat unul din obiecte cu punctele de coliziune atașate.
Fig. 3.3.2.16 Piesa si puncte de coliziune
Modulul Description
Pentru a afișa informații contextuale utilizatorilor se oferă doua moduri de a afișă aceste infamații, unul din ele este un mod simplu care afișează în momentul în care un utilizator ridica un obiect.
Fig 3.3.2.17 este prezentat acest sistem care afișează textul la deasupra obiectului.
Fig. 3.3.2.17 Descriere obiect
In figura 3.3.2.18 este afișata a doua implementarea, acesta afișează informații la nivel de ecrane, în lumea virtuala.
Fig. 3.3.2.18. Descriere avansata
Descrierea contextuala deasupra obiectele a fost implementata cu ajutorul librăriei VRTK, care oferă posibilitatea afișării de text deasupra anumitor obiecte.
Pentru implementarea ecranelor care apar cu informații s-a folosit librăria PowerUI, care permite crearea de interfețe, meniuri etc prin html și stilizarea acestora prin intermediul css-ului. In DescriptionScreen.html se regăsește codul html care este folosit pentru randarea informațiilor
Pentru încărcarea informațiilor în câmpurile html se selectează elementul după id-ul acestuia iar în interiorul tag-ul selectat se adaugă textul în cauza
Informațiile sunt încărcate din fișiere json, care permit salvarea și stocarea acestora pe hard disk, iar modificarea informației este foarte ușor de realizat. Acest lucru se realizează prin intermediul clasei JsonLoader.
Formatul unui element din fișierul json
Pentru gestionarea acestor module se folosește clasa HintController, care în momentul în care un obiect este ridicat de jos, se deschide fereastra de informații sau un buton care permite sa deschidă modul avansat de tooltip-uri.
Metoda OnHintOpen verifica daca în preferința a fost setata posibilitatea deschiderii de hint-uri și daca da, care dintre acestea doua.
Metoda OnHintClose închide ferestrele în funcție de preferințele selectate și ce elemente sun deschise în momentul de fata, Daca da drumul la un obiect daca e vorba de informația simplă afișată deasupra piesei. Daca utilizatorul folosești hint-uri avansate, atunci pentru închiderea ferestrelor, acesta este nevoit sa interacționeze cu butonul care apare deasupra obiectului.
3.3.3 Interfața cu utilizatorul
Din punct de vedere al interfeței, putem spune că întreaga lume virtuală este interfața cu utilizatorul, de acea este greu sa deducem ce ar trebui sa consideram cu adevărat o interfață cu utilizatorul. Totuși putem aprecia câteva aspecte mai importante ale interacțiunii acestuia cu lumea virtuală din jurul lui, cum ar fi:
Interacțiunea cu obiectele.
Posibilitatea deplasării și mișcării in lumea virtuala.
Metodele de input folosite pentru a interacționa.
Diversele meniuri si moduri de a controla aspecte ale scenei.
Cum am precizat si in capitolele trecute, utilizatorul care se afla in realitatea virtuala dispune de câteva metode de a interacțiunea cu lumea din jurul sau. In continuare vom prezenta o posibila rută luată de utilizator pentru a ajunge la sfârșitul simulării.
Fig. 3.3.3.1 – Scena meniu – MainMenu
Prima data când utilizatorul începe simularea acesta începe in scena in care este meniul principal. In figura 3.3.3.1 se poate vedea acest lucru, prin intermediul controlerelor acesta poate accesa simulările valabile, dar si opțiunile. Figura 3.3.3.2 ilustrează felul in care utilizatorul poate modifica opțiunile scenei de simulare. Aici se pot modifica opțiunile referitoare la descrierile oferite pentru piese, daca se folosește versiunea avansata sau versiunea simpla. Acestea pot fi, de asemenea, dezactivate
Fig. 3.3.3.2 – Meniul de opțiuni
După ce o simulare a fost accesată, utilizatorul poate să înceapă o simulare prin apăsarea, butonului start din scenă, lucru care se poate vedea in figura 3.3.3.3. După ce a început simularea, acesta poate sa obțină informații despre piese prin simpla ridicare a lor, lucru observabil in figura 3.3.3.3
Fig. 3.3.3.3 – Început simulare. Descriere obiect
După ce utilizatorul a completat de unit obiectele prezente pe masa, acesta poate sa observe in ferestrele apărute, timpul total si numărul de greșeli făcut in timpul simulări, din figura 3.3.3.3 sunt ferestrele prezente la sfârșitul simulării, de aici utilizatorul poate sa se întoarcă in meniul principal sau poate sa o ia de la capăt cu simularea. In figura 3.3.3.4 se poate vedea imaginea proiectata la nivelul caștii, aceasta este dubla din cauza faptului ca sunt prezente doua ecrane.
Fig. 3.3.3.4 – Proiecție la nivelul caștii. Finalul simulării
3.4 Experimente și rezultate
In urma experimentelor efectuate cu aplicația, dar și în timpul dezvoltării, putem sa tragem următoarele concluzii care influențează calitatea experienței în realitatea virtuala:
Dimensiunea obiectelor este un factor important în implementarea aplicației, deoarece acestea influențează felul cum sunt manipulate, acest lucru depinde foarte mult de dispozitivul de input folosit.
Utilizatorul trebuie sa aibă un grad mare de libertate când interacționează în realitatea virtuala
Încărcarea de scene trebuie sa fie făcută asincron, astfel încât utilizatorul sa nu fie forțat sa aștepte la ecrane de încărcare
Pentru a putea folosii aplicația, utilizatorul trebuie sa fie îndrumat în folosirea acesteia, deoarece este necesar de un timp de acomodare în realitatea virtuala. In urma interacțiunilor observare multe persoane care încercau aceste dispozitive pentru prima data au suferit de dureri de cap, amețeli, etc. Cu toate ca acestea nu sunt dăunătoare, introducerea în realitatea virtuala trebuie făcută gradata, iar utilizatorul trebuie asistata în rularea aplicației, mai ales în folosirea formelor de input, precum controlerul.
4. Concluzii
4.1 Gradul de îndeplinire a obiectivelor
4.1.1 Obiective îndeplinite
Sistemul realizat îndeplinește următoarele funcționalități:
Asistarea utilizatorului în realitatea virtuala prin oferirea de feedback
Capacitatea de cerea un obiect finit doar din piese de baza
Încărcarea mai multor simulări bazate pe diverse metode de input
Cronometrarea și numărarea greșelilor făcute de participant la simulare
4.1.1 Obiective neîndeplinite
Chiar daca baza sistemul pentru crearea de mai multe training-uri a fost creata, aceasta nu fost testata pe mai multe ansambluri, iar nivelul de configurare al acesteia este destul de mare. Din perspectiva încărcări scenelor, acestea introduc timp de așteptare pentru utilizator în momentul în care acesta dorește sa schimbe scena sau simularea. Multe aspecte ale modului de lucru în Unity sunt complexe, este și necesara o continua refactorizare a multor sisteme implementate. Codul scris nu îndeplinește pe deplin multe principii de programare profesionale, folosite în producție care au fost stabilite ca principii de programare la începutul proiectului.
4.2 Dificultăți întâmpinate
Pe parcursul realizării proiectului, au fost întâlnite numeroase dificultăți, o parte dintre acestea sunt:
Neînțelegerea sistemelor oferite de Unity
Numeroasele librarii folosite, chiar daca oferă o funcționalitate mare acestea necesita timp pentru a le studia și pentru a implementa acele funcționalități în proiect.
Sistemul de detecție al coliziunilor în Unity este foarte imprecis când vine vorba de lucru cu obiecte foarte mici sau care necesita finețe.
Multe din operațiile efectuate sunt bazate pe funcția Update în Unity, iar daca acea funcție este nevoita sa facă lucruri complexe, este probabil ca aplicația sa încetinească.
Optimizarea aplicației, astfel încât numărul de cadre sa rămână ridicat pe toata durata rulării.
4.3 Dezvoltări ulterioare
In dezvoltările ulterioare putem considera:
Control vocal asupra aplicației, pentru control mai ușor.
Refactorizarea totala a sistemului pentru a oferii o integrare mai mare.
Testarea automata a sistemului.
Reimplementarea algoritmului de conectare a pieselor.
Folosirea dispozitivului Hololens pentru a putea vizualiza prin proiectie holografica interacțiunea utilizatorul în realitatea virtuala.
Mai multe metode de input.
Suport pentru dispozitivele mobile.
Bibliografie
5.1 Referințe teorie
Cap 2.1
http://www.vrs.org.uk/virtual-reality/who-coined-the-term.html
http://www.vrs.org.uk/virtual-reality/what-is-virtual-reality.html
http://www.vrs.org.uk/virtual-reality-gear/
http://www.vrs.org.uk/virtual-reality/assesment.html
http://images.techtimes.com/data/images/full/194572/nintendo-virtual-boy_800x600.jpg
https://www.wareable.com/media/images/2016/11/untitled-6-1478188470-U7tP-column-width-inline.jpg
Cap 2.2
http://www.vrs.org.uk/augmented-reality/
http://www.capitalberg.com/wp-content/uploads/2016/01/Microsoft-HoloLens-Could-Last-Only-2.5-Hours-1024×576.jpg
http://www.vrs.org.uk/augmented-reality/examples.html
Cap 2.3
https://www.thefoundry.co.uk/solutions/virtual-reality/vr-ar-mr-sorry-im-confused/
https://thenextweb.com/insider/2017/01/07/mixed-reality-will-be-most-important-tech-of-2017/
Cap 2.4
http://www.vrs.org.uk/virtual-reality-gear/input-devices.html
http://www.slideshare.net/marknb00/comp-4010-lecture6-virtual-reality-input-devices
http://www.cs.upc.edu/~virtual/RVA/CourseSlides/03.%20VR%20Input%20Hardware.pdf
http://vrscout.com/news/vr-hand-input-controllers-devices/
https://www.engadget.com/2016/03/10/htc-vive-manus-vr-glove-dev-kit-pre-order/
Cap 2.5
http://realityshift.io/blog/ui-ux-design-patterns-în-virtual-reality
http://www.uxness.în/2015/08/ux-virtual-reality.html
https://backchannel.com/immersive-design-76499204d5f6#.nckpsxeuw
https://virtualrealitypop.com/reducing-cognitive-load-în-vr-d922ef8c6876#.hlkz8a78t
https://developer3.oculus.com/documentation/mobilesdk/latest/concepts/mobile-ui-guidelines-intro/
Referințe articole
[1] VRID: A Design Model and Methodology for Developing Virtual Reality Interfaces. Vildan Tanriverdi and Robert J.K. Jacob. Department of Electrical Engineering and Computer Science Tufts University, Medford, MA 02155, {vildan | jacob} @eecs.tufts.edu
[2] Navigation and interaction în a real-scale digital mock-up using natural language and user gesture,
M. A. Mirzaei, J.-R. Chardonnet, F. Mérienne. A. Genty
[3] Investigating the Main Characteristics of 3D Real Time Tele-Immersive Environments through the Example of a Computer Augmented Golf Platform. Benjamin Poussard, Guillaume Loup, Olivier Christmann, Rémy Eynard, Marc Pallot, Simon Richir. Franck Hernoux. Emilie Loup-Escande
[4] Design and Evaluation of Virtual Reality–Based Therapy Games with Dual Focus on Therapeutic Relevance and User Experience for Children with Cerebral Palsy. Lian Ting Ni, MHScDarcy Fehlings, MD, MSc and Elaine Biddiss, MASc, PhD
[5] HYBRID DESIGN TOOLS IN A SOCIAL VIRTUAL REALITY USING NETWORKED OCULUS RIFT: A FEASIBILITY STUDY IN REMOTE REAL-TIME INTERACTION. Robert E. Wendrich Kris-Howard Chambers. Wadee Al-Halabi, Eric J. Seibel, Olaf Grevenstuk, David Ullman, Hunter G. Hoffman.
[6] New Directions în 3D User Interfaces Doug A. Bowman, Jian Chen, Chadwick A. Wingrave, John Lucas, Andrew Ray, Nicholas F. Polys, Qing Li, Yonca Haciahmetoglu, Ji-Sun Kim, Seonho Kim, Robert Boehringer, and Tao Ni
[7] Plasticity for 3D User Interfaces: new Models for Devices and Interaction Techniques Jeremy Lacoche, Thierry Duval, Bruno Arnaldi, Eric Maisel, J´erome Royan
[8] Assessing Empathy through mixed-reality. Cassandra Oduola
[9] TurkDeck: Physical Virtual Reality Based on People Lung-Pan Cheng, Thijs Roumen, Hannes Rantzsch, Sven Köhler, Patrick Schmidt, Robert Kovacs, Johannes Jasper, Jonas Kemper, and Patrick Baudisch
[10] Qualitative analysis of user experience în a 3D virtual environment. Dalma Geszten, Balázs Péter Hámornik, Anita Komlodi, Károly Hercegfi, Bálint Szabó, Alyson Young.
Referințe imagini
[Fig. 2.1.1.] https://tecnovortex.com/wp-content/uploads/2013/04/virtual-boy.jpg
[Fig. 2.1.2.] https://www.wareable.com/media/images/2016/11/untitled-6-1478188470-u7tp-column-width-inline-1479815736-V756-column-width-inline.jpg
[Fig. 2.2.3.] https://midnightblack.ro/wp-content/uploads/2017/03/4-1.jpg
[Fig. 2.3.1.] https://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Reality-Virtuality_Continuum.svg/2000px-Reality-Virtuality_Continuum.svg.png
[Fig. 2.3.2.] http://image.itmedia.co.jp/news/articles/1603/27/l_yu_holo1.jpg
[Fig. 2.3.3.] https://i.vimeocdn.com/video/581272601_1280x720.jpg
[Fig. 2.3.4.] http://popcorngame.fr/wp-content/uploads/2017/03/1280x720xmicrosoft-hololens.jpg.pagespeed.ic.1FUoaRZ_R2.jpg
[Fig. 2.4.1.] https://img6.cache.netease.com/tech/2016/3/15/2016031508115699fc9_550.jpg
[Fig. 2.4.2.] https://l3apq3bncl82o596k2d1ydn1-wpengine.netdna-ssl.com/wp-content/uploads/2016/02/htc-vive-pre-order-pricing.jpg
[Fig. 2.4.3.] https://l3apq3bncl82o596k2d1ydn1-wpengine.netdna-ssl.com/wp-content/uploads/2015/07/sonymorpheus-vr.png
[Fig. 2.4.4.] http://cdn.mos.cms.futurecdn.net/8076fb32a1075c8cc84428e0a705466d.jpg
[Fig. 2.4.5.] http://hicomm.bg/uploads/articles/201703/50865/mainimage-htc-prodava-fabrika-v-shanhai-za-da-otdeli-poveche-sredstva-za-biznesa-s-virtualna-realnost.jpg
[Fig. 2.5.1.] https://static1.squarespace.com/static/5556462de4b0342593f899fa/t/58b46b3a37c581e9310af6dd/1488218949974/
[Fig. 2.5.2.] https://cdn-images-1.medium.com/max/1600/1*1mXCAA1I_JDr2ceuoITgGg.png
[Fig. 2.5.3.] https://www.destructoid.com/ul/355938-we-are-vr-the-case-for-a-concept/h4-noscale.jpg
[Fig. 2.5.4.] https://4.bp.blogspot.com/-_OqjA8pILI8/VcmiyXNrPSI/AAAAAAAAA1Y/yoyZeYDHHOY/s1600/3.png
[Fig. 2.5.5.] https://userexperiencedesigns.files.wordpress.com/2015/09/4.jpg
[Fig. 2.5.6.] https://lh4.googleusercontent.com/JZc5M580TqS3WqrBtsHj0r8kw_1EVeAhTkyxTx8daBr6JLzA62-g_ctCCZyvMGQTls-ynA_CJAhR6iUlxpHCqINlu_Bw7Ub6dXW2-nGV_YJl6WcTLIt4vY5F4luZUYBjTOOty0iDChcdYaE7Ig
[Fig. 3.1.1.1.] Din articol
[Fig. 3.1.2.1.] Din articol
[Fig. 3.1.2.2.] Din articol
[Fig. 3.1.3.1.] Din articol
[Fig. 3.1.4.1.] Din articol
[Fig. 3.1.7.1.] Din articol
[Fig. 3.1.8.1.] Din articol
[Fig. 3.1.9.1.] Din articol
[Fig. 3.1.9.2.] Din articol
[Fig. 3.1.9.3.] Din articol
[Fig. 3.1.9.3.] Din articol
[Fig. 3.2.3.1.] Personal
[Fig. 3.3.1.1.] – [Fig. 3.3.1.4] Personal
[Fig. 3.3.2.1.] – [Fig. 3.3.2.18] Personal
[Fig. 3.3.3.1.] – [Fig. 3.3.2.4] Personal
Documentație surse
https://vrtoolkit.readme.io/
https://github.com/aestheticinteractive/Hover-UI-Kit/wiki
http://powerui.kulestar.com/powerdocs/
https://developer.valvesoftware.com/wiki/SteamVR
https://docs.unity3d.com/Manual/index.html
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Elemente de interacțiune om-mașina pentru realitatea virtuală [305315] (ID: 305315)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
