Inspiration
Air awareness is the ability to orient oneself while airborne. For divers, gymnasts, dancers, and acrobats alike, it is one of the trickiest abilities to train. It's hard to get the sense for being in the air in a safe way. Athletes either practice with specialized equipment, such as a foam pit, pool, or trampoline, or they use their imaginations while doing rolls and summersaults on the ground. As a former diver, Quinn Aho saw how a VR simulation could make at-home training more effective and immersive for those without access to specialized training spaces.
What it does
The VR air awareness training simulator is fairly straightforward. The user can choose between a few different motions to simulate (EX:). They will be placed on a diving board in a virtual pool. The user will be encouraged to get into a 'roll' position in real life. When they indicate they are ready, the simulation will begin an animation from the POV of someone doing a flip. When the user 'kicks out' in reality, they will also hit a button on the controller, causing the virtual model to kick out as well. When they hit the water, the UI will give the user feedback on their timing (EX: "Good Job!", "Too Soon!", "Too Late!") and they will have the option to reset or return to the main menu.
How we built it
With a animation of a human doing a flip from a royalty-free source, the player model was given motion. The team adjusted its path to move downward off of a diving board instead of across a flat surface and isolated the 'tucked' rotation portion of the motion and spliced it in as needed to create the option for multi-rotational flips. They then began receiving input from either a keyboard or controller to tell the simulation when to 'kick out' and made the animation return to a 'kicked out' position in response. The team also keeps track of the angle of rotation and provides feedback on the time of kick out accordingly.
The Main Menu and Ready UIs were made to be stationary, with buttons moving the player to the appropriate levels. The Post UI was made to follow the Diver model and VR pawn's vision, because the direction they'd be facing after the flip varies due to kick out time.
The Diver's model, Main Menu level, UIs, and the Pool level were made with assets readily available in Unreal Engine 5: The VRTemplate and Water Features Plugins.
Challenges we ran into
Splicing the animation so that multiple rotations would be smooth, realistic, and understandable to the user was very difficult and tedious. The camera was rather resistant to following the path of the flip. Making the Ready UI properly begin the animation without inhibiting the camera's view was also tricky.
Accomplishments that we're proud of
The team is very happy with how the animation turned out. The POV really looks like what a person sees while flipping through the air, especially through the VR headset. The rotation changes during kick out, but doesn't lose it's momentum, which is very good for training users' senses of air awareness.
The simulation sickness (expected, as our target audience is athletes prepared to deal with motion sickness) is noticeable enough to help accustom to user to the dizzying sensation of flipping without being unbearable.
What we learned
Splicing the animations to allow for multiple rotations and deciding a trajectory gave the team some valuable experience in dealing with animations. The unique case of a POV camera going upside down was a challenge, and good practice for it! Mercedes and Quinn also gained a greater familiarity with VR UI menus in Unreal Engine and their intricacies.
What's next for VR Air Awareness Training Simulator
A theoretical final project would have the following features implemented:
- Full body tracking. Instead of pressing a button to indicate when you want to kick out, the simulator could recognize when you physically kicked out
- Highlighted outlines to indicate where your hands should be gripping your legs when tucked and where your legs should be when kicked out, to adjust a user's posture
- Several modes to practice (EX: front flip, back flip, twist, etc.)
- Multiple environments (EX: over a pool, in a gym, on gymnastics mats, bungee cord, etc.)
- An optional “Slo-mo” mode
- Audio cues (EX: countdown beeps, a coach yelling “Out!” at optimal kickoff time, etc.)
Log in or sign up for Devpost to join the conversation.