Pixel Art Animation no GIMP: GIF e Frames em Camadas

Pixel art animation no GIMP 3: cada camada é um frame, nome com (100ms) e (replace), Playback para testar, GIF animado e sprite sheet sem plug-in.
Pixel Art Animation no GIMP: GIF e Frames em Camadas
Pixel art animation no GIMP funciona assim: cada camada é um frame, a camada de baixo é o primeiro, e o nome da camada diz quanto tempo o frame fica na tela e se ele substitui ou se soma ao anterior, por exemplo voo 1 (100ms) (replace). Com isso você testa a animação em Filters > Animation > Playback e exporta um GIF animado direto pelo File > Export As.
Este guia usa o GIMP 3.2 (a versão estável no site oficial em outubro de 2026 é a 3.2.6) e mostra o fluxo completo para um sprite de jogo: montar os frames, nomear, pré-visualizar, exportar GIF, montar uma sprite sheet sem plug-in e saber em que ponto vale trocar de ferramenta. Se você ainda não configurou o GIMP para pixel art (grid, lápis sem suavização, paleta), comece pelo guia de GIMP para pixel art de jogos e volte aqui.
Pixel art animation GIMP: camadas como frames
Vamos animar um pássaro de 16x16 batendo asas em 4 frames: asas no alto, asas no meio descendo, asas embaixo, asas no meio subindo.
- File > New, 16x16 pixels. Em Advanced Options, ponha Fill with: Transparency.
- Na camada que já existe, desenhe o frame 1 com o Pencil (N), pincel de 1 pixel, sem antialiasing.
- Duplique a camada (Layer > Duplicate Layer, ou Shift+Ctrl+D). A cópia aparece acima da original. Ela vai ser o frame 2.
- Edite a cópia: apague as asas e redesenhe na nova posição. O corpo do pássaro já está lá, então você mexe só no que muda.
- Repita até ter 4 camadas.
A pilha no diálogo Layers (Ctrl+L) fica com o frame 1 embaixo e o frame 4 em cima. Essa ordem é o tempo: o GIMP toca de baixo para cima. Se você desenhou na ordem errada, Layer > Stack > Reverse Layer Order inverte a pilha inteira.
Como o GIMP não tem onion skin, faça o truque manual: ao desenhar o frame 3, deixe a camada do frame 2 visível com a opacidade em 30 por cento (campo Opacity no topo do diálogo Layers) e esconda as outras clicando no olho. Volte a opacidade para 100 antes de exportar, senão o frame sai fantasma.
Nomeando camadas com tempo e modo de combinação
O GIMP lê duas instruções no nome de cada camada, entre parênteses, no formato nome (tempo em ms)(comando):
- Tempo:
(100ms)faz o frame ficar 100 milissegundos na tela. - Comando:
(replace)faz o frame substituir completamente o anterior.(combine)faz só as partes visíveis do frame se sobreporem ao anterior.
Para renomear, dê duplo clique no nome da camada no diálogo Layers. O pássaro fica assim:
| Camada (de baixo para cima) | Nome |
|---|---|
| 1 | asas alto (120ms) (replace) |
| 2 | asas descendo (60ms) (replace) |
| 3 | asas baixo (120ms) (replace) |
| 4 | asas subindo (60ms) (replace) |
Repare nas durações diferentes: os extremos (asas no alto e embaixo) ficam mais tempo, os intermediários passam rápido. Isso dá mais peso ao bater de asas do que 4 frames iguais. O post sobre quantos frames e quanto tempo cada animação precisa aprofunda esse raciocínio de timing.
Replace ou combine? Para sprite de jogo com fundo transparente, use sempre replace. O combine foi pensado para GIF com fundo opaco, em que cada frame desenha só o pedaço que mudou e economiza tamanho de arquivo. Com fundo transparente, o combine deixa as poses anteriores visíveis por baixo, e o pássaro aparece com 4 pares de asas.
Pré-visualizando com Filters > Animation > Playback
Abra Filters > Animation > Playback. A janela toca a animação usando os nomes das camadas. Os controles que importam:
- Play/Stop e os botões de avançar e voltar um frame, para conferir frame a frame.
- Zoom: aumente para ver o sprite de 16x16 em tamanho legível. Isso só afeta a pré-visualização.
- Reload: depois de editar uma camada, clique para a pré-visualização pegar a mudança. A janela não atualiza sozinha.
- Modo de combinação: a opção entre Cumulative layers (combine) e One frame per layer (replace) vale para as camadas que não têm comando no nome.
Deixe o Playback aberto ao lado da imagem enquanto ajusta, e clique em Reload a cada mudança. Observe a animação rodar umas 10 vezes seguidas: é assim que aparecem o tranco do loop e o pixel que "pisca" num frame só.
Exportando GIF animado
- File > Export As (Shift+Ctrl+E). Troque a extensão do nome para
.gife clique em Export. - Na janela de opções do GIF, marque As animation. Ela só aparece habilitada quando a imagem tem mais de uma camada.
- Marque Loop forever para o GIF repetir sem parar.
- Delay between frames when unspecified: o tempo usado nas camadas que não têm
(ms)no nome. - Frame disposal when unspecified: escolha One frame per layer (replace).
- Deixe Use delay entered above for all frames desmarcado se você quer respeitar os tempos diferentes que pôs nos nomes. Marcado, ele ignora os nomes e usa um tempo só.
Ampliar para mostrar. Um GIF de 16x16 é minúsculo numa rede social. Antes de exportar a versão de vitrine, faça Image > Scale Image, multiplique o tamanho por um número inteiro (16 para 128, por exemplo) e em Interpolation escolha None. Qualquer outra interpolação borra os pixels. Faça isso numa cópia (Image > Duplicate), nunca no arquivo de trabalho.
Cores. GIF tem limite de 256 cores. Pixel art de jogo quase sempre fica bem abaixo disso, mas se o GIF sair com cores trocadas, converta antes por Image > Mode > Indexed, escolha usar a sua paleta ou gerar uma paleta otimizada, e deixe o dithering desligado.
Montando sprite sheet a partir das camadas
GIF é para mostrar a animação. Para o jogo, a engine quer uma sprite sheet: uma imagem PNG com os frames lado a lado. O post sobre sprite sheet explica por que a engine prefere esse formato e como ela fatia a folha.
Não achei, na data deste post, um plug-in de sprite sheet confirmado para o GIMP 3. Os scripts conhecidos foram escritos para a API do GIMP 2. Então o caminho é manual, e funciona bem para até uns 8 frames:
- Duplique a imagem (Image > Duplicate) para não estragar o arquivo de animação.
- Image > Canvas Size. Multiplique a largura pelo número de frames: 4 frames de 16 pixels dão 64x16. Em Resize layers, escolha All layers, para todas as camadas ganharem o tamanho do novo canvas. O conteúdo de cada camada continua na esquerda.
- Selecione a camada do frame 2 e abra Layer > Transform > Offset (Shift+Ctrl+O). Em X, digite 16. Em Edge behavior, escolha Make transparent. O frame 2 anda 16 pixels para a direita.
- Repita no frame 3 com X igual a 32, e no frame 4 com X igual a 48.
- Deixe todas as camadas visíveis e use Image > Merge Visible Layers.
- File > Export As com extensão
.png.
O resultado é uma faixa 64x16 com os 4 frames em sequência, pronta para fatiar na engine com células de 16x16.
Atalho para muitos frames: abra o GIF exportado no LibreSprite (grátis) ou no Aseprite, que leem GIF animado como frames, e use a exportação de sprite sheet deles. Dois minutos em vez de vinte cliques de Offset.
Na Godot, a sprite sheet entra num AnimatedSprite2D: no editor de SpriteFrames, o botão de adicionar frames de uma sprite sheet pede o número de colunas e linhas e você escolhe as células. Ajuste o filtro de textura para Nearest para o pixel não borrar.
Na Unity, importe o PNG, ponha Sprite Mode em Multiple e Filter Mode em Point (no filter), abra o Sprite Editor e fatie com Slice > Grid By Cell Size em 16x16. Selecione os sprites fatiados e arraste para a cena: a Unity cria o clipe de animação.
Até aqui é um pássaro de 4 frames. Quando o projeto pede idle, corrida, pulo, ataque e dano para vários personagens, controlar dezenas de camadas renomeadas à mão vira o gargalo, e a ferramenta começa a ditar o ritmo do jogo.
Escolher a ferramenta pelo tipo de arte que o jogo vai ter, e não pelo que já está instalado, é uma das decisões que mais economizam tempo numa produção de arte 2D. O GIMP resolve bem os casos pequenos; o resto pede outro fluxo.
Limites do GIMP para animação e alternativas grátis
Onde o GIMP trava em animação:
- Sem timeline. A ordem e o tempo dos frames moram nos nomes das camadas. Reordenar ou mudar tempos em 30 frames é trabalhoso.
- Sem onion skin. O truque da opacidade funciona, mas é manual a cada frame.
- Uma camada por frame. Você não consegue separar personagem, arma e efeito em camadas dentro do mesmo frame. A exportação de GIF não aceita grupos de camadas.
- Sem tags. Uma animação por arquivo. Idle e corrida do mesmo personagem viram arquivos separados.
- Sprite sheet manual. Não há exportação de folha com metadados.
Alternativas grátis, cada uma com o seu ponto forte (o post sobre programas de animação 2D grátis compara em detalhe):
- LibreSprite: fork livre de uma versão antiga do Aseprite. Timeline, onion skin, exportação de sprite sheet.
- Pixelorama: feito na Godot, roda no navegador ou instalado, com timeline e onion skin.
- Piskel: no navegador, para animações curtas de pixel art.
- Krita: timeline completa e onion skin, melhor para animação pintada do que para pixel art pura.
Se o GIMP já é o seu editor e você só precisa de um ícone animado, um efeito de 3 frames ou um GIF para divulgar o jogo, ele resolve. Para o conjunto de animações de um personagem jogável, troque.
Erros comuns: frames combinando sem querer, escala com interpolação
- Frames combinando sem querer. O sprite aparece com todas as poses empilhadas. Falta
(replace)no nome das camadas, ou a opção de disposal está em combine. Corrija um dos dois. - Escala com interpolação. O GIF ampliado saiu borrado. Em Image > Scale Image, Interpolation tem que ser None, e o fator tem que ser inteiro (2x, 4x, 8x).
- Animação tocando ao contrário. A camada de cima foi desenhada como primeiro frame. Layer > Stack > Reverse Layer Order.
- Frame fantasma. Uma camada ficou com opacidade baixa do truque de onion skin. Confira o campo Opacity de cada camada antes de exportar.
- Use delay for all frames marcado. Os tempos diferentes dos nomes foram ignorados e tudo tocou na mesma velocidade.
- Tempo escrito errado no nome. O formato é número seguido de
msdentro de parênteses. Sem os parênteses, o GIMP lê como parte do nome e usa o tempo padrão. - Grupo de camadas. O GIF não exporta grupos. Mantenha uma camada simples por frame.
Próximo passo
Anime o pássaro de 4 frames com tempos diferentes nos extremos, exporte o GIF ampliado 8x sem interpolação e monte a sprite sheet de 64x16 pelo método do Offset. Leve a folha para a Godot ou para a Unity e confira o loop rodando no jogo. Se o processo de renomear camadas começar a irritar, é o sinal para testar LibreSprite ou Pixelorama no próximo personagem.
Perguntas frequentes
O GIMP faz animação?
Faz animação simples: cada camada da imagem é um frame, e o nome da camada define a duração e o modo de combinação. Dá para testar com Filters > Animation > Playback e exportar como GIF animado. Não existe timeline nem onion skin de verdade, então para animação longa outra ferramenta grátis rende mais.
Por que meu GIF no GIMP mostra os frames anteriores por baixo?
Porque os frames estão no modo combine, que empilha cada frame em cima do anterior. Em sprite com fundo transparente, isso deixa um rastro de todas as poses. Ponha (replace) no nome de cada camada ou marque One frame per layer (replace) na exportação.
Qual camada é o primeiro frame no GIMP?
A camada de baixo da pilha é o primeiro frame, e a de cima é o último. Se a animação tocar ao contrário, inverta a ordem com Layer > Stack > Reverse Layer Order.
Dá para exportar sprite sheet no GIMP sem plug-in?
Dá, com alguns passos manuais: aumentar o canvas para caber todos os frames lado a lado, deslocar cada camada com Layer > Transform > Offset e juntar tudo com Merge Visible Layers. Para muitos frames, abrir o GIF num editor como LibreSprite e exportar a folha de lá é mais rápido.
