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

Pemrograman Permainan - Membuat Animasi Sederhana pada Unity Engine

0 comments

Animasi Pada Unity3D

Animasi pada dasarnya adalah sebuah pergerakan yang terbagi menjadi dua, yaitu perpindahan posisi dan perubahan bentuk. Materi ini akan membahas proses pembuatan dua jenis animasi tersebut menggunakan tool standar Unity. Hal-hal lain yang lebih rinci mengenai animasi pada object akan dijelaskan pada materi selanjutnya.

Praktik Membuat Animasi pada Unity3D

Buatlah project baru di Unity atau cukup scene baru saja jika masih ingin menggunakan project yang sudah digunakan dalam materi sebelumnya. Tambahkan sebuah Plane dengan cara klik menu GameObject -> 3D Obect -> Plane.


Tambahkan sebuah Cube dangan cara klik menu GameObject -> 3D Obect -> Cube dan tempatkan Cube sedikit di atas Plane agar terlihat seperti gambar dibawah.




Selanjutnya tampilkan jendela Animation dengan cara klik menu Window -> Animation atau dengan shortcut Ctrl + 6. Rencananya kita akan membuat 3 animasi yang berbeda untuk si Cube.


Untuk membuat animasi, yang pertama harus dilakukan adalah membuat sebuah file *.anim yang berisi sebuah animasi. Caranya, klik GameObject Cube pada tab Hierarchy, klik jendela Animation dan klik Create. Lalu ketikan nama animasinya, misalnya: Animasi1.anim.


Pastikan tombol record (tombol merah di pojok kiri atas) telah diklik yang menandakan Unity telah siap melakukan rekaman pergerakan apapun terhadap GameObject yang aktif. Untuk Animasi1 kita akan membuat Cube berubah ukuran. Caranya klik angka pada timeline dan pindahkan sampai angka 0:30.


Sampai tahap ini, jika kita klik tombol play animasi (yang berada di sebelah kanan tombol record pada jendela Animation) kita sudah dapat melihat bahwa Cube tersebut telah ‘bergerak’. Dari kecil ke besar dan begitu seterusnya. Agar animasinya lebih smooth lagi, silahkan coba copy (Ctrl+C) Keyframe di 0:00 dan paste (Ctrl+V) Keyframenya di 1:00


Sekarang buatlah 2 animasi klip lagi menggunakan cara yang sama namun dengan pergerakan yang berbeda. Untuk menambahkan klip, cukup klik pada combo utama di jendela Animation dan klik Create New Clip.



Jika pada animasi sebelumnya kita membuat perubahan ukuran, coba di animasi yang kedua ini kita berupa perubahan rotasi objek.


Berikutnya animasi ketiga buatlah perpindahan objek dari beberapa titk sekaligus. Anda cukup klik pada KeyFrame tertentu dan pindahkan Cubenya ke mana saja.


Tambahkan sebuah Component Animation pada Cube dengan cara klik menu Component -> Miscellaneous -> Animation.
Pada parameter Animations, ketikan angka 3 (sejumlah animasi yang tadi dibuat) dan masukkan satu per satu animasi yang diinginkan pada kotak yang bersesuaian.



Berikutnya buatlah script C# baru dan beri nama AnimationCube.cs. Ubah menjadi seperti berikut:



Script diatas akan menghasilkan sebuah button di kiri atas game, yang saat di klik akan memainkan animasi yang diinginkan.







Pemrograman Permainan - Belajar Fungsi Translate() dan Raycast()

0 comments


  1.  Apa itu fungsi Translate( ) pada unity
Translate adalah sebuah fungsi untuk membuat sebuah objek bergerak secara relatif terhadap posisinya sendiri dan bukan pada posisi dunia. Contohnya jika tombol panah maju ditekan maka objek akan mau ke depannya dan bukan ke arah depan pandangan pengguna.

     2.  Apa itu fungsi Raycast( ) pada unity

Fungsi Raycast() merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.


Praktik pemakaian fungsi Translate( ) and Raycast( )

     Buat sebuah project game 3D pada unity. Lalu tambahkan game object cube pada scene. dan buat component rigidbody yang diattach pada game object cube sebelumnya. Lalu buat sebuah plane sebagai lantai dari cube. Pastikan cube berada di atas plane. Tambahkan material pada cube agar warna tidak sama dengan plane.



  1. Pemakaian Translate ( ) 
Silahkan buat script C# bernama TranslateScript.cs lalu ketik script dibawah ini pada text editor yang anda pakai. Pasang script di game object cube dan coba jalankan game lalu tekan tombol arrow atas.
Yang terjadi adalah cube akan maju sesuai arah dari cube tersebut.


Tahap selanjutnya, hentikan game dan tambahkan script seperti screenshot dibawah ini pada method update.


Lalu silahkan play game. coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan tombol shift kiri + tekan tombol panah kanan atau kiri. Hasilnya cube akan bergerak maju dan mundur saat arrow atas dan bawah ditekan, saat ditekan arrow kanan dan kiri kepala dari cube akan melakukan rotate ke arah arrow yang ditekan. Saat L-Shift dan arrow kanan di tekan, cube akan bergerak secara horizontal.

Tambahkan sebuah method di script yang bernama IsGrounded( ) yang mengembalikan boolean.


Kemudian panggil method IsGrounded( ) pada method Update ( ) sebagai sebuah conditional statement.  Jalankan kembali game dan tekan tombol spasi. maka game object cube akan melompat bergantung pada value variabel distGround dan power.


Jika pada if statement diatas method IsGrounded( ) tidak dipanggil kira kira apa yang terjadi? Tentu saja cube akan melesat ke atas tanpa batasan. 

     2. Pemakaian Raycast( )

Cube akan dibuat bergerak menuju suatu titik berdasarkan inputan dari mouse. Atur posisi MainCamera seperti semula sehingga tidak lagi menjadi child dari cube dan dapat melihat keseluruhan Plane Cube dari atas kira kira seperti gambar dibawah.


Tambahkan sebuah Plane lainnya, beri nama Target. Kecilkan ukuran Plane tersebut dengan menggunakan gizmo scale dan tambahkan sebuah material dan beri warna tertentu sehinga plane target dapat terlihat kontras dengan Plane yang berada di bawahnya.


Buat script lalu beri nama RaycastCube.cs dan ketik script dibawah ini.



Pasang script tersebut di GameObject Cube, isikan parameter target dengan GameObject plane target yang tadi sudah dibuat. Untuk percobaan awal, biarkan parameter Is Moving tidak dicentang kemudian jalankan Game. Klik kanan pada sembarang tempat di plane pertama, perhatikan plane yang dipasang material akan berpindah pada posis tepat di posisi mouse dan Cube berputar sesuai dengan arah Plane tersebut.

Hal lain yang menarik dari proses ini adalah ketika Anda berpindah dari tab Game ke tab Scene saat Game masih berjalan. Anda dapat melihat sebuah garis lurus berwarna merah yang ditembakkan langsung dari GameObject Main Camera menuju titik pusat plane kecil (target). Kira-kira seperti itulah bentuk ‘nyata’ dari fungsi RayCast yang merupakan salah satu fungsi utama yang sering digunakan untuk menciptakan interaksi antara user dengan lingkungan game.



Langkah selanjutnya adalah, matikan kembali game, lalu centang parameter Is Moving, dan jalankan kembali game. Kini selain hanya melihat ke arah posisi titik yang diklik oleh mouse, Cube juga akan bergerak menuju Plane.

Sekian tutorial blog yang saya buat. Terima kasih atas perhatiannya.

Kunjungi juga : Universitas Budi Luhur

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