reorg(characters): ship-time folders — lena_base_v01 ships, lane moves to work/lena
REGISTRY rewritten around the central rule: a character folder is born only when a body ships to ariki-game (<character>_base_v<NN> = ship ordinal). lena_nude dissolves accordingly: - characters/female/lena_base_v01/ — SHIPPED 2026-08-10: AccuRig GLB carrier, T-pose/rig FBX + JSON, previews, frozen README - characters/work/lena/ — the live lane: recipes 01-47 (incl. new 36-47: refill/sheets/clay/despeckle/musculature/spin/AccuRig export/graft/pose QC), masters (athletic_v04 blend + textures, accurig blend), lane-history README - hires_claude/hires_work intermediates (blends, logs, probes) pruned Supporting docs: AGENTS.md, working-files rule, rig-graft plan addendum, originals README, prune_lane.py. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@@ -0,0 +1,42 @@
|
||||
# lena_base_v01 — SHIPPED 2026-08-10
|
||||
|
||||
**Frozen.** Nothing in this folder is ever edited or re-exported (REGISTRY rule 2).
|
||||
Any change at all becomes `lena_base_v02`.
|
||||
|
||||
The game's female base body. Nude sculpt (no bra, no briefs, no nipples, featureless
|
||||
crotch), athletic definition in the normal map, 65-bone Quaternius skeleton.
|
||||
|
||||
## Contents
|
||||
|
||||
| file | what |
|
||||
|---|---|
|
||||
| `lena_base_accurig_glb_v01.glb` | the body as it left this repo — mesh + atlas + AccuRig skeleton, 31,111 v / 101 joints. `doubleSided=true` |
|
||||
| `rig/lena_base_accurig_fbx_v01/` | **irreplaceable.** Output of a manual AccuRig 1.10.1822.1 session — no script regenerates this. Settings JSON kept alongside as provenance |
|
||||
| `rig/lena_base_tpose_fbx_v01.fbx` | the carrier fed *into* that AccuRig session. Regenerable (`45_accurig_export.py`) but kept so the rig is reproducible end to end |
|
||||
| `preview/` | renders of the shipped body |
|
||||
|
||||
## Where it went
|
||||
|
||||
Converted to the 65-bone contract by `ariki-game/tools/make_lena_nude_quatskin_accurig.py`
|
||||
and imported as:
|
||||
|
||||
- `Ariki_Female_QuatSkin_Nude.glb` — sha256 `75a51668fe6f084b60995fd257afd2ee8e4e6317d1676ff793675ca018f237b0`
|
||||
- `Ariki_Female_QuatSkin.glb` — same body, swapped in on 2026-08-10. The body it
|
||||
replaced is kept as `Ariki_Female_QuatSkin_PRESWAP_2026-08-10.glb.bak`.
|
||||
|
||||
Textures ship loose as `Ariki_Female_QuatSkin_Nude_athletic_v04_{base,normal,rm}.jpg`.
|
||||
|
||||
## Two facts that bite
|
||||
|
||||
- **`doubleSided=true` is load-bearing.** Patches of the mesh are wound inward; a
|
||||
single-sided material culls them into grey holes across her face and underbust.
|
||||
- **Two corrections live in the graft**, both solved by least-squares fit rather than
|
||||
hardcoded: the T-pose carrier was exported at 1.700 m (scale 0.576058) and AccuRig
|
||||
shifted the body ~11.77 mm. Same family as the July lane's 4 cm offset trap.
|
||||
|
||||
## Rebuilding / continuing
|
||||
|
||||
Recipes and masters are in `characters/work/lena/`. Start from
|
||||
`masters/athletic_v04.blend` (the game-res head, 31,111 v) or `masters/34_v04.blend`
|
||||
(the full-res sculpt head, 860,389 v). Full stage-by-stage history including the dead
|
||||
ends is in `work/lena/README_lane_history.md`.
|
||||
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.5 MiB |
|
After Width: | Height: | Size: 1.4 MiB |
|
After Width: | Height: | Size: 1.2 MiB |
@@ -0,0 +1,429 @@
|
||||
{
|
||||
"rename this": {
|
||||
"Version": "1.10.1822.1",
|
||||
"Scene": {
|
||||
"Name": true,
|
||||
"SupportShaderSelect": true
|
||||
},
|
||||
"Export Directory": "C:/Users/Jeremy/tinqs/animation/characters/female/lena_nude/rig",
|
||||
"Object": {
|
||||
"rename this": {
|
||||
"Generation": "AccuRig",
|
||||
"Physics": {
|
||||
"Collision Shapes": {
|
||||
"RL_BoneRoot": {},
|
||||
"CC_Base_Hip": {},
|
||||
"CC_Base_Pelvis": {},
|
||||
"CC_Base_L_Thigh": {},
|
||||
"CC_Base_L_Calf": {},
|
||||
"CC_Base_L_Foot": {},
|
||||
"CC_Base_L_ToeBaseShareBone": {},
|
||||
"CC_Base_L_ToeBase": {},
|
||||
"CC_Base_L_PinkyToe1": {},
|
||||
"CC_Base_L_RingToe1": {},
|
||||
"CC_Base_L_MidToe1": {},
|
||||
"CC_Base_L_IndexToe1": {},
|
||||
"CC_Base_L_BigToe1": {},
|
||||
"CC_Base_L_CalfTwist01": {},
|
||||
"CC_Base_L_CalfTwist02": {},
|
||||
"CC_Base_L_KneeShareBone": {},
|
||||
"CC_Base_L_ThighTwist01": {},
|
||||
"CC_Base_L_ThighTwist02": {},
|
||||
"CC_Base_R_Thigh": {},
|
||||
"CC_Base_R_ThighTwist01": {},
|
||||
"CC_Base_R_ThighTwist02": {},
|
||||
"CC_Base_R_Calf": {},
|
||||
"CC_Base_R_Foot": {},
|
||||
"CC_Base_R_ToeBase": {},
|
||||
"CC_Base_R_PinkyToe1": {},
|
||||
"CC_Base_R_BigToe1": {},
|
||||
"CC_Base_R_IndexToe1": {},
|
||||
"CC_Base_R_MidToe1": {},
|
||||
"CC_Base_R_RingToe1": {},
|
||||
"CC_Base_R_ToeBaseShareBone": {},
|
||||
"CC_Base_R_KneeShareBone": {},
|
||||
"CC_Base_R_CalfTwist01": {},
|
||||
"CC_Base_R_CalfTwist02": {},
|
||||
"CC_Base_Waist": {},
|
||||
"CC_Base_Spine01": {},
|
||||
"CC_Base_Spine02": {},
|
||||
"CC_Base_NeckTwist01": {},
|
||||
"CC_Base_NeckTwist02": {},
|
||||
"CC_Base_Head": {},
|
||||
"CC_Base_FacialBone": {},
|
||||
"CC_Base_JawRoot": {},
|
||||
"CC_Base_Tongue01": {},
|
||||
"CC_Base_Tongue02": {},
|
||||
"CC_Base_Tongue03": {},
|
||||
"CC_Base_Teeth02": {},
|
||||
"CC_Base_R_Eye": {},
|
||||
"CC_Base_L_Eye": {},
|
||||
"CC_Base_UpperJaw": {},
|
||||
"CC_Base_Teeth01": {},
|
||||
"CC_Base_L_Clavicle": {},
|
||||
"CC_Base_L_Upperarm": {},
|
||||
"CC_Base_L_Forearm": {},
|
||||
"CC_Base_L_ForearmTwist01": {},
|
||||
"CC_Base_L_ForearmTwist02": {},
|
||||
"CC_Base_L_ElbowShareBone": {},
|
||||
"CC_Base_L_Hand": {},
|
||||
"CC_Base_L_Mid1": {},
|
||||
"CC_Base_L_Mid2": {},
|
||||
"CC_Base_L_Mid3": {},
|
||||
"CC_Base_L_Index1": {},
|
||||
"CC_Base_L_Index2": {},
|
||||
"CC_Base_L_Index3": {},
|
||||
"CC_Base_L_Ring1": {},
|
||||
"CC_Base_L_Ring2": {},
|
||||
"CC_Base_L_Ring3": {},
|
||||
"CC_Base_L_Pinky1": {},
|
||||
"CC_Base_L_Pinky2": {},
|
||||
"CC_Base_L_Pinky3": {},
|
||||
"CC_Base_L_Thumb1": {},
|
||||
"CC_Base_L_Thumb2": {},
|
||||
"CC_Base_L_Thumb3": {},
|
||||
"CC_Base_L_UpperarmTwist01": {},
|
||||
"CC_Base_L_UpperarmTwist02": {},
|
||||
"CC_Base_R_Clavicle": {},
|
||||
"CC_Base_R_Upperarm": {},
|
||||
"CC_Base_R_UpperarmTwist01": {},
|
||||
"CC_Base_R_UpperarmTwist02": {},
|
||||
"CC_Base_R_Forearm": {},
|
||||
"CC_Base_R_ForearmTwist01": {},
|
||||
"CC_Base_R_ForearmTwist02": {},
|
||||
"CC_Base_R_ElbowShareBone": {},
|
||||
"CC_Base_R_Hand": {},
|
||||
"CC_Base_R_Mid1": {},
|
||||
"CC_Base_R_Mid2": {},
|
||||
"CC_Base_R_Mid3": {},
|
||||
"CC_Base_R_Ring1": {},
|
||||
"CC_Base_R_Ring2": {},
|
||||
"CC_Base_R_Ring3": {},
|
||||
"CC_Base_R_Thumb1": {},
|
||||
"CC_Base_R_Thumb2": {},
|
||||
"CC_Base_R_Thumb3": {},
|
||||
"CC_Base_R_Index1": {},
|
||||
"CC_Base_R_Index2": {},
|
||||
"CC_Base_R_Index3": {},
|
||||
"CC_Base_R_Pinky1": {},
|
||||
"CC_Base_R_Pinky2": {},
|
||||
"CC_Base_R_Pinky3": {},
|
||||
"CC_Base_R_RibsTwist": {},
|
||||
"CC_Base_R_Breast": {},
|
||||
"CC_Base_L_RibsTwist": {},
|
||||
"CC_Base_L_Breast": {},
|
||||
"meshes_0_": {}
|
||||
}
|
||||
},
|
||||
"ExpressionSet": "4",
|
||||
"Expression": {
|
||||
"V_None": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Open": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Explosive": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Dental_Lip": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tight_O": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tight": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Wide": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Affricate": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Lip_Open": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Raise": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Out": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Narrow": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Lower": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Curl_U": {
|
||||
"Bones": {}
|
||||
},
|
||||
"V_Tongue_Curl_D": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Inner_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Inner_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Outer_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Raise_Outer_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Drop_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Brow_Drop_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Nose_Sneer_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Nose_Sneer_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Raise_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Raise_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Puff_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Cheek_Puff_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Turn_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Tilt_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Tilt_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Forward": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Head_Backward": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_Open": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_Forward": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Jaw_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Out": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Tip_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Tip_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Narrow": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Wide": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Roll": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Bulge_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Tongue_Bulge_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Blink_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Blink_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Squint_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Squint_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Wide_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_Wide_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_Up": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_L_Look_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Eye_R_Look_Down": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Smile_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Smile_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Frown_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Frown_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Stretch_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Stretch_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Dimple_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Dimple_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Press_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Press_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Pucker": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Funnel": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Roll_In_Upper": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Roll_In_Lower": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Shrug_Upper": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Shrug_Lower": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Up_Upper_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Up_Upper_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Down_Lower_L": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Down_Lower_R": {
|
||||
"Bones": {}
|
||||
},
|
||||
"Mouth_Close": {
|
||||
"Bones": {}
|
||||
}
|
||||
},
|
||||
"Constraint": {},
|
||||
"Meshes": {
|
||||
"meshes_0_": {
|
||||
"SubD Level": 0,
|
||||
"Materials": {
|
||||
"Default": {
|
||||
"Material Type": "Pbr",
|
||||
"MultiUV Index": 0,
|
||||
"Two Side": true,
|
||||
"Diffuse Color": [
|
||||
255.0,
|
||||
255.0,
|
||||
255.0
|
||||
],
|
||||
"Ambient Color": [
|
||||
255.0,
|
||||
255.0,
|
||||
255.0
|
||||
],
|
||||
"Specular Color": [
|
||||
255.0,
|
||||
255.0,
|
||||
255.0
|
||||
],
|
||||
"Opacity": 1.0,
|
||||
"Self Illumination": 0.0,
|
||||
"Textures": {},
|
||||
"Resource Textures": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||