Reel de cortes (HyperFrames)
Probado en el showreel "The Brief". La gente juzga los reels por ritmo y narrativa, no solo por el pulido — una simple muestra de escenas bonitas se lee como "básico". Dale una historia con tensión.
1. Historia primero (antes de cualquier código)
Escribe una historia de 5 a 8 ritmos donde cada ritmo muestre una capacidad y la edición misma la cuente. El patrón que funcionó: gancho (un problema + un reloj) → montaje de trabajo (una habilidad por sección) → giro/obstáculo (fotograma congelado, comentarios del cliente) → corte de impacto → respuesta → remate de pago → entregado → tarjeta final. Un HUD persistente (reloj que hace cortes bruscos, etiqueta de etapa) mantiene a los espectadores orientados durante los cortes rápidos.
Luego una hoja de pautas en una cuadrícula: 150 BPM = beat 0.4 s, compás 1.6 s (o 120 BPM = 0.5 s). Cada corte, golpe y leyenda se sitúa en un beat; las secciones cambian en las líneas de compás. Gancho = 1 palabra por beat durante los primeros 1.6–3.2 s.
2. Comenzar desde la plantilla
cp -R templates/chop-reel videos/<nombre> && cd videos/<nombre>
../../.venv/bin/python score.py # escribe assets/audio/score.wav
python3 build.py 169 # escribe index.html (16:9); build.py 916 para 9:16
npx --yes [email protected] lint && npx --yes [email protected] render -o ../../out/<nombre>-169.mp4
Estructura de reel.js — editar en este orden:
- Escenas:
function scene(g, l)dibuja un fotograma completo en el tiempo locall. Usa unidades relativas (W,H,M,PORT) para que ambos aspectos funcionen;fit()reduce el texto a un ancho máximo. - SHOTS:
[t0, t1, scene]— la edición.null= cubierto por una transición. - Listas de FX:
PUNCH(zoom 1.06× que decae en 0.2 s en cada corte + beats adicionales),FLASH(blanco de 2 fotogramas en caídas, medio blanco en cortes de sección),SHAKES[inicio, duración, amp],WHIPS(empuje con desenfoque de movimiento entre escenas, 9 subfotogramas renderizados promediados). - Los clips de video (arte huashu, renders de caption-kit, tomas de IA) van encima como
<video class="clip">enbuild.pycon sus propios tweens de punch en GSAP; el lienzo dibuja negro debajo.
3. Biblioteca de movimientos
Para movimientos nombrados usa la habilidad motion-prompt: node ~/.claude/skills/motion-prompt/scripts/motion-prompt.mjs get 001 043
devuelve la especificación publicada de cada movimiento (curvas, duraciones, overshoot). Transfiere los números exactamente a reel.js y
cítalos en un comentario (// #043 barrido: …) — el usuario nota cuando los movimientos están "inspirados en" en lugar de usados.
Útiles: #001 pop-in, #005 revelación de máscara, #007 contador, #008 tipo cinético, #010 overshoot, #017 máscara, #020 zoom
a través, #023 glitch, #024 impacto de vibración, #038 rampa de velocidad, #040 fotograma congelado, #043 barrido, #046 corte de impacto.
4. Sonido
Usa la habilidad score: copia examples/phonk_150bpm_45s.py para una partitura trap/phonk de longitud completa, o extiende el
score.py de la plantilla. Cada golpe/ destello en reel.js recibe un hit al mismo tiempo (impacto, aplauso, riser en caídas, scratch de disco en el congelado, silencio antes del corte de impacto). VO vía Kokoro, atenuada; leyendas vía caption-video.
5. Verificar y entregar
- Toma una instantánea de cada sección en ambos aspectos y revisa: nada recortado en 9:16, texto ≥ 4% del lado corto.
- Renderiza ambos, loudnorm −14 LUFS, envía ambos. Nombra
out/<Título> (16x9).mp4/(9x16).mp4. - Revisiones: cambia SHOTS / funciones de escena → reconstruye ambos aspectos → renderiza.