This shows you the differences between two versions of the page.
irva:laboratoarevr:01 [2024/10/08 23:49] andrei.lapusteanu typos |
irva:laboratoarevr:01 [2024/10/16 00:22] (current) andrei.lapusteanu Edited title |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laborator VR 01. Google Cardboard ===== | + | ===== Laborator VR 01. Google Cardboard XR ===== |
==== Înainte de a începe laboratorul... ==== | ==== Înainte de a începe laboratorul... ==== | ||
Line 11: | Line 11: | ||
</note> | </note> | ||
- | Link către repo-ul de git: <LINK_WIP> | + | Link către [[https://github.com/UPB-Graphics/IRVA|GitHub repo]]. |
==== Introducere ==== | ==== Introducere ==== | ||
- | **Google Cardboard (XR Plugin for Unity)** este un SDK ce permite dezvoltatorilor să creeze experințe în realitate virtuală folosind dispozitive mobile (smartphone-uri) în motorul de jocuri Unty. Acest plugin este destinat utilizării împreună cu Google Cardboard (vezi imaginea de mai jos), un dispozitiv de tip holder pentru telefoane, ce permite o variantă low-cost de a experimenta cu realitatea virtuală. | + | **Google Cardboard (XR Plugin for Unity)** este un SDK ce permite dezvoltatorilor să creeze experințe în realitate virtuală folosind dispozitive mobile (smartphone-uri) în motorul de jocuri Unity. Acest plugin este destinat utilizării împreună cu Google Cardboard (vezi imaginea de mai jos), un dispozitiv de tip holder pentru telefoane, ce permite o variantă low-cost de experimentare a realitații virtuale. |
{{ :irva:laboratoare:l6_cardboardgif.gif?400 |}} | {{ :irva:laboratoare:l6_cardboardgif.gif?400 |}} | ||
Line 22: | Line 22: | ||
{{ :irva:laboratoare:l6_bt_controller.jpg?200 |}} | {{ :irva:laboratoare:l6_bt_controller.jpg?200 |}} | ||
- | |||
- | În continuare puteți studia un demo ce prezintă laboratorul cu task-urile rezolvate (fără bonus-uri): | ||
- | |||
- | <VIDEO_WIP> | ||
=== Highlights tehnologie === | === Highlights tehnologie === | ||
Line 44: | Line 40: | ||
<note tip>În mod ideal, testarea funcționalităților din laborator se face folosind un dispozitiv de tip holder VR pentru smartphone, dar se poate testa și în absența acestuia. De asemenea, nu este necesară folosirea unui joystick pentru mobile.</note> | <note tip>În mod ideal, testarea funcționalităților din laborator se face folosind un dispozitiv de tip holder VR pentru smartphone, dar se poate testa și în absența acestuia. De asemenea, nu este necesară folosirea unui joystick pentru mobile.</note> | ||
- | În continuare puteți studia un demo ce prezintă laboratorul cu task-urile rezolvate (fără bonus-uri): | + | ==== Integrare Google Cardboard XR Plugin în proiect ==== |
- | <VIDEO_WIP> | + | <note warning> |
+ | Asigurați-vă că aveți [[https://git-scm.com|Git]] instalat pe sistemul vostru! Nu veți putea adăuga pachete via managerul de pachete din Unity folosit URL-uri git daca nu-l aveți. | ||
+ | </note> | ||
- | ==== Integrare Google Cardboard XR Plugin în proiect ==== | + | Întrucât pașii pentru integrarea acestui pachet sunt bine descriși în [[https://developers.google.com/cardboard/develop/unity/quickstart|acest]] acest ghid, vă recomandăm să-l urmați și voi - cel mai probabil veți face acești pași împreună cu asistentul de laborator. |
+ | |||
+ | Instalați, pe baza ghidului, sample-ul inclus în pachet. | ||
- | Întrucât pașii pentru integrarea acestui pachet sunt bine descriși în [[https://developers.google.com/cardboard/develop/unity/quickstart|acest]] acest ghid, vă recomandăm să-l urmați și voi - cel mai probabil veți face acești pași împreună cu asistenul de laborator. | + | {{ :irva:laboratoarevr:irva_2024_vr_l1_cardboardsamples.png?500 |}} |
- | **⚠️ Atenție ⚠️** pentru build-urile pe Android! S-ar putea ca API-ul grafic Vulkan să nu ruleze deloc pe smartphone-ul vostru. Așadar, când ajungeți la pasul de setup al API-ului grafic: | + | **⚠️ Atenție ⚠️** la build-urile pe Android! S-ar putea ca API-ul grafic Vulkan să nu ruleze deloc pe smartphone-ul vostru. Așadar, când ajungeți la pasul de setup al API-ului grafic: |
- | * Asigurați-vă ca din **File -> Build Settings** este selectată platofrma Android | + | * Asigurați-vă ca din **File -> Build Settings** este selectată platofrma **Android** |
- | * Navigați la **Player Settings... -> Other Settings -> Graphics APIs** și setați ''OpenGLES3'' ca primul din listă | + | * Din **Player Settings -> Other Settings** debifați opțiunea **Auto Graphics API** |
+ | * Navigați la **Player Settings -> Other Settings -> Graphics APIs** și setați ''OpenGLES3'' ca primul din listă | ||
{{ :irva:laboratoarevr:irva_2024_vr_l1_graphicsapis.png?500 |}} | {{ :irva:laboratoarevr:irva_2024_vr_l1_graphicsapis.png?500 |}} | ||
Line 66: | Line 67: | ||
{{ :irva:laboratoarevr:irva_2024_vr_l1_xrloader.png?300 |}} | {{ :irva:laboratoarevr:irva_2024_vr_l1_xrloader.png?300 |}} | ||
- | <note important>Notați existența acestui meniu întrucât la trebui să-l folosiți și să selectați opțiunea corespunzătoare și în următoarele laboratoare de VR.</note> | + | <note warning> |
+ | În cazul în care toate elementele din meniu sunt grayed out și prmiți null ref-uri în consolă, încercați să restartați editorul. | ||
+ | </note> | ||
+ | |||
+ | <note important> | ||
+ | * Notați existența acestui meniu întrucât la trebui să-l folosiți și să selectați opțiunea corespunzătoare și în următoarele laboratoare de VR. | ||
+ | * În cazul în care nu vă apare acest meniu, sau dacă sunt actualizări ale acestuia, stergeți din proiect folder-ul **Assets -> Project Setup -> CustomXRPluginProvider** si reimportați ultima versiune a pachetului ''IRVA_ProjectSetup_XRPluginProviderController'', care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului, după care restartați Unity. | ||
+ | </note> | ||
Pentru acest laborator va trebui să setați activă opțiunea **Set Cardboard XR Loader**. Funcționarea este marcată în felul următor: | Pentru acest laborator va trebui să setați activă opțiunea **Set Cardboard XR Loader**. Funcționarea este marcată în felul următor: | ||
Line 78: | Line 86: | ||
* Mergeți în **File > Build Settings** și asigurați-vă că platforma pentru care doriți să faceți build este corectă. În caz contrar, faceți switch pe platforma dorită (Android sau iOS) | * Mergeți în **File > Build Settings** și asigurați-vă că platforma pentru care doriți să faceți build este corectă. În caz contrar, faceți switch pe platforma dorită (Android sau iOS) | ||
- | * Vom testa scena **Assets -> Samples -> Google Cardboard XR Plugin for Unity -> <versiune> -> Hello Cardboard -> Scenes -> HelloCardboard**. Mergeți în **File -> Build Settings** și setați această scenă ca fiind singura activă (folosind checkbox-ul) în panoul de **Scenes In Build** | + | * Vom testa scena **Assets -> Samples -> Google Cardboard XR Plugin for Unity -> <versiune> -> Hello Cardboard -> Scenes -> HelloCardboard**. |
+ | * Mergeți în **File -> Build Settings** și setați această scenă ca fiind singura activă (folosind checkbox-ul) în panoul de **Scenes In Build** | ||
- | {{ :irva:laboratoarevr:irva_2024_vr_l1_buildscenes.png?500 |}} | + | {{ :irva:laboratoarevr:irva_2024_vr_l1_buildscenes.png?600 |}} |
* Vom realiza un build acum pe smartphone! Pașii următori sunt specifici unui telefon Android: | * Vom realiza un build acum pe smartphone! Pașii următori sunt specifici unui telefon Android: | ||
Line 110: | Line 119: | ||
Veți avea de implementat un joculeț în care se spawnează în mod contnuu baloane, care pot fi sparte dacă player-ul le privește pentru un timp îndelungat – așadar, ne folosim de acest concept de gaze interaction. O parte a jocului este deja implementată, voi va trebui sa urmăriți todo-urile din cod pentru rezolva complet laboratorul. | Veți avea de implementat un joculeț în care se spawnează în mod contnuu baloane, care pot fi sparte dacă player-ul le privește pentru un timp îndelungat – așadar, ne folosim de acest concept de gaze interaction. O parte a jocului este deja implementată, voi va trebui sa urmăriți todo-urile din cod pentru rezolva complet laboratorul. | ||
- | * Deschideți scena **Assets -> L6_GoogleCardboard -> Scenes -> L6_BalloonPopper** | + | ==== Import schelet laborator ==== |
+ | |||
+ | * Importați ultima versiune a pachetului ''IRVA_L1_VR_GoogleCardboardXR_Skeleton'' care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului | ||
+ | * Folder-ul **Assets -> L1_VR_GoogleCardboard** conține asset-urile suport pentru acest laborator | ||
+ | * Deschideți scena **Assets -> L1_VR_GoogleCardboard -> Scenes -> L1_VR_GoogleCardboard_BalloonPopper** | ||
- | {{ :irva:laboratoare:l6_game-hierarchy.png?200 |}} | + | {{ :irva:laboratoarevr:irva_2024_vr_l1_skeletonscene.png?200 |}} |
* **BaloonSpawner** este obiectul care va instanția baloanele în scenă. Acesta se află în zona podelei scenei. Are o componentă de tip BoxCollider, în volumul căreia trebuie instanțiate baloanele la locații random | * **BaloonSpawner** este obiectul care va instanția baloanele în scenă. Acesta se află în zona podelei scenei. Are o componentă de tip BoxCollider, în volumul căreia trebuie instanțiate baloanele la locații random | ||
Line 125: | Line 138: | ||
* Ar trebui să se realizeze head tracking-ul | * Ar trebui să se realizeze head tracking-ul | ||
* Obiectul 'Treasure' din scenă ar trebui să-și schimbe culoarea dacă reticle-ul player-ului interacționează cu aceasta | * Obiectul 'Treasure' din scenă ar trebui să-și schimbe culoarea dacă reticle-ul player-ului interacționează cu aceasta | ||
+ | - Importați scheletul de laborator | ||
+ | * Din toolbar-ul editor-ului, **Assets -> Import Package -> Custom Package** | ||
+ | * Selectați ultima versiune a pachetului ''IRVA_L1_VR_GoogleCardboard_Skeleton'' care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului | ||
- Instanțiați obiectele de tip balon | - Instanțiați obiectele de tip balon | ||
* Instanțiați obiectele din script-ul de spawner la o poziție random in volumul ''BoxCollider''-ului atașat de obiectul spawner | * Instanțiați obiectele din script-ul de spawner la o poziție random in volumul ''BoxCollider''-ului atașat de obiectul spawner |