Sprites a Partir de Modelo 3D: o Método de Dead Cells
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.
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:
- 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.
- Ajuste o Orthographic Scale até o personagem ocupar a altura desejada no quadro, com uma margem para armas e pulos.
- 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:
- Em Output Properties > Format, coloque Resolution X e Y no tamanho final do sprite, por exemplo 64 x 64, e o percentual em 100%.
- 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).
- 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):
- Render Properties > Render Engine: EEVEE.
- 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ó.
- 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):
- No material, use um Diffuse BSDF.
- 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.
- 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.
- Multiplique (nó Mix em modo Multiply) pela cor ou textura do personagem, ou use um Color Ramp por material com as cores já definidas.
- 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.
Render de frames e montagem do sprite sheet
- 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.
- Render > Render Animation (
Ctrl+F12). O Blender salva um PNG por frame. - 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:
- Frames-chave primeiro. Pose de idle, contato do andar, impacto do ataque. São os frames que o jogador vê por mais tempo.
- 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.
- 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.
- Silhueta. Ligue o onion skin (
F3) e veja se a silhueta tem continuidade. Uma mão que some em um frame chama atenção. - 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.


