为了解这些初出茅庐的开发者如何创作出如此迷人的极简主义画面,我们联系到了团队的几名成员。Piccolo的开发者们谈到了他们如何在游戏业之外寻找灵感,尤其是吉卜力工作室和迪士尼的经典动画电影。他们介绍了自己关于如何运用色彩和形状表达不同情绪的理念,还深入讲解了他们如何创作出这款游戏创新的时间倒流机制,它允许玩家操控时间的正向和反向流动。最后,他们还向美术师们介绍了自己的工作流程,并说明了他们如何创作《Arise》的光照、视觉特效和动画系统。
(本视频转载自YouTube:视频原址)
《Arise》具有极富想象力的极简主义美术风格,时而幽默,时而迷人,时而神秘。你们是怎么想到这种美术风格的?美术总监Jose Luís Vaello:在这方面我们考虑了多种因素。首先,我们要讲的是一个简单的故事,希望把这种简约转换成美术风格,但我们又不想让多边形太少或保真度太低。我们花了很多时间试验光照和气氛,因为那是真正确定游戏基调的元素。
我们的剧情也是非常感人的,希望在每个关卡都表达出情感【来引起共鸣】。如果在一个场景中添加的元素太多,你的注意力就会被吸引到一个个细节上,而不是去关注整体。因此,我们的每个关卡都采用不同的配色方案,但都有一个主色调。
最终的关键还是表达情感:欢乐、忧郁、悲伤,等等。这是一个自我约束的过程,尤其是在气氛阴郁的章节。在电子游戏行业,在预算和GPU处理能力的限制下添加尽可能多的元素来“丰富”视觉效果的做法是很常见的。
有没有哪些游戏或美术作品影响了《Arise》的画面?
Vaello:我们在打造自己的画风时,尽量不用其他游戏作为参考,因为我们相信,参考行业之外的作品能让我们的游戏显得更为独特。但我们自己毕竟也是游戏玩家,肯定会受我们玩过的游戏影响。我认为《Inside》就是对我们影响最明显的游戏。它也是极简主义风格的,但它的简约画风是下了很多功夫做出来的,而且它非常重视光照和气氛。
不过我们主要还是受传统手绘动画电影的影响。其中当然有吉卜力工作室的片子,不过也包括许多迪士尼的经典电影。比如《幻想曲》就为我们在画面上提供了很多灵感,它没有一句台词,是【用动画对象】配合【引人入胜的】音轨表达情感和叙事的典范。
另外,在动画和配色方面,我们也从许多皮克斯的电影中汲取了灵感,尤其是《飞屋环游记》,它有效地运用这些手段影响了叙事弧。
这款游戏具有独特的时间操控机制,玩家可以在一个环境中快进到春天,让积雪消融,露出底下的鲜花。让同一个关卡在不同季节下都有同样惊人的画面是否很有挑战性?
技术美术师Jordi Ministral:做这个游戏时最大的挑战就是环境变换。大部分游戏的环境是静态的,角色在其中移动,所以引擎都是针对这种方式优化的。我们的游戏正相反:我们只有一个角色,而且我们要动态地改变他周围的环境。在不同的章节,这牵涉到更新关卡中所有资源的变换,或者让一个网格体实时变形来表现一片积雪的消融,以及更新碰撞,等等。在另一些章节中,昼夜循环意味着必须有动态的阳光和动态的阴影。
让这些效果在主机上以良好的帧率运行是很难办的,我们不得不想出几条创作诀窍来实现。例如,我们所有的环境Actor都是禁用碰撞的,只有当物体处于玩家的一定距离内才会启用。这在时间流动会牵涉到几千个Actor更新的关卡中节省了许多CPU【循环】。
《Arise》具有各种各样的视觉效果,表现火、雪、风等。开发团队怎样实现这个游戏的视觉特效?
Ministral:这和前面的回答有关,既然我们的游戏方式包含了操控时间的机制,就必须让一切都能“倒流”。传统的粒子效果始终是正向移动的,在T的状态要取决于在T-1的状态。你不能让模拟实时快进到一个特定时间,因为那意味着让模拟从时间0一步步运行到你要显示的时间。所以我们最后创造出了我们自己的“可倒流”粒子系统,它使用两个不同的技术:
1) 如果你想要表现的运动可以用数学公式来表达,那就在顶点着色器中实现那个公式。坠落的碎块就是一个好例子,因为下坠的物体的位置是:
P(t) = P(t0) + V(t0)*t + (G * t2)/2
所以,有了基本公式,再加上对每个个体的一些巧妙随机化,你就能模拟岩石的坠落,可以让它在GPU上执行,还可以【简单地】通过设置T的值得到任意时刻的模拟。我们对简单地从起始位置向外发射的尘埃云就是这么处理的,对雨雪之类的环境效果也是一样。
2) 对于不容易用公式表达的复杂模拟,我们创建了一个系统,把完整的模拟烘焙到纹理中。然后着色器就对要表现的时间位置的相应纹理位置采样。我们以消耗一些内存为代价,获得了可以完全倒流的廉价GPU粒子,因为我们游戏的纹理很简单,所以这点代价【对我们来说】不是问题。
我们还有一个系统,将样条的位置和切线烘焙到可以在着色器中访问的纹理来驱动动画,因此美术师只要在编辑器中调整样条就能看到效果的相应变化。一旦你开始将纹理视作抽象的信息,你就能做很多创新。
游戏中的光照包括令人沉迷的太阳光束、泛光等效果,Piccolo Studio是怎么做到的?
Ministral:首先,我们只使用引擎提供的光照效果,这对我们已经绰绰有余。我们是一个小团队,我们认为应该把精力集中在创作上,让Epic去做他们最擅长的工作。
【我们做出的】最重要的决定就是把很大一部分GPU开销用于光照、体积雾和景深。考虑到主机平台的性能,我们知道自己用不起复杂的材质或大量三角形,还需要尽量减少绘图调用。由于我们采用了简约的美术风格,所以这是可行的。
这样一来,我们就必须设计一个工作流程,以便对光照进行快速迭代。我们需要让美术总监能够调整光照。问题是,对一个场景进行照明需要天空光照组件、定向光源组件、指数高度雾,等等。许多组件带有许多不同的参数,它们的组织方式从程序员的角度来看很有道理,但是对美术师来说就很难理解。
如果我想让场景中的阴影“多点蓝色”,就需要调节全局后期处理体积中的间接光照色调,但如果我想让场景的背景亮一些,我就必须调节高度雾的散射颜色,而这是关卡中的另一个Actor。光束会影响雾,但它是在定向光源中设置的。不仅如此,以《Arise》为例,如果所有这些光照都会随时间推移而变化,你就必须为所有这些Actor设置一个序列,添加所有这些属性的键,并且向美术师传授使用Sequencer的方法。就算你的团队很大,你请得起一个光照美术师,美术总监还是需要和他们对话,而有时信息就会在交流中遗失。
我们试过几种方法以后,设计了一个美术师能够学会的系统:我们设置一个Actor,它封装了与场景【的光照】相关的所有组件:天空光照、定向光源、雾,还有一个无边界的后期处理体积。我们给这个Actor提供了一个数据资源,我们称它为光源资源,它是所有这些组件的所有相关属性的集合。其他Actor实时从这个集合将数值复制到各组件。然后美术总监只需要打开这个资源就能调整数值并查看场景中的变化,他不需要关心每个属性属于哪个组件。这个资源只包含美术师能够理解的数值,因此他们能够对光照和氛围进行迭代,而不必了解组件或【依赖】技术美术。
有了这个系统之后,你就会获得良好的效果:场景的整个氛围都包含在一个资源中,因此你只需要复制这个资源,就能拥有光照的多种设置和备份版本。你可以在它们之间切换,查看氛围如何改变。你还可以在时间流动的起点定义一个资源,在终点定义另一个,在alpha数值上对它们插值。
然后我们又想出了光源体积的概念,它的工作方式与后期处理体积完全【一致】。当摄像机进入一个光源体积时,就把那个体积的光源资源的所有属性与关卡的默认光照进行加权混合,然后输送到底层组件中。最后我们得到的动态光源在空间和时间上都能让美术师自行调整,因此我们的迭代次数大大增加,结果也明显改善了。
最后,我们在光照贴图上下了很大功夫。获得既不会太暗、也不会太亮的微妙间接光照是很难的,需要进行许多迭代。光照贴图瑕疵和低分辨率缺陷通常可被纹理的细节掩盖,但我们的纹理几乎是没有细节的,所以对于光照贴图渗漏非常敏感。我们手动为每个Actor调节光照贴图分辨率,最后还更改了一些内部Lightmass设置,才获得想要的整洁外观。
无名的主角在环境中穿梭的方式,再配合季节给关卡外观带来的变化,真是令人着迷。团队是如何执行《Arise》中的动画的?
制作人Alexis Corominas:在动作方面,我们参考了克林特·伊斯特伍德。我们是他的忠实影迷,非常喜欢他那种不露声色、却用极细微的动作表现复杂的【极其微妙的】情感的表演。我们在为角色建模时给他戴上了手套,因此他没有手指,而且我们也故意没有给脸部做骨架绑定。这就逼着动画师只用身体语言来表现。
我们还设置了动画蓝图,因此对于状态机中的每种状态,我们都可以随机从候选列表中选择一种动画,而动画师可以在那个动画池中添加每个动作的变化。这使得角色给人的感觉更真实,因为他每做一个动作都会有一点不同。
我们有一些“个性”体积,会针对一个特定动作覆盖动画池。动画师可以将这些体积放在地图中,当角色处于体积内部时,他会播放那个动作的不同动画,更好地配合当时的情感。
我们还给每个章节设置了不同的闲散中断动画池,因为它们都要配合整体的情感。最后,我们认为让动画保持一致性非常重要,但也必须让玩家在旅途中的每个阶段都能感受到细微的差异。
《Arise》中比较明亮和欢快的关卡通常也比较简单,而比较悲伤和阴暗的部分难度都较大,可以说是巧妙地融合了剧情、游戏性和美术。能详细说说你们是怎么做到的吗?
Corominas:首先,对于每一章,我们都会确定一种我们想表达的情感。然后我们就思考各种合在一起能够表现这种情感的【设计】元素,【比如:】
形状:圆滑的形状看起来比较柔和,所以我们把它们用于“好”的回忆,而尖锐的边缘、高耸的墙壁和险峻的悬崖被用于“坏”的回忆。
色彩:我们用饱和的、鲜艳的色彩来表达积极和欢快的情感。对于悲伤和凄凉的时刻,我们使用去饱和度的色彩和比较统一的配色,因为在悲伤的时刻,场景本身看起来就是沉闷和缺乏生气的。
游戏性:平台跳跃是令人愉悦的,所以我们主要把它用于童年、青少年和欢乐的时刻。另一方面,忧郁的时刻则要求更考验反射神经的玩法。例如,我们曾在【早期的】关卡“欢乐”中设置了一些关于蜗牛壳的巧妙谜题,但后来把它们去掉了。它们都是很好的谜题,但它们给人的感觉像工作,而童年的主题是在安全的环境中体验世界,而不是思考解决问题的办法。
难度:我们在青少年的回忆中使用了传统电子游戏的“挑战”概念,因为青少年挑战自我是很合理的。老年阶段的难度则是以环境危险的方式来提高,因为衰老意味着越来越难做普通的动作,而不是克服巨大的挑战。
如果你能在很高的层次上明确认识到你想实现什么目的,那对你各种低层次的决策将很有帮助,因为每一件事都有了理由。这会给你的项目提供一致性。
《Arise》具有非常简约的用户界面。为什么这种设计更适合这个游戏?团队又是怎么设计它的?
UI设计师Oriol Pujadó:和其他所有设计一样,这源于我们实现简约的高级理念。我们希望玩家以非常纯粹、不借助文字、富有感染力的方式体会剧情,所以越简单越好。但是如果有了游戏界面,特别是如果有了教程,那么就会有一条无法逾越的细线,因为如果玩家不能理解你的教程,那他们的游戏体验就完蛋了。
能给我们介绍一下工作室的美术工作流程吗?
Corominas:在我们确定一个章节的主题和玩家在游戏过程中要做什么事之后,设计师就开始设计关卡的布局草图,美术团队则画一些概念画【来确定】场景的基调。
然后,当设计师搞出一些“可玩”的地图时,美术总监就会在地图上涂改,让结构更加有趣,而美术师会对资源进行第一次迭代。
然后地图回到设计师手里,他们要确保所有东西仍然可玩,并且再次进行调整。基本上,美术团队和设计团队会反复修改,直到我们用尽制作时间!
在《Arise》中,我们还设置了自动摄像机。你在玩这个游戏的时候会注意到,我们会根据你所在的位置,不断地调整视角、距离和视野。所以,就像我们迭代关卡美术一样,我们也会迭代摄像机。每个关卡中都有几百个摄像机体积,它们会随着玩家的移动而混合,为了确保视角不会让你在跳跃时发生误判,我们必须对它们进行许多测试和迭代。
我们最后做的工作是光照(包括光照贴图)和【管理】气氛,因为这需要依靠每个关卡的美术资源才能合理地“完成”。
能说说你们开始做这个项目时的虚幻经验吗?
Corominas:我们招募的一些团队成员以前有使用虚幻的经验,曾经参与制作已经上市发行的游戏。我们几个人则是第一次做游戏,所以我们没有使用任何引擎的经验。实际上我们不得不研究了各种游戏引擎。在我们决定采用UE之后,我们就招募了有UE经验的人。
为什么虚幻引擎更适合这个游戏?
Corominas:因为它很出色,功能强大,而且使用简便。光是蓝图就带来了颠覆性的变革,因为程序员不再是瓶颈了。着色器编辑器也一样;3D美术师能够学会怎样创建和调整大部分材质,所以技术美术师可以集中精力去做比较复杂的东西。你的非技术【人员】在没有技术人员帮助的情况下用编辑器独立做的工作越多,团队的生产力就越高,看得出来UE就是本着这种理念设计的。对于资源有限的小型工作室来说,这种生产力的提高甚至比能够采用最新图形效果的技术优势更重要。
Ministral:有一种错误理念是,虚幻引擎只适合用于特别逼真的渲染和3A级游戏,其实完全不是这么回事。虽然默认设置是用于写实主义风格的,但这并不意味着风格化的渲染就很难实现,不是那样的。有时候开发者会希望使用每一种功能,仅仅因为引擎提供了选项。如果AO或动态模糊不适合你的画风,那么你必须“决定”不用它们,或者让你的材质保持简单。有时候只需要一个漫反射和法线贴图就能达到你的目的。
你们是怎样学习引擎的?
Ministral:看了许多教程,还花了许多时间分析模板项目。我们确实有数字化制作和动态图形的背景,所以渲染的核心理念对我们并不陌生,我们只需要学习引擎的具体知识。无论它是谁设计的,设计者的思维模式肯定和我们差不多,因为所有东西都做得很合理,自然而然就能学会。当然,需要花些时间才能了解所有可用组件和每个属性的作用,不过基本的工作流程很容易掌握。而且,因为我们招募了有经验的人员,也可以利用他们的经验来加快制作过程。
能给使用虚幻引擎的艺术家提供一些开发诀窍吗?
Corominas:虽然听起来是理所当然的,不过保持内容浏览器整洁有序确实很重要,应该在项目开始时达成一致的命名约定并严格遵守。人们很容易从个人文件夹开始工作,骗自己说在项目后期会进行适当的整理,其实这种整理永远不会发生,你会一直被混乱的文件夹困扰。
Ministral:要相信这个引擎。Epic的默认设置比你认为的要好。特别是在光照贴图方面,第一次迭代令人失望是常有的事,而你会忍不住调高所有画质设置,直到画面变得好看为止。实际上,如果你并不是真正了解自己在做什么,就不要动它们。要按照文档来。确保你的光照贴图UV设置正确。还要考虑到光源颜色和强度会影响反光。有时我们会用一个强度为1的白色天空光照做第一次光照贴图计算,所以我们基本上就反射初始光源1, 这可以帮助我们看到发生了什么,哪些材质反射了足够的光线,而哪些材质没有。
感谢你们抽空接受采访。人们可以在哪里了解更多关于《Arise:A Simple Story》的信息?
Ministral:可以在www.arise-game.com进一步了解这个游戏。