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,105 @@
|
||||
{
|
||||
"body": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/derived-bodies/Ariki_Female_QuatSkin_SkirtRig_4seg.glb",
|
||||
"weld_threshold": 0.0006,
|
||||
"shell_mm": 4,
|
||||
"min_island_verts": 40,
|
||||
"name": "bottomTest1",
|
||||
"source": "C:/Users/Jeremy/tinqs/animation/tools/tailor/lena_piupiu_v3_garment.fbx",
|
||||
"align": {
|
||||
"top_bone": "spine_01",
|
||||
"scale_xy": 0.1,
|
||||
"scale_z": 0.1,
|
||||
"z_nudge": 0.0,
|
||||
"xy_nudge": [
|
||||
0.0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
"parts": {
|
||||
"Bottom": {
|
||||
"slot": "Legs",
|
||||
"islands": [
|
||||
0
|
||||
],
|
||||
"tris": 8000,
|
||||
"planar_deg": 0,
|
||||
"fit": {
|
||||
"target": "BODY_SHELL",
|
||||
"mask": "full",
|
||||
"offset_mm": 3,
|
||||
"wrap_mode": "OUTSIDE",
|
||||
"hem_mm": 80,
|
||||
"_note_hem": "80mm, up from the 14 the old piupiu used. This is what stops the leg clipping through: it gives the skirt a real BELL that the leg swings INSIDE, rather than cloth lying on the thigh for the leg to punch through. Graded 0 at the hip to full at the hem, so the waistband still rides the hip. 45 was not enough; 80 holds through Walk and Dance."
|
||||
},
|
||||
"weights": "skirt_bones",
|
||||
"color": [
|
||||
0.45,
|
||||
0.35,
|
||||
0.15
|
||||
],
|
||||
"texture": "../tools/tailor/textures/bottom_test1.png",
|
||||
"_note_planar": "0, NOT the default 5. reduce applies a planar DISSOLVE unconditionally before the tri-budget check, and these strands are flat strips, so deg 5 collapsed 3012 verts -> 884, destroying the vertical rows the 4-segment skirt ring needs to bend smoothly (the rig session's ask 4). The 8000-tri budget was never the constraint (4136).",
|
||||
"_note_texture": "bottom_test1.png is generated by tools/tailor/textures/make_bottom_test1.py and MUST stay V-only (constant along U). A strand garment samples a different U slice per strand, so any horizontal variation makes the woven bands misalign strand-to-strand and read as noise. Measured before/after: mean horizontal stdev per row 50.2 -> 5.9. The pre-strand original is kept as bottom_test1_prestrand.png."
|
||||
}
|
||||
},
|
||||
"export": {
|
||||
"out_dir": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/outfits/test1",
|
||||
"gender": "Female",
|
||||
"set": "Test1",
|
||||
"note": "32 discrete strands from a 60 mm rigid waistband - Legs slot. Bound to the 4-SEGMENT skirt ring."
|
||||
},
|
||||
"catalog": {
|
||||
"id": "bottom_test1_f",
|
||||
"displayName": "Bottom Test 1",
|
||||
"charisma": 0.1,
|
||||
"workSpeed": 0.02,
|
||||
"category": "ceremonial"
|
||||
},
|
||||
"expect": {
|
||||
"penetration": {
|
||||
"depth_mm": 1.0,
|
||||
"max_verts": 0,
|
||||
"clips": [
|
||||
"Idle",
|
||||
"Walk"
|
||||
],
|
||||
"frames_per_clip": 6
|
||||
},
|
||||
"islands": {
|
||||
"count": 1,
|
||||
"mapped": {
|
||||
"0": {
|
||||
"verts": [
|
||||
2861,
|
||||
3162
|
||||
],
|
||||
"tris": [
|
||||
3929,
|
||||
4342
|
||||
],
|
||||
"z": [
|
||||
4.21,
|
||||
11.26
|
||||
],
|
||||
"x": [
|
||||
-2.73,
|
||||
2.79
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"post_export": {
|
||||
"_why": "MANUAL, REQUIRED, ORDER-SENSITIVE. clothing/skirt_garment_weights.py owns skirt weights; garment_pipeline.py's own 2-segment strand_weights is overwritten by it and whichever runs LAST wins. Must run AFTER export, BEFORE import. Nothing in garment.py enforces this \u2014 use clothing/reproduce_test1.py, which reads this block.",
|
||||
"tool": "clothing/skirt_garment_weights.py",
|
||||
"body": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/derived-bodies/Ariki_Female_QuatSkin_SkirtRig_4seg.glb",
|
||||
"env": {
|
||||
"SKIRT_HEM_FREE": "0.02",
|
||||
"SKIRT_FOLLOW_MAX": "0.70",
|
||||
"SKIRT_CONTACT_R": "0.22",
|
||||
"SKIRT_FALLOFF": "0.14"
|
||||
},
|
||||
"_why_env": "The tool's defaults (FOLLOW_MAX 0.20, HEM_FREE 0.55) were tuned against the SHORT continuous piupiu. This skirt hangs to y 0.451 with the knee at ~0.517, so HEM_FREE 0.55 put the whole knee region in the no-follow band and the knee came through the cloth. These values lift mean thigh follow 0.128 -> 0.698, which is what carries cloth WITH the knee. Env overrides were ADDED to that script by this session; its defaults are unchanged so other garments are unaffected.",
|
||||
"expect": "mean thigh follow ~0.70, NO dead strands (all 8 non-zero)"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user