feat: clothing lane, character sources, and DCC bridges
Bulk import of the working lanes that were living untracked on the PC. Content: - characters/ Lena/male body lanes, bakes, texture work, run logs - clothing/ garment pipeline, configs, gates, contract docs - garments/ MD-authored garment sources (.zprj/.zpac) - UAL-Lib/ Universal Animation Library 2 source (.blend/.fbx/.glb) - tools/ blender_bridge, iclone_bridge, md_bridge, tailor, glm_agent - docs/, plans/, dev/, .agents/plans/ Repo hygiene: - .gitattributes: LFS now covers .blend, .zprj, .zpac, .obj, .npy and the Reallusion .iAvatar/.ccAvatar/.ccRestore containers. Without this the ~3.8 GB in this commit would land as raw blobs. .png/.jpg are left out on purpose — ~250 are already tracked raw and converting them would rewrite every one without shrinking history. - .gitignore: exclude /accurig/ (~1 GB AccuRig program files, redistributable from Reallusion, nothing authored here) and /dev/null/ (git-lfs hook copies dropped by a `>/dev/null` redirect on Windows). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# Handoff: UAL animation library → iClone (2026-07-28 morning)
|
||||
|
||||
## Goal
|
||||
Get all ~134 Universal Animation Library (Kevin Iglesias) clips into iClone as reusable
|
||||
motions on a character, so they can be layered/blended into new animations.
|
||||
|
||||
## ▶ FIRST THING TO DO (5 min, everything is staged)
|
||||
|
||||
Import this file into iClone via the **motion import** flow (select Lena or any avatar first):
|
||||
|
||||
```
|
||||
C:\Users\Jeremy\tinqs\animation\UAL-Lib\Universal Animation Library 2[Source]\Unity\UAL2_takes_fixed.fbx
|
||||
```
|
||||
|
||||
Dialog settings:
|
||||
- **Character profile:** browse to
|
||||
`A:\Program Files (x86)\iClone 8\Program\Assets\Share\CharaterizeProfiles\UE4_Skeleton.3dxProfile`
|
||||
(folder name really is "CharaterizeProfiles" — Reallusion typo)
|
||||
- **Motion T-Pose:** leave EMPTY. If iClone refuses without one, use
|
||||
`...\Universal Animation Library 2[Source]\Female Mannequin\Unity\Mannequin_F.fbx`
|
||||
(verified: identical 66-bone skeleton to UAL2)
|
||||
- **Auto gen to perform list:** checked
|
||||
- Keep root motion: default (RL_BoneRoot n/a here — source root is `root`)
|
||||
- Select ONLY this one file (multi-selecting mixed-skeleton files causes the
|
||||
"same bone structure" error)
|
||||
|
||||
Then check: character upright? → **right-click avatar → Perform** (or Animation Player →
|
||||
Motion dropdown → Perform → Perform List Editor). Expect up to **134 takes** listed.
|
||||
|
||||
## Why this should work now (last night's chain of fixes)
|
||||
|
||||
1. **Original vendor FBX imports upright** (user-verified as prop; measured upright via
|
||||
bridge). All Blender re-exports lie down — never route UAL through Blender for iClone.
|
||||
2. **"No applicable character profile"** → fixed: iClone ships `UE4_Skeleton.3dxProfile`,
|
||||
exact match for UAL bone names (pelvis/spine_01–03/neck_01/clavicle_l/ball_l...).
|
||||
3. **"Not compatible with profile T-pose"** → cause: `CC_Base_TPose.fbx` (a CC-skeleton
|
||||
leftover from dead experiments) was in the Motion T-Pose field. Wrong skeleton. Leave
|
||||
field empty / use Mannequin_F.fbx.
|
||||
4. **"Failed to save motion file" ×134** → ROOT CAUSE FOUND: every take is named
|
||||
`Armature|Bow_Shoot` — the `|` is illegal in iClone motion names & Windows filenames.
|
||||
The error dialog listing UAL2.fbx 134 times proves iClone DOES enumerate all takes.
|
||||
→ Fixed by byte-safe patch (`|`→`_`, same length, structure untouched):
|
||||
**UAL2_takes_fixed.fbx** (134 takes verified, names now `Armature_Bow_Shoot` etc.)
|
||||
|
||||
## If the import succeeds
|
||||
|
||||
- Do the same for library 1: patch takes the same way
|
||||
(`UAL-Lib\Universal Animation Library[Pro]\Unity\UAL1.fbx` → `UAL1_takes_fixed.fbx`).
|
||||
One-liner pattern lives in this chat; simplest: ask Claude to "patch UAL1 take names
|
||||
like UAL2".
|
||||
- Save the converted motions into a custom motion library folder so they persist
|
||||
(drag from Perform list / save as .rlMotion into
|
||||
`A:\Reallusion Content\Reallusion Custom\Animation\Motion\`).
|
||||
- Optional: `_RM` variants of both files carry root-motion versions of the same clips.
|
||||
|
||||
## If it fails again
|
||||
Note the EXACT error text + which file was in each dialog slot, then resume with Claude.
|
||||
Fallback order: (a) Motion T-Pose = Mannequin_F.fbx; (b) import a handful of takes at a
|
||||
time; (c) split the patched FBX into single-take files WITHOUT Blender rig changes.
|
||||
|
||||
## Dead ends — do NOT retry (all disproven with measurements, see memory)
|
||||
- Blender-retargeted CC_Base FBX into iClone (characterizer always lays it down;
|
||||
rotations/axis flags/T-pose/root-motion settings all disproven).
|
||||
- `RFileIO.ConvertFbxFileToRLMotion` on any Blender-built FBX (needs native fbxKey).
|
||||
- `RFileIO.LoadFbxFile` via bridge for characters (pops a modal that freezes iClone
|
||||
AND the bridge until manually dismissed).
|
||||
- Direct bone-keying via bridge (48/55 bones OK, but legs+hip are HIK/IK-locked, no
|
||||
API toggle → full-body clips come out leg-broken).
|
||||
|
||||
## Useful assets/tools produced
|
||||
- `UAL2_takes_fixed.fbx` — the deliverable input file (134 legal take names).
|
||||
- Bridge: `python tools/iclone_bridge.py --ping|--exec|--file` (iClone must be running).
|
||||
- Bone-orientation measurement snippet (paste-ready): read `CC_Base_Head` minus
|
||||
`CC_Base_Hip` world positions via bridge; up should be +Z.
|
||||
- Scratchpad (this session) has: `ual_to_cc.py` (Blender UE→CC retargeter — works for
|
||||
Blender/GLB targets, NOT for iClone import), calibration data for iClone's per-bone
|
||||
Euler FK API (order XYZ right-to-left), `dummy_cc_base.fbx` (CC_Base skeleton export).
|
||||
- Old CC experiments quarantined in
|
||||
`A:\Reallusion Content\Reallusion Custom\Animation\Motion\Tests\old_cc_experiments\`
|
||||
— safe to delete once the new route works.
|
||||
|
||||
## Context worth remembering
|
||||
- UAL clips are on the UE4-mannequin skeleton; the whole library lives as 134 takes
|
||||
inside ONE FBX (Unity folders). GLB equivalents (Unreal-Godot folders) already have
|
||||
all 134 clips separated — the GAME pipeline can consume those directly without iClone.
|
||||
- iClone is only needed for AUTHORING new motions from these clips; for pure playback
|
||||
in ariki-game, the GLBs are already usable.
|
||||
Reference in New Issue
Block a user