Vídeo animado (Remotion)
Infraestrutura, não gosto. A skill guarda o que o modelo não traz sozinho — ferramentas (voz, trilha, render, transcrição), contexto da empresa (vozes autorizadas, chaves, firewall, licenças), regras de verdade, técnica com números, revisão e as lições técnicas — e não prescreve como o vídeo deve parecer. Estilo, dispositivo e look nascem do conteúdo a cada vídeo. Ao evoluir a skill, nunca acrescentar exemplo de look, receita estética ou componente "padrão" ao que é lido sempre: isso vicia e repete.
O que ler
| Sempre | Sob demanda |
|---|---|
este arquivo · APRENDIZADOS.md (técnica) · direcao.md (ofício) | gemini.md (vozes, APIs, capacidades) · assets.md (licenças, fontes de asset) · edicao.md (gravação) · critica.md (revisão) · referencias.md (só quando o pedido citar um dos vídeos estudados) · biblioteca/ (só depois do conceito escolhido) · VIDEOS.md e projetos antigos (só com linha de estilo pedida — nem para "ver que voz os outros usaram") · historico/ (quando um problema parecer conhecido) |
Ler o pedido
A skill é a diretora: entende o que o pedido quer e age. Não faz questionário; pergunta só o que for bloqueante (enquadramento político/histórico ambíguo, fato que as fontes não resolvem, direito de uso incerto), com recomendação.
| O pedido traz… | Fazer |
|---|---|
| Só um tema | Criar tudo (pesquisa, roteiro, conceito, voz, trilha) e entregar pronto. |
| Um roteiro | O texto fica como está (ajustes sugeridos à parte, opcionais); mostrar o brief e produzir após o ok ("faz direto" pula). |
| Anotações, relato, tópicos | Escrever o roteiro a partir delas (tom, cortes, anonimização) e mostrar roteiro + brief antes de produzir. |
| Consulta sem o conteúdo ("que animação você recomenda para…") | Não escolher conceito: o conceito nasce do texto. Dizer do que a escolha depende e pedir o conteúdo. |
| Pedido de proposta | Só o brief (PROPOSTA.md). |
| Instruções específicas | Seguir à risca; liberdade só no que não foi dito. |
| Uma gravação para cortar | Modo edição: edicao.md. |
| Ajuste num vídeo existente | Mudar só aquilo e renderizar de novo. |
| Linha de estilo ("igual ao vídeo X", "série") | Carregar a entrada em VIDEOS.md, copiar tema.ts e peças daquele projeto, manter o look; roteiro.linha_de_estilo. |
| Folha em branco ("do zero", "sem nada pronto") | Só a base técnica; nenhuma peça da biblioteca nem referência estudada. |
| Referência externa (link, vídeo) | Estudar quadro a quadro, pegar a gramática (ritmo, técnica), nunca o conteúdo nem o look. |
| "Sem usar as APIs" | "offline": true, voz local, trilha partitura ou arquivo, sem geração de imagem. |
Pedidos se combinam. Defaults: ~45–60 s como referência · 16:9 + 9:16 · voz VoxCPM2 clonada de uma referência autorizada ("voz": "voxcpm", já
no template) só para uso interno — vídeo que vai a público (campanha, redes, cliente)
pede outra voz: perguntar junto do brief, com recomendação. Pedido de outra voz: nome → usar; descrição →
gemini.md; "opções" → amostras · CTA com URL só se o objetivo for vender.
A duração é a que o conteúdo pedir; estimar pela taxa medida da voz escolhida (nunca prometer antes de medir).
Vídeo longo: atos com função cada e passe completo dividido entre subagentes.
Brief do diretor (antes de qualquer código)
Na ordem — logline e limites primeiro, estética depois, ferramentas por último (começar pela técnica faz a técnica
engolir a ideia). Vai no PROPOSTA.md (roteiro recebido/proposta) ou no topo do ANALISE.md.
Barra, sempre: peça de portfólio de um estúdio de motion design — o máximo de acabamento, não o básico que funciona.
Vale para qualquer estilo (minimalista ou denso); o que muda é onde o acabamento aparece.
- Logline: o vídeo numa frase + público + onde vai passar + o que a pessoa deve sentir/fazer no fim.
- Limites: duração, formatos, verdade (fontes; o que é ilustração), direitos, orçamento de API.
- Ideação sem viés: 3 conceitos bem diferentes, só do conteúdo (sem abrir biblioteca nem vídeos anteriores),
cada um completo: dispositivo, mundo visual, materiais, paleta, tipografia, movimento, paleta sonora e trilha.
Declarar em
conceitos.jsone rodarpython3 scripts/diversidade.py --conceitos— o modelo tem reflexos de mundo que se repetem mesmo sem ver o histórico; o script (que só ele lê o registro) aponta. Menos de 2 livres → inventar de novo. Um quadro rápido de cada emout/conceitos/e escolher olhando; quando houver brief para aprovar, os 3 quadros vão junto. Registrar os 3 e o porquê; os materiais do escolhido vão pararoteiro.conceito.materiais. - Bíblia visual com o porquê de cada escolha e uma frase de padrão de qualidade →
src/tema.ts. Personagem recorrente → bíblia de personagem (proporções, paleta, expressões, o que nunca muda). - Decupagem: bloco a bloco, a função de cada um, o que aparece, transição, som.
- Ferramentas: voz; trilha; assets — web com licença (assets.md,
CREDITOS.md), geração (scripts/img.py, Veo: ver gemini.md) ou desenho em código. - Passe de assets (depois da bíblia, antes de animar): um conjunto feito para ESTE vídeo, um asset por ideia do
roteiro (personagem, objetos, cenário, texturas), todos no mesmo tratamento. Gerado:
tratamento_imagem+imagensnoroteiro.json, a 1ª imagem aprovada virarefde estilo das outras,recortepara elemento solto (python3 scripts/img.py). Sem cota ou offline: desenhar em código com o mesmo cuidado. Imagem gerada nunca representa pessoa real ou fato sem rótulo "Ilustração". Foi o que mais separou peça de estúdio de peça correta.
Portões (não pular)
brief → roteiro → voz → medir → som + batidas → assets → storyboard → animatic → passe completo → crítica → render → entrega → evoluir
- Projeto:
bash ~/.claude/skills/video-animado/novo.sh ~/videos/<slug>. OANALISE.mddo projeto já vem com o checklist dos portões: marcar cada um ao passar; pular só o que o pedido dispensar, com o porquê. - Roteiro em
roteiro.json(fonte única) +ROTEIRO.mdcom fontes. Checagem factual antes da voz, sempre. - Voz:
python3 scripts/tts.py(só regrava blocos alterados). Conferir:~/.venvs/tts-local/bin/python scripts/check_voz.py. - Medir:
python3 scripts/tighten.py; fala natural ou ATENÇÃO →~/.venvs/tts-local/bin/python scripts/align.py(cueW). - Som + batidas: trilha (
lyria→scripts/music.py;arquivo;partituracomposta em código, comintensidadepor bloco eeventosda cena) epython3 scripts/sound.py(timeline, efeitos, picos,beats.jsonda partitura). Trilha pronta →~/.venvs/tts-local/bin/python scripts/beatmap.py. Efeitos por família (biblioteca/sfx/INDEX.md), escolhidas pelo material, viasfxVar(o pico cai na ação sozinho). - Storyboard: um still por momento do roteiro, criticado contra a bíblia e contra "o que dá para tirar?".
- Animatic: render rápido (
npx remotion render Video-9x16 out/animatic.mp4 --scale=0.4) para acertar ritmo e batidas antes do acabamento. - Passe completo em
src/Video.tsx(o exemplo do template é só sincronia: substituir; construir os componentes que o conceito pedir). Vídeo longo: dividir grupos de cenas entre subagentes, comtema.tse regras centrais. - Crítica:
python3 scripts/qa_folhas.py out/<mp4>+ subagente limpo com nota (critica.md), até tudo ≥ 8 (no máximo 3 rodadas; o crítico julga contra a bíblia do vídeo, não contra um gosto dele).python3 scripts/diversidade.pyok (continuidade pedida:roteiro.linha_de_estilo). - Render:
bash scripts/render.sh(−14 LUFS em duas passadas, os formatos do roteiro); conferir norelatorio.txtdoqa_folhas.py(−14 ± 1). - Entrega: MP4s + frame de capa (
npx remotion still … out/capa.png) + folhas de revisão +ANALISE.md(brief, decisões, fontes, notas da crítica, o que precisa de escuta humana) + arquivo mostrado no Finder (open -R). A mensagem final pede a nota (1–5) e o que mudaria. - Evoluir a skill: nota de quem pediu →
diversidade.py --registrar→ lição técnica noAPRENDIZADOS.md(curta; fundir ou tirar ao acrescentar), escolhas estéticas noVIDEOS.md, peça reutilizável e sem tema nabiblioteca/(+INDEX.md), bug do template corrigido e testado nos dois formatos, capacidade nova nogemini.md. Lição de ofício repetida em 2 vídeos →direcao.md(sem exemplo de look).
Contrato do código
- Tempo nunca é número solto:
cue,cueW,blockStart,naBatida(frame),batida(i),virada(). - Formato:
useFmt()+pick(paisagem, retrato); toda cena roda nos dois (reenquadrar, não recortar). - Movimento:
mola(frame, at, 'ui'|'padrao'|'pesada'|'viva'); regras em direcao.md. - Núcleo neutro do template:
tema.ts(cores e fontes do vídeo),lib.ts(tempo, formato, batidas, molas),stage.tsx(SceneStackcomcorte/wipe/zoomou transição própriaTransFn,Sheet,Soundtrack,sfxVar),acabamento.tsx. Peças prontas ficam nabiblioteca/componentes/, opcionais, abertas só depois do conceito. - Toda animação sai do frame (
useCurrentFrame+interpolate/mola);interpolatesempre comextrapolateLeft/Right: 'clamp'; nuncatransition/animationde CSS (não aparecem no render). - Pacotes
@remotion/*4.0.528 no template (transitions, paths, shapes, noise, motion-blur, lottie, three, media-utils, layout-utils); novos na mesma versão.
Regras duras
- Chaves em
~/.config/secrets.env(sourceantes; nunca imprimir). Sem cota/teto de gasto: voz local epartitura. - Clonagem de voz só com autorização por escrito; voz clonada de pessoa real é uso interno, salvo autorização expressa para uso público.
- Asset de terceiros só com licença clara, registrado em
CREDITOS.md; nunca foto de pessoa real sem base de direito, música comercial ou logo de terceiros imitando peça oficial. - Verdade: dado com fonte ou rótulo "Ilustração/Exemplo"; nada inventado na tela nem na legenda do post.
- MP4 e áudio não vão para repositório público. Não commitar sem perguntar.
- Sessões paralelas mexendo na skill (
git statuscom mudanças que não são suas): só trocas pontuais, ou worktree própria (claude --worktree) e merge — nunca reescrever arquivo de outra sessão.