Cavalry занимает особое место среди инструментов процедурной и параметрической анимации благодаря архитектуре, ориентированной на гибкие зависимости, инстансинг и математическое управление формами. При работе с веб-доставкой анимаций ключевым сценарием становится экспорт сцен в формат Lottie JSON, который затем воспроизводится через Lottie Web в браузерной среде.
Основная сложность такого конвейера заключается в различии моделей представления анимации: Cavalry оперирует процедурными графами и параметрическими связями, тогда как Lottie JSON представляет собой декларативное описание кадровой или интерполяционной анимации без сохранения полноценной логики генерации.
Процесс конвертации можно рассматривать как серию этапов нормализации:
Ключевая задача на этом этапе — устранение динамических зависимостей, которые не имеют прямого эквивалента в Lottie-спецификации.
Cavalry использует процедурные примитивы, которые могут изменяться в реальном времени: окружности с переменным радиусом, модифицируемые сплайны, генеративные повторения. При экспорте в Lottie такие объекты преобразуются в shape layers.
Особенности преобразования:
При этом теряется семантика процедурности: в Lottie остаётся только результат вычисления, но не сам алгоритм.
Система ключевых кадров Lottie требует явного описания значений во времени. В Cavalry же параметры часто вычисляются через выражения или зависимости.
При экспорте:
Особое внимание уделяется сохранению визуальной эквивалентности при потере математической точности.
Текстовая система Cavalry включает расширенные возможности типографики: кернинг, трекинг, привязку к кривым, а также процедурные изменения строк.
При экспорте в Lottie:
В случае отсутствия поддержки шрифта поведение становится непредсказуемым в зависимости от рендера Lottie Web.
Система масок Cavalry поддерживает сложные вложенные структуры и процедурные границы. В Lottie поддержка ограничена набором простых режимов:
При экспорте:
Это один из наиболее проблемных участков конвертации, так как визуальная эквивалентность часто требует ручной корректировки.
Cavalry активно использует инстансинг: один объект может быть многократно переиспользован с различными параметрами.
В Lottie такой подход отсутствует как концепция, поэтому:
Это критично для сцен с высокой степенью повторяемости, например генеративных паттернов.
Cavalry поддерживает работу с цветовыми пространствами и процедурными эффектами, включая градиенты, пост-обработку и математические фильтры.
При экспорте:
Lottie Web в браузере использует собственный рендеринг canvas/SVG, поэтому визуальные различия зависят от выбранного renderer-а.
Система времени Cavalry основана на композиционном таймлайне, где элементы могут существовать в различных контекстах времени.
Lottie требует глобальной временной шкалы:
Это приводит к потере относительной временной логики и переходу к жестко заданному кадрированию.
При переносе сцен из Cavalry в Lottie неизбежно возникают ограничения, связанные с отсутствием эквивалентов:
Такие элементы либо упрощаются до статических форм, либо требуют предварительного запекания анимации.
Выходной Lottie JSON часто требует пост-оптимизации:
Оптимизация напрямую влияет на производительность Lottie Web в браузере, особенно при больших композициях.
После загрузки Lottie-анимации в браузерной среде происходит интерпретация JSON и построение внутренней структуры анимации:
Особенности поведения:
Даже при корректном экспорте возможны различия между исходной сценой Cavalry и результатом в Lottie:
Эти расхождения особенно заметны в анимациях с высокой степенью процедурной сложности, где исходная логика теряется при переходе к декларативному формату.