agentleFS
shutckinshutckin/aivfx-content-kit/skills/motion-graphics/SKILL.md

motion-graphics

Skill1 starsChanged 36 days agoMITView on GitHub

Makes motion graphics on the HyperFrames engine (HTML scenes rendered to video) with an AIVFX studio layer: name lower thirds, chapters, numbers, Shorts and Reels hooks, end cards, titles. The brand (colors, fonts, motion, durations) lives in one file, the video is a brief of scene roles, motion is set in words, and the agent renders a draft over footage and a final ProRes 4444 with alpha. Gives timing rules, 9:16 and 16:9 safe zones, lint and black-frame checks, a delivery checklist and a brand file checker. Triggers: 'lower third', 'motion graphics', 'chapter card', 'shorts hook', 'end card', 'transparent overlay', 'brand kit for motion', 'HyperFrames'. Triggers (RU): «сделай плашку», «нижняя треть», «плашка с именем», «заставка», «глава», «титры», «хук для шортс», «финальная карточка», «моушен для ролика», «графика с альфой для монтажа», «заведи бренд для графики», «сделай на хайперфреймс».

41 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use website-to-video, hyperframes-studio and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • jaron-goh-centrSkill

    website-to-video

    Capture a general website/URL and turn it into a video OF the site — tour, showcase, or social clip built from captured screenshots and the site's own brand assets. Use for portfolio / blog / docs / landing-page showcases. Not a product launch or promo, even from a URL (/product-launch-video). Unclear → /hyperframes.

    Also in 9 projects that use this

  • eyaprakSkill

    hyperframes-studio

    HyperFrames ile bir açılış hook'u (yatay 16:9 intro), dikey 9:16 Shorts ya da 16:9 animasyonlu slidedeck üretmek için hepsi bir arada studio. Ham konuşma klibini ve transcript'i (ya da bir konu/slide içeriğini) alır; koyu tema, tek marka rengi, self-hosted Manrope + JetBrains Mono fontlar ile bitmiş, oynatılabilir bir kompozisyon çıkarır (hook/shorts ayrıca 1080p/60fps MP4'e render edilir). Paket içinde tak-çalıştır starter template'ler gelir. ŞU DURUMLARDA MUTLAKA KULLAN, HyperFrames adı geçmese bile TETİKLE: hook oluştur, intro yap, video başına giriş, insanları hookta tutsun; shorts oluştur, dikey video, bu klibi shorts yap, reels; slidedeck oluştur, sunum yap, bu içeriği slide'la, yeni bir deck; ya da kullanıcı bir "-hook", "-shorts" veya "-slidedeck" klasörü açıp içine ham klip, transcript veya içerik koyduğunda. Başta AskUserQuestion ile hangi mod ve marka rengi sorulur, gerisi paketteki hazır starter'dan kurulur. Yalnızca bu üç HyperFrames video türü için kullan.

    Also in 8 projects that use this

  • jaron-goh-centrSkill

    talking-head-recut

    Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on "graphic overlays", "on-screen graphics", "package / dress up my video". Not plain subtitles (/embedded-captions). Unclear → /hyperframes.

    Also in 10 projects that use this

  • anton-abyzovSkill

    hyperframes-media

    Asset preprocessing for HyperFrames compositions — text-to-speech narration (Kokoro), audio/video transcription (Whisper), and background removal for transparent overlays (u2net). Use when generating voiceover from text, transcribing speech for captions, removing the background from a video or image to use as a transparent overlay, choosing a TTS voice or whisper model, or chaining these (TTS → transcribe → captions). Each command downloads its own model on first run.

    Also in 8 projects that use this

  • LinHao-citySkill

    bfl-api

    BFL FLUX API integration guide covering endpoints, async polling patterns, rate limiting, error handling, webhooks, and regional endpoints with Python and TypeScript code examples.

    Also in 3 projects that use this

  • LinHao-citySkill

    flux-best-practices

    Comprehensive guide for BFL FLUX image generation models. Covers prompting, T2I, I2I, structured JSON, hex colors, typography, multi-reference editing, and model-specific best practices for FLUX.2 and FLUX.1 families.

    Also in 3 projects that use this

  • +6 more from LinHao-city

The file

Files
SKILL.md

Моушен-графика для роликов

Instructions are in Russian. Respond in the user's language.

Зачем

Плашки, которые делают по одной «на глаз», расходятся уже к третьей: у одной вход снизу за полсекунды, у другой сбоку за секунду, шрифт на два кегля больше, акцент другого оттенка. Зритель этого не формулирует, но ролик выглядит собранным из чужих кусков.

Моушен студии построен на HyperFrames, и студия доработала его в свою фабрику: решения о бренде принимаются один раз и записываются в файл, ролик описывается брифом по ролям сцен, а агент превращает бриф в композиции и рендерит. Новая плашка получается такой же, как остальные, даже если её делает другой агент через месяц.

На чём работает

ИнструментЗачем он здесьЧто из чего
HyperFramesдвижок: сцена это HTML-композиция, рендер в видео, свои проверкиHTML, CSS и таймлайн GSAP → MP4, WebM или MOV ProRes 4444 с альфой
Claude Code (или аналог)агент собирает сцены по брифубриф + бренд-файл → композиции, рендер, проверки
Бренд-файлодно место для цветов, шрифтов, движения, отступовbrand.json → числа для каждой сцены
ffmpegчерновик поверх футажа, лист кадров, поиск чёрных кадровсцены с альфой + кадры ролика → превью и лист кадров
ProRes 4444финал с прозрачным фоном для монтажаMOV с альфа-каналом
DaVinci Resolve (или аналог: Premiere, Final Cut)монтаж, графика кладётся поверх роликаMOV ProRes на дорожку выше футажа

Агент пишет план, бриф, композиции и гоняет проверки; владелец утверждает план и черновик; тексты (имена, цифры) дают владелец или клиент.

HyperFrames это открытый движок от HeyGen: https://hyperframes.heygen.com. Композиция там это HTML-файл с атрибутами data-* для времени, таймлайном GSAP для анимации и CSS для вида. Нужны Node.js 22 или новее и ffmpeg.

Что даёт сам HyperFramesЧто добавила студия
композицию HTML с дорожками и таймингом сценбренд-файл: цвета, шрифты, движение, отступы; правила бренда печатаются перед каждым рендером
hyperframes init, preview со студией в браузеребриф ролика по ролям сцен вместо ручной вёрстки каждой композиции
hyperframes render: MP4, WebM и MOV ProRes 4444 с прозрачностью (--format mov), --quality draftбиблиотеку ролей и шаблонов: роль переводится в шаблон конкретного бренда, один бриф собирается в стиле любого бренда
hyperframes lint, check и validate: ошибки разметки и таймлайна, ошибки в браузере, пропавшие файлы, контраст текстачерновик поверх настоящего футажа и контактный лист кадров вместо оценки на чёрном
hyperframes add: готовые блоки и эффекты из реестрасравнение финала с черновиком по тёмным кадрам и поиск чёрных кадров
hyperframes doctor: проверка окруженияcheck_brand.py: проверка бренд-файла до первой сцены
--docker для одинакового результата на разных машинахлокальные шрифты, встроенные в композицию, и локальный GSAP, имена файлов по сценам

Принципы ниже переносятся и на другие движки, которые превращают код в видео.

Когда включать

Графика в ролик (имя спикера, глава, цифра, финальная карточка), хук для Shorts и Reels, прозрачные оверлеи для монтажа, новый бренд для графики.

Не включай для полноэкранных промо-роликов на 10-25 секунд со своим сюжетом: там нужна раскадровка под темп музыки, одна своя композиция на ролик, а роли сцен только мешают. Раскадровку роликов делает shot-list, обложки к статьям article-cover, стиль генеративных кадров film-look.

Три файла вместо одного большого

  1. Бренд-файл brand.json: цвета, шрифты, размеры текста, словарь движения, длительности ролей, отступы и безопасные зоны. Один на бренд, меняется редко. Образец с вымышленным брендом и комментарием к каждому полю: templates/brand.example.json.
  2. Бриф ролика scenes.json: список сцен по ролям. Только смысл и тексты, ни одного цвета и ни одного числа движения. Образец: templates/scenes.example.json.
  3. Шаблон роли: на каждую роль одна композиция HyperFrames, которая читает бренд и сцену и подставляет числа. Свои шаблоны пишешь сам, это небольшая работа на роль. Хороший старт: hyperframes init и готовые блоки из реестра через hyperframes add.

Главное правило: цвет, шрифт или скорость, которые нужны одной сцене, но не записаны в бренде, это сигнал. Либо дописать в бренд для всех, либо отказаться. Подкрутка «только здесь» и есть то, что разваливает систему. Нужен новый вид: заводи новый шаблон, а не правь общий под один проект.

Как завести бренд-файл

  1. Скопируй templates/brand.example.json в проект как brand.json.
  2. Возьми цвета с сайта или из гайдлайна бренда. Нет гайдлайна: спроси владельца про фон, основной текст и акцент. Не придумывай фирменные цвета за клиента.
  3. Каждому цвету дай одно значение: фон, текст, вторая строка, акцент. Если не можешь назвать, зачем цвет нужен, он лишний. Пять активных цветов это потолок.
  4. Шрифты: один для заголовков и цифр, один для подписей, можно один на всё. Только санс или сериф. Моноширинные и пиксельные шрифты не используем нигде, включая цифры, даты и метки. Цифры набирай сансом с ровными по ширине цифрами: в CSS font-variant-numeric: tabular-nums. Счётчик перестаёт прыгать, а шрифт остаётся живым.
  5. Шрифты встраивай в композицию (файлом из проекта или прямо в CSS). Шрифт из интернета может не догрузиться в момент рендера, и кадры уйдут системным шрифтом. То же с GSAP: держи его локально, загрузка из сети может отвалиться посреди рендера.
  6. Запиши в rules ограничения бренда словами: как использовать акцент, можно ли вводить новые цвета, откуда брать факты. Агент читает их перед каждой сборкой, иначе они теряются между сессиями.
  7. Прогони проверку:
python3 scripts/check_brand.py brand.json

Скрипт ищет обязательные поля, цвета не в hex, контраст текста к фону ниже 4.5:1, моноширинные и пиксельные шрифты, текст мельче 28 пикселей на кадре 1080, длительности вне разумных пределов и безопасные зоны, которые не закрывают интерфейс площадки. Код выхода 1 при нарушениях.

Роли сцен

Описывай роль, а не шаблон. Роль говорит, зачем сцена нужна, а шаблон под неё выбирает бренд. Смени бренд, и та же роль соберётся в другом стиле без переписывания брифа.

РольЗачемПоляФонДлительность
hookпервые 1-3 секунды Shorts, удержать палецtitle (3-6 слов), subtitle по желаниюсвой, полный кадр2-3 с
nameкто говорит в кадреtitle (имя), subtitle (кто он)прозрачный3-5 с
chapterсмена смыслового блокаlabel (номер), titleсвой или прозрачный2.5-4 с
numberодна цифра, которую надо запомнитьvalue, unit, noteпрозрачный3-4 с
endcardфинал: имя, сайт, что делать дальшеtitle, meta, логотипсвой, полный кадр4-6 с

Короткий факт, угловая заметка или перечисление с разделителями тоже бывают ролями (fact, note, list). Новую роль заводи, когда одна и та же задача встретилась хотя бы второй раз, а не под одну сцену.

Место в кадре at: bl, br, tl, tr, left, right, center. Плашка с именем почти всегда снизу слева, на стороне, противоположной взгляду спикера.

Тексты только из брифа. Имена, должности, цифры и адреса не выдумываются: нет данных, спроси. Ошибка в фамилии на плашке видна каждому зрителю.

Движение словами

В сцене движение описывают как режиссёр, а не как программист:

линия акцента прочерчивается слева, имя поднимается за ней, должность проявляется следом; держится; всё уходит вниз одним движением

Агент переводит это в числа бренда и в твины GSAP: «поднимается» это сдвиг на motion.travel_px за motion.enter_sec с торможением ease_enter, «следом» это пауза stagger_sec, «уходит» это exit_sec. Если в описании нет нужного слова, бери умолчания бренда, а не придумывай скорость.

  • Одна мысль на сцену. Если сцена говорит две вещи, это две сцены.
  • Сначала финальный кадр, потом движение. Сверстай сцену в момент, когда всё уже на месте, и только потом добавляй вход и выход. Так наложения видны до рендера.
  • Вход медленнее выхода. Появление с торможением, уход с разгоном и примерно вдвое быстрее. Зритель следит за входом, выход ему не нужен.
  • Одно направление на ролик. Вошло снизу, ушло вниз или вверх по той же оси. Хаос направлений читается как монтажная ошибка.
  • Не больше двух приёмов в сцене. Сдвиг и проявление уже достаточно. Вращение, отскок и размытие разом это демо-ролик движка.
  • Короткие расстояния, элементы по очереди. Сдвиг на 30-60 пикселей выглядит дорого, через полэкрана дёшево. Линия, потом имя, потом подпись.
  • Хук по словам, а не по буквам. Побуквенно медленно и мешает читать.
  • Финал держится неподвижно 3-4 секунды, иначе его не успевают прочитать.
  • Без случайностей в коде. Случайные числа и текущее время дают разную картинку при каждом рендере. Разброс бери формулой от номера элемента.

Тайминг и читаемость на телефоне

  • Текст держится неподвижно не меньше min_hold_sec после полного появления.
  • Время на чтение: около 0.3 секунды на слово плюс время входа. Плашка из шести слов меньше трёх секунд не живёт.
  • Текст среднего размера. Огромный заголовок на весь экран кажется криком.
  • Короткая сторона 1080 пикселей: заголовок 64-110, подпись не меньше 40, метка не меньше 28. Мельче на телефоне не читается.
  • Строка до 25-30 знаков. Длинную разбей на две по смыслу, не по ширине.
  • Текст поверх футажа всегда на подложке, тени или затемнении. Контраст 4.5:1 считается к подложке, а не к пустому фону.
  • Акцент на одно слово или одну линию. Залитый акцентом абзац не читается.
  • Таймлайн сцены должен заполнять её слот целиком: в конце добавь пустой твин на всю длительность сцены. Иначе HyperFrames скрывает сцену раньше, и в ролике мелькает чёрный кадр.

Безопасные зоны

Площадки закрывают часть кадра своим интерфейсом. Числа для кадра с короткой стороной 1080, перепроверь на свежем скриншоте площадки.

9:16 (1080x1920, Shorts, Reels, TikTok): сверху около 250 пикселей (ник, кнопки), снизу около 400 (подпись, музыка, прогресс), справа около 140 (лайки и комментарии), слева около 60. Хук и важный текст ставь в центральную полосу. Плашка с именем в вертикали поднимается выше обычного.

16:9 (1920x1080, YouTube, горизонтальный монтаж): по бокам около 96 пикселей, сверху 54, снизу около 96. В последние 5-20 секунд YouTube ставит конечные заставки, финальную карточку строй с местом под них.

Зоны живут в бренд-файле, сцену проверяй наложением рамки на черновой кадр.

Рендер

  • Черновик: hyperframes render --quality draft, в разы быстрее финала. Им проверяют всё, финал рендерят один раз.
  • Обычное видео (MP4, H.264): хук, финал и всё, что стоит полным кадром. Альфа там только утяжеляет файл.
  • Прозрачный фон для монтажа: плашки, главы поверх футажа, цифры. HyperFrames сам рендерит MOV ProRes 4444 с альфой (--format mov) для DaVinci Resolve, Premiere и Final Cut, для веба есть WebM с альфой (--format webm). MP4 альфу не хранит. Полнокадровую графику для монтажа можно перегнать ffmpeg в ProRes 422 HQ, она легче.
  • Против полос на градиентах: лёгкое зерно (texture.grain) и ProRes-мастер.
  • Не включай захват кадров в PNG (--video-frame-format png): в проверке студии он проваливал тёмные участки в чёрное.
  • Имена файлов латиницей по сценам: name-01-sokolova.mov.

Черновик поверх футажа до финала

На чёрном фоне всё выглядит нормально. Проблемы видны только на настоящей картинке: плашка закрыла лицо, белый текст ушёл в окно.

  1. Рендер сцен в черновом качестве с прозрачным фоном.
  2. ffmpeg накладывает их на кадры или куски настоящего ролика (preview_bg в брифе: файл, видео или папка кадров, сценам раздаются по кругу) и склеивает в одно превью.
  3. Лист кадров: начало, середина и конец каждой сцены одной картинкой.
  4. Просмотр глазами и показ владельцу с нумерованным списком сцен, чтобы ответ был одним словом. Прошедший lint не значит, что дизайн работает.

Проверки

  • hyperframes lint после каждого нового шаблона, перед показом hyperframes check (lint, ошибки в браузере, раскладка и контраст текста одним прогоном), hyperframes doctor, если рендер падает. Lint ловит реальные баги: полноэкранный слой без нулевой прозрачности на старте засвечивает первые кадры; центрирование через translate(-50%,-50%) вместе с твином по y сбивается в конце, центруй flex-обёрткой.
  • Поиск чёрных кадров в черновике и финале: ffmpeg снимает яркость кадров, полностью чёрный кадр на стыке значит пропавшую сцену или замёрзшее видео. У каждого видео внутри композиции должен быть свой id, иначе кадр замирает.
  • Сверка финала с черновиком по тёмным кадрам: доля провалившихся в чёрное пикселей не должна вырасти.

Порядок работы

  1. Бренд: есть brand.json? Нет, заведи и проверь скриптом.
  2. План: пронумерованный список сцен с ролями, текстами, форматом и длительностью. Показать план, а не видео:
Бренд: Fjord Lab, 16:9, альфа для плашек

01. name / bl / альфа: «Мария Соколова» · «Инженер по звуку», 4 с
02. chapter / альфа: «Глава 2» · «Как мы пишем тишину», 3 с
03. number / right / альфа: 48 часов · «на запись одного эпизода», 3.5 с
04. endcard / MP4: «Fjord Lab» · fjordlab.example, 5 с
  1. Бриф scenes.json по утверждённому плану.
  2. Композиции по ролям, hyperframes lint.
  3. Черновик поверх футажа, лист кадров, поиск чёрных кадров, показ.
  4. Правки словами («третью короче», «имя крупнее») правятся в брифе, общие («все плашки медленнее») в бренде.
  5. Финальный рендер, ProRes 4444 для прозрачных сцен, сверка с черновиком, выдача файлов в папку под монтаж.

Типичные ошибки

  • Цвет или скорость прямо в сцене. Через пять роликов в проекте пять разных акцентов. Всё визуальное только в бренде.
  • Оценка графики на плоском фоне. Плашка «отлично смотрится» до первого светлого кадра.
  • Хук в нижней трети вертикали. Его закрывает подпись площадки.
  • Моноширинный шрифт для цифр «для техничности». Запрещён: выглядит как консоль, а не как ролик. Те же ровные цифры даёт санс с tabular-nums.
  • Логотип на каждой плашке и подписи канала по краям. Бренд узнают по системе, а края закроет площадка. Логотип в финале.
  • Финал сразу, без черновика. Финальный рендер в разы дольше, а правки всё равно будут.
  • Одинаковый звук на каждое слово. Щелчок подряд раздражает к третьему.

Чек-лист сдачи

  • check_brand.py прошёл без ошибок, hyperframes lint чистый.
  • В брифе нет цветов, шрифтов и чисел движения, только смысл.
  • Тексты сверены с брифом, имена и цифры не выдуманы.
  • Каждая сцена говорит одну мысль, текст держится не меньше min_hold_sec, таймлайн заполняет слот сцены.
  • Текст и логотип внутри безопасных зон нужного формата.
  • Черновик собран поверх настоящего футажа, лист кадров просмотрен, чёрных кадров нет.
  • Плашки и главы в ProRes 4444 с альфой, хук и финал обычным видео.
  • Тёмные кадры финала сверены с черновиком, полос и пятен нет.
  • Шрифты и GSAP встроены локально, моноширинных шрифтов нет.
  • Файлы названы латиницей по сценам, план и черновик утверждены владельцем. Отправка клиенту или публикация только по его прямому слову.

Первыми устаревают размеры интерфейса площадок, флаги HyperFrames и поддержка альфы в редакторах. Факты проверены на октябрь 2026.

Глубже

Код фабрики, библиотека шаблонов и бренд-паки студии не выложены. Полные шаблоны ролей, разборы реальных роликов и настройку системы под команду студия AIVFX показывает в работе и в обучении: https://aivfx.ru.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.