Cómo los impresionantes efectos visuales dan vida a Ghost of Tsushima

0 0
Cómo los impresionantes efectos visuales dan vida a Ghost of Tsushima

Una inmersión profunda en el viento, el clima y las partículas interactivas que hacen que el viaje de Jin cobre vida.

La isla de Tsushima es un hermoso lugar para explorar, hecha de muchos pequeños detalles creados con amor por nuestro equipo. También es considerablemente diferente de nuestro anterior juego, Infamous: Second Son, el cual estuvo lleno de efectos visuales super poderosos. Soy Matt Vainio, artista principal de efectos visuales en Sucker Punch. Me gusta describir mi trabajo como resolviendo arte y problemas de diseño con tecnología, algo que he estado haciendo en Sucker Punch desde Infamous 2. Hoy hablaré de cómo hicimos la transición de llamativos super poderes a un mundo hermoso lleno de barro, sangre y acero – así como los métodos que utilizamos para crear los efectos visuales en Ghost of Tsushima. 

Cuando empezamos Ghost, identifiqué unas áreas mayores de mejoras, basado en lo que el proyecto necesitaba. La primera fue que quería empujar los niveles de interactividad en nuestros sistemas de partículas. Teníamos una gran inversión en sistemas de partículas de expresión de Second Son, donde creamos una amplia gama de super poderes mágicos. Para Ghost of Tsushima, uno de mis principales objetivos era coger ese sistema y pivotar hacia altos niveles de interactividad. Sabíamos desde el principio que el viento era un elemento importante que teníamos que incorporar a lo largo del los sistemas de partículas y más allá. También queríamos agregar vida animal, ofrecer grandes vistas con ambientes de entorno y lograr la dirección de “barro, sangre y acero” llenando de barro y sangre dinámicamente a los personajes mientras luchaban y se movían por el escenario. Hay muchas formas en las que hacemos las partículas más interactivas, pero todas requerían más datos del mundo del juego. Estos son solo algunos ejemplos del tipo de datos que estoy hablando: viento global, viento creado por el jugador al moverse, desplazamiento del personaje, terreno e información de la posición del agua, información del clima como humedad, hora del día y mucho más. 

El segundo mayor objetivo que teníamos era construir a gran escala. El mundo de Ghost of Tsushima es significativamente más grande que el de Second Son pero el equipo de Efectos Visuales en Sucker Punch era solo de dos personas para la mayoría del desarrollo. Esto significaba que necesitábamos actualizar nuestro contenido a través de procesos automatizados tanto como fuera posible. También teníamos que apoyar grandes vistas a lo largo del clima dinámico y 24 horas reloj. Al final, ubicamos a manos una pequeña cantidad de elementos para ayudar a guiar al jugador durante su exploración de la isla de Tsushima. 

Viento

Uno de los objetivos clave de la dirección de arte desde el comienzo fue que todo debía moverse. Esta fue una área obvia donde las partículas podrían ayudar agregando hojas flotando y polen en el aire, pero hay muchos sistemas que están trabajando juntos para brindar la ilusión del viento soplando. Aparte de las partículas, hay árboles, hierba, tela y cuerdas que se mueven con el viento. Todos estos elementos se afinaron juntos para que se movieran apropiadamente bajo diferentes condiciones de viento en el juego; cuando explota una bomba o se enciende una fogata el humo sale en la dirección correcta. Esto es para fuego, chispas, humo – casi todo. También tomamos muestras de la velocidad del viento para agregar turbulencia adicional mientras la velocidad del viento aumenta. 

Originalmente no quisimos que nuestro sistema global de viento se convirtiera en un modo de navegación hasta que el Director de Arte de Ghost, Jason Connell, se acercó a uno de nuestros ingenieros, Adrian Bentley, y a mí para preguntar si podíamos hacer que las partículas fueran el indicador de dirección para las misiones. Así nació el “windicator”. Nuestro enfoque fue no tratar de construir un sistema de caminos que cambiara constantemente las direcciones para evitar los obstáculos, sino apuntar directamente al objetivo y dejar que los jugadores encontraran el camino. Esto fue en gran parte porque queríamos que el jugador fuera explorador, involucrando su mente con el proceso de navegación y no seguir algún tipo de juego de IU sin pensar. Este enfoque de camino directo fue solo posible porque nuestro sistema de partículas puede acceder a información del terreno, lo que nos permitió que las partículas fueran consientes del escenario alrededor del jugador. 

En mis primeros intentos hice que las partículas abrazaran el terreno, subiendo y bajando, fluyendo por las colinas y los valles. Esto fue problemático por unas cuantas razones, la primera fue que nuestras montañas tenían muchos modelos de rocas para los acantilados; estos modelos de acantilados no son parte de la información del terreno, solo la malla subyacente dinámicamente teselada lo era. Esto significaba que las partículas se engancharían directamente a todas las caras de las rocas y desaparecerían, haciendo que el windicator fuera confuso de seguir. También se vio un poco antinatural abrazar el terreno tan perfectamente, así que mi siguiente intento fue preparar el terreno como un suelo para que las partículas fueran empujadas hacia arriba cuando se movieran hacia arriba en la colina y dejar que las partículas se desvanecieran cuando el terreno se inclina cuesta abajo lejos de ellas. Agregué velocidad ascendente cuando hay colinas en el camino haciendo varias pruebas a lo largo del trayecto del movimiento de las partículas. En cada una de estas pruebas, la partícula está buscando cómo ver qué tan cerca está al terreno en ese punto, o si al menos estaría enterrada. Si la partícula está muy cerca o enterrada en estos puntos de anticipación, a la partícula se le dará velocidad de ascensión. Al final, el windicator tiene diferentes elementos como los cambios del entorno: pelusas de la pampa y campos de hierba, hojas en el bosque, ceniza en áreas quemadas, y otros. Hablaré más sobre cómo funciona el sistema un poco más adelante en esta publicación. 

Con el follaje, todas las plantas están provistas de uniones que responden a la velocidad del viento local. Trabajamos con los equipos de código y entorno para crear controles separados para los troncos de las ramas, lo que nos permitió la flexibilidad para crear una mayor variedad de árboles y arbustos que se necesitaban para Tsushima. Además del movimiento de los troncos y las ramas, diseñamos el ruido que causan las pequeñas ondulaciones a lo largo de las superficies de hojas. 

La hierba y los campos de pampas fueron elementos icónicos y particulares para el juego y unos que requirieron mucho ir y venir trabajando con los equipos de renderizado, entornos y VFX. Los campos son una mezcla de triángulos generados por procedimientos para la hierba y assets modelados para los tallos y penachos de las pampas. Inicialmente, tratamos usando partículas para lograr el movimiento tipo ola desplazando la hierba en arcos superpuestos. La calidad visual de la hierba fue buena, pero no se veía bien en árboles y arbustos, además el costo del rendimiento fue un poco mayor de lo que podíamos costear. Para nuestro segundo intento, agregamos dos capas de ráfagas de procedimientos al entorno. La primera es un gran patrón de ruido que se desplaza con la dirección del viento; diseñada encima hay una textura que se desplaza a lo largo del terreno para detalles más pequeños en la hierba. La ventaja de este enfoque (a parte del costo de mejoras) fue que podíamos utilizar el ruido de la ráfaga de viento en los árboles y arbustos, lo que hizo que la hierba y otro follaje coincidieran de una manera más perfecta. 

Terminamos utilizando la tecnología de desplazamiento de partículas de hierba, pero para empujar la hierba al rededor mientras el jugador y el caballo corren por ella. Esto se ha hecho antes en otros juegos, pero una de las mejoras clave que hicimos acá fue que al usar el sistema de partículas para controlar el desplazamiento, pudimos aprovechar nuestras expresiones para un comportamiento más avanzado. Uno de estos comportamientos fue hacer que la hierba rebotara de regreso de una forma realista aplicando una onda amortiguada para la fortaleza del desplazamiento, lo que evita que la hierba vuelva a su posición de reposo de forma lineal y antinatural. El video de abajo es un ejemplo del desplazamiento de la hierba y una vista de depuración del sistema de partículas controlándolo. Las partes verdes del rastro representan el desplazamiento y las partes rojas están donde el desplazamiento se diluye. Si ves con cuidado podrás notar que la hierba pierde y luego vuelve a ganar valores de desplazamiento en cantidades más pequeñas a medida que el rastro se aleja del héroe. Esto crea una reverberación natural de movimiento, haciendo que la hierba se sienta más real. 

Por último, pero no menos importante, el equipo de tecnología del personaje tomó la iniciativa de agregar tela y cuerdas dinámicas al juego debido a su alto uso en los propios personajes. Cada una de las simulaciones de cuerdas y tela utiliza la misma entrada de viento que el follaje y las partículas, sumando a la ilusión de que realmente hay viento desplazándose por la escena. 

Animales

Asumimos temprano que cualquier animal que el equipo de VFX creara solo se pudiera ver desde lejos, pero a medida que el proyecto evolucionaba nos dimos cuenta de que podían jugar un rol mayor. Para esta característica hicimos equipo con el mismo codificador de renderizado que escribió el sistema de partícula durante la producción de Second Son, Bill Rockenbeck. Su primer paso fue dejar que las partículas generaran objetos animados. Una vez que eso estaba listo y andando, utilizando la misma información de posición del terreno que usamos en el windicator pudimos hacer coincidir la orientación de los modelos con el terreno y hacerlos colisionar con él cuando fuera necesario. 

Agregamos animales como ranas, pájaros/grullas, peces, cangrejos, insectos – estas criaturas todas tienen reactividad con Jin y otros personajes en el mundo. Al utilizar un valor muy bajo de esfera de viento al rededor de los personajes (incluido Jin) los efectos de la partícula animal pueden detectar cuando la gente está cerca. Utilizamos un nuevo sistema de evento condicional para cambiar el movimiento de las partículas cuando esta condición se diera, ocasionando que los animales se alejaran de las gente. Esto también se utilizó en proyectiles e impactos, lo que quería decir que las flechas y dagas también espantarían a los animales. 

En el siguiente video puedes ver algunas de las primeras iteraciones en los efectos interactivos de los cangrejos esparcidos por las playas. Empezamos con algunas mallas estáticas (probablemente mi mejor esfuerzo de modelado) e iteraron con el comportamiento. Quería que los cangrejos mantuvieran un mínimo rango de Jin para evitar que se parara sobre ellos y hacerlos sentir asustadizos. Para ayudarme a depurar comportamientos, los cangrejos en el video están coloreados de blanco cuando se están moviendo y de naranja cuando están quietos. 

Hojas y Duelos

Debido a que una de las marcas distintivas de Ghost of Tsushima es el viento, sabíamos que necesitaríamos sumar una tonelada de hojas y hacer que se sintieran elegantes, pero también naturales. Es por esto que puede haber decenas de miles de hojas en pantalla en cualquier momento en Ghost y todas ellas interactúan con el viento, el entorno y los personajes. 

Para poder hacer que las hojas se sintieran apropiadamente realistas, nos esforzamos mucho en hacerlas aterrizar correctamente basados en el terreno. Cada hoja está modelada como un disco que utiliza matemática 3D para lograr que rote apropiadamente en respuesta a los pares aplicados cuando hace contacto con el suelo. Más allá de solo aterrizar en el terreno, modelamos otros comportamientos avanzados: las hojas en Ghost aterrizan en superficies de agua y fluyen con la corriente, y caerán a una cascada y se hundirán con el tiempo a medida que se desplazan. 

Cerca al final del desarrollo de Ghost, un tester QA se me acercó con un error extraño: las hojas caían en las fogatas y se quedaban en el terreno sin quemarse debajo o al lado del fuego. Estuve de acuerdo en que esto era muy extraño y decidí resolverlo ubicando un emisor de viento en las fogatas al cual las hojas que caen reaccionarían. Esta corriente ascendente mantiene las hojas lejos del fuego para la mayor parte y fue un detalle genial. 

Los duelos se convirtieron en un elemento muy querido de Ghost desde las primeras pruebas y desde el comienzo el equipo de VFX recibió las riendas por el director del juego para que ayudaran a crear escenarios que mostraran mejor la interactividad en nuestros juego y sistemas de partículas. 

En muchos de estos duelos, creamos hojas persistentes que reaccionarían a los movimientos del jugador y la IA. Para esto, reutilizamos la tecnología de desplazamiento de la hierba y permitimos que las partículas muestrearan esta información. Al hacer esto, podíamos hacer que las hojas hicieran parte de una forma elegante cuando los personajes se movieran rápidamente a través de ellas. El objetivo acá para los duelos no fue el realismo perfecto, sino elegante belleza en movimiento. Utilizamos el mismo sistema de evento descrito arriba para ver los tiempos cuando los valores de desplazamiento del jugador estuvieran por encima de un umbral; luego creamos una caída y así las hojas podrían asentar de su movimiento inicial después de un corto periodo de tiempo y de nuevo se podrían mover. También usamos un patrón de ruido que permitió temporalmente a las hojas ser recogidas del suelo por el viento que pasaba ayudando a simular ráfagas y la naturaleza inestable de las hojas.

Otros tipos de duelos también hacen fuerte uso de otros sistemas de partículas, como las linternas flotantes, las velas que se apagan, la niebla espesa que se separa a tus pies, rayos y más. Utilizamos técnicas similares a las hojas en las linternas, donde cada linterna es en realidad un conjunto de partículas que se mueven y balancean en el agua basadas en el desplazamiento del jugador. Para las velas dinámicas en el segundo duelo con Ryuzo agregamos emisores de viento a los movimientos de la espada y probamos eso en las velas. Si el viento pasa un umbral, usamos nuestros sistema de eventos para apagar el fuego y la luz mientras generaba una nueva voluta de humo y un efecto de humo en el techo. Además, los jugadores generan viento mientras ruedan y esquivan, así que los movimientos rápidos más allá de estas velas especiales de duelo también las apagarán. 

Barro y Sangre

Cuando los personajes corren, ruedan, se deslizan y caen al suelo, dinámicamente suman barro a sus mallas. Hacer que nuestros personajes se ensucien a media que viven en nuestro mundo fue uno de los primeros objetivos de la dirección de arte para establecer el tono del juego. Durante las animaciones, agregamos “fuentes” de barro en cantidades variables en lugares como las rodillas, los codos y los hombros para que Jin y otros se vieran apropiadamente sucios por la batalla. Si ves esas famosas peleas de las películas de samuráis, puedes ver la inspiración de Ghost: los personajes empujan el barro con sus pies y están llenos de él por todas las interacciones en el suelo. 

Como el barro, creamos fuentes de sangre que dinámicamente agregan sangre a las mallas de los jugadores durante el combate, mostrando su estado herido. Cada impacto agrega sangre cerca al sitio donde impactó la espada y un poco más allá. Esto se utilizó en cinemáticas y momentos con guión además del combate sistémico. 

A parte de agregar sangre a los modelos de los personajes, cada ataque crea un efecto de partícula con miles de gotas de sangre y cadenas de sangre. Cada una de las gotas aterriza en la geometría cercana, y en el agua incluso se dispersa en nubes que se mueven con la corriente. que se mueven con la corriente. 

Construye a gran escala 

Un componente clave de construir a gran escala fue hacer que nuestros VFX se adaptaran con los entornos y no tener que ubicarlos a mano. Sabíamos que con el pequeño tamaño de nuestro equipo y un mundo gigante para llenar tendríamos que crear alguna forma de ubicación por procedimientos porque los biomas del entorno cambiaban muy frecuentemente. No queríamos gastar todo nuestro tiempo solo manteniendo el contenido, así que debía ser autocorregible. 

Crecimiento y biomas

Este es un ejemplo sencillo: queríamos que las partículas de las hojas cayeran solo en las áreas boscosas y no en los pastizales. El primer enfoque que tratamos fue de fuerza bruta: ubicamos un efecto en los árboles que se cultivaron por procedimientos alrededor de la isla. Esto falló muy rápido porque el entorno estaba instalando cientos de árboles en espacios pequeños, lo que, aunque está bien para la geometría, era muy costoso para los sistemas de partículas. Tuvimos un pequeño triunfo al configurar nuestras partículas para que solo aparecieran cuando estuvieran muy cerca a los árboles (menos de 50 pies), pero se sentía como una falla cuando las distancias de visión eran muy apartadas. El otro problemas con este enfoque fue que cuando dejábamos caer una hoja desde el dosel 40 pies arriba y el jugador está montando un caballo, era posible que ni siquiera cayera a la vista cuando pasaban el árbol, por lo que las hojas a menudo no eran visibles.

Nuestro segundo enfoque fue utilizar el sistema de crecimiento de la misma forma que como el entorno, donde ubicábamos por procedimientos los sistemas de partículas junto a los árboles en el mismo espacio utilizando las mismas máscaras y expresiones. Para este enfoque necesitábamos ubicar círculos superpuestos de hojas dentro de una forma de máscara ocasionalmente compleja. Los círculos eran empujados en la distancia de su radio desde el borde de la regla de la máscara, lo que significaba que a menudo habría grandes espacios donde no había hojas presentes debido a las reglas y expresiones de crecimiento. Podríamos balancear esto creando más emisores más pequeños, pero al costo del rendimiento. También fue difícil arreglar áreas específicas porque si cambiábamos las reglas de crecimiento para arreglar la densidad o los agujeros en un área que estábamos mirando, a menudo romperíamos otros grupos de bosque que anteriormente funcionaban bien. A pesar de todo esto, la técnica funcionó en su mayoría y, aunque hubo algunos defectos, casi la enviamos.

En la imagen 1, este pantallazo demuestra el uso de nuestra herramienta de crecimiento para agregar partículas basados en las reglas que determinan dónde están los árboles. Hay grandes lagunas, por lo que terminó por debajo de nuestra barra. Para la imagen 2, hemos aumentado sustancialmente la cantidad de emisores de partículas. Esto casi funciona, pero requiere un rendimiento valioso que podríamos utilizar en otros lugares. La imagen 3 muestra nuestro tercer enfoque, el mapa del bioma. Uno de nuestros programadores de renderizado estaba trabajando en una función para el equipo de iluminación que utilizaría datos de las máscaras de crecimiento del entorno que se podría acceder en tiempo real. Pregunté si podríamos aprovechar esta tecnología y tuvimos la suerte de poderlo hacer. Lo que esto nos dio fue la habilidad para que el sistema de partículas supiera en qué bioma una partícula específica estaba creada. La imagen 4 tiene la depuración de un sistema de partícula que muestra cómo las partículas leen estos datos. Las áreas azules son pastizales y las verdes son bosque. 

El primer paso de esto fue un poco en bloque pero una vez que utilicé un patrón de ruido para modificar la información muestreada se hizo mucho más orgánico y utilizable. Esto se convirtió en el núcleo de nuestro sistema de ambiente cuando se combinaba con otras funciones como el muestreo de la posición del terreno, material y dirección del viento. En cualquier ubicación promedio, pudimos remover cientos de sistemas de partículas de crecimiento del entorno y remplazarlas con un solo sistema que siguiera la cámara y fue mucho más acertado para los biomas ambientales. 

Aunque trasladamos una gran parte de nuestros efecto del sistema de crecimiento al sistema de biomas en tiempo real, sí utilizamos el sistema de crecimiento para algunos efectos de partículas en Ghost. Algunos ejemplos incluyen pájaros ubicados en los bordes del bosque, cangrejos y gaviotas en las áreas de las playas, garzas en los arrozales y grullas en las marismas. Por último, usamos el sistema de crecimiento para agregar bancos de niebla en los bordes de los bosques. En todos estos casos, donde fuera que el equipo de entornos cambiara dónde estaban ubicados los bosques, campos y playas, el VFX llegaría automáticamente. 

Vistas y sugerencias de navegación

En Ghost, las vistas son importantes para el gameplay ayudando a encontrar objetos y es una parte importante definiendo el tono y la dirección de arte. Sentimos que encontrar estas misiones debería ser tan natural como fuera posible así que creamos una variedad de efectos que se podrían usar para indicar las ubicaciones de las misiones y el contenido del desafío. Algunos ejemplos incluyen diferentes tipos y escalas de humo en la misión o contenido del desafío, pájaros que rodean una oportunidad de haiku, vapor levantándose de un baño de vapor y más. 

Uniendo todo

Los efectos visuales en Ghost of Tsushima son una parte integral del entorno, donde cada cuadro contiene muchos sistemas separados trabajando juntos para mejorar la apariencia dinámica del juego. Desde el bioma en primer plano y elementos de animales al clima del fondo y marcadores de contenido – los efectos visuales ayudaron a traer el mundo a la vida y hacer que fuera una delicia explorar a Tsushima. 

Gracias por leer y espero que hayas disfrutado tu aventura a través de los efectos visuales de Tsushima. Si sigues con curiosidad por conocer más sobre nuestra tecnología subyacente, puedes ver una charla que di en la Game Developers Conferencia de 2014 que se enfoca en nuestros sistemas de partículas de expresión.

Por favor ingresa tu fecha de nacimiento.