From fea96bf5823cfefb922deb98e32daf0973e0d6d4 Mon Sep 17 00:00:00 2001 From: Can Narin Date: Tue, 18 Aug 2026 16:21:16 +0300 Subject: [PATCH] tailor(mako): kilt v2 on Mako via Lena donor-swap -- MD rejects all Mako meshes First male garment through the MD lane. MD's body analyzer rejects every Tripo-Mako-derived mesh (0 arrangement points, 'avatar must be in T-pose or A-pose' despite a verified 0.4-deg-perfect skeleton; same wall as ariki-game e244e8a). Chimera test pins it on the MESH -- Lena's mesh on Mako's armature gets 109 points. Ruled out: finger weights, decimation, head/hand chops, leg spread, rename, OBJ import, export settings. Workaround that ships: arrange+sew+elastic-lock the garment on a 1.07x-scaled LENA donor, ImportFBX Mako with bAdd, DeleteAvatar(Lena), re-settle. A seamless single-wrap slides off Mako's legs during the swap -- only SEWN garments survive it, so the flat pattern's wrap reads are faked: overlap flap seamed to a split front-waist segment, comb-teeth fringe (piupiu technique) carved into the hem, rope belt as rigid Blender geometry (build_rope_belt.py). Other findings baked into work/mako_kilt_v1/ scripts + config: - fabric texture anchor: pattern y=0 maps to texture v=0.5 and WRAPS (striped-probe verified; make_kilt_cloth.py mm_from_row) - waist elastic never reaches TotalLength at default strength; strength 60 moved placement from 1.019 to 1.043 - SetAvatarActivation returns False (unusable); GetArrangementList dies on any scene avatar mutation QC PASS (turntable render, alpha mask, height 1.818): top 1.063 vs 1.054 target (tol .03), fringe tips 0.666 vs 0.665 (tol .04). Avatars: _fingers = full finger weights restored via UV-space transfer from rig-work/mako_fullhead_rigged.fbx (build_mako_avatar_fingers.py); shipped-body avatar landed for future diagnosis. v1 (pre-flap/teeth) kept as provenance. Co-Authored-By: Claude Fable 5 --- tools/tailor/_import_mako_avatar.py | 26 +++ .../Mako_Fullhead_QuatSkin_Avatar_fingers.fbx | 3 + .../avatar/Mako_Shipped_QuatSkin_Avatar.fbx | 3 + tools/tailor/mako_kilt_v1.zpac | 3 + tools/tailor/mako_kilt_v1.zprj | 3 + .../tailor/mako_kilt_v1_Default Colorway.png | Bin 0 -> 131729 bytes tools/tailor/mako_kilt_v1_garment.fbx | 3 + tools/tailor/mako_kilt_v1_garment.mtl | 10 + tools/tailor/mako_kilt_v1_garment.obj | 3 + tools/tailor/mako_kilt_v2.zpac | 3 + tools/tailor/mako_kilt_v2.zprj | 3 + .../tailor/mako_kilt_v2_Default Colorway.png | Bin 0 -> 133579 bytes tools/tailor/mako_kilt_v2_belt.mtl | 12 ++ tools/tailor/mako_kilt_v2_belt.obj | 3 + tools/tailor/mako_kilt_v2_garment.fbx | 3 + tools/tailor/mako_kilt_v2_garment.mtl | 10 + tools/tailor/mako_kilt_v2_garment.obj | 3 + .../screenshots/kilt_v2_fitted_lena.png | Bin 0 -> 68129 bytes tools/tailor/screenshots/kilt_v2_presim.png | Bin 0 -> 68963 bytes .../screenshots/kilt_v2_probe_front.png | Bin 0 -> 70102 bytes .../tailor/screenshots/kilt_v2_probe_top.png | Bin 0 -> 46123 bytes .../screenshots/kilt_v2b_presim_lena.png | Bin 0 -> 71713 bytes .../tailor/screenshots/mako_kilt_v1_back.png | Bin 0 -> 341404 bytes .../screenshots/mako_kilt_v1_fitted_lena.png | Bin 0 -> 67366 bytes .../tailor/screenshots/mako_kilt_v1_front.png | Bin 0 -> 53595 bytes .../screenshots/mako_kilt_v1_front_hd.png | Bin 0 -> 372257 bytes .../screenshots/mako_kilt_v1_presim.png | Bin 0 -> 49570 bytes .../screenshots/mako_kilt_v1_presim_lena.png | Bin 0 -> 69338 bytes .../screenshots/mako_kilt_v1_side_hd.png | Bin 0 -> 287657 bytes .../tailor/screenshots/mako_kilt_v2_back.png | Bin 0 -> 341598 bytes .../screenshots/mako_kilt_v2_belt_front.png | Bin 0 -> 1111044 bytes .../mako_kilt_v2_belt_threequarter.png | Bin 0 -> 1121875 bytes .../tailor/screenshots/mako_kilt_v2_front.png | Bin 0 -> 54291 bytes .../screenshots/mako_kilt_v2_front_hd.png | Bin 0 -> 379173 bytes .../screenshots/mako_kilt_v2_side_hd.png | Bin 0 -> 298802 bytes tools/tailor/textures/kilt_cloth.png | Bin 0 -> 321161 bytes tools/tailor/textures/make_kilt_cloth.py | 186 ++++++++++++++++++ .../_diag_chimera_lena_mesh_mako_arm.py | 37 ++++ .../mako_kilt_v1/_diag_repose_mako_tpose.py | 109 ++++++++++ .../mako_kilt_v1/build_mako_avatar_fingers.py | 113 +++++++++++ .../work/mako_kilt_v1/build_rope_belt.py | 163 +++++++++++++++ tools/tailor/work/mako_kilt_v1/config.json | 122 ++++++++++++ tools/tailor/work/mako_kilt_v1/md_script.py | 166 ++++++++++++++++ .../work/mako_kilt_v1/md_script_swap.py | 148 ++++++++++++++ .../tailor/work/mako_kilt_v1/md_script_v2b.py | 168 ++++++++++++++++ tools/tailor/work/mako_kilt_v1/wrap_finish.py | 80 ++++++++ tools/tailor/work/mako_kilt_v1/wrap_probe.py | 67 +++++++ 47 files changed, 1450 insertions(+) create mode 100644 tools/tailor/_import_mako_avatar.py create mode 100644 tools/tailor/avatar/Mako_Fullhead_QuatSkin_Avatar_fingers.fbx create mode 100644 tools/tailor/avatar/Mako_Shipped_QuatSkin_Avatar.fbx create mode 100644 tools/tailor/mako_kilt_v1.zpac create mode 100644 tools/tailor/mako_kilt_v1.zprj create mode 100644 tools/tailor/mako_kilt_v1_Default Colorway.png create mode 100644 tools/tailor/mako_kilt_v1_garment.fbx create mode 100644 tools/tailor/mako_kilt_v1_garment.mtl create mode 100644 tools/tailor/mako_kilt_v1_garment.obj create mode 100644 tools/tailor/mako_kilt_v2.zpac create mode 100644 tools/tailor/mako_kilt_v2.zprj create mode 100644 tools/tailor/mako_kilt_v2_Default Colorway.png create mode 100644 tools/tailor/mako_kilt_v2_belt.mtl create mode 100644 tools/tailor/mako_kilt_v2_belt.obj create mode 100644 tools/tailor/mako_kilt_v2_garment.fbx create mode 100644 tools/tailor/mako_kilt_v2_garment.mtl create mode 100644 tools/tailor/mako_kilt_v2_garment.obj create mode 100644 tools/tailor/screenshots/kilt_v2_fitted_lena.png create mode 100644 tools/tailor/screenshots/kilt_v2_presim.png create mode 100644 tools/tailor/screenshots/kilt_v2_probe_front.png create mode 100644 tools/tailor/screenshots/kilt_v2_probe_top.png create mode 100644 tools/tailor/screenshots/kilt_v2b_presim_lena.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_back.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_fitted_lena.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_front.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_front_hd.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_presim.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_presim_lena.png create mode 100644 tools/tailor/screenshots/mako_kilt_v1_side_hd.png create mode 100644 tools/tailor/screenshots/mako_kilt_v2_back.png create mode 100644 tools/tailor/screenshots/mako_kilt_v2_belt_front.png create mode 100644 tools/tailor/screenshots/mako_kilt_v2_belt_threequarter.png create mode 100644 tools/tailor/screenshots/mako_kilt_v2_front.png create mode 100644 tools/tailor/screenshots/mako_kilt_v2_front_hd.png create mode 100644 tools/tailor/screenshots/mako_kilt_v2_side_hd.png create mode 100644 tools/tailor/textures/kilt_cloth.png create mode 100644 tools/tailor/textures/make_kilt_cloth.py create mode 100644 tools/tailor/work/mako_kilt_v1/_diag_chimera_lena_mesh_mako_arm.py create mode 100644 tools/tailor/work/mako_kilt_v1/_diag_repose_mako_tpose.py create mode 100644 tools/tailor/work/mako_kilt_v1/build_mako_avatar_fingers.py create mode 100644 tools/tailor/work/mako_kilt_v1/build_rope_belt.py create mode 100644 tools/tailor/work/mako_kilt_v1/config.json create mode 100644 tools/tailor/work/mako_kilt_v1/md_script.py create mode 100644 tools/tailor/work/mako_kilt_v1/md_script_swap.py create mode 100644 tools/tailor/work/mako_kilt_v1/md_script_v2b.py create mode 100644 tools/tailor/work/mako_kilt_v1/wrap_finish.py create mode 100644 tools/tailor/work/mako_kilt_v1/wrap_probe.py diff --git a/tools/tailor/_import_mako_avatar.py b/tools/tailor/_import_mako_avatar.py new file mode 100644 index 0000000..d8f96b5 --- /dev/null +++ b/tools/tailor/_import_mako_avatar.py @@ -0,0 +1,26 @@ +# Import Mako (latest male base, mako_base_v01) as the MD avatar. +# Run via: python tools/md_bridge.py --file tools/tailor/_import_mako_avatar.py --timeout 300 +import os + +AVATAR_FBX = r"C:\Users\CAN\tinqs-ltd\animation\tools\tailor\avatar\Mako_Fullhead_QuatSkin_Avatar.fbx" +SNAP = r"C:\Users\CAN\tinqs-ltd\animation\tools\tailor\screenshots\_mako_import_check.png" + +report = {} + +utility_api.NewProject() +op = ApiTypes.ImportExportOption() +op.scale = 10.0 # Blender-exported FBX lands 10x small +op.bAddArrangementPoints = True # ~98 named points to hang cloth on +op.bAutoTranslate = True +report["avatar_imported"] = import_api.ImportFBX(AVATAR_FBX, op) + +report["avatar_count"] = export_api.GetAvatarCount() +report["avatar_names"] = export_api.GetAvatarNameList() +arr = pattern_api.GetArrangementList() +report["arrangement_points"] = len(arr) if arr else 0 + +utility_api.SetCamViewPoint(2) # front view for comparable QC shots +snaps = export_api.ExportSnapshot3D(SNAP) +report["snapshot"] = SNAP if os.path.exists(SNAP) else snaps + +result = report diff --git a/tools/tailor/avatar/Mako_Fullhead_QuatSkin_Avatar_fingers.fbx b/tools/tailor/avatar/Mako_Fullhead_QuatSkin_Avatar_fingers.fbx new file mode 100644 index 0000000..32a64cf --- /dev/null +++ b/tools/tailor/avatar/Mako_Fullhead_QuatSkin_Avatar_fingers.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eec2d2e11231f4619bd3d86ed82485ac938ef6ff07e4c373262cbbbff0065fb1 +size 7676588 diff --git a/tools/tailor/avatar/Mako_Shipped_QuatSkin_Avatar.fbx b/tools/tailor/avatar/Mako_Shipped_QuatSkin_Avatar.fbx new file mode 100644 index 0000000..51c3df0 --- /dev/null +++ b/tools/tailor/avatar/Mako_Shipped_QuatSkin_Avatar.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9562ddb4fb9b42df39f1f8b5de6b190fdda1fd692f8f0539cba7fa632ad62bb +size 5455132 diff --git a/tools/tailor/mako_kilt_v1.zpac b/tools/tailor/mako_kilt_v1.zpac new file mode 100644 index 0000000..df1ed6d --- /dev/null +++ b/tools/tailor/mako_kilt_v1.zpac @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50acf21755e054071e87b77cc27b904e3ff79d44974884a685305b795bb8fd90 +size 1454459 diff --git a/tools/tailor/mako_kilt_v1.zprj b/tools/tailor/mako_kilt_v1.zprj new file mode 100644 index 0000000..509d036 --- /dev/null +++ b/tools/tailor/mako_kilt_v1.zprj @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b657e875ef53515de7aaf6ac16b5e32392ec2c5bdacf8c9a71a972906c6466f +size 9339780 diff --git a/tools/tailor/mako_kilt_v1_Default Colorway.png b/tools/tailor/mako_kilt_v1_Default Colorway.png new file mode 100644 index 0000000000000000000000000000000000000000..7519f4a94ba075d1c7ade9970f75d128fb3e06e4 GIT binary patch literal 131729 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�e+G6ZO5^(J;}hE;Wf>Gu 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