My second-year 3D university project in Unreal Engine 5—a first-person narrative puzzle and investigation game featuring a polymorphic item pickup/inspection hierarchy, a dynamic animated Main Menu, diegetic 3D interfaces, and tactile mouse-driven doors.
01. Polymorphic Item Pickup, 3D Inspection & Clue Board Hierarchy
-
Interface & Base Item Architecture (
InteractInterface&BP_BaseItem): Built a parentBP_BaseItemclass implementingInteractInterface(OnInteract,UI_OnInteract,FlipObject,PlaceObject). Depending on its configuration, interacting with an item either launches 3D camera inspection directly or disables physics/collision and snap-attaches the mesh to the character'shand_Socket, enabling Enhanced Input actions to inspect (IA_Inspect) or physically drop the item back into the world (IA_DropItems). -
Flippable Clues & Investigation Whiteboard (
BP_BoardItems&BP_WhiteBoard): Created theBP_BoardItemschild class for letters and sticky notes—overriding parent interaction events to let players rotate clues180°on their relative Yaw (FlipObjectwith a0.5sdebounce timer) to inspect hidden writing on the back before pinning them onto the investigation whiteboard (PlaceObject).
Gameplay - Inspect Board Item
Gameplay - Pickup , Drop & Place
02. Tactile Mouse-Driven Doors & Drawers
- Tactile Dot-Product Doors & Drawers: Replaced static "Press E" animations with physical mouse-dragged doors and drawers, calculating the Dot Product between the camera's forward vector and the door's orientation to map 2D mouse delta into clamped 3D movement.
Gameplay — Mouse-Driven Doors & Drawers
03. Hallucination Post-Process Shader & Runtime MPC (M_HeadacheBlur)
-
Trigonometric UV Screen Wobble (
MPC_Headache—Woble): Built a custom post-process material driven at runtime via a Material Parameter Collection (MPC_Headache). Modulated screen UVs (TexCoord[0]) by combining asymmetricSine(Time * 1.5)andCosine(Time)waves scaled by theWobleparameter viaAppendVectorto simulate disorienting camera sway. -
5-Tap
PostProcessInput0Blur & Exposure Control (Blur&Light Intensity): SampledSceneTexture:PostProcessInput0across 5 offset UV coordinates (center + 4 horizontal/vertical offsets driven by theBlurscalar parameter), averaged the 5 samples (Divide by 5.0), and multiplied the output byLight Intensityto dynamically dim and blur the player's vision during hallucination events.
MPC_Headache — Blur, Light Intensity & Wobble Scalars
Gameplay — Hallucination Effect
04. Diegetic 3D Terminal, Dynamic Menus & Subtitles
- Diegetic 3D Computer UI & Input Context Switching: Embedded interactive UMG widgets directly onto a 3D monitor mesh. Interacting with the desk blends the player camera to the screen and swaps Enhanced Input Mapping Contexts (IMC) so the player can click folders and enter passwords inside the 3D world without pausing gameplay.
-
Dynamic Animated Main Menu & Context-Sensitive Reticles
(
WBP_InGame): Built a dynamic animated Main Menu with smooth camera/widget transitions and an in-game HUD (WBP_InGame) that reacts to raycast hits viaUI_OnInteract—caching the widget reference with aDoOncenode and dynamically swapping the player's cursor texture (Change Cursor) betweenBaseCursor,PickUpCursor, andInspectCursorwhile toggling contextual action prompts. -
DataTable-Driven Voiceover & Subtitles
(
WBP_Subtitles): When inspecting narrative letters inBP_BoardItems, a guardedDoOncepipeline triggers 2D voiceover audio alongside a dynamically constructedDataTableRowHandle(SubDT_Chapter1_FirstTimeCheckingLetter) passed directly intoWBP_Subtitleson spawn.
Diegetic 3D Computer
Dynamic Main Menu