Produção de Arte para Jogos
Produza ativos 2D prontos para publicação: sprites de personagens, cenários, UI, itens e ícones. Não são placeholders — mas os limites devem ser claros (veja ao final).
Passo 0: Verificar Capacidade de Geração de Imagens
Verifique em ordem, sem suposições:
- Primeiro, verifique se há ferramentas nativas de geração ou edição de imagem disponíveis na sessão atual; chame-as diretamente, se disponíveis. Não apenas escreva prompts.
- A skill de geração de imagens do Codex usa por padrão a ferramenta interna
image_gen, sem necessidade de chave de API. Se o usuário optar explicitamente pela rota da API, o adaptador de plugin abaixo pode ser usado; essa rota requer configuração de chave e permissão de modelo separadamente. - Se nenhuma estiver disponível, informe claramente: Esta rota atualmente não produz arte utilizável — não use scripts para desenhar placeholders.
OpenAI Images API (Opcional)
Use somente se o usuário optar explicitamente pela API: é necessário que OPENAI_API_KEY esteja definida na máquina do usuário, que a organização tenha acesso ao modelo de imagem e que solicitações reais possam gerar custos. Faça uma pré-visualização com --dry-run antes. O script exige --backup-dir para salvar uma cópia das imagens retornadas pela API antes de copiá-las para o diretório de trabalho, sem sobrescrever arquivos existentes.
python scripts/gen_ai_image.py --prompt "single centered hand-painted blue space-helmet pickup icon, transparent background" --format png --background transparent --out assets/art/items/helmet.png --backup-dir doc/temp
python scripts/gen_ai_image.py --prompt "A tiny green robot waves, then turns and walks away; clean looping pixel-art animation" --format gif --frames 8 --frame-duration-ms 100 --out assets/animation/robot.gif --backup-dir doc/temp
O local de salvamento padrão do image_gen interno é $CODEX_HOME/generated_images/. Após gerar a imagem para o projeto atual, salve imediatamente uma cópia da imagem original no diretório de backup especificado pelas regras do projeto (neste projeto, doc/temp/), antes de processar (cortar, redimensionar, remover fundo, etc.). O ativo final também deve permanecer no diretório de runtime de ativos. Não presuma que a ferramenta interna suporta especificar caminhos de arquivo diretamente.
--format gif usa animações curtas de 2 a 16 quadros geradas pelo modelo, que não equivalem a uma sprite sheet otimizada para jogos; a elegibilidade para pré-visualização GIF, limites de tamanho e modelos suportados seguem a documentação oficial da API de Imagens. Para controle quadro a quadro, gere uma sprite sheet estática e use game-animation-production. A ferramenta interna de geração de imagem da sessão Codex pode gerar ou editar imagens diretamente; ela é separada da configuração de chave de API deste script.
Passo 1: Criar a Bíblia de Estilo (Passo Decisivo)
Para conjuntos de ativos que precisam de estilo unificado, use uma imagem existente ou uma arte conceitual principal como âncora visual; para edições únicas, use o ativo existente, sem forçar a criação de uma nova arte conceitual.
Saída: docs/art-style-bible.md
## Bloco de Âncora de Estilo (deve ser colado em cada geração)
<uma frase: meio + estilo de arte + iluminação + paleta de cores + características de linha/material>
Exemplo: 2D cartoon desenhado à mão, contorno grosso, luz suave do topo, paleta roxa e dourada (#7C3AED / #FBBF24),
cor plana com textura de ruído leve, fundo sem gradiente
## Paleta de Cores (HEX)
Cor principal / Cor secundária / Cor de destaque / Sombra / Realce
## Itens Proibidos
Sem textura de foto realista / Sem neon cyberpunk / Sem aparência 3D renderizada / Sem marcas d'água de texto
O bloco de âncora de estilo deve ser texto fixo, copiado a cada imagem. Esta é a principal ferramenta para garantir que 40 imagens pareçam pertencer ao mesmo jogo.
Passo 2: Gerar Ativos Individualmente
Estrutura do prompt (não altere a ordem):
[Bloco de Âncora de Estilo] + [Sujeito e Pose] + [Tamanho/Composição: frente/centralizado/espaço vazio] + [Fundo: branco puro para facilitar remoção] + [Requisitos Técnicos: sem texto, sem sombra projetada]
- Para fundo transparente, peça explicitamente que a ferramenta de geração produza fundo transparente; use fundo colorido e remoção de cor apenas quando o ativo for adequado.
- Gere variantes conforme necessidade e orçamento; não force uma quantidade fixa.
- Mesmo personagem: use a imagem já selecionada como referência (se o host suportar image-to-image) e reutilize o mesmo texto de âncora.
- Para geração, corte de quadros e validação de sprite sheets e animações, consulte
game-animation-production; verifique a consistência quadro a quadro e retoque conforme necessário. - Respeite as regras de backup de imagens do projeto: faça backup da imagem original, rascunhos e todas as imagens processadas antes de processá-las.
Passo 3: Pós-processamento para Especificações
python scripts/process_art.py \
--in raw/ui_btn_raw.png \
--out assets/art/ui/ui_btn_primary.png \
--size 256x64 --mode fit \
--key-color "#FFFFFF" --key-tolerance 14 \
--nine-slice 24 --check-nine \
--report assets/art/ui/ui_btn_primary.report.json
Decisões críticas:
--mode fit: redimensiona proporcionalmente e centraliza com preenchimento transparente; não use stretch, que distorce.--check-nine: valida se a borda pode ser esticada com nine-slice; se não, redesenhe, não force.- Se
transparent_rationo relatório estiver próximo de 0, a remoção de fundo não funcionou.
Passo 4: Atlas e Compressão
python scripts/pack_atlas.py --input assets/art/ui --out-sheet assets/art/ui_atlas.png \
--out-data assets/art/ui_atlas.json --max-size 2048 --padding 2
Agrupe os atlases por "mesma tela, mesmo atlas", não por tipo de ativo. Cada atlas não deve exceder 2048×2048; para dispositivos de baixo desempenho, 1024×1024 é mais seguro.
Passo 5: Registro e Inspeção Final
Cada ativo deve ser registrado completamente em assets/manifest.json:
{
"path": "assets/art/ui/ui_btn_primary.png",
"kind": "ui",
"tier": "final",
"size": [256, 64],
"nine_slice": 24,
"source": "ai",
"ai_generated": true,
"model": "gpt-image",
"license": "AI-generated, commercially cleared under <service> terms",
"commercial_ok": true,
"note": "Botão principal, três estados"
}
python scripts/validate_assets.py --manifest assets/manifest.json --final --strict-license
A inspeção final bloqueará: ativos ainda como draft, ausência de licença, sprites/ui sem canal alpha, totalmente opacos (sem remoção de fundo), tamanhos incorretos.
Licenciamento e Auditoria (Não Pular)
- Os termos de uso comercial de ativos gerados por IA variam conforme o serviço; verifique cada serviço e registre a fonte no campo
license. - Algumas plataformas (especialmente para revisão de jogos casuais na China) exigem declaração da fonte do ativo;
ai_generated: trueé a flag para auditoria — não a omita. - Use apenas fontes abertas OFL (Noto / série Source Han); fontes comerciais exigem licença adquirida pelo usuário. Não baixe fontes de origem desconhecida.
Limitações (Devem Ser Comunicadas Honestamente)
| Requisito | Conclusão |
|---|---|
| Sprites 2D / Cenários / UI / Ícones / Itens | Possível, requer seleção e retoque manual |
| Animação quadro a quadro do mesmo personagem | Possível com sprite sheet IA ou sequência de quadros, requer verificação de consistência e retoque conforme necessário |
| Modelos 3D / Rigging | Não é possível neste pipeline |
| Consistência estrita em nível de pixel (ex.: alinhamento perfeito de grade pixel art) | Requer retoque manual pixel a pixel; imagens de IA frequentemente têm deslocamento de meio pixel |
| Fontes comerciais | Fornecer apenas alternativas de código aberto |