Summary
We Happy Few is an IP owned by Compulsion Games in Montréal. Due to how closely our Sound Department worked with them during their Beta cycle, we had the opportunity to create a VR demo piece for some Playstation Users. We filmed, edited, and started engine work on the project in April '18. In this demo the player plays as a citizen of the fictional world tasked with providing the game's mascot, Uncle Jack, news stories to read during his famous broadcasts. Uncle Jack was filmed reading the stories the player's selected with Julian Casey reprising his role. The project went to Sony for certification but came back with one 'Must Fix'. They described a phenomenon that occurred in VR where certain objects did not appear to be adhering to their expected movement's. Note: This was an issue primarily noticed in the VR Headset, what may look fairly normal on a video was exacerbated significantly while playing. |
Development Period:
Signal Space Lab March 2018 - September 2018 Engine: Unreal Engine 4.19 Platform: Oculus, Playstation VR Store Page Role: Lead Designer // 3Cs Designer // System Designer |
Step One: Identify a Solution
My first step to tackling this problem was to brainstorm fixes that would cause minimal delay in the process to our already tight deadline. With that goal in mind there were two primary solutions that came to mind for us to test. Bill-boarding Our first idea was to have the mesh that the live video was projected on always billboard towards the player. This would ideally provide a good level of mitigation on horizontal sliding, but still solve the root issue. Why This Didn't Work This fix didn't work because it did not account for the curvature of the screen. Because the demo was filmed with a 3D camera, the mesh the video was rendered on had to be curved, to match the curvature of the human eye. This meant that as the player shifted left or right, the edges of the screen would shift as well. This caused massive issues with image tearing and warping the player's perspective relative to the video. Step 2: Prototyping & Implementation
Accounted Counter-Rotation I was admittedly really proud of this idea. The basic concept is that as the user is shifting on their axis, the screen will shift with them to provide more stability in the room. This prevents the user from easily being able to see the edge of the screen. It also lets us reinforce the feeling that Uncle Jack is locked to his spot in the room, avoiding too much parallax. Protyping Myself and a fellow Tech-Artist created a mock-Unity scene. The first thing we did was test the general principle that moving horizontally would not cause issues on the rounded mesh, and we found success! The next step was to make an editable proof-of-concept. We created an algorithm that would refine how far the mesh moved out of place to better match with it's environment. Once we were comfortable with the algorithm, we passed the math to the programming team for implementation. In return, they gave us the ability to edit the variables while the project was running in VR! This led us to pushing a fixed version ready for re-submission to Sony. |
Certification Passed!
This 'Must Fix' issue quickly came back as fixed and this algorithm exists now in the live game. If you have a PSVR at home, I highly recommend the 10 minute experience! I learned a great deal about designing around the player's camera space and some neat tricks for faking effects to ease the overall experience! |