- UI Page Design
- Interaction Design
- Character Dialogue Script & Box Collision Trigger
This week, I focused on polishing the project by adding some UI interfaces, creating door interaction blueprint, and implementing a few dialogue triggers for the main character.
UI Page Design
0:00:00 – 0:51:00
Game Main Interface:
In the game’s main interface, I used a camera that continuously films the serpent and added some camera shake effects to enhance the atmosphere:
This method of creating the main menu allows for a real-time dynamic background. Since the flowers and fog in the scene are subtly animated, it provides a more immersive effect compared to using a static pre-rendered image as the background:
Widget blueprint:


Level Blueprint:
When the level begins, I create the main menu widget and use the Set View Target with Blend node to switch the camera view to a dedicated one positioned for the menu background. I also set the input mode to UI-only and lock player input, so the player can’t move or shoot while on the start menu screen. Finally, I use a Play Sound 2D node to start the game’s background music:

Since I set the Z key as the input to start the game, once the player presses it, the player controller is obtained and keyboard input is disabled.
Then, the start menu widget is removed. I also added a camera fade node to avoid clipping issues, since the camera would otherwise pass through walls during the view target with blend node. The fade lasts for 2 seconds to smoothly mask the transition.
After that, I use set view target with blend again to switch the camera to the gameplay view and set the input mode to game only:

In-Game Interface:
The in-game interface consists of the health bar, ammo count, and the menu panel:

In game effect:

The health and ammo displays are updated in real time by referencing the player’s current stats. When either value falls below a certain threshold, the corresponding UI element changes color to alert the player.



In-game menu
I created an in-game menu where the player can view the control instructions, restart the game, continue, or quit the game.

In front of the starting hall, I added a box collision to trigger a key prompt showing “Press M to open the menu.”



The logic is similar to creating any widget: when the player enters the collision area, the widget is created and added to the viewport; when the player leaves, it is removed from the parent.

Mission result widget:

When the player opens the final door, the mission is considered successful, meaning they have successfully escaped, and the mission complete screen is displayed. If the player’s health reaches zero, the mission failed screen appears instead. In both cases, I use the same UI layout and simply use a select text node to determine which message to display.

In the player’s character blueprint, within the death system, I continue to use a create widget node after the player dies. Then I call a custom event from the mission result blueprint that displays the game result. In this case, I uncheck the if win boolean, since the player’s health reaching zero means the mission has failed. As a result, the select text node will display the mission failed message accordingly.

When the mission is successful, I added a box collision in the final door room. When the player enters it, the widget is displayed.


Character Dialogue Script & Box Collision Trigger
0:51:00 – 1:09:00
For the character’s voice lines, I used ChatGPT to help write the dialogue and Eleven Labs (https://elevenlabs.io/app/speech-synthesis/text-to-speech) to generate the voice. The protagonist is a seasoned mercenary who often complains about his boss during missions.

When designing the dialogue, I felt it was important to give the player some basic context right at the beginning, like why the protagonist is here. So at the start of the game, there’s a short conversation between the commander and the protagonist, explaining that this is a mission to investigate abnormal lifeform activity and retrieve experimental samples.


Since I initially didn’t add trigger boxes to create widgets(just some triggers to play 2d sounds), most of the mission hints like finding the key downstairs or collecting statue fragments are delivered through the protagonist’s voice lines.
He complains about the job while also subtly guiding the player on what to do next. This dual-purpose dialogue helps keep the pacing natural while reinforcing the character’s personality.
Interaction blueprint:
1:09:00 – end
In this part, I mainly worked on the blueprint logic for two doors: the small door downstairs and the final main door.
The small door requires a key to open. I placed two keys in the level to ensure that players can still progress even if they miss one. The final door requires the player to collect three statue fragments to unlock it. In total, there are six statue fragments scattered throughout the level.
The blueprint is mainly divided into three parts. The first part uses a timeline, lerp, and set relative rotation nodes to animate the door opening.
The second part handles the logic for checking how many keys the player currently has versus how many are required.
The third part adds a box collision that triggers different widgets to prompt the player. For example, if the player lacks enough keys, it displays a message indicating that a key is needed. When the key requirement is met, it shows a prompt to press the F key to open the door.



