# RoguePixel — Animações de bosses e minibosses

Entrega para aprovação visual, produzida com a skill `imagegen` e a geração nativa a partir dos seis sprites finais aprovados. O FX-9999 usa a revisão com inscrição em duas linhas `FX-` / `9999`. Os sprites em `final/` permanecem preservados.

## Avaliação

[Visualizador interativo](boss_animation_preview.html) · [Prancha de ataques](../assets/previews/boss_animation_board_attacks_3x.gif) · [Prancha de especiais](../assets/previews/boss_animation_board_specials_3x.gif) · [Prancha de idle](../assets/previews/boss_animation_board_idle_3x.gif)

O visualizador abre localmente sem servidor. Permite selecionar animação por personagem e direção nas locomoções, trocar fundo, ajustar zoom/velocidade, pausar e avançar um frame. Ataques, especiais, transições, hit e death param no último frame. Use reiniciar para revê-los. As pranchas reiniciam essas sequências somente para demonstração; os GIFs individuais e os metadados preservam a reprodução sem loop.

## Inventário

44 animações concluídas, distribuídas em 65 sequências direcionais e 520 frames PNG individuais. Todas as sequências têm spritesheet, ampliação 4×, GIF e metadados. Não há frames duplicados dentro de uma sequência.

[Inventário exportado](../assets/previews/boss_animation_inventory.json) · [Validação de exportação](../assets/previews/boss_animation_validation.json) · [Status das 44 animações](../assets/previews/boss_animation_inventory_status.json) · [Manifesto das 65 sequências](../assets/previews/boss_animation_manifest.json)

| Personagem | Animação | Frames por direção | Direções | FPS | Loop | Pasta |
|---|---|---:|---|---:|:---:|---|
| Impressora Endemoniada | `idle` | 6 | frontal | 6 | Sim | [printer_demon/idle](../assets/bosses/printer_demon/animations/idle/) |
| Impressora Endemoniada | `attack_paper` | 8 | frontal | 12 | Não | [printer_demon/attack_paper](../assets/bosses/printer_demon/animations/attack_paper/) |
| Impressora Endemoniada | `attack_cartridge` | 8 | frontal | 11 | Não | [printer_demon/attack_cartridge](../assets/bosses/printer_demon/animations/attack_cartridge/) |
| Impressora Endemoniada | `attack_jam` | 8 | frontal | 11 | Não | [printer_demon/attack_jam](../assets/bosses/printer_demon/animations/attack_jam/) |
| Impressora Endemoniada | `special_calibration` | 10 | frontal | 12 | Não | [printer_demon/special_calibration](../assets/bosses/printer_demon/animations/special_calibration/) |
| Impressora Endemoniada | `phase_transition` | 12 | frontal | 10 | Não | [printer_demon/phase_transition](../assets/bosses/printer_demon/animations/phase_transition/) |
| Impressora Endemoniada | `hit` | 4 | frontal | 14 | Não | [printer_demon/hit](../assets/bosses/printer_demon/animations/hit/) |
| Impressora Endemoniada | `death` | 10 | frontal | 10 | Não | [printer_demon/death](../assets/bosses/printer_demon/animations/death/) |
| Bidu Antivírus | `idle` | 6 | frontal | 6 | Sim | [bidu_antivirus/idle](../assets/bosses/bidu_antivirus/animations/idle/) |
| Bidu Antivírus | `attack_scan` | 8 | frontal | 12 | Não | [bidu_antivirus/attack_scan](../assets/bosses/bidu_antivirus/animations/attack_scan/) |
| Bidu Antivírus | `attack_popup` | 8 | frontal | 12 | Não | [bidu_antivirus/attack_popup](../assets/bosses/bidu_antivirus/animations/attack_popup/) |
| Bidu Antivírus | `attack_quarantine` | 8 | frontal | 11 | Não | [bidu_antivirus/attack_quarantine](../assets/bosses/bidu_antivirus/animations/attack_quarantine/) |
| Bidu Antivírus | `special_protection` | 10 | frontal | 11 | Não | [bidu_antivirus/special_protection](../assets/bosses/bidu_antivirus/animations/special_protection/) |
| Bidu Antivírus | `phase_transition` | 12 | frontal | 10 | Não | [bidu_antivirus/phase_transition](../assets/bosses/bidu_antivirus/animations/phase_transition/) |
| Bidu Antivírus | `hit` | 4 | frontal | 14 | Não | [bidu_antivirus/hit](../assets/bosses/bidu_antivirus/animations/hit/) |
| Bidu Antivírus | `death` | 10 | frontal | 10 | Não | [bidu_antivirus/death](../assets/bosses/bidu_antivirus/animations/death/) |
| Chat PGT | `idle` | 6 | frontal | 6 | Sim | [chat_pgt/idle](../assets/bosses/chat_pgt/animations/idle/) |
| Chat PGT | `attack_tokens` | 8 | frontal | 13 | Não | [chat_pgt/attack_tokens](../assets/bosses/chat_pgt/animations/attack_tokens/) |
| Chat PGT | `attack_hallucination` | 8 | frontal | 12 | Não | [chat_pgt/attack_hallucination](../assets/bosses/chat_pgt/animations/attack_hallucination/) |
| Chat PGT | `attack_context` | 8 | frontal | 12 | Não | [chat_pgt/attack_context](../assets/bosses/chat_pgt/animations/attack_context/) |
| Chat PGT | `special_reasoning` | 10 | frontal | 12 | Não | [chat_pgt/special_reasoning](../assets/bosses/chat_pgt/animations/special_reasoning/) |
| Chat PGT | `phase_transition` | 12 | frontal | 10 | Não | [chat_pgt/phase_transition](../assets/bosses/chat_pgt/animations/phase_transition/) |
| Chat PGT | `hit` | 4 | frontal | 14 | Não | [chat_pgt/hit](../assets/bosses/chat_pgt/animations/hit/) |
| Chat PGT | `death` | 10 | frontal | 10 | Não | [chat_pgt/death](../assets/bosses/chat_pgt/animations/death/) |
| Tela Azul da Morte | `idle` | 6 | frontal | 6 | Sim | [blue_screen/idle](../assets/minibosses/blue_screen/animations/idle/) |
| Tela Azul da Morte | `move` | 8 | 8 | 9 | Sim | [blue_screen/move](../assets/minibosses/blue_screen/animations/move/) |
| Tela Azul da Morte | `attack` | 8 | frontal | 12 | Não | [blue_screen/attack](../assets/minibosses/blue_screen/animations/attack/) |
| Tela Azul da Morte | `special_freeze` | 10 | frontal | 10 | Não | [blue_screen/special_freeze](../assets/minibosses/blue_screen/animations/special_freeze/) |
| Tela Azul da Morte | `hit` | 4 | frontal | 14 | Não | [blue_screen/hit](../assets/minibosses/blue_screen/animations/hit/) |
| Tela Azul da Morte | `death` | 10 | frontal | 10 | Não | [blue_screen/death](../assets/minibosses/blue_screen/animations/death/) |
| Memória RÃ | `idle` | 6 | frontal | 6 | Sim | [memoria_ra/idle](../assets/minibosses/memoria_ra/animations/idle/) |
| Memória RÃ | `walk` | 8 | 8 | 10 | Sim | [memoria_ra/walk](../assets/minibosses/memoria_ra/animations/walk/) |
| Memória RÃ | `attack_jump` | 8 | frontal | 12 | Não | [memoria_ra/attack_jump](../assets/minibosses/memoria_ra/animations/attack_jump/) |
| Memória RÃ | `attack_memory` | 8 | frontal | 12 | Não | [memoria_ra/attack_memory](../assets/minibosses/memoria_ra/animations/attack_memory/) |
| Memória RÃ | `special_oom` | 10 | frontal | 11 | Não | [memoria_ra/special_oom](../assets/minibosses/memoria_ra/animations/special_oom/) |
| Memória RÃ | `hit` | 4 | frontal | 14 | Não | [memoria_ra/hit](../assets/minibosses/memoria_ra/animations/hit/) |
| Memória RÃ | `death` | 10 | frontal | 10 | Não | [memoria_ra/death](../assets/minibosses/memoria_ra/animations/death/) |
| FX-9999 — Fornalha de Silício | `idle` | 6 | frontal | 6 | Sim | [fx_9999/idle](../assets/minibosses/fx_9999/animations/idle/) |
| FX-9999 — Fornalha de Silício | `move` | 8 | 8 | 6 | Sim | [fx_9999/move](../assets/minibosses/fx_9999/animations/move/) |
| FX-9999 — Fornalha de Silício | `attack_heat` | 8 | frontal | 12 | Não | [fx_9999/attack_heat](../assets/minibosses/fx_9999/animations/attack_heat/) |
| FX-9999 — Fornalha de Silício | `attack_overclock` | 8 | frontal | 13 | Não | [fx_9999/attack_overclock](../assets/minibosses/fx_9999/animations/attack_overclock/) |
| FX-9999 — Fornalha de Silício | `special_meltdown` | 10 | frontal | 11 | Não | [fx_9999/special_meltdown](../assets/minibosses/fx_9999/animations/special_meltdown/) |
| FX-9999 — Fornalha de Silício | `hit` | 4 | frontal | 14 | Não | [fx_9999/hit](../assets/minibosses/fx_9999/animations/hit/) |
| FX-9999 — Fornalha de Silício | `death` | 10 | frontal | 10 | Não | [fx_9999/death](../assets/minibosses/fx_9999/animations/death/) |

## Direções e organização

Os três bosses têm animações frontais na orientação do sprite aprovado. São encontros estacionários nesta etapa; não foi inventada locomoção nem uma necessidade de oito direções para eles. Os ataques partem dessa orientação frontal.

Os três minibosses têm oito direções na locomoção: `s`, `sw`, `w`, `nw`, `n`, `ne`, `e`, `se`. `move` foi usado na Tela Azul e no FX; `walk` foi usado na Memória RÃ. Idle, ataques, especiais, hit e death são frontais nesta etapa. Vistas de costas ocultam naturalmente a face, a tela frontal ou o texto do processador, mostrando a carcaça, conectores, ventoinha e placa reversa correspondentes.

```text
assets/bosses/<id>/animations/<animacao>/
assets/minibosses/<id>/animations/<animacao>/
  spritesheet.png
  spritesheet_4x.png
  preview_4x.gif
  metadata.json
  front/                        # animações frontais
    frames/frame_00.png ...
    spritesheet.png
    spritesheet_4x.png
    preview_4x.gif
    metadata.json
    source_ai.png
    source_info.json
  s/, sw/, w/, nw/, n/, ne/, e/, se/  # somente locomoção
    frames/frame_00.png ...
    spritesheet.png
    spritesheet_4x.png
    preview_4x.gif
    metadata.json
    source_ai.png
    source_info.json
```

Nas folhas de cada sequência, os frames são lidos da esquerda para a direita e depois na linha seguinte. Especiais e mortes usam dez frames em uma grade 4×3; as duas células finais não são frames. Transições usam doze frames em 4×3. Na spritesheet consolidada de locomoção, cada linha é uma direção na ordem acima e as oito colunas avançam no tempo. O GIF na raiz da locomoção mostra a direção `s`; os oito GIFs separados e o visualizador permitem conferir todas as direções.

`metadata.json` na raiz da animação lista resoluções, frames por direção, direções, total, FPS, loop e caminhos. Os metadados de cada sequência incluem os hashes dos frames, limites visuais e a transformação uniforme usada na exportação. `animations/_references/` contém apenas referências de orientação preparadas para a geração; não entra na contagem de frames entregues.

## Escala e ponto de referência

Os corpos conservam a escala dos sprites finais: bosses com extensão visual de aproximadamente 112 pixels e minibosses de aproximadamente 80 pixels. A tela de animação acrescenta 16 pixels transparentes de cada lado: bosses usam frames de **160×160**, minibosses **128×128**. A margem acomoda o salto, as garras, etiquetas, interfaces e gestos sem reduzir o personagem para caber em um ataque. O aumento do canvas não altera o PNG aprovado nem define escala de engine.

Cada sequência começa com pose neutra para registrar tamanho e ponto de apoio. Uma única transformação é aplicada à sequência inteira; não há recorte/recentralização independente que cancele saltos ou faça o corpo pulsar artificialmente. O ponto do Chat PGT é o centro de flutuação; nos demais, a referência é o apoio inferior. As coordenadas exportadas constam nos metadados. A câmera permanece elevada, levemente inclinada.

## Escolhas artísticas

- **Impressora:** boca, roletes, bobina, LEDs, etiquetas articuladas e auréola quebrada conservam a leitura de impressora térmica. O ataque de cartucho usa o mecanismo de fita térmica/cartucho, sem converter o boss em impressora A4.
- **Bidu:** scanner, garra de quarentena, três pop-ups azuis, escudo vermelho/azul e botão verde mantêm a paródia de antivírus invasivo. Proteção e transição articulam componentes e interfaces existentes.
- **Chat PGT:** tokens, ecos do próprio núcleo, reorganização de contexto, bandas neurais recursivas e abertura da forma final concentram os movimentos mais elaborados. Os ecos são elementos da mesma animação, sem gerar novos personagens. A paleta continua verde/branca.
- **Tela Azul:** cabos articulados, tela em falha, rachaduras e fragmentos de erro. O especial sugere congelamento com formas compactas junto ao personagem, sem mapa ou área de dano.
- **Memória RÃ:** salto com compressão e extensão das patas; a placa DIMM e os quatro chips continuam rígidos. O especial incha partes anfíbias sob a placa e libera blocos de dados, sem redimensionar a rã inteira.
- **FX-9999:** fases reais da ventoinha, aletas, heatpipes, juntas pesadas e calor concentrado. A inscrição corrigida é referência obrigatória nas vistas frontais.

As manifestações visuais fazem parte dos frames do personagem. Não há sistema de projéteis, colisão, efeito de dano implementado, gameplay, IA, mapas ou integração Godot.

## Produção e verificações

As poses foram desenhadas nativamente por IA usando os PNGs aprovados, suas cópias com margem e os idles gerados. As referências direcionais guiam a carcaça e a posição dos equipamentos na locomoção. A exportação separa as células, registra o tamanho pela primeira pose, aplica nearest-neighbor, fixa transparência em alpha 0/255 e remapeia cores para a paleta exata do sprite aprovado. O código de exportação não inventa poses, membros ou personagens.

Cada frame deve ser distinto dentro de sua sequência. A verificação rejeita duplicatas, frames vazios e conteúdo nas bordas externas; confere dimensões, paleta, alpha, igualdade RGBA entre frames/folhas e ampliação 4× exata. A contagem e os erros reais ficam nos relatórios vinculados acima. A revisão visual usa as folhas ordenadas e os GIFs para conferir membros, acessórios, poses, estabilidade e progressão temporal. A validação técnica não substitui a aprovação artística.

[Prompts usados e fontes nativas](../assets/previews/boss_animation_prompts.json) · [Plano dos prompts](../assets/previews/boss_animation_generation.json) · [Integridade dos sprites aprovados](../assets/previews/boss_animation_reference_integrity.json).

Esta entrega aguarda avaliação visual do usuário. Nenhum sprite final aprovado é substituído pelas animações.

### Resultado da revisão

As 24 sequências de locomoção foram conferidas nas oito vistas: frontal, diagonais, perfis e traseira, com articulação real de patas, braços ou juntas. Os bosses permanecem frontais. As correções selecionadas de transparência e inscrição estão identificadas pelo caminho `source_ai_v2.png` ou `source_ai_v3.png` nos metadados; as fontes anteriores são mantidas apenas como histórico.

Os relatórios registram 65/65 sequências e 520 frames verificados, 44/44 animações consolidadas e seis referências finais com hashes preservados. A [auditoria das fontes](../assets/previews/boss_animation_source_alpha_audit.json) também confere a cópia integral dos PNGs nativos e fundos opacos nos cantos das células. A exportação verifica alpha binário nos PNGs finais, dimensões uniformes, ordem, ausência de duplicatas e ampliações nearest-neighbor.

Pequenas inscrições são detalhe visual: sua leitura varia conforme a orientação e o zoom, especialmente no FX-9999 em perfil. Não use esses pixels como texto de interface; a identidade principal continua sendo o processador, dissipadores, ventoinha e superaquecimento. A entrega permanece sujeita à aprovação artística, além dos checks técnicos.

