腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节

Xsens动作捕捉 2023-05-11 4254

2020年12月7日- 10日,由腾讯游戏学院举办的第四届腾讯游戏开发者大会(Tencent Game Developers Conference,简称TGDC)在线上举行。腾讯互动娱乐光子技术中心的Lead Motion Technician Kevin Wang发表了“捕风捉影,让虚拟更现实——动捕在游戏中的开发与应用流程”的主题演讲。


动作捕捉已经成为许多游戏开发过程中的重要一环,从一开始看上去的“遥不可及”,到现在效果越来越成熟、使用越来越便利,能熟练使用动捕技术正在逐渐成为游戏工作室的必备技能。Kevin Wang用自己从业20年的经验,与大家分享了动捕在游戏开发和应用中方方面面的细节。


以下是演讲实录整理:


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第1张


大家好,我的名字叫做 Kevin Wang,今天非常高兴受到主办单位的邀请,有这个机会能够在这边跟大家稍微聊一聊动捕的相关资讯。


在今天开始我们的话题之前,我想要跟大家一起看一段影片。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第2张


好,现在视频结束了之后,我想请问各位,这是一个关于什么样的视频呢?看起来有点粗糙,又有点复杂,对吗?其实,如果你有反光球与红外线相机,要做出上面这一系列看到的动画,其实并不是个难事。


那今天,让我们进入到我们的主题:动捕。在分享开始之前,我先稍微做一下自我的介绍,我的名字叫做Kevin Wang,我在动捕界已经做了有超过20多年的经验,我有做过电影,比如说《阿凡达》,很多游戏类的这些产品比如说《死亡搁浅》、《战神》、《最后生还者》等等。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第3张


我也不多浪费时间在我的自我介绍上,让我们进入今天的话题。


首先我们来讨论一下,动捕在游戏开发中的价值点在哪里?我规划了以下的五个不同的项目。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第4张


第一点,节省人力、时间与开销。


这是什么意思呢,大家想一想,今天如果我们有一款游戏,要用手K的方式去呈现出我们所有的动画,比如说我们要做200分钟的动画,可能需要请到大概七八个动画师,花费半年的时间,然后以手K的方式去把它呈现出来。可是今天我们如果以动捕的方式去做的话,我们也许只需要两天到三天左右的时间,就可以录取这200分钟的动画,然后把这些动画转移到我们的3D角色上面,做出一系列后续的细节上面的清理。也许只需要花大概一个月不到的时间,我们就可以达到相同的效果,甚至于更逼真的动作。所以说整体上来讲,这是一个,节省人力、时间与开销的事情。


第二点,以最快的方式呈现实时的概念。


这是什么意思呢?大家刚刚看到的那一段影片里面,基本上就呈现出了这第二点的意思,就是说我们导演脑中有一个想法,说我的这个预告片要怎么个拍法,怎么样剪接方法,镜头怎么个架设方式。之后我们会请演员去把它演绎出来,让导演能够去拍摄这些镜头,之后去做出剪接。大家看到那个影片,从剪接、拍摄到最后的Blocking,把这些镜头切在一起,这一整个周期可能只花了一个星期不到的时间就可以完成。


第三点,可以用相同的数据拍摄不同的镜头。


大家想想看,今天我们如果说做动捕。比如说有两个人在演对手戏,那么可以把他的动作捕捉到电脑里面,之后如果我们想要去拍这些镜头的时候,我们可以很快地把捕捉下来的这些动作播放出来,再实时地去搭建我们要拍的镜头,所以说这是一个非常省时的方式。如果说我们是在一个电影的场景里面用真人去拍摄的话,如果要搭建这么多个镜头演员肯定要重新地去演绎这个场景,可能要演绎个很多次,但每一次演绎下来也许中间都会有少许的差别。所以说这是另外一个动捕的优点。


第四点,可以利用多个角色去当替身。


今天我们看到《死亡搁浅》的主角Norman Reedus,他实际上在动捕场地里面拍摄的这些动作可能只有大概5分钟到10分钟,其他所有额外的这些动作是我们请不同的替身来拍摄的,之后把这些数据再转移到他的角色上面,那中间也许有大概三到四个不同的人去演绎他的角色,所以说我们可以利用多个替身去达到相同的效果。


最后一点,动捕让细节更为逼真。


大家想想看今天我们如果以手K的方式去做动画,最困难的其实是你怎么样去看这个人的施力点与受力点。比如我们站久了,我们有的时候人会往一边倾,把力量放在左脚,那左脚站久了以后呢也会歪一边,力量换到右脚,那中间这个取力与卸力的过程其实是在手K里面比较难展现出来的地方。


那这些是我规划出的五小点,动捕在游戏开发中的价值,接下来我们来看看今天要讲的一些五大项目的事情。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第5张

腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第6张


一、常见的动捕硬体分类


我们从第一点开始讲,在市面上比较常见的动捕硬体分类。第一类型叫做电磁类,电磁类的运作方式是它有一个中央磁铁,然后与很多不同的接收器在这个演员的身上。它这个接收器


其实是绑定在他这一套动捕服的上面,所以说基本上你只要把这些接收器调到应该调的位置,然后你就可以去进行很好的拍摄,它的好处是它很方便使用,因为你衣服穿上去,接收器稍微移一下,你就可以开始拍摄了。成本低,这一套衣服大约2000到3000块美金。


它不受场地大小的限制,在家里面比如客厅就可以拍摄出一系列的动作,可是它不好的地方在于哪里呢?今天我们想一想动捕衣服的尺寸不同,今天如果说我们要拍一个难男的,他如果说有六尺高,基本上这套衣服他是穿不下了,我们需要买另外一套全新的动捕服。那有的人胖,有的人瘦,有的人高,有的人矮,有男有女,所以说基本上我们如果要拍多个不同的角色,我们需要买很多套不同的衣服。


再来一点就是它无法捕捉道具,大家可以看到现在这套衣服身上所有的这些接收器都是由线去连接到它的中央磁铁的,所以说我们并没有办法去拿任何不同的道具,然后把额外的接收器连在这个道具上面,所以这是没有办法去实现的。那这一套电磁类的衣服呢最好展现的方式,就是一个proof of concept,我们现在有个想法,不需要很干净的数据,这个动捕下来的数据跟我们镜头里面的拍摄就是能达到一个比较好的效果。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第7张


第二点我们来看到的就是光学类。光学类就是之前我们在影片里面所看到的那一套系统,这一套系统运作的方式就是说在上面有很多台不同红色的红外线相机,那这些相机来说它唯一能够截取到相机里面的数据。其实只有这个反光球的球点,基本上它是看不到整个人的,它能够截取的数据,就只有这些反光球会反光的东西。这个反光球是一个非常软的塑胶的球去做成的,如果这些反光球比较硬,演员做动作可能会受伤。


这个动捕光学的硬体,它有好处也有坏处。首先它因为场地大,可以拍很多个人,同时地做一些事情,比如说我可以拍6到7个人,这是没有问题的事情。基于这个场地够大,我们想要拍狗、想要拍马这些都是没有问题的事情。再接下来就是说它可以拍摄不同大小形的道具,像我们刚刚看到这个电磁类的系统,它无法拍摄道具,那如果有刀有枪,有斧头、有盾牌这些东西,我们都可以在这些道具上面上不同的反光球,让这些红外线的摄像机,去追踪这些反光球的点,之后去计算出来。


那我们来讨论一下它不好的地方在哪里。第一点就是它这整套的硬体非常地昂贵,大概3到40万美金左右,然后我们还需要租一个专门拍摄的大场地。再接下来因为这个后制我们要花很多的时间,怎么说呢,因为刚刚我们有聊到所谓反光球被遮挡,就是说这些摄像头看不到的话,我们要怎么样在后制里面去把这些反光球重新地找出来去定位它,我们才能够把整个数据做一个非常完美地转移。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第8张


接下来我们来看一下动捕的迷思,这是过去我大概15、20年来碰到一些人问我的问题,现在我跟大家稍微解释一下。第一点就是说数据拍摄完可以马上进引擎,那这一点其实是不对的,因为我们请来的演员与实际上3D的角色,通常都是不会1:1。比如说我们请来的演员过高、还是说过瘦,那我们的角色也许比较矮、也许比较壮,所以说这些东西都会产生不同的数据在演员身上,导致于就是说我们之后要做这些数据上的清理。


你想要它马上进引擎也是可以,只是这个数据来说不是一个非常干净的一个结果。今天如果说我们拍摄一个比较壮的人,我们想把这个数据放在比较瘦的人的身上,当这个壮的人手碰肩膀还是说叉腰的动作,在一个比较瘦的人的数据上就不会体现出来,因为演员身体的宽度是这么宽,3D角色的身体其实只有这么窄,所以我们需要去做后续的调整、清理手指的这些触碰的地方,之后我们才能够进引擎。


第二点,所有输出的动作都会与演员无差。就像我刚刚所解释的,基于演员与我们3D角色身材上的不同,这些数据还是会有些许的差别。


第三点,道具要以真实的道具为主。这也不是一个真实的东西,以枪械来讲好了,今天比如说我们拿一把冲锋枪,那这把枪非常得重,我们要请演员拿一把枪,然后做出不同的演绎,一天下来他其实会非常非常地累。所以通常我们会以一个塑胶管,包一些胶带,里面包了一些软棉,让它去演绎出枪的效果。


今天如果导演说我们要拍一个cinematic的场景,去展现出这个枪的重量,我们会给演员一个真实重量版的枪,让他能够去演绎出这把枪的重量。


最后一点,我们如果用了动捕,就不需要动画师去手K了对吧。其实这也是一个完全错误的观念,为什么呢?第一点是因为不是所有的东西都可以用来做动捕,比如说我们要做一张纸,因为纸会飘,所以说我们把反光球上上去的时候,它也没有办法很容易地去固定做一个Rigid body。再加上比如说车子、飞机这些东西,都比较难去达到动捕的效果,所以说我们还是需要动画师之后去加强这些动作,去手K做出这些无法动捕的动作,再到之后我们做出脸部的动捕、身体的动捕,这些数据上的清理,我们还是需要动画师的帮忙,去完成这一系列的数据。


二、动捕的准备与拍摄的过程


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第9张


这是动捕准备的经验之谈,我通常会在开拍的两个星期之前问一下客人说,你们想要拍什么样的动作,与我们需要准备什么样的道具,搭建一些什么样的场景。那基本上我会在这两个星期之内准备好所有需要搭建的道具,测试好所有需要用的道具,是不是都能够可行。之后当客人来的时候才不会浪费他们拍摄的时间。


大家现在可以看一下这个影片,一个高难度的特技动作,在之前我们搭大型场景的时候发现搭起来都没有问题,可是当演员真的上去开始跑了、跳起来之后,我们发现说这整个架子摇晃得很厉害,所以说我们当下马上发现我们需要去固定这个东西,而去固定它的方法呢?找一个更重的东西去绑定它,所以我们拉了这一台升降机过来,绑在这个架子上面,让它能够比较固定地定位在这边,让演员不会觉得说这是一个会受伤的场景。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第10张


好,所以说我们需要有非常好的应变能力与想象力,我们才能够在最短的时间之内达到最完美的要求。在接下来我们看到的是团队来到现场准备要拍摄了,那我们要做些什么动作呢?第一个我们要做的叫做Calibration,光学摄像机的校正。今天大家看到了,刚刚我们在拍摄的动捕场地里面有很多不同的摄像头,我们怎么样去定位这些摄像头的点,让我们的软体知道说比如说相机一二三四五,它们所在的位置点是在哪里呢,那我们就只有用这个Calibration的方式去矫正。


我们会拿一个所谓的叫做反光球的棒子,在这个拍摄场地里面不停地上下左右挥动,让每一台红外线摄像机都能够截取到这些反光球的动作,当这些数据够了之后在软体里面它可以明确地计算出每一个摄像头所在的位置。之后我们才能够进行拍摄。可是今天如果说有人来场地里面不小心碰到这个摄像头的话,那我们肯定要重新地去校正整个Calibration的过程。所以说在拍摄的当下我通常是建议大家说不要穿反光的衣服或者是鞋子,另外大家尽量不要靠近放这些摄像头角架的位置。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第11张


那Calibration之后呢?我们要上所谓的反光球,就是Markers。这些反光球基本上我们会固定于演员各个关节上面的点,比如肩膀、手肘、手腕这些地方,那动捕的软体可以很明确地去计算出比如说我的肩膀到手肘,这是我的手背这一边的点,就是说这个动作是属于这一块的。所以说反光球所在的所有位置也是一个非常重要的事情。今天如果说你把反光球没有上好它该上的位置,那你可能得不到比较好的数据。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第12张


第三点,我们来看到RoM,就是说关节的活动拍摄。我们会请演员在开拍之前先把所有的关节先活动一遍,让这个软体能够知道说这个人整个关节的活动度有多大,之后以软体计算出他整个人可以弯曲、所有关节这些能够达到的位置。之后我们也会用这一系列的数据去匹配,就是说我们把这些动作放到3D角色上面,用我们真实在场地里面拍摄的这个影片做一个对比,看看我们怎么以最好的方式去把3D的角色匹配到Video Reference上面。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第13张


再接下来我们看到第四点就是说大型动捕室的道具需求。大家可以看到左上角这些照片就是我刚刚所讲的,不同的枪械需要不同的重量,右上角这些不同颜色的胶带就是说今天我们有不同的场景,比如说左边是条河,右边是个山,你只有这么细的道路可以走,那我们会用胶带,去贴出这个道路的位置,让演员知道说我不能走出这个范围之外。那不同的颜色代表不同的场景,就是说不同的道具。左下角是在《神秘海域》里面的吉普车,这是我们搭建出来的,右下角就是刚刚大家所看到的那个影片,就是不稳定的搭出来的道具。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第14张


三、动捕的后制过程


我们稍微来聊一下它的后制流程,基本上有五个后制的过程。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第15张


第一点叫做Tracking,就是清理反光球的数据;第二个叫做Solving,将清理完的反光球数据,转移到一个能够缩放的动捕角色上面;第三点叫做Retargeting,我们再把能够缩放的动捕角色再转移到游戏的角色上,为什么要做这个过程呢,因为游戏的角色是不能够被缩放的,所以说如果演员跟游戏的角色有身高、体重、手长、脚长方面的这些差距,我们会先上到一个能够缩放的角色上面,再把这个数据转移到游戏角色上。


再接下来是Motion Edit,做出所有抖动或者是有穿透的清理,比如说像刚刚讲的手叉腰、碰肩膀、摸头这一方面的数据。直到最后一步Final motion,会请动画师做出手指与道具,比如纸、车子这些细节的动作,甚至于到脸部动捕的清理。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第16张


现在我们一个一个来讲。第一个反光球遮挡的问题,我们在做反光球数据清理的时候把它挑出来,让大家稍微看一下。在右边大家可以看到的这个东西,原本的数据与之后设定好这些反光球位置点的数据,左边所有白色的球就是实际上红外线摄像机摄取下来反光球的数据,之后我们还要去定位哪个球的点。


比如说这四颗球是属于它的头部,哪一只是左手、右手,哪一个是左脚、右脚,全部规划好了之后,我们才能够看到一个3D的效果,这是属于反光球数据的清理。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第17张


再下一步反光球数据转移,我们要把数据转移到,一个能够放大与缩小的人物上面。大家现在可以看到的就是说,右下角这个图片的手的长度,它有三颗反光球,应该是在手背的这两个点,跟手肘手腕的这一边。这三个点是在这个方向上,可是大家可以看到在右下角上面的这个图,这三个点已经跑到了手指这一边,所以我们知道说,我们现在需要缩放这个手臂,让它反光球的点能够达到实际上演员当初所设定这些反光球的位置。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第18张


第三点,动捕数据角色的绑定。基于我们刚刚所讲的人物的身高、体重都有差别,所以说我们会在这个环节做出很多的细微地调整。大家可以看到这个手其实两边是合不上的,一个高一个低,那是因为我们还没有做成一个比较完整的清理,所以这是一个还需要调整的步骤。大家可以看到红色是之前拍摄的数据,灰色的就是棒球球员的数据,这是一个Retargeting的过程。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第19张


到最后一点,这就是我们刚刚所讨论的动作数据清理。身体穿插的这些问题,还有说我们拿了道具,手指会穿透这些东西,或是说今天拍摄了两个不同的动作。一个人在跑,忽然一下我们让他在地上滚,也许我们先拍跑的动作。拍完第二个动作,我们再拍地上滚的动作,我们也会在Motion Edit这个部门,去把这两个动作融合成为一个动作,这个是所谓Motion Edit的部门。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第20张


再下一步我们到最终的数据清理,如果说我们有做脸部的动捕,我们会在这个部门里面把脸部的动捕达到更淋漓尽致的效果,以手K的方式去加强它,然后我们也会以手K的方式,去展现出这些无法展现出MOCAP 动捕的这些道具,比如说纸、车子、飞机这些东西。


四、脸部动捕与虚拟相机的使用


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第21张


现在我们了解了后续的处理之后,我们稍微来讨论一下脸部动捕与虚拟相机的使用。在最早之前脸部动捕的方式,是让演员坐在一张椅子上,前面也许有大概三四十台相机,脸上也会放很多小小的反光球的点,比如说像《北极特快车》就是用这个方式去做的。所以说这是一个非常浪费时间的方法。基于现在时代的变迁、技术的成长,现在有所谓头戴式的头盔能够去做动捕,这个头戴式的头盔前面有个小小的摄像头,能够去录取你脸上所有的表情,之后我们能够与身体的数据去同步,达到一个非常好的脸部与身体动捕的效果。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第22张


我们来讨论一下虚拟相机,现在大家可以看到,其实红外线相机与反光球就等于是动捕最基本的要求。基本上我们红外线相机所有的这些定位点都找出来之后,假如今天我放三个反光球点在这个东西上面,那我怎么样移动,让我们可以在场景里面实时地看到这个东西。如果说我们在Motion Builder里面加入一个Camera,把它constrain在这个东西上面,基本上虚拟相机就这么形成了。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第23张


今天我们能够把摄像机constrain到这台吉普车上面,就等于它所有的动向方面是没有办法动的,因为是跟着车子走的。可是它的Rotation方面能够左右地去操纵它,那之后我们也可以以软体的方式去松开绑定,让它能够自由地活动。


五、动捕整体在游戏中的流程


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第24张


我们现在进入到下一个环节,让我们一起来聊一聊,动捕整体在游戏中是一个什么样的过程。


大家现在可以看一下,这是我从过去20年来,学习到的整个动捕游戏流程的经验。第一个就是说,我们在做一个游戏之前,我们一定要有一个非常好的构想、一个概念。有了这个概念之后呢,我们才能够请2D的手绘师,然后把这个场景与这个人物,给稍微地画出来,画出来之后呢,我们会请3D的建模师,然后把它做成一个3D的模型,基于做成的这个模型之后,它并没有骨骼,我们没有办法去手K动画,还是说上动捕的数据,所以说下一个环节,我们就要进行骨骼的绑定。


我们就要请一些TA,这些Rigging的人帮忙把这些道具,还是说这些人物做一个骨骼的绑定。绑定之后,它能够动了之后,我们就会进入到一个,所谓的分镜脚本的这个部门,就是说我们会请一个Storyboard artist,他会以一个一个的方式画出来他想呈现出这个Cinematic的场景。就是说这些人现在是什么的动作,镜头大概在哪一个方向,那有了这一个画出来的Storyboard之后呢,我们才会进入到这个这个镜头创作的部门。


在这个部门里面呢,这些员工会很快地以一个手K的方式,把这个3D的人物就是说稍微地以之前Storyboard的方式去展现出来。动作方面也会很快速用手K的方式,比如说从A点走到B点它可能只是滑动过去,然后把这个镜头带起来,就是做一个认证的效果,然后之后去做一些剪接。那如果整体看起来是没有什么大问题的话,我们才会进入到动捕,把之前这些手K的数据,转换成真人动捕下来的数据。


那这些数据转移下来之后呢,我们会做数据上面的清理,比如像之前讲的这些人,如果说比较高的人,要上到比较矮的人身上,或者说胖瘦不同,那这些数据,我们都就要经过一系列的清理,然后才能够再回到,这个镜头的部门,让他们去做验证。


我们为什么要做验证呢?我跟大家讲一下这个道理,今天比如说我们之前用手K的动画,一个人从A点走到B点,他可能只K了大概两秒钟的时间,可是实际上我们用动捕拍摄的话,我们发现这个人从A点走到B点,花了3秒钟的时间。相对之前搭的这个镜头就不会100%的能够去跟随这些演员的动作,所以说当我们动捕的数据,做完了之后,我们还会送回到这个镜头的部门,让他们去更改他们这一系列的,之前搭设好的镜头,让它能够去跟随这些动捕的3D人物一起去运作。


那之后呢,当这些镜头也确认了,然后这些Motion Edit也做完了,我们会进到这个动画加强的部门。那在这个部门里面呢,这些动画师会去加强手指的这些动画,然后也许说我们做脸部动捕,脸部动捕要怎么样去拉到一个更好的效果。然后在接下来就是说这些车子、纸、飞机这些东西,没有办法去用动捕做出来的数据,我们也会要求动画师在这个环节里面完成。


那接下来我们看到三个环节,特效/模拟,光效/渲染,那还有说进入到引擎,这些东西现在基本上在引擎里面是可以完成的。可是以Cinematic的方式来说的话,我们就会说比如说衣服的动法,或者是说头发的飘动方式,在这个部门就是说我们怎么样打光,在这个场景里面让这些人物看起来是最为一体,最像在这个场景里面互动,最有Dramatic effect,就是最能够去说服人的一个打光的方式,然后我们把它给渲染出来,再把它进入到引擎里面。


腾讯互娱KevinWang:使用动捕技术开发游戏的流程与细节  第25张


好,那今天我的演讲就到此为止,希望大家能够在短短时间之内能够对动捕有一个更深层的了解。谢谢大家来聆听我的演讲,希望你们都有美好的一天。

The End