Tuesday, June 2, 2020

Animasi Karakter 3D & Problem blender

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 adalah:
Standard-Assets.unitypackage Bisa Di Download disini / Dari Unity langsung
Kiky Si Kancil.unitypackage Bisa di Download Disini

Buatlah Project 3D baru di Unity. Import package Standard-Asset, kemudian tambahkan sebuah Terrain yang memiliki texture rumput.
Baca materi sebelumnya jika lupa bagaimana melakukan import dan membuat Terrain dengan texture rumput.


Cari folder Characters pada Assets, pilih folder ThirdPersonCharacter, pilih Prefabs dan masukkan prefab ThirdPersonController ke dalam Scene.


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.

Ini adalah dasar pergerakan 3D dalam Unity, bagaimana jika yang akan digerakkan itu adalah karakter buatan sendiri? itu yang akan kita bahas selanjutnya.

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.

Buka folder Model dan pasang object UnitySiKancilX.blend pada Scene.

File *.blend adalah file Blender yang dapat dikenali oleh Unity. Jika karena suatu hal file tersebut tidak dapat dibaca (seperti gambar diatas) & Tidak Bisa Di Drag, disarankan untuk menginstal software Blender terlebih dahulu. Software ini gratis. 

Fix Blender Fix Blender 2
(Jika Masih Tidak Bisa Lakukan Hal Ini) 
(Buka Blender -> Open File -> UnitySiKancilX.blend ) kemudian Export Kebentuk *.FBX
File -> Export -> FBX (.fbx) Guide Atau bisa Download File FBX yang sudah ada disini
Setelah Selesai Kemudian Drag File FBX kedalam Asset

Tambahkan texture dengan cara klik texture pada panel Assets dan tarik langsung ke mesh Kiky Si kancil.

Selanjutnya tambahkan CharacterController 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.

Untuk membuat karakter yang diimpor bisa digerakkan oleh Unity, kita harus memastikan bahwa karakter tersebut memang memiliki animasi dan dapat dikenali oleh Unity. Caranya cukup mudah, di panel Assets, klik file UnitySikancilX.blender dan perhatikan tab inspector.


Pada panel Clips dapat dilihat bahwa objek Kiky Si Kancil memiliki beberapa jenis animasi seperti idle, run, walk dan poselib. untuk sementara animasi standar tersebut sudah cukup. Hanya saja perlu diperhatikan bahwa untuk beberapa animasi yang bersifat loop (frame awal dan akhir sama), pilihan Loop Time harus dicentang. Jika tidak maka animasi hanya akan berjalan selama total frame dan tidak kembali lagi, jalan hanya satu langkah akan berhenti.

Selanjutnya adalah buat sebuah Animator Controller. Caranya klik menu Assets -> Create -> Animator Controller. Kemudian beri nama KikyController (Jika namanya bentrok dengan Animator Controller yang sudah ada dalam package, silahkan sesuaikan saja).


Double klik KikyController maka akan muncul tab Animator.
Pada tab Animator buatlah parameter Speed bertipe Float, Shift dan Attack bertipe Bool.


Berikutnya pada panel utama Tab Animator, buat sebuah Animation State dengan cara klik kanan, pilih menu Create State -> Empty. Animation State adalah status yang dikenali oleh Unity yang isinya mengacu pada animasi yang telah dibuat pada software grafis.

Beri nama Animation State yang pertama sebagai Idle. 
Warna orange menunjukkan jika status yang pertama ini merupakan animasi default yang akan dijalankan pertama kali.

Masih dengan state Idle terpilih, klik tab Inspector dan isi parameter Motion dengan animasi idle. Pastikan mengisi sebuah model dengan animasi yang memang diperuntukkan untuk objek tersebut.


Lakukan hal yang sama untuk status animasi lainnya seperti Walk, Run dan Pose. Buat Animation State dan sesuaikan pula animasi-animasi lainnya.

Langkah selanjutnya adalah membuat Transition antara Animation State yang satu dengan yang lain. misalnya, perubahan dari animasi idle ke walk. Caranya klik status idle, klik kanan dan pilih Make Transition. Drag mouse dan klik status walk sampai terbentuk panah berwarna putih.


Klik panah putih tersebut. Hapus centang Has Exit Time, dan masukkan dua buah parameter pada panel Condition. Caranya, klik tombol + kecil di ujung kanan bawah panel, lalu gunakan combobox untuk memilih variabel dan menentukan nilainya. 

Contoh kondisi yang dibuat:
“Animasi Idle akan berubah menjadi animasi Walk, ketika nilai Parameter Speed > 0.1 dan Parameter Shift bernilai true”

Buat panah sebaliknya dengan cara klik Animation State Walk, klik kanan, pilih make Transition dan klik Animation State Idle. Tambahkan dua buah parameter yang isinya kebalikan dari sebelumnya sehingga kondisi yang dibuat menjadi:

“Animasi walk akan berubah menjadi animasi Idle, ketika nilai parameter Speed < 0.1 dan parameter Shift bernilai false”


Lakukan hal yang sama untuk perubahan dari status idle dan status Run dan sebaliknya. hanya saja, khusus untuk perubahan ini, cukup ubah satu parameter yaitu Speed saja.

Selanjutnya perubahan yang menarik yaitu dari status Run ke status Walk. Parameter yang diubah hanyalah parameter Shift saja. Perubahan ini bisa dibaca sebagai :
“Saat animasi run sedang aktif, jika tiba-tiba parameter Shift menjadi True, aktifkanlah animasi Walk.” Lakukan hal yang sama untuk sebaliknya.


Transisi selanjutnya adalah transisi dari status Any State ke status Pose dengan perubahan parameter Attack menjadi true. Dalam hal ini, tidak peduli karakter sedang idle, Walk, atau Run, jika Parameter Attack menjadi true, animasi Pose yang akan dijalankan.

Transisi yang terakhir adalah transisi dari status Pose ke Idle dengan perubahan parameter Attack menjadi false.


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





Kemudian klik GameObject Kiky Si Kancil. Pada tab Inspector, di panel Animator, pasang KikyController jika sebelumnya belum terpasang.


Selanjutnya pasang ScriptKiky pada GameObject Kiky Si Kancil dan atur nilai parameternya sesuai kebutuhan.
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.


Jalankan Game dan lihat hasilnya 

Selengkapnya Kunjungi https://www.budiluhur.ac.id/
Link download Download Projek