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:
@@ -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
|
||||
|
||||
@@ -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`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user