Encuentra un tesoro de iluminación y efectos visuales en nuestra nueva muestra de match-3 Gem Hunter Match

Gem Hunter Match, una nueva muestra oficial de Unity, te muestra cómo un juego de puzzle/match-3 en 2D puede destacar entre la competencia con una llamativa iluminación y efectos visuales creados en el Universal Render Pipeline (URP) en Unity 2022 LTS.
Descarga la muestra, junto con su mini-manual, y prepárate para bucear en busca de riquezas en aguas azules cristalinas pobladas de joyas y criaturas marinas de colores brillantes. Aprenderás a preparar e iluminar sprites 2D para añadir profundidad, aplicar un sombreador Sprite Custom Lit para conseguir brillo y crear efectos de resplandor y ondulación.
Ver el script Gem Hunter Matchen Unity Samples.

Gem Hunter Match sigue la muestra de URP 3D y Cosecha Feliz como las últimas de una serie de muestras, creadas por múltiples equipos en Unity, que ilustran las muchas capacidades de URP en Unity 2022 LTS para proyectos multiplataforma en 3D y 2D. Al final de esta entrada encontrará enlaces a otros recursos de aprendizaje sobre el PRU.
Este fragmento jugable de un juego de rompecabezas match-3 multiplataforma está disponible en Unity Asset Store y Unity Samples. Puedes personalizar Gem Hunter Match con tus recursos o estilo de juego, o reutilizar cualquiera de sus sprites, shaders, efectos, audio, texturas y scripts en un proyecto propio.

Burbujas, corales y una sirena vigilante forman el telón de fondo del tablero de juego en Gem Hunter Match. Perlas, zafiros rosas, estrellas de mar de color rojo rubí, peces azules, almejas doradas y tortugas marinas adormiladas pueblan el tablero a lo largo de tres niveles jugables. Elimina las gemas y gana potenciadores y monedas haciendo coincidir tres o más objetos. Los potenciadores te ayudan a conseguir los objetivos, pero si fallas, pierdes un corazón. Las cajas de madera y la cuerda son bloqueadores; haz coincidir tres junto a una caja de madera o debajo de un trozo de cuerda para eliminarlos.

El sencillo bucle del juego incluye un inventario que puedes reutilizar. He aquí sus principales elementos:
La escena principal: Esta pantalla lista todos los niveles jugables, que son referenciados desde un ScriptableObject llamado LevelList, localizado dentro de la carpeta Data.
La escena del nivel: Esto muestra la configuración de la jugabilidad. Debe borrar los elementos de la sección Objetivos.
En la carpeta Data/BonusItems, encontrarás los boosters y el prefab referenciado que contiene parámetros como la forma de combo que se generará (en el caso de que varias piezas tengan la misma forma de combo, se elegirá una al azar). Puedes crear tus propios potenciadores desde el menú superior a través de Activos > Crear > Partida 2D.
Fin de nivel / La tienda: Accede a la tienda cuando falles o completes un nivel; cómprate potenciadores, corazones u otra moneda. Todos los artículos de la tienda están en la carpeta Data/ShopItems (también puedes añadir los tuyos propios a través de Assets > Create > 2D Match. Los artículos de la tienda incluyen:
Monedas: Gana monedas con combinaciones de tres o más y úsalas como moneda blanda. Corazones o vidas: Estos potenciadores te dan la oportunidad de reintentar un nivel fallido. Si el jugador se queda sin esos potenciadores en un juego match-3, suele haber un periodo de enfriamiento para ellos antes de poder reponer sus puntos de vida/salud.
Estrellas: En los juegos de tres en raya, las estrellas suelen formar parte del metajuego, decorar o servir para avanzar en la historia.

Los juegos de puzzle/match-3 en 2D son populares porque son bonitos y coloridos, fáciles y divertidos de jugar, y accesibles para cualquiera desde casi cualquier lugar.
También pueden incluir bellas ilustraciones, pero con su cámara estática, jugabilidad repetitiva y, en muchos casos, iluminación y sombras prefabricadas, no son conocidos por sus efectos visuales y de luz de vanguardia. Sin embargo, hay muchas formas de añadir destellos y purpurina para divertirte aún más.
Un shader Sprite Custom Lit es una de las técnicas utilizadas para crear los efectos visuales en Gem Hunter Match. Este shader sustituye a la iluminación de la escena, permitiéndonos modificar la información de la textura de la luz 2D y controlar la iluminación de cada pieza. El resultado es una iluminación creativa de los sprites, como el efecto de brillo que se desplaza sobre las piezas.
Los datos de posición de la luz se trasladan al sombreador, eliminando la necesidad de objetos de luz reales en la escena, lo que también ayuda a mantenerla ordenada. La iluminación encapsulada por objeto en el sombreador funciona bien para un mejor aislamiento y edición a escala y mejora el rendimiento cuando es posible el procesamiento por lotes.
Con la información de luces y sombras contenida en el shader, sólo se incluye la información de color en los sprites. El mapa de normales es utilizado por el sistema de luz 2D para calcular la dirección de cada píxel, asegurándose de que recibe más o menos luz en función de su posición. El mapa de máscara es utilizado por las luces que pueden afectar a un canal RGB específico.
El prefab Luces en las escenas de nivel Gem Hunter Match contiene las luces 2D para la rejilla. Estas luces afectan al shader Sprite Lit por defecto y se aplican a los elementos de la rejilla incluidos en la Capa de Ordenación que recibe la luz.
La siguiente imagen ilustra los pasos en la creación de los sprites y cómo el shader Sprite Custom Lit encaja en el proceso.

En Gem Hunter Match, una posición de luz "ficticia" es representada por el GameObject LightRotator, que es animado para crear un efecto de resplandor en las gemas. Las modificaciones de la textura de luz 2D y los reflejos fabricados con el nodo Dot Product se utilizan ambos en el TileShader Shader Graph que se aplica a las gemas en el juego.

El nodo Producto de Puntos puede ser útil en proyectos 2D cuando se quiere hacer una iluminación personalizada. El producto punto mide la proximidad entre dos vectores. En la muestra, la posición LightDirection se compara con la dirección aparente de cada píxel en el mapa Normal. La imagen en blanco y negro muestreada puede utilizarse para añadir luz al sprite y actualizar los valores en tiempo de ejecución para todas las piezas utilizando el mismo shader.

El shader Deformación Radial utiliza el ajuste de Textura de Capa de Ordenación de Cámara 2D URP. Esta práctica función te da acceso a los gráficos generados hasta la Capa de Ordenación indicada en los ajustes del Renderizador URP 2D que luego puedes utilizar en Shader Graph para aplicar efectos. En la Cosecha feliz se utiliza la textura de la capa de clasificación de la cámara para crear un efecto de refracción del agua, y en Dragon Crashersse usa para distorsionar el humo. En este ejemplo, lo utilizamos para aplicar una distorsión que simula una onda expansiva, añadiendo un atractivo visual extra cuando haces un partido. Es el tipo de efecto que crea un impacto que sus jugadores recordarán.

Esperamos que descargues Gem Hunter Match, juegues y lo personalices, y luego pruebes sus técnicas gráficas en tus propios proyectos. Todo esto y mucho más se trata en la sesión de Unite 2023, Técnicas de iluminación e IA para tu juego 2D.
No te pierdas estas otras muestras, libros electrónicos y tutoriales para URP:
- E-book: Arte, animación e iluminación de juegos 2D para artistas
- E-book: Introducción al Universal Render Pipeline para creadores avanzados de Unity
- Únete 2023: Acelere su desarrollo multiplataforma con lo último para URP
- Livestream: ¿Qué hay de nuevo en el Universal Render Pipeline de Unity?
- Videotutorial: Feliz cosecha: Cultivos personalizados y notas de los jugadores
- E-book: La guía definitiva para crear efectos visuales avanzados en Unity
Asegúrate de unirte a la conversación sobre el Universal Render Pipeline en los Foros de Unity o únete a Unity Discussions.