This shows you the differences between two versions of the page.
|
irva:laboratoarevr:04 [2025/11/11 00:12] andrei.lapusteanu Finalized new version for L4 VR |
irva:laboratoarevr:04 [2025/11/11 18:18] (current) andrei.lapusteanu |
||
|---|---|---|---|
| Line 82: | Line 82: | ||
| * Descărcați și importați în proiectul de Unity: | * Descărcați și importați în proiectul de Unity: | ||
| - | * [[https://assetstore.unity.com/packages/tools/integration/meta-xr-core-sdk-269169|Meta XR Core SDK]] | + | * [[https://assetstore.unity.com/packages/tools/integration/meta-xr-interaction-sdk-265014|Meta XR Interaction SDK]]. Acesta va instala ca dependințe: |
| - | * [[https://assetstore.unity.com/packages/tools/integration/meta-xr-interaction-sdk-essentials-264559|Meta XR Interaction SDK Essentials]] | + | * [[https://assetstore.unity.com/packages/tools/integration/meta-xr-core-sdk-269169|Meta XR Core SDK]] |
| - | * [[https://assetstore.unity.com/packages/tools/integration/meta-xr-interaction-sdk-265014|Meta XR Interaction SDK]] | + | * [[https://assetstore.unity.com/packages/tools/integration/meta-xr-interaction-sdk-essentials-264559|Meta XR Interaction SDK Essentials]] |
| - | * Importați //Example Scenes// din sample-urile pachetului | + | * Importați //Example Scenes// din sample-urile pachetului **Meta XR Interaction SDK** |
| * Aveți linked pașii oficiali pentru [[https://developer.oculus.com/documentation/unity/unity-package-manager/|importul pachetelor]] și modalități de [[https://developer.oculus.com/documentation/unity/unity-xr-plugin/|update ]]a acestora | * Aveți linked pașii oficiali pentru [[https://developer.oculus.com/documentation/unity/unity-package-manager/|importul pachetelor]] și modalități de [[https://developer.oculus.com/documentation/unity/unity-xr-plugin/|update ]]a acestora | ||
| * Acceptați prompt-urile care vă apar, restart la editor dacă este necesar | * Acceptați prompt-urile care vă apar, restart la editor dacă este necesar | ||
| Line 110: | Line 110: | ||
| <note> | <note> | ||
| OpenXR reprezintă backend-ul necesar pentru a dezvolta și face build-uri folosind Meta XR. | OpenXR reprezintă backend-ul necesar pentru a dezvolta și face build-uri folosind Meta XR. | ||
| - | Se poate instala, în mod alternativ, din **Package Manager**, apăsați pe (+), selecați **Add package from git URL**, introduceți ''com.unity.xr.oculus''. | + | Se poate instala, în mod alternativ, din **Package Manager**, apăsați pe (+), selecați **Add package from git URL**, introduceți ''com.unity.xr.openxr''. |
| </note> | </note> | ||
| Line 151: | Line 151: | ||
| <note> Aveți [[https://developer.oculus.com/documentation/unity/ts-odh-deploy-build/|aici]] un ghid pentru folosirea MQDH. | <note> Aveți [[https://developer.oculus.com/documentation/unity/ts-odh-deploy-build/|aici]] un ghid pentru folosirea MQDH. | ||
| + | </note> | ||
| + | |||
| + | <note warning> | ||
| + | Dacă întâmpinați erori de compilare la build, cel mai probabil sunt datorită script-ului ''GravityGunController'' din laboratorul 3. Pe scurt, build-ul din laboratorul curent încearcă să compileze acest script, care conține componente specifice SteamVR, iar cum SteamVR nu este inclus în build, acele componente nu sunt găsite. | ||
| + | |||
| + | Unity package-ul pentru L3 a fost actualizat pentru a rezolva această problemă, **dar pentru a rezolva pe loc eroarea** cuprindeți întreg script-ul ''GravityGunController'' într-o directivă de preprocesare corespunzătoare build-urilor Standalone, astfel: | ||
| + | |||
| + | <code c#> | ||
| + | #if UNITY_STANDALONE | ||
| + | |||
| + | // ... script GravityGunController ... | ||
| + | |||
| + | #endif | ||
| + | </code> | ||
| </note> | </note> | ||
| Line 158: | Line 172: | ||
| * Importați ultima versiune a pachetului ''IRVA_L4_VR_MetaXR_Skeleton'' care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului | * Importați ultima versiune a pachetului ''IRVA_L4_VR_MetaXR_Skeleton'' care se găsește în folder-ul **UnityPackages** din folder-ul root al proiectului | ||
| + | * Deschideți scena din schelet - veți lucra pentru următoarele task-uri în aceasta | ||
| ==== Building Blocks ===== | ==== Building Blocks ===== | ||
| Line 429: | Line 444: | ||
| Afișați în consolă valoarea pe care o obțineți. În continuare va trebui să setați valorile min și max (din inspector) pentru ''usableFingerCurlRange'' folosind **valoarea afișată în consolă**: | Afișați în consolă valoarea pe care o obțineți. În continuare va trebui să setați valorile min și max (din inspector) pentru ''usableFingerCurlRange'' folosind **valoarea afișată în consolă**: | ||
| * Rulați scena, luați arma în mână | * Rulați scena, luați arma în mână | ||
| - | * Îndoiți degetul arătător suficient cât **doar să atingă** trăgaciul armei - notați valoarea de curl din consolă - aceasta va fi valoarea de **minim** pentru slider | + | * Îndoiți degetul arătător suficient cât **doar să atingă** trăgaciul armei - notați valoarea de curl din consolă - aceasta va fi valoarea de **maxim** pentru slider |
| - | * Îndoiți (aproape) complet degetul arătător, până în momentul în care pose-ul degetului nu se mai schimbă - notați valoarea de curl din consolă - aceasta va fi valoarea de **maxim** pentru slider | + | * Îndoiți (aproape) complet degetul arătător, până în momentul în care pose-ul degetului nu se mai schimbă - notați valoarea de curl din consolă - aceasta va fi valoarea de **minim** pentru slider |
| **Normalizați valoarea curl-ului** între valorile de minim și maxim obținute. De exemplu, dacă min/max slider sunt [200;250], remapați în range-ul [0;1]. În script-ul ''Utils'' aveți metoda ajutătoare ''Remap''. | **Normalizați valoarea curl-ului** între valorile de minim și maxim obținute. De exemplu, dacă min/max slider sunt [200;250], remapați în range-ul [0;1]. În script-ul ''Utils'' aveți metoda ajutătoare ''Remap''. | ||
| Line 485: | Line 500: | ||
| Legați la acesta metoda ''SpawnBottles'' din script-ul ''BottlesManager'' - îl găsiți atașat de obiectul **BottlesTable** în scenă. | Legați la acesta metoda ''SpawnBottles'' din script-ul ''BottlesManager'' - îl găsiți atașat de obiectul **BottlesTable** în scenă. | ||
| + | |||
| + | === Demo implementare task-uri === | ||
| + | |||
| + | {{ :irva:laboratoarevr:irva_2025_vr_l4_final.gif?450 |}} | ||
| ==== Tasks ==== | ==== Tasks ==== | ||
| - | - Urmăriți pașii desciși în laborator pentru a face setup SDK-ului Meta XR | + | - Urmăriți pașii descriși în laborator pentru a face setup SDK-ului Meta XR |
| - Importați și testați în modul Quest Link scenele sample | - Importați și testați în modul Quest Link scenele sample | ||
| - Realizați și testați un build pe headset al uneia dintre aceste scene sample | - Realizați și testați un build pe headset al uneia dintre aceste scene sample | ||