Pemrograman Permainan - Pembuatan AI Sederhana

0 comments


Sebelum masuk ke materi, saya mengingatkan bahwa ini adalah lanjutan dari materi sebelumnya yaitu  Pemrograman Permainan - Belajar Membuat Karakter dan Animasi 3D Pada Unity 3D Engine. Agar dapat mengikuti materi ini, diharapkan pembaca sudah membuat project di link tersebut.

AI Sederhana

Kekuatan utama dari sebuah game adalah animasi karakter dan AI (Artificial Intelligence). Dalam materi kali ini, kita akan mencoba membangun karakter menggunakan script AI sederhana.
Karakter yang akan digunakan adalah Kiky Si Kancil yang sudah kita buat pada materi sebelumnya dan tiga buah karakter yang bisa diambil di Standard Assets.

Kiky Si Kancil adalah karakter yang dikembangkan oleh Rickman Rodevan yang terus dikembangkan sampai sekarang. Pada materi kali ini kita akan membuat Kiky yang merupakan seorang mutan kancil memiliki kekuatan ‘telekinetik’.

Buka project materi sebelumnya, lalu tambahkan sebuah Sphere dengan cara klik menu GameObject -> 3D Object -> Sphere.

Ganti nama sphere menjadi BolaTelekinetik. Tambahkan juga komponen Rigidbody.


Tambahkan sebuah Tag baru dan jadikan Sphere tersebut memiliki Tag KikyPower. Tag ini sangat penting sebagai penanda dalam script nanti.



Jadikan sphere tersebut sebagai prefabs dengan cara drag langsung dari tab Hierarchy ke panel Assets. Klik GameObject Kiky Si Kancil dan buatlah sebuah Child GameObject dengan cara klik menu GameObject -> Create Empty Child, lalu ganti namanya menjadi SpawnPoint.


Buat script C# baru dan beri nama PowerKiky.cs lalu ubah script menjadi seperti berikut:



Pasang script tersebut pada GameObject Kiky Si Kancil dan sesuaikan parameternya.


Jalankan game dan coba tes kekuatan telekinetik Si Kancil dengan menekan tombol Ctrl. Di dalam scene, tidak akan terlihat apa-apa, tapi perhatikan di panel Hierarchy ada sebuah GameObject (BolaTelekinetic clone) yang terbentuk setiap kali Kiky menembak.


Script PowerKiky memang sengaja tidak merender Sphere untuk memberikan efek telekinetik kepada user yang melihat. Jika ingin melihat ‘kekuatan Kiky’ silahkan centang pilihan Mesh Renderer dan akan terlihat Kiky menembakkan bola seperti pada materi game shot target.







Setelah selesai mengatur tokoh protagonis, berikutnya adalah mengatur tokoh antagonis. Asset Store Unity menyediakan beberapa buah model gratis yang sudah siap pakai. Contoh kali ini menggunakan Assets “Attack On Kancil” yang sudah disediakan oleh buku Unity Tutorial Game Engine karya Rickman Roedavan yang bisa diunduh di Link Ini.

Untuk import assets yang tidak dari assets store, dapat dilihat caranya dalam tutorial sebelumnya.

Package tersebut berisi 3 buah karakter yaitu Cyclops, Goblin dan Ghoul. masing-masing karakter telah dilengkapi dengan beberapa buah animasi.

Package tersebut juga berisi beberapa buah Prefab yang siap pakai, cukup drag ke Scene jika ingin mencobanya. Tapi pada materi kali ini, kita akan mengabaikan prefab tersebut dan mempelajari bagaimana prefab-prefab itu dibuat.

Pengaturan Target - Static

Target Static adalah target diam seperti kayu, batu, rumah, bangunan dan sebagainya. Dalam materi kali ini, kita akan mencoba target static berupa sebuah Patung Goblin.Cari model Goblin dari folder Attack on Kancil -> Goblin -> Model -> Goblin_model dan masukkan ke dalam Scene.




atur posisi dan ukurannya sesuai dengan kebutuhan. Karena Goblin akan dijadikan patung, maka cukup tambahkan Component Rigidbody dan Box Collider. Komponen tersebut bisa diakses melalui menu Component -> Physics.

Silahkan atur Center dan Size pada Box Collider menyesuaikan besar Goblin.



Berikutnya buat script C# dan beri nama Target_Object.cs. Berikut source code nya:


Pasang Script tersebut pada GameObject Goblin dan isikan satu parameter yang paling penting yaitu Trigger Tag. parameter ini perlu disesuaikan dengan Tag yang telah diatur pada BolaTelekinetik sebelumnya yaitu KikyPower.

Jalankan game, arahkan Kiky ke Goblin dan tekan Ctrl, akan terlihat sebuah efek telekinetik ketika Kiky mendorong Patung Goblin dengan ‘kekuatannya’.


Pengaturan Target - Animation Clip

Unity mengenali dua jenis animasi yaitu menggunakan clip (tradisional) dan mechanim. Pada pembahasan materi kali ini, kita akan mencoba membuat pergerakan karakter Cyclops menggunakan animasi clip. Cari model Cyclops dari folder Attack On Kancil -> Cyclops -> Model -> Cyclops dan masukkan ke dalam Scene.

Perhatikan bahwa secara default karakter Cyclops telah dilengkapi dengan 9 jenis animasi yang diatur dalam komponen Animation.


Tambahkan sebuah Character Controller dengan cara klik menu Component -> Physics -> Character Controller.


Buat script C# beri nama TargetClipAIS.cs lalu ubah seperti


Pasang script tersebut pada GameObject Cyclops dan sesuaikan beberapa buah parameternya sebagai berikut, terutama parameter Target. Parameter ini harus diisi GameObject Kiky Si kancil agar Cyclops dapat ‘mengejarnya’.



Silahkan play game, dan dekatkan character kancil ke dalam radius search area dari cyclops, maka cyclops akan bereaksi dan bergerak.



Materi From : Universitas Budi Luhur
Link Project : Google Drive




Pemrograman Permainan - Belajar Membuat Karakter dan Animasi 3D Pada Unity 3D Engine

0 comments



Pendahuluan

Materi kali ini kita akan membahas tentang bagaimana menggerakkan karakter 3D dalam unity.

Seperti pada materi sebelumnya, kita akan memanfaatkan beberapa Assets yang sudah tersedia dan “meramunya” menjadi sebuah game yang menarik.

Assets yang dibutuhkan antara lain adalah :
  • Standard Assets - bisa didapat di Unity Store
  • Kiky si Kancil - bisa di dapat di Link ini
  • Simple city plain - bisa didapat di Unity Store

Proses Pembuatan Terrain

Buatlah Project 3D baru di Unity. Import package Standard-Asset, kemudian tambahkan sebuah Terrain yang memiliki environment perkotaan seperti yang telah dibuat pada tutorial sebelumnya.

Baca post dari blog saya sebelumnya jika lupa bagaimana melakukan import dan membuat Terrain dengan texture rumput. Jangan lupa juga untuk import assets dari Kiky si Kancil yang ada di menu Assets -> Import Package -> Custom Package


Selanjutnya pilih package dari Asset Kiky si Kancil yang telah di download sebelumnya.

Setelah membuat terrain dengan environment perkotaan, tambahkan character Third Person dan sesuaikan camera pada scene sehingga tampilan scene akan seperti dibawah ini. 


Akan ada sesosok laki-laki berambut rancung yang seluruh kulit dan bajunya berwarna abu-abu. Namanya adalah Ethan, ia adalah salah satu model bawaan Unity yang texturenya memang sengaja dihilangkan. 

Selanjutnya tambahkan prefabs FreeLookCameraRig yang bisa didapatkan pada folder Prefabs di dalam folder Cameras. Sebelumnya, hapus dulu object Main Camera pada Hierarchy karena fungsi kamera akan kita ganti menggunakan FreeLookCameraRig ini.


Klik prefabs FreeLookCameraRig dan pada parameter Target, drag ThirdPresonController alias karakter Ethan.


Silahkan coba jalankan game, gerakkan karakter Ethan dengan keyboard dan kamera akan secara ‘otomatis’ mengikuti dari belakang.


\
NOTE !! 

Hal terpenting yang perlu diketahui adalah, Unity bukanlah software untuk membuat karakter 3D. Kita harus membuat karakter tersebut menggunakan software grafis seperti Blender atau 3D Max. Adapun karakter yang akan kita pelajari pada materi kali ini adalah karakter Kiky Si Kancil yang diambil dari buku Unity Tutorial Game Engine karya Rickman Roedavan
Karakter Kiky Si Kancil dibuat menggunakan Software Blender.


Agar karakter yang dibuat pada software grafis tersebut dapat digunakan dengan baik pada Unity, maka karakter harus sudah dilengkapi dengan tekstur yang diproyeksikan menggunakan UV. model dan tekstur tersebut harus diimpor ke dalam Unity.
Selain itu, karakter yang akan diimpor ke dalam unity juga harus disertakan dengan animasinya. Setiap software grafis memiliki mekanisme yang hampir mirip dalam pengendalian animasi.

Setiap animasi diatur ke dalam beberapa frame dan masing-masing dapat diberikan label sesuai dengan gerakan animasinya seperti idle (diam), walk (berjalan), run (berlari) dan sebagainya.
Pastikan package Kiky Si Kancil.unitypackage sudah di-import, barulah kita bisa melanjutkan materi ini.

Proses Import Karakter Animasi Kiky Si Kancil

Sebelum masuk ke Step ini, disarankan kalian sudah memiliki software Blender di PC masing masing. Lalu Buka folder Model dan pasang object UnitySiKancilX.blend pada Scene.

NOTE : Apabila file *.blend tidak bisa di pasang di scene, maka klik 2x file *.blend tersebut dan unity akan mengarahkan window ke Software Blender yang dipasang sebelumnya dan export blend ke extension *.fbx dengan langkah-langkah : File -> Export -> FBX (.fbx) .


Tambahkan texture dengan cara klik texture pada panel Assets dan tarik langsung ke mesh Kiky Si kancil. Tampilan Model dan texture yang sudah benar dapat dilihat dibawah. Untuk character ethan yang sebelumnya kita buat, bisa dihapus karena kita akan fokus pada si Kancil.


Untuk ukuran dari Character, dapat disesuaikan dengan merubah Scale dari Object Kancil yang ada pada inspector.


Selanjutnya tambahkan CharacterController ke object Kiky dengan cara klik menu Component -> Physics -> Character -> Controller. Mulai Unity 4.0 disarankan untuk menggunakan CharacterController dan menghindari Rigidbody untuk pengendalian karakter yang ‘rumit’.


Atur Size CharacterController sehingga meliputi seluruh tubuh Kiky Si Kancil.  Kemudian klik GameObject Kiky Si Kancil. Pada tab Inspector, di panel Animator, pasang KikyController yang ada di assets Kiky Si Kancil jika sebelumnya belum terpasang untuk mengatur animasi pergerakan dari Character Kiky.

Selanjutnya buatlah script C# baru dan beri nama ScriptKiky.cs dan ubah menjadi seperti berikut ini:



Pasang script pada game Object Kiky Si Kancil dan isi Parameter nya sebagai berikut.


Terakhir, gunakan prefab FreeLookCameraRig dan arahkan Targetnya pada Kiky Si kancil. Kita bisa mengatur beberapa parameter yang lain sesuai kebutuhan, namun yang paling utama adalah atur parameter Colsest Distance:20 agar jarak kamera dengan Kiky tidak terlalu dekat.



Jika tidak ada kesalahan, Jalankan game dan lihat apa yang terjadi.. ya, character pun bisa bergerak dan animasinya pun sesuai dengan input dari player.



Materi from : Universitas Budi Luhur
Link Project : Google Drive





Pemrograman Permainan - Membuat Terrain Perkotaan Pada Unity3D Engine

0 comments

Apa itu Terrain ?

Terrain adalah arena permainan yang biasanya berupa hamparan dengan texture tanah, rumput, pasir, bebatuan atau air. Pada terrain pada umumnya juga terdapat model gunung, lembah, pohon dsb.
Sebagai sebuah game engine yang terintegrasi, Unity telah dilengkapi dengan world editor yang sangat lengkap, kita tidak perlu lagi bersusah payah hanya untuk membuat terrain utama dalam game.

Nah pada tutorial kali ini, saya akan membagikan cara untuk membuat terrain perkotaan pada Unity3D. 

Pertama buatlah Project 3D baru di Unity. Berikan nama untuk project (bebas apa saja). Sekali lagi pastikan pilihan 3D aktif. Jika project sudah dibuat, import requirement package yang ada dibawah.


  1. Simple city plain - FREE
  2. Standard Assets - FREE


Ada dua cara untuk melakukan import package Unity

1. Menggunakan window Asset Store (Ctrl+9) (harus terhubung dengan internet)
2. Import dari komputer(Assets -> Import Package -> Custom Package) cara ke dua ini tidak harus terhubung ke internet


Berikutnya kita akan lanjutkan materi dengan asumsi kalian sudah berhasil melakukan import package RealisticTerrain dan Standard-Assets. Proses ini membutuhkan waktu yang cukup lama, tergantung spesifikasi komputer yang digunakan.

Setelah proses impor selesai, tambahkan sebuah terrain dengan cara klik menu GameObject -> 3D Object -> Terrain. Jika tidak terjadi kesalahan, maka sebuah terrain kosong berukuran 500x500 pixel akan muncul.

Klik tombol Terrain Setting pada panel Terrain di tab Inspector yang akan menampilkan menu tambahan baru untuk pengaturan terrain aktif. Atur terrain width dan height sesuai kebutuhan.




Selanjutnya klik tombol Paint Texture pada panel Terrain di tab inspector yang akan menampilkan menu tambahan baru untuk mewarnai terrain aktif.

Klik Edit Texture, klik Add Texture, dan pada kotak Dialog Add Terain Texture, klik Select dan pilih salah satu texture yang ada, misalnya saja texture Grass alias rumput berwarna hijau. Setelah itu klik Add



Setelah terrain dasar dibuat, silahkan drag n drop Prefabs Street 3 Prefab dan Sideway Prefab yang ada di Folder Assets -> Simple city plain -> Prefabs untuk membuat jalan raya dan trotoar lalu perbanyak prefab dengan copy - paste sehingga didapatkan jalan raya beserta trotoar nya seperti dibawah ini. 


Buat sebuah object plane di kiri jalan dan warnai plane tersebut dengan material atau warna yang sama dengan aspal jalan sebagai dasar untuk pom bensin. 


Tambahkan bangunan lain yang ada di prefab untuk menambah kesan perkotaan pada Terrain.

Saat kesan perkotaan sudah mulai terbentuk, tambahkan props props seperti vending machine, pot tanaman, pohon dan lampu jalan.

Berikut tampilan terrain dengan tambahan props.


Untuk menjelajahi kota, silahkan gunakan prefab Character -> Third Person Controller atau FPSController, untuk cara pemakaian Prefab bisa lihat di materi sebelumnya.

Sekian tutorial pembuatan kota dari saya, terima kasih atas perhatiannya







Pemrograman Permainan - Membuat UI pada Unity

0 comments



Yang harus dilakukan pertama adalah buatlah project baru di Unity atau cukup scene baru saja jika masih ingin menggunakan project yang sudah digunakan dalam materi sebelumnya. 

Membuat Panel UI

Tambahkan sebuah panel dengan cara klik menu GameObject -> UI -> Panel.


Apabila berhasil maka akan muncul sebuah canvas besar di scene yang anda buat.

Semua object UI memiliki satu mekanisme unik yang disebut dengan Anchor. Misalnya untuk panel yang baru saja kita pasang. Kita bisa melihatnya pada panel Transform bahwa secara default Anchor yang dimilikinya adalah Strecth x Strecth.




Anchor tersebut akan membuat panel yang dibuat akan ikut membesar secara horizontal dan vertikal sesuai dengan ukuran layar game. Kita bisa mengubah jenis Anchor dengan klik kotak penanda Anchor. Misalnya mengubah pilihan pada Top x Left kemudian geser panelnya pada ujung kiri atas. Pilihan ini akan membuat panel ‘menempel’ pada posisi kiri atas Canvas. Tak peduli ukuran layar
game berubah-ubah. Untuk mencobanya silahkan ubah ukuran layar game.



Sebelum layar di lebarkan :


Sesudah di lebarkan : 


Dapat terlihat walau ukuran layar pada game berbeda, tetapi ukuran dari panel UI tetap sama.

Membuat Button di Panel UI

Selanjutnya kita akan membuat tombol. Caranya klik menu GameObject -> UI -> Button.
Pasang Button sebagai child dari Panel dengan cara drag langsung pada tab Hierarchy.



Jalankan game dan coba geserkan tab Game, lalu perhatikan hasilnya. Meski ukuran panel mengikuti layar game namun posisi dan ukuran button tidak. Hal terpenting yang harus diingat adalah Anchor bekerja untuk setiap objek UI sehingga kita harus mengaturnya satu persatu.


Solusi dari permasalahan diatas adalah dengan mengatur anchor pada button. Dalam kasus ini saya memakai anchor top left.


Nah pada gambar diatas posisi dari button akan relative mengikuti Panel UI.

Membuat Input Field pada Panel UI

Selanjutnya buat sebuah InputField dengan cara klik menu GameObject -> UI-> InputField. GameObject ini berfungsi untuk menerima inputan dari user.


Klik GameObject PlaceHolder yang merupakan child dari GameObject InputField pada tab Hierarchy, lalu klik tab Inspector dan pada panel Text ganti parameter Textnya menjadi placeholder  dan atur text format yang anda inginkan.




Selanjutnya tambahkan sebuah Text dengan cara klik menu GameObject -> UI -> Text. Tempatkan text sebagai child dari panel. Atur posisi sesuai kebutuhan.


Anda dapat mengganti isi dari text di inspector dari game object text field tersebut.

Selanjutnya kita akan buat Script C# baru dan beri nama KlikUI.cs lalu ubah script seperti di bawah ini:


Selanjutnya pasang script pada GameObject. Kita bisa pasang di sembarang GameObject, misalnya saja kita pasang pada Canvas, lalu sesuaikan dua buah parameter public yang dibuat tadi dengan GameObject yang telah kita buat sebelumnya di Scene. Untuk memudahkan, silahkan ganti nama GameObject Text yang menjadi target.

Selanjutnya klik Button pada Scene, cari panel event OnClick() pada tab Inspector, klik tombol + di pojok kanan bawah. Masukkan GameObject yang diberi script (dalam hal ini Canvas) pada parameter Object, dan klik combobox yang bertuliskan No Function dan pilih KlikUI. Dalam hal ini KlikUI adalah script yang dipasang pada GameObject Canvas. Pada dasarnya, semua fungsi yang dipasang sebuah GameObject yang dipasangkan pada event OnClick akan muncul pada combobox ini.

Pilih fungsi ClickMe(). Dengan begini, fungsi ClickMe() akan dipanggil jika Button ditekan. Jalankan Game, isi InputField dengan kata bebas dan klik buttonnya. Mudah bukan ?

Referensi : Universitas Budi Luhur

Powered by Blogger.
 
Blog Teknologi © 2012 | Designed by Meingames and Bubble shooter