本文源自以下链接并对其中一些过时(2017.03.09)信息做些更新以及解释:
http://secondreality.co.uk/blog/how-to-create-mixed-reality-videos-for-the-vive-with-two-controllers/
首先,通过以下链接了解如何制作混合现实视频:
- http://uploadvr.com/make-mixed-reality-video-livestream-two-realities/
- http://northwaygames.com/how-to-mixed-reality/
这些方法通常需要一个额外控制器,用于连接到相机,使物理相机与虚拟相机同步。
普通用户通常只有两个标配的控制器,本文介绍如何不增加控制器来拍摄MR或者录制第三人称视角。
SteamVR是个开放平台,并非HTC Vive专用,它允许用户使用自己的硬件。为了能够使用自制硬件,需要做以下几项工作:
1. 一个驱动(或模拟)硬件的模块。
本例即使用软件模拟一个VIVE手持控制器,点击这里下载。如需自己编译点击这里进入源代码主页下载,工程依赖boost和openvr需要事先下载。
从代码可知,这里并不复杂,主要实现并导出两个接口,如需更多功能,可基于以上的代码自行修改。
2.并把模块放置特定位置
在1中下载文件里面有一个名为virtualcontroller的文件夹,复制到SteamVR的driver目录。
例如完整路径可能是:
C:\Program Files (x86)\Steam\steamapps\common\SteamVR\drivers\virtualcontroller\bin\win64\driver_virtualcontroller.dll
有些用户还使用了Viveport平台,这就需要在把它们复制到Viveport目录中SteamVR模块对应的位置。
使用Leapmotion、OSVR等设备作为外设的用户,这些硬件也会有对应的驱动文件夹在driver目录。
3.修改SteamVR配置
原文中指出需要编辑steam的config目录(C:\Program Files (x86)\Steam\config)中的steamvr.vrsettings文件,启用“activateMultipleDrivers”。如下:
{ ... "steamvr" : { "activateMultipleDrivers" : true } }
即在"steamvr"这项冒号后面加上一个参数。
不过当前来看,此设置很可能无效,在我自己的环境中,此目录已变为programdata目录(C:\Programdata\Steam\config)。
具体位置请参考SteamVR程序UI面板的"设置"->"开发者"->paths->设置配置目录。
以上步骤完成后,就多了一个模拟的虚拟控制器。如果希望虚拟控制器被SteamVR识别为第三个控制器,按以下顺序:
- 退出SteamVR
- 打开标配的两个物理控制器
- 启动SteamVR,确保两个控制器被你的基站看到
第三个控制器将在几秒钟后出现。如果物理控制器进入睡眠状态,你可能需要重复这个步骤。
录制还需要一个externalcamera.cfg文件,在1中下载的zip里有一个名为cameraAlign的应用程序。
运行它并按照说明操作,可以更新目录中的externalcamera.cfg文件。
将externalcamera.cfg文件移动到要录制的游戏或APP目录,然后启动程序即可。
最后一点:并非所有的程序都可以启动第三人称视角, 目前主要支持的是Unity开发的集成了官方SteamVR组件的程序。
如果你是开发,想了解自己的程序是否支持这种录制方式,可以查看Unity工程里SteamVR的Scripts目录是否含有SteamVR_ExternalCamera.cs脚本。如果没有,需要更新下SteamVR组件的版本。