## 2 Materials and Methods
### Software and Hardware  
The hardware part of the system consisted of the physical equipment required, and the software was responsible for developing the application and connecting with the hardware. As the sensors were placed on key body points (3 \"trackers\": on hands, on waist, and on feet), it was possible to know if the user was correctly performing the required exercise. Considering that the application developed used virtual reality with full-body detection, selecting a computer powerful enough to handle this type of computer graphic effort was necessary.  
To develop a full-body tracking experience, the option was to use a headset from HTC Vive. We planned to develop the VR system with full-body tracking since it helps to reduce cognitive overhead when performing tasks that involve cognitive processing [14]. The model chosen was the HTC Vive Pro Set, including a head-mounted display (HMD), two controllers, four SteamVR base stations 2.0, and three trackers. The base stations send signals to the HMD and also track the controllers and trackers.  
Virtual reality typically does not use trackers in its systems because they do not need to detect anything other than the head and the hands of the user. As previously mentioned, we chose HTC Vive because it was the best option for obtaining full-body tracking. These trackers bring any real-world object into the virtual world [15]. In our case, we needed the trackers to collect data from the user's feet and body to know their position to translate it into the virtual environment.  
Unity3D was the game engine used to develop the application. Unity3D is a multi-platform game engine (smartphone, Mac, PC, video game consoles, and web) developed by Unity Technologies. It offers rapid prototyping and the possibility to deploy developed applications on different VR devices. It allows the easy generation of VR applications.  
Unity was also employed to experience VR content supporting HTC Vive, Oculus Rift, Valve Index, and others. This plugin helps developers in three main things: loading 3D models for VR controllers, handling input from those controllers, and estimating what the hand looks like using those controllers [16]. When opening the SteamVR [17], it is possible to visualize each component of the HTC VIVE hardware automatically and add the wanted trackers afterward.  
With the previous tool, creating a virtual reality system was possible, but not full-body tracking. With that in mind, an inverse kinematics library for Unity was selected. Inverse kinematics (IK) is a way to automatically calculate the joint angles of, e.g., a leg or arm based on where the end effector (typically the foot or hand) should be. This allows avatars to synthetically reproduce human motions, even with a limited number of sensor points [18]. IK works alongside the trackers' XYZ values to calculate the joint angles.  
In developing a virtual application, the environments are critical since the better the environment is, the more immersive the experience can be [19]. The 3D creation of this application was the combined strength of two creations: the virtual environment and the avatar.  
The virtual environment is one of the critical factors for the experience because it creates a connection between the user and the virtual world. All the VR gamification was developed in a specific soccer environment (a virtual replica of a real stadium), making it more realistic and familiar. The software used for modeling the stadium was Blender, based on 2D floor plans available online to model it on an accurate scale.  
The avatar is also critical because it allows users to be aware of their members within the virtual world. To create empathy with the avatar, a face was made through 3 photographs, thus allowing all users to select their own avatar in the future. The avatar skeleton was created to link with FinalIK in Unity, thus becoming full-body tracking.