Ready Player Me Meta Movement Support
This package adds support for Meta Movement tracking, including full-body retargeting and face-tracking.
Requirements
- Unity Version 2021.3 or higher
- Ready Player Me Core - v7.1.0+
- glTFast - v6.0.0+ (included as a dependency in Ready Player Me Core)
- Meta Movement v5.2.0+
- Before testing in VR you should Fix any issues diagnosed by the Meta Project Setup Tool by clicking on
Edit -> Project Settings -> Meta XR
Package Installation
This assumes that your projects already meet all the requirements including the installation of all the plugins listed above
- Copy the following GitHub URL:
https://github.com/readyplayerme/rpm-unity-meta-movement-support.git
- Open Unity and go to
Window -> Package Manager -> Add package from git URL
- Paste the URL and click
Add
Importing the Sample
- Import the sample by going to
Window -> Package Manager -> Ready Player Me Meta Movement Support -> Samples -> Import
Running the Samples in the Editor
- Open the scene
Assets/Samples/Ready Player Me Meta Movement Support/VERSION_NUMBER/LoaderSamples/Scenes/DynamicLoader
orAssets/Samples/Ready Player Me Meta Movement Support/VERSION_NUMBER/LoaderSamples/Scenes/PrefabLoader
- Connect your Quest device via Quest Link
- Click on the
Play
button in the Unity Editor
Running the Samples on the device
- Open the scene
Assets/Samples/Ready Player Me Meta Movement Support/VERSION_NUMBER/LoaderSamples/Scenes/DynamicLoader
orAssets/Samples/Ready Player Me Meta Movement Support/VERSION_NUMBER/LoaderSamples/Scenes/PrefabLoader
- Add the sample scene to the build settings by going to
File -> Build Settings -> Add Open Scenes
- Set the build target to Android
- Connect your Quest device via USB
- Click on the
Build and Run
button in the Unity Editor
Loading an RPM avatar in a custom OVR-ready scene
This assumes that the scene is already set up with the necessary components for OVR tracking and Meta Movement
Dynamic Avatar Loading
- With your scene open, drag and drop the
DynamicAvatarLoader
prefab fromPackages/Ready Player Me Meta Movement Support/Runtime/Prefabs
into your scene - Select the
DynamicAvatarLoader
object in the scene, then in the inspector, set theAvatar URL
field in theLoadUrlOnStart
component to the URL of the avatar you want to load
- Click on the
Play
button in the Unity Editor - After a small delay, your avatar will load into the scene
Loading with AvatarPrefabLoader
- With your scene open, Drag and drop the
AvatarPrefabLoader
prefab fromPackages/Ready Player Me Meta Movement Support/Runtime/Prefabs
into your scene - Select the
AvatarPrefabLoader
object in the scene, then in the inspector, set theAvatar URL
field in theLoadUrlOnStart
component to the URL of the avatar you want to load
- Click on the
Play
button in the Unity Editor - After a small delay, your avatar will load into the scene
Creating your own Avatar Prefab
Step 1: Set the correct Avatar Config
Before loading an avatar you need to set the correct avatar config. To do this follow these steps:
- Open the Ready Player Me Settings window
Tools -> Ready Player Me -> Settings
- Set the
Avatar Config
field toMeta Avatar Config
- This will ensure that the avatar is created with the correct settings for Meta Movement and face-tracking
Step 2: Loading an Avatar in Editor
- Create a Ready Player Me avatar from an XR-enabled subdomain, for example,
https://dev-sdk-xr.readyplayer.me/avatar
- After avatar creation is complete you will get a URL to a .glb, copy that URL.
- In Unity open the Avatar loader window by going to
Tools -> Ready Player Me -> Avatar Loader
- Paste the URL into the
Avatar URL
field and clickLoad Avatar
- After a small delay, the avatar should load into the scene as a new GameObject
Step 3: Avatar Face Tracking set up & twist bones
- Select the avatar GameObject and right-click to display the context menu
- In the context menu, select
Ready Player Me -> Meta Movement -> Run Avatar Setup
- This should automatically set up the avatar with the correct settings and components including:
- Adding a Retargeting Layer component
- OVR Body component
- Rig builder component
- It will create and set up a Rig as a child of the root object
- Adds constraints including
Full Body Deformation Constraint
and aRetargeting constraint
- A
OVRFaceExpressions
component added to the root object ARKitFace
component added to each child mesh with blendshapes- A
TwistHierarchy
component added to the root object with the twist bones set up already
Step 4: Saving as a prefab
With the configured avatar in the scene, there are still a few steps required to save it as a re-usable prefab.
- Right-click on the avatar GameObject in the hierarchy and select 'Prefab -> Select Asset'. This will show the avatar source files including a .glb and a .prefab file
- Move the files from this folder somewhere in your Assets folder (or anywhere outside of
Assets/Ready Player Me/Avatars
folder) - After moving these files you can now simply select the avatar object still in the scene and drag it anywhere into the project view to create a prefab
After creating the prefab you can now add it into any scene by dragging and dropping the prefab into the scene hierarchy.