#unitytips Dev Takeover: VFX e shaders com Harry Alisavakis

COMMUNITY TEAM / UNITYUnity Community
Nov 4, 2021|10 Min
#unitytips Dev Takeover: VFX e shaders com Harry Alisavakis
Esta página da Web foi automaticamente traduzida para sua conveniência. Não podemos garantir a precisão ou a confiabilidade do conteúdo traduzido. Se tiver dúvidas sobre a precisão do conteúdo traduzido, consulte a versão oficial em inglês da página da Web.

A #unitytips Dev Takeover é uma série contínua em nossa conta do Twitter @unitygames. A equipe da Unity convida superusuários da nossa comunidade para compartilhar suas ideias, dicas e truques diretamente com nossos seguidores. Estamos dando o pontapé inicial com Harry Alisavakis, artista técnico do Jumpship Studio e extraordinário mago de efeitos visuais.

Se você ainda não conhece o Harry, talvez o reconheça pelo seu avatar verde neon que aparece sempre que se fala em shaders. Aqui está um resumo rápido de como Harry se tornou uma estrela do rock no mundo dos efeitos visuais:

Atualmente trabalhando como artista técnico no próximo jogo Somerville na Jumpship, Harry passa seu tempo "livre" aprendendo sobre efeitos visuais e shaders. Na verdade, ele continua a inspirar criadores por meio de sua compilação semanal de tweets sobre desenvolvimento de jogos chamada "Technically Art", na qual ele também promove o trabalho de outros artistas talentosos (não deixe de segui-lo!) Por meio de seu canal Discord relacionado, "Technically Speaking", ele conduz bate-papos sobre arte técnica, desafios criativos da Unity e AMAs para responder ao maior número possível de perguntas dos usuários. Confira aqui.

Abaixo estão apenas algumas fotos dos trabalhos mais recentes de Harry. Você pode encontrar ainda mais em seu portfólio.

Obras de arte
Obras de arte
Obras de arte
Obras de arte

Agora vamos às dicas da #unidade, cortesia de Harry Alisavakis.

Timelines do sistema de partículas

Vamos começar com um pequeno truque de efeitos visuais para você experimentar. Embora a sincronização dos efeitos do sistema de partículas entre si possa ser um pouco complicada, há de fato uma maneira simples de iterar em seus efeitos visuais usando Timelines. 🧵

No Unity, as Timelines têm suporte integrado para sistemas de partículas, portanto, você não precisa de nenhum script personalizado. Basta arrastar e soltar seu sistema de partículas ali mesmo, e você poderá percorrê-lo.

Timeline

A combinação dessas trilhas com animação ou qualquer outra Timeline lhe dá uma ideia muito melhor para sincronizar todos os elementos individuais animados e criar efeitos visuais realmente interessantes.

Animações de Timeline
Fluxos de vértices personalizados

Há uma maneira muito divertida de obter mais benefícios ao usar sistemas de partículas e sombreadores personalizados, que é por meio de fluxos de vértices personalizados.

Vamos parar um pouco para entender completamente o que são e como podemos usá-los para obter efeitos de partículas mais avançados. 🧵

Como você sabe, os modelos renderizados no Unity são feitos com triângulos que consistem em vértices. Os vértices contêm todas as informações essenciais sobre esses modelos, como posição individual, coordenadas UV e cor do vértice.

O legal é que podemos adicionar qualquer tipo de dados arbitrários aos nossos vértices e usá-los em nosso shader personalizado da maneira que quisermos. Essa é a beleza dos fluxos de vértices personalizados em sistemas de partículas: Podemos passar informações relacionadas a partículas para nossos vértices e aproveitá-las somente quando necessário.

A opção de adicionar fluxos de vértices personalizados pode ser encontrada no módulo Renderizador do sistema de partículas. Ao ativá-la, você verá todos os fluxos de vértices já em uso, como as coordenadas UV e a cor do vértice.

Módulo Renderizador
No gráfico de sombreamento

Por fim, vamos criar um shader de dissolução simples para nosso sistema de partículas usando o Shader Graph. Estamos falando de um shader do Universal Render Pipeline (URP) sem iluminação e de dupla face com recorte alfa. O que é interessante notar aqui é o que impulsiona o efeito de dissolução - o terceiro componente de nossos UVs.

Gráfico de sombreamento

Você pode estar se perguntando por que, especialmente porque tendemos a trabalhar com coordenadas UV para amostragem de textura por meio dos componentes x e y.

Bem, ao lado do nome de cada fluxo, você verá onde os dados são armazenados.

Gif

Aqui, o novo fluxo é armazenado em TEXCOORD0.z, que corresponde ao terceiro componente do primeiro canal de coordenadas de textura (também conhecido como UV0.z). Ao adicionar a porcentagem de idade vitalícia, esse valor começará em zero e se moverá em direção a um durante a vida útil das partículas.

Com nosso sombreador, isso faz com que as partículas se dissolvam com o tempo. A aplicação do sombreador ao sistema de partículas pode nos dar esse resultado elegante:

Gif

Até aqui tudo bem, mas e se quisermos ter ainda mais controle sobre o tempo de vida das partículas? A porcentagem de idade funciona, mas é bastante linear e não é muito útil para criar efeitos mais complexos. A solução está no módulo Custom Data:

Dados personalizados

Podemos usar Custom1.x em vez de porcentagem de idade, o que, por sua vez, nos permite empregar uma curva que altera o valor ao longo da vida útil das partículas, semelhante às curvas incorporadas, como Size over Lifetime (Tamanho ao longo da vida útil).

Gif

Agora podemos gerenciar melhor como nossas partículas se dissolvem com o tempo. Não é ótimo?

Gif

É claro que há muito mais dados que você pode passar para fluxos de vértices personalizados. As possibilidades de usá-los em seus shaders personalizados são muitas.

Dito isso, gostaríamos de saber sobre seus próprios usos criativos para fluxos de vértices personalizados nos comentários abaixo.

Feliz VFXing! ✨

Mais dicas da #unity?

Siga nosso Twitter do Unity for Games para obter dicas semanais do #unitytips às terças-feiras e Dev Takovers mensais. Deixe-nos saber nos comentários quem você gostaria que aparecesse em nossos futuros Dev Takeovers no Twitter.