This shows you the differences between two versions of the page.
|
irva:laboratoarevr:02 [2024/10/15 01:04] andrei.lapusteanu Minor text edits |
irva:laboratoarevr:02 [2025/10/21 17:20] (current) andrei.lapusteanu |
||
|---|---|---|---|
| Line 8: | Line 8: | ||
| <note> | <note> | ||
| - | * Subcapitolele **Meta Quest App** și **Quest Link** există întrucât noi vom folosi headset-urile celor de la Meta. Alte headset-uri vor folosi alte software-uri pentru configurare. | + | * Subcapitolele **Meta Quest Link** și **Quest Link** există întrucât noi vom folosi headset-urile celor de la Meta. Alte headset-uri vor folosi alte software-uri pentru configurare. |
| * Vom vorbi mai detaliat despre ecosistemul Meta în laboratoarele dedicate acestuia | * Vom vorbi mai detaliat despre ecosistemul Meta în laboratoarele dedicate acestuia | ||
| </note> | </note> | ||
| Line 20: | Line 20: | ||
| De asemenea, **SteamVR** permite utilizarea a multiple headset-uri, câteva exemple ar fi: | De asemenea, **SteamVR** permite utilizarea a multiple headset-uri, câteva exemple ar fi: | ||
| * Meta Quest (2, 3, Pro) | * Meta Quest (2, 3, Pro) | ||
| - | * HTV Vive | + | * HTC Vive |
| * Valve Index | * Valve Index | ||
| Line 27: | Line 27: | ||
| ==== PC VR ==== | ==== PC VR ==== | ||
| - | Ca și concept **PC VR** ar avantajul că se folosește de puterea suporioară de procesare a PC-urilor / laptop-urilor (comparativ cu cea a headset-urilor de tip all-in-one) pentru a procesa conținutul grafic, care este apoi redat pe headset. Acesta din urmă joacă și un rol de tracking, comunicându-i aplicației (ce rulează pe PC) informații legate de headtracking, controller-e, etc. | + | Ca și concept **PC VR** are avantajul că se folosește de puterea superioară de procesare a PC-urilor / laptop-urilor (comparativ cu cea a headset-urilor de tip all-in-one) pentru a procesa conținutul grafic, care este apoi redat pe headset. Acesta din urmă joacă și un rol de tracking, comunicându-i aplicației (ce rulează pe PC) informații legate de headtracking, controller-e, etc. |
| - | ==== Meta Quest App ==== | + | ==== Meta Quest Link ==== |
| - | **Meta Quest App** este un software al celor de la Meta, de tip "companion", ce permite conectarea unui headset de tip Meta la PC / laptop via **Quest Link**. Programul în trecut se numea **Oculus App**. | + | **Meta Quest Link** este un software al celor de la Meta, de tip "companion", ce permite conectarea unui headset de tip Meta la PC / laptop via **Quest Link**. Programul în trecut se numea **Oculus App**. |
| ==== Quest Link ==== | ==== Quest Link ==== | ||
| Line 43: | Line 43: | ||
| * Va trebui să aveți să aveți un cont pe [[ https://store.steampowered.com|Steam]]. | * Va trebui să aveți să aveți un cont pe [[ https://store.steampowered.com|Steam]]. | ||
| * 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 repo-ului de VR <LINK_VR>, 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]]. | + | * Î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 |
| - | * După finalizarea instalării, o să vă apară un pop-up legat de anumite setări necesare - acceptați prompt-ul | + | * Acceptați prompt-ul **Script Updating Consent** |
| - | {{ :irva:laboratoarevr:irva_2024_vr_l2_steamvrprompt.png?200 |}} | + | {{ :irva:laboratoarevr:irva_2025_vr_l2_script_updating_consent.png?300 |}} |
| - | ==== Meta Quest App ==== | + | * După finalizarea instalării, restartați editorul (precum vă indică prompt-ul următor din setup) |
| + | |||
| + | <note important>Dacă după import primiți în consolă în mod repetat eroare de tipul //InvalidOperationException: Insecure connection not allowed// mergeți în **Edit -> Project Settings -> Player -> (platforma target, prima in acest caz, Windows) -> Other Settings** și selectați pentru opțiunea **Allow downloads over HTTP** varianta **Always allow**.</note> | ||
| + | |||
| + | ==== Setup Quesk Link ==== | ||
| + | |||
| + | === Meta Quest Link (program) === | ||
| <note important> | <note important> | ||
| Line 56: | Line 62: | ||
| * Porniți headset-ul și conectați-l la PC / laptop | * Porniți headset-ul și conectați-l la PC / laptop | ||
| - | * Asigurați-vă că **toggle-ul de Quest Link este activ** în setările headset-ului. Acesta îl găsiți în **Settings -> System -> Quest Link** | + | * Acceptați prompt-ul pentru **USB Debugging** |
| - | {{ :irva:laboratoare:mq2_gif_tutorial_1_enablelink.gif?500 |}} | + | {{ :irva:laboratoarevr:irva_2025_vr_l2_allow_debugging.jpg?300 |}} |
| + | |||
| + | * Asigurați-vă că **toggle-ul de Quest Link este activ** în setările headset-ului. Acesta îl găsiți în **Settings -> Link** | ||
| + | |||
| + | {{ :irva:laboratoarevr:irva_2025_vr_l2_link_settings.gif?500 |}} | ||
| + | |||
| + | * 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 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> | ||
| - | * Instalați [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-rift-s/install-app-for-link/|Meta Quest App]] pe PC-ul sau laptop-ul vostru | + | * 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 App o să vă apară un prompt. Urmați pașii de la **Set as default** | + | |
| {{ :irva:laboratoarevr:irva_2024_vr_l2_mqa_app_prompt.png?500 |}} | {{ :irva:laboratoarevr:irva_2024_vr_l2_mqa_app_prompt.png?500 |}} | ||
| - | ==== Quest Link (cablu) ==== | + | === Quest Link (cablu) === |
| - | * În continuare este probabil să vă apară un prompt pentru configurarea **Quest Link**-ului din Meta Quest App. Puteți confirma prompt-ul și urmați pașii de configurare. | + | * În continuare este probabil să vă apară un prompt pentru configurarea **Quest Link**-ului din Meta Quest Link. Puteți confirma prompt-ul și urmați pașii de configurare. |
| {{ :irva:laboratoarevr:irva_2024_vr_l2_mqa_questlinkprompt.png?400 |}} | {{ :irva:laboratoarevr:irva_2024_vr_l2_mqa_questlinkprompt.png?400 |}} | ||
| + | |||
| + | <note important>În cazul în care la etapa **Connect Your Headset** din setup casca nu este detectată (buffering circle continuu pentru +1 minut) încercați, în ordinea asta: | ||
| + | * Reinserați cablul în headset | ||
| + | * Reluați setup-ul din aplicație (Meta Quest Link) | ||
| + | * În modul **Connect Your Headset**, cu casca conecată, restartați headset-ul | ||
| + | </note> | ||
| * Puteți alege conectarea prin cablu sau wireless (cea wireless este explicată în detaliu și mai jos) | * Puteți alege conectarea prin cablu sau wireless (cea wireless este explicată în detaliu și mai jos) | ||
| Line 76: | Line 99: | ||
| <note>Găsiți [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-link/connect-with-air-link/|aici]] pașii oficial pentru configurarea Quest Link-ului în caz că întâmpinați probleme.</note> | <note>Găsiți [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-link/connect-with-air-link/|aici]] pașii oficial pentru configurarea Quest Link-ului în caz că întâmpinați probleme.</note> | ||
| - | ==== Air Link ==== | + | === Quest Link (wireless): Air Link === |
| <note important> | <note important> | ||
| Line 85: | Line 108: | ||
| * În continuare, puteți accesa **Quest Link** din meniul dedicat al căștii – de aici puteți să activați și funcția de **Air Link** | * În continuare, puteți accesa **Quest Link** din meniul dedicat al căștii – de aici puteți să activați și funcția de **Air Link** | ||
| - | {{ :irva:laboratoare:mq2_gif_tutorial_2_pairlink.gif?500 |}} | + | {{ :irva:laboratoarevr:irva_2025_vr_l2_air_link.gif?500 |}} |
| - | * Încheiați configurarea prin confirmarea codului de conectare din Meta Quest App | + | * Încheiați configurarea prin confirmarea codului de conectare din Meta Quest Link |
| * Dacă totul s-a realizat cu succes ar trebui să fie interactibil butonul de **Pair** din meniul de **Quest Link** de pe headset. | * Dacă totul s-a realizat cu succes ar trebui să fie interactibil butonul de **Pair** din meniul de **Quest Link** de pe headset. | ||
| <note>Găsiți [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-link/connect-with-air-link/|aici]] pașii oficial pentru configurarea Quest Link-ului în caz că întâmpinați probleme.</note> | <note>Găsiți [[https://www.meta.com/help/quest/articles/headsets-and-accessories/oculus-link/connect-with-air-link/|aici]] pașii oficial pentru configurarea Quest Link-ului în caz că întâmpinați probleme.</note> | ||
| + | |||
| + | <note> | ||
| + | Air Link necesită o conexiune destul de bună via WiFi. În mod ideal, dacă este disponibilă, optați pentru conectarea la o rețea pe 5GHz. | ||
| + | </note> | ||
| + | |||
| + | === Validare setup === | ||
| + | |||
| + | Pentru a vă asigura că modul link funcționează corect, verificați următoarele aspecte: | ||
| + | * În **Meta Quest Link**, în meniul **Devices**, vă apare headset-ul în statusul conectat | ||
| + | * Verificați dacă din meniul de **Link** din cască vă puteți conecta - pentru PC-ul / laptop-ul pe care ați făcut configurarea butonul ar trebui să indice **Launch** | ||
| + | * Dacă ajungeți într-o noua scenă virtuală (precum este ilustrat în GIF-ul de mai jos), conectarea prin link a avut loc cu succes! | ||
| + | |||
| + | {{ :irva:laboratoarevr:irva_2025_vr_l2_link_successgif.gif?500 |}} | ||
| <note tip>🎮 Dacă doriți să vă jucați pe căști, recomandăm să utilizați aplicația **Virtual Desktop** (trebuie plătit), oferă o experiență și configurabilitate superioară Quest Link-ului!</note> | <note tip>🎮 Dacă doriți să vă jucați pe căști, recomandăm să utilizați aplicația **Virtual Desktop** (trebuie plătit), oferă o experiență și configurabilitate superioară Quest Link-ului!</note> | ||
| Line 97: | Line 133: | ||
| * Închideți momentan **SteamVR** (PC / laptop) și ieșiți din modul **Link** de pe cască - s-ar putea să existe mici quirk-uri mai ales dacă au fost instalate toate programele în același timp. Le vom reporni imediat! | * Închideți momentan **SteamVR** (PC / laptop) și ieșiți din modul **Link** de pe cască - s-ar putea să existe mici quirk-uri mai ales dacă au fost instalate toate programele în același timp. Le vom reporni imediat! | ||
| - | * Din **File -> Build Settings** setați **Windows, Mac, Linux** ca platformă activă | + | * Din **File -> Build Profiles** setați **Windows** ca platformă activă (sau pe ce OS lucurați) |
| - | * Din meniul **XR Loader Settings** selectați activă opțiunea **Set Steam VR Loader** | + | * Din meniul **XR Loader Settings** selectați activă opțiunea **Set Steam VR Loader**. Confirmați aplicarea setărilor în consola din Unity (de interes pentru acest laborator este doar platforma **Standalone**) |
| - | {{ :irva:laboratoarevr:irva_2024_vr_l2_xrloader.png?300 |}} | + | {{ :irva:laboratoarevr:irva_2025_vr_l2_xrloader.png?300 |}} |
| <note important> | <note important> | ||
| Line 107: | Line 143: | ||
| - | * **SteamVR** necesită configurarea unor setări de input. În cazul în care acestea nu au fost realizate, deschideți tool-ul dela **Window -> SteamVR Input** și apăsați pe butonul **Save and Generate** | + | * **SteamVR** necesită configurarea unor setări de input. În cazul în care acestea nu au fost realizate, deschideți tool-ul de la **Window -> SteamVR Input**, confirmați prompt-ul **Copy Examples** și apăsați pe butonul **Save and Generate** |
| - | * Intrați în modul **Link** pe headset - așteptați până când se încarcă un nou environment virtual | + | * Intrați în modul **Link** pe headset |
| - | * Deschideți **SteamVR** pe PC / laptop. Pe cască ar trebui să vă apară un mesaj "Loading SteamVR", urmat de încărcarea unui alte scene virtuale | + | * Deschideți **SteamVR** pe PC / laptop. Pe cască ar trebui să vă apară un mesaj "Loading SteamVR", urmat de încărcarea unui alte scene virtuale, specifice SteamVR-ului |
| <note> | <note> | ||
| - | Petru a confirma comunicarea corectă între Meta Quest App / Quest Link / Steam VR, verificați dacă în fereastra de SteamVR vă apar cele 3 iconițe colorate. | + | Petru a confirma comunicarea corectă între Meta Quest Link / Quest Link / Steam VR, verificați dacă în fereastra de SteamVR vă apar cele 3 iconițe colorate. |
| - | {{ :irva:laboratoarevr:irva_2024_vr_l2_steamvricons.png?300 |}} | + | {{ :irva:laboratoarevr:irva_2025_vr_l2_steamvricons.png?300 |}} |
| </note> | </note> | ||
| - | |||
| - | Nice work 🎉! Sunteți acum în modul **PC VR**! | ||
| ==== Testare scene sample ==== | ==== Testare scene sample ==== | ||
| * Deschideți scena **Assets -> SteamVR -> Simple Sample** | * Deschideți scena **Assets -> SteamVR -> Simple Sample** | ||
| - | * Dați **Play** în editor - ar trebui să pornească rularea pe headset - dacă vi se încarcă scena pe care ați văzut-o în editor, puteți să va rotiți capul, iar în loc de controller-e vă apar mâini virtuale, configurarea până în prezent a avut loc cu succes | + | * 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 143: | Line 176: | ||
| ==== Mecanica de teleportare ==== | ==== Mecanica de teleportare ==== | ||
| - | Deplasarea în spațiile VR este o problemă care poate fi destul de ușor rezolvată destul de ușor prin teleportarea la anumite puncte fixe - în general spațiul fizic de care dispunem nu este în concordanță cu dimeniunea spațiului virtual, așadar deplasarea (prin mers) nu reprezintă de cele mai multe ori o soluție fezabilă. | + | Deplasarea în spațiile VR este o problemă care poate fi rezolvată destul de ușor prin teleportarea la anumite puncte fixe - în general spațiul fizic de care dispunem nu este în concordanță cu dimeniunea spațiului virtual, așadar deplasarea (prin mers) nu reprezintă de cele mai multe ori o soluție fezabilă. |
| <note> | <note> | ||
| Line 150: | Line 183: | ||
| </note> | </note> | ||
| - | Implementarea acestui mecasism folosind **SteamVR** este se poate realiza ușor, avem nevoie în esență de două tipuri de prefab-uri pe care să le punem în scenă | + | Implementarea acestui mecanism folosind **SteamVR** este se poate realiza ușor, avem nevoie în esență de două tipuri de prefab-uri pe care să le punem în scenă: |
| * Prefab-ul **Teleporting** (**Assets -> SteamVR -> InteractionSystem -> Teleport -> Prefabs**), care are deja implementată toată logica aferentă teleportării | * Prefab-ul **Teleporting** (**Assets -> SteamVR -> InteractionSystem -> Teleport -> Prefabs**), care are deja implementată toată logica aferentă teleportării | ||
| * Prefab-ul **TeleportPoint** (**Assets -> SteamVR -> InteractionSystem -> Teleport -> Prefabs**), care reprezintă un punct fix la care user-ul se poate teleporta | * Prefab-ul **TeleportPoint** (**Assets -> SteamVR -> InteractionSystem -> Teleport -> Prefabs**), care reprezintă un punct fix la care user-ul se poate teleporta | ||
| Line 156: | Line 189: | ||
| {{ :irva:laboratoare:htcviveteleportpoint.png?300 |}} | {{ :irva:laboratoare:htcviveteleportpoint.png?300 |}} | ||
| - | * Așdar, 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. | ||
| - | * 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 168: | 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 și butonul A 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): | ||
| * Pe metoda ''OnCollisionEnter'', calculați cât de puterică este lovitura - moduri sunt multiple - pentru o variantă simplă folosiți-vă de lungimea vectorului ''relativeVelocity'', pe care-l puteți citi de pe componenta ''Collider'' primită ca parametru în metodă | * Pe metoda ''OnCollisionEnter'', calculați cât de puterică este lovitura - moduri sunt multiple - pentru o variantă simplă folosiți-vă de lungimea vectorului ''relativeVelocity'', pe care-l puteți citi de pe componenta ''Collider'' primită ca parametru în metodă | ||
| Line 193: | Line 236: | ||
| - Urmăriți pașii descriși în laborator pentru a vă face setup-ul - rezolvarea task-ului este marcată prin testarea folosind SteamVR a celor două scene sample | - Urmăriți pașii descriși în laborator pentru a vă face setup-ul - rezolvarea task-ului este marcată prin testarea folosind SteamVR a celor două scene sample | ||
| - Implementați mecanica de **teleportare** în scena oferită ca suport pentru laborator | - Implementați mecanica de **teleportare** în scena oferită ca suport pentru laborator | ||
| - | * 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 tiă **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 | ||
| - | * Afișați rezultatul pe world space canvas-ul atașat obiectului | ||
| * Actualizați world space canvas-ul cu valoarea calculată anterior | * Actualizați world space canvas-ul cu valoarea calculată anterior | ||
| * Adăugați un sunet de punch și modulați-i volumul în funcție de valoarea calculată anterior | * Adăugați un sunet de punch și modulați-i volumul în funcție de valoarea calculată anterior | ||
| - Implementați mecanica de lansare a unui mingi folosind butoanele interactibile | - Implementați mecanica de lansare a unui mingi folosind butoanele interactibile | ||
| * 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ă 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 |}} | ||