Este artículo se basa en la charla de Martin Reinmann titulada How Odd Bug used 2D lights to create mood (Cómo Odd Bug utilizó las luces 2D para crear ambiente). Cubre el proceso de desarrollo del estudio para crear una escena y cómo utilizaron el sistema de iluminación 2D de Unity en combinación con sus herramientas personalizadas para crear el mundo ambiental de Tails of Iron.
Tails of Iron fue desarrollado por Odd Bug Studio, una empresa de amigos y artistas con sede en Manchester, Reino Unido. El juego consta de muchos niveles diferentes en los que el jugador puede navegar libremente de una escena a la siguiente a través de puertas o túneles.
Cada creación de escenas comienza con Collider Tool, que es una herramienta personalizada creada por el diseñador de niveles del estudio. Esto se coloca como la base del nivel y le da a la escena su forma general. También es la superficie sobre la que camina el jugador. La línea Collider se utiliza como guía para bosquejar composiciones e ideas para crear un lote de assets y colocarlos en la escena.
Pero antes de hacer eso, la escena debe configurarse con Light and Layer Tool, una herramienta personalizada que creó el programador principal del estudio, Matt Taylor. Esta herramienta permite que el equipo administre la iluminación y el origen y el orden de los assets de sprites, ya que crea niveles detallados utilizando una gran cantidad de assets de sprites separados para crear niveles de paralaje.
Una vez que el equipo define las capas, como fondo y medio fondo, Light and Layer Tool reúne todos los Sprite Renderers en la sección de escenas. Luego, los assets se pueden ordenar de más cerca a más lejos según la profundidad z de cada asset en la sección Level. Una vez generada esta lista, la herramienta asigna valores de forma lineal, asegurándose de que los assets se rendericen en el orden correcto.
Una vez completado este paso, la herramienta asigna una capa basada en las subdivisiones definidas anteriormente en la escena. Esto define qué Sprite Renderers se ven afectados por una luz 2D específica. Con estos dos procesos combinados, el estudio puede crear niveles de paralaje grandes y detallados con escenarios de iluminación específicos por capa.
El equipo también creó una biblioteca de assets dividida en múltiples atlas para un nivel específico, a fin de que puedan elegir assets fácilmente para usar en las escenas. Tener assets atados a niveles específicos ayuda a la optimización. Sus atlas se dividen en categorías, como rocas, árboles y activos pequeños. Por lo general, el equipo comienza colocando los assets del mediofondo para delinear los colliders y reforzar las superficies de una escena.
Colocar algunos assets en primer plano y fondo ayuda a configurar la iluminación. Continúan con assets grandes como árboles, rocas y colinas para crear una buena composición y agregar detalles más adelante. A medida que se posicionan los assets, la función "Sort" (ordenar) de la herramienta Light garantiza que los assets se asignen y rendericen correctamente con la profundidad correcta.
Colocar assets a veces es como un gran rompecabezas 3D. Puede ser un desafío encontrar las formas adecuadas para crear una escena efectiva que también sea legible para el jugador. Odd Bug quería que cada escena fuera única. Esto ayuda al jugador a navegar por el mundo a medida que cada escena se vuelve memorable con sus propios puntos de referencia o assets.
Coloca assets a diferentes profundidades para crear un efecto de paralaje a medida que el jugador corre por la escena y la cámara de perspectiva puede seguirla. Esto se puede exagerar al colocar los assets más separados en el eje z o más cerca de la cámara. Puedes mantener el asset más cercano a la cámara más oscuro o completamente negro, ya que esto crea un borde cerca de los bordes de la pantalla y refuerza la profundidad.
Otra gran característica de la herramienta personalizada Light Tool de Odd Bug es que crea instantáneamente una profundidad artificial al atenuar el color de cada capa de subdivisión a medida que se mueve hacia el horizonte. Permite al equipo ajustar la densidad y establecer el color y el volumen de la luz global de ese fundido. Esto crea una ilusión optimizada con un horizonte que se desvanece y niebla atmosférica, y, en combinación con luces y partículas agregadas, puede crear estados de ánimo dramáticamente diferentes en las escenas.
Una vez que la escena está llena de assets, es momento de agregar luces para establecer el estado de ánimo y resaltar partes importantes de la escena. Aquí es donde Unity 2D Lights entra en juego con el flujo de trabajo personalizado de la herramienta Light.
Odd Bug adaptó el sistema de iluminación 2D de Unity para su visión de paralaje multicapa. Cada luz 2D determina su propia capa en función de su profundidad z en la escena utilizando las capas de subdivisión definidas manualmente. Alternativamente, el equipo puede establecer manualmente a qué capa afecta la luz 2D.
Las luces 2D de cada sección iluminan automáticamente los sprites de cada capa correctamente. Esto le da al equipo un gran control sobre la iluminación según el lugar donde se coloquen las luces. Por ejemplo, puedes configurar un punto de luz más fuerte para iluminar el fondo medio y los personajes que están allí, con luces desvanecidas en el fondo, para que se enfoquen en el fondo medio.
Layered Light System es útil para crear efectos geniales, como escenas de siluetas, con una luz colocada en el fondo y asignada para afectar solo las capas de fondo, lo que da como resultado luces muy tenues en las capas intermedia y de primer plano. Además, puedes crear una atmósfera diferente agregando una luz detrás de una ventana o una entrada.
Existen principalmente tres tipos de luces diferentes en todas las escenas: Punto, forma libre y sprite.
Point Light es el más utilizado en el juego, ya que es un círculo 2D que puedes colocar rápidamente para resaltar assets importantes o para crear sombras artificiales. Puedes usarlo como brillo nebuloso en el fondo aumentando la opacidad del volumen o como brillo de una lámpara ajustando la intensidad de disminución de la luz.
Puedes usar Freeform Light si quieres agregar una fuente de luz fuerte en un asset con una forma específica, como una ventana. Solo tienes que trazar la forma del asset, ajustar la iluminación de disminución y establecer la luz en la profundidad exacta del asset. Eso hace que parezca que el objeto está emitiendo luz.
Sprite Light te permite configurar un asset específico para que se proyecte como la luz en sí. El equipo utilizó esto en haces de luz que tienen una fuente de luz texturizada. Esto se puede colocar y girar en la escena para mostrar la luz que llega desde diferentes ángulos. Combinando diferentes tipos de luz, puedes crear escenas donde los personajes se iluminan con luz atmosférica.
Cuando la escena esté bien iluminada, puedes empezar a pulirla colocando Particle Effects para que se mueva y se suavice sobre cualquier área que se vea desordenada. Puedes colocar una Particle Fog en una profundidad z seleccionada y configurarla para que se renderice en la subdivisión de capa correcta. La niebla es un gran efecto para separar las capas individuales a fin de crear más profundidad. En Tails of Iron, colocar la niebla en el frente del medio fondo también hace que los personajes queden atrapados en el mundo. De esta manera, la niebla se mueve ligeramente en la dirección que debe seguir el jugador.
El siguiente paso es agregar efectos atmosféricos como manchas de polvo, lluvia u hojas que caen, según la escena. Es bueno colocarlos más cerca de la cámara para crear un efecto de paralaje más fuerte. El efecto lluvia es una combinación de gotas de agua que caen y partículas de salpicaduras de agua animadas colocadas en el suelo. A estas partículas, como a casi todos los assets, se les asignan sus propias capas para que coincidan con el efecto de paralaje en el juego.
Si una escena tiene hierba alta, flores o árboles, asegúrate de darle un poco de movimiento. El programador principal Matt Taylor creó una herramienta que convierte todos los Sprite Shaders de follaje seleccionados de una escena en un solo shader especial que los anima juntos con el viento. El equipo puede ajustar individualmente los valores de cada asset. Las hojas del árbol se colocan en trozos de hojas de diferentes tamaños alrededor de la copa del árbol para que el movimiento sea más natural.
La escena se ata con un poco de procesamiento de color y una viñeta. Utilizan una herramienta personalizada para dibujar un cuadro sobre el área de la escena que quieren que afecte el posprocesamiento. Pueden arrastrarlo sobre toda la escena o sobre diferentes elementos que se mezclan a medida que el jugador camina por la escena. Cuando una escena tiene varios estados diferentes, como el día y la noche, puedes crear una carpeta en esa escena con todas las luces, los assets y los filtros que se encienden o apagan en el juego.
Por último, el equipo hace una pasada final (o tres) para los assets, la ubicación y todo lo demás hasta que se pule la escena. Para obtener más información o preguntas sobre Tails of Iron y el equipo que lo creó, sigue a @OddBugStudio en Twitter.
Si quieres ver lo que pueden hacer las herramientas 2D de Unity, descarga el proyecto de ejemplo Lost Crypt. El proyecto incluye una ventana tutorial que te guía por diferentes características, como animación 2D, forma de sprite 2D, Tilemaps 2D, luces 2D, Shader Graph para 2D, texturas secundarias y posprocesamiento por volumen.
2D game art, animation e iluminación en videojuegos 2D para artistas es nuestra guía de desarrollo de videojuegos 2D más completa, concebida para programadores y artistas de Unity que desean crear un videojuego 2D comercial.