近年来,随着虚拟技术的发展,虚拟人物及面部捕捉技术越来越受到科技大厂的关注,从Epic Games与数字王国合作开发的实时数字面部捕捉技术,到Facebook公布Codec Avatars技术,再到腾讯携手Epic开发虚拟数字人物。从技术方向来看,大厂们在虚拟人物上保持着高度的统一。腾讯、Facebook、数字王国以及国内众多游戏大厂都在不同程度的尝试这一技术。
近日,在腾讯游戏学院的栏目中,腾讯互动娱乐新体验与技术部助理总经理,专家工程师顾煜分享了他们此次与Epic Games合作研发虚拟数字人Siren的开发历程。
Project Siren Episode 1
坏的开始
Siren是一个虚拟数字人项目,名字取自北欧神话,女妖塞壬。相传她拥有天籁般的歌喉,常用歌声诱惑过路的航海者而使航船触礁沉没。
黎叔(沈黎,腾讯互动娱乐新体验与技术部理副总经理)起这名字的时候,光注意了名字的调性,英文不错的我们,也都纷纷叫好。古有贞子破屏而出,今有塞壬让宅男破幕而入,这个愿景激励着我们努力。
不曾想,今后的宣传中,无数人跳出来说,起什么代号不好,偏偏要起一个“死人“的代号。所有的能力,都会遮蔽双眼。英文不错,反是负担,我们都忽略了Siren还能被解读成死人。
好在当时,我们并不知道这一切。倘若不然,想必在研发的过程中,大家会多了些许负担。而对于这样一个艰巨复杂的项目,没有信心的我们,若非无知无畏,若非轻装上阵,早已落荒而逃。
真正的开始
这个项目来源于一次合作。Epic和腾讯希望找机会做技术合作,于是我们和Epic CTO开会交流。
会中各种方向讨论,都不算靠谱,或者是太鸡毛蒜皮,或者是太虚无飘渺。最后他抛了一个想法,想要合作做虚拟音乐会,也就是一段超高质量的MV,大家觉得还不错,于是匆匆结束下午的会议,进入了大家喜闻乐见的晚餐环节。
晚上商务宴请,一顿潮汕火锅涮完,CTO碎碎念着,说大家不太喜欢这个想法,闲谈中聊到这个项目,没有那种眼中有光、心中有火的状态。
然而这并不重要,一肚子牛肉要消化,明天总要到来。所谓方向,即使一开始并不起眼,也许熬着熬着,做着做着,也就柳暗花明了。
但事实是残酷的。大多数想法,都不会做着做着才变得惊艳。一个好的想法,自然有打动人的力量,即使一开始那么不起眼,当你听到它,就会觉得,就是它了。虚拟演唱会的想法,还缺一点意思。
第二天,Epic的CTO同学又带来新的想法,这次的方向,就是虚拟人。所谓虚拟人,就是高质量的CG人物,能够乱真,可以交互。
这是一个有趣的想法。
并不是每个有趣的想法,都有价值,我们又该如何判断它的价值呢?
决策
对于
未知领域,究竟什么想法靠谱,什么想法不靠谱,很依赖于人的直觉,但也有一些客观的方式可以判断。依我看来,有四个维度可以帮助做决策。
你先要看可行性,再好的想法,做不出来也是白搭。我们可以承受适当的风险,风险越大,越看不清的方向,就越需要控制投入的规模。虚拟人这个想法,有不错的可行性,电影行业特技已可乱真,而游戏行业静态画面也能媲美照片,在这个飞速发展的时代,的确孕育了实时渲染的数字人技术的可能性。PC消费级硬件的性能突飞猛进,已经奠定了基石。
可行性不光看大环境,自己团队是不是适合做这个事情,也是一个重要的考虑因素。我们团队有不错的游戏开发经验,也能胜任高级渲染技术的开发,而更重要的是,Epic的CTO Kim Libreri,来自电影行业,从事电影特效多年,赢得过两次奥斯卡奖项,有足够的行业洞见和人脉资源,是一个最佳的带头人。
看完可行性,再要看它有没有
技术壁垒。如果投入做一个很简单的技术,其他团队很容易就能复刻,那么投入的价值就不那么大。既然是探索新领域,我们希望“用时间换空间”,投入更长的时间,获得持续的积累,而我们也希望这个积累,能产生一些壁垒,让别人很难轻易复制。虚拟人很符合技术壁垒的定义。这个项目在多个领域需要做出突破,在建模精度、RIG质量、渲染效果、实时表情捕捉等各个方面都有巨大的挑战。这里有相当多的领域,横跨了游戏和电影行业。而所有跨越边界的技术,都不好做。游戏谈起渲染质量,电影乐了;电影聊起实时交互,游戏笑了。陌生行业的鸿沟,那些越过边界的不确定性,那些遇到难题的不知所措,就是技术的壁垒。
“The brick walls are there for a reason. The brick walls are not there to keep us out. The brick walls are there to give us a chance to show how badly we want something. Because the brick walls are there to stop the people who don’t want it badly enough. They’re there to stop the other people.
Randy Pausch”
网上广为流传的“最后一课”的教授,也讲过,墙并非无缘无故而来,墙把我们挡在外面,只是要给我们一次机会,一次证明自己的机会。它在那里,只是想把那些意志不够坚定的人阻挡在外面。这堵墙,就是技术的壁垒,它不仅仅是努力的目标,也是努力的信心。因为我们知道,当我们翻过这堵墙,它就是我们的壁垒,阻挡那些不够坚定的竞争者。
然后要看它有没有
技术价值,这个技术,会不会产生有价值的积累,应用到其它产品中。实验室的前沿技术,大多不能应用在实际的产品中。而能用在产品中的技术,往往有不够高端。我们要寻找的,是那些略高于目前技术水准的技术,可以在2-3年后,应用到产品开发中。
虚拟人技术,跨越了多个领域。其中渲染质量的提升,相当多的理念都可以受益于电影行业的技术。在渲染领域,
电影行业的今天,就是游戏行业的明天。提前了解一些更高端的技术,对未来的游戏研发技术,也有实质性的提升。而研发过程中,也能产生大量的副产品,这些副产品,同样可以用于游戏研发,提升研发的过程技术。比如AAA游戏以及一些叙事游戏,类似《底特律—变人》、《Hellblade》等,早已开始用类似的制作管线生产过场。而更基础的照相建模、动作捕捉,也在游戏开发中越来越广泛使用。在国内行业中,大量外包公司也已经提供类似的服务,如果自己拥有这样的设备,可以大大加速迭代的速度,也能深入研究,开发更多有趣的功能。
最后看它能不能吸引眼球,能不能被
外部认可。再好的技术,做出来无人关注也是不行的。一个团队的可持续发展,需要吸引人们的注意力。而这个项目,定位在跨越恐怖谷,如果能做出来,一定会非常吸引眼球。
为什么说恐怖谷会是一个吸引人的价值点呢?需要了解这一点,必须要讲一下恐怖谷理论。恐怖谷理论在1970年由日本机器人专家森政弘提出:
“森政弘的假设指出,由于机器人与人类在外表、动作上相似,所以人类亦会对机器人产生正面的情感;直到一个特定程度,他们的反应便会突然变得极为负面。哪怕机器人与人类只有一点点的差别,都会显得非常显眼刺眼,整个机器人显得非常僵硬恐怖,使人有面对僵尸的感觉。可是,当机器人和人类的相似度继续上升,相当于普通人之间的相似度的时候,人类对他们的情感反应会再度回到正面,产生人类与人类之间的移情作用。
”
在电影行业,已经非常接近跨越恐怖谷的阶段,大量计算机视觉作出的虚拟人,在场景中和真实演员一起演出,粗看并无破绽。但电影毕竟拥有海量的资源,计算资源接近无限。而在实时渲染领域,并没有类似的技术,在计算能力受限,成本不高的消费者领域,缺乏同等级别的技术。如果通过这个项目能在实时内容领域产出足够高质量的技术,那么吸引眼球这个目标并不难做到。
综上,虚拟人这个想法,非常理想,符合上述所有条件。我们马上热血沸腾,和Epic一拍即合。
我们对项目目标的定义,是非常简洁的一句:Crossing the boundary。跨越影视和实时渲染边界,制作可实时交互的数字人物。
Project Siren Episode 2
合作
于是,一个跨国合作项目就开始走出了艰难的第一步。谁也不曾想到,日后的研发和合作过程是多么困难。
这次的合作,相比过往项目,更为艰难,我们想要建立一个跨国团队。显而易见的是,我们跨越了文化,也跨越了时区,不那么明显却同样重要的是,我们跨越了行业,一起工作在陌生的领域。
这个项目的团队来自四个公司,分属四个国家。
美国的Epic是整个项目的发起人和协调人,它是领路人,带领整个团队,跨过影视和游戏行业的鸿沟,它也是整个项目的整合者,负责把所有的工作整合到一起。塞尔维亚的3Lateral是高精度模型和Rig的开发商,负责制作高精度的人物模型,同时制作高精度的Rig来驱动模型。英国的Cubic Motion,负责实时的表情捕捉和还原。NEXT Studios则作为整个项目的Owner,在其中负责Unreal引擎的渲染增强和性能优化,提供基于Unreal引擎的高质量的人物渲染,我们也积极参与各个研发的全过程,学习流程。
由于四个国家跨越四个时区,这让每次周会成为一个痛苦的经历,总有一个或者两个地区的人们,在一个很尴尬的时间参会。而因为一些不可明说的原因,在国内经常无法访问一个常用的视频会议服务。但这些,都不算太大的困难,真正的困难,始终在人身上。
2017年2月,项目成立,NEXT第一批研发团队开工。
我们尽可能把内部最好的渲染人才都投入了这个项目,但这个方向还是比较前沿,实时渲染真实的人像,自COD的Paper开始,已经持续进步了很多年,主流AAA游戏,都能做到非常真实的人像渲染了。但对于这个项目,还嫌不够,我们还需要研究更好的渲染算法,开发更多的特性。
原定的方式,是Epic找一流的技术专家,给予我们指导,建议方向,我们来做研究。开发团队开始研读Paper,频繁交流。早期的几次周会,都是从论文出发,进行讨论。渲染领域的同学,用公式和想象,进行隔空过招;非渲染领域的同学,听得昏昏欲睡,恨不得夺门而逃。
然而我们很快就遇到了瓶颈。
远端的资深专家,工作繁忙,只是抽空给予指导。可是前沿的渲染领域,大量细节,除非对方直接参与深度研究和实现,否则很难仅凭印象,来做讨论和指导。当我们做出代码实现,如果结果有争议,遇到具体问题需要解决,无论是多牛的专家,没有深入一起做实现,投入足够的时间,就不能判断究竟实现错误,还是论文方向错误。而一周一两次的远程沟通,信息密度和频度都不足以弥合信息的Gap。于是,一些图像特性的开发,陷入了胶着,谁也不能说服谁。我们徒劳地做着各种各样的尝试,或是自发的,或是来自远程的建议,但始终没法有突破。
此外,前沿的渲染,也很难从纯技术侧予以推动,具体来说,大多数时候,一个特性的实现,也需要和技术美术(TA)一起把最终的效果做出来,才能有说服力。我们这里的团队,也有一定的技术美术能力,但还没有到能领导方向的程度。
随着合作进一步进行,大家逐渐意识到,依赖纯程序、低频度的交流,已经很难推动特性研发了。
合作问题的最终解决,是Epic侧换了接口人,由技术美术专家主导,和我们渲染程序员交流。大家很快就发现,在更好的合作性下,两个互补的工种推动工作,一切都顺利了很多。程序的实现,也更快有了美术侧的应用,技术美术给出针对性的意见,也会推荐其他的实现方式,继续让程序员尝试。
有些工作,依赖工种能力的互补,会胜于同类能力上的增补。
模特
眼看时间一点点过去,过了两个多月了,其他几个团队还没有开工,他们有不同的档期安排。
我们理应非常恐慌,恐慌来自于自信的不足,从没做过的业务,不知从而入手,不知进度如何。可是,我们却有谜一样的自信,自信来自于Epic的胸有成竹,同类的事情他们做过多次,只要不出问题,一定能做到更好。
2017年的GDC过后,Epic的团队也开始更多投入Siren项目。Epic有一个精英团队,专攻各种特殊技术,他们的项目节奏,围绕各种展会,交付种种黑科技。Siren也是他们下一个重要的目标。
因为是远程项目,信息交流不畅,多方一起开工,就发现了很多问题。
比如,我们要渲染人,就需要选一个模特去做3D建模扫描。之前我们得到的所有信息,就是找一个漂亮的女孩子,参与2-3天的全程扫描,后续再有2-3天的配合工作,就能完成目标。于是NEXT的筹备工作,打算从公司内部找人参与,物色了一些不错的人选,也和对方Leader谈好了,需要支援一段时间,大家相谈甚欢。
可是,很快我们就发现,要做的事情,似乎超过了2-3天的全职时间。一会要模特去做一下牙齿数据采集,一会要模特去拍个参考照片,一会要模特去选适合的衣服。这还没开始正式扫描,就已经有那么多琐事了,正式开工以后,肯定会有更多的事情。
我们面临了一个困难的决策,继续用已经选好的模特,还是换一个专业和全职的模特。
其时离需要拍LookDev的参考照片时间已经不足3周,临阵换人,时间有点紧。但一次次让公司内部其他部门同事请假来支持我们,并不是长久之计。本来是一个线上的业务,一不小心,跟线下打起了交道,活活做成了O2O(online to offline)的项目。
无奈之下,我们只好在最后关头换模特。我们找了外部公司,找到了日后的合作演员:姜冰洁。
曲线-中间节点
从2017年GDC,到我们2017年底的节点,还有很长的时间,因为整条数据生产的Pipeline非常长,从扫描到生产,有很多的步骤流程,有多家公司合作。
作为一个团队,我们也不能一直没有产出。于是Epic团队找了一个中间节点。7月底的Siggraph是一个不错的节点,时间上比较合适,有机会产出一些成果。
Epic团队定了个方向,做一个VR的面对面Show,他们扫描了Mike Seymou,Fx Guide的创始人。用一套完全一样的Pipeline,把Mike模型导入了Unreal,一路趟了很多坑,把引擎流程中不适合的地方一一走通。NEXT这里做的一部分渲染特性也被整合进版本,进行了一轮验证。
做这些功能的时候,NEXT的小哥哥们心里还是有点抵制的。本来说好了做一个美女,突然中间加入了一个新目标,去做一个老爷爷… 大家可以看一下照片,感受一下画风的突变。
新的目标造成了巨大的心灵创伤,但我们的程序员还是非常敬业的。他们调整心态,把不同代码分支的特性,整合进了Mike的分支。
Mike的演示在VR中进行。团队进行了性能的优化,确保有尽可能高的帧数。Epic团队重用了当年做Hellblade的所有流程,加上各种新功能,做成一个1.5的版本,就直奔Siggraph了。
我们的谜样自信,在这次展会被小小打击了一下,知道此事并不简单。
可能是艺高人胆大吧,今后的合作中,每次有重要展示节点之前,版本总是一塌糊涂的,但合作各方居然也能欣然前往会场。在Siggraph展出前夕也是如此,各种优化效果需要调整,性能不达标,Cubic Motion的表情捕捉又不能稳定工作,甚至忙到Siggraph的第二天展示,还陆陆续续有新的修正被加入现场版本。
好在Siggraph展出非常成功,在Hellblade的整套管线上,技术又得到了进一步的升级,人物渲染的质量、捕捉和建模的精度,都有了不少的提升。如果说Hellblade的人物,还有一点数字痕迹,那么Siggraph中的Mike,已经很难识别出是一个CG制作出的人物。Mike在讲话的时候,口型还略有奇怪,看上去有些僵硬,但如果抛开口型不看,上半部分的脸,完全达到了最初的设想,真假难辨。
整体来说,这个中间节点是成功的。但我们也进行了深刻地反思,为什么展前如此狼狈,我们今后需要如何改良流程。改良的结果,是完全无效。一模一样的忙乱,在今后的研发中多次重现,我们经历了腾讯内部汇报的几天忙乱,经历了GDC前夕的通宵折腾,经历了后续Siggraph展出前的紧急突击。总是在展示现场奋战,直到最后一刻,才能最终搞定。
也许高科技就是这么矫情,轻易不肯展示它的魅力吧。
Project Siren Episode 3
渲染
Siggraph这个中间节点的工作非常成功,验证了新的流程,Cubic Motion新的捕捉技术也慢慢成熟。
而另一头,我们的主要版本,也在缓缓推进。
我们先在5月前后拍摄了姜冰洁的Look Dev参考照片。所谓的Look Dev,就是指我们需要拍摄模特在各个光照方向下的照片,多角度捕捉,然后在后期Unreal渲染开发中,会尝试用引擎还原当时的光照情况,然后把数字模型放在一样的位置渲染,逐帧对比渲染图片和实际照片的区别,尽可能调到一摸一样。
这个做法可算让人大开眼界,因为游戏渲染其实没有要求如此精确,基于目测而不是精确的对比,渲染到大致差不多就行了。换一个角度看问题,的确会得出不一样的做法,游戏的画面和真实的差距太远,想不到要如此准确去评估渲染质量。而电影本就是要以假乱真,自然用最精确的方法去推动质量改善。
据说电影行业一直就是用这样去做测试,因为CG的制作过程非常长,有很多步骤,他们要不惜成本保证每一步质量都尽可能好。如果不这么做,那么经过多个步骤以后,误差就会累计和放大,结果就没有办法看了。
我手边没有标准Look Dev的对比照片,找了两张近似的。后面两张照片,一张是真实照片,一张是Unreal中的渲染照片,注意看头发部分,可以区分真实和Unreal渲染照片。实际Look Dev工作中,会精确找到光照一样、角度一样的两张照片,来做针对性调整。当然数字环境和真实毕竟还是不一样的,不可能100%还原。从上述照片来看,我们也的确尽力做到最好了。
有了科学的方法,也不代表我们就能做出一流的效果。高端渲染,后期的改动相当微妙,我们也不具备能力分辨细微的画面差别。所以我们还需要一个CG Supervisor。
CG Supervisor是一种非常神秘的职位,这个职位的术语,在影视行业用得较多,游戏开发行业往往称之为Art Director。他们对渲染差异非常敏感,很多时候我们只能模糊感知到画面有所不同,但他们却能精确定位问题,给出修改方向建议,告知如何调整。
“The computer graphics supervisor, or CG Supervisor, is a person involved in the production of computer generated imagery, be it animation or visual effects. Due to the variety of productions and duties required, most CG supervisors are specialized in one area such as art , programming , or management.”
来自电影行业的CG Supervisor和电影制作的TA,指导我们的渲染功能开发,指导整个项目的美术素材制作,帮助我们一步步把基础模型的品质提高,把渲染功能完善。整个Look Dev的过程,贯穿了项目的始终,直到后期,还在不停地进行修正,力图达到最好的显示效果。
扫描
如果说程序的开发,还是我们力所能及,可以参与的,那么模型的制作,就不是我们能把控的。开工数月,还没有开始扫描模型,我们很惊慌,因为模型是后面所有制作的起点。
联合团队在6月份一起去了塞尔维亚,带着模特,去了3Lateral公司扫描高精度模型。
扫描的过程,是一个照相建模的过程。我们让女演员在场地中站好,按下快门,数百台高清相机同时启动,从全方位拍下模特儿的各个角度的照片。这个图是一个简单的示意,我们当时使用的设备,会更大更复杂。
整个使用过程并不复杂,复杂的是整套设备。在十几平方的扫描房,搭建各种架子,放入数百台相机,光是固定相机和完成连线,这就是一个极其巨大的工程。电源线、相机控制线,接入多台电脑的USB HUB,然后电脑又通过网络连接到一起,用一台电脑作主控。主控电脑上发出操作指令后,多台连接相机的电脑用合适的拍摄参数,同时操作数百台相机拍摄。数百台单反相机快门同时触发,汇成一声巨大的咔嚓。然后千百兆比特的照片在网络中传输,汇总到主控电脑,做进一步的处理。
捕捉脸部模型的设备,是在几周前才开始组装的。整个系统从结构上来看并不算复杂,但由于部件比较多,所以整体容易出问题。比如有一阵子,按下快门后,有几组相机没有随着其他相机一起拍摄。
这类设备的Debug过程,和电脑装机差不多,无非就是换换零件,插拔线头,重新启动。老外们忙了半天,开始怀疑到USB Hub。我们凑过去看热闹,发现整套设备各种高大上,但其中的USB Hub设备,用了中国的某流行的低端品牌。连我家里都嫌弃的品牌,他们居然用在工业级别的设备上?
我们赶紧告知他们,这个牌子质量一般,建议全换掉。只可惜,塞尔维亚体验不到早上下单晚上到货的服务。他们只好先从公司找了几个备用的USB Hub,换下出问题的几个Hub。但是这些Hub的问题不是不能用,而是不稳定,时好时坏。大多数时间是可用的。整个系统有上百个Hub,出问题概率就不低了,有某个Hub出问题了,就要重拍,大家在提心吊胆中进行着后续的拍摄。
几天拍摄很快过去了,我们一边帮忙,一边学习。期间采集了大量的数据,包括静态脸部数据,身体数据,牙齿数据,眼睛的特写数据和各种表情数据。姜冰洁一会摆成人字,一会摆成S字,一会瞪大眼睛,一会鼓起腮帮,做出多样的动作,满足着各种扫描需求。
完成采集数据后,Epic、Cubic Motion和我们各自回国,后续的建模工作,就全留给3Lateral了。
几周后,静态的模型逐渐交货。我们的团队也就开始了LookDev的过程。3Lateral团队继续忙着做后面的Rig系统,为面部表情做好准备。
动作捕捉
有了模型,有了渲染,还少了一个重要的环节:如何让这个虚拟人物可以动起来。
受限于技术和精度要求,动起来这个任务,被分成两部分。一部分是动作捕捉,一部分是表情捕捉。外界也有些动补技术,可以合二为一,但对于这个项目,精度和效率都不能达到需求。
动作捕捉是相对成熟一些的技术。动作捕捉已经发展了挺多年,主流的技术都有不错的表现。在AAA游戏开发中,我们制作动画数据时候也一直在接触。只是这一次,需要实时响应,稍有麻烦。我们使用了Optitrack的技术,动补的数据,需要直接在电脑上采集,然后Streaming到Unreal中,再展现到我们的Rig中。好在这一块技术上也不算太复杂,主要就是很多工程上的细节需要去做。
贴完传感器,开始捕捉各种动作,先走通了UE里面的Live过程,再开始仔细根据动作捕捉,研究身体Rig应该如何改进。在模型的关节处总有各种问题,需要一一调整,但总体来说,还容易搞定。
最难的地方,无疑是脸部表情了。
未完待续
第一时间了解XR资讯
关注VR陀螺官网(vrtuoluo.cn)
关注微信公众号:VR陀螺(vrtuoluo),定时推送,VR/AR行业干货分享、爆料揭秘、互动精彩多。
投稿/爆料:tougao@youxituoluo.com
稿件/商务合作: 六六(微信 13138755620)
加入行业交流群:六六(微信 13138755620)