Due to repository failures at the time, I, as a UI Designer, was advised to create the Main Menu in a separate project. Once our repository got fixed, I then used the Migrate function in Unreal Engine to help bring across the content I created.
However, when this was done initially, a lot of references got broken, and the Main Menu's widgets would not display correctly. Additionally, the pawn made for the Main Menu completely broke.
To try to fix this all first of all, I went to investigate inside of the Blueprints, and found that the Migration broke all of the references for the project, and none of the images would display correctly. I originally tried to rebuild this manually, but I found that to be extremely time consuming. So, I looked for another solution.
First of all, I tried to remigrate the content, and to no avail. I figured the content kept breaking because of the fact migration compresses everything into a loose folder, as seen by the comparison between how the content looked before and after migration.
However, my solution I found was rather unorthodox. I copy and pasted the folders from File Explorer, which kept the original references intact thanks to this. This, somehow, was much more effective, and I was able to boot up the level from the migrated files instead. The only issue was that the Main Menu pawn still refused to boot. To fix this, I then decided to take our Gameplay Pawn, strip it of it's movement and functionality as a player character, and instead gave the player's hands Widget Interaction, and made sure to show the Debug line so the player knew what they were pointing at.
Finally, the level took shape once more, and I was able to use it as intended. From here, I made a few additions.
First of all, due to a suggestion from one of my friends, I made the Escape Widget somewhat transparent, and put a Zombie on the other side of the door. This was to add more depth to the room and create a creepy atmosphere from the very beginning, like this wasn't a place the player was meant to be.
Additionally, thanks to a level sequence, I managed to make the level begin a little bit smoother, as I added a Fade Track that plays when the level begins.
Next, I set up a rather complex level sequence. I wanted to have it that the "Escape" button, the widget that lets you escape the room breaks upon selecting it. Due to it being a Widget, I didn't think there was a proper way to break it, but I found a trick that I could use.
First, I took the PNG of that Widget, and split it into four in an image editing program. Then, I pasted it onto four Widgets, sizing them so they were exactly a quarter of the original widget.
I then put these Widgets on a Widget plane on the viewport, again sizing them so they were a quarter of the size of what the full "Escape" widget was in the Blueprint.
Then, I carefully put these in the level just behind the Escape widget, perfectly aligned with that.
I then created a Level Sequence from these, where they'd fall out in four different directions when triggered, to make it look like it was the original widget that was smashed. However, actually triggering this was the problem, which I solved quickly.
First of all, I had the "Escape" window perform a "Destroy Actor" command when the player clicks it, which made the broken glass seem more seamless. Then, I had the Widget cast to the player, which told it that the Widget has been pressed through a Boolean. From here, I set up an event tick in the level blueprint, which through the player, casts to see if the player has clicked the button.
If this is true, it plays the level sequence, while delaying for the duration before opening the level.
Finally, I had the Zombie in the Main Menu turn around once the glass breaks, just to begin creating the atmosphere of a horror game. You can see how it looks below.
Comments