EPIC《无尽之剑》分享美术制作经验
5月15日英佩游戏与91、DeNA在上海举办《无尽之剑》分享会,Epic公司全球运营总监John T.Farnsworth、及《无尽之剑》开发团队高级美术师Nathan Trewartha参加了此次会议,并作了主题演讲,以下为Nathan Trewartha分享的有关Infinity Blade项目的美术制作经验。
CHAIR 高级美术师Nathan Trewartha(右)
GameLook报道 / 5月15日英佩游戏与91、DeNA在上海举办《无尽之剑》分享会,Epic公司全球运营总监John T.Farnsworth、及《无尽之剑》开发团队高级美术师Nathan Trewartha参加了此次会议,并作了主题演讲,以下为Nathan Trewartha分享的有关Infinity Blade项目的美术制作经验。
Nathan Trewartha的现场演讲给gamelook留下最深印象的是:
1)游戏设计方法的中外差异,Infinity Blade的游戏创意来自所有团队成员的头脑风暴,这不仅体现在初期也在整个项目过程中,这或许是小团队开发的特点,同时频繁的项目沟通,能够确保团队成员的步调一致。而在国内,项目的创意往往是主策或者为数不多的人说了算。
2)虽然团队小,但是成员都很资深,包括演讲者Nathan Trewartha也有12年的从业经验,CHAIR作为EPIC旗下工作室,对Unreal引擎的了解是非常全面的。
3)UDK虽然针对移动平台开发,但是在Infinity Blade开发的初期,其实一些功能也不是全面的,这在游戏的美术方面更为明显,为了增强游戏的画面效果,往往使用了游戏业惯例的“土办法”和“障眼法”,而采用手绘来增强,实际上效果显著。并且能有效降低硬件的性能要求。而UDK之后则在不断完善对移动平台的支持。
4)CHAIR团队虽小,但同样使用了外包资源,一些初期实验、以及概念设计由CHAIR团队自己完成,而大量的美术则由外包完成,所以说明面上的10人半年开发,实际上参与这个项目的人员是超过10人的。
以下为演讲实录:
我的演讲主要介绍CHAIR工作室如何使用UE来完成这款游戏的美术部分。在美国有很多的开发者都在问我们如何做到Infinity Blade这样的美术质量。事实上CHAIR的整个团队都非常的资深,最初这个Team只有6个程序人员,不过有的人已经在这个行业有10多年的工作经验,而我最初是在Glyphx公司工作,并且Glyphx公司的项目采取了unreal引擎,这对我后面在CHAIR的工作帮助很大。
因为CHAIR工作室的成员非常少,因此开发人员常常要身兼数职,因此需要大家来一起来完成美术工作也是“家常便饭”,CHAIR的第一个产品并不是Infinity Blade,而是undertow,第二款游戏则是Shadow Complex,这两款游戏也非常成功,曾经获得了年度的奖项。
在我们的团队创意过程中,通常采用“头脑风暴”的办法,我们在2周之内就有了60个idea可以去挑选,之后挑选出了最棒的3个,这3个idea中,除了undertow之外、就是shadow complex。这是项目最初找到idea最好的方式。我在这两个项目中,不仅当作美术,也作为关卡设计。而在Infinity Blade这个项目中,我主要负责游戏整个的世界设计及美术。
因为团队很小,所以需要快速的开发游戏,我们在开始的时候不会写很长的文档。Infinity Blade整个游戏的概念设计是最初的10个人一起来想的,会做很多的头脑风暴。在没有具体的策划文档的时候,已经通过头脑风暴明确了游戏长什么样。在最初的会议中,需要决定游戏的优势是什么,哪些是要呈现给玩家的。
游戏最初的设计不需要做太多的美术及模型,最重要的是把游戏的核心的gameplay做出来。需要最快的做决定,哪些关卡、内容需要保留,哪些需要砍掉。
这张图是无尽之剑的世界地图,在一开始,它可以让团队全部成员知道游戏世界是怎样的,之后会尽快搭建起来,而左上角的部分,我们最终去掉了。
这是《Infinity Blade 2》的一张简单的关卡设计的草图,它非常的简单、但说明了游戏框架的概念,圆圈的部分代表的是有战斗,三角形就是有BOSS战,有了这个草图,美术设计人员、关卡设计和整个team对游戏整体都有了概念。每个人看到这张图就能明白自己要做什么工作。
接下来,我们介绍Infinity Blade的美术素材是如果制作的,我们把非常简单的材质放到模型上就可以了,这张图就是刚才演示的平面图中的一部分,不过,这部分的设计在很早的讨论中就被舍弃了。而这张图则是之后保留的部分完成后的最终效果。
谈下UDK中,如何实现光照效果:
通常我们会使用一个directional light来模拟太阳光,室内光一般用点光源,对于角色的光照会用平行光和点光源来组合。Infinity Blade游戏中,通常只出现2个角色,所以我们会使用一个通道对准玩家角色,另一个通道来对准“敌人”的角色。
我们的引擎程序,基本是4种banked 光照方式
1)全局光 2) ambient coclusion 3) bakedin normal maps 4) custom painted details
虚幻引擎最大的优势是将以上这4点实现后,环境光照非常的棒。
最左边的是一张light map,之后拿来当作photoshop上的一层,这样就可以看到每个块砖头。第二张图是在ps中画的房子的贴图,第三张图,就是用手绘的话,就可以得到一个normal map。
这张图演示的是,在阴影部分实际上是难以看清楚的,有锯齿,在UDK中,把这个map取出,并且跟物体上的贴图来组合在一起,然后再放回最终的画面,然后用手工的方式把阴影去掉,从而没有锯齿,因此在编辑器中贴图效果就更好。而且还带来更好的性能。
现在看到的一张图是只有投影的效果,除了有投影外,还有normalmap的效果,这是之后增加了手绘之后的效果。。。(说到很多的效果的合成,用到了一些手绘的方式)。手绘的加入,可以打破画面的单调感。
在unreal上要制作移动游戏,要用到之前其他平台的一些老办法,这些方法在iOS也同样适合。
- 为了实现反射效果,采取的是镜像翻转,来实现。
- 在材质中,有一个平移贴图的方式,来做出一些特殊的效果。
- 为了节省系统的性能,增加了很多的cards来制作背景画面。
- 在材质中,用顶点动画的方式,来实现动画效果。
- 使用cards来做投影,然后贴到模型上,来实现阴影的效果。
这是一个很有趣的动画效果,左侧是一些小鱼,实际上,是用的鱼的贴图在一个条状物件上,然后让贴图移动,从而实现鱼在游的效果,并不是鱼在动。
游戏中树的摇晃的效果,用的顶点图的方式来控制树的摇晃。
这张是使用画背景图的方式来模拟效果,在这张图中,建筑物实际上都是“片图”,而不是模型。
这张图,是用图来模拟树的阴影的效果。
下面讲下游戏的角色的优化:
- 基于顶点的高光效果,其实效果并不是很好,在角色上,用了逐像素的方法来实现,用了diffuse RGB的方式来节省内存。
- 然后角色身上,使用了Unreal的技术,banked GI。
- 在游戏中,只会一次出现2个角色,每个游戏的面数并不会很多,但使用了非常大的贴图,即使是ios也使用了2048的贴图,3000顶点。
- 为了有更好的性能,每个顶点有2个骨骼权重。
- 每个角色运行时,只有一个draw call,材质id只有一个。
- 无论是玩家、角色还是怪物的贴图,都会match成一张贴图。
这是5200个verts及3600 verts的顶点的模型,基本看不出差别。
下面说一下优化的技巧。
- 减少场景中物件的数量,会进行一些合并。在《Infinity Blade》及《Infinity Blade2》中,这些合并的工作都是手工来完成的,现在的Unreal工具中增加了新的工具来自动完成,会更快。
- 如果更加激进的优化则是,更远的场景彻底不画,比如远处的哪些树。
- unreal引擎可以自动监测,玩家的游戏设备是哪一款。
- 在不同的设备上,就是切换材质,高端机器上用更好的材质,低端机器上用更低的材质。
关于美术外包
CHAIR本身只有一个4人的美术团队,建模和贴图都是外包的,贴图等的优化工作都是拿回来自己做的,当然也会告诉外包团队需要的标准,也会告诉他们如何进行优化。刚才大家看到的原型的测试,由我自己来完成,我做完这些非常基础的工作后,会发给外包团队。
最后,如果没有unreal引擎,我们这么小的team是无法完成这么多的工作的。
infinity blade level performance
Average infinity blade level(ipod touch 4上的数字)
draw call 58
triangles 190000
base binds 52
lightmpa texture binds 15
如若转载,请注明出处:http://www.gamelook.com.cn/2012/05/76877