Hello Developers,
Samsung bekerja sama dengan Oculus mengembangkan sebuah perangkat VR yang bernama Samsung Gear VR yang didesain khusus untuk kenyamanan dalam bermain game/aplikasi. Saat ini sudah lebih dari 700 aplikasi/game tersedia di Oculus Store dan spesifikasi device yang digunakan pun cukup tinggi sehingga kualitas dalam bermain sangat terjamin.
Samsung Gear VR sudah terdapat teknologi seperti kontrol tap dan swipe, serta beberapa tombol untuk memudahkan pengguna untuk bermain. Jadi untuk bisa menghubungkan kontrol tersebut harus menghubungkan usb mini yang terdapat di GearVR ke Device. Device-device yang dapat digunakan hanya smartphone dengan batasan tertentu yang bertujuan menjaga kualitas dan kepuasan dari pemain. Device yang dapat digunakan seperti Samsung S6, Samsung S6 Edge, Samsung S7, Samsung S7 Edge, Samsung Galaxy Note 5, Samsung Galaxy S8 dan Samsung Galaxy S8+.
💻 Mulai Belajar Pemrograman
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.
Daftar SekarangBaca Juga: Indonesia Next Apps 4.0 – Gear VR Challenge
Dalam mengembangkan Game, developer dituntut untuk membuat game yang menarik dan menyenangkan. Untuk memenuhi hal tersebut, Developer harus mencoba dan merasakan atmosfer terbaik sehingga mendapatkan ide dan inspirasi dari game tersebut. Di tutorial ini akan menjelaskan bagaimana membuat game VR dengan mudah dapat dimainkan di Cardboard maupun di Gear VR. Sehingga Anda dapat mencoba game di device manapun.
Membuat Project VR Sederhana
Buat Project 3D baru
Buka Aplikasi Unity dan kemudian buat project 3d baru dengan nama SampleVRUniversal. Kemudian klik Create Project
Kemudian masukkan Object 3D sederhana dengan cara klik kanan pada Hierachy -> 3D Object -> Cube. Atur posisi di X=0, Y=0, dan Z=0 supaya terlihat di kamera seperti di bawah ini :
Kemudian tambahkan pointer. klik kanan pada Main Camera -> 3D Object -> Sphere. Atur posisi Z dengan nilai 2 dan scale 0.05. Jangan lupa hapus Component Sphere Collider. Lengkapnya seperti gambar di bawah ini:
Setelah itu, masukkan SDK Cardboard ke project. Sebelumnya Anda juga harus mengunduh plugin Google VR for Unity.
Kemudian masukkan package yang telah diunduh dengan cara klik menu Assets > Import Package > Custom Package… dan cari file GoogleVRForUnity.unitypackage yang telah diunduh dan klik Import. Untuk mengubah tampilan kamera menjadi mode VR, cukup drag prefab GvrEditorEmulator ke Hierarchy.
Selanjutnya, drag object Main Camera ke dalam game object GvrEditorEmulator seperti di bawah ini :
Maka secara otomatis tampilan game Anda sudah menjadi mode Virtual Reality (VR).
Menambahkan Script pada Cube
Setelah itu kita membuat script yang sekiranya dapat digunakan baik di Cardboard maupun di GearVR. Tambahkan script pada game object Cube dengan cara klik Add Component > New script. Contoh nama script TeleportUniversal.cs. Kemudian tulis script seperti di bawah ini.
Contoh Script untuk Select object seperti di bawah ini:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
void Update () { RaycastHit hit; Vector3 posMainCam = Camera.main.transform.position; Vector3 direction = Camera.main.transform.TransformDirection(Vector3 .forward); if ( Physics.Raycast(posMainCam, direction, out hit)) { if (hit.transform.name.Equals( "Cube")) { // ketika pointer diatas object yang bernama "Cube" if ( Input.GetMouseButtonDown(0)) { // ketika klik/tap Object yang bernama "Cube" } } } else { // Ketika pointer diluar object } } |
Contoh sederhana yang kita lakukan terhadap object “Cube” adalah yang pertama mengubah warna ketika pointer di atas object.
1 2 3 4 5 6 7 8 9 10 11 12 |
public void IsSelected(bool selected) { GetComponent<Renderer>().material.color = selected ? Color.green : Color.red; } Kemudian membuat object Cube berpindah ketika diklik/ditap public void Teleport() { Vector3 direction = Random.onUnitSphere; float distance = 5 * Random.value + 1.5f; transform.localPosition = Camera.main.transform.localPosition + direction * distance; } |
Jadi keseluruhan dapat ditulis seperti ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
using UnityEngine; public class TeleportUniversal : MonoBehaviour { void Update() { RaycastHit hit; Vector3 posMainCam = Camera.main.transform.position; Vector3 direction = Camera.main.transform.TransformDirection(Vector3 .forward); if ( Physics.Raycast(posMainCam, direction, out hit)) { if (hit.transform.name.Equals( "Cube")) { // ketika pointer diatas object yang bermana Cube IsSelected( true); if ( Input.GetMouseButtonDown(0)) { // ketika klik Object yang bernama Cube Teleport(); } } } else { // Ketika pointer diluar object IsSelected( false); } if ( Input.GetKeyUp( KeyCode.Escape)) { Application.Quit(); } } public void Teleport() { Vector3 direction = Random.onUnitSphere; float distance = 5 * Random.value + 1.5f; transform.localPosition = Camera.main.transform.localPosition + direction * distance; } public void IsSelected( bool selected) { GetComponent< Renderer>().material.color = selected ? Color.green : Color.red; } } |
Menjalankan di Device Android untuk Cardboard
Pastikan device android Anda support Gyroscope. Kemudian masuk ke Build Settings yang berada di menu File > Build Settings. Jangan lupa untuk menyimpan Scene dan menambahkannya di list scenes. kemudian switch ke platform Android seperti gambar di bawah ini :
Setelah itu buka Player Settings, pastikan Default Orientation menjadi Landscape Left.
Dan pada pilihan Other Settings pastikan Virtual Reality Supported sudah dalam keadaan tercentang. Pada bagian Virtual Reality SDKs isikan dengan Cardboard karena akan di build untuk Google Cardboard. Lebih lengkapnya seperti gambar di bawah ini.
Sebelum melakukan build, pastikan sudah mengisi package name, Bundle Version Code serta memasukkan keystore pada pilihan Publishing Settings.
Kemudian Klik Build and Run pada jendela Build Settings.
Hasil Screenshot sebagai berikut:
Jika pointer mengarah ke arah box maka box akan berubah menjadi warna hijau. Kalau pointer tidak diarahkan ke arah box maka box akan berwarna merah. Cara mengujinya dengan arahkan pointer ke arah box merah dan tap layer. Setiap object di tap maka akan berpindah tempat.
Porting Project ke Gear VR
Apabila ingin di porting menuju Gear VR, maka terdapat sedikit perubahan setting yang harus dilakukan. Pertama yang harus dilakukan adalah Anda harus mendapatkan Device ID dari Smartphone yang anda gunakan untuk menjalankan game di Gear VR.
Untuk mendapatkan Device ID, Anda dapat menggunakan Device Id Fetch di Device Android atau Anda juga bisa menggunakan adb dengan masuk ke directory /platform-tools pada Android SDK dengan menulis command berikut : adb devices kemudian Enter dengan hasil contoh sebagai berikut:
Setelah mendapat Device ID maka masuk pada laman Oculus Signature File (osig) Generator dan masukkan Device ID pada kolom yang tersedia seperti gambar di bawah ini :
Unduh file Osig tersebut, kemudian buat folder /Assets/Plugins/Android/assets didalam Project View setelah itu letakkan file osig tersebut di dalam folder assets seperti gambar di bawah ini.
Untuk mengoptimalkan rendering texture, pada Build Settings gunakan ETC2 (GLES 3.0) pada pilihan Texture Compression.
Kemudian klik Player Settings dan pada pilhan Other Settings pastikan Virtual Reality Supported tercentang. Karena tujuan build nanti untuk Gear VR, maka pada Virtual Reality SDKs pilih Oculus. Jangan lupa isikan Package Name dan Minimum API level adalah Kitkat (API 19).
Kemudian klik Build and Run maka hasilnya seperti di bawah ini :
Ketika sudah dicolokkan dengan Samsung Gear VR maka akan masuk ke permainan.
Dari game di atas, Anda dapat mengembangkan dengan menggunakan Controller, Anda dapat kunjungi artikel Mengembangkan Game dengan Gear VR dan Controller
Artikel ini mengacu pada Membuat Project Sederhana yang Dapat Berjalan di Cardboard maupun Gear VR dengan pembaruan dan perubahan seperlunya. Tulisan ini diuji pada tanggal 22 Agustus 2017