奇遇 Set Piece
本教程基于 JackSlender 和 Kzisor 在 Klei 论坛上的教程整理。
引言
本教程讲解如何制作自定义的奇遇 / 彩蛋(即一块已经构建好的地形)。学习之前,你应该已经掌握 Mod 基础(文件夹结构、modmain 等)。
准备工作
运行饥荒 MOD 工具,然后启动 Tiled。这个程序相当强大,但制作彩蛋只需要用到最基本的功能。
点击「文件 → 新建」,会弹出一个小窗口:
- 地图大小:宽度、高度
- 块的大小(像素):设为 64×64。游戏里一块就是 64 像素;如果你设成 16×16,那么 4 块才相当于游戏里的一块
下载一份图块集合,用来编辑彩蛋地形。
点击「地图 → 添加外部图块」(不是新图块),选择刚下载的文件。解压后有一个 png 图片和一个 .tsx 文件,后者就是图块文件。导入成功后,右下角会显示可用的地皮纹理。
先给图层命名:在右边「图层」选项卡里找到「块层 1」,双击重命名为 BG_TILES;再在选项卡空白处右键,选择「添加对象层」,重命名为 FG_OBJECTS。准备工作到此完成。
开始创建奇遇
在左边地图上铺设地皮。请确保当前选中的是 BG_TILES 图层(否则铺不了地皮)。在图块集右下角选中需要的图块,然后在屏幕中间单击并拖动即可铺开。
记住游戏里图块是 64×64。如果你把图块设成了 16×16,那就要用 4×4 个图块拼成游戏里的一块。
接下来创建物品:选择 FG_OBJECTS 对象层,切到「对象」选项卡,单击工具栏上的「插入矩形」。
在你需要的位置单击,会出现一个小灰色矩形。右键单击它,选择「对象属性」,会弹出对话框。在「类型」编辑框里输入要生成的预设物(prefab)名称。注意:必须填在「类型」框里,填在「名称」框不会生效。 点击确定即可。对象数量不限。
可以用工具栏的光标工具移动对象,右键选择「删除 1 个对象」可删除。
建议随时保存。最后一步最重要:文件 → 导出为…,另存为 Lua(*.lua),然后放到 /你的mod文件夹/scripts/map/static_layouts/。
实现奇遇
添加代码把它初始化进游戏:
1 | -- 引入需要的模块 |
这段代码应保存到 modworldgenmain.lua,与 modmain.lua 放在同一位置。
制作场景
如果已经在奇遇中的对象上添加了场景属性(位于 scripts/scenarios 文件夹内除 .lua 之外的文件),就可以把它链接到脚本场景。场景预加载时,这个脚本也会被加载,文件结构如下:
1 | local function OnCreate(inst, scenariorunner) -- 只在首次加载执行 |