В основе любой анимационной системы лежит работа с непрерывно изменяющимися числовыми значениями. Положение объекта на оси, прозрачность, масштаб, угол поворота, скорость движения — всё это сводится к числам, которые изменяются во времени по определённым законам.
В Popmotion числовые значения рассматриваются как первичный тип данных для анимации. Любая трансформация выражается через последовательность чисел, которые могут интерполироваться, ограничиваться диапазоном, преобразовываться функциями easing и управляться физическими моделями.
Такой подход позволяет отделить визуальное представление от математической модели движения. Анимация становится вычислением, а не набором кадров.
Базовая единица управления в Popmotion — объект состояния, содержащий числовое значение и метаданные о его изменении. Это состояние включает:
Число в такой модели не является статичной величиной. Оно представляет собой точку на временной шкале, которая непрерывно обновляется.
При этом числовое значение может существовать как:
Интерполяция в числовых системах — это процесс вычисления промежуточных значений между начальной и конечной точками.
В Popmotion числовая интерполяция строится на функции нормализации времени:
Формально базовая интерполяция выражается как:
Где progress изменяется во времени.
Линейная модель используется как базовый случай:
Такая модель часто применяется для:
Числовые значения в анимации редко существуют без границ. Ограничение диапазона предотвращает выход за допустимые пределы и обеспечивает стабильность визуального результата.
В Popmotion используются несколько стратегий:
Clamp фиксирует значение в пределах диапазона:
Это обеспечивает:
Wrap позволяет числам переходить через границу и возвращаться с другой стороны диапазона:
Такой подход применяется в:
Значение отражается от границы диапазона:
Используется в симметричных физических моделях.
Часто числовые значения переводятся между различными шкалами.
Нормализация приводит любое число к диапазону 0–1:
Денормализация возвращает число в исходный диапазон:
Скорость в Popmotion рассматривается как изменение числового значения во времени.
Она вычисляется как:
Скорость используется для:
Высокая скорость означает быстрое изменение значения, низкая — плавное движение.
Числовые значения могут подчиняться физическим законам, что позволяет создавать реалистичные анимации.
В spring-модели значение рассматривается как масса, соединённая с точкой равновесия.
Основные числовые параметры:
Поведение числа определяется уравнением:
Такая модель создаёт:
Ключевые кадры представляют дискретные числовые состояния во времени.
В системе ключевых кадров:
Числовая траектория строится как функция:
При этом допускаются:
Easing-функции изменяют линейный числовой прогресс, создавая нелинейные кривые движения.
Базовый вход:
Выход:
Типы числовых преобразований:
Easing фактически является функцией преобразования числового пространства, изменяющей плотность распределения значений во времени.
Часто одно числовое пространство отображается в другое.
Типичная задача:
Формула преобразования:
Такие преобразования используются для:
Числа в Popmotion могут быть связаны с визуальными единицами, но остаются абстрактными величинами.
Типичные интерпретации:
Внутренне система работает с числами без единиц, а преобразование происходит на уровне применения к стилям.
Такой подход позволяет:
Числовые преобразования могут комбинироваться в цепочки:
Каждый этап изменяет числовое представление, формируя итоговое значение.
Композиция позволяет:
Некоторые числовые системы работают не с абсолютными значениями, а с приращениями.
Инкрементальная модель:
Используется для:
Такая модель тесно связана с понятием скорости и ускорения, так как каждое изменение зависит от предыдущего состояния.
При вычислениях с плавающей точкой возникает проблема накопления ошибок.
В анимационных системах это проявляется как:
Решения включают:
Дискретизация также используется для синхронизации с кадровой частотой.
Прогресс анимации является центральной числовой метрикой, описывающей текущее состояние движения.
Он выражается в диапазоне:
Все преобразования строятся вокруг этой шкалы:
Прогресс служит связующим звеном между временем и значением, превращая временную ось в числовую функцию.