Ebben a leírásban olvashatsz részletesen arról, hogy hogyan építs fel VR Unity játékot, tölts be és futtass egy egyszerű Unity3D alkalmazást Oculus Rift vagy Samsung Gear VR eszközökön.

A dokumentáció célja, hogy bevezetésül szolgáljon azon fejlesztők számára, akik még újak a VR fejlesztésben és a Unity-ben. Miután az alapvető eszközöket beállítottuk, az alkotási folyamat pár órát fog igényelni. A végén lesz egy mobil applikációd, amelyet Oculus Rift vagy Gear VR-ral tudsz majd játszani, így nyűgözheted le a szeretteid és barátaid.

A Unity-s Roll-a-ball nevű játékot fogjuk módosítani, amelyhez VR képességet fogunk adni. A játékot vezérelhetjük majd billentyűzetről vagy Samsung EI-GP20 kontrollerről.

VR Unity alapok 1. Amire szükség lesz:

  • Oculus Rift vagy Gear VR kompatibilis Samsung telefonnal
  • Samsung EI-GP20 kontroller (szükséges mobilhoz, opcionális asztali géphez)
  • PC Windows 7/8/10-zel vagy Mac OSX 10-zel
  • Unity 4

A fejlesztéshez szükség lesz az SDK leírásása is. A releváns Oculus SDK dokumentációja itt megtalálható:
https://developer.oculus.com/documentation/

Érdekel a játékfejlesztés? Gyere el bemutató napunkra!

Telepítés és előkészület:

1. Telepítsük a megfelelő Oculus SDK és állítsuk be

Asztal gép: Töltsük le az Oculus PC SDK and Unity Integration-t a https://developer.oculus.com/downloads/#sdk=pc címről. Állítsuk a “Oculus Rift Getting Started Guide” alapján. Siker esetén le kell tudni futnia a leírásban szereplő demónak.

Mobil: Töltsük le a Oculus Mobile SDK-t a https://developer.oculus.com/downloads/#sdk=mobile címről. Állítsuk a Device and Environment Setup Guide alapján. Siker esetén a gépnek már kommunikálni kell tudni a Samsung telefonnak USB-n keresztül. Ahhoz, hogy ezt ellenőrizzük, kérjük le a eszköz ID-t a telefonról USB-n át és küldjünk ki egy “adb devices” utasítást a parancssorból. Ha a kommunikáció sikeres, a telefonnak válaszként az eszköz ID-t kéne adnia. Erre az azonosítóra később még szükség lesz, így érdemes felírni.

2. VR Unity telepítése

Ellenőrizzük a kompatibilitást ezen az oldalon: https://developer.oculus.com/documentation/unity/latest/concepts/unity-req/ majd töltsük le a megfelelő verziót: Unity dokumentáció A Unity részletes dokumentációval szolgál arra, hogy bevezesse a felhasználókat a fejlesztőkörnyezetbe. Érdemes áttanulmányozni ezeket a leírásokat, hogy megismerkedjünk az olyan koncepciókkal mint az Editor, GameObjects, prefab, project, vagy scene.

3. Alapozás a Unity Roll-a-ball játékával

VR unity Roll-a-ball

VR unity Roll-a-ball

A Unity számos oktatóvideóval szolgál, amely átvezet az egyszerű játékok készítésének folyamatán. Az első ilyen videó bemutatja a Roll-a-ball nevű játék elkészítését, amelyben billentyűzettel vagy kontrollerrel vezérelhetünk egy labdát a pályán és azzal véve fel különböző tokeneket. A leírást itt lehet elérni: https://unity3d.com/learn/tutorials/s/roll-ball-tutorial

A fejlesztési folyamatot nyolc rövid videó mutatja be, amelyek 5-15 perc hosszúságúak. Néhány óra alatt elkészíthető a játék. Az utolsó videó bemutatja, hogy hogyan publikálhatjuk a játékot ahhoz, hogy webböngészőben is lehessen vele játszani. Ezt a lépést ki lehet hagyni, mivel ebben a leírásban mi PC/Mac és Android vonalra fejlesztünk.

Az asset-ekre, mappákra a Unity leírásban szereplő névvel fogunk hivatkozni, így könnyebb lesz követni a példákat.

4. Duplikáljuk a Roll-a-ball projektet

Miután elkészítettük a Roll-a-ball játékot, érdemes ezt duplikálni, hogy tovább lehessen fejleszteni VR játékká. Ha esetleg valamit elrontunk, az eredetiből így könnyen helyre tudjuk majd hozni.

A duplikáláshoz annyit kell tennünk, hogy a Unity projekt könyvtárában készítünk egy másolatot a játékról, majd átnevezzük azt például “Roll-a-ball-VR” nevűre.

5. Projekt indítása a scene előkészítése

  1. Indítsuk el a Unity projektet: File/Open Project és válasszuk ki a Roll-a-ball-VR projektet a listából
  2. Project fülön nyissuk meg az Assets/Scenes menüt és válasszuk a MiniGame opciót
  3. Nyomjunk F2-t és nevezzük át “VRMiniGame”-re
  4. Nyissuk meg a VRMiniGame scene-t

Roll-a-ball módosítása VR Unity-hoz

1. Oculus Unity Integration Package importálása

  1. Unity-ben válasszuk ki az Assets/Import Package/Custom Package opciót
  2. PC SDK: Nyissuk meg az OculusUnityIntegration mappát és válasszuk ki a OculusUnityIntegration.unitypackage opciót, majd Open
  3. Mobile SD: Nyissuk meg az UnityIntegration mappát a VrUnity-ben és válasszuk ki a UnityIntegration.unityPackage opciót, majd Open
  4. Megnyílt a Unity Import Package párbeszédablaka, ahol listába szedve láthatjuk a csomag asset-jeit. Válasszuk ki az összeset és Import

További integrálással kapcsolat dokumentációkat itt találhtjuk meg: https://developer.oculus.com/documentation/unity/latest/concepts/unity-integration-overview/#unity-integration-integration

2. Main Camera cseréje OVRCameraRig-re

Továbbiakban ki fogjuk cserélni a Roll-a-ball Main Camera objektumát OVRCameraRig-re, amely egy Oculus VR kamera. A OVRCameraRig két különböző sztereóképet renderel kis torzítással.

A Main Camera követi a játékos labdáját, de úgy fogjuk módosítani az egész játékteret nézze egy fix pozícióból, így a játékos bármilyen szögből tud majd nézelődni. Ahelyett, hogy törölnénk a Main Camera-t, csak tegyük inaktívvá a scene-ben. Válasszuk ki a Main Camera-t a Hierarchy nézetben és a jelölőnégyzetből szedjük ki a pipát az Inspector nézet bal felső részében.

VR unity Main Camera

VR unity Main Camera

Megjegyzés: Egyszerre csak egy kamera lehet aktív egy Unity scene-ben.

Project nézetben nyissuk meg az OVR mappát és válasszuk kia Prefabs könyvtárat. Válasszuk ki az OVRCameraRig-et és húzzuk be a Hierarchy nézetbe, hogy betöltsük.

3. Emeljük az OVRCameraRig-et a játéktér fölé

Válasszuk ki az OVRCameraRig-et a Hierarchy nézetben és állítsuk az OVRCameraRig Transform-nak a Position mezőit erre: X = 0; Y = 10; Z = -15

4. Forgassuk OVRCameraRig előrefelé a jobb látványért

Állítsuk az OVRCameraRig Transform-nak a Rotation mezőit erre: X = 35; Y = 0; Z = 0

Lépjünk be játékmódba a Play gomb megnyomásával. A Game nézet két különböző, torzított képet renderelni az alábbi képekhez hasonlóan. Ha PC SDK-t használunk, egy egészségügyi figyelmeztetés fog megjelenni, de ezt bármely gomb megnyomásával átléphetjük.

VR unity Camera

VR unity Camera

5. Mentsük el a scene-t és a projektet build-elés előtt.

6. Írjuk alá az alkalmazást (csak mobil esetén).

Ahhoz, hogy hozzáférjünk a Samsung telefon VR képességeihez, alá kell írnunk a programot egy Oculus Signature File (osig)-gal. Ha a korábbiakban felírtuk a device ID-t, akkor használhatjuk azt az osig fájl igényléséhez. Egy eszközhöz csak egy osig-ra lesz szükségünk.

A következő linken szerezhetünk osig fájlot: https://dashboard.oculus.com/tools/osig-generator/
Miután beszereztük az osig fájlot, másoljuk be a Unity projekt mappába a /Roll-a-ball-VR/Assets/Plugins/Android/assets -be.
Az alkalmazások aláírásáról részletesebben itt olvashatunk: https://developer.oculus.com/documentation/mobilesdk/latest/concepts/mobile-submission-sig-file/

Build és játék

Build és indítás

Ha számítógépre fejlesztünk, akkor indítható fájlra lesz szükségünk, amelyet PC-n vagy Mac-en futtathatunk. Amennyiben mobilra készítjük el a programunkat, akkor egy APK fájlot kell készítenünk és betöltenünk a telefonon, majd csatlakoztatnunk kell a Gear VR-t a játék indításához. A build lépésekről részletesebben itt olvashatunk: https://developer.oculus.com/documentation/unity/latest/concepts/unity-integration-build/#unity-integration-build

A játék

Indítsuk el és próbáljuk ki! Billentyűzet vagy Samsung kontroller is használható ahhoz, hogy felszedjük az objektumokat.

Megjegyzés: A GUIText, amit a Roll-a-ball leírás alapján készítettük nem működik OVRCameraRig kisebb módosítások nélkül, így nem fogjuk látni a számlálót vagy azt hogy “You win!” miután mindent felszedtünk.

Játék indítása Gear VR-ral

A Samung indulóképernyőjén az Apps kiválasztása után látnunk kell egy Roll-a-ball-VR alkalmazást a többi mellett. Innen közvetlenül is elindíthatjuk, majd ha jelez, csatlakoztassuk a Gear VR-t. Ez nem lesz látható Oculus Home-ból.

Forrás: Oculus Developer Documentation

Skeldar