# Resumo das animações dos personagens

Entregues **28 spritesheets, 224 sequências direcionais e 1.536 frames PNG individuais de 64×64**, com transparência. São sete animações, oito direções e 384 frames por classe.

As poses foram geradas artisticamente com **image_gen nativo**, usando os sprites base aprovados como referência de identidade e estilo. Não foram usados Aseprite MCP, PixelLab, Python, SVG, desenhos programáticos ou interpolação de poses. O código auxiliar apenas recorta, redimensiona, normaliza resíduos de alpha e empacota imagens. Não foram criados gameplay, mapas ou inimigos.

## Prévia visual

Abra [animation_preview.html](animation_preview.html) diretamente no navegador, mantendo a estrutura do projeto. A página permite comparar as quatro classes, escolher animação, direção, velocidade e fundo, pausar, reiniciar e avançar frame a frame. A ampliação 4× não usa suavização.

As folhas finais foram inspecionadas visualmente. Há pequenas variações de traço e posicionamento entre poses geradas por IA; a verificação técnica não substitui a avaliação da fluidez e da consistência artística em reprodução. As animações estão entregues para validação visual.

| Classe | Exemplo: walk / SE |
|---|---|
| Caçador de Bugs | ![Caçador de Bugs](previews/cacador-de-bugs-walk-se.gif) |
| Guardião de Firewall | ![Guardião de Firewall](previews/guardiao-de-firewall-walk-se.gif) |
| Arquiteto Neural | ![Arquiteto Neural](previews/arquiteto-neural-walk-se.gif) |
| Tecnomante | ![Tecnomante](previews/tecnomante-walk-se.gif) |

Os GIFs são prévias ampliadas. Os PNGs RGBA são os arquivos de uso.

## Frames e tempos

Os valores abaixo se aplicam às quatro classes e às oito direções. Índices dos frames começam em 00. Os FPS são sugestões editoriais registradas nos metadados.

| Animação | Frames por direção | FPS | Duração | Reprodução | Spritesheet |
|---|---:|---:|---:|---|---|
| idle | 6 | 6 | 1,00 s | Contínua | 384×512 |
| walk | 8 | 10 | 0,80 s | Contínua, no lugar | 512×512 |
| attack | 6 | 12 | 0,50 s | Uma vez | 384×512 |
| skill | 8 | 10 | 0,80 s | Uma vez | 512×512 |
| defense | 6 | 8 | 0,75 s | Uma vez | 384×512 |
| hit | 6 | 12 | 0,50 s | Uma vez | 384×512 |
| death | 8 | 8 | 1,00 s | Uma vez, termina caído | 512×512 |

Sequências sem repetição mantêm o último frame na prévia e podem ser reiniciadas pelo controle. Não há controlador de personagem ou lógica de combate.

## Direções e recorte

Cada linha da spritesheet representa uma direção fixa. As colunas representam o tempo, da esquerda para a direita.

| Linha, começando em 0 | Pasta | Direção | Leitura |
|---:|---|---|---|
| 0 | s | Sul | Frente |
| 1 | sw | Sudoeste | Diagonal frontal à esquerda |
| 2 | w | Oeste | Perfil à esquerda |
| 3 | nw | Noroeste | Diagonal de costas à esquerda |
| 4 | n | Norte | Costas |
| 5 | ne | Nordeste | Diagonal de costas à direita |
| 6 | e | Leste | Perfil à direita |
| 7 | se | Sudeste | Diagonal frontal à direita |

Recorte: x = índice do frame × 64; y = índice da linha × 64; largura = altura = 64. Não há espaçamento entre células. Todos os frames preservam o canvas de 64×64 e uma margem externa transparente de 3 pixels. O pivô de referência é (32,58), sujeito às pequenas variações das poses autorais.

## Organização

```text
assets/characters/
  <classe>/
    base_sprite/base_sprite.png
    animations/
      <animacao>/
        spritesheet.png
        metadata.json
        source_ai.png
        frames/
          s/frame_00.png ... frame_05.png ou frame_07.png
          sw/
          w/
          nw/
          n/
          ne/
          e/
          se/
```

As classes usam os nomes de pasta existentes:

- [Caçador de Bugs](../assets/characters/cacador-de-bugs/animations/)
- [Guardião de Firewall](../assets/characters/guardiao-de-firewall/animations/)
- [Arquiteto Neural](../assets/characters/arquiteto-neural/animations/)
- [Tecnomante](../assets/characters/tecnomante/animations/)

As pastas de animação são idle, walk, attack, skill, defense, hit e death. Conceitos, sprites base e demais pastas de personagens existentes foram preservados.

metadata.json registra dimensões, frames, direções, FPS, repetição, nomes, pivô e parâmetros de exportação. source_ai.png preserva a folha artística original em resolução alta para rastreabilidade. Use spritesheet.png e frames/ como exportações finais.

## Movimentos por classe

| Classe | Ataque | Habilidade | Defesa |
|---|---|---|---|
| Caçador de Bugs | Corte da adaga digital | Sobrecarga verde e arco da adaga | Guarda baixa com adaga |
| Guardião de Firewall | Disparo e recuo da pistola | Sobrecarga do escudo holográfico | Escudo interposto |
| Arquiteto Neural | Pulso da luva emissora | Comando do drone e hologramas de rede | Barreira lilás com luva e drone |
| Tecnomante | Pulso do cajado | Canalização de energia e circuitos ciano | Guarda com cajado e barreira digital |

idle usa respiração discreta; walk alterna pernas no lugar; hit inclui impacto, recuo e recuperação; death passa da postura de pé ao corpo caído. Equipamentos e efeitos estão incluídos nos frames, sem camadas independentes.

## Transparência e exportação

As folhas nativas foram solicitadas com fundo transparente. Algumas saídas continham ruído de baixa opacidade. Na exportação, pixels com alpha abaixo de 128 foram zerados, mantendo os valores restantes. Isso remove resíduos do fundo e também reduz brilhos muito fracos; os núcleos dos efeitos permanecem.

Cada célula original foi reamostrada por nearest-neighbor para 58×58 dentro do PNG RGBA de 64×64. Não houve geração de novas poses por algoritmo. As spritesheets copiam exatamente os mesmos valores RGBA dos frames individuais, sem recomposição de cores.

## Validação

A conferência completa passou:

- 28 animações, 224 sequências e 1.536 frames presentes.
- Todos os frames têm 64×64, pixels visíveis e pixels totalmente transparentes.
- Margem externa transparente de 3 pixels.
- 6 ou 8 frames distintos em cada sequência, sem cópias idênticas.
- Spritesheets nas dimensões esperadas, com igualdade RGBA exata entre cada célula e seu frame individual.
- Metadados coerentes com FPS, repetição, frames e ordem das direções.
- Fontes artísticas preservadas no próprio projeto.
- JavaScript da prévia passou pela conferência de sintaxe; reprodução no navegador não foi automatizada.

Consulte o [resultado da validação](animation_validation.json), o [relatório de exportação](animation_export_report.json), o [manifesto das fontes locais](animation_generation_manifest.json) e os [prompts completos](animation_prompts.json).

Para repetir a conferência no PowerShell, a partir da raiz do projeto:

```powershell
.\tools\validate_character_animations.ps1
```

O [exportador](../tools/export_character_animations.ps1) permite refazer os arquivos a partir das fontes já preservadas:

```powershell
.\tools\export_character_animations.ps1 -Manifest '.\docs\animation_generation_manifest.json' -RefreshExport
```

