M MY Multiplayer: Wiki
Lado
Tipo

setCinematicCamera

Cliente

Define los planos de cámara que la cinemática dirige durante la reproducción. Reemplaza los planos anteriores.

bool setCinematicCamera(cinematic cinematic, table shots)

Parámetros

NombreTipoDescripción
cinematiccinematicLa cinemática.
shotstableLista de planos, en orden de start. Una lista vacía quita la cámara de la cinemática.

Retorno

true si se aplicaron. false si la tabla no es válida, con un aviso que dice el motivo.

Campos comunes del plano

Los tiempos son de la cinemática, en ms. Cada plano empieza cuando el anterior se detuvo:

  • start: cuándo entra (obligatorio).
  • blend: ms para mezclar desde el plano anterior. 0 es un corte.
  • stop: cuándo se detiene. Sin él, dura hasta el plano siguiente; una vez detenido, la cámara mantiene la última vista.
  • shake: temblor en metros, 0 por defecto. shakeSpeed: su frecuencia en Hz, 12 por defecto.
  • letterbox: true muestra las franjas de pantalla ancha de SA durante el plano.

Planos de trayecto

Un plano de trayecto define keys (lista de claves en orden de tiempo):

  • time: instante de la clave en ms (obligatorio).
  • position y target: coordenadas vec3 (obligatorios).
  • roll: inclinación en grados (0 por defecto).
  • fov: campo de visión en grados, mayor que 0 y menor que 180 (70 por defecto).
  • smooth: true sigue la curva de cutscene de SA; false va en línea recta a la clave siguiente.
  • ease: interpolación hacia la clave siguiente — "linear" (por defecto), "inQuad", "outQuad", "inOutQuad", "inCubic", "outCubic" o "inOutCubic".

Planos que siguen a un actor

Un plano que sigue a un actor define:

  • actor: nombre del actor (obligatorio).
  • offset: desplazamiento vec3 en el espacio del actor (obligatorio).
  • Objetivo de la cámara: lookAt (vec3 en el espacio del actor), lookAtActor (nombre de otro actor) o lookAtBone (hueso de un ped).
  • roll y fov: inclinación y campo de visión opcionales en grados.

Ejemplo

local intro = createCinematic("cinematics/intro.cine")
setCinematicCamera(intro, {
    {
        start = 0,
        letterbox = true,
        keys = {
            { time = 0, position = vec3(2480, -1700, 30), target = vec3(2495, -1680, 14) },
            { time = 6000, position = vec3(2500, -1700, 20), target = vec3(2495, -1680, 14), ease = "inOutQuad" },
        },
    },
    { start = 6000, blend = 1000, actor = "hero", offset = vec3(0, -4, 1.5), lookAtActor = "hero" },
})

Ver también