Як інтегрувати анімаційну стрибки з Unity

Сьогодні я закінчив свою першу анімаційну стрибки в Blender, яку хотів інтегрувати в Unity. Я подумав, що мені доведеться просто зробити щось на кшталт «Добре, коли я натискаю кнопку, що стрибає, запускаю анімацію для стрибків і це все!». Навіть близько не!

Я зробив це, і результат був… не зовсім те, що я очікував.

Я впевнений, що процес, який я описав раніше, діятиме в деяких конкретних випадках, але, на жаль, не в моєму.

Мені довелося пройти довший метод.

Швидкий погляд у стрибок

Регулярний стрибок можна розділити на три різні фази:

  • Імпульс стрибка: коли наш персонаж бере імпульс і стрибає.
  • Фаза падіння: коли наш персонаж намагається залишатися стабільним, перебуваючи в повітрі.
  • Фаза приземлення: коли наш персонаж, все ще в повітрі, готується досягти землі.

Як це працює в грі?

Коли гравець натискає пробіл (що, очевидно, кнопка стрибка ), він запускає анімацію стрибків.

Як тільки гравець перебуває в повітрі, починається інша анімація: фаза падіння, яка зациклюється, поки не досягне землі.

Тоді анімація приземлення починається, але з підкладкою: якщо ця анімація запускається, коли персонаж просто досяг землі, вже пізно! У цій фазі ми знаємо, що ми потрапимо на землю (просто тому, що можемо це бачити). Таким чином, ми можемо легко оцінити відстань і підготуватися до удару, перебуваючи в повітрі.

Давайте подумаємо, як ми поводимо себе, коли стрибаємо! Коли ми бачимо, що ми збираємося вдарити землю , ми готуємо себе до "удару". Ми можемо тому, що маємо бачення основи і можемо швидко оцінити, коли нам потрібно бути готовим.

Чого не вистачає в нашому випадку, це те, щоб оцінити відстань нашого персонажа від землі! Я розкрию вам один спосіб оцінити цю відстань від персонажа до землі, але зауважте, що існує багато інших способів зробити це. Його можна використовувати в інших ігрових двигунах.

Хитрість полягає в тому, щоб кинути промінь від нашого персонажа у напрямку його швидкості. Тоді ми зможемо в потрібний час запустити анімацію посадки безпосередньо перед тим, як дійти до неї! 🥳

Готові?

Впровадження з Єдністю

В Unity є інструмент під назвою Raycast, який дасть нам саме те, що ми хочемо.

Ми проходимо в два етапи:

  • Ми відправляємо Промінь у напрямку нашої швидкості, щоб визначити відстань, перш ніж торкатися землі.
  • Якщо наша швидкість по вертикальній осі, y в Єдності, негативна (це означає, що ми падаємо) і земля занадто близька, то ми запускаємо анімацію посадки.

Це досконало, але тепер, коли ми стрибаємо в грі, сценарій запустить нашу анімацію в потрібний час. До нескінченності і далі! ️