VideoRenderer

El componente VideoRenderer permite renderizar contenido de video en pantalla.
Admite características como control de reproducción, escalado, rotación, volteo, opacidad, máscara de color y tintado.
Los videos pueden mostrarse con dimensiones personalizadas, posicionarse mediante desplazamientos y recortarse para mostrar regiones específicas (slice).
Además, es posible controlar si el video se repite en bucle, ajustar el volumen y sincronizar la velocidad de reproducción con la escala de tiempo del motor.

Propiedades

PropiedadTipoDescripción
action"play" | "pause" | "stop"Acción actual para el video.
fixedToTimeScalebooleanSi es true, la velocidad de reproducción sigue la escala de tiempo del motor.
flipHorizontallybooleanSi es true, voltea el video horizontalmente.
flipVerticallybooleanSi es true, voltea el video verticalmente.
heightnumberAltura personalizada del video.
layerstringCapa de renderizado.
loopbooleanSi es true, reproduce el video en bucle.
maskColorstringColor de máscara aplicado al video.
maskColorMixnumberIntensidad de la mezcla de la máscara (entre 0 y 1).
offsetVector2Desplazamiento en los ejes X e Y.
opacitynumberOpacidad del video (entre 0 y 1).
rotationnumberRotación del video en radianes.
sliceSliceCoordenadas para recortar una región específica del video.
tintColorstringColor de tintado aplicado al video.
videoHTMLVideoElement | stringVideo a renderizar. Puede ser un elemento HTML o un nombre de asset.
volumenumberVolumen del video (entre 0 y 1).
widthnumberAncho personalizado del video.
playingboolean (solo lectura)true si el video se está reproduciendo.

Ejemplo básico

const videoRenderer = new VideoRenderer({
    video: this.assetManager.getVideo("video.mp4"),
    width: 1920,
    height: 1080,
});

Ejemplo completo

const videoRenderer = new VideoRenderer({
    video: this.assetManager.getVideo("video.mp4"),
    width: 1920,
    height: 1080,
    offset: new Vector2(0, 0),
    flipHorizontally: false,
    flipVertically: false,
    rotation: 0,
    opacity: 1,
    maskColor: "#FF0000",
    maskColorMix: 0,
    tintColor: "#00FF00",
    layer: "Default",
    slice: { x: 0, y: 0, width: 1920, height: 1080 },
    volume: 1,
    loop: false,
    fixedToTimeScale: false,
});

Control de reproducción

El componente ofrece tres métodos públicos para controlar la reproducción del video:

  • play(videoSource?: HTMLVideoElement): Cambia el estado a reproducción. Opcionalmente, puede asignar una nueva fuente de video.
  • pause(): Cambia el estado a pausa.
  • stop(): Cambia el estado a detenido.

Importante:
Estas funciones no ejecutan ninguna lógica directamente. Solo modifican el estado del atributo action.
La lógica de reproducción real se ejecuta dentro del sistema encargado de procesar el componente.

videoRenderer.play();
videoRenderer.pause();
videoRenderer.stop();

Notas

  • Para mostrar el video en pantalla, la entidad debe incluir un componente VideoRenderer y estar dentro de una escena activa.
  • El atributo fixedToTimeScale permite sincronizar la velocidad de reproducción con la escala de tiempo configurada en el motor.
  • La política de reproducción automática de los navegadores requiere que haya al menos una interacción humana antes de poder iniciar la reproducción de video.