В своей игре Slash Arena нам пришлось оптимизировать анимацию смерти. Боевка игры - бегать по арене и крутить вокруг себя здоровенным топором, стараясь попасть по другим игрокам. Хорошо попал — убил. (пример геймлея https://www.youtube.com/watch?v=Wyx1ju4s6hY)
Чтобы смерть от топора была эффектной, мы использовали обычную ragdoll анимацию, построенную на физике. И всё было хорошо. Поначалу.
А потом, с увеличением количества персонажей и расчетов, игра начала подтормаживать на старых телефонах. Отключали всю физику — получали 50-60 кадров секунду и абсолютную плавность процесса. Но отказываться от красивых смертей персонажей уже совсем не хотелось.
Можно было озадачить аниматоров. Мы даже почти отдали эту задачу в работу, как пришла мысль: почему бы не записать несколько ragdoll смертей прямо в Unity, и потом просто показывать нужную анимацию?
Мы написали специальный класс, который записывает все поведение ragdoll-объекта просчитанного по физике в файл с анимацией. И уже во время боя воспроизводили именно анимацию и тем самым полностью избавились от необходимости симулировать физику.
Смерти получатся разнообразными, аниматоров подключать не нужно, а главное — все будет быстро и красиво.
В своей игре Slash Arena нам пришлось оптимизировать анимацию смерти.
Боевка игры - бегать по арене и крутить вокруг себя здоровенным топором, стараясь попасть по другим игрокам. Хорошо попал — убил.
(пример геймлея https://www.youtube.com/watch?v=Wyx1ju4s6hY)
Чтобы смерть от топора была эффектной, мы использовали обычную ragdoll анимацию, построенную на физике. И всё было хорошо. Поначалу.
А потом, с увеличением количества персонажей и расчетов, игра начала подтормаживать на старых телефонах. Отключали всю физику — получали 50-60 кадров секунду и абсолютную плавность процесса.
Но отказываться от красивых смертей персонажей уже совсем не хотелось.
Можно было озадачить аниматоров. Мы даже почти отдали эту задачу в работу, как пришла мысль: почему бы не записать несколько ragdoll смертей прямо в Unity, и потом просто показывать нужную анимацию?
Мы написали специальный класс, который записывает все поведение ragdoll-объекта просчитанного по физике в файл с анимацией. И уже во время боя воспроизводили именно анимацию и тем самым полностью избавились от необходимости симулировать физику.
Смерти получатся разнообразными, аниматоров подключать не нужно, а главное — все будет быстро и красиво.
ссылка на исходники https://github.com/DrunkenMonday/AnimationRecorder