31ba2911df
Skills (.claude/skills/): animation-creation, iclone-video-mocap, pose-estimation (MediaPipe models via LFS), retarget-animations (deprecated). Tools: cc/mixamo/kevin/mocap retargeters + composite baker. Plans: animation-gen-pipeline + skills-adoption. exchange/: incoming-fbx, converted-glb, reference-video (LFS for fbx/glb/mp4). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
61 lines
3.2 KiB
Markdown
61 lines
3.2 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
|
|
- `plans/` — pipeline design docs (animation generation pipeline, skills adoption)
|
|
|
|
## 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.
|