¿Qué hace ErtanLabs Motion?
El trabajo de motion graphics se vuelve genérico de una manera predecible: cada decisión que un brief deja abierta se llena con lo más común, y un video ensamblado a partir de decisiones comunes es indistinguible de miles de otros. Esta habilidad hace explícitas las decisiones abiertas, les da a cada una una fuente trazable, renderiza de manera determinista y mide el archivo antes de que nadie lo vea.
Regla de la casa: cada elección visible tiene un dueño. Si no puedes señalar de dónde vino una fuente, un color, una curva o un sonido, nadie la eligió.
La ruta
| Fase | Paso | Deja atrás |
|---|---|---|
| A · Decidir | A1 Sondear la máquina | Resultado de --doctor, backend elegido |
| A2 Desglosar el brief | Logline, lienzo, inventario, banda sonora, barreras de seguridad, suposiciones etiquetadas | |
| A3 Encontrar el mundo fuente | El artefacto cuya gramática toma prestada la pieza, dispositivo narrativo, beat héroe | |
| A4 Escribir lo predeterminado, luego anularlo | La versión más común y sus reemplazos | |
| A5 Mantener el libro de decisiones | ledger.md junto a la composición | |
| B · Hacer | B1 Planificar en fotogramas | Hoja de ritmos con pausas planificadas |
| B2 Pesar cada elemento | Clases de peso, líder y seguidor | |
| B3 Dejar que el mundo establezca tipo, color, sonido | Filas del libro de decisiones completadas desde la fuente | |
| B4 Probar, luego renderizar | Fotogramas héroe inspeccionados, luego el archivo | |
| C · Probar | C1 Medir y observar | Informe de check.py, hoja de contactos, índice de pistas |
| C2 Etiquetar afirmaciones y entregar | Entrega agrupada por evidencia |
Modos de trabajo
- Sprint (piezas cortas de una sola idea, o 'solo hazlo'): elige tú mismo el mundo fuente, escribe un libro de decisiones de cinco líneas (logline, mundo, beat héroe, tres valores predeterminados reemplazados, lienzo), construye. La prueba y la medición aún se ejecutan.
- Estudio (trabajo de marca, piezas más largas, briefs poco claros): renderiza el fotograma héroe para dos mundos fuente candidatos con
--stillsy muestra las dos imágenes una al lado de la otra; la gente juzga las imágenes más rápido que las descripciones. El usuario elige; si no hay nadie disponible, quédate con aquel cuyo fotograma héroe sobreviva al escrutinio de la miniatura (C1) y anota por qué en el libro de decisiones. - Serie (episodios para un canal o campaña): primero lee cada
ledger.mdanterior en el proyecto. Un nuevo episodio no puede repetir tanto el mundo fuente anterior como la estructura de beat héroe anterior; las constantes de marca llevan una etiquetafixedy están exentas. - Revisión (notas sobre una pieza entregada): mapea cada nota a filas de la hoja de ritmos y escribe el cambio como un diff de la hoja de ritmos, fila antigua → fila nueva. Ejemplo: 'demasiado lento al inicio' →
grid 6-30 → 4-16,hold 30-60 → 16-40, cada fila posterior se desplaza −20 fotogramas. Renderiza solo el rango cambiado (--range) para revisión, luego la pieza completa, y agrega el diff al libro de decisiones. - Explicador narrado (videoensayos, documentales, historia, dinero, crimen o historias científicas impulsadas por voz en off, looks de collage de papel): la narración es el reloj y cada oración se convierte en un beat. Dos reglas llevan la mayor parte de la calidad: una pausa termina con su oración, y cada hecho en pantalla se habla o se obtiene de una nota adhesiva. Lee
references/paper-collage-explainer.mdy comienza desdeassets/collage-template.html.
Nivel de producción
Independientemente del modo, cada pieza tiene un nivel, escrito en el libro de decisiones:
- Gráfico (predeterminado): la gramática del mundo fuente sobre un lienzo plano. Adecuado para superposiciones, tercios inferiores, piezas de UI, datos impactantes y cualquier cosa que un editor componga.
- Película: el artefacto en su lugar, visto a través de una cámara, iluminado por una fuente que el mundo explica, con materiales, vida entre los beats, tres o cuatro escenas y sonido diseñado con música. Adecuado para carretes de muestra, páginas de aterrizaje y páginas principales de repositorios, películas de marca, lanzamientos, exhibiciones de mapas y rutas, y cada vez que alguien pide 'cinematográfico', 'animado', 'premium' o 'menos plano'. Lee
references/film-level.mdantes de planificar; agrega una lista de escenas encima de la hoja de ritmos y sus propias comprobaciones.
Fase A · Decidir
A1 Sondear la máquina
node scripts/render.mjs --doctor
La salida decide el backend: Node, Playwright o un Chrome/Edge instalado, ffmpeg, ffprobe, NVENC. Reportarlo al usuario en una línea. Si la ruta HTML no está disponible, B4 enumera las alternativas; si el usuario ya tiene un proyecto de Remotion o HyperFrames, trabaja dentro de él.
A2 Desglosar el brief
- Logline: la oración única que dice el video. Sin una, la pieza se convierte en decoración; redacta una y confírmala.
- Lienzo: relación de aspecto, duración, fps, destino. Tamaños y zonas seguras:
references/formats-and-safe-zones.md. - Inventario: metraje, capturas de pantalla, logotipos, fotos, datos, placas de IA. El material existente da forma al concepto en lugar de superponerse a él.
- Banda sonora: voz en off, música o ninguna. Con VO o música, el audio establece el tiempo (
references/sound-and-sync.md). El audio que el usuario proporciona es definitivo: nunca agregues ni elimines pausas, cortes, estiramientos o cambies el tiempo sin el consentimiento del usuario; ajusta la imagen en su lugar. - Barreras de seguridad: fuentes y colores de marca, elementos requeridos y prohibidos, fecha límite.
Las incógnitas se convierten en suposiciones en el libro de decisiones, etiquetadas assumed. Haz una pregunta solo cuando la respuesta cambiaría el mundo fuente.
A3 Encontrar el mundo fuente
No elijas 'un estilo'. Elige un artefacto real del mundo del tema y toma prestada su gramática: una tabla de mareas, un prospecto de farmacia, un tablero de salidas de aletas divididas, un rollo de sismógrafo, un dossier censurado, un escritorio de editor con recortes. Un artefacto resuelve varias decisiones juntas – el tipo en el que está configurado, las tintas y materiales que dan la paleta, la forma en que las cosas cambian en él (voltear, imprimir, sellar, rellenar, trazar), su superficie – para que las decisiones concuerden entre sí.
- Enumera cinco artefactos que las personas que viven con el tema realmente manejan o leen.
- Prefiere aquel que tenga movimiento incorporado: algo que se voltea, imprime, rellena, traza, sella o se desplaza por sí mismo.
- Toma prestadas reglas, no imágenes. No una foto de un boleto detrás del texto, sino la lógica del boleto: una perforación separa, un número de serie cuenta, un sello cancela.
references/source-worlds.md describe 31 mundos agrupados por la forma en que se mueven. Trátalo como calibración; el mejor mundo para un trabajo a menudo no está en la lista.
Nombra dos cosas más:
- Dispositivo narrativo: una oración sobre cómo el logline se vuelve visible ('la curva de marea traza y el agua en el marco sigue la pluma').
- Beat héroe: el beat que lleva el logline. Obtiene la pausa planificada más larga y el cambio más grande de estado o escala en la pieza. Después del renderizado, la pausa más larga que mide
check.pydebería ser la del héroe; si no lo es, el énfasis está en el lugar equivocado. Bajo una voz en off, la pausa aún termina con su oración y la pausa después de ella. Si el héroe necesita más tiempo, pide una pausa más larga mientras la voz aún se está escribiendo o grabando; con una voz en off terminada, haz que la pausa encaje, y nunca mantengas la imagen sobre la siguiente línea.
A4 Escribir lo predeterminado, luego anularlo
La primera idea suele ser la más común. Hazla visible, luego reemplázala:
- Escribe la versión predeterminada de este video en una línea honesta: lo que un modelo promedio haría a partir de esta indicación.
- Elige al menos tres decisiones en esa línea (tipo, paleta, diseño, entrada, transición, sonido) y escribe un reemplazo para cada una con su fuente: el mundo fuente, el material, los datos o la banda sonora.
- Un valor predeterminado que no puedas reemplazar con una razón puede quedarse; va al libro de decisiones marcado
owned default.
A5 Mantener el libro de decisiones
Llénalo antes de construir, muéstralo y guárdalo como ledger.md junto a la composición. También es la memoria para el próximo episodio.
LEDGER · <proyecto> · <fecha>
Logline:
Lienzo: 1080×1920 · 30 fps · 8 s · Reels · zona segura: vertical
Mundo fuente:
Dispositivo narrativo:
Beat héroe (fotogramas):
Versión predeterminada (una línea):
| Capa | Decisión | Fuente / razón | Valor predeterminado que reemplaza |
|-------------|---------------------------|--------------------------------|-------------------------------------|
| Tipo | | | |
| Paleta | valores hex + trabajo de cada | muestreado de ... | |
| Diseño | | | |
| Base de tiempo | fps, clases de peso, pausas | | |
| Textura | | | |
| Sonido | | | |
| Transiciones | | | |
Derechos (fuentes, música, datos, imágenes):
Suposiciones:
Fase B · Hacer
B1 Planificar en fotogramas
Una hoja de ritmos es una hoja de exposición compacta: movimiento escrito como datos antes del código. Los rangos son [entrada, salida) en fotogramas; las pausas tienen sus propias filas.
HOJA DE RITMOS · 30 fps · 240 fotogramas (8 s) · 1080×1920
| Beat | Fotogramas | Elemento | Clase | Acción | Carga | Sonido |
|------|------------|--------------|-----------|---------------------------------|---------------|---------------|
| 1 | 6-30 | cuadrícula | marca | las líneas trazan, escalonadas | entra | pluma |
| 1 | 30-60 | - | | PAUSA | | |
| 2 | 60-168 | curva de marea | pieza clave | traza; el agua sigue la punta | enlaza | oleaje bajo |
| 2 | 168-198 | - | | PAUSA (héroe) | | silencio |
| 3 | 198-200 | titular | sello | aterriza en el agua | aterriza | un golpe |
PAUSAS: 30-60, 168-198, 200-240 → proporción de pausas planificadas 42%
Carga nombra lo que el espectador gana: un elemento entra, dos cosas se enlazan, un estado cambia, o un beat aterriza en la banda sonora. Una celda de Carga vacía marca decoración; córtala.
Proporción de pausas es la parte de los fotogramas en los que nada significativo se mueve. Los explicadores y títulos suelen estar alrededor del 20-35%, los montajes con corte musical más bajos, las piezas contemplativas más altas. El grano y la deriva lenta de menos de 2 px son textura, no movimiento. check.py mide la proporción para que se pueda comparar el plan y el resultado.
Con VO o música, convierte las marcas de tiempo de palabras y beats a números de fotograma y escríbelos en la hoja. Bajo una voz en off, cada beat también obtiene una señal, su primera palabra acentuada: el elemento principal del beat está en su lugar para la señal, y ninguna pausa se extiende a la siguiente oración.
B2 Pesar cada elemento
Dale a cada elemento una clase de peso; la clase elige su curva y duración del conjunto en references/motion-and-timing.md, para que las duraciones difieran porque las masas difieren, no por gusto.
| Clase | Elementos típicos | Llega | Sale | Curva |
|---|---|---|---|---|
| atrezo | puntos, etiquetas, números pequeños | 6-12 f | 4-8 f | settle entrada, launch salida |
| panel | títulos, tarjetas, bloques de gráficos | 14-24 f | 10-16 f | heavy |
| pieza clave | cámara, planos de agua, mapas, campos grandes | 30-90 f | 20-45 f | heavy; linear para maquinaria |
| marca | líneas, rutas, subrayados, escritura a mano | longitud ÷ ~30 px por fotograma | se desvanece | pen |
| sello | cancelaciones, valores finales, cortes | 1-2 f | - | step |
- Líder y seguidor. En cualquier momento, un movimiento lidera; cualquier otro movimiento es causado por él (la pluma alcanza el extremo, por lo que su etiqueta se abre).
- Orden de dependencia. Un elemento aparece solo después de que aquello de lo que depende está en pantalla: un eje antes de sus datos, una ruta antes de su marcador.
- Fotograma de póster. El fotograma 0 suele ser la miniatura, así que compónlo como una imagen terminada y legible y deja que el movimiento crezca a partir de él.
- Puro en fotogramas. Cada valor se calcula únicamente a partir del número de fotograma: nada de CSS de tiempo real, temporizadores o aleatoriedad sin semilla (
references/composition-contract.md).
B3 Dejar que el mundo establezca tipo, color, sonido
- Tipo se hereda del mundo fuente. El énfasis debe sobrevivir al escrutinio de la miniatura (C1): una palabra marcada solo por tono desaparece en tamaño pequeño en escala de grises, así que enfatiza con tamaño, peso, colocación o tiempo. Establece
<html lang>y usa mayúsculas sensibles a la configuración regional;render.mjsprueba los glifos del texto realmente en la página. Detalles:references/typography.md. - Color: cada color tiene un trabajo nombrado (fondo, tipo, señal, una serie de datos). Un color sin trabajo se elimina. Muestra valores en lugar de inventarlos:
python scripts/check.py --palette reference.jpg. Detalles:references/color-and-texture.md. - Declaraciones de sonido solo son 'Medido' o 'No verificado', porque el audio no se puede inspeccionar visualmente. Cada entrada en la columna de Sonido apunta a una causa visible o al lecho. Detalles:
references/sound-and-sync.md.
B4 Probar, luego renderizar
| Backend | Cuándo |
|---|---|
HTML + render.mjs | Predeterminado siempre que --doctor pase. Comienza desde assets/composition-template.html (o assets/collage-template.html para explicadores narrados); contrato en references/composition-contract.md. |
| Remotion / HyperFrames | El usuario ya trabaja en uno. Mismo libro de decisiones y hoja de ritmos, sintaxis diferente: references/backends.md. |
| Vista previa de artefacto | Solo si el entorno ofrece un tipo de artefacto de movimiento o video, y solo como vista previa; un entregable sigue siendo un archivo renderizado. |
| Placas | Toma que el código no puede dibujar de manera convincente (personas, lugares reales en movimiento) provienen de metraje o un modelo de video como placas sin texto; todo lo tipográfico permanece en la composición. references/backends.md. |
Mapas, globos y rutas: también lee references/maps.md (§7a para rutas de exhibición).
Prueba el beat héroe antes de construir el resto:
node scripts/render.mjs comp/index.html --stills 0,170,last # póster, héroe, fotograma final
node scripts/render.mjs comp/index.html --range 150-210 --scale 0.5 # beat héroe a la mitad de tamaño
node scripts/render.mjs comp/index.html -o comp/out.mp4 # renderizado completo
node scripts/render.mjs comp/index.html --alpha -o comp/overlay.mov # ProRes 4444 con alfa
Abre las imágenes de prueba con tu herramienta...