Роман Парамонов

+2
с 2017
0 подписчиков
23 подписки

В своей игре Slash Arena нам пришлось оптимизировать анимацию смерти.
Боевка игры - бегать по арене и крутить вокруг себя здоровенным топором, стараясь попасть по другим игрокам. Хорошо попал — убил.
(пример геймлея https://www.youtube.com/watch?v=Wyx1ju4s6hY)

Чтобы смерть от топора была эффектной, мы использовали обычную ragdoll анимацию, построенную на физике. И всё было хорошо. Поначалу.

А потом, с увеличением количества персонажей и расчетов, игра начала подтормаживать на старых телефонах. Отключали всю физику — получали 50-60 кадров секунду и абсолютную плавность процесса.
Но отказываться от красивых смертей персонажей уже совсем не хотелось.

Можно было озадачить аниматоров. Мы даже почти отдали эту задачу в работу, как пришла мысль: почему бы не записать несколько ragdoll смертей прямо в Unity, и потом просто показывать нужную анимацию?

Мы написали специальный класс, который записывает все поведение ragdoll-объекта просчитанного по физике в файл с анимацией. И уже во время боя воспроизводили именно анимацию и тем самым полностью избавились от необходимости симулировать физику.

Смерти получатся разнообразными, аниматоров подключать не нужно, а главное — все будет быстро и красиво.

ссылка на исходники https://github.com/DrunkenMonday/AnimationRecorder

2