Lottie Web опирается на заранее сгенерированное описание анимации в формате JSON, экспортированное из After Effects через Bodymovin. Это определяет ключевое ограничение всей модели: динамические изменения возможны только в рамках заранее заложенной структуры, а не произвольного редактирования сцены в рантайме.
Lottie Web не является системой сценического рендеринга в привычном
смысле. Внутренне анимация представляет собой набор слоёв, ключевых
кадров и свойств, уже «запечённых» в JSON. При инициализации через
lottie.loadAnimation создаётся граф объектов,
соответствующий этому описанию.
Динамические изменения в таком контексте делятся на:
setValueЛюбая попытка изменить структуру сцены выходит за пределы модели исполнения.
Основное ограничение заключается в том, что JSON-анимация после загрузки считается статической.
Невозможно:
Эти элементы формируют граф сценического состояния, который компилируется один раз при загрузке.
Изменение структуры возможно только через полную перезагрузку анимации с новым JSON.
Ключевые кадры (keyframes) в Lottie являются основой всей анимационной логики. После экспорта они становятся неизменяемыми интерполяционными данными.
Ограничения:
Допустимы только косвенные воздействия:
goToAndStop,
goToAndPlay)Таким образом, временная логика остаётся фиксированной.
Слои в Lottie представляют собой результат экспорта из After Effects и не являются полноценными runtime-объектами.
Недоступно:
Даже если доступ к отдельным слоям возможен через internal API, он остаётся ограниченным набором свойств без возможности структурного расширения.
Любая попытка динамической модификации сцены приводит к необходимости пересборки всей анимации.
Некоторые свойства допускают ограниченное изменение во время выполнения:
Однако доступ к этим свойствам зависит от структуры JSON. Свойства должны быть заранее определены в исходной композиции.
Ключевой принцип: динамически изменяется только то, что уже существует в графе.
Любая попытка изменить несуществующее свойство игнорируется движком.
Текстовые слои являются одной из наиболее ограниченных областей.
Ограничения:
Часто доступна только замена строки текста через
setText, при условии что слой был корректно
экспортирован.
Если текст был преобразован в shapes (outline), он полностью теряет динамическую природу.
Изображения в Lottie фиксируются как ссылки или встроенные assets.
Ограничения:
assets idВ большинстве случаев изображение рассматривается как статический ресурс внутри композиции.
Маски (masks) и эффекты (effects) являются одной из самых жёстко ограниченных областей.
Недоступно:
Некоторые базовые параметры могут реагировать на трансформации слоя, но не на структурные изменения.
Эффекты, не поддерживаемые Lottie JSON спецификацией, полностью игнорируются после экспорта.
Частое применение динамических изменений приводит к следующим эффектам:
Особенно критично:
setState-подобных измененийLottie не предназначен для поведения, характерного для game engines или reactive UI сцен.
При достижении ограничений динамической модели применяется стратегия полной пересборки:
destroy)Этот подход используется при:
Частичная модификация используется только для параметров, заложенных заранее.
В условиях статичности структуры применяются архитектурные решения:
Такие подходы позволяют компенсировать отсутствие полноценного runtime-редактора сцены, сохраняя контроль над визуальным результатом без нарушения ограничений формата.