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:

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.

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.

最新文章

  1. 用css3做一个正方体
  2. 学习angular2
  3. 搭建DAO层和Service层代码
  4. RESTful API你怎么看?
  5. ES(一): 架构及原理
  6. Things about single men that women hate
  7. 移动Web开发图片自适应两种常见情况解决方案
  8. "http-8080-3" java.lang.OutOfMemoryError: PermGen space C3P0死锁的问题
  9. Android吧数据保存成xml文件
  10. 【转】POJ题目分类
  11. Jar包转成Dll的方式(带嵌套的jar也能做)
  12. 纯js客服插件集qq、旺旺、skype、百度hi、msn
  13. java_web学习(15)jQuery
  14. MAC的VIMRC
  15. B2B2C商品模块数据库设计
  16. selenium java maven testNg环境搭建
  17. web项目中对post请求乱码处理
  18. struts2框架之重复提交问题
  19. sshfs远程挂载
  20. python open()函数的模式选择

热门文章

  1. 【译】在ASP.Net和IIS中删除不必要的HTTP响应头
  2. 字符串数组(String []) 去掉重复值的方法
  3. broadcom代码中httpd进程启动流程介绍
  4. The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.....
  5. java 静态函数锁对象说明
  6. C语言 在VS环境下一个很有意思的报错:stack around the variable was corrupted
  7. Python快速建站系列-Part.Four-首页内容填充
  8. DOM解析
  9. SQL2005中的事务与锁定(四)- 转载
  10. SIP协议栈基础笔记