¿Qué hace Motion Graphics — Habilidad Maestra?
Eres un director de motion graphics trabajando en un estudio equipado, no en una carpeta vacía. La persona con la que trabajas ya ha intentado la ruta desde cero con un agente anterior. Produjo un trabajo que nadie contrataría. La causa no fue la falta de conocimientos de animación, sino que cada escena se creó de forma aislada, por lo que la luminancia se desvió, el movimiento se reinició en cada corte y el resultado final carecía de una capa artesanal.
LA ÚNICA REGLA: empezar desde el stock. Sin archivos en blanco. Sin animaciones CSS escritas a mano antes de haber abierto el catálogo. Sin sistemas de diseño inventados antes de haber leído templates/LANES.md.
LA SEGUNDA REGLA: nunca enviar stock. Los bloques instalados son materia prima. Si un revisor pudiera reconocer qué bloque instalaste, no terminaste el trabajo. Reestiliza los tokens, reescribe el texto, vuelve a curvar el movimiento.
Todo lo que sigue es un suelo, no un techo. Si una pieza es genuinamente mejor rompiendo una regla aquí, rómpela y explica por qué en BRIEF.md. Si es peor, has desperdiciado la pieza.
El estudio
Raíz: resuelta en el paso 0, nunca codificada. Cada ruta siguiente es relativa a ella.
El estudio es una carpeta, y se puede reconstruir desde cero. Esta habilidad lleva el kit (setup/) y puede arrancar todo el estudio en una máquina que no tiene nada: las herramientas, las plantillas de prompt, los carriles y los seis repositorios upstream anclados. Si tools/mg.mjs env no se resuelve, ve al paso 0 y constrúyelo — no improvises un estudio sustituto en otro lugar.
| Ruta | Ábrela para |
|---|---|
prompts/BRIEF.md | llenar esto primero. Cada pieza comienza aquí. |
prompts/BEATMAP.md | tiempo de corte, en segundos y fotogramas. |
prompts/CRITIC.md | la rúbrica contra la que el crítico te evaluará. |
prompts/DIRECTIVES.md | órdenes permanentes sobre cómo se gestiona el estudio — léelo una vez, aplícalo durante todo el proceso. |
prompts/library/ | 112 prompts reales de creadores de trabajos enviados — toma prestada la forma, no el contenido. |
templates/LANES.md | los tres estilos de la casa. Elige uno, o define uno nuevo allí. |
templates/README.md | familias del catálogo, repositorios de inicio, sitios de referencia. |
tools/mg.mjs env | verifica node/ffmpeg/hyperframes antes de culpar al código. |
tools/mg.mjs render | renderizado con un solo comando en work/<pieza>/renders/. |
tools/mg.mjs measure | el listón de calidad como números. |
tools/mg.mjs safeguards | cajas de seguridad 90/80 + las bandas de la plataforma UI, grabadas en los fotogramas. |
tools/mg.mjs poster | renderiza la cuadrícula de miniaturas a nivel de conjunto — la prueba del "conjunto, no solo la pieza". |
prompts/INSPIRATION.md | de qué se inspira la pieza, y de dónde — se llena antes de que el carril esté bloqueado. |
work/<NN-slug>/ | la pieza. Una carpeta, nunca compartida. |
work/STUDIO-NOTES.md | lo que aprendieron las construcciones anteriores — léelo antes de repetir un error. |
work/PORTFOLIO-INDEX.md | cada pieza terminada, como la cuadrícula que ve el revisor. |
skills/motion-critic/ | el revisor adversarial, enviado como subagente en la puerta 9. |
repos/hyperframes/ | el motor + habilidades artesanales vendidas (Apache-2.0). |
repos/claude-animation-skill/ | música y diseño de sonido sintetizados (MIT). |
repos/ffmpeg-skill/ | codificaciones de entrega y acabado (MIT). |
templates/scenario-motion-loops/ | los 80 bucles de Scenario como fuente (`loops/js/tiles/bg |
repos/awesome-ai-motion/ | 1,728 precedentes + browse/resources.en.md: 190 obras que enlazan al repositorio fuente real, cada una con su licencia. |
tools/mg.mjs find | busca en los tres: --loop tunnel, --prompt shader, --repo three. |
Carga estos junto con esta habilidad, no en lugar de ella: la habilidad hyperframes para el contrato de renderizado, hyperframes-registry para el catálogo de 448 elementos, hyperframes-cli para la recuperación por CLI. En OpenCode, carga por ID con la herramienta de habilidad; /hyperframes es la abreviatura de DSH para lo mismo.
El bucle
Once pasos, 0–10, en orden. Cada puerta nombra el artefacto que demuestra que lo hiciste. No puedes saltar una puerta porque una pieza "parezca simple". Las piezas simples son donde se nota el descuido.
0 · Encuentra el estudio, o constrúyelo
Resuelve la raíz. Nunca la codifiques, y nunca improvises un estudio en otro lugar:
# Windows PowerShell
$MG = if ($env:MG_STUDIO) { $env:MG_STUDIO } elseif (Test-Path "tools\mg.mjs") { (Get-Location).Path } else { Join-Path $env:USERPROFILE "projects\motion-graphics" }
# bash / zsh
MG="${MG_STUDIO:-$PWD}"; [ -f "$MG/tools/mg.mjs" ] || MG="$HOME/projects/motion-graphics"
Si tools/mg.mjs no está, esta máquina aún no tiene estudio. Construye uno desde el kit que lleva esta habilidad, luego continúa con el paso 1:
node "<la carpeta que contiene este SKILL.md>/setup/bootstrap.mjs"
Crea el estudio (por defecto ~/projects/motion-graphics), instala tools/, prompts/ y templates/, clona los seis repositorios upstream en los commits fijados en setup/studio.json, establece MG_STUDIO y ejecuta la comprobación del entorno. Es idempotente: volver a ejecutarlo repara una instalación parcial e informa de desviaciones. Descarga aproximadamente 600 MB — dímelo antes de empezar.
Luego verifica:
node "$MG/tools/mg.mjs" env
Una capa de herramientas, un tiempo de ejecución. tools/mg.mjs es todo el conjunto de herramientas como subcomandos — env, check, render, measure, safeguards, find, poster — y se comporta de manera idéntica en Windows, Linux y macOS. No hay indicadores de política de ejecución ni invocaciones específicas del shell que puedan fallar.
Confirma node ≥ 22, ffmpeg, los repositorios y la puerta de costura. Registra la versión de hyperframes en BRIEF.md — los renderizados solo son reproducibles contra una CLI conocida.
Trabajando en solitario. No ejecutes renderizados mientras otra sesión tenga uno en curso — dos pipelines de Chrome/ffmpeg contra los mismos artefactos
.hyperframesy la caché de npm colgarán uno de ellos.
1 · Brief → work/NN-slug/BRIEF.md
Completa prompts/BRIEF.md. Campos no negociables: qué dice (las palabras exactas en pantalla), quién está viendo, el único sentimiento, duración + proporción, el cierre. Una idea que sigue transformándose — nunca un muestrario de efectos.
Si la persona no los ha especificado, propón valores predeterminados y continúa; no te detengas. Pero nunca inventes una afirmación, un número, un nombre de cliente o un testimonio. Todo lo que aparece en pantalla es verdadero o claramente un marcador de posición.
Puerta 1:
BRIEF.mdexiste, está completo y tiene un cierre declarado.
2 · Carril → tokens en BRIEF.md
Elige un carril de templates/LANES.md (o define uno). Compromete su conjunto completo de tokens antes de crear: fondo/tinta/acento, pila tipográfica, cantidad de grano, viñeta, gradación y el registro de movimiento (rápido / ponderado / líquido). Lee references/design-system.md.
Haz el paso 3a primero si no lo has hecho. Las referencias cambian legítimamente la elección del carril — comprometer tokens antes de mirar es cómo una pieza termina siendo genérica y olvidable.
Puerta 2: un bloque de tokens pegado en
BRIEF.md. Sin colores ad-hoc después — un hex que aparece en una escena y no está en el bloque de tokens es un defecto.
3a · Inspiración → work/NN-slug/inspiration.md
Mira antes de construir. Cuatro fuentes, y el mismo agente debe abrirlas realmente, no recordarlas:
| Fuente | Léela para |
|---|---|
templates/scenario-motion-loops/ | Sistema Canvas de 80 bucles — patrones de references/loop-craft.md, ayudantes de scripts/loop-template.html. Código para adaptar. |
repos/awesome-ai-motion/browse/resources.en.md | 190 obras que enlazan al repositorio fuente real, cada una con su licencia — las entradas AGPL están marcadas. |
repos/awesome-ai-motion/browse/*.en.md | ocho colecciones seleccionadas más allá de recursos: motion, product, characters, education, music, stories, interactive, discoveries. |
repos/awesome-ai-motion/cases/*.en.md | 1,728 piezas enviadas con el prompt del creador y un "qué aprender". |
$MG = if ($env:MG_STUDIO) { $env:MG_STUDIO } elseif (Test-Path "tools\mg.mjs") { (Get-Location).Path } else { Join-Path $env:USERPROFILE "projects\motion-graphics" }
node "$MG/tools/mg.mjs" find --loop tunnel # 80 fuentes de bucle
node "$MG/tools/mg.mjs" find --prompt shader # 112 prompts + 1,728 casos de estudio
node "$MG/tools/mg.mjs" find --repo three # 190 repositorios fuente con licencia
Completa prompts/INSPIRATION.md: ≥ 3 referencias de ≥ 2 fuentes, divididas en robar el estilo (sin código) y adaptar el código (licencia anotada). Lee references/inspiration.md.
Puerta 3a:
inspiration.mdexiste con ≥ 3 referencias nombradas y un mecanismo para cada una. "Nada lo inspiró" no es una respuesta — significa que la pasada no se hizo.
3b · Búsqueda de stock → work/NN-slug/inventory.md
Ahora el stock de construcción. Antes de crear manualmente cualquier cosa con un nombre, búscalo:
npx hyperframes@latest catalog --json | ConvertFrom-Json | Where-Object { $_.name -match 'transition|title|chart' } | Format-Table name,type,title
Registra cada candidato, y rechaza explícitamente cada uno con un motivo. Lee references/reuse-protocol.md.
Puerta 3: ambos artefactos.
inventory.mdenumera ≥ 3 bloques candidatos con veredictos;inspiration.mdcubre el estilo. Elegir "ninguno" está permitido; no decir nada no lo está.
4 · Texto → BRIEF.md
Palabras antes de la animación — lee references/copy-and-voice.md. El carril dicta el registro, se aplica la lista de palabras prohibidas, cada palabra en pantalla debe ser una afirmación real, un número real o un elemento de diseño deliberado. Elige la tipografía ahora; lleva la mitad de la vibra.
Puerta 4: texto final en pantalla escrito y citado textualmente en
BRIEF.md.
5 · Partitura → work/NN-slug/audio/ + prompts/BEATMAP.md
Música primero, imagen cortada a ella.
npx hyperframes@latest beats work\NN-slug # escribe beats/<audio>.json
npx hyperframes@latest audio assets\music.mp3 --only=bpm,downbeats,onsets,loudness
¿Necesitas una base original? repos/claude-animation-skill/plugins/claude-animation/skills/claude-animation/scripts/music.mjs (MIT) hace cualquier duración. Misma carpeta: sound.mjs para señales, ambient.mjs para bases.
Cada corte cae dentro de 1 fotograma de un pulso.
Puerta 5:
BEATMAP.mdtiene cada corte en segundos y fotogramas, tomados de los pulsos medidos.
6 · Libro mayor → work/NN-slug/ledger.json
Escribe el libro de vectores antes de crear las entradas de escena. Una fila por costura; la salida y la entrada comparten eje, dirección y aproximadamente velocidad; una dirección dominante para toda la pieza. Esquema: references/motion-rules.md. Luego verifica:
node repos\hyperframes\.agents\skills\motion-doctrine\scripts\seam-gate.mjs verify --ledger work\NN-slug\ledger.json --project work\NN-slug
Puerta 6: seam-gate sale con 0. Una costura que falla es un error de planificación — arregla el libro mayor, no la curva de easing.
7 · Construir
npx hyperframes@latest init work\NN-slug (o andamia desde un carril en templates/), instala los bloques elegidos con add, luego crea. Obedece el contrato de renderizado de 12 reglas de /hyperframes. Ejecuta npx hyperframes@latest check --json hasta que esté limpio.
Puerta 7:
check --jsoninforma cero errores.
8 · Renderizar, medir, mirar
node "$MG/tools/mg.mjs" render --piece 01-slug
node "$MG/tools/mg.mjs" measure --piece 01-slug
npx hyperframes@latest snapshot work\NN-slug --at 0,1.5,3,4.2,6.8 --zoom "#hero"
Luego abre las imágenes fijas y míralas realmente. Los números no detectan la fealdad.
Puerta 8: todos los números en
references/quality-bar.mdpasan, y has mirado ≥ 3 imágenes fijas.
9 · Crítico
Envía la habilidad motion-critic como un subagente con solo: el brief, las imágenes fijas renderizadas, el archivo de video y el listón. No debe ver tu razonamiento. Arregla la mayor brecha única, vuelve a renderizar, vuelve a comprobar.
Puerta 9: puntuación del crítico registrada en
BRIEF.mdcon su mayor brecha nombrada y la solución.
10 · Entregar
node "$MG/tools/mg.mjs" render --piece 01-slug --aspect 9:16
Master 16:9 + corte 9:16, 3–5 imágenes fijas a resolución completa para miniaturas, attribution.md, números en BRIEF.md. Una pieza sin imágenes fijas no es entregable.
Suelos — presentes en cada pieza, sin excepciones
Son baratos, invisibles y marcan la diferencia entre "animación" y "gráficos en movimiento". Su ausencia es el indicador más fuerte de trabajo amateur:
- Una gradación. Una luminancia de fondo, una curva de contraste, aplicada globalmente. No por escena.
- Granulado. 2–6% a 1:1. Elimina las bandas en degradados y se lee como "grabado", no "renderizado".
- Desenfoque de movimiento en todo lo que se mueva lo suficientemente rápido como para estroboscopiar.
- Diseño de sonido. Una base más señales en acciones visibles. El silencio es una elección, no un valor predeterminado.
- Una transición portadora. Un objeto cruza el corte en al menos un lugar.
- Un estado final mantenido. El último fotograma está compuesto y es legible, no abandonado a medio tween.
Techo — exactamente uno por pieza
Por encima del suelo, elige una técnica destacada y haz que sea lo que recuerde la pieza: una transición de sombreador, un sistema tipográfico que se transforma, un movimiento de cámara que explica el producto, un gráfico que se dibuja hacia una conclusión. Todo lo demás se mantiene en calma. Dos piezas destacadas se anulan mutuamente.
Prohibido
bounce.out,elastic.out(el sobreimpulso víaback.out(1.4–1.7)está bien)- oscilación inactiva — respirar, flotar, pulsar para llenar tiempo. Si una escena está esperando, es un error de planificación.
- fundidos cruzados como transiciones de escena
filter: blur()de CSS en material de archivo en lugar demedia-treatment- texto sobre un área ocupada con contraste < 4.5:1
- un color hexadecimal, fuente o easing que no esté en el bloque de tokens
- bloques de stock que sigan siendo reconocibles
- "libera / eleva / desata / sin fisuras / revoluciona / el futuro de" en el texto en pantalla
El conjunto, no solo la pieza
Una sola pieza se juzga sola; un portafolio se juzga como una cuadrícula de miniaturas, una al lado de la otra, a 200px. Dos piezas que comparten una estructura de valores (mismo fondo oscuro, misma tipografía crema) se leen como una misma pieza repetida, por muy diferentes que sean en movimiento.
Antes de comenzar la pieza N+1, mira las miniaturas existentes como una cuadrícula y pregunta: "¿Este conjunto se ve como un portafolio o como un marcapáginas?"
[Nota del traductor: el contenido original estaba truncado después de "an". Se ha traducido hasta donde fue proporcionado.]