20/2/2020

BLOG DEL DESARROLLADOR: EXPLOSIONES Y METRALLA EN EL A5T1

¿Qué pasa cuando algo explota en Rainbow Six Siege? ¿Qué factores influyen en el cálculo del daño por explosión? ¿Cómo funciona todo esto?

Las explosiones juegan un papel importante en Rainbow Six Siege. No son algo que simplemente haga "bum"; son elementos que bloquean defensas, crean pasos, proporcionan información, y a veces te ayudan a conseguir tu objetivo. Así que en este blog del desarrollador vamos a contar un poco cómo funcionan y cómo queremos que evolucionen.

Anatomía de una explosión

La destrucción en Rainbow Six Siege es única, y una explosión nunca sucede de la misma forma dos veces.

El daño y la destrucción que provoca una explosión se calcula en cuestión de milisegundos. Los jugadores reciben información visual y sonora, y reciben daño si están en su radio de expansión. Para que todo eso sea posible, nuestro motor de explosiones tiene que dar varios pasos.

El radio de la explosión y su forma

__Cada tipo de explosión se define por múltiples puntos de datos y determina la forma de la explosión y su radio de efecto. __ Las formas de las explosiones varían según el tipo de explosivo (radial para una granada de fragmentación, oblonga para una mina claymore…).

Cuando se produce una explosión, el juego calcula la forma y envía una petición a nuestro motor de física. Entonces, usando el punto de detonación y la forma de la explosión, la consulta devuelve una lista de elementos (agentes y objetos) presentes en el radio de acción. Esta lista es nuestra lista de elementos potenciales que se ven afectados por la explosión.

[R6S] Explosiones: Área de explosión en R6 -Animación

*La barricada y el agente dentro de la esfera son identificados como elementos a los que puede afectar la explosión.*

Definiendo quién o qué recibe un impacto

Con la lista de elementos potenciales dentro de la zona de explosión, nuestro motor gráfico ejecuta un raycast. Estos raycast, o rayos de cámara, son líneas de exploración que salen desde el epicentro hacia cualquier elemento y sus puntos de consulta en el radio de la explosión.

Cada elemento tiene múltiples puntos de consulta individuales que se usan para determinar si se recibe o no daño. En lugar de apuntar a los huesos en el modelo del esqueleto, o establecer un único punto objetivo en un agente, de forma arbitraria, estos puntos de llamada nos permiten decidir mejor si un agente debe ser vulnerable al daño por explosión, al tiempo que optimizamos el rendimiento y minimizamos la latencia.

La emisión de rayos se dirige a esos puntos de consulta, basándose en parámetros específicos, y crea puntos de datos para calcular después el daño final. Por ejemplo, los rayos apuntan a las zonas de la cápsula física del agente que estén más cerca del origen de la explosión, así como a cuatro puntos de su volumen límite (la forma que tiene la imagen concreta de ese agente); sin embargo, los rayos que van hacia los puntos de consulta de una pared usan unas reglas diferentes para su determinación.

[R6S] Explosiones: Raycast en R6 - Animación

*Los resultados de los rayos de cámara determinan si la explosión puede o no afectar a ese elemento.*

Antes de calcular el daño, hay una variable más a considerar. Los objetos del entorno cambian la forma de la explosión y potencialmente podrían salvarte de sufrir daños.

Salvados por los metadatos

Cuando los raycast completan su viaje hacia los elementos afectados por la explosión, los datos recogidos determinan el alcance verdadero y el resultado de la explosión.
En Siege, hay objetos que pueden bloquear el daño de una explosión. Todos los objetos contienen metadatos que definen cómo es y cómo interactúa el radio de explosión con otros elementos del juego. Algunos objetos contienen metadatos que bloquean el daño por explosión, por ejemplo barricadas de metal, las paredes de Castle, los escudos desplegables...

Si la ruta de un rayo de cámara colisiona con un objeto cuyos metadatos determinan que bloqueará el daño por explosión, antes de llegar a los puntos de consulta de un agente en el radio de la explosión, entonces el agente está salvado. Si el raycast no alcanza nada en su camino, o los objetos que alcanza no tienen metadatos que impliquen un bloqueo de daño, el agente sí recibe daños. Esto también se aplica a los dispositivos con un efecto de área de explosión, como el pulso electromagnético de Thatcher.

[R6S] Explosiones: Resultados en R6 -Animación

*Objetos con metadatos de bloqueo de daño explosivo, frente a objetos sin esos metadatos en el rango de Realblast.*

Por último, con todos esos puntos de datos, el daño por explosión se calcula y se ejecuta.

Determinando el daño recibido

Al calcular cuánto daño se produce, hay una curva de caída según te alejas del epicentro de la explosión. Las diferentes explosiones tienen diferentes curvas de daño, con una concentración del daño generalmente en el punto de origen. Usando los resultados de los raycasts se determina el daño final interpolando la curva de daño con respecto a tu distancia del punto de explosión.

Destrucción y daño

Las explosiones en Siege las ejecuta nuestro motor de destrucción, Realblast. Es un sistema de destrucción por procedimientos vital para dar cabida a los elementos de esa jugabilidad especial y dinámica que ya conocéis y que tanto os gusta en Siege. Podéis ver una charla de Julien L’Heureux en la Game Developers Conference acerca de Realblast aquí.

Las explosiones por lo general tienen dos efectos: destrucción y daño. El daño implica daño a los jugadores, y destrucción implica daño al entorno. Cada uno varía en rango y forma, dependiendo de la explosión.

[R6S] Explosiones: R6 Daño frente a destrucción -Animación

*Rango de destrucción (Realblast) frente al rango de daño.*

Actualmente, tras la exploración inicial de los rayos de cámara, y la devolución de información de las consultas, en Siege determinamos el rango de efectos de la destrucción y el daño. Si el raycast choca contra un elemento que bloquea el daño, el rango de ese daño se limitará al radio de Realblast.

Sin embargo, la solución actual para los efectos y rangos de las explosiones no es ideal y en algunos casos puede dar un resultado poco realista. Por ejemplo, con el sistema de explosión actual un C4 en una zona abierta es mucho más letal que cuando se usa dentro de un edificio porque las paredes pueden recortar el radio de daño.

Cambios en la metralla en A5T1

Con la Temporada 1 del Año 5 llegan algunos cambios sutiles pero importantes en las explosiones, que harán que el daño sea más realista y transparente. Vamos a introducir un concepto de metralla en las explosiones en Rainbow Six Siege. Esto implica que los objetos destructibles ya no limitarán el rango de daño por explosión, de modo que también nos ocupamos del problema de destrucción frente a daño que hemos descrito arriba.

La metralla permitirá que el daño por explosión sea más realista, ya que el daño que se aplica al jugador se reduce en función de los objetos con los que los raycast impactan en su trayectoria. Las explosiones también serán más transparentes porque los huecos entre la metralla proporcionarán mucha más información visual sobre la dirección desde la que se ha originado el daño por explosión.

[R6S] Explosiones: Metralla - Animación Animated

*Cambios en la metralla.*

TL;DR - SUMMARY

El arte de la destrucción en Rainbow Six Siege es una experiencia única que persigue resultados y reacciones realistas. Añadir daño por metralla será una mejora en esa búsqueda del realismo en los efectos y el daño que causa una explosión, además de aportar información sobre las explosiones mucho más visual y transparente.

Para obtener más información sobre las explosiones y la metralla, entra en el podcast de la Bomba Lógica con un primer vistazo exclusivo y una serie de discusiones

Visita todos nuestros canales

facebook icontwitter iconyoutube icontwitch icon