/Unity-Movement

Body, Eye and Face Tracking code sample.

Primary LanguageC#OtherNOASSERTION

Unity-Movement

Unity-Movement is a package that uses OpenXR’s tracking layer APIs to expose Meta Quest Pro’s Body Tracking (BT), Eye Tracking (ET), and Face Tracking (FT) capabilities. With this package, developers can leverage tracking to populate VR environments with custom avatars that bring the expressiveness of users into the virtual environments that they create.

License

The Unity-Movement package is released under the Oculus License. The MIT License applies to only certain, clearly marked documents. If an individual file does not indicate which license it is subject to, then the Oculus License applies.

Requirements

  • A version of Unity supported for Movement SDK installed:
    • 2021.3.26f1 (2021 LTS or newer)
    • 2022.3.11f2 (2022 LTS or newer)
    • 2023.2.7f1 or newer
  • v67.0 or newer of the Meta XR SDK. You will need the Meta XR Core SDK and the Meta XR Interaction SDK packages found on this page.
  • A project set up with these steps.

Getting Started

First, ensure that all of the requirements are met.

Then, bring this package into the project.

The sample scenes are located under the Samples/Scenes folder.

Unity Setup

If the new scene or an existing scene doesn’t have a GameObject with the OVRCameraRig component, integrate body tracking as mentioned here and then follow these verification steps:

  1. From the Hierarchy tab, look for a Main Camera GameObject which comes in a new scene by default. If it it exists, then please delete it.
  2. Make sure a Camera Rig is in your scene, either by using the OVRCameraRig or by creating one using Building Blocks. To create a Camera Rig using Building Blocks, go to Meta->Tools->Building Blocks and select the (+) icon on the lower right of the Camera Rig option.
  3. Select the Camera Rig object in the Hierarchy, and in the Inspector tab, go to the OVRManager component and look for the "Quest Features" section.
  4. In the General tab, there are options to enable body, face, and eye tracking support. Make sure that Supported or Required is enabled for the type of tracking that you require.
  5. Under OVRManager's "Permission Requests On Startup" section, verify that Body, Face and Eye Tracking are enabled.
  6. Ensure that OVRManager's "Tracking Origin Type" is set to "Floor Level".
  7. In OVRManager's "Movement Tracking" verify that "High" for "Body Tracking Fidelity" is selected.
  8. In OVRManager's "Movement Tracking" verify that "Full Body" for "Body Tracking Joint Set" is selected.

Layer index 10, layer index 11, and the HiddenMesh layer must be present in the project for RecalculateNormals to work correctly.

Some Project Settings can be validated via Movement->Check Project Settings. For a more thorough check, please use Oculus->Tools->Project Setup Tool.

Rendering Quality

Navigate to your Project Settings (Edit->Project Settings...) and click on the "Quality" section. If your project uses URP, then some of these settings might be part the rendering pipeline asset currently in use. The pipeline picked will be shown in the Quality menu.

The following settings are recommended:

  1. Four bones for Skin Weights.
  2. 2x or 4x Multi Sampling Anti Aliasing.
  3. Full resolution textures.
  4. Shadow settings:
    • Hard and soft shadows.
    • Very high shadow resolution.
    • Stable fit.
    • Shadow distance of 3 meters with cascades. This will allow viewing shadows nearby without experiencing poor quality.
  5. At least one pixel light.

Samples

The project contains several sample scenes. To test the samples, they must be imported into the project's Assets folder:

  • Select the "Meta Movement" package in the package manager. Once selected, expand the Samples section and import the desired sample scenes.

For more information about body tracking, please refer to this page.

For more information about the samples, please refer to this page.

Player Settings

Make sure that the color space is set to Linear.

Build Settings

In order for the SceneSelectMenu buttons to work, add imported scenes in the Samples step to the Build Settings.

Documentation

The documentation for this package can be found here. The API reference for this package can be found here.

License

Unity-Movement is subject to the Oculus SDK License Agreement, as found in the LICENSE file.