Як інтэграваць анімацыйныя скачкі з Unity

Сёння я скончыў сваю першую анімацыйную скачку ў Blender, якую хацеў інтэграваць у Unity. Я думаў, што мне трэба будзе зрабіць што-небудзь накшталт "Добра, калі я націскаю кнопку скачка, запускаю анімацыю скачкоў і ўсё тут!". Нават не блізка!

Я зрабіў гэта, і вынік быў ... не зусім тое, што я чакаў.

Я ўпэўнены, што працэс, які я апісваў раней, будзе працаваць у некаторых канкрэтных выпадках, але, на жаль, не ў маім.

Мне давялося перажыць больш доўгі метад.

Хуткі погляд у скачок

Звычайны скачок можна падзяліць на тры розныя фазы:

  • Пераход імпульсу: калі наш персанаж прымае імпульс і скача.
  • Фаза падзення: калі наш герой спрабуе заставацца стабільным, знаходзячыся ў паветры.
  • Фаза прызямлення: калі наш герой, усё яшчэ знаходзіцца ў паветры, рыхтуецца дасягнуць зямлі.

Як гэта працуе ў гульні?

Калі гулец націскае прабел (што, відавочна, кнопка для скачкоў ), ён запускае анімацыю скачкоў.

Пасля таго, як гулец знаходзіцца ў паветры, пачынаецца яшчэ адна анімацыя: фаза падзення, якая круціцца, пакуль не дасягне зямлі.

Затым анімацыя пасадкі пачынаецца, але з падтынкай: калі гэтая анімацыя пачынаецца, калі персанаж толькі што дасягнуў зямлі, занадта позна! У гэтай фазе мы ведаем, што збіваемся ў зямлю (проста таму, што бачым). Такім чынам, мы можам лёгка ацаніць адлегласць і падрыхтавацца да ўздзеяння, знаходзячыся ў паветры.

Давайце падумаем, як мы паводзім сябе, калі скачам! Калі мы бачым, што мы збіраемся аб зямлю, мы рыхтуемся да «ўздзеяння». Мы можам таму, што ў нас ёсць асноўнае бачанне і можам хутка ацаніць, калі нам трэба быць гатовымі.

Чаго не хапае ў нашым выпадку, гэта тое, каб ацаніць адлегласць нашага персанажа ад зямлі! Я адкрыю вам адзін метад, каб ацаніць гэтую адлегласць ад персанажа да зямлі, але звярніце ўвагу, што ёсць шмат іншых спосабаў зрабіць гэта. Яго можна выкарыстоўваць у іншых гульнявых рухавіках.

Хітрасць заключаецца ў тым, каб кінуць прамень ад нашага персанажа ў яго хуткасці. Затым мы зможам спрацаваць анімацыю пасадкі ў патрэбны час непасрэдна перад тым, як дасягнуць яе! 🥳

Гатовы?

Рэалізацыя з Unity

У Unity ёсць інструмент пад назвай Raycast, які дасць нам менавіта тое, што мы хочам.

Працуем у два этапы:

  • Мы накіроўваем Raycast у кірунку хуткасці, каб вызначыць адлегласць, перш чым дакрануцца да зямлі.
  • Калі наша хуткасць па вертыкальнай восі, y у адзінстве, адмоўная (гэта азначае, што мы падаем) і зямля занадта блізка, то мы запускаем анімацыю пасадкі.

Гэта ўдасканалена, але зараз, калі мы скачам у гульні, сцэнар выкліча нашу анімацыю ў патрэбны час. Да бясконцасці і далей! ️