Implementing the controlscheme presented a lot of different problems since I was limited by what the Unreal Engine’s blueprint system had to offer. The biggest issue was the Oculus headset altering the orientation data received from the motion controller. All the orientation angles were doubled with the headset connected. The workaround to this was to split the vectors used into 3 different parts (up-, forward- and rightvector) and using ranges to limit the effects of the doubling. The second problem faced was that the angles were calculated from 0-180 in both directions, instead of 0-360. This made it impossible to know which direction you were facing without implementing a second check. The workaround to this problem was to multiply a sign by the accelerometer data in the desired plane, to either receive a plus or minus sign. basically emulating a -180 to 180 range. The last problem was that the controls were very jumpy and too responsive. To smooth out the controls the accelerometer data was once again used to get the tilt of the phone. The tilt was multiplied by a constant speed so that small movements of the umbrella resulted in slow movement speed and large movements resulted in high movement speed.
It was a great learning experience since I have not worked in Unreal Engine before nor have I made a VR game before. It was a learning experience not only in learning new software but also how to collaborate with teammates working on different parts of the game to create a seamless endproduct.