Table of Contents

Laboratorul 06. Google Cardboard

Pentru laboratoarele de VR va trebui să descărcați acest repo: https://github.com/Andrei-Lapusteanu/IRVA_VR. We strongly recommend să vă clonați repo-ul (nu download .zip) întrucât vor exsita update-uri la acesta!

Introducere

Google Cardboard (XR Plugin for Unity) este un SDK ce permite dezvoltatorilor să creeze experințe în realitate virtuală folosind dispozitive mobile (smartphone-uri) în motorul de jocuri Unty. Acest plugin este destinat utilizării împreună cu Google Cardboard (vezi imaginea de mai jos), un dispozitiv de tip holder pentru telefoane, ce permite o variantă low-cost de a experimenta cu realitatea virtuală.

Aceste dispozitive de tip holder se pot achiziționa de la diverse brand-uri – se pot achiziționa, de asemenea, controller-e de tip joystick ce comunică pe Bluetooth cu telefonul, pentru a avea un control sporit în scenele virtuale (de exemplu, se poate implementa movement-ul sau diferite interacțiuni folosing aceste controller-e).

În continuare puteți studia un demo ce prezintă laboratorul cu task-urile rezolvate (fără bonus-uri):

<video here, eventually>

Higlights tehnologie

În mod evident, soluțiile dedicate pentru VR (HTC Vive, Meta Quest 2/3, Meta Pro, etc.) oferă o experiență virtuală mult superioară procesării posibile pe un smartphone, dar acest plugin ne permite să avem un “taste” al tehnologiei VR într-un mod accesibil.

Overview laborator

În cadrul acestui laborator:

Google Cardboard XR Plugin for Unity este deja intergrat și configurat (pentru Android).Quickstart-ul pentru setup se poate găsi aici: https://developers.google.com/cardboard/develop/unity/quickstart

În mod ideal, testarea funcționalităților din laborator se face folosind un dispozitiv de tip holder VR pentru smartphone, dar se poate testa și în absența acestuia. De asemenea, nu este necesară folosirea unui joystick pentru mobile.

În continuare puteți studia un demo ce prezintă laboratorul cu task-urile rezolvate (fără bonus-uri):

<video here, eventually>

Testarea scenei sample

Scena demo sample:

Ierarhia scenei sample:

Testarea scenei sample

Implementarea jocului

Veți avea de implementat un joculeț în care se spawnează în mod contnuu baloane, care pot fi sparte dacă player-ul le privește pentru un timp îndelungat – așadar, ne folosim de acest concept de gaze interaction. O parte a jocului este deja implementată, voi va trebui sa urmăriți todo-urile din cod pentru rezolva complet laboratorul.

Task-uri

  1. Realizați un build folosing scena sample din plugin – validați funcționarea corectă a acestui build – ar trebui sa aveți un render stereoscopic, să se realizeze head tracking-ul, iar obiectul ‘Treasure’ din scenă ar trebui să-și schime culoarea dacă reticle-ul player-ului interacționează cu aceasta
  2. Instanțiați obiectele de tip balon din script-ul de spawner. Calculați, de asemenea, poziția acestora de instanțiere
  3. Realizați translația baloanelor instanțiate – în cel mai simplu mod, translatați-le cu o viteză constantă pe axa Y
  4. Implementați mecanica de spargere a baloanelor – întâi, setați flag-ul ce denotă faptul că un balon este privit (targeted), iar apoi, implementați logica de timer. În esență, atât timp cât balonul este privit, acest timer trebuie incrementat – daca timpul contorizat este mai mare decât o limită impusă, spargeți balonul folosind metodele deja implementate
  5. Implementați funcționalitatea de scor – un balon spart de player reprezintă un punct primit, un balon spart de catre BalloonPopper reprezintă un punct scăzut. ScoreController și BalloonPopper conțin todo-urile relevante acestui task