Создание временной шкалы

Базовая модель временной шкалы

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

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

Ключевые характеристики временной шкалы:

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

Принцип композиции анимаций

Каждая анимация рассматривается как отдельный сегмент, который размещается на временной шкале. Сегменты могут перекрываться, следовать друг за другом или запускаться параллельно.

Композиция строится через:

  • стартовую позицию (offset)
  • длительность (duration)
  • задержку (delay)
  • порядок добавления в последовательность

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


Создание последовательностей

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

Типовая структура последовательности:

  • первый элемент задаёт базовую точку отсчёта
  • последующие элементы используют относительное смещение
  • итоговая композиция формирует непрерывный поток изменений

Основной эффект последовательностей заключается в том, что управление временем становится декларативным: вместо ручного расчёта задержек используется описание порядка.


Относительные и абсолютные смещения

Временная шкала оперирует двумя типами позиционирования:

Абсолютное позиционирование

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

Относительное позиционирование

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

Комбинация этих подходов обеспечивает гибкость при построении сложных анимационных сценариев.


Синхронизация параллельных анимаций

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

Параллельность достигается через:

  • одинаковые стартовые offset значения
  • перекрывающиеся диапазоны времени
  • независимые ключевые кадры

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


Использование задержек как элемента композиции

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

Задержки применяются для:

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

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


Управление длительностью элементов шкалы

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

Основные свойства длительности:

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

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


Перекрытие анимаций и их взаимодействие

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

Типы взаимодействия:

  • полное перекрытие (одновременное изменение свойств)
  • частичное перекрытие (смена эффектов в середине диапазона)
  • каскадное перекрытие (последовательное наслоение изменений)

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


Группировка анимаций в логические блоки

Временная шкала поддерживает объединение анимаций в блоки, которые рассматриваются как единые сущности.

Логические блоки используются для:

  • структурирования сложных сцен
  • повторного использования анимационных паттернов
  • изоляции групп эффектов

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


Ключевые кадры внутри временной шкалы

Ключевые кадры определяют состояние анимации в конкретные моменты времени. На временной шкале они распределяются вдоль интервала и интерполируются между собой.

Особенности работы ключевых кадров:

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

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


Масштабирование временной шкалы

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

Эффекты масштабирования:

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

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


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

Скорость влияет на то, как временная шкала интерпретирует проход времени. Увеличение скорости приводит к ускорению всей композиции, уменьшение — к замедлению.

При изменении скорости сохраняются:

  • относительные интервалы между анимациями
  • структура перекрытий
  • порядок выполнения сегментов

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


Синхронизация временной шкалы с внешними событиями

Временная шкала может быть связана с внешними триггерами, которые влияют на её позицию или состояние. Это позволяет связывать анимации с пользовательскими действиями или системными событиями.

Основные модели синхронизации:

  • запуск шкалы при наступлении события
  • перемотка к определённой позиции
  • приостановка и возобновление воспроизведения
  • динамическое изменение параметров во время выполнения

Такое поведение превращает временную шкалу в управляемую систему состояния, а не статический набор анимаций.


Иерархия временных шкал

Сложные сценарии формируются через вложенные временные шкалы, где каждая подшкала управляет своей частью анимаций.

Иерархия обеспечивает:

  • разделение сложных сцен на уровни
  • независимое управление группами анимаций
  • возможность синхронизации между уровнями

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