Reel de corte (HyperFrames)
Comprovado no showreel "The Brief". As pessoas julgam reels pelo ritmo e narrativa, não apenas pelo polimento — uma montagem simples de cenas bonitas é considerada "básica". Dê a ela uma história com stakes.
1. História primeiro (antes de qualquer código)
Escreva uma história de 5 a 8 batidas onde cada batida mostra uma capacidade e a própria edição conta a história. O padrão que funcionou: gancho (um problema + um relógio) → montagem de trabalho (uma habilidade por seção) → reviravolta/obstáculo (freeze frame, feedback do cliente) → corte seco resposta → explosão de payoff → entregue → cartão final. Um HUD persistente (relógio que faz jump-cut, rótulo de estágio) mantém os espectadores orientados em meio a cortes rápidos.
Depois, uma folha de cues em uma grade: 150 BPM = batida 0,4 s, compasso 1,6 s (ou 120 BPM = 0,5 s). Cada corte, impacto e legenda está em uma batida; as seções mudam nas linhas do compasso. Gancho = 1 palavra por batida nos primeiros 1,6–3,2 s.
2. Comece pelo template
cp -R templates/chop-reel videos/<nome> && cd videos/<nome>
../../.venv/bin/python score.py # escreve assets/audio/score.wav
python3 build.py 169 # escreve index.html (16:9); build.py 916 para 9:16
npx --yes [email protected] lint && npx --yes [email protected] render -o ../../out/<nome>-169.mp4
Estrutura do reel.js — edite nesta ordem:
- Cenas:
function scene(g, l)desenha um quadro completo no tempo locall. Use unidades relativas (W,H,M,PORT) para que ambos os aspectos funcionem;fit()reduz o texto a uma largura máxima. - SHOTS:
[t0, t1, scene]— a edição.null= coberto por uma transição. - Listas de FX:
PUNCH(zoom de 1,06× decaindo em 0,2 s em cada corte + batidas extras),FLASH(branco de 2 quadros em drops, meio branco em cortes de seção),SHAKES[inicio, duração, amp],WHIPS(push com motion blur entre cenas, 9 sub-quadros renderizados e mesclados). - Clipes de vídeo (arte huashu, renderizações de caption-kit, cenas de IA) vão por cima como
<video class="clip">nobuild.pycom seus próprios tweens de punch no GSAP; o canvas desenha preto por baixo.
3. Biblioteca de movimentos
Para movimentos nomeados, use a skill motion-prompt: node ~/.claude/skills/motion-prompt/scripts/motion-prompt.mjs get 001 043 retorna a especificação publicada de cada movimento (curvas, durações, overshoot). Copie os números exatamente no reel.js e cite-os em um comentário (// #043 whip pan: …) — o usuário percebe quando os movimentos são "inspirados por" em vez de usados. Úteis: #001 pop-in, #005 mask reveal, #007 contagem, #008 tipo cinético, #010 overshoot, #017 máscara, #020 zoom através, #023 glitch, #024 impacto shake, #038 rampa de velocidade, #040 freeze frame, #043 whip pan, #046 smash cut.
4. Som
Use a skill score: copie examples/phonk_150bpm_45s.py para uma trilha trap/phonk completa, ou estenda o score.py do template. Cada impacto/flash no reel.js recebe um hit no mesmo tempo (impacto, palma, riser em drops, scratch no freeze, silêncio antes do smash cut). Locução via Kokoro, abaixada; legendas via caption-video.
5. Verifique e entregue
- Tire um snapshot de cada seção em ambos os aspectos e verifique: nada cortado em 9:16, texto ≥ 4% do lado menor.
- Renderize ambos, loudnorm −14 LUFS, envie ambos. Nomeie
out/<Título> (16x9).mp4/(9x16).mp4. - Revisões: altere SHOTS / funções de cena → reconstrua ambos os aspectos → renderize.