📼Session recording & playback
Last updated
Last updated
To facilitate easy gameplay testing and debugging without needing to put your headset and tracking devices on every time, Existent features a session recording system which allows Player and tracker movements from a gameplay session to be recorded and later played back during a play-in-editor session.
When playing back a recorded VR session, Player and tracker transforms will be “spoofed”, but the game simulation will proceed as normal, which means you can make live changes to the level, blueprint properties and logic, and even C++ live compilation while a recording is being played back.
The simplest way to start a new recording is to select the ‘Recordings’ tab from the inspection panel. Type in the name of your new recording, and press ‘Record to file’ to begin recording. Until pressing ‘Stop recording’ (or quitting the play-in-editor session), all movements of all connected Players, as well as the movements of any props in your level, are recorded and stored to a file on disk. When the recording is stopped, the list of available recorded sessions that can be played back will update with your new file.
To play back a recording, press the ‘Play’ button next to its file name in the recordings list (the files are listed with the most recently recorded file first).
If you make a recording during a multiplayer game, and play it back later in the Unreal Editor, the recording system will automatically spawn in new Players to represent the proxy Players that were present in the original session, and destroy them when playback ends.
Note that playing back an existing recording while in-game in a live multiplayer session is not supported.
If a recording is played back while a VR headset is connected (with SteamVR running), the recording’s local Player will “take over” the movements of the local Player spawned into your level when starting the game, and will return control to your headset when playback ends.
If a recording is played back with no VR headset connected (i.e. starting the game spawns a keyboard-controlled spectator Player), the local Player will be spawned automatically and destroyed when playback ends.
During playback, you can adjust the ‘Playback rate’ to slow down or speed up the playback rate of Players and trackers to a different speed than they moved while being recorded.
Note that by default the ‘Sync gameplay time to playback rate’ option is enabled, which modifies Unreal’s ‘time dilation’ variable so gameplay speed matches the selected playback speed. If this is undesired (e.g. if your gameplay logic modifies time dilation independently), untick this option to keep gameplay speed unaltered even when playback rate is changed.
Move the playback slider with your mouse during playback to scrub through (fast-forward or rewind) the recording.
Each recording is saved to disk in your project’s Saved/Recordings directory, and is comprised of one metadata file (.json) and a binary frame data file (.exi).