【GAD翻译馆】黑暗之魂3(DARK SOULS III) 黑暗幻想特有的照片真实视觉的实现

发表于2016-11-28
评论28 5.69w浏览

  本作黑暗之魂3是以PS4,Xbox One等本世代机硬件规格为目标而开发的。最大限度的活用图形性能,集合了各种技术和制作上的技法,绘制出了超出系列传统的黑暗之美的世界观之上的表现力。

  原文 CGWORLD 


系列最新作的照片真实表现技术

  From Software开发的黑暗幻想RPG【黑暗之魂】系列的第3作【黑暗之魂3】。以他们古老的作品【KING'S FIELD】和【恶魔之魂】为源头,独自进行的研究和开发。而本作中,以是否以采用以重新作为制作人的宮崎英高的系列来制作为轴心,以【更加深入的挖掘每一个要素】为概念来方针来进行开发。与同样是公司开发的PS4专用游戏【血缘诅咒(Bloodborne)】(SCE)的有意识的作出差别化,服装制作上,对应【血缘诅咒】的布料,本作中是铠甲,对黑暗幻想而言也是有趣的差别。

  在开发的初期阶段,游戏区域的相关构想和概念艺术的制作并行的技术验证结果,也可以在内部制作的渲染引擎中修改。在前作中为了限制负荷使用的简化计算的PBR在本作中也替换成了正确的高精度的版本,输出画面的动态范围也提升了。非常被限制的使用IBL(ImageBased Lighting)和环境贴图(Ambient Map)制作的镜面反射的表现,在本作中也可以在全部的几何体上使用,来制作出更加真实的表现。

  在多平台的对应上方面,因为PS4Xbox One两个家用机都采用了和PC接近的架构作为平台,相比PS3世代开发要变得容易了。尽管如此,本作也不能每个硬件也不能都实现,而是在把范围内的玩家共通化的来划分,在不同的硬件上做出最高性能和品质,以寻去平台参数和资源上的最优化。在接下来的介绍中,来看下具体是如何在幻想的虚构中追求真实的视觉的。

 

Boss级的生物

  在【黑暗之魂3】中丰富的Boss里,特别介绍一下美术的方法显著的部分。每个生物也有认真的来制作,给予了各自的个性。

 

结晶的反射表现 贪吃的结晶蜥蜴

  在游戏过程中,会多次遇到的【贪吃的结晶蜥蜴】的身体表面,被镜面反射的结晶体所覆盖。为了可以保证结晶体暗部的表现也加入了自发光。图A是结晶部分的Texture,图BTexture着色的模型,图C是没有自发光的效果,图D是加入自发光的。图E最后结晶体的表现,增强边缘反射强度的模型部分,是把预先在场地摄影的素材加工制作的环境Texture贴上后来表现的。可以看到轻飘飘的布柔软飞舞的动画表现出了神秘冷酷的Boss的印象。


玄奥的幔帐表现,冷冽谷的舞娘

  Boss【冷冽谷的舞娘(A)的身体上覆盖着面纱,是美术师通过手动调整来使用面纱Shader。面纱自身的模型是通过Tessellation来自动分割,图B是关闭Tessellation,图C是打开Tessellation。动画方面使用的是物理引擎Havok的全局模拟Runtime,调整参数对面纱产生微小的重力影响。通过像面纱一样的飘舞布料飞舞的动画表现,来对应神秘冷酷的Boss印象。构成面纱的多边形边缘的发色绘制也是Shader的效果。

 

身体表面的流体表现 灰烬审判者一古达

  战斗的后半段,灰之墓场的Boss【灰烬审判者一古达】的身体被咬破出现异形的手腕。就像爬虫类的嘴一样的手腕向玩家袭击(图A)。与用金属质的全身盔甲包裹的古达对比,可以说极端生物形态的异形的手腕的表面是爬虫类的皮肤。就像是不同生命体一样的波动。这种身体表面的表现,使用的是顶点偏移(Offset)和FlowMap(图B)来做动画的方法。图C是实际的在真机上的身体表面流动的效果展示。当初也打算使用DisplacementMap来表现波动的立体感,但因为负荷高帧率太低而放弃了。

古龙之顶场景

  【黑暗之魂3】新的挑战,可以说是【古龙之顶】场景。很多场景都被茂密的黑暗所包裹,而它和其他场景有很大的差别。

 

系列最初的开发室外场景

  本作中感觉广阔动态范围最为显著的,就是古龙之顶的场景。这个场景是有着系列以前没有的那种亮度的明亮区域。 FromSoftware的渲染引擎是自研的,并不是全都是自己负责,必要的也对应外部的中间件来制作。GI光照,使用的是Autodesk中间件Beast来实现。图AShadowMask,图BGI部分,图CDLightmap,图E是关闭Lightmap的真机画面,图F是实际的真机画面。

 

 

使用Havok物理引擎给予跃动感的【无名之王】

  【古龙之顶】场景的Boss是【无名之王】。巨大的暴风一样的龙的羽毛是用Jiggler来制作,通过Havok的物理引擎在运行时来模拟动画。Havok的行为Jiggler,是像弹簧一样的运动的动画设定,这样行动会有微秒的差异,本体的动画有稍迟运动的特种。羽毛整体使用了Cloth设定,作着像布料一样的举动,根部细小的羽毛的柔软运动使用布料,而长的羽毛和硬的动作使用Jiggler,这样组合使用实现了巨大的龙的庞大规模的羽毛。图A是没有使用Jiggler,图B是使用Jiggler


通过光源影响生成很大变化的阴影

  角色,生物等动态物体对象的阴影,为了能和烘培到场景里的阴影融合而加入了精细的技法。 在同一个阴影中,通过Contact Hardening Shadows(CHS),以ShadowCaster的深度方向,总之就是从脚到头和剑端的顺序来绘制阴影的模糊,为了减轻artifact,使用基于屏幕空间的模糊技术,来提升阴影的品质。图A是关闭CHS,图B是打开CHS,图C是静态阴影和动态阴影没有融合的表现,图D是静态阴影和动态阴影融合的表现。


磔罚森林场景

  美术师最头疼的是【磔罚森林】这个场景。在水面上生长的茂密树木上增加水栖生物,这个场景的视觉表现要素变得非常的多。

 

森林树木投下的暗影和湿地的水面表现

  湿地的水面生长的树木茂密的真实表现的就是磔罚森林。把简单的Shader利用低分辨率的Texture运用在水底,实现了像在水中一样的表现,同时降低了渲染负荷。把SpecularMap生成的反射的高光部分,用NormalMap给予水面波浪的表现,再用预先拍摄完成的环境贴图来加入反射,以及用实时的阴影来制作树木阴影(图A)。还有就是水面上生长的茂密树干和没入到水面里的部分所产生的锯齿不会太明显,加入了光滑绘制技术的Shader。图B是使用Texture着色,实际的水面和地面就会变得有分界线,图C是真机的画面,可以看到水面和地面的分界线变得光滑了。

 

正统方法认真造型出的巨大螃蟹

  场景Boss等级的造型看过后,作为强敌的中等Boss等级的生物模型也可以很厉害的。这里介绍的螃蟹是包含甲壳的凸起物的模型,制作了约6万多边形。不影响轮廓表面的起伏是雕刻制作NormalMap来使用(图A),开口部和身体表面下垂的体毛是用平面多边形来绘制的AlbedoMap来表现(图B)。图C是没有Albedo的模型,图D是没有AlbedoNormal的模型,图E是完成的模型。并不是特别新奇的表现,但可以看到都是以高基准认真的来制作的。用螃蟹步高速追尾玩家的动画,虽然滑稽但有很痛的伤害的预感。可以说是完成了给予玩家很高紧张感的生物。

 

湿地区域和玩家角色的交互

  玩家角色与在水面上进行动作,全身颜色的亮度会下降同时镜面反射变强,实现了水润湿的外观变化的表现。图A是通常的表现,图B是被水润湿的状体。湿润方式是用高度来控制(图C),从脚步到头的方向。图D是顶点颜色和纹理上保存的值的显示。这种变化是在Shader等级上系统化进行,随着事件的经过,角色从头向下恢复成原状。


洛斯里克的高墙

  操作感优先的结果,是每个场景比【血缘诅咒】更大,玩家运动的范围也同样扩大了。那么维持性能和品质的秘诀是什么呢?

 

使用Simplygon3阶段的LOD模型

  在场景模型的制作上,使用了减面工具(reductiontool Simplygon,对生物,场景都准备了3个阶段的LOD模型。图ALOD Level0,图BLOD Level1,图CLOD Level2。因为各阶段的LOD模型是Dither Fade的方式来切换(译注:类似UE4使用animated dither pattern在不同的LOD之间做平滑的crossfade),在游戏中玩家注意到LOD处理模型发生变化的情况也会减少。因为要在广阔场景配置很多的生物性能而不能降低性能,光用模型LOD是不够的。在内置游戏引擎里,在开发阶段给予【是否进入相机的视角】,【用导航网格检索和玩家位置有相当远的距离】这些条件,实现通过系统判断控制不必要的生物动作的功能。

 

UE4:Dithered LOD Crossfades

 

幻想质感的表现

  地板和岩石,表现场景立体感使用的是ParallaxMappingParallax Mapping,是用HeightMap来生成物体表面的起伏高度的基础上,再通过相机视点的向量和Normal Map来得到法线向量,对应交叉时的角度来移动纹理,是可以得到更加自然的立体感的方法。以墙壁的装饰品为例。图A是只有模型的,图B是没有颜色的,图C是有颜色的,图D是打开Parallax Mapping的,虽然还是疑似的立体感表现而已,但是很实用的方法。比Parallax Mapping更加高品质的方法就是DisplacementMapping,但在现时代的家用机上,Displacement Mapping的处理还是负荷很大的,本作的实现可以说是妥善的处理。



表现古城氛围的Interior Shader

  通过破旧的窗户玻璃来表现屋内使用的是Interior Shader。通过窗户的玻璃可以看到内部建筑物的构造,在实际的场景空间里并没有模型。空间中存在的只有玻璃窗的多边形,建筑物的内部空间实际贴的是从别的场景或接近的场景里预先摄影制作的纹理来表现的。出去玻璃窗的绘制,在Interior Shader里参考静态的纹理,根据玻璃窗的模糊与扭曲加工成模糊的室内环境来绘制。图A是没有纹理的扭曲,图B是实际的游戏画面,图C是颜色贴图,图DShininess贴图,图E是法线贴图,图F是反射贴图。还有在绘制时会根据视差进行修正,这种意义上也可以说是视察贴图的扩展版。


  译注:这种模拟的室内渲染的方法可以参考

  https://simonschreibt.de/gat/windows-ac-row-ininite/ 这篇链接,像在刺客信条3,生化奇兵:无限,守望先锋里都使用了这种技术。

  刺客信条3

   生化奇兵:无限

   守望先锋


各种内制的工具群

  量产高品质游戏的From Software的优势,不光是游戏引擎,还有包含了周边的开发工具群,全部细节部分可以自己自由的来制作这一点。

 

可以摸索独特表现的Shader创作工具

  玩家角色的身体表面,接受神秘的生命能量时会有橘黄色的光流动(图A)。这个是使用获取薪王之力的道具【残火】时的Shader表现(图B)。在【黑暗之魂3】中先以这个残火的表现为首,为了用Shader特效实现浸水和装备破损等状态的变化,准备了面向美术师的内制的Shader创作工具来制作专用的Shader。这个工具是基于节点的编辑器,把给予Shader影响的要素进行组合,美术师自己就可以进行各种调整。残火的表现,在实际游戏中就像图C那样,加入模型和Normal Map,从世界法线取得边缘,不光是在身体表面有橘黄的光环绕,边缘也有一定范围的闪烁控制。这种Shader创作工具使用的场合,并不只有玩家角色,之前介绍的生物或场景内的各种Shader表现是也有使用。


自由的生成个性角色的制作方法

  极端的定制化被限制了,表情模板上采用了FaceGen也是,角色制作的变化在项目中是涉及多方面的。头发风格上使用用颜色贴图来控制颜色(图A),参考向量图(Vector Map)的RG值来判断毛发的方向。沿着毛发的流动,镜面反射(Specular)强度和偏移(Offset)位置也会变化,毛发的高光的进入方向也有变化(图C)。在很多游戏里男女准备的不同的基本模型,而本作里头部是男女通用,头部以下用的是体形不超出范围的另外一个模型,根据参数来实现性别和体格的差别。


过场动画的制作工具MovieSequencer

  在From Software内部,已经反复升级版本使用了5年以上的,急速内制的过场动画编辑器【MovieSequencer】。构成过场动画的要素,3D模型,动画,相机动画是用3ds Max场景制作资源数据。2D特效,文本信息,声音等3D以外的要素的播放时机的控制数据,是与在MovieSequencer里基于Timeline的来编辑的。工具窗口右上的面板可以确认素材,过场动画的运行确认是可以把MovieSequencer和开发器材联动进行。还有,本作中MovieSequencer和引擎都做了改良,实现了可以继承过场动画的镜头最后的状态返回到游戏状态的功能,但考虑到好的心情心情更加重要,只在一个地方使用了。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引