Skip to content

[MixedReality Project] A co-located mixed reality onboarding system that enables interactive see-through tutorials to improve VR interaction retention for novice users and seamless multi-user VR transitions from a shared physical space.

Notifications You must be signed in to change notification settings

kingdomax/collocated-onboarding-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Co-Located Onboarding System

Watch the video

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

Project Setup

  • Unity Version: 2022.3.15f1
  • Meta Dashboard Setup:

Important Prefabs

  • CST-NetworkUser: User avatar prefab derived from the VRSYS framework.
  • ColocationPrefab: VR scene (ceiling room).

Important Folders

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

Important Hierarchy Objects

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)

Application Flow

Note: Names in quotes (" ") refer to objects within the Unity hierarchy.

  1. "LobbyUser" creates or joins a co-located network scene via "NetworkMenu-World".
  2. "UserSpawner" spawns the CST-NetworkUser prefab.
  3. CST-NetworkUser initializes colocation via the OnOVRCameraRigReady() method in CSTNetworkUser.cs.
  4. ColocationBootstrapper.cs automatically sets up or joins an existing colocation session.
  5. After setup, the host user activates "GuideUI" to manage room setup, tutorials, transitions, or tasks.

User Controls

  • 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.

Local Multi-User Testing

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.

APK Distribution

  • Initial APK:
  • User Assignment:
    • Add Meta accounts associated with target devices via Meta dashboard > Release Channels > ALPHA > Users.
  • Installation:
    • First-time installation from the Meta Horizon Store.
    • Subsequent updates can be sideloaded directly onto the device.

Known Bugs

  • 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.

Dependencies

// TODO

About

[MixedReality Project] A co-located mixed reality onboarding system that enables interactive see-through tutorials to improve VR interaction retention for novice users and seamless multi-user VR transitions from a shared physical space.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published