3ba86b2ea8
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>
91 lines
3.1 KiB
JSON
91 lines
3.1 KiB
JSON
{
|
|
"name": "bottom_test1",
|
|
"source": "C:/Users/Jeremy/tinqs/animation/tools/tailor/lena_piupiu_v3_garment.fbx",
|
|
"body": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/derived-bodies/Ariki_Female_QuatSkin_SkirtRig_4seg.glb",
|
|
"weld_threshold": 0.0006,
|
|
"shell_mm": 4,
|
|
"align": {
|
|
"top_bone": "spine_01",
|
|
"scale_xy": 0.1,
|
|
"scale_z": 0.1,
|
|
"z_nudge": 0.028,
|
|
"xy_nudge": [
|
|
0.0,
|
|
0.0
|
|
]
|
|
},
|
|
"parts": {
|
|
"Bottom": {
|
|
"slot": "Legs",
|
|
"islands": [
|
|
0
|
|
],
|
|
"tris": 8000,
|
|
"planar_deg": 5,
|
|
"fit": {
|
|
"target": "BODY_SHELL",
|
|
"mask": "full",
|
|
"offset_mm": 3,
|
|
"wrap_mode": "OUTSIDE",
|
|
"hem_mm": 14
|
|
},
|
|
"weights": "skirt_bones",
|
|
"color": [
|
|
0.45,
|
|
0.35,
|
|
0.15
|
|
],
|
|
"texture": "../tools/tailor/textures/bottom_test1.png"
|
|
}
|
|
},
|
|
"export": {
|
|
"out_dir": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/outfits/test1",
|
|
"gender": "Female",
|
|
"set": "Test1",
|
|
"note": "piupiu v3 (32 discrete flax strands from a 60mm rigid waistband) as the neutral-named bottom_test1_f. Exported against the 4-SEGMENT SkirtRig body so the skin carries all 32 skirt joints."
|
|
},
|
|
"catalog": {
|
|
"id": "bottom_test1_f",
|
|
"displayName": "Bottom Test 1",
|
|
"charisma": 0.1,
|
|
"workSpeed": 0.02,
|
|
"category": "ceremonial"
|
|
},
|
|
"expect": {
|
|
"islands": {
|
|
"count": 1,
|
|
"mapped": {
|
|
"0": {
|
|
"verts": [
|
|
2900,
|
|
3100
|
|
],
|
|
"tris": [
|
|
3950,
|
|
4300
|
|
],
|
|
"z": [
|
|
4.4,
|
|
11.2
|
|
],
|
|
"x": [
|
|
-2.6,
|
|
2.7
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"penetration": {
|
|
"depth_mm": 1.0,
|
|
"max_verts": 0,
|
|
"clips": [
|
|
"Idle",
|
|
"Walk"
|
|
],
|
|
"frames_per_clip": 6
|
|
}
|
|
},
|
|
"min_island_verts": 40,
|
|
"_note": "NAMING: no cultural names on test garments (Jeremy 2026-07-31) - see ariki-game/src/Character/OutfitCatalog.cs class doc. Item id snake_case + gender suffix (bottom_test1_f), set id PascalCase (Test1) because it composes {Gender}_{Set}_{Slot}.gltf, folder lowercase (outfits/test1/).\n\nexpect.islands is MEASURED from work/bottom_test1/census.json (2026-07-31), not carried over from v2: 1 island, 3002 verts, 4120 tris, z 4.685..10.893, x -2.338..2.391 in PRE-SCALE census units (align.scale_* 0.1 applied later in `prepare`), i.e. hem 0.469 m and band top 1.089 m, matching the MD-side measurement. Bounds widened for tolerance, not tightened. v3 renumbered the MD patterns to Pattern_18856 / Pattern_20333 (v2's were Pattern_31891 / Pattern_32004) - README calls a config mapping the wrong islands 'the silent killer', so G2 was run first and passed on 1 island.\n\nSKIRT WEIGHTS HAVE ONE OWNER. garment_pipeline.py:876 strand_weights is hardcoded to two segments; this garment needs four. Run animation/clothing/skirt_garment_weights.py AFTER export - it reads segment count off the rig - or the game gets a 2-segment blend that reads as a rig regression."
|
|
}
|