Voltar para o Blog
Quest Log

Sprites a Partir de Modelo 3D: o Método de Dead Cells

Modelo 3D simples de guerreiro ao lado da versão renderizada em pixel art com sombreamento de duas faixas, em vários frames de corrida

3D para pixel art no Blender: câmera ortográfica, render em baixa resolução sem anti-aliasing, toon shading, sprite sheet e quando vale a pena no jogo solo.

Ferramenta:Blender

Sprites a Partir de Modelo 3D: o Método de Dead Cells

Fazer 3D para pixel art é modelar e animar um personagem em 3D e renderizar cada frame numa resolução minúscula, sem suavização, com um sombreamento em faixas que imita o pixel art desenhado à mão. Dead Cells popularizou o método entre indies: o personagem principal, com dezenas de animações, saiu de um modelo 3D renderizado como sprite. No Blender, o caminho cabe em uma tarde de configuração: câmera ortográfica, resolução pequena, Filter Size em zero, toon shading e exportação de sequência para montar o sprite sheet.

Este post explica o que o time de Dead Cells fez de fato, como reproduzir o pipeline no Blender 5.2 LTS (a versão LTS atual, lançada em julho de 2026), como montar o sprite sheet, onde entra o retoque manual e, principalmente, quando esse método não compensa para quem faz jogo sozinho.

3D para pixel art: o método que Dead Cells popularizou

O artista Thomas Vasseur descreveu o pipeline no artigo "Art Design Deep Dive: Using a 3D pipeline for 2D animation in Dead Cells", publicado no Game Developer. Os pontos principais, segundo o próprio texto:

  • O time tinha pouca gente e precisava de muitas animações, com mudanças frequentes. Redesenhar dezenas de frames a cada ajuste era inviável.
  • Os personagens eram modelados e animados em 3D no 3ds Max e exportados em FBX.
  • Uma ferramenta interna renderizava o modelo em resolução muito baixa (o personagem tem por volta de 50 pixels de altura no jogo), sem anti-aliasing.
  • Cada frame saía como PNG junto com o normal map, e um toon shader simples usava esse normal map para criar o volume.
  • O retoque manual não fazia parte do fluxo. Vasseur admite que o time não achou solução para pixels que "piscam" entre frames e que daria para limpar à mão, mas o objetivo do pipeline era velocidade.

Repare no último ponto. O método de Dead Cells não é "3D que fica igual a pixel art feito à mão". É "3D que fica bom o bastante em movimento, rápido o bastante para mudar".

O 3ds Max é pago e a ferramenta de render era caseira. Para um dev solo, o equivalente gratuito é o Blender, e é ele que este tutorial usa.

Quando vale: muitas animações e direções

O método compensa quando o volume de frames é grande:

  • Muitas animações. Um personagem de ação com andar, correr, pular, cair, 3 ataques, esquiva, dano, morte e interações passa fácil de 150 frames.
  • Muitas direções. Jogo top-down ou isométrico com 8 direções multiplica tudo por 8. Desenhar à mão 8 direções de cada animação é onde muito projeto solo para.
  • Variações de equipamento. Trocar a espada ou a armadura no modelo e renderizar de novo custa minutos.
  • Mudanças de design. Se a proporção do personagem muda no meio do projeto, você ajusta o modelo, não 300 desenhos.

E não compensa quando: o personagem tem poucas animações, a direção é uma só (plataforma de lado com 5 animações), você não sabe modelar nem animar em 3D, ou o estilo pede deformação exagerada que 3D não faz bem (smears, poses impossíveis).

Câmera ortográfica e resolução baixa no Blender

Abra o Blender com o personagem modelado e com rig. Se você ainda está montando o esqueleto, o post sobre rigging de personagem 3D para jogo cobre a base.

Câmera:

  1. Selecione a câmera, abra as propriedades da câmera (ícone verde de câmera) e em Lens > Type escolha Orthographic. Câmera ortográfica não tem perspectiva, então o personagem não muda de tamanho quando se aproxima da câmera, que é o que um sprite precisa.
  2. Ajuste o Orthographic Scale até o personagem ocupar a altura desejada no quadro, com uma margem para armas e pulos.
  3. Para jogo de plataforma, posicione a câmera de lado (rotação 90, 0, 90). Para top-down 3/4, incline uns 30 a 45 graus para baixo. Para isométrico em pixel art (degrau 2x1), a inclinação de cerca de 30 graus com rotação de 45 graus no eixo vertical é o ponto de partida.

Resolução de saída:

  1. Em Output Properties > Format, coloque Resolution X e Y no tamanho final do sprite, por exemplo 64 x 64, e o percentual em 100%.
  2. Em Frame Range, defina início e fim da animação. Em Frame Rate, use a taxa em que o jogo vai tocar a animação (12 fps é um bom começo para pixel art; segundo Vasseur, o pipeline 3D permitiu animações a 30 fps já no protótipo ScarKrow, que antecedeu Dead Cells).
  3. Em Output, escolha a pasta, File Format: PNG e Color: RGBA.

Fundo transparente: em Render Properties > Film, marque Transparent.

Cor fiel: em Render Properties > Color Management, troque View Transform para Standard. O padrão (AgX) altera as cores para aparência fotográfica, o que desalinha a paleta.

Shading toon e desligar anti-aliasing

Aqui está o coração do método.

Desligar a suavização (EEVEE):

  1. Render Properties > Render Engine: EEVEE.
  2. Render Properties > Film > Filter Size: 0 px. O manual do Blender descreve o Filter Size como o quanto a imagem é suavizada para evitar serrilhado; valores menores dão renders mais nítidos. Em zero, cada pixel fica com uma cor só.
  3. Sampling > Render: use poucas amostras (1 a 4). Com Filter Size em zero, mais amostras quase não ajudam e só custam tempo.

Texturas sem borrão: em cada nó Image Texture do material, troque a interpolação de Linear para Closest. Assim a textura não mistura cores ao ser amostrada em baixa resolução.

Toon shader (faixas de luz):

  1. No material, use um Diffuse BSDF.
  2. Ligue a saída dele num nó Shader to RGB (disponível no EEVEE). Esse nó transforma a iluminação em cor que você pode manipular.
  3. Ligue no Color Ramp e troque a interpolação do Color Ramp para Constant. Coloque 2 ou 3 paradas: sombra, base e luz, com as cores da paleta do jogo.
  4. Multiplique (nó Mix em modo Multiply) pela cor ou textura do personagem, ou use um Color Ramp por material com as cores já definidas.
  5. Ligue no Material Output.

O manual do Blender cita exatamente esse uso: um Color Ramp sobre a saída de um Diffuse BSDF via Shader to RGB cria um toon shader flexível. Use uma luz principal (Sun) fixa para todo o projeto, para a luz não mudar entre animações.

Contorno: em 64 pixels, contorno de render costuma sair irregular. O jeito mais limpo é aplicar depois no Aseprite, com Edit > FX > Outline (Shift+O) em todos os frames.

E o normal map de Dead Cells? Se o jogo vai usar luz 2D dinâmica, renderize também o passe de normais (View Layer Properties > Passes > Data > Normal) e componha uma segunda sequência. Na Unity, a textura de normal entra como Secondary Texture com o nome _NormalMap no Sprite Editor, e as luzes 2D do URP usam. Na Godot, use um CanvasTexture com a textura de normal no campo Normal Texture. Para a maioria dos projetos solo, o toon já "assado" no render resolve e economiza esse passo.

Até aqui é configuração. A parte que costuma travar quem tenta sozinho vem depois: os frames saem tecnicamente certos, mas o personagem não parece pixel art, a escala não bate com o cenário desenhado à mão e as animações não têm peso. Juntar modelagem, animação, leitura em baixa resolução e direção de arte coerente é um conjunto de habilidades, não uma configuração de render.

Curso de Arte 2D
Quer fazer a arte do seu jogo?

No curso de Arte 2D para Jogos da CursoGame.Dev você vai do rabisco ao portfólio: personagens, cenários, tilesets, UI e animação, sem precisar saber desenhar.

Conhecer o curso de Arte 2D
Suporte no WhatsAppAcesso vitalícioGarantia de 7 dias

Render de frames e montagem do sprite sheet

  1. Anime normalmente na timeline. Lembre de manter o personagem no lugar (correr no lugar, sem deslocamento), porque quem move o sprite é o código do jogo.
  2. Render > Render Animation (Ctrl+F12). O Blender salva um PNG por frame.
  3. Para cada direção, gire o personagem (não a câmera, para a luz continuar igual em relação ao mundo) e renderize de novo numa pasta separada.

Para montar o sprite sheet, abra o primeiro PNG da sequência no Aseprite. Ele pergunta se você quer carregar os arquivos numerados como animação; aceite. Depois use File > Export > Export Sprite Sheet, escolha o layout (por linhas, colunas ou empacotado) e marque a exportação do JSON se a engine for ler os dados. O post Sprite sheet: o que é e como montar detalha os layouts e o que cada engine espera.

Retoque manual em pixel art

Mesmo com tudo certo, o render deixa marcas. Retoque com esta ordem de prioridade:

  1. Frames-chave primeiro. Pose de idle, contato do andar, impacto do ataque. São os frames que o jogador vê por mais tempo.
  2. Pixels órfãos. Pixels soltos de 1 cor no meio de outra, que aparecem em um frame e somem no próximo. São o "flicker" para o qual o time de Dead Cells admite não ter achado solução. Remova os que aparecem no rosto e nas mãos.
  3. Rosto. Em 64 pixels, olhos de render quase nunca leem bem. Desenhe olhos e expressão à mão nos frames, ou use uma camada de rosto desenhada por cima.
  4. Silhueta. Ligue o onion skin (F3) e veja se a silhueta tem continuidade. Uma mão que some em um frame chama atenção.
  5. Paleta. Se a sprite estiver em RGB, converta para Indexed com a paleta do jogo (Sprite > Color Mode > Indexed) para eliminar cores quase iguais.

A regra de Dead Cells serve como freio: retoque o que o jogador percebe em movimento. Se você vai limpar todos os frames, talvez desenhar à mão saísse mais barato.

Erros comuns: render borrado, escala inconsistente

Render borrado. Filter Size acima de zero, texturas em Linear ou ampliar o PNG com filtro bilinear para "ver melhor". Correção: os três ajustes da seção de shading e ampliar só em escala inteira com vizinho mais próximo.

Escala inconsistente. Cada animação renderizada com Orthographic Scale diferente, ou personagens diferentes com câmeras diferentes. O herói muda de tamanho entre andar e atacar. Correção: uma câmera única salva num arquivo base, com Orthographic Scale fixo para o projeto inteiro, e todos os personagens modelados na mesma escala de mundo.

Pixel "nadando". Movimento de 3D tem posições fracionárias; em baixa resolução, detalhes oscilam 1 pixel para lá e para cá. Correção: animar com poses mais marcadas (menos intermediários suaves), reduzir a taxa de frames do render ou retocar os frames do meio.

Luz girando com a câmera. Renderizar as 8 direções girando a câmera faz a luz vir de lados diferentes. Correção: gire o personagem.

Cores fora da paleta. View Transform em AgX ou Filmic, luzes coloridas demais. Correção: View Transform Standard e Color Ramp com as cores exatas da paleta.

Quando NÃO usar

  • Seu jogo tem 1 personagem com 6 animações em 1 direção. Desenhar à mão é mais rápido que modelar, riggar, animar e configurar o pipeline.
  • Você não sabe 3D. Aprender modelagem, rig e animação para economizar tempo de desenho raramente fecha a conta num primeiro projeto.
  • O estilo pede exagero. Smears, deformações e poses "impossíveis" são naturais no desenho e trabalhosos no 3D.
  • Sprites muito pequenos (16x16 ou 24x24). Em poucas dezenas de pixels, o render perde a forma e quase todo frame precisa de retoque. O método brilha a partir de uns 48 pixels de altura.

Próximo passo

Pegue um personagem simples (até um boneco feito de cilindros serve; se o Blender ainda é novo para você, o guia de Blender para desenvolvimento de jogos monta o ambiente), configure o arquivo base com câmera ortográfica, 64x64, Filter Size 0, Standard e toon de 3 faixas, e renderize um ciclo de corrida de 8 frames. Monte o sprite sheet no Aseprite, retoque só o frame de contato e coloque o resultado ao lado de um tile do seu cenário. Se o personagem parecer do mesmo jogo, o pipeline está pronto para escalar.

Perguntas frequentes

Como Dead Cells fez os sprites dos personagens?

Segundo o artista Thomas Vasseur, em artigo publicado no Game Developer em 2018, os personagens foram modelados e animados em 3D no 3ds Max, exportados em FBX e renderizados em resolução bem baixa por uma ferramenta caseira, sem anti-aliasing, junto com o normal map de cada frame, e o volume vinha de um toon shader simples.

Dá para fazer pixel art com Blender?

Dá para gerar sprites com cara de pixel art: câmera ortográfica, resolução de saída pequena (64x64, por exemplo), Filter Size em 0 no painel Film, texturas em Closest e um shader de faixas de cor. O resultado costuma pedir retoque manual nos frames-chave.

Quando vale a pena fazer sprite a partir de 3D?

Quando o personagem tem muitas animações, muitas direções ou muitas variações de equipamento, e você sabe modelar e animar. Para um personagem com 5 animações em 1 direção, desenhar à mão costuma ser mais rápido.

Por que meu render 3D de pixel art fica borrado?

Porque o anti-aliasing do render ainda está ativo ou a imagem foi ampliada com filtro linear. Coloque Filter Size em 0 px, use poucas amostras, mantenha texturas em Closest e amplie só em escala inteira com vizinho mais próximo.