Content
This project was an investigation into whether Virtual Reality (VR) could be used as a tool to manage Chronic Pain.
Stretching and Activities
Stretching and movement play a crucial role in helping individuals manage their chronic pain. My
aim was to develop a stretching exercise that would be accessible to all users. Initially, the concept
involved balloons that would spawn around the user, requiring them to reach out and pop the balloons.
However, this approach might have been too challenging for some patients who may not be able to reach
certain positions, and it did not provide a way to track their stretching progress.
To address these challenges, I designed stretching columns that encourage users to raise their arms
and visually measure how far they can reach within small blocks. Users earn points based on their
reach, promoting gradual improvement. These columns utilize box colliders to detect how high the
user's hand rises through the tube, effectively tracking their progress.
Why is it on a desert island?
Everyone has a unique place where they find relaxation, but it's scientifically proven that natural
environments can reduce cortisol production and lower stress. For these reasons, I decided to create
a natural landscape as the environment for the game, with a low poly aesthetic to maintain a gap
between the virtual and the real world. To ensure the user's experience is as relaxing as possible,
I incorporated natural sounds like wind and waves to fully immerse them in the environment. Building
on this concept, I envisioned different locations for users to explore, allowing them to tour the
island in a clockwise route, starting from their initial point.
Each location inside this tropical island features a unique mini-game, progressing from simple stretching
tasks to more complex puzzles and quizzes.
To develop the island, I utilized Unity Terrain to create the islands, adding a water shader for
realistic water effects. I customized colors for sand and grass, and used the grass tool to add depth
and richness to the landscape.
Creating Wind in the Trees with Shader Graph
To make the environment more dynamic and immersive, I aimed to incorporate more movement and animation.
This approach helps create a more engaging and lifelike experience for users.
To create this effect with Shader Graph, I combined time with position into a gradient noise to
move the leafs over time. I then combined these back into the transform with the colours to create
a simple rippling effect of the leaves. I left a few exposed variables to make these leaves configurable
such as the Wind Density which I added to the scale of the Gradient Noise to increase the size of
the ripple.
Creating a Bubble Shader with Shader Graph
The Bubble shader was a lot more complex as it contained a lot more and was a lot more complex.
But it basically contained a position node that was altered with tiling and offset, and a gradient
noise, blended with a reflection probe and a fresnel effect. Another reflection probe was added to
the scene to amplify the reflection as well.
Activity Tracking and JSONs
Seeing progress and understanding that your efforts are making a difference are crucial components
of any rehabilitation process, especially when it comes to chronic pain. It provides motivation and
reinforces the belief that the chosen path of treatment is effective.
After each session, I saved user details and experience points into a JSON file and stored it on
disk. This allowed users to load their activity data and review their progress over time, providing
valuable feedback and motivation. To further encourage engagement, I implemented gamification elements
such as leveling up. These devices gave patients more incentive to continue playing, as they could
see their progress and achievements, making the rehabilitation process both effective and enjoyable.
Gameplay Video
You can view a full demo of the play through below. The gameplay shows
- The main menu
- The stretching activity where users can stretch their arms
- The neck stretching game where users look around
- The puzzle game where users place blocks into a puzzle board
- The quiz game where users throw a ball into a box to answer questions
- The user's profile and activity tracking