There are three things I’m looking to quickly touch on with this post: a force field asset, a highlight for interactive objects, and the main menu for the currently unnamed Waking Reverie project.
First, the force field. This is a pretty straightforward Blueprint I had to create. It needed to look like a proper force field, it needed to push the player back when they ran into it, and it needed to let the player through (without turning off) when they activated a certain ability. The physical appearance of it is pretty simple. There are two generic beams at the top and bottom, and then one of the Unreal Engine’s glass meshes between them, but with a tweaked material. Basically, I just tinted the glass to blue while also making it a bit more opaque. When in game, the transparency changes rapidly, which gives it a sort of oscillation look. Apart from that, it pushing the player back was the only other challenge, as it needed to be enough to get noticed while not moving the player very far.
Second, there is a system I put into place to allow for certain objects to be highlighted when the player got close enough. This turned out to be a rather hefty technical challenge, and I needed to do a lot of researching in order to get it to work. I had to create a series of materials in the engine that basically calculate where the outer bounds of any mesh are and then show a small red highlight along them. The material portion was rather complicated, and honestly, I don’t know exactly how it works. The problem I had to solve on my own was communicating between the actor that is highlighted and the Matinee (Unreal Engine’s cinematic animation addon that can move and rotate actors on set timelines) that it was attached to. It ended up being a rather messy solution, but as it stands, every time one of these actors is clicked on, the game runs a check in the entire level for every Matinee and reverses the one with the matching tag. This will likely be changed when Epic fully implements their new Sequence system.
Finally, there is the main menu for this project. In order to work on this, I had to learn some basics of Unreal Motion Graphics (UMG). Thankfully, UMG is actually pretty user-friendly, so figuring out how things worked was pretty easy. The main menu for our project currently can start a new game and assign a save slot, load a previously saved game, allow the player to choose a level from a list, adjust the screen resolution, and exit the game. UMG at its core is pretty simple logic checking. If the player clicks this button, change to this menu screen. If they click this other button, load a map.
This is owned by Waking Reverie, LLC.