Uma rodada rápida de ótimas dicas para jogos 2D

SHANTI ZACHARIAH / UNITY TECHNOLOGIESSenior content marketing manager
Feb 9, 2021|12 Min
Uma rodada rápida de ótimas dicas para jogos 2D
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.

Você está planejando fazer um jogo 2D com Unity? Então dê uma olhada nessas dicas úteis do nosso gerente de produto técnico 2D, Rus Scammell, e do gerente de marketing de produto 2D, Eduardo Oriz, que ajudarão você a começar rapidamente e trabalhar com eficiência durante todo o seu projeto.

Jogo 2D com Unity

Comece seus projetos 2D com o modelo 2D
Imagem

Use o modelo 2D para começar rapidamente um novo projeto. O modelo está disponível no Unity Hub. Configurações exclusivas incluem:

  • Uma cena padrão que usa uma visualização 2D e vem com uma câmera configurada para projeção ortográfica e limpa para uma cor sólida
  • O Editor está definido como Modo 2D por padrão para que novas texturas sejam importadas como Sprites
  • Iluminação global em tempo real desabilitada
  • Instalação de pacotes 2D, incluindo 2D Animation, 2D Pixel Perfect, 2D PSD Importere 2D SpriteShape, bem como as dependências necessárias
Imagem

A partir da versão 2020.2, os itens de menu 2D são exibidos como menus de nível superior para criação de GameObjects e Assets. Isso inclui um conjunto de Sprites 2D primitivos para prototipagem rápida. Menus também são adicionados para recursos mais recentes, como SpriteShape e Pixel Perfect Camera.

Escolha os pixels por unidade dos seus Sprites
Imagem

Pixels por unidade (PPU) é um conceito importante no desenvolvimento 2D. O PPU de um Sprite determina quantos pixels de largura ou altura em uma imagem Sprite correspondem a uma unidade de distância no espaço mundial.

Considere o PPU dos seus Sprites o mais cedo possível. Além de controlar a densidade de pixels, o PPU também afeta como os Sprites são usados pelos modos de desenho do Sprite Renderer, bem como outros sistemas como o Tilemap. Escolha uma densidade de pixels que seja adequada ao design do seu jogo e à plataforma de destino, e evite texturas desnecessariamente grandes.

Use o 2D PSD Importer
Imagem

O 2D PSD Importer importa arquivos PSB em camadas do Adobe Photoshop para o Unity. Ele permite que você use recursos como o Mosaic para gerar automaticamente uma Sprite Sheet a partir de camadas importadas e do equipamento do personagem. O Unity então remonta os Sprites de um personagem conforme eles foram organizados em seus arquivos de origem. O Importador foi projetado para funcionar de forma otimizada com o sistema de 2D Animation e fluxos de trabalho de personagens multicamadas.

Reduzir pixels sobrepostos
Imagem

Tente reduzir o número de passagens necessárias para desenhar a cor final na tela. Quando os pixels são semitransparentes, você deve considerar cada pixel sobreposto ao calcular a cor final. O excesso de pixels transparentes sobrepostos diminui o desempenho da GPU, especialmente em dispositivos menos potentes ou quando taxas de quadros mais altas são necessárias. Todos os Sprites na sua cena serão considerados transparentes, mas há maneiras de reduzir o overdraw.

O Unity irá sobrepor os pixels somente dentro da sua Máscara de Sprite. Com o retângulo completo, a área completa será sobreposta, mas se o Tipo de malha estiver definido como Estreita, a área sobreposta será reduzida, pois a malha gerada segue apenas o contorno do seu Sprite, ignorando as áreas vazias. Se você quiser ter mais controle sobre o contorno da malha, você pode alterá-lo no Editor de Sprites.

Imagem

Você também pode reduzir o overdraw mesclando Sprites estáticos sobrepostos. Se os Sprites não precisarem se mover ou você não precisar deles para um efeito de paralaxe, considere mesclá-los quando o design do seu nível estiver finalizado.

Combinar colisores
Imagem

Quando você tiver muitos Sprites com Colisores 2D estáticos, combine-os com o componente Colisor 2D Composto. Isso proporciona melhor desempenho e uma colisão mais suave com toda a superfície. O Composite Collider pode ser usado com Tilemaps; na imagem acima, os blocos roxos na tela são usados como Colliders. Você o habilita adicionando o componente e marcando a caixa Composto.

Um Composite 2D Collider também pode ser usado com GameObjects pais. Certifique-se de que os Colliders filhos estejam habilitados marcando a caixa Usado pelo Composite. Outra maneira de otimizar os Colliders é desenhar manualmente um polígono simples que funcione bem com seu GameObject.

Renderizador de Tilemap
ImagemImagem

Cada Renderer anexado a um GameObject, como um Sprite, tem alguma sobrecarga. Para exibir muitos Sprites estáticos de forma eficiente, use o Tilemap Renderer para uma maneira mais prática e de melhor desempenho de projetar seu jogo. Você pode renderizar centenas de Sprites com apenas um Renderizador. Quando você tem muitos Sprites para renderizar, mas não precisa classificá-los, use o Modo Tilemap Chunk para reduzir o uso de CPU e memória, o que é importante se você estiver mirando em dispositivos de baixo custo. Para usá-lo, coloque todos os tiles estáticos no mesmo Tilemap e ative o Modo Chunk.

Certifique-se de que todas as peças também estejam no mesmo Atlas de Sprites. Os blocos podem não ser exibidos corretamente na Visualização de Cena, mas serão classificados corretamente quando você entrar no Modo de Reprodução. Uma abordagem é projetar seu nível usando o Modo Individual e mudar para o Modo Chunk quando estiver pronto para publicar.

Se você precisar que os Sprites sejam classificados corretamente, por exemplo, para mover um personagem na frente e atrás de peças individuais, use o Modo Individual. Para Sprites que precisam ser movidos ou têm funcionalidade de jogo, use o Modo Regular.

Asse formas de Sprite para melhor desempenho

Sprite Shape é a ferramenta 2D para projetar formas e níveis orgânicos. Por padrão, a API Sprite Shape permite que você altere os nós da spline em tempo de execução, o que pode afetar o desempenho. Se você não precisar dessa alteração no tempo de execução, poderá preparar ou armazenar em cache a geometria da spline para obter melhor desempenho. Selecione Sprite Shape Controller, ative Edit Spline e então Cache Geometry para preparar a malha. Se você usa o Unity 2019 LTS ou versões posteriores e está modificando o spline em tempo de execução, você pode obter uma grande melhoria de desempenho instalando o pacote Burst . Vá para o Gerenciador de Pacotes e instale o Burst versão 1.3 ou posterior.

Crie arte rapidamente com Sprite Shapes
Imagem

Você pode usar Perfis de Forma de Sprite para projetar ambientes semelhantes aos que você faria com um software de desenho vetorial. Os Perfis podem ser usados tanto para elementos de jogabilidade quanto decorativos. Eles funcionam bem para diferentes estilos de arte e preenchem grandes áreas rapidamente, tudo isso usando menos recursos.

Divirta-se com Sprites de 9 fatias e mosaicos de Sprites

Os modos de desenho do Sprite Renderer ajudam você a economizar no tamanho dos seus ativos e tornam o processo de criação de níveis mais divertido. Com Tileable Sprites, você pode ter diferentes GameObjects usando o mesmo Sprite em tamanhos diferentes sem esticá-lo. Vá para o Editor de Sprites e mova as alças amarelas para enquadrar a parte do Sprite que poderá ser dividida em blocos. Aplique-o e vá até o GameObject e altere o Modo de Desenho do Renderizador de Sprite para o Modo Mosaico.

Você também pode criar seu nível com Sprites de 9 fatias, usando blocos que parecem nítidos e proporcionais enquanto você os dimensiona e organiza. No Editor de Sprites, selecione a área que deve ser dividida em blocos e certifique-se de que os cantos se encaixem na área que não será repetível. Em seguida, selecione o Modo de Desenho para fatiar.

Usar modo de classificação de transparência

Ao projetar jogos 2D, haverá situações em que alguns dos seus GameObjects estarão na mesma camada de classificação e ordem. Você pode criar muitas camadas e alguma lógica por trás dos seus Sprites em movimento para mostrá-los na ordem correta, mas isso não é eficiente. A maneira como informamos ao Unity a ordem correta para renderizar um Sprite nessas situações é com o Modo de Classificação por Transparência nas Configurações do Projeto. O Unity classifica os Sprites na ordem descrita pela direção de um Vector2 (definido pelos eixos X e Y nessas configurações). Veja como Eduardo Oriz, gerente de marketing de produto da Unity, e Rus Scammell, gerente de produto, configuraram essa otimização por volta da marca de 9:15 em sua palestra Unite Now .

Imagem
Comece com animação 2D

Criar um clipe de animação quadro a quadro no Unity é simples. Selecione uma sequência de Sprites na janela Projeto e arraste-os para a visualização Cena ou para a janela Hierarquia. Um clipe de animação e um Animador serão criados para você automaticamente.

Se você quiser adicionar clipes de animação em um Animator existente, basta arrastar esses quadros de animação para o GameObject do Animator. O clipe será adicionado ao Animator. Mantenha pressionada a tecla Alt ou Option enquanto arrasta os quadros de animação para a hierarquia se quiser criar um GameObject diferente para cada Sprite.

Animação quadro a quadro ou baseada em ossos: Qual é o certo para você?
ImagemImagem

O Unity suporta animação quadro a quadro e baseada em ossos. Aqui estão as principais diferenças entre as duas abordagens:

Quadro a quadro

  • Cada quadro usa um Sprite exclusivo
  • Clipes de animação adicionais requerem mais Sprites
  • A taxa de quadros e a velocidade são geralmente constantes
  • As animações de transição requerem Sprites adicionais
  • Não funciona com 2D Inverse Kinematics (2D IK)

Baseado em osso

  • Cada quadro de animação usa os mesmos Sprites
  • Cada clipe de animação usa os mesmos Sprites
  • Funciona bem para velocidade de animação variável
  • O sistema de animação pode criar transições para clipes
  • Funciona com 2D IK
Aumente o desempenho da animação 2D com Burst
Imagem

Instale os pacotes Burst/ Collections para otimizar o desempenho da animação 2D para altas contagens de ossos e malhas Sprite com altas contagens de vértices. A deformação do Sprite animado em tempo de execução também terá um aumento de desempenho. Isso funciona permitindo que o pacote de 2D Animation use a compilação Burst e utilitários de matriz de baixo nível para acelerar o processamento da deformação da malha Sprite pelo Unity.

Certifique-se de estar usando o Unity 2020.2 e também o 2D Animation 5.0.x. Ao instalar o pacote Burst 1.3.3 ou mais recente, você também deve instalar o Collections , que é um pacote de visualização.

Imagem
Use tesselação personalizada para animação 2D
Imagem

Ao preparar um Sprite para rigging, você tem controle total sobre a malha. Para começar rapidamente, o Skinning Editor oferece uma opção de mosaico automático. No entanto, você pode personalizar isso usando as ferramentas de malha para adicionar e remover vértices e criar a malha necessária.

Use física 2D com 2D Animation
Imagem

Adicione componentes 2D Colliders e Rigidbody 2D aos personagens baseados em ossos para impulsionar o movimento por meio do sistema de física 2D. Na imagem de exemplo acima da palestra de Eduardo e Rus, os Capsule Colliders foram adicionados a cada osso, bem como aos componentes 2D do Rigidbody. Eles foram então conectados com juntas de dobradiça. Você pode usar limites de ângulo em cada articulação para limitar a amplitude de movimento e também pode alternar se os componentes do Rigidbody conectados por meio de uma articulação colidem entre si.

Mantenha sua pixel art bonita e nítida
Imagem

Mantenha uma densidade de pixels consistente em todos os seus ativos. Se o seu projeto tiver 32 PPU, por exemplo, você pode esperar que uma unidade contenha 32 pixels, como o bloco no lado esquerdo da imagem acima.

A câmera 2D padrão expressa o tamanho em unidades verticais a partir do centro da câmera. Na imagem de exemplo aqui, podemos encaixar 10 peças verticalmente:

Imagem

Se seus ativos parecerem muito pequenos quando você os adiciona à visualização de Cena, em comparação à imagem de referência original, é bem provável que seja devido a uma incompatibilidade de resoluções.

O PPU padrão do Unity para sprites é definido como 100. Quando alteramos a configuração do Sprite Asset para 32 PPU do nosso projeto, o sprite terá o tamanho correto.

Imagem

Por padrão, a Filtragem Bilinear é habilitada para ativos para suavizar bordas rígidas, mas se você quiser uma aparência pixelada de estilo retrô, altere o Modo de Filtro para Ponto para obter visuais nítidos que ocupem o espaço da tela definido no início.

Use predefinições para configurações de importação de textura consistentes

Quando você tem muitos ativos para importar para seu projeto, alterar a configuração de cada Sprite individual para corresponder às configurações do seu projeto levará muito tempo. Em vez disso, crie um modelo de importação ou uma predefinição para que cada ativo importado tenha a configuração predefinida que você deseja. Para fazer isso:

1. Selecione um ativo com a configuração que você deseja

2. Clique no ícone Configurações ao lado do Sprite Asset para criar um modelo a partir dele

3. Salve-o com um nome que ajude você a lembrar o que ele faz

4. Torne-o o padrão para que todos os novos ativos importados tenham essa configuração (você verá o ativo predefinido na visualização do projeto)

Imagem

Se você estiver trabalhando com pixel art, certifique-se de que a tela sempre mostre o mesmo número de pixels e que todos esses pixels permaneçam do mesmo tamanho. Primeiro, vá até sua Câmera e adicione a Câmera Pixel Perfect. Defina o PPU do ativo para aquele que você usa na sua pixel art.

Depois de adicionar o componente Pixel Perfect Camera, ele assumirá o controle da câmera no Modo de reprodução, mas você também poderá ver as alterações no Editor se habilitar Executar no Modo de edição.

Imagem

No seu projeto, personagens e objetos podem mudar de posição, rotação ou tamanho. Por padrão, eles terão uma interpolação suave, mas se você quiser permanecer fiel às limitações da pixel art indicadas pelo PPU do seu projeto, habilite o Upscale Texture. Os GameObjects se moverão em incrementos de um pixel. As alterações de rotação e escala também respeitarão as restrições visuais. Saiba mais sobre dicas para criar jogos de 8 e 16 bits com aparência retrô.

Mantenha-se produtivo no Editor 2D

Grupos de classificação: Os grupos de classificação permitem que você agrupe renderizadores 2D. Você pode usar Camadas de Classificação e Ordem em Camadas para garantir que a ordem de renderização esteja correta para cada personagem, mas isso não funcionará se houver sobreposição e as partes individuais ficarem entrelaçadas.

Imagem

Você pode colocar um Grupo de Classificação no GameObject raiz para cada personagem para agrupar os Renderers e classificá-los como um só. Com os Grupos de Classificação, os personagens não se entrelaçam nem são classificados como um grupo. Os grupos de classificação funcionam com todos os renderizadores 2D, bem como com sistemas de partículas.

Atlas de Sprites: Este recurso reúne vários Sprites em uma única textura combinada. O Unity pode então usar essa textura única para aumentar o desempenho emitindo uma única chamada de desenho em vez de várias chamadas de desenho para cada Sprite localizado em uma única pasta.

Ao adicionar uma pasta a um Sprite Atlas, você pode adicionar e remover Sprites livremente do seu Sprite Atlas ao longo da sua produção, simplesmente alterando o conteúdo das pastas compactadas.

Imagem

Também é possível criar variantes de Sprite Atlases que tenham tamanhos diferentes ou configurações de compactação diferentes para atingir uma variedade de plataformas com os mesmos ativos de origem.

Você deve considerar uma estratégia de atlas que funcione para o seu jogo. O Sprite Atlas foi projetado para que você possa encontrar um equilíbrio entre produtividade, flexibilidade e desempenho.

Obtenha dicas e truques mais valiosos para o desenvolvimento de jogos 2D

Veja como estamos capacitando artistas 2D; aprenda como a Odd Bug usou luzes 2D para criar clima em seu jogo Tails of Iron; baixe o projeto de amostra 2D The Lost Crypte leia este guia detalhado sobre como escolher a melhor resolução para seus ativos 2D. Por fim, você pode assistir à apresentação Unite Now de Eduardo e Rus aqui.