Raise character limits and document optional Blender MCP
This commit is contained in:
1 parent
50a48d2256
commit
aec1fb7b69
20 files changed
+303
-96
No files matched your search
@@ -17,8 +17,8 @@ The MIT Blender skill pack lives locally at `.agents/skills/blender-skills/` (gi
|
||||
Goal: replace the sphere-and-primitive face and hand construction with a local, part-based
|
||||
development pipeline that can build, inspect and compare the **head/face** and **hands** separately
|
||||
before assembling them into the shipped character. Prioritise face readability at portrait
|
||||
distance, then hand silhouette and gear contact. Preserve the `npc_base` contract, the 13-bone rig,
|
||||
five tint slots, 8,000/8,000 character cap and Compatibility/Web path.
|
||||
distance, then hand silhouette and gear contact. Preserve the `npc_base` contract, the 13 core-bone rig (optional extra bones allowed),
|
||||
five tint slots, 16,000/16,000 character cap, optional extra bones beyond the required 13, and the Compatibility/Web path.
|
||||
|
||||
*Skill route: `character-artist`, `retopology`, `sculpting`, `rigging`, `uv-workflow`,
|
||||
`texture-workflow`, `materials`, `lookdev`, `asset-optimization`, `qa-review`.*
|
||||
@@ -42,7 +42,7 @@ the rest of §C remains the broad review checklist.
|
||||
UV layout and the exact locations of eye/mouth/finger geometry.
|
||||
- [ ] Define measurable acceptance: face front/three-quarter/profile at 1.5 m and 1.85 m; hands
|
||||
open and gripping at 0.8 m; silhouette, eye/mouth readability, ear/nose/jaw planes, finger
|
||||
separation and gear contact. Keep the 8,000/8,000 cap; no contract or renderer change.
|
||||
separation and gear contact. Keep the 16,000/16,000 cap; optional extra bones are allowed, but the required 13 core bones and rest positions must not move.
|
||||
- [ ] Confirm the identity boundary: `npc_base.blend` is the frozen fallback and must not absorb
|
||||
prototype detail unless a separate contract decision approves it.
|
||||
- [ ] Choose a local working-set layout: `tmp/npc-parts/<variant>/` (gitignored) for part `.blend`
|
||||
@@ -61,6 +61,10 @@ the rest of §C remains the broad review checklist.
|
||||
- [ ] Add tests for deterministic part assembly, contract output (mesh root, bones, slots, budgets)
|
||||
and the non-Blender failure path. Verify one assembled prototype with `audit`/`fit`/`inspect`
|
||||
before touching production variants.
|
||||
- [x] Consider optional Blender MCP for interactive part exploration and document setup/safety.
|
||||
(`docs/blender-mcp.md` covers addon/client setup, Pi `pi mcp add`, flatpak networking,
|
||||
viewport/`bpy` workflow and the rule that headless audit/fit remains authoritative; MCP is
|
||||
not a build/CI/runtime dependency.)
|
||||
- [ ] Document the commands, working-set paths and “part source is not a shipped asset” rule in
|
||||
`docs/asset-tooling.md`, `docs/blender-assets.md` and
|
||||
`.agents/skills/gig-line-blender-asset-contract/references/verification.md`.
|
||||
@@ -84,8 +88,9 @@ the rest of §C remains the broad review checklist.
|
||||
- [ ] Build separate left/right hand parts with a connected palm, four multi-segment fingers, a
|
||||
thumb, knuckles and rounded tips. Support an open palm and a relaxed grip; preserve the
|
||||
current `HAND_ITEM_FORWARD` behaviour for phone/cup/clipboard/camera/flashlight/wand/radio.
|
||||
- [ ] Decide finger articulation explicitly: the 13-bone contract has no finger bones, so keep the
|
||||
open/relaxed-palm approach unless an ADR approves extra bones and the budget/weight path.
|
||||
- [ ] Decide finger articulation explicitly: the current rig has no finger bones, so keep the
|
||||
open/relaxed-palm approach unless an ADR approves optional finger bones and the
|
||||
budget/weight path.
|
||||
- [ ] Verify all hand gear at 0.8 m (contact, clipping, direction) and capture open/grip hand
|
||||
close-ups for the review sheet.
|
||||
- [ ] Roll the approved hands into all 12 variants only after the one-variant hand sheet passes.
|
||||
@@ -93,7 +98,8 @@ the rest of §C remains the broad review checklist.
|
||||
### 5. Assembly and rollout
|
||||
|
||||
- [ ] Integrate the approved parts into `build_character` with deterministic joins, weights, UVs and
|
||||
AO. The final output remains one `npc_base` skinned mesh under the existing 13-bone armature;
|
||||
AO. The final output remains one `npc_base` skinned mesh under the existing 13-core armature;
|
||||
optional extra bones are allowed but the core rest positions stay fixed;
|
||||
no second rig, no material-slot rename.
|
||||
- [ ] Keep the MakeHuman body prototype consumable with the same approved head/hands; do not let it
|
||||
grow a second face/hand implementation while the part pipeline is being proven.
|
||||
@@ -148,11 +154,11 @@ an active track; ADR-0015 (CC0 / CC-BY with attribution) still governs every int
|
||||
### Intake and adaptation
|
||||
|
||||
- [x] `adapt` path added to `tools/blender_assets.py` (`adapt --file <in> --out <out>
|
||||
[--target-tris 8000]`): imports the GLB, applies transforms, grounds the feet, welds seam
|
||||
splits and decimates to the budget, then exports. The five tint slots + 13-bone rig stay a
|
||||
manual step (recorded in the command doc).
|
||||
[--target-tris 16000]`): imports the GLB, applies transforms, grounds the feet, welds seam
|
||||
splits and decimates to the budget, then exports. The five tint slots + 13-core rig
|
||||
(optional extra bones allowed) stay a manual step (recorded in the command doc).
|
||||
- [x] `audit` stays the final gate; `test_adapt_requires_blender` covers the non-Blender error
|
||||
path (161/161 Python).
|
||||
path (162/162 Python).
|
||||
- [x] Adapter commands + go/no-go documented in `docs/asset-tooling.md` §Intake adaptation.
|
||||
|
||||
### MPFB / MakeHuman body pipeline
|
||||
@@ -163,18 +169,18 @@ an active track; ADR-0015 (CC0 / CC-BY with attribution) still governs every int
|
||||
x ±0.53 / y 0–1.82 / z −0.12…+0.35, one neutral material, UVs present, unskinned. The
|
||||
body (no rig) is the input for the rigging step; the script + mesh stay in `tmp/` (CC0, not
|
||||
committed).
|
||||
- [x] Rig strategy decided (owner): **retarget the body to the 13-bone contract**.
|
||||
- [x] Rig strategy decided (owner): **retarget the body to the 13-core contract; optional extra bones are allowed**.
|
||||
`tmp/npc-research/makehuman_retarget.py` rotates the A-pose arms down (−38°/+38°), scales the
|
||||
arms 1.63× to the contract 0.70 m length, welds the split vertices, smooth-shades, adds the
|
||||
contract armature + `_auto_weights`, paints the five slot regions (hair/cloth/pants/accessory/
|
||||
skin) and exports `makehuman_retargeted.glb`. **Contract passes:** 6,444 / 8,000 tris,
|
||||
7,726 / 8,000 verts, 14 bones (13 + Hips), skinned, arm-down, grounded, five slots, no issues.
|
||||
skin) and exports `makehuman_retargeted.glb`. **Contract passes:** 6,444 / 16,000 tris,
|
||||
7,726 / 16,000 verts, 14 bones (13 + Hips), skinned, arm-down, grounded, five slots, no issues.
|
||||
Vision-reviewed: arms hang down and the silhouette + slot regions read, but the 1.63× arm warp
|
||||
distorts the deltoid/shoulder (spiky/warped), the decimated hands are blocky, and the slot
|
||||
boundaries are rough — these are the refinement steps below.
|
||||
- [x] Head/hands/feet swap (`makehuman_final.py`): cut the decimated MakeHuman head/hands/feet and
|
||||
joined the project's `_face`/`_hair`/`_hands_and_shoes`, then re-weighted/re-UV'd. Contract
|
||||
passes: 6,407 / 8,000 tris, 6,651 / 8,000 verts, 14 bones, skinned, five slots, no issues.
|
||||
passes: 6,407 / 16,000 tris, 6,651 / 16,000 verts, 14 bones, skinned, five slots, no issues.
|
||||
Vision-reviewed: the head now reads as a realistic face, the hands as detailed fingers and
|
||||
the shoes as attached. Remaining (manual retopology): a 1.63× arm-scale warp still distorts
|
||||
the deltoid/shoulder, stray hand blobs linger at the hips, shirt/shirt seams are rough, and
|
||||
@@ -299,9 +305,11 @@ licence-free zone only.
|
||||
- [x] Hands/grip review: the hands ARE detailed — `tools/blender_assets.py._hands_and_shoes()`
|
||||
builds a wider shallower palm, four two-segment bent fingers with rounded tips and a thumb;
|
||||
gear contact is the open palm plus the `HAND_ITEM_FORWARD` (0.04 m) offset. Decision: **keep
|
||||
the open palm + forward offset; a finger-curl rig stays out of scope** — there are no finger
|
||||
bones in the 13-bone contract, so a curl rig is a contract decision, not a modelling tidy-up.
|
||||
Recorded as ranked gap #6 (accept; revisit only if face work opens the budget).
|
||||
the open palm + forward offset; a finger-curl rig stays out of scope** — the current rig has
|
||||
no finger bones, so a curl rig is a contract decision, not a modelling tidy-up. Optional
|
||||
extra finger bones are now allowed by the cap/contract extension, but require an ADR and
|
||||
weight/budget verification. Recorded as ranked gap #6 (accept; revisit only if face work
|
||||
opens the budget).
|
||||
- [x] Weights/pose evidence captured and vision-reviewed, and the P1s fixed: wrist/hand
|
||||
detachment (wrist + hand now 100% `Hand`, hand raised, sleeve cuff follows the hand),
|
||||
hip/thigh collapse + knee pinch (thigh/shin rigid with a short knee blend). Vision-verified:
|
||||
|
||||
Reference in new issue
Block a user