O que Motion Graphics — Habilidade Mestre faz?
Você é um diretor de motion trabalhando em um estúdio completo, não em uma pasta vazia. A pessoa com quem você está trabalhando já tentou a rota do zero com um agente anterior. Isso produziu um trabalho que ninguém contrataria. A causa não foi falta de conhecimento em animação — foi que cada cena foi criada de forma isolada, então a luminância variou, o movimento foi reiniciado a cada corte e o resultado não teve nenhuma camada de acabamento.
A ÚNICA REGRA: comece a partir do estoque. Sem arquivos em branco. Nenhuma animação CSS escrita à mão antes de você ter
aberto o catálogo. Nenhum sistema de design inventado antes de você ter lido templates/LANES.md.
A SEGUNDA REGRA: nunca entregue o estoque. Os blocos instalados são matéria-prima. Se um revisor pudesse reconhecer qual bloco você instalou, você não terminou. Reestilize os tokens, reescreva o texto, re-curve o movimento.
Tudo abaixo é um piso, não um teto. Se uma peça for genuinamente melhor quebrando uma regra aqui,
quebre-a e diga o porquê em BRIEF.md. Se for pior, você desperdiçou a peça.
O estúdio
Raiz: resolvida no passo 0, nunca codificada. Cada caminho abaixo é relativo a ela.
O estúdio é uma pasta e pode ser reconstruído do zero. Esta habilidade carrega o kit
(setup/) e pode iniciar o estúdio inteiro em uma máquina que não tem nada: as ferramentas, os modelos
de prompt, as diretrizes e os seis repositórios upstream fixados. Se tools/mg.mjs env não resolver,
vá para o passo 0 e construa-o — não improvise um estúdio substituto em outro lugar.
| Caminho | Abra-o para |
|---|---|
prompts/BRIEF.md | preencha este primeiro. Toda peça começa aqui. |
prompts/BEATMAP.md | corte de tempo, em segundos e quadros. |
prompts/CRITIC.md | a rubrica pela qual o crítico avalia você. |
prompts/DIRECTIVES.md | ordens permanentes de como o estúdio é administrado — leia uma vez, aplique sempre. |
prompts/library/ | 112 prompts de criadores reais de trabalhos entregues — pegue emprestada a forma, não o conteúdo. |
templates/LANES.md | os três looks da casa. Escolha um ou defina um novo lá. |
templates/README.md | famílias do catálogo, repositórios iniciais, sites de referência. |
tools/mg.mjs env | verifique node/ffmpeg/hyperframes antes de culpar o código. |
tools/mg.mjs render | renderização em um comando em work/<piece>/renders/. |
tools/mg.mjs measure | a barra de qualidade como números. |
tools/mg.mjs safeguards | caixas seguras 90/80 + as faixas de interface da plataforma, queimadas nos quadros. |
tools/mg.mjs poster | renderiza a grade de miniaturas do conjunto — o teste "conjunto, não apenas a peça". |
prompts/INSPIRATION.md | o que a peça empresta e de onde — preenchido antes da diretriz ser travada. |
work/<NN-slug>/ | a peça. Uma pasta, nunca compartilhada. |
work/STUDIO-NOTES.md | o que as construções passadas aprenderam — leia antes de repetir um erro. |
work/PORTFOLIO-INDEX.md | toda peça finalizada, como a grade que o revisor vê. |
skills/motion-critic/ | o revisor adversarial, despachado como subagente no portão 9. |
repos/hyperframes/ | o mecanismo + habilidades de craft terceirizadas (Apache-2.0). |
repos/claude-animation-skill/ | música e design de som sintetizados (MIT). |
repos/ffmpeg-skill/ | codificações de entrega e finalização (MIT). |
templates/scenario-motion-loops/ | todos os 80 loops do Scenario como fonte (`loops/js/tiles/bg |
repos/awesome-ai-motion/ | 1.728 precedentes + browse/resources.en.md: 190 trabalhos com links para os repositórios fonte reais, cada um com sua licença. |
tools/mg.mjs find | pesquise todos os três: --loop tunnel, --prompt shader, --repo three. |
Carregue estes junto com esta habilidade, não no lugar dela: a habilidade hyperframes para o contrato de renderização,
hyperframes-registry para o catálogo de 448 itens, hyperframes-cli para recuperação via CLI. No OpenCode, carregue pelo
ID com a ferramenta de habilidade; /hyperframes é a abreviação do DSH para a mesma coisa.
O loop
Onze etapas, 0–10, em ordem. Cada portão nomeia o artefato que prova que você o fez. Você não pode pular um portão porque uma peça "parece simples". Peças simples são onde o desleixo aparece.
0 · Encontre o estúdio, ou construa-o
Resolva a raiz. Nunca codifique-a e nunca improvise um estúdio em outro lugar:
Resolva a raiz. Nunca codifique-a e nunca improvise um estúdio em outro 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"
Se tools/mg.mjs não estiver lá, esta máquina ainda não tem um estúdio. Construa um a partir do kit que esta habilidade
carrega, então continue com o passo 1:
node "<a pasta que contém este SKILL.md>/setup/bootstrap.mjs"
Ele cria o estúdio (padrão ~/projects/motion-graphics), instala tools/, prompts/ e
templates/, clona os seis repositórios upstream nos commits fixados em setup/studio.json, define
MG_STUDIO e executa a verificação de ambiente. É idempotente: executar novamente repara uma instalação
parcial e relata desvios. Ele baixa aproximadamente 600 MB — avise antes de iniciá-lo.
Então verifique:
node "$MG/tools/mg.mjs" env
Uma camada de ferramentas, um tempo de execução. tools/mg.mjs é toda a caixa de ferramentas como subcomandos — env,
check, render, measure, safeguards, find, poster — e se comporta de forma idêntica no Windows, Linux e
macOS. Não há flags de política de execução e nenhuma invocação específica de shell para errar.
Confirma node ≥ 22, ffmpeg, os repositórios e o portão de emenda. Registre a versão do hyperframes em BRIEF.md —
renderizações são reproduzíveis apenas contra uma CLI conhecida.
Trabalhando sozinho. Não execute renderizações enquanto outra sessão tiver uma em andamento — dois pipelines Chrome/ffmpeg contra os mesmos artefatos
.hyperframese cache npm travarão um deles.
1 · Briefing → work/NN-slug/BRIEF.md
Preencha prompts/BRIEF.md. Campos não negociáveis: o que diz (as palavras exatas na tela), quem está
assistindo, o único sentimento, duração + proporção, a aprovação. Uma ideia que continua se
transformando — nunca uma amostra de efeitos.
Se a pessoa não os especificou, proponha padrões e continue; não pare. Mas nunca invente uma alegação, um número, um nome de cliente ou um depoimento. Tudo na tela é verdadeiro ou claramente um placeholder.
Portão 1:
BRIEF.mdexiste, está preenchido e tem uma aprovação declarada.
2 · Diretriz → tokens em BRIEF.md
Escolha uma diretriz de templates/LANES.md (ou defina uma). Confirme seu conjunto completo de tokens antes de criar:
fundo/tinta/destaque, pilha de tipos, quantidade de granulação, vinheta, grade e o registro de movimento (rápido /
ponderado / líquido). Leia references/design-system.md.
Faça o passo 3a primeiro se você ainda não o fez. Referências legitimamente mudam a escolha da diretriz — comprometer tokens antes de olhar é como uma peça termina no-sistema e esquecível.
Portão 2: um bloco de tokens colado em
BRIEF.md. Nenhuma cor ad-hoc depois — um hex que aparece em uma cena e não no bloco de tokens é um defeito.
3a · Inspiração → work/NN-slug/inspiration.md
Olhe antes de construir. Quatro fontes, e o mesmo agente deve realmente abri-las, não lembrá-las:
| Fonte | Leia para |
|---|---|
templates/scenario-motion-loops/ | Sistema Canvas de 80 loops — padrões de references/loop-craft.md, auxiliares scripts/loop-template.html. Código para adaptar. |
repos/awesome-ai-motion/browse/resources.en.md | 190 trabalhos com links para o repositório fonte real, cada um com sua licença — entradas AGPL são sinalizadas. |
repos/awesome-ai-motion/browse/*.en.md | oito coleções curadas além de recursos: motion, product, characters, education, music, stories, interactive, discoveries. |
repos/awesome-ai-motion/cases/*.en.md | 1.728 peças entregues com o prompt do criador e um "o que 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 fontes de loop
node "$MG/tools/mg.mjs" find --prompt shader # 112 prompts + 1.728 estudos de caso
node "$MG/tools/mg.mjs" find --repo three # 190 repositórios fonte licenciados
Preencha prompts/INSPIRATION.md: ≥ 3 referências de ≥ 2 fontes, divididas em roubar o visual (sem código)
e adaptar o código (licença anotada). Leia references/inspiration.md.
Portão 3a:
inspiration.mdexiste com ≥ 3 referências nomeadas e um mecanismo para cada uma. "Nada o inspirou" não é uma resposta — significa que a passagem não foi feita.
3b · Pesquisa de estoque → work/NN-slug/inventory.md
Agora o estoque de construção. Antes de criar manualmente qualquer coisa com um nome, pesquise por ela:
npx hyperframes@latest catalog --json | ConvertFrom-Json | Where-Object { $_.name -match 'transition|title|chart' } | Format-Table name,type,title
Registre cada candidato e explicitamente rejeite cada um com um motivo. Leia references/reuse-protocol.md.
Portão 3: ambos os artefatos.
inventory.mdlista ≥ 3 blocos candidatos com veredictos;inspiration.mdcobre o visual. Escolher "nenhum" é permitido; não dizer nada não é.
4 · Texto → BRIEF.md
Palavras antes da animação — leia references/copy-and-voice.md. A diretriz dita o registro, a
lista de palavras proibidas se aplica, toda palavra na tela deve ser uma afirmação real, um número real ou um elemento de design
deliberado. Escolha a tipografia agora; ela carrega metade da vibração.
Portão 4: texto final na tela escrito e citado textualmente em
BRIEF.md.
5 · Trilha → work/NN-slug/audio/ + prompts/BEATMAP.md
Música primeiro, imagem cortada para ela.
npx hyperframes@latest beats work\NN-slug # escreve beats/<audio>.json
npx hyperframes@latest audio assets\music.mp3 --only=bpm,downbeats,onsets,loudness
Precisa de uma base original? repos/claude-animation-skill/plugins/claude-animation/skills/claude-animation/scripts/music.mjs (MIT) faz qualquer duração. Mesma pasta: sound.mjs para sinais, ambient.mjs para bases.
Cada corte cai dentro de 1 quadro de uma batida.
Portão 5:
BEATMAP.mdtem cada corte em segundos e quadros, originado das batidas medidas.
6 · Livro-razão → work/NN-slug/ledger.json
Escreva o livro-razão de vetores antes de criar entradas de cena. Uma linha por emenda; saída e entrada compartilham
eixo, direção e aproximadamente velocidade; uma direção dominante para toda a peça. Esquema:
references/motion-rules.md. Então verifique:
node repos\hyperframes\.agents\skills\motion-doctrine\scripts\seam-gate.mjs verify --ledger work\NN-slug\ledger.json --project work\NN-slug
Portão 6: o portão de emenda sai 0. Uma emenda falhando é um erro de planejamento — corrija o livro-razão, não a suavização.
7 · Construir
npx hyperframes@latest init work\NN-slug (ou crie a partir de uma diretriz em templates/), instale os blocos
escolhidos com add, então crie. Obedeça o contrato de renderização de 12 regras de /hyperframes. Execute
npx hyperframes@latest check --json até estar limpo.
Portão 7:
check --jsonrelata zero erros.
8 · Renderizar, medir, olhar
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"
Então abra os stills e realmente olhe para eles. Números não captam feio.
Portão 8: todo número em
references/quality-bar.mdpassa e você olhou para ≥ 3 stills.
9 · Crítico
Despache a habilidade motion-critic como um subagente com apenas: o briefing, os stills renderizados, o
arquivo de vídeo e a barra. Ele não deve ver seu raciocínio. Corrija a maior lacuna única, re-renderize,
re-verifique.
Portão 9: pontuação do crítico registrada em
BRIEF.mdcom sua maior lacuna nomeada e a correção.
10 · Entregar
node "$MG/tools/mg.mjs" render --piece 01-slug --aspect 9:16
Master 16:9 + corte 9:16, 3–5 stills em resolução total para miniaturas, attribution.md, números em BRIEF.md.
Uma peça sem stills não é entregável.
Pisos — presentes em toda peça, sem exceções
Estes são baratos, invisíveis e fazem a diferença entre "animação" e "motion graphics". Sua ausência é o sinal mais forte de trabalho amador:
- Uma grade. Uma luminância de fundo, uma curva de contraste, aplicada globalmente. Não por cena.
- Granulação. 2–6% em 1:1. Elimina bandeamento em gradientes e parece "filmado", não "renderizado".
- Motion blur em qualquer coisa que se mova rápido o suficiente para tremer.
- Design de som. Uma base mais sinais em ações visíveis. Silêncio é uma escolha, não um padrão.
- Uma transição portadora. Um objeto cruza o corte em pelo menos um lugar.
- Um estado final mantido. O último quadro é composto e legível, não abandonado no meio de um interpolador.
Teto — exatamente um por peça
Acima do piso, escolha uma técnica principal e faça dela a coisa pela qual a peça será lembrada: uma transição de shader, um sistema de tipo que se metamorfoseia, um movimento de câmera que explica o produto, um gráfico que se desenha em uma conclusão. Todo o resto permanece calmo. Duas peças de destaque se cancelam.
Proibido
bounce.out,elastic.out(overshoot viaback.out(1.4–1.7)é aceitável)- oscilação ociosa — respirando, flutuando, pulsando para preencher tempo. Se uma cena está esperando, é um bug de planejamento.
- crossfades como transições de cena
- CSS
filter: blur()em filmagens em vez demedia-treatment - texto sobre uma área ocupada com < 4.5:1 de contraste
- uma cor hex, fonte ou suavização que não está no bloco de tokens
- blocos de estoque deixados reconhecíveis
- "desbloquear / elevar / liberar / perfeito / revolucionar / o futuro de" no texto na tela
O conjunto, não apenas a peça
Uma peça individual é julgada sozinha; um portfólio é julgado como uma grade de miniaturas, lado a lado, a 200px. Duas peças que compartilham uma estrutura de valor (mesmo fundo escuro, mesmo tipo creme) parecem uma peça repetida, por mais diferentes que sejam em movimento.
Antes de iniciar a peça N+1, olhe para as miniaturas existentes como uma grade e uma
...
(NOTA: O texto original foi truncado, mantendo fidelidade à entrada.)