DynamicPPV_featured

en Tutoriales, UE4

Efecto de post procesado dinámico

Con este tutorial vamos a aprender como aplicar un efecto de post procesado a la escena. Vamos a adaptar uno de los materiales utilizados en el tutorial sobre Efectos de transición utilizando materiales para poder utilizarlos en un post process volume y ver su efecto en toda la escena.

El post-processing es el proceso de aplicar filtros a pantalla completa al buffer de imagen de la camera antes de que se muestre por pantalla. Puede utilizarse para mejorar el aspecto visual como el efecto de anti-alias o distorsiones como el motion-blur que podemos ver en algunos juegos de conducción, o incluso añadir mas detalles como un efecto de contorno sobre determinados objetos.

Para utilizar el post-processing en nuestro nivel necesitamos añadir un volumen de post procesado (post processing volume) al mapa del nivel, lo podemos encontrar en la pestaña Modes del Editor

modes_menu

Podemos ver que el volumen aparece como un objeto hijo de nuestro mapa

world_outline

Ahora necesitamos crear el material para el efecto.Vamos a modificar el material que aplicaba un efecto mosaico sobre el fondo de un tutorial anterior. No olvidemos cambiar el dominio del material a Post Process en la pestaña Details.

material_details

Para convertir el material anterior en un material para post processing tenemos que cambiar el nodo Texture sample por un nodo SceneTexture: PostprocessInput

mosaic_material
Original Mosaic Material
ppv_mosaic_material
Post Process Mosaic Material

Esta modificación puede realizarse con otros materiales de ese mismo tutorial sobre efectos de transición, como la distorsión ondulada o la distorsión en lineas.

Ahora podemos crear una Instancia de este Material y añadirla al Post Process Volume para ver el efecto. Para ello hacer click derecho sobre el material y Create Material Instance

create_minstance

Definimos los parámetros del material a nuestro gusto para esta instancia.

material_instance_settings

Ahora podemos añadir la instancia a la lista de materiales del post process volume

Selecciona el Post Process Volume,en la sección Rendering Features, añade la Instancia del Material al Array de Materiales del Post Process. Como se puede ver podemos añadir multiples materiales para aplicarlos al mismo tiempo y definir para cada uno un peso y obtener de esta manera efectos mezclándolos todos.

ppv_settings

Para aplicar el post process a toda la escena y no solo al límite definido por el volumen necesitamos marcar la opción Infinite Extent

Scene_PPV_off
Scene PPV OFF
Scene_PPV_on
Scene PPV ON

Efecto de Post Procesado dinámico

Ahora tenemos un PPVolume funcionando, pero qué tenemos que hacer para modificar el efecto en tiempo de ejecución. Podríamos Activar y Desactivar el Post Process Volume modificando el valor de su variable bEnable, o, por otro lado, podríamos modificar la instancia del material dinámicamente para obtener los valores intermedios del efecto también.

Para este ejemplo vamos a crear un Widget con un control deslizante (Slider) para establecer el valor de la Instancia dinámica del material. Este widget contiene una referencia al Post Process Volume y una Instancia Dinámica de Material ( MID).

widget_variables
Widget variables

Necesitamos pasar la referencia del PPVolume al widget, para ello hay que seleccionar el Objeto del Post Process Volume del mapa y hacer click derecho en el Blueprint de nuestro Nivel. Ahora podemos ver la opción para crear la referencia Create a Reference to the volume

ppv_reference_menu
ppv_reference

Pasamos esta referencia al Widget usándolo como parámetro del nodo de Inicialización.

widget_init
Level Blueprint

Este Widget de control debe crear la Instancia Dinámica de nuestro material Mosaico y guardar una referencia.

widget_initialization
Widget Initialization

Ahora podemos construir el Array de materiales del Post Process Volume dinámicamente en esta inicialización, podemos sobreescribir luego sus ajustes con este array

ppv_dynamic_mats

Para cambiar el valor del material en tiempo de ejecución solo necesitamos utilizar el nodo set the scalar parameter para establecer el nuevo valor para el parámetro del material.

ppv_update

Por último la lógica del Control deslizante. Cuando alcanza el límite derecho queremos que se desactive el volumen de post procesado y con ello el efecto.

widget_slider_event

Ahora tenemos un efecto dinámico de post procesado para hacer transiciones de nivel.

ppv_youtube_img

Tutorial files

Ayudanos con este blog!

El último año he estado dedicando cada vez más tiempo a la creación de tutoriales, en su mayoria sobre desarrollo de videojuegos. Si crees que estos posts te han ayudado de alguna manera o incluso inspirado, por favor considera ayudarnos a mantener este blog con alguna de estas opciones. Gracias por hacerlo posible!

Escribe un comentario

Comentario