Doctrina de Movimiento (Puerta de Entrada)
Léalo antes de componer cualquier animación. Decide QUÉ sucede en cada unión y cómo se desempeña cada escena; los skills de técnica lo implementan. Estas reglas derogan las guías de movimiento genéricas / ascendentes. El fallo que previene: escenas creadas de forma aislada: la inercia del ojo muere en cada corte, y las escenas se balancean en su lugar entre la entrada y la salida.
Mapa de ruta
| Decisión (este skill) | Skill de implementación |
|---|---|
| Elección de transición de unión + parámetros + código | cortar-la-curva §1–5 (el catálogo) |
| Cascadas de entrada de texto / elementos | cortar-la-curva §6 (entrada en cascada) |
| Reubicación de grupo dentro de la escena (sin corte) | cortar-la-curva §7 (curva de ajuste) |
| Acción guiada por cursor / inicio de escena / ignición de morph | cursor-sobredimensionado |
| Mecánica de renderizado de unión / protección contra destello blanco | artesanía-de-unión |
| Trabajo de lanzamiento de producto / explicador / leyendas | superpone texto-economía-de-beat, marca-fiel, leyendas-superpuestas sobre el skill ascendente |
Orden de creación: libro mayor de vectores (ledger.json) → SELLAR las uniones maestras a partir de él
(scripts/seam-stamp.mjs --ledger ledger.json --write index.html) → ruta de movimiento sostenido
por fase → portadores y causas → construir composiciones → VERIFICAR (scripts/seam-gate.mjs).
Solo cree a mano morphs/cortes de coincidencia de nivel A; las uniones selladas pasan la puerta por construcción.
Parte 1 — La Ley de Unión
La Ley Vectorial
Cómo la Escena A sale determina cómo la Escena B entra: mismo eje, misma dirección, velocidad emparejada, corte a medio movimiento en ambos lados.
- Eje — x permanece x, y permanece y, Z permanece Z. Nunca intercambie ejes a través de un corte.
- Dirección — nunca refleje. En Z, dirección = el SIGNO del cambio de escala: crecer = empujar (cámara hacia adelante), encoger = tirar (cámara hacia atrás). Una salida en retroceso respondida por una entrada de crecimiento desde pequeño es un vector reflejado — la violación más común, porque crecer desde pequeño es la entrada de elemento predeterminada.
- Velocidad — velocidad inicial de entrada ≈ velocidad final de salida, mediante eases
reflejados (salida
power4.in+ entradapower4.out, misma distancia y duración; el lado entrante toma ≥50% del recorrido nocional). Mecánica encortar-la-curva. - Fase — el corte aterriza a medio movimiento en AMBOS lados. Asentarse antes del corte, o comenzar desde el reposo después, es un tiempo muerto.
La Corriente
Cada película elige UNA dirección dominante (valor predeterminado de la casa: IZQUIERDA). Cada unión ordinaria la usa. Otros vectores están RESERVADOS — gastar uno significa algo:
| Vector | Significado |
|---|---|
| La corriente (IZQUIERDA) | "siguiente beat" — progreso neutral hacia adelante |
| Hacia arriba | elevación — una conclusión o revelación se eleva sobre lo que vino antes |
| Z hacia adelante (zoom-in) | profundizar en el mismo pensamiento |
| Z hacia atrás (zoom inverso) | LLEGADA — algo más grande aterriza |
| Explosión de escala (estallido) | salir de un mundo — una superficie explota más allá de la cámara |
- Nunca ejecute uniones consecutivas en direcciones opuestas — el ping-pong se lee como un error.
- Un cambio de dirección necesita una causa visible (clic / rebote / impacto) o un límite de capítulo.
El Libro Mayor de Vectores
Escríbalo antes de crear cualquier línea de tiempo maestra — como ledger.json en la raíz del proyecto
(esquema: references/seam-gate.md). Una fila por unión: tiempo de corte, vectores de salida y entrada
(eje + dirección con signo; las filas Z llevan el signo de escala), selectores, técnica. Salida y
entrada deben coincidir; si una fila no coincide, arregle el plan, no el ease. El verificador
comprueba la consistencia de las filas estáticamente antes de cualquier muestreo en tiempo de ejecución.
Portadores
El ojo sigue objetos, no abstracciones. Las uniones más fuertes pasan un portador concreto a través del corte con posición Y velocidad emparejadas: un cursor a medio camino, un contenedor que se encoge/acopla al siguiente diseño, una marca que vuela a su ranura exacta, el grupo de palabras de un corte en cascada. Sin portador natural, los héroes de la escena lo llevan (viaje parcial + desvanecimiento temprano, entrada en pleno vuelo). Nunca un fundido cruzado — no tiene ningún portador.
Movimiento Causal
Encadene el movimiento para que cada movimiento sea visiblemente lanzado por el anterior: clic → comprimir → liberar resorte → vuelo → impacto → retroceso → revelación.
- Los efectos comienzan EN el fotograma causante — misma posición en la línea de tiempo, nunca "poco después".
- Las reacciones escalan con la masa implícita: los elementos grandes rebotan más lento, los pequeños chasquean.
- Una fuerza es una licencia para cambiar de dirección; un giro sin causa es un ping-pong.
La Puerta de Unión (puerta de compilación — ejecute el verificador, salida 0 o la unión no está hecha)
node <SKILL_DIR>/scripts/seam-stamp.mjs --ledger ledger.json --write index.html # generar
node <SKILL_DIR>/scripts/seam-gate.mjs verify --ledger ledger.json --project . # verificar
El script (uso + esquema del libro mayor: references/seam-gate.md) aplica numéricamente, por
unión: consistencia de fila del libro mayor, salida aún moviéndose en el corte, entrada en pleno
vuelo (nunca desde el reposo), dirección medida = dirección del libro mayor, coincidencia de
velocidad entrada/salida (ADVERTENCIA), superposición cero (un lado visible por fotograma —
el corte no es una disolución), la regla del signo Z (d(escala)/dt mismo signo en ambos
lados; las entradas de la escena entrante se escanean en busca de lucha de signos), y continuidad
del rectángulo portador con la escala del ancestro incluida. Use
seam-gate.mjs probe --t <corte> para encontrar los selectores de portador reales de cada unión
al crear el libro mayor.
Reglas que el script no puede verificar — todavía suyas:
- Las ediciones reabren la unión. Cualquier cambio en el primer/último ~1s de una escena (incluyendo el re-timing a un nuevo VO) invalida la auditoría de ese límite — vuelva a ejecutar el verificador.
- El audio es el reloj. Ajuste el tiempo de las escenas a las marcas de tiempo reales de las palabras del VO; nunca apresure una lectura para que encaje en una ranura. Una regeneración de VO reabre sus uniones.
- Trampa de clip-gating (la causa habitual de un FALLO de superposición cero): un clip cuyo
data-startprecede a su tween de entrada se muestra oculto en su opacidad inicial — establezcaautoAlpha: 0inicial Ydata-start= la hora del corte, nunca antes.
Parte 2 — Rendimiento (la escena sigue rindiendo)
Sin balanceo inactivo
Los bucles senoidales inactivos (respirar, flotar, derivar, pulso de brillo) están PROHIBIDOS como movimiento sostenido — se leen como "el video está esperando". Una escena que termina de entrar con segundos restantes es un error de planificación: agregue historia, no balanceo. Cada fase entre la entrada y la salida es propiedad de una de estas rutas (nombre la ruta en el plan):
| Ruta | Qué es |
|---|---|
| Revelaciones escalonadas | Retenga contenido; entréguelo en los beats de la narración — el fotograma sigue ganando información (predeterminado para ≥2 grupos de contenido) |
| Cámara con intención | Una ruta mapeada de escala+pan: establecer amplio → viajar → llegar al sujeto |
| Vida de UI secuenciada | El producto se comporta a lo largo del tiempo: el progreso avanza, el paso se resalta, los contadores avanzan |
| Secuencias animadas | Los elementos representan un beat: una tarjeta se archiva en una pila, un elemento se arrastra, un resultado se ensambla |
| Acción guiada por cursor | Un cursor sobredimensionado guía el ojo a un disparador; su CLIC enciende el siguiente beat (cursor-sobredimensionado) |
Prueba: pause en cualquier segundo — algo significativo debe estar en pleno vuelo (una revelación aterrizando, la cámara viajando, la UI haciendo lo que la narración dice).
Quietud antes del clímax
Programe una pausa de 0.3–0.75s entre la acción principal y su resultado — la coma dramática. Una escena que salta directamente de la acción al resultado lo pierde.
Intenciones de tiempo
- Entrada única ≤ ~800ms; construcción más larga = escalonamiento de múltiples elementos, no un elemento lento.
- Salida ≈ 75% de la entrada. Excepción: cortar-la-curva invierte esto (entrada ~127% de la salida).
- Escalonamiento total ≤ 500ms; con 8+ elementos, apriete el retardo por elemento o escale los primeros.
- Eases prohibidos:
bounce.out/elastic.out. El sobrepaso en entradaback.out(1.4–1.7)está bien. - Elementos similares comparten una intención de ease+duración — nunca un par único por elemento.
Vocabulario de transición
Use solo 2–3 transiciones entre escenas por película y repítalas; el límite predeterminado es
cortar-la-curva en la dirección de la corriente. Los morphs de elementos compartidos escritos
a mano (intent: morph) no cuentan para el presupuesto.
Anti-Patrones
| No haga | En su lugar |
|---|---|
| Crear la entrada de cada escena de forma aislada | Escriba primero el libro mayor de vectores |
| Fundido cruzado entre escenas | Corte-la-curva en la dirección de la corriente |
| La salida se completa, LUEGO la escena cambia | Corte a medio movimiento en ambos lados |
| La entrada comienza desde el reposo después de un corte | Entre ≥50% del recorrido nocional |
| Salida con zoom inverso → entrada de crecimiento desde pequeño (o empuje → retracción sobredimensionada) | Coincida el signo de la velocidad de escala (Puerta de Unión 7) |
| Introducción emergente del elemento propio de la escena entrante bajo una transferencia de unión Z | Mantenga su fotograma de apertura compuesto, o coincida el signo |
| Balanceo inactivo / respiración / flotación para llenar tiempo | Asigne una ruta de movimiento sostenido; o agregue historia |
| Giro de dirección sin causa | Gaste una fuerza, o mantenga la corriente |
| Vectores reservados usados como variedad | Use la corriente por defecto; gástelos en significado |
| Reacción unos fotogramas después de su causa | Ignición en el mismo fotograma |
| La acción salta directamente al resultado | Programe quietud antes del clímax (0.3–0.75s) |