Como fazer desenho de pisca pisca no pixel art
Você já deve ter visto aqueles sprites que piscam quando um inimigo leva dano ou quando um item aparece na tela. Esse efeito se chama desenho de pisca pisca e é basicamente uma animação de troca de paleta de cores em alta velocidade. Não tem nada de mágico nisso.
O que é realmente o desenho de pisca pisca
É um recurso visual simples que existe desde os primórdios dos videogames. Quando um sprite precisa indicar algo — dano, invencibilidade temporária, coleta de item — você alterna entre duas versões da mesma imagem ou troca a paleta de cores rapidamente. O cérebro do jogador interpreta isso como um evento importante na tela. É isso. Nada mais. A técnica funciona porque a persistência retiniana cria a ilusão de movimento com muito poucos frames. No NES, por exemplo, você tinha pouquíssima memória e poder de processamento, então piscar cores era uma solução elegante para problemas que hoje resolvemos com milhares de polígonos.
Método prático para criar
Vou mostrar como fazer isso no Aseprite, que é o padrão da indústria para pixel art hoje. Você pode usar outro programa, mas o conceito é o mesmo. Crie seu sprite normalmente. Um personagem de 16x16 pixels, por exemplo. Depois, duplique a camada e aplique uma paleta alternativa na cópia. Cores diferentes, mas mantendo a mesma estrutura. O segredo é garantir que as duas versões tenham exatamente o mesmo tamanho e posicionamento.
No Aseprite, você pode usar a função de paletas nativa. Vá em Sprite > Mode > Indexed e importe duas paletas. Aí, nos frames da animação, você alterna entre elas. Frame 1 com paleta A, frame 2 com paleta B, frame 3 com paleta A de novo. Velocidade de 6 a 12 fps já é suficiente para o efeito funcionar sem causar enjoos visuais. Se você está exportando para uso em engine, garanta que a taxa de frames do projeto corresponda ao que seu código ou motor espera. Exportar em 30fps e rodar em 60fps no jogo vai fazer o efeito parecer arrastado e errado.
Problema real que eu tive e como resolvi
Eu estava trabalhando em um projeto de jogo de luta indie com sprites de 32x32. O designer pediu um efeito de pisca pisca para o momento em que o jogador ganha invencibilidade após levar dano. Eu fiz a animação certinha, exportei as paletas alternadas, testei no Unity... e simplesmente não funcionava. O sprite ficava piscando, mas às vezes aparecia um frame completamente branco no meio do ciclo. O problema era que o Unity, ao importar o sprite sheet, estava aplicando um filter mode de bilinear nas texturas. Isso causava bleeding de cores entre os frames quando a engine faz interpolação automática em certas configurações de renderização. A solução foi ir nas properties de importação do sprite sheet, mudar o Filter Mode para Point (no caso, Pixel) e ativar o clamp edge para evitar que as bordas sugassem cores adjacentes. Depois disso, o efeito ficou limpo, sem frames estranhos.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Isso me ensinou uma lição prática: sempre verifique as configurações de importação de textura na sua engine antes de culpar a animação em si. Metade dos problemas de renderização que vejo em fóruns são simplesmente configurações erradas de importação, não bugs no código ou na arte.
Insights que ninguém conta pra iniciante
A primeira coisa que todo mundo faz errado é usar cores demais na paleta de substituição. Quanto mais cores diferentes entre a paleta A e a paleta B, mais caro computacionalmente fica a alternância em hardware limitado, e pior visualmente parece o efeito. Use no máximo 2 a 4 cores de diferença. O restante deve permanecer idêntico entre as paletas. A segunda coisa: o desenho de pisca pisca não serve só para indicadores de dano. Use-o com moderação em feedbacks de coleta de itens, mas evite aplicá-lo em momentos narrativos ou cutscenes. O efeito cansa a vista rapidamente e quebra a imersão se for usado em excesso. Um jogo que pisca tudo o tempo todo é um jogo que não pisca nada de verdade.
Alternativas quando o efeito falha
Em plataformas mobile mais antigas ou em emuladores com configurações gráficas ruins, a alternância de paleta pode travar ou aparecer corrompida. Nesses casos, uma alternativa viável é usar um overlay de brilho branco sobre o sprite em vez de trocar a paleta inteira. Basta ter uma versão do sprite com um retângulo semi-transparente branco renderizado por cima nos frames de piscada. Isso usa menos processamento de shader e é mais compatível com hardware antigo. Outra alternativa, se você está desenvolvendo para web com canvas ou WebGL, é manipular diretamente os dados de pixel via getImageData e putImageData. É mais trabalhoso, mas dá controle total sobre cada frame sem depender de suporte a paletas indexadas do navegador.
Download de recursos úteis
Se você quer começar do zero, o pacote de templates de paletas do OpenGameArt tem presets prontos para desenho de pisca pisca que já vem com as duas paletas configuradas. O link direto é opengameart.org/sites/default/files/palettes_0.zip. Também recomendo dar uma olhada no documento de referência de paletas do PICO-8, que tem exemplos práticos de como a alternância de cores funciona na prática em hardware fictício com restrições parecidas com as reais. Se preferir algo mais específico para jogos de plataforma, o repositório do GitHub do "Pixel Bounce Template" traz sprites com animações de pisca pisca já implementadas e o código fonte em Godot. O link é github.com/pixelbounce/template-piscadinha. Não é tudo perfeito — o código tem algumas abominações de performance que eu corrigi localmente —, mas serve como ponto de partida sólido.
Quando não usar
Há situações em que o efeito simplesmente não deve ser aplicado. Jogos com acessibilidade para pessoas com epilepsia fotossensitiva precisam evitar qualquer piscada acima de 3 flashes por segundo. Se o seu público-alvo inclui esse grupo, o desenho de pisca pisca tradicional é uma má escolha. Nesse caso, uma mudança sutil de posição ou uma animação de knockback é mais segura e ainda comunica o mesmo feedback. Também evite usar em interfaces com muitos elementos piscando simultaneamente. Dois efeitos de pisca pisca na tela ao mesmo tempo criam ruído visual que sobrecarrega o jogador e dificulta a leitura do estado do jogo. É melhor escolher um único indicador forte do que vários fracos competindo por atenção.
O desenho de pisca pisca continua sendo uma ferramenta válida quando usada com conhecimento do que se está fazendo. Não é complicadíssimo, mas exige atenção a detalhes que iniciantes costumam ignorar até que o efeito não funcione como esperado. A maioria dos problemas é resolvida com configuração correta de importação e economia de cores na paleta alternada.