Daftar Isi Penting Dibaca
3
Projek baru
4
Simple FPS (First Person Shooter)
6
First Person Controller
6
Game Object
7
Transformasi Transformasi (Move, Rotate & Scale)
8
Pencahayaan Pencahayaan (Lighting)
11
Pistol Sederhana Sederhana
14
Peluru
16
Scripting Dasar
17
Efek Ledakan
21
Build
23
Kesimpulan
24
2
PENTING DIBACA!! 1.
Tutorial part 1 ini membahas dasar-dasar dalam menggunakan program Unity dari nol, tanpa bantuan program lain selain Unity. Tujuan utama dari tutorial ini diantaranya agar pembaca dapat memahami: memahami:
2.
-
Unity basic interface
-
Konsep dasar program Unity
-
Membuat game FPS sederhana dengan Unity
Jika anda merasa sudah advanced/expert dengan Unity, mungkin tutorial ini tidak cocok untuk anda.
3.
Program Unity yang digunakan adalah Unity Free version. version.
4.
Mohon ikuti petunjuk petunjuk tutorial tutorial ini tahap-per-tahap tahap-per-tahap untuk untuk kemudahan kemudahan anda dalam dalam memahami memahami pesan-pesan yang ingin d isampaikan. isampaikan.
5.
Tutorial ini menggunakan beberapa kata/kalimat kata/kalimat dalam bahasa bahasa Inggris yang
sulit
diterjemahkan dalam bahasa Indonesia. Indonesia. Sehingga dianjurkan anda mencari reverensi dari sumber lain jika mengalami kesulitan dalam memahami suatu kata/kalimat. Harap dimaklumi jika penulis tidak konsisten dalam penggunaan Bahasa Indonesia/ Inggris dalam tutorial ini.
6.
Silahkan meng-Copy atau menyebarkan tutorial ini tanpa ijin/ sepengetahuan penulis. Asal jangan dijual :p
3
Projek baru Ketika anda menjalankan program Unity, dia akan otomatis membuka project/dokumen yang terakhir kali kita buka. Jika ini adalah pertama kali anda menggunakan Unity, maka biasanya project yang terbuka adalah “ Island
Demo” .
Sesuai namanya, ini adalah demo project dari unity. Sebelum kita
membuat project kita sendiri, tak ada salahnya kita sedikit berpetualang berpetualang sejenak.
•
Klik tombol play
(Tombol ini berguna untuk melakukan test simulasi/game yang
telah kita buat). •
Setelah tombol play ditekan, silahkan anda ber eksplorasi (gunakan mouse untuk melihat-lihat, gunakan keyboard W,S,A,D atau ↑,↓,←,→ untuk bergerak mundur, kiri atau kanan, SPACE untuk melompat).
•
Ini adalah contoh sederhana sebuah game First Person. Person.
•
Jika anda sudah puas berjalan-jalan, dan ingin berhenti, silahkan tekan kembali tombol play untuk menghentikan simulasi. Selanjutnya kita akan mulai mengakrabkan diri kita dengan Unity.
(Jika pulaunya tidak keluar, klik File > Open Scene, Scene, lalu pilih file Island.Unity) Island.Unity)
4
Untuk membuat sebuah project baru Unity, pilih File > New Project. Project. Catatan : New Project berbeda dengan New Scene. Scene. Project adalah game keseluruhan yang anda buat, sedangkan Scene adalah sebuah level dalam project game anda. Dengan kata lain, Project game anda akan tersusun dari kumpulan beberapa Scene
Catatan : Unity membaca projectnya berupa sebuah folder yang isinya merupakan merupakan kumpulan kumpulan asetaset pendukung game anda. Maka, sangat penting bagi anda untuk memperhatikan & menyusun baikbaik sistem folderisasi project anda, akan dijelaskan lebih lengkap nanti, untuk sementara, jangan dulu dipikirkan :p
•
Pilih Browse untuk menentukan lokasi project Unity anda.
Terdapat pilihan Import the following packages:, packages:, ini adalah aset-aset dasar yang disediakan Unity.
•
Untuk setingan standar cukup pilih Standard Assets.unityPackag Assets.unityPackage. e.
•
Toon Shading.unityPackage dapat dipilih jika anda ingin menggunakan aroma kartun pada game anda.
•
Setelah anda puas dengan pilihan anda, dan telah menentukan tempat yang baik untuk folder project anda, silahkan tekan Create.
•
Silahkan tunggu sejenak, Unity akan mengumpulkan aset-aset dasar ke dalam folder project anda. Biasanya Unity akan secara otomatis menutup programnya, namun jangan khawatir, silahkan bersabar… nikmati sejenak lagu mp3 yang sedang anda dengarkan, atau cicipi sejenak kopi yang telah anda siapkan…
Jika progress bar sudah hilang, dan program Unity sudah kembali berjalan, maka anda telah berhasil membuat project Unity baru yang kosong, dengan scene yang kosong. Dengan demikian, kita langsung ke pelajaran pertama kita : Simple FPS (first Person Shooter)
5
Simple FPS (First Person Shooter) Game FPS atau First Person Shooter atau dalam bahasa Indonesia disebut Tembak menembak dalam Pandangan Orang ke-1, ke-1, adalah game dimana kita seakan sedang menembaki musuh dengan view kamera orang pertama. Contoh game laris yang menggunakan genre FPS adalah Doom, F.E.A.R, Left 4 Dead, Counter Strike, dll. Namun jangan dulu berharap kita akan langsung membuat game seperti itu. Mari kita pelajari dulu dasar-dasarnya.
Catatan : Setelah mengikuti tutorial FPS ini, mungkin beberapa orang akan berpikir bahwa ada program lain yang lebih mudah untuk membuat game FPS, seperti FPS Creator. Creator. Memang, jika anda ingin secara “ekspress” dan mudah membuat game FPS, FPS Creator lah jawabannya. Namun FPS Creator tidak “customizeable”. Di sini kita akan belajar membuat sebuah game dari nol dengan bantuan Unity. Dimana kita mempunyai “total control” control ” atas game yang kita buat. Untuk mempelajari dasar-dasarnya, kita gunakan contoh kasus dalam membuat game FPS.
First Person Controller Untuk jenis kamera FPS, Unity dengan baik hati telah menyediakan template agar kita dapat langsung mengaplikasikannya mengaplikasikannya pada g ame kita.
Sebelum kita mulai, hapus terlebih dahulu kamera default
yang ada di scene kita. (pilih lalu
tekan Delete). Sehingga scene kita benar-benar bersih.
•
dalam panel Project, Project, klik segitiga yang yang ada di sebelah folder Standard Assets, Assets,
•
klik juga segitiga di sebelah folder Prefabs, Prefabs,
•
lalu klik First Person Controller, Controller, tahan dan geser ke dalam layar utama
dengan demikian anda akan mendapati tambahan ikon kamera baru
pada layar utama Scene
anda. Kamera ini akan menjadi “mata” dalam game anda.
•
tekan F untuk fokus pandangan viewport kepada prefab kamera yang baru saja anda buat.
6
Game Object Selanjutnya, Selanjutnya, mari kita tambahkan beberapa objek ke dalam game kita.
•
•
pilih GameObject > Create Other > Plane
jika plane yang telah anda buat bertumpuk dengan prefab First Person Controller, Controller, maka coba anda turunkan plane tersebut dengan cara click & drag panah yang berdiri vertikal.
7
Transformasi (Move, Rotate & Scale) •
Selanjutnya anda dapat mengubah posisi objek dalam unity dengan cara click & drag sesuai dengan sumbu yang anda inginkan.
•
Selain mengubah posisi, posisi, anda dapat mengubah rotasi dan skala dengan metode yang sama. Silahkan anda bereksperimen dan membiasakan diri anda. Jangan khawatir, kalau anda tidak puas, tinggal tekan Ctrl-Z (Undo).
Mengubah Skala :
Mengubah Rotasi :
Mengubah Posisi :
8
Sudah puas memutar-mutarnya? memutar-mutarnya? Kalau begitu, mari kita lanjutkan. Plane yang kita buat barusan merupakan dasar atau “tanah” yang akan dijadikan pijakan oleh First Person Controller. Controller. Selanjutnya mari kita tambahkan objek lain yang lebih menarik.
•
sama seperti ketika kita membuat Plane, pilih GameObject > Create Other, Other, namun kali ini silahkan anda pilih bentuk-bentuk yang anda sukai, lalu taruh diatas plane yang tadi. Gunakan geometri dasar Cube (kubus), Sphere (Bola), Capsule (kapsul), Cylinder (Silinder), atau Plane. Plane.
Tips: manipulasi kamera viewport: •
Mouse Scroll untuk zoom in/ zoom out
•
Klik kanan + drag untuk mengubah rotasi pandangan
•
Tekan F untuk fokus kepada objek yang anda pilih
•
Ctrl-D untuk duplikat objek yang anda pilih. (hasil duplikasi objek akan berposisi sama dengan objek sebelumnya)
Hierarchy: Panel Hierarchy merupakan daftar benda-benda/objek yang telah kita buat. Panel ini berguna untuk mempermudah pemilihan objek, juga dalam penamaan objek. Terutama jika scene yang kita buat telah terdiri dari banyak objek dan sulit untuk dipilih secara manual lewat viewport.
9
•
Gunakan Ikon Indikasi Tampak seperti gambar dibawah ini untuk merubah pandangan pada viewport:
•
Gunakan panel dibawah ini untuk mengganti tampilan viewport (Textured /Wireframe/ Textured-Wireframe). Textured-Wireframe). Silahkan dicoba satu persatu untuk mengetahui perbedaannya.
Sudah puas menambah objek-objeknya? Kalau begitu mari kita lanjutkan. Sekarang coba anda tekan tombol play Maka anda akan mendapati Game Viewport anda seperti ini:
Lho!? Kemana benda-benda yang tadi kita buat!?
10
Pencahayaan (Lighting) Untuk menjawab pertanyaan pada halaman sebelumnya, mari kita kembali ke Scene Viewport. Viewport. Hentikan simulasi game dengan menekan kembali tombol Play. •
Setelah kembali ke Scene viewport, viewport, pilih GameObject > Create Other > Point Light
•
Jika anda perhatikan, selain Point Light, Light, terdapat pula pilihan Spotlight dan Directional Light. Light. Ya, mereka mereka
adalah sumber sumber cahaya yang yang nantinya nantinya akan sangat
berpengaruh bagi game anda.
•
Untuk mengatur karakteristik cahaya yang anda inginkan, pilih cahaya melalui panel hierarchy. hierarchy.
•
lalu coba anda perhatikan ke sebuah panel berjudul Inspector di sebelah kanan layar.
11
Panel Inspector adalah tempat tempat untuk mengubah mengubah parameter parameter objek pada Unity. Unity.
Anda juga dapat
mengubahnya ketika dalam Game Viewport (ketika anda menekan tombol play
). Sehingga
mempermudah kita untuk mendapatkan settingan yang sesuai dengan keinginan kita ( Tweaking). Tweaking). Namun perlu diingat, jika anda ingin mengubah parameter sebuah objek secara permanen, pastikan untuk tetap berada di dalam scene viewport. viewport. Mengubah parameter Inspector dalam game viewport hanya bersifat sementara/preview .
Kembali ke lighting, setelah anda pilih cahaya, perhatikan kembali panel Inspector, Inspector, lalu atur parameter lighting tersebut sesuai seperti yang anda inginkan. Type
: Untuk mengganti tipe cahaya (Point Light, Spotlight dan Directional Light)
Color
: Untuk mengubah warna cahaya
Attenuate
: Pilihan apakah cahaya tersebut akan menyinari cahayanya secara terbatas atau tak terbatas.
Intensity
: Intensitas cahaya.
Range
: Jarak penyinaran cahaya, hanya berguna jika Attenuate dipilih.
Spot Angle
: Sudut penyinaran. Hanya berguna pada tipe cahaya Spotlight. Spotlight.
Shadows
: Parameter bayangan (harus pakai Unity Pro). Pro).
Cookie
: Jika anda ingin menggunakan texture gambar pada cahaya tersebut.
Draw Halo
: Kesan “glow” pada cahaya tersebut.
Flare
: Efek “mengkilat” pada cahaya. (dapat dilihat di game viewport)
Render Mode
: Tingkat kualitas pantulan cahaya terhadap objek.
Culling Mask
: Layer apa saja yang akan menerima pantulan cahaya tersebut (akan dijelaskan nanti)
Catatan : Panel Inspector adalah tempat untuk mengubah parameter semua jenis benda pada Unity. Namun tidak akan dijelaskan satu persatu secara mendetail pada bab ini. Seiring berjalannya tutorial ini, anda akan sedikit demi sedikit memahami lebih jauh tentang panel Inspector.
Tips : Ada dua jenis cahaya di Unity, yaitu Object Light dan Ambient Light. Object Light seperti yang telah dijelaskan adalah cahaya yang kita buat melalui game object. Sedangkan Ambient Light adalah cahaya dasar suatu scene. Untuk memahaminya lebih jauh, mari kita bahas sedikit.
•
Coba anda pilih Edit > Render Setting, Setting, lalu perhatikan ke panel Inspector.
•
Lalu coba anda ubah warna dari ambient Light dan perhatikan efeknya.
12
•
Jika anda sudah puas mengatur cahayanya, sekarang coba tekan kembali tombol play. play.
•
gunakan mouse untuk mengubah pandangan, keyboard W,S,A,D atau ↑,↓,←,→ untuk bergerak mundur, kiri atau kanan, SPACE untuk melompat.
•
Jangan lupa save scene anda, gunakan Ctrl-S atau pilih File > Save Scene, Scene, lalu pilih nama yang anda inginkan.
Catatan : Jika anda berencana akan membuat banyak level/scene level/scene,, ada baiknya anda membuat folder baru di dalam folder project Unity anda untuk mempermudah pengelolaan pengelolaan file. Contoh; save scene anda dalam dalam folder baru yang diberi nama “Levels”. “Levels”. Sesuai selera anda.
Selamat!! Anda telah berhasil membuat sebuah game FPS! Namun belum sesuai dengan namanya (First Person Shooter), maka di halaman selanjutnya kita akan membuat sebuah “shooter” sederhana.
13
Pistol Sederhana Mari kita lanjutkan dengan tahap berikutnya, disini kita akan menambahkan sebuah pistol sederhana. Bersiap-siaplah, karena disini kita akan mempelajari dasar-dasar penggunaan script pada Unity. Pertama-tama, Pertama-tama, mari kita buat sebuah pistol “abal-abal”.
•
Buat sebuah cube, cube, lalu ubah sedemikian rupa dengan menggunakan Scale(skala) Scale(skala) atau panel Inspector sehingga berbentuk persegi panjang.
•
Ganti nama cube tersebut menjadi “Pistol “Pistol”. ”. Jangan lupa tekan Enter setelah mengganti nama.
Catatan : Usahakan untuk mengikuti penamaan objek sesuai dengan tutorial ini. Karena penamaan tersebut selanjutnya akan dipergunakan pada Script untuk mempermudah anda dalam proses belajar. Dan perlu diingat, huruf besar dan kecil sangat diperhitungkan dalam Scripting.
•
Posisikan pistol kita agar menempel dengan First Person Controller, Controller, dan searah dengan sudut pandang kameranya. Seperti gambar di bawah ini.
•
Lalu pindahkan objek Pistol ke dalam objek First Person Controller pada panel hierarchy. hierarchy.
14
•
Ketika ditanya “losing prefab…are you wish to continue?” pilih continue?” pilih continue. continue.
•
Maka sekarang objek pistol tersebut telah menjadi satu kesatuan dengan objek First Person Controller. Controller.
•
Sehingga jika kita play game kita sekarang, maka pistol kotak tersebut akan mengikuti kemana kita pergi.
Namun apa yang terjadi? Meskipun mengikuti, mengikuti, si pistol ternyata tidak mengikuti gerakan kamera kita. Untuk itu, mari kita lakukan langkah berikut. •
Pindahkan objek pistol ke dalam objek Main Camera di dalam FPController. Sehingga si pistol kini bersatu dengan Main Camera. Camera.
•
Sehingga tampilan Hierarchy menjadi seperti ini:
•
Kita lihat hasilnya dengan menekan tombol play. play.
15
Peluru Ya, sekarang pistol tersebut sudah mengikuti gerakan kamera. Selanjutnya kita buat agar pistol kita dapat menembaki sebuah peluru. •
Buat sebuah Game Object berupa Sphere(bola). Sphere(bola). Taruh dimana saja.
•
Ganti nama Sphere tersebut menjadi “Peluru “Peluru” ”
•
Berikan ukuran yang rasional pada peluru tersebut sesuai dengan ukuran pistol.
•
Selanjutnya, Selanjutnya, dalam keadaan o bjek peluru tersebut terpilih, pilih Component > Physics > Rigidbody. Rigidbody.
Sehingga peluru tersebut kini memiliki properti Rigidbody pada panel Inspector. Inspector.
16
Rigidbody adalah komponen yang memberikan efek gravitasi pada sebuah objek. Objek yang diberi komponen Rigidbody akan memiliki efek benda dinamis yang akan terpengaruh gravitasi sesuai dengan parameternya. Rigidbody juga akan dapat saling berinteraksi dengan objek lain yang juga ber komponen Rigidbody.
•
Selanjutnya, Selanjutnya, pilih Create > Prefab.
•
Ganti nama Prefab baru “new p refab” menjadi peluruPrefab.
•
Pindahkan
objek
Peluru
dari
panel
Hierarchy
ke
peluruPrefab di panel Project. Project.
•
Hapus objek p eluru yang ada di panel Hierarchy. Kita sudah tidak membutuhkannya lagi.
Scripting Dasar Untuk sementara kita tinggalkan dulu pistol dan peluru tersebut. Selanjutnya mari kita mulai proses scripting untuk pistol dan pelurunya.
•
pada panel Project, Project, pilih Create, Create, lalu pilih Folder.
17
•
Maka akan muncul sebuah New Folder di dalam panel project. project.
•
Pilih New Folder tersebut, lalu klik sekali lagi. Ganti namanya menjadi “Java Script”
•
Lalu klik kanan folder Java Script tersebut, dan pilih Create > JavaScript
•
Maka akan muncul NewBehaviourScript NewBehaviourScript,, ini adalah script kosong baru. Genti namanya menjadi “PistolScript”.
•
Klik dua kali (double click) PistolScript tersebut.
Setelah double click, maka sebuah windows baru akan muncul. Ini adalah Unity Script windows. windows. Jika anda memang berencana akan berurusan dengan Unity dalam waktu panjang ini, maka anda akan menghabiskan banyak waktu bersuka duka d isini. Cry tear of joy!! >:D
Seperti yang anda lihat, script kosong hanya berisi •
function Update () {}
Hapus semua script tersebut, lalu copy paste script di bawah ini ke dalamnya:
var peluru : Rigidbody; var kecepatan = 20; function Update () { if (Input.GetButtonDown ("Fire1")) { var peluruBaru : Rigidbody = Instantiate (peluru, transform.position,transform.rotation); peluruBaru.velocity = transform.TransformDirection(Vector3 (0,0,kecepatan)); Physics.IgnoreCollision(peluruBaru.collider, transform.root.collider); } }
•
save script tersebut.
18
Catatan : Di tutorial ini tidak akan dijelaskan secara spesifik mengenai script yang diberikan. Jika anda ingin mengetahui lebih jauh mengenai scripting di Unity, silahkan merujuk ke Help > Scripting Manual. Atau lakukan penelitian lewat komunitas maupun forum-forum Unity di internet. Banyak pengguna Unity dari penjuru dunia yang secara aktif sharing script yang mereka buat.
Sekarang mari kita kembali ke pistol dan peluru kita.
Sebelum mengaplikasikan mengaplikasikan script yang baru saja kita buat, mari kita lakukan terlebih dahulu langkahlangkah berikut ini;
•
pilih GameObject > Create Empty
Empty Game Object adalah sebuah objek yang meskipun kosong namun berguna sebagai point master suatu objek. dalam kasus ini, Empty Game Object tersebut akan menjadi tempat dimana peluru ditembakkan.
•
Ganti nama Game Object kosong tersebut menjadi “Pistol Tembak”
•
Pindahkan Game Object Pistol Tembak sehingga bersatu dengan object Pistol
•
Atur posisinya sehingga berada di ujung Pistol. Pastikan agar sedikit berada di luar objek pistol.
•
Drag & drop script PistolScript ke dalam objek Pistol Tembak
19
Sekarang pilih objek Pistol Tembak, Tembak, lalu perhatikan ke panel Inspector.
Dapat kita lihat, kini ada parameter tambahan pada objek Pistol Tembak. Tembak. Parameter ni merupakan hasil aplikasi Java Script PistolScript. PistolScript.
•
Selanjutnya, dengan tetap memilih objek Pistol Tembak, Tembak, drag & drop peluruPrefab dari panel Project ke slot Peluru pada panel inspector objek Pistol Tembak. Tembak.
•
tekan Play
(Gunakan klik kiri atau keyboard Ctrl-kiri Ctrl-kiri anda untuk menembak).
20
Efek Ledakan Sekarang pistol kita sudah dapat menembakkan peluru. Selanjutnya mari kita tambahkan efek ledakan pada peluru yang ditembakkan. •
Buat Java Script baru bernama “Ledakan “Ledakan” ”
•
Copy paste script di bawah ini
var ledakan : GameObject; function OnCollisionEnter (collision : Collision) { var kontak : ContactPoint = collision.contacts[0]; var rotasi = Quaternion.FromToRotation(Vector3.up, kontak.normal); var ledakanBaru : GameObject = Instantiate (ledakan, kontak.point, rotasi); Destroy(gameObject); }
•
Pilih peluruPrefab pada panel project.
•
Pilih Component > Scripts > Ledakan
Sekarang prefab peluruPrefab telah memiliki parameter parameter “Ledakan” hasil dari script di atas.
21
•
Dengan peluruPrefab tetap terpilih, buka folder Standard Assets di panel Project, Project, lalu pilih Particles. Particles.
•
pindahkan prefab
explosion dari panel project ke slot Ledakan di Inspector
peluruPrefab. peluruPrefab .
Prefab explosion ini adalah efek template dari Unity.
Sekarang mari kita coba hasilnya. Tekan Play
Peluru yang dilontarkan kini menghasilkan efek ledakan ketika bersentuhan dengan objek lain. Jika anda mengalami kasus peluru meledak sebelum dilontarkan, pastikan objek Pistol Tembak tidak bersentuhan dengan objek Pistol. Pistol.
22
Build Untuk tahap akhir mari kita Build game kita sehingga menjadi sebuah game yang “standalone” •
Save project dan scene anda
•
Pilih File > Build Setting
•
Pilih Add Current
•
Ganti menjadi Windows Standalone. Standalone.
•
Pilih Build
•
Beri nama lalu save di tempat yang anda inginkan
23
Kesimpulan Jika tutorial ini kita singkat dengan sebuah gambar, maka kurang lebih dapat diperoleh kesimpulan seperti ilustrasi dibawah ini:
24
Demikian Tutorial Membuat Game Dengan Unity Part 1 (dasar) berakhir. Selanjutnya, silahkan anda bereksperimen dengan apa yang sejauh ini telah anda pelajari. Cari tutorial atau resource lain melalui internet. Atau silahkan tunggu kehadiran Part 2 Tutorial ini.
Di Tutorial Part 2 direncanakan akan membahas membahas : •
3rd person game tutorial
•
Integrasi Unity dengan Program 3D
•
Animasi karakter
•
Kontrol karakter
•
Simple AI (Artificial Intelligence) Intelligence) & waypoint
•
GUI system
Berhubung ini adalah tutorial pertama yang saya buat, mohon maaf jika ada kesalahan penulisan, atau segala kekurangan dalam tutorial ini. Sampai jumpa di tutorial part 2, & Happy & Happy game making! :)
Vadi Vanadi Buchari
[email protected]
25