Differences

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

Link to this comparison view

irva:laboratoarevr:02 [2024/10/11 01:25]
andrei.lapusteanu Created first version!
irva:laboratoarevr:02 [2025/09/28 00:44] (current)
andrei.lapusteanu
Line 1: Line 1:
-====== Laborator VR 02. SteamVR ======+====== Laborator VR 02. SteamVR. Setup și interacțiuni de bază ======
  
 În acest laborator vom folosi **SteamVR** împreună cu headset-urile celor de la Meta (Quest 2, Quest 3), reunind totul în Unity pentru a vă introduce în dezvoltarea unei aplicații de tip **PC VR**. În acest laborator vom folosi **SteamVR** împreună cu headset-urile celor de la Meta (Quest 2, Quest 3), reunind totul în Unity pentru a vă introduce în dezvoltarea unei aplicații de tip **PC VR**.
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 redactarii, 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 |}}
  
-  * Întrucât proiectul de Unity folosește URP (Universal Rendering Pipeline), materialele importate împreună cu plugin-ul vor fi (majoritatea) broken. Pentru a rezolva această problemă,  ​navigați din toolbar la **Window -> Rendering -> Render Pipeline Converter**,​ asigurațivă că prima opțiune este **Built-in to URP**, bifați opțiunile prezentate, după care apăsați pe **Initialize And Convert**.+  * După finalizarea instalăriirestartați editorul (precum vă indică prompt-ul următor din setup)
  
-{{ :irva:​laboratoarevr:​irva_2024_vr_l2_urpupgrade2.png?400 |}}+<note important>​Dacă după import primiți în consolă în mod repetat eroare de tipul //​InvalidOperationExceptionInsecure 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>​
  
-==== Meta Quest App ====+==== Setup Quesk Link ==== 
 + 
 +=== Meta Quest Link (program) ​===
  
 <note important>​ <note important>​
Line 60: 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:​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:laboratoare:mq2_gif_tutorial_1_enablelink.gif?500 |}}+{{ :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 App]] 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 
-  * După instalare, în Meta Quest App o să vă apară un prompt. Urmați pașii de la **Set as default**+  * 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>>>​. 
 +  * După instalare, în Meta Quest Link 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 80: Line 93:
 <​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 89: Line 102:
   * Î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 101: Line 127:
  
   * Î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 111: Line 137:
  
  
-  * **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 ​Scene** +  * 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 -> 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ă+
  
 {{ :​irva:​laboratoarevr:​irva_2024_vr_steamvr_1_gif.gif?​400 |}} {{ :​irva:​laboratoarevr:​irva_2024_vr_steamvr_1_gif.gif?​400 |}}
Line 138: Line 161:
 ==== Import schelet laborator ==== ==== Import schelet laborator ====
  
-  * Importați ultima versiune a pachetului ''​WIP_NAME''​ care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului +  * Importați ultima versiune a pachetului ''​IRVA_L2_VR_SteamVR_Skeleton''​ care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului 
-  * Folder-ul **Assets -> L2_VR_SteamVR** conține asset-urile suport pentru acest laborator. Deschideți scena ''​L2_VR_SteamVR_Sandbox''​+  * Folder-ul **Assets -> L2_VR_SteamVR_Basics** conține asset-urile suport pentru acest laborator. Deschideți scena ''​L2_VR_SteamVR_Sandbox''​
  
 {{ :​irva:​laboratoarevr:​irva_2024_vr_l2_demoscene.png?​400 |}} {{ :​irva:​laboratoarevr:​irva_2024_vr_l2_demoscene.png?​400 |}}
Line 147: Line 170:
 ==== 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 154: Line 177:
 </​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 160: Line 183:
 {{ :​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 172: 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 ​ș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 196: Line 229:
  
   - 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 ​ 
-    * Integrați în scenă un obiect de tip **Teleporter** +    * Adăugați prefab-ul **Player** la o poziție dorită în scenă 
-    *  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ă un obiect de tip **Teleporting** 
 +    *  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 (script-ul ''​ProjectileCannonController''​) +    * Legați acțiunea de apăsare a butonului cu logica de lansare a unui proiectil (definită în script-ul ''​ProjectileCannonController''​) 
-  - **[✨Bonus✨]** Implementați un obeiect ​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 |}}
irva/laboratoarevr/02.1728599132.txt.gz · Last modified: 2024/10/11 01:25 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