Bir atlama animasyonu Unity ile nasıl entegre edilir

Bugün ilk atlama animasyonumu Unity'ye entegre etmek istediğim Blender'da bitirdim. “Atlama düğmesine bastığımda, atlama animasyonunu tetiklediğimde bu kadar!” Gibi bir şey yapmam gerektiğini düşündüm. Yakınında bile değil!

Bunu yaptım ve sonuç… beklediğim gibi değildi.

Daha önce tarif ettiğim sürecin bazı özel durumlarda işe yarayacağından eminim ama ne yazık ki benimkinde değil.

Daha uzun bir yöntemle gitmek zorunda kaldım.

Atlamaya hızlı bir bakış

Düzenli bir atlama üç farklı aşamada bölünebilir:

  • Jump'un itkisi: karakterimiz itici ve zıplarken.
  • Düşen evre: Karakterimiz havada iken sabit kalmaya çalışırken.
  • İniş aşaması: Karakterimiz, hala havadayken, kendini yere ulaşmaya hazırlarken.

Bir oyunda nasıl çalışır?

Oyuncu ara çubuğuna bastığında (ki bu açıkça atlama düğmesi ), atlama animasyonunu tetikler.

Oyuncu havaya girdikten sonra başka bir animasyon başlar: yere ulaşana kadar ilmek yapan düşme aşaması.

Sonra iniş animasyonu başlar ancak bir incelikle: bu animasyon karakter yere ulaştığında başlarsa, çok geç! Bu aşamada yere çarpacağımızı biliyoruz (sadece görebildiğimiz için). Böylece mesafeyi kolayca değerlendirebilir ve havadayken darbeye hazırlanabiliriz.

Zıpladığımızda nasıl davranacağımızı düşünelim! Yere çarpacağımızı gördüğümüzde self kendimizi “etkiye” hazırlıyoruz. Yapabiliriz, çünkü zemin vizyonuna sahibiz ve ne zaman hazırlanmamız gerektiğini hızlıca değerlendirebiliriz.

Bizim durumumuzda eksik olan, karakterimizin yerden uzaklığını değerlendirmek için bir şey! Size karakterden yere olan bu mesafeyi değerlendirmek için bir yöntem göstereceğim, ancak bunu yapmanın birçok yolu olduğunu unutmayın. Diğer oyun motorlarında kullanılabilir.

İşin püf noktası, karakterinden hızının yönünde bir ışın atmaktır. Daha sonra iniş animasyonunu ulaşmadan hemen önce tetikleyebileceğiz! 🥳

Hazır?

Unity ile Uygulama

Unity'de Raycast adında bize tam olarak istediğimizi verecek bir araç var.

İki ADIMDA ilerliyecegiz:

  • Yere dokunmadan önce mesafeyi belirlemek için hızımızın yönünde bir Raycast göndeririz.
  • Dikey eksendeki hızımız, Birlik'teki y negatifse (yani düşüyoruz) ve zemin çok yakınsa, iniş animasyonunu tetikleriz.

Mükemmel ama oyuna girdiğimizde senaryo animasyonlarımızı doğru zamanda tetikleyecek. Sonsuza kadar ve ötesine! ️