Оптимизация костной анимации 2D

Раздел, посвящённый самому важному - скорости.

Оптимизация костной анимации 2D

Сообщение Serge86 10 янв 2022, 15:51

Добрый день! Столкнулся с проблемой сильного падения fps при костной 2D анимации персонажа (анимацию сделал из PSB файла в самой Unity).
Создаю свой первый платформер 2D в unity (навыки программирования и работы с графикой низкие).

Анимация представляет собой движущегося паука, содержит около 40 костей, длительность анимации всего 1 секунда (в настройках аниматора анимация зациклена).
По задумке на сцене должно появиться 50 движущихся по стенам экземпляров противников (пауков), но при добавлении на сцену такого количества - FPS проседает до 18 кадров.
Profiler показывает 90% загрузку процессом SprireSkin.LateUpDate() [Invoke] (510 calls, 48,54 ms).

Пробовал отключить аниматор на объекте паука (убирал галочку в инспекторе) - ничего не изменилось (пауки перемещаются без анимации, но FPS не растет).
Но если отключить весь дочерний объект с вложенным аниматором и PSB файлом (оставить только родительский объект с png спрайтом паука и скриптом перемещения), то fps растет 600!
То есть наличие именно костного скелета (даже с незапущенным аниматором) на каждом пауке жестко "сьедает" fps.

В чем может быть проблема? кости реально так сильно влияют на fps, или я просто в силу своего небольшого опыта что-то не правильно настроил?
Serge86
UNец
 
Сообщения: 3
Зарегистрирован: 10 янв 2022, 15:13

Re: Оптимизация костной анимации 2D

Сообщение 1max1 10 янв 2022, 16:00

Может поменять систему для анимации? Есть же спин еще. Вот тут чел говорит что можно бурст прицепить https://answers.unity.com/questions/168 ... pdate.html
Аватара пользователя
1max1
Адепт
 
Сообщения: 5087
Зарегистрирован: 28 июн 2017, 10:51

Re: Оптимизация костной анимации 2D

Сообщение Serge86 10 янв 2022, 16:52

1max1 писал(а): Вот тут чел говорит что можно бурст прицепить https://answers.unity.com/questions/168 ... pdate.html


в инспекторе на объекте каждой кости нашел предупреждение: "Install Burst and Collections package to enable deformdtion batching".
Ниже опция " Enable Batching" с установленным флажком. При этом шрифт серый, флаг убрать нельзя (то есть опция не доступна для редактирования).
Установил Burst, ничего не поменялось, все так же висит предупреждение "Install Burst and Collections package to enable deformdtion batching" и установлен заблокированный флаг на "Enable Batching".
А что такое Collections? не смог найти его в загрузчике пакетов. Может без него Burst не работает корректно?

1max1 писал(а):Может поменять систему для анимации?

Если других доступных мне способов не найду, то придется так и поступить.
С пауком впринципе разберусь - анимация движения довольна проста, заменю на покадровую в крайнем случае.
Но я уже сделал и настроил много других костных анимаций для остальных персонажей в игре... и переделывать еще более 30 сложных анимаций - займет кучу времени...

И в целом мне понравилось работать с костной анимацией в unity. Теперь осталось понять - проблема снижения производительности из-за костей объективна и простых её решений нет, или просто у меня "руки корявые" пока еще, и FPS можно легко поднять.
Serge86
UNец
 
Сообщения: 3
Зарегистрирован: 10 янв 2022, 15:13

Re: Оптимизация костной анимации 2D

Сообщение Serge86 10 янв 2022, 17:13

Serge86 писал(а):А что такое Collections? не смог найти его в загрузчике пакетов.


Нашел как установить Collections package: https://forum.unity.com/threads/2d-anim ... 1.1107548/

Помогло! после установки Burst + Collections, fps вырос в 14 раз! до 260 кадров.
Проблема решена, благодарю!
Serge86
UNец
 
Сообщения: 3
Зарегистрирован: 10 янв 2022, 15:13


Вернуться в Оптимизация

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5