# Motion Reel

> Создаёт анимационный Reels/Shorts без камеры из темы, сценария или готовой озвучки в AutoMontage-Agent: script, выбор аудио, таймкоды, motion brief, настоящий preview, явное утверждение, MotionReel final и QA. Используй для «ролик без камеры», «анимационный рилс», «кинетический текст», «motion-reel» и «видео из озвучки»; в новом чате предлагает готовый стиль, уникальный Creative Motion или работу по референсу.

- Skill: `mcdenil-skills/motion-reel` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add mcdenil-skills/motion-reel`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mcdenil-skills/motion-reel/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: mcdenil-skills (https://skillmd.com/u/mcdenil-skills)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/mcdenil-skills/motion-reel

---


# Анимационный ролик без камеры

Тема → script → выбор озвучки → таймкоды → motion brief → preview → явное утверждение
→ final → QA. Планирование выполняй в текущей подписке Claude Code/Codex. Отдельные
OpenAI/Anthropic API для сценария, режиссуры или монтажа не нужны.

## Сначала покажи выбор монтажа

Прочитай [`reel-turnkey/references/creative-motion.md`](../reel-turnkey/references/creative-motion.md).
Если пользователь ещё не выбрал маршрут, сразу покажи карточку **«Как монтируем?»**:
уникальный Creative Motion (рекомендуется), готовый установленный стиль или монтаж по
референсу. При явном выборе не спрашивай снова; «реши сам» означает Creative Motion. После
выбора автономно реши типографику, палитру, композиции, B-roll, музыку и тайминги, а пользователю
покажи один полный проверенный preview.

## Границы

- Используй отдельную композицию `MotionReel` и схему `schema/motion-brief.schema.json`.
  Исходник – аудио, без `faceSrc`, подставного видео и требования показывать спикера в хуке.
- Готовый маршрут использует семь сцен: `kinetic-title`, `card`, `steps`, `list`, `counter`,
  `media`, `cta` и публичную тему `motion-neutral`; стандарт – 1080×1920, 30 FPS.
- Creative Motion создаёт новый арт-дирекшн и project-local полноразмерный motion-слой внутри
  `projects/<id>/motion-vNN/`. После официальной нормализации он подключается как проверенная
  `media`-сцена с `audioMode: mute`; narration остаётся мастер-аудио. Общий движок не меняется.
- Все материалы ролика сохраняй внутри игнорируемой `projects/<id>/`. Не меняй движок,
  общие сцены и тему ради одного клиента. Не публикуй его текст, голос, медиа или рендеры.
- Расписание, очереди и автопубликация – будущий отдельный слой. Этот движок отдаёт локальный
  MP4; не обещай фоновый выпуск роликов и не подключай аккаунты площадок.
- Полные рендеры в одном checkout запускай последовательно.

## 1. Прими тему и подготовь script

Прочитай `AGENTS.md`, доступную локальную память и состояние Git. Проверь окружение через
`automontage doctor`. Для проверки установки без ключей и Whisper используй
`automontage demo --motion`: он создаёт только draft с тестовыми тонами, не речь.
Первичная установка зависимостей и Remotion browser может потребовать интернет; подготовленное
демо рендерится офлайн. Повторная команда не перезаписывает существующую папку.

Если маршрут ещё не выбран, покажи стартовую карточку до подготовки script. После выбора не
задавай вопросы о вкусовых деталях, которые можешь решить самостоятельно; вынеси их в полный
preview. До него допустим максимум один действительно блокирующий вопрос о смысле, правах или CTA.

Извлеки цель, аудиторию, главную мысль, длину, обязательные факты и CTA. Напиши короткий
script из одного тезиса на сцену; сохрани его локально. Факты, числа и цитаты бери из материалов
пользователя или проверенных источников. Покажи неподтверждённые формулировки как предложения,
не выдавай выдуманные достижения за факты. Покажи текст до записи/платной генерации голоса.

## 2. Выбери озвучку

По умолчанию используй готовый MP3/WAV/M4A или запись пользователя. Если аудио ещё нет,
сначала подготовь script; не подменяй человеческую озвучку тестовыми тонами демо.

```bash
automontage motion narration.wav --project "Название ролика"
```

Команда копирует аудио в новый workspace, получает таймкоды через локальный faster-whisper
и создаёт односценовый draft scaffold. Это заготовка, её нужно превратить в смысловой план.
Whisper при первом запуске может скачать модель. Если установка/модель отсутствует, помоги
доустановить её; не запрашивай OpenAI API. Если распознавание прервалось после создания проекта,
исправь причину и продолжи `automontage motion --project-dir projects/<id>`.

### Необязательная ElevenLabs-озвучка

Это отдельный платный API: до вызова покажи точный script и выбранный голос, объясни,
что текст будет отправлен ElevenLabs, а стоимость зависит от аккаунта провайдера. Получи явное
согласие на передачу текста и расходы. Наличие ключа не означает согласия. Не обещай бесплатную
генерацию и не повторяй запрос ради проверки.

Ключ `ELEVENLABS_API_KEY` и приватный `ELEVENLABS_VOICE_ID` пользователь задаёт локально
в environment или `.env`. В репозитории нет ID голоса по умолчанию. Не проси ключ в чат,
не показывай его/ID в логах, props, manifest или браузере.

Только после согласия (ID может быть задан приватной переменной):

```bash
automontage motion --script script.txt --voice elevenlabs \
  --project "Название ролика" --accept-provider-cost
```

`--voice-id <voice-id>` – необязательное явное переопределение приватного ID. API возвращает
аудио и alignment; они превращаются в таймкоды слов без повторного Whisper. Результаты и кэш
живут только в игнорируемом workspace. Ключ кэша учитывает script, voice ID, модель, настройки
голоса и формат. Отсутствующие ключ/ID/согласие блокируют запрос.

Timeout, разрыв ответа или неоднозначный сбой не повторяются автоматически: запрос мог уже
стоить денег. Сохрани workspace и журнал попытки, проверь состояние у провайдера с пользователем;
не удаляй `attempt.json`, не обходи блокировку новым проектом. Повреждённый кэш требует разбора,
а не новой оплаты. При отсутствии согласия продолжи с готовым локальным аудио.

## 3. Подготовь timed motion brief

Прочитай `transcript/words.json`, сверь script и фактическую речь, длительность и конец слов.
Озвучка – источник времени. Создай полный пакет по [reference](references/brief-package.md):
сцены, экранный текст, события анимации, выбранные локальные media и музыкальные решения.
Публикуй новую Markdown+JSON draft-ревизию через `publishBriefRevision`; не переписывай историю.

Тайминги `start`/`end` – глобальные секунды от начала аудио, без пересечений и за границами
длительности; каждый край совпадает с кадром FPS brief. Планируй событие примерно раз в
1,5–2,2 секунды, используя готовые reveal-анимации. Не добавляй выдуманные timing/CSS/JS-поля.
Длинную мысль разбивай на сцены. `steps` показывает узел → соединитель → следующий узел.
`counter` заканчивается на проверенном числе; обычная полоса субтитров выключена,
необязательный `caption` используй только когда он помогает чтению.

Проверенные фото/видео и музыка должны лежать локально внутри workspace и иметь SHA-256.
Remote URL и неподтверждённый файл не подставляй в brief. Для видео явно выбери trim и звук:
`mute` по умолчанию, `mix` или `replace` только по смыслу. Motion Review сейчас только для
просмотра; его lesson-инструменты правок и Pexels-полка для этого режима недоступны.

В Creative Motion дополнительно создай ДНК дизайна, 6–10 разных визуальных конструкций для
ролика на 2–3 минуты и anti-template карту по shared reference. Не повторяй одну композицию,
не ставь одинаковые motion-механики рядом, используй современную гарнитуру с кириллицей,
реальные экраны/логотипы и поэтапно строящиеся схемы. Project-local слой должен сохранять
глобальный таймкод narration и не содержать используемого собственного звука.

## 4. Покажи настоящий preview

Во всех примерах `<id>` и `vNN` замени фактическими путями последней ревизии из `project.json`.
Команды `node scripts/...` выполняй из корня движка.

```bash
automontage preview --project-dir projects/<id> --brief brief/vNN-draft.motion.json
node scripts/qa-preview.js --project-dir projects/<id>
automontage review --project-dir projects/<id>
```

Preview проходит через настоящий `MotionReel`, содержит watermark `ЧЕРНОВИК` и сохраняется
только в `previews/`. Посмотри полный ролик, начало, steps, плотный текст, counter, media и CTA;
проверь читаемость, safe zones, звуковую синхронизацию, паузы и отсутствие обрезанных слов.
Для Creative Motion также проверь отсутствие повторяющихся композиций, пустых чёрных переходов,
обрезанных скриншотов и случайного системного шрифта.
Покажи пользователю полный preview и соответствующий пакет ТЗ. Успешный QA, Save и просмотр
не являются утверждением. После правки создай новый draft и новый полный preview.

## 5. Явное утверждение, final и QA

Только после однозначного утверждения пользователем именно показанной версии и подтверждения
полного просмотра выполни:

```bash
node scripts/project/approve-brief.js projects/<id> brief/vNN-draft.motion.json --confirm-preview-viewed
automontage motion --project-dir projects/<id> --brief brief/vNN-approved.motion.json --version-label reviewed
```

Approval связывает hashes draft, preview и narration. Только текущая зарегистрированная
approved-копия может попасть в `renders/` и `final/`; receipt нельзя составлять вручную.
Изменение script/аудио/таймингов/темы/сцен требует нового draft, preview и утверждения.
Уже утверждённые JSON bytes не редактируй, даже ради форматирования.

Движок проверяет полный decode и геометрию/FPS/длительность до публикации final. Дополнительно
посмотри и прослушай весь итог, проверь H.264/AAC, один выходной аудиопоток, громкость,
синхронизацию начала/середины/конца и отсутствие watermark. При music проверь ducking:
речь должна быть понятна. Технический PASS не заменяет визуальную и звуковую проверку.
При сбое сохраняется предыдущий final; устрани причину, не выдавай failed-версию за готовую.
Отдай ссылку на локальный файл из `manifest.final` (обычно `final/<slug>.mp4`), длительность
и краткий QA-итог.

