Rabu, 22 Maret 2017

Membuat game 2d animasi karakter part 8

Kali ini, kita akan menerapkan collider atau collision pada objek karakter game 2d kita. tapi sebelumnya, kita akan menyisipkan objek movieclip yg telah kita buat sebelumnya pada frame 1 sampai 4. lalu kemudian membuat objek collision dimulai dari keyframe 1. jadi persiapkan flash  CS dan buka kembali hasil kerja yg telah kita buat sebelumnya yaitu game pahlawan. kemudian aktifkan objek karakter kita di library.

setelah itu, kita akan menyamakan ukuran dan posisi karakter di movieclip kita. jadi pastikan frame yg aktif adalah 5 dan karakter yg kita buat ada. kemudian buat blank keyframe baru di layer clip. drag movieclip karakter_siap ke dalam scene dan atur ukuran serta posisinya sama dengan karakter yg kita buat di di frame 5 (gabungkan objek tersebut). setelah itu, pindahkan keyframe 5 di layer klip ke timeline 1.

sekarang kita buat keyframe di timeline 2 (bukan blank keyframe). maka, objek yg ada di frame 1 akan muncul di timeline 2. klik kanan objek tersebut lalu pilih swap symbol untuk mengganti objek tersebut ke movieclip yg lain. disini kita akan menggantinya dengan objek karakter_jalan. berikutnya lakukan hal yg sama untuk keyframe 3 dan 4. ganti objek tersebut dengan karakter_lompat dan karakter_kalah. terakhir, tambahkan blank keyframe baru di timeline 5. kemudian buat frame baru di layer klip hingga sama dengan frame yg lain. lihat contoh gambar di bawah ini.

menyisipkan movieclip yg sudah dibuat sebelumnya
menyisipkan movieclip yg sudah dibuat sebelumnya

berikutnya, beri nama label untuk setiap movie clip yg kita sisipkan sebelumnya dimulai dari frame 1 yaitu, siap, jalan, lompat, kalah. kamu masih ingat bukan cara memberi nama label seperti pukul1 dan 2 seperti sebelumnya yg telah saya ajarkan. sekarang semua sudah selesai dan akan kita lanjutkan dengn membuat objek collision dimulai dari tubuh karakter game 2d kita. kita ingin menguji apakah objek karakter kita kena hit atau tidak. tapi kita tidak ingin hit tersebut langsung berfungsi ketika mengenai tangan karakter. jadi kita ingin hit tersebut berfungsi saat mengenai tubuh karakter dan objek collision tersebut selama karakter masih belum kalah. untuk itu kita tambahkan layer baru dan beri nama collision atau hit test. letakkan di layer paling bawah. disini saya beri nama layer hit_test.

selanjutnya, pastikan frame 1 aktif pada layer hit_test, kemudian atur warna merah dan gambarlah bentuk kotak menggunakan rectangle tools di belakang karakter. di kepala sampai kaki karakter. contohnya bisa kamu lihat pada gambar yg telah saya buat di bawah ini nanti. selanjutnya, seleksi objek tersebut. atur opacity (alpha) objek collision tersebut di menu color di samping kanan. sekarang objek tersebut tidak akan terlihat. jika sudah terlanjur memilih convert to symbol dan belum mengaturnya, maka kita bisa mengubahnya di dalam objek tersebut dengan cara klik 2 kali pada objek collision tersebut atau pilih di library (sama saat kita mengubah atau memperbaiki gambar karakter kita dulu). hasilnya tidak akan terlihat kecuali kita sudah menghilangkan seleksinya atau keluar dari edit mode.

sekarang klik kanan dan pilih convert to symbol. beri nama hit1 dan tipenya movieclip. kemudian di menu properties di bawah bertuliskan instance name, beri nama kena1 (inilah nama yg akan kita panggil dalam script untuk menguji apakah karakter di hit atau tidak. dan kotak berwarna merah tersebut yg disebut sebagai objek collision). setelah itu, buat keyframe baru di timeline 10 dan 11. kamu masih ingat kan animiasi karakter memukul lemah dan kuat. kita tambahkan keyframe tersebut untuk membuat objek collision yg digunakan untuk damage yg hanya muncul tepat saat serangan dilakukan bukan sebelum dan sesudahnya agar damage yg diterima karakter musuh hanya sekali. frame 11 digunakan agar objek collision tangan hilang dan hanya objek hit1 tetap ada. sekarang kita kembali ke topik. 

membuat objek collision hit untuk karakter game 2d kita
membuat objek collision hit untuk karakter game 2d kita

selanjutnya, lakukan hal yg sama pada keyframe  20 dan 21, di frame 30, 31 untuk tangan, 40 dan 41 untuk kaki, frame 48 dan 49 (melompat sambil memukul). terakhir adalah frame 51.setelah itu dimulai dari timeline 20 dan 21 buat objek collision untuk tangan dan kaki hingga melompat menggunakan rectangle, brush, pencil atau oval tools. disini saya menggunakan rectangle tools. kemudian beri nama serang 1 sampai 6 untuk objek dan hit 2 sampai 7. untuk instance name. cara yg digunakan sama dengan penjelasan saya sebelumnya.selanjutnya, karena kita tidak ingin karakter terus kena hingga tidak bisa bergerak saat animasi kena dijalankan. maka buat blank keyframe baru di timeline 52 dan 53. terakhir lagi, buat keyframe baru di timeline 54 untuk tangkis. kemudian buat objek yg sama dengan hit1 dan berilah nama serang7. pada instance name, beri nama tangkis.

catatan saya: jika karakter a dan b terlalu dekat, maka saat animasi memukul dijalankan, karakter b tidak akan menerima damage, hal tersebut terjadi karena objek collision karakter a tidak mengenai objek collision karakter b. mungkin melewati hit1 dari objek karakter b saat objek serang1 muncul. untuk itu, kita bisa mengubah objek collision karakter a tersebut menjadi gambar yg lebih panjang. dimulai dari lengan sampai tangan karakter atau, kamu bisa memunculkan objek collision tersebut sebelum animasi memukul selesai dijalankan. contohnya frame 5, 10 dan 11 tadi. kamu bisa memunculkan objek collisionnya di frame 5 (saat animasi mulai berjalan) hingga mencapai frame 10.

jadi ketika karakter mulai animasi memukul dan mengenai karakter b saat mengarahkan pukulan. maka hasilnya akan kena. contoh gambar objek collision yg dipanjangkan bisa kamu lihat di bawah ini. untuk saat ini karakter yg saya buat masih belum di ubah objek collisionnya karena  ada baiknya kita coba dahulu ketika game selesai dibuat. kemudian baru kita perbaiki jika ada yg tidak pas. untuk kamu yg sedang belajar maka kamu bisa lewati perbaikannya atau menunggu hingga game selesai dibuat untuk memastikan error lainnya. kita bisa menyebutnya glitch di dalam game.

membuat objek collision pada tangan dan kaki karakter
membuat objek collision pada tangan dan kaki karakter

selesai sudah pembuatan objek collision untuk karakter kita. silahkan masuk kedalam edit mode tiap objek collision yg kita buat melalui library untuk menghapus garis tepi (line yg masih muncul meski opacity atau alpha sudah di set 0. jadi hanya objek yg tidak terlihat yg jadi objek collision untuk menguji apakah karakter kena hit atau tidak). jika ada yg ingin kamu tambahkan dan perbaiki lagi. maka silahkan di edit. selanjutnya kita akan membuat action script untuk beberapa animasi yg telah kita buat ini yg berfungsi untuk menghentikan animasi dan membatasi gerakan yg dijalankan. contohnya pukul1 dimulai dari frame 1 sampai 5.

kita buat skripnya di frame 1 dengan perintah pukul=1 dan stop() yg berarti akhir dari animasi tersebut hanya sampai frame 5 sesuai dengan akhir dari frame label yg kita beri nama sebelumnya (pembatasnya adalah blank keyframe di akhir frame 5). dan kita juga menguji apakah karakter sedang memukul atau tidak dengan kode pukul=1. akan saya jelaskan lebih lanjut nanti di tulisan berikutnya. kode tersebut juga diterapkan pada gerakan lainnya.


sampai disini dulu perjumpaan kita pada hari ini. semoga kamu paham cara yg telah saya jelaskan ini sehingga kamu bisa membuat objek lain seperti karakter yg menemukan item lalu event yg diberikan apakah item dalam game tersebut diambil, digunakan, atau dipakai. dan satu lagi pesan saya yg mungkin berguna. objek collision tidak selalu dibuat melainkan bisa langsung diterapkan pada objek yg sudah kita buat misalnya langsung pada gambar item tersebut, lengan dan tangan karakter itu sendiri dan sebagainya tergantung pada keperluan kita sendiri. sampai bertemu lagi dan salam hangat dari admin uyasur.

Tidak ada komentar:

Posting Komentar

Silahkan isi komentar kalian disini, setiap komentar akan tampil setelah disetujui oleh admin selama tidak melanggar aturan yg ada. dan url aktif akan dihapus secara otomatis oleh sistem blog ini. terima kasih