随着技术发展,玩家们对游戏画面的真实度要求越来越高。而研发侧要想在控制成本的前提下做好角色动作,动作捕捉几乎是一个必然的选择。
如今,动捕不仅为主机、PC大作专用,在移动端游戏也有广泛的应用,但对于大部分人来说,它仍然是一个陌生的领域。
今天,正在举办的第四届腾讯游戏开发者大会(Tencent Game Developers Conference ,以下简称 TGDC)上,腾讯互娱光子技术中心首席动作技术指导Kevin Wang向大家分享了他从事动捕相关工作20年的经验,总结了动捕在游戏中的价值、流程以及误区。
以下为葡萄君整理的演讲内容,部分词语已根据语言习惯调整:
大家好,我叫Kevin Wang,我在动捕界已经有超过20年经验,我做过电影,比如《阿凡达》;我做过游戏产品,比如《死亡搁浅》、《战神》 、《最后生还者》等等。
在开始之前,我想给大家看一段影片。
https://v.qq.com/x/page/k3210s8lm2q.html
好,现在我想请问各位,这是一个什么样的视频?看起来有点粗糙又有点复杂,对吗?其实如果你有反光球、红外线相机,要做出上面这些动画其实并不是难事。
动捕在游戏开发中的价值
聊动捕之前,我们先来讨论一下动捕在游戏开发中的价值,我总结了以下五点:
第一点,节省人力、时间与开销。大家想象一下,现在我们有一款游戏要用手K(即动画师手动制作动画)的方式呈现出所有动画,比如要做200分钟动画,那我们可能需要请到大概七八个动画师,花费半年时间;
可是如果以动捕的方式去做,我们也许只需要2-3天左右录制,然后把这些动画转移到3D角色上。后续的细节清理只需要大概1个月不到,就可以达到相同,甚至于更逼真的效果。
第二点,以最快的方式呈现实时概念。大家刚刚看到的影片里基本上就呈现出了第二点的意思,就是说导演脑中有一个想法,说今天我的这个预告片要怎么个拍法、剪法,镜头怎么个架设方式。之后我们会请演员演绎出来,让导演拍摄这些镜头,再做出剪辑。
这一整个过程,大家看到的影片,从剪辑拍摄到最后的Blocking,把这些镜头切在一起,整个周期可能只花了1个星期不到。
第三点,可以用相同数据拍摄不同镜头。比如今天有两个人在动捕演对手戏,我们可以存下他们的数据。之后如果想要拍这些镜头,就可以很快地把这些动作播放出来,再实时搭建我们要拍的镜头,这是一个非常省时的方式。
那今天如果我们是在一个电影的场景里用真人去拍摄,要搭建这么多镜头,演员肯定要重新去演这个场景很多次,但每一次演下来也许中间都会有少许差别,所以这体现出了动捕的优点。
第四点,可以利用多个角色作为替身。比如《死亡搁浅》的主角Norman Reedus,他实际在动捕场地里拍摄的这些动作,大概只有5-10分钟,其他所有的额外动作,都是我们请不同替身来拍摄的,中间也许有大概3-4个不同的人。
第五点,动捕让细节更为逼真。以手K的方式做动画,最困难的其实是怎样去看一个人的施力点与受力点。举个例子,比如我们站久了,有时人会往一边倾,把力量放在左脚,左脚站久以后又会歪一边,换到右脚。中间这个取力与卸力的过程,其实是在手K里比较难以展现的地方。
接下来我们来看看今天要讲的五大项目。
常见动捕硬件分类
我们从第一点开始,市面上比较常见的动捕硬件分类。
第一类叫做电磁类,电磁类的运作方式是有一个中央磁铁,它会与很多不同的接收器连接在演员身上。这个接收器绑定在动捕服上,所以基本上你只要把这些接收器调到应该调的位置,就可以去进行拍摄。
它的好处是方便使用,因为衣服穿上去、接收器稍微移一下,就可以开始拍摄了。它成本也较低,一套大约2000-3000美金。而且它不受场地大小限制,在客厅就可以拍摄出一系列动作。
但它也有缺点——衣服的尺寸不同,今天如果我们要拍一个六尺高的男性,那基本上这套衣服他是穿不下的,需要买另外一套全新的动捕服。那有的人胖、有的人瘦,有的人高、有的人矮,有男有女,拍多个不同角色就需要买很多套衣服。
另外,它也无法捕捉道具。现在这套衣服身上所有的接收器都是由线连接中央磁铁,所以我们并没有办法拿任何不同的道具,然后把额外的接收器连在道具上。
这一套电磁类衣服最好展现的方式就是proof of concept。如果有个想法,不需要很干净的数据,只是要试试看动捕数据与镜头拍摄的效果差异,我觉得用这套衣服是很好的选择。
第二类是光学类,就是之前影片里的那套系统。它的运作方式,是在上面有很多台红外线相机,这些相机基本上是看不到整个人的,它能截取的数据就只有这些反光球反射的东西。
因为在动捕的很多时候我们会请演员在地上滚等等,如果这些反光球比较硬就会硌着,甚至受伤,所以我们选择用非常软的塑胶球做成反光球。
光学动捕硬件有几个优点。首先因为场地大,它可以同时拍很多人。只要场地够大,我们想拍狗、马这些动物都没有问题;并且它可以拍摄不同大小、形状的道具。如果像照片里一样,有斧头、盾牌这些道具,我们都可以安装反光球,让红外线摄像机追踪、计算。
而它的缺点,首先就是整体价格昂贵,一套大概30-40万美金,还需要租一个专门用于拍摄的大场地。接下来我们还要为后期花很多时间,因为会有反光球被遮挡的情况,这些摄像头看不到的话,我们就要在后期把这些反光球重新找出来定位。
动捕迷思
接下来我们来看一下动捕的迷思,这是过去大概15-20年来碰到一些人问我的问题,里都存在一些常见的误解,现在我跟大家稍微解释一下。
第一,数据拍摄完可以马上进引擎,这一点其实是不对的,因为我们请来的演员与3D角色通常不会是1:1。比如演员会过高、过瘦,而角色也许会偏矮、偏壮,这都会产生不同的数据。我们要做的就是数据清理,马上进引擎其实也可以,但数据不会非常干净。
假设我们今天拍了一个比较壮的人,想把这个数据放在比较瘦的角色的身上,那壮人做的一些动作,比如手碰肩、叉腰,放入角色数据,看起来就会感觉手臂没有叉在腰上。因为演员的身体宽度和3D角色并不一致。
第二,所有输出的动作都会与演员没有差别。就像我刚刚所解释的,因为演员与角色身材、身高的不同,这些数据都会有些许差别。
第三,道具要以真实道具为主。以枪械来讲,比如我们拿一把冲锋枪,非常重,演员拿枪演一天会非常非常累。所以通常我们会用塑胶管包一些胶带,里塞一些软棉,让它演绎出枪的效果。而导演如果要拍一个cinematic的场景,想要展现出枪的重量,我们才会给演员一个真实重量版的枪。
最后,我们如果用了动捕,就不需要动画师去手K了,这也是一个完全错误的观念。首先,今天不是所有的东西都可以用来做动捕。比如一张纸,因为纸会飘,我们不容易固定反光球,也就做不了Rigid body。像汽车、飞机这些东西也都难以动捕,所以我们还是需要动画师用手K的方式做出这些动作。而且,再到之后的脸部动捕、身体动捕,也都需要动画师做数据清理。
动捕的准备与拍摄过程
现在我们来看动捕的准备与拍摄的过程,这是动捕准备的经验之谈。我通常会在开拍两个星期前问一下客户:你们想要拍什么样的动作?我们需要准备什么样的道具、搭建什么样的场景?然后我会在这两个星期之内准备、测试好所有需要用的道具,不会浪费客户拍摄的时间。
大家可以看一下这个影片,这是在索尼的场地里拍摄的高难度特技动作。在之前我们搭大型场景时觉得搭起来都没有问题,可是当演员真的上去开始跑、跳起来之后,我们发现整个架子摇晃得很厉害。
所以我们马上判断出需要固定,方法是找一个更重的东西绑定,所以我们拉一台升降机过来,让演员更有安全感。这就需要我们有非常好的应变能力与想象力,才能在最短的时间内达到要求。
接下来到了拍摄环节,我们要做的第一件事叫Calibration——光学摄像机校正。我们会拿一个反光球棒在场地里不停地上下左右挥动,让每一台红外线摄像机截取到反光球的动作。当这些数据够了之后,在软件里它就可以明确地计算出每一个摄像头所在的位置。
但如果有人来场地里不小心碰到了摄像头,那我们肯定要重新校正。所以在拍摄时,我通常会建议大家不要穿反光的衣服、鞋子,也尽量不要靠近这些摄像头角架。
第二件事,Calibration之后我们要上反光球,也就是Markers。这些反光球我们一般会固定于演员各个关节点,比如肩膀、手肘、手腕,动捕软件就可以很明确地计算出数据。所以反光球所在的位置也非常重要,这关系着数据好坏。
举个简单的例子,比如我把反光球放在肩膀这一边,肩膀上下移动,大家可以看到它的移动量并不大。可是如果往外沿放再上下移动,它的动作就会比较大。我们要根据需求效果调整位置。
第三件事,Rom Range of motion,这是它的全名,也就是关节活动拍摄。我们会请演员在开拍之前把所有的关节活动一遍,让软件读取这个人整个关节的活动幅度,再计算出他可以弯曲达到的位置。
之后我们也会用这一系列的数据去匹配角色,和在场地里拍摄的影片做对比,看看怎么以最好的方式把3D角色匹配到Video Reference上。
第四件事,大型动捕室道具需求。左上角这些照片就是我刚刚所讲的,不同枪械需要不同重量。右上角这些不同颜色的胶带对应着不同场景,比如左边是条河、右边是座山,你只有这么细的道路可以走,我们就会用胶带贴出道路的位置,让演员知道他不能走出这个范围之外。左下角是我们为《神秘海域》搭建的吉普车,右下角就是刚刚影片中不稳定的道具。
基于以上讲解的东西,现在我让大家看一下动捕片场的拍摄过程。
https://v.qq.com/x/page/y32107abwgs.html
这些摄像机架在动捕室的各个方向,现在就是在搭建刚刚所看到的吉普车。这是幕后的拍摄人员、工作人员,在做关节活动。现在给他们戴上麦克风收音,这是动捕的拍摄,大家看到这些枪,就是我刚刚讲的,以塑胶管的方式去呈现。
动捕后期制作流程
接下来让我们看下一个Slide,动捕的后期流程,基本上有五个环节。
第一点叫做Tracking——清理反光球数据,我们在做反光球数据清理时,大家可以看到,左边所有白色的球就是实际上红外线摄像机摄取下来的反光球数据。之后我们还要去定位,比如这四颗球是属于它的头部,哪一只是左手、右手,哪一个是左脚、右脚。全部规划好之后,我们才能看到一个3D效果。
第二点叫做Solving——将数据转移到一个能缩放的动捕角色上。右下角这个图片,手的长度有三颗反光球,应该是在手背的这两个点跟手腕的这一边,这三个点是在这个方向上。可是大家可以看到在右下角这个图,这三个点已经跑到了手指这一边。所以我们现在需要缩放这个手臂,让反光球的点能达到实际上演员当初所设定的位置。
第三点叫做Retargeting——动捕数据角色绑定,把能缩放的动捕角色转移到游戏角色上。为什么要做这个过程?因为游戏角色是不能被缩放的,如果演员跟游戏的角色有数据差距,我们会先上到一个能缩放的角色上,再把数据转移到游戏角色上。
大家可以看到这个手两边其实是合不上的,一个高一个低,那是因为我们还没有做成比较完整的清理。可以看到,红色是之前拍摄的数据,灰色的是棒球球员的数据。
第四点是Motion Edit——动作数据清理,做出所有抖动、穿透的清理,比如刚刚讲的手叉腰、碰肩膀、摸头等。有时拿了道具,手指会穿模。又或是今天拍摄了两个不同的动作,比如一个人在跑,忽然又让他在地上滚,我们也会在Motion Edit这一步把两个动作融合为一个。
最后一步Final motion——最终数据清理,请动画师做出手指与道具,比如纸、车子这些细节动作,甚至于到脸部动捕的清理。
脸部动捕与虚拟相机的使用
了解了后期处理之后,我们来讨论一下部动捕与虚拟相机的使用。最早之前,脸部动捕的方式是让演员坐在一张椅子上,前面有大概三四十台相机,脸上也会放很多小小的反光球。比如《北极特快车》就是用这个方式去做的。
这是一个非常浪费时间的方法,而随着时代变迁、技术成长,现在有所谓头戴式的头盔来做面部动捕。这个头盔前面有个小小的摄像头,能录取你脸上所有的表情,之后我们能与身体的数据同步,达到一个非常好的脸部与身体动捕效果。
我们再来讨论一下虚拟相机,大家现在有一点了解,其实红外线相机与反光球就等于是动捕最基本的要求,我们红外线相机所有的这些定位点都找出来之后,如果把这些反光球的点放在iPad上面,或者不同的东西上面,把它constrain到一个virtual view point上,我们就可以很明确地发现,今天我放三个反光球点在这个东西上,那我怎么样移动可以在场景里实时地看到这个东西。
如果我们在Motion Builder里加入一个Camera,把它constrain在这个东西上,基本上Virtual camera就这么形成了。大家现在看到照片里它有很多的按钮、数据是之后可以加的,比如我们要加推进、拉远等功能,都可以在这个Virtual Camera上完成。
现在我让大家看一下Virtual Camera的运用。
https://v.qq.com/x/page/c3210p7serw.html
这是我大概在十年前拍摄的讲解,手上拿的手电筒这些东西其实都是塑胶棍棒,大家也可以看到这个摄像机,其实上面放了很多反光球。所以这些红外线摄像机能去定位这些反光球、追踪虚拟相机所在的位置点。
这是我之前的同事,基本上他在说,今天我们能把摄像机constrain到这台吉普车上,就等于它所有的动向方面,它的Translation是没有办法动的,因为是跟着车子走的。可是它的Rotation方面能左右操纵,那之后我们也可以用软件的方式松开绑定,让它自由活动。
这部分打枪场景是之前录好的,所以我们可以把之前录好的场景跟真人动作结合。大家想想看,如果拍电影,想从五层楼高的高度拉到一层楼,我们一定要去租一个很大的crane才能拍摄到这种效果,可是以虚拟相机的运用方式,我们就能用软件完成。
可以看到,他只拿到头的高度,可是大家实际上在银幕里看到的高度非常高。他慢慢降下来到他脸部高度时,已经达到地面的程度了。所以这些东西都是可以在虚拟相机里做出调整的,非常省时省力,因为你不用租这么多东西实际去拍。
动捕在游戏中的流程
现在我们进入到下一个环节,来聊一聊动捕整体在游戏中的流程。这是我过去20年来看到的,比较快速地推进游戏流程的经验。
首先,我们在做游戏之前一定要有一个非常好的构想、概念,之后才能请2D手绘师把这些场景、人物画出来,然后我们会请3D建模师做成3D模型;
做成之后它并没有骨骼,我们没有办法做动画,所以下一步是骨骼绑定。我们要请一些TA,这些Rigging的人帮忙;
绑定之后我们就会进入到分镜脚本这一步,请一个Storyboard artist,以一个一个镜头的方式呈现出Cinematic场景;
有了这个画出来的Storyboard之后,我们才会进入到Previz Layout,镜头创作这一步。在这个部门里,员工会很快地以手K方式把3D人物以Storyboard的方式展现出来,动作方面也会很快速用手K的方式制作。
比如从A点走到B点,它可能只是滑动过去,把这个镜头带起来,之后再去做一些剪接。如果整体看起来没有什么大问题,我们会进入到动捕环节,把之前手K的数据转换成真人动捕数据;
转移完成之后,我们会做数据清理,然后再回到镜头部门验证。为什么要做验证?我跟大家讲一下这个道理,比如我们之前手K的动画,一个人从A点走到B点,可能只K了大概两秒钟。可是实际上我们用动捕拍摄,我们发现这个人从A点走到B点花了3秒钟。相对之前搭的这个镜头,就不会100%地能跟随演员动作。
所以当我们动捕数据做完后,我们还会送回镜头部门,让他们去更改这一系列之前搭设好的镜头,让它能跟随动捕人物运作。在这之后,当这些镜头也确认了,Motion Edit也做完了,我们会进到Final animation做动画加强。
接下来的几个环节:Effects、Simulation、Lighting、Rendering,这些东西现在基本上在引擎里就可以完成,可是以Cinematic的方式来说,我们就会强调一些衣服的动法、头发的飘动方式等效果。
在接下来的光效渲染中,我们要通过打光找出最有Dramatic effect、最能说服人的渲染效果,再把它导入引擎,这是一个比较快速的整体流程。
了解到这些过程之后,我们来看看下一个影片,也是今天最后一个影片:《最后生还者》动捕与最终输出对比。大家记得我们开场时的第一个影片吗?那个影片上让大家看到动捕的场景,与这些快速动捕的数据,再到角色的整个过程。
那基于我们今天所聊的所有东西,加上刚刚的Pipeline流程,我先让大家看一看最终的成果。
左上方是我们所谓的镜头创作,就是Blocking。所有的东西都以手K的方式进行,之后我们进入到2 动捕,再上到3 数据里,然后把这个镜头优化一下,能跟随这些动捕的人物,到最后的成品。艾莉在捡子弹时,她的手我们其实没有做动捕,因为子弹太小颗了,所以这些都是之后在动画师那边要完成的地方。
https://v.qq.com/x/page/s3210dt29u5.html
希望大家在看完这些影片之后,能对动捕有更深入的了解。
Q&A
现在我来回答一下大家问过的问题。
Q1:动捕发展至今,您认为其定位是什么?仍是比较顶级的技术手段吗,还是已经成为游戏常规研发流程的一部分?动捕未来还会有什么样的进化?
A:我跟大家解释一下,我在20多年前开始做动捕时,反光球就像乒乓球一样大,而且是硬的。因为最早之前,这些红外线摄像机里的Sensor非常小,所以它的能见度也非常低,我们就一定要把反光球做得非常大,它才能截取到这些数据。然后截取下来的数据也是直接到电脑里,不会做出任何计算。
可是现在20年之后,外面普遍在使用的这些红外线摄像机,不但可以截取到更精细的数据,比如人脸上的点,而且这些反光球又小又软,还能计算,节省了很多时间。
这些是动捕相机从过去到现在的演变,那动捕将来还有什么样的变化?这个很难讲,随着硬件日新月异的发展,我觉得之后的空间还很大。比如现在Xbox Kinect这些东西,已经可以做出比较简单的动捕了,所以我觉得之后在家里能完成动捕也是非常有可能的事情。
Q2:动捕过去比较常见于主机和大型单机游戏,随着手游玩家的需求和移动设备性能提升,它会不会成为手游的一大趋势?
A:我觉得非常有可能,例如我们说做一系列的Locomotion,在以前的做法是15度角、30度角、45度角 、60度角,然后这样180度,我们每个方向都要拍一次。
而现在因为Engineer的发展,我们能做到所谓的Motion Matching,让电脑实时计算出每一个人启动的方式,中间要怎么去匹配这个动作。那相对的就是说这些数据变少了,电脑能计算出来,我们也能去优化这些Data。所以今天如果拍摄了一个GB的数据,我们如果能把它压缩到大概几十Mb,那进手机是完全没有问题的。现在这其实已经在慢慢实现了。
Q3:在大型的场景里,你们是怎么做拍摄的?
A:如果是一个非常大的场景,我们可以把这个场景规划为几个不同的小场景。在每一个小场景里用胶带贴出范围线,或者用一些苹果箱搭出桌子、椅子所在的位置。基于拍完一个场景之后我们可以再拍第二个场景,用相同的动捕场地、不同颜色的胶带再去重贴出第二个场景该走的位置,之后我们就能把这些数据联合起来。
花絮
最后还有一个幕后花絮跟大家分享一下,叫做反光球惹的祸。
中间这张照片是《北极特快车》 的幕后工作人员,他们都是动捕工作者。在拍摄大概两个月之后,大家想跟主角汤姆·汉克斯来一张合照,可是拍摄的人忘了把闪光灯关掉,所以现在幕后人员唯一可以跟汤姆·汉克斯留念的一张照片,就是中间这个脸在发亮的人。
所以大家如果之后去光学类动捕室跟演员合照,切记要把闪光灯关掉。不然就会发生现在大家看到的这个悲剧。
今天我的演讲就到此为止,希望大家能在今天短短的45分钟之内对动捕有更深层的了解,谢谢。