Minggu, 14 Juni 2020
Minggu, 07 Juni 2020
11. Karakter dan Animasi 3D | Pemrograman Permainan dengan UNITY
Sabtu, 23 Mei 2020
10. Terrain 3D | Pemrograman Permainan dengan UNITY
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
Kamis, 07 Mei 2020
8. Simple Animation | Pemrograman Permainan dengan UNITY
Materi kali ini membahas dasar membuat animasi. 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.
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.
Selanjutnya tampilkan jendela Animation
dengan cara klik menu Window -> Animation. 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.
Setelah itu gunakan gizmo Scale dan perbesar ukuran Cube (misalnya sampai dua kali lipat besarnya). Bila merasa kesulitan bisa juga menggunakan panel Transform dan memasukkan angkanya pada parameter Scale misalnya (1.5, 1.5, 1.5)
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. Pastikan tombol record telah dimatikan.
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.
Pastikan sampai pada tahap ini tidak ada kesalahan, seharusnya kita memiliki 3 buah file animasi dan 1 buah file Animator.
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:
Pasang script tersebut pada GameObject Cube dan jalankan Game. Klik setiap button dan perhatikan animasi yang dijalankan akan berbeda-beda. Ini adalah dasar-dasar pengaturan animasi pada Unity, khususnya animasi menggunakan Component Animation.
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 😄
Jumat, 24 April 2020
7. Translate() dan Raycast() | Pemrograman Permainan dengan UNITY
Fungsi Raycast() merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.
Translate
Buatlah project baru di Unity atau cukup Scene baru saja (jika Anda masih ingin menggunakan project materi sebelumnya).
Pastikan Project yang digunakan adalah Game 3D.
Tambahkan sebuah GameObject cube dengan cara klik menu GameObject > 3D Object > Cube dan tambahkan sebuah Component Rigidbody melalui menu Component > Physics > Rigidbody.
Kemudian atur posisi Cube agar berada tepat di atas Plane seperti berikut dengan menggunakan gizmo atau panel Transform. Sampai langkah ini Anda sudah memiliki sebuah Cube yang memiliki massa dan dipengaruhi oleh gaya gravitasi.
Kalian juga bisa menambahkan sebuah asset gambar apapun dengan cara klik kanan pada panel Assets lalu pilih Import New Assets… Pasang texture tersebut pada Cube. Gambar ini hanya untuk membuat cube lebih menarik saja.
Berikutnya buat script dan beri nama TranslateScript.cs lalu ubah menjadi seperti di bawah ini
Pasang script tersebut ke Cube yang tadi dibuat, lalu jalankan Games. Tekan tombol panah atas, apa yang terjadi?
Hentikan Games lalu modifikasi script, tambahkan script berikut ini ke method update
Jalankan kembali game, lalu coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan tombol shift kiri + tekan tombol panah kanan atau kiri. Bagaimana hasilnya?
Selanjutnya tambahkan kode seperti dibawah ini
Jika tidak ada kesalahan (debug) seharusnya game sudah bisa menggerakkan Cube menggunakan keyboard dan meloncat jika menekan tombol spasi.
Ada game yang kameranya mengikuti objek kemanapun perginya. Ada banyak cara untuk membuat seperti ini, salah satu cara yang paling mudah adalah dengan menjadikan MainCamera sebagai child dari GameObject Cube. Caranya drag saja langsung GameObject MainCamera di tab Hierarchy ke GameObject Cube. Atur posisi MainCamera sesuai yang diinginkan, misalnya di depan atau di belakang, bahkan di atas cube.
Raycast
Berikutnya Cube akan dibuat bergerak menuju suatu titik berdasarkan inputan dari mouse.
Atur posis MainCamera seperti semula sehingga tidak lagi menjadi child dari cube dan dapat melihat keseluruhan Plane Cube dari atas.
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
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 target 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.
Kursor mouse TIDAK PERNAH TAHU benda apa yang diklik dalam game. Satu-satunya yang bisa dilakukannya hanya mengirimkan posisi koordinat yang diklik. RayCast merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector3D (dalam hal ini Plane). Pada posisi perpotongan antara garis merah dan plane putih itulah, objek target berpindah.
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 mose, Cube juga akan bergerak menuju Plane.
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 😄
Kamis, 16 April 2020
6. Prefab | Pemrograman Permainan dengan UNITY
Prefab merupakan sebuah GameObject yang disimpan ke dalam Assets, yang nantinya bisa dimanfaatkan menjadi GameObject kembali.
Fungsi Instantiate() atau yang dalam banyak forum lebih sering disebut dengan: "Fungsi
untuk membuat GameObject secara runtime."
Idenya game yang akan dibuat kali ini cukup sederhana yaitu membuat Prefab dari sebuah GameObject dan mendaftarkannya sebagai sebuah variable public agar dapat dibuat ulang berkali-kali oleh fungsi pemanggil. Fungsi ini merupakan salah satu fungsi yang sering digunakan dalam pembuatan game.
Buatlah project baru di Unity atau Scene baru.
Pastikan Project yang digunakan adalah Game 3D.
Tambahkan sebuah Plane dengan cara klik menu Create di jendela hierarchy > 3D Object > Plane lalu ganti namanya menjadi Lantai1.
Atur posisi Main Camera dan plane menggunakan gizmo atau panel Transform sehingga
Kamera dapat melihat lantai dengan jelas berada di bawah.
Tambahkan plane kedua, ganti namanya menjadi Lantai2 dan atur scalenya menggunakan Scale Tool di pojok kiri atas atau masukkan angkanya pada panel transform.
Angkat posisi Lantai2 sedikit ke atas dan atur kemiringannya sehingga mirip seperti gambar berikut.
Klik Lantai2 pada tab Hierarchy kemudian buat GameObject Child dengan cara klik menu Create > Create Empty Child.
Atur posisi GameObjectChild tadi menggunakan gizmo atau panel Transform sehingga
sedikit di atas Lantai2 seperti gambar berikut.
Untuk memudahkan penyebutan, ganti nama Game Object Child tadi menjadi TitikJatuh.
Selanjutnya buat sebuah Sphere baru dengan cara klik menu GameObjects > 3D Object > Sphere dan ganti namanya menjadi MyBall.
Arahkan MyBall ke depan Lantai2
Tambahkan sebuah gambar pada panel Assets dengan cara klik kanan pada panel Assets > Import New Assets..., lalu pilih salah satu gambar yang ada di komputer Anda atau bisa dengan cara drag & drop gambar langsung ke panel Assets.
Dari panel Assets, drag gambar tersebut menggunakan mouse lalu letakkan pada MyBall sehingga terlihat seperti di bawah ini.
Klik MyBall dan tambahkan RigidBody dengan cara klik menu Add Component di bagian Inspector > Physics > Rigidbody.
Rigidbody adalah sebuah komponen penting yang dapat membuat GameObject seolah-olah memiliki berat dan dapat dipengaruhi oleh gaya gravitasi.
Buat sebuah Physic Material dengan cara klik Assets > Create -> Physics Material dan beri nama Bounce.
Ganti parameter Bounciness menjadi 0.9 untuk menambahkan efek memantul.
Kita kembali ke GameObject MyBall, tambahkan Material Bounce dengan cara drag dari panel Assets ke panel Sphere Collider, parameter material.
Berikutnya untuk menjadikan Prefab, drag MyBall dari tab Hierarchy ke panel Assets.
Jika Prefab MyBall sudah dibuat, Anda dapat menghapus GameObject MyBall dari tab Hierarchy, karena yang akan kita gunakan adalah Prefab yang sekarang sudah ada di Assets.
Prefab adalah sebuah instansiasi dari sebuah GameObject sehingga GameObject yang sudah pernah dibuat bisa digunakan kembali dengan cepat. Selain itu Prefab memungkinkan GameObject digandakan menggunakan script.
Setelah menghapus GameObject MyBall silahkan drag Kembali prefab yang sudah ada ke scene atau tab Hierarchy. Buatlah 5 MyBall di dalam scene.
Buat script C# dan beri nama GandakanBola.cs lalu ubah script menjadi seperti berikut ini