Rendering a scene within a scene

I’m doing a pokemon game to get familiar with UE4. One of the mechanics that I can’t figure out a good solution for is the battles. I want the character to stay at their position in the world, play a battle intro/cutscene, and then render the battle “scene” for the player.

I do NOT want to teleport the player to a pre-made battle “area” in the same scene. That feels like a hack, and wouldn’t work with multiple players, each in different battles.

Any thoughts, UE4 gurus?

I disagree that loading a battle arena map is a hack. The art for the world map and the art for the arena are entirely different things with different scales and visual requirements. In my opinion, the easiest and most effective way to author the content is to have them as separate maps.

That said, if you don’t want to do it like that. I guess you could create 2 different layers, an arena layer and a world map layer version of your whole map. Then simply enable/disable based on which context you are in. You could do it with a detail layer that gets enabled when you go to arena mode, but that won’t help you reconcile the scale issue. Unless of course you make them both have the same scale.

You misunderstand: I don’t want to teleport the player to a pre-made battle “area” inside the same scene. I have no objections to loading a different MAP, but I don’t want to teleport them to some area of the SAME map that is just set up to look like a battle area.

I also plan on making this multiplayer, at some point, so I want a solution that will keep the character’s avatar in the “main” world map, while they are battling elsewhere.

I don’t think scale is going to be an issue.

Create a copy of their avatar in the current map which will be what other players see, and for the player who is going to battle, load the battle map for him. Then when he is done with the battle, reload the main map. Make sure you record the player’s position in the main map before loading the battle map, and when they do return to the main map, remove the duplicate and place them at that position.