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/09/28 00:44] (current) andrei.lapusteanu |
||
---|---|---|---|
Line 150: | Line 150: | ||
* 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 184: | ||
* 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 196: | ||
* 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 205: | ||
Î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 232: | ||
* 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 242: | ||
* 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 |}} |