How to Create Mixed Reality Videos for the Vive - with Two Controllers
http://secondreality.co.uk/blog/how-to-create-mixed-reality-videos-for-the-vive-with-two-controllers/
16 MAY 2016
Introduction
Mixed reality videos are catching on.
They give a good sense of what it's like to be in VR. In order to create mixed reality videos you normally need three controllers, however I found a solution for two controllers.
Before reading on, read these articles for a good introduction on how to make mixed reality videos:
- http://uploadvr.com/make-mixed-reality-video-livestream-two-realities/
- http://northwaygames.com/how-to-mixed-reality/
As you have read, three controllers are normally needed - two for the VR user, and one attached to the camera. This allows the physical camera to stay in sync with the virtual camera - even when it is being moved.

Solution
There are two options for a two controller setup:
- VR user only has a single controller, the other controller is attached to the physical camera.
- VR user has both controllers, the virtual camera position is moved to the position of the physical camera (somehow).
I'm going to detail a solution for the second scenario. The disadvantage to this solution is that you can not move the physical camera while you are recording.
I made a Vive controller driver that simply 'tricks' SteamVR into thinking a third controller is attached. This will enable mixed reality mode in most games/apps that were built using Unity.

After this we must find the orientation and position of the physical camera so we can put it in externalcamera.cfg. I created a very simple Unity application that would let you do this easily - you simply put your controller next to your physical camera and click a button, and you can then save the orientation/position straight to the externalcamera.cfg file.
Step by Step Software Setup
1: Download and Install the Virtual Controller Driver
Download MixedRealityTwoController-0-0-3.zip and extract it.
There is a folder called virtualcontroller inside it. Copy this folder, and move it to your Steam drivers folder. Your full path to the dll should be something like:
C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\virtualcontroller\bin\win64\driver_virtualcontroller.dll
Update: The SteamVR folder may be called OpenVR.
2: Enable Multiple Driver Support
Edit your config/steamvr.vrsettings to enable "activateMultipleDrivers". This is what allows the virtual controller driver to co-exist with the Vive drivers. Be sure to mind your commas. Check vrserver.txt log to see if there were parse errors. Many of the settings are described athttps://developer.valvesoftware.com/wiki/SteamVR/steamvr.vrsettings .
{ ... "steamvr" : { "activateMultipleDrivers" : true } }
3: Make the controllers show up in the correct order
You want the virtual controller to be recognized by SteamVR as the third controller, here is how to do that:
- Exit SteamVR
- Turn on your two controllers (press the system button)
- Start SteamVR and make sure both the controllers are seen by your lighthouse (not flashing green).
The third controller will appear after a few seconds. If your physical controllers go to sleep you may need to repeat this process.
4: Generate your externalcamera.cfg file
Included in the zip you downloaded is an application called cameraAlign. Run this program, put on your headset and follow the instructions. When you hit save the externalcamera.cfg file in the directory is updated.

5: Record your videos
Move the externalcamera.cfg file to your game/application directory that want to record. So far I've had luck with Tiltbrush, Space Pirate Trainer and Job Simulator. From here on out follow the usual instructions to create mixed reality videos.
Conclusion
Mixed reality with two controllers is tricky, but possible. Let me know if you have any ideas to improve the process. The source code for the Virtual Controller Driver is available here.
Updates
A number of people have successfully used the driver to create videos.
- Jessie made a great tutorial on how to use the driver!
- Jessie also made a whole series of mixed reality of videos (playlist)
- Excellent review of Cyberpong by Mike
- Zombie Training Simulator gameplay by Christopher Davis
Have you used it to create something cool? Let me know at smr@secondreality.co.uk.
Problems
If the third controller doesn't show for you, you can contact me at smr@secondreality.co.uk. Please include virtual controller in the subject, and the SteamVR log file which is usually found at C:\Program Files (x86)\Steam\logs\vrserver.txt.
Changelog
- Version 0.0.3: Now includes 64 bit DLL. DLLs now contain version info in their property pages. Additional driver logging for troubleshooting.
- Version 0.0.2: Fixed bug where you couldn't make selections if hands were too near. Made cusorSprite more visible.
- Version 0.0.1: First release
Donate
Donations to Child's Play Charity are appreciated.
How to Create Mixed Reality Videos for the Vive - with Two Controllers的更多相关文章
- 如何透过HTC Vive拍摄Mixed Reality (混合现实)影片
https://www.vive.com/cn/forum/1706?extra=page%3D1 也许你是一位开发者,想为自己的HTC Vive游戏制作酷炫的宣传片:或者你是游戏主播,想为观众带来高 ...
- 【最新】Power BI混合现实应用Mixed Reality app预览版正式发布
1.介绍 2018年3月13日,Power BI在官方博客和Docs文档发布了Power BI for Mixed Reality应用预览版的消息, 也就是可以以后在更虚拟的世界中来观察你的报表,想象 ...
- HoloLens开发手记 - 使用混合现实捕捉 Using mixed reality capture
HoloLens给了用户混合真实世界和数字世界的体验.混合现实捕捉(MRC)使得你可以保存这种体验到图片或者视频.这使得你可以分享你的体验给其他人,这允许他们能看到和你所看到一样的全息图像.这些视频和 ...
- 微软Holographic将更名为Windows Mixed Reality
微软Holographic将更名为Windows Mixed Reality ----世界变化好快. 还没来得及细细品味,它就已经更名了. 程序员的焦虑,处在一个信息大爆炸的年代,大数据,云计算,机 ...
- Unity Glossary
https://docs.unity3d.com/2018.4/Documentation/Manual/Glossary.html 2D terms 2D Physics terms AI term ...
- About Windows 10 SDK Preview Build 17110
在 Windows Developer Day 活动同时,微软正式 Release 了 Windows 10 SDK Preview Build 17110. Windows 10 SDK Previ ...
- HoloLens开发手记 - 使用Windows设备控制台 Using Windows Device Portal
Windows设备控制台允许你通过Wi-Fi或USB来远程控制你的HoloLens设备.设备控制台是HoloLens上的一个Web Server,你可以通过PC的浏览器来连接到它.设备控制台包含了很多 ...
- Introducing Project Kinect for Azure
https://www.linkedin.com/pulse/introducing-project-kinect-azure-alex-kipman/ Hello everyone! Microso ...
- faceswap使用手冊
cd faceswap cd faceswap-master python faceswap.py gui Notice: This repository is not operated or mai ...
随机推荐
- 弱引用?强引用?未持有?额滴神啊-- Swift 引用计数指导
ARC ARC 苹果版本的自动内存管理的编译时间特性.它代表了自动引用计数(Automatic Reference Counting).也就是对于一个对象来说,只有在引用计数为0的情况下内存才会被释放 ...
- Python开发【第三章】:Python编码转换
一.字符编码与转码 1.bytes和str 之前有学过关于bytes和str之间的转换,详细资料->bytes和str(第四字符串) 2.为什么要进行编码和转码 由于每个国家电脑的字符编码格式不 ...
- Android onMeasure方法介绍
onMeasure方法在控件的父元素正要放置它的子控件时调用.它会问一个问题,“你想要用多大地方啊?”,然后传入两个参数——widthMeasureSpec和heightMeasureSpec. 它们 ...
- XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)
本文是 XSS防御检查单的翻译版本 https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sh ...
- 20145320 《Java程序设计》第2周学习总结
20145320 <Java程序设计>第2周学习总结 教材学习内容总结 3.1 类型.变量与运算符 基本类型 整数(short.int.long) .字节(byte) .浮点数(float ...
- Unity3D 装备系统学习Inventory Pro 2.1.2 总结
前言 写在最前面,本文未必适合纯新手,但有一些C#开发经验的还是可以看懂的,虽然本人也是一位Unity3D新人,但是本文只是自己在学习Inventory Pro的学习总结,而不是教程,本人觉得要读懂理 ...
- 一个IP能建立的最大连接数是多少?
在探讨这个问题前,我们先假设一种经典的连接模型: Client -> Load Balancer-> RealServer Pool 并且我们假设这里使用NAT模式的负载均衡,在这种模式下 ...
- JavaScript俄罗斯方块
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...
- AJAX-----01远古时期的ajax
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- PAT乙级 1032. 挖掘机技术哪家强(20)
1032. 挖掘机技术哪家强(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 为了用事实说明挖掘机技术到底 ...