MORTAR & PESTLE

-
TIME PERIOD: 2025 (1 week)
-
PROJECT TEAM SIZE: Solo
-
PROGRAMS USED:
-
RealityScan
-
Unreal Engine 5.6
-
Blender
-
SHARPENING MY SCRIPTING SKILLS
This is a small project I worked on, intending to sharpen my skills in Unreal Engine
-
PHOTOGRAMMETRY
-
I made the 3D models of the mortar and pestle by using photogrammetry with the 'RealityScan' app, scanning my mortar and pestle at home.
-
-
BLENDER:
-
I imported the scanned assets, cleaned up any errors, and added custom collisions in Blender.
-
I also made the potion bottle asset in Blender.
-
-
SOUND RECORDING:
-
I recorded hits, stomps, and scraping sounds of the mortar and pestle at varied intensities, using my 'Zoom H1n Audio Recorder'.
-
-
UNREAL ENGINE:
-
I exported all of the assets to Unreal Engine and scripted all gameplay logic and sound.
-
-
Greybox assets from 'Blockout Starter Pack' by Xavier Loux (Fab.com)
-
Skybox and nature sounds from 'Ultra Dynamic Sky' by Everett Gunther (Fab.com)
My mortar, pestle, and audio recorder:

BLUEPRINT SETUP
-
BP_FirstPersonCharacter
-
Decides what happens when the player presses the interact button.
-
Pick up, or put back down, an interactable object.
-
Translate the item to the correct position and rotation.
-
Rotates the player camera to the correct position.
-
-
-
It would have been cleaner if some of this script were inside the 'BP_InteractableBase' instead.
-
BP_InteractableBase
-
The parent class of all interactable objects.
-
Turns on/off physics and starts/stops listening for player mouse/gamepad input.
-
Exists to create less duplicate code if I want to add more interactable objects later, like a knife and cutting board for example.
-
-
BP_MortarAndPestleInteractable
-
A child class of 'BP_InteractableBase'.
-
Decides what static meshes the interactable objects have.
-
Starts to listen for the player's mouse/gamepad input when being used to trigger sounds, and vibration if using a gamepad.
-
-
MS_MortarAndPestle
-
MetaSound asset.
-
Fades sounds in and out, and adds audio frequency filters, depending on the conditions, such as the velocity of the pestle and whether the pestle is on the rim or the bottom of the mortar, for example.
-
-
Unfortunately, the site I'm using to show the visual script doesn't seem to translate the names of the variables correctly from Metasound assets, so all of them are named as 'Value' down below:
