Files
animation/docs/animations/UNWIRED.md
T
jeremy e08ad2f3e9 docs(animations): naming conventions, wiring audit, unwired catalogue + claude-desktop context brief
NAMING.md/AUDIT.md/UNWIRED.md are the conventions-doc pivot after the
mass-rename was killed; committing so the bridge repo tree is clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 16:07:41 -07:00

224 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
# Unwired Animations — GDD vs. Animation Controller Gap Analysis (2026-07-24)
Cross-references what the **GDD design calls for** against what the **production
animation controller actually wires** (`PlayerController.SetupAnimations()` +
`CharacterAnimDriver` + `ToolActionResolver` + `ThrowActionCatalog` + graph builder).
Companion to `AUDIT.md` (which covers disk-vs-wired). This doc answers: *of the
animations the design needs, which are missing from the game?*
**Method:** GDD shot-list (GDD.md + GDD_TODO + tech-tree `colonist-tasks.json`)
∩ controller trace. Every "wired" claim is code-anchored; see `AUDIT.md §7` for files.
## Gap types
- **MISSING** — GDD needs it; no clip loaded and no trigger path. Author + wire.
- **DEAD** — clip is already *loaded* in `SetupAnimations()` but nothing triggers it.
Cheap win: only needs a driver/trigger case, no new art.
- **COLLAPSED** — GDD wants N distinct animations but they all resolve to one clip
(biggest offender: 12 dance types → 1 `Dance_Loop`). Needs per-variant clips + mapping.
---
## The big picture
The production animator wires **~55 game-keys** off 9 GLB packs. Against the GDD's
design surface (~80 colonist tasks, 12+ dances, boat wayfinding, survival states,
combat reactions) there are **three structural holes**:
1. **The signature mechanic is one clip.** All 12 sim `DanceType`s and every
ceremony collapse to the single `dance` key (UAL1 `Dance_Loop`). 6 of the 12
aren't even exposed in the client UI. This is the largest gap by design weight.
2. **The colonist economy is visually collapsed.** ~80 tasks map to ~8 work clips;
whole task families (animal husbandry, water/weed/compost, carry modes,
star observation) have no distinct animation.
3. **No survival/reaction layer.** Wounded, hungry, hit-reaction, celebration —
none wired, despite the Valheim-style needs model being core to §9.
---
## 1. Dance & Ceremony — SIGNATURE MECHANIC (highest priority)
Wired: **`dance`** (UAL1 `Dance_Loop`) — one clip, played for every DanceType.
`pray` (Kevin `Reverence01_Loop`) for worship.
| Animation | GDD | Gap | Note |
|---|---|---|---|
| Water Dance | §1/§25 | COLLAPSED | → generic `dance` |
| Fire Dance | §1/§25 | COLLAPSED | → generic `dance` |
| Moon/Tide Dance | §1/§25 | COLLAPSED | naming drift: sim=`RainDance`, TSK=`Tide`, icon=`tidedance` (dead branch) |
| Fertility Dance | §1/§25 | COLLAPSED | asset exists (`fertility_dance_01`) in test-bed only, not wired to avatar |
| Food Dance | §1/§25 | COLLAPSED | → generic `dance` |
| Taming Dance | §1/§25 | COLLAPSED | asset exists (`taming_dance_01`) test-bed only |
| Rain Dance | §25/§13 | COLLAPSED | → generic `dance` |
| Sailing Dance | §1 (Age 2) | COLLAPSED + not in client UI | sim-only DanceType |
| War Dance (Haka) | §1/§28i | COLLAPSED + not in client UI | assets exist (`war_dance_01`, `hakadance1_static`) test-bed only |
| Building Dance | §1 (Age 2) | COLLAPSED + not in client UI | |
| Colony Shield Dance | §1 (Age 2) | COLLAPSED + not in client UI | |
| Age Progression Dance | §1 (Age 3) | COLLAPSED + not in client UI | |
| Star Watching Dance | §8f (Age 3) | COLLAPSED + not in client UI | |
| Christening Solo | §10 (ends Act 1) | MISSING | bespoke solo ceremony |
| Dance-off attack/defend moves (QWEASD) | §23/§25 | MISSING | rhythm-combo move set — core to PvP dance-off |
| Dance-off power-up / bonus moves | §23 | MISSING | potion/food/artifact-unlocked |
| Body percussion / clapping / thigh-slap | §13 | MISSING | in test-bed composites only, no production path |
| Instrument-play-during-dance | §25/§13 | MISSING | drum/conch/flute buff pose |
| Colonist formation choreography | §1/TODO | MISSING | colonists perform in formation |
**Client/sim mismatch (confirmed):** sim `DanceType` = 12 (`GameSystems.cs:151`);
client `DancePanel.cs:11` exposes 6. Even the exposed 6 all play one avatar clip.
---
## 2. Work / Tools / Colonist Economy
Wired distinct work clips: `chop`, `mine`, `fish`, `gathering` (Farm_Harvest),
`farm` (PlantSeed), `hammer`/build (Fixing_Kneeling), `interact`, `weapon_attack`, `hold`.
### DEAD (loaded, no trigger — cheap wins)
| Key | Clip | Note |
|---|---|---|
| skin | `SkinningGround01_R_Loop` | GDD needs skinning bench (§skin); no `CharacterAnimDriver` case |
| watering | `Farm_Watering` | GDD §2a "water crops"; colonist `farm` never routes to `watering` |
| carry | `Walk_Carry_Loop` | GDD §19 carry modes; test-bed only in production |
| sit | `GroundSit_Idle_Loop` | no player/colonist case |
### MISSING (no clip)
| Animation | GDD / TSK | Note |
|---|---|---|
| Hoe / till land | §2a, TSK | field prep |
| Weed | §2a "colonists weed" | field tending |
| Compost | TSK | fertility upkeep |
| Tend irrigation / terraced gardens | TSK | paddy/terrace upkeep |
| Feed chickens / pigs | §2d, TSK | pen feeding |
| Collect eggs | TSK | coop gather |
| Herd animals | TSK | drive livestock |
| Milk goats | TSK | milking pose |
| Shear animals | TSK | shearing pose |
| Breed animals | TSK | pen interaction |
| Tend kennel (dogs) | TSK | care pose |
| Tend pearl oyster bed | TSK | shore/underwater tend |
| Dive for shells/coral | §27, TSK | underwater gather (swim exists; no gather-underwater) |
| Shell open/close timed grab | §27 shell mechanic | timed reach |
| Cook (dedicated) | §29b/c | currently routes to generic `interact` |
| Backpack crafting (player, no bench) | §6 | `craft` key never loaded → pulse placeholder |
| Bench crafting (generic, 12 benches) | §8j | `PlayCraft`/`PlayBuild` fall through to placeholder pulse |
| Rebuild ruins (Spirit Temple / Dance Arena) | §8f | restoration work |
| Fuel HQ | TSK, §10 | feed the hearth |
| Stock birdhouse / collect feathers | §8l | charisma chain |
| Operate trade building | §15c | trade-post interaction |
| Load / unload trade canoe | TSK | dock cargo |
| Observe stars / stick-chart trace | §8f | sky-watch tracing minigame |
### COLLAPSED
| GDD wants | Reality |
|---|---|
| gather coconuts/bamboo/vines/flint/shells/starfish, forage berries/herbs/lotus | all → `gathering` (Farm_Harvest) |
| multi-level directional chop (5 wedges, 4 facings — flagship visible-work, §4a) | single `chop` loop |
| Carry modes: EquipHand / TwoHandCarry / ShoulderCarry / plate-tray (§19) | none — `carry` clip loaded but dead |
---
## 3. Combat
Wired: `punch`, `run_punch`, `throw` (OverhandThrow), spear/axe/ball throws
(Kevin, via `ThrowActionCatalog`), `shield_block`, `weapon_attack` (Sword_Attack), `death`.
### DEAD (loaded, no trigger)
`sword_block`, `melee_light_combo`, `shield_idle`, `shield_break`, `shield_dash`,
`shield_sprint`, `swim_drown`, `swim_drowned`, `swim_left`, `swim_right`.
### MISSING
| Animation | GDD | Note |
|---|---|---|
| Hit reaction / stagger | §5a-ii, §5b | player + enemy take-damage — nothing wired |
| Enemy / spirit attack set | §5a/§5b | humanoid-rigged spirits, ≥1 attack each |
| Retrieve thrown spear (walk-over pickup) | §5a-ii | ground-item recovery beat |
### COLLAPSED
7+ weapon types (spear/axe/knife/club/trident/adze/biface) → one `Sword_Attack` thrust.
(May be acceptable; flag for weapon-feel pass.)
---
## 4. Boat / Canoe / Voyage
Wired: `canoe_sit` (helm idle), `canoe_dismount`, `run_to_dive`, `swim`.
| Animation | GDD | Gap |
|---|---|---|
| Paddle (active propulsion) | §3, §10 | MISSING — only seated idle |
| Seat-switch between roles | §3, TODO §7 | MISSING |
| Wayfinding: star reading | §3/§24 | MISSING |
| Wayfinding: swell reading | §3 | MISSING |
| Wayfinding: bird following | §3/§24 | MISSING |
| Wayfinding: storm navigation | §3 | MISSING |
| Colonist crew / sail (autonomous) | §3, TSK "Sail" | MISSING |
(Voyage is sim-resolved, so these are posed beats, not a steering controller.)
---
## 5. Emote / Social / Interaction
Wired: `pray` only. No emote wheel / emote input exists in production.
| Animation | GDD | Gap |
|---|---|---|
| Shrine offering (kneel/offer) | §8b | MISSING |
| Kava ceremony | §16 | MISSING |
| Meditate (god-mode, vulnerable) | TODO §12 | MISSING |
| Greet / elder first-contact | §10 tutorial | MISSING |
| Talk to colonists | §10 tutorial | MISSING |
| Feast / first-feast celebration | §10 arc | MISSING |
| Sit | §social | DEAD (clip loaded, no trigger) |
Note: `kevin_*_social` clips (HandClap, Cheer, HandWave, Angry, Dance01-13) are
reachable **only** through the test-bed JSONs — no production path.
---
## 6. Locomotion & Reaction States
Wired loco is strong: idle, 8-dir walk/jog, sprint(+enter/exit), 8-dir crouch,
turns, jump, running_jump, full swim set.
| Animation | GDD | Gap |
|---|---|---|
| Wade (50%-speed shore water) | §27 zone 24m | MISSING |
| Idle variants / fidget | §9c, disconnect-idle | MISSING — one idle only |
| Idle-at-hearth cluster | §10 | MISSING |
| Crouch enter / exit | — | DEAD (loaded; `SetCrouching` plays idle/walk directly) |
| Wounded / low-health degraded | §5a-ii, §9 | MISSING |
| Hungry / thirsty posture | §9a needs | MISSING |
| Low-mana / low-morale | §25 | MISSING |
| Celebration | §10 feast, §22 victory | MISSING |
| Persist-as-idle-figure (disconnect) | §Recent | partially — reuses `idle` |
(No cold state — tropical setting; correctly absent.)
---
## Priority ranking (studio lens)
1. **Per-dance choreography + dance-off move set** — the marquee feature is a single
looping clip. Author 12 dance clips + the QWEASD attack/defend moves + Christening
Solo. Also fix the sim(12)↔client(6) `DanceType` mismatch and dead `tidedance` icon branch.
2. **Colonist work legibility** — animal husbandry family, water/weed/compost, carry
modes, cook, star observation. "Real swings at real trees" is a named selling point
(§Recent); right now most of the economy plays 8 clips.
3. **Survival/combat reaction layer** — hit-reaction, wounded, hungry, celebration.
Core to the Valheim needs model but invisible.
4. **Boat wayfinding poses** — 4 wayfinding beats + paddle + crew.
5. **Quick wins (DEAD clips — wiring only, no new art):** `skin`, `watering`, `carry`,
`sit`, `crouch_enter/exit`, `sword_block`, `melee_light_combo`, shield set, `swim_drown*`.
---
## Notes / caveats
- "COLLAPSED" is a design call, not always a defect (weapon variants, forage variety
may be intentionally shared). Dance collapse is unambiguously a gap — it's the signature.
- The `assets/dances/*.json` test-bed dances (haka_tutorial, war_challenge, etc.) are
authoring/preview only; they have **no code path to the in-game player or colonist**.
- Several dance assets already exist in `dancegen/` (fertility/taming/war) but are wired
only to the test-bed, not to the production avatar. Bridging that is cheaper than authoring.