Skip to content

cvachha/TransceiVR_release

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

TransceiVR

Asymetrical Communication Tool Within Unity

TransceiVR is a package that enables asymmetric communication within Unity VR projects, turning them into collaborative virtual environments. External users can navigate through the VR scene and place depth corrected annotations in the VR scene. This package uses the Unity Render Streaming package and WebRTC.

transceivr_img1 (2)

Features

  • Two external users
  • Depth corrected world based annotations
  • Object selection
  • Scene navigation
  • Place target points
  • C# server to handle input from Web Client

Prerequisites

Installation

  1. Open Unity Project (VR enabled optional) and Unity Package Manager
  2. Import Unity RenderStreaming from the Unity Package Manager in the editor (You may have to select Show preview packages under the Advanced tab)

transceivr_img5

  1. Download this Github repository (web app and Unity package)
  2. Import the TransceiVR unity package (Assets > Import Package > Custom Package)
  3. Install the Newtonsoft.JSON package from the package manager by selecting (+ > Add package from git URL) and entering https://github.com/jilleJr/Newtonsoft.Json-for-Unity.git#upm

transceivr_5

  1. Install and import the Quick Outline package from the Unity Asset Store: https://assetstore.unity.com/packages/tools/particles-effects/quick-outline-115488
  2. Open the TransceiVR folder and navigate to the Prefabs folder
  3. Drag and drop the TransceiVR_Utilities prefab into your scene
  4. Select the AnnotationLayerQuad prefab and add a new layer called AnnotationPlaneLayer

transceivr_addinglayer2 transceivr_addinglayer transceivr_adding3

  1. Position the External User Cameras in proper locations in your scene
  2. In the Hierarchy, move the AnnotationWindow gameobject under the hand controller (this can be placed anywhere)

image

  1. Launch the web server (webserver.exe) and copy one of the urls in the launched windows in the Signalling URL in the 'RenderStreaming' gameObject. (For example: http://127.0.0.1/)

transceivr_img3

  1. Navigate to the Signalling URL in a compatible web browser (such as Chrome)
  2. Run the scene in Unity and then start the client.

The Client Manager Should look like this

transceivr_img4 (4)

For further details on the Render Streaming package and server refer to the Unity Render Streaming documentation [https://docs.unity3d.com/Packages/com.unity.renderstreaming@2.0/manual/index.html]

Web Client

Each instance of the web client is assigned an ID with a respective camera.

Tools Description
Annotate Places a world space annotation drawn by an external user
Select Outlines the selected object (Requires Asset)
Place Target Places a target point where an external users clicks
Annotate Window Places an annotation on the 'annotation window' gameObject view
Switch View Switch between the external camera (only make changes on the client view

Annotation Window

image (1)

Full Screen Mode transceivr_img2

External Users

Navigate with WASD keys and use Q and E to go up and down. Hold the right mouse button to orbit the camera view. Tools can only be applied with respect to the coreresponding camera and client.

Editing the Web Client

If you edit the web client files, make sure to re pack the folder to create the new webserver.exe file.

npm run build
npm run pack

If you run into issues with the web client refer to the official Unity documentation here: [https://docs.unity3d.com/Packages/com.unity.renderstreaming@2.0/manual/en/webapp.html]

Contributors:

Cyrus Vachha, Bala Kumaravel

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published