MP: PROMOTE coupled peer motion to DEFAULT -- user + metrics confirm (task #50)
User confirms 'way better'; single-player un-regressed (master walks correctly, the bodyTargetSpeed change only affects the invisible mj=0 body channel). Flip the authentic-coupled path ON by default: - peer position: gait-coupled linear (was velocity dead-reckon); BT_DR_POS=1 reverts - master send-mirror: gait projection of projectedOrigin; BT_NO_MASTER_GAITMIRROR reverts The two-source split (position from velocity + animation from commanded speed) that mismatched during speed changes is retired. Residual: occasional ~2.9u snap from the leg(peer)-vs-body(mirror) channel mismatch -- second-order, tracked for follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
c52a1ad79a
commit
b0137427a6
@@ -1952,7 +1952,7 @@ void
|
||||
// coupled root-motion experiment (BT_ROOT_POS=1) needs the MASTER-side
|
||||
// gait mirror to stop the authority tug-of-war (measured ratio 1.86) --
|
||||
// the completion path is mapped in the session notes.
|
||||
static const int s_drPos = getenv("BT_ROOT_POS") ? 0 : 1;
|
||||
static const int s_drPos = getenv("BT_DR_POS") ? 1 : 0; // default 0 = authentic gait-coupled linear (BT_DR_POS=1 restores velocity)
|
||||
Point3D replPrevPos = localOrigin.linearPosition;
|
||||
Quaternion replPrevHeading = localOrigin.angularPosition;
|
||||
DeadReckon(dt); // engine reckoner: LINEAR position/velocity
|
||||
@@ -3176,7 +3176,7 @@ void
|
||||
// The master's VISIBLE motion uses the LEG channel reading live demand
|
||||
// independently, so this does not change what the local player sees.
|
||||
// (Default OFF: live overwrite preserved.)
|
||||
static const int s_gaitMirror = getenv("BT_MASTER_GAITMIRROR") ? 1 : 0;
|
||||
static const int s_gaitMirror = getenv("BT_NO_MASTER_GAITMIRROR") ? 0 : 1; // default ON (authentic coupled)
|
||||
if (s_gaitMirror)
|
||||
{
|
||||
/* leave bodyTargetSpeed at the last-sent value */
|
||||
@@ -3744,7 +3744,7 @@ void
|
||||
// velocity. Re-seeded to localOrigin on each send by the record writers'
|
||||
// projectedOrigin re-base, so this is incremental-from-last-send, exactly the
|
||||
// peer's IntegrateMotion. (Default OFF: constant-velocity deadReckoner.)
|
||||
static const int s_gaitMirrorSend = getenv("BT_MASTER_GAITMIRROR") ? 1 : 0;
|
||||
static const int s_gaitMirrorSend = getenv("BT_NO_MASTER_GAITMIRROR") ? 0 : 1; // default ON
|
||||
if (s_gaitMirrorSend)
|
||||
{
|
||||
Vector3D mAng;
|
||||
|
||||
Reference in New Issue
Block a user