This means before you enter the game you would be asked to select a character to us and when you select the player of your choice it spawns you in the game as that character
I would create a separate level to do it in.
Bascially, create a level called MyGameEntry. Inside of the level, you have complete freedom to do what want such as:
A) Create UMG screens with rendered pics for selections
B) Create a level with your characters laid out as actors in the level
C) A combination of both.
I prefer the 3D feel with some UMG elements. If you look at the Unreal Tournament modding map, they have everything laid out and could be a good idea for a more interactive experience.
However you setup your level to give your player his choice, the final step will be to save the data, then spawn the game level with that data. The “GameInstance” is the class you will want to extend from. Its persistent through level transistions.
Good luck! =)
On button click call Spawn Actor from Class and pass in the transform and class you want. Then call Posses.
Depending on how your game is setup sometimes the Character Selection Screen is already in the level so you just hide it once you choose who you want to play as. If you need to call level load it would require additional work to communicate what options you chose (for example saving things to a file or database then loading them up when you load the new level).
Keep in mind that Posses is a Server only function so if you’re running a networked game you should have this be run on the server.