A multi-user onboarding system design to introduce new users to VR interactions in a shared MR environment. The system precisely aligns virtual objects with real-world physical spaces, maintaining consistent synchronization for all users. After completing interactive tutorials, users transition into a fully immersive VR scene through 1 of 3 MR-to-VR transition techniques reinforcing social presence and reducing disorientation. This project will features in an IEEE conference and is available now on Meta Horizon Store.
Demo: https://www.youtube.com/watch?v=xUA0cI-iyPc
- Unity Version: 2022.3.15f1
- Meta Dashboard Setup:
- Create an application on Meta Dashboard.
- Request permission access for User ID, User Profile, and Avatars.
- Configuration Guide
CST-NetworkUser
: User avatar prefab derived from the VRSYS framework.ColocationPrefab
: VR scene (ceiling room).
Folder Path | Purpose |
---|---|
Assets/Collocated See-Through/Resources/TutorialInteractables |
Prefabs used in the tutorial phase |
Assets/Collocated See-Through/Resources/TransitionInteractables |
Prefabs used in the transition phase |
Assets/Collocated See-Through/Resources/TaskInteractables |
Prefabs used in the task phase |
Object | Responsibility |
---|---|
GuideUI |
Triggers scene setup, tutorial, transition, and task |
SceneManager |
Orchestrates collocation transition techniques |
TutorialManager |
Spawns and manages tutorial objects and state |
TaskManager |
Manages tasks within scenes |
ColocationBootstrapper |
Handles setup and joining of colocation sessions |
OwnershipManager |
Manages object ownership during interactions (e.g., tutorial guitar object) |
Note: Names in quotes (
" "
) refer to objects within the Unity hierarchy.
"LobbyUser"
creates or joins a co-located network scene via"NetworkMenu-World"
."UserSpawner"
spawns theCST-NetworkUser
prefab.CST-NetworkUser
initializes colocation via theOnOVRCameraRigReady()
method inCSTNetworkUser.cs
.ColocationBootstrapper.cs
automatically sets up or joins an existing colocation session.- After setup, the host user activates
"GuideUI"
to manage room setup, tutorials, transitions, or tasks.
- Only the host user can activate the Guide UI by pressing the Start button on the left controller.
- After activation, the Guide UI provides instructions for enabling desired functionality.
Simulator Note: Every simulated session spawns at coordinates
(0, 0, 0)
regardless of colocation setup.
- Use ParrelSync to open two Unity Editor instances.
- Activate MetaXRSimulator to run mixed-reality simulations in each Unity instance.
- One session creates the network room; the other session joins it.
- Automatic room creation and joining can be enabled through the
LobbySettingsCST
scriptable object.
- Initial APK:
- Upload APK to the Meta dashboard using Meta Quest Developer Hub once to get app entitlement.
- User Assignment:
- Add Meta accounts associated with target devices via
Meta dashboard > Release Channels > ALPHA > Users
.
- Add Meta accounts associated with target devices via
- Installation:
- First-time installation from the Meta Horizon Store.
- Subsequent updates can be sideloaded directly onto the device.
- The boundary button in the guide menu is not pokable when the UI height is too large. Resize the guide menu to reduce its height for work around.
// TODO