Командам нравится Lottie за компактный вектор, но магазины приложений, рекламные сети и легаси-CMS по-прежнему просят PNG-последовательности для стикеров, сплэшей и текстурных атласов. Сложность не в разовом экспорте, а в том, чтобы сотни кадров повторялись одинаково между рендерерами, политикой FPS и намерением sRGB без тихого дрейфа. Ниже — матрица доставки 2026: когда брать 24, 30 или 60 FPS, как именовать и валидировать кадры, какие пороги приёмки ловят пустые или «залитые» проходы, и как удалённый Mac mini M4 превращает задачу в скучный ночной батч.
На этой странице
① Матрица решений: PNG-полоса против живого Lottie
Перед фиксацией пайплайна сверьтесь с таблицей. Если для вашего канала столбец помечен как «высокий риск», склоняйтесь к PNG-полосе с явным FPS и манифестом — даже если в приложении остаётся .json.
| Сценарий | Живой Lottie | PNG-последовательность |
|---|---|---|
| Жёсткая пиксельная сетка (игры, атласы) | Зависит от рендерера и субпиксельных фильтров | Предпочтительно — зафиксировать WxH и mip-политику на кадр |
| Спеки магазинов и рекламных сетей | Часто запрещён или «песочница» | Предпочтительно — предсказуемые растры |
| Бренд-критичный цвет | Расхождения Skia / CoreGraphics / WebGL | Предпочтительно — вместе с политикой ICC (ниже) |
| Частые правки motion | Предпочтительно — маленький JSON, быстрые итерации | Стоимость перерисовки; автоматизируйте на воркере |
| Длинные петли (>6 с) при 60 FPS | Меньше по сети | Тяжёлый диск; нужен байт-бюджет на кадр |
② Проверки до экспорта: FPS, длительность, альфа, размытие
Последовательности падают на QA по «скучным» причинам: ошибка на один кадр, полупрозрачные матты и motion blur, по-разному запечённый в AE и рантайме. Композицию в After Effects (или аналоге) считайте контрактом, затем докажите согласие JSON и растеризатора по рабочей области и time remap.
- Блокировка FPS: один из
24(кино и многие соц-мастера),30(веб и NTSC-дружелюбно) или60(микромоушн UI, игры). Не «экспорт 24» из композиции 30 FPS без записи, какие кадры исчезают. - Арифметика кадров: ожидаемое число =
ceil(длительность_сек × fps_экспорта)для полуоткрытых таймлайнов; часть инструментов добавляет хвостовой кадр — гейт допускает ±0 к спецификации, а не «почти совпало». - Гигиена альфы: premultiplied против straight должны совпадать с движком, читающим полосу; точечные проверки RGBA на плашках #000 и #FFF — как в чеклисте пакетной прозрачности PNG.
- Честность эффектов: плагины вне Bodymovin/Lottie нужно сплющить до растра, иначе расхождение между превью JSON и PNG неизбежно.
③ Параметры пакетной обработки, шаблон имён и пороги проверки
Опубликуйте параметры рядом с папкой задания, чтобы через полгода тот же воркер выдал те же байты.
Уровни FPS экспорта (исполняемые значения по умолчанию)
| Уровень | FPS | Когда использовать | Риск |
|---|---|---|---|
| A — кино | 24 |
Бренд-ролики, кросс-региональные соц-мастера | На 120 Hz дисплеях UI всё ещё сэмплится как 24; проверьте строб |
| B — веб-продукт | 30 |
Hero-петли, онбординг | Синхронизируйте с часами плеера при mux в видео |
| C — микромоушн | 60 |
Пульс иконок, VFX-листы игр | Взрыв байт — введите max_bytes на кадр |
Шаблон имени (zero-pad)
Один шаблон на репозиторий — иначе ОС отсортирует frame-2.png после frame-19.png.
- Шаблон:
{product}_{animation}_v{semver}_f%05d.png— пример:payflow_onboarding_v1.4.2_f00037.png. - Стартовый индекс: глобально
0или1; FFmpeg, движки и композиторы расходятся — один раз вREADME_JOB.md. - Локали: суффикс
_en-RUтолько если motion реально отличается; не кладите маркетинговый текст в имя, если CMS запрещает.
Пороги пакетной валидации (промоут / карантин)
Практичные числа для shell, Make или наблюдателя на удалённом Mac.
| Гейт | Порог | Подсказка (macOS) |
|---|---|---|
| Размеры | Ширина/высота ±0 px к спецификации | magick identify -format "%w %h\n" или sips -g pixelWidth -g pixelHeight |
| Число кадров | Ровно N по контракту тайминга |
find . -name "*.png" | wc -l в одной папке задания |
| Пустой / залипший кадр | min_bytes ≥ 1200 (подстройте под стиль) |
stat -f%z; при необходимости pHash |
| Раздутый вес | max_bytes ≤ 800000 на кадр для UI 1080p |
Ловит случайный 16-bit или несжатый гигант |
| Наличие альфы | Ожидание rgba vs rgb по SKU |
magick identify -format "%[channels]\n" |
# Пример: скан inbox на дрейф размеров (zsh)
spec_w=1080 spec_h=1080
for f in inbox/*.png(N); do
read w h <<<$(magick identify -format "%w %h" "$f")
[[ "$w" == "$spec_w" && "$h" == "$spec_h" ]] || print "FAIL $f ${w}x${h}"
done
После прохождения пиксельных гейтов без потерь «подтяните» ICC так же, как для статичных маркетинговых PNG в руководстве по метаданным ICC и lossless-рекомпрессии — после гейтов, не до них.
④ Кросс-софт: JSON Lottie и растровая истина
Плееры Lottie расходятся в мелочах: матты слоёв, merge paths, размытие Гаусса. План приёмки должен предполагать один закреплённый путь растра на SKU, а не «что вчера открылось в браузере».
- Lockfile рендерера: semver AE + Bodymovin (или X), масштаб холста и фон в
manifest.jsonlрядом с sha256 по кадрам. - Контракт sRGB: встраивать
IEC 61966-2.1, оставлять нетегированный sRGB или допускать Display P3 — формулировки как в чеклисте sRGB и Display P3, без исключений для motion. - Согласованность с доставкой дизайна: выровняйте имена, токены цвета и боксы экспорта со статичными слайсами в одном playbook, чтобы полосы кадров не жили «особым режимом» рядом с UI-китом.
⑤ Сбои и политика повторов
Батчи падают из-за троттлинга, кэша шрифтов или глюков headless GPU. Повторы — часть спецификации.
- Сначала карантин: проваленные диапазоны в
quarantine/frames_120-140/со stderr — не перезаписывайте деревоout/. - Backoff: пауза
2^nсекунд, потолок 120 s; не более 5 попыток без ручного breaker. - Частичный перерендер: только индексы-диапазон и склейка в манифест — полный композит сжигает минуты GPU на кластере M4.
- Автоматизация: строки JSONL на кадр (байты, WxH, версия инструмента, pass/fail) в духе практик пакетной QA в репозитории статей MacPng.
⑥ Итог
Lottie остаётся редакционным источником, а PNG-последовательность — производственным выходом. Зафиксируйте уровень FPS, число кадров, шаблон имён и промоутите кадры только после гейтов размеров, байт и альфы. Тяжёлую растеризацию вынесите на выделенный удалённый Mac mini M4: ноутбук остаётся интерактивным, манифесты копятся предсказуемо — та же модель, что и для 4K-статики, только с большим числом файлов и строже порядком сортировки.
Дальнейшие шаги: удалённый Mac M4 для Lottie → PNG
Откройте главную MacPng для контекста платформы, затем аренду и покупку и тарифы и узлы — вход в аккаунт не обязателен, чтобы сравнить планы. В помощи и настройке — онбординг воркера; дополнительные матрицы доставки — в разделе Технические идеи.
Пакетная растеризация Lottie и QA PNG на удалённом Mac
Снимите длинные PNG-полосы на стабильный хост M4, закрепите версии инструментов и промоутьте только кадры с подписанным манифестом — для стикеров, атласов и стор-паков, где живой JSON уже не помещается.