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,3 @@
# 教程示例下载
玩法地图进阶教程所开发的Demo可点击 [这里](https://g79.gdl.netease.com/MapTutorialDemo.zip) 下载到本地。

View File

@@ -0,0 +1,58 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/1-1.221f1a2b.jpg
hard: 入门
time: 5分钟
---
# 什么是玩法地图?
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=62457fab75882ab49558bcc9" width="800" height="600" allow="fullscreen"/>
跑酷地图、冒险地图、生存地图、小游戏地图、解密地图等各种类型的地图都可以称之为玩法地图;它们依赖于原版的游戏内容并进行扩展,在基础上创新出更多的“可能性”。同时玩法地图又需要区别于原版游戏,这就是 **核心玩法** 在玩法地图中的重要性。
![1-1](./image/1-1.jpg)
**本系列教程将会从头至尾讲解如何制作并发布一张玩法地图,使萌新开发者成为一名合格的玩法地图开发者。**
## 对比玩法地图和玩法组件的区别
首先玩法地图和玩法组件最明显且最需要关注的区别就是“自由度”。玩法地图一定是依赖于一个地图场景的,玩家将会在这个地图场景内完成所有游戏,就算是开放世界玩法的地图也一定会有“边界”;
而玩法组件则不需要,在无限生成的原版世界中添加扩展玩法内容即可。
![1-2](./image/1-2.png)
因此我们也可以推断出:游戏场景是组成玩法地图的重要元素。所以在后面的章节中,我们将着重介绍如何利用开发者工作台和其它软件工具高效制作游戏场景。
如果开发者想要让玩家更沉浸于游戏中,甚至将自己代入进游戏的角色,那么应该选择玩法地图;相较于功能组件,地图可以使玩法更完整,体验时的沉浸感更强。地图内的一切都由开发者决定,塑造什么风格的场景也将更好把控,玩家大致的动向也可以把握。
![1-3](./image/1-3.png)
想象一下:玩家出生在一片灰暗的密林中,四周漂浮着灰尘与微光,玩家需要在密林中探索,寻找重要的宝物以逃出生天;在这期间可能会遇到怪物、发现遗迹、获得战利品。
在这样的描述中,如果想要十足的代入感并且控制玩家游玩风向的同时保证游戏体验,玩法地图绝对是优选。
## 玩法地图需要的元素
玩法地图必须具备的元素有:
- 核心玩法:核心玩法将会贯穿整个游戏过程,玩家将一直围绕它游玩。
- 游戏场景:玩家活动的区域,可以尽可能的大或小,但不能没有或无限大。
除此之外可以拓展的加分元素:
- 数值体系:属性的克制关系、装备的加成、等级提高的成长等。
- 通关目标:玩家需要朝着目标进行游戏,最终通关。
- 附加玩法:在核心玩法的基础上堆砌更多的分支玩法,增加可玩性。
充分结合以上这些元素,合理运用并且发挥创意才能开发出优质的玩法地图!
## 体验优质的玩法地图
在我的世界中国版的资源中心里,有很多作品,建议萌新开发者在学习开发前先去体验一些作品,对地图和组件有一些了解;除此之外,体验优质的玩法地图也是很重要的一课,因为这不仅可以学习好的游戏设计,还可以了解什么样的游戏内容可以使玩家得到更好的游戏体验。
我的世界开发者官网中也有相关的教程和示例:[《我的海滨农场》](../../20-玩法地图教程/第00章示例下载/示例下载.html)
![1-4](./image/1-4.png)
**课后作业:** 尝试体验一些优秀的玩法地图并分析自己喜欢或不喜欢的部分。

View File

@@ -0,0 +1,137 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/2-2.64c9a165.png
hard: 入门
time: 20分钟
---
# 什么是开发工作台?
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=624583ef75882ab49558bce9" width="800" height="600" allow="fullscreen"/>
在[我的世界开发者官网](https://mc.163.com/dev/index.html)主页上可以下载我的世界中国版开发者们的“利器”:**我的世界开发工作台**。
![2-1](./image/2-1.png)
开发工作台集成了多种开发者需要常用的功能:新闻资讯、开发动态、收益数据等...;最重要的是它提供了便利的开发工具,可以使组件开发变得更加简单、高效。
![2-2](./image/2-2.png)
## 打开并使用编辑器
在创作栏中,新建一个空白地图;创建后在作品库的基岩版组件中找到新建的地图,点击编辑即可打开编辑器。
![2-3](./image/2-3.png)
打开编辑器会默认切换到地图编辑器算上它一共有6种编辑器
- 关卡编辑器:新建自定义游戏内容(物品、方块),提供放置预设、特效等的舞台;
- 预设编辑器:创建零件、预设并对其编辑;
- 地图编辑器:对地图的地形、建筑等进行修改。保存结构、素材以便复用;
- 界面编辑器制作UI界面
- 特效编辑器:制作粒子、序列帧特效;
- 逻辑编辑器:编写可视化蓝图代码。
以上6种编辑器在开发中都有或多或少的用处在本章中将介绍地图编辑器讲解如何使用地图编辑器制作建筑并保存为素材方便后续使用。
![2-4](./image/2-4.png)
## 地图编辑器
点击编辑后,会默认打开地图编辑器;
![2-5](./image/2-5.png)
如图所示,红色框内为工具栏,我们将使用这里的工具进行制作;橙色框内有笔刷材质、笔刷预设以及素材库,制作好的建筑可以保存为素材,在素材库中随时调出使用;蓝色框则是游戏画面,移动飞行等操作均和游戏内一致;绿色框内则有一些附加的功能。
### 笔刷工具
![2-6](./image/2-6.png)
选择笔刷工具,在**材质预设窗口**和**笔刷预设窗口**调整笔刷的材质和大小,然后点击地图任意位置即可放置方块,同时也支持拖动鼠标一键放置多次。
<img src="./image/2-7.gif" alt="2-7" style="zoom:115%;" />
材质预设窗口还可以使用吸管吸取点击的材质;也可以将材质混搭,同时刷出多种方块材质,让地形更加自然。
![2-8](./image/2-8.png)
笔刷还可以选择形状并调整长宽高,在笔刷预设窗口选择,分为:单点笔刷、方形笔刷、球形笔刷、圆柱笔刷、半球笔刷。其它功能也有其用处,合理运用,事半功倍:
- 中空结构:笔刷生成的形状内部为空气。
- 直线生成:选择两点,在这两点形成一条线生成形状。
- 覆盖原方块:笔刷将会对操作的原方块进行替换。
- 连续生成间距:在拖动放置时,与上次生成形状的距离。
- 放置基点:基于笔刷点击位置,选择形状将会生成在哪一侧。
- 放置方向:旋转笔刷的形状。
### 地形工具
地形工具可以对地形进行调整,如平滑、侵蚀等;下一章节将会对地形工具着重介绍,在这里不多赘述。
### 选取工具
选择选取工具后拖动鼠标即可划出范围在选取后可以按下选区的某个边进行放大或缩小或是拖动对应XYZ轴的箭头移动。
<img src="./image/2-9.gif" alt="2-9" style="zoom:115%;" />
多选模式还可以一次调整多个选区,更加便利。
![2-10](./image/2-10.png)
在选择选区后可以将选取内的方块保存为结构或保存为素材结构可以通过feature在世界中随机生成。素材会保存在编辑器中就算切换地图这些素材依然可以使用。除了开发者自己保存的素材编辑器内还有一些内置素材这些素材均来自原版的结构村庄房屋、林地宅邸、沉船等。
![2-11](./image/2-11.png)
当有了选区后,我们可以对选取进行下一个工具的编辑操作。
### 编辑工具
编辑模式下工具栏一直处于灰色无法点击状态的6种工具亮了起来这些工具是基于编辑工具使用的。我们将这棵树框选起来接下来就可以对这个选区内的树进行如下操作
- 复制:保留选区内的方块,复制出一份可以任意放置的素材。
- 剪切:清空选区内的方块,复制出一份可以任意放置的素材。
- 堆叠:将选区内的方块以某个方向连续复制,直接放置。
- 填充:将选区用某个方块填满。
- 替换:替换选区内的某个方块为另一个方块,如:草方块 -> 泥土
- 偏移使选区向任意XYZ移动不影响选区内的方块。
复制,剪切操作还会在编辑器右侧的剪贴板中留有记录,如果不小心误操作,还可以通过剪贴板选择回来。
### 橡皮工具
点击或拖动,即可清除地图中的方块:
<img src="./image/2-12.gif" alt="2-12" style="zoom:115%;" />
## 制作建筑并保存为素材
接下来,我们使用地图编辑器制作一些建筑装饰,并且使用选取工具将它们框选起来保存到素材库中。
![2-13](./image/2-13.png)
如果提前做好了建筑,可以将存档导入到编辑器中再进行保存;点击 **本地导入-选择存档-导入**。接下来再找到导入的地图点击编辑,就能看到提前做好的建筑了。
![2-14](./image/2-14.png)
当然也可以利用地图编辑器直接开始制作。使用半球形状的笔刷,在材质预设中添加多种方块:石头、原石、青色陶瓦等并调整混合比例,简单修改大小、放置基点和放置方向,随便点两下;大小、材质形状不一的石块就出来了。
*编辑器的窗口可以随意拖拽放置,为了看的更直观,图片中把材质预设窗口放在了右侧*
![2-15](./image/2-15.png)
还可以使用单点笔刷或是橡皮工具微调,亦或是点击右上角的游戏模式进入到地图中亲自修改。
<img src="./image/2-16.gif" alt="2-16" style="zoom:115%;" />
使用选取工具快速放置方块,在制作建筑的时候可以事半功倍,节省很多时间;不过一般适用于一些需要重复且大量的填充工作上,在一些小型的建筑上并不推荐,会适得其反。
![2-17](./image/2-17.gif)
下一章节我们会学习如何使用地形工具,到时也需要选取和编辑工具协同使用,所以地图编辑器的各个工具都是相辅相成的。
![2-18](./image/2-18.png)
制作完建筑后,使用选取工具将建筑圈起来,并点击上方的保存为素材并修改名字,然后就可以在自定义素材库中看到了;去除空气和去除流体如字面意思,就是在保存素材的时候是否将空气和流体(水、岩浆)也保存进去,将由开发者视情况决定。
![2-19](./image/2-19.png)
**课后作业:** 尝试使用地图编辑器制作建筑、装饰,或是导入外部存档,将制作的建筑保存为素材。

View File

@@ -0,0 +1,153 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/3-1.9e1364d9.png
hard: 高级
time: 20分钟
---
# 游戏场景在玩法地图中的地位
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=6245844875882ab49558bcef" width="800" height="600" allow="fullscreen"/>
在第一章内容中,我们介绍了组成一张玩法地图必备的要素,其中就包括:游戏场景。简要来说可以分成地形+建筑,捏造好地形,在地形中“贴上”建筑,就已经形成游戏场景了。
场景在游戏地图中是非常重要的,玩家进入游戏后第一步就是欣赏游戏场景,在游玩过程中也无时无刻不与场景打交道;建筑大观类型的地图中,只有场景建筑,没有任何玩法,即使这样也有很多玩家愿意花费时间欣赏和体验,所以这就是为什么玩法地图需要打磨好场景。
![3-1](./image/3-1.png)
*以《我的海滨农场》举例,地图场景由岛屿地形(灰色部分)和建筑(彩色部分)组成;而海洋则充当边界的身份。*
建筑方面无论是在地图编辑器中使用工具制作还是进入存档手动制作都是由开发者亲自设置的方块组成在一起一步一步拼接起来。而地形不太一样使用地形工具可以快速生成大量的方块并由开发者调试本章就要教大家如何使用编辑器的地形工具制作地形并简单介绍地形软件WorldPainter。
## 地形工具
打开地图编辑器,在工具栏中我们可以找到地形工具,同时还会有一个“地形预设”窗口。我们可以使用这些预设捏造地形:
- 隆起:将地形慢慢鼓起,层层堆叠越来越高。
- 侵蚀:逐渐削减地形方块直至平面。
- 平滑:使地形摩擦的更加平滑,坡度更加自然。
- 填充:可以将坑洞填充起来,直至平面,和隆起类似。
- 顶层覆盖:通过材质预设选择方块,并在地形顶部涂刷。
- 植物:点击生成原版的植物。
除植物外这些预设都可以在预设窗口调整操作的区域为圆形或方块、调整区域大小、是否影响流体方块(勾选后地形工具则会避开流体);
### 隆起
点击地面,可以使地形慢慢鼓起来,点击范围内的方块决定隆起的方块材质;
<img src="./image/3-2.gif" alt="3-2" style="zoom:115%;" />
### 侵蚀
与隆起差不多相反,每次点击或按住,地形则会不断被削减,直至成为平面。
<img src="./image/3-3.gif" alt="3-3" style="zoom:115%;" />
### 平滑
使参差不齐的地形逐渐平滑,平滑的标准与原版生成的地形类似。
<img src="./image/3-4.gif" alt="3-4" style="zoom:115%;" />
### 填充
对坑洞使用,可以很快将其堵实,如果一直在同一位置点击,填充为平面后将不会继续向上堆叠,这点与隆起不同。
<img src="./image/3-5.gif" alt="3-5" style="zoom:115%;" />
### 顶层覆盖
顶层覆盖可以在材质预设窗口选择方块,在点击的地方涂刷一层方块。与其它预设不同的是,顶层覆盖还可以选择涂刷的层数以及效果:顶层覆盖、顶层替换、表层替换;这三种效果略微有所不同。
<img src="./image/3-6.gif" alt="3-6" style="zoom:115%;" />
### 植物
选择植物类型,点击即可生成(需要在环境事宜的方块上,如树木需要在泥土或草方块上)
<img src="./image/3-7.gif" alt="3-7" style="zoom:115%;" />
## 捏造地形
接下来我们使用这个地形预设并配合其它工具捏造简单的地形。先使用选取工具从树林中清出一片范围:选取范围 -> 替换 -> 树叶和木头替换为空气。
![3-8](./image/3-8.png)
### 山体
利用笔刷工具或是地形工具的隆起,圈起一片范围;随意一点,根据自己的想法任意捏造,圈起范围的这些石头就捏成山体,当然目前来看是完全无法使用的,非常不自然而且也完全不像山。
![3-9](./image/3-9.png)
然后通过侵蚀,削减一些坡度,尽量让这些规则的球体看起来不再“规则”,更加自然。
![3-10](./image/3-10.png)
这里需要提醒一下,捏造地形的方式和风格并不需要统一,每个开发者都有自己的想法,开发出的成品也是五花八门的;发散创意,也是开发中关键的一步!例如地形也完全可以不偏向自然、拟真,方方正正也是很好的选择:
![3-11](./image/3-11.png)
*《丛林激流》Demo地图的大厅就是使用地图编辑器的笔刷功能制作的整体看起来自然不违和。*
回到教程内容,继续在石头山体的外圈刷更高的山体,体现出重峦叠嶂的层次感。并且通过侵蚀、平滑使其更加自然。
![3-12](./image/3-12.png)
若只有一种方块,山体会非常的单调、不自然;所以我们需要将其框选起来,随机替换一些颜色类似或是可以是山体更加自然的方块材质:石头 -> 石头60%圆石20%,安山岩/磨制安山岩20%。整体替换后,再根据山体的坡度或是层数使用顶层覆盖涂刷其它材质的方块。
![3-13](./image/3-13.gif)
这个山体我主要在坡度的位置和山顶的位置分别涂刷了青色陶瓦和灰色混凝土、混凝土粉末方块,整体呈灰黑色调,没有过多地修饰,一眼看过去会觉得光秃秃的。开发者们在学习了方法以后,一定可以更好的利用工具制作好看的地形。
### 湖泊
因为山体内预留的空间较小,如果在这个范围内捏造一个湖泊,可能就没有其它的活动空间了,所以我打算从山体的某一位置掏出一个湖泊,类似溶洞的效果;
![3-15](./image/3-15.png)
可以使用笔刷工具将材质预设修改为空气勾选覆盖原方块并且把放置基点调整为居中这样我们就DIY出一个大型的橡皮擦。
![3-14.gif](./image/3-14.gif.png)
掏出一个新的区域后,我们继续对其粉刷,使其更加自然,融入地形。
![3-16](./image/3-16.png)
除此之外,我还在溶洞上方的山体上也挖除了一个小水池,并且将水池下方与溶洞打通,这样水就会流向溶洞的水池,形成关联。
![3-17](./image/3-17.png)
至此,我们的地形就捏造的差不多了,现在整体来看,还是很荒凉,无论是山上还是盆地内,或是溶洞的水池,都没有任何其它的东西,于是,我们需要添加植被和自然景观。利用原版的花草、石锥等继续完善地形。
![3-18](./image/3-18.png)
原版有大量修饰洞穴、溶洞的方块和植被,所以我们利用这些就可以装饰出好看的场景。
而山体围绕的区域内,还记得上一章节保存的树木、石头等素材吗,这时候就可以派上用场了。
![3-19](./image/3-19.png)
直接在素材库内点击想要放置的素材然后在编辑器中放置点击地图中的某个位置并不会让素材直接生成而是以选区的方式显示开发者还可以拖动XYZ轴微调位置确定后再点击确定生成。如果不小心放置在了错误的位置可以点击撤销按钮回退此步操作也可以再次使用选取工具将放置的建筑框选起来并进行其它编辑操作。
![3-20](./image/3-20.png)
把所有的素材按照自己的想法放置,目前来看,我们的场景已经有一个很不错的效果了;比较有意思的是,我们几乎没有依赖编辑器外的内容,而且制作的建筑等装饰都可以反复利用,也就素材复用。
![3-21](./image/3-21.png)
如果对目前的效果依然不满意,还可以继续调整,点击编辑器右上角的游戏模式,手动制作吧。
## WorldPainter(地形工具)
WorldPainter是一个专用于Minecraft地形制作的软件工具这个软件功能非常强大熟练掌握该软件各式各样的大型自然地形景观都没有问题。
WorldPainter官网地址https://www.worldpainter.net/
![3-22](./image/3-22.png)
在官网下载并安装后打开WorldPainter主页面可以看到软件内也有很多与编辑器相似的工具除此之外还有很多编辑器并没有的强大功能所以如果想要制作更专业、更庞大的地形则非常推荐学习并使用WorldPainter。
不过WorldPainter仅支持对JAVA版游戏地图的导出导出后只能运行在JAVA版游戏上需要借助其它工具将存档转换为基岩版推荐使用[Chunker](https://chunker.app/)它支持基岩版和JAVA版的存档格式上传地图文件即可互相转换还可以一键更改世界设置。
![3-23](./image/3-23.png)
**课后作业:** 使用我的世界工作台地图编辑器完成简单地形捏造:湖泊、山体。

View File

@@ -0,0 +1,207 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/4-2.4ec735bf.png
hard: 入门
time: 15分钟
---
# 能改变世界的命令
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=624584b2b8a81f8fa083c0c5" width="800" height="600" allow="fullscreen"/>
如果玩过我的世界原版的生存的朋友,我们都知道,所有的物资都需要亲自收集获取,在创造前先破坏;不过想要打破这个规矩,我们可以在游戏中输入一段神秘的字母(/gamemode creative 或 /gamemode 1让我们从生存模式切换到创造模式。
![4-1](./image/4-1.png)
## 什么是命令?
简单来说,命令就是玩家可以输入特定的内容从而激活某个功能。
在游戏中,命令可以通过聊天窗口输入,一般格式为:/ + 命令体; **最开始斜杠(/)是必需的。** 一些常用的命令如:
- gamemode切换玩家的游戏模式
- gamerule设定游戏世界规则
- setblock在世界中生成方块
- give给予物品
除此之外,还有非常多的命令,充分发挥它们的功能并结合,就可以创造出独特的玩法。
[命令方块表WIKI百科](https://zh.minecraft.wiki/w/%E5%91%BD%E4%BB%A4)
## 命令的好伙伴:命令方块
除了玩家在聊天栏中输入外,使用命令/give @s command_block可以获得一个命令方块常规状态下这个方块可以 **利用红石信号激活命令** ,无论玩家在何处。
![4-2](./image/4-2.png)
右键打开命令方块的菜单,接下来逐个介绍命令方块的功能(基岩版)
![4-3](./image/4-3.png)
命令方块一共有三种:脉冲、连锁、循环,这三种命令方块执行命令的过程不太一样。
- 脉冲:外观为橙色,命令方块激活每激活一次就执行一次命令
- 连锁:外观为绿色,当指向它的命令方块激活时,此命令方块才会执行
- 循环外观为紫色每激活一次都将循环执行命令数次1游戏刻执行1次命令
切换命令方块并保存将会改变它的外观:
![4-4](./image/4-4.png)
*从左至右依次是脉冲、连锁、循环;命令方块顶部贴图的剪头则是指向,这将影响触发的连锁方块*
右侧命令输入框,则是输入命令的地方,在命令方块中不需要在命令前加斜杠(/),当然加了也不会有什么影响。在命令方块中使用命令需要注意分辨 **目标选择器** ,拿/gamemode 1切换为创造模式命令举例在命令方块中执行时没有意义的因为命令方块不知道要修改谁的游戏模式反正不是命令方块本身因为它只是个方块...),所以在命令的特定位置,我们需要添加目标选择器,来让命令方块找到执行对象。
![4-5](./image/4-5.png)
在切换游戏模式命令后加一个 **@a** ,命令方块就会让游戏内的所有玩家都切换为创造模式。
在命令方块触发后,下方的输出窗口会提供一些提示:
![4-6](./image/4-6.png)
*图中命令的目标选择器不完整,输出窗口内反馈了错误并且指出具体的位置*
### 条件
条件分为两种: **无条件****有条件的** 。这个选项主要针对连锁命令方块。
默认状态下是无条件的,也就是说无论指向它的命令方块是否执行成功,连锁方块自身都要执行。而有条件的则是需要指向它的命令方块成功执行连锁方块本身才会执行。
条件制约其实有很大的作用,比如我们需要实现一个功能:清除玩家的金锭给予他钻石(以物换物),若是选择无条件,那无论有没有成功清理玩家的金锭都会直接给玩家钻石。这里就必须要用有条件来确保玩家有金锭并清除掉了。
通过 **外观可以判断** 命令方块为有条件或无条件的:
![4-7](./image/4-7.png)
*无条件(左)有条件的(右)*
### 条件
常规状态下,命令方块需要 **红石信号** 才可以触发执行;如果切换它的触发条件,改为 **保持开启** ,三种不同类型的命令方块,其效果也不相同。
普通命令方块只会执行一次连锁命令方块仍然会等待指向它的命令方块执行循环命令方块则会以每1游戏刻执行一次的频率无限执行 **1秒=20游戏刻** 。
大量的循环命令方块在保持开启状态下会造成明显的卡顿,所以还是尽量避免大量使用。
### 已选项中的延迟
主要体现在循环命令方块上如设置20循环命令方块每20游戏刻1秒执行一次。
若是在脉冲命令方块或是连锁命令方块上使用,在命令方块激活后,会先延时设定的时间再执行命令。
<img src="./image/4-8.gif" alt="4-8" style="zoom:115%;" />
*未设置延迟且保持开启的循环命令方块*
### **执行第一个已选项**
该选项仅在循环命令方块上产生效果,若开启,命令方块在执行命令前会 **先等待延迟再执行命令** ;反之则 **先执行命令再进行延迟**
## 制作简单的小功能
命令的种类有很多,每个命令的使用方法又都不一样,所以不能在教程中面面俱到;接下来将以几个常用的命令举例制作一些小功能。
### 玩家传送点
先在设置中打开坐标显示,在左上角会显示玩家当前的坐标,在想要传送的位置处记录坐标,待会要用。
![4-9.gif](./image/4-9.gif.png)
然后找到一个区域(如:游戏大厅)放置命令方块,让玩家在点击按钮或踩踏压力板(能够激活红石信号)时可以传送。
![4-10](./image/4-10.png)
在命令方块中输入命令/tp <目标选择器> <坐标xyz>,并放置按钮让玩家可以使用。
<img src="./image/4-11.gif" alt="4-11" style="zoom:115%;" />
在地上放一个命令方块和一个按钮,光秃秃的非常不好看,可以制作一个简单的建筑将命令方块围起来,使其更像一个传送站点:
![4-12](./image/4-12.png)
光是传送的功能很突兀,应该增加其它细节和效果使传送更加“有魅力”。使用/particle命令在传送的位置生成粒子效果在传送的命令方块后放一个有条件的连锁方块玩家若传送成功则会生成粒子。
```命令
/particle minecraft:totem_particle <坐标xyz>
```
注意图中,使用连锁命令方块确保上一个命令方块指向连锁命令方块。
![4-13](./image/4-13.png)
<img src="./image/4-14.gif" alt="4-14" style="zoom:115%;" />
所以,命令方块运用起来是很灵活的,简单的传送功能也可以组合出非常不一样的效果,比如给传送加个延迟,或是玩家无需任何操作进入范围就会被传送等等。(所有命令及使用方法都可以在本章开头的命令表网址中找到)
### 给予玩家物品
很多玩法都需要让玩家获得道具、装备等物品所以给予玩家装备的功能就显得很重要了。我们需要让玩家在靠近金矿堆的时候可以持续获得金锭利用1条give指令就可以做到。
在金矿堆的较中心位置放置一个保持开启的循环命令方块设置20游戏刻1秒的延迟命令如下
```命令
/give @a[r=5,m=0] gold_ingot 0 1
```
![4-15.gif](./image/4-15.gif.png)
指令体give + 目标选择器@a(所有玩家)而目标选择器后面中括号的内容则是对目标选择器进行筛选或者说是添加条件r=5代表以命令方块为中心的5格范围m=0是游戏模式为生存模式的玩家。所以对 **目标选择器添加条件** ,就实现了检测玩家的功能。所以当命令方块为中心的五格范围内没有玩家时,命令方块就无事发生。
<img src="./image/4-16.gif" alt="4-16" style="zoom:115%;" />
让我们继续为其添加功能,实现 **“以物换物”** 的功能;让玩家有经验的情况下在金矿堆附近可以获得金锭但经验会-1级。
同样在金矿堆较中间的位置放置一个保持开启的20刻延迟循环命令方块并指向一个保持开启且有条件的连锁命令方块分别设置如下指令
```命令
循环命令方块:/xp -1l @a[r=5,m=0,lm=1]
连锁命令方块:/give @a[r=7,m=0,lm=1] gold_ingot 1
```
![4-17](./image/4-17.png)
循环命令方块实现的功能是每1秒减去范围内大于1级玩家的经验当命令方块执行成功时会让连锁方块给达成条件的玩家一个金锭。 **lm=N** 为判断玩家等级是否大于N。
<img src="./image/4-18.gif" alt="4-18" style="zoom:115%;" />
命令不仅种类繁多,各种用法和变化更是五花八门,光是了解有关命令的所有功能都需要蛮长的时间,所以在本章教程中无法详细展开介绍,若想深入学习可以前往[WIKI百科](https://zh.minecraft.wiki/w/%E5%91%BD%E4%BB%A4)详细学习。
## 进一步改变世界
是否对原版的草方块感到“厌烦”了呢?或是想让自己养的猫猫狗狗变成自己喜欢的样子,也或是把绿宝石变成红宝石的样子。通过修改材质,以上的“幻想”都可以实现!
![4-19.gif](./image/4-19.gif.png)
右键编辑器内的作品,打开该作品的目录,在地图文件内可以看到 **resource_packs资源包** ,修改里面的文件可以实现 **改变世界** 的效果!不过你打开以后会发现里面除了一些文件夹没有任何东西。
所以我们需要找到一个 **原版的资源包** 对其修改再放到地图的resource_packs内。找到编辑器在磁盘中的位置然后根据示例路径找到原版资源包
D:\MCStudioDownload\game\MinecraftPE_Netease\PCLauncher\data\resource_packs\vanilla
原版资源包中有很多的文件,分别放置不同类型的图片文件,如: **textures** 是存放贴图的文件夹,方块、物品等贴图都可以在这里找到;
![4-20.gif](./image/4-20.gif.png)
打开原版资源包内的textures方块在Blocks文件夹内对文件夹的命名翻译成中文就可以了解大致存放的贴图类型。下面举例一些常用类型的文件夹名
- textures -> items物品贴图
- textures -> blocks方块贴图
- textures -> models实体模型贴图
- textures -> particle粒子效果贴图
- textures -> uiUI界面贴图
我们把青色陶瓦的文件名改为绿色陶瓦,进入到游戏就可以看到,我们上一章节制作的山体颜色发生了变化,地形的整体效果也有了变化:
![4-21](./image/4-21.png)
所以材质包对玩法地图非常重要,甚至让我的世界变得更像独立的游戏也不是不可能的。
**课后作业:** 任意修改材质包达成不一样的效果;利用指令和命令方块制作更多功能或是在教程的基础上改进。

View File

@@ -0,0 +1,105 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/5-4.1090e32f.png
hard: 高级
time: 20分钟
---
# 突破原版的束缚
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=6245852c48e274908924ef22" width="800" height="600" allow="fullscreen"/>
当我们制作玩法地图时,可能会用到大量的方块和物品,甚至是生物。但原版的内容是有限的,当我们不再满足于原版的内容后,就需要额外添加更多。所以这章来介绍如何使用关卡编辑器快速创建自定义内容。
## 熟悉关卡编辑器
关卡编辑器主要有三个窗口: **配置、属性和资源管理窗口** ;同样重要的还有预设库(显示创建的预设)和舞台(预设放置在地图上后出现在这里)。
在关卡编辑器创建的自定义内容都将在配置中找到,点击某一个,就可以看到它的属性;而资源管理窗口就是可以快速找到地图文件(上一章中的资源包也可以在这里找到)
![4-22](./image/5-1.png)
*实体在地图编辑器中不显示,在关卡编辑器中显示且会被黄色框选中*
## 新建自定义内容
在资源管理窗口的左侧点击新建选择配置新建一个空模板物品并为其文件命名。点击创建后就可以在配置窗口中看到了。自定义内容由命名空间和名称组成不能为中文例如bestmap:Item1。
![4-23](./image/5-2.png)
创建完后,在左侧配置窗口中选择后,可以修改其属性; **以物品举例** ,分为:
- 配套文件:可以快速打开该物品的文件和所在文件夹。
- 基础属性:修改物品名称、贴图文件等。
- 行为包组件:为物品添加行为上的特性和功能。
- 盔甲穿戴属性:设定物品为穿戴装备时的特性。
- 资源包组件:为物品添加资源效果上的特性与功能。
![4-24](./image/5-3.png)
我们为这个物品添加一些基础属性,点击 **添加属性** 按钮,把可以选择的基础属性都添加上,并修改成名为美味鲜菇的食物并且使其会在创造栏中显示。物品贴图则是用原版的蘑菇简单修改一下。
在行为包组件为其添加食物属性、堆叠数量和使用时间;资源包组件中添加使用动画。最后属性窗口和效果是这样的:
![4-25](./image/5-4.png)
<img src="./image/5-5.gif" alt="4-26" style="zoom:115%;" />
按照这种方法,添加其它功能的自定义物品、自定义方块也都非常简单。编辑器内置了大量的特性和属性供开发者自由搭配,总能创造出不一样的效果!
### 自定义实体
新建物品或方块只需要画出它们的贴图一般为16x16像素的图片。但游戏中的实体也叫生物和物品不一样它们需要模型才能显示在世界中点击新建-配置-实体配置,创建一个空模板的自定义实体;
![5-14](./image/5-14.png)
除了空模板外,还可以选择“数据模板”,数据模板是编辑器预设好的实体配置,若是选择数据模板,创建后默认会有该模板的属性。
![4-27](./image/5-6.png)
在资源包组件中可以看到 **模型** 和纹理,这是实体必须设置的;制作模型和绘制贴图需要利用其它的软件制作,完成后再导入到编辑器中,这里推荐使用 **BlockBench** ,它是一款简便易用的模型设计软件,十分适合萌新开发者快速上手制作模型。
BlockBench官网https://www.blockbench.net/
安装并打开BlockBench新建基岩版模型
![5-7](./image/5-7.png)
接下来就可以开始新建块并制作模型;还可以在原版的资源包中找到原版生物的模型(生物模型路径:···\models\entity在blockbench中打开可以详细看到原版的生物模型是如何组成的对于新手开发者的参考学习是有很大帮助的
模型制作完成后连同贴图导出模型为json文件贴图为png格式的图片。
![5-8](./image/5-8.png)
*导出模型*文件到本地
![5-15](./image/5-15.png)
*导出贴图图片文件到本地*
在编辑器的资源管理窗口,点击导入 **BlockBench-json模型生物** 修改模型的ID并选择对应贴图。
![5-9](./image/5-9.png)
导入模型后,将模型和贴图应用的自定义实体上;如果在编辑自定义实体的组件时遇到困难,还可以使用模板一键替换原版实体的属性,然后只需要简单修改就可以了。在新建实体时就可以选择数据模板,创建后默认会有该模板的属性;或是在实体的属性窗口中选择整体模板并点击“对号”按钮刷新。
![5-10](./image/5-10.png)
选用僵尸的模板,删除其攻击相关的属性并修改为刚刚导入的模型和贴图,这样就做好了,点击运行进入到游戏中测试一下:
<img src="./image/5-11.gif" alt="5-11" style="zoom:115%;" />
### 自定义方块
和物品与实体的方法一样,点击新建-配置-方块配置;在关卡编辑器中,大部分的原版自定义内容的创建方法都差不多,所以只需要简单的学习就可以掌握这些方法并进行开发。
![5-12.gif](./image/5-12.gif.png)
创建一个自定义方块,绘制并选择贴图,在行为包组件中添加亮度和碰撞盒,就可以制作出一个发光的方块。
值得注意的是,方块的贴图方式有两种: **六面贴图一致** 和六面贴图自选,其功能与名字一样。前者只需要绘制一张贴图,方块的 **六个面(上、下、东、南、西、北)** 都为这一张贴图若为后者则可以绘制最多6张贴图并分别设置。想要实现一些方块的效果就需要注意改变贴图方式如原版的工作台、书架和熔炉。
![5-13](./image/5-13.png)
**课后作业:** 绘制方块、物品的贴图并使用关卡编辑器添加到游戏中;制作模型并尝试新建自定义实体或覆盖原版实体模型或贴图。

View File

@@ -0,0 +1,214 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/6-1.49605400.png
hard: 高级
time: 30分钟
---
# 正式开始制作玩法地图
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=624585cdb647e504b5299d90" width="800" height="600" allow="fullscreen"/>
在前面的章节中我们已经知道了什么是玩法地图,学会了制作地图场景、利用命令和命令方块制作简单的玩法功能、通过修改资源包改变场景的视觉效果、添加自定义内容。
掌握了这些技巧,我们就可以准备实战,从零开始制作一张玩法地图了。
## 地图设想
遥望我的世界的各种经典玩法能够长久不衰一直被玩家喜爱的玩法就是小游戏Minigame。甚至一些生存服务器内也会有一些小游戏活动。而在小游戏大类中KitPVP职业战争则是出类拔萃的玩法。所以本章的内容我们就来利用玩法地图制作职业战争小游戏。
游戏场景就利用前面章节已经制作好的地图:
![6-1](./image/6-1.png)
玩法方面,玩家可以在大厅中选择职业并在进入战场(游戏场景)时获得职业的装备,玩家需要利用装备与其它玩家对战。在此玩法上可以有两种分支:
- 游戏单局进行,玩家同时加入:当所有玩家准备好并选择完职业后开始游戏,仅一条命,活到最后的玩家获胜。
- 游戏持续进行,玩家任意加入:玩家选择职业后可自行进入游戏场景,不设复活限制,也没有获胜条件。
前者可以使玩法更具体更有竞技性而后者更倾向PVP战斗的爽快体验玩家可以在复活后第一时间再次回到游戏场景中加入战斗。这次我们选择后者不过在制作过程中也会讲解前者的思路。
## 制作大厅
因为是小游戏地图,所以我们需要先建造一个大厅,玩家在加入游戏或战败复活后会来到这里选择职业进入游戏场景。
![6-2](./image/6-2.png)
利用地图编辑器的笔刷工具选择圆柱笔刷,围上一片区域,方块材质则与游戏场景的地形风格类似,在区域内放置一些复用的素材(蘑菇、石堆),在玩家出生点位置搭建了一个篝火营地(紫水晶方块用于标记玩家出生位置)。
在BlockBench中分别制作3个NPC模型这里修改了原版村民的模型动作添加了物品用来区分NPC对应的职业。利用自定义实体在大厅展示职业信息。并且使用实体会比告示牌或其它文字引导更有魅力和生动。
![6-13](./image/6-13.png)
分别导出模型和贴图后,切换到关卡编辑器逐个导入;自定义实体不需要太多属性,只要放置在大厅中就可以了,所以这三个实体就只有:持久化保存(实体不会消失)、物理特性(实体会受到重力影响)、碰撞箱(实体的宽和高)、伤害感应器(设置该实体不会被攻击到)。
![6-12](./image/6-12.png)
三个实体的属性都类似,只有模型和贴图不一样,加入到游戏后,把他们分别放置在大厅的位置上:
![6-14](./image/6-14.png)
![6-15](./image/6-15.png)
## 添加玩法功能
在大厅中放置的三个NPC就是对应地图中的三个职业当玩家靠近NPC时将会选择该职业并传送至游戏场景。
选择一处区域用于存放制作功能的命令方块,一般会选择玩家不会看到或是发现的区域,所以不推荐放在游戏场景附近。
![6-3](./image/6-3.png)
场景都是封闭的,所以我直接把命令方块选择放在大厅的附近,各位开发者在参考学习的时候也能很快找到这里。
对于命令方块的区域有一个关键点是需要注意的,当某个区块附近没有玩家存在的时候,系统会自动卸载该区块,若是命令方块的区域被卸载掉,命令方块也就无法再生效,所以我们需要使用一条命令来设置区域为常加载状态,这样就不会被卸载区块。
```命令
玩家手动输入:
/tickingarea add <xyz> <xyz>
小提示:<xyz>为常加载区域的坐标,通常为方体区域的左下角和右上角,通过两点坐标来构成方体区域
坐标可以在游戏中开启显示或是选择某个方块在地图编辑器的右下角看到该方块的坐标
```
### 使用命令方块制作功能
先输入一段命令 **新增职业计分板** ,用来给玩家贴上职业标签;通过修改玩家计分板的数值来给玩家贴上 **职业标签** 例如1 - 重甲职业 2 - 箭矢职业 3 - 突破职业 0 - 未选择职业
```命令
玩家手动输入:
/scoreboard objectives add role dummy 职业
```
然后记录NPC的坐标使用 **循环命令方块** 检测玩家靠近NPC位置时给该玩家贴上职业标签。
```命令
循环命令方块:
/execute @a[x=?,y=?,z=?,r=1] ~ ~ ~ /scoreboard players set @s role 1
```
execute命令可以改变命令执行者和执行位置通过目标选择器选择在某xyz坐标1格范围内的玩家并以该玩家执行命令。通过execute选择该玩家后目标选择器就可以设置为@s指向自己
在循环命令方块后连续放置3个顺序指向的连锁命令方块用于给予玩家装备、传送到游戏场景和归置职业标签。
![6-4](./image/6-4.png)
图中按指向顺序标出了1234的命令方块窗口请注意一定要保证 **命令方块的指向** ,否则连锁命令方块会无法执行。
其中目标选择器的参数 **[score]** 代表判断该目标的计分板某标签分数用于判断职业,是重要的参数。图中的四个命令方块是实现此功能最基本的条件,若是想调整职业的装备,还可以在中间 **继续添加连锁命令方块** 给予物品即可。
![6-6](./image/6-6.png)
每一条命令方块链可完成1个职业的功能我们再继续添加2条把选择职业并传送的功能完善。一个职业的完整的命令链如下所示
```命令
循环命令方块execute @a[x=443,y=64,z=355,r=1] ~ ~ ~ /scoreboard players set @s role 1
连锁命令方块give @a[scores={role=1}] iron_leggings 1
连锁命令方块give @a[scores={role=1}] iron_boots 1
连锁命令方块give @a[scores={role=1}] leather_chestplate 1
连锁命令方块give @a[scores={role=1}] stone_sword 1
连锁命令方块give @a[scores={role=1}] bestmap:testItem1 3
连锁命令方块tp @a[scores={role=1}] 352 83 442
连锁命令方块effect @a[scores={role=1}] slow_falling 5 1
连锁命令方块scoreboard players set @a[scores={role=1}] role 0
以上的所有命令方块均指向下一个命令方块
需要注意的是在give指令中若是给予自定义物品需要把自定义物品的命名空间和名称都写出而原版物品可以省略命名空间"minecraft"。
```
传送玩家的坐标点设置在游戏场景的上空,并为传送过来的玩家设置缓降效果。
<img src="./image/6-16.gif" alt="6-16" style="zoom:115%;" />
### 添加回复道具
不同的职业需要有不同装备和效果,如果原版的内容不能满足想法,就需要添加自定义内容来扩展,比如我想添加一种恢复血量的道具给所有职业或是某个职业,这时就需要添加自定义物品。
打开关卡编辑器新建自定义物品设置基本的属性并为其添加食物属性不补充饱食度仅添加治疗药水效果将使用时间调低使用动画改为eat。
![6-5](./image/6-5.png)
当然,如果不添加新的自定义内容,也可以通过修改材质包的方式把原版的药水改为其它样子。
### 场景互动功能
新建自定义方块并绘制贴图,添加到游戏中,在游戏场景放置几个这样的方块;当玩家踩到的时候会获得状态效果。
使用命令方块检测玩家脚下的方块,当方块是设定的方块时就给予玩家药水效果。此功能仅需要一条命令即可。
```命令
execute @a ~ ~ ~ detect ~ ~-1 ~ <命名空间:方块标识符> 0 /effect @s jump_boost 1 3
```
把此命令添加到保持开启的循环命令方块中,效果如下:
<img src="./image/6-9.gif" alt="6-9" style="zoom:115%;" />
当命令方块执行的时候,左上角会出现提示,若是循环执行,则会瞬间出现大量的提示,我们也可以通过命令修改游戏规则将其关闭:
```命令
关闭命令方块的提示(将false修改为true即可打开)
/gamerule commandblockoutput false
/gamerule sendcommandfeedback false
```
> 大量使用无延迟的循环命令方块会导致游戏卡顿,可以在不影响游戏的情况下适当调整部分循环命令方块的延迟或是利用红石信号将循环命令方块改为红石控制。
## 继续完善地图
到目前为止,我们的地图已经 **可以开始游戏** 了,除了继续添加新内容或玩法外,还有一些 **细节需要打磨**
### 背包物品
比如:当玩家被击败,背包物品会掉落在场景中,其它玩家捡到依然可以使用;或是在有死亡不掉落的情况下,玩家被击败回到大厅也依然会保留这些物品。
**解决方法** 其实有很多,选择任意一个恰当的即可,例如:
- 开启死亡不掉落,在选择职业的时候先清除玩家背包再给予新的装备。
- 开启死亡不掉落,使用命令方块持续清除大厅内玩家的背包物品。
- 关闭死亡不掉落,使用命令方块持续清除物品掉落物。
举例的这三种都有其优缺,这张地图则选择第二种,不过我们只需要持续 **清除以出生点为范围的几格区域** 即可,因为玩家被击败后是一定会在大厅的重生点复活的,所以只需要清除小范围即可。若是清除整个大厅范围,可能会影响到选择职业时的装备发放。
![6-10](./image/6-10.png)
记录玩家重生点的坐标XYZ使用clear清除玩家背包物品命令利用目标选择器@a=所有玩家清除6格范围内r=6的玩家背包物品。可以适当为循环命令方块添加延迟。
### 游戏模式和难度
地图的默认游戏模式是生存,这时玩家可以任意 **破坏方块** ,显然这和地图的玩法是背道而驰的,可以在菜单中直接修改世界的默认游戏模式为冒险,这样玩家就不能破坏了。
![6-11](./image/6-11.png)
如果想让地图的规则更固定一些,也可以用命令方块持续修改所有玩家的游戏模式。
而**游戏难度**也需要特意设置一下,简单—困难模式下玩家的血量恢复速度较正常,但是游戏场景内会刷怪(除非有充足的亮度);若是和平模式下玩家恢复血量的速度又过快,玩家间很难对抗,不同职业间的游戏平衡也不同。其实只需要使用命令简单修改一下游戏规则就可以了:
```命令
修改游戏规则domobspawning将怪物的生成关闭
/gamerule domobspawning false
```
### 场景边界
为了让玩家不会意外离开大厅和游戏的范围,为大厅和游戏场景添加空气墙,也就是在边界的位置放置屏障或其它障碍物,让玩家无法越过。
![6-7](./image/6-7.png)
## 另一种思路
如果将地图改为统一开局,玩家需要在大厅全部准备就绪再开始,那么最少应该有如下改动:
- 玩家选择职业不会立即获得装备和传送,只会贴上职业标签,当游戏开始时统一发放装备
- 设立胜利条件游戏开始后检测游戏场景内存活的玩家当只剩1人时游戏结束
本章教程中就不针对这种思路提供方法,而是交给各位新手开发者自行尝试!
**课后作业:** 从零开始完整制作一张地图:要求具有基本的玩法和功能逻辑,能够正常游玩且地图内的所有游戏场景都符合主题,不论是自由创作或是跟随教程创作都可以!

View File

@@ -0,0 +1,198 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/7-25.gif.d998b7c3.png
hard: 高级
time: 20分钟
---
# 实现功能其实很简单
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=62458611b8a81f8fa083c0d3" width="800" height="600" allow="fullscreen"/>
现在的玩法大部分都是由命令方块制作的,如果有另一种非常高效且简单的方法协同创作,相辅相成,那么玩法地图的开发将会更加轻松。而我的世界开发工作台的预设编辑器和逻辑编辑器正是这样的存在。
![7-1](./image/7-1.png)
*预设编辑器页面*
在关卡编辑器中,除了配置还有两外两个窗口:预设库和舞台。预设库顾名思义就是储存预设的仓库,所有创建的预设都将在这里看到,如果将预设应用到地图中,就可以在舞台窗口中看到,舞台是展示存在于地图场景中的所有预设的窗口
![7-2](./image/7-2.png)
## 创建预设
点击上方创建预设可以看到一共有空预设、实体预设、特效预设、玩家预设、方块预设、界面预设6种。这六种分别对应不同的功能用法和用处也都不一样。
![7-3](./image/7-3.png)
### 空预设
空预设内什么也没有,我们需要自己为其添加内容; **先打开地图编辑器,右键素材选择导入为预设素材** ,这样才可以在预设编辑器中看到该素材。
![7-25.gif](./image/7-25.gif.png)
新建一个空预设,点击预设编辑器上方“添加素材”按钮将导入的素材添加到这个预设里,就可以看到了。
![7-4](./image/7-4.png)
空预设的属性只有名称、是否预览、预加载和常加载(将鼠标放在选项上可以看到详细解释)。
### 实体预设
实体预设的属性有很多,因为这个预设代表一个实体,在属性窗口中可以选择与某个 **实体关联** ,然后对这个预设的实体进行相关的属性设置。
![7-5](./image/7-5.png)
### 特效预设
这个预设需要配合粒子特效或序列帧特效,使用特效编辑器制作后再与该预设关联即可。
### 玩家预设
玩家预设可以对游戏玩家进行调整,如:饥饿值、死亡不掉落、是否可跳跃等属性; **玩家预设仅可创建一个。**
### 方块预设
与特效、生物预设类似,不过是与方块做关联,可以选择原版或自定义的方块。
### 界面预设
需要配合界面编辑器使用在玩家的客户端显示UI界面按钮、进度条等。
## 添加零件和子预设
在预设中是可以再添加另一个预设的,也就是嵌套。比如我们将创建的空预设中添加一个建筑素材,再往这个预设里添加方块预设,会是什么样的?
![7-6](./image/7-6.png)
点击添加预设或是直接在资源管理中拖进层级窗口中,方块预设被添加到了空预设的子预设文件夹中。
除了预设之间嵌套,我们还可以添加一个非常重要的东西:零件。
零件能实现各种各样天马行空的想法,不过需要通过编写代码填充零件的功能。普通的零件不适合不会编程的萌新开发者;他们需要的是一个可视化编程工具:逻辑编辑器来配合零件。
![7-7](./image/7-7.png)
创建一个蓝图零件,双击资源管理窗口中的.bp文件跳转至逻辑编辑器。
![7-8](./image/7-8.png)
接下来我们在逻辑编辑器中编写的功能就会被赋予到零件上,而装载了零件的预设也就有了这些功能,一环套一环,不断的堆砌零件和预设,这样就形成了庞大的开发资源!是不是对玩法地图的开发又多了一些兴趣呢?
回到逻辑编辑器,这里已经提前放置了一些可能会用到的事件:客户端时间和服务端事件,不同的功能需要分别作用在这两个之中,所以需要作出区分。
右键网格界面可以创建一个蓝图节点,再将蓝图节点用线连接,就可以实现逻辑功能,比如:
![7-9](./image/7-9.png)
创建一个设置世界雾效范围的接口节点可以看到这个节点需要3个参数存档ID、雾效起点和雾效范围存档ID用另一个节点来获取雾效起点和雾效终点由我们自己输入数值然后从客户端初始化时间节点开始逐个连线就完成了。
**玩家进入世界的时候客户端会进行初始化此时零件检测到该事件并获取存档的ID然后设置雾效。**
在逻辑编辑器中有很多可用的接口,如果眼花缭乱看不过来可以查询接口文档,然后利用搜索功能查找添加。
MODAPI接口文档网址<a href="../../../mcdocs/1-ModAPI/接口/通用/索引.html" rel="noopenner">点击链接打开网页</a>。
完成后,我们将该逻辑保存,回到预设编辑器,将蓝图零件添加到预设中:
![7-10](./image/7-10.png)
再切换至关卡编辑器,将预设添加到舞台(地图)中,点击开发测试,进入到游戏中测试效果。
![7-11](./image/7-11.png)
<img src="./image/7-12.gif" alt="7-12" style="zoom:115%;" />
若是想更深入地学习和了解预设编辑器、逻辑编辑器,可以在开发者官网的开发指南中找到很多相关教程:<a href="../../../mcguide/20-玩法开发/12-可视化编程/00-第一个蓝图Mod/00-教程视频.html" rel="noopenner">第一个蓝图Mod教程</a>。
## 使用预设和蓝图添加功能
了解了预设编辑器和逻辑编辑器后,我们继续为地图添加更多功能。
新建玩家预设,取消玩家的自动恢复血量和开启玩家死亡不掉落,这样可以解决不同的游戏难度而导致的血量恢复速度不一致的问题;
新建的玩家预设会自动添加到关卡编辑器的舞台中,玩家预设有且只有一个。
![7-13.gif](./image/7-13.gif.png)
分别创建3个实体预设并与大厅的三个NPC关联为每个实体预设添加一个特效预设并放在NPC的头上做引导标识。
![7-14](./image/7-14.png)
将实体预设拖到关卡编辑器中,粒子和实体就一起出现在了地图中,而且实体会一直根据预设中的样子(粒子处于实体头顶)保留。
**需要注意的是:在预设编辑器中修改某个预设的属性,这个预设在关卡编辑器中也会同步更新;但是如果在关卡编辑器的舞台中单个修改某个预设,那这个预设将不会再被统一修改。**
![7-15](./image/7-15.png)
在右上角切换操作方式,可以对预设进行拖动、旋转和缩放;若是像细致的调整,则可以在属性窗口微调数值。
![7-16](./image/7-16.png)
接下来创建一个空预设用来装载一些基础的功能:当玩家死亡后清空该玩家的背包物品。
我们使用命令方块实现了此功能,不过是当玩家回到大厅时再清空;我们可以利用逻辑编辑器替换为更好的方式。
![7-17](./image/7-17.png)
右键创建一个监听玩家复活时触发的事件后调用“使用游戏内指令”接口。
- 事件监听某个事件当事件发生时脚本会做出响应并带回一些参数如触发事件的玩家ID。
- 接口执行某个功能大部分接口都需要参数才可以执行如玩家ID或是存档ID。
监听玩家复活事件可以带回该玩家的ID调用接口并对这个ID执行就可以了。
![7-19](./image/7-19.png)
接口的所需参数和输出的参数在选中某个节点后都会在属性窗口中显示;若是不了解接口如何使用,鼠标放在节点上会显示该接口的具体信息和链接。
简单创建3个节点并连接就实现了此功能进入游戏中测试一下
<img src="./image/7-18.gif" alt="7-18" style="zoom:115%;" />
## 生成道具物品
在游戏场景内随机生成一些物品道具,玩家捡到会有不同的效果。利用预设和蓝图零件实现这个功能并不难,而且还有很多可控的条件。
创建空预设和蓝图零件,进入逻辑编辑器编写零件的功能逻辑。首先先来创建一个自定义接口,在里面编写生成物品实体的逻辑(在地图中生成物品)。
![7-20](./image/7-20.png)
**自定义接口:** 编写自定义接口会在新的窗口编写逻辑会有1个输入和输出逻辑将在输入后开始运行并在输出处结束编写好自定义接口后可以在主窗口的逻辑功能中反复调用。*自定义接口像是工厂,你可以随意调整工厂的工作方式(编写逻辑),也可以随时让工厂开始运作(调用自定义接口)*
然后在主逻辑中创建1个可反复触发自定义接口的定时器每隔一段时间就执行一次即生成1次物品。
![7-21](./image/7-21.png)
简单的创建几个节点并将其连接起来就完成了一个简单的功能,切换到关卡编辑器中点击运行测试一下。
<img src="./image/7-22.gif" alt="7-22" style="zoom:115%;" />
物品已经可以成功生成,继续添加节点编写玩家捡到并给予药水效果的逻辑。
![7-23](./image/7-23.png)
当节点较多的情况下,各种线路可能会比较杂乱,不利于理解;图中实现逻辑的方法只是其中一种,可能有更好的方法等待实现。
大致的流程是这样的:监听玩家捡起物品 -> 利用变量保存事件带回来的参数玩家ID、物品实体ID -> 将玩家捡起的物品名进行比较,若是曲奇则取消玩家的捡起动作并销毁该物品 -> 给予玩家药水效果
![7-24](./image/7-24.gif)
像是 生成物品的坐标、生成的物品、玩家捡起的物品判断、给予玩家药水效果 这些功能都是可以继续添加逻辑使其更加丰富的,比如将生成物品设为多个或是将生成的坐标随机分布;逻辑编辑器都是可以做到的,不过这就需要各位开发者熟能生巧,好好利用了。
**课后作业:** 利用预设编辑器和逻辑编辑器实现如下任意功能:
- 在地图中固定坐标或随机坐标生成随机物品利用内置Python接口-随机节点)
- 当玩家死亡时,给予击杀者物品或是添加状态效果(利用监听玩家死亡事件节点)
- 改变玩家选择职业的方式由走到NPC附近改为点击NPC利用监听玩家攻击实体事件节点
- 任意发挥,实现玩法功能逻辑

View File

@@ -0,0 +1,77 @@
---
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/8-2.5f06072a.png
hard: 入门
time: 10分钟
---
# 包装作品并发布
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=62458672b8a81f8fa083c0d9" width="800" height="600" allow="fullscreen"/>
当玩法地图完成时,我们就可以将其打包并上传至开发者平台发布了;不过在发布之前,我们还需要制作对应的宣传图片、视频等,所以本章节将介绍如何导出并制作合格的宣传图上传至开发者平台。
## 作品打包
在我的世界开发者工作台中右键,可以打包导出作品;也可以直接发布,我的世界开发工作台会直接将作品打包并跳转至开发者平台发布页面。 **推荐自行导出作品并备份后再前往开发者平台发布。**
![8-1.gif](./image/8-1.png)
## 宣传图片
发布作品时除了填写一些基本的信息外必须的banner图、icon图、pos机等图片文件都是很重要的因为这些是与作品曝光有直接关系的。“人靠衣装马靠鞍”虽然不太适合形容但字面意思还是有道理的。 **合理的包装作品,是一名合格的开发者必须要做的。**
### Icon图
对比下面两张图片,你会对哪个感兴趣并想要体验?
![8-2.gif](./image/8-2.png)
相信大部分人都会对第一张图片感兴趣,因为在第一张图片中我们可以一眼看到很多信息:拿起装备的村民、明显的地图名称;而第二张图片看不到任何信息,只有简单的一些建筑,甚至看不出这是一张玩法地图。
在第一印象上,合理的包装就体现了其重要性。所以,尝试在宣传图上多下功夫吧,最重要的目的是吸引玩家的眼球,引起兴趣。
### Banner图
Banner图是横向的大图虽然在一般情况下不需要但如果作品比较优秀或是参加一些曝光活动则需要Banner图做展示。
![8-3](./image/8-3.png)
### pos机
POS机图片是指在玩家购买组件时弹出的图片当玩家看到这张图片的时候说明玩家想要获取该组件这时不论是继续展示作品或是感谢支持都是可以的。
![8-4](./image/8-4.png)
### 轮播图
轮播图可以挑选3张展示这是让玩家了解作品的最好途径之一无论是直接展示游戏实际画面还是添加文字或是渲染效果都是可以的其目的也是引起玩家注意。
既然轮播图可以展示三张,就请好好挑选, **不要将同一张图片上传三次** ,非常不建议这么做。
### 视频
当作品为付费下载的时候,就必须上传视频,而视频的内容则是与作品相关,具体的规范请参考于此:<a href="../../../mcguide/35-上架与入驻/课程06-作品视频格式导出与规范.html" rel="noopenner">作品视频格式导出与规范</a>。
视频的形式多种多样,可以拍摄创意小短片、或是文字介绍作品、语音讲解介绍作品、也可以作品的实况展示;
## 包装建议
- 所有需要的图片对应格式都在发布页面有详细说明,建议严格按照格式要求制作图片和视频
- 保证图片的清晰度和图片内容的辨识度较高,能够让玩家第一眼看到重点,吸引眼球
- 图片和视频的风格尽量倾向原版或靠近作品的风格,减少违和感。
![8-6](./image/8-6.png)
更详细的作品宣传图制作规范和建议可以参考另外的教程:[宣传美术教程](../../40-美术教程/7.宣传教程/01.组件上架图片的制作建议.html)
**课后作业:** 制作合格的宣传图并发布一张完整的玩法地图

Some files were not shown because too many files have changed in this diff Show More