Cardboard VR - Google Cardboard VR headsets on iOS and Android, integrating the official Google SDK

MARKETPLACE: https://www.unrealengine.com/marketplace/cardboard-vr
Discord server: https://discord.gg/PuAyhDctHp


UPDATE [2022-11-10]: v1.3.0 - Integrated the new Google Cardboard SDK v1.18.0 Change Log.

UPDATE [2022-01-10]: v1.2.1 - hot-fix. Change Log.

UPDATE [2021-11-16]: v1.2.0 - Integrated the new Google Cardboard SDK version 1.9.0. More details in the Change Log.

UPDATE [2021-08-16]: v1.1.0 - Integrated the new Google Cardboard SDK version 1.7.0. Improved head tracking. Customizable device parameters. Added methods to re-center and set the headset yaw angle.

UPDATE [2021-02-22]: released a demo project on Github, see details here.


Hi,

Cardboard VR” has been released on the Marketplace. It’s a plugin that adds support for Google Cardboard VR headsets on both iOS and Android platforms, integrating the official Google Cardboard SDK.

DESCRIPTION

The plugin allows you to run mobile VR projects for iOS and Android devices on any Google Cardboard viewer. The plugin integrates the official Google Cardboard SDK.

NOTE: this product is not made by, or affiliated with, Google Inc in any way.

Documentation and API
Support Thread

Simply enabling the plugin is enough to start building and running your mobile VR experience on any Google Cardboard supported mobile device and viewer.

For a complete setup, more advanced options and important technical notes, please read the documentation.

MAIN FEATURES

Integrated Google Cardboard SDK versions:

  1. UE5.0: v1.18.0 (read notes about QFE for Xcode 14)
  2. UE4.27: v1.9.0
  3. UE4.26: v1.9.0
  4. UE4.25: v1.7.0

Features:

  • head tracking;
  • stereoscopic rendering;
  • user interaction via the viewer button;
  • native, customisable, UI overlay to allow the user to:
    • enable/disable the stereoscopic mode;
    • scan the QR code to automatically configure the parameters of its Google Cardboard viewer.
  • customisable device parameters;
  • all the features are available from both Blueprints and C++.

Code Modules:

  • UNACardboardVR (Runtime)

Network Replicated: Not applies (it’s a client local rendering system).

Supported Development Platforms: Windows, Mac.

Supported Target Build Platforms: iOS, Android, Windows (only for testing), Mac (only for testing).

Documentation: https://www.unamedia.com/ue4-cardboard/api/

Example project: https://github.com/UNAmedia/ue4-cardboard-demo

SCREENSHOTS

Hi everyone! The plugin has been approved by Epic and we’ll release it soon on the Marketplace.

Hi everyone! The plugin is now available in the Marketplace: Cardboard VR in Code Plugins - UE Marketplace .

Wow! Thanks for releasing this, having moved from Unity this is particularly interesting as I could not find a way to enable Google Cardboard style VR in Unreal Engine. I cannot afford it yet but will save to my wish list.

Thanks!
We hope this plugin will help UE4 devs to work again on Cardboard with UE4. At least for some of our past works, we were missing this :slight_smile:

Hello, I’ve came here after my comment at your MarketPlace page with the question titled “**Does it support Android devices which are not compatible to daydream” ** (didnt want to spam there for really specific questions :P)
A bit of a background :
I’m working with a small team on a project where the PC is the Server and the clients connected to it are using mobile VR
We were working so far with google VR but it has its issues with upgrading to newer phones
as discussed in the following link :
https://forums.unrealengine.com/development-discussion/vr-ar-development/1560734-googlevr-crash-opening-application-on-device
(in short “I think you’re right I asked my friends to check if their smartphone supports daydream. It turned out that daydream is not supported on all problematic devices… and the game does not work, although in such cases, it should work with cardboard.”)

Thus when trying to package our game with newer phones the app was just crashing

So the quick question does this plugin works in newer phones that are not daydream compatible like Android s10 -> newer than that
link to daydream compatible phones : Daydream

Hi! You’re free to ask questions in any channel we monitor :slight_smile: For more “reserved” questions you can also reach us at support@unamedia.com .

Back to your question, I confirm you that our plugin should work on any Android device supported by UE4, with the additional constraints required by the new Google Cardboard SDK, that - for the current version 1.4.1 - should simply consist of having the accelerometer and the gyroscope. This includes newer phones that are not Daydream-based (our plugin doesn’t have any Daydream-related feature, so it does not require a Daydream-compatible device).

The packaging issue with the old GoogleVR plugin is likely caused by the fact that the plugin is in an abandoned state since long time. Our plugin is not based on the GoogleVR plugin (that in turn uses the old and abandoned Google Cardboard SDK, while the new SDK is a fresh new rewriting actively maintained by Google). At the moment we don’t have any known report of packaging issues with our plugin.

Of course, if you’ll encounter any compatibility issues with our plugin, we’ll provide all the possible support to solve them.

For maximum transparency, here you can find the open issues of the integrated Google Cardboard SDK: Issues · googlevr/cardboard · GitHub . Most of them are related to Unity and don’t apply to the version shipped with our plugin.

I would like to know if I can bring in my own custom equirectilinear stills and video. What formats are allow with this plugin? I am making slideshows that would fade between the two. Please let me know, thank you.

Hi!

Today we released a Demo Project on Github: GitHub - UNAmedia/ue4-cardboard-demo: "UE4 Cardboard VR" plugin demo

It’s a porting to Unreal Engine 4 of the official new Google Cardboard SDK native mobile demo, for iOS and Android. Of course the project requires the plugin.

As you can see from the code, it’s a very simple and normal mobile app. Simply enabling the plugin is enough to run it in VR mode on any Google Cardboard supported mobile device and viewer.

In addition, thanks to the automatic native overlay feature provided out-of-the-box by the plugin, the UE4 app can works both in stereo mode and in non-stereo mode, without requiring any change to the project code.

For comparison, here a screenshot from the official Google Cardboard SDK demo app:

And here the screenshots of the ported Unreal Engine 4 version, based on the UE4 Cardboard VR plugin (working in both stereo and non-stereo modes):

Hi! Here is the support forum for the Cardboard VR plugin, while it seems you’re asking questions about the Stereo Panoramic Player plugin. If so, please post in this other forum thread. Otherwise could you elaborate more on your question and how it relates with the mobile VR plugin? Thanks.

Hi,

I downloaded the demo project, plugged it in and packaged it in IOS.

I actually tried it on the iPhone 10S.

Tracking in the camera direction is possible.

However, the left and right centers are not aligned.

This does not fit even if I adjust the width of the lens of the VR device.

It looks like two balls are lined up.

I feel that the left and right screens are facing each other too far.

Can this be adjusted?

It doesn’t look three-dimensional at all as it is now.

I think that it will finally be compatible with mobile VR, and I am very impressed, so I would like you to help me to a level where I can actually use it.

I look forward to working with you.

This is screen shot.

Hi saito_y!

It seems an issue related to the lens settings or to the display size. First thing, we must understand if the problem is in the Google implementation or in our plugin. So we can understand where the fix must be done. Could you please send two other screenshots please?

  • we would need a screenshot of the demo app running with the default lens settings. The simplest way is to delete the app from the phone (this clears the stored settings), re-install it, and when it asks to scan the QR code select “Skip”.
  • it would be very helpful if you can run the official app from Google and take a screenshot using the default lens settings. The official Google app is in this repository, simply open the project file “[FONT=Lucida Sans Unicode]hellocardboard-ios/HelloCardboard.xcodeproj” with XCode and run it on your device.

Looking forward to receive your screenshots. Thanks.

EDIT: if preferred, you can reach us also writing at support@unamedia.com .

Thank you very much for your reply.

I took a screenshot exactly as I was told.

I reinstalled the app, initialized the app settings and skipped the QR code, but it didn’t change.

Google has a normal size and looks right when I put on my VR device.

Thank you for your cooperation.

Hi saito_y,

thanks a lot for your help. I’m very sorry for this issue. Thanks to your screenshots I think we identified the problem: our calculations that setup the stereoscopic rendering area in UE4 are not matching what the Google Cardboard SDK is expecting on your device. If ok for you, we would need your email address to send you a version of the plugin with a tentative fix, so we can try to solve this issue quickly. You can write us at support@unamedia.com . Thanks again for your help!

Thank you very much!

I just sent you an email.

Thanks to the great help from @saito_y, we fixed the issue on the iPhone X* devices family. In the next days we’ll submit the fix to the Marketplace. We’ll update you when it will be available.

Hi! An new version (v1.0.2) of the plugin is available in the UE Marketplace. Here the changelog:

To update, select the Installed Plugins link:

UE4-InstalledPlugin-Update.png

and then press the Update button.

UE4-CardboardVR-Update.png

Hi - Great you’ve reimplemented this as it was a shame that this functionality has been officially deprecated.

This could be really interesting - have you considered or do you have these already on your roadmap?

  • 6DOF using ARKit/ARCore?
  • AR image recognition

Alternatively would the existing AR functionality be compatible with this plugin so a we could use carboard VR for the stereo view but have the camera driven by ARKit for additional functionality?

Hi David!

thanks! This plugin started just for our need to have a working Cardboard implementation in UE4 for some third-party works, then we decided to make it a reusable product also for other devs :slight_smile:

At the moment we don’t have plans to integrate AR features to this plugin, the main reasons are:

  • the plugin is “just” a “VR rendering system” for Unreal Engine 4 (like the ones for HTC Vive, Oculus Quest, etc.) - and the base UE4 interfaces don’t have AR features;
  • the plugin is the “porting” of the official Google Cardboard SDK, that at the moment doesn’t provide any AR functionality.

But it’s surely an interesting idea, maybe for the future :slight_smile:

Nevertheless, I don’t see any issue preventing you to integrate this plugin with an existing AR toolkit: they are two orthogonal systems that can be mixed together. You should be able to use the AR toolkit to get the tracking data (world camera position and objects position), and then use them to drive the position of your 3D actors in the VR world. Using the VR Stereo Layers, you should quite easily be able to display the video stream captured by the device camera/AR toolkit and use it as “background” for your VR world. While the “background” could appear quite “flat” (as common devices don’t have stereoscopic cameras), the other 3D actors should give a nice VR experience. Disclaimer: we never tested the above steps, it’s just an idea :slight_smile: