游戏快报

销量1000万游戏的关卡设计秘诀:只要几个模块就够了

销量1000万游戏的关卡设计秘诀:只要几个模块就够了

所谓的“模块化三维环境制作”,就是只制作几个模块,然后不断调整这些模块,用不同的组合方式,构建较为复杂的场景。在研发过程中,模块化设计不仅可以节省时间,还能为关卡设计提供足够的灵活性,同时保证关卡地形结构的美观程度。

在3月4日的摩点闭门交流会上,交典创意创始人兼《蜡烛人》的制作人高鸣分享了名为“模块化三维环境制作分析”的开发技巧。

以下为干货满满的分享实录,由游戏葡萄整理发布:

1458615706541202.jpeg
交典创艺创始人高鸣

大家都知道,在游戏中想做一片森林,是不需要做十棵树的。你只要做一棵树,然后把这棵树码很多就行。这就是模块化的基础思想:通过码放单一的元素,去形成大面积的场景。

最简单的例子,就是《我的世界》和《马里奥》里面的砖块:

1458615710718433.jpeg

但其实模块化的场景,除了这些比较熟悉的概念,还可以具备更复杂的要素。

比如这个场景,草地平滑衔接,曲线柔顺过度,地形转角也很平。这样的场景会是模块化设计么?

1458615712870497.jpeg

这张是《上古卷轴》内部的地牢画面,两张桌子肯定是复制的,但整个环境难道也是模块化设计的么?

1458615716442978.jpeg

包括这种三维场景,也是能通过模块化设计制作出来的么?

1458615716838716.jpeg

事实上,这些场景都是通过模块化设计制作出来的。

为什么我要尝试研究模块化设计?因为在《蜡烛人》比较早的版本里,为了制作方便,所有的场景我都是拿长方形、正方形去构筑的,然后每一面贴一个图。但需要提升游戏精度的时候发现了一个问题:方形地砖之间的接缝很明显,墙面转角也没法很好地融合在一起。

1458615717632033.jpeg

在这种情况下,继续优化贴图是没有作用的。我们必须考虑采用一种新的技术方案,让环境既很精美,又像原来Gamejam做关卡一样,做几个砖块一码就搞定。既要便捷,又要出效果。

所以我开始摸索模块化设计的技巧,先阅读了2002年《Game Developer》里模块化的关卡和模块化的设计(可见这个技巧有多么地老),又看了《上古卷轴3》在GDC上做的模块化关卡设计的演讲,再后来按照这个思路,逆向分析了《超级马里奥3D世界》和《超级马里奥3D大陆》里模块化3D环境构成的原理,又参考了2D游戏的地形块系统,得出了一些结论。这次我会从简单到复杂,逐步分析模块化关卡设计的应用。

独立模块组合

第一个层级,我将之称为“独立模块组合”。这种模块化设计的特点是有缝,方案里面可以固定样式,像《马里奥》的这个桥,就是由一块块木板构成的。对一座桥来说,两块砖之间的接缝是天然的,玩家不会觉得很奇怪。

1458615718732970.jpeg
1458615718241294.jpeg1458615719229047.png

但这里存在一个问题,同样的模块放多了之后会显得重复,让环境看起来很单调。那设计师就会做很多工作,让游戏的关卡既富有变化,又仍旧让素材的制作量比较有限。我将这些变化总结成了包括尺寸变化,包括色彩变化,贴图UV错位,造型微调,装饰元素等几种可能性,接下来逐一展示出来。

这张图里的木箱就有简单的尺寸变化,有正方形的箱子,有长方形的箱子,而且通过不同角度的旋转,让箱子的横纹、竖纹产生变化,看起来就很丰富:

1458615719717982.jpeg

这个地方的地砖也是一样,通过黑白颜色的变化,让地形看起来更有意思:

1458615720651395.png

这是《超级马里奥3D大陆》的几个地形,用了很多方形的,塑料积木材质的砖块,每一块的颜色和尺寸都在不断发生改变:

1458615720696257.jpeg
1458615721982134.png1458615721520733.png
1458615722761505.jpeg

这里是马里奥走在一个铁网上,其实基本模块就是一个方形的铁网,但研发团队把铁网缩小一半,放在后面,就形成了不一样的结构。再加装一些固定、转角的额外装饰物,防撞条一样的东西,最终让铁网的路面看起来很丰富,不单调:

1458615723166756.png1458615726376363.jpeg

这个是《超级马里奥3D大陆》里面的一个关卡,模块化的思路也比较巧妙。其实它的地形就是一大块一大块的石头,但通过改变尺寸,改变顶点颜色,各种旋转,让地形看起来很自然。而且关卡结尾的地方非常夸张,研发团队把其中一块砖调得特别大,放置在下面,镜头拉得又远,这样玩家看不到地面被异常放大后的粗糙,反而会觉得是一个新的地形:

1458615730293788.jpeg
1458615731956765.jpeg
1458615732878941.png

在这个关卡中除了石头,还有木头的元素。仔细看就会发现,木头的花纹是完全相似的,只是做了不同的染色,再通过不同方向的摆放,以及加装一些栏杆和钉子,让玩家感觉场景很丰富:

1458615732437750.png

1458615733386355.jpeg

1458615733117972.jpeg

单向无缝循环

如果希望做出无缝衔接的场景,又用模块化的思想去搭筑关卡,那就要采取单向无缝循环的方式。

比如在云端,云彩的宽度是一样的,但横向会有高低起伏的变化:

1458615733235916.png

1458615734477861.png

下图中,这个铁网的长度可以一直加长,结尾有一个结束。由此可见,单向无缝循环就是中间有一段可以无限循环的模块,然后在两端各有一个开头和结尾。

1458615735463438.jpeg

1458615735867435.jpeg

全方向无缝循环

而最复杂的则是全方向无缝循环。它需要把一个地形分为几种模块,分别是循环的顶面、侧面、外转角和内转角。

比如这四个模块:

1458615736667031.jpeg

就可以组成下面的场景:

1458615736883135.jpeg

上方就是两块顶面组装起来,然后前后左右分别是一个侧面和两个侧面,最后是转角。我之前以为这样的一个模型是一次性建出来的,但其实通过这4个基本模块就能组合成这样的模型,而且能随意增大减小尺寸。

一个地牢的地形:

1458615737415343.jpeg

也可以通过这样的系统来生成:

1458615737981786.jpeg

这张2D的图片说明,模块化其实不一定去做特别方正的。这个场景看起来很自然,但其实仍然是一样的原理。只要每个模块做得自然,那拼接起来也会很自然:

1458615738460267.jpeg

其实只有两张图片

这个3D的场景也一样,还是内转角、外转角、循环底面:

1458615738467289.jpeg

还有《马里奥》里面的这几个例子:

1458615739605011.jpeg
1458615739490823.jpeg

以及六棱形的,特殊的循环地面:

1458615740219536.jpeg

还有更复杂的应用:

1458615740426098.png

1458615741992954.jpeg

1458615741233540.jpeg

其实地形模块不只包括以上四种基本模块,只要每个模块能和其他模块很好地拼在一起,就能进行更多的扩展。

《蜡烛人》的几个实操案例

1458615743655381.gif

1458615743289111.gif

1458615744840659.gif

1458615744651883.gif

例如,《蜡烛人》中的藤蔓和花也是模块化设计的体现:

1458615746611706.gif

欲知更多模块化设计干货,可阅读相关资料:

《Modular Level and Component Design – GD Mag, 2002》

《上古卷轴开发团队 GDC模块化关卡设计演讲》

逆向设计“马里奥3D Land & World”

2D Tile System