Si të integrojmë një animacion të hedhur me Unitetin

Sot mbarova animacionin e parë duke kërcyer në Blender, të cilin doja ta integroja në Unity. Mendova se thjesht do të më duhej të bëja diçka si "Ok kur shtyp butonin e kërcimit, të shkaktoj animacionin duke kërcyer dhe kjo është ajo!". As afër!

Unë e bëra këtë dhe rezultati nuk ishte ... ashtu siç e prisja.

Jam shumë e sigurt që procesi që kam përshkruar më herët do të funksiononte në disa raste specifike, por për fat të keq, jo në minierat.

Më është dashur të kaloj përmes një metode më të gjatë.

Një vështrim i shpejtë në një kërcim

Një kërcim i rregullt mund të ndahet në tre faza të ndryshme:

  • Impulsion i kërcimit: kur karakteri ynë po merr impuls dhe hidhet.
  • Faza e rënies: kur karakteri ynë është duke u përpjekur të qëndrojë i qëndrueshëm ndërsa është në ajër.
  • Faza e uljes: kur karakteri ynë, ende në ajër, po përgatitet vetë për të arritur në tokë.

Si funksionon në një lojë?

Kur lojtari shtyp shiritin hapësinor (i cili padyshim është butoni i kërcimit ), ai shkakton animacionin e kërcimit.

Pasi lojtari është në ajër, fillon një animacion tjetër: faza e rënies që sythe derisa të arrijë në tokë.

Atëherë fillon animacioni i uljes, por me një subtilitet: nëse kjo animacion fillon kur personazhi sapo arriti në tokë, është shumë vonë! Në këtë fazë e dimë se do të godasim në tokë (thjesht sepse mund ta shohim). Kështu, ne mund të vlerësojmë me lehtësi distancën dhe të përgatitemi për ndikimin gjatë kohës që jemi në ajër.

Le të mendojmë se si sillemi kur kërcejmë! Kur shohim që do të godasim në tokë we, ne po përgatitemi për "ndikimin". Mundemi sepse kemi vizionin e tokës dhe mund të vlerësojmë shpejt kur duhet të jemi të përgatitur.

Ajo që mungon në rastin tonë është diçka për të vlerësuar distancën e karakterit tonë nga toka! Unë do t'ju vë në dukje një metodë për të vlerësuar këtë distancë nga personazhi në tokë, por vini re se ka shumë mënyra të tjera për ta bërë këtë. Mund të përdoret në motorin tjetër të lojës.

Mashtrim është të hedhim një rreze nga karakteri ynë në drejtimin e shpejtësisë së tij. Ne atëherë do të jemi në gjendje të shkaktojmë animacionin e uljes në kohën e duhur pak para se ta arrijmë atë! 🥳

Ready?

Zbatimi me unitetin

Në Unitet, ekziston një mjet i quajtur Raycast që do të na japë saktësisht atë që duam.

Ne vazhdojmë në dy hapa:

  • Ne dërgojmë një Raycast në drejtimin e shpejtësisë tonë për të përcaktuar distancën përpara se të prekim tokën.
  • Nëse shpejtësia jonë në boshtin vertikal, y në Unitet, është negativ (që do të thotë se po bien) dhe toka është shumë afër, atëherë shkaktojmë animacionin e uljes.

Shtë e përsosur, por tani kur hidhemi në lojë, skenari do të shkaktojë animacionet tona në kohën e duhur. Në pafundësi dhe më gjerë! ️