Pular para o conteúdo
charmotion

Figurinhas animadas do WhatsApp: especificações e conversão

Por equipe Charmotion · Atualizado em

Ilustração de capa do guia de figurinhas e emoji: Figurinhas animadas do WhatsApp: especificações e conversão, com personagens de demonstração do Charmotion

As figurinhas animadas do WhatsApp precisam ser arquivos WebP de exatamente 512×512 pixels e até 500 KB. Cada frame deve durar pelo menos 8 ms e a animação, no máximo 10 segundos. Um pacote tem de 3 a 30 figurinhas, nunca mistura estáticas e animadas e precisa de um ícone de bandeja estático de 96×96 com até 50 KB.

Principais pontos

  • Figurinhas animadas: WebP animado, exatamente 512×512 px, até 500 KB, frames de pelo menos 8 ms, até 10 segundos.
  • Figurinhas estáticas têm um limite menor, de 100 KB.
  • Um pacote precisa de 3 a 30 figurinhas e não pode misturar estáticas com animadas.
  • O ícone de bandeja é uma imagem estática de 96×96 com no máximo 50 KB.
  • O WhatsApp encerra a animação no primeiro frame, então esse frame precisa funcionar sozinho.

Já tem um personagem ou logo? Veja seu personagem em telas reais de app: telas de splash, onboarding, carregamento e estado vazio. É grátis, roda no navegador e não envia nada.

Qual tamanho e limite de arquivo o WhatsApp exige para figurinhas animadas?

Os requisitos estão no README dos apps de exemplo oficiais de figurinhas do WhatsApp no GitHub. Para pacotes animados:

Um chat de equipe com figurinhas animadas de personagem, ao lado de uma bandeja com oito figurinhas de personagem com fundo transparente
Loops e reações únicas de um só personagem, usados como figurinhas no chat.
ItemRequisito
FormatoWebP animado
DimensõesExatamente 512×512 px
Tamanho do arquivoAté 500 KB por figurinha animada (até 100 KB por figurinha estática)
Duração do framePelo menos 8 ms por frame
Duração totalAté 10 segundos
Taxa de framesNão especificado (apenas a duração mínima de 8 ms por frame)
Figurinhas por pacoteDe 3 a 30
MisturaEstáticas ou animadas, nunca as duas
Ícone de bandejaEstático, 96×96 px, máximo de 50 KB

As citações do README são diretas: "as figurinhas devem ter exatamente 512 x 512 pixels" e "cada figurinha animada deve ter no máximo 500KB". Na prática, a regra dos 8 ms limita a taxa de quadros a 125 fps, muito acima do que uma figurinha precisa; 15 fps (cerca de 67 ms por frame) é mais que suficiente para um personagem.

O README é voltado a desenvolvedores que criam um app de figurinhas a partir do exemplo open source do WhatsApp, que é a forma oficial de distribuir um pacote personalizado, e o exemplo verifica essas regras quando o pacote é adicionado.

Por que o WhatsApp diz que minha figurinha é grande demais?

Ou o arquivo passa de 500 KB, ou não tem exatamente 512×512. Os dois são limites rígidos. Siga esta escala de redução e confira de novo após cada passo:

  1. Reduza a taxa de quadros. Baixe de 15 fps para 12 fps.
  2. Reduza a qualidade. Diminua -quality de 60 para 50 e depois para 45.
  3. Encurte o clipe. Dez segundos é o máximo, não uma meta. De dois a quatro segundos é o comum para uma reação.
  4. Use margem em vez de ampliar detalhes. Um personagem que ocupa todo o frame de 512×512 tem mais pixels detalhados para codificar; um pouco de margem transparente quase não pesa.

Confira também as dimensões. Um arquivo com 512×510 por causa de uma proporção irregular falha tanto quanto um grande demais, e é por isso que o comando abaixo adiciona margem até exatamente 512×512.

Confirme também que o pacote é consistente: uma figurinha estática em um pacote animado, ou menos de três figurinhas, impede que ele seja adicionado mesmo que todos os arquivos estejam dentro do tamanho.

Como converter um vídeo com fundo transparente em WebP animado?

O encoder libwebp_anim do ffmpeg gera WebP animado com alfa. Este comando foi executado no ffmpeg 7.1.1 com um WebM transparente de 1080×1080; o resultado foi um WebP animado de 512×512 com alfa e loop infinito, confirmado com webpinfo:

ffmpeg -c:v libvpx-vp9 -i character.webm -vf "fps=15,scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:-1:-1:color=0x00000000" -c:v libwebp_anim -lossless 0 -quality 60 -loop 0 -an sticker.webp
  • -c:v libvpx-vp9 antes de -i faz o ffmpeg ler o canal alfa do WebM; o decodificador padrão o descarta.
  • pad=512:512:-1:-1:color=0x00000000 centraliza o frame em uma tela de 512×512 totalmente transparente.
  • -lossless 0 -quality 60 usa o modo com perdas. A documentação do FFmpeg diz que "o alfa é suportado em qualquer um dos modos"; a qualidade vai de 0 a 100 (padrão 75).
  • -loop 0 repete para sempre. O padrão do libwebp_anim é 1, então, se você omitir essa opção, a figurinha toca uma vez só.

Se preferir as ferramentas do próprio libwebp, o img2webp cria um WebP animado a partir de uma sequência de PNG. Por padrão ele usa loop infinito e modo sem perdas; adicione -lossy -q 60 e defina a duração de cada frame em milissegundos com -d.

A partir de um GIF, remova o -c:v libvpx-vp9 do início. O resultado vai manter as bordas duras de um bit do GIF.

Por que minha figurinha para no primeiro frame?

É assim que o WhatsApp reproduz figurinhas animadas. O README diz: "o primeiro frame deve dizer tudo: o WhatsApp encerra a animação no primeiro frame depois do loop". Quando a reprodução para, as pessoas veem o frame um.

Por isso, o primeiro frame precisa ser uma pose completa e legível. Erros comuns:

  • Um loop que começa no meio de uma piscada, então a figurinha em repouso fica de olhos fechados.
  • Uma animação de entrada que começa em um frame vazio ou parcialmente desenhado.
  • Uma reação que começa na antecipação (achatada) em vez de na pose principal.

Resolva começando o clipe na pose neutra ou no frame mais expressivo da reação. No ffmpeg, -ss antes da entrada define o tempo inicial. Para um loop perfeito, o último frame deve voltar com fluidez para essa primeira pose.

Dez estados em loop de um personagem, cada um selecionado por um número de mood de 0 a 9
Os dez estados em loop em um arquivo Rive do Charmotion, selecionados com o input numérico mood.

Quantas figurinhas um pacote precisa ter, e posso misturar estáticas e animadas?

Um pacote precisa de no mínimo 3 e no máximo 30 figurinhas, e "os pacotes devem conter figurinhas estáticas ou animadas, nunca uma mistura das duas". Se você quiser uma versão parada do seu personagem, crie um pacote estático separado com arquivos WebP de 512×512 e até 100 KB.

Um pacote animado prático para um mascote tem de 8 a 15 figurinhas, cada uma para um momento comum de conversa: oi, obrigado, sim, não, rindo, pensando, comemorando, com sono, desculpa. Dê a cada uma uma silhueta diferente para que sejam fáceis de distinguir na bandeja de figurinhas, onde aparecem pequenas.

Mantenha o pacote inteiro consistente: mesma escala do personagem dentro do frame de 512 px, mesma margem, mesma taxa de quadros. Escala desigual é a primeira coisa que os usuários notam quando as figurinhas ficam lado a lado no seletor.

O que é o ícone de bandeja e qual é o tamanho dele?

O ícone de bandeja é a imagem pequena que representa seu pacote no seletor de figurinhas do WhatsApp. O README diz que "esta imagem deve ser estática e ter 96 x 96 pixels", com tamanho máximo de arquivo de 50 KB. Nos apps de exemplo, ela é um PNG.

Use um frame da sua melhor figurinha, normalmente o rosto ou o corpo inteiro do personagem na pose neutra, redimensionado para 96×96 com transparência:

ffmpeg -c:v libvpx-vp9 -i character.webm -frames:v 1 -vf "scale=96:96" tray.png

Mantenha simples: em 96 px, um contorno claro importa mais que os detalhes. Confira o tamanho do arquivo depois com ls -l tray.png; um PNG de 96×96 com um único personagem normalmente fica bem abaixo do limite de 50 KB, mas um frame com ruído ou textura pode surpreender.

O ícone precisa ser estático mesmo em um pacote animado. Use o mesmo frame que você escolheu como primeiro frame da figurinha principal, para que o ícone de bandeja e a figurinha em repouso combinem.

Como começar a partir de uma animação de personagem do Charmotion?

O Charmotion gera 17 animações a partir de um personagem, mascote ou logo enviado, como arquivo .riv em poucos minutos. WebM transparente (VP9 com alfa) e MOV (HEVC com alfa) em 1080×1080, MP4 e um GIF de 480 px são exportados sob demanda, em cerca de um minuto. Ele não gera pacotes do WhatsApp; converta cada WebM transparente (planos pagos, a partir de US$ 20/mês) com o comando acima. Os humores em loop e as reações únicas dão a você mais que o mínimo de 3 figurinhas com um único conjunto.

Antes de converter, confira o primeiro frame de cada clipe, já que é ele que o WhatsApp deixa na tela. Se um clipe começa no meio do movimento, mova o início para a pose neutra com -ss. A fonte de 1080×1080 reduz sem problemas para 512×512, e os clipes são curtos o bastante para ficar bem dentro do limite de 10 segundos do WhatsApp.

Como criar um pacote de figurinhas animadas do WhatsApp a partir de vídeo com fundo transparente

  1. Escolha de 3 a 30 clipes. Escolha reações diferentes; mantenha cada uma com poucos segundos e no máximo 10.
  2. Defina o primeiro frame. Comece cada clipe em uma pose completa e legível, porque o WhatsApp para no primeiro frame.
  3. Converta para WebP animado. Rode o ffmpeg com -c:v libvpx-vp9 antes de -i, redimensione e complete com margem (pad) até 512×512 e depois use -c:v libwebp_anim -lossless 0 -quality 60 -loop 0.
  4. Confira o tamanho. Confira se cada arquivo tem 500 KB ou menos; se não tiver, reduza o fps ou a qualidade.
  5. Crie o ícone da bandeja. Exporte um PNG estático de 96×96 com 50 KB ou menos.
  6. Monte o pacote. Adicione os arquivos a um app de figurinhas baseado no exemplo oficial do WhatsApp e teste a adição em um dispositivo.

Perguntas frequentes

Posso usar um GIF como figurinha animada no WhatsApp?

Não diretamente. Os pacotes de figurinhas do WhatsApp usam arquivos WebP, então converta o GIF para WebP animado com exatamente 512×512 e 500 KB ou menos. Espere bordas serrilhadas, porque a transparência do GIF é só ligada ou desligada em cada pixel. Um WebM com fundo transparente ou outro vídeo com canal alfa gera contornos mais suaves.

Qual taxa de frames uma figurinha do WhatsApp deve usar?

O README do WhatsApp não define limite de taxa de frames, apenas uma duração mínima de 8 ms por frame. Na prática, 12 a 15 fps mantêm o movimento do personagem suave e deixam folga abaixo do limite de 500 KB. Taxas maiores costumam só aumentar o tamanho do arquivo, sem deixar uma figurinha pequena visivelmente melhor.

Por que minha figurinha animada não fica em loop?

Provavelmente o WebP foi gravado com contagem de loop igual a 1. O encoder libwebp_anim do ffmpeg usa -loop 1 por padrão, o que toca uma vez. Codifique de novo com -loop 0 para um loop infinito. Lembre que o WhatsApp ainda termina no primeiro frame quando a reprodução para.

O limite de 500 KB é o mesmo para figurinhas estáticas?

Não. Figurinhas estáticas têm um limite mais rígido, de 100 KB cada, enquanto as animadas podem ter até 500 KB. Ambas precisam ter exatamente 512×512 pixels, e um pacote só pode conter um dos dois tipos, nunca uma mistura de figurinhas estáticas e animadas.

Respostas rápidas deste guia

Fontes

Guias relacionados