This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Assets e pipeline 3D
Convenções
| Item | Regra |
|---|---|
| Formato | .glb sem compressão Draco/Meshopt |
| Unidade | 1 = 1 m (ou ModelDef.scale nos dados quando o pacote vem em outra escala) |
| Eixos | +Y cima; frente do modelo = +Z (glTF) — o spawn orienta |
| Pivô | pés (personagens/props) · empunhadura (armas) |
| Alturas | soldado ≈ 1,8 m · contêiner 6 × 2,4 × 2,4 m · caixa 2 × 1,2 × 1,2 m · porta 4 × 3 m |
| Orçamento | personagem ≤ 2 000 tris · arma (mundo) ≤ 500 · viewmodel ≤ 1 500 · prop ≤ 300 |
| Material | 1 por modelo; textura ≤ 512² ou vertex color |
| Estilo | low-poly facetado, paleta militar |
Duas rotas
- Pacotes prontos CC0 (testes e protótipo) — não requer Blender nem geração. Ex.: Kenney Blaster Kit (armas) e Survival Kit (caixas, barricadas, props). Ajuste de escala/pivô nos dados.
- Imagem → 3D (skill
image-to-3d) — para modelos próprios a partir de referências. Backend sugerido para esta máquina (RTX 3050 6 GB): TripoSR local (a validar); modelos mais pesados exigem API hospedada.
Pós-processamento sem Blender
gltf-transform (Node, @gltf-transform/cli): inspect, weld, simplify, prune, resize.
Blender é opcional (retopologia/edição manual) — o script normalize_glb.py é só para esse caso.
Lista de modelos (M1)
| Modelo | Orçamento | Estado | Origem prevista |
|---|---|---|---|
| Soldado jogador (corpo para sombras/espelho) | 2 000 tris | — | opcional em FPS |
| Fuzileiro hostil | 2 000 tris | placeholder | pacote CC0 de personagem / image-to-3d |
| Faca, Pistola, Escopeta, Fuzil (viewmodel + mundo) | 500–1 500 | placeholder | Kenney Blaster Kit (CC0) |
| Contêiner | 300 tris | placeholder (caixa) | Survival Kit / blockout |
| Caixa de cobertura | 300 tris | placeholder (caixa) | Survival Kit (CC0) |
| Porta de spawn | 500 tris | placeholder (caixa) | blockout |
| Balcão da loja | 300 tris | placeholder (caixa) | blockout |
Licenças
Todo asset precisa de origem e licença em assets/models/MANIFEST.md. Imagens/modelos de terceiros só com direito de uso (CC0 = livre).
Pacotes baixados (CC0, Kenney) — 2026-10-11
| Pacote | Uso |
|---|---|
| Blaster Kit | armas (pistola, escopeta, fuzil) |
| Survival Kit | caixas, barris |
| Retro Urban Kit | cenário: paredes, chão, contêineres, barreiras, portão |
| Prototype Textures | texturas de blockout (6 cores × 13 padrões) |
33 modelos (≈ 5,6 mil triângulos no total) em assets/models/kenney e texturas em assets/textures/kenney/prototype.
Desde a v0.1.2-dev a Arena 01 é desenhada com esses modelos: o SVG do mapa continua definindo colisão e posição, e crates/survivors/src/scenery.rs escolhe o modelo de cada tipo de caixa — muros wall-a/wall-b, portão wall-a-garage, contêineres truck-*-cargo, caixas box-large, bancadas workbench na Armaria, chão com a textura asphalt.png e decoração (postes e paletes) por <circle class="prop">. Tabela completa em assets/models/MANIFEST.md. As Prototype Textures ficam para blockout de mapas novos.
Papéis, escalas sugeridas e lacunas (faca, soldado) em assets/models/MANIFEST.md.
Armas e personagem (conversão FBX → GLB) — 2026-10-11
| Papel | Modelo | Origem | Tris |
|---|---|---|---|
| Faca | max-weapons/knife-a.glb |
Max's Weapons Pack (crédito ao autor) | 280 |
| Pistola | max-weapons/pistol-c96.glb |
Max's Weapons Pack | 623 |
| Escopeta | max-weapons/shotgun-pump-short.glb |
Max's Weapons Pack | 978 |
| Fuzil | max-weapons/smg-ppsh.glb |
Max's Weapons Pack | 1 523 |
| Hostil | kenney/animated-characters-survivors/characterMedium.glb + anim-{idle,run,jump}.glb + skin zombieA |
Kenney (CC0) | 1 604 |
Conversor: FBX2glTF 0.9.7. Visualizador: node tools/model_viewer/server.mjs. Créditos: CREDITS.md no repositório.
O Blaster Kit fica como reserva; a faca deixou de ser lacuna.