Lottie Web использует JSON-описание анимации, где каждая трансформация, ключевой кадр и векторная кривая сериализуются в структуру данных. Основной вклад в размер файла дают:
Рост объёма происходит экспоненциально при увеличении сложности сцен, особенно при использовании сложных масок и выражений.
Большая часть JSON-файла состоит из числовых значений: координат, временных меток, параметров трансформаций. После экспорта значения часто имеют избыточную точность:
"x": 120.00000000003,
"y": 540.99999999987
Оптимизация заключается в округлении значений до минимально достаточной точности:
Снижение точности уменьшает размер JSON без визуально заметных изменений, особенно при веб-воспроизведении.
Частая проблема экспортированных анимаций — избыточная плотность keyframes. Каждый параметр интерполируется движком, поэтому промежуточные точки часто не нужны.
Типичные случаи удаления:
Сокращение keyframes приводит к уменьшению массивов вида:
"ks": {
"p": {
"k": [
{"t": 0, "s": [0,0]},
{"t": 1, "s": [10,10]},
{"t": 2, "s": [20,20]}
]
}
}
до минимально необходимых точек начала и конца.
Paths являются наиболее тяжёлой частью JSON. После экспорта из Adobe After Effects или аналогичных редакторов контуры часто содержат чрезмерное количество вершин.
Методы оптимизации:
Чрезмерно детализированные кривые могут увеличивать файл в несколько раз без улучшения визуального качества на экране.
Структура Lottie-анимации включает слои, каждый из которых содержит свойства трансформации. Часто наблюдается повторение одинаковых параметров:
Слияние слоёв позволяет:
kslayers[]Особенно эффективно при группах декоративных элементов.
Встроенные изображения в Lottie могут храниться как:
Base64 существенно увеличивает размер файла. Для оптимизации применяется:
Удаление base64-данных часто даёт наибольший выигрыш по размеру.
Экспортированные сцены часто содержат:
Их присутствие увеличивает JSON без влияния на результат. Очистка включает:
После структурной оптимизации применяется текстовая минификация:
Минифицированный JSON:
{"v":"5.7.4","fr":30,"ip":0,"op":60,"w":500,"h":500}
по сравнению с форматированным вариантом может занимать на 20–40% меньше места.
Даже после оптимизации структуры JSON остаётся текстовым форматом, хорошо сжимаемым алгоритмами:
Для Lottie-анимаций в веб-среде включение серверного сжатия часто эффективнее всех микроправок в JSON.
Expression-based свойства и эффекты After Effects могут значительно раздувать JSON:
Упрощение включает:
Генераторы Lottie часто имеют параметры экспорта:
Снижение precision до оптимального уровня уменьшает размер без визуальных потерь. Особенно критично при экспортировании сложных motion-дизайнов.
JSON Lottie использует массив assets, где хранятся:
Частые проблемы:
Сведение ресурсов к минимальному набору снижает общий вес структуры и ускоряет парсинг.
Сложные сцены с большим количеством взаимодействующих слоёв часто заменяются:
Это снижает не только размер JSON, но и вычислительную нагрузку при рендеринге в Lottie Web.
Оптимизация JSON-файла требует сохранения баланса:
Эффективная стратегия строится на анализе структуры файла, выявлении тяжёлых узлов и точечной переработке наиболее затратных элементов данных.