Файл анимации Lottie представляет собой JSON-документ, содержащий не только описание визуальных слоёв, но и обширный набор метаданных. Эти данные определяют поведение анимации, её параметры воспроизведения, совместимость и контекст использования.
Ключевые метаданные располагаются на верхнем уровне JSON-объекта и служат основой для корректной интерпретации анимации библиотекой Lottie Web.
Указывает версию формата Lottie/Bodymovin, в которой была экспортирована анимация.
"v": "5.7.4"
Значение критично для обратной совместимости: разные версии могут по-разному интерпретировать свойства, эффекты и слои.
Частота кадров анимации.
"fr": 30
Определяет, сколько кадров воспроизводится за секунду. От этого зависит плавность и точность таймингов.
Начальный и конечный кадры анимации.
"ip": 0,
"op": 180
ip — первый кадрop — последний кадр (не включительно)Общая длительность вычисляется как:
(op - ip) / fr
Размеры области анимации в пикселях.
"w": 512,
"h": 512
Используются для масштабирования и корректного отображения в контейнере.
Имя анимации.
"nm": "Loading Animation"
Не влияет на выполнение, но полезно для отладки и управления набором анимаций.
Флаг использования 3D-слоёв.
"ddd": 0
0 — только 2D1 — присутствуют 3D-слоиLottie Web ограниченно поддерживает 3D, поэтому значение влияет на интерпретацию слоёв.
Список ресурсов, используемых в анимации.
"assets": [
{
"id": "image_0",
"w": 100,
"h": 100,
"u": "images/",
"p": "img_0.png"
}
]
Может включать:
Хотя это не чисто метаданные, список слоёв содержит структурную информацию:
"layers": [ ... ]
Каждый слой имеет собственные метаданные:
ty — тип слояnm — имяind — индексparent — связь с родительским слоемМаркеры используются для обозначения ключевых точек анимации.
"markers": [
{
"tm": 60,
"cm": "halfway",
"dr": 0
}
]
Поля:
tm — время (в кадрах)cm — комментарий (имя маркера)dr — длительностьМаркеры позволяют:
Дополнительная информация об экспорте:
"meta": {
"g": "LottieFiles AE 1.0.0",
"a": "",
"k": "",
"d": "",
"tc": ""
}
Содержит:
g)Не влияет на воспроизведение, но полезна для анализа источника.
Хотя Lottie не содержит явного поля для цветового профиля, важно учитывать:
Пример:
"c": {
"k": [1, 0, 0, 1]
}
Это соответствует красному цвету.
Метаданные тесно связаны с временной шкалой:
fr задаёт дискретностьip и op ограничивают диапазонk) внутри слоёв используют эти
значенияОшибки в метаданных могут привести к:
При загрузке анимации:
lottie.loadAnimation({
container: element,
renderer: 'svg',
loop: true,
autoplay: true,
animationData: data
});
Lottie Web:
assetslayersНекоторые поля напрямую влияют на эффективность:
fr (frame rate) Высокие значения увеличивают нагрузку
w/h (размер) Большие размеры требуют больше ресурсов
assets (изображения) Большие файлы замедляют загрузку
markers Позволяют оптимизировать воспроизведение, избегая лишних вычислений
Типичные проблемы:
v)ip > op)assetsu, p)Практика включает:
Допускается добавление пользовательских полей:
"custom": {
"author": "John Doe",
"category": "UI"
}
Lottie Web игнорирует неизвестные поля, что позволяет:
Метаданные используются при программном управлении:
animation.goToAndStop(60, true);
Здесь:
60 — кадр, связанный с fr,
ip, opanimation.playSegments([start, end], true);
Bodymovin формирует метаданные автоматически:
meta.gОшибки на этапе экспорта приводят к:
frop)Типичный JSON:
{
"v": "5.7.4",
"fr": 30,
"ip": 0,
"op": 180,
"w": 512,
"h": 512,
"nm": "Example",
"ddd": 0,
"assets": [],
"layers": [],
"markers": [],
"meta": {}
}
Эти метаданные формируют каркас анимации, на который накладывается вся визуальная логика. Без корректных значений даже идеально настроенные слои не будут воспроизводиться должным образом.