Repository navigation
feat: step 9c — the side locks and the skirt answer the world, through the producer's cloth recipe (#12) - #14
Merged
Merged
Conversation
…h the producer's cloth recipe (#12) The walkthrough's build declared no constraints: the hair and the skirt moved only where the idle or the hello keyed them. Step 9c writes a `cloth` block (bottomwear: 3 chains x 3 links with a swing; front hair: 1 chain x 3 links, edge strength 100), runs `rig-parts propose --cloth --write-config`, and rebuilds with `--loop --lead-in 1`: - the recipe drafts 27 physics + 3 transform constraints (the two side locks -> lockt0_/lock1t0_, the fringe, skirt0_..2_ + skirt_swing under hip); bones 70 -> 46; their idle keys are removed; the bun (back hair above the shoulders) is not reached and keeps its key - hello.ts gains --no-skirt-keys: in 9c the skirt is left to physics (without physics the keys are still needed: thigh_l|bottomwear 48 px) - two corrections the draft needs on this example, shown as commands: the bun track's amplitude 0.8 -> 1 (CHECK_CHAIN_LAG reads neck > head_ctl > bun_ctl as one chain once the siblings' keys are gone) and lock edge strength 100 (default 50 ghosts 122 px at the head turn) - bars on idle and hello with physics on: all 15 seam pairs within gap <= 25 / ghost <= 50 (closest face|hair_front 7/47), pass-through 0/81 and 0/97, ANIMATIONS_DO_NOT_FOLD PASS, check PASS, build PASS, sleeve_r0 4.00 deg; CLOTH_SETTLES WARN (skirt trees settle in 1.8-2.0 s, hair does not) reported as is - README as written reproduces from a clean folder on parts 1.49.1 (published mid-task) byte-identical to the 1.48.0 build measured; check-adapters runs 9c and asserts the constraints Closes #12 Co-Authored-By: Roa <342598975+fj-roa[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #12. Owner: "딴 머리 치마에 물리도 넣어줘" → narrowed to the two front side locks + the skirt ("땋은머리는 사실 안보여서 앞머리 양옆 두갈래만").
What
clothblock (bottomwear: 3 chains × 3 links, swing scales [1.2, 1, 1.2];front hair: 1 chain × 3 links, edge strength 100),rig-parts propose --cloth config.json --write-config, thenrig-parts build … --loop --lead-in 1. Producer-first: the recipe drafts everything (27 physics + 3 transform constraints: the side locks aslockt0_/lock1t0_, the fringebang_*,skirt0_..2_+skirt_swingunderhip); their idle keys are removed; bones 70 → 46. The bun isback hairabove the shoulders, which the recipe refuses — it keeps its key (the owner said the braid is not visible).scripts/hello.ts --no-skirt-keys: in 9c the skirt is left to physics. Step 9b is byte-identical to PR feat: step 9b — a hello the producer builds: hm? → heh → elbow-down wave → weight-shift settle (#9) #11 (without physics the keys are still needed:thigh_l|bottomwearreads 48 px without them).CHECK_CHAIN_LAGreadsneck > head_ctl > bun_ctlas one chain once the siblings' keys are gone — the recipe as drafted failscheckhere; filed upstream) and lock edge strength 100 (the default 50 ghosts 122 px at the "hm?" head turn).check-adapters.tsruns 9c and asserts 27 physics + 3 transforms and the named constraints. REFERENCE: constraint table, build lines, bars, angle/tip readings, wind reading, timings, versions.Build lines:
loop physics: 27 physics constraint(s) left out …;CLOTH_SETTLES: WARN — 9 physics chain(s) …: 4 of them settle before the loop's length(skirt trees 1.8–2.0 s, hair does not settle) — reported as is;ANIMATIONS_DO_NOT_FOLD: PASSon and off;check: PASS; 11 of 12, 1 skipped, 5 warnings (SEAM_OVER_MOTION, CLOTH_SETTLES);build: PASS. Without--lead-in,idle.gifjumps at the wrap (max |d| 209); with--lead-in 1, 0.Bars (stated first; rigc render 24 fps, physics on from rest): all 15 seam pairs within gap ≤ 25 / ghost ≤ 50 on both idle and hello (closest
face|hair_front7/47 on the hello); pass-through 0/81 idle, 0/97 hello;sleeve_r04.00°.What it moves: hello — locks trail the head ≈ 5 px, fringe ≈ 10 px at the "hm?" turn, skirt swing ≈ 3° / hem ≈ 7 px at the settle. Idle — after the 2 s settle the hair is near still (0.2–0.4 px) and the skirt < 0.01 px: by the parts guide's design a breath does not drive physics; the world does (wind reading: locks 9–10 px, hems 8–13 px under wind (2, 0)). Candidly, the idle now looks quieter than step 8's keyed 3.6° lock sway; a page-side wind through play's
environment()would make it visible — not in this PR.Reproduction: README as written from a clean folder,
bun addresolved parts 1.49.1 (published mid-task): every expected line held;hello.anim.json,config.json,skeleton.json,skeleton.model.json,skeleton.png,idle.gifbyte-identical to the 1.48.0 build measured.check-adapters.tsexit 0 (99 links, 0 failures).Not measured: the hello layered over the idle on two tracks with physics (rigc render reads one animation); the player's own physics vs rigc's render.
🤖 Generated with Claude Code