Files
animation/README.md
T
jeremy 854dbb5ce4 chore(agents): migrate to agents.md protocol — .agents/ wiki/plans/rules/skills
Root AGENTS.md is now a thin entry point + knowledge map; the batch-workflow
detail it duplicated already lived in .claude/skills/animation/SKILL.md.
Folded docs/ (dances registry + iclone-bridge stub), root plans/, and
devops-reports/ into .agents/wiki/ and .agents/plans/ per the per-repo .agents/
convention. Added .agents/SOUL.md, .agents/AGENTS.md, wiki/ARCHITECTURE.md,
wiki/architecture/, and wiki/master-plan.md (derived from the closed plans +
the dance registry's live ceremony-slot table). Fixed doc-path references in
exchange/GUIDE.md, the animation skill, and the iclone-bridge stub. All moves
via mv (git detected as renames) — no content deleted.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 15:02:47 -07:00

61 lines
3.3 KiB
Markdown

# animation
Jeremy's animation-pipeline hub AND the **Mac↔PC bridge** for converting files
and implementing animations. iClone 8 + Video Mocap live on the PC; Blender 5,
the retarget tools, and the ariki-game repo live on both. This repo carries the
skills, tools, and the files in flight between machines.
## Bridge workflow (Mac↔PC)
1. **PC**: export FBX from iClone (Blender preset, Range=All, Preserve Bone
Names ON) → drop into `exchange/incoming-fbx/` → commit + `tinqs push`.
2. **Either machine**: `tinqs pull`, run the retargeter →
```
blender --background --python tools/cc_retarget.py -- \
--src exchange/incoming-fbx/<take>.fbx \
--out exchange/converted-glb/<pack>.glb --name <ClipName> \
--target <path-to-ariki Superhero_Male_FullBody.gltf>
```
→ commit the GLB + `tinqs push`.
3. **Implementing machine**: copy the GLB into ariki-game
`assets/quaternius/dancegen/` (auto-discovered by ClipCatalog as
`<pack>/<ClipName>`), add a dance JSON, verify in the dance test bed.
4. Optional: reference footage for QA goes in `exchange/reference-video/`.
Large binaries (`.fbx`, `.glb`, `.mp4`, `.task`) ride Git LFS — see
`.gitattributes`. Clean out `exchange/` folders once a take has shipped
into the game repo.
## Layout
- `.claude/skills/` — Claude Code skills (auto-discovered when running Claude here)
- `animation-creation/` — creating clips on the shared Quaternius skeleton: existing packs, Mixamo/Kevin retargeting, composite baking, dance JSON (paths reference the ariki-game repo)
- `iclone-video-mocap/` — iClone 8 + Video Mocap plugin advisory: filming rules, workflow, cleanup, FBX export, game integration
- `pose-estimation/` — MediaPipe video→pose-landmark extraction (`scripts/extract_pose.py`, `compare_poses.py`; models in `models/`, venv rebuilt via `scripts/setup.sh`)
- `retarget-animations/` — deprecated early retarget notes (kept for history)
- `tools/` — Blender-headless retargeters (all bake onto the Quaternius rig and export mesh-stripped GLB, one NLA track per clip)
- `cc_retarget.py` — Reallusion CC/iClone `CC_Base_*` FBX (60fps; TempMotion guard)
- `mixamo_retarget.py` — Mixamo FBX (prefix auto-detect)
- `kevin_retarget.py` — Kevin Iglesias Unity FBX (`B-*` rig; hardcoded target path — non-portable)
- `mocap_retarget.py` — MediaPipe pose JSON → GLB (rotation solving, no source armature)
- `bake_run_punch.mjs` — composite upper/lower clip baking reference
- `AGENTS.md` / `.agents/` — agent context (identity, wiki, plans, rules); see `AGENTS.md` for the knowledge map
## Canonical target rig
All retargeters default to ariki-game's
`assets/quaternius/base-characters/.../Godot - UE/Superhero_Male_FullBody.gltf`
via a repo-relative path — **when running from this repo, pass `--target` with an
explicit path to that GLTF** (or a local copy). Output GLBs are consumed by
ariki-game's ClipCatalog from `assets/quaternius/{kevin,mixamo,dancegen}/` as
`<pack>/<ClipName>`.
## Provenance
Copied (not yet removed) from `ariki-game` `tools/` + `.claude/skills/` +
`.agents/plans/`, and `~/.claude/skills/pose-estimation`. The ariki-game
originals are still in place; the Windows-side iClone FBX conversion handoff
(`ariki-game/.agents/handoff/iclone-fbx-conversion.md`) depends on them.