Определение ключевых кадров

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

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

В Popmotion ключевые кадры задаются массивом значений. Каждый элемент массива описывает состояние анимации в определённый момент времени:

  • значение (число, строка, цвет или сложный объект)
  • позиция на временной шкале (offset)
  • поведение перехода к следующему кадру (easing)

Минимальная форма записи ограничивается списком значений, где равномерное распределение интервалов берётся по умолчанию:

keyframes({
  values: [0, 100, 50, 120],
  duration: 2000
})

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

Управление временными отрезками

Более точная настройка достигается через использование offsets. Они задаются в диапазоне от 0 до 1 и определяют, в какой момент времени должен быть достигнут соответствующий кадр.

keyframes({
  values: [0, 100, 50],
  times: [0, 0.3, 1],
  duration: 2000
})

Здесь первый кадр фиксируется в начале, второй — на 30% длительности, третий — в конце. Это позволяет управлять ускорениями и замедлениями на уровне структуры анимации, а не только через easing.

Интерполяция между кадрами

Каждый участок между ключевыми кадрами интерполируется отдельно. Popmotion определяет промежуточные значения на основе типа данных:

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

Пример цветовой анимации:

keyframes({
  values: ['#ff0000', '#00ff00', '#0000ff'],
  duration: 3000
})

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

Индивидуальные easing-функции

Одним из ключевых преимуществ ключевых кадров является возможность задавать easing для каждого сегмента отдельно. Это позволяет строить сложные траектории движения с разной динамикой на каждом участке.

keyframes({
  values: [0, 200, 100],
  easings: ['easeIn', 'easeOut'],
  duration: 2000
})

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

Поведение сложных структур данных

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

keyframes({
  values: [
    { x: 0, y: 0 },
    { x: 100, y: 50 },
    { x: 200, y: 0 }
  ],
  duration: 1500
})

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

Синхронизация с временной моделью

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

Этот подход позволяет:

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

Непрерывность и разрывные переходы

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

keyframes({
  values: ['hidden', 'visible', 'hidden'],
  times: [0, 0.5, 0.5, 1],
  duration: 1000
})

Здесь повторяющееся значение времени создаёт мгновенный переход между состояниями.

Комбинирование с физическими моделями

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

Это позволяет создавать гибридные анимации, где:

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

Практическая модель построения анимации

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

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

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