从1974年开始,SIGGRAPH每年都会举办一次年会,从1981年开始,每年的年会还增加了CG(Computer Graphics,电脑绘图)展览。每年,绝大部分计算机图技术软硬件厂商都会将最新研究成果拿到SIGGRAPH年会上发布,大部分游戏的电脑动画创作者也将他们本年度最杰出的艺术作品集中在SIGGRAPH上展示。因此,SIGGRAPH在图形图像技术、计算机软硬件以及CG等方面都有着相当的影响力。
Siggraph是世界上影响最广、规模最大,同时也是最权威的一个集科学、艺术、商业于一身的CG展示、学术研讨会。历年大会都有丰富的成果展示,比如现在很流行的象素、图层、顶点等概念,最初都是在Siggraph上发表的学术报告;而AMD,NVIDIA,ADOBE等厂商也都会选择在大会上宣布软件更新的一些重要信息。
本文的一些主要观点,来自于2015年的SIGGRAPH大会上,动画研发工程师Witawat Rungjiratananon所做的演讲。Final Fantasy XV (xbox one and ps4),以下简称FFXV。
演讲者介绍:WitawatRungjiratananon,东京大学毕业后,加入了SQUAR ENIX的第2商务事业部,现任SE的自研游戏引擎Luminous Studio和FFXV的物理模拟设计开发人员。
Rungjiratananon在东京大学时所学专业为物理模拟和动画技术,从事游戏行业后,感到即使是处理同样的主题,学术界和游戏行业的思维方式和做法也有很大不同。所以在这次演讲中,他发表了一些从学术界转型到游戏业界的感想,在介绍FFXV开发项目中携带的技术时,也基于这种复合背景做出了独特的解读。
游戏研究文化:学术界和产业界的不同
学术界,是选择要研究和解决的主题,以能把研究结果发表出来作为成果驱动的世界。
游戏业界,开发团队以想要做的事情为目标,为了实现目标一边参考已有的论文一边开发新的技术,是在游戏和游戏引擎中加入研究成果作为驱动的世界。虽然游戏业界的研究成果也会形成论文发表,但发布论文并不是目的,最终还是以在游戏里实现研究成果为目的。而作为游戏业界研究开发特征之一的,就是“美术设计师的存在”。
在游戏业界,无论开发出多么优秀的技术,都是要通过美术师来制作成果的,如果引擎团队开放的新技术,美术师并不方便使用的话,就无法把研究结果反映到游戏里。因此,为了满足美术师的要求,可以使用开发的新技术也需要配置方便使用的UI。开发的新技术,要由美术师使用才能生效。
另外,实际呈现不准确也可以,能表现出想表现的内容是最重要的。这也是业界和学术界不同的部分。游戏为了最终看到视觉效果,加入欺骗或造假也是允许的,而学术研究领域必须要求正确呈现,这其中有着非常大的差异。
对资源限制的严格这个问题,在游戏技术里也存在。游戏中,需要实时运行开发的技术,CPU和GPU的演算资源,并不能全提供给这个技术使用。AI和图形,以及其他要素要共用计算所使用的资源量。总之,新技术必须要满足以下条件:在和其他使用计算资源的游戏要素一运行时时,也可以使用。
游戏业界的“新技术开发”,并不要求物理的正确,而是要有说服力,看起来足够好。这样理解的话,游戏业界的新技术开发,必须在各种各样的限制条件中来解决。
FFXV的布料模拟和毛发模拟
接下来的话题是,FFXV中导入的物理模拟。
首先,我们对FFXV中的【布料模拟】(Cloth Simulation)进行一个说明:
布料模拟,到底是基于顶点还是基于骨骼来实现?FFXV选择了后者。
布料模拟在通常情况下,一般的实现是:对生成对象的布料模型(例如衣服)的低多边形版本的模型,在顶点单位上进行模拟的方法。但是在FFXV里,为了模拟出角色运动时会翻弄布料的效果,在牺牲一些物理上正确规律的同时,可以按照美术师的想法来运动,采用了在布料里加入骨骼的“基于骨骼的模拟”的方法。
对采用这种方法的理由,Rungjiratananon解释是“SQUARE ENIX的美术师更习惯在3D模型里配置骨骼“。美术师想要运动的要素,要预先准备好。
实际的FFXV中,把物理模拟的真实结果,通过美术师以演出为主导来做Fake,取得运动平衡来表现,导入了像【0.0:软】,【1.0 硬】这样的骨骼运动的控制的正规化参数。另外,也加入了把实现准备好的手工制作的动画,与基于骨骼的物理模拟的结果做合成的方法。把模拟的结果,通过美术师手动修改来取得表现平衡的结构也被导入了。
毛发模拟也是,导入了很容易反映美术师表演意图的结构。关于毛发模拟,实现了头发随风的飘动,激烈的战斗动作中的摆动,这样柔软的毛发运动。另外,因为也有"角色特有形象"的漂亮发型不能破坏的“维持发型”的要求,和布料模拟一样,实现了通过骨骼来模拟毛发的运动的结构。
毛发是通过物理模拟来实现真实的摇摆,但无论任何情况下,角色的发型不能崩坏(在真实的物理环境中,这不可能)。而且FFXV里,也需要对应美术师方面手动调整的要求。
为了同时支持模拟毛发运动和维持头发风格这两个需求,在毛发模拟上,导入了可以灵活控制的【柔软毛发的约束条件】和【坚硬的毛发的约束条件】来对应不同的环境情况下的要求实现了可以让毛发变得柔软或坚硬的灵活的系统。
使用这个系统时,当角色接近静止状态时,要维持头发风格,毛发就要变得很硬;而在运动时,为了一直让角色保持漂亮的造型,就选择让头发风格崩坏,这样更容易受到毛发模拟的控制。在物理现实中,毛发是根据负荷移动和风力来摆动,运动对发型一定会有影响(这是学术界的态度),但在游戏业界,必须要重视角色的形象,优先考虑漂亮的毛发运动而无视物理法则是在商业上很合理的。
根据角色的情况,变成【维持发型的硬的头发】或是【摇晃的柔软头发】。
本文作者:Garfield,现任职于点融技术部Social团队,游戏引擎 tyo Engine 及 tyo Engine Revolution作者,对尖端渲染技术拥有浓厚兴趣,曾就职于多家游戏大厂参与游戏引擎研发相关工作。