Restaure quadros aparados do Aseprite a partir de uma folha de sprites e JSON

Uma folha empacotada do Aseprite economiza espaço de textura ao recortar os pixels vazios ao redor de cada pose. Se você simplesmente extrair esses retângulos, o personagem ficará saltando de posição, porque cada recorte tem uma origem diferente. O JSON que acompanha a folha é o mapa que faltava para voltar à tela de imagem original.

Exporte dois arquivos da mesma sessão do Aseprite

  1. Abra a animação no Aseprite e use File → Export Sprite Sheet. Exporte uma folha PNG e ative a saída de dados JSON. O extrator do ImageMint aceita tanto o formato hash quanto o formato array de JSON.
  2. Guarde a folha e o JSON juntos. Um JSON de uma exportação anterior pode apontar para retângulos que não correspondem mais à folha, mesmo que os dois arquivos tenham nomes parecidos.
  3. Se ativar o corte do espaço vazio ou o layout empacotado, guarde o JSON. Um recortador simples de células iguais não consegue deduzir a posição original de quadros recortados de formas diferentes apenas pela folha.
  4. Carregue a folha exportada e o JSON no extrator. Visualize várias poses antes de baixar o ZIP; não confie apenas no primeiro quadro.

Três retângulos, três funções diferentes

Considere um personagem desenhado em uma tela de 64 × 64. Uma pose aparada ocupa um retângulo de 22 × 38, localizado a 19 pixels da esquerda e 20 do topo da tela original. O empacotamento pode colocar esse recorte em x=128, y=0 na folha exportada. O JSON precisa das três informações:

Campo JSONExemploO que significa
framex=128, y=0, w=22, h=38De onde recortar os pixels da folha exportada.
spriteSourceSizex=19, y=20, w=22, h=38Onde posicionar esse recorte na tela do quadro original.
sourceSizew=64, h=64O tamanho completo da tela de imagem a restaurar.

O extrator cria um quadro transparente de 64 × 64, copia o recorte de 22 × 38 da folha e o desenha em (19, 20). Repetir isso para cada pose preserva a linha de base do personagem. As funções desses campos correspondem a Documentação do Aseprite para exportação de folha/JSON; as posições exatas vêm do seu próprio JSON.

Um aventureiro de capa verde com recorte justo ao lado de uma tela com preenchimento que mostra os deslocamentos originais superior e esquerdo.
Aparar remove o espaço vazio da tela de imagem, não a necessidade de informações de posicionamento. Restaure o recorte com seu deslocamento original. Esta ilustração conceitual não está em escala; a restauração não redimensiona os pixels do personagem. Abrir imagem em tamanho original

O que examinar no ZIP baixado

Cada quadro restaurado é um PNG numerado. manifest.json lista os nomes dos quadros de origem, durações em milissegundos, dimensões e tags de quadros. Abra uma pose parada e a pose de ataque mais extrema lado a lado: as telas de imagem devem ser iguais, e os pés ou a referência escolhida devem ficar estáveis. Se a reprodução ainda saltar, os desenhos podem ter alinhamento inconsistente no projeto original do Aseprite; restaurar deslocamentos de recorte não corrige esse problema da arte.

Limites: o extrator não lê arquivos nativos .aseprite arquivos ou quadros empacotados com rotação. Ele aceita até 100 quadros, 1024 pixels por lado de quadro restaurado e 20 milhões de pixels de quadros no total. Se aparecer um erro relacionado à rotação, exporte sem rotação e tente novamente.

Se você só precisa de células igualmente espaçadas, o Recortador de folhas de sprites é mais simples. Use a restauração por JSON quando o empacotamento ou o corte do espaço vazio tiver desfeito a grade uniforme.

Diagnostique um par correspondente que ainda parece errado

SintomaPrimeira verificaçãoCorreção segura
meta.size não correspondeA folha foi redimensionada após a exportação?Exporte novamente os dois arquivos a partir do mesmo projeto.
Uma pose incorreta aparece em um quadroO JSON veio de outro processo de empacotamento?Substitua o par, mesmo que as dimensões coincidam.
A tela está correta, mas o personagem se deslocaCompare as poses originais do Aseprite.Corrija o alinhamento da origem; não apague os deslocamentos do corte.
Erro de rotaçãoA rotação no empacotamento estava ativada?Exporte quadros sem rotação.

Um nome de arquivo correspondente não é uma validação, e dimensões iguais, por si só, não provam que as coordenadas de recorte descrevem a imagem enviada. Dois atlas podem ter o mesmo tamanho e organizar as poses de formas diferentes. Examine uma pose distinta, como um ataque com a arma estendida, em vez de avaliar apenas um quadro de repouso quase idêntico.

Leve os tempos e as tags para o próximo aplicativo

Um quadro com duração de 200 ms deve permanecer por mais tempo que um de 80 ms. Os PNGs restaurados contêm pixels, enquanto manifest.json contém durationMs e as tags dos quadros. Guarde ambos. Se testar os PNGs em um reprodutor com FPS uniforme, é esperado que o ritmo seja diferente, mesmo quando o posicionamento está perfeito.

As tags identificam intervalos como parado e caminhada, mas manter uma tag não é o mesmo que configurar um estado de animação na engine. Confira os intervalos e a direção de reprodução no aplicativo de destino. A prévia do ImageMint é útil para alinhamento; ela não é uma exportação automática do controlador de animação da sua engine.

Guarde duas versões para duas tarefas: use a folha empacotada original e o JSON para armazenamento compacto do atlas; use PNGs restaurados com a tela completa para edição, comparação de quadros e fluxos que esperam imagens do mesmo tamanho. Restaurar o preenchimento troca eficiência de textura por um alinhamento simples.

Experimente o fluxo de trabalho

Carregue a folha e o JSON correspondente para ver a prévia dos quadros alinhados e baixar PNGs em tamanho completo.

Restaurar quadros do Aseprite →