Body step 1: one-time T-pose calibration (prefs.json, forced gate) + True Body solver + shared ArmSolver
- BodyProfile (Winter anthropometry, T-pose: arm = (span - shoulder width)/2 - 1.5 cm) and Prefs (gitignored prefs.json next to the executable / project folder in editor builds) - Calibration node: loads prefs, else head-locked prompt + jitter-proof TPoseDetector; body systems wait for BodyProfile.Current; Recalibrate() in group "calibration"; recal rebuilds arms - ArmSolver: PhysicsArms' elbow solve extracted (behaviour-identical) + min reach |U-F| fix - TrueBody: derived real-body pose (neck, chest yaw + crouch lean at neck pivot, lagging pelvis, moving shoulder girdle with scapulohumeral shrug, arms) + debug skeleton - PhysicsArms/PhysicsTorso/BodyRig now profile-driven (arm length no longer from head height) - TrueBodySpike PASS x3; all spikes PASS x3 (arm spike thresholds re-based for correct 0.57 m arms; CollapseSpike uses a fixed standing profile) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3a990c6dbe
commit
81a9b1fca2
15 files changed
+994
-106
No files matched your search
@@ -58,6 +58,9 @@ public partial class CollapseSpike : Node3D
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
// A real profile is measured standing once (T-pose) and does not shrink when seated:
|
||||
// every scenario, seated or not, uses the same standing 1.65 m-eye profile.
|
||||
BodyProfile.Current = BodyProfile.Estimate(1.65f);
|
||||
// Seated head 1.01 m (the playtest calibration); chest center z = head z + 0.12.
|
||||
// Table front edge is z = -0.2, chest half-depth 0.065: overlap starts at head z < -0.255.
|
||||
Add("standing, no table overlap, anvil", new(0.2f, 1.65f, 0.3f), 6f, anvil: true, table: true);
|
||||
|
||||
Reference in new issue
Block a user