Client Interaction Simulation

A screenshot of the animation blueprint for the Client character's face A screenshot of the blueprint for the Client character's dialogue system A screenshot of the main STRUCT used for the dialogue system The clipboard displaying the last few dialogue options and the Client character standing next to the dialogue UI. The main menu. The clipboard displaying the user's final score.

Made in Unreal Engine 5 | Watch the demo here

My biggest project so far. In my last semester of my Computing Science Diploma program, I had one ~independent study class where the entire premise was we would each be given a genuine project with a real client (within the Douglas College faculty) and we had the semester to create a minimum viable product for that project. My project was to create a virtual reality version of a roleplay exercise social work students do in the Psychology department to practice home visits utilizing Unreal Engine’s Metahuman features and plugins.
How the project ended up was a multiple choice dialogue tree users could interact with through a widget attached to the Client character. Each dialogue option contributes a point contribution to the user’s score, ranging from adding one to subtracting one. I didn’t have access to any actual scripts for a scene like this, and I don’t have the necessary expertise to write one myself, so the dialogue that actually went into the project doesn’t have anything to do with social work, but that was fine since it was only a minimally viable product and all I needed to do was showcase what the system could do. There was a request to add an element of randomness/variation to the system, so the way I incorporated that was making three alternate versions of the same scene. Each sub-variation would have the same overarching premise and dialogue options, but the way the Client reacted to things would differ. This way, there are no objectively “Good” or “Bad” options, they each have their moments where they are the most appropriate response and moments where they are the least helpful. I thought this would be the most realistic way to go about this as well, because it prompts the user to actually think critically and decide what strategy is best out of a handful of strategies that aren’t bad.