VRFit


Introduction

During the pandemic, millions of people got a chance to experience virtual workouts for the first time when they were not able to go to the gym. A growing number of people are turning to virtual reality technology (VR) as a means of finding solutions. The VRFit application is a game/app in which you can hit a target object by moving users' upper body which will ultimately lead them to exercise while maintaining the enjoyability of this application.

Since the last version of the game, a new throwable object has been included. This object can be thrown at the targets. There is a chance of this object spawning every time a user hits a target

Technical Development

Overview of the technical development

The main function of the application is to spawn the target objects in random locations and make them move towards the user. When the user touches the targets, they are to be destroyed. There are also chances of a throwable object appearing in front of the user every time the user successfully destroys a target.

 

Detailed explanation of key technical development aspects

To spawn the target objects randomly, the function below was used.


The MoreCubes() function is called on the awake portion of the manager-script. It executes a block of code if the variable WantMoreTargets is true. The block of code contains a timer of random values for each instance after which it will spawn a new object. The new object is spawned in a random location that is within the reach of a user.

The method also checks if the BonusChance variable is equal to or greater than 100, which will spawn a throwable object closer to the user.

The target objects also have a script that allows them to move towards the user and explode on impact as shown below.


The update method on the target object is set to increase the position of the object in the forward direction at a defined speed. When the object collides with another object, an explosion animation is called and it is destroyed briefly after.


3D Content

Magic Orb

 Source: https://sketchfab.com/3d-models/magic-orb-348d3a01dd31484eb339a397b94e6d2b

Author: epma

How it's used: It is the primary object which is to be destroyed by the user using their hand movement or throwing an object at it.


Organic Ball

Source: https://sketchfab.com/3d-models/organic-ball-b3ae29e9c62444a5858305abdf5a67d4

Author:  Joseph Zukeran

How it's used: It is another type of sphere that is spawned if the user has a ball-breaking streak. This can then be thrown at the ball to blow it.

 

Dynamic Space Background Lite

Source: https://assetstore.unity.com/packages/2d/textures-materials/dynamic-space-background-lite-104606

Author:  DinV Studio

How it's used: It is used as the background of the application to give the user a feel of being in outer space.



Usability Testing

Design and Plan

For usability testing, we will be conducting the test based on only the major function of the application. This includes:

  • Breaking the ball function
  • the new throwing interaction where a ball spawns and can be thrown to break flying balls.
  • Ability to reach all the balls

We gave the user tasks in our application, and the tasks are listed below task List:

  • Select the applications
  • Hit the ball coming toward you using your hands
  • When an organic ball spawns, catch that ball and throw it towards another ball to break it.
  • Use both hands to hit the ball

To collect data, we presented the user with a list of post-experiment questions. This helped us determine what the users like and dislike about the application. This questionnaire includes the following questions

  • I wouldn't be tired if I played this game for 10 minutes
  • It is easier to get the lower targets
  • I could play the game for 15 minutes without getting bored
  • It is easy to understand the goal of the game
  • I can reach all the targets without having to jump
  • I can easily see all the elements of the game
  • I have enough time to grab the green ball before it disappears

 

Recnear

The student accommodation is the venue of the usability test since it is in close proximity to the university and it will have a diverse group of students from different educational backgrounds. We managed to recruit 5 students who are studying various fields like marine biology, IT, psychology and pharmacy. They were also diverse in terms of height which would be of relevance since the targets in the game vary in height.

Testers

Gender

Height

Background

Fitness Experience

Participant1

Male

5’10’’

Technology

Novice

Participant2

Male

6’2’’

Pharmacy

None

Participant3

Female

5’6’’

Engineering

None

Participant4

Male

5.7’’

Chemist

Novice

Participant5

Female

5’.9’’

Nursing

Expert

 

Protocol of the testing

Each participant will wear the headset and get comfortable with the adjustments on the headset as well as the virtual space. The participants will then be made aware of the guardian system for their safety. The app will then be run and no further instruction shall be provided unless asked.

 

Report of the findings

The chart above was derived from each question on a 5-level of agreeableness with 1 being strongly disagreed and 5 strongly agreeing. The scores from each participant were added up allowing for a maximum score of 25 per question which is then converted to a percentage. 

 

Analysis of the findings

The players will likely not get tired from playing the game for 10 minutes, therefore, the frequency or the speed of the target needs to be increased. The score for the easiness of the lower target is 56% which indicates that it works well to induce a workout. It is not very easy to get to the target at the top so the range of the height the targets can appear needs to be reduced. The time the throwable object (the green ball) stayed needs to increase

The game is fun since most participants ranked it high. This is important since the user could get less work done if they get bored and stop playing the game.

 

 Addressing the Results of Usability Testing

To apply the knowledge gained from the usability test, there were adjustments made to some values in the code. To make the targets get to the user faster, the speed variable was doubled as shown below.

The targets now move more quickly towards the user.

The throwable object explodes quicker than users were able to pick them up. This is a purposeful game design made to keep the users alert and to encourage them to grab the objects faster, However, the chance of the throwable object appearing was reduced. This resulted in the throwable object remaining untouched for longer.

 

Possible future upgrades

In future iterations, we can include different interactions to involve the user more. Some of the changes that can be included in the future are:

  • Comprehensive scoring system
  • Social functions to add friends and a ranking system
  • Challenge features to encourage competition among friends
  • Different types of training inside the application like Boxing, MMA, tennis and so on which will be able to teach the user a sport along with helping them exercise. This will also attract many enthusiastic users.

Conclusion

We have created this program in a way that the user can experience physical exercise while enjoying a movement-based application. This is done by using a VR model to simulate an environment. Using virtual reality technology, users can perform physical activities from their rooms, providing them with the comfort of doing so in a safe and comfortable environment. Through a range of virtual reality sessions, this app encourages users to engage in daily exercise as part of their daily routines. Different interactions can be created with a range of motions such as punching and throwing. The purpose of this is to maximise the range of movements. This will enable them to use the machine for a variety of different body parts. The usability test conducted was useful to make adjustments to the application to make it suitable for as many users as possible.

 

 References

Files

VRFit.rar 474 MB
Oct 28, 2022

Get VRFit

Leave a comment

Log in with itch.io to leave a comment.