- 0007: input layers so WASD/look never fire person-verbs; freeze while modal - 0008: cone focus + billboarded head ring; no type names in the world - 0009: doughnut action menu (LMB/Space open, click or A/D then Space, Esc/RMB cancel); emergency stays on R - 0010: keep procedural rigs, add face/hair/neck; no Mixamo this pass Linked from architecture.md, PLAN.md, TODO.md, MEMORY.md.
2.9 KiB
ADR-0010: Procedural NPC presentation
- Status: Accepted
- Date: TBD
Context
Avatars are CharacterBody3D capsules color-coded by NpcType, with a few props (camera, box, hat, sign, bag), height and brightness variation from a seed, a walk bob, and a head turn toward the guard when noticed. They work as markers. At conversation distance they do not read as people: no neck, no face direction, no shoes, no hair.
The player is supposed to judge from clothes, props, and behavior, not from a label. The HUD currently prints the internal type (Violent Threat, Trespasser) next to the name. Putting that name on the body would make the judgment for them.
A full Mixamo / GLB pipeline would also add animation imports, licenses, and a skeleton the rest of the sim does not need yet. AI textures in assets/textures/ai/ are not sized or wired for clothing.
Decision
Keep the procedural capsule rig for this pass. Do not add skinned meshes or Mixamo.
Make the body read as a person at conversation distance:
- Neck between torso and head.
- Shoes.
- Hair cap whose color comes from the visual seed.
- Two dark eye spheres so the head has a front.
- Named
Headnode (Rig/Head) as the attach point for the focus ring (ADR-0008) and the focus cone. - Collision capsule scaled to the visible height so the cone hits the body the player sees.
Keep archetype props, height / brightness variation, walk bob, and the notice head-turn.
Do not put the internal type name on the body or as a world nametag. A focused display_name under the ring is allowed. The debug overlay (F) may still print type, intent, and FSM state. The HUD target line can keep the type during the prototype; removing it from the HUD is a later readability pass, not this one.
AI clothing textures stay out unless a map is already the right size and is wired on purpose.
Consequences
Positive
- People have a face direction the ring and the "noticed the guard" cue can use.
- No new asset toolchain, licenses, or animation retargeting.
- Head is a stable node other systems can find.
- The player is not told
Violent Threatby a floating label.
Negative
- Capsule people still look like a prototype at cinematic camera distance.
- Hair and eyes are spheres; they will not survive a close-up trailer.
- A later skinned-mesh pass will replace this rig and must keep the
Headcontract.
Alternatives considered
- Skinned Mixamo / GLB characters now: Rejected. Cost and pipeline exceed this pass; the sim only needs a readable body and a head node.
- Billboard sprites: Rejected; first-person movement walks around people, and sprites fail at profile views.
- Keep colored capsules as-is: Rejected; the head ring and cone need a real head, and capsules do not read as people at two metres.
- World labels with archetype names: Rejected because they leak sim truth and skip observation.