En esta guía de inicio rápido, te mostraremos el proceso de configuración de un proyecto de Unreal Engine para que funcione con una tarjeta gráfica profesional de Blackmagic Design. Al final de esta guía:
La entrada de vídeo de tu tarjeta Blackmagic se reproducirá dentro de tu proyecto de Unreal Engine.
Podrás capturar puntos de vista de cámara tanto desde el editor como desde tu aplicación en tiempo de ejecución y enviarlos a un puerto SDI de tu tarjeta Blackmagic.
Así sabrás a dónde dirigirte cuando quieras configurar más ajustes avanzados en tus entradas de vídeo, como corregir la deformación de la lente o aplicar efectos de croma.
Para ver un ejemplo de trabajo que muestra muchos de los elementos que se describen a continuación puestos en práctica, consulta la muestra de Virtual Studio, disponible en la pestaña Muestras del iniciador de Epic Games.
Requisitos previos:
Asegúrate de tener una tarjeta compatible de Blackmagic Design y verifica que hayas instalado los controladores y el software necesarios. Para obtener más información, consulta la página Referencia de medios de Blackmagic.
Asegúrate de que tu tarjeta funciona correctamente y de que tienes entrada de vídeo en al menos uno de los puertos SDI de la tarjeta.
Abre un proyecto de Unreal Engine que quieras integrar con tus entradas de vídeo. Esta página muestra los pasos de la plantilla de blueprint Tercera persona, pero los mismos pasos funcionarán igual de bien en cualquier proyecto.
Los componentes de Blackmagic Design usados en esta guía están construidos sobre Media Framework, y usaremos Blueprints para secuenciar el proceso de captura de vídeo en tiempo de ejecución. Se recomienda tener ciertos conocimientos previos de estos temas, aunque no es obligatorio.
1. Cómo configurar el proyecto
Antes de poder recibir la entrada de vídeo de la tarjeta Blackmagic en el nivel del Unreal Engine y enviar la salida de Unreal Engine a través de uno de los puertos SDI de la tarjeta, tendrás que llevar a cabo algunos ajustes básicos para habilitar el complemento Blackmagic Media Player en tu proyecto.
Si has iniciado tu proyecto de Unreal Engine desde una de las plantillas de la categoría de Cine, televisión y eventos en directo, es posible que ya tengas habilitados los complementos necesarios. Si no es así, sigue las instrucciones que aparecen a continuación para hacerlo.
Pasos
Abre el proyecto que quieras usar con la entrada y salida de vídeo de Blackmagic en Unreal Editor.
Desde el menú principal, selecciona Editar > Complementos.
En la ventana Complementos, busca el complemento Blackmagic Media Player en la categoría Reproductores multimedia. Marca la casilla de verificación Habilitado.
Busca el complemento Media Framework Utilities en la categoría Medios. Marca la casilla de verificación Habilitado si no lo está ya.
Haz clic en Reiniciar ahora para reiniciar Unreal Editor y volver a abrir tu proyecto.
Resultado final
Ahora tu proyecto está listo para aceptar vídeo de la tarjeta Blackmagic y enviar la salida renderizada a la tarjeta. En las siguientes secciones, lo conectaremos y empezaremos a reproducir y recibir vídeo.
2. Renderizado de entrada de vídeo en Unreal Engine
En este proceso, haremos visible la entrada de vídeo de la tarjeta Blackmagic en el nivel actual de Unreal Editor. Este proceso usa un paquete multimedia: un tipo de recurso que empaqueta varios tipos diferentes de recursos involucrados en Media Framework y que te ofrece control sobre algunas funciones avanzadas como la deformación de la lente, los efectos de croma, la corrección del color y mucho más.
Pasos
En el explorador de contenido, amplía el panel Fuentes. Haz clic con el botón derecho y selecciona Nueva carpeta en el menú contextual.
Cambia el nombre de tu nueva carpeta a Blackmagic.
Abre la nueva carpeta, haz clic derecho en el explorador de contenido y selecciona Medios > Paquete multimedia.
El nombre de tu nuevo recurso se selecciona automáticamente en el explorador de contenido, por lo que puedes darle un nombre descriptivo: Escribe un nuevo nombre, como BlackmagicMediaBundle y pulsa Intro. Se crea automáticamente una nueva carpeta de recursos de Media Framework junto a tu paquete multimedia, nombrada con el sufijo _InnerAssets. Echaremos un vistazo a estos recursos más adelante.
Guarda tus nuevos recursos haciendo clic en el botón Guardar todo del explorador de contenido.
Haz doble clic en tu nuevo paquete multimedia para editar sus propiedades. El paquete multimedia es capaz de reproducir vídeo de cualquier tipo de fuente multimedia compatible con el motor, por lo que tendrás que indicarle que quieres obtener el vídeo de la tarjeta Blackmagic. En la propiedad Fuente multimedia, selecciona Fuente multimedia de Blackmagic en la lista desplegable:
Una vez que hayas identificado el tipo de fuente multimedia que quieres que se encargue del paquete multimedia, puedes configurar las propiedades de configuración que ofrece ese tipo de fuente. Puedes hacer que Unreal Engine haga coincidir automáticamente el formato y la frecuencia de fotogramas de la señal de vídeo entrante. Para habilitar la detección automática de formato, haz clic en el desplegable Configuración, activa Auto y después haz clic en Aplicar. Ahora, el motor gestiona los cambios sin problemas y se reinicia automáticamente si se pierde temporalmente la señal.
Las opciones que aparecen pueden variar en función de los dispositivos que hayas instalado. Para obtener más información sobre todas las propiedades que puedes establecer para una fuente multimedia de Blackmagic, consulta la página Referencia de medios de Blackmagic.
Si quieres aplicar alguna compensación al vídeo entrante para tener en cuenta la distorsión de la lente, puedes configurar las propiedades físicas de la lente en la sección Parámetros de la lente.
Estos parámetros de la lente solo configuran las propiedades físicas de la lente. Activarás la compensación de la lente más adelante, cuando edites la instancia de material usada por el paquete multimedia. Guarda y cierra tu paquete multimedia cuando hayas terminado de configurar sus propiedades.
Arrastra el recurso BlackmagicMediaBundle desde el explorador de contenido al visor de nivel.
Verás aparecer un nuevo plano mostrando el vídeo que se está reproduciendo sobre el puerto configurado para tu paquete multimedia. Usa las herramientas de transformación de la barra de herramientas del visor para moverlo, rotarlo y cambiar su tamaño. Si tu paquete multimedia no empieza a reproducirse automáticamente, selecciónalo y haz clic en el botón Paquete multimedia > Solicitar reproducción de medios del panel Detalles.
Ahora veremos cómo aplicar efectos de clave y composición a la transmisión de vídeo. De vuelta en el editor del paquete multimedia, haz clic en el botón Abrir editor de materiales de la barra de herramientas para editar la instancia de material que usa este paquete multimedia para trazar su entrada de vídeo entrante en un objeto del nivel.
En el editor de instancias de material, verás una serie de propiedades expuestas para que configures las claves, el recorte y la corrección del color, así como para activar la corrección de la distorsión de la lente que hayas configurado en el paquete multimedia.
Mientras configuras los ajustes en el editor de instancias de material, puedes ver el efecto de tus cambios en la entrada de vídeo que se reproduce en el visor de nivel principal.
Puede que te resulte más cómodo ver los efectos de los cambios que haces en el panel de vista previa del editor de instancias de material. Para hacer esto, habilita temporalmente el ajuste IsValid y establece su valor en
1.0.Haz clic en la flecha situada arriba a la izquierda de la barra de herramientas del visor y habilita la opción Tiempo real en el menú.
Podrás juzgar el efecto de tus cambios más fácilmente cambiando la malla de previsualización a un plano o un cubo. Usa los controles de la parte inferior del visor:
Cuando hayas terminado, devuelve el ajuste IsValid a su valor anterior.
Cuando hayas terminado de cambiar las propiedades de la instancia de material, haz clic en el botón Guardar de la barra de herramientas.
Resultado final
Llegados a este punto, deberías tener el vídeo reproduciéndose sobre un puerto SDI dentro de tu nivel de Unreal Engine, y deberías saber dónde configurar funciones más avanzadas como la deformación de la lente o los efectos de croma.
Si ya conoces Media Framework, otra forma de incluir vídeo en tu nivel es crear un nuevo recurso de BlackmagicMediaSource en tu proyecto y configurarlo con las mismas propiedades de la fuente que configuraste en el paquete multimedia en el procedimiento anterior. Después, crea tus propios recursos MediaPlayer y MediaTexture para gestionar la reproducción de esa fuente en tu nivel. Para obtener más información, consulta la documentación de Media Framework. Sin embargo, recomendamos usar el paquete multimedia tal y como se muestra arriba, para conseguir el mejor equilibrio entre la facilidad de uso y las funciones de vídeo de calidad profesional.
3. Obtén capturas de Unreal Editor
En este proceso, configurarás un objeto Salida de medios de Blackmagic y usarás el panel Capturas de medios de Unreal Editor para generar la vista de las cámaras seleccionadas en el nivel en tu tarjeta Blackmagic.
Pasos
Haz clic derecho en el explorador de contenido y selecciona Medios > Salida de medios de Blackmagic.
Llama a tu nuevo recurso BlackmagicMediaOutput.
Haz doble clic en el nuevo recurso para abrirlo y editarlo. Al igual que cuando creaste tu fuente de medios de Blackmagic, tienes que configurar la propiedad Configuración para controlar las propiedades de la entrada de vídeo que Unreal Engine envía a la tarjeta Blackmagic. Haz clic en la flecha para abrir el submenú, selecciona las opciones que coincidan con tu configuración de vídeo y haz clic en Aplicar en el submenú.
Las opciones que aparecen pueden variar en función de los dispositivos que hayas instalado. Para obtener más información sobre todas las propiedades que puedes configurar en la salida de medios de Blackmagic, consulta la página Referencia de medios de Blackmagic. Guarda y cierra tu salida de medios cuando hayas terminado.
Ahora colocaremos dos cámaras en el nivel que nos proporcionarán puntos de vista para la salida que enviaré a la tarjeta Blackmagic. En el panel Colocar actores, abre la pestaña Cinemática y arrastra dos instancias del actor Cámara de cine al visor.
Coloca las cámaras donde quieras dentro del nivel para que muestren distintos puntos de vista de la escena.
Pilotar la cámara es una forma rápida y sencilla de establecer el punto de vista exactamente como quieres. Consulta Cómo pilotar actores en el visor.
En el menú principal, selecciona Ventana > Producción virtual > Captura de medios. Usarás la ventana Captura de medios para controlar cuándo el editor envía la salida a tu dispositivo Blackmagic y qué cámara debe usar en el nivel.
En el área Captura del visor multimedia, busca el control Capturas del visor. Haz clic en el botón Añadir (+) para añadir una nueva captura a esta lista.
Amplía la nueva entrada. Primero añadiremos las cámaras desde las que queremos capturar. En el control Actores de cámara bloqueados, haz clic en el botón Añadir (+) para añadir una entrada nueva.
Después usa la lista desplegable para elegir una de las cámaras que has colocado en el nivel.
Repite los mismos pasos para añadir la otra cámara a la lista.
Ahora configura la salida en la que quieres capturar estas cámaras. Configura el control Salida de medios para que apunte al nuevo recurso de salida de medios de Blackmagic que has creado arriba. Puedes hacerlo seleccionándolo en la lista desplegable o arrastrar tu recurso de salida de medios de Blackmagic desde el explorador de contenido y soltándolo en este espacio.
En la parte superior de la ventana, haz clic en el botón Capturar.
Verás un nuevo fotograma en la parte inferior de la ventana que muestra una vista previa de la salida que se envía a la tarjeta Blackmagic. Si has conectado este puerto a otro dispositivo de bajada, deberías empezar a ver la salida.
Cada cámara que hayas añadido a la lista de actores con cámara bloqueados para esta captura del visor está representada por un botón correspondiente encima de la vista previa del vídeo. Haz clic en los botones para alternar la captura entre las dos vistas.
Resultado final
Ya has configurado Unreal Editor para transmitir la salida de las cámaras de tu nivel a un puerto de tu tarjeta Blackmagic. A continuación, veremos cómo usar los comandos visuales de blueprints para hacer lo mismo en un proyecto de Unreal Engine en ejecución.
4. Obtén capturas de salida en tiempo de ejecución
La ventana Captura de medios que usaste en la última sección es una forma práctica y sencilla de enviar capturas a la tarjeta Blackmagic. Sin embargo, solo funciona dentro de Unreal Editor. Para hacer lo mismo cuando ejecutes tu proyecto como aplicación independiente, tendrás que usar la API de Blueprint proporcionada por la salida de medios. En este procedimiento, configuraremos un sencillo control en el blueprint de nivel que iniciará y detendrá la captura cuando el jugador pulse una tecla del teclado.
La muestra de Virtual Studio, disponible en la pestaña Muestras del iniciador de Epic Games, contiene un widget de interfaz de UMG que demuestra cómo puedes controlar las capturas desde una interfaz de usuario en pantalla.
Pasos
En la barra de herramientas principal de Unreal Editor, selecciona Blueprints > Abrir blueprint de nivel.
Tendremos que empezar por el recurso de salida de medios de Blackmagic que has creado, donde debes identificar el puerto al que quieres enviar la salida. En la lista Variables del panel My Blueprint, haz clic en el botón Añadir (+) para añadir una nueva variable.
En el panel Detalles, establece Nombre de la variable en BlackmagicMediaOutput y usa la lista desplegable Tipo de variable para convertirlo en una referencia de objeto de salida de medios de Blackmagic.
Habilita el ajuste Instancia editable (1) y compila el Blueprint. Después, en la sección Valor predeterminado, establece la variable para que apunte al recurso de salida de medios de Blackmagic que creaste en el explorador de contenido (2).
Pulsa Ctrl y arrastra BlackmagicMediaOutput desde la lista de variables del panel My Blueprint hasta el grafo de eventos.
Haz clic y arrastra desde el puerto de salida del nodo variable BlackmagicMediaOutput y selecciona Medios > Salida > Crear captura de medios.
Conecta tus nodos al nodo Event BeginPlay, tal y como se muestra a continuación:
Esto crea un nuevo objeto de captura de medios a partir de tu salida de medios de Blackmagic. La captura de medios ofrece dos funciones de blueprint principales que usaremos para controlar la captura: Capturar visor de escena activa y Detener captura.
Primero guardaremos el nuevo objeto de captura de medios en su propia variable para poder acceder a él de nuevo en cualquier otro lugar. Haz clic y arrastra desde el puerto de salida del nodo Create Media Capture y selecciona Promocionar a variable.
Cambia el nombre de la nueva variable MediaCapture en la lista de variables del panel My Blueprint.
Es importante guardar la captura de medios en una variable aquí. De lo contrario, es posible que el recolector de basura de Unreal Engine la destruya automáticamente antes de que termines de trabajar.
Pulsa Ctrl y arrastra la variable MediaCapture al grafo de eventos.
Haz clic y arrastra desde el puerto de salida del nodo variable MediaCapture y selecciona Medios > Salida > Capturar visor de escena activa. Hazlo de nuevo y selecciona Medios > Salida > Detener captura.
Haz clic derecho en el grafo de eventos y selecciona Entrada > Eventos de teclado > P. Haz clic y arrastra desde la salida Pulsado del nodo P y selecciona Control del flujo > FlipFlop.
Conecta la salida A del nodo FlipFlop al evento de entrada del nodo Capture Active Scene Viewport y la salida B del nodo FlipFlop al evento de entrada del nodo Stop Capture, tal y como se muestra a continuación:
Compila y guarda el blueprint, e intenta reproducir tu proyecto. Haz clic en la flecha junto al botón Reproducir de la barra de herramientas principal y elige Nueva ventana del editor (PIE) o la opción Juego independiente.
La captura de vídeo desde el editor solo funcionará cuando reproduzcas tu proyecto en una nueva ventana del editor (PIE) o en un juego independiente. No funcionará en el modo Visor seleccionado predeterminado ni en el modo Simulación. Además, la resolución del visor de tu proyecto (es decir, el tamaño de la imagen renderizada que Unreal Engine genera en cada fotograma) debe coincidir con la resolución de salida establecida en el perfil de medios activo para que tenga el tamaño adecuado para la salida de vídeo.
Después de que se inicie tu proyecto, deberías poder pulsar la tecla P del teclado para alternar el envío de la salida del motor a la tarjeta Blackmagic.
Resultado final
En este punto, deberías tener una idea básica de cómo trabajar con fuentes de medios de Blackmagic, paquetes de medios y el sistema Captura de medios; además, deberías comprender cómo funcionan todos estos elementos juntos para obtener vídeo profesional dentro y fuera de Unreal Engine.
Por tu cuenta
Ahora que ya conoces los conceptos básicos sobre cómo conseguir un nuevo proyecto intercambiando entrada y salida de vídeo con una tarjeta Blackmagic, puedes seguir aprendiendo por tu cuenta:
Explora la solución de claves integrada en el motor en la instancia de material creada por tu paquete multimedia. Prueba a pasar vídeo de pantalla verde por el puerto de entrada de tu tarjeta y usa los controles de claves de la instancia de material para eliminar el fondo.
Explora la muestra de Virtual Studio para ver qué añade a esta configuración básica, como la IU en pantalla que cambia de cámara y controla la captura de vídeo en tiempo de ejecución.