Lumberyard
Guía del usuario (Version 1.18)

Reproducción de vídeo

El sistema de entidades de componentes está en la versión preliminar y está sujeto a cambios.

Puede utilizar el componente Video Playback para reproducir un archivo de vídeo en un objeto de su nivel de Lumberyard. Por ejemplo, puede utilizar un objeto plano para simular una pantalla de película. A continuación, añada el componente de reproducción de vídeo y especifique un archivo de vídeo que desee visualizar. Puede utilizar gráficos de flujo o scripts de Lua para provocar la reproducción, pausa o detención del vídeo, en función de las acciones del jugador.

Para utilizar el componente de reproducción de vídeo, debe realizar una configuración inicial. Esto implica la instalación de software (FFmpeg o LibAV), la adición de la gema de reproducción de vídeo a su proyecto y, a continuación, una nueva compilación del proyecto para habilitar la gema.

También puede configurar su vídeo para reproducirse en estéreo visual (no en estéreo de audio). Para probar esta característica, debe utilizar un casco de realidad virtual (HMD).

Por el momento, el componente de reproducción de vídeo no es compatible con audio. No obstante, puede activar la reproducción de audio por separado si desea reproducir audio junto con su vídeo.

Configuración de la reproducción de vídeo

Para configurar la reproducción de vídeo en Lumberyard, debe instalar FFmpeg o LibAV. Si ambos están instalados, Lumberyard utilizará FFmpeg.

  • Para utilizar FFmpeg, siga las instrucciones del Lumberyard Setup Assistant de la página Install software (Instalar software), en Optional software (Software opcional).

  • Para utilizar LibAV, elimine FFmpeg, descargue LibAV y, a continuación, haga lo siguiente.

nota

Algunas aplicaciones de software de terceros pueden requerir una licencia. Consulte los términos y condiciones del servicio antes de instalar el software.

Para instalar LibAV

  1. Descargue LibAV desde http://builds.libav.org/windows/. Seleccione la versión release-lgpl. En la fecha de publicación del presente documento, la versión 11.7 es la última versión.

  2. Extraiga el archivo .7z en un directorio llamado libav. Para abrir y extraer los archivos .7z, debe utilizar una aplicación 7z, como 7-Zip.

    En el directorio libav, debería tener lo siguiente:

    • Un directorio denominado usr

    • config.log

    • md5sum

  3. Mueva el directorio libav al directorio 3rdParty de Lumberyard.

  4. Ejecute el Lumberyard Setup Assistant y consulte la página Install optional SDKs (Instalar SDK opcionales) para comprobar que Lumberyard detecta LibAV.

Para utilizar el componente de reproducción de vídeo, también debe instalar la gema Video Playback. Siga las instrucciones de Uso de gemas para añadir características y activos modulares para instalar la gema Video Playback y compilar el proyecto.

Uso del componente de reproducción de vídeo

El componente de reproducción de vídeo está disponible para su uso en Lumberyard después de haber instalado el software requerido, haber agregado la gema Video Playback a su proyecto y haber vuelto a compilar el proyecto.

La reproducción de vídeo admite los siguientes formatos de contenedor:

  • .mp4

  • .mkv (recomendado)

  • .webm (recomendado)

La reproducción de vídeo admite los siguientes códecs:

  • h.264

  • h.265

  • VP8 (recomendado)

  • VP9 (recomendado)

La configuración básica para el componente de reproducción de vídeo implica colocar una cámara, agregar una malla estática y un componente de reproducción de vídeo y configurar el material.

Para utilizar el componente de reproducción de vídeo

  1. Si todavía no tiene una cámara en su escena, coloque un componente de cámara cerca de donde vaya a ubicar la reproducción de vídeo.

    Puede utilizar la cámara para ver la reproducción de vídeo. Asegúrese de que la cámara apunte a la dirección en la que coloque su componente de reproducción de vídeo.

  2. Cree una nueva entidad de componente haciendo clic con el botón secundario del ratón en la escena y haciendo clic en Create new component entity (Crear entidad de nuevo componente).

  3. Utilice el Entity Inspector (Inspector de entidades) para agregar un componente de malla estática a su nueva entidad de componente.

  4. Seleccione un Static asset (Recurso estático) para su componente de malla estática. Este es el objeto en el que se representa el vídeo. Un cubo o un plano son buenas idas como mallas de prueba.

  5. Agregue el componente Video Playback a la misma entidad. Para hacerlo, haga clic en Add Component (Añadir componente), luego en Rendering (Representación) y en Video Playback (Reproducir vídeo).

  6. En la configuración Video (Vídeo) del componente de reproducción de vídeo, seleccione el vídeo que quiera mostrar.

  7. En Texture name (Nombre de textura), escriba un nombre para la textura, precedido por un símbolo de dólar ($). Se trata de un campo definido por el usuario, por lo que puede ser cualquier cosa que quiera, pero debe empezar con un carácter $ para indicar que es objetivo de representación. Por ejemplo, $videotest es un nombre válido, pero videotest no lo es.

  8. Use la configuración Frame queue ahead count (Recuento anticipado de cola de fotogramas) para establecer el número de fotogramas que ha de almacenar en memoria. Deje este valor en 1, que es un valor aceptable. Un valor de 2 o 3 también suele ser seguro.

    Si acumula demasiados fotogramas en la cola para guardar en memoria (por ejemplo, un valor de 100) puede hacer que se use demasiada memoria y perjudicar el rendimiento.

  9. Abra el Material Editor (use el atajo de teclado M para abrirlo rápidamente).

  10. Cree un nuevo material haciendo clic en Add New Item (Añadir nuevo elemento), tal y como se muestra en la imagen siguiente. Ponga al material un nombre descriptivo, como por ejemplo myvideomaterial.

  11. En Texture Maps (Mapas de textura), en la línea Diffuse (Difuminar) escriba el nombre del campo Texture name (Nombre de textura) de su componente de vídeo. Asegúrese de incluir el carácter $.

  12. Cierre el Material Editor y vuelva al Entity Inspector (Inspector de entidades). En el componente de malla estático, para la configuración Material override (Anulación de material), seleccione el material que acaba de crear.

Puede activar el vídeo para que se reproduzca al inicio del juego mediante gráficos de flujo o scripts de Lua. El siguiente procedimiento muestra cómo crear un gráfico de flujo sencillo para comenzar a reproducir el vídeo cuando arranque el juego.

Este tema contiene referencias a herramientas y características que son heredadas. Si desea utilizar herramientas heredadas en Lumberyard Editor, deshabilite la gema CryEntity Removal mediante Project Configurator o la línea de comandos. Para obtener más información sobre las características heredadas, consulte la Referencia heredada de Amazon Lumberyard.

Para configurar un gráfico de flujo para iniciar el vídeo

  1. En la ventanilla, haga clic con el botón secundario en la entidad de malla estática/reproducción de vídeo. A continuación, haga clic en Flowgraph y luego en Add (Añadir). Escriba un nombre para el nuevo gráfico de flujo.

  2. Arrastre un nodo Game:Start y un nodo VideoPlayback:Play al gráfico de flujo. Conecte el puerto de output (salida) del nodo Game:Start al puerto Activate del nodo VideoPlayback:Play.

    Haga clic con el botón derecho en Choose Entity (Elegir entidad) en el nodo VideoPlayback:Play y haga clic en Assign graph entity (Asignar entidad de gráfico).

  3. Para jugar con el juego y probar su reproducción en vídeo, pulse Ctrl G.

    nota

    Por el momento, la reproducción de audio no es compatible con este componente. Puede iniciar la reproducción de audio por separado.

Configuración de la reproducción de vídeo estéreo

Antes de la configuración de la reproducción de vídeo estéreo, asegúrese de que ha completado las instrucciones de configuración que aparecen en Configuración de la reproducción de vídeo.

La reproducción de vídeo estéreo implica que el vídeo presenta una imagen ligeramente diferente para cada ojo, creando una sensación en 3D. Estéreo en este caso se refiere únicamente al estéreo visual. El componente de reproducción de vídeo no es compatible con audio. Aunque no se admite audio y este debe sincronizarse externamente, es posible reproducir audio con espacialización. Para hacerlo, debe utilizar la versión comercial completa de Wwise y un complemento de espacialización 3D como Oculus Spatializer o RealSpace 3D.

Para configurar la reproducción en vídeo estéreo, el archivo de vídeo de origen debe estar diseñado para estéreo. Lumberyard es compatible con vídeos con formato de arriba abajo o de abajo arriba. Debe tener un casco de RV para verificar que el vídeo se reproduce en estéreo.

Para configurar la reproducción de vídeo estéreo, siga las instrucciones en Uso del componente de reproducción de vídeo. Las únicas diferencias en la configuración son las siguientes:

  • Debe utilizar un archivo de vídeo de origen con información estéreo o 3D

  • Especifique la propiedad Stereo Layout (Diseño de estéreo) inicialmente como Auto-Detect (Detección automática). Si no se realiza la detección automáticamente, configúrela como Top-Bottom (De arriba abajo) o Bottom-Top (De abajo arriba).

    Todos los archivos de vídeo admitidos deberían tener su diseño estéreo escrito en los metadatos. Sin embargo, esto no es un requisito, y es posible que el codificador no haya introducido esos datos. Si desea inyectar metadatos estéreo en su vídeo, consulte https://support.google.com/jump/answer/7044297?hl=en.

Cuando entre en el modo de juego (utilizando Ctrl G), debería ver la reproducción del vídeo correspondiente al ojo izquierdo. Si no la ve, pruebe a cambiar la configuración de Stereo layout (Diseño de estéreo).

Para comprobar que el vídeo se está reproduciendo en estéreo, debe entrar en modo RV. Puede entrar en el modo de RV haciendo clic en VR Preview (Vista previa de RV) en la esquina inferior derecha de la ventanilla. A continuación, pulse Ctrl G para entrar en el modo de juego. Si su botón VR Preview (Vista previa RV) no está activado o no puede entrar en el modo de vista previa de RV, asegúrese de que el casco de RV funcione fuera de Lumberyard y luego reinicie el editor de Lumberyard.

La reproducción de vídeo estéreo emplea muchos recursos. Dado que el vídeo suele reproducirse cerca del jugador, es fácil detectar incoherencias y alteraciones no deseadas en el vídeo. Para evitar esto, use vídeos de mayor resolución siempre que sea posible. Para ahorrar recursos, no reproduzca más de uno o dos vídeos estéreo de alta resolución a la vez.

Vínculos Lua para la reproducción de vídeo

Puede utilizar enlaces Lua para interactuar mediante programación con los componentes de reproducción de vídeo que haya colocado en la escena. Lua proporciona una forma de establecer una lógica compleja para reproducir, pausar y detener vídeos.

Funciones globales

Las siguientes funciones facilitan interfaces de programación para los sistemas de reproducción de vídeo.

VideoPlaybackRequestBusSender

Parámetros

EntityID

Devolución

Devuelve el objeto VideoPlaybackRequestBusSender conectado a la entidad especificada. Para obtener más información, consulte Objeto VideoPlaybackRequestBusSender.

VideoPlaybackNotificationBusHandler

Expone las devoluciones de llamada al script de Lua que disparan los eventos durante la reproducción del vídeo.

Para obtener más información, consulte Objeto VideoPlaybackNotificationBusHandler.

Parámetros

Table: la tabla Lua a la que quiere exponer las funciones de devolución de llamada. Pase self para exponer las llamadas al script de Lua actual.

EntityId

Devolución

Devuelve el objeto VideoPlaybackRequestBusSender conectado a la entidad especificada. Para obtener más información, consulte Objeto VideoPlaybackRequestBusSender.

Objeto VideoPlaybackRequestBusSender

El objeto VideoPlaybackRequestBusSender contiene funciones con las que puede enviar solicitudes al componente de reproducción de vídeo.

Bool IsPlaying()

Devuelve true si se está reproduciendo el vídeo. Si el vídeo está en pausa o detenido, devuelve false.

Void Play()

Reproduce el vídeo. Si no se ha seleccionado ningún vídeo o este ya se está reproduciendo, esto no tiene efecto.

Void Pause()

Pausa el vídeo. Si el vídeo ya está en pausa, esto no tiene ningún efecto.

Void Stop()

Detiene el vídeo y se queda en el último fotograma. Cuando el vídeo vuelve a reproducirse, empieza en el primer fotograma del vídeo. Si el vídeo ya está en detenido, esto no tiene ningún efecto. Si el vídeo se está reproduciendo o está en pausa, el vídeo se detiene.

Void EnableLooping(Bool)

Establece si este vídeo se reinicia automáticamente desde el principio cuando llega a su fin. Pase true para habilitar la reproducción en bucle o false para deshabilitarla. La reproducción en bucle está deshabilitada de forma predeterminada.

Void SetPlaybackSpeed(Float)

Ajusta la velocidad a la que reproduce el vídeo. Por ejemplo, un valor de 1.0 es la velocidad normal, 0.5 es a la mitad de velocidad, 2.0 es el doble de la velocidad, y así sucesivamente.

Se recomienda precaución al configurar la velocidad del vídeo. Si establece una velocidad demasiado alta puede causar que la reproducción sea discontinua.

Objeto VideoPlaybackNotificationBusHandler

El objeto VideoPlaybackNotificationBusHandler expone las funciones de devolución de llamada al script de Lua que disparan los eventos que ocurren durante la reproducción del vídeo.

Void OnPlaybackStarted()

Se llama cuando empieza la reproducción del vídeo.

Void OnPlaybackPaused()

Se llama cuando se pausa la reproducción del vídeo. No se llama cuando se detiene el vídeo.

Void OnPlaybackStopped()

Se llama cuando el usuario detiene la reproducción del vídeo. Si el vídeo alcanza el final y no está activada la reproducción en bucle, esta función no se llama.

Void OnPlaybackFinished()

Se llama cuando se reproducen todos los fotogramas de un vídeo. No se llama si el usuario detiene manualmente la reproducción del vídeo. Si está habilitada la reproducción en bucle, se llama a esta función cada vez que se completa el bucle.

Configuración de la reproducción de vídeo con gráficos de flujo

Con los nodos de gráfico de flujo de reproducción de vídeo podrá configurar acciones de reproducción de vídeo que se activarán en función de determinadas acciones.

En el siguiente ejemplo de gráfico de flujo, el evento de entrada PlayPauseMovie (1) reproduce o detiene el vídeo en la entidad de gráfico asociada. El evento de entrada StopMovie (2) detiene la película.

Los eventos PlayPauseMovie y StopMovie se conectan a un nodo IsPlaying (3), que comprueba si el vídeo se debe reproducir, pausar o detener.

El nodo Play (Reproducir) (4) establece PlaybackSpeed en 1 (velocidad normal) y activa la configuración Loop (Bucle) (valor booleano de 1), con lo que indica que la reproducción en bucle está habilitada. El nodo Play (Reproducir) (4) también activa el vídeo para reproducirse en Game:Start (5).

El nodo0 PlaybackEvents (6) activa los nodos Debug (Depurar) (7) para imprimirse en la consola cuando el vídeo se reproduce, se pausa, se detiene o termina.