Um jogo de naves, tem que ter um fundo de universo chamativo, e no Space Chase precisamos de uma forma de atualizar a cada fase as cores, quantidades de estrelas, mais ou menos a escuridão do lugar e além de tudo que possamos animar para dar a sensação de movimento, por isso decidi fazer pelo Universal Render Pipeline, uma textura procedural usando os Shader Graphs, o que nos traz ao primeiro tutorial deste DevBlog.
Acho importante antes de tudo mostrar os resultados que vamos conseguir, a ideia é termos controle sobre as cores, estrelas e "nebulosas", para podermos alterar por código, o shader é basicamente a junção de varias mascaras com cores e o importantíssimo simple Noise.
É importante antes de tudo instalarmos na unity o Universal Render Pipeline ou URP, e o Shader Graph Editor que são acessíveis pela aba Package Manager, uma vez instalado é necessário criar um Unlit Shader Graph e vamos começar.
Antes de fazer o efeito em si, vamos ter que criar um Sub-Graph, que nada mais é criar um nó agrupando funções que você vai utilizar mais vezes, no nosso caso, o Sub-Graph será um "Misturador de cores" que vai colocar em uma imagem em preto e branco, uma cor para o preto e outra para branco, ele ficará mais ou menos como na imagem, onde fator é a imagem em preto e branco, A é a cor que vai para branco, e B a cor que vai para preto.
Sub-Graph misturador de cores.
O próximo passo é criarmos o efeito das estrelas, que nada mais é um simple noise texture, com um SmoothStep, este tornando mais dura a transição entre o branco e preto do noise, é preciso criar dois parâmetros, um para controlar a quantidade de estrelas, e outro para controlar a dureza da transição das cores.
Ao conectar ao Sub-Graph, podemos criar mais um parâmetro o de cor das estrelas.
Agora ao Fundo, também feito pela combinação de Noise Textures, com algumas trocas de cores, aqui para melhorar o efeito podemos fazer a combinação de mais e mais texturas para poder dar maior variedade e profundidade ao fundo.
Para Realizar a Movimentação, vamos usar o Tilling and Offset, um node capaz de movimentar a textura procedural, que combinado com o node de tempo, que tem um valor que varia conforme o tempo de jogo e a quantidade de frames, criamos essa sensação de movimentação, se usarmos valores diferentes para a movimentação das estrelas e do fundo ainda conseguimos aplicar um "Parallax" fazendo o fundo se mover mais lento que as estrelas dando a impressão que está mais longe.
Mesclando varias camadas de fundo e duas camadas de estrelas consegui o resultado mostrado, junto com uma partícula toda vez que há um hit, e uma animação aos inimigos, temos a primeira prévia da arte final do Jogo, o que dá bastante ânimo para continuar a trabalhar.
Prévia do Jogo
DevLog :
Fundo Editável;
Parallax;
partículas de Hit;
Universal Render Pipeline;