88 lines
5.2 KiB
Markdown
88 lines
5.2 KiB
Markdown
|
|
# DevOps Report — Animation Standard Convergence (2026-07-23 → 24)
|
|||
|
|
|
|||
|
|
**Author:** Claude (Fable 5), Jeremy's session · **Repos:** `animation` + `ariki-game`
|
|||
|
|
**Trigger:** Ozan landed the animation standardization contract on ariki-game main
|
|||
|
|
(2026-07-23: `5409a82e0`, `3d7f3ef94`); Jeremy requested a full conformance assessment
|
|||
|
|
of our lane (dance pipeline, this bridge repo, test beds), then execution of the fixes.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. What the standard says (one paragraph)
|
|||
|
|
|
|||
|
|
One runtime skeleton — the Quaternius 65-bone UE-named rig. Hero body =
|
|||
|
|
`Ariki_Female_QuatSkin.glb` (Mixamo weights on Quaternius rest orientations; the earlier
|
|||
|
|
MixamoSkin+msrig pairing is superseded). Clip policy: UAL1 Pro = locomotion, UAL2 Source =
|
|||
|
|
work (under `ariki-game/assets/quaternius/anim/`), Kevin packs gaps-only, Mixamo one-offs,
|
|||
|
|
and **our iClone/video-mocap lane is explicitly separate**: `cc_retarget.py` →
|
|||
|
|
`dancegen/` → dance JSON. Canonical docs: `ariki-game/.humans/animation-bone-sources.html`,
|
|||
|
|
wiki `player-quaternius-animator.md` + `quaternius-ual-packs.md`, skill
|
|||
|
|
`aaa-player-animation`.
|
|||
|
|
|
|||
|
|
## 2. The assessment (how it ran)
|
|||
|
|
|
|||
|
|
- 52 checkable rules extracted from the 7 standard docs.
|
|||
|
|
- 10 audit roles, model-routed: GLM-5.2 ×2 (inline-input tasks), DeepSeek v4-pro ×5
|
|||
|
|
(code/doc/bed sweeps; one run died and was completed by the orchestrator), Fable ×3
|
|||
|
|
(wiring, dance system, synthesis). Every CRITICAL/HIGH re-verified mechanically.
|
|||
|
|
- Bone-census probe over 21 GLBs (this repo's `exchange/{converted,pingpong}-glb/` +
|
|||
|
|
ariki `dancegen/` + the three body GLBs).
|
|||
|
|
- Full report: `ariki-game/.agents/audits/animation-standard-assessment-2026-07-23.md`;
|
|||
|
|
meeting page: `ariki-game/.humans/animation-standard-assessment.html`.
|
|||
|
|
|
|||
|
|
**Result:** the pipeline core was already conformant — 100% of runtime clip GLBs on the
|
|||
|
|
65-bone contract, 4/4 `_pp` loop pairs, all dance JSONs clean post-rename, 16/17 test
|
|||
|
|
beds compliant. The defects clustered in the superseded MixamoSkin/msrig mechanism and
|
|||
|
|
stale doc/tool mirrors.
|
|||
|
|
|
|||
|
|
## 3. What we shipped
|
|||
|
|
|
|||
|
|
### This repo (`b4d9621`, pushed 2026-07-23)
|
|||
|
|
| Change | Why |
|
|||
|
|
|---|---|
|
|||
|
|
| `tools/cc_retarget.py` + `mixamo_retarget.py` re-synced from ariki-game | They were stale forks (2026-07-15) silently missing `--despike`, `--fingers`, `--map ual` — PC batches would have lost QC |
|
|||
|
|
| Tool **mirroring rule** added to `exchange/GUIDE.md` | Game copies are authoritative; never edit mirrors here |
|
|||
|
|
| `tools/kevin_retarget.py` path fix (mirrored) | Was hardcoded to Ozan's home dir |
|
|||
|
|
| `exchange/INBOX/lena/Ariki_Female_QuatSkin.glb` added (LFS) + README rewrite | The drop shipped only the superseded MixamoSkin body; **import the QuatSkin one on the PC** |
|
|||
|
|
| `docs/dances/REGISTRY.md` corrections | `tide_dance_01` flagged (NO `TideDance` in the sim enum); rain note fixed (`RainDance` IS in the enum); boat table now records live `canoedismount1`/`run_to_dive`; QC split documented (loop_qc = pre-commit gate here, anim_qc = post-ingest game-side) |
|
|||
|
|
| `docs/iclone-bridge.md` created | GUIDE referenced it; it never existed |
|
|||
|
|
|
|||
|
|
Earlier same day (`998e306`): the original Lena INBOX drop (GLB + rigged/unrigged T-pose
|
|||
|
|
FBX + toned textures).
|
|||
|
|
|
|||
|
|
### ariki-game (`b70d5a11c` + `934b6d4dc`, pushed)
|
|||
|
|
- **Dance bed `LenaBodyPath` → QuatSkin** (the bed had gone Lena-only on the superseded
|
|||
|
|
MixamoSkin body whose msrig clip-reroute is dead — basename rot after the Pro rename).
|
|||
|
|
Build green.
|
|||
|
|
- Doc convergence: clip-inventory wiki corrected (23→30 wired UAL2; shield/sword set was
|
|||
|
|
mislabeled "unused"), UALPACKS "Standard removed" claim scoped, `animation-pipelines.md`
|
|||
|
|
coverage extended (+`anim-combined/ msrig/ derived-bodies/`), `pose-estimation` skill
|
|||
|
|
reference re-pointed to THIS repo.
|
|||
|
|
- Bug filed for Ozan: `.agents/bugs/2026-07-23-ninjajump-idle-missing-clip.md` —
|
|||
|
|
code requests `NinjaJump_Idle`, pack ships `NinjaJump_Idle_Loop`, resolver can't bridge.
|
|||
|
|
|
|||
|
|
## 4. Live verification (2026-07-24)
|
|||
|
|
|
|||
|
|
Screenshot-verified on a running dance bed (post-fix build): QuatSkin Lena dancers
|
|||
|
|
upright, phase-locked, `war_challenge` playing on the stock clip libraries. Engine log
|
|||
|
|
carries **zero** `MISSING clip` warnings → the NinjaJump bug is **latent** (current
|
|||
|
|
Godot import config strips `_Loop`), not active; hardening still recommended. Bug file
|
|||
|
|
updated with this evidence (`934b6d4dc`).
|
|||
|
|
|
|||
|
|
## 5. Open items (owners)
|
|||
|
|
|
|||
|
|
| Item | Owner |
|
|||
|
|
|---|---|
|
|||
|
|
| Import `INBOX/lena/Ariki_Female_QuatSkin.glb` on the PC (not the MixamoSkin one) | Jeremy |
|
|||
|
|
| Retire `msrig/` + MixamoSkin GLB outright (recommended) or re-retarget under new basenames | Ozan (negotiate) |
|
|||
|
|
| Amend the Kevin-swim keep-set rule to match the restored swim override in code | Ozan (negotiate) |
|
|||
|
|
| Add derived/import packs (Run_Punch, mixamo one-offs, canoe clips) to the BONES tables | Ozan (negotiate) |
|
|||
|
|
| NinjaJump 1-token fix + resolver `+_Loop` arm | Ozan (bug filed) |
|
|||
|
|
| Register `canoedismount1` under a `boat_*` code at next adoption pass | Jeremy (this repo) |
|
|||
|
|
|
|||
|
|
## 6. Ops notes
|
|||
|
|
|
|||
|
|
- All syncs via `tinqs pull`/`tinqs push` (LFS-safe); QuatSkin GLB verified as an LFS pointer.
|
|||
|
|
- Executor telemetry: GLM headless = 1 clean / 1 silent-empty; DeepSeek = 4 clean / 1 SIGTERM;
|
|||
|
|
Fable tracks found both deep bugs (dead msrig reroute, NinjaJump). Full disclosure table
|
|||
|
|
in the audit report.
|