Modul Membuat Game dengan Unity 3D Engine Tutorial step by step dari nol hingga mahir Deni Kurnia
12
Donasi 50% buat Anak Yatim Yth. Pembaca... Tutorial ini bersifat free...silahkan dibagikan ke semua yang membutuhkannya...Jika tutorial ini memberikan manfaat dan menambah pengetahuan pembaca semua, lalu anda berniat mau menyisihkan sebagian rejekinya untuk berdonasi sebagai salah satu bentuk apresiasi...Silahkan melalui rekening BCA 008 043 3476 an Deni Kurnia.
Jazakumullohu Khoir...
Selamat Belajar!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Bab 1 MODUL TINGKAT DASAR
1.1. Instalasi Unity3D Game Engine Pernahkan Anda bermain game ? Kalau pernah, mengetahui bagaimana cara membuatnya ?
pernahkah berpikir untuk
Nah, saat ini banyak tools/software yang dipakai untuk membuat sebuah game. Salah satu software tersebut adalah Unity3D. Unity3D merupakan salah software game development yang lengkap. Source-nya dapat di-download melalui tautan http ://unity3d.com . Kita dapat menggunakan versi trial-nya untuk mengeksplorasi fitur-fitur apa saja yang terdapat dalam software ini.
Catatan : Pada modul ini, penulis menggunakan Unity3D versi 3.4.05. Anda dapat menggunakan versi terbaru dengan proses instalasi yang kurang lebih sama dengan versi yang dipakai pada modul ini.
Untuk memahami proses instalasi Unity3D, ikuti langkah-langkah sebagai berikut : 1. Setelah proses download selesai. Klik folder tempat Unity3D tersebut di letakkan. Lalu pilih file setup.exe Lihat Gambar 1.1
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 1.1 Welcome Setup Unity 3.4
2. Pilih Next
Gambar 1.2 License Agreement
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
3. Pilih I Agree>Next, lalu pilih option seperti gambar 1.3
Gambar 1.3 Choose Components
4. Pilih folder tempat instalasi, tekan Install
Gambar 1.4 Pilih Folder tempat instalasi
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Tunggu sampai proses selesai dan muncul jendela sepert gambar 1.5
Gambar 1.5 Proses instalasi selesai
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
1.2.
Memahami User Interface Unity3D
Pada saat membuka Unity3D, maka akan muncul tampilan sebagai berikut :
Gambar 1.6 Welcome Screen Unity
Untuk sementara Welcome Screen ini anda close dulu saja, agar kita langsung menuju ke jendela kerja Unity seperti gambar 1.7
Gambar 1.7 Jendela Kerja Unity3D versi 3.4
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Secara garis besar, area kerja Unity3D dibagi menjadi 6 bagian utama sebagai berikut : 1. Scene
Gambar 1.8 Scene View
Scene adalah tempat ditampilkannya seluruh asset yang terdapat dalam jendela Project View (lihat penjelasan Project View). Lalu apa yang disebut dengan asset ? Asset merupakan komponen yang digunakan untuk membangun project/game. Di dalam asset ini biasanya tersusun dari beberapa folder yang didalamnya tersimpan model , texture, image, material, script, dll.
2. Game Game adalah tempat ditampilkannya aplikasi yang dibuat di Scene View. Ketika anda mengaktifkan jendela game, maka game/project yang anda buat dapat di jalankan di jendela game view ini. Coba sekali lagi bedakan antara Game View dengan Scene View!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 1.9 Game View
3. Project Jendela Project adalah tempat semua asset ditampilkan.
Gambar 1.10 Jendela Project
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Didalam jendela project, Unity menyediakan fasilitas membuat : - folder - Javascript - C# Script - Boo Script - Shader - dst. (lihat gambar 1.10) Caranya, anda tinggal klik menu create di jendela project, lalu akan muncul sub menu seperti gambar 1.10. Penjelasan fasilitas ini akan dijelaskan pada Bab 2 (modul tingkat menengah).
4. Hierarchy Hierarchy / hirarki merupakan tempat beradanya game object pada scene yang sedang aktif. Ketika kita berpindah scene, maka komponen dalam hierarchy akan berubah mengikuti scene yang sedang aktif. Coba perhatikan gambar 1.11
Gambar 1.11 Hierarchy Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Inspector Inspector adalah properties-nya suatu game object dalam unity. Contoh : apabila kita memilih salah satu game object pada jendela Project, maka akan tampil parameter dan informasi lainnya di Inspector.
Gambar 1.12 Inspector
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
6. Toolbar Toolbar Unity3D terdri dari lima bagian utama, yaitu : 1. Transform Tool Digunakan untuk menggeser, memutar dan mengubah ukuran object.
Contoh penggunaan transform tool : - Buat object cube dengan cara pilih create di hierarchy, pilih cube; - Move the selected object : geser objek cube pada sumbu x, y atau z;
Gambar 1.13 Move the selected object button
- Lalu lihat bagian inspector, amati perubahan nilai pada koordinat x, y atau z.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 1.13 Perubahan nilai Position ketika cube diubah posisi koordinatnya.
2. Transform Gizmo Toggle
Toolbar ini biasanya dipakai untuk mengatur sudut pandang koordinat pada Scene View, misalnya : - Center Menempatkan koordinat pada tengah obyek terpilih/aktif. Akan kelihatan perubahannya saat kita memilih lebih dari satu obyek.
Gambar 1.14 Posisi koordinat ada ditengah kedua obyek.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Pivot Menempatkan koordinat pada titik pivot salah satu obyek ketika lebih dari satu obyek terpilih.
Gambar 1.15 Posisi koordinat ada pada cube, saat kedua obyek diseleksi.
- Local Posisi koordinat x, y, z pada obyek terpilih/aktif, sehingga ketika obyek dirotasi maka posisi x, y, z akan berubah. Artinya koordinat obyek terpilih relative terhadap koordinat scene utama/Scene View.
Gambar 1.16 Posisi koordinat local ada pada cube saat dirotasi
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Global Posisi koordinat x, y, z mengikuti Scene View Posisi koordinat akan tetap walaupun obyek dirotasi, karena mengikuti koordinat global. Artinya koordinat obyek absolute terhadap koordinat scene utama/Scene View.
Gambar 1.17 Posisi koordinat global ada pada cube saat dirotasi
3. Play/Pause/Step Button
Berfungsi untuk play, stop dan go to next scene pada game. Anda tentu sudah familiar dengan button seperti ini. 4. Layout Drop-Down
Berfungsi untuk mengubah/mengkustomisasi jendela tampilan Unity anda.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
7. Menu Unity3D memiliki menu utama seperti software pada umumya. Menu tersebut dapat dilihat pada gambar 1.18
Gambar 1.18 Menu Standar Unity versi 3.4
Penjelasan fungsi – fungsi menu Unity akan dibahas pada bagian tutorial membuat game di akhir bab 2 dan awal bab 3. Setelah mengikuti tutorial tersebut, anda dengan sendirinya akan memahami fungsi menu pada Unity secara keseluruhan.
1.3.
Membuat, Menyimpan dan Mengkompilasi Project
1.3.1 Membuat dan Menyimpan Project Baru Membuat project baru : 1. Klik File > New Project
Gambar 1.19 Membuat Project Baru
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2. Pilih Create
Gambar 1.20 Memilih folder Project Baru ditempatkan
Catatan : Coba perhatikan, diatas button Create ada beberapa pilihan Import the following package, pilihan itu adalah standar package Unity yang memudahkan kita untuk membangun sebuah game. Untuk sementara biarkan saja dulu jangan dicentang/dipilih bagian tersebut. Kita akan memakainya pada bagian tutorial membuat game.
Menyimpan project baru : 1. Klik File > Save Project
Gambar 1.21 Menyimpan Project Baru
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
1.3.2 Membuat Scene Baru Langkah membuat scene baru : 1. Klik File > New Scene
Gambar 1.21 Membuat Scene Baru
Langkah menyimpan scene : 1. Klik File > Save Scene, atau File > Save Scene as…
Gambar 1.22 Menyimpan Scene
2. Beri nama scene1 misalnya, lalu simpan di folder asset. Catatan : Dalam satu project bisa terdiri dari satu scene atau lebih, tujuannya kita bisa berpindah dari satu scene ke scene lain. Contoh penggunannya adalah leveling dalam game, scene1 untuk level1, scene2 untuk level2, dst. Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
1.3.3. Mem-build game Langkah yang paling penting setelah kita membuat project game adalah bagaimana game tersebut bisa di-compile/di-build sehingga dapat dimainkan orang lain. Unity menyediakan fasilitas mem-build game dengan satu langkah cepat. Cara mem-build game pada Unity adalah sebagai berikut: 1. Klik File> Build Setting…
Gambar 1.23 Mem-build Game
2. Pilih Salah satu platform yang akan dipakai, lalu tekan Build :
Gambar 1.23 Memilih Platform Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan : Unity menyediakan fasilitas build game dengan enam platform yang berbeda, diantaranya : - Web Player - PC and Mac Standalone - Android - iOS - Xbox 360 - PS3 Jadi, sekali kita mendesain sebuah game, maka kita bisa mem-build kedalam enam platform yang berbeda. Menarik bukan ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Bab 2 MODUL TINGKAT MENENGAH 2.1. Membuat Obyek Dasar (Game Object) Unity menyediakan fasilitas membuat game object standar seperti cube, cylinder, capsule, plane, camera, particle, dan light dll. Adapun game object yang memiliki tingkat kompleksitas yang tinggi, seperti model manusia dan hewan dapat dibuat di software lain seperti Blender, 3D Max atau Maya. Selanjutnya model tersebut diimport oleh Unity menjadi game object dan disimpan sebagai asset. Tahapan import asset ini akan dijelaskan pada tutorial membuat game 3D di awal bab 3. Untuk memulai membuat obyek dasar seperti cube, langkahnya adalah sebagai berikut : 1. Klik GameObject > Create Other > Cube
Gambar 2.1 Membuat Cube
2. Hasilnya akan seperti gambar 2.2 Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.2 Cube
2.2. Menggeser, memutar dan mengubah ukuran game object Menggeser game object, dapat dilakukan dengan cara : Melalui Scene View, klik button move the selected object, kemudian klik salah satu koordinat (ditandai dengan anak panah merah untuk sumbu x, hijau untuk sumbu y dan biru untuk sumbu z). Lalu drag/geser dengan mouse ke salah satu arah sumbu. Lihat perubahan nilai pada Inspector.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.3 Menggeser game object Cube
Memutar game object, dapat dilakukan dengan cara : Melalui Scene View, klik button rotate the selected object, kemudian klik dan drag untuk memutar mengikuti sumbu yang sedang aktif (di-klik). Lihat perubahan nilai pada Inspector.
Gambar 2.4 Memutar game object Cube
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Mengubah ukuran game object, dapat dilakukan dengan cara : Melalui Scene View, klik button scale the selected object, kemudian klik dan drag untuk memperkecil dan memberbesar pada sumbu x, y atau z. Lihat perubahan nilai pada Inspector.
drag
Gambar 2.5 Mengubah ukuran game object Cube
Selain ketiga cara diatas, menggeser, memutar dan mengubah ukuran game object, dapat dilakukan melalui jendela Inspector. Coba perhatikan gambar 2.6
Gambar 2.6. Menggeser, memutar dan mengubah ukuran melalui inspector Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Ada tiga bagian utama pada highlight gambar 2.6, yaitu position, rotation dan scale. Coba ubah-ubah nilai pada sumbu x, y atau z, lalu perhatikan perubaan pada game object-nya. Selamat mencoba!
2.3. Memahami Camera Camera adalah bagian penting bagaimana suatu game ditampilkan kepada user. Unity menyediakan fasilitas membuat camera dengan langkah : Klik GameObject > Create Other > Camera
Gambar 2.7. Membuat Camera
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.7. Camera Preview saat Camera sudah dibuat
2.4. Membuat Material dan Meng-import Texture Seperti halnya software 3D lain, Unity pun menyediakan fasilitas membuat material standar berupa warna. Untuk material yang kompleks seperti tekstur pohon, kulit dll, Unity menyediakan fasilitas import dari software lain. Langkah membuat material pada Unity adalah sebagai berikut : 1. Klik Asset > Create > Material Secara default pada jendela Project akan terbentuk material baru dengan nama New Material, silahkan ubah nama dengan nama cubeMaterial misalnya seperti pada gambar 2.9
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.8. Membuat material
Gambar 2.9. Mengubah nama material
2. Klik cubeMaterial, perhatikan jendela Inspector, terdapat properties warna yang bisa kita edit. 3. Ubah menjadi warna merah misalnya (gambar 2.10)
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.10. Mengubah warna material
4. Drag cubematerial dari jendela Project ke Cube di jendela Hierarchy, sekarang warna cube menjadi merah sesuai dengan material yang di-drag.
Gambar 2.11. Warna cube berubah menjadi merah Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Setelah anda dapat membuat material dengan Unity, sekarang mari kita membuat material dari software lain. Langkahnya adalah sebagai berikut : 1. Buka Software Adobe Photoshop 2. Buat file 500x 500 pixel 3. Buat material seperti dibawah ini, atau anda bisa mencari di stock foto online
Gambar 2.12. Material dengan nama woodgrain.jpg
4. Save ke folder Assets seperti pada gambar 2.13 , sehingga nanti akan muncul di Jendela Inspector (gambar 2.14)
Gambar 2.13. Contoh letak menyimpan file material pada folder Assets Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.14. Material muncul di jendela Project
5. Drag material dari jendela Project ke cube di jendela Hierarchy seperti gambar 2.15. Lihat perubahan material yang terjadi pada cube !
drag
[Type a quote from the document or the summary of an interesting point. You can position the text box anywhere in the document. Use the Text Box Tools tab to change the formatting of the pull quote text box.]
Gambar 2.15. Pemberian material woodgrain pada cube
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Default Shader
Klik disini
Gambar 2.16. Jendela inspector saat bagian shader di-klik
2.5 Meng-import Sounds (Audio Components) Sebuah proyek game tentu akan banyak memerlukan suara/sound. Pada Unity disebut Audio components. Secara umum dibagi dua, yaitu : - Audio Listener, komponen yang dimasukkan kedalam kamera/player agar ketika game dimainkan, player mampu menangkap suara yang ada pada game object. - Audio Source, suara dimasukkan kedalam game object sehingga suara berada pada game object. Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Cara memberikan suara (Audio Listener) adalah sebagai berikut : 1. Klik Main Camera 2. Klik Component > Audio > Audio Listener (gambar 2.17)
Gambar 2.17. Membuat Audio Listener pada Main Camera
3. Perhatikan jendela Inspector, lihat perubahan yang terjadi.
Gambar 2.18. Pada Inspector terdapat Audio Listener
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan : Secara default Audio Listener sudah terdapat pada Main Camera pada saat anda membuat project baru dan scene baru pada Unity. Langkah diatas untuk tambahan pengetahuan agar anda mengetahui proses pembuatan Audio Listener.
Setelah anda memahami cara membuat Audio Listener, berikutnya adalah cara memberikan suara (Audio Source) pada suatu game object Langkahnya adalah sebagai berikut : 1. Siapkan sumber sound yang akan di-import seperti contoh pada gambar 2.17 (atau anda bisa mengunduh yang gratisan di internet)
Gambar 2.17. Menyiapkan folder sumber sound
2. Copy ke folder Asset pada project anda. Pada folder Assets ini anda sebaiknya membuat folder baru dengan nama Suara, supaya file pada Assets tersusun rapi/terstruktur.
Gambar 2.18. Meng-copy ke folder Asset\Suara Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
3. Kembali ke project di Unity Anda, lihat pada jendela project, anda akan mendapatkan tampilan seperti pada gambar 2.19, yaitu folder suara dan suara laser01 sudah muncul di jendela Project
Gambar 2.19. Tampilan pada jendela Project
4. Drag LASER01 pada jendela Project ke Cube di Jendela Hierarchy
drag
Gambar 2.19. Tampilan pada Inspector saat sound LASER01 di - drag ke cube Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Perhatikan perubahan tampilan jendela Inspector dan jendela scene pada cube, sekarang cube memiliki properties Audio Source. Ada parameter yang bisa di adjust oleh anda. Silakan dicoba !
Ada icon speaker
Gambar 2.20. Tampilan pada cube
6. Centang Loop pada jendela Inspector di bagian Audio Source, agar suara dijalankan secara berulang-ulang. 7. Untuk mencoba bahwa cube sudah memiliki suara, klik tombol play lalu perhatikan apa yang terjadi. 2.6 Membuat Partikel Partikel biasanya dipakai untuk membuat efek ledakan peluru pada game menembak/perang, semburan asap knalpot pada game balap, atau efek pukulan pada game pertarungan. Pada prakteknya, banyak penggunaan efek partikel ini. Sebagai standar game engine, tentu Unity menyediakan fasilitas ini. Mari kita ikuti langkahnya. 1. Klik Game Object> Create Other > Particle System
Gambar 2.21. Langkah membuat partikel Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2. Perhatikan yang terjadi pada Scene View, lihat gambar 2.22
Gambar 2.22. Partikel yang sudah dibuat pada jendela Scene View
3. Arahkan mouse anda ke jendela Inspector, disini kita akan mengatur parameter partikel sesuai denga tipe yang kita butuhkan. 4. Pada contoh ini akan dimisalkan membuat partikel untuk ledakan api. Maka, perhatikan gambar 2.23 parameter apa saja yang di atur nilainya.
Ikuti nilai yang tertera pada gambar ini
Klik untuk mengganti warna Gambar 2.23. Mengubah nilai dan warna paritkel pada Inspector Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Perhatikan partikel akan berubah seperti gambar 2.24 pada jendela Scene
Gambar 2.23. Mengubah nilai dan warna paritkel pada Inspector
2.7 Memahami Prefabs Prefab adalah salah satu Assets yang dapat digunakan berkali-kali. Prefab terletak pada Project View dan dapat dimasukkan kedalam Scene View dengan cara di-drag. Selain itu, prefab pun dapat dikaitkan/ di-link-kan dengan game object lain. Contoh aplikasinya, misalnya untuk membuat sebuah peluru yang ditembakkan pistol, kita hanya perlu sekali saja membuat game object berupa peluru, lalu peluru tersebut dijadikan prefab, kemudian prefab peluru diletakan pada ujung pistol, lalu nanti ketika mouse ditekan, maka prefab peluru dapat ditembakkan berkali-kali. Proses ini disebut instatiate. Lebih detail aplikasinya akan dijelaskan pada sub bab membuat game.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah membuat prefab adalah : 1. Klik Asset> Create > Prefab
Gambar 2.23. Membuat Prefab
2. Secara default, Unity akan memberikan nama New Prefab, anda bisa menggantinya dengan nama lain pada jendela Inspector. Penamaan ini untuk memudahkan saat prefab di-load oleh script. Perhatikan gambar 2.24
Gambar 2.23. Mengubah nama Prefab
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
3. Buat cube pada Jendela hierarchy, lalu drag cube ke dalam New Prefab. New Prefab ini, coba ganti dengan nama PrefabCube Lihat gambar 2.24. Catatan : Penamaan PrefabCube ini hanya contoh saja, anda dapat menggantinya dengan nama lain.
drag
Gambar 2.24 Men-drag cube kedalam PrefabCube
4. Setelah cube di-drag ke PrefabCube, anda tidak memerlukan cube lagi, oleh karena itu hapus cube yang ada di jendela Scene dengan cara klik lalu tekan delete pada keyboard. 5. Sekarang anda memiliki PrefabCube yang bisa di-drag sebanyak-banyaknya kedalam Jendela Scene tanpa harus membuat cube satu persatu!. 2.8 Membuat Animasi Animasi dapat dilakukan dengan dua cara, yaitu : 1. Melalui perubahan keyframe (postion, rotation, scale) tanpa scripting. 2. Dengan scripting. Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Pada bagian ini akan dijelaskan animasi tanpa scripting, untuk animasi dengan scripting akan dibahas pada sub bab scripting. Catatan : dalam contoh dibawah ini, animasi yang dibuat menggunakan game object cube Langkah membuat animasinya adalah sebagai berikut : 1. Klik Create> Game Object > Cube 2. Klik Windows > Animation (Perhatikan gambar 2.25) 3. Klik record button, simpan dengan nama New Animation (Perhatikan gambar 2.26)
Gambar 2.25 Jendela Animation
klik
save
Gambar 2.26 Save Animation Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
4. Klik Add Key untuk mengunci frame
Gambar 2.27 Mengunci Frame
5. Geser cube pada sumbu x, y atau z (lihat gambar 2.28)
Gambar 2.28 Menggeser Frame
geser
geser Gambar 2.29 Menggeser Cube pada sumbu x untuk membuat animasi
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
6. Ingat, yang anda geser adalah garis yang berwarna merah. Setiap garis merah digeser ke kanan pada jendela animation, maka disaat yang sama apabila posisi cube di jendela scene view digeser, akan terbentuk keyframe baru. Coba perhatikan gambar 2.30
keyframe
Gambar 2.30 Menggeser Cube pada sumbu x untuk membuat animasi
7. Untuk melihat animasi yang sudah dibuat coba tekan button play pada jendela Animation.
2.9 Membuat Lighting Lighting/pencahayaan adalah salah satu komponen yang mendukung terhadap skenario suatu game agar tampak lebih realistis. Unity menyediakan tiga jenis pencahayaan yaitu : - Directional Light - Point Light - Spotlight Untuk menjelaskan perbedaannya, perhatikan langkah berikut : 1. Directional Light Langkah membuat Directional Light : - Klik GameObject > Create Other > Cube - Klik GameObject > Create Other> Directional Light Perhatikan Gambar 2.31 dan 2.32
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.31 Membuat Directional Light
- Gunakan Move the Selected Object untuk menggeser Directional Light ke sumbu +y (coba geser-geser aja sembarang posisi dahulu). geser
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.32 Menggeser Directional Light
-
Gunakan Rotate the Selected Object untuk menggeser Directional Light pada sumbu x, y atau z . Lihat perbedaan yang terjadi pada gambar
Gambar 2.33 Memutar Directional Light
Kalau anda sudah mengerti cara membuat Directional Light, tentu akan mudah membuat Point Light dan Spotlight seperti dibawah ini bukan ?
Gambar 2.34 Point Light (kiri) dan Spotlight (kanan) Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2.10 Menerapkan Physics pada Game Object Physics pada Unity diantaranya dipakai untuk mengontrol gravitasi, gaya dan tumbukan (collision) pada suatu game object. Unity memiliki bawaan NVIDIA PhysX Physic engine. Pada sub-menu Physic terdapat pilihan seperti gambar 2.35 :
Gambar 2.35 Sub-menu pada Physics
1. Rigidbody Rigidbody merupakan sub-menu physics yang salah satu fungsinya digunakan untuk mengontrol gravitasi pada game object. Untuk mencoba menerapkan rigidbody ini, langkahnya adalah sebagai berikut : - Buat Object cube, GameObject> Create Other > Cube - Buat Object plane, GameObject> Create Other > Plane - Tempatkan posisinya seperti gambar 2.36
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
cube plane
Gambar 2.36 Membuat Cube dan Plane
- Terapkan Physics pada cube (pastikan posisi cube melayang diatas plane), langkahnya : Klik Cube, klik Component> Physics> Rigidbody - Tempatkan posisi Main Camera seperti gambar 2.37. Sehingga pada saat diplay pergerakan jatuhnya cube ke plane akan terlihat.
Gambar 2.37 Menggeser Posisi Main Camera
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik Game View, Lalu tekan button Play - Perhatikan apa yang terjadi ? Kalau langkah anda betul, seharusnya cube akan jatuh secara realistis menimpa plane. Catatan : Pada jendela Inspector, secara default properties Use Gravity di-checklist. Artinya ketika diterapkan rigidbody pada game object, secara otomatis berlaku gravitasi pada obyek tersebut.
Use Gravity aktif
Gambar 2.38 properties pada Inspector pada saat diterapkan rigidbody pada Game Object
2. Kinematic Rigidbodies Untuk keperluan tertentu, kita dapat menon-aktifkan properties Use Gravity. Kita dapat menerapkan rigidbody yang lain dengan cara men-checklist Is Kinematic. Kinematic Rigidbodies tidak dipengaruhi oleh gaya, gravitasi dan tumbukkan.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Salah satu aplikasi kinematic ini yaitu pada prefab peluru yang ditembakkan oleh pesawat yang dikontrol melalui script. Lebih lanjut cara menerapkannya dapat dilihat pada tutorial membuat game di sub bab berikutnya.
3. Collider Collider merupakan komponen physic yang dipakai untuk mengontrol tumbukan antar game object. Secara default Unity menyertakan collider ketika kita membuat cube, sphere, capsule dan plane. Namun, untuk obyek (game object) yang di-import dari software modelling lain, maka kita perlu menambahkan collider terhadap obyek tersebut secara. Unity menyediakan lima tipe collider sebagai berikut : - Box, digunakan untuk obyek berbentuk kubus/kotak - Sphere, digunakan untuk obyek berbentuk bola - Capsule, digunakan untuk obyek berbentuk kapsul - Mesh, digunakan untuk obyek yang memiliki mesh yang kompleks - Wheel, digunakan untuk obyek berbentuk roda Langkah membuat collider adalah sebagai berikut : 1. Klik Component> Physics> Box Collider 2. Perhatikan perubahan properties pada Inspector (gambar 2.39)
Gambar 2.39 Membuat Box Collider Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan : Ketika membuat game object dasar pada Unity, secara default collider sudah disertakan pada game object tersebut. Object dasar tersebut adalah : - Cube - Sphere - Capsule - Cylinder - Plane
2.11 GUI (Graphical User Interface) GUI adalah komponen antarmuka yang diperlukan untuk berinteraksi antara user dengan program komputer. GUI dapat berbentuk teks, gambar, maupun button. Pada bagian ini akan dijelaskan tiga jenis GUI pada unity : 1. GUI Text Yaitu teknik menampilkan teks agar muncul di layar pada saat game dijalankan. 2. GUI Texture Yaitu teknik menampilkan gambar/image agar muncul di layar pada saat game dijalankan. 3. GUI Basic Control Yaitu teknik menampilkan GUI yang dikontrol melalui script agar muncul di layar pada saat game dijalankan. Aplikasinya misalnya button untuk perpindahan menu, perpindahan level, atau GUI interaktif lainnya. Langkah membuat GUI Text adalah sebagai berikut : 1. Klik GameObject > Create Other > GUI Text Perhatikan gambar 2.40!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.40 Membuat GUI Text
2. Edit Tulisan GUI Text dan Text menjadi Selamat Datang. Perhatikan tulisan di Scene View, berubah bukan ?
Edit tulisan
Gambar 2.41 Mengedit tulisan GUI Text
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah membuat GUI Texture adalah sebagai berikut : 1. Klik GameObject > Create Other > GUI Texture Perhatikan gambar 2.42!
Gambar 2.42 Membuat GUI Texture
2. Buat file *.jpg (misalnya texture.jpg) ukuran 800 x 600 piksel di Adobe Photoshop, lalu save di folder asset, sehingga muncul pada jendela project.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.43 Memasukkan file Texture.jpg ke folder Assets
drag
Edit Width dan Height
Gambar 2.44 Meng-edit Texture size pada Inspector
3. Pilih/klik Unity Watermark-small di jendela Hierarchy 4. Drag texture.jpg di jendela project ke jendela Inspector (lihat gambar 2.44) 5. Klik Pixel Inset pada panel Inspector, lalu ubah ukuran Width : 800 dan Height : 600. Perhatikan perubahan yang terjadi pada Game View.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
6. Apabila texture tidak berada di tengah, atur nilai position x dan y pada jendela Inspector (gambar 2.44) 7. Apabila parameter yang diatur benar, kurang lebih texture akan tampil pada Game View seperti gambar 2.45.
Gambar 2.45 Tampilan GUI Texture pada Game View, setelah diatur parameternya.
Sekarang anda sudah memahami cara membuat GUI Text dan GUI Texture. Salah satu aplikasinya adalah untuk opening menu atau perpindahan antar scene pada game. Pada bagian akhir sub pokok bahasan GUI, akan dijelaskan beberapa langkah sekaligus contoh membuat GUI dengan Javascript. Ikuti langkahnya sebagai berikut : 1. Klik Assets > Create > Javascript 2. Ubah nama default NewBehaviourScript menjadi MenuScript (nama file boleh bebas) 3. Klik dua kali untuk meng-edit-nya Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.46 Membuat Script dengan Javascript
4. Ketikkan script sebagai berikut : /* Contoh Script GUI untuk leveling Game */ function OnGUI () { // Membuat Background Kotak GUI.Box (Rect (10,10,100,90), "Menu Game"); // Membuat button pertama. Jika ditekan, maka akan dipanggil Level 1 if (GUI.Button (Rect (20,40,80,20), "Level 1")) { Application.LoadLevel (1); } // Membuat button kedua if (GUI.Button (Rect (20,70,80,20), "Level 2")) { Application.LoadLevel (2); } }
Penjelasan Script : function OnGUI ()
merupakan fungsi untuk mengontrol GUI pada Unity. Setiap kali anda akan membuat GUI dengan script, maka fungsi ini harus dipanggil. GUI.Box (Rect (10,10,100,90), "Menu Game");
merupakan perintah membuat kotak dengan aturan 10= jarak dari sumbu x ke sisi kotak, 10=jarak dari sumbu y ke sisi kotak, 100 = panjang kotak dan 90 =lebar kotak. if (GUI.Button (Rect (20,40,80,20), "Level 1")) { Application.LoadLevel (1);
Merupakan perintah membuat button dengan aturan 20= jarak dari sumbu x ke sisi button, 40=jarak dari sumbu y ke sisi button, 80 = panjang button dan Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
20 = lebar kotak. Kemudian tulisan "Level 1" merupakan tulisan pada button, dan perintah Application.LoadLevel (1); merupakan perintah untuk memanggil scene/level 1. if (GUI.Button (Rect (20,70,80,20), "Level 2")) { Application.LoadLevel (2);
Perintah untuk membuat button kedua dan saat di-klik maka akan memanggil scene/level 2. Catatan : Pada saat membuat game, tentu anda akan mempunyai banyak scene, sehingga GUI seperti ini diperlukan untuk perpindahan antar scene.
5. Buat game object baru dengan cara klik GameObject> Create Empty 6. Drag script yang dibuat (MenuScript) ke dalam GameObject di jendela Hierarchy 7. Untuk melihat hasilnya, coba jendela kerja dipindahkan ke Game View lalu tekan Play.
Gambar 2.46 Men-drag script kedalam game object (kiri) dan hasilnya pada saat di –play pada game view (kanan) Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2.12. Membuat Game 2D : Petualangan Angkasa ! Salah satu perbedaan antara game 2D dengan 3D terletak pada posisi game objek terhadap sudut pandang pemain. Pada game 2D posisi game object berada pada koordinat x dan y saja, sehingga pemain hanya dapat menggerakan game object ke kanan, kiri, atas atau bawah. Berbeda dengan game 3D, pemain seolah-olah dapat masuk kedalam ruang permainan (sumbu z) dan leluasa menggerakan game object ke depan, belakang, kiri, kanan, atas maupun bawah. Pada sub bab ini, akan dijelaskan tahapan membuat game 2D sederhana. Diharapkan apabila sudah memahami konsep game 2D, maka anda akan mudah mengembangkan game 3D. Tema game 2D ini adalah petualangan angkasa. Skenarionya adalah, player diharuskan menghancurkan serangan batu luar angkasa dengan cara menembakkan peluru dari pesawat milik player. Apabila peluru mengenai batu luar angkasa, maka nilai akan bertambah 10. Nilai dibatasi sampai 1000, sehingga bila mencapai 1000, maka player dianggap menang. Selanjutnya, apabila batu mengenai pesawat player, maka nyawa akan berkurang. Nyawa player disediakan 3 nyawa, sehingga kalau tiga kali kena batu, maka permainan berakhir (game over). Mari kita mulai. A. Membuat Cube, Directional Light dan Mengatur kamera 1. Klik File > New Project 2. Simpan di foder misalnya c:\Game Petualangan Angkasa 3. Pilih Create
Gambar 2.47 Create New Project Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
4. Klik File > Save Scene. Beri nama Level1 5. Klik Game Object > Create Other > Cube 6. Klik Main Camera, Ubah parameter pada Inspector sbb : - Background : Pilih warna hitam - Projection : Pilih Orthographic - Size : 5 - Transform Position : x = 0, y = 0 dan z= - 3 Rotation : x = 0, y = 0 dan z = 0 Scale : x = 1. Y = 1 dan z = 1
Gambar 2.48 Pengaturan parameter Main Camera pada Inspector
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
7. Klik Cube, lalu edit nilai pada jendela Inspector sbb : Transform Position : x = 0, y = -4 dan z= - 3 Rotation : x = 0, y = 0 dan z = 0 Scale : x = 1. Y = 1 dan z = 1 8. Klik Assets > Create > Material 9. Ubah dengan nama MaterialPlayer, pilih warna kuning 10. Drag MaterialPlayer kedalam Cube 11. Klik GameObject > Create Other > Directional Light 12. Lihat hasilnya pada Game View seperti gambar 2.49
Gambar 2.49 Tampilan pada Game View
Catatan : Untuk tahap awal, game object cube pada gambar 2.49 diasumsikan sebagai pesawat player yang dapat di gerakkan ke kanan dan ke kiri. Nanti, pada bagian akhir tutorial, cube ini akan diganti dengan mesh berbentuk pesawat, sehingga game tampak lebih real. Agar cube/pesawat dapat dikontrol oleh keyboard, maka kita harus memanggil input keyboard melalui script.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Memberikan Script Control pada Cube 1. Klik Assets > Create > Javascript 2. Ubah menjadi ScriptPlayer 3. Drag ScriptPlayer kedalam Cube
Gambar 2.50 memasukkan ScriptPlayer kedalam Cube
4. Klik dua kali, kemudian tuliskan script sebagai berikut :
Gambar 2.51 Membuat ScriptPlayer untuk menggerakan cube ke kiri dan ke kanan
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Coba Play ! apakah cube bergerak ke kiri dan ke kanan ? kalau tidak , klik cube, kemudian lihat bagian Inspector, lalu ubah Player Speed menjadi 2 (coba ubah-ubah nilainya antara 0 sd 10, lalu tekan Play, bagaimana hasilnya?) .
Player Speed = 2
Gambar 2.52 Mengubah Player Speed pada Properties Jendela Inspector
6. Bagaimana, apakah cube sudah bisa digerakkan ? 7. Kalau pergerakkan cube kurang halus, maka kita dapat menambahkan script sbb : * Time.deltaTime , sehingga script berubah menjadi :
Penambahan script Time.deltaTime
Gambar 2.53 Penambahan script Time.deltaTime agar pergerakkan menjadi halus dan lebih realistis.
8. Kalau pergerakkan terasa lambat, maka ubah kembali Player Speed menjadi = 10 pada Inspector. Bagaimana ? sudah realistis bukan ? 9. Selanjutnya Klik Component > Physic > Rigidbody 10. Centang Is Kinematic dan Non-aktifkan Use Gravity pada jendela Inspector
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan : Untuk mengetahui bagaimana Unity mengelola input, baik dari keyboard, mouse, joystick, dll. Lakukan langkah : - Klik Edit > Project Setting > Input
Gambar 2.54 Setting Input pada Unity
Perhatikan ! semua yang tercantum dalam Inspector adalah parameter input yang dapat dipanggil melalui script.
B. Menampilkan Skor dan Nyawa Pemain (Player Pada bagian ini, kita akan menampilkan skor dan nyawa player yang tersedia. Langkahnya adalah sebagai berikut : - Klik dua kali ScriptPlayer.js - Tambahkan deklarasi variable seperti dibawah ini :
Gambar 2.55. Penambahan deklarasi variabel Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Sehingga script berubah menjadi seperti gambar 2.56
Gambar 2.56 Tampilan script setelah ditambahkan deklarasi variable
- Klik cube, lalu edit pada bagian inspector. Perhatikan, sekarang ada penambahan variable Player Lives dibawah Player Speed. Ubah nilainya dari 0 menjadi 3. Artinya, nyawa Player di-set menjadi 3.
Gambar 2.57 Men-set nyawa player menjadi 3
- Lalu mengapa variable Player Score tidak muncul ? padahal kita sudah mendeklarasikannya pada gambar 2.56. Hal ini karena kita mendeklarasikanya sebagai static var !
var static var
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Untuk menampilkan skor dan nyawa pada GUI, ikuti langkah sebagai berikut : - Klik dua kali ScriptPlayer.js - Tambahkan script sbb :
Sehingga tampilan ScriptPlayer keseluruhan adalah sebagai berikut :
Gambar 2.58 Tampilan keseluruhan PlayerScript.js
Silahkan di-Play, perubahan apa yang terjadi ? Anda akan melihat seperti gambar 2.59, bukan ? Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.58 Tampilan Skor dan Nyawa pada Game View
Permasalahan : Permasalahan pertama adalah Cube/pesawat hanya dapat bergeser ke kiri dan ke kanan, bagimana jika kita ingin menggeser ke atas dan ke bawah ? Script apa yang harus ditambahkan ? Apabila anda memahami bagaimana cube dapat digeser ke kanan dan ke kiri, maka dengan mudah kita dapat membuat script agar cube dapat digeser ke atas dan ke bawah. Caranya adalah panggil input vertikal, lalu beri perintah menggeser cube. Lebih jelasnya lihat perhatikan script sbb : // memanggil input keyboard pada sumbu vertical naik = (PlayerSpeed * Input.GetAxis("Vertical")) * Time.deltaTime ; // menggerakan player ke atas dan ke bawah transform.Translate(Vector3.up*naik);
Mudah bukan ? Sekarang dengan leluasa anda dapat menggerakan cube ke kiri, kanan, atas dan bawah.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Permasalahan kedua, ketika kita menggeser cube ke kanan sampai melewati area permainan, maka cube akan hilang, hal in disebabkan karena koordinatnya terus bergeser. Kasus serupa terjadi juga ketika kita menggeser habis ke kiri, ke atas maupun ke bawah. Oleh karena itu masalah ini harus dipecahkan, karena akan membingungkan pemain. Pemecahannnya adalah sbb : - Cek pada koordinat berapa ke samping kanan dan kiri (y), atas dan bawah (x) posisi cube hilang - Anggap koordinat sudah didapatkan, lalu berikan script tambahan seperti dibawah ini :
Coba Play sekarang ! apa yang terjadi ? seharusnya cube akan tetap berada pada area permainan walaupun terus digeser ke kanan, kiri, atas ataupun bawah….! Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
C. Membuat Peluru Langkah selanjutnya adalah membuat peluru. Peluru dapat dibuat dengan menggunakan capsule atau sphere. Pada contoh ini peluru yang dibuat menggunakan capsule. Langkahnya adalah sebagai berikut : - Klik Game Object > Create Oher > Capsule - Ubah pada jendela Inspector sbb : Transform Position : x = 0, y = 0 dan z= 0 Rotation : x = 0, y = 0 dan z = 0 Scale : x = 0.2 Y = 0.2 dan z = 0.2 -
Klik Assest > Create > Javascript Ubah namanya menjadi ScriptPeluru Drag ScriptPeluru kedalam Capsule di jendela Hierarchy Edit Script menjadi sbb :
Gambar 2.59 Script Peluru
- Klik Capsule, beri nilai Peluru Speed = 10 pada jendela Inspector. Untuk lebih jelasnya lihat gambar 2.60
Gambar 2.60a Mengubah Speed Peluru menjadi 10 Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik Component > Physics > Rigidbody - Lihat perubahan yang terjadi pada jendela Inspector ketika capsule diberi Physics > Rigidbody.
Jangan dicentang centang
Gambar 2.60b mengaktifkan Kinematic pada jendela Inspector
- Unchecklist (jangan dicentang) Use Gravity dan checklist (centang) Is Kinematic, karena pada game 2D ini gerak peluru tidak dipengaruhi gravitasi walaupun tetap dikontrol oleh script kapan peluru akan ditembakkan ke arah sumbu Y. Catatan : Script untuk peluru hampir sama dengan script untuk menggeser cube ke atas dan ke bawah. Perbedaannya, pada script peluru tidak memanggil fungsi input dahulu, sehingga ketika di-play peluru langsung bergerak ke atas tanpa menunggu input dari keyboard. Perhatikan script pada gambar 2.59 baris per baris ! Permasalahan : Ketika di-play maka peluru akan terus bergerak sampai koordinat tak hingga. Hal ini tidak boleh terjadi, karena peluru hanya diperlukan untuk menembak batu luar angkasa di area layar yang kita setting saja. Oleh karena itu lakukan langkah sebagai berikut : - Klik Layout menjad 2 by 3, tujuannya agar kita memiliki jendela Scene View dan Game View yang terpisah.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Klik, pilih 2 by 3
Gambar 2.61. Mengubah layout/jendela kerja Unity
- Geser Peluru di Scene View keatas arah sumbu Y (+) - Perhatikan pada koordinat Y = berapa peluru hilang dari area Game View ? - Kalau langkah anda benar, peluru akan keluar dari area Game View pada kisaran koordinat Y = 5.5 - Angka ini akan dipakai untuk pengecekkan kondisi sbb : o Jika peluru > 5.5 maka hancurkan peluru (karena tidak diperlukan lagi)
Drag pada sumbu Y
Perhatikan peluru tidak Nampak di koordinat Y = berapa ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.61. Tampilan pada Scene View, Game View dan Inspector
- Setelah kita mengetahui peluru tidak nampak di koordinat Y=5.5, maka buatlah script sebagai berikut :
Script ini memerintahkan kepada program agar peluru dihancurkan (destroy) jika sampai pada koordinat Y lebih besar atau sama dengan 5.5. C. Membuat Prefab Peluru Setelah kita berhasil membuat peluru, selanjutnya adalah kita akan menggunakan peluru tersebut berulang-ulang saat ditembakkan oleh pesawat (cube). Oleh karena itu, kita akan membuat peluru tersebut menjadi prefab. Langkahnya adalah sebagai berikut : - Klik Assets > Create > Prefab - Ubah namanya dari New prefab menjadi PeluruPrefab - Drag Capsule kedalam PeluruPrefab
drag
- Hapus Capsule karena kita sudah memiliki PeluruPrefab Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
D. Menghubungkan PeluruPrefab dengan Player Setelah proses pembuatan prefab peluru selesai, permasalahan kita selanjutnya adalah, bagaimana caranya supaya peluru dapat ditembakkan ketika ditekan salahsatu tombol di keyboard, misalnya tombol spacebar ? Solusinya adalah pada ScriptPlayer harus dideklarasikan variable peluru tersebut, lalu dipanggil dan ditembakkan dengan script ketika spacebar ditekan ! Proses ini disebut INSTANTIATE. Langkahnya adalah sbb : - Buka ScriptPlayer.Js - Tambahkan script sebagai berikut :
- Klik Cube di Jendela Hierarchy - Drag PeluruPrefab ke Peluru di Jendela Inspector
drag
Gambar 2.62 Menghubungkan PrefabPeluru ke jendela Inspector pada Game Object Cube Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah berikutnya adalah menambahkan script agar PrefabPeluru tersebut dapat ditembakkan, langkahnya adalah sbb : - Tambahkan script untuk memanggil input spacebar lalu menembakkannya.
- Coba Play ! kalau langkah anda benar, peluru akan dapat ditembakkan saat spacebar ditekan. - Berikut merupakan tampilan script lengkap PlayerScript.Js
Gambar 2.63 Tampilan PlayerScript sampai tahap instantiate
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
E. Menambahkan Audio Pada Peluru Saat peluru ditembakkan, kurang lengkap rasanya kalau tidak ada suara peluru. Langkah memasukkan suara kedalam peluru adalah sebagai berikut : -
Cari suara format *.wav yang cocok untuk suara tembakan. Simpan di folder Asset dan sebaiknya buat folder baru dengan nama sound Klik PeluruPrefab Klik Component > Audio > Audio Source Drag sound ke dalam Audio Clip pada jendela Inspector (pada tutorial ini menggunakan sound dengan nama file laser14.wav
drag
Gambar 2.64 memasukkan audio kedalam PeluruPrefab
- Tekan Play! Sekarang ketika ditekan spacebar untuk menembakkan peluru maka akan keluar suara. Menarik bukan ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
F. Membuat Serangan Musuh (Batu Luar Angkasa) Sebuah game akan seru kalau ada misi. Misi pada game ini adalah menembak batubatu luar angkasa sebanyak mungkin. Setiap batu yang kena akan mendapat skor +10. Pemain dianggap berhasil menyelesaikan Level 1 kalau mencapai skor 1000. Mari kita mulai membuatnya. Pada game ini kita menggunakan game object sphere untuk batu luar angkasa. Langkahnya adalah sbb : - Klik Game Object > Create Other > Sphere - Ubah pada jendela Inspector sbb : Transform Position : x = 0, y = 0 dan z= 0 Rotation : x = 0, y = 0 dan z = 0 Scale : x = 1 Y = 1 dan z = 1 -
Klik Assets > Create > Material Beri nama MaterialBatu Pilih warna merah, lalu drag MaterialBatu ke dalam Sphere Perhatikan warna sphere sekarang menjadi merah.
Gambar 2.65 Memasukan material kedalam sphere
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
-
Klik Assets > Create > Javascript Beri nama ScriptBatu Drag ScriptBatu ke dalam Sphere pada jendela Hierarchy Klik dua kali ScriptBatu, buatlah script sebagai berikut :
- Klik sphere, edit Batu Speed menjadi 5 (boleh nilainya diubah 10) pada jendela Inspector
- Tekan Play ! batu sekarang sudah bergerak menuju ke pesawat. - Kalau posisi batu (sphere) masih di tengah, maka drag ke posisi sumbu y = 5.5 seperti pada gambar 2.66
Gambar 2.66 mengubah posisi batu (sphere) ke sumbu y=5.5
Masalah : Persis seperti peluru, kita tidak menginginkan batu terus bergerak setelah keluar area permainan, karena program akan terus menerus memprosesnya. Oleh karena itu cek posisi batu ketika keluar dari area layar. Kemudian kita Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
berikan script untuk mengembalikan posisi batu (sphere) ke koordinat semula ketika sudah melewati area layar permainan. Perhatikan gambar 2.67
drag
Y = 5.5 Arah gerak batu (sphere)bol
Y = -5.5
Gambar 2.67 men-drag sphere sampai dapat koordinat seperti gambar 2.68
Gambar 2.68 koordinat sphere ketika keluar area layar di posisi y=-5.5 Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Setelah kita mendapatkan menambahkan script sbb :
koordinat,
maka
langkah
selanjutnya
adalah
Ketika di-play posisi pergerakan batu monoton dalam satu alur lintasan saja. Jelas dalam sebuah game kondisi ini akan sangat membosankan. Oleh karena itu, kita perlu menambahkan script agar serangan batu tersebut random/acak posisinya. Berikut script-nya :
Langkah selanjutnya adalah bagaimana caranya untuk deteksi tumbukan antara sphere (batu luar angkasa) dengan cube (pesawat) si player ? atau deteksi tumbukkan antara peluru dengan batu? Sehingga ketika batu mengenai player(cube), maka nyawa player akan berkurang, begitu juga ketika batu terkena tembakan peluru , maka batu akan hancur! Inilah yang disebut collision detection. Selain collision detection, Unity memudahkan kita dengan memberikan fasilitas “tag” dalam jendela Inspector untuk setiap game object. Sehingga setiap game object yang diberi tag dapat dikenali oleh game object lain. Lihat gambar 2.69 ketika sphere belum diberi tag
Belum diberi tag
Gambar 2.69 Memberi tag pada game object
- Lalu Klik Untagged > Add Tag Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Beri nama batu pada Element 0
Gambar 2.69 memilih tag
- Klik lagi sphere > batu - Sekarang game object sphere sudah memiliki tag dengan nama batu - Langkah selanjutnya, buka scriptPeluru.Js di jendela Project. Tambahkan script sebagai berikut :
- Lalu klik Sphere pada jendela Hierarchy - pastikan di jendela Inspector, anda memberikan centang pada Is Trigger
centang Gambar 2.70 memberi tanda centang pada sphere collider Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Berikan tanda centang juga pada peluruPrefab (game object peluru) dan cube (game object batu)
Gambar 2.71 memberi tanda centang pada capsule dan box collider
Coba tekan play ! seharusnya setiap peluru yang ditembakkan mengenai sphere (batu) maka nilai akan bertambah 10. Permasalahan : Seharusnya, selain nilai player bertambah, batu yang terkena tembakan pun hancur. Sedangkan sekarang tidak..! Untuk menyelesaikannya, maka lakukan langkah sebagai berikut : - Buka scriptPeluru.Js
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Tambahkan baris script untuk menghancurkan game object setelah script menambah nilai : Penambahan script
Sehinggga ketika di-play maka game object batu (sphere) akan hilang/hancur sewaktu terkena peluru. Kemudian peluru lainnya akan muncul kembali secara random/acak. Memberikan Efek Ledakan Efek ledakkan akan diberikkan ketika peluru mengenai batu, sehingga game tampak lebih menarik. Langkahnya adalah sebagai berikut : Klik Game Object > Create Other > Particel System Ubah namanya menjadi Ledakan di Jendela Inspector Ubah pada jendela Inspector sbb : Transform Position : x = 0, y = 0 dan z= 0 Rotation : x = 0, y = 0 dan z = 0 Scale : x = 1 Y = 1 dan z = 1 -
Berikan nilai seperti pada gambar 2.72 (perhatikan detail nilai-nilai nya)
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.72 Mengatur parameter partikel pada jendela Inspector
Langkah selanjutnya adalah membuat prefab untuk ledakkan. - Klik Assets > Create > Prefab - Ubah namanya menjadi ledakanPrefab - Drag ledakan di jendela Hierarchy kedalam LedakanPrefab di jendela Project - Lihat gambar 2.73
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
drag
Gambar 2.73 Men-drag ledakan kedalam ledakanPrefab
-
Lalu delete ledakan di jendela Hierarchy Langkah berikutnya adalah instantiate ledakkan terhadap peluruPrefab. Klik dua kali ScriptPeluru.js Tambahkan script sebagai berikut :
Penambahan script
- Tekan Play, apa yang terjadi ? Menarik bukan ? Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Menambahkan Audio pada ledakkan Supaya permainan lebih seru, tambahkan efek suara ketika terjadi ledakkan. Ikuti langkahnya : -
Cari suara bom untuk efek ledakkan, simpan di folder assets/sound. Klik ledakanPrefab Klik Component > Audio > Audio Source Drag carbomb.wav ke dalam Audio Clip
drag
Gambar 2.74 Men-drag audio kedalam Audio Clip di Jendela Inspector
- Coba Play !
Mengurangi Nyawa Player dan Membuat Menu Kalah Pada bagian awal, kita sudah menentukan aturan game yaitu, jika peluru mengenai player, maka nyawa akan berkurang. - Buka scriptPlayer.Js - Tambahkan baris sebagai berikut :
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Penambahan script
OK, coba tekan Play ! lalu coba biarkan batu (sphere) mengenai player (cube) Masalah : Nyawa yang diberikan sebanyak 3, sehingga apabila terkena serangan batu sebanyak tiga kali, seharusnya player dianggap kalah. Yang terjadi sekarang adalah, nilai nyawa teus berkurang menjadi dari 3 menjadi 2, 1, 0, -1, -2 dst…..padahal kita menginginkan ketika nyawa =0 maka permainan berakhir (game over) ! Solusi : -
Buat scene baru, klik File > New Scene Save dengan nama sceneKalah Buat Script baru, Klik Assets > Create > Javascript Ubah dengan nama scriptKalah Edit dengan script sebagai berikut :
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Buat game object kosong dengan cara klik Game Object > Create Empty - Drag scriptKalah di jendela project ke dalam GameObject di jendela Hierarchy (lihat gambar 2.75)
drag
Scene aktif
Gambar 2.75 insert scriptKalah kedalam empty game Object di sceneKalah
Sebelum melanjutkan, pastikan build setting sebagai berikut :
Gambar 2.76 Build Setting Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkahnya adalah : - Klik File > Build Setting - Drag level1.unity dan sceneKalah.unity ke Scenes In Build
Nama scene yang di-load di script
drag
Gambar 2.78 Mengurutkan scene pada build setting.
Langkah selanjutnya adalah menghubungkan level1 dengan sceneKalah, caranya adalah : - Klik dua kali scriptPlayer.js - Tambahkan script sbb :
Artinya, jika nyawa player kurang atau sama dengan nol, maka load sceneKalah (coba lihat di - build setting!). Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Membuat Menu Awal Langkahnya sama ketika membuat menu untuk scene kalah, yaitu sbb : -
Buat scene baru, klik File > New Scene Save dengan nama sceneAwal Buat script baru, Klik Assets > Create > Javascript Ubah dengan nama scriptAwal Edit dengan script sebagai berikut :
- Klik Game Object > Create Empty - Drag ScriptAwal kedalam empty Game Object
drag
Gambar 2.79 men-drag scriptAwal kedalam empty game object
Langkah selanjutnya adalah : Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik File > Build Setting - Drag sceneAwal kedalam Build Setting
drag
Gambar 2.80 men-drag sceneAwal kedalam build setting
- Save pekerjaan Anda !
Membuat Menu Menang Langkahnya sama ketika membuat menu untuk scene kalah, yaitu sbb : -
Buat scene baru, klik File > New Scene Save dengan nama sceneMenang Buat script baru, Klik Assets > Create > Javascript Ubah dengan nama scriptMenang Edit dengan script sebagai berikut :
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
-
Klik Game Object > Create Empty Drag ScriptMenang ke dalam empty Game Object Klik File>Build Setting Drag SceneMenang ke dalam Scene In Build
drag
Gambar 2.81 men-drag sceneMenang kedalam build setting
Tambahkan script sbb pada playerscript.Js, Anda mengerti maksudnya bukan ? :
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah terakhir sebelum game di-build..ubah urutan sbb, agar pada saat game dimainkan, sceneAwal yang di-load terlebih dahulu..!
Ubah urutan scene dengan cara di-drag, misalnya sceneAwal didrag dari urutan 2 menjadi urutan 1
Gambar 2.82 Mengurutkan scene yang sesuai kedalam build setting
OK….tutorial utama membuat Game Petualangan Angkasa dianggap selesai. Tahap berikutnya adalah memoles game ini agar lebih real dan menarik. Ada tiga komponen yang ditambahkan pada game ini yaitu : - Penambahan GUI Texture untuk setiap menu; - Penambahan benda-benda luar angkasa dengan partikel; - Penggantian model pesawat dari cube menjadi Model Pesawat yang dibuat di software 3D modeling, dalam contoh ini menggunakan 3D Max.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Supaya terlihat perbandingannya berikut capture game sebelum di tambahkan ketiga komponen diatas :
Gambar 2.83 Game sebelum diganti modeling-nya
Gambar 2.84 Game setelah diganti modeling-nya
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Ikuti langkahnya sebagai berikut : - Buat modeling pesawat di 3D Max atau blender, atau anda dapat mencari model yang gratis di Internet. - Export model pesawat menjadi format *.fbx, misalnya SimpelShip.fbx - Simpan kedalam folder Assets bersama material yang dipakainya. - Klik Cube, lalu pilih Mesh (ingat kuncinya di mesh ini !) kita akan mengganti mesh cube menjadi mesh pesawat. - Ganti cube menjadi polySurface1
Sesuaikan ukuran pesawat
Klik untuk mengganti mesh
Klik untuk mengganti material
Gambar 2.85 penggantian mesh cube menjadi pesawat (polysurface)
- Langkah penting selanjutnya adalah sesuaikan ukuan pesawat. - Lalu hapus box collider di jendela Inspector denga cara klik kanan>remove component Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Tambahkan mesh collider dengan cara klik component > physics > mesh collider. Artinya box collider sudah tidak dipakai lagi diganti menjadi mesh collider untuk deteksi tumbukkannya, karena obyeknya sudah diganti dari box (cube) menjadi pesawat. Urusan mengganti model sudah selesai, tahap selanjutnya yaitu menambahkan simulasi benda-benda angkasa lainnya dengan partikel. Caranya : - Klik dua kali scene level1 - Klik Game Object > Create Other > Particel Systems - Atur parameter pada jendela inspector sbb :
Gambar 2.86 Menambahkan partikel di level1 (area permainan)
- Lihat hasilnya..Menarik bukan ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Polesan terakhir adalah menambahkan GUI Texture di setiap scene. Langkahnya adalah : - Buat tiga buah gambar di photoshop dengan ukuran 1024 x 768 pixel sebagai berikut, simpan dalam format *.jpeg. - Gambar ini hanya contoh saja, Anda dapat membuat versi lain yang lebih bagus !
Gambar 2.87 Contoh gambar untuk GUI Texture di setiap scene Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Selanjutnya adalah simpan ketiga gambar tersebut di folder Assets. Untuk memasukkan tekstur kedalam scene, ikuti langkah sbb : - Klik dua kali sceneAwal - Klik Game Object > Create Other > GUI Texture
Klik disini
Pilih texture awal.jpeg
Gambar 2.88 Menambahkan GUI Texture
- Klik Texture di Jendela inspector, lalu pilih file awal.jpeg. - Ubah scale menjadi x = 1 dan y = 1 - Selesai !
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.