Week 10: 20 - 27 April [Google Cardboard]

Using Cardboard

I began by incorporating google cardboard into the existing build.

Google cardboard is an inexpensive way to provide more immersive mixed reality to event visitors. Limited by the mobile devices placed within it, the extent of a Cardboard VR experience will be greatly reduced in comparison to an Oculus rift; a small number of headsets could be used by many people over the course of the exhibition.

Using the current GVR (google virtual reality) SDK, provides an emulator prefab within Unity so that the application does not have to be built to the device for testing purposes. This reduced development time hugely.

My main focus for inclusion of the Cardboard headset is user experience. With this is mind, when purchasing the headset, I also selected some inexpensive additional items which will assist with the overall experience.

  • Cushioned pads – to aid with extended sessions, as the Cardboard corners can irritate the nose.

Face pads.

  • Head strap – so users have both hands available to navigate the scene.

Head strap

  • NFC tag – provides functionality for launching a user defined application when phone comes within range of tag, starting the experience seamlessly.

NFC tag



In addition to this, Cardboard also includes some basic default functionality. The most relevant of which, is the premade raycast out from the viewers position, which allows a physical magnet toggle on the headset to be moved to interact with object in app. From reading, this interaction with the magnet has a significant effect on the phones compass, which when in Cardboard mode is registered in the same way as a screen tap.





Camera  raycast and headview.



Early tests using this feature indicate it would be a good addition to the controller already incorporated – should users find tracking of the controller too unreliable, given that the magnet toggle will never go undetected.  

Still keen to focus the remaining development time on user experience, I began researching the potential pitfalls of using the Carboard and more general VR.
The most common result was disorientation, which research shows is most prevalent in ‘non-gamers’. As the attendees of the exhibition are likely to be made up of a wide range of people, who will be wearing the headset while stationary, as their perspective moves within the app, this is a significantly probable problem.
The current most effective method of negating the effects of disorientation work “by providing a clear visual reference that moves with the point of view of the observer in the scene, gives a better impression of your motion in the virtual world.” (Wired.com 2015). I included a nose focal point at the low middle camera positions to achieve this.


Vuforia and Cardboard Compatibility Issues

Cardboard, loading with immediate crash
While the device performed as expected in the emulator within Unity, I found this was not the case when built to an android device.

Numerous attempts saw the application load only a black screen, or crash immediately on loading the split, VR scene.

The Vuforia documentation for integration with Google Cardboard is outdated as of 2016, though does provide a detailed walkthrough for their mutual set-up using 2016’s current versions. Following the deprecated setup advice does not allow for the technologies to be incorporated as many of the attributes for each element have been overhauled entirely.

Current forum posts and responses from Vuforia’s own development team, highlight the current incompatibility of the two technologies.

To achieve a functioning build, I began rolling both the GVR SDK and Vuforia back through previous releases, with the hope of finding a compatible combination.

I followed the advice described in the documentation for both Vuforia and Google Cardboard, learning that the minimum API level needed to continue function is 19, with android 4.4 (KitKat) or newer installed.

Each time, the build was completely functional in the emulator, but failed on the device. All versions of Vuforia were trialled, back to June 2016. All versions of GVR were trailed, back to 1.100.0. All versions of Unity trialled, back to 5.5.6.

I created my own post on the Vuforia developer forums to request an answer. A Vuforia developer responded, advising that Vuforia have no goal of currently developing towards compatability with Cardboard, and are instead looking to implement their own functionality which will use the mobile device itself to replicate the function of a headset. With this, I abandoned the inclusion of Google Cardboard.



References
  •         GitHub. (2018). googlevr/gvr-unity-sdk. [online] Available at: https://github.com/googlevr/gvr-unity-sdk/releases [Accessed 27 Apr. 2018].
  •          Google Developers. (2018). Google VR SDK for Unity  |  Google VR  |  Google Developers. [online] Available at: https://developers.google.com/vr/reference/unity/ [Accessed 27 Apr. 2018].
  •          Google Developers. (2018). Quickstart for Google VR SDK for Unity with Android  |  Google VR  |  Google Developers. [online] Available at: https://developers.google.com/vr/develop/unity/get-started-android [Accessed 27 Apr. 2018].
  • ·         Stinson, E., Stinson, E., Stinson, E., Calore, M., Pardes, A., Stinson, E., Pierce, D. and Stinson, E. (2018). How to Reduce VR Sickness? Just Add a Virtual Nose. [online] WIRED. Available at: https://www.wired.com/2015/04/reduce-vr-sickness-just-add-virtual-nose/ [Accessed 27 Apr. 2018].








Comments

Popular posts from this blog

Week 3: 2 - 9 March [Continued AR prototype]

Week 1: 16 - 23 Feb. [Meeting with Museum Director]

Week 4, Part 1: 9 - 16 March [Understanding Kinect functionality]