This Unity project (version 2022.3.20f1) enables dyadic conversations in virtual reality using the Meta Quest Pro and WebRTC communication. It is intended for local network use and includes optional monitoring and recording features.
- WebRTC-based VR communication between two users.
- Avatar selection and session participation:
1 Conversation Aand1 Conversation Bfor each participant. - Optional monitoring without VR device or avatar via the
1 Monitorscene. - Video and audio recording of conversations using OBS + NDI setup.
- Survey integration via the
2 PostConversationscene.
- Two computers, each connected to a Meta Quest Pro and the same local router.
- (Optional) Monitoring computer on the same network.
- WebRTC socket signaling server running locally.
- Unity 2022.3.20f1 or later.
- Connect all participant and monitor computers to the same router.
- On any computer (preferably the monitoring one), start the socket signaling server.
- Launch
Conversation AandConversation Bscenes on separate computers with Quest Pros. - Use the
Monitorscene for non-VR observation or participation.
If you do not intend to record, this section can be skipped.
-
Run the Socket Server
- Install Node.js from the official website: https://nodejs.org/
- Open a terminal and navigate to the
util-signaling-serverdirectory. - Run the following command to install dependencies:
npm install
-
Install NDI Runtime
Download and install from:
https://ndi.video/tech/ndi6/ and https://ndi.video/tools/download/ -
Install OBS Studio
https://obsproject.com/
Enable recording mode during setup. -
Install OBS-NDI Plugin
https://github.com/DistroAV/DistroAV
-
Add NDI Source in OBS:
- Add a new NDI Source in OBS.
- You may need to launch the Unity project for the source to become visible.
-
Set Hotkeys for recording control:
- Go to
Settings > Hotkeys - Assign
F9to start recording,F10to stop.
- Go to
-
Audio Track Setup for multi-track export:
Settings > Output > Recording- Set format to
mkv
-
Vidieo Timestamp for synchronizing pose data
- In the top menu of OBS, go to Scripts, and add util-obs-timestamp/logger.py.
- Choose an appropriate save path and file name for the timestamp log.
- These timestamps can be used to synchronize recorded video with pose data collected within the Unity scene.
-
Channel Assignment:
Settings > Output > Recording- Enable audio tracks 1, 2, and 3
- Then return to the audio mixer and open the Advanced Audio Properties menu. Assign Desktop Audio to tracks 1 and 2, and Microphone to tracks 1 and 3.
- Confirm the file save path is accessible to Unity.
- Click the gear icon on the audio mixer tab.
- Assign desktop and microphone audio to different tracks.
- Launch the socket server on any machine in the local network.
Navigate to theutil-signaling-serverdirectory in the terminal and runnode index.js. Alternatively, you can runstart.batto launch the server. - Start the corresponding VR app on each participant’s computer.
- Press R in the Unity app to begin recording (OBS must be running).
- Press Q in the Unity app to stop recording.
- Press 3 in the Unity app to move to the post-conversation scene
To launch the post-session survey app:
- Run the
2 PostConversationscene. - The scene will automatically:
- Convert video files,
- Launch the session survey,
- Launch the video-based survey.
Before launching, verify that the
[1] Video ConverterGameObject has the correct path set to the video recording folder.
If you experience issues or want to test the upcoming standalone version of next version of this app (which removes the need for external server setup), contact:
Hyunchul Kim – [email protected]
