Lumberyard
Guía del usuario (Version 1.20)

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 (Reproducción de vídeo) para reproducir un archivo de vídeo en una entidad de su nivel de Lumberyard. Por ejemplo, puede utilizar una entidad plana para simular una pantalla de película. A continuación, agregue el componente Video Playback (Reproducción de vídeo) y especifique un archivo de vídeo que desee visualizar. Puede utilizar Script Canvas o scripts de Lua para desencadenar la reproducción, pausa o detención del video, en función de las acciones del jugador.

Requisitos previos

Para utilizar el componente Video Playback (Reproducción de vídeo) debe hacer lo siguiente:

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).

nota

El componente Video Playback (Reproducción de vídeo) no admite actualmente audio, pero puede desencadenar la reproducción de audio por separado si desea reproducir audio con el vídeo.

Configurar 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 LibAV, elimine FFmpeg y consulte Instalar LibAV.

nota

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

Instalar FFmpeg

Para instalar FFmpeg para Lumberyard, siga estos pasos.

Para instalar FFmpeg

  1. Vaya a FFmpeg Builds.

  2. Descargue las versiones Shared y Dev de FFmpeg y descomprima los archivos.

  3. Vaya a lumberyard_version/3rdParty y cree un directorio denominado FFmpeg.

  4. En FFmpeg, cree un directorio denominado 3.2.

    nota

    Debe asignar un nombre al directorio 3.2, independientemente de la versión FFmpeg que utilice.

  5. En la versión Dev de FFmpeg, copie las carpetas lib y include en el directorio lumberyard_version/3rdParty/FFmpeg/3.2.

  6. En la versión Shared de FFmpeg, copie la carpeta bin en el directorio lumberyard_version/3rdParty/FFmpeg/3.2.

  7. En el directorio 3.2, compruebe que tiene las siguientes carpetas:

    • bin

    • include

    • lib

  8. Ejecute Lumberyard Setup Assistant y, en la página Install optional SDKs (Instalar SDK opcionales), verifique que Lumberyard detecta FFmpeg.

    
                            Instalar FFmpeg para Lumberyard.

Instalar LibAV

Para instalar LibAV para Lumberyard, siga estos pasos.

Para instalar LibAV

  1. Vaya a http://builds.libav.org/windows/.

  2. Seleccione la compilación release-lgpl y descargue LibAV. En la fecha de publicación del presente documento, la versión 11.7 es la última versión.

  3. Vaya a lumberyard_version/3rdParty y cree un directorio denominado libav.

  4. En el directorio libav, cree un directorio llamado 11.7.

    nota

    Debe asignar un nombre al directorio 11.7, independientemente de la versión LibAV que utilice.

  5. Extraiga el archivo .7z en el directorio 11.7.

    nota

    Para abrir y extraer los archivos .7z, debe utilizar una aplicación 7z, como 7-Zip.

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

    • Un directorio denominado usr

    • config.log

    • md5sum

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

    
                            Instalar LibAV para Lumberyard.

Uso del componente Video Playback (Reproducción de vídeo)

Después de completar el Requisitos previos, puede utilizar el componente Video Playback (Reproducción de vídeo).

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 del componente Video Playback (Reproducción de vídeo) incluye lo siguiente:

  • Agregar un componente Camera (Cámara).

  • Agregar un componente Mesh (Malla) y Video Playback (Reproducción de vídeo).

  • Configurar el material

Para utilizar el componente Video Playback (Reproducción de vídeo)

  1. Si todavía no tiene una cámara en su escena, coloque un componente Camera 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 en la dirección en la que coloque su componente de reproducción de vídeo.

  2. Cree una entidad. Para obtener más información, consulte Creación de una entidad.

  3. Utilice Entity Inspector para agregar un componente Mesh a la entidad.

  4. En el componente Mesh (Malla), seleccione un Mesh asset (Recurso de malla). Este es el recurso en el que se representa el vídeo. Un cubo o un plano son buenos ejemplos de mallas de prueba.

    
                        Propiedades del componente Mesh (Malla) en Lumberyard Editor
  5. Agregue el componente Video Playback (Reproducción de vídeo) a la misma entidad.

  6. En el componente Video Playback (Reproducción de vídeo), en Video, seleccione el vídeo que desea mostrar.

  7. En Texture name (Nombre de textura), escriba el signo del dólar ($) y un nombre para la textura. Puede escribir cualquier nombre, pero debe comenzar por un carácter $ para indicar que se trata de un destino de representación. Por ejemplo, $videotest es un nombre válido, pero videotest no lo es.

    
                        Propiedades del componente Video Playback (Reproducción de vídeo) en Lumberyard Editor
  8. En Frame queue ahead count (Recuento anticipado de cola de fotogramas), establezca el número de fotogramas que desea almacenar en búfer.

    Le recomendamos que utilice un valor entre 1 y 3.

    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 Material Editor.

  10. Para crear un material, haga clic en el icono Add New Item (Agregar elemento nuevo). Escriba un nombre descriptivo, como myvideomaterial.

    
                        Material del componente Video Playback (Reproducción de vídeo).
  11. En Texture Maps (Mapas de textura), en la línea Diffuse (Difuso) escriba el nombre del campo Texture name (Nombre de textura) de su componente de vídeo. Debe incluir el carácter $.

    
                        Propiedad Diffuse (Difuso) para el nombre de la textura.
  12. Cierre Material Editor y vuelva a Entity Inspector. En el componente Mesh (Malla), seleccione el material que ha creado para la propiedad Material override (Reemplazo de material).

    
                        Seleccionar el reemplazo de material en el componente Mesh (Malla).

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 (Gráfico de flujo) y luego en Add (Agregar). 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 Configurar 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 Video Playback (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.