Эта страница смотрится лучше со включённым JavaScript

Доступ к коду - необходимость и повод для радости

 ·  ☕ 1 min read

Хорошо известный в узких кругах ассет Aseprite Animation Workflow прекрасно работает “из коробки”, сохраняя десятки человекочасов для более интересных и важных дел. Однако, когда дело касается настроек анимации, импортируемой в Unity, возникают вопросы и недоумение. Компенсировать недо-умение можно по-разному, в данной статье я опишу один из вариантов.

Заглянем в файл Assets/AsepriteAnimationWorkflow/Editor/Aseprite.cs и найдём строчки, которые отвечают за настройки анимации (пока меня интересует только зацикленность анимации)

1
2
var animSettings = AnimationUtility.GetAnimationClipSettings(animation);
animSettings.loopTime = true;

При импорте анимации в Unity, она будет выглядеть так:

И, к сожалению, изменить настройки не получится. Но мы только что смотрели на код, и никто не мешает его чуть-чуть поправить. Например, так:

1
2
var animSettings = AnimationUtility.GetAnimationClipSettings(animation);
animSettings.loopTime = !name.ToLower().Contains("noloop");

Теперь изменим название анимации в Aseprite, чтобы оно содержало “noloop”

и вуаля!

В игре, без каких-либо других изменений, анимации будет выглядеть так (анимация хождения зациклена, анимация безделия “одноразовая”)

Share on