4/6/2026 - Week 2 Milestone
- Apr 4
- 3 min read
Updated: Apr 6
This week, we started working on the overall game storytelling and connecting the different modules together. When the player enters the game, a menu appears allowing them to choose between Learn Mode and Test Mode. The player can later press the menu button on the left-hand controller at any time to make a new selection. Test Mode has not yet been implemented.
In Learn Mode, the player can interact with floating diamonds representing different modules using the right-hand trigger to enter or exit a module. If the player is currently in one module, they cannot enter another at the same time. Some interactions are only available within specific modules. For example, the player can only pick up a knife in the cutting module. Each module also includes its own instructions, and the instructions for the cutting module have already been implemented.
We also successfully implemented the correct cutting behavior. Previously, when a user picked up the knife, it was attached directly to the VRPawn, which caused issues in identifying whether the knife itself or the VRPawn was responsible for cutting an item. This has now been fixed by creating a socket and attaching the knife actor to that socket when picked up. In addition, we used Blender to create pre-sliced static meshes, allowing food items to realistically appear chopped after being cut.
For the cutting module instructions, when entering the cutting learning module, the player is instructed on how to properly hold the knife. Warning messages will appear if the player attempts to cut without placing the food on the cutting board, fails to steady the food with their free hand, or holds the knife at a dangerous angle that could injure the hand holding the food.
We also added more interactions. For example, we implemented a working sink using Unreal Engine’s Niagara particle system, allowing the player to turn the faucet on and off.
The work on the pot interaction continued this week. The rotation on the knobs proved to be surprisingly difficult, delaying the hopeful implementation of future components. Ultimately, it was implemented as follows: when a player presses a grab button sufficiently close to a knob, the knob registers that it is being gripped and which hand is being gripped (both member variables linked to the knob blueprint - this is handled within VRPawn). Then, so long as it is being gripped, it links its rotation to the rotation of the gripping hand (this bit happens within the knob blueprint itself). When the grip button on a hand is released, all knobs which register as being gripped by that hand are set to being not gripped. There were some issues with the rotation being glitchy, but they’ve been mostly worked out (although, in future weeks, the knobs should be adjusted to have a more specific range of motion). The knob is then linked to an external temperature component (which adjusts value based upon its rotation), from which the pot’s temperature component gets its value. There are variables available to distinguish a current temperature from a set temperature, allowing for gradual heating, but this has not yet been implemented. What has been implemented is a preliminary oven burner niagara effects VFX - it turns on when the temperature is above zero. Additionally, a hook has been added for the mittens for visual effect, and it’s been changed so their addition and removal is just based on an affordance.