VJEŽBA V9 · MODUL 3 · RAZVOJ OKRUŽENJA VIRTUALNE STVARNOSTI
Vježba V9 · 2 sata
Kamera na visini očiju i modeli kontrolera
Izrada vlastitog igrača za laboratorij VR-1: VR ishodište na podu, kamera koju vode naočale i dva kontrolera s vidljivim modelima. Provjerava se da korisnici različite visine vide radni stol na stvarnih 750 mm i da zraka iz kontrolera pokazuje tamo kamo ruka pokazuje.
- složiti hijerarhiju igrača s VR ishodištem, kamerom i dva kontrolera
- postaviti ishodište praćenja na pod i objasniti razliku prema ishodištu na visini očiju
- prikazati modele kontrolera i razlikovati pozu hvata od poze ciljanja
- provjeriti mjerilo 1 : 1 s korisnicima različite visine
- izračunati pogrešku visine kamere i odstupanje zrake zbog pogrešne orijentacije modela
O vježbi
Prije vježbe proći gradivo: 3.3 Hardverski segmenti u sceni: kamera, kontroleri i ruke.
Pitanja i zadaci na ovoj stranici su bez odgovora. Rješenje s postupkom otvara se gumbom Prikaži rješenje ispod svakog pitanja, a upute za nastavnika nalaze se na dnu stranice.
Zadatak
U projektu VR1_Laboratorij izradite vlastitog igrača, VR pijun BP_VRPijun (engl. pawn, jedinica 3.3), umjesto igrača iz predloška. Ishodište praćenja je na podu, kamera na visini očiju korisnika (za korisnika visokog oko 1,80 m to je oko 1,68 m), a kontroleri prikazuju svoje modele. Iz desnog kontrolera izlazi kontrolna zraka duga 3 m, jednaka dosegu hvatanja zrakom u VR-1.
Provjera: tri osobe različite visine; svima ploča stola mora biti na 750 mm od stvarnog poda, a kontroler položen na pod mora ležati na virtualnom podu. Predaje se snimka hijerarhije igrača, tablica mjerenja za tri osobe i kratki opis provjere zrake.
Oprema i pribor
- projekt VR1_Laboratorij sa scenom L_Laboratorij (V07, V08)
- uređaj A ili B s oba kontrolera, postavljen prostor za igru (V06)
- mjerna vrpca i ljepljiva traka za oznaku visine 750 mm na stupu ili zidu
Pravila koja se primjenjuju
Za stojeći rad u cijeloj sobi ishodište praćenja je na podu: pokretač javlja stvarnu visinu glave, pa se kameri ne dodaje nikakav pomak. Ishodište na visini očiju koristi se za sjedeći rad; tada aplikacija sama dodaje visinu, npr. 1,20 m za sjedećeg korisnika. Kameru vode samo naočale; aplikacija nikad ne pomiče i ne okreće kameru protiv pokreta glave, nego pomiče VR ishodište (npr. pri teleportu).
OpenXR za svaki kontroler daje dvije poze: pozu hvata (engl. grip pose), u sredini šake, za modele i hvatanje, i pozu ciljanja (engl. aim pose), usmjerenu od vrha kontrolera prema naprijed, za zrake. Dobra praksa je čitati položaj kontrolera što kasnije prije iscrtavanja (engl. late update); u mnogim okruženjima to je zadano.
Pažnja
Najčešća pogreška je „dvostruka visina": ishodište je na podu, a kameri je ručno zadana visina 1,70 m. Korisnik se osjeća kao div, a stol mu je pod koljenima.
Crtež
Postupak
- Igrač. U mapi Nacrti izradite nacrt igrača (engl. pawn) BP_VRPijun. Korijen je prazna komponenta VR ishodište.
- Kamera. Kameru dodajte kao dijete ishodišta, na visini 0. Provjerite da kameru vode naočale (opcija se u inačicama različito zove). Ručnu visinu ne upisujte.
- Ishodište praćenja. Na događaj pri pokretanju postavite vrstu ishodišta praćenja na pod (funkcija se može zvati različito).
- Kontroleri. Dodajte dvije komponente kontrolera pokreta s izvorom lijeva i desna ruka, poza hvata. Uključite prikaz modela uređaja koji daje pokretač ili dodajte vlastiti model kao dijete.
- Zraka. Desnom kontroleru dodajte tanak valjak dug 3 m s ishodištem na početku, na pozi ciljanja.
- Početak. BP_VRPijun postavite kao zadanog igrača; početni položaj 0,5 m od stola, okrenut prema njemu.
- Provjera mjerila. Za svaku od tri osobe: kontroler na pod, zatim kontroler na oznaku 750 mm na stupu; usporedite s virtualnim podom i pločom stola. Upišite visinu očiju koju javlja pokretač.
- Provjera zrake. Usmjerite kontroler prema kutu stola i provjerite da zraka pogađa isti kut. Isprobajte ponovno centriranje.
Inačica bez naočala. Hijerarhija i logika izrađuju se bez naočala. U prozoru se za ispitivanje kameri privremeno zadaje visina 1,68 m samo kad VR nije aktivan. U okruženju s C# skriptama može se koristiti simulator XR uređaja; mjerilo i zraku ipak treba provjeriti u naočalama.
Pitanja i zadaci
1. Kada se koristi ishodište praćenja na podu, a kada na visini očiju? Koji je način primjeren za VR-1 i zašto?
Prikaži rješenje
Na podu: stojeći rad i kretanje po prostoru za igru; stvarna visina glave prenosi se u scenu. Na visini očiju: sjedeći rad; aplikacija sama dodaje visinu. VR-1 je stojeći rad uz stol, pa je ishodište na podu: svaki korisnik vidi stol na 750 mm prema vlastitoj visini.
2. Računski. Ishodište je na podu, a kameri je ručno zadano 1,70 m. Na kojoj je visini kamera za korisnika s očima na 1,68 m i kako mu djeluje stol?
Prikaži rješenje
1,68 + 1,70 = 3,38 m. Ploča stola je 3,38 − 0,75 = 2,63 m ispod očiju umjesto 0,93 m, pa korisnik ima dojam da je div, a laboratorij minijatura. Ispravak: ukloniti ručnu visinu.
3. Računski. Oči ispitanika su na 1,52 m i 1,78 m, a jedan radi sjedeći s očima na 1,20 m. Koliko je ploča stola ispod očiju svakome? Treba li stol prilagođavati visini korisnika?
Prikaži rješenje
1,52 − 0,75 = 0,77 m; 1,78 − 0,75 = 1,03 m; 1,20 − 0,75 = 0,45 m. Za stojeće korisnike stol se ne mijenja: mjerilo 1 : 1 znači da je stol jednak stvarnom. Za sjedećeg korisnika dobra je praksa ponuditi podesivu visinu stola ili sjedeći način, jer mu je ploča preblizu i dijelovi su mu nisko ispod pogleda.
4. Zašto aplikacija ne smije okretati kameru ni kad želi usmjeriti pogled korisnika prema točki interesa?
Prikaži rješenje
Vid bi javljao okretanje koje ravnotežni organ ne osjeća, a taj sukob uzrokuje kinetozu. Korisnika se usmjerava zvukom, strelicom ili svjetlom, a pomiče se samo VR ishodište, u koracima i uz korisnikovu radnju.
5. Računski. Model zrake postavljen je na pozu hvata umjesto na pozu ciljanja, pa zraka odstupa za 15° od smjera ciljanja. Koliko promaši točku na 3 m, a koliko na 0,8 m?
Prikaži rješenje
Odstupanje = d · tg 15°. Na 3 m: 3 · 0,268 ≈ 0,80 m; na 0,8 m: 0,8 · 0,268 ≈ 0,21 m. Na 3 m zraka promaši cijeli dio robota, pa hvatanje zrakom postaje nemoguće.
6. Računski. U pojednostavljenom modelu položaj kontrolera pročitan na početku okvira dolazi na zaslon dva okvira kasnije, a uz kasno čitanje jedan okvir kasnije. Koliko je kašnjenje pri 90 Hz u oba slučaja i koji zadovoljava cilj od 20 ms?
Prikaži rješenje
Jedan okvir traje 1000 / 90 = 11,1 ms. Bez kasnog čitanja 2 · 11,1 = 22,2 ms, više od 20 ms. S kasnim čitanjem 11,1 ms, unutar cilja. Stvarno kašnjenje ovisi i o zaslonu i pokretaču.
7. Korisnik podigne lijevu ruku, a u sceni se pomakne desni model. Kako to brzo provjeriti i ispraviti?
Prikaži rješenje
Provjeriti izvor pokreta u obje komponente kontrolera; najčešće su obje postavljene na istu ruku ili zamijenjene. Ispraviti izvor, zatim podići jednu po jednu ruku. Ako se i modeli razlikuju, provjeriti je li lijevi model dijete lijeve komponente.
8. Što se u ovoj vježbi može provjeriti bez naočala, a što ne?
Prikaži rješenje
Bez naočala: hijerarhija, nazivi, vrsta ishodišta u logici, početni položaj, zraka u prikazu scene. Samo u naočalama: stvarna visina kamere, mjerilo prema tijelu, položaj modela u ruci, smjer zrake prema kažiprstu i kašnjenje.
Za nastavnika
Otvori upute za nastavnika
Priprema
Na stupu ili zidu uz prostor za igru označite 750 mm. Provjerite baterije kontrolera i prostor za igru iz V06. Pripremite gotov BP_VRPijun za usporedbu.
Tijek sata
- 10 min: ishodište na podu i na visini očiju, poze hvata i ciljanja (slika V9.1).
- 35 min: koraci 1–6.
- 30 min: provjera mjerila i zrake s tri osobe po skupini.
- 15 min: pitanja, osobito 2 i 5.
Očekivani rezultati
Pokretač javlja visinu očiju blisku izmjerenoj (do 2 cm), kontroler na podu leži na virtualnom podu, oznaka 750 mm poklapa se s pločom stola, zraka pogađa kut stola s udaljenosti 1–2 m.
Česte pogreške
- dvostruka visina kamere
- zraka na pozi hvata, pa pokazuje ukoso prema dolje
- oba kontrolera na istom izvoru pokreta
- zaboravljeno postaviti novog igrača kao zadanog
Vrednovanje
| Kriterij | Bodovi |
|---|---|
| Hijerarhija igrača i ishodište na podu | 5 |
| Kontroleri s modelima, ispravna ruka | 4 |
| Zraka na pozi ciljanja | 3 |
| Tablica mjerenja za tri osobe | 4 |
| Odgovori na pitanja s postupkom | 4 |
| Ukupno | 20 |