# Motion Graphics > Úsalo para motion graphics cortos guiados por diseño donde el movimiento es el mensaje: tipografía cinética, contadores, stings de logo, rótulos y superposiciones, en MP4 o con fondo transparente. Fuente: https://skillsagentes.com/skills/calesthio/openmontage/motion-graphics Markdown: https://skillsagentes.com/skills/calesthio/openmontage/motion-graphics.md Repositorio: https://github.com/calesthio/OpenMontage Autor: calesthio Licencia: AGPL-3.0 Actualizado: el mes pasado Coste de contexto: 205 tok instalada, 3.4k tok al activarse, 27.5k tok con todos los archivos del bundle Bundle: 23 archivos, 108 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add calesthio/OpenMontage --skill motion-graphics --agent claude-code # Cursor npx -y skills add calesthio/OpenMontage --skill motion-graphics --agent cursor # Codex npx -y skills add calesthio/OpenMontage --skill motion-graphics --agent codex # Gemini CLI npx -y skills add calesthio/OpenMontage --skill motion-graphics --agent gemini # Windsurf npx -y skills add calesthio/OpenMontage --skill motion-graphics --agent windsurf # Cline npx -y skills add calesthio/OpenMontage --skill motion-graphics --agent cline ``` ## Qué hace - Orquesta piezas cortas de motion graphics donde el movimiento es el mensaje, normalmente de menos de 10 segundos y hasta unos 30 - Cubre tipografía cinética, contadores de cifras, golpes de dato, stings de logo, lockups de marca, rótulos, llamadas y superposiciones sociales - Ejecuta un flujo por pasos: inicializar, planificar, obtener activos con media-use, diseñar, construir, renderizar y verificar - Delega la planificación, el diseño y la construcción en subagentes con un contrato por categoría - Renderiza a MP4 o a superposición transparente en webm o mov ## Cuándo usarla - El usuario quiere un motion graphic corto guiado por diseño - Tipografía cinética, visualización de datos, revelado de logo o rótulos - Titular, tuit o noticia animada, póster en movimiento o resalte rápido de una página capturada ## Cuándo no - Piezas largas, multiescena, narradas o reels de marca: usa `general-video` - Vídeos de web narrados, explicativos de tema, promos de producto o vídeos de PR: usa el workflow específico - Subtítulos sobre metraje existente: usa `embedded-captions` ## Qué la activa - "Hazme un sting de logo de 5 segundos" - "Necesito tipografía cinética para esta frase" - "Anima este dato con un contador" - "Créame un rótulo inferior transparente" ## Antes de instalar - Requiere el ecosistema HyperFrames y `media-use` para resolver activos cuando el plan los pide; si dudas entre pieza corta y tratamiento narrado, consulta `/hyperframes`. - Necesita en el PATH: node, npx - Variables de entorno: MOTION_GRAPHICS_DIR, PROJECT_DIR - reads environment config ## Archivos - SKILL.md — 13 KB - agents/builder.md — 3 KB - agents/director.md — 6 KB - agents/finalize.md — 1 KB - catalog-map.md — 10 KB - categories/asset-fusion/module.md — 4 KB - categories/charts/module.md — 2 KB - categories/kinetic-type/module.md — 2 KB - categories/logo-reveal/module.md — 1 KB - categories/lower-thirds/module.md — 1 KB - categories/maps/bake-basemap.mjs — 14 KB - categories/maps/module.md — 9 KB - categories/news/module.md — 5 KB - categories/stat/module.md — 1 KB - categories/tweet/module.md — 1015 B - categories/webpage/module.md — 2 KB - grounding/PROTOCOL.md — 3 KB - grounding/locate.mjs — 8 KB - phases/source/guide.md — 2 KB - references/builder-contract.md — 3 KB - references/motion-vocabulary.md — 3 KB - references/shot-plan-ir.md — 3 KB - samples/asset-fusion/_ref-circle-highlight.html — 10 KB ## SKILL.md Reproducido tal cual desde calesthio/OpenMontage bajo AGPL-3.0. Esta sección es el documento original y está en inglés. # motion-graphics — dispatch entry > **Confirm the route before Step 0.** This skill makes a **short, design-led, unnarrated motion graphic** (motion is the message; ~under 10s, no voice-over). A **longer, multi-scene, or narrated** treatment → `/general-video`; a **narrated video of a website** → `/website-to-video`; a **topic explainer** → `/faceless-explainer`; a **product promo** → `/product-launch-video`; **captions on existing footage** → `/embedded-captions`. **Out of scope**: live / at-render-time data, or footage it can't capture. Unsure motion-first-vs-narrated? **Read `/hyperframes` first.** A short design-led motion graphic. **Asset-first**: decide the asset strategy and source real material _before_ designing the shot, then design the shot around what you have, then compose by reusing catalog capabilities. All artifacts go to `PROJECT_DIR = videos//` (created in Step 0); all paths below are relative to it. | Phase | Execution | Primary artifact | Detailed flow | | -------- | --------------------------------------------------------------------- | ---------------------------------------------------------------- | ----------------------------- | | init | Bash | `hyperframes.json` | Step 0 | | plan | subagent — **decide search?** + classify + asset strategy | `shot-plan.json` (draft: category, `asset_needs` queries, brief) | `agents/director.md` (Part 1) | | source ◇ | Bash — media-use resolve (**skip if `asset_needs` is empty**) | `assets/` + `assets/index.md` | `phases/source/guide.md` | | design | subagent — shot design around resolved assets | `shot-plan.json` (final: block(s) + layout + motion + positions) | `agents/director.md` (Part 2) | | build | subagent — reuse-first composition | `compositions/index.html` | `agents/builder.md` | | render | Bash — `hyperframes render` (MP4, or `--format webm/mov` for overlay) | `renders/video.mp4` | Step 5 | | verify | Bash — `lint` / `inspect` -> repair subagent on failure | (fixes in place) | `agents/finalize.md` | `◇ source` runs only when the chosen category declares assets. Pure code/text categories (e.g. `kinetic-type`, most `charts`/`stat`) have `asset_needs: []` and skip straight from plan to design. ## Categories — split by the search decision `plan`'s **first decision is: does this need a search?** That fork splits the categories into two groups; then the specific category is picked — for search-driven, **by the type of content the search returns**. Each category is one `categories//module.md` (its planning + build rules); the shared motion vocabulary lives in `references/motion-vocabulary.md` (→ `hyperframes-animation` rules/blueprints + registry blocks). **Form categories — no search; the user supplies the content:** | Category | Intent | Leans on | | -------------- | ---------------------------------------------- | --------------------------------------------------------------------------- | | `kinetic-type` | punchy line / quote / title, motion-first text | `caption-*` blocks + animation rules | | `stat` | single hero number / count-up + ring | `apple-money-count` / `rules/{counting-dynamic-scale, stat-bars-and-fills}` | | `charts` | bar / line / pie / race / % from data | `data-chart` block | | `logo-reveal` | logo sting / brand lockup (user logo) | `logo-outro` / `rules/svg-path-draw` | | `lower-thirds` | name / title bars, callouts, social overlays | `caption-*` + registry overlay blocks | **Search-driven categories — search first, then animate by content type** (the RWA path): | Returned content | Category | Animation | | ---------------- | -------------- | -------------------------------------------------------------- | | webpage / link | `webpage` | webpage / UI animation (scroll, reveal, cursor, callouts) | | news article | `news` | headline reveal + source card + key-fact callouts | | tweet | `tweet` | animated tweet card | | image / entity | `asset-fusion` | the asset's geometry _becomes_ the chart (RWA diegetic fusion) | Build order: one at a time, coverage-first (rough is fine). `kinetic-type` ported from the prototype; the rest follow. ## Prerequisites macOS Apple Silicon or Linux x64. System tools: `brew install node ffmpeg`. `npx hyperframes doctor` once. macOS GPU render: `export PRODUCER_BROWSER_GPU_MODE=hardware`. Optional keys (local fallbacks if unset) — only needed by categories that source/generate assets via media-use: | Key | Used for | Fallback | | ----------------------------------- | ----------------------------------------------------------- | ------------------------------- | | `GEMINI_API_KEY` / `GOOGLE_API_KEY` | image generation (media-use resolve) | skip generate / search-only | | (asset_scout / search providers) | `webpage`/`news`/`tweet` + `asset-fusion` real-asset search | category degrades to asset-free | ## Flow ### Step 0 — Initialize cwd is the agent workspace root; write all artifacts under `PROJECT_DIR = videos//`. ``: use the dir the user gave, else a short kebab-case name from the intent (`-motion`). Not the workspace basename or a timestamp. Only when `$PROJECT_DIR/hyperframes.json` is absent: ```bash PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/}" mkdir -p "$(dirname "$PROJECT_DIR")" npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank ``` `init` checks the installed skills against the latest on GitHub and updates the global set if any are out of date. **Constraints:** never `hyperframes init` in the workspace root; never nest another `hyperframes/` inside `PROJECT_DIR`; every Bash command (master + subagents) is a `(cd "$PROJECT_DIR" && ...)` subshell — never bare `cd`. ### Step 1 — Plan (subagent: Director Part 1) Dispatch one subagent. prompt = full `agents/director.md` + `## Dispatch context` (`SKILL_DIR` / `PROJECT_DIR` / the user's request / `Schema: /references/shot-plan-ir.md`). It must: 1. **Decide: does this need a search?** (the first fork) - **No** → pick a **form category** (kinetic-type / stat / charts / logo-reveal / lower-thirds); content is user-supplied; `asset_needs: []`. - **Yes** → emit a **search plan** into `asset_needs[]` (news / web / tweet / image; two-pole queries). The specific **search-driven category** (webpage / news / tweet / asset-fusion) is confirmed by the content type returned in Step 2, and finalized in Step 3. 2. Write a draft `shot-plan.json` (envelope + chosen form category _or_ search intent + `asset_needs` + a one-paragraph shot brief). Schema: `references/shot-plan-ir.md`. Validation: `[ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing`. ### Step 2 — Source ◇ (Bash: media-use, conditional) If `shot-plan.json.asset_needs` is non-empty, resolve assets (search / generate / fetch → frozen project-local paths + ledger). See `phases/source/guide.md` (wraps `media-use resolve`; the search-driven categories use the news/web/tweet/image search). If `asset_needs` is empty, **skip to Step 3**. ```bash # illustrative — see phases/source/guide.md (cd "$PROJECT_DIR" && node /phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets) ``` Degrade gracefully: if a search/provider is unavailable, the category falls back to asset-free (note it in `context.log`). ### Step 3 — Design (subagent: Director Part 2) Dispatch a subagent (prompt = `agents/director.md` Part 2 + dispatch context including the resolved `assets/index.md` if Step 2 ran + `catalog-map.md`). It designs the shot **around the available assets**: pick the catalog block(s) + the `hyperframes-animation` rules/blueprints, the layout, the motion, beats, and (for `asset-fusion`) the `element_positions` + eyedropper palette. Finalizes `shot-plan.json` (`content.block` + `content.customize` + per-category content). ### Step 4 — Build (subagent: Builder, reuse-first) Dispatch a subagent. prompt = full `agents/builder.md` + dispatch context (`shot-plan.json`, `catalog-map.md`, the category's `module.md`, `references/motion-vocabulary.md`, `references/builder-contract.md`). **Reuse-first**: `npx hyperframes add ` + customize in place; hand-author only gaps + the asset-fusion affordance. Output `compositions/index.html` honoring the HF contract (paused GSAP timeline on `window.__timelines`, `class="clip"` + stable ids, `tl.seek(0)`, deterministic). ### Step 5 — Render (Bash) ```bash (cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q draft -o ./renders/video.mp4) # transparent overlay variant: --format webm (or mov) ``` ### Step 6 — Verify (Bash → repair subagent on failure) ```bash (cd "$PROJECT_DIR" && npx hyperframes lint . && npx hyperframes inspect .) ``` exit 0 → done. On lint/inspect errors, dispatch the repair subagent (`agents/finalize.md`: snapshot QA + one in-place fix pass + re-render). Never change a fixed duration in repair. ### Report + optional preview Report the final output (`renders/video.mp4`, or the `.webm` / `.mov` overlay variant) + duration. **Don't open a preview during the run.** Offer one only on request, started **after** render so it serves the final file: ```bash (cd "$PROJECT_DIR" && npx hyperframes preview) # Studio UI; or `npx hyperframes play` for a shareable link ``` Flags live in the `hyperframes-cli` skill (`references/preview-render.md`). ## Resume table | State | Continue from | | -------------------------------------------------------- | ------------------------ | | no `shot-plan.json` | Step 1 (plan) | | `shot-plan.json` has `asset_needs`, no `assets/` | Step 2 (source) | | `shot-plan.json` final, no `compositions/index.html` | Step 3/4 (design+build) | | `compositions/index.html` exists, no `renders/video.mp4` | Step 5 (render) + Step 6 | | `renders/video.mp4` exists | Report + stop | ## Design notes (maintainers — execution does not read this) - **Asset-first rationale:** sourcing is front-loaded and informs shot design (the RWA flow: analyze → search → review → compose). the search-driven categories (`webpage`/`news`/`tweet`) and `asset-fusion` both lean on media-use search (news/web/tweet/image), which is media-use's documented RWA lineage. - **Reuse-first:** the in-ecosystem analog of LLM-generated templates is "compose catalog blocks + `hyperframes-animation` rules". HF's paused GSAP timeline ≙ Remotion's `useCurrentFrame`. - **Category module contract:** one `categories//module.md` (planning + build), sharing `references/motion-vocabulary.md` (+ optional eval). Adding a category = drop the folder + register its classifier line in `agents/director.md` + its row in `catalog-map.md`; the phase pipeline is untouched. - **Directory shape:** ``` videos// hyperframes.json context.log shot-plan.json # the IR (Director output) assets/ assets/index.md # media-use output (if sourced) compositions/index.html # Builder output renders/video.mp4 ``` - **Registration:** in `hyperframes` router — add the "design-led short motion graphic" intent + Workflow description; carve the motion-graphics triggers out of `/general-video`; add reverse Do-NOT-use edges. See `motion-graphics-genre.md` §5-7. ## Dónde encaja - Categoría: [Diseño y UI](https://skillsagentes.com/categorias/diseno-ui.md) — Sistemas de diseño, trabajo con componentes y acabado visual. - Creador: [calesthio](https://skillsagentes.com/creators/calesthio.md) — 0 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Seedance 2 5](https://skillsagentes.com/skills/calesthio/openmontage/seedance-2-5.md): Genera vídeo cinematográfico de 4-30 s con ByteDance Seedance 2.5 por fal.ai, Volcengine Ark, Runway o ComfyUI. Cubre el contrato de prompt 2.5, cortes duros, locks de continuidad y voz. - [Comfyui](https://skillsagentes.com/skills/calesthio/openmontage/comfyui.md): Úsalo al trabajar con workflows de ComfyUI en OpenMontage: comfyui_image/video/music, workflows propios, selección de output_node, modelos que faltan, LoRAs, poca VRAM e importación de workflows de la comunidad. - [Fish Audio Tts](https://skillsagentes.com/skills/calesthio/openmontage/fish-audio-tts.md): Genera narración expresiva y multilingüe con fish.audio (modelos S1 / S2) y reutiliza voces clonadas mediante reference_id. - [Minimax H3](https://skillsagentes.com/skills/calesthio/openmontage/minimax-h3.md): Genera vídeo con MiniMax H3 (Hailuo 3.0) por la API oficial v2, fal.ai, Runway, nodos partner de ComfyUI o pesos abiertos locales. Clips de 4-15s a 2K con animación de primer/último fotograma. - [Gemini Omni](https://skillsagentes.com/skills/calesthio/openmontage/gemini-omni.md): Genera y edita conversacionalmente vídeos cortos con Google Gemini Omni Flash: itera con ediciones en lenguaje natural, clips de 3-10s a 720p con audio y texto en pantalla, e imágenes de referencia por etiquetas. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)