Arm-length research: Nimso shoulder evolution + girdle anatomy; revised decision (True Body -> Scaled Body: uniform eye-height scale + shoulder-based reach remap, passive zero-setup calibration)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4c27d68e84
commit
329b7bf143
1 file changed
+49
-21
@@ -45,26 +45,54 @@ the player embody an existing (stylized/anime) avatar with its own proportions,
|
|||||||
→ wrist, set so real full stretch = in-game full stretch) and a separate SCALED BODY for avatars, scaling reach
|
→ wrist, set so real full stretch = in-game full stretch) and a separate SCALED BODY for avatars, scaling reach
|
||||||
from the shoulder so full stretch still maps to full stretch (see `nimso-project-tx.md`).
|
from the shoulder so full stretch still maps to full stretch (see `nimso-project-tx.md`).
|
||||||
|
|
||||||
## 2. Decision for VR Messs
|
## 2. Shoulders — Nimso's evolution (all shoulder mentions in the transcripts) and real anatomy
|
||||||
|
|
||||||
**The physics body is the player's real body; any avatar is a skin fitted onto it.**
|
- [S] 2017: hands limited to "shoulder arm length". 2018 (hzShV7qqbAE): derived from 3 points only — "you put
|
||||||
|
your hand up, you can see your shoulder moves up and down", "he puts his shoulders into" punches. 2019 Test
|
||||||
|
Chamber: "I haven't got a shoulder system yet". 2019 ragdoll: the shoulder is a physical surface (lean hammers/
|
||||||
|
guns on it). 2021 rewrite: "derived elbow positions, logical sort of shoulder control … the shoulder rotation
|
||||||
|
based on all of that structure including the head, the chest position and rotation". 2022 (yPsCuuNM3lM): rewrote
|
||||||
|
the body because of "the lack of shoulder control" — before, "the shoulder just kind of stays straight and the
|
||||||
|
arm becomes very folded up"; now "the shoulders … actually care about where the elbow is and the arm is just about
|
||||||
|
pushing on the limits of the shoulder". 2024 (i7F4V9K6SlU): "it's not just an arm length — as you lift your arm
|
||||||
|
the shoulder moves up and down, it lifts, so you have to figure out all the mechanical structures … as accurate as
|
||||||
|
possible in order for the limit of your arm to be accurate"; crouching tilts the shoulders with the chest.
|
||||||
|
Calibration still sets ARM LENGTH = shoulder joint → wrist ("these two bones"); the shoulder motion is DERIVED
|
||||||
|
on top. Avatar mapping scales "from the shoulder point" off a chest centre line so hands still meet.
|
||||||
|
- [S] Anatomy: the arm hangs off the shoulder girdle (clavicle + scapula); the glenohumeral joint itself moves —
|
||||||
|
elevation (shrug), protraction/retraction (reach forward/back) — and arm raising is shared between glenohumeral
|
||||||
|
and scapular rotation (the classic "scapulohumeral rhythm", ≈2:1 above the first ~30° of abduction; Inman et al.
|
||||||
|
1944). Winter Table 4.1 lists the "shoulder mass" segment as sternoclavicular joint → glenohumeral axis; Fig 4.1
|
||||||
|
gives neck→shoulder 0.129H. [I] Girdle motion adds very roughly 5–10 cm of reach (forward/up) over a fixed
|
||||||
|
shoulder — the part of "arm length" a straight-arm calibration does NOT include, which is correct: it must be
|
||||||
|
modelled as motion, not as longer bones.
|
||||||
|
- [I] VR Messs: arm length (bones) from calibration; shoulder girdle as its own derived + physical segment
|
||||||
|
(sternoclavicular ball joint with tight limits and a muscle): elevates with arm raise (rhythm), protracts toward
|
||||||
|
far reach targets, tilts with the chest; only past the girdle's limits does the chest lean (current "lean").
|
||||||
|
|
||||||
1. **Physics ragdoll proportions = the player's calibrated metrics** (Nimso's True Body; the research's "fitted"
|
## 3. Decision for VR Messs (revised after owner's "embody a short avatar?" question)
|
||||||
method). Shoulder joint positions and arm length come from measurement, never from current head height, so
|
|
||||||
standing, seated or lying play all use the same body.
|
The conflict ("fit the avatar to me" vs "I become the avatar") goes away by fixing the order of operations:
|
||||||
2. **Calibration (one-time, saved profile):**
|
|
||||||
- Stand straight → eye height + floor (Nimso's "stand straight, touch the ground").
|
**One body model, two layers, one calibration — Nimso's True Body → Scaled Body, Bonelab's "calibrate once".**
|
||||||
- "Arm circles" ~10 s: swing both straight arms; sphere-fit each controller trail → shoulder centres
|
1. TRUE BODY = you. Measured once, saved, reused for every avatar and every posture (standing/seated/lying).
|
||||||
(sphere centres, gives shoulder width and height) and arm length (radius − wrist-to-grip offset).
|
Zero visible setup by default (VRChat-like): eye height + floor captured from the first standing moments; arm
|
||||||
- Skip / failure fallback: Winter/Drillis-Contini ratios from eye height (`nimso-project-tx.md` §3).
|
length starts at the anthropometric estimate (0.332·H, slightly short — the safe side per Porssut) and is
|
||||||
- Store arm length ~1–2 cm SHORT of the measured value (Porssut: never let the real elbow lock first); the
|
refined PASSIVELY from the furthest controller-to-shoulder distances you reach during play (high percentile,
|
||||||
physics hand then trails the controller by that margin only at full stretch.
|
only ever growing toward the true value). [I] An explicit 10 s "arm circles" sphere-fit lives in settings for
|
||||||
3. **Stylized / anime avatar = visual skin on the fitted skeleton** (the fitted-avatar pipeline): uniform scale by
|
people who want it exact immediately (Bonelab-style fine-tuning, done once, forgotten).
|
||||||
eye-height ratio, then resize the avatar's upper-arm/forearm bones to the calibrated arm length (hands not
|
2. SCALED BODY = the avatar you embody, derived from the True Body:
|
||||||
stretched). The anime look survives (head/torso/legs proportions untouched); only arm bone lengths adapt. No
|
- **uniform scale s = avatar eye height / your eye height** applied to tracking around your body: a short avatar
|
||||||
bespoke player model needed — any humanoid works.
|
makes YOU short (world looks bigger, floor still where your feet are, crouching still touches the floor),
|
||||||
4. **"Become a different-sized character" (Bonelab/Nimso Scaled Body)** stays on the back-burner; if built, it must
|
camera rotation stays 1:1 — this is what "embodying" a character means and is what VRChat/Bonelab/Nimso do;
|
||||||
preserve the extension invariant (scale reach from the shoulder so real full stretch = virtual full stretch).
|
- **reach remap r = avatar arm / (s · your arm)**, applied to the hand target's offset from the (scaled)
|
||||||
5. Shoulder girdle: model the clavicle as a driven segment (shrug/protraction ~ a few cm) so overhead/forward
|
shoulder: your full stretch is always the avatar's full stretch (the Porssut/Ponton invariant), so anime
|
||||||
reach beyond the arm comes from the shoulder, as in real bodies and in Nimso's "shoulder lifts as you raise the
|
short/long arms never cause the elbow-lock conflict nor the can't-reach problem; the residual hand offset is
|
||||||
arm".
|
only the proportion difference (typically a few %, Ponton/Kilteni say tolerable);
|
||||||
|
- the PHYSICS ragdoll uses the avatar's proportions (Mario is physically Mario-sized; Nimso's scaled ragdoll).
|
||||||
|
3. "Your own body" avatar (default) = an avatar generated/fitted to your True Body → s = r = 1, zero offsets.
|
||||||
|
Any stylized avatar can alternatively be shown "fitted to you" (arm bones stretched) — that's just r = 1 with
|
||||||
|
visual bone scaling; one flag per avatar, no new system.
|
||||||
|
|
||||||
|
So no box goes unchecked: true scale and floor come from s, reach and extension from r, perfect hands when the avatar
|
||||||
|
matches you, and setup is invisible by default with optional exact calibration.
|
||||||
Reference in new issue
Block a user