
CydandClaude Fable 5
ebf0d8c23f
BT410 Phase 5.3.2: DRIVABLE mech -- authentic control interpretation + locomotion
The mech now drives from the authentic control chain (faithful route). Verified
headlessly: full throttle -> walks straight at top speed (30 u/s) along heading;
throttle+turn -> walks a circle (radius = speed/turnRate); neutral -> holds pose;
zero Fail.
MechControlsMapper::InterpretControls (mechmppr.cpp @004afd10) -- installed as the
mapper's per-frame Performance (roster slot 0, ticks before the mech):
- speedDemand = topSpeed*throttle*fwdScale (reverse inverts); soft stick (square)
/ pedal (cube) response; Basic=stick turn, Std/Vet=pedal turn; speed clamped
while turning hard. Reads owner stride via Mech accessors.
- BT_FORCE_THROTTLE/BT_FORCE_TURN dev hooks for headless verification.
Mech::Simulate drive -- consumes the mapper demands:
- accelerate currentBodySpeed toward speedDemand (maxBodyAcceleration);
- authTurnRate = lerp(walkingTurnRate, runningTurnRate) by ground speed + over-run
falloff (mech4.cpp master-perf @0x4aa3d3);
- integrate heading via Quaternion::Add(prevPose, (0,turn*rate*dt,0));
- facing = world -Z basis (GetFromAxis(Z_Axis)); worldLinearVelocity = facing*spd;
- integrate position (increment-1 core).
MECH.HPP: 9 named locomotion members out of reservedState (now [211]) --
walking/runningTurnRate, reverse/walkStrideLength, reverseSpeedMax,
forwardThrottleScale, maxBodyAcceleration, body/currentBodySpeed. BRING-UP
DEFAULTS (authentic values come from the model resource + LoadLocomotionClips --
next refinement).
Deferred: gait-clip-exact advance + leg anim (needs animation subsystem/renderer),
model-resource sourcing, terrain drop, torso/free-look aim, telemetry filters.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 14:46:30 -05:00
..
2026-07-20 00:37:45 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:27:08 -05:00
2026-07-20 00:27:08 -05:00
2026-07-19 07:33:26 -05:00
2026-07-19 07:33:26 -05:00
2026-07-19 19:05:53 -05:00
2026-07-20 12:20:23 -05:00
2026-07-19 20:24:27 -05:00
2026-07-20 12:20:23 -05:00
2026-07-19 07:33:26 -05:00
2026-07-19 07:33:26 -05:00
2026-07-20 11:51:04 -05:00
2026-07-19 07:58:26 -05:00
2026-07-20 00:02:58 -05:00
2026-07-20 00:02:58 -05:00
2026-07-20 00:11:04 -05:00
2026-07-20 00:11:04 -05:00
2026-07-20 00:05:00 -05:00
2026-07-20 00:05:00 -05:00
2026-07-19 20:56:06 -05:00
2026-07-21 14:46:30 -05:00
2026-07-21 14:46:30 -05:00
2026-07-21 14:46:30 -05:00
2026-07-21 14:46:30 -05:00
2026-07-21 14:46:30 -05:00
2026-07-21 14:46:30 -05:00
2026-07-19 23:10:11 -05:00
2026-07-19 23:10:11 -05:00
2026-07-20 00:29:39 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:15:31 -05:00
2026-07-19 07:58:26 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:27:08 -05:00
2026-07-19 19:05:53 -05:00
2026-07-19 07:58:26 -05:00
2026-07-20 00:11:04 -05:00
2026-07-20 00:11:04 -05:00
2026-07-19 20:56:06 -05:00
2026-07-19 20:56:06 -05:00
2026-07-19 23:59:28 -05:00
2026-07-19 23:59:28 -05:00
2026-07-19 19:05:53 -05:00
2026-07-19 07:58:26 -05:00
2026-07-20 00:27:08 -05:00
2026-07-20 00:27:08 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 12:20:23 -05:00
2026-07-20 12:20:23 -05:00
2026-07-19 20:53:54 -05:00
2026-07-19 20:53:54 -05:00
2026-07-19 20:53:54 -05:00
2026-07-19 07:58:26 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:37:45 -05:00
2026-07-20 00:07:58 -05:00
2026-07-20 00:07:58 -05:00