I am currently porting a game over from Unity to UE4. It has been going very smoothly for the most part, but there are some issues I am having especially regarding referencing actors that are in the level.
This game is going to take place all in one scene, with story happening over the course of ~3 or so hours. This means I need to set up the actors in various locations in the scene depending on where the game is currently at in the story. For instance, when the player first starts, in something I will call scene_1, actor A should be placed at location X and should say Y when the player speaks to him, and actor B should be placed at location Z and shouldn’t say anything when the player tries to speak to him. In Unity, what I had was a class called “PlotManager”, that would store a reference to the current “Scene” (another defined file), and the scene would have specific information to set up all of the actors. When a scene started, its code could be read and it would take its list of actors and put them where I specified. This method had the added benefit that when the game was saved, all that needed to be run to set it up was to find the current “Scene” reference and set the actors up in the right places.
The problem with this in UE is that I cannot seem to have all of these scenes on the same level. It doesn’t seem to be possible to reference actors that are in the level from anywhere except on the level blueprint. For obvious reasons I don’t want to put the entire game on the level blueprint.
What is the general solution for this in the Unreal engine? And, in general, keeping track of current actors in a scene and what they should be up to? For instance, a town in an RPG might have Y set of characters at one point and X set at another point, based on the current part of the game. Probably there are not a new level built for each version of the town with characters. So what is the standard way to know the current part of the game and have actors have the correct state because of it?