feat(props): export game boat as iClone staging prop (boat_prop.fbx)

tools/export_boat_prop.py (GLM-implemented, 2 rounds): hull at game scale
(8.5 m, keel 0, no recenter) + placeholder mast/sail/steering oar + 5 seat
markers + waterline + 1.9 m ref figure; self-verify incl. right-side-up
gates added after round 1 shipped an upside-down hull with all checks
green. Registry: boat actions table (6 slots, direct names). README
carries CC BY 4.0 attribution + iClone import/filming notes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 10:40:37 -07:00
parent 17ff1f748e
commit 4d6a4f6006
10 changed files with 1244 additions and 0 deletions
+11
View File
@@ -95,6 +95,17 @@ Two Blender-side fixers exist (no iClone round-trip needed):
Both verified by re-running `loop_qc.py` to exit 0. iClone re-authoring remains the
fallback for clips where neither result looks right in the test bed.
## Outgoing props (game → iClone staging)
`exchange/outgoing-props/` carries game assets exported as iClone staging props (the
reverse direction of the bridge). `tools/export_boat_prop.py` builds the boat prop
(hull at game scale + placeholder mast/sail/oar + seat markers + waterline +
1.9 m ref figure) with a self-verify gate incl. right-side-up checks — the FBX ships
via git for the PC to pull. Boat ACTION clips use **direct names** (no nd_## stage):
see the "Boat actions" table in the registry. Lesson from building it: an
agent-authored verify gate can pass a visually-wrong export (the first boat was
upside down with all checks green) — **always render and eyeball a new prop** before
shipping, and encode what the eyeball caught as new asserts.
## Launching the game
- **Always ask Jeremy before launching** (this session he said "let's launch" — that's the go-ahead; don't assume it next time).
- Command: `SCENE=dance_test_bed bash tools/game.sh spawn` from `ariki-game/` root. Also `animation_showcase` for paging every clip.