AIMP Forum

AIMP для Windows => Skin Editor / Skin Engine => Вопросы => Topic started by: Artem on March 04, 2020, 13:38:20

Title: Анимация изменений макета интерфейса
Post by: Artem on March 04, 2020, 13:38:20
На форуме неоднократно поднимались просьбы сделать возможным анимацию изменения макета UI. Например, вы скрываете какой-то контейнер и интерфейс плавно перестраивается в новый вид. Я долго вынашивал пути решения этой задачи, и все сводится к тому, что автоматически это работать во всех случаях не сможет - интерфейсы бывают очень сложные, зависимость между слоями и элементами может быть каскадная и движок просто не в состоянии просчитать на перед, что и как перестроится. Получается, скорее всего, дизайнерам придется вручную задавать, что и как анимировать и прикаких событиях. Возник вопрос - как лучше и удобнее это реализовать в редакторе? Возможно, вы где-нибудь уже сталкивались с решением подобных задач?
Title: Re: Анимация изменений макета интерфейса
Post by: Zhenya on March 05, 2020, 23:49:10
Возник вопрос - как лучше и удобнее это реализовать в редакторе?

Слабо представляю это себе, так как с распространёнными практиками построения анимации не знаком, но, наверно, простейший способ — это описывать текстом изменения макета каждый временной промежуток в специальном пользовательском провайдере.

Только что описывать? У контейнеров ведь только минимальные и максимальные размеры.
И что делать с нелинейной скоростью изменений? Высчитывать вручную?
А уменьшение элементов управления? Сейчас их нельзя уменьшить меньше размера текстуры элемента.
Может добавить слои, которые будут перекрывать («накрывать») все элементы фона и элементы управления, расположенные в том же элементе фона, что и слои? Например, выезжающее боковое меню, которое «накрывает» весь остальной контент. Возможно со слоями будет легче работать с анимацией?
Title: Re: Анимация изменений макета интерфейса
Post by: Black_AVP on March 06, 2020, 08:58:38
... Возник вопрос - как лучше и удобнее это реализовать в редакторе? Возможно, вы где-нибудь уже сталкивались с решением подобных задач?
Возможно, подойдёт та идеология, что используется при создании анимированных презентаций в 3D-рендерах?
Выбирается объект из дерева элементов, выбирается вид воздействия на него: перемещения, трансформация, вращение и т.п., затем уже задаются параметры этих воздействий: начальное конечное положение, продолжительность и пр. Если какие-либо воздействия происходят одновременно для одного объекта, то процедура для него повторяется, а затем всё сводится в привычном Timeline, где одна анимация накладывается на другую. Со стороны пользователя всё весьма просто получается, но со стороны программирования этого...
Вот видео (https://www.youtube.com/watch?v=MDytSiIZcfk). Их подобных много.
Title: Re: Анимация изменений макета интерфейса
Post by: Artem on March 06, 2020, 09:17:35
Кстати да, как в After Effects, хорошая идея. В плане программирования, в принципе, не особо сложно.