feat(characters): ship lena_leafbikini_base_v01 as female Ariki default
Lena with the leaf bikini sculpted into the mesh — a separate character descending from her own Tripo original, not a lena_base_v02. Full-res (1,029,360 v) at 1.777 m, now Ariki_Female_QuatSkin.glb + LOD1. First nearest-surface graft in the rig lane: AccuRig had to be fed a 20:1 decimated bait, so the index-exact graft the two earlier ships used was impossible. The bait recovers AccuRig's 9.346 mm offset in closed form, which makes it a required input forever — copied into the ship folder, and rig-work's "disposable" rule amended to say so. Mesh moved 0 mm, 0 unweighted verts. lena_base_v01 goes superseded, not rolled-back: she lost the default slot but Ariki_Female_QuatSkin_Nude.glb is untouched, so per rule 9 her folder stays put. Also lands the leaf-cut lane (work/lena_leafbikini): hue-keyed seam detection that removes the leaf shell and leaves both holes open by request, registered as a lane milestone with its sha256. Corrects the rig-work trap note — baits do carry embedded textures; it is AccuRig that strips them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+75
-2
@@ -139,7 +139,7 @@ names without touching the immutable delivered files.
|
||||
|---|---|---|---|
|
||||
| `lena` | female | `female_lena_tripo` | `lena_base_v01` |
|
||||
| `mako` | male | `male_base_bald_tripo_v1` | `mako_base_v01` |
|
||||
| `lena_leafbikini` | female | `female_lena_leafbikini_tripo` | — (none yet; ancestor registered 2026-08-13, derivatives pending) |
|
||||
| `lena_leafbikini` | female | `female_lena_leafbikini_tripo` | `lena_leafbikini_base_v01` (live lane: `work/lena_leafbikini`) |
|
||||
|
||||
Spelling history for the male: game wiki "Mako", AccuRig-era typo "moka", also "moko".
|
||||
Canonical filename token is **`mako`**; the others are never used in new files.
|
||||
@@ -152,8 +152,15 @@ Status vocabulary: `shipped / superseded / rolled-back`.
|
||||
|
||||
| folder | character | date | status | ship name in ariki-game | sha256 (repo-side body) |
|
||||
|---|---|---|---|---|---|
|
||||
| `female/lena_base_v01` | `lena` | 2026-08-10 | shipped | `Ariki_Female_QuatSkin_Nude.glb`, and swapped into `Ariki_Female_QuatSkin.glb` | `0d602accef0992a6a0dfffa5b73b1f9b702400df5258ff7517f786f11050f4d0` |
|
||||
| `female/lena_base_v01` | `lena` | 2026-08-10 | superseded | `Ariki_Female_QuatSkin_Nude.glb`, and swapped into `Ariki_Female_QuatSkin.glb` | `0d602accef0992a6a0dfffa5b73b1f9b702400df5258ff7517f786f11050f4d0` |
|
||||
| `male/mako_base_v01` | `mako` | 2026-08-12 | shipped | `Ariki_Male_Mako.glb` (male Ariki default, lineage `MALE-MAKO-FULLHEAD-V1`) | `220714a2fb6283188be3834214877204533fde78de9a6ffa03ed85e1167735d3` |
|
||||
| `female/lena_leafbikini_base_v01` | `lena_leafbikini` | 2026-08-13 | shipped | `Ariki_Female_QuatSkin.glb` (female Ariki default) + `Ariki_Female_QuatSkin_LowPoly_40.glb` (LOD1) | `bbfd8ac3919ad171cab76d62bec133d1f149ee3cf3c5d27f7408d502e99d678e` |
|
||||
|
||||
`lena_base_v01` is marked **superseded**, not rolled-back: she was displaced from
|
||||
`Ariki_Female_QuatSkin.glb` on 2026-08-13 but her own ship name
|
||||
`Ariki_Female_QuatSkin_Nude.glb` is untouched and still in the game. Per rule 9 her folder
|
||||
moves to `characters/archive/` only when that file goes too. Nothing about her was wrong —
|
||||
the game simply changed which body is the female default.
|
||||
|
||||
### `lena_base_v01` — what it is
|
||||
|
||||
@@ -200,3 +207,69 @@ Lena's head, `MALE-MAKO-D-V1`, kept on disk as comparison) as the male Ariki def
|
||||
**Known decisions:** height 1.818 m is provisional (IB-lane taller-than-Lena convention,
|
||||
not eye-locked); ship name avoids the `QuatSkin`/`QuatBody` tokens because
|
||||
`PlayerController` string-gates on them; no male LOD1 yet. Details in the folder README.
|
||||
|
||||
### `lena_leafbikini_base_v01` — what it is
|
||||
|
||||
Lena wearing a leaf bikini **sculpted into the mesh** — not a garment, so there is no cloth
|
||||
to fit and no OutfitCatalog entry. Full-resolution Tripo scan (999,823 v after weld) at
|
||||
1.777 m, the game's female default from 2026-08-13.
|
||||
|
||||
She is the first ship of a **separate character**, not a `lena_base_v02`: she descends from
|
||||
her own Tripo original and shares no geometry with the nude sculpt, which is why the
|
||||
Characters table has carried a `lena_leafbikini` row since the ancestor was registered.
|
||||
|
||||
| step | what happened |
|
||||
|---|---|
|
||||
| bait | `tools/rigbait_decimate.py` body 24k / head 14k / hands 40k → 51,682 v, no scale, no recenter |
|
||||
| rig | AccuRig 1.10.1822.1, manual, on the bait → 101 `CC_Base_*` bones |
|
||||
| graft | **nearest-surface** (`work/lena_leafbikini/01_graft.py`) — 51,682 v carrier onto the 1,029,360 v pristine mesh; mesh moved 0 mm, 0 unweighted verts, rest-pose drift 0.000239 mm |
|
||||
| quatskin | `ariki-game/tools/make_lena_fullres_quatskin.py` `LENA_CLEAR_SPLIT_NORMALS=1` → 65 joints, 1.777 m, rigid mitts |
|
||||
|
||||
**First nearest-surface graft in this lane.** The two earlier ships were index-exact because
|
||||
AccuRig had been given the shipping mesh whole; a 20:1 decimated bait makes that impossible.
|
||||
AccuRig's 9.346 mm offset is recovered in closed form by fitting the rigged carrier against
|
||||
the **bait**, which is index-exact with it and already in the GLB's space — so the bait is a
|
||||
required input to the graft, not disposable, and lives in the ship folder.
|
||||
|
||||
**Known decisions:** single-sided, unlike `lena_base_v01` whose `doubleSided=true` was forced
|
||||
by inward-wound patches this mesh does not have; no `Ariki_*_LeafBikini.glb` companion file
|
||||
(the `_Nude.glb` precedent would have cost a duplicate 79 MB full-res body in LFS and a
|
||||
duplicate Godot import — the new `LENA_OUT_GLB` override writes the canonical name directly);
|
||||
LOD1 is 391,948 v, far heavier than the 14,559 v body it replaced, because
|
||||
`make_lena_lowpoly.py` protects the head at full resolution and this head alone is 103,225 v.
|
||||
|
||||
---
|
||||
|
||||
## Lane artifacts (not ships)
|
||||
|
||||
Rule 11 exempts `work/` from the folder grammar and from rule 10, so nothing below has —
|
||||
or needs — a Ships row. They are listed here because they are *registered lane milestones*:
|
||||
someone else must be able to find out what a heavy binary sitting in a gitignored `v0N/`
|
||||
dir is, and why. Each is `git add -f`'d against `characters/work/*/v0[0-9]/`, exactly as
|
||||
that .gitignore rule anticipates.
|
||||
|
||||
| file | sha256 | date | built by | what it is |
|
||||
|---|---|---|---|---|
|
||||
| `work/lena_leafbikini/v01/lena_leafbikini_leafcut_sculpt_glb_v01.glb` | `8aa3421e98e985b57bda222a5cee6fd87343b6b773376c740bd907ae08db8897` | 2026-08-13 | `work/lena_leafbikini/04`+`05` | the leaf bikini **cut away at its seam, holes left open** |
|
||||
|
||||
### `lena_leafbikini_leafcut_sculpt_glb_v01` — what it is
|
||||
|
||||
`originals/female/female_lena_leafbikini_tripo.glb` with the leaf geometry deleted along
|
||||
the line where it stops being Lena: 474,224 faces and 247,658 vertices removed (23.8% /
|
||||
24.1%), leaving two open holes — bust and briefs. **The holes are not filled, by request.**
|
||||
It exists so the seam itself can be judged before any repair is designed.
|
||||
|
||||
The leaves are welded into the body — one Tripo mesh, one material, one UV map — so they
|
||||
are a bulge in the body surface, not a separable object. They are also **real geometry**,
|
||||
which is the opposite of the case `lena_base_v01` had to solve: there the sculpted-in
|
||||
underwear *was* the skin, painted on, so deleting it opened a hole and the fix was to
|
||||
re-fair a rim crease (`tools/make_lena_nude_body.py`). Here there is a shell to remove, and
|
||||
the seam is found by a **hue key** — skin 20–40°, leaf 60–80° — repaired on the mesh over
|
||||
position-welded adjacency, then grown 2 rings so the cut lands just outside the rim.
|
||||
`work/lena_leafbikini/README.md` carries the full reasoning and the regeneration commands.
|
||||
|
||||
Unrigged, because it was authored on the pristine original. That costs nothing: the graft
|
||||
that produced the ship moved the mesh 0.000000 mm, so `lena_leafbikini_base_v01` holds the
|
||||
same 1,029,360 vertices in the same order and `work/lena_leafbikini/leaf_mask.npz` indexes
|
||||
either mesh. Cutting the shipped body is the same stage 05 with a different input — and
|
||||
per rule 2 its result is a new ship folder, never an edit to the frozen one.
|
||||
|
||||
Reference in New Issue
Block a user