This commit is contained in:
boybook
2025-12-01 20:59:16 +08:00
parent 12738a142c
commit 760c2dd9ad
5535 changed files with 21070 additions and 2021 deletions

View File

@@ -0,0 +1,17 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 5分钟
---
# 摘要
在本章中,我们将一起学习我的世界开发工作台编辑器的基础知识。了解新版关卡编辑器的各个功能,最后亲手设计一个自己的地形。
- 在第一节(*适应新版关卡编辑器*)中,我们将初步了解**关卡编辑器**的布局,认识界面上的各个窗口。
- 第二节(*创建资源与导入导出*)中,我们将一起操作资源的导入和导出。
- 第三节(*建造并打磨地图*)中,我们将一起在**地图编辑器**中打磨一个地图。
- 最后一节(*挑战:设计地形并和好友分享*),我们将亲手设计一个地形并与好友分享这份喜悦!
本章关键词:关卡编辑器 地图编辑器 资源 资源包 预设 配置 笔刷 地形

View File

@@ -0,0 +1,45 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 5分钟
---
# 适应新版关卡编辑器
为了更好地探索新版关卡编辑器,我们创建一个新版地图组件。这样,我们每次所做的修改都可以跟随地图保留在一起,方便我们进行探索。现在,我们打开这个新版地图。
![新版关卡编辑器](./images/5.1_level_editor.png)
## 什么是预览窗
![游戏预览窗](./images/5.1_preview_window.png)
正如第三章中我们介绍的那样,我们可以看到在界面中央有一个**游戏预览窗**,这里便是我们进行预览更改的地方。我们所有的更改都可以通过这个预览窗具现化、可视化。通过这个预览窗,我们能够直观地感受到我们添加的内容,同时可以便捷地更改各种玩法。
## 什么是属性
![属性](./images/5.1_property_window.png)
在屏幕的右侧,我们可以看到有一个“**属性**”窗格,这里是显示和修改我们自定义的配置或预设的属性的地方。**属性****Property**)是一个配置或预设的各种性质。同一个配置或预设,一旦更改了一些属性,其表现也就会变得略微不同甚至大不一样。
## 什么是舞台
![舞台](./images/5.1_stage_window.png)
在屏幕的左上角,我们可以看到“**舞台**”窗格。**舞台****Stage**)是用于显示当前存档中放置的预设的窗口。我们可以在舞台中看到预设的名字和各种挂接状态,通过在舞台中拖动我们可以更改预设的顺序和挂接状态,更好地进行编辑。我们已经在第三章中初步介绍过预设,在下面的第三节中,我们还会一起使用预设进行各种具体的创作。
## 移动与旋转视角
在预览窗中,鼠标左键主要用于点击和选择预设,那么如果我们要移动和旋转视角,应该如何操作呢?
### 移动
移动分为快速移动和慢速移动,当鼠标的焦点位于预览窗内部时,我们可以通过**W**、**S**、**A**、**D**来进行前后左右的快速移动,通过**空格键**与**Shift键**进行升高和下降。当鼠标的焦点位于预览窗外时,我们可以通过**W**、**S**、**A**、**D**来进行前后左右的慢速移动此时空格键将不起作用同时Shift键仅仅是将视角更改为潜行状态但并不影响移速。
### 旋转
将鼠标焦点移动至预览窗内,按下**鼠标右键**,你将进入旋转模式,此时移动鼠标,视角将会随着鼠标移动而移动。
![坐标系](./images/5.1_frame.png)
在预览窗的右上角,我们还可以看到一个小型的坐标系,那便是我们当前的视角所对应的坐标系。我们可以通过点击坐标系上的**三角形按钮**来快速更改我们当前的朝向。

View File

@@ -0,0 +1,87 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 10分钟
---
# 创建资源与导入导出
本节中,我们将一起学习如何新建资源文件,以及如何导入和导出资源。
## 快捷新建资源文件
在关卡编辑器屏幕的下方,我们可以看到一个“**资源管理**”窗格。
![资源管理](./images/5.2_resource_manager_window.png)
在“资源管理”窗格的最左侧,有三个快捷按钮。其中第一个便是“**新建**”按钮。我们可以通过“新建”按钮来快速创建我们想要的资源文件。
![新建按钮](./images/5.2_new_button.png)
点击“新建”按钮后,我们来到“新建文件向导”对话框,这里列举了所有可以快速创建的资源类型。
![常用选项卡](./images/5.2_new_file_wizard_popular.png)
下面我们一一进行介绍:
![预设选项卡](./images/5.2_new_file_wizard_preset.png)
**预设**选项卡是用来快速建立一个预设的。
- **空预设**:快速创建一个空的预设。
- **实体预设**:快速创建一个实体预设。实体预设会同时创建一个实体配置,这意味着你在这里创建实体预设时将同时创建一个新的实体。如果想以现有的实体为基础创建预设。可以在左侧“配置”窗格中找到实体,右键并选择“**创建预设**”。
- **特效预设**:快速创建一个特效预设。特效预设并不会创建新的特效,你需要手动创建特效并将特效挂接在特效预设上。
- **玩家预设**:快速创建一个玩家预设。玩家预设会在每个玩家身上自动实例化,应用一些玩家特有的逻辑。
- **方块预设**:快速创建一个方块预设。方块预设不会同时创建新的方块,如果想将自己的自定义方块应用在该预设上,需要在创建之后在“属性”窗格中手动输入或选择你的自定义方块。
- **界面预设**:快速创建一个界面预设。你需要在创建之后手动绑定界面。
![代码选项卡](./images/5.2_new_file_wizard_code.png)
**代码**选项卡用来快速创建一个代码逻辑。
- **EmptyPart**:快速创建一个空的零件。
- **ModMain**:快速创建模组主脚本目录和相关文件。
- **ClientSystem**:快速创建客户端控制中心。
- **ServerSystem**:快速创建服务端控制中心。
- **ScreenNode**快速创建UI节点逻辑脚本。
![配置选项卡](./images/5.2_new_file_wizard_config.png)
**配置**选项卡可以用来快速创建一个配置,即快速创建一种游戏玩法的*实体*(此实体是广义的内容实体,非游戏中的实体概念。这个广义的实体包括下面列出的所有内容)。
- **实体**快速创建一个Minecraft中的实体。
- **物品**快速创建一个Minecraft中的物品。
- **方块**快速创建一个Minecraft中的方块。
- **配方**快速创建一个Minecraft中的配方。配方是一种用来合成物品的规则。
- **交易表**快速创建一个Minecraft中的**交易****Trade**)表。交易表可以用来配置类似于村民交易那样的一套交换规则。可以在自定义实体中通过相关的接口来实现交易表。
- **掉落表**快速创建一个Minecraft中的**战利品表****Loot Table*****掉落表***)。战利品表可以用于生物抢夺的掉落物抓取、宝藏和箱子的内容生成等一系列需要带有一个随机性的物品产出过程。
- **生成规则**快速创建一个Minecraft中的**生成规则****Spawn Rule**)。生成规则可以用于自定义生物的**自然生成****Naturally Spawn**)。
- **维度**快速创建一个Minecraft中的**维度****Dimension**)。类似于主世界、下界和末路之地,我们也可以通过此处新建一个新的维度,为我们的模组添加一个“新的世界”。
- **生物群系**快速创建一个Minecraft中的**生物群系****Biome**)。生物群系是一种用于区分一个维度中各种地形地貌、生物植被、建筑结构的生成的一种看不到却能试试体验到的功能。善于自定义生物群系可以极大地提升模组可玩性。其中,**地形生成****Terrain Generation**)是一个生物群系最主要的部分。
- **特征**快速创建一个Minecraft中的**地物****Feature*****特征***)。地物是一种可以用于特定种类的结构或方块集团快速生成而编写的功能。我们在世界中看到的树木、花草、矿石的矿脉乃至水晶洞、矿洞和各种遗迹都是地物的杰作。
- **特征生成**快速创建一个Minecraft中的**地物规则****Feature Rule**)。地物规则控制了地物如何**自然生成****Naturally Generate**)。
![蓝图零件选项卡](./images/5.2_new_file_wizard_blueprint_part.png)
**蓝图零件**选项卡用来创建适用于逻辑编辑器蓝图的**蓝图零件****Blueprint Part**)。
- **BlueprintPart**:创建一个空的蓝图零件。
- **BlueprintUIPart**创建一个空的UI蓝图零件。
## 导出资源包
当我们制作好了一个资源包后,我们就希望将其导出以备他用。这里的**资源包**并非指我们通常用来存放纹理、模型等客户端资源的资源包Resource Pack而是指代“带有资源的包”通常指我们所创建的预设、配置、特效和模型等资源的集合体是一个`.mep`格式文件。通过“**资源管理**”窗格左侧的导出功能,我们可以将我们目前制作的一些资源或所有资源导出为一个资源包。
![导出按钮](./images/5.2_export_button.png)
点击窗格左侧的“**导出**”按钮,我们可以看到弹出了一个“导出为资源包”的对话框。选择好我们想要导出的文件,点击“**导出**”,选择好位置后即可成功将资源导出备用,以便来日再选择导入或传给他人。
## 导入内置或外部资源
正如我们可以导出资源包,我们也可以导入资源。点击“**资源管理**”窗格左侧的“**导入**“按钮,我们可以看到有”**导入预设**“”**导入零件**“”**导入内置资源包**“和”**导入自定义资源包**“。
![导入按钮](./images/5.2_import_button.png)
我的世界开发工作台内置了一系列资源包供我们导入,我们可以通过这些内置资源学习各种开发功能,丰富我们的开发技巧。点击”**导入内置资源包**“即可选择一个内置资源包来导入。
”**导入自定义资源包**“则用于和上述的导出资源包功能相配套,方便我们导入之前曾经导出的资源包。

View File

@@ -0,0 +1,139 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 入门
time: 15分钟
---
# 建造并打磨地图
在本节中,我们将一起使用**地图编辑器**学习如何建造和打磨地图。我们使用和上文中同一个测试地图,在顶部将编辑器类型切换为“地图编辑器”即可打开我们的地图编辑功能。
和其他编辑器一样,地图编辑器也具备撤销和重做的功能,所以各位开发者们在摸索地图编辑器时不必担心会破坏地形,放心大胆进行探索即可。如果有操作失误,也可以及时使用快捷操作栏中的“撤销”按钮来撤回错误的操作。
![地图编辑器](./images/5.3_map_editor.png)
## 选取、拖动与缩放区域
如果你是初次进入地图编辑器,我们可以看到顶部的快捷操作栏中的”**选取**“按钮已经被按下,此时我们处于**选择模式**。在选择模式下,我们可以在预览窗中按下鼠标并拖动以**选取**区域。如图,我们选取了一个区域:
![选择了一个区域](./images/5.3_map_editor_region_selected.png)
我们可以通过该区域的某个顶点(示例中是右下角顶点)的坐标轴来移动这个区域。按住某个轴再进行**拖动**可以使区域沿该轴移动。按下坐标轴原点的方块再移动可以使其自由移动。
我们在选择好一个区域之后依旧可以更改该区域的选择范围。只需将鼠标移动到对应的面上,按住该面进行拖动,就可以在该面垂直的方向上增大或缩小区域。
我们称如此选中了一个区域的边界盒为**包围盒**。我们单击选中包围盒,点击顶部快捷操作栏中的“**编辑**”按钮,可以使其进入**编辑模式**。
编辑模式下的包围盒如果再次进行拖动,将带领其内部的所有方块一起移动。如果拖动某个面进行缩放,将使其内部的方块一同“**缩放**”,此时缩放可能会导致内部的方块失真。同时,进入编辑模式后会呼出一个二级菜单,通过该二级菜单我们可以进行同样的缩放以及旋转操作。
![二级菜单](./images/5.3_edit_menu.png)
## 撤销、重做与清除区域
在快捷操作栏的最左侧,我们有“**撤销**”和“**重做**”按钮。通过这两个按钮我们可以随时撤销我们的上一步操作,如果误撤了操作,还可以随时通过重做按钮进行恢复。
![撤销和重做](./images/5.3_undo_and_redo.png)
如果我们想清除某片区域,比较快捷的方法是使用“**橡皮**”。我们在快捷操作栏中选中“橡皮”。
![选中橡皮](./images/5.3_erase.png)
然后在预览窗中想要清楚的部分进行涂抹,即可快速清除方块。
当然,橡皮的清除效率还是有限。为了提高清除效率,一个更好地方法是先通过“选取”进行区域的选择,然后直接按下**Delete键**,即可将区域内的方块清空为空气。
## 使用方块作为素材
为了使地形制作更为便捷,我们可以使用**素材**来快速地在世界中放置一些结构。在左下角我们可以看到**素材库**窗格。我们可以通过我的世界开发工作台产生的素材文件(`.mld`文件)、地图文件(`.osm`)文件和各种模型文件(`.obj``.fbx`等)来导入一个素材。导入的素材便可以作为快捷途径一键设置在世界中。
下面我们演示使用方块作为素材。
### 保存素材
为了使用方块作为素材,首先我们需要在地图中将一些方块保存为素材。我们在此选中一棵桦树,点击上方的“**保存为素材**”按钮来保存素材。
![保存素材](./images/5.3_pumpkin_material.png)
此时我们便可以看到我们左下角的“素材库”窗格中出现了我们刚刚保存的素材:
![素材](./images/5.3_material_saved.png)
我们还可以通过右键该素材选择“导出”来将其导出为`.mld`文件以备他用。
![导出素材](./images/5.3_material_export.png)
### 放置素材
此时我们只需要鼠标左键单机该素材,便可以在世界中选择位置进行放置。
![放置素材](./images/5.3_pumpkin_set.png)
## 利用笔刷预设改变空间
我们可以使用**笔刷**快速地在世界中以特定的形状“刷上”特定的方块。笔刷预设分为“单点笔刷”“方形笔刷”“球形笔刷”“圆柱笔刷”和“半球笔刷”。
![半球笔刷预设](./images/5.3_brush_preset.png)
我们在“**材质预设**”窗格中添加自己想要的笔刷材质,然后在顶部的快捷工具栏中选中“**笔刷**”按钮。
![](./images/5.3_brush.png)
即可开始在世界中以笔刷预设的形状放置方块。
![半球笔刷](./images/5.3_semisphere.png)
## 使用地形预设设计地形
除了笔刷,我们还可以通过**地形预设**来改变地形。地形预设是一系列预先设定好的地形操作模式分为“隆起”“侵蚀”“平滑”“填充”“顶层覆盖”和“植物”其中除了“植物”外其他的都是单纯的对地形进行操作比如“隆起”就是让指定区域内的方块隆起1格。
![地形预设](./images/5.3_terrain_preset.png)
选中想要的地形预设,配置好相关的参数,然后在顶部快捷工具栏中选择“**地形**”按钮,就可以开始改变地形了。
![隆起](./images/5.3_bump.png)
## 改变时间、能见度和出生点
我们可以通过顶部快捷操作栏中的“时间“”能见度“和”出生点“按钮快速改变当前的能见度、时间和出生点。值得注意的是,能见度改变的只是当前编辑器内的能见度,但是时间和出生点的改变将会影响地图发布后的时间和出生点。
![时间、能见度和出生点](./images/5.3_spawn_point_time_and_render_distance.png)
改变出生点:
![改变出生点](./images/5.3_change_spawn_point.png)
改变时间为午夜:
![改变时间为午夜](./images/5.3_change_time.png)
增加能见度:
![增加能见度](./images/5.3_change_render_distance.png)
## 进入游戏模式
我们在地图编辑器中可以通过进入**游戏模式**来真实地体验我们编辑的地形,同时也可以方便我们制作一些素材。点击右上角的“**游戏模式**”按钮来进入游戏模式。
![](./images/5.3_gaming_mode.png)
进入游戏模式后,将模拟玩家在真实游戏中的控制。你将可以使用正常的键鼠控制来游玩你刚刚编辑的世界:
![游戏模式](./images/5.3_in_gaming_mode.png)
在游戏中按**Esc键**将返回普通的选择模式。
## 保存区域结构并跨存档分享
在选中一定区域后,除了保存为素材,我们还可以将其保存为结构,并在其他存档中通过结构方块加载它们。选择“保存为结构”,输入结构名即可将其保存为结构:
![保存为结构](./images/5.3_save_as_structure.png)
保存的结构将会出现在你的行为包的`structures`文件夹下的`<namespace>`文件夹中,比如我当前的命名空间为`demo_world`,则它会出现在`structures`文件夹下的`demo_world`文件夹中。
![保存的结构](./images/5.3_saved_structure.png)
我保存的结构名为`some_grass_block`,因此结构文件的名称将是`some_grass_block.mcstructure`。在结构方块中,我们只需要调用`demo_world:some_grass_block`即可成功调用我们的结构!
## 当前编辑器的限制
需要提醒的是,当前的关卡编辑器和地图编辑器还有一些限制的,比如无法进入其他维度进行调试等,需要各位开发者稍加注意。

View File

@@ -0,0 +1,123 @@
---
front: https://nie.res.netease.com/r/pic/20211104/69055361-2e7a-452f-8b1a-f23e1262a03a.jpg
hard: 高级
time: 15分钟
---
# 挑战:设计地形并和好友分享
在本节中,我们将一起设计一个湖泊湿地并通过导出的方式与好友分享。可以点击 [对应的湿地链接](https://g79.gdl.netease.com/addonguide-6.zip)下载资源。
## 设计一处湖泊湿地
为了快速设计一处湖泊湿地,我们需要用到地形编辑器的笔刷和地形预设。为了大家快速上手,我们本次演示设计一个比较小的湖泊湿地,大家可以根据自己的喜好自行进行操作,充分发挥想象力,无需拘泥于复原本教程图示中的样子。
首先,为了做出一个湖泊,我们可以先将地表“挖”出一个坑,比较简单的方法便是通过选区功能选择并使用**`Delete`键**快速删除一部分方块。比如,我们可以如下这样选择并删除。我们采用“**多选模式**”:
![](./images/5.4_select_region.png)
![](./images/5.4_delete_region.png)
接下来,我们将湖底填充为沙子来模仿真正的湖泊。我们打算使用沙子材质的**单点笔刷**,放置基点改为**居中**。小心地填充每一处区域。
![](./images/5.4_set_sands.png)
当然,如果地块较大,我们便推荐另一种便捷的方式——**顶层替换**。哦们切换到“**顶层覆盖**”**地形预设**,然后点击“**顶层替换**”按钮。
![](./images/5.4_top_replace.png)
这样我们便可以使用顶层替换功能批量替换我们的地形的最顶层方块。
![](./images/5.4_top_replace_effect.png)
我们为了让湖泊更真实,需要让湖泊稍加凹陷。我们打算采用“**侵蚀**”**地形预设**。为了使侵蚀有效,我们先在湖泊中央删去一个方块。
![](./images/5.4_delete_rectangle.png)
![](./images/5.4_deleted_rectangle.png)
然后从中间这个方块处开始向四周“涂抹”侵蚀。
![](./images/5.4_erose.png)
这样就形成了最中间为泥土,靠近岸处为沙子的湖泊结构。接下来我们填充水体。我们使用顶部功能区中的“替换”功能。我们先选中我们的整个湖泊,我们欲将选中区域内的空气方块替换为水。我们点击快捷功能区中的”**替换**“按钮。
![](./images/5.4_set_water.png)
![](./images/5.4_water_replace.png)
我们找到空气那一栏,我们希望将后面的方块替换成水。此时,我们选择静止的水来替换,所以我们不选择”流动水“,而是直接选择”水“。
![](./images/5.4_water_replaced.png)
可以看到,我们已经成功将水体放置在湖泊中了!
![](./images/5.4_water_set.png)
现在,我们已经完整地制作了一个湖泊,但是,这个湖泊明显并不是很真实,所以我们继续制作它的“外饰”。比如,我们想制作一个假山。我们可以使用“**隆起**”**地形预设**,并稍微调小半径。
![](./images/5.4_make_rockery.png)
我们还可以再假山上放置一个水源来模拟一个泉眼。我们使用单点笔刷放置一个水源。注意,此时我们应选择流动水,否则方块将无法更新,水将无法流下假山。
![](./images/5.4_make_foutain.png)
![](./images/5.4_foutain.png)
> **补充知识**:液体方块的更新原理
>
> 液体方块一般都同时存在两种方块,分别是**静止形态**和**流动形态**。静止形态的液体在世界中不会时刻进行方块更新。只有当静止形态的液体的毗邻发生更新时它才会受到更新,然后转变为流动形态的液体。而流动形态的液体自存在起便会时刻进行更新,直到其方块状态相对固定,然后重新变为静止形态。所以当放置流动形态的液体方块时他们会立即开始流动,而静止形态的液体方块则会因为得不到更新而静止在空中。
>
> 事实上水源方块和水流方块在本质上并没有什么区别。不管是流动方块还是静止方块只要其附加值为0即是水源可以与桶互动其余的附加值皆为水流不可被桶捞起。
在“生成”了一个假山后,我们还可以通过花草树木对湖泊进行点缀。目前新版编辑器中还没有一个相对较好的放置花草的方法。我们直接点击右上角的按钮**进入游戏模式**通过骨粉放置花草。
![](./images/5.4_gaming_mode.png)
![](./images/5.4_use_bone_dust.png)
同时也可以对地形上一些“漏洞”进行修补。
![](./images/5.4_make_smoother.png)
回到正常模式,我们可以看到我们的湖泊已经被花花草草围绕了。
![](./images/5.4_grass_set.png)
接下来我们放置一棵树,以作为收尾。我们可以通过“地形预设”中的“植物”预设来放置一棵橡树。通过放置、撤销、再放置的循环直到放出一棵你理想的“树型”,比如如下这种效果就很合适:
![](./images/5.4_tree_set.png)
至此,我们大功告成!我们成功地制作了一个湖泊湿地的地形。现在再看起来,这个地形已经“比较真实”了。我们可以用它当做素材来进行以后的创作了。
## 导出为素材和结构
为了接下来进一步使用该地形,也为了便于分享给他人,我们可以将其导出为素材或结构。首先,我们将我们制作的地形完整地选中。
![](./images/5.4_region_bounded.png)
### 导出为素材
我们点击顶部的“**保存为素材**”,就可以将该地形保存为素材。务必取消“去除流体”的选项,否则将无法保存水。
![](./images/5.4_save_as_resource.png)
保存之后,我们可以在素材库中看到我们的地形。我们可以右键它继续选择导出,即可导出到外部。
![](./images/5.4_export_waterland.png)
![](./images/5.4_export_successfully.png)
### 导出为结构
我们点击顶部的“**保存为结构**”,就可以将该地形保存为结构。此时结构便位于行为包的`structures`文件夹内,直接将其复制出来即可。
![](./images/5.4_save_as_structure.png)
当然,如果你的结构相当大,已经不适用于使用一个单独的结构文件保存了。那么编辑器此时还提供了切分结构的功能。选中“切分结构”,此时我们可以将大结构切分成许多小结构。
![](./images/5.4_cut_structure.png)
此时,编辑器还会生成一个对应的`.json`扩展名文件用于保存各个切分结构的位置信息。你可以后续通过模组API中的`PlaceStructure`接口通过脚本还原放置这个切分结构到你的世界中!
至此,你已经成功地导出了素材和结构了,与其他开发者伙伴们分享你的成果吧!