Override Target Player Controller During Split Screen Cutscenes

Hello! We don’t have any plans to work on splitscreen support right now, but you just reminded me that we seem to be getting one question about it every year almost like clockwork, so I’ll check if we can work on that for 5.7...

> FCameraCutGameHandler seems to be always initialized with the same Sequence Instance

Are you playing one single Level Sequence, or two? The camera cut handler gets initialized and used once per frame after UMovieSceneCameraCutTrackInstance sorts through all the camera cut requests coming from any running sequences on that frame. So even if multiple sequences are running, each with a camera cut track active, we collect them all and figure out which one “wins”. Because, obviously, we don’t support splitscreen and assume only one camera can be in control of the screen at a given time (which is even false without splitscreen like e.g. picture-in-picture but that’s another problem)

For splitscreen support where two Level Sequences are running (each with their own camera cut track destined for one particular local player), I think we would need to fix UMovieSceneCameraCutTrackInstance::OnAnimate() so that there’s not just one set of CameraCutPreRolls and CameraCutParams, but one set per local player. And then initialize the camera cut game handler with that specific player as we run the “winner” of each set.

For splitscreen support where there’s only one Level Sequence running we somehow need to duplicate the camera cut “winner” for each local player (which can work if the camera is procedural enough to know what to do for each player) then we need the above fix plus a way to deduplicate those two arrays into multiple sets of arrays, probably with some flag on the camera cut track or something.

For splitscreen support where there’s only one Level Sequence running but it somehow has two (or more) camera cut tracks, we need the above fix plus, of course, a fix to allow more than one camera cut track in a Sequence (which would be a fairly intrusive refactor given how a single camera cut track has been a hard-coded expectation since the beginning of Sequencer…)

I’m not sure if there are other ways we should handle splitscreen?