Differences

This shows you the differences between two versions of the page.

Link to this comparison view

irva:laboratoarevr:04 [2024/10/14 13:55]
andrei.lapusteanu Lab text mostly done - tasks WIP
irva:laboratoarevr:04 [2024/11/12 12:28] (current)
andrei.lapusteanu
Line 5: Line 5:
 ===== Dispozitive ===== ===== Dispozitive =====
  
-În mod curent, în seria Quest, regăsim ​astfel de dispozitive ce oferă suport activ pentru dezvoltarea aplicațiilor VR, anume:+În mod curent, în seria Quest, regăsim ​astfel de dispozitive ce oferă suport activ pentru dezvoltarea aplicațiilor VR, anume:
  
-  * **Meta Quest 2** (pe care le veți folosi și voi) reprezintă încă o alegere bună pentru dezvoltarea (și consumul de content) VR+  * **Meta Quest 2** reprezintă încă o alegere bună pentru dezvoltarea (și consumul de content) VR
   * **Meta Quest 3** vine cu o serie de îmbunătățiri față de **Meta Quest 2** precum o rezoluție mai bună, o nouă generație de chipset (SD XR2 Gen1 vs Gen2) și suport sporit pentru realitate mixtă   * **Meta Quest 3** vine cu o serie de îmbunătățiri față de **Meta Quest 2** precum o rezoluție mai bună, o nouă generație de chipset (SD XR2 Gen1 vs Gen2) și suport sporit pentru realitate mixtă
   * **Meta Quest 3S** este o variantă mai puțin performantă decât Meta Quest 3, având o rezoluție mai mică și alt tip de lentile   * **Meta Quest 3S** este o variantă mai puțin performantă decât Meta Quest 3, având o rezoluție mai mică și alt tip de lentile
Line 44: Line 44:
 ==== Cerințe pentru setup ==== ==== Cerințe pentru setup ====
  
-  * Dispozitiv Meta Quest 2, 3 sau Pro+  * Dispozitiv Meta Quest 2, 3, 3S, sau Pro
   * **Meta Quest App**   * **Meta Quest App**
   * Configurare **Quest Link** wired sau wireless   * Configurare **Quest Link** wired sau wireless
Line 92: Line 92:
 ==== Oculus XR Plugin ==== ==== Oculus XR Plugin ====
  
-Acest plugin ​este backend-ul ​necesare ​pentru a dezvolta și face build-uri folosind Meta XR.+Acest plugin ​include ​backend-ul ​necesar ​pentru a dezvolta și face build-uri folosind Meta XR.
  
   * Din **Package Manager** apăsați pe (+), selecați **Add package from git URL**, introduceți ''​com.unity.xr.oculus''​   * Din **Package Manager** apăsați pe (+), selecați **Add package from git URL**, introduceți ''​com.unity.xr.oculus''​
Line 110: Line 110:
 <note tip> <note tip>
   * Aveți [[https://​developers.meta.com/​horizon/​documentation/​unity/​unity-project-setup/​|aici]] detalii legate de cum trebuie configurat proiectul de Unity   * Aveți [[https://​developers.meta.com/​horizon/​documentation/​unity/​unity-project-setup/​|aici]] detalii legate de cum trebuie configurat proiectul de Unity
-  * Este probabil ca setări ulterioare și alte integrări să ridice probleme în acest tool, așadar reveniți și rezolvați probleme de câte ori este nevoie ​+  * Este probabil ca setări ulterioare și alte integrări să ridice probleme în acest tool, așadar reveniți și rezolvați probleme de ori câte ori este nevoie ​
 </​note>​ </​note>​
  
Line 136: Line 136:
 Sistemul de operare al acestor device-uri se bazează pe **Android**,​ așadar, procesul de build al unei aplicații este similar cu cel prezentat în [[irva:​laboratoarevr:​01|laboratorul de Cardboard XR]]. Sistemul de operare al acestor device-uri se bazează pe **Android**,​ așadar, procesul de build al unei aplicații este similar cu cel prezentat în [[irva:​laboratoarevr:​01|laboratorul de Cardboard XR]].
  
-Puteți realiza build-uri în cel mai simplu mod prin opțiunea de **Build And Run** din meniul de **Build Settings** din Unity Editor. La finalul build-ului, aplicația este instalată pe headset și pornită în mod automat. Aplicația se poate apoi regăsi în următorul submeniu:+Puteți realiza build-uri în cel mai simplu mod folosiți ​opțiunea de **Build And Run** din meniul de **Build Settings** din Unity Editor. La finalul build-ului, aplicația este instalată pe headset și pornită în mod automat. Aplicația se poate apoi regăsi în următorul submeniu:
  
 {{ :​irva:​laboratoare:​mq2_tutorial_5_findbuiltapp.gif?​500 |}} {{ :​irva:​laboratoare:​mq2_tutorial_5_findbuiltapp.gif?​500 |}}
Line 154: Line 154:
 ===== Setup laborator ===== ===== Setup laborator =====
  
-Veți învăța în continuare cum se pot integrare ​diverse componente ale SDK-ului ​pentru a integra în aplicația voastră headset-ul virtual, controller-ele,​ hand tracking-ul,​ funcționalitatea de passthrough,​ etc.+==== Import schelet laborator ==== 
 + 
 +  * Importați ultima versiune a pachetului ''​IRVA_L4_VR_MetaXR_Skeleton''​ care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului 
 + 
 +==== Building Blocks ===== 
 + 
 +Veți învăța în continuare cum se pot integra ​diverse componente ale SDK-ului aplicația voastrăheadset-ul virtual, controller-ele,​ hand tracking-ul,​ funcționalitatea de passthrough,​ etc.
  
 SDK-ul a introdus recent o nouă modalitate de setup a acestor elemente printr-un meniu de **Building Blocks**. SDK-ul a introdus recent o nouă modalitate de setup a acestor elemente printr-un meniu de **Building Blocks**.
-  * Acest nou meniu prezintă funcționalități care se pot adăga prin drag-and-drop în oricare scenă+  * Acest nou meniu prezintă funcționalități care se pot adăga prin **drag-and-drop** în oricare scenă ​din Unity
   * Pentru a-l deschide aveți două variante   * Pentru a-l deschide aveți două variante
     * De la iconița Meta din dreapta jos a ferestrei de editor     * De la iconița Meta din dreapta jos a ferestrei de editor
Line 164: Line 170:
 {{ :​irva:​laboratoarevr:​irva_2024_vr_l4_metaxrbuildingblocks.png?​500 |}} {{ :​irva:​laboratoarevr:​irva_2024_vr_l4_metaxrbuildingblocks.png?​500 |}}
  
-  * Înainte de introducerea acestor **Building Blocks**, elementele necesare ale unui scene trebuiau incluse manual - în esență acest meniu abstractizează procesul de căutare de prefab-uri, adăugare și parentare corectă a acestora în scenă+  * Înainte de introducerea acestor **Building Blocks**, elementele necesare ale unei scene trebuiau incluse manual - în esențăacest meniu abstractizează procesul de căutare de prefab-uri, adăugare și parentare corectă a acestora în scenă
   * Totuși, rețineți că acest meniu **nu este comprehensiv**,​ întrucât abtractizează includerea elementelor pe care Meta le consideră cele mai utile; unele funcționalități tot vor necesita setup manual   * Totuși, rețineți că acest meniu **nu este comprehensiv**,​ întrucât abtractizează includerea elementelor pe care Meta le consideră cele mai utile; unele funcționalități tot vor necesita setup manual
   * Pentru acest laborator ne este suficient acest meniu    * Pentru acest laborator ne este suficient acest meniu 
  
-==== Camera Rig ==== +În continuare vom configura, explica și integra ​o serie de funcționalități ale SDK-ului ​folosind ​acest meniu.
- +
-În continuare vom configura, explica și o serie de funcționalități ale SDK-ului ​folosing ​acest meniu+
  
 <note warning> <note warning>
Line 176: Line 180:
 </​note>​ </​note>​
  
-  ​* Deschideți scena suport a laboratorului. Aceasta momentan nu conține niciun element care permite rularea ​folosit ​Quest Link+==== Camera Rig ==== 
 + 
 +  ​* Deschideți scena suport a laboratorului. Aceasta momentan nu conține niciun element care permite rularea ​folosind ​Quest Link
   * Includeți în primul rând în scenă prin drag-and-drop building block-ul **Camera Rig**   * Includeți în primul rând în scenă prin drag-and-drop building block-ul **Camera Rig**
-  * În scenă ar trebui să vă apară obiectul **[BuildingBlock] Camera Rig**. Acesta ​conține ​toată logica necesară camerei virtuale și head tracking-ului ​în scenă+  * În scenă ar trebui să vă apară obiectul **[BuildingBlock] Camera Rig**. Acesta ​include în scenă ​toată logica necesară camerei virtuale și head tracking-ului
  
 {{ :​irva:​laboratoarevr:​irva_2024_vr_l4_camerarig.png?​400 |}} {{ :​irva:​laboratoarevr:​irva_2024_vr_l4_camerarig.png?​400 |}}
  
-De interest ​(pentru voi pe viitor dacă veți crea aplicații ​folosing ​acest SDK) este script-ul atașat **OVR Maanger**, care conține numeroase setări ce țin de headset, tracking, suport pentru hand, body, eye tracking, etc.+  * De interes ​(pentru voi pe viitor dacă veți crea aplicații ​folosind ​acest SDK) este script-ul atașat **OVR Manager**, care conține numeroase setări ce țin de headset, tracking, suport pentru hand, body, eye tracking, etc.
   * Conectați-vă headset-ul în modul **Link** și dați **Play** din editor - ar trebui să vă puteți roti în scena virtuală, fapt ce indică o funcționare corectă   * Conectați-vă headset-ul în modul **Link** și dați **Play** din editor - ar trebui să vă puteți roti în scena virtuală, fapt ce indică o funcționare corectă
  
Line 217: Line 223:
 {{ :​irva:​laboratoarevr:​irva_2024_vr_l4_synhands.png?​400 |}} {{ :​irva:​laboratoarevr:​irva_2024_vr_l4_synhands.png?​400 |}}
  
-  * A fost introdus un nou obiect **[BuildingBlock] Interaction**,​ care va fi părintele obiectelor ce vor defini diversele tipuri de interacțiuni posibile. Script-ul atașat acestuia, ''​OVRCameraRigRef''​ realizează o referință către **Camera Rig-ul** creat anterior+  * A fost introdus un nou obiect **[BuildingBlock] Interaction**,​ care va fi părintele obiectelor ce vor defini diversele tipuri de interacțiuni posibile. Script-ul atașat acestuia, ''​OVRCameraRigRef''​realizează o referință către **Camera Rig-ul** creat anterior
   * Obiectele **[BuildingBlock] Synthetic Left Hand** și **[BuildingBlock] Synthetic Right Hand** reprezintă noile mâini virtuale / sintetice, un model pentru acestea se poate observa în scenă   * Obiectele **[BuildingBlock] Synthetic Left Hand** și **[BuildingBlock] Synthetic Right Hand** reprezintă noile mâini virtuale / sintetice, un model pentru acestea se poate observa în scenă
   * Obiectele **LeftHand** și **RightHand** implementează script-ul ''​Hand'',​ o clasă de bază ce se ocupă de prelucrearea datelor de la headset și transformarea acestei informații în date relevante developer-ului   * Obiectele **LeftHand** și **RightHand** implementează script-ul ''​Hand'',​ o clasă de bază ce se ocupă de prelucrearea datelor de la headset și transformarea acestei informații în date relevante developer-ului
Line 231: Line 237:
   * Observați elementele noi adăugate în ierarhie   * Observați elementele noi adăugate în ierarhie
  
-{{ :​irva:​laboratoarevr:​irva_2024_vr_l4_grabinteraction.png?400 |}}+{{ :​irva:​laboratoarevr:​irva_2024_vr_l4_grabinteraction_2.png?400 |}}
  
 === Interacțiuni,​ interactor, interactibil === === Interacțiuni,​ interactor, interactibil ===
Line 248: Line 254:
  
   * Observați script-urile atașate obiectului **[BuildingBlock] HandGrab**:   * Observați script-urile atașate obiectului **[BuildingBlock] HandGrab**:
-    * ''​Grabbable''​ reprezintă o clasă de bază de indică faptul că acest obiect răspunde interacțiunilor de tip **grab** +    * ''​Grabbable''​ reprezintă o clasă de bază ce indică faptul că acest obiect răspunde interacțiunilor de tip **grab** 
-    * ''​GrabInteractable''​ indică faptul că aceșta ​poate răspune unui **interactor** de tip **grab** al **controller-ului** (anume acei interactori **GrabInteractor** menționați anterior) +    * ''​GrabInteractable''​ indică faptul că acesta ​poate răspune unui **interactor** de tip **grab** al **controller-ului** (anume acei interactori **GrabInteractor** menționați anterior) 
-    * ''​HandGrabInteractable''​ indică faptul că aceșta ​poate răspune unui **interactor** de tip **grab** al **mâinii** (anume acei interactori **HandGrabInteractor** menționați anterior)+    * ''​HandGrabInteractable''​ indică faptul că acesta ​poate răspune unui **interactor** de tip **grab** al **mâinii** (anume acei interactori **HandGrabInteractor** menționați anterior)
  
-În GIF-ul ​următor se prezintă acese funcționalități. Pentru a face switch între controller-e și hand tracking, pur și simplu lăsați din mână controller-ele, ​îintindeți mâinile în fața headset-ului și așteptați câteva secunde.+GIF-ul ​de mai jos prezintă acese funcționalități. Pentru a face switch între controller-e și hand tracking, pur și simplu lăsați din mână controller-ele, ​întindeți mâinile în fața headset-ului și așteptați câteva secunde.
  
 {{ :​irva:​laboratoarevr:​irva_2024_vr_metaxr_l4_1.gif?​400 |}} {{ :​irva:​laboratoarevr:​irva_2024_vr_metaxr_l4_1.gif?​400 |}}
Line 258: Line 264:
 ==== Tasks ==== ==== Tasks ====
  
-  - **Realizați pașii ​necesari ​setup-ului**: ​Download repo (sau configurare proiect propriu cu SDK-ul necesar + samples)instalare software adițional, pairing prin Quest Link, testare scenă demo +  - Urmăriți pașii ​desciși în laborator pentru a face **setup** SDK-ului **Meta XR**: Meta Quest App, Quest Link, Meta XR Unity package 
-  - În urma testării cu succes a scenei demo folosind ​**Quest Link**, realizați un **build** pe headset ​cu aceasta. În mod ideal, testați multiple variante de deployment (**Build And Run**, **sideloading** folosind MQDH sau SideQuest) +  - Importați și testați în modul **Quest Link** ​scenele sample 
-  - **Creați-vă o scenă nouă** (organizați-vă fișierele cum doriți în proiect, vă recomandăm să aveți un folder separat pentru ce lucrați custom) și urmăriți pașii din [[https://​developer.oculus.com/​documentation/​unity/​unity-tutorial-hello-vr/​|acest tutorial]] de tip Hello World – săriți peste pașii care sunt deja configurați,​ extrageți informația din etapele relavante din tutorial. În final, testați aplicația atât pe Quest Link cât și într-un build +  - Realizați și testați un **build pe headset** ​al uneia dintre aceste scene sample 
- +  - Implementați în scena suport din laborator ​**building block-urile** prezentate
-=== ✨ Bonus === +    * Camera Rig 
- +    * Controller Tracking 
-  Studiați documentația relevantă a celor de la Meta (porniți de la link-ul de la pasul 3și integrați în scena de la pasul 3 suport pentru controller-e;​ este sufficient dacă acestea apar în mediul virtual și sunt tracked în mod corect – setări avansate / hand tracking / gathering de input facem în următorul laborator +    * Hand Tracking 
 +    Virtual ​(SyntheticHands 
 +    * Grab Interaction
  
irva/laboratoarevr/04.1728903352.txt.gz · Last modified: 2024/10/14 13:55 by andrei.lapusteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0