【SIGGRAPH】用【有说服力的照片真实】技术实现最终幻想15的视觉特效
原文:西川善司
最终幻想15的演讲会场。相当大,听众非常多。
在本次计算机图形和交互技术大会【SIGGRAPH 2016】上,和游戏相关的CG技术解说方面上,SQUARE ENIX有很强的存在感。这个计划于2016年9月发售的【最终幻想15】的制作相关的会议,很多人都预订参加了。对于外海也有很高关注度的FFXV,有可以了解开发内幕的机会,多数的游戏开发者当然不会错过的。
这次报道的是,最终幻想15会议之一的【Visual Effects of Final Fantasy XV:Concept,Environment and Implementation】(最终幻想15的视觉特效,概念,环境与实现)。
演讲者是SE的第二商务部的高级程序员長谷川 勇氏和负责实时VFX的主管小山正彦氏,以長谷川氏和小山氏按自己负责部分来交替说明的形式来进行演讲。
此外,本次报道中的画面和动画,还是在开发中的内容,也可能和实际的游戏有所区别。
長谷川 勇氏(高级程序员,SE第2BD)
小山正彦氏(实时VFX主管,SE)
会议分为了3大部分
以实现有说服力的照片真实表现为目标的FFXV的视觉特效
FFXV的视觉特效,是以追求照片真实来制作的
首先登台的長谷川氏,对FFXV的图形开放概念【说服力高的照片真实表现】做了说明。
長谷川氏提到,FFXV,是以现代场景和幻想场景共存的世界为舞台的幻想RPG游戏,描绘出的游戏表现都是幻想出来的。但是,世界中真实的火和水,以及烟雾等现象,以及光那样的能量的处理,是完全和现实世界一样来描绘的。
比如,魔法产生的火即使是虚构的,但出现后还是会蔓延,火焰的光也会照亮周围,和现实视觉的物理现象是一样的,这也是为什么要在绘制上这么讲究。
即便是魔法攻击产生的火焰,视觉效果也要和现实的火焰一样的绘制
FFXV的特效视频展示
基于物理渲染(PBR)和线性工作流(LWF)以及高动态范围(HDR)这些关键词,在FFXV的特效上讲究的要点
另外小山氏这边,对FFXV的渲染管线对基于物理渲染(Physically Based Rendering,简称PBR)中,线性空间的亮度值(颜色值)的处理做了说明。
这里提及的线性空间,是不考了显示器的配置(亮度),与现实世界的物理等价的数值表现体现。事实上的高动态范围(HDR)渲染也是的。
这种渲染管线的线性空间处理方法,在电影和CG的用语里也叫做【线性工作流】(Linear Work Flow,简称 LWF)。FFXV的特效也是全部是用LWF来制作的。
FFXV的特效也是全部是用LWF来制作的
【关于FFXV的PBR和LWF的效果,最生动和有代表性的材质就是"水"了】小山氏叙述到。
要正确的表现水的效果,需要镜面反射(Specular),透明度(Transparency)和折射(Refraction)的3个要素。在PlayStation 4世代的游戏开发中,是把透明物体和不透明物体区分,并且一边在保留镜面反射的同时一边降低透明度来制作表现,提升水表现的真实度。
FFXV中水花表现的视频
这里是强制静止的,实际是可以看到水散落和真实运动的。折射效果和镜面反射的高光也很显眼
FFXV的视觉特效制作方针
接下来小山氏,对开发团队在视觉特效(VFX)的完善方法上做了解说。
FFXV的开发团队里的VFX美术师傅也是有多个人的,每个美术师都可以从零开始委托制作视觉特效,每个人的做法也不一样,要全体的统一也很难。所以,首先是公司内部开发了个人的基于节点的VFX制作工具,让理解工具规格的成员制作预设(基本的风格)的VFX,在基于这些让每个VFX美术来组成节点制作效果,彻底的贯彻了这样的流程。
这里说道的节点,就是下图中一个个的功能块。
每个VFX美术师,核心成员小山氏制作的预设VFX,来组成特效。
全体VFX美术师并不是都精通这套结构,考虑到稳定的品质保证和制作效率,这样的制作风格是很不错的,小山氏回顾到。
基于节点的VFX工具使用的相关问题和对策
在FFXV的开发中,虽然采用了基于节点的VFX制作工具来制作视觉特效的方式,但还是遇到了一些问题。
例如,冻结特效会大量产生多个物体对象,结果会让特效规模变的很大。还有在特效性质上,短时间内产生和销毁这样多次反复的情况很多。
大量的复数特效产生和销毁的演示
大量特效一瞬间出现和销毁。
大规模的特效会消耗很多内存,在短时间内反复生成和销毁的情况下,特效的启动和关闭会成为overhead,最后的处理负荷也会变高。FFXV使用了2种方法来处理这种问题。
使用了【Grouping】和【Formulation】做为解决方案
大量生成的特效和生命周期短的特效会引起的问题
1个方法是【Group化】。对于大量生成的特效,把构成特效的节点群分组来管理,按组来生成和销毁的处理,来改善内存的利用效率。
通过Group化来改善内存的利用效率
第2个方法是【公式化】(Formulation)。这个是把特效内包含的复杂节点结合,可以理解为把复杂节点合成1个【虚拟节点】来管理。把多个节点用1个虚拟节点来处理,这样就减少了无用的启用和销毁处理。
通过公式化,把大量的节点用虚拟的1个节点来做处理
FFXV的视觉特效中采用的程序化纹理
FFXV的视觉特效中,一部分也采用了程序化纹理技术(Procedural Texture)
小山说明到,在FFXV的开发中,也致力于解决以前日本游戏开发中没有怎么挑战的新主题。这个就是【程序化技术的使用】,FFXV中的一部分视觉特效使用的纹理,是采用程序化来生成的。
FFXV中,视觉特效使用的一部分纹理,并不是美术师手绘而使用软件的算法自动生成的。
具体的,攻击特效和Lens Flare这些,面积比较大的特效使用了程序化纹理。向画面整体的广阔范围扩展的纹理,因为手绘的原始分辨率扩大和缩小,表现品质会可能会下降。但程序化生成的纹理,无论如何的大小都可以生成没有伪和感的纹理。动画纹理也是一样,程序化生成的话循环和重复表现也不会很明显。
魔法的电击和闪光的表现,或是lens Flare等效果,都是程序化纹理技术的示例
当然,并不是所有的视觉特效都可以用程序化纹理,以前那种连续画像预先生成的动画纹理FFXV里也有使用。
例如,前面动画里演示的水花的动画纹理,就是连续图像的粒子。虽说如此,“但不之是半透明的Billboard,也包含了模拟水花特有的凹凸细节的法线向
量这种只有次世代机才有的内容”小山氏提示到。
水花特效使用的连续动画纹理的示例。但并不是1张图的排列,还包含了表现细微凹凸的法线响亮,在绘制时进行bumpmapping。
FFXV的特效制作使用的基于节点的工具,虽然笔者以前也听过,但并不知道还使用了程序化纹理技术。这个会议可以说是让FFXV【大概使用了全部的近代图形技术】这点变得清晰了吧。