Total Tayangan Halaman

Sabtu, 23 Mei 2020

10. Terrain 3D | Pemrograman Permainan dengan UNITY

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.

Buatlah Project 3D baru di Unity. Berikan nama untuk project (bebas apa saja). Sekali lagi pastikan pilihan 3D aktif. Jika project sudah dibuat, import package standar Unity. 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

1. Menggunakan window Asset Store (Ctrl+9)
Import menggunakan cara ini mewajibkan kita terhubung ke Internet karena Unity akan langsung mengakses assetstore.unity.com dan menampilkannya pada window ini. Kita bisa melakukan pencarian dan langsung klik import di Asset yang kita pilih, dengan sekejap Unity akan meletakkan Asset pada project yang sedang kita buat. Menggunakan window Asset Store (Ctrl+9) (Cont’d). Kita bisa melakukan pencarian dengan mengetikkan kata kunci pada kolom Search for assets, misalnya ketik Standard Asset. Jika sudah ditemukan, untuk asset FREE bisa kita import begitu saja. 

2. Import dari komputer 
(Assets -> Import Package -> Custom Package) cara kedua ini mewajibkan kita sudah memiliki Package Assets yang bisa kita unduh di internet (salah satunya https://assetstore.unity.com/) Cara ini memungkinkan kita melakukan impor tanpa terhubung ke internet.

Sebelum kita lanjutkan materi, silahkan kalian dapatkan Standard Assets Unity dengan cara mencari pada Assets Store. 
Asset yang tersedia diantaranya:
Standard-Assets
RealisticTerrain
LowPolyWater_Pack
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.

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.
Kemudian atur Resolution Terrain Width dan Terrain Length menjadi 1000x1000



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 tombol Add di klik, maka terrain yang semula berwarna putih akan berubah menjadi hijau. Lakukan hal yang sama dan tambahkan sebuah texture lain, misalnya yang berwarna coklat.



Pada panel Brushes, pilih salah satu brush yang kalian suka, pilih texture yang kedua (bukan texture grass yang pertama), setelah itu warnai terrain tadi. Caranya klik dan drag saja menggunakan mouse pada terrain sesuka hati.
Kalian juga dapat bereksperimen dengan menggunakan texture dan brush yang lain. Ukuran brush dapat juga diatur menggunakan slider, masih di panel yang sama.



Selanjutnya klik tombol Raise/Lower Terrain pada panel Terrain di tab Inspector yang akan menampilkan tambahan baru untuk mengubah ketinggian terrain aktif, hal ini bisa digunakan untuk membuat pegunungan pada terrain.
Cukup klik pada texture dan secara otomatis, terrain akan naik dengan sendirinya. Gunakan Shift+klik untuk menurunkan ‘gunung’. Kombinasi antara brush yang berbeda dapat membuat tampilan gunung semakin bervariasi.



Selanjutnya klik Paint Trees pada tab Terrain di tab Inspector yang akan menampilkan menu tambahan baru untuk pembuatan pepohonan.
Klik Edit Trees, pada kotak dialog Add Tree, klik browse, pilih salah satu pohon yang ada dan klik Add.
Kita bisa menambahkan beberapa pohon ke dalam Trees supaya ada lebih dari satu jenis pohon di Terrain yang kita buat.



Lakukan cara yang sama seperti sebelumnya, klik dan drag untuk membuat pohon tumbuh di mana-mana.

Klik Paint Details pada panel Terrain di tab Inspector yang akan menampilkan menu tambahan baru untuk pembuatan rumput.

Klik Edit Details, pada kotak dialog Add Grass Texture, klik browse, pilih salah satu texture rumput yang ada dan klik Add.


Dengan cara yang sama seperti menanam pohon, kita sekarang pun bisa menanam rumput. Perbedaannya, rumput hanya akan tampil jika posisi kamera berada pada jarak yang cukup dekat, sehingga jangan heran jika posisi kamera terlalu jauh di atas terrain, rumput kadang tidak terlihat.



Selanjutnya membuat danau. Caranya, dari folder Environment cari folder Water dan pilih folder Prefabs. Pilih salah satu prefabs water dan tarik langsung pada Scene.

Atur posisi dan ukurannya menggunakan gizmo seperti halnya mengatur GameObject seperti Cube, Sphere atau lainnya.
Selanjutnya kita akan memasukkan karakter ke dalam Terrain, caranya cari folder Characters, lalu expand folder FirstPersonCharacter, dan pilih folder Prefabs. Masukkan RigidBodyFPSController ke dalam Scene. 

Atur posisi menggunakan gizmo seperti mengatur GameObject lain, tempatkan sedikit di atas terrain, hal ini perlu agar GameObject tidak tenggelam ke dalam jurang tak berujung di area Scene karena prefab ini dapat dipengaruhi oleh gravitasi.

Terakhir, jalankan Game.
hanya dalam hitungan menit kita berhasil membuat scene landscape. Membangun sebuah game menggunakan Unity seperti menyusun puzzle, sudah tersedia Asset yang sangat banyak, tinggal kita menyusunnya menjadi sebuah game.

Itu saja yang dapat saya sampaikan. Silahkan komentar jika ada yang ingin ditanyakan.

Mampir juga ke web Universitas Budi Luhur: www.budiluhur.ac.id

Universitas Terbaik di Jakarta ðŸ˜„

 


Minggu, 17 Mei 2020

9. UI System | Pemrograman Permainan dengan UNITY

Unity memiliki kelemahan dalam hal UI (user interface). Class GUI yang dimiliki Unity mengharuskan programmer berusaha lebih keras hanya untuk membuat sebuah tombol dan interaksinya. Tetapi sejak versi 4.6 Unity mengeluarkan fitur UI yang sangat baik. Kini pembuatan user interface di Unity semudah drag and drop.

Buatlah project baru di Unity atau cukup scene baru saja jika masih ingin menggunakan project yang sudah digunakan dalam materi sebelumnya. Tambahkan sebuah panel dengan cara klik menu GameObject > UI > Panel.



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.



Gunakan Hand Tool standar dan gunakan mouse (klik kanan dan kiri) untuk mendapatkan pandangan Scene seperti di bawah ini.



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.



Contoh lainnya misalnya adalah kebalikannya yaitu Top-Right. Ubahlah Anchor panel menjadi Top-Right dan geser panel sampai ujungnya mendekati posisi kanan atas. 

Jalankan game dan ubahlah layar tab game, bisa perhatikan kini bahwa panel akan berusaha untuk selalu menyesuaikan dengan ujung layar game sebelah kanan atas?

Baiklah sekarang kembalikan lagi Anchor menjadi Strecth x Strecth lalu lanjutkan materi berikutnya.
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.

Menguasai Anchor merupakan dasar terpenting dalam penggunaan UI pada Unity. Prosesnya cukup rumit dan mudah, kita hanya perlu sedikit lebih teliti.
Selanjutnya buat sebuah InputField dengan cara klik menu GameObject > UI > InputField. GameObject ini berfungsi untuk menerima inputan dari user.



Tempatkan Inputfield pada panel dan sesuaikan posisinya sesuai keinginan.



Klik GameObject PlaceHolder yang merupakan child dari GameObject InputField pada tab Hierarchy, lalu klik tab Inspector dan pada panel Text ganti parameter Textnya menjadi “Masukkan Nama Anda...”



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



Anda juga bisa mengganti text yang ada pada Button dengan klik pada Text pada child Button, klik Inspector lalu ubah parameter Text sesuai kebutuhan.



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 TextTarget.



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. Pilih fungsi ClickMe(). Dengan begini, fungsi ClickMe() akan dipanggil jika Button ditekan.



Pada dasarnya, semua fungsi yang dipasang sebuah GameObject yang dipasangkan pada event OnClick akan muncul pada combobox ini.
Jalankan Game, isi InputField dengan nama seseorang dan klik buttonnya. Terlihat hasilnya?

Itu saja yang dapat saya sampaikan. Silahkan komentar jika ada yang ingin ditanyakan.
Mampir juga ke web Universitas Budi Luhur: www.budiluhur.ac.id
Universitas Terbaik di Jakarta 😄