Mengembangkan Game Unity ke Samsung Gear VR

Ariska Hidayat 5 Agustus 2016

Mengembangkan Game Unity ke Samsung Gear VR
Teknologi VR  merupakan teknologi baru yang sedang tidak hanya ramai dibicarakan dikalangan para developer namun juga kalangan pecinta teknologi yang dimana user dapat menikmati teknologi dengan cara baru. Terlebih lagi Samsung mengeluarkan Samsung Gear VR yang bekerja sama dengan Oculus dimana user dapat merasakan sensasi "virtual" masuk ke level selanjutnya. Selain itu, Oculus Store juga dapat diakses oleh para pengguna Samsung Gear VR  yang menjadi daya tarik user untuk mengakses konten-konten VR terbaik.
Kali ini, saya akan membahas tentang bagaimana cara porting game unity ke samsung gear VR. Game yang support cardboard belum tentu bisa jalan di samsung gear VR karena Gear VR menggunakan teknologi dari Oculus. Oleh karena itu dibuatlah tutorial ini.

Tujuan dari tutorial ini adalah memudahkan mengembangkan game Unity ke GearVR. Beberapa hal akan dijelaskan secara bertahap sehingga mudah dipahami.

Sebelum memulai tutorial ini, Kamu harus menyiapkan koneksi Internet yang cukup.

 

Menyiapkan Software untuk pengembangan GearVR di Unity

Berikut ini software yang diperlukan untuk mengembangkan Samsung Gear VR:
  • Unity 5.4.0f3
  • Java Development Kit 8 (JDK)
  • Android SDK 6.0 and SDK Tools
 

Java Development Kit 8 (JDK)

Buka laman Java SE Development Kit 8 Downloads. Kemudian download dan instal JDK-8u101

Java Development Kit 8 (JDK)

Android SDK 6.0 and SDK Tools

Buka laman Android Studio dan Android SDK kemudian pilih Download Options dan cari installer_r24.41-windows.exe pada SDK tools package. Instal dan download

Android SDK 6.0 and SDK Tools

setelah selesai di instal, kemudian buka SDK Manager

Android 6

Kemudian Instal beberapa package dibawah ini:

  • Android Platform-tools (latest version)
  • Android SDK Build-tools (23.0.3)
  • Android 5.0.1 (API 23)
Note: Asalan kenapa tidak menggunakan API 24 karena sering terjadi gagal build ke APK. Unity belum support untuk Android versi 24.

Unity 5.4.0f3

Jika masih menggunakan versi yang lama, silahkan download unity yang terbaru disini https://store.unity.com/download

Choose Components Instal Unity

Ketika mengintal unity, diperlukan juga  untuk tambakan Android Build Support untuk membuat APK. kemudian Install Unity sampai selesai.

 

Menyiapkan Project dan Konfigurasi Project untuk Gear VR

Membuat Project Baru

Pertama-tama kita buat project baru dengan nama TestGearVR dan dengan mode 3D.

New Project

External Tools

Cek konfigurasi JDK dan Android SDK pada Unity, dengan klik menu "Edit" > Pilih Preferences.. Setelah keluar jendela Unity Preferences kemudian buka tab "External Tools" dan lengkapi path folder Android SDK dan JDK.

Unity Preferences

TimeManager

Kemudian buka TimeManager dengan cara klik menu Edit > Project Setting > Time. kemudian lihat tab pada Inspector. Atur Frame per Second (FPS) dengan memberi nilai Pixed Timestep dan Maximum Allowed pada nilai 60 FPS supaya game dapat berjalan secara performa dari device dan tetap menjaga kualitas grafis dari game tersebut. maka mendapatkan rumus sebagai berikut: 1 Second / 60 FPS =  0.01666666 Second per Frame

Time Manager

Build Settings

Buka menu File > pilih Build Settings...

Pada jendela Build Settings, Ubah Platfrom ke Android dan ubah juga Texture Comperssion ke ETC2(GLES 3.0)

switch platform

 

Player Settings

Pengaturan Player settings ada di Menu Edit > Project Settings > Player. Kemudian lihat Player Settings di tab Inspector dan Lihat di bagaian Resolusi and Presentation

Resolusi

Atur Default Orientation ke Landscape Left dan buka Other Settings

other settings

Untuk mengubah ke mode GearVR maka perlu diberi centang pada Virtual Reality Support. Namun perlu diketahui jika mengaktifkan Virtual Reality Support maka hanya dapat dimainkan dengan device yang support Gear VR. Kemudian jangan lupa mengisi BundleIndentifier dan rekomendasi Minimum API Level ada Android 4.4 (kit kat)

publish Settings

Setelah itu kemudian lengkapi Keystore dan Key Alias pada Publishing Settings

Quality Settings

Kemudian untuk memberi performa game maka perlu mengatur di quality settings dengan cara klik menu Edit > Project Settings > Quality

quality settings

Jika Pixel Light Count diberi nilai 0 maka akan mempercepat kinerja rendering tetapi semua itu juga tergantung shadder yang digunakan. sedangkan Anti Aliasing di disable maka akan mempercepat kinerja GPU pada mobile.

Kemudian setelah itu membuat contoh project sederhana untuk Gear VR

Menyiapkan project sederhana untuk Gear VR

Membuat Object Sederhana

Kemudian memasukkan object sederhana misal object kubus dengan klik kanan pada tab Hierarchy > 3D Object > Cube.

create cube

Kemudian setelah Cube tercipta kemudian atur position dan rotation berada di center dengan memberi nilai 0 semua.

atur transform pada cube

kemudian membuat 3D text dengan klik kanan pada tab hierarchy kemudian pilih 3D Object > 3D Text.

create 3D text

Setelah 3D text tercipta kemudian atur Position dengan memberi nilai 5 pada sumbu Y dan pada text, atur Anchor menjadi Upper center.

atur 3D text

 

Kontrol Input

Untuk input dari device GearVR kita bisa menggunakan fungsi mouse dan tombol escape pada keyboard yang berfungsi sebagai tombol back. Untuk memudahkan kita menggunakan InputManager yang berada di menu Edit > Project Settings > Input. kemudian buka Axes > Fire1

input mouse 0

pada Fire1, pada kolom Alt Positive Button pastikan berisi mouse 0

input escape

Pada  Cancel, pada kolom Positive Button pastikan berisi escape

mouse movement x

Pada  Mouse X, pada kolom Type pastikan berisi Mouse Movement dan kolom Axis berisi X axis

mouse movement y

Pada  Mouse Y, pada kolom Type pastikan berisi Mouse Movement dan kolom Axis berisi Y axis

 

Memberi Script Input

setelah Object sudah tercipta, kemudian memberi script di masing-masing object.

membuat script CubeDetect

pada Object Cube, beri script dengan klik Add Component pada Inspector Cube dan beri nama CubeDetect. dan beri code seperti dibawah ini:

using UnityEngine;
public class CubeDetect : MonoBehaviour {


    bool isCubeBig = false;

    // Update is called once per frame
    void Update () {
        if (Input.GetButtonDown("Fire1")) 
        {
        
                isCubeBig = !isCubeBig;
                if (isCubeBig)
                {
                    transform.localScale = new Vector3(3, 3, 3);
                }
                else
                {
                    transform.localScale = new Vector3(1, 1, 1);
                }
            
        }

        if (Input.GetButtonDown("Cancel"))
        {
            // ketika menekan tombol back
            Application.Quit();
        }
    }
}

kemudian untuk bisa mengehui apakah informasi tentang swip maka pada New Text kita beri script dengan nama TextInfo.

add Script pada 3D text

kemudian isi script TextInfo.cs sebagai berikut:

using UnityEngine;

public class TextInfo : MonoBehaviour
{

    // Update is called once per frame
    void Update () {
        if (Input.GetAxis("Mouse X") < -0.5f)
        {
            //Code for action on mouse moving left
            transform.GetComponent<TextMesh>().text = ("swip left");
        }
        if (Input.GetAxis("Mouse X") > 0.5f)
        {
            //Code for action on mouse moving right
           transform.GetComponent<TextMesh>().text = ("swip right");
        }

        if (Input.GetAxis("Mouse Y") < -0.5f)
        {
            //Code for action on mouse moving left
            transform.GetComponent<TextMesh>().text = ("swip down");
        }
        if (Input.GetAxis("Mouse Y") > 0.5f)
        {
            //Code for action on mouse moving right
            transform.GetComponent<TextMesh>().text = ("swip up");
        }
        
    }
}

 

Setelah membuat contoh project kemudian dicoba di Samsung Gear VR

Menguji coba di Samsung Gear VR

Instal Driver USB

Download dan instal driver Samsung Android USB Driver for Windows. Dan perhatikan ketika mengintal driver tidak sedang mencolokan usb dengan device Samsung.

download driver samsung

Instal sampai selesai

Mengaktifkan Developer Mode pada Device

Buka About Device > Software info > ketuk beberapa kali pada Build Number

tekan build number pada device samsung

Kemudian pada menu setting aktifkan Developer options dan USB debugging

aktifkan developer mode

Mendapatkan Oculus Signature File (Osig)

Semua aplikasi yang mengakses fungsi VR harus menggunakan sebuah signature unik yang dibuat dari sebuah ID Device. Signature ini akan mengakses fungsi low-level device melalui API yang tersedia di Oculus Utilities for Unity 5

Sambungkan device dengan komputer yang anda gunakan melalui kabel usb. Kemudian buka Command Prompt pada windows.

Masuk ke directory /platform-tools pada android SDK dengan command dibawah ini:

CD [pathToAndroidSDK]/platform-tools

Kemudian tulis:

adb devices

cek ID device

Setelah muncul ID Device, kemudian buka laman Oculus Signature File (osig) Generator dan salin ID Device yang ada di Command Promp ke kolom Device ID pada halaman Osig Generator.

download osig

Download file Osig tersebut, kemudian buat folder /Assets/Plugins/Android/assets didalam Project View setelah itu letakkan file osig tersebut didalam folder assets yang telah didownload.

import osig ke project unity

 

Build dan Deploy ke Device

Terakhir menguji game ke device dengan klik menu File > Build Setting.. > dan klik Build and Run

build n run

Jangan lupa untuk menambahkan scene dengan klik Add Open Scenes. setelah itu klik Build And Run.

hasil screenshot dari Samsung Galaxy S7 + Samsung Gear VR

screenshot

Contoh ini dapat didownload: https://github.com/Ariska138/TestGearVR

Pengembangan Lanjut...

Untuk memudahkan dalam pengembangan game. ada beberapa link yang sekiranya bermanfaat:

Oculus Audio SDK Plugins, berfungsi untuk memaksimalkan kualitas audio dan sudah terdapat beberapa contoh.

VR Samples, terdapat beberapa contoh-contoh game yang menarik yang dapat diintegrasikan dengan GearVR

 

Informasi juga buat developer yang tertantang untuk membuat Game/Aplikasi Gear VR anda bisa mengikut Challenge Dicoding dan juga sudah tersedia Device Gear VR untuk Testing di Berbagai Daerah. Untuk lebih lanjut, anda dapat kunjungi link dibawah ini:

Gear VR Challange: Create Virtual Reality Applications or Games for Samsung Gear VR Device

 

*Tutorial ini memungkinkan akan ada update tanpa ada konfirmasi terlebih dahulu.