UndertaleModTool介绍&使用 #5 (从零开始创造一个能对话的object)
在上一部分中,我们分析了一个典型的对话object,接下来我们进一步学习如何模仿它创造一个新的对话object

作为预备,我们有必要打开游戏的debug模式,去除dogcheck,这可以通过运行


这两个脚本来实现,为调试方便,我们再运行这个,使游戏内按F3会出现房间跳转功能

关于debug的详细功能,我在一篇专栏里写到过,这里不做赘述

在创造object之前,我们有必要为它绘制一个贴图,这里我们省去这个步骤,从游戏minecraft里直接拉出来一个

获得贴图之后,我们需要将它导入游戏,为了方便,我们直接导入到Embedded textures中

找到你刚刚创建的这个,打开它,使用import将这个贴图导入

之后在Texture page items里添加新的


注意到贴图的文件,我们右击查看属性,显示尺寸为16 x 16

因此我们将这些空填成,就完成了该图像的导入


导入之后,我们希望用它创造一个Sprite,右击Sprites/add创建一个新Sprite,给它命个名,选择这个选项。Maegin right填成size第一个值减一;Maegin bottom填成size第二个值减一



用画图之类的软件绘制遮罩,以便玩家不是碰到这个钻石镐就会停住,而是一部分能触碰,一部分能穿过。其中白色的区域是不能过去的,黑色可以通过



至此,我们完成了一个基本的Sprite,现在我们开始进入正题,创造一个对话Object

这个object的sprite使用拖拽的方式,把刚才我们创建的sprite拖进去,同样的,给它设一个Parent

如法炮制,我们创建这三个code

模仿上一篇中的仙人掌对话object,我们在pickaxe_create里写入
在pickaxe_step里写入
在pickaxe_alarm里写入
在ut的对话中,我们有这个要求
1.格式应该是 global.msg[0] = " xxxxxxxxxxxxxxxxxx /%%",如果你不想一句话就结束,那么就接着写 global.msg[1(可以类推到2,3,4.....)] = " xxxxxxxxxxxxxxx /%%" 并且将msg[0]里的“%%”给去掉,这个“%%”意味着对话在这一步结束。举个例子,这里刚对话是显示“* 1”,按一下“Z”或“Enter”跳到下一句,再按一下显示“3.”,再按就结束了对话
2.常见的标识:
&:换行 ; \C:意味着后面的东西是选项,可以选择 ; %%:结束对话 ;^n:n代表停顿的时间,意味着对话会顿一下,再进行下一句 ; \R:红色 ; \G :绿色
最后,我们将代码导入object,依然是双击左键添加,然后把对应代码拖到上面,注意我们选用的step类型是begin step,否则会替换其Parent中step里的代码,导致无法对话


下一步,我们将这个object导入房间,这里选的房间是room_ruins7A。导入的object选中可以拖动到你想要的位置

在UTMT界面,File/save里,替换掉原有data.win,打开游戏,按F3,输入room_ruins7A,回车或按“Z”


至此,我们完成了本次修改,实现了一个简单的对话object