Single Screen Local Multiplayer (Blueprint)

Hi all.

After taking a bunch of Unreal courses I’m trying to put together my own project. The ultimate goal is a game that has a local multiplayer, single screen/camera setup. There could be up to 4 players, but only one camera. Functionally it would be a similar setup to a game like Magicka.

Right know I’m picturing it would be a single camera that hovers well above the players and the focal point of the camera is a point directly in the middle of however many players are playing (ie: one player would focus on that player, 2 players would be directly between them, etc…).

In overview, my project contains:

BP_PlayerCharacter: A duplicate of the BP_ThirdPersonCharacter (from the third person template, which I started from) but with the camera removed.

BP_CameraFocusActor: An actor that consists of a root->SceneComponent->SpringArm->Camera (the Springarm is adjusted in a way that I think would hover nicely from the scene component point, which is where I’d want to set the position of this Actor). There are also functions to add and remove BP_PlayerCharacters to be tracked by the camera (by ‘tracked’ I mean that it adds it to the pool of pawns that the camera would focus in the middle of)

BP_GameMode: A custom gamemode that manages the BP_CameraFocusActor. When a BP_PlayerCharacter is created it uses the GameMode to add or remove tracking of that BP_PlayerCharacter.

I’ve started simple by creating two PlayerStarts. Testing shows that when the BP_PlayerCharacters are created they are added to the BP_CameraFocusActor to be tracked. What I can’t seem to figure out, though, is how to associate the camera with what is supposed to be viewed on the screen. What I’ve found is either split screen or uses the cameras on the pawns, but just changes control. What I want is a single camera that looks at all of the players and will move based on where they are and where they move to. Any suggestions/leads I could follow?

By Default if the Pawn or Controller does not have a Camera the Camera Manager will create one. Thus you are outright stuck with each client having its own camera.

Work around is to simply have each camera move to a set location in world space and face the same given point you’d use for the single camera setup.