Сегодня хочу поговорить о важной теме для всех, кто работает с TGS анимацией в Telegram: оптимизации. Не частая, но давящая проблема уместить анимацию в 64 кб встречается у многих в последнее время. Собственно я не стал исключением.
Эту же тему затрагивали ребята из студии "Оно и видно" в своем недавнем посте. К нему я и обратился когда встал вопрос оптимизации и немного усовершенствовал 🧑💻
Глобально когда вы экспортируете Lottie-анимацию из After Effects, на выходе получаете JSON-файл. Этот JSON-файл содержит всю информацию об анимации:
- Координаты
- Цвета
- Тайминги
и многое другое
Затем этот JSON-файл сжимается GZIP и получает расширение
.tgsТеперь перейдем к самому интересному — как уменьшить размер JSON-файла?
▪️Удаление лишних слоев и свойств: Каждый лишний элемент — это байты. Убирайте все, что не влияет на конечную анимацию.
▪️Минимизация ключевых кадров: Используйте как можно меньше ключевых кадров.
▪️Онлайн-компрессоры JSON: Например, lottiemizer или другие аналогичные сервисы.
▪️Ограничение точности: Уменьшение количества знаков после запятой для координат и других числовых значений.
Если вы выполнили первые три шага, и ваш файл все еще великоват, то для ограничения точности после запятой вы можете использовать скрипт форматирования JSON.
Файлик будет ниже в комментариях.
Применяя описанные методы, вы сможете значительно уменьшить размер ваших файлов, улучшить производительность. Надеюсь, этот пост был полезен!
