mirror of
https://github.com/SK8-ENGINE/skate-3-rust-engine.git
synced 2026-10-27 19:54:40 +00:00
Add thirty-second controller replay with scrubbing and free camera
This commit is contained in:
1 parent
cd48c0c809
commit
88ec43e267
12 files changed
+603
-8
No files matched your search
@@ -0,0 +1,46 @@
|
||||
# Instant replay
|
||||
|
||||
The game keeps the last 30 seconds of completed presentation poses in memory.
|
||||
Select / View (the small left menu button) opens replay, paused at the newest
|
||||
frame. The available duration grows from zero after starting the game.
|
||||
|
||||
| Control | Action |
|
||||
| --- | --- |
|
||||
| Select / View, or B | Exit replay |
|
||||
| LT / RT | Scrub backward / forward; trigger pressure changes speed, up to 4× |
|
||||
| D-pad left / right | Step one recorded frame |
|
||||
| A | Play / pause; playing from the end starts at the beginning |
|
||||
| Y | Toggle recorded camera / free camera |
|
||||
| Left stick | Move free camera horizontally |
|
||||
| Right stick | Look around |
|
||||
| LB / RB | Move down / up |
|
||||
| Left-stick click | Faster camera movement |
|
||||
|
||||
Keyboard: F6 opens/closes replay, arrows scrub, comma/period step frames,
|
||||
Space plays/pauses, C toggles camera. Free camera uses WASD, Q/E for height,
|
||||
right mouse drag to look, and left Shift for speed.
|
||||
|
||||
Replay pauses live gameplay. Exiting returns to that same live state, not the
|
||||
scrubbed position. Release the replay controls before resuming gameplay. Escape
|
||||
can still open the graphics menu. This is an in-memory viewer, not video export
|
||||
or a saved replay format.
|
||||
|
||||
## Implementation and verification
|
||||
|
||||
`Replay` stores timestamped `presentation::Snapshot` values: root transform,
|
||||
complete skin/board pose, camera transform, and FOV. It records completed fixed
|
||||
ticks and uses the same bone-local interpolation as live presentation. Camera
|
||||
cuts, teleports, and cadence changes are not interpolated across. Scrubbing never
|
||||
advances animation graphs, physics, gesture recognition, or stance events.
|
||||
|
||||
The replay input system runs after platform polling in PreUpdate, outside the
|
||||
gated fixed simulation sets. Replay inputs are discarded from gameplay history;
|
||||
the gate remains on input until buttons, sticks, and triggers are released.
|
||||
|
||||
Run `cargo test -p skate-game --locked replay::tests` for buffer retention,
|
||||
scrubbing, camera mode, discontinuity, input isolation, and simulation gating.
|
||||
For a screenshot smoke check, set `SKATE_VERIFY_REPLAY=1` when using the existing
|
||||
`--verify <absolute-path.png>` launch option.
|
||||
|
||||
The remaining trick hitch and nollie inward-heel/fakie behavior are not changed
|
||||
by this feature. Replay allows inspecting their final displayed poses directly.
|
||||
Reference in new issue
Block a user