Un personaje se enfrenta a varios monstruos en «Let Them Come: Onslaught».

Blog de tecnología

Entrevista

Optimización de los sistemas de sangre y efectos visuales en UE5 para Let Them Come: Onslaught

Blueprints

Indies

Let Them Come: Onslaught

Niagara

Tuatara Games

Videojuegos

tuatara-games-logo.png
Tuatara Games es un colectivo de artistas de primer nivel con sede en Vancouver que ofrece servicios de efectos visuales de vanguardia para juegos y otras experiencias de tiempo real. El estudio ha aprovechado su experiencia para colaborar con las principales empresas de videojuegos, como Epic Games, y también para desarrollar su propia PI con el clásico de culto Let Them Come.
Hola, comunidad de Unreal Engine. Soy Alex Underhill, artista técnico y de efectos visuales en Tuatara Games. Formo parte de un pequeño equipo que acaba de lanzar un juego con Unreal Engine 5, Let Them Come: Onslaught, para PC y consolas. 

En este título de ciencia ficción y lluvia de balas, los jugadores están atrapados en un mundo alienígena hostil donde tendrán que vérselas con infinitas hordas de monstruos. En lugar de que los enemigos desaparecieran de la pantalla, queríamos que cada muerte fuera espectacular y quedara reflejada en el campo de batalla. Pero, como las hordas eran tan grandes, nos enfrentamos a varios desafíos técnicos que implicaron tener que experimentar con los sistemas de Unreal Engine para darles solución.

El juego original, Let Them Come, se desarrolló con Game Maker, pero para Let Them Come: Onslaught cambiamos a Unreal Engine porque consideramos que era el motor que mejor se adaptaba a lo que queríamos lograr. 

Unreal Engine nos dio la posibilidad de saturar la pantalla con enemigos y efectos visuales sin comprometer el rendimiento. Además, al haber trabajado como estudio de efectos visuales, también tenemos experiencia con herramientas para crearlos, sobre todo las de Unreal Engine.

Nuestro reto: los suelos sangrientos


Uno de los retos que suponían los efectos visuales de Let Them Come: Onslaught fue manejar la cantidad de enemigos en pantalla en un momento dado y determinar cuántos podrían morir a la vez. Cuando creamos el prototipo del juego, los enemigos activaban una señal de juego de explosión que creaba una pegatina de sangre en el suelo y una explosión sangrienta para que el jugador tuviera constancia de su muerte. Pronto nos dimos cuenta de que podíamos activar muchas de estas muertes a la vez, así que tuvimos que optimizar el sistema para que la acción fuera lo más caótica posible sin verse limitada por la cantidad.

Las pegatinas de sangre se crearon originalmente para transmitir la sensación de matanza y para servir como un rastro que mostrara al jugador por dónde había pasado (y lo que había dejado atrás). El inconveniente de esto fue que se creaban demasiadas, además de que queríamos que duraran un buen rato para que cumplieran su función, lo que hacía que se acumularan muy rápido. También hubo que lidiar con las pegatinas superpuestas: si matabas a muchos enemigos que estuvieran cerca unos de otros, estas se solapaban, lo que en muchas ocasiones afectaba al rendimiento.

Para que apareciera una gran cantidad de marcadores de sangre (¡y ácido!) en el terreno, recurrimos a Niagara, que nos permitió crear un sistema que renderizaba varias áreas del espacio global en un objetivo de renderizado. Esta matriz tiene una longitud fija de unas 256 entradas y se repite, por lo que una vez agotadas, la primera se actualizará para convertirse en la 257, y así sucesivamente. Nos pareció que esta cantidad funcionaba bien, ya que nos daba la posibilidad de cubrir bien el suelo de sangre antes de tener que reciclar las entradas.

Ahora, cuando un enemigo muere, en lugar de generar una pegatina, envía datos sobre sí mismo (posición, radio y tipo de material) a un actor de blueprint que hemos llamado «gestor de dispersión» y que permanece activo en el mundo. 
El resultado de la máscara final, distorsionada, logra un efecto visceral muy convincente.
Cortesía de Tuatara Games
A continuación, este gestor envía los datos a un sistema global de Niagara que utiliza lenguaje de sombreado de alto nivel (HLSL) para escribir estas zonas en una máscara de objetivo de renderizado global mediante la interfaz de datos Grid2D. Para este sistema nos basamos principalmente en el trabajo de Chris Zuko, director técnico de Terrible Posture Games. Rellenamos el objetivo de renderizado con la distancia a cada charco de sangre, mientras que el intervalo de distancia viene definido por el radio entrante. Después, todas estas distancias se combinan para crear una máscara uniforme.
Máscaras de charcos de sangre para una escena de batalla en «Let Them Come: Onslaught».
Cortesía de Tuatara Games
Esta máscara contiene varias capas, incluidas una de sangre y otra de ácido, que luego pueden usarse en los sombreadores de superficies del entorno para añadir un efecto visceral donde sea necesario. 

El gestor controla la posición de origen del área renderizada actual en el espacio global, así como su tamaño en unidades. Estas variables se actualizan dentro de un conjunto de parámetros de material y Niagara para que puedan usarse en el contenido.

Expusimos esta máscara visceral mediante varias funciones de materiales que mapeaban automáticamente las coordenadas al lugar donde debía estar en el mundo, dejando a los artistas únicamente con un rango de 0,0 a 1,0 de peso que podían usar para controlar los efectos sobre la superficie sin preocuparse por recrear las coordenadas. Para la mayoría de las superficies, usamos el mapa de distancia entrante y ejecutamos algunas muestras de ruido en el espacio global para distorsionar la forma y hacer que se integrase con el entorno de forma más orgánica.
Los charcos de sangre se integran orgánicamente con el entorno.
Cortesía de Tuatara Games
A continuación, la máscara distorsionada final se utiliza para combinar los atributos del material en el sombreador de superficie y darle un aspecto sangriento y visceral.
Radios de los charcos de sangre para una escena de batalla en «Let Them Come: Onslaught».
Cortesía de Tuatara Games

Efectos visuales de las explosiones de sangre


Otra optimización clave fue reducir la cantidad de sistemas de partículas que se generaban, principalmente al eliminar enemigos. Al igual que con las pegatinas, la cantidad de explosiones de muerte en pantalla supuso un problema. En este caso, no derivaba tanto de la superposición, sino de la cantidad de sistemas Niagara que había que generar y gestionar.

Nos pasamos a Unreal Engine 5.3 en mitad del proyecto, y una de las principales razones para hacerlo fue poder utilizar los canales de datos de Niagara. Cuando refactorizamos un poco los efectos visuales y las señales de jugabilidad, conseguimos enviar cada evento de explosión de sangre a un único sistema Niagara a través de un canal de datos. Después, este reproduce una explosión de sangre en la posición correcta en lugar de tener que generar un nuevo sistema Niagara cada vez. Funcionaba de forma muy similar a los charcos de sangre: al morir, un enemigo envía información sobre sí mismo al sistema de gestión del mundo, incluidos la posición y el tamaño o magnitud del evento, que a su vez se envían a un canal de datos de Niagara .

Llegado el momento de implementar una versión «no visceral» de los efectos de muerte, este método nos facilitó el trabajo: implementamos esta versión junto a la visceral, que cambian según las opciones del juego.

La ruta del canal de datos de Niagara para los efectos de muerte no cubre el 100 % de todas las muertes, ya que algunas entidades requerían animaciones de muerte propias. Pero sí cubre entre un 80 y un 90 % de las muertes, permitiéndonos además crear versiones a medida cuando fuera necesario.

El resultado es que los jugadores pueden contemplar el caos que han provocado mientras luchan por sobrevivir, y el campo de batalla refleja sus hazañas sin que ello afecte al rendimiento. Estamos deseando que podáis ver todo esto en acción ahora que Let Them Come: Onslaught está disponible.

¿Quieres crear juegos en Unreal Engine?

Con Unreal Engine, tu ambición es el límite y no el tamaño de tu equipo. Descubre cómo UE5 ofrece a equipos de todos los tamaños la potencia para crear videojuegos que destaquen, con la sofisticación visual y la fidelidad de los títulos de los grandes estudios.
Más información

Recibe los últimos recursos gratuitos y actualizaciones sobre las novedades de

Al enviar esta información, aceptas recibir noticias, encuestas y ofertas especiales de Epic Games. Política de privacidad