AIMP Forum
AIMP for PC => Skin Editor, Skin Engine => Вопросы / Questions => Topic started by: Artem on March 04, 2020, 13:38:20
-
На форуме неоднократно поднимались просьбы сделать возможным анимацию изменения макета UI. Например, вы скрываете какой-то контейнер и интерфейс плавно перестраивается в новый вид. Я долго вынашивал пути решения этой задачи, и все сводится к тому, что автоматически это работать во всех случаях не сможет - интерфейсы бывают очень сложные, зависимость между слоями и элементами может быть каскадная и движок просто не в состоянии просчитать на перед, что и как перестроится. Получается, скорее всего, дизайнерам придется вручную задавать, что и как анимировать и прикаких событиях. Возник вопрос - как лучше и удобнее это реализовать в редакторе? Возможно, вы где-нибудь уже сталкивались с решением подобных задач?
-
Возник вопрос - как лучше и удобнее это реализовать в редакторе?
Слабо представляю это себе, так как с распространёнными практиками построения анимации не знаком, но, наверно, простейший способ — это описывать текстом изменения макета каждый временной промежуток в специальном пользовательском провайдере.
Только что описывать? У контейнеров ведь только минимальные и максимальные размеры.
И что делать с нелинейной скоростью изменений? Высчитывать вручную?
А уменьшение элементов управления? Сейчас их нельзя уменьшить меньше размера текстуры элемента.
Может добавить слои, которые будут перекрывать («накрывать») все элементы фона и элементы управления, расположенные в том же элементе фона, что и слои? Например, выезжающее боковое меню, которое «накрывает» весь остальной контент. Возможно со слоями будет легче работать с анимацией?
-
... Возник вопрос - как лучше и удобнее это реализовать в редакторе? Возможно, вы где-нибудь уже сталкивались с решением подобных задач?
Возможно, подойдёт та идеология, что используется при создании анимированных презентаций в 3D-рендерах?
Выбирается объект из дерева элементов, выбирается вид воздействия на него: перемещения, трансформация, вращение и т.п., затем уже задаются параметры этих воздействий: начальное конечное положение, продолжительность и пр. Если какие-либо воздействия происходят одновременно для одного объекта, то процедура для него повторяется, а затем всё сводится в привычном Timeline, где одна анимация накладывается на другую. Со стороны пользователя всё весьма просто получается, но со стороны программирования этого...
Вот видео (https://www.youtube.com/watch?v=MDytSiIZcfk). Их подобных много.
-
Кстати да, как в After Effects, хорошая идея. В плане программирования, в принципе, не особо сложно.