如何透过HTC Vive拍摄Mixed Reality影片

如何透过HTC Vive拍摄Mixed Reality影片

日期: 2018-02-02
浏览次数: 523

也许你是一位开发者,想为自己的HTC Vive游戏制作酷炫的宣传片;或者你是游戏主播,想为观众带来高质量的VR直播体验;甚至你是一位VR的爱好者。无论如何,如果你对MixedReality(混合现实)感兴趣,请继续看下去。本文将介绍如何用HTC Vive拍摄高质量MR视频。

什么是Mixed Reality(混合现实)影片?

Mixed Reality影片就是透过VR中的影像+人像合成的影片。相较一般方法录制的VR影片,Mixed Reality视频更适合用来做游戏直播和制作宣传影片。 
如果还是不清楚,可以看看以下这支影片,就是透过Mixed Reality所制作的影片效果。 
http://v.qq.com/x/page/x0194621p8b.html 

制作Mixed Reality影片需要准备的道具

1.) 绿幕环境 

2.) 相机/摄影机(建议参数:1080p/60fps) 

3.) 4K屏幕:为了合成1080p的影片,屏幕需要能放得下多个1080p窗口(建议参数:4K/60Hz) 

4.) HDMI分配器 

5.) HTC Vive 一组 
 
6.) 第三个HTC Vive手柄(购买网站:https://www.htcvive.com/cn/accessory/controller/ ) 

7.) VR Ready 电脑(建议参数:操作系统: Windows 7 SP1, Windows 8.1, or Windows 10、处理器: Intel® i5-4590 / AMD FX 8350 equivalent or greater 、内存: 4 GB RAM 、图形: NVIDIA GeForce® GTX 970 / AMD Radeon™ R9 290 equivalent or greater) 

如果你是要将画面直接投出给现场的观众看,你可能还需要准备以下道具: 
     (你可此参考图一为拍摄MR影片时的硬件配置图)

   

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


1.) 视频采集卡:可以将相机或摄影机之影像采集至电脑,若你是采用网络摄影机直接将影像讯号输入至电脑,则不需要此装置 


2.) 4K屏幕:为了合成1080p的影片,屏幕需要能放得下多个1080p窗口(建议参数:4K/60Hz) 

3.) 屏幕(摄影师观看用):为了让MR影片更加丰富,跟随着体验者的移动式取景会比固定式取景更有趣。因此需回放合成后的结果,协助摄影师取景。若采用固定式取景方式,如网络直播,则不需此设备 

4.) 屏幕(观众观看用途):透过此屏幕实时播放MR画面,适用于公开展示等活动 

MR画面输出说明(请参考图二)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


一般而言,当VR游戏执行时,屏幕窗口会显示头显的视角,而在启动MR画面输出时,屏幕窗口会显示四个象限的画面供使用者去合成,此四象限画面分别为:

.前景(左上) 
前景画面显示虚拟摄影机的视角,在游戏场景中,凡是介于头显与虚拟摄影机之间的物体皆会显示在此画面中 

      .前景 alpha 屏蔽(右上) 
此画面是前景的alpha屏蔽,主要是用于影片后制时可当作前景去背的材料 

      .背景(左下) 
背景画面显示虚拟摄影机的视角,在游戏场景中,凡是介于头显与远方背景的物体皆会显示在此画面中。 

      .游戏画面(右下) 

如何录制MR画面

为了启动混合现实画面输出,须达到以下三个条件:

A.) 内容程序必须是由 Unity 引擎 SteamVR 插件版本 v1.0.8 (或是更新的版本) 所开发 

B.) 在内容程序执行文件目录下放置档案 externalcamera.cfg(纯文本档,扩展名为.cfg) 

C.) 连结第三把手柄(透过USB连接电脑)

 以下是档案 externalcamera.cfg 的范例:

 x=0 
       y=0 
       z=0 
       rx=0 
       ry=0 
       rz=0 
       fov=60 
       near=0.1 
       far=100 
       sceneResolutionScale=0.5 

 当以上三个条件皆成立时,内容程序会在场景中建立一个虚拟相机,而档案 externalcamera.cfg 即是定义了此虚拟相机的相关参数(请参考图三):

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


.x, y, z(单位:公尺):虚拟相机与第三把手柄之间的三维距离 


.rx, ry, rz(单位:度):虚拟相机相对于第三把手柄的翻转角度 

.fov: 虚拟相机的垂直 FOV。(此 FOV 需与实体相机的 FOV 相同) 

除了定义虚拟相机的参数之外,此档案亦定义了一些画面参数: 

.far(单位:公尺):背景画面显示的最远距离,若游戏场景很大,建议调高此参数 

.sceneResolutionScale:游戏画面的质量,降低画质可减少电脑资源使用 

如何校准相机参数(计算垂直FOV)

在拍摄混合现实影片时,最重要的是取得 FOV 参数值以及取得第三只手柄与实体相机的距离,才能顺利地将前景与实体对象合成。此处我们采用 AR 的工具来计算相机与镜头的特性,并取得正确的垂直 FOV。(除非更换拍摄时的相机或镜头,否则此步骤执行一次即可)

1.) 下载 ARToolKit for Unity(http://artoolkit.org/dist/arunity5/5.3/ARUnity5-5.3.2-tools-win.zip ) 

2.) 在 ARToolKit for Unity 中找到校准样板 "Calibration chessboard (A4).pdf” 并且依原尺寸打印(路径:[downloaded ARToolKit root directory]/doc/patterns) 

3.) 从命令提示字符执行程序 calib_camera.exe(路径:[downloaded ARToolKit root directory]/bin)指令如下: 
> calib_camera.exe --vconf "-devNum=1 -flipV -showDialog” 

校准工具必须取得实体相机的画面,若抓取到头显的前置镜头,请修改指令参数至 1 或 2 

4.) 依照在线教学步骤 (http://artoolkit.org/documentation/doku.php?id=2_Configuration:config_camera_calibration ) 产生相机的特性参数档案 camera_para.bytes(请参考图四)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


"若校准的结果是可采用的,则每个影像的误差应在一个像素以内,若误差超过两个像素,表示此校准结果未成功,请重新校准" 

5.) 将校准后产生的档案camera_para.bytes 复制到位移计算工具externalcamera_cfg_gen中 

$PATH\externalcamera_cfg_gen\ 
      externalcamera_cfg_gen_Data\ 
      StreamingAssets\ 
      ardata\ 

将第三只手柄固定于相机上的方式

接下来,我们尝试计算出第三只手柄与实体相机的距离。计算的难易度取决于将手柄固定于相机的方式,而且相对位置一有改变,便需要修改档案 externalcamera.cfg,因此建议找一个固定且稳定的方式,例如将手柄固定在热靴上,拆卸安装快速,且相对位置容易固定(请参考图五)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


为了让手柄与实体相机呈现相同的水平,我们建立了一个手柄托架,透过此托架垂直立于相机上,在档案 externalcamera.cfg 中的三轴旋转十分接近零度。 目前可下载 3D 打印文件,并于打印后黏贴一至二个六角螺母(含1/4螺纹)(请参考图六)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


( 3D 打印文件下载连结:https://drive.google.com/file/d/0B9XEEDfLPxmjTkc2RF85OVo4clk/view?pref=2&pli=1 ) 

 

一旦顺利地将第三只手柄固定于脚架、相机支架或热靴上后,接下来便是计算出档案 externalcamera.cfg 里需要的位移 (x, y, z) 以及旋转 (rz, ry, rz)。我们建议以下两种方式: 

方案 A: 

若你采用 HTC Vive手柄托架并且将其固定于相机热靴上,此时手柄与相机镜头应该在同一个水平上,所有的相对旋转 (rx, ry, rz) 接近于零,因此我们只需要计算位移即可: 

1.) 找出手柄的中心(请参考图七):

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


手柄的中心点位于圆盘追踪器的上缘,下图中,矩形的位置即代表着手柄的中心点。 


2.) 计算位移(x, y, z):透过卷尺等工具计算出手柄中心点与相机镜头成像位置的三度空间距离,上图右下方即为x, y, z 轴与手柄的相对位置。 


方案 B: 

若你的手柄与相机不在同一个水平上,这里提供一个计算位移的工具(下载连结:https://drive.google.com/file/d/0B9XEEDfLPxmjZjhYaEZrNE9mLVE/view) 

1.) 下载 ARToolKit for Unity(http://www.artoolkit.org/dist/arunity5/5.3/ARUnity5-5.3.2-tools-win.zip ) 

2.) 在 ARToolKit for Unity 中找到校准样板 “Multi pattern 4x3 (A4).pdf” 并且依原尺寸打印。(路径:[downloaded ARToolKit root directory]/doc/patterns) 

3.) 将校准后产生的档案 camera_para.bytes 复制到位移计算工具 externalcamera_cfg_gen 中 

$PATH\externalcamera_cfg_gen\ 
   externalcamera_cfg_gen_Data\ 
   StreamingAssets\ 
   ardata\ 

4.) 将相机链接上电脑 

5.) 执行 $PATH\externalcamera_cfg_gen\externalcamera_cfg_gen.exe

 

.请确认计算工具抓取到正确的校准参数文件名,你可以在档案 videopara.cfg 中指定: 

videoCParamName0 = camera_para 

      .校准工具必须取得实体相机的画面,若抓取到头盔的前置镜头,请修改档案 videopara.cfg 中的参数至 1 或 2: 

videoConfigurationWindows0 = -devNum=1 -showDialog -flipV 

     .请确认实体相机的屏幕比例为 16:9,例如:1920 x 1080 

6.) 戴上头显 

7.) 将两只手柄置放于蓝色虚拟手柄的位置上(请参考图八) 

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


8.) 卸下头显 


9.) 将校准样板 ”Multi pattern 4x3 (A4).pdf” 至于两只手柄的中央,方向需与虚拟场景中的一致(请参考图九)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


10.) 将相机对准校准样板 ”Multi pattern 4x3 (A4).pdf”。(最好透过脚架固定)(请参考图十)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


11.) 戴上头显 


12.) 按下任一手柄侧边的 Grip 按钮,将虚拟的橘色手柄切换至第三把手柄所在位置。 此时橘色手柄与虚拟相机的相对位置与实体状况相同(请参考图十一) 

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


13.) 按下任一手柄的 Trigger 按钮,产生档案 externalcamera00.cfg 


14.) 重新命名档案至 externalcamera.cfg,并且将其复制到游戏执行档文件夹 

此工具亦提供 ”地板校正功能“,当你发现地板有些微倾斜时(手柄无法与蓝色手柄吻合),可能会影响计算结果,请透过此功能先行校准地板高度。 

透过OBS Studio合成影像

接下来,我们将透过OBS Studio软件来合成影像,在开始之前,需要先决定输出影片的质量,而质量取决于你的对象与目的,以下是此案例的设定,必要时可做调整:

.分辨率: 1080P, 30FPS 

.影片大小: 100~200MB (三至五分钟) 

1.) 在 OBS Studio > 设定 > 输出 > 卷标 “录像”(请参考图十二):

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


.输出模式:进阶 


.类型:标准 

.录像格式:mp4 

.流量:6000 

2.) 在 OBS Studio > 设定 > 影像(请参考图十三): 

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


.来源(全画面)分辨率:1920x1080 


.输出(缩放)分辨率:1920x1080 

.常用 FPS:29.97 

3.) 为了取得分辨率为 1080P 的影片,必须在 4K 屏幕上以全屏幕的方式打开游戏(请参考图十四):

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


.按着 Shift 键,执行游戏执行档 (.exe) 


.取消选取“Windowed” 

.屏幕分辨率:3840 x 2160 

4.) 在 OBS Studio 中,必须依照以下顺序新增三个来源,分别为”前景”、”影像采集”及”背景”(请参考图十五): 

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


a.) 前景设定(请参考图十六)

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


前景画面显示虚拟摄影机的视角,在游戏场景中,凡是介于头显与虚拟摄影机之间的物体皆会显示在此画面中。由于前景物体需要迭在玩家上方,因此前景层需至于最上方。 

.新增一个来源“获取窗口” 

.窗口:指定游戏的执行档名称 

.取消“捕捉游标” 

在前景层新增两个特效滤镜: 

.Crop(右:1920,下:1080) 

.Color Key (Black) 将前景层的黑色部分去背处理。 

b.)  影像采集设定 [分辨率:1920x1080](请参考图十七) 

 

如何透过HTC Vive拍摄Mixed Reality (混合现实)影片


此来源主要是采集来自于相机的影像,因此新增一个影像捕获设备: 

      .装置:选取网络摄影机或是视频采集卡 

       .分辨率/FPS 类型:自定义 

       .分辨率:1920 x 1080 

        新增一个特效滤镜: 

        .Chroma Key (Green) 将玩家背后的绿幕做去背处理,可以调整 “Similarity” 及 “Smoothness” 来取得较好的去背效果 

        c.) 背景设定 

        背景画面显示虚拟摄影机的视角,在游戏场景中,凡是介于头显与远方背景的物体皆会显示在此画面中。 

        在背景层新增一个特效滤镜: 

        ‧ Crop(右:1920,上:1080) 


相关新闻 / News More
  • 点击次数: 594
    2017 - 11 - 09
    众所周知,Unity3D的所有渲染工作是都离不开着色器的,也就是Shader。它实际上就是一小段程序,它负责将输入的Mesh以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容打包存储在一起,得到的就是一个Material。之后,我们便可以将材质赋予合适的renderer来进行渲染了。讲到最后Shader就是一段规定好输入颜色贴图和输出渲染器能够读懂的点和颜色的程序。一、Shader种类Shader大体上是分为三类:1、Surface Shader——表面着色器包含光照运算,3D场景 2、Vertex and Fragment Shader ——顶点/片段着色器不包含光照运算,2D场景,特效3、Fixed Function Shader ——固定函数着色器不推荐顶点/片段着色器 二、Shader基本结构随便用个文本编辑器打开刚才新建的Shader: 属性Properties{}举例:_Name(“Display Name”, type) = defaultValue[{options}]_Name:变量名Display Name:显示名type:类型则有以下几种 defaultValue:默认值则跟类型相对应 options:可选项2D / Rect / Cube – 填入OpenGL的TexGen的模式,至少为{}实例:定义一个默认值为半透明蓝色的颜色Main Color _MainColor (“Main Color”, Color) = (0, 0, 1, 0.5)定义一个默认值为纯白色的纹理Main Texture _MainTex (“Main Texture”, 2...
  • 点击次数: 561
    2017 - 12 - 08
    主界面界面里有一部分功能并没有完善,但我还是贴出了最新的界面,公开给大家是想告诉大家,每个人的工具界面都不一样,都有自己整理的工具,所以这里我将分享 界面源码参考: Transform相对变换位置、方向、大小   参考以上脚本,举例设置位置,方向,大小各一个。可以自己搭配出更适合自己的操作,使用它的优点是,它的操作可以直接忽略子物体会引起的变化。快速切换对象激活关闭 快捷键Ctrl+1,可以快速的激活或关闭选中对象。使用鼠标点击属性面板左上角来切换会比较麻烦。快速编组对象 快捷键Ctrl+4,为多选的几个对象添加父节点并编组,等价于新建一个空物体,并将多个对象拖进来。快速命名子节点 快速命名选中对象的所有子节点名字,对于强迫症严重的程序可以使用改方法进行快速命名。计算三角面和顶点 计算三角面和顶点,这个工具可以查看场景中所有对象的点面的数量,也可以查看指定对象包含的点面,便于对场景的控制。
  • 点击次数: 640
    2018 - 01 - 12
    1:在场景里拉一个”Cube”,把摄像机以及需要运动的物体附加到这个“Cube”上面。2:创建一个镜头。3:点击过场动画,创建一个“Matinee”。4:选中镜头在左边栏右击创建一个“New Camera Group”,做右边时间轴设定要动画的时间。5:选中“Movement”按回车键,在右边处会出现一个关键帧。6:回到场景拖动摄像机设定运动轨迹。7:选中刚才所创建的Cube,在右击创建一个New Empty Group,右击右击选择添加新“Movement Track”。8:鼠标左键选中关键帧1按回车键,按住Ctrl不放拖动会出现另外一个关键帧,把它拖到合适的位置,可以创建多个关键帧,创建好关键帧以后双击关键帧2。(轮子也是同样的操作,先把轮子附加到“Cube”固定好位置再做动画)9:创建导演组,右击选择“New Director Group”。10:左击空白处按回车键分别选择两个动画。11:打开蓝图创建一个“BeginPlay”,在右侧世界大纲试图找到刚才所创建的“Matinee8”,直接拖进蓝图里面,创建一个Play,然后把他们链接起来,点编译。12:点击播放预览一下确认没问题就可以导出视频了。13:点击过场动画,选中刚才所创建的“Matinee”,点击Movie进行简单的设置就可以导出视频了。
  • 点击次数: 523
    2018 - 02 - 02
    也许你是一位开发者,想为自己的HTC Vive游戏制作酷炫的宣传片;或者你是游戏主播,想为观众带来高质量的VR直播体验;甚至你是一位VR的爱好者。无论如何,如果你对MixedReality(混合现实)感兴趣,请继续看下去。本文将介绍如何用HTC Vive拍摄高质量MR视频。什么是Mixed Reality(混合现实)影片?Mixed Reality影片就是透过VR中的影像+人像合成的影片。相较一般方法录制的VR影片,Mixed Reality视频更适合用来做游戏直播和制作宣传影片。 如果还是不清楚,可以看看以下这支影片,就是透过Mixed Reality所制作的影片效果。 http://v.qq.com/x/page/x0194621p8b.html 制作Mixed Reality影片需要准备的道具1.) 绿幕环境 2.) 相机/摄影机(建议参数:1080p/60fps) 3.) 4K屏幕:为了合成1080p的影片,屏幕需要能放得下多个1080p窗口(建议参数:4K/60Hz) 4.) HDMI分配器 5.) HTC Vive 一组  6.) 第三个HTC Vive手柄(购买网站:https://www.htcvive.com/cn/accessory/controller/ ) 7.) VR Ready 电脑(建议参数:操作系统: Windows 7 SP1, Windows 8.1, or Windows 10、处理器: Intel® i5-4590 / AMD FX 8350 equivalent or greater 、内存: 4 GB RAM 、图形: NVIDIA GeForce® GTX 970 / AMD Radeon™ R9 290 eq...
  • 您的称呼
  • *
  • 公司名称:
  • *
  • 地址:
  • *
  • 联系电话
  • *
  • 传真:
  • *
  • E-mail:
  • *
  • 邮政编码:
  • *
  • 楼盘名称
  • *
  • 留言内容
  • *
     
上海市普陀区中江路388弄国盛中心SOHO1号楼301室
深圳市南山区深南大道9966号威盛科技大厦2703室

64683109
18665895116
sales@vrwaibao.com
关注我们
移动手机端
微信公众号
在线留言
联系我们
Copyright ©2017 - 2020 置景科技