¿Qué hace motionproof?
Eres el director, el diseñador y la persona que verifica el trabajo. Tú decides qué hace creer la película al espectador, la construyes y luego la mides como lo haría un desconocido. Un número de un script tiene más peso que tu impresión del render. SKILL a continuación significa la carpeta que contiene este archivo.
Los comandos están escritos para cualquier shell. En Windows usa python (o py -3) donde dice python; las rutas con espacios van entre comillas. PowerShell no tiene &&: ejecuta un comando por línea.
Las cinco reglas
- Una idea que la marca posea. Cubre el logo: si un competidor pudiera mostrar el mismo video, empieza de nuevo. La idea proviene del material propio de la marca (su producto, su gesto, su trabajo, su lugar), nunca de la primera asociación de su nombre.
- Cada beat compra una creencia. Escribe "después de este beat el espectador cree ___" para cada beat. Si no puedes completar el espacio, elimina el beat. Muestra lo que sucede, luego dilo, nunca solo lo digas.
- Nunca el mismo video dos veces. Antes de hacer el storyboard, ejecuta el ledger. Se rechaza una pista, concepto o salida repetidos, o la mitad de los ejes de un video reciente.
- Medido, luego juzgado. Ejecuta los scripts; cita sus números en
NOTE.md. Cualquier cosa que un script pueda medir es una puerta de control. Lo que no puede medir, lo miras y dices que lo miraste. - Legible en un teléfono. Texto suficientemente grande, con suficiente contraste, dentro del área segura de la plataforma, en pantalla el tiempo suficiente para leerlo. Vertical es el valor predeterminado para redes sociales, no una ocurrencia tardía.
Flujo de trabajo
0. Máquina (10 s)
node "SKILL/scripts/doctor.mjs"
Se detiene si falta ffmpeg, Node < 22 o menos de 20 GB libres. Se necesita un navegador (Chrome o Edge) solo para videos HTML.
1. Brief
Escribe en cuatro líneas: quién mira, dónde (plataforma y relación de aspecto), qué deberían hacer después, qué deberían sentir. Luego la única verdad para la que es el video: una característica real, un resultado real, un momento real. Afirma suposiciones en lugar de detenerte para hacer preguntas rutinarias; pregunta solo cuando el brief sea genuinamente ambiguo (qué marca, qué plataforma, qué oferta).
2. Tres ideas, luego una
Escribe tres ideas de diferentes tipos (consulta references/direction.md: documental de una tarea, un plano fijo único, una cuenta regresiva, un diagrama que se construye, el viaje de un objeto, un corte de antes/después, y más). Ejecuta la prueba de cubrir el logo en cada una. Elige una y escribe por qué en una línea.
3. Ledger
python "SKILL/scripts/ledger.py" suggest --brand "<marca>"
python "SKILL/scripts/ledger.py" check --brand "<marca>" --concept <x> --opening <x> --transition <x> --camera <x> --type <x> --palette <x> --texture <x> --track <x> --exit <x>
Salida 1 significa que la combinación repite un video reciente o rechazado: cambia los ejes que nombra. El ledger reside en el proyecto (motion-ledger.jsonl, o $MOTIONPROOF_LEDGER). Si el proyecto ya mantiene su propia biblioteca de videos anteriores, léela también.
4. Storyboard (STORYBOARD.md)
Formato y preajuste de zona segura (references/formats.md), el suelo/luz/textura de cada acto, el momento héroe (el fotograma que vale una captura de pantalla), y la tabla de beats: tiempo en fotogramas, rol (gancho, giro, prueba, cierre), qué cree el espectador después, qué se mueve, curva de entrada y salida (references/motion-catalog.md), cómo entrega al siguiente beat, y el texto en pantalla con su tiempo mínimo de lectura (0.5 s + caracteres / 17). Si el texto de un beat no cabe en su tiempo, recorta palabras, no tiempo.
5. Construye el beat más difícil primero
Elige el adaptador (references/adapters.md):
- HTML plano: copia
templates/film.htmlytemplates/kit.jsen la carpeta del video. - HyperFrames: mantén su composición; los scripts manejan
window.__timelines. - Remotion: copia
adapters/remotion/ensrc/; usaease(),dur(),safeBox(),readingFrames(),<SafeGuide/>.
Construye el momento héroe y su transición más difícil, renderiza fotogramas y míralos antes de construir el resto:
node "SKILL/scripts/render.mjs" film/index.html --still 0.5,2.2,4.0 --out film/stills (HTML / HyperFrames)
npx remotion still <Comp> film/stills/f60.png --frame=60 (Remotion)
6. Render de borrador y controles
node "SKILL/scripts/render.mjs" film/index.html film/draft.mp4 --scale 0.5
node "SKILL/scripts/probe.mjs" film/index.html --zones reels
python "SKILL/scripts/review.py" film/draft.mp4 --zones reels --expect <segundos> --exit-required
probe.mjs lee el DOM vivo (HTML y HyperFrames): tamaño L1, contraste L2, zona segura L3, texto recortado L4, tiempo de lectura L5; también advierte sobre el aspecto de presentación de diapositivas (W3 kicker sobre titular, W4 diseño de diapositiva, W5 titular escrito, W6 barra de progreso, W7 tarjeta UI genérica). Añade --strict-style cuando el brief pida cine, no interfaz; un patrón que sea la idea recibe data-allow-<nombre> o data-ui y una línea en NOTE.md (tabla en references/review.md). review.py lee los píxeles de cualquier MP4 (también Remotion y archivos editados): R1 render, R2 silencio, R3 final, R4 destellos, R5 píxeles de zona segura, R6 sonido. Abre sheet.jpg de la carpeta de revisión: las bandas rojas son los márgenes de la plataforma. Describe cada fotograma de la hoja en una oración (qué hay en pantalla, hacia dónde va el ojo) antes de juzgar nada.
Corrige en este orden: falso o roto; la idea; las transiciones entre beats; jerarquía y escala; ritmo; superficie; sonido. Un FALLO se arregla, nunca se discute. Una ADVERTENCIA se mira y se arregla o se explica en NOTE.md.
7. Sonido
Música en la cuadrícula: python "SKILL/scripts/beats.py" grid --bpm <bpm> --fps 30 --duration <s> da los fotogramas de beat para cortes y golpes. Si hay una herramienta de sonido disponible en el entorno (un banco de efectos de sonido, una herramienta de análisis de audio), úsala para elegir y colocar golpes. Silencio antes del gran golpe; baja la música debajo de la lectura. Luego:
python "SKILL/scripts/master.py" film/final-raw.mp4 film/final.mp4 --target reels --fade 1.0
8. Control final, nota, ledger
python "SKILL/scripts/review.py" film/final.mp4 --zones reels --target reels --expect <s> --expect-audio --exit-required --fade-required
python "SKILL/scripts/beats.py" check --bpm <bpm> --report film/final-review/report.json
python "SKILL/scripts/ledger.py" add --brand "<marca>" --film <nombre> <los mismos ejes que en el paso 3>
Escribe NOTE.md: la idea y por qué; cada beat y qué compra; qué es real y qué es ilustrativo; las líneas de control copiadas de probe.mjs y review.py; las descripciones de fotograma en una oración; qué mejorarías aún. Nunca escribas que el video es bueno: escribe lo que revisaste. Cuando el espectador reaccione, regístralo: ledger.py verdict --film <nombre> --verdict approved|rejected --note "<sus palabras>". Una combinación rechazada queda bloqueada para todo video futuro.
Nunca enviar
- Un video que nadie miró, o con controles reclamados sin las líneas del script.
- Texto debajo de la interfaz de la plataforma, cortado por el borde del fotograma, más pequeño que el 3.1 % del lado corto, con contraste inferior a 4.5:1, o que desaparece antes de poder leerse.
- Más de tres destellos en cualquier segundo.
- Un fotograma terminado mantenido más allá del límite de retención final; una imagen congelada en medio; un final que simplemente se detiene (usa un movimiento de salida y un fundido de sonido).
- La misma pista, concepto o salida que el último video de la marca.
- Decoración de interfaz de página: etiquetas de esquina, contadores "01 / 04", códigos de tiempo, barras de progreso. Permitido solo cuando es la idea en sí misma (una sala de control, una cuenta regresiva): entonces márcalo
data-diegetic(odata-uipara una pantalla de producto real) y di por qué enNOTE.md. - Números, testimonios o interfaces inventados mostrados como reales.
Archivos
| ruta | qué es |
|---|---|
references/direction.md | brief, tipos de idea, beats y qué compran, transiciones, notas de copy en portugués |
references/motion-catalog.md | curvas, duraciones, escalonamientos, pausas, cómo elegir |
references/formats.md | relaciones de aspecto, zonas seguras, tamaños de tipo por formato |
references/sound.md | cuadrícula de música, golpes, objetivos de sonoridad, fundidos |
references/review.md | cada puerta de control, su número, lo que no puede ver |
references/adapters.md | contratos HTML, HyperFrames y Remotion |
data/*.json | zonas, objetivos de sonoridad, tokens de movimiento, vocabulario del ledger (edita estos, no los scripts) |
scripts/ | doctor, render, probe, review, master, beats, ledger |
templates/ | film.html y el runtime kit.js sin dependencias |
adapters/ | ayudas de Remotion y notas de HyperFrames |