深度剖析GDC2016游戏角色SENUA的实时表情捕捉系统(二)

深度剖析GDC2016游戏角色SENUA的实时表情捕捉系统(二)

校对还未完成,还没有正式外发

接上文:深度剖析GDC2016游戏角色Senua的实时表情捕捉系统(一)


3 lateral: 绑定

Vladimir Mastilovic是面部绑定流程的首席设计师,在Kim Libreri(Epic的CTO)向团队提出需要在GDC上做一段现场演示之前,3Lateral就已经开始着手地狱之刃中Senua角色的研发工作了。

3Lateral扫描了Ninja Theory的Melina Juergens,并提供了一个高精度的面部和Senua的绑定。

扫描过程涉及到一项花了很多时间的专利技术,3Lateral能够通过外部扫描数据组建一个Rig,他们将扫描和绑定整合起来,不同于平常的制作了一个面部点云摄影测量方案,更进一步的,3Lateral在不同帧之间实现非常精确的内聚力。

 

Mastilovic解释道:“这些数据都是首次捕捉到的,我们编写的软件会有助于在不同帧之间建立一致性的对应关系”。上面的影像会成为一个光流(optical flow),这仅仅只是方案的一部分,这个团队还有其独特的长处,比如匹配方法在高端的面部识别算法中虽然并不常见,但是这个工具给人印象深刻,也是3Lateral解决方案的关键特征。这有助于解决不同桢之间的差别,不然可能无法实现光流分析。

在游戏开发者大会上,3Lateral公司将这种连贯的分析法和后面的“Rig Logic”算法作为其两大核心技术,着重进行演示。3Lateral所采用的扫描技术虽然尚未对外公布,但它无疑是影响成像质量的第三大关键因素。这部扫描仪配置了一个焦距为90的相机设备,能生成具有高分辨率、高精度的面部数据。在对Ninja Theory的Juergens进行扫描时,3Lateral团队仅仅能运行V.3版本的扫描仪。然而在游戏开发者大会不久后,3Lateral团队便成功地为这款扫描仪增添了不少功能。“它介于标准的摄像测量与专业系统之间”,Mastilovic说道。这款扫描仪将特殊的灯与高速摄像(10,000fps)的机器视觉相机结合起来,并将Agisoft 软件作为在基本重建过程中进行数据处理的中间环节。 正如Mastilovic解释的,“我们并不想重新发明一些机器——它们运转得都很好,我们只是给它们增加了一些计算程序,让我们能从收集到的数据里提取出更多的信息。”(译者:blue)

血流

面部血流也在Senua脸上做了建模,血红蛋白重新分布的模,采用的是一种变形样本的方法,随着Senua形成一种新的表情,面部的压力会让血流地图改变,3Lateral了解所有不同种类的血流 – (兴奋的,害羞的,压力和表情)- 足够满足目前的实时表演和游戏水平的需求,团队使用的是一个简化模型。“当你加上血流,面部的三维度立体感会得到加强,因为有很多视觉体验制造者-比如眉毛,血流可以告诉我们哪里是凸起的。” Mastilovic解释道。

Tameem Antoniades表示,Ninja Theory的态度是先创造出角色,然后再尽一切所能让她的表情更加有表现力。团队在样本展示开始前很晚的时间才开始添加血流,在真实的游戏中,如果需要一个情绪回应但是无法被自动加上,那么团队会手动进行关键帧处理。

有趣的是,团队也是在最后才添加了瞳孔放大功能,“这让她在直视镜头时更加逼真”,Antojades解释道。人们一直觉得瞳孔放大和面部血流是面部重要因素,但只是不是很确定如何准确地叫出这些现象的名字。不管怎样,这两点添加了很多潜意识的特质,同时也是人类情感意识大脑系统面部的解密的一部分。Antonjades说如果你做一对一对比,就会发现“这两点可以产生巨大的不同,这是我们需要继续推进研究的方向。”

皱纹和血流

在游戏开发者大会的样本展示上,模型的前额被颜料覆盖,因此血流是在双颊和嘴周围体现的,有趣的是,让颜料干裂展现在前额花费了很大功夫,即使有这些颜料,皱纹还是可以明显看到,而且表情也没有受到限制。“实际上,颜料的张力让细节更加彰显,你在涂有颜料的区域甚至可以看到比正常肌肤区域更多的皱纹,” Antonjades指出,“这也是我们想深入研究的一部分。”

 

在前面身体追踪环节讨论过了,脖子部分是团队特别想做好的关键一部分。再提高了IKinema解决方案的解决能力后,3Lateral开始着手让Senua的脖子看起来更加真实,“开始时脖子看起来太糟糕了,像橡胶材质的,Vladimir Mastilovic 做了很多工作才让脖子的转动看起来真实。” Antoniades解释道,跟EPIC的团队一起,做出的解决方案是Senua在扭动和抬头看时三套准确脖子形态,还有一个新的修正过的转动点头被添加到了脖子的骨头上,可以在下列图片中看到:

特殊的脖子修正

在这个试验模型中,右边的脖子没有强烈的橡胶质感

背景形状筑模CSM是3Lateral开发的一个在其他面部动作编码系统的驱动形态下能够看到不同面部单独动作的软件,这个工具让艺术家们可以控制,以及合并不同的表情或每个表情驱动的肌肉群或是动作单位AU,扫描可以帮助让所有的动作看起来连贯一直,整合起来的表情跟捕捉到的单独的一个表情动态是不一样的。让组合起来的表情看起来更加真实可信,一个背景整合绘图UI是至关重要的- 它可以对任何组合表情或是一系列动态做出简单调整。这样艺术家可以轻松检查整个表演语义上是否有效,换句话说,我们需要的是一系列AU动作单位的整合,或是面部希望传达出的一些不一样的东西- 不是所有部分的整合所表面展现的东西。“通过回放一系列动态动画,并且转换最初设定,以实时播放的形式,我们觉得这对于生产效率和最终结果都是非常重要的。”Mastilovic说。

背景形状筑模CSM

Rig Logic

3Lateral团队拥有一款叫做Rig Logic的关键工具,该工具可以驱动面部并且直接在UE4内部运行,将这种技术从Maya转移到UE4内部大大方便了在GDC上进行实时、低延迟的样片演示。

在《地狱之刃》(Hellblade)的测试阶段,Ninja Theory团队发现了一个有趣的现象, Tameem Antoniades说,他们将Melina Juergens的脸与一个健身教练的身体上,这个过程很简单,在流程中通过将脸部和身躯分层处理就可以。但Antoniades发现这样做的效果并不理想,以至于他现在坚持不同的演员饰演不同的角色(除非是为了某些异域风情的怪兽而需要重再创作),他相信所有表演的整合都应该来自于同一个模特演员而不是多个不同的人:“最终的结果很理想,当动作捕捉演员具有某些不足时渲染画面也会展示这些不足,这就是我们想要的——英雄角色也不得不面对自身的缺陷。”

健身教练“从技术上讲”身体肯定更加协调,他们有更长的臂展及可见的肌肉,但是对于Antoniades来说,每个人身体与生俱来的不完美之处才让他们显得更符合人的性质。用他直接的观点来讲,就是只有Senua这一角色的所有动作原型都是来自Melina Juergens一个人的时候,这才是一个可信的角色。“我们不会介意不完美的脸——因此也要有个不完美的身体——于是我们舍弃了原来(采用健身教练的身躯作为原型)的方法”。他将进对此展开一步深入的工作并为动作扑捉制作更完美贴身的工作服,从而捕捉更多演员本身和演员动作的信息。他相信最好的方法是进行1:1面部对接和1:1躯体对接,“只要其他问题得到解决我们便可以定位更多信息——但目前,我想避免冒进,即使我们能够做到的时候我也会问——为什么要那样做?而为何不直接选用最合适的演员呢?”他说道,“我认为这是脸部的不足之处,正是模特脸上的不足之处,这让他们显得更符合人的特征,当你看到CG角色渲染合成的完美无缺——十全十美——我觉得这才是真正的不足之处——现实中没有人长得那么惊艳!”

EPIC 游戏: 虚幻引擎4

EPIC游戏团队建造了Senua在游戏开发者大会上的展示样本,这得益于他们最近为Paragon做的很多工作。EPIC的Kim Libreri解释道:“我们从之前既有的构造,建模,模型透视开始,我们也直接取用了我们已经完成的工作- 特别是Twinblast和Paragon的麻雀- 借鉴过来并改进到更好!”

几乎大部分需要生产游戏开发者大会的展示样本的东西都已经在EPIC的虚幻引擎4
(UE4)里面了,但是还是需要一些调整。

首先,团队需要把数据在线传输到UE4,这些数据流是上面提到过的,IKinema的身体数据和3Lateral的面部数据。

然后,之前UE4系统在面部混合的变量和常量,使得结果并没有3Lateral那样在仿真度上有高度一致性,而UE4在游戏开发者大会上的版本,可以用计算机在GPU中计算好变量和定量- 这会产生跟传统视觉效果或是动漫很相近的结果。高级绘图工程师Brain Karis说“这比我们之前的系统都更能真实的模拟出面部表情。” Brain Karis曾经与Haarm-Pieter Duiker(之前在ESC,ICT工作过,并以跟学院合作创作出ACEScg文明)合作过。

新的非插入式的(左边是旧的变量)帮助仿真度的法线(右边)

Senua的身体得益于一个新的骨骼驱动控制器,这一新的技术帮助Senua在弯腰时实现衣服的折叠或提升,因为在她的关节处有一个曲线参数做驱动。

右边更加真实的折痕

摄像机

现场展示是与一台预定拍摄路径的摄像机一起工作的,但是虚拟场景中摄像机的拍摄画面范围却是前期制作好的,演员则进行的是实时的移动,这就带来一些有趣的问题。首先,如果演员的动作稍许的偏离了预定画面,工作团队仍然希望可以让其在取景范围中且对偏离进行纠正;第二,当摄像机切换为景深模式时,在现场演示中很有可能出现的情况是演员正在运动且不在摄像机对焦范围之内。为了解决这两个问题,技术团队增加了一个智能摄像机来追踪拍摄演员的头部姿势,同时在主要的动作过程中还采用X、Y、Z轴三维调节器来覆盖演员身体以起到矫正作用。

这一头部追踪技术也会驱动虚拟镜头的对焦调整器,从而保证不管演员如何运动的情况下镜头都始终保持对焦在演员的脸部。在现场演示的最后对焦变得有些偏弱了,只有演员的眼睛和鼻子可以完全对焦成功,最后阶段摄像机移动的时候出现了羽化的情况,由此可见受头盖骨的影响要更多一些。

 

视觉开发

Senua是在没有妆容的状态下被测试的,下面是一个没有地狱之刃妆容的引擎视频测试模型。

3Lateral提供高清晰度的地图,法线和漫反射率,但并没有比如Lightstage扫描你可能会有的,单独的镜面反光和扩散采样的地图,整个团队用出版用纸来衡量镜面反光和粗糙度,团队拥有非常有用的灯光和皮肤参考摄像技术,这样他们能够进行一对一的细致比较,从而使得每个细节以及皮肤颜色都能做到高度仿真。

模特原型(右边)和引擎模型(左边)的对比(内部肌肤测试)

为了得到一些细节数据,团队使用微计算机水平的粗糙度地图,同时还有一个凹陷地图,从而可以将毛孔以及化妆品的裂隙间加深颜色

 

次表面散射(SSS)需要将散射和镜面反光区别出来,因为镜面是一个表面所以不会分散,SSS在引擎中存在一段时间了,但是为了游戏开发者大会GDC,做了相应的改进。过去,这个系统通过在Alpha渠道中储存一个RGB和一个散射地图,来为每个项目提供一半的解决方案。散射随后被弱化,取消跳棋盘加入基础颜色后重新整合。当然,所有捕捉到的参考照片都包含一些光线散射问题所以这是一个修正完善的过程,通过调整引擎来达到参考效果。

眼睛

Senua眼睛的水准是非常高的。她的眼睛对于实时游戏引擎来说是相当复杂的。眼球是用几何学的角膜突出来做模型的- 它们并不是完美的球体。一个新的EPIC眼睛工具可以做到对角色的眼睛做到全方位的操控,从尺寸,颜色,到虹膜,巩膜,瞳孔,角膜缘环以及湿度。所有这些都可以做成动漫特效,从而她的眼睛可以准确地对灯光变化做出反应。

 

对于眼睛的折射,眼睛纹理中储存了几何学上眼球前方到眼睛中间或是虹膜表面的数据,这在任何光束通过角膜击中眼睛任何部分时都会被捕捉到。如果没有这个,虹膜会出现在眼球前方。

由镜片造成的焦散其实是假的,早期的SSS方法(前面提到过)被觉得不适合用于眼部工作,因为
二次抽样并不符合可以在眼睛表面有清晰的镜面反光细节的要求。跳棋盘的解决方案也被拒绝了,取而代之的是节省能源的Lambert Shader。

 

注意现实中眼睛的泪腺和湿度感

整个团队非常努力地把眼球和面部连接起来,包含一条泪腺- 几何学上的新元素,并且是透明的。她的眼睛有屏幕空间涉嫌追踪的阴影,所以没有添加阴影地图。同时她的眼球上有一个眼睛“保护壳”,会一直处于眼睛上方,无论眼睛如何移动。这可以提供一种阴影感,而且当眼球跟上下眼睑接触时会产生一种模糊感,如果没有这个的话眼睛会像是机械式的(见下图)。这个“保护壳”有一个深度限定,从而可以避免眼睛上下看时不合适的“眼睛凸起”。

Four samples of the eye improvements each step added, especially the refraction in this side view.

 

几何学上另外一点是连接泪腺和眼球的一个混合界面,它将颜色和常量都混合起来从而在泪腺周围将眼睛连接起来。

 

最终的实时眼睛效果是惊人的,许多人表示虚拟人物阿凡达和其他一些形象的眼睛都是死的,但是在游戏开发者大会上,EPIC团队创造出的这个结果是令人振奋的(即便是以非实时的标准来判定)。

前部的进展

面向未来

实时系统的一个有趣的点是它可以通知演员。Melina Juergens不仅可以看到自己的表演而且可以使用这个系统,这如同一个演员对着镜子彩排一样,而且不会对系统造成太多滞后和拖延。即便没有化妆,她也可以在系统里看到自己穿着游戏服以及全部的妆容的样子来进行演练。Antoniades表示:“我希望开发更多,比如建立一个洞穴,就像ILM洞穴(ILM-XLab),这样她就可以走进去,在洞穴/房间内环顾四周,看一下野火或是周边的风景。这样的系统可以通过一个她头上的动态追踪器来调整实时投射的周边环境- 根据角度来做相应调整。”

VR

自从游戏开发者大会之后,Ninja Theory就把Senua实时样本放到在Oculus Rift头部跟踪系统的VR中运作,“当她看到相机-看到你,她的眼睛追踪器跟头部的略有不同,然后她的眼光就会汇聚到她认为你在的地方,如果你走的离她面部很近,她的瞳孔会放大-这是非常有效的” Antoniades解释道:“我当然希望保留所有的原始表演,但是我觉得还有很大的调整余地,比如Senua通过动态跟踪器可以跟你并肩行走,而且跟你步伐一致,如果你停下来跟她说话她也会停下来并盯着你看。”

Rig Logic工具

Rig Logic工具在3Lateral发生了很大变化,从最初的只是位于Maya内部到现在独立出来,可以独立的把直接的动漫动态信息传输到UE4。

 

 

 

 

 

 

 

 

 

 

对于Rig Logic工具的下一个进化目标是让它在不是本地的cloud里运作。这样的技术可以允许手机或是VR头罩得到一系列指令,而在别的地方完成计算机程序化过程。它可以把面部的数据以最小的容量直接传输到引擎。“虽然这一想法很新颖,但是我觉得未来肯定大有用处,尤其对于我们现在在开发的角色数量产生系统这一块,可以把整个模型-基本的表达,所有的面部表情,所有的一切 (变成一个很高效的数据形式)以很小的容量展现却能涵盖整个角色特质。比如,这样就可以生产出成千上万街上行走的人,这也是我们在近期所在积极筹备的。” Mastilovic解释道。

形状融合变形器对比骨骼(Blendshapes vs. Joints)

历史上,当然也有例外,游戏设计者使用过joint的面部模型,电影团队用过形状融合变形器blendshapes。3Lateral非常高兴在RE4中使用了新的形状融合变形的方法,Mastilovic依然相信公司的新技术和方法仍然有将面部做的更好的潜力,“这个UE4版本可以轻松实现形状融合变形,这是非常棒的,但是95%的案例表明Joint技术对于引擎来说更加有效。但是随着VT和AR需要更高的帧率,我们又开发了新的可以把形状融合变形器转换成骨骼的技术- 变成一些列不固定数量的joint,然后再把这些变成模型逻辑需要的编码- 这样我们既有Blendshapes的高仿真度,也有Joints的高效性。”

在对比Blendshapes和Joints是有很多需要考虑的因素。使用Joint为基础的系统可以有很多益处- Blendshapes是空间直线这样导致通过Blendshapes的唇部周围的动作会看起来很假-因为这些直线的转换-而嘴巴的移动更多通过弧线而不是直线,所以说Joints可能会更好。过去如果想做到肌肤下隐隐的肌肉线条以及在游戏引擎中良好的肌肤的是非常难的,但3Lateral解决方案可以解决很多这样的问题。

次级运动

目前游戏开发者大会上的现场表演仅仅是由动态捕捉数据流来推动的,所以还是又在现场表演中添加其他输入数据的可能的,如果在模型中加入次级运动可以实现眼泪按要求堆积变大,或是眼睛展现出慵懒的申请或是受伤,而这是在离线的状态下可以实现的。

这也可以实现加入肌肤同步的版本,肌肤同步是计算机方面非常昂贵的。但几乎是以同样的方法肌肤同步在离线表演渠道中被添加到了行动追踪之上。3Lateral可以为表演添加一个额外的输入因素 – 即便是现场表演也可以。

Mastilovic说:“你iphone上的一个滑块都可能影响现场表演。” 3Lateral有一个展示的样本(不是在数据堆里的),里面一个女演员看起来很难过,“在这时我加入了一个微笑。”这两个看起来很相反的情绪,模型逻辑系统把这个表演更加有吸引力,“这变得更加强烈了,我觉得因为她尝试在泪水中微笑,这个对比很有趣。” 他解释道。

本质上,“我们可以把我们的模型分解到小的joints,计算出皮肤,并保留99%的来自Blendshapes的变形,在我们希望应用joint为基础的二阶运动的地方,我们可以创造一个动态的子骨骼,并通过计算皮每个表情的皮肤张力来控制表情的减弱。” Mastilovic解释道,对于任何面部表情,Rig逻辑可以把降低的数值传递给任何面部表情的joints,从而可以形成更加真实的效果。

“我们知道现在有很多多样的方法,但是这个方法效果很好,而且跟现今的游戏引擎很匹配。”

fire

身体

Senua的身体是相对简单的部分,因为很直白,而且都依赖于Xsens的原始数据和IKinema的引擎身体解决方案的最新的实时数据,Xsens有17个感应装置,只有一个位于演员的头部,大部分身体模型都是现成的软硬件,现在都已经可以在市面上找到。

Ninja Theory的Melina Juergens穿的Xsens身体设备都是无线的,但是在游戏开发者大会上外套是连线的因为有“商业会展影响”的风险,但是这并没有对演员造成什么影响,因为她大部分的表演都是在一个很近的展台上并没有什么很夸张的表演。

来自Xsens感应器的数据被通过IKinema传输到Epic的虚幻引擎4(UE4)。Xsens的娱乐产品经理Hein Beute跟fxguide说一旦你有了数据但还是需要重新定向到CG模型,“这就是为什么我们喜欢IKinema-因为他们可以很好地直接将数据重新定向到最终的角色身上。”

IKinema之前跟Xsens数据流合作开发了U4插件,所以某种程度上Xsens和IKinema为实时人体模型的心动脸部模型添加一个身体,这意味着把Juergens’的Technoprops脸部数据流和Xsens感应器的数据流在UE4里结合起来。

IKinema的CEO Alexandre Pechev 解释道:公司在2016年游戏开发者大会期间同步发行了他们的软件的第二个版本。“这个新版本可以实现在不真实引擎中直接进行设定和设计,过去要建立一个管道系统你需要Maya或者Motionbuilder来设定好对于身体的解决方案,然后把这个作为一个模型传输给虚幻引擎,但现在我们的新版本可以实现直接传输数据到虚幻引擎。”

这个管道网设计流程现在都简化了:一方面有抓捕数据的硬件感应器,另一方面是游戏引擎和人体模型生成,直接地图设计是很新的并能实现更简单快速的管道图设计。

Capture2

Ikinema完成了身体部分来自Xsens的数据重新定向的任务,IKinema可以运作角色而不管任何来自硬件的FK或是身体数据,原始数据然后可以“运行特征向量,然后我们用我们的解决器来产生对于脊柱和脖子更加自然的反应。” 因为角色的脖子和上身没怎么被衣服覆盖,团队同意Senua的脖子动作将是至关重要的,鉴于只有头部有感应器,没有很多角色脊柱的数据可以使用。但是令人惊奇的是IKinema系统还是做到了解读所有数据并解决了脊柱,肩胛骨和头骨定位的问题。
所以Xsens的17的感应器可以提供他们自己的身体解决器,IKinema仅仅通过原始的来自以下部位的骨骼数据来解决身体问题:

  • 手部位置
  • 双脚位置
  • 帽子 (只有一个头部追踪器)
  • 屁股位置

其余的工作由IKinema动态捕捉器完成,Xsens数据由IKinema解决器转换成一个运行模型,可以操控整个身体的模型,再结束基础的重新定向后,有另外一个解决器有节点可以帮助修改捕捉到的惯性数据,“我们有很多节点来自于解决方案可以用来提升数据质量,例如,我们用一个过滤器来除去所有的可能来自MoCap数据的噪音和瞬时故障。” Pechev评论道,在整个过程中,IKinema生产了人物的整个身体不包含面部,面部是随后在UE4游戏引擎中被另外添加的。

Xsens在游戏开发者大会开始前两个月才首次被邀请参加的,Xsens自己的观点来说,这是一个很标准很好理解的生产过程,因为Xsens就是设计做实时动作捕捉的,“加入我们的系统其实很简单-毕竟我们经常做这类工作”, Beute开玩笑道,我们之前在fxguide被报道过,我们只需要几分钟来组建,而且这个Rig任何人都可以用,不需要改进或是调整。
Xsens的Hein Beute说,对于Xsens团队来说跟IKinema组建结合并让新系统无缝隙同步运作是一个新的概念,几个星期前他们最初从Ninja Theory收到测试动态捕捉的文件,IKinema团队然后组建一个模型几乎是立刻就给Ninja Theory发回了结果(这个模型仅需要10分钟来组建)。Ninja theory审查了模型并提供了回馈,比如关于肩膀看起来怎么样,反馈做完,最终的文件以一个UR4文件形式发回去了,“那之后身体只是可以运作,我们这边觉得这是一个很直白的工作,在不真实Unreal如果有实时数据,任何一个艺术家都能把它在几分钟内组建好。”

总结

游戏开发者大会上的样本非常让人印象深刻,但是这是仅仅在8个周内完成的成果而且没有任何一个参与方有重大的软件上的技术改进,更像是各合作方的一系列的改善和对质量的追求的成果,这是有重大意义的,我们看到的这样高质量的工作是许多主要生产方共同合作的结果,虽然目前对于实时反馈的技术并没有这么先进,但是这种合作模式向我们指明了未来,在未来几年内这种方式会被更为广泛的应用的。

本站已委托维权骑士进行维权,禁止一切形式的转载。
翻译校对难免会有纰漏,欢迎指正。
加入CG小宇宙Slack平台点击 交流