This shows you the differences between two versions of the page.
|
irva:laboratoarevr:02 [2025/09/27 23:53] andrei.lapusteanu WIP updating L2, added new GIFs and extended setup text |
irva:laboratoarevr:02 [2025/10/21 17:20] (current) andrei.lapusteanu |
||
|---|---|---|---|
| Line 44: | Line 44: | ||
| * Instalați [[https://store.steampowered.com/app/250820/SteamVR/|SteamVR]]. | * Instalați [[https://store.steampowered.com/app/250820/SteamVR/|SteamVR]]. | ||
| * Luați ultima variantă a [[https://github.com/UPB-Graphics/IRVA|repo-ului]], deschideți proiectul de Unity. | * Luați ultima variantă a [[https://github.com/UPB-Graphics/IRVA|repo-ului]], deschideți proiectul de Unity. | ||
| - | * În continuare va trebui să instalați **SteamVR Plugin** pentru Unity. Îl puteți accesa de [[https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647?srsltid=AfmBOoqauVQrCs1Pf_rKe3_SsgniooI_GMEj8ARqyR0ET5YHJDHb3gIt|aici]]. Ultima versiune, la momentul redactarii, este 2.8.0 | + | * În continuare va trebui să instalați **SteamVR Plugin** pentru Unity. Îl puteți accesa de [[https://assetstore.unity.com/packages/tools/integration/steamvr-plugin-32647?srsltid=AfmBOoqauVQrCs1Pf_rKe3_SsgniooI_GMEj8ARqyR0ET5YHJDHb3gIt|aici]]. Ultima versiune, la momentul redactării, este 2.8.0 |
| * Acceptați prompt-ul **Script Updating Consent** | * Acceptați prompt-ul **Script Updating Consent** | ||
| Line 71: | Line 71: | ||
| * Instalați [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-rift-s/install-app-for-link/|Meta Quest Link]] pe PC-ul sau laptop-ul vostru | * Instalați [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-rift-s/install-app-for-link/|Meta Quest Link]] pe PC-ul sau laptop-ul vostru | ||
| - | * Dacă lucrați pe un headset împrumutat de la facultate, logați-vă în Meta Quest Link cu credențialele aferente codului unic al hedset-ului vostru (vezi headset sau cutie), aveți aceste credențiale <<<aici LINK>>>. | + | * Dacă lucrați pe un headset împrumutat de la facultate, logați-vă în Meta Quest Link cu credențialele aferente codului unic al hedset-ului vostru (vezi headset sau cutie), aveți informații la [[irva:resurse:utlizare-headseturi|acest link]]. |
| + | |||
| + | <note important>Va trebui în **Meta Quest Link** să vă conectați cu credențialele configurate pentru headset. | ||
| + | * Dacă vă cere un PIN, setați, vă rugăm, **0000** | ||
| + | * Dacă vă cere să adăugați o modalitate de plată, dați pe **Skip** | ||
| + | </note> | ||
| * După instalare, în Meta Quest Link o să vă apară un prompt. Urmați pașii de la **Set as default** | * După instalare, în Meta Quest Link o să vă apară un prompt. Urmați pașii de la **Set as default** | ||
| Line 150: | Line 156: | ||
| * Deschideți scena **Assets -> SteamVR -> Simple Sample** | * Deschideți scena **Assets -> SteamVR -> Simple Sample** | ||
| - | * Deoarece acum ar trebui să fiți în modul **Link** pe headset, iar **SteamVR** ar trebui să ruleze, puteți testa orice scenă compatibilă doar prin apăsarea butonului **Play** în editor - ar trebui să pornească rularea pe headset - ar trebui să puteți să va rotiți capul, iar în loc de controllere să vă apară mâini virtuale | + | * Deoarece acum ar trebui să fiți în modul **Link** pe headset, iar **SteamVR** ar trebui să ruleze, puteți testa orice scenă compatibilă doar prin apăsarea butonului **Play** în editor - ar trebui să pornească rularea pe headset - ar trebui să puteți să va rotiți capul, și să vedeți controllerele |
| * Have some fun în scena **Assets -> SteamVR -> InteractionSystem -> Samples -> Interactions_Example**. Încercați diversele tipuri de interacțiuni posibile, observați cum funcționează mecanica de teleportare - o să aveți câteva instrucțiuni și în scenă | * Have some fun în scena **Assets -> SteamVR -> InteractionSystem -> Samples -> Interactions_Example**. Încercați diversele tipuri de interacțiuni posibile, observați cum funcționează mecanica de teleportare - o să aveți câteva instrucțiuni și în scenă | ||
| Line 184: | Line 190: | ||
| * Așadar, adăugați în scenă un prefab **Teleporing** precum și mai multe **TeleporPoint-uri** | * Așadar, adăugați în scenă un prefab **Teleporing** precum și mai multe **TeleporPoint-uri** | ||
| - | * Poziționați-vă punctele de teleportare după plac, dar adăugați cel puțin unul pe platorma superioară (între mese) | + | * Poziționați-vă punctele de teleportare după plac în scenă |
| + | * Creați-vă un **Teleport Area** în zona dintre mesele de pe platforma superioară | ||
| + | * Spre deosebire de **Telepor Point-uri**, care pemite teleportarea la un ''Transform'' prefixat, un **Teleport Area** definește o suprafață pe care se admite teleportarea | ||
| + | * Adăugați și scalați un plan 3D la nivelul picioarelor între mesele de pe platformă | ||
| + | * Adăugați obiectului nou creat compnenta ''TeleportArea'' în inspector | ||
| + | * Găsiți [[https://lab.arts.ac.uk/books/vr-tutorials-unity/page/steam-vr-setup-tutorial-2---teleporting-around-your-scene|aici]] un tutorial mai detaliat legat de acest proces | ||
| Înainte de a testa mecanica de teleporare, veți avea nevoie de un **Player**. **SteamVR** include un atfel de prefab (**Assets -> SteamVR -> InteractionSystem -> Core -> Prefabs**) care e deja configurat cu tot ce ține de logica de cameră, tracking, controller-e, etc. | Înainte de a testa mecanica de teleporare, veți avea nevoie de un **Player**. **SteamVR** include un atfel de prefab (**Assets -> SteamVR -> InteractionSystem -> Core -> Prefabs**) care e deja configurat cu tot ce ține de logica de cameră, tracking, controller-e, etc. | ||
| Line 190: | Line 202: | ||
| * Adăugați prefab-ul **Player** la o poziție dorită în scenă | * Adăugați prefab-ul **Player** la o poziție dorită în scenă | ||
| * Testați scena și punctele de teleportare setate | * Testați scena și punctele de teleportare setate | ||
| + | |||
| + | Un exemplu de scenă configurată cu câteva **Teleport Point-uri** precum și **Teleport Area-ul** este ilustrat în GIF-ul de mai jos. | ||
| + | |||
| + | {{ :irva:laboratoarevr:irva_2025_vr_l2_teleporting_demo.gif?500 |}} | ||
| ==== Boxing bag ==== | ==== Boxing bag ==== | ||
| Line 195: | Line 211: | ||
| În prefab-urile include în scheletul de laborator veți găsi **[BoxingBag]**, un sac de box configurat pentru a răspunde interacțiunilor fizice. | În prefab-urile include în scheletul de laborator veți găsi **[BoxingBag]**, un sac de box configurat pentru a răspunde interacțiunilor fizice. | ||
| - | * Plasați prefab-ul la o locație dorită în scenă - adaugați, de asemenea, un nou teleporting point în vecinătatea acestuia | + | * Plasați prefab-ul la o locație dorită în scenă - adaugați, de asemenea, un punct sau suprafață de teleportarea în proximitatea acestuia |
| * Puteți testa interacțiunile prin a lovi cu pumnii obiectul - dacă tineți apăsate în același timp ambele trigger-e puteți face din mâinile virtuale un pumn (nu e obligatoriu, doar în scop de //imersiune//) | * Puteți testa interacțiunile prin a lovi cu pumnii obiectul - dacă tineți apăsate în același timp ambele trigger-e puteți face din mâinile virtuale un pumn (nu e obligatoriu, doar în scop de //imersiune//) | ||
| * Componenta copil **BoxingBagRigidbody** are atașat script ''BoxingBagPunchStrengthController'' pe care va trebui să-l completați pentru a adauga câteva funcționalități (citiți si ''TODO''-urile din cod): | * Componenta copil **BoxingBagRigidbody** are atașat script ''BoxingBagPunchStrengthController'' pe care va trebui să-l completați pentru a adauga câteva funcționalități (citiți si ''TODO''-urile din cod): | ||
| Line 222: | Line 238: | ||
| * Adăugați prefab-ul **Player** la o poziție dorită în scenă | * Adăugați prefab-ul **Player** la o poziție dorită în scenă | ||
| * Integrați în scenă un obiect de tip **Teleporting** | * Integrați în scenă un obiect de tip **Teleporting** | ||
| - | * Integrați în scenă mai multe obiecte de tip **TeleportPoint**, poziționate după plac, dar cel puțin unul pe platforma superioară (între mese) | + | * Integrați în scenă mai multe obiecte de tip **TeleportPoint**, poziționate după plac precum și cel puțin un **Teleport Area** |
| - Implementați mecanicile aferente **sacului de box** în scena oferită ca suport pentru laborator | - Implementați mecanicile aferente **sacului de box** în scena oferită ca suport pentru laborator | ||
| - | * Adăugați prefab-ul **[BoxingBag]** (plus un **TeleportPoint** în proximitatea acestuia) | + | * Adăugați prefab-ul **[BoxingBag]**, precum și o modalitate de teleportare către acesta |
| * Completați ''TODO''-urile din script-ul ''BoxingBagPunchStrengthController'' | * Completați ''TODO''-urile din script-ul ''BoxingBagPunchStrengthController'' | ||
| * Calculați cât de puternică este lovitura | * Calculați cât de puternică este lovitura | ||
| Line 232: | Line 248: | ||
| * Adăugați-vă pe mesele din scenă cel puțin un buton (aveți deja prefab-ul **[InteractableButton]**) | * Adăugați-vă pe mesele din scenă cel puțin un buton (aveți deja prefab-ul **[InteractableButton]**) | ||
| * Legați acțiunea de apăsare a butonului cu logica de lansare a unui proiectil (definită în script-ul ''ProjectileCannonController'') | * Legați acțiunea de apăsare a butonului cu logica de lansare a unui proiectil (definită în script-ul ''ProjectileCannonController'') | ||
| - | * Hint: Script-ul ''HoverButton'' de pe prefab-ul de buton expune în inspector evenimentele ''OnButtonDown'' și ''OnButtonUp'' | ||
| - **[✨Bonus✨]** Implementați un obiect pe care să-l puteți lua în mână și care să interacționeze cu proiectilele lansate - de exemplu, o bâtă de baseball! Studiați scena suport sau cele sample pentru a determina ce tip de obiect interactibil aveți nevoie. Adăgați sunete la coliziuni. După nevoie, folosiți-vă de **Physics Materials**, aveți deja câteva predefinite în asset-urile importate | - **[✨Bonus✨]** Implementați un obiect pe care să-l puteți lua în mână și care să interacționeze cu proiectilele lansate - de exemplu, o bâtă de baseball! Studiați scena suport sau cele sample pentru a determina ce tip de obiect interactibil aveți nevoie. Adăgați sunete la coliziuni. După nevoie, folosiți-vă de **Physics Materials**, aveți deja câteva predefinite în asset-urile importate | ||
| {{ :irva:laboratoarevr:irva_2024_vr_steamvr_3_gif.gif?400 |}} | {{ :irva:laboratoarevr:irva_2024_vr_steamvr_3_gif.gif?400 |}} | ||