"Our dynamic duplicate in-memory replays broke when an artist put an ULevelSequencePlayer in one of the dynamic source level levels.
The UMovieSceneSequencePlayer base class has PostNetReceive called on it when the replay starts. This function thinks the sequence has changed state due to NetSyncProps.LastKnownPosition != PlayPosition.GetCurrentPosition(). This occurs even if the sequence has not had any state changed, but only for sequences that do not have their start position at frame 0.
This ends up calling JumpToFrame(NetSyncProps.LastKnownPosition), breaking the replay. It causes the view target of the camera manager to switch to a camera in the sequence rather than our replay view target.
The fix for this issue is to call UpdateNetworkSyncProperties() at the end of UMovieSceneSequencePlayer::Initialize.
This ensures that the network properties used by the replay have the correct initial values and no longer trigger the sequence to think the state has changed inside PostNetReceive."
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-86963 in the post.
0 |
Component | UE - Networking |
---|---|
Affects Versions | 4.23 |
Created | Jan 16, 2020 |
---|---|
Resolved | Jul 19, 2022 |
Updated | Jul 19, 2022 |