This shows you the differences between two versions of the page.
irva:laboratoarevr:02 [2025/09/27 23:08] andrei.lapusteanu WIP updating L2 |
irva:laboratoarevr:02 [2025/09/28 00:44] (current) andrei.lapusteanu |
||
---|---|---|---|
Line 53: | Line 53: | ||
<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> | <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> | ||
- | ==== Meta Quest Link ==== | + | ==== 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 | ||
+ | * 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** | * Asigurați-vă că **toggle-ul de Quest Link este activ** în setările headset-ului. Acesta îl găsiți în **Settings -> Link** | ||
Line 65: | 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>>>. | ||
* 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** | ||
{{ :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 Link. 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 99: | Line 112: | ||
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. | 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> | </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 105: | 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 115: | Line 137: | ||
- | * **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** ș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 Link / 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 165: | 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 171: | 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 176: | 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 203: | 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 213: | 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 |}} |