The question is still relevant, however I will share how I have worked around the issues for now.
I have left the SpringArm+Camera components on the MainCharacterBP__BoardGame, but made it so straight after adding controller Yaw/Pitch input, the ThirdPersonCam’s Springarm’s RELATIVE rotation is set using the MainCharacterBP_BoardGame’s Control Rotation (“Get Control Rotation” node).
As for the problem with camera switching, I’m storing whatever the current view target is in the Game Instance (since the issue only occurs locally), and whenever a GamePad connects and a Player Controller is created, on BeginPlay of the new Player Controller I am setting view target back to the one stored in the Game Instance.
This only seems to work after a 0.01s delay…I don’t like using Delay nodes for things like this, but it’ll suffice for now until I have a better solution.
I did a bit of a deep dive into the source code to try and figure out where this camera switching is occurring, and I have a few ideas, but I’m yet to actually do any tests to narrow it down specifically.
Anyway, I just thought I’d share that with anybody who comes here however many days or years later…I know it’s not SUPER helpful, but hopefully someone will find some use of it.