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
+5
-3
@@ -18,7 +18,8 @@ public partial class BodyRig : Node3D
|
||||
private readonly MeshInstance3D[] _upperArmMeshes = new MeshInstance3D[2];
|
||||
private readonly MeshInstance3D[] _forearmMeshes = new MeshInstance3D[2];
|
||||
|
||||
private bool _sized;
|
||||
private float _sizedUpper = -1f;
|
||||
private float _sizedFore = -1f;
|
||||
private Basis _yawBasis = Basis.Identity;
|
||||
|
||||
public override void _Ready()
|
||||
@@ -59,9 +60,10 @@ public partial class BodyRig : Node3D
|
||||
UpdateYawBasis();
|
||||
if (!_arms.Calibrated || _arms.UpperArm(0) == null)
|
||||
return;
|
||||
if (!_sized)
|
||||
if (_sizedUpper != _arms.UpperLen || _sizedFore != _arms.ForeLen)
|
||||
{
|
||||
_sized = true;
|
||||
_sizedUpper = _arms.UpperLen;
|
||||
_sizedFore = _arms.ForeLen;
|
||||
for (int side = 0; side < 2; side++)
|
||||
{
|
||||
((BoxMesh)_upperArmMeshes[side].Mesh).Size = new Vector3(0.07f, _arms.UpperLen, 0.07f);
|
||||
|
||||
Reference in new issue
Block a user