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
| Propiedad | Tipo | Descripción |
|---|---|---|
action | "play" | "pause" | "stop" | Acción actual para el video. |
fixedToTimeScale | boolean | Si es true, la velocidad de reproducción sigue la escala de tiempo del motor. |
flipHorizontally | boolean | Si es true, voltea el video horizontalmente. |
flipVertically | boolean | Si es true, voltea el video verticalmente. |
height | number | Altura personalizada del video. |
layer | string | Capa de renderizado. |
loop | boolean | Si es true, reproduce el video en bucle. |
maskColor | string | Color de máscara aplicado al video. |
maskColorMix | number | Intensidad de la mezcla de la máscara (entre 0 y 1). |
offset | Vector2 | Desplazamiento en los ejes X e Y. |
opacity | number | Opacidad del video (entre 0 y 1). |
rotation | number | Rotación del video en radianes. |
slice | Slice | Coordenadas para recortar una región específica del video. |
tintColor | string | Color de tintado aplicado al video. |
video | HTMLVideoElement | string | Video a renderizar. Puede ser un elemento HTML o un nombre de asset. |
volume | number | Volumen del video (entre 0 y 1). |
width | number | Ancho personalizado del video. |
playing | boolean (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
VideoRenderery estar dentro de una escena activa. - El atributo
fixedToTimeScalepermite 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.