Bagaimana untuk menggabungkan animasi melompat dengan Perpaduan

Hari ini saya menamatkan animasi melompat pertama saya di Blender, yang saya mahu menyatukan dalam Perpaduan. Saya fikir saya hanya perlu melakukan sesuatu seperti "Ok apabila saya menekan butang melompat, mencetuskan animasi melompat dan itu sahaja!". Tidak dekat!

Saya melakukan ini dan hasilnya ... tidak apa yang saya harapkan.

Saya cukup yakin proses yang saya nyatakan sebelum ini akan bekerja dalam beberapa kes tertentu tetapi sedih, bukan di saya.

Saya terpaksa melalui kaedah yang lebih lama.

Melihat cepat ke lompatan

Lompat biasa boleh dibelah dalam tiga fasa yang berbeza:

  • Punca lompat: apabila watak kita sedang mengetuk dan melompat.
  • Fase jatuh: apabila watak kita cuba untuk kekal stabil semasa di udara.
  • Fasa pendaratan: apabila watak kita, masih di udara, sedang bersiap untuk sampai ke tanah.

Bagaimanakah ia berfungsi dalam permainan?

Apabila pemain menekan bar ruang (yang jelas adalah butang melompat), ia memicu animasi melompat.

Setelah pemain berada di udara, animasi lain bermula: fase jatuh yang gelung sampai mencapai tanah.

Kemudian animasi pendaratan bermula tetapi dengan subtiliti: jika animasi ini bermula apabila watak itu sampai ke tanah, sudah terlambat! Dalam fasa ini kita tahu kita akan memukul tanah (semata-mata kerana kita dapat melihatnya). Oleh itu, kita boleh dengan mudah menilai jarak dan bersedia untuk kesan semasa berada di udara.

Mari kita fikirkan bagaimana kita berkelakuan ketika kita melompat! Ketika kita melihat bahawa kita akan memukul tanah , kita sedang mempersiapkan diri kita untuk "kesan". Kita boleh kerana kita mempunyai visi tanah dan dengan cepat boleh menilai apabila kita perlu bersedia.

Apa yang hilang dalam kes kita adalah sesuatu untuk menilai jarak watak kita dari tanah! Saya akan mendedahkan anda satu kaedah untuk menilai jarak ini dari watak ke tanah, tetapi perhatikan bahawa terdapat banyak cara lain untuk melakukannya. Ia boleh digunakan dalam enjin permainan lain.

Caranya ialah membuang sinar dari watak kita dengan arah halajunya. Kami akan dapat mencetuskan animasi pendaratan pada masa yang tepat sebelum kami sampai! 🥳

Sedia?

Pelaksanaan dengan Perpaduan

Dalam Perpaduan, ada alat yang dipanggil Raycast yang akan memberi kita apa yang kita inginkan.

Kami meneruskan dalam dua langkah:

  • Kami menghantar Raycast dalam arah halaju kami untuk menentukan jarak sebelum kami menyentuh tanah.
  • Jika halaju kita pada paksi menegak, y dalam Perpaduan, adalah negatif (yang bermaksud kita jatuh) dan tanah terlalu dekat, maka kita mencetuskan animasi pendaratan.

Ia sempurna tetapi sekarang apabila kita melompat dalam permainan, skrip akan mencetuskan animasi kita pada masa yang sesuai. Untuk infiniti dan seterusnya! ️ kenapa