Kako integrirati animaciju za skakanje s Jedinstvom

Danas sam završio svoju prvu animaciju za skakanje u Blenderu koju sam želio integrirati u Jedinstvo. Mislila sam da ću jednostavno morati učiniti nešto poput „Ok kada pritisnem tipku za skakanje, pokrenem animaciju za skakanje i to je to!“. Nije ni blizu!

Učinio sam to i rezultat je bio ... nije baš ono što sam očekivao.

Prilično sam siguran da bi postupak koji sam prethodno opisao djelovao u određenim slučajevima, ali nažalost, ne u mom.

Morao sam proći dužu metodu.

Brz pogled u skok

Uobičajeni skok može se podijeliti u tri različite faze:

  • Skoči nagon: kada naš lik poduzima impuls i skače.
  • Faza pada: kad naš lik pokušava ostati stabilan dok je u zraku.
  • Faza slijetanja: kada se naš lik, još uvijek u zraku, priprema za dosezanje tla.

Kako djeluje u igri?

Kada igrač pritisne razmaknicu (što je očito tipka za skakanje ), aktivira animaciju za skakanje.

Nakon što je igrač u zraku, započinje još jedna animacija: faza pada koja se petlja dok ne dosegne zemlju.

Tada započinje animacija slijetanja, ali s potporom: ako se ta animacija pokrene kada je lik tek stigao na zemlju, prekasno je! U ovoj fazi znamo da ćemo udariti o zemlju (jednostavno zato što to možemo vidjeti). Stoga lako možemo procijeniti udaljenost i pripremiti se za udar dok ste u zraku.

Razmislimo o tome kako se ponašamo kad skačemo! Kad vidimo da ćemo udariti o zemlju we, pripremamo se za „udar“. To možemo jer imamo viziju tla i možemo brzo procijeniti kada trebamo biti spremni.

Ono što u našem slučaju nedostaje je nešto za procjenu udaljenosti našeg lika od tla! Izložit ću vam jednu metodu za procjenu ove udaljenosti od lika do zemlje, ali imajte na umu da postoje mnogi drugi načini za to. Može se koristiti u drugim motorima za igru.

Trik je u bacanju zrake našeg karaktera u smjeru njegove brzine. Tada ćemo moći pokrenuti animaciju slijetanja u pravo vrijeme neposredno prije nego što je dostignemo! 🥳

Spreman?

Provedba s Jedinstvom

U Jedinstvu postoji alat nazvan Raycast koji će nam pružiti upravo ono što želimo.

Nastavljamo u dva koraka:

  • Šaljemo Raycast u smjeru naše brzine kako bismo odredili udaljenost prije nego što dodirnemo zemlju.
  • Ako je naša brzina na okomitoj osi, y u Jedinstvu, negativna (što znači da padamo) i tlo je preblizu, tada pokrećemo animaciju slijetanja.

Savršeno je, ali sada kada uskočimo u igru, skripta će pokrenuti naše animacije u pravo vrijeme. Do beskonačnosti i šire! ️