name: motion-plan description: Разметить motion-план для ролика (по умолчанию в стиле v4 «презентация с картинками»: kinetic-интро, спикер + достраивающаяся панель, картинки-метафоры, звук) — посмотреть транскрипт, скрипт или само видео и решить, в каких местах и какими приёмами визуально показать то, что автор проговаривает голосом. На выходе MOTION.md с таймкодами, выбранными приёмами и покадровыми спеками на каждую сцену. Используй этот скилл всегда, когда нужно понять, где в ролике нужны анимации, какие именно и почему, когда пользователь даёт транскрипт или ссылку на своё видео и спрашивает, что тут анимировать, а также когда надо переразметить уже существующий план. Сборкой занимается /motion-build, оркестрацией — /motion-run.
Motion-план: где и что показывать
Ты решаешь не «какую красивую анимацию сделать», а что именно из сказанного нужно показать глазами. Это разные задачи. Анимация в этом стиле работает не как украшение, а как второй канал: голос объясняет, картинка одновременно показывает структуру мысли.
Отсюда главный критерий выбора: у мысли есть форма — контраст, последовательность, вложенность, масштаб, развилка. Приём выбирается под форму, а не под настроение.
Стиль по умолчанию — v4
Размечай под стиль v4 (../motion-build/references/style-v4.md, одобрен автором как эталон):
- у каждой сцены раскладка:
kinetic(интро + 2–3 панчлайна),split-cam(основной язык, ≈40 %),full(крупное понятие, ≈20 %),split-screen(автор показывает/рисует, ≈25 %),lower(термин по ходу демо); - у каждой сцены, кроме kinetic и чистых схем, — промпт картинки-героя на английском: только
объект-метафора одной фразой с одной cobalt-blue деталью (стиль-хвост общий, в
gen_images.sh); - у каждой сцены — SFX-кьюшки (
whoosh / pop / click / click-soft / ping / key-press / typing / stamp / neg); - плотность стрима: ~1 вставка в 60 с, 8–19 с каждая, не чаще раза в 40 с; где автор живьём демонстрирует или рисует — split-screen/lower или без вставки (и запиши, почему);
- тайминги снимай пословно (Groq whisper с
timestamp_granularities[]=word), а не по сегментам. Если автор записал отдельное интро — план интро по образцуrecipes/v4/intro-kinetic-steps-split.html.
Что читать
references/catalog.md— каталог приёмов: какую форму мысли показывает каждый и когда он уместен. Основной справочник, читай целиком перед разметкой.references/rhythm.md— ритм и раскладка: плотность склеек по участкам, сколько вставок на ролик, сколько держать сцену, четыре повторяющиеся раскладки кадра. Читай до того, как расставлять таймкоды.
Порядок
1. Получи текст с таймкодами
Есть транскрипт — работай с ним. Нужны таймкоды; если их нет, попроси или сними их с видео.
Есть ссылка или файл видео — загрузи скилл watch. Он скачает, снимет транскрипт и нарежет кадры.
Кадры пригодятся: по ним видно, где уже есть скринкаст, а где голая говорящая голова, которую
и надо оживлять.
Есть только сценарий без записи — размечай по нему, таймкоды считай приблизительно из расчёта ~150 слов в минуту, и честно скажи, что они поплывут после записи.
2. Найди биты, у которых есть форма
Иди по тексту и отмечай места, где автор произносит утверждение со структурой. Признаки:
- противопоставление — «было / стало», «не X, а Y», «раньше / теперь»;
- перечисление — «три вещи», «во-первых… во-вторых…»;
- последовательность — «сначала, потом, в итоге»;
- вложенность или уровни — «слой», «внутри», «поверх»;
- число или сравнение величин — «в десять раз», «за минуту вместо четырёх часов»;
- развилка — «либо, либо», «если — то»;
- цитата или чужая мысль;
- определение — «X — это то, что…».
Места без формы («сейчас расскажу», «об этом чуть позже», переходы между темами) не размечай.
3. Держи плотность
В референсном стиле визуальная вставка приходит примерно раз в 10 секунд, и почти ни один графический план не стоит статично. Но это не значит «анимируй всё подряд»: половина хронометража там — говорящая голова с оверлеем, а не полнокадровая графика.
Ориентир для десятиминутного ролика: 8–14 полнокадровых вставок плюс оверлеи (титры, плашки глав, выноски) там, где говорящая голова идёт долго.
Если бит важный, но соседний уже занят — оставь его без графики. Две сильные вставки подряд гасят друг друга; между ними нужен воздух.
4. Подбери приём под форму
Открой references/catalog.md и подбери приём по форме мысли, а не по красоте. В каталоге у каждого
приёма написано, что он показывает и когда уместен.
Три правила, которые важнее вкуса:
Один приём — одна мысль. Если в бите две мысли, это два бита или одна из них уходит в текст.
Не повторяй приём подряд. Два rack-focus через сцену читаются как шаблон. Держи в голове последний использованный и следующий выбирай другой.
Сложность приёма пропорциональна важности мысли. Самый дорогой приём — на самый важный тезис ролика. Если камерный проезд с шестью слоями обслуживает проходную фразу, зритель считает это шумом.
5. Напиши MOTION.md
# Motion-план — <название ролика>
Хронометраж: 12:40 · вставок: 11 · оверлеев: 6
## Сцены
### 01 · 00:14–00:19 · Хук одним проездом
**Говорит:** «Почти все используют ИИ неправильно, и дело не в промптах.»
**Форма мысли:** заявка-противопоставление, обещание раскрыть.
**Приём:** камерный проезд с тремя микро-приёмами (раздвижка марки, распад титра, marker wipe).
**В кадре:** тезис 70px Unbounded, маркер под «неправильно», марка сверху, две монолинейные иконки.
**Почему:** это самая важная фраза ролика, ей достаётся самый дорогой приём.
**Длительность:** 5,0 с
### 02 · 00:47–00:51 · Было / стало
...
Обязательные поля: таймкод, что говорится, форма мысли, приём, что в кадре, почему этот приём, длительность. Поле «почему» не формальность — если его нечем заполнить, приём выбран наугад.
6. Разверни каждую сцену в спеку
Сабагент, который будет собирать, не видел ни ролика, ни плана. Спека должна быть самодостаточной.
Спека на сцену
Формат, по которому работает /motion-build:
# Сцена 02 — «Было / стало» (приём: вертикальный push с velocity-match)
Референс приёма: catalog → vertical-push. **Копируем механику, палитру берём из дизайн-системы.**
## Что происходит
Одним абзацем: суть движения и почему оно так устроено.
## Покадрово
| t | Состояние |
|---|---|
| 0.0–1.4 | Сцена A на месте, push-in 1.00→1.03 ease none. |
| 1.4–1.95 | Рельс едет yPercent 0 → −50, power3.inOut, blur одним фильтром 0→14→0 с пиком на 1.675. |
| 1.95–3.6 | Сцена B держится, заголовок и чипы собираются пословесно. |
## Тайминги и easing
Точные цифры и кривые. Что критично, а что можно двигать.
## Z-порядок
[0] фон → [1] … → [N] …
## Контент
Точные тексты, которые должны стоять в кадре. Не «заголовок», а сам заголовок.
## Длительность композиции: 3,6 с
Тексты в кадре пиши сам и бери из речи автора — сокращённые до пяти-семи слов. Сабагент не должен их придумывать: он не знает, о чём ролик.
Проверяй арифметику каждого текстового бита. Длительность набора = число слов × каденцию (0.10–0.13 с/слово для подписей и чипов, 0.20–0.25 для того, что читают вместе с диктором). Если окно в покадровке короче — спека внутренне противоречива, и сборщик всё равно её нарушит, просто потратив на это итерацию. Это ловилось трижды за один ролик: цитата в 14 слов не влезала в окно 1.85 с ни при какой каденции.
Закладывай на вход 1,2 секунды, а не 0,6. Двухступенчатый вход — закон стиля: быстрый
влёт expo.out ~.44 с, потом медленная досадка power1.out ~.76 с. Планировщик, глядя на
кадры, видит, что блок «уже приехал» к 0.6, и пишет в покадровку окно 0.5–1.1. Сборщик обязан
выбрать между буквой окна и кривой — и по правилам скилла выбирает кривую, то есть спека
нарушается штатно и каждый раз. На одном ролике так разошлись три сцены из девяти.
Пиши окно по полной длительности обеих фаз. Если по смыслу следующая фаза должна начаться раньше — так и пиши: «досадка продолжается под рисование линии», это штатное перекрытие фаз, а не конфликт.
Так же проверяй перекрытия: если написано «хендофф с перекрытием 0.25 с», сложи собственные цифры фаз и убедись, что получается 0.25, а не 0.05.
Сквозной якорь исходника
Посмотри кадры исходника до разметки: есть ли в нём постоянный элемент — камера-PiP в углу, плашка канала, рамка. Если есть, полнокадровая вставка его убирает, и на каждой вставке этот элемент пропадает.
Это решается на сборке (наложением якоря поверх вставок), но знать надо на разметке: отметь
в шапке MOTION.md координаты якоря и напиши, что вставки его не перекрывают. Иначе сцены
соберут композицию прямо под ним, и якорь закроет содержимое.
Где в исходнике реально проходят склейки
Разметка по транскрипту даёт таймкод фразы, но не говорит, что в этот момент в кадре. Проверять это выборочными кадрами каждые 20–30 секунд недостаточно: на этом ролике кадры 0:50 и 1:10 дали «лицо» и «скринкаст», из чего следовало, что говорящая голова идёт до ~0:55. Фактически скринкаст начинался на 0:52.2 — ровно там, куда был размечен оверлей на лицо, и сцену пришлось пересобирать.
Для каждой размеченной точки сними кадр на самом таймкоде и на его конце, а не полагайся на соседние выборки. Это два кадра на сцену и десять секунд работы, и они снимают весь класс ошибок «панель легла не на то».
Отдельно это важно для оверлеев: полнокадровая вставка перекрывает исходник целиком, и ей безразлично, что под ней, а оверлей рассчитан на конкретную подложку. Оверлей, размеченный на лицо и попавший на скринкаст, закрывает содержание экрана и выглядит ошибкой монтажа.
Проверь и то, что оверлей не закрывает собственную графику автора. На скринкасте кадр уже занят: подписи на доске, панели интерфейса, его же PiP. Нижняя треть — не универсальное место; если низ кадра занят, глоссарий уезжает в верхний угол, и это нормально. В плане указывай не «нижняя треть», а конкретную свободную зону, которую ты увидел на кадре.
Оверлеи
Там, где долго идёт говорящая голова, полнокадровая вставка не нужна — нужен оверлей поверх кадра. Их тоже размечай, отдельным списком: таймкод, тип (нижний титр, плашка главы, выноска-цитата, стеклянная панель-тезис), текст.
Правило дизайн-системы: стекло только поверх видео и максимум одна панель в кадре.
Типичные ошибки разметки
Иллюстрация вместо показа. «Тут он говорит про скорость — поставим часы.» Часы не показывают мысль, они её подписывают. Показать скорость — это «было / стало» с двумя цифрами.
Приём под красоту. Карусель глав уместна там, где перечисляются главы, а не там, где просто хочется движения.
Слишком много текста в кадре. Зритель считывает кадр за две секунды. Не больше 3–4 элементов, основной текст от 24px.
Разметка под свои возможности, а не под ролик. Если сцена просится сложная — размечай сложную. Решение «дорого, сделаем попроще» принимает пользователь, а не ты.