Kako integrirati skakalno animacijo z Unityjem

Danes sem v Blenderju končal svojo prvo skakalno animacijo, ki sem jo želel vključiti v Edinost. Mislil sem, da bom moral narediti nekaj, kot je "Ok, ko pritisnem gumb za skok, sproži animacijo za skakanje in to je to!". Niti blizu!

To sem storil in rezultat je bil ... ni ravno tisto, kar sem pričakoval.

Prepričan sem, da bi postopek, ki sem ga opisal prej, deloval v nekaterih posebnih primerih, vendar žal ne v mojih.

Moral sem iti skozi daljšo metodo.

Hiter pogled v skok

Navaden skok lahko razdelimo v tri različne faze:

  • Skok nagon: ko naš lik jemlje impulz in skoči.
  • Faza padanja: ko se naš lik trudi ostati stabilen, ko je v zraku.
  • Faza pristajanja: ko se naš lik, še vedno v zraku, pripravlja, da bo dosegel tla.

Kako deluje v igri?

Ko igralec pritisne preslednico (kar je očitno gumb za skakanje ), sproži animacijo za skakanje.

Ko je igralec v zraku, se začne še ena animacija: padajoča faza, ki se zanka, dokler ne doseže tal.

Potem se začne animacija pristajanja, vendar s subtilnostjo: če se ta animacija začne, ko je lik ravno prišel na tla, je prepozno! V tej fazi vemo, da bomo udarili ob tla (preprosto zato, ker to lahko vidimo). Tako lahko enostavno ocenimo razdaljo in se na udarec pripravimo na zraku.

Pomislimo, kako se obnašamo, ko skačemo! Ko vidimo, da bomo udarili ob tla , se pripravljamo na "udar". Lahko, ker imamo vizijo terena in lahko hitro ocenimo, kdaj moramo biti pripravljeni.

Kar v našem primeru manjka, je nekaj za oceno oddaljenosti našega značaja od tal! Izpostavil vam bom eno metodo za oceno te razdalje od lika do tal, vendar upoštevajte, da obstaja veliko drugih načinov za to. Uporablja se lahko v drugih igrah.

Trik je, da v našo hitrost vržemo žarek našega lika. Nato bomo lahko animacijo o pristajanju sprožili ob pravem času, tik preden jo dosežemo! 🥳

Pripravljeni?

Izvajanje z enotnostjo

V Unityju obstaja orodje z imenom Raycast, ki nam bo dalo točno tisto, kar želimo.

Nadaljujemo v dveh korakih:

  • Posredujemo Raycast v smeri naše hitrosti, da določimo razdaljo, preden se dotaknemo tal.
  • Če je naša hitrost na navpični osi y v enotnosti negativna (kar pomeni, da padamo) in je tla preblizu, potem sprožimo animacijo pristajanja.

Je popoln, vendar zdaj, ko bomo skočili v igro, bo scenarij sprožil naše animacije ob pravem času. V neskončnost in naprej! ️