Cinemáticas de cámara sin mods: fotogramas clave, interpolación y trucos de espectador
Dos formas de mover una cámara en el juego base: una función de teletransporte por tick o el registro de línea de tiempo. Para qué sirve cada una y el suavizado que evita que se vea robótico.
No existe un objeto de cámara en el juego base, por lo que una cinemática es una de dos ilusiones.
Método 1: teletransportar al Jugador en cada tick
La forma antigua y universal. Pon al Jugador en modo espectador y luego muévelo a lo largo de una ruta:
gamemode spectator @s
tp @s 100.0 70.0 200.0 -90.0 10.0
un tp por tick de una cadena de funciones. Funciona en todas las versiones y no necesita nada especial. Los problemas son todos sobre la fluidez:
- 20 fotogramas clave por segundo. Una toma de diez segundos son 200 líneas
tp. - Los pasos lineales se ven mecánicos. Los movimientos de cámara reales se suavizan al entrar y salir.
- La rotación se envuelve mal. Ir de un yaw de 170 a -170 es un giro de 20 grados, pero una interpolación ingenua gira 340 grados en la dirección equivocada. Normaliza la diferencia de ángulo en el rango -180…180 antes de dar el paso.
Generar esas líneas es para lo que sirve una herramienta de fotogramas clave: colocas un puñado de posiciones y emite la función por tick con el suavizado aplicado.
Suavizado (Easing)
La diferencia entre algo amateur y algo que se puede ver es la curva de interpolación. Entre dos fotogramas clave, con t de 0 a 1:
linear t
ease-in-out t < 0.5 ? 2t² : 1 − 2(1−t)²
smoothstep t² × (3 − 2t)
smoothstep es el valor predeterminado seguro. Aplícalo a la posición y la rotación juntas o la cámara llegará antes de que termine de girar.
Método 2: el registro de línea de tiempo (timeline registry)
Las versiones más recientes añaden un formato de línea de tiempo que describe toda la toma como datos en lugar de cientos de teletransportes:
data/<namespace>/timeline/intro.json
Fotogramas clave con tiempos y modos de interpolación, reproducidos con un solo comando. Ventajas:
- Mucho más pequeño. Seis fotogramas clave en lugar de doscientos teletransportes.
- La interpolación es nativa, por lo que no hay cálculos de suavizado manuales.
- Independiente de la velocidad de fotogramas — no tartamudea como lo hace un teletransporte por tick en un servidor cargado.
El costo es que solo existe en versiones recientes, por lo que un Mapa dirigido a clientes más antiguos aún necesita el método 1.
Mantener al Jugador en su sitio
Ambos métodos luchan contra dos cosas:
- Entrada del Jugador. El modo espectador permite al Jugador volar a mitad de la toma. El re-teletransporte en cada tick lo anula, que es una de las razones por las que persiste el método de fuerza bruta.
- Carga de chunks. Una cámara volando a un lugar descargado muestra el vacío.
/forceloadla ruta antes de la toma y elimínala después.
Ocultar el HUD
/gamerule doImmediateRespawn, el modo espectador y F1 te llevan la mayor parte del camino. Para un fotograma limpio, un paquete de recursos que borra los sprites del HUD elimina la mira y la barra de acceso rápido sin que el Jugador presione nada; consulta la guía del HUD.
Coloca fotogramas clave en una ruta y exporta una función por tick o un JSON de línea de tiempo con los Constructores de cinemáticas y líneas de tiempo.