智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

使用Unity制作游戏关卡的教程(一)

Posted on 2014-01-13 11:02  Bill Yuan  阅读(5446)  评论(0编辑  收藏  举报

转自: http://gamerboom.com/archives/74131

作者:Matthias Zarzecki

我正在制作《Looking For Group – The Fork Of Truth》的关卡。

在本系列中,我们将使用Unity制作游戏的环境。第一部分主要介绍基本场景——地形。这是其他场景元素的构建基础。(请点击此处阅读本文第二部分

如果你已经看过我们的Kickstarter融资预告片,那么你应该看过这个场景了。

为了制作这些视频,我们其实制作了一个可玩的关卡。我们把它当作一个原型区域,用来测试战斗系统和游戏的世界观。我们将使用真正的Kickstarter视频,这样读者就可以预测到最终效果了。最终,这是要放进一个可玩的游戏中的(不过是比较短的游戏)。

关卡预览

角色从右下角的道路进入场景:

lower right(from gamasutra)

lower right(from gamasutra)

他们进入村庄,遭遇地精攻击:

goblin attack(from gamasutra)

goblin attack(from gamasutra)

再从农民(其实是一个地精扮的)处得到一个任务,追踪地精。他们被引入陷阱,在地精营地展开最后一战。

goblin camp(from gamasutra)

goblin camp(from gamasutra)

这个关卡的通关时间是10-20分钟,非常有趣。接下来我们来学习如何制作吧!

地形

整个关卡使用Unity Terrain来制作。这是一个制作自然场景的好办法。

首先打开Unity Terrain,即在菜单栏中选择”Terrain” -> “Create Terrain”。你会看到以下平面:

terrain_01(from gamaustra)

terrain_01(from gamaustra)

你可以使用不同的笔刷在这个平面上“画画”:

brushes and sizes(from gamasutra)

brushes and sizes(from gamasutra)

使用高度绘画工具(第一个模式),你可以画出高度差。简单地选择正确的模式,通过Unity viewport在平面上画出你的地形:

terrain_02(from gamasutra)

terrain_02(from gamasutra)

使用材质绘画工具,可以在地形上添加纹理。

apply textures(from gamasutra)

apply textures(from gamasutra)

使用草地等地面材质,如下图所示:

terrain_03(from gamasutra)

terrain_03(from gamasutra)

添加其他材质制作岩石、沙地等你所需要的地面类型:

terrain_04(from gamasutra)

terrain_04(from gamasutra)

道路很容易做。简单地画出某个高度,然后赋上材质就做好了:

terrain_05(from gamaustra)

terrain_05(from gamaustra)

以下是我们在《The Fork of Truth》中使用的材质:

the fork of truth(from gamasutra)

the fork of truth(from gamasutra)

使用这些简单的工具,你可以制作出复杂、逼真而有趣的地形。你可以看到右边的道路纹理,以及路面与水池形成的高度差。

Unity Terrain是强大的功能,提供多种选择和方式来制作游戏世界。你几乎可以用它制作出所有种类的景观。街道、河流、峡谷等——都能在简单的鼠标点击中完成。

垂直

但你得注意不要画蛇添足。你可以做出漂亮的地形,但丘陵地形可能成为你制作关卡的一大麻烦。

高度差使放置对象变成累人的杂事。可能到头来你得花上好几个小时调整场景中的对象的垂直位置,这样它们看起来才不至于浮在半空中或陷在地面上。

《The Fork of Truth》的地形基础是一个平面。上面仍然有丘陵和洼地,但这些纯粹是视觉上,你不可能接触到它们。在下图中,你可以看到有些非平面的区域。它们是不可进入的,因为有障碍物和“不可见的墙”。

hills_02(from gamasutra)

hills_02(from gamasutra)

保持关卡地形为平面的另一个好处是,更容易进攻。当地形不平时,进攻和技能释放会更加困难。召唤出来的龙卷风可以水平移动或者沿着道路移动吗?可以爬上悬崖吗?如果角色站在小山坡上,可以向下释放火球攻击敌人或让火球飞过敌人头顶吗?如果角色和敌人之间有一堵小坡挡差点呢?

保持关卡地开平坦可以有效地避免这些问题。像《暗黑》、《火炬之光》和《魔法对抗》等游戏也大量使用平原场景。因为这么做确实有充分的理由。

注意,即使我们让可行走的区域保持平面,我们也要让某些地方不平坦,以造成深度差的效果。为了拓展游戏,我们打算在关卡中加入高度。高度差和悬崖使关卡设计更加有趣,所以我们不想错过。

depth(from gamasutra)

depth(from gamasutra)

水体

在《The Fork Of Truth》中,角色目前还无法与水体互动。如果有什么东西掉进水里的话,比如在攻击时地精被打进水里,那么它就会立即被消灭。

关卡中的河流是地形上的洼地,低于平地30个单位。从下图中你可以看到河流的“峡谷”,里面还有一些装饰性的物品。只要添加水体就成为河流了。

lfg_water(from gamasutra)

lfg_water(from gamasutra)

水面有几种不同的选择。最简单的一种是用蓝色透明的平面方形做成的:

lfg_water(from gamasutra)

lfg_water(from gamasutra)

Unity有若干水体着色器。以下是基本的一种。它有水波动画和简单的反射,但不透明:

lfg_water(from gamasutra)

lfg_water(from gamasutra)

以下这一种更高级一些(现在颜色有一点不正常)——有上图中的水波动画,也是透明的。

lfg_water(from gamasutra)

lfg_water(from gamasutra)

另一种堪称完美(游戏邦注:在Unity Pro中叫作“Water4”)。它是透明的,能形成倒影,有水波动画,非常适合这款游戏的卡通风格。它在边界处还有一个有趣的特点。即使它有诸多优点,但并不像其他高级水体类型那么需要高帧率。

lfg_water_04(from gamasutra)

lfg_water(from gamasutra)

总结

在Unity中,关卡构建的过程始于总体的地形布局。以下我总结成三点:

1、使用Unity Terrain快速雕刻地形和贴材质。

2、保持可行走道路平坦,使关卡设计更容易。

3、Unity有若干种水体着色器,我们使用的是Pro着色器的“Water4”。

运行除了有地面和水体,其他基本空白的关卡仍然能让人感到满足。如果是,那么你就已经为接下来的关卡制作做好准备了。

预告:本文接下来一部分我们将介绍如何在关卡中放置对象,以及用树、灌木、栅栏等小物品装饰场景。