Meta 2

The Meta 2 is an Augmented Reality device that aimed at improving features that typically lack in AR, such as field of view and intuitive hand interactions with objects. Similarly to the Microsoft HoloLens, the Meta 2 can also reconstruct surface geometry using depth-sensing cameras then integrate the reconstructions into the game. Unlike the HoloLens however, the Meta 2 is a tethered device with 9 feet of cable, making it much more of a standing experience than a roaming experience.

The most recent supported version of Unity for the Meta 2 is Unity 2017.3.0f3. Beyond this version, the Meta 2 may still work but some bugs could occur and would be unsupported by the Meta team.

NOTE: The Meta 2's front glass plate is very important, and scratching it can have serious negative effects on the AR projection. ALWAYS use the provided stand when putting the Meta 2 down anywhere, and only clean the glass using the provided microfiber-cloth bag.

Getting Started

General Info

An overview of the Meta 2 Unity SDK can be found here, where you can learn more about the specific components of the Meta 2 and how to use them within Unity.

If you want to see any of the Meta 2 developer applications, you can open the Meta 2 Utility App from the System Tray (near the clock on the taskbar) if it's currently running. If it's not running, then you will need to run the Meta 2 Utility App first; instructions for doing so can be found here.

Installing and creating a project

The following steps can be used to set up the Meta 2 within Unity as recently as September 2018. If you find these instructions are incorrect, updated steps may be found here.

If you're on a BVW platform computer, skip this step! Download the Meta SDK and install it from this link (Meta 2 currently is not hosting their Meta SDK online, which would normally be here).

Open Unity and create a new project/open your existing project.

Import the Meta 2 Unity package into your project:

BVW: You can find a shortcut to the Unity package on the desktop. Double-clicking it while your project is open will begin the import process. If you cannot find the Unity shortcut, tell a TA and use the Other instructions instead.

Other: After installing the Meta 2 SDK, the Unity package can be found at C:\Program Files\Meta\Meta SDK2 Beta\Unity

Click "Apply All" on the window that pops up after importing the package--this is important for when you make a build of your game.

In any scene in which you want to use the Meta 2, delete or disable existing Camera objects in the scene, then go to Assets > Meta SDK > Meta > Resources > Prefabs and add the MetaCameraRig prefab to the scene.

Now you should be able to play the scene using the Meta 2! Creating a build is also as simple as it is with any regular PC game in Unity. Just go to the File > Build Settings and make a build like normal.

Restarting the Meta 2

You may need to restart the headset to correct some issues that pop up on it. It remains powered up as long as it's plugged into a power outlet, so to restart the headset, unplug it from its power outlet and plug it back in.

Do NOT unplug the HDMI or USB connectors! These likely aren't causing the problem, but messing with them can cause more!

Advanced Usage

Reconstruction

The Meta 2 can create collisions for real-life objects by using its Surface Reconstruction function. It does this with a depth-sensing camera on the headset that scans the objects the wearer looks at, then generates in-game geometry to collide with from the data.

To use Reconstruction while an application or game is running on the device, click into the Meta 2 status window (not the preview window, but the other one that says something about the headset on a dark blue background) and press Alt + i. This will start the Reconstruction process. When reconstructing, keep your hands away from the front of the headset! The Meta 2 is not smart enough to determine if your hands are something they should be scanning, so it will create geometry for them anyway. If you accidentally do this, keep looking at the unwanted geometry during Reconstruction and it should be deleted if there's any surface behind it.

Programming Information

The Meta 2 API can be found at this page, which gives comprehensive documentation on the library that can be used to interface with the Meta 2.

Event callbacks

The Meta 2 Unity SDK makes heavy use of Unity Events, particularly in the object grab interaction scripts. In order to make functions visible from the Unity Editor, be sure to make them public. They will then be accessible on a per-object basis, by selecting the object inside the Event callback list and then selecting the function from the adjacent menu.

Grab Interaction Scripts

The Interactions scripts provided in the Meta 2 Unity SDK control objects' translation, rotation, and scale separately via different scripts. The Rotation and Scale script can yield unexpected behavior based on the order in which you grab the the object with your left and right hands; it is not recommended for use.

Starting the MetaCameraRig at a different location than 0, 0, 0

When starting a scene, the MetaCameraRig by default will reset to the origin of its parent at local position X:0, Y:0, Z:0. If the MetaCameraRig has no parent object, then it will go to the origin of the entire scene! To prevent this, you can nest the MetaCameraRig object under another empty object and move the empty object to your desired location instead.

Art (2D & 3D) Information

As with any stereo device, rendering performance must always be taken into account, as the image is being drawn twice for each eye. Make sure that your models are sufficiently low-poly, and that any custom shaders are not taxing on the device, to maintain a high refresh rate and provide an optimal user experience.

Sound Information

The Meta 2 has four speakers embedded in the headset, for an improved spatial audio experience. In practice, however, sound localization is blurry at best, and should not be relied on too heavily for game design purposes.

When importing the Meta 2 Unity package, setting the recommended settings will change the audio output to quadraphonic.

Design Guidelines & Tips

Matching in-game objects to the real world

Many times you will want to have an in-game object match to something in the world, like a virtual coffee mug that sits on your actual desk. When you want this object to be very specifically placed, you may be tempted to use the Reconstruction technology of the Meta 2, but we highly recommend against doing that. Having an "automagic" way of setting up the scene will create infinite headaches and you will never get it quite right, but fortunately there's a better way for aligning virtual objects with the real world.

Before you begin your game, have a "startup" part at the beginning where the user can place, rotate, and scale any elements that need to be "re-calibrated" prior to playing, then hit some sort of button to begin the experience. This will allow you to get a close-to-perfect match every time if you're the one setting up the scene, without any of the technology headaches. Even further, you could also integrate this setup sequence as a tutorial for interacting with the Meta 2 in your game!

Tether

The Meta 2 is connected to the computer via a short tether of about 1.5 meters. Therefore, experiences on the device should not involve walking around or heavy movement.

Field of View

The Meta 2 has a modest field of view of 90 degrees. When designing experiences, put all content in front of the guest, or make sure to give ample opportunity for guests to orient themselves and locate content.

Example Projects

Currently there are no example projects for the Meta 2.

Previous ETC Projects

Currently there are no ETC projects that use the Meta 2.

BVW

Currently there is no BVW-specific information to know about the Meta 2.