所谓的“模块化三维环境制作”,就是只制作几个模块,然后不断调整这些模块,用不同的组合方式,构建较为复杂的场景。在研发过程中,模块化设计不仅可以节省时间,还能为关卡设计提供足够的灵活性,同时保证关卡地形结构的美观程度。
在3月4日的摩点闭门交流会上,交典创意创始人兼《蜡烛人》的制作人高鸣分享了名为“模块化三维环境制作分析”的开发技巧。
以下为干货满满的分享实录,由游戏葡萄整理发布:
交典创艺创始人高鸣
大家都知道,在游戏中想做一片森林,是不需要做十棵树的。你只要做一棵树,然后把这棵树码很多就行。这就是模块化的基础思想:通过码放单一的元素,去形成大面积的场景。
最简单的例子,就是《我的世界》和《马里奥》里面的砖块:
但其实模块化的场景,除了这些比较熟悉的概念,还可以具备更复杂的要素。
比如这个场景,草地平滑衔接,曲线柔顺过度,地形转角也很平。这样的场景会是模块化设计么?
这张是《上古卷轴》内部的地牢画面,两张桌子肯定是复制的,但整个环境难道也是模块化设计的么?
包括这种三维场景,也是能通过模块化设计制作出来的么?
事实上,这些场景都是通过模块化设计制作出来的。
为什么我要尝试研究模块化设计?因为在《蜡烛人》比较早的版本里,为了制作方便,所有的场景我都是拿长方形、正方形去构筑的,然后每一面贴一个图。但需要提升游戏精度的时候发现了一个问题:方形地砖之间的接缝很明显,墙面转角也没法很好地融合在一起。
在这种情况下,继续优化贴图是没有作用的。我们必须考虑采用一种新的技术方案,让环境既很精美,又像原来Gamejam做关卡一样,做几个砖块一码就搞定。既要便捷,又要出效果。
所以我开始摸索模块化设计的技巧,先阅读了2002年《Game Developer》里模块化的关卡和模块化的设计(可见这个技巧有多么地老),又看了《上古卷轴3》在GDC上做的模块化关卡设计的演讲,再后来按照这个思路,逆向分析了《超级马里奥3D世界》和《超级马里奥3D大陆》里模块化3D环境构成的原理,又参考了2D游戏的地形块系统,得出了一些结论。这次我会从简单到复杂,逐步分析模块化关卡设计的应用。
独立模块组合
第一个层级,我将之称为“独立模块组合”。这种模块化设计的特点是有缝,方案里面可以固定样式,像《马里奥》的这个桥,就是由一块块木板构成的。对一座桥来说,两块砖之间的接缝是天然的,玩家不会觉得很奇怪。
但这里存在一个问题,同样的模块放多了之后会显得重复,让环境看起来很单调。那设计师就会做很多工作,让游戏的关卡既富有变化,又仍旧让素材的制作量比较有限。我将这些变化总结成了包括尺寸变化,包括色彩变化,贴图UV错位,造型微调,装饰元素等几种可能性,接下来逐一展示出来。
这张图里的木箱就有简单的尺寸变化,有正方形的箱子,有长方形的箱子,而且通过不同角度的旋转,让箱子的横纹、竖纹产生变化,看起来就很丰富:
这个地方的地砖也是一样,通过黑白颜色的变化,让地形看起来更有意思:
这是《超级马里奥3D大陆》的几个地形,用了很多方形的,塑料积木材质的砖块,每一块的颜色和尺寸都在不断发生改变:
这里是马里奥走在一个铁网上,其实基本模块就是一个方形的铁网,但研发团队把铁网缩小一半,放在后面,就形成了不一样的结构。再加装一些固定、转角的额外装饰物,防撞条一样的东西,最终让铁网的路面看起来很丰富,不单调:
这个是《超级马里奥3D大陆》里面的一个关卡,模块化的思路也比较巧妙。其实它的地形就是一大块一大块的石头,但通过改变尺寸,改变顶点颜色,各种旋转,让地形看起来很自然。而且关卡结尾的地方非常夸张,研发团队把其中一块砖调得特别大,放置在下面,镜头拉得又远,这样玩家看不到地面被异常放大后的粗糙,反而会觉得是一个新的地形:
在这个关卡中除了石头,还有木头的元素。仔细看就会发现,木头的花纹是完全相似的,只是做了不同的染色,再通过不同方向的摆放,以及加装一些栏杆和钉子,让玩家感觉场景很丰富:
单向无缝循环
如果希望做出无缝衔接的场景,又用模块化的思想去搭筑关卡,那就要采取单向无缝循环的方式。
比如在云端,云彩的宽度是一样的,但横向会有高低起伏的变化:
下图中,这个铁网的长度可以一直加长,结尾有一个结束。由此可见,单向无缝循环就是中间有一段可以无限循环的模块,然后在两端各有一个开头和结尾。
全方向无缝循环
而最复杂的则是全方向无缝循环。它需要把一个地形分为几种模块,分别是循环的顶面、侧面、外转角和内转角。
比如这四个模块:
就可以组成下面的场景:
上方就是两块顶面组装起来,然后前后左右分别是一个侧面和两个侧面,最后是转角。我之前以为这样的一个模型是一次性建出来的,但其实通过这4个基本模块就能组合成这样的模型,而且能随意增大减小尺寸。
一个地牢的地形:
也可以通过这样的系统来生成:
这张2D的图片说明,模块化其实不一定去做特别方正的。这个场景看起来很自然,但其实仍然是一样的原理。只要每个模块做得自然,那拼接起来也会很自然:
其实只有两张图片
这个3D的场景也一样,还是内转角、外转角、循环底面:
还有《马里奥》里面的这几个例子:
以及六棱形的,特殊的循环地面:
还有更复杂的应用:
其实地形模块不只包括以上四种基本模块,只要每个模块能和其他模块很好地拼在一起,就能进行更多的扩展。
《蜡烛人》的几个实操案例
例如,《蜡烛人》中的藤蔓和花也是模块化设计的体现:
欲知更多模块化设计干货,可阅读相关资料:
《Modular Level and Component Design - GD Mag, 2002》
《上古卷轴开发团队 GDC模块化关卡设计演讲》
逆向设计“马里奥3D Land & World”
2D Tile System