Baixe nosso novo projeto de amostra 2D: Cripta Perdida

EDUARDO ORIZ / UNITY TECHNOLOGIESSenior Content Marketing Manager
Dec 18, 2019|12 Min
Baixe nosso novo projeto de amostra 2D: Cripta Perdida
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.

Colocamos nossas novas ferramentas 2D à prova para criar uma demonstração de rolagem lateral 2D. Nesta postagem, mostramos como essas ferramentas 2D integradas podem ajudar você a criar visuais de alta qualidade com o Unity.

Equipes altamente qualificadas vêm criando lindos jogos 2D com o Unity há anos, mas queríamos permitir que todos, desde artistas individuais até grandes equipes, tivessem ainda mais ferramentas 2D disponíveis para criar jogos com ótima aparência. E muitos deles estarão prontos para produção como parte do Unity 2019.3, que está atualmente disponível em beta.

Criamos Lost Crypt usando o conjunto completo de ferramentas 2D. Esta cena animada apresenta animação, efeitos de luz, terreno orgânico, shaders e pós-processamento, tudo feito nativamente em 2D. Ele mostra como equipes e projetos de todos os tamanhos, direcionados a qualquer plataforma, agora podem obter resultados mais envolventes e bonitos com mais rapidez.

Lost Crypt deve rodar bem em qualquer computador desktop e também implementamos controles na tela com o novo Input System, caso você queira executá-lo em um dispositivo iOS ou Android. Em nossos testes, ele rodou a 30 fps em dispositivos comuns, como um iPhone 6S.

Baixar da Asset Store

Configurando o projeto

Depois de baixar Lost Crypt da Asset Store, recomendamos que você comece com um Novo Projeto em branco e selecione 2D, depois importe o projeto de Meus Ativos no Gerenciador de Pacotes ou clicando em Meus Ativos na sua página da Asset Store. O projeto inclui todos os pacotes 2D que você precisa. Ele então substituirá as configurações do projeto, alterando as configurações de renderização para o Renderizador 2D dentro do Universal Render Pipeline.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Depois de importá-lo, você verá a Cena Principal. Ao clicar em Reproduzir, você poderá jogar normalmente usando as setas do teclado e a barra de espaço para pular.

Os scripts e a lógica do jogo são bastante simples, já que o foco principal da demo era usar ferramentas 2D para materializar a arte conceitual da demo.

Dividimos a demonstração em várias tarefas e escolhemos quais ferramentas 2D aproveitar para esse desafio visual.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Animação de personagens

O personagem foi desenhado no Photoshop e importado diretamente com o 2D PSD Importer. Abra o arquivo Sara.psb com o Sprite Editor para ver a configuração e o equipamento do personagem. Se você abrir o arquivo com o Photoshop, verá como mantivemos as diferentes partes e nomes de camadas intactos.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Um dos recursos disponíveis com o Universal Render Pipeline é o novo material Sprite-Lit. Comparado ao material Sprite-Default usual, este permite que os Sprites reajam às condições de iluminação 2D.

Importamos os mapas normais dos personagens no Editor de Sprites, usando o menu suspenso Texturas Secundárias. Você pode adicionar mapas Normal e Máscara a personagens animados 2D, Sprites regulares, mapas de blocos e formas de Sprite.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

O personagem tem solucionadores IK 2D nas pernas para ajudar o animador a se concentrar no posicionamento correto do tornozelo e das pontas dos pés, para que as pernas sigam de forma realista.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Depois de montar o personagem, fizemos as diferentes animações com a ferramenta Animação e o Animator para controlar esses estados. Você pode ver como a ferramenta funciona nesta palestra da GDC 2019.

O rabo de cavalo do personagem é um GameObject filho diferente e é controlado pela Física 2D. Ele reage realisticamente ao movimento porque cada osso do rabo de cavalo tem um componente Hinge Joint 2D com algumas restrições. Isso permite que o cabelo dela se mova livremente sem enrolar muito ou reagir exageradamente ao movimento da personagem.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Ciclo de luz dia/noite

Uma das possibilidades mais poderosas de ter iluminação dinâmica em Sprites é alterar a aparência do ambiente. Usando os mesmos Sprites, você pode mudar o clima, a hora do dia ou a escuridão de uma área, o que abre uma riqueza de mecânicas de jogo, desde mecânicas furtivas até mundos ricos e animados.

Imagem de projeto de amostra 2D com luzes acesas e apagadas
Imagem do projeto de amostra 2D

Controlamos as luzes na cena com scripts simples que contêm um valor de gradiente de cor (cor da luz do dia para a noite) e as luzes e os materiais mudam de cor seguindo o parâmetro Time no GameObject pai. Com esse tipo de configuração, você pode controlar visualmente como diferentes luzes se misturam umas com as outras.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Grande terreno texturizado ao ar livre

Um dos desafios que os desenvolvedores de jogos 2D enfrentaram nos primeiros dias foi criar terrenos orgânicos, como colinas, declives ou terrenos irregulares, de forma eficiente, o que só era possível por meio de folhas de peças cuidadosamente elaboradas. Anos depois, isso ficou mais fácil de conseguir usando vários Sprites representando partes do terreno, mas o fluxo de trabalho ou o desempenho poderiam ser melhores.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Com o 2D Sprite Shape, você pode gerar terrenos e colisões de forma semelhante à que faria em um aplicativo de desenho baseado em vetores. Você pode ajustar os pincéis (Perfis de Forma de Sprite) e começar a criar sem se preocupar em ter que ajustar muitos Sprites ou colisores conforme você itera no ambiente.

Lost Crypt também usa alguns extras do Sprite Shape, como o script NodeAttach, para anexar elementos à spline, para que eles sigam a spline. Nesta demonstração, as rochas usam esse script e o ConformingSpline na camada de flores para seguir o formato da spline de grama. Você pode usar esse recurso para jogabilidade ou para elementos decorativos, como fizemos na camada de grama em primeiro plano.

Construindo a cripta com um layout baseado em grade

Tilemaps é provavelmente uma das ferramentas 2D mais essenciais, não apenas para economizar espaço de memória com pequenos pedaços de gráficos que podem ser "agrupados" e repetíveis, mas também porque é crucial para o design de níveis.

Imagem do projeto de amostra 2D

Em Lost Crypt, usamos o 2D Tilemap Editor (disponível no Gerenciador de Pacotes) para recriar o interior da cripta, onde ele usa algumas ferramentas extras de Tilemap (disponíveis no GitHub) para tornar o processo de design de níveis mais eficiente. Por exemplo, usamos Rule Tile, um tipo de ladrilho que permite pintar ladrilhos como se fossem pincéis. Ele seleciona automaticamente o ladrilho certo com base nos ladrilhos ou extremidades vizinhas.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Efeitos de fogo

Alguns elementos comuns em jogos são efeitos de fogo, então adicionamos um em Lost Crypt. Começamos criando algumas tochas GameObject usando o Particle System e o Shader Graph para 2D e usamos o nó Sprite-Lit Master para o shader de saída. Fizemos a animação de fogo em uma planilha Sprite tradicional que o Sistema de Partículas usa para reproduzir a animação.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

O shader que criamos para a chama utiliza uma cor de matiz HDR para aumentar a intensidade do brilho ao redor do objeto usando o pós-processamento de volume. O GameObject pai contém algumas partículas de faíscas e algumas luzes que iluminam a alcova.

Reflexo da água

Outro caso de uso comum para shaders são reflexos e refrações (por exemplo, água, gelo, espelhos ou monitores que exibem outra área do nível), que são bastante comuns em jogos.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Conseguimos o efeito de água na cripta inteiramente com o Shader Graph. Expusemos vários parâmetros (como cor da água, velocidade das ondas, distorção, efeito cascata, etc.), o que nos permitiu ajustar a aparência final na Cena. Para projetar uma imagem espelhada do ambiente, adicionamos uma câmera adicional que geraria a imagem em uma textura para ser lida pelo Shader Graph. Além disso, adicionamos uma passagem de bloom de pós-processamento para fazer os cáusticos da água brilharem, o que dá à superfície da água um efeito agradável.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Animação de vento e estilos de mistura
Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Uma maneira de animar o ambiente foi fazer os galhos das árvores balançarem ao vento. Para conseguir esse efeito, decidimos ter apenas um shader para cada folhagem da árvore Prefab – isso criaria variedade e evitaria repetições.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

No gráfico Vegetação Iluminada pelo Vento, você pode ver como criamos dois efeitos. Um é o efeito de animação ou balanço, que criamos deslocando a posição do vértice seguindo alguns parâmetros que modificam um padrão de ruído. O segundo efeito usa o canal G ou verde para ajustar o tom da luz de contorno ao redor da folhagem.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Estilos de mesclagem de luz são uma coleção de propriedades no renderizador 2D que descrevem como as luzes devem afetar os sprites. Por exemplo, você pode criar um estilo de mesclagem que afetará apenas um canal específico. Quando você adiciona uma luz na cena que usa esse estilo de mesclagem, ela afetará apenas as áreas do Sprite que as informações do canal do mapa de máscara determinam.

No exemplo abaixo, a luz paramétrica usa nosso estilo de mesclagem Direct Lighting, que afeta apenas as áreas indicadas no canal R do mapa de máscara do Sprite.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Cinematográfico e partículas

Lost Crypt tem um pequeno vídeo cinematográfico em que nosso aventureiro pega a varinha mágica na cripta. Para tornar o momento um pouco mais especial, mudamos o clima do ambiente e geramos partículas no momento certo com a Timeline, já que queríamos observar a mudança para a noite. Para acompanhar as partículas voando em direção à floresta, trocamos as câmeras do Cinemachine e colocamos também uma câmera de mesclagem de trilhas de animação.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

O anel brilhante que aparece quando você pega a varinha usa luzes do tipo Sprite. O gráfico do anel simplesmente se expande e desaparece, criando uma aura que ilumina o ambiente.

Conseguimos o efeito de brilho de partículas principalmente com o efeito Bloom no pós-processamento de Volume. Além disso, o material/shader para as partículas e rastro usa uma cor HDR para definir quanta intensidade o efeito de pós-processamento deve aplicar a este objeto.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Ghouls animados

Olhe atentamente para a floresta – você pode ver algumas criaturas espectrais lá. Para fazer isso, criamos um shader que poderia ser usado para outros fantasmas. Eles são transparentes, mas um efeito Fresnel adiciona um pouco de brilho nas bordas do Sprite, fazendo-os balançar como criaturas flutuantes.

Um efeito interessante no shader é o rastreamento da posição de transformação do GameObject da varinha. Por exemplo, quando a varinha está perto dos ghouls, eles ficam mais brilhantes. Para conseguir isso, anexamos um pequeno script à varinha que atualiza sua posição no shader de material.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D

Os ghouls também têm uma pequena animação que alterna entre um gráfico e outro. Para isso, criamos um mapa de máscaras com gráficos diferentes em cada canal: R com um visual, G com o visual alternativo e B para o efeito Fresnel.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Pós-processamento de volume

Para uma camada final de polimento, adicionamos alguns efeitos de pós-processamento incluídos no Universal Render Pipeline. Por exemplo, criamos um GameObject vazio e anexamos o componente Volume a ele. Em Lost Crypt usamos bloom, balanço de branco e vinheta, mas há muitos outros efeitos que podem ser usados em projetos 2D, como desfoque de movimento, correção de cor e efeitos de granulação de filme.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Encerramento

Esperamos que a demonstração do Lost Crypt ajude você a entender como usar nosso conjunto integrado de ferramentas 2D para casos de uso semelhantes. Se você tiver alguma dúvida sobre a Cripta Perdida, pode entrar em contato conosco no fórum.

Se você tiver dúvidas específicas sobre nossas ferramentas 2D, confira os tópicos dedicados na seção 2D do fórum e em Recursos Beta e Experimentais.

Imagem do projeto de amostra 2D
Imagem do projeto de amostra 2D
Junte-se a nós para um webinar sobre Lost Crypt em 9 de janeiro às 10:00 am EST (4:00 pm CET)

Quer conhecer os bastidores de Lost Crypt em tempo real? Inscreva-se no nosso animado webinar onde o evangelista de conteúdo global Andy Touch explicará como usamos luzes 2D, shaders e pós-processamento em Lost Crypt. A equipe 2D de P&D também se juntará a nós para responder às suas perguntas sobre o conjunto de ferramentas 2D ou o projeto em si.

Registrar

Há um número limitado de vagas, então certifique-se de se registrar logo e adicionar um lembrete no seu calendário.