La creación de olas y mecánicas de agua realistas con UE5 en Still Wakes the Deep

7 de noviembre de 2024
¡Hola! Soy Joe Wheater, programador de The Chinese Room. Hace poco colaboré con el equipo encargado de las mecánicas acuáticas para nuestro videojuego narrativo de terror, Still Wakes the Deep. El videojuego, que llegó a PC, PlayStation 5 y Xbox Series X|S en junio, sitúa a los jugadores en una plataforma petrolífera del mar del Norte en 1975, donde se enfrentarán con un terror insondable que se ha subido a bordo con ellos. Cameron («Caz») McLeary tendrá que adentrarse y explorar toda la estructura, que está a punto de colapsar, para buscar una salida.
La ambientación principal del juego supone que los jugadores se encuentren rodeados de agua en prácticamente todo momento, ya sea por los niveles de inundación de la estructura o por el mar del Norte que los sostiene. Por ello, el objetivo era conseguir que cada gota evocara la máxima sensación de amenaza y realismo posibles. Aquí compartimos cómo fue la aventura de crear mecánicas de agua realistas en Unreal Engine 5, los resultados y los mejores consejos para todos los desarrolladores que quieran emprender su propia aventura acuática.

Nuestro desafío

El desafío al que nos enfrentábamos era crear agua que llevara al límite al jugador, que pareciera cobrar vida de la forma más realista y exigente, sin llegar a volverse imposible. En el juego hay dos tipos de agua: una que se ha filtrado en el barco y está arrasando la estructura y el insondable mar del Norte que lo rodea. 

Ambas son elementos clave para reforzar la ambientación y la tensión del juego, así como para ahondar en los miedos más profundos del jugador, como pueden ser la claustrofobia (miedo a espacios pequeños), submecanofobia (miedo a objetos creados por el ser humano que están sumergidos en el agua), tanatofobia (miedo a la muerte), autofobia (miedo a la soledad), talasofobia (miedo a grandes masas de agua), nictofobia (miedo a la oscuridad) y acrofobia (miedo a las alturas).
El jugador se encuentra atrapado en una plataforma petrolífera devastada de uno de los lugares más peligrosos del mundo. Con las olas del mar del Norte rompiendo a sus pies, ¿cómo logrará escapar?
Si bien ambos aspectos contribuyen a la sensación general del juego de historia y terror, son muy diferentes en términos de aspecto, mecánicas y función. Aquí os explicamos cómo creamos el agua filtrada en la estructura, que crece y fluye a la par que la tensión del juego y en estrecho contacto con los jugadores con bastante frecuencia.

La sensación de hundirse y cómo desarrollamos su apariencia

A medida que se avanza en Still Wakes the Deep, comienzan a emerger la historia y sus secretos. La tripulación empieza a transformarse, la estructura de la plataforma comienza a desmoronarse mientras las enormes vigas de metal se precipitan sobre las olas del mar, y el agua crece y anega las primeras partes de la plataforma. La mala noticia para Caz (y para el jugador) es que tendrá que arrastrarse hasta las entrañas de la bestia y explorar las zonas inundadas de la plataforma para progresar.
A lo largo de Still Wakes the Deep, los jugadores tendrán que bucear por los niveles inferiores de la plataforma para escapar, activar mecánicas o encontrar objetos.
 
El equipo de diseño de niveles quiso que varios capítulos del juego transcurrieran dentro del agua. Queríamos que el jugador tuviera nuevas mecánicas que explorar y dominar, lo que supuso una serie de retos interesantes y divertidos para el equipo. Éramos conscientes de que el agua es una de las principales amenazas del juego, por lo que buscábamos un aspecto en línea con su potencial, lleno de detalles, oscuridad y profundidad.

Para hacerlo posible, desarrollamos una simulación bidimensional de agua poco profunda con el sistema de efectos visuales de Niagara de UE. La simulación en 2D únicamente simula la superficie del agua y calcula ecuaciones que describen sus movimientos, por lo que, cuando el agua fluye con velocidad (sobre todo en secuencias de inundación), provoca cambios en la altura de la superficie. Esto genera olas que le dan un aspecto amenazante y salvaje. 

Estas secuencias transmiten una sensación de frenesí y descontrol, pero en realidad contamos con sistemas de volúmenes de agua que se encargan de ello. Etiquetamos las mallas de las paredes y el suelo para poder integrarlas en una textura de mapa de altura, que representa el espacio que puede recorrer el agua. Así, las mallas servían de límites dentro de la simulación, de forma que el agua rebote y vuelva al impactar.
 
Habrá también momentos en que el jugador deba sumergirse y recorrer cámaras destrozadas, o resistir ante una temible corriente para llegar a la siguiente sección. En esencia, Still Wakes the Deep posee una ambientación oscura y llena de metal. Nuestra intención era que los niveles se centraran el uso del agua como obstáculo, aportar un toque extra de dificultad sin que llegara a resultar imposible o frustrante.

Con ese objetivo, dejamos que el posprocesamiento se encargara de generar la sensación de estar bajo el agua. Además, para crear esas dimensiones del agua adicionales y hacer que los objetos parecieran desenfocados, empleamos volúmenes de niebla, partículas, patrones de luz cáustica, profundidad de campo, desenfoque y efectos de bloom.
 
La visión del jugador se ve borrosa cuando entra en el agua de manera intencionada. Gracias a esto, no solo se vuelve la jugabilidad más dinámica y desafiante, sino que además indica al jugador cuándo está debajo del agua y que debe moverse para no quedarse sin oxígeno.
Hemos añadido también volúmenes de niebla y sistemas de partículas al agua para que diese la impresión de que haya contaminantes en ella y que tenga un aspecto turbio y espeso. Además, hemos incorporado capas de polvo, escombros y burbujas para oscurecer aún más la visión del jugador. Estos sistemas de partículas resultaron especialmente útiles a la hora de generar una sensación de movimiento, puesto que, al moverse en el agua, los jugadores provocan burbujas que flotan hacia la superficie, polvo que se arremolinaba suavemente o las propias corrientes acuáticas.

Los sistemas de partículas y posprocesamiento en acción. De izquierda a derecha, vemos primero la imagen sin postprocesado/partículas/niebla/luz, luego, sin postprocesado, pero con la niebla, luz y partículas activadas y, finalmente, el producto terminado, con todos los sistemas que mencionamos activados.

La sensación de explorar las profundidades

Queríamos asegurarnos de que los niveles de la subida del agua generaran la misma sensación de urgencia que sobre una superficie seca y que la jugabilidad se alineara con la tensión y el terror que se dan en la historia. Para ello, desarrollamos e implementamos un sistema de bombeo que añadía velocidad y corrientes al agua, no solo para que esta transmitiera esa sensación de velocidad y emoción, sino también para respaldar el movimiento del jugador.

El sistema de bombeo se compone de objetos en forma de cápsula que insuflan velocidad a la simulación del agua y que produce olas y ondas que se desplazan por la superficie del agua para indicar una dirección. Después, acoplamos varios sistemas a los brazos, las manos y los pies del protagonista principal, que provocaron una intersección en ellos y produjeron un flujo de tiempo real realista en las acciones del jugador en el agua.
 
A fin de acentuar la inmersión, queríamos que el agua no solo se moviera de forma dinámica según las acciones del jugador, sino que también influyera en los objetos sumergidos en ella. Había objetos físicos como los barriles de petróleo o las barras de refuerzo de la estructura que no reaccionaban al movimiento de la superficie en la simulación del agua. 

Para solucionarlo, usamos la función de consulta de la GPU de Niagara, que nos permitía consultar la simulación y saber la fuerza, la dirección y la altura de la superficie del flujo en lugares concretos. Cuando recopilamos estos datos, pudimos aplicar fuerzas de flotabilidad para que los objetos flotaran y aprovechar las fuerzas de la corriente para que el objeto se moviera a la vez que la simulación de la superficie. De este modo, logramos generar la sensación de que los objetos se movían en correlación directa con el jugador.
 
Durante el desarrollo, probamos otras mecánicas que habrían aumentado aún más la inmersión y la autenticidad. Por desgracia, vimos que afectaban negativamente a la experiencia de juego. 

Por ejemplo, intentamos emular la sensación de llevar un mono que se encharcaba al nadar. Esto repercutiría en nuestro protagonista, Caz, ya que trabajar como ingeniero en uno de los entornos más fríos del planeta haría que llevase esta ropa tan resistente. Tal y como ocurriría en una situación real, esta indumentaria ralentizaría al personaje cuando se echase a nadar y le restaría flotabilidad en el agua.
 
El uniforme que lleva la tripulación del navío Beira D.. Consideramos añadir una mecánica realista de mojadura para Caz, de forma que el jugador viese que se va empapando a medida que se sumerge. Sin embargo, la combinación de materiales pesados y capas hacía que el personaje se hundiera demasiado rápido y eso suponía un mayor desafío para superar los niveles acuáticos del juego.
Aunque inicialmente probamos a implementarlo, era demasiado frustrante jugar en estos términos y nos complicaba mucho contar al jugador lo que estaba ocurriendo. Por otro lado, al nadar con mayor lentitud, la distancia que podía bucear el jugador aguantando la respiración se reducía drásticamente, limitando mucho al equipo de diseño a la hora de aplicar la mecánica de natación que habían desarrollado. Al final, optamos por eliminarlo para que mejorar la experiencia, pero la idea era interesantísima. 

Herramientas para crear agua realista

Descubrimos que Unreal Engine contaba con un conjunto de herramientas y tecnología integradas que podíamos aprovechar y tomar de modelo a la hora de crear el agua de Still Wakes the Deep. Por ejemplo: 
 
  • Modelo de sombreado de capa única de agua: El Single Layer Water Shading Model nos ayudó en gran medida a lograr el realismo del agua con Unreal Engine. Además, aprendimos un montón de los recursos de Epic sobre su implementación y eficacia.
   
  • Editor de materiales: Lo usamos para añadir capas de efectos basados en texturas a los datos de la simulación. Nos resultó realmente útil para añadir efectos a los elementos visuales del agua y nos ayudó con la narración a medida que avanzaba el juego.
 
  • Niagara: Usamos Niagara para la propia simulación y para muchos de los sistemas de partículas, desde tuberías destrozadas hasta los escombros en el agua. Además, las fases de simulación de Niagara que había disponible nos fueron de tremenda ayuda, sobre todo para entender cómo funciona la simulación de líquidos en Unreal Engine.
 
  • Sistema de agua: Nuestro sistema de agua consulta los datos de la simulación de Niagara mediante la interfaz de datos de Niagara. De este modo, el resto de sistemas del juego pueden reaccionar de forma dinámica al estado actual de la simulación.
 
  • Volúmenes de niebla: Usamos un material volumétrico para renderizar niebla en los volúmenes de agua. Así, el material podía obtener información de la simulación del agua con muestras de un objetivo de renderizado matriz en 2D.

Por qué usar Unreal Engine 5

Soy Nick Slaven, director técnico de Still Wakes the Deep, de The Chinese Room. 

Unreal Engine fue la opción más lógica para Still Wakes the Deep. Además de sus funciones, la fidelidad y el control que nos daba Unreal Engine sobre el proceso de creación eran justo lo que necesitábamos para hacer posible el concepto que tenía nuestro entonces director creativo, Dan Pinchbeck.

El equipo contaba con experiencias distintas con Unreal Engine, pero gracias al acuerdo que sellamos con Epic, pudimos organizarles sesiones formativas para que se hiciesen rápido con el uso de UE 4.26 antes de pasar a Unreal Engine 5. Esta actualización en las versiones del motor nos permitió sacar partido a las nuevas tecnologías de Epic, como Nanite y Lumen, que no solo han mejorado el aspecto y la ambientación del juego, sino también nuestra eficacia. Otras funciones, como la iluminación en tiempo real de Lumen, nos sirvieron para ver el efecto de los cambios en la disposición de la iluminación al instante, sin tener que esperar a integrar los mapas de sombras.

Por otro lado, la tecnología de agua de la que dispone UE nos ofreció una magnífica simulación del mar del Norte y sus herramientas de sombreado nos dieron los bloques de creación para la simulación interna del agua. Asimismo, aprovechamos al máximo MetaHuman para todos los trabajadores del juego, lo que impulsó tremendamente el nivel de realismo y de narración del juego.

Por último, pudimos exprimir la tecnología del rig de control para la tripulación transformada del petrolero Beira D. y, con ello, dimos vida a criaturas sobrenaturales, capaces de asombrar y horrorizar a partes iguales al jugador.

¡Hazte ya con Unreal Engine!

Consigue la herramienta de creación más abierta y avanzada del mundo.
Unreal Engine incluye todas las funciones y acceso ilimitado al código fuente, ¡listo para usar!

Blogs similares


Videojuegos

Ya está aquí Unreal Engine 5.5

Esta versión incluye mejoras importantes en la creación de animaciones, la renderización, la producción virtual, el desarrollo de videojuegos para móviles y los conjuntos de herramientas de iteración para desarrolladores, entre muchas otras cosas.

Noticias

¡Hoy sale Fab, el nuevo mercado de contenido digital unificado de Epic!

Hoy Epic lanza Fab, un sitio centralizado donde podréis descubrir, comprar, vender y compartir recursos. Este nuevo mercado da soporte a todo tipo de creadores con contenido para Unreal Engine, Unity 3D, UEFN y otras herramientas de creación de contenido digital.

Videojuegos

Descubre todos los anuncios del Unreal Fest Seattle 2024

Echa un vistazo a todos los anuncios de Epic Games en el Unreal Fest Seattle 2024 y descubre infinidad de novedades, como las reducciones en las regalías de Unreal Engine a través de la Epic Games Store, las nuevas funciones de UE 5.5 o la llegada de las Tortugas Ninja a UEFN.