Narrativa visual para vídeo
Cómo construir la capa visual de un vídeo extenso para que un espectador siga orientado en el minuto nueve. Se aplica a cualquier vídeo con presentador que habla a cámara y con guion: una noticia, un análisis en profundidad de un solo tema, una comparación, un tutorial, una lista.
El fallo que esto reemplaza es el pensamiento basado en escenas. Un nuevo gráfico cada pocos segundos obliga al espectador a reiniciar la comprensión cada pocos segundos, y ningún gráfico individual tiene la culpa, por lo que la retroalimentación llega como el vago «confuso» o «demasiado movimiento» en lugar de un defecto específico.
Para una hoja de práctica neutral, lee docs/STORYTELLING-WORKBOOK.md en la
raíz del repositorio. El sistema de diseño reutilizable está en
reference/design-system.md de esta skill; la geometría de bucle abierto trabajada está en
reference/patterns/wall-of-slots/. No se requieren vídeos fuente privados.
Esto no es hyperframes-video-beats. Esa skill coloca tarjetas superpuestas sobre un
presentador. Esta diseña la cosa de la que trata el vídeo.
1 · Los cuatro principios
Un mundo persistente
El vídeo vive en un espacio único y nunca se reinicia. Todo lo que el espectador ya ha visto sigue existiendo donde lo dejaron, y el material nuevo se añade en lugar de reemplazarlo. Un elemento, una vez dibujado, nunca se redibuja, mueve ni reetiqueta.
Todo lo demás en esta skill depende de eso. La cámara no tiene adónde ir si el espacio sigue cambiando, un foco no significa nada si no hay nada más en pantalla, y un bucle abierto no puede permanecer abierto en un mundo que se reinicia.
El mundo también tiene que valer la pena habitarlo, así que decide la gramática espacial antes de construir nada y mantenla durante toda la duración. En la construcción de referencia: izquierda a derecha es hacia el resultado, arriba es hacia un humano y es lo único cálido en pantalla, abajo es hacia un sistema de registro. Un espectador que aprende eso en los primeros dos minutos lee el resto del vídeo sin esfuerzo.
Rompe la gramática exactamente una vez, deliberadamente, para dar significado. El único movimiento de derecha a izquierda en diez minutos de la construcción de referencia es un ticket resuelto que vuelve a la cola con las palabras «tasa de reapertura». Aterriza sin una palabra porque la dirección había significado algo durante los tres minutos anteriores.
La cámara es la edición
Cortar a un nuevo gráfico le cuesta al espectador su orientación cada vez. Moverse por un espacio que permanece fijo no les cuesta nada. Un acercamiento entonces se lee como «mira más de cerca la parte de la cosa que ya entiendes», y el alejamiento es donde el trabajo da sus frutos, porque todo lo construido hasta ahora sigue ahí.
Trabaja en tres altitudes y muévete entre las adyacentes:
| Altitud | Muestra | Usado para |
|---|---|---|
| Mundo | todo el espacio | orientar, culminaciones, «aquí es donde estamos» |
| Región | el subgrafo en discusión | la mayor parte del tiempo de ejecución |
| Detalle | un elemento | un número, un cambio de estado, una decisión |
Saltar de detalle a mundo es desorientador a menos que sea un golpe de culminación deliberado, en cuyo caso es el mejor movimiento disponible.
Reglas que cuestan una reconstrucción cada una para aprender:
- Nombra los encuadres como ventanas exactas del mundo, no como factores de escala. Los límites de la ventana deben caer entre etiquetas. Especificar un encuadre como «escala 0,6» corta palabras por la mitad en el borde del encuadre.
- Reutiliza la misma ventana para el mismo propósito. Si el plano de orientación es una ventana particular, usa siempre esa ventana exacta. Los encuadres casi idénticos se leen como deriva.
- Varía la duración con la distancia recorrida, no con un ajuste preestablecido global.
- Las transiciones de cámara y de pantalla completa se secuencian, nunca se superponen. Concurrentes, decapitan el contenido. Primero la cámara, luego la transición.
- Una capa de cubierta se vuelve opaca antes de que la cámara se mueva debajo de ella. Si se invierte, parte del movimiento queda expuesto y se lee como un corte brusco.
- Ninguna etiqueta a menos de 60 px del borde del encuadre. Un elemento puede sangrar y leerse como «el mundo continúa»; una palabra cortada a mitad de glifo se lee como un error. Resuélvelo mediante colocación, no mediante enmascaramiento, ya que un difuminado no puede atrapar una cuchilla que viaja a ~1800 px/s.
- Dos movimientos secuenciales sobre el mismo sujeto se leen como un fallo. Una reencuadre que termina y LUEGO una transición que comienza es un zoom, una parada en seco y un segundo movimiento: el cliente lo llama «un fallo y una pausa». Fúndelos en UN gesto: suavizado simétrico compartido (power2.inOut), aterrizando en el mismo encuadre, de modo que el panel se lea como si empujara el metraje a un lado. Relacionado: los suavizados frontales (power3/4.out) en un movimiento de metraje visible concentran frontalmente ~90% del recorrido y se arrastran hasta detenerse; resérvalos para las entradas de elementos, donde el arrastre se lee como asentamiento. (Costó una revisión marcada por el cliente en la introducción del ejemplo trabajado).
La atención es un foco
Exactamente un elemento a pleno brillo en cada momento. Todo lo demás ya dibujado permanece tenue pero legible. No opcional. Esta es la regla que permite que un mundo se acumule hasta una docena de elementos sin sentirse nunca recargado, y es lo que hace que el alojamiento sea legible en lugar de abrumador.
La jerarquía proviene de la PROPORCIÓN entre activo y tenue, nunca de oscurecerlo todo. El primer prototipo de la construcción de referencia tenía un píxel más brillante de 101/255 y era ilegible a 960x540; la solución fue tinta más brillante, no más oscura.
| Estado | Luminancia objetivo (Y, 16-235) | Opacidad en la referencia |
|---|---|---|
| Trazo + etiqueta activos | 200-235 | 1,0 |
| Contexto, dibujado y aún relevante | 120-150 | 0,56 |
| Gastado, ya dijo lo suyo | 85-105 | 0,33 |
| Cualquier etiqueta, cualquier estado | nunca por debajo de 90 |
La implementación es una función, llamada en cada golpe de narración con los identificadores que se
están mencionando (build_s01.py, lit()):
def lit(t, active, warm=(), dur=0.5, floor=FLOOR):
active = list(active) + [g + "-l" for g in active if g + "-l" in order]
for gid in order:
if gid not in opac: # nunca dibujado: nada que iluminar
continue
tgt = 1.0 if gid in active else (WARM if gid in warm else floor)
if gid not in active:
tgt = min(tgt, MUTED.get(gid, 1.0))
...
Tres detalles en eso son fundamentales:
- Una etiqueta siempre hereda el estado de su elemento (la incorporación del sufijo
-l). Un elemento iluminado con una etiqueta ilegible debajo es exactamente el defecto que se está corrigiendo. - Un accesorio que está terminado se retira a opacidad 0, a través de un tope
MUTED, no a 0,3. Silenciar a 0,3 deja confeti inexplicable en pantalla durante el resto de la sección. Regla del generador: emite elmute()antes de cualquierlit()que comience más tarde, o el silencio se sobrescribe cuando se completa su interpolación. - Los eventos de opacidad deben emitirse en orden de la línea de tiempo o el rastreador ve estado
obsoleto y calcula el objetivo incorrecto. Mantén una guardia
seq()que lance una excepción en la emisión fuera de orden. - Una autoridad de opacidad por elemento por ventana. Dos interpolaciones simultáneamente
activas que impulsan la opacidad del mismo elemento a valores diferentes se renderizan sin problemas
en una sección independiente, pero estroboscópicas a ~10 Hz en el montaje maestro, donde la
interpolación ganadora alterna por fotograma. La construcción de referencia envió este defecto en
cada muelle. Cuando un barrido como
lit()se superpone a un brillo o silencio explícito, la interpolación que comienza más tarde es el único controlador y el barrido omite esos identificadores (lit(..., skip=(...))). Verifícalo: escanea los renderizados montados en busca de picos de luminancia de ida y vuelta de un fotograma en cada ventana de transición (qa/v4/flicker/qa-flicker.mjsen la construcción de referencia).
Los bucles abiertos son espaciales
Nunca digas «volveremos a esto.» Deja algo visiblemente incompleto en el mundo y regresa a ello. Una promesa que el espectador puede ver es una promesa que pueden sentir pendiente.
El mecanismo es idéntico cualquiera que sea la forma:
- Plántalo en el gancho, en el espacio, en la línea que hace la promesa.
- Vuelve a mostrarlo en cada límite. Cualquier traspaso de sección es un límite. El volver a mostrar cuesta unos dos segundos y es el mecanismo de retención; saltarlo es cómo una culminación termina no dando frutos.
- Avanzalo visiblemente. El espectador debe ver reducirse la incompletitud.
- Cierra en la imagen con la que abriste.
Elige la forma del guion:
| Forma del guion | El mundo | Qué está incompleto |
|---|---|---|
| N elementos paralelos | N enchufes en un eje | ranuras vacías (ver reference/patterns/wall-of-slots/) |
| Un proceso, en profundidad | la tubería completa, dispuesta | un enlace roto o faltante |
| Niveles o capas | una pila que se construye hacia arriba | la parte superior de la pila es un fantasma |
| Comparación | dos columnas en un eje compartido | una columna vacía, o una tarjeta de puntuación sin llenar |
| Noticias o anuncio | una línea de tiempo, o un mapa del paisaje | el lado derecho, el futuro, está en blanco |
| Tutorial o construcción guiada | la arquitectura terminada, fantasma | cada nodo aún no construido |
Entregar un elemento a su ranura es un movimiento de cámara en vivo, ~1,4 s, nunca un corte a una imagen pre-hecha del estado lleno. El espectador ve la cosa que acaba de aprender convertirse en la ficha. Si el vídeo tiene un número o contador, gíralo dentro de ese mismo movimiento, como un odómetro, con el mismo inicio, duración y suavizado para ambos números, o se fusionan en una banda a medio camino.
El contador necesita un nombre, no solo un número. Un número en la esquina le dice al espectador dónde están en la secuencia, pero no qué es el elemento actual; nueve minutos después, «03» no transmite nada. Empareja el número con una etiqueta de 1-2 palabras que nombre el elemento actual (SOPORTE, VOZ IA), en la misma química de placa, moviéndose como una sola fijación rígida con el número, intercambiando dentro del mismo giro de odómetro. La revisión del cliente de la construcción de referencia pidió exactamente esto: los visuales eran buenos y el espectador aún perdía el rastro de qué caso de uso estaba en pantalla.
2 · Disciplina
Si no recibe una palabra, no se dibuja
Cada forma es un elemento etiquetado, un conector entre elementos etiquetados, el sujeto viajero o el fondo ambiental. Nada más.
Esto provino de una revisión de prueba silenciada que obtuvo una comprensión de 7/10 y nombró la causa: el diagrama estaba limpio, las decoraciones no. Una docena de formas no etiquetadas dibujadas con el mismo grosor y paleta que las significativas, por lo que un espectador por primera vez no puede distinguir la señal de la textura y dedica atención real a decodificar cosas que nunca pretendieron ser decodificadas. Eso es «demasiado movimiento» reubicado de palabras a formas.
Presupuesto: ~20 palabras en pantalla por sección. Sin oraciones. Las etiquetas son de 1-2 palabras, debajo de su elemento. La sección de referencia 1 tiene 21 palabras en 84 segundos.
Corolario: un visual anti-patrón nunca superpone la recomendación. Lleva el mundo al casi negro primero, o coloca el contraejemplo donde no esté el buen diagrama.
Dale al espectador una cosa a seguir
Lleva la historia en un solo sujeto viajero cuyo estado cambia visiblemente: un chip con filas de datos y una barra de puntuación, un documento, una solicitud. Las filas se llenan, una barra se mueve, un borde cambia de color. Un espectador debe poder seguir una sección completa mirando ese único objeto, y nunca debe teletransportarse; se mueve a lo largo de conectores dibujados a una velocidad constante.
Un conjunto global de fichas
Detalle completo en reference/design-system.md.
| Ficha | Valores |
|---|---|
| Trazo | 1.5 / 2.5 / 4 / 7, y nada más |
| Tipo | 22 / 30 / 42 / 60 / 84 |
| Radio | 10 / 22 / 40, siempre superelipse(2) |
Cinco colores, cinco significados fijos, cero decoración. Cálido significa que un humano está involucrado y nada más es nunca cálido. Nunca blanco puro para el tipo; halata sobre oscuro.
El fallo que esto previene, de la revisión artesanal de la primera construcción: «cada decisión se tomó local y correctamente; ninguna decisión se tomó globalmente.» 18 grosor de trazo y 9 tamaños de tipo, la mayoría de ellos separados por 0,2, individualmente invisibles y colectivamente fatales. El ojo recibe ruido en lugar de jerarquía. Verifícalo con un linter de fichas que haga fallar la construcción.
Movimiento
Entradas en cubic-bezier(0.16,1,0.3,1), salidas más rápidas que las entradas, duración
varía con la masa, por lo que un nodo de 290 px y una etiqueta de 40 px no desaceleran idénticamente,
y back.out exactamente una vez por sección, en el golpe que lo merece.
Nunca un fundido cruzado, jamás. Las capas de sangrado completo entran y salen mediante recorte en un fondo ya opaco. En cualquier instancia un píxel es gráfico o metraje.
3 · Contrato de construcción
- Un generador por sección.
scripts/build_<id>.pyescribe solocompositions/<id>.html. Edita el generador, nunca el HTML generado. Las raíces de secciónindex-*.htmlse mantienen a mano, por lo que los cambios de encuadre van allí. - Los módulos compartidos permanecen compartidos. Cualquier cosa que defina geometría compartida es importada por cada sección. Si las secciones son construidas por agentes paralelos, prohibe que toquen los módulos compartidos; la geometría divergente rompe silenciosamente cada traspaso.
- Espacio de nombres para las definiciones SVG antes del ensamblaje. Cada sección define su propio
gEdge,shadow,edgeFade. En un DOM ensamblado,url(#id)resuelve a la primera coincidencia en el orden del documento, por lo que una vez que una composición anterior se desmonta, cada gráfico posterior pinta nada. Coste en la construcción de referencia: 35 segundos de pantalla vacía con todas las compuertas verdes. Solo mirar el renderizado ensamblado lo detectó. - Temporiza todo al inicio de las palabras a partir de una transcripción a nivel de palabra, entrando 0,15-0,25s antes de la palabra ancla. Nunca dividas una sección uniformemente en golpes.
- Audita los espacios. Cualquier tramo de más de ~1,5 s sin que ocurra nada es una pantalla muerta; haz que el generador los imprima.
- Deja aire en el corte. El recorte agresivo de pausas produce espacios casi nulos en los
límites de las oraciones que el cliente escucha como «tartamudeos» y cortes bruscos.
Calibra contra la norma del hablante: marca los espacios en los límites de las oraciones que son
~10 veces más ajustados que su mediana (el hablante de referencia tenía 470 ms; las uniones marcadas
estaban en 20-40 ms), y repara insertando 4-8 fotogramas de aire, las palabras nunca se
tocan. El aire es una rebanada donante del tono real de la sala de la pista con fundidos
de 10 ms, nunca
anullsrc: el silencio digital contra un piso de -50 dBFS es una caída audible. El vídeo mantiene el fotograma; entre oraciones, una cabeza parlante está casi quieta y 4-8 fotogramas de retención son invisibles. Los cambios de solo inserción desplazan la transcripción de forma determinista, por lo que no se necesita una retranscripción. Los bordes de una inserción deben respetar la envolvente del habla: unir tono donante contra la cola de una palabra en 1 ms am
…
[truncado para traducción]