Управление длительностью

Длительность анимации в Popmotion определяется как числовой параметр, выражаемый в миллисекундах, который задаёт общий интервал времени, в течение которого происходит интерполяция значений между начальным и конечным состоянием. Внутренне система анимации опирается на высокоточный таймер и дискретные кадры, синхронизированные с циклом рендеринга браузера, однако вся логика управления временем остаётся детерминированной и явно задаётся разработчиком.

В основе временной модели лежит линейное накопление прогресса:

  • 0% прогресса соответствует начальному состоянию
  • 100% прогресса соответствует завершению анимации
  • промежуточные значения вычисляются через интерполяцию

Фактическое значение на каждом кадре определяется как функция:

  • прошедшего времени
  • заданной длительности
  • функции сглаживания (easing)

При этом длительность выступает нормализующим коэффициентом, приводящим абсолютное время к диапазону [0, 1].

Управление длительностью в tween-анимациях

Tween-анимации в Popmotion используют параметр duration как основной способ контроля скорости изменения значений. Он задаётся в миллисекундах и напрямую влияет на скорость интерполяции.

Типовая конфигурация включает:

  • начальное значение
  • конечное значение
  • длительность
  • easing-функцию

Чем больше значение длительности, тем более растянутой во времени становится интерполяция. При уменьшении длительности увеличивается скорость изменения состояния, что делает переход более резким.

Особенность заключается в том, что длительность не влияет на путь интерполяции, только на временную шкалу его прохождения.

Влияние easing на восприятие длительности

Хотя easing-функции формально не изменяют длительность, они модифицируют распределение прогресса внутри неё. Это приводит к эффекту субъективного ускорения или замедления анимации.

Характерные режимы:

  • линейное распределение создаёт равномерное движение
  • ease-in концентрирует изменение ближе к завершению
  • ease-out делает начало более активным
  • ease-in-out перераспределяет скорость по краям интервала

Таким образом, две анимации с одинаковой длительностью могут восприниматься как разные по времени из-за различной кривой интерполяции.

Timeline и управление глобальной длительностью

Timeline в Popmotion представляет собой систему координации множества анимаций в едином временном пространстве. Здесь длительность перестаёт быть локальной характеристикой и становится частью общей временной структуры.

Каждый дочерний анимационный сегмент может иметь:

  • собственную длительность
  • смещение относительно начала timeline
  • вложенные последовательности

Важным свойством является то, что timeline позволяет выстраивать сложные временные композиции, где общая длительность определяется суммой, пересечением или наложением отдельных элементов.

При последовательном расположении анимаций итоговая длительность становится кумулятивной. При параллельном — определяется максимальным значением среди всех дочерних элементов.

Последовательность и перекрытие интервалов

Управление длительностью в композициях требует учёта временных перекрытий. Popmotion позволяет задавать offset, который смещает начало анимации относительно начала timeline.

Режимы взаимодействия временных интервалов:

  • последовательное выполнение (каждая следующая начинается после завершения предыдущей)
  • параллельное выполнение (все стартуют одновременно)
  • частичное перекрытие (смещение начала относительно предыдущей)

В случае перекрытия суммарная временная структура перестаёт быть линейной и превращается в граф зависимостей.

Задержки и их влияние на длительность

Задержка (delay) в Popmotion не изменяет саму длительность анимации, но изменяет момент её начала в общей временной шкале. Это приводит к увеличению общего времени исполнения сценария без изменения внутренней структуры анимационного сегмента.

С точки зрения временной модели:

  • длительность описывает активную фазу интерполяции
  • задержка описывает фазу ожидания до начала интерполяции

При построении сложных сцен суммарное время часто определяется как сумма задержек и активных длительностей всех элементов.

Управление прогрессом и временной шкалой

Popmotion предоставляет возможность контролировать прогресс анимации независимо от реального времени. Это означает, что длительность может быть переопределена через внешнее управление прогрессом.

Ключевые механизмы:

  • установка прогресса вручную
  • синхронизация с внешними источниками времени
  • привязка к пользовательскому таймеру

Прогресс нормализуется в диапазон [0, 1], где длительность используется как коэффициент масштабирования при переходе от абсолютного времени к относительному.

Пауза, возобновление и перерасчёт времени

При приостановке анимации система фиксирует текущее значение прогресса и прошедшее время. При возобновлении происходит перерасчёт оставшейся длительности относительно нового временного контекста.

Поведение можно описать как:

  • сохранение точки остановки
  • фиксация остаточного интервала
  • продолжение интерполяции с учётом уже пройденного времени

Это позволяет сохранять консистентность анимации при любых паузах без нарушения кривой интерполяции.

Масштабирование времени и изменение скорости

В Popmotion возможно динамическое изменение скорости воспроизведения через масштабирование временной шкалы. Этот механизм позволяет изменять воспринимаемую длительность без модификации исходного параметра duration.

Принцип работы:

  • вводится коэффициент скорости
  • все временные вычисления умножаются на этот коэффициент
  • при значении > 1 анимация ускоряется
  • при значении < 1 анимация замедляется

Такой подход особенно важен для синхронизации нескольких анимаций с разными характеристиками длительности.

Ключевые паттерны управления временными интервалами

При проектировании анимационных систем на Popmotion используются устойчивые временные паттерны, обеспечивающие предсказуемость длительности:

  • фиксированная длительность с адаптивным easing
  • относительная длительность, зависящая от длины значения (например, расстояния перемещения)
  • каскадные последовательности с накоплением задержек
  • параллельные группы с общей максимальной длительностью
  • динамическое перераспределение времени при изменении состояния интерфейса

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

Временная детерминированность и повторяемость

Одним из ключевых свойств Popmotion является детерминированность временных вычислений. При одинаковой длительности, easing-функции и начальных условиях результат анимации остаётся воспроизводимым.

Это означает:

  • одинаковый входной временной параметр всегда даёт одинаковое состояние
  • независимость от кадровой частоты
  • стабильность при изменении производительности среды

Длительность в этом контексте становится не просто параметром времени, а частью математической модели трансформации состояния.