快捷导航
查看: 1224|回复: 0

熊力 《MR视频拍摄指南》

[复制链接]

大家好,我是来自HTC的VR工程师,熊力,大家也可以叫我James。
我今天要跟大家分享的是如何用HTC Vive来拍摄MR视频。我今天要讲的内容主要分为,首先介绍一下什么是MR视频,然后为什么它现在这么火?然后,再就是MR视频的原理,我介绍完原理之后大家就会发现其实MR视频,如果您不是要求特别高品质的话,其实上手非常容易。还有拍摄需要准备哪些硬件和软件,然后怎么去拍摄。最后一点,校准软件是现在拍摄MR视频一个比较重要的一个技术。

什么是MR视频?

MR就是mix reality的简称,就是混合现实的意思。大家可以看现在这个画面中,这上面是一个游戏的录像的截图,大家可以看到背后的这些草地,树,高尔夫球和高尔夫球杆,这都是游戏里的内容,这些人物的肖像,是我们用摄像机去拍摄的真实画面。所以在这里面,既有人的画面也有游戏的画面。
左下角这幅画也是一样,背后的草地以及这个小狗,都是游戏中的画面,但是跟这个狗发生交互的是拍摄出来的小女孩。右下角这个也是一样,拍摄时人物站在摄影棚中,他手上拿的是HTC Vive的手柄,但是在最后拍摄的录像中,他手上拿的变成了一把枪,看起来就像,他来到了太空世界,和这个机器人做战斗。所以MR视频就是VR的影像加人的影像,各占一半的录像形式

为什么要拍MR视频?

我们最早的游戏录像,只有游戏的内容,不会有人的内容,假设您是一个游戏主播,最常见的场景就是整个屏幕都是游戏画面,然后右下角有个直播的头像显示,但其实和游戏内容并没有什么太大的关系。但如果拍摄MR视频的话,您就是亲自和游戏做交互。再就是,如果您是一个游戏开发者,您想做一个特别好的宣传视频,加了人的画面、视频,显然代入感会更强一些,比只有光秃秃的游戏会显得更真实,也更吸引人。或者您是一个开线下体验店的店主,您可以想象一下,如果您把一个屏幕朝向门外头,然后有人经过的时候,看到了这么精彩的人和虚拟世界交互的过程,他们可能也会被吸引进来。所以现在MR视频比较流行,就是这个原因。

MR视频的原理

首先,和传统的视频区别,它需要一个第三人称视角,如果你要拍摄主角的整个动作,需要第三人称视角。因为第一人称视角只能看到手,没有地方去放真实的画面,即使你想把人物真实的画面放入场景中,也没有地方可放。但第三人称视角,就有地方可以放了。但是这么做呢,就是您需要一个额外的虚拟摄像机。正常的Vive VR 游戏,其实是第一人称视角,玩家一转头就能看到另外的画面,那现在你需要做的是,另外找一个虚拟摄像机摆在玩家的身后,冲着玩家。这样他转头的时候也不会导致你镜头的变化,然后他的位置、他整个动作你都能看到。有了这个额外的摄像机后,我们就可以拍摄人的画面了。
第二步拍摄人的画面,需要一个真实的摄像机,为什么背景是绿色呢?因为我们最后是需要把这个人的肖像放到游戏里,所以我们需要一个更容易把背景去除的环境。所以第二步就是把体验者拍摄下来。
第三步,这个过程就比较关键,我们现在已经有了第三人称视角的虚拟摄像机,用来拍游戏的影像,又有真实的摄像机去拍人物的影像。但是它们拍摄的画面怎样才能放在一起以后,显得完全严丝合缝,很真实呢?就是真实摄像机拍的人多高,虚拟摄像机(里)人的高度,包括臂展都得一样。怎么做到这一点呢,其实就是虚拟摄像机的位置和视角的方向都必须和真实摄像机是完全一致的。所以,我们像现在这样,把它们同步起来,这样就可以了。这样的话,你只要把两个摄像机拍的画面放在一起,你就能看到,似乎它们是完全符合的。
最后一步也比较关键,我把人物的影像直接盖在游戏影像上面,会带来一个问题,好像人就一直飘在游戏的画面上,就像PS痕迹很明显的样子,你不知道他这个人物在游戏中是在什么位置,那我们要做到这一点,其实就是需要把游戏分为两部分去渲染,能挡住玩家的,我们就需要把它渲染到一个叫前景的这张图片上,剩下的画面渲染到背景上。这带来一个问题,因为,传统的游戏呢,最后一步都是在一个虚拟的3D世界中,最后一步显示到屏幕时,是把3D世界里的物体投影到一张图片上,仅仅是一张图片。但是现在我们需要把它分为两部分,在我身前的放到一张图片上,在我身后的放到一张图片上,这两帧画面,再把人物的图像夹在中间,这样才能做到有立体的感觉。这样就能感觉到他确实是处于一个3D的世界中。

拍摄MR视频需要的硬件和软件

首先是摄影棚,有柔和均匀的灯光四面绿布。然后就是camera,如果只是做实验的话, 可以买一个像现在做网络直播,或者视频聊天用的1080P的Webcamera,或者如果您想拍摄高清一点的,您就买一个sony或者尼康的摄像机,然后再加上一个视频采集卡。为什么需要一个视频采集卡呢,因为摄像机的画面是没有办法直接显示在电脑上的。但是我们要通过电脑去把这个摄像机的画面和游戏的画面合成起来,所以我们需要借助采集卡,有了这个以后呢,才能把摄像机的画面实时地显示在电脑上。但是如果您只是做实验的话,我想还是推荐Webcamera比较好,因为摄像机的预算大概是这个的10倍左右。而且你买摄像机的话是没有上限的,就是更推荐的方法是,您去找专业的团队。
接下来就是需要一个高性能的主机,大家都知道,我们玩儿HTC Vive游戏呢,推荐的配置是980或者以上。但是那只是普通体验的情况下,现在我们要录像的话,创建了第三视角的新摄像机,渲染的负担就翻倍了。为什么说翻倍呢?因为,一般VR游戏,在电脑上显示的内容其实是直接从眼镜上的画面直接复制下来的,而复制画面是几乎没有消耗的,但是现在我们用了另外一个虚拟摄像头,起了一个第三视角,那这样的话,相当于我游戏要渲染的画面就翻倍了,至少需要原来两倍的性能才可以,再加上视频合成也是比较需要显卡的,至少推荐您要用980TI,来两块,最好。
第二个条件呢,就是第三个手柄,为什么需要第三个手柄呢,因为之前讲过,为了虚拟的画面和现实的画面能完全重合,那就需要这个虚拟摄像机的位置和现实中摄像机的位置一摸一样,但是现实中摄像机,我们在拍摄的过程中其实是会去移动它的,所以你就需要给它加一个定位,给这个现实中摄像机加了定位以后呢,这个游戏才能实时地拿到现实摄像机最新的位置,才能不停地去改变虚拟摄像机的位置,让它们两个位置每帧都一样。所以您需要给第三个摄像机加一个定位,就是需要一个第三个手柄。
再就是需要4K屏幕,4K屏幕是为什么呢?因为如果我们要录制1080P的MR视频的话,我们录制MR视频的时候,游戏画面会分成4份,有一份是前景,就是盖在玩家前面的。还有一份是背景,那这两块画面最后叠加起来,还需要1080P的话,需要原来的画面达到4K才可以,所以我们需要一个4K屏幕。不然的话,可能只能录制非1080P的视频。
软件部分的话,基本上只要求一个OBSOBS其实就是一款有录制游戏的功能,还有合成视频的功能,再就是有直播的功能,所以我们用一款OBS就可以了,那为什么我还要提到Unity3D和steamVR Plugin,因为目前来讲,unreal还不太支持MR拍摄的功能,就是如果您的游戏是unreal做的,那目前还是不支持,虽然他们官方宣布了这个MR拍摄的计划,但我想可能一两个月之内是看不到结果的。所以目前呢,你要拍摄MR视频,只能针对Unity3D做的游戏,然后还需要用steamVR Plugin,如果您是开发者的话,您也可以用Unity3D的编辑器去录制。

如何拍摄?

首先我们要开启MR模式,怎么去获得这个第三视角的画面呢?首先您需要准备一个externalcamera.cfg配置文件放在游戏目录下。比如说要给tiltbrush应用录制MR视频,就需要在tiltbrush.exe同一目录下放上externalcamera.cfg。如果您是开发者,有unity的这些代码的话,那就放在unity 工程的目录下,跟assets,library and projectsettings同一目录下就可以,这是条件一。条件二就是配对上第三个手柄,正常情况下只有一个头盔,两个手柄,还有两个基站,加上第三个手柄之后,就会有一个多出来的手柄标志。目前如果用无线连接就只支持两个手柄,要支持第三个手柄,需要额外的USB线,插上以后就可以识别了。
如果成功开启MR模式,游戏画面会瞬间分为4份,分别是玩家看到的第一视角内容。第三视角摄像机拍摄的内容,而且是背景部分。还有前景部分,最后怎么合成呢?就是把前景和背景两个视频源叠加起来,把人的画面加在中间,先渲染这个,然后再渲染人,这个前景部分其实就是在人的身前的一些东西,这样的话,你就能判断玩家的具体位置到底在什么地方,他肯定是处于这些物体之前,还是这些物体之后。
再就是安装摄像机和第三个手柄,这步比较关键,就是您需要保证第三个手柄和摄像机呢,它们是固定的。也就是说,您移动摄像机的时候,手柄一定会动。因为这样的话才能确保手柄给摄像机提供了定位功能。
最后一步是设置视频合成软件,我们需要打开OBS,设置三个视频源,其中一个就是之前提到的foreground,在这个例子中,手柄以及挡在体验者身前的方块在我和摄像机之间挡住了我的画面,它们是foreground。Background就是我身后的这些东西,这些被我挡住的方块,就是游戏的background部分,中间的这个视频源呢,就是webcamera。当时是用一个webcamera去测试的,所以就把画面截取下来放在中间就行了。在对准了以后,我手的位置呢,就有两个手柄的模型。说明虚拟摄像机和现实摄像机位置同步的很好,这样才会出现这种情况。所以大家可以想象,如果这个游戏手柄是一把剑的话,现在我手里就拿着一把剑,就在我手的位置。

接下来我讲一下如何使用校准软件。就像刚才这个画面,如果你没有校准软件的话,可能手柄就不会在我这个位置。所以我先给大家介绍一下externalcamera.cfg,这是我们开启MR模式的两个条件之一,这个文件初始是这样的,x,y,z全是0,rx,ry,rz全是0,这个文件什么意思呢?其实就是说明了,第三个手柄和真实的摄像机之间的位移差。默认情况下,游戏只知道怎么去获取现实摄像机的位置,它只能通过跟现实摄像机绑在一起的手柄的位置来获得,因为手柄是可以被定位的,它就会把手柄的位置当作现实摄像机的位置,但我们知道,事实上这不太可能做到,因为不可能手柄和虚拟摄像机绑在完全一模一样的位置,多数情况下是把手柄绑在摄像机边上。这样的话就会有一个距离差,角度也可能不一样,所以我们如果是普通的做法的话,你可能会把手柄摆在和摄像机平行的位置,然后用尺子去量一下它们的距离,然后填在这个文件里。这样的话,游戏就根据手柄的位置,然后减去这个值,就能实时的得到这个摄像机的位置,但是那么做其实不太准,所以,我觉得更好的方式可能是找一个校准软件,其实校准软件呢,也就是一个普通的可以支持MR的游戏,但是它跟一般的MR游戏的区别在于它可以实时地调整刚才这个文件的内容。通过调整软件让配置文件达到一个最终的效果。等你调到一个好的位置的时候,保存一下externalcamera.cfg就可以使用了。还有一点要注意的是,这个文件其实跟你的游戏没有任何关系,它只跟手柄和相机之间的位置有关,因为它是描述手柄和相机之间的位置差和方向差。所以,一旦你在一个游戏中调好校准软件,那拿到其他游戏中,可能也是适用的,它也是严丝合缝地可以用的


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ