Git Product home page Git Product logo

sharedspaceexperience's Introduction

Shared Space Experience

Copyright 2023, HTC Corporation. All rights reserved.

About

Shared Space Experience is an MR co-location example for VIVE XR Elite. It shows how to allow users to interact in the same physical and virtual space.

In this project, we demonstrate how to align the space between two VIVE XR Elites by ArUco markers.

Requirements

  • Hardware
    • 2 VIVE XR Elites
      • System version: 1.0.999.334 or newer
    • 4 VIVE Controllers for XR Series (2 per VIVE XR Elite)
    • An ArUco Marker (dictionary: 4x4, ID: 0~99)
  • Software

Settings & Build Setup

  1. Create a new Unity 3D project and switch build platform to Android.

  2. Install and setup WaveXR Plugin.

    1. Follow Wave XR Plugin -- Getting Started to setup WaveXR in Unity.
    2. Follow this Wave XR Plugin -- Unity Marker to setup Trackable Marker.
  3. Install following packages:

  4. Install following assets:

  5. Import this project and setup build settings.

    • Add the scenes in Assets/SharedSpaceExperience/Scenes to the Scenes In Build, and set Lobby scene as the entry scene.

How to Play with VIVE XR Elites

  1. Environment Setup
    1. Do Room Setup and make sure both VIVE XR Elites have the same floor height.
    2. Place the ArUco marker in a fixed place.
  2. Install the App
  3. Play the Game
    1. Matching
      1. Launch the app. In the lobby, you can select the server with desired region in the top-right dropdown list. Make sure both players are in the same server.
      2. Click Start Button to start matching. The player who join the match first will be the host.
    2. Aligning Space
      1. The host have to scan and specify a marker for space alignment.
        • To scan a marker, the player needs to look at it with VIVE XR Elite (in the front to get precise position). When the marker is detected, a marker frame will appear on the same spot. The players can then select the marker using the controller.
        • To rescan the marker, first cover (or remove) the marker and look at the front of marker for about 10 seconds. Then uncover the marker and scan it again.
      2. After the host selects a marker, the other player has to scan and select the same one to align the space. Once the alignment is completed, players can see each other's virtual controller models and check whether the space has been properly aligned.
    3. Playing
      1. The game starts once the alignment process is completed.
        • Attack: Press the trigger on the right controller to shoot magic orbs. Press the grip button to switch orb type.
        • Defense: Use the shield attached on the left controller to prevent the health bricks from damage.
      2. The game ends when the time's up or one of the players loses all the health. All players will return to the lobby.

Developer Guidelines

  • Co-location and Markers:

    • In the folder Assets/SharedSpaceExperience/Scripts/Alignment
      • MarkerManager.cs: Demonstrates the process of marker detection and how to convert ArUco marker into trackable markers.
      • AlignmentManager.cs: Demonstrates how to align the space between the host and other players.
    • See Wave XR Plugin -- Unity Marker for more information about trackable markers.
  • MR Pass through:

    • Assets/SharedSpaceExperience/Scripts/Utils/PassThrough.cs: Demonstrates how to enable pass through mode.
    • See Wave XR Plugin -- Passthrough for more information.
  • Debug:

    • Press the menu button on the left controller (or D key when testing in Unity Editor) to enable debug mode.

Third Party Assets

License

See LICENSE.pdf for more information.

Contacts Us

Email: [email protected]

sharedspaceexperience's People

Contributors

francisco-tsao avatar kevinchenier avatar tony-phlin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.