From c3aacabd4635fc0fc0c9ee2386e7828445b92f33 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Tue, 10 Nov 2026 18:48:27 +0100 Subject: [PATCH] test(vehicle): add -reversetest and record the reverse is wheel-spin, not throttle -reversetest holds negative throttle; forward throttle drives -224.9 km/h and reverse throttle -99.5 km/h, both backward, so the throttle sign is not the cause - the wheel spin is inverted relative to the engine torque. Mesh orientation is fine (nose +X). Next: check the imported wheel-bone reference pose (axle may land on X/Z, not Y). --- Game/GigLine/Source/GigLine/GigLineVehicle.cpp | 3 ++- MEMORY.md | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Game/GigLine/Source/GigLine/GigLineVehicle.cpp b/Game/GigLine/Source/GigLine/GigLineVehicle.cpp index 07a9b4e..901dd64 100644 --- a/Game/GigLine/Source/GigLine/GigLineVehicle.cpp +++ b/Game/GigLine/Source/GigLine/GigLineVehicle.cpp @@ -318,7 +318,8 @@ void AGigLineVehicle::Tick(float DeltaSeconds) { if (DriveElapsed > 1.0f && DriveElapsed < 4.0f) { - Movement->SetThrottleInput(1.0f); + const float Throttle = FParse::Param(FCommandLine::Get(), TEXT("reversetest")) ? -1.0f : 1.0f; + Movement->SetThrottleInput(Throttle); } else if (DriveElapsed >= 4.0f && !bDriveReported) { diff --git a/MEMORY.md b/MEMORY.md index d202931..83e5bd3 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -1048,3 +1048,15 @@ Historical task context from 2026-11-09/10; later vehicle findings above may sup X, not the bone's Y), the engine torque sign, or the throttle sign. Next probe: run the `-drivetest` with `SetThrottleInput(-1.0)` to split "throttle inverted" from "wheel spin inverted" in one run. + +## 2026-11-10 — Vehicle reverse: both throttle signs drive backward + +- `-reversetest` (negative throttle) shows the throttle sign is not the cause: forward + throttle → −224.9 km/h, reverse throttle → −99.5 km/h — **both backward**, so the wheel + spin is inverted relative to the engine torque, not the input mapping. +- The mesh orientation is fine (imported bounds 476 × 228 cm, nose at +X). The earlier axle + flip (inward→outward) was a no-op, so the next check is the **imported wheel-bone + reference pose**: the axle (bone Y) may be landing on Unreal X or Z, not Y, so the wheel + spins about the wrong axis. `FPhysicsAssetUtils`-style body setup is not the cause either + (physics already simulates). +- Kept `-reversetest` in the drive test as the diagnostic for this.