persian-motion-director — скилл
Скилл для Claude о моушен-дизайне с корректным персидским: восемь приемов, шейпинг HarfBuzz для букв и точек, линтер текста и кода
- 152 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Скилл запускает скрипты Python и Node.js и пишет файлы роликов в проект
- Рендер Remotion ставит зависимости из npm и нагружает процессор
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/persian-motion-directorОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Скилл запускает скрипты Python и Node.js и пишет файлы роликов в проект
- Рендер Remotion ставит зависимости из npm и нагружает процессор
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
persian-motion-director учит Claude режиссировать анимацию. Скилл исходит из двух типичных провалов сгенерированного видео: оно похоже на слайд-шоу, а персидский текст ломается при анимации. Буквы расползаются, точки обрезаются, вместо персидских знаков вылезают арабские, пропадают полупробелы, текст раскрывается не в ту сторону. Рабочий цикл такой: сначала показать направления до сборки, зафиксировать музыку, монтировать по долям, вести одну движущуюся камеру. В скилле восемь рабочих приемов: одна камера без склеек, одна форма на всю историю, живой интерфейс справа налево, монтаж на долю, рисунок на двойках с дрожащей линией, буквы из бумаги, точки в конце и кашида вместо разрядки. Каждый прием написан обычным JavaScript как чистая функция времени, поэтому код идет и в браузере, и покадрово в Remotion. К скиллу приложены скрипты: shape_persian.py режет слово на тела букв, точки и соединенные группы через HarfBuzz, split_fa.js делит слово с сохранением формы соединения, lint_persian.py проверяет текст и код. Правила персидской типографики основаны на требованиях W3C к арабской и персидской верстке.
Для кого. Моушен-дизайнерам и разработчикам, которые делают ролики и анимацию с персидским или другим RTL-текстом в Remotion или на веб-коде.
Подходит, если
- Нужен 30-секундный тизер приложения на персидском с монтажом под музыку
- Анимация выглядит как слайд-шоу, и ее надо довести до профессионального вида
- Персидский заголовок при анимации распадается на отдельные буквы
- Прежде чем собирать ролик, надо показать восемь направлений на выбор
Не подходит, если
- Видео без персидского и RTL-текста: скилл заточен под эту типографику
- Нужна готовая видеомонтажная программа: скилл дает приемы и код, а сборку ведет агент
- Нужна лицензионная музыка: в репозитории лежит собственный трек автора и карта долей
Пример запроса к агенту
Сделай 30-секундный персидский тизер моего приложения в Remotion с монтажом под музыку и сначала покажи восемь направленийОграничения
Для шейпинга нужны Python с uharfbuzz и fonttools, для покадрового рендера Remotion. Включен шрифт Vazirmatn под лицензией OFL. Приемы взяты из публичных обсуждений моушен-дизайнеров, а правила персидского проверены в Chrome, то есть в движке Remotion. Лицензия репозитория в метаданных GitHub не определена, поэтому перед коммерческим использованием материалов проверьте файл LICENSE. Приемы описаны на примерах из Remotion и браузерного JavaScript, поэтому для других инструментов анимации их придется переносить самостоятельно.
Как отключить. Удалите папку persian-motion-director из ~/.claude/skills или из .claude/skills проекта. Созданные ролики и код остаются в проекте.
Частые вопросы
Какие восемь приемов в скилле?
Одна камера без склеек, одна форма на всю историю, настоящий интерфейс справа налево, монтаж на долю, рисунок на двойках с дрожащей линией, буквы из бумаги, точки в конце и кашида. Для каждого есть живой скетч в assets/sketches и клип для Remotion.
Что проверяет lint_persian.py?
Текст на арабские буквы ي и ك вместо персидских, цифры, полупробелы и знаки препинания, а код на коробки вокруг букв, `letter-spacing` и затухания. Запуск: `python3 scripts/lint_persian.py copy copy.txt` или `python3 scripts/lint_persian.py code src/`.
Зачем нужна кашида?
Анимация растягивает соединительный штрих между буквами, и это сохраняет форму слова. Прием 08 измеряет растяжку в каллиграфических точках.
Работает ли скилл без Remotion?
Да, скетчи запускаются в браузере: cd assets/sketches && python3 -m http.server 8000. Remotion нужен для покадрового рендера и сборки клипов.
Когда Claude подхватывает скилл?
Когда вы просите анимацию или ролик с персидским, фарси, арабской вязью или RTL-текстом, а также когда жалуетесь, что движение выглядит как слайд-шоу, дефолтно или не профессионально.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыДевять скиллов по моушн-дизайну для Claude Code: тайминг, цвет, композиция, After Effects, Remotion, логотипы и фоны.
Скилл Claude Code делает из строки с темой шоурил на HyperFrames: тайминг по битам, переходы-морфы и звук, написанный кодом.
Набор для моушн-дизайна с агентом: правила с цифрами, самопроверка по кадрам и синтез звука, плюс веб-симуляции в 60 к/с
Скилл для Claude Code делает на Remotion ролик о вашем продукте из его компонентов, токенов дизайна и логотипа, с музыкой в такт
Скилл делает из одной фразы motion-ролик на 12–60 секунд целиком кодом: цвета, шрифты, раскадровка и музыка выводятся из брифа.
Скилл для Claude Code и Codex: делает кинематографичные продуктовые видео на Remotion из карточек-рецептов кадров, готового шаблона и аудиоресурсов
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| persian-motion-director (эта карточка) | нет | 152 | |
| Motion Design Skill | нет | 2 980 | общий моушен-дизайн без работы с персидской типографикой |
| HyperFrames | нет | 83 283 | сборка роликов из HTML без правил для RTL-текста |
| Framer Motion AI Skills | нет | 10 | анимации интерфейса на Framer Motion, видеороликов тут нет |
Коротко о README
README называет два провала сгенерированной анимации и дает восемь приемов в таблице с превью. Дальше описаны состав репозитория (SKILL.md, `references`, `scripts`, `assets`), установка в личные скиллы Claude Code или в .claude/skills проекта, примеры запросов и запуск живых скетчей и клипов Remotion.
Бейдж для README
Исходный SKILL.md
--- name: persian-motion-director description: Direct and build professional motion design (promo and launch films, kinetic typography, animated explainers, social clips, title sequences) with correct Persian/Farsi and right-to-left typography, in Remotion or plain web code. Use this skill whenever the user wants a video, animation, motion graphics, teaser or animated text that contains Persian, Farsi, Arabic-script or RTL text, and whenever they say a motion piece looks "default", "like a slideshow", "AI-made" or "not pro", or that the Persian looks off, broken or disconnected, even if they never say "motion design". It brings the anti-slideshow method (one camera, objects that carry across scenes, music-first beat-locked edits), eight ready techniques with live sketches, HarfBuzz tooling for per-letter and per-dot Persian animation, kashida stretching, and a Persian correctness checklist and linter. --- # Persian Motion Director You are directing, not just animating. Most generated motion fails in two predictable ways: it plays like a slideshow (scenes that fade into each other, one ease-in-out on everything, everything arriving at once), and its Persian is broken (letters split apart, dots clipped, Arabic letters and digits, missing half-spaces, left-to-right reveals). This skill fixes both. The method comes from how professional motion designers describe their own work on X; the Persian rules come from W3C's Arabic & Persian Layout Requirements and were checked in Chrome (the engine Remotion renders with). ## The director's loop Work in this order. Each step exists because skipping it is how pieces end up looking default. 1. **Read the brief and fill only real gaps.** Copy (Persian and any Latin), length, aspect ratio, brand colours and fonts, where it will be posted, music. If a brand exists, use its palette and fonts instead of inventing one. 2. **Show directions before building.** Motion is subjective and expensive to redo. Pick 6–10 techniques from the library below that fit the brief, open `assets/sketches/gallery.html` (or render the clips) and let the user choose. Rework after a full build costs ten times more than a pick list. 3. **Music first.** Lock the track and its tempo before animating. Build a bar map: which section lives on which bars. If there's no track, compose one (`assets/music/compose_shur_pulse.py` is a working example that writes `beats.json`) or ask for one. At 120 BPM one beat is 0.5 s and one bar 2 s; at 60 fps a beat is 30 frames. 4. **Write the shot list on the bar grid** (template in `references/workflow.md`). Every section change lands on a downbeat; every cut on a beat or 2 frames before it. 5. **Style frames.** Render 4–6 stills (`assets/remotion/render-stills.mjs`) and get a yes before animating everything. 6. **Build** in Remotion with one camera container and shared objects (see `assets/remotion/src/intro/Intro.tsx` for a complete worked example). 7. **Check**, then render: run `scripts/lint_persian.py` on all copy, review stills at full size for clipped dots and broken joins, scrub every cut against the beat, and make loops exact (clip length = a whole number of loops). ## What separates pro motion from a slideshow | Slideshow habit | What to do instead | |---|---| | Scenes chained with fade transitions | One camera travels between scenes, or one object carries into the next scene. Never `fade()` scene to scene. | | The same ease-in-out on everything | Each move gets its own curve. Entrances: `bezier(.16,1,.3,1)` over ~20 frames. Exits: `bezier(.7,0,.84,0)` over ~8 frames, travelling only ~70% as far. | | Everything arrives together, evenly spaced | One lead element, the rest 2–4 frames behind, spaced on a curve rather than evenly. | | Remotion's default bouncy `spring()` (overshoots ~16%) | Under 2% overshoot on UI, none on text: stiffness 100 / damping 16 gives ~1.5%. | | Music laid on at the end | Music first; cuts on the beat; sound attacks placed on the visual hits. | | Centered text on a gradient, logo at the end | Show the real product doing a real task in the first 10 seconds. | | Freezes, or motion that never pauses | Hold long enough to read; only the camera breathes (zoom 1.00 → 1.04 per scene). | | Grain, halftone or ASCII as a finish | Texture only with a physical reason (paper, print, light). These finishes are now the AI default. | More numbers and the sources behind them: `references/anti-slideshow.md`. ## Persian non-negotiables Read `references/persian-typography.md` before writing any Persian into a frame. The short version: 1. **Never put Persian letters in their own boxes.** `inline-block` spans, flex children (including direct children of Remotion's `<AbsoluteFill>`, which is a flex box) and any per-letter transform draw each letter in its isolated form. Animate whole words or lines. When you truly need per-letter or per-dot motion, use shaped outlines (`scripts/shape_persian.py`) or zero-width-joiner splitting (`scripts/split_fa.js`). 2. **Fade words, not letters.** Joined letters overlap; per-letter opacity or see-through text colour leaves seams at every join. 3. **Masks need slack.** Persian reaches far above and below Latin: pad clip masks by about 0.5em top and bottom, use line-height ≥ 1.6 (≥ 2.4 for Nastaliq), or the dots and the top of گ get cut. 4. **Direction.** `dir="rtl" lang="fa"` on every Persian block; wrap Latin names and numbers in `<bdi>` (or FSI/PDI) or the line scrambles. Reveals and staggers start on the right, camera progress travels left, "next" arrows point left. Play buttons, clocks and numbers are never mirrored. 5. **Characters.** Persian ی (U+06CC) and ک (U+06A9), never Arabic ي/ك; Persian digits ۰–۹ (U+06F0–06F9), never Arabic-Indic ٠–٩; the half-space (ZWNJ, U+200C) in می, ‑ها, ‑تر/‑ترین; punctuation ، ؛ ؟ « ». `scripts/lint_persian.py` catches these.