A. 世界地图道具篇
一、道具贴图文件
在 38A 版本中,各位可以在游戏主体文件夹下的 graphics\player 中找到一个名为 player-0.png 的文件,在这里我将图像进行横向处理后展出,以便各位在帖子中查看。
那么这是个什么文件呢?实际上,player-0.png 用于为世界地图储备框内的物品提供贴图,以便储备框中已存储的物品拥有正确的贴图并显示出来。仔细观察后不难发现,除去在关卡编辑器内直接出现的补给外,还有一些“奇怪”的家伙,这里以[列-行]形式介绍它们。
*2-1 音乐盒(Music Box);2-2 传送笛子(Warp Whistle)
*4-1 船锚(Anchor)
*5-1 P 翅膀(P-Wings);5-2 榔头(Hammer);5-3 跳关云(Cloud)
*8-1 以及 8-2:龙卷风;8-3 以及 8-4 航船
需要特别指明的是,第八列的龙卷风及航船不属于道具一类,而是玩家在大地图上的状态一类
如果有玩过 SMB3,应该会对这些道具很熟悉。在原版 SMB3 中,这里出现的各道具的用途将在下文列举。
首先来看对世界地图生效的道具/状态:
*传送笛子:支持玩家远距离传送,生效时附带龙卷风特效,并且在 SMB3 中有专门的传送区,让玩家选择将要前往的世界
*音乐盒:关闭某些关卡的强制进入设定(如 SMB3 的锤子兄弟对战关,音乐盒生效时还会改变其贴图)
*船锚:固定飞船,防止其飞走(在 SMB3 中,如果在飞船关失败,飞船会飞到地图的其它地方去)
*榔头:敲开土堆,使其两侧的道路能够连通
*跳关云:顾名思义,跳过一个关卡
*航船:在允许行船的区域能够使玩家在水面上自由移动
接下来是关卡内生效的道具:
*P 翅膀:将玩家升级为浣熊状态,并允许玩家持续飞行
了解清楚基础之后,我将来讲解如何在你的作品中调用这些新玩意儿,并且使它们生效。
二、添加道具的特殊事件
为了调出这些新道具,需要用到特殊事件,常规的方法是不可能看到它们的。
在准备做以下步骤前,确保有一个已创建好的世界地图(wld 文件)
在关卡编辑器内找到 Events - Others -Triggers 下的 Special Events 下拉框,单击后查看可选事件。其中 7-21 号、24-26 号、31-38 号是同一类别的事件,它们都为世界地图储备框添加道具。现在着重讲解 16, 24, 25, 26 号事件,它们分别为储备框中添加[榔头][音乐盒][传送笛子][船锚].
以任意方式调用设定好的事件,之后切换到世界地图编辑器,来为道具设定具体用途。
三、各道具的基础设定
做好准备工作之后,终于可以开始设定各道具的用途了。由于用途是自己设定,因此可以像原版一样设定相同的用途,也可以自由发挥。这里为了方便讲解,我将道具的用途按照原版的来。
重要:必须打开世界地图储备框选项!在 World Settings - Properties 找到 Inventory Limit,把 Disabled 改成其它数字就可以启用。
启用了储备框之后,就可以选择对应的道具,开始设定了!
3.1 榔头
根据 SMB3 的设定,榔头敲开的是一个小土堆,来打通其两侧的道路。为了实现这个效果,我是这样做的:
首先搭建出一个雏形:
我要做的是打开这个路障前往对面的关卡,这就需要用到道具事件(Item-Triggered Events)
在使用道具事件前,先明白一件事。
本质上,实现这样的效果是图层显隐的功劳。榔头本身不起任何识别效果,没有榔头会聪明到识别出某个东西的贴图是不是土堆然后把它敲掉,所以我们要为土堆以及开凿后出现的路径设定图层。对于其它使用道具事件生效的道具也是如此!
小技巧:Shift + 右键可以选中一个对象,直接编辑它的信息,而不需要把它拖动起来。
我将小土堆命名为“roadblock1”,接下来我们使用一个开启了 Always Visible 的 level 对象来充当土堆被“开凿”后的路径,我将其命名为“path1”。
关于路径的设定,请看下图:
请把一个你用不到的 level 对象的素材改成普通的路径素材,来冒充 path 类的对象。这样设定的原因是 path 类的对象必须判定有关卡的存在,并且有时判定该关卡是否已经通过。简单来说,你设不设置图层的显隐,对 path 没有影响,关卡不通过,它照样不会显示。而 level 对象不一样,只要勾选了 Always Visible,它就一定会显示在大地图上。
之后我把“roadblock1”图层显示,把“path1”图层隐藏。也就是显示出路障,隐藏起路径。
接下来我新建了一个事件,命名为“Hammer1”,用来控制路障的开凿。设定如下图:
很好理解,激活这个事件,就把路障隐藏,而显示出路径。
接下来只差激活这个事件了,找到 Areas - Functions 里的 Item-Triggered Events,勾选之后转到底下的 Item Events,在 Hammer 下拉框选择这个事件,如图。设定好之后把这个蓝框挨着路障放,比如我就应该把蓝框放到关卡点上。切忌放在路障上!
然后就设定完成了,来看看效果如何。
PS:这里建议把 Item-Triggered Events 的那个蓝框也设定成一个单独的图层,激活事件之后就永久隐藏起来,防止多余的道具在同一个区域浪费。
3.2 传送笛子
相对于榔头来说,传送笛子的设定要简单很多。这里同样需要用到 Item-Triggered Events,只不过去用 Whistle 下拉框选择事件。具体步骤参照下文。
建立一个事件,我将它命名为“Warp Whistle”,接下来确保你已经设定了一个传送区,使得笛子生效后能够正常进行坐标传送。在 Events - Others - Others 下找到 Warp Whistle 选项,将其勾选,并填入你想传送到的坐标,我这里的设定是这样的:
之后设定一个笛子传送区,参照榔头的设定,把 Item-Triggered Events 设定为 Whistle 类型,如图。
之后将蓝框放到你想使笛子生效的地方即可。建议弄成范围框,除非你想设定特殊的传送点。
实际效果图:
3.3 关卡移动设定 + 音乐盒 / 船锚
首先要明确一件事,音乐盒和船锚并不像榔头和传送笛子一样可以仅通过设置 Item-Triggered Events 达成效果,它们与另一个新功能——关卡移动(Level Movement)相关。需要注意的是,音乐盒不需要设定任何事件来激活,只需要对某一个特定的关卡勾选上相关选项即可。
在正式设定这两个道具前,我们要先了解清楚关卡移动功能是怎样运转的。
3.3.1 关卡移动
任意选中一个关卡,把右边的下拉框拉到最底部,会发现一个被折叠的“Movement”选项,点击[-]将其展开,就能够看到以下界面。
*Affected By Musicbox - 该关卡会受到音乐盒的影响,如 SMB3 的锤子龟听到音乐会沉睡
*Begin Setting - 开始设定关卡移动模式
为了方便观察路线,我设定了很多其它的关卡点,如下图:
现在开始设定锤子龟的行动路径,设定成功后每一次退出关卡(无论任何形式)都会使锤子龟发生移动。
单击 Begin Setting,再点击 Set Node,之后会出现一个紫色的框,把这个紫色的框放到任何位置(数量不少于1个)为了方便观看,我把紫色框全部放在关卡点上,如图。
会发现每一个设定的目标点都拥有概率,如果你没有更改过 Node Weight(权重比)的话,默认的概率是均摊的,也就是将 1 这个概率平均分配到 n 个对象上。若是更改了权重比,则又有其它计算方法,在这里不细说,这个并不是那么重要。
在设定完目标点之后,单击 Set Path 将这些目标点两两连接,这样做的目的是使锤子龟能够在两点间进行移动。你可以将所有的点都连接起来,也可以只连接其中特定的一些点,我这里的连接情况如下图。
看上去实在是很复杂,但实际上连接的点越多,移动的方式越多,建议多连几个点。
你还可以选择设定一个最短路径,目前用途不是很明确,就不讲这个了。
完成移动设定之后,单击 Begin Setting,也就是取消勾选,就可以结束设定。如果要查看设定,将鼠标悬停在你设定过移动路径的关卡上就可以。
了解清楚关卡移动之后,就可以正式设定音乐盒和船锚了!
3.3.2 音乐盒
对这个关卡勾选“Affected By Musicbox”即可完成音乐盒的设定,音乐盒生效后,该关卡将不再进行移动行为,如果有贴图的还会播放贴图。(锤子龟有沉睡的贴图)
3.3.3 船锚
船锚的用途和音乐盒差不多,用于使一个关卡停止移动行为,但又有所区别。为了使船锚生效,需要用到 Item-Triggered Events,具体操作步骤可参照下文。
首先我建立了一个名为“Anchor”的事件,使船锚生效后触发该事件。事件的设定非常简单,找到 Events - Others - Others 下的 Anchor ID,默认为 0,你可以设定为除 0 外的任意值,这里我设定为 8,如下图。
接下来 Shift + 右键选中已设定好移动路径的关卡,在右侧框内下拉找到 Events 一栏,设定 ID Number,使其与事件中的 Anchor ID 对应相同。如我设定的 Anchor ID = 8,那么这里的 ID Number 我也要设定为 8,如下图。
设定完毕之后船锚就可以正常使用了!效果图附上:
至此,特殊道具篇完结,有问题的欢迎在评论区提问!
附该篇的教程地图下载: