Add position smoothing and movement snapping

Introduce simple position smoothing for normal proxy movement and snap special movements. Adds kProxyPositionLerpAlpha, Lerp/LerpPosition helpers, and ShouldSnapRemoteMovement to lerp proxy position on normal updates while snapping on cell_change, worldspace_change, and teleport. Update MoveProxyToRemotePlayer to use lerp or snap, keep heading snapping (TODO: wrapped angle smoothing), and add throttled/readable logs for smoothing start, first smoothed movement, snaps, and idle-on-cell-mismatch. Minor messaging change on disconnect to leave proxy idle at last position. Update docs (architecture, setup, protocol) and dev log to reflect the new behavior and testing notes; dynamic spawning/multiple proxies remain out of scope.
This commit is contained in:
2026-06-02 12:47:12 +12:00
parent 46b2fa8b9b
commit 8dbe3117b0
5 changed files with 112 additions and 7 deletions
+3 -2
View File
@@ -23,7 +23,9 @@ both send and receive paths:
9. The plugin and fake client remove disconnected players from their remote
player tables.
10. On the game-thread update path, the plugin reads a copied remote-player
snapshot and moves the single placed proxy actor in `F4TTestCell01`.
snapshot and moves the single placed proxy actor in `F4TTestCell01`,
smoothing normal movement and snapping cell changes, worldspace changes, and
teleports.
The Fallout 4 plugin still does not dynamically spawn remote actors.
@@ -102,7 +104,6 @@ update path.
- Remote actor spawning
- Multiple proxy actors
- Interpolation or smoothing
- Combat sync
- Quest sync
- Inventory sync
+38
View File
@@ -644,3 +644,41 @@ Use this format for future updates:
- Build the plugin with `xmake build`.
- Run the single-client, two-client, and disconnect tests in `F4TTestCell01`.
## 2026-06-02
### What Changed
- Added simple position smoothing for normal remote proxy movement.
- Kept proxy actor movement on the `F4TProxyActorController` game-thread update
path using copied remote-player snapshots.
- Kept the single-proxy, lowest-`playerId` selection behavior.
- Added snap movement for `cell_change`, `worldspace_change`, and `teleport`
remote transforms.
- Left rotation snapping in place with a TODO for wrapped angle smoothing.
- Left the proxy idle at its last position when the represented remote player
disconnects, disappears, or leaves the same cell.
- Added readable one-shot and throttled logs for smoothing, first smoothed
movement, special movement snaps, disappearance, and same-cell mismatch idle
behavior.
### What Worked
- Dynamic spawning and multiple proxy actors remain out of scope.
- Networking still only updates plain remote-player state and does not touch
Fallout 4 actors or references.
### What Broke
- Not tested in-game yet.
### Notes
- Hiding or disabling the proxy actor is still deferred. The current safe
behavior is to leave the placed proxy idle at its last valid position.
### Next Steps
- Build the plugin with `xmake build`.
- Run the single-client, two-client, special-movement, disconnect, and cell-leave
tests in `F4TTestCell01`.