2.6
This commit is contained in:
50
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/1-预设编辑器.md
Normal file
50
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/1-预设编辑器.md
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/06.90697108.png
|
||||
hard: 高级
|
||||
time: 10分钟
|
||||
---
|
||||
# 创建并编辑预设
|
||||
|
||||
<iframe src="https://cc.163.com/act/m/daily/iframeplayer/?id=62ce56336b13db499d06212f" width="800" height="600" allow="fullscreen"/>
|
||||
|
||||
|
||||
|
||||
本章我们将使用关卡编辑器、预设编辑器、逻辑编辑器来带领大家独立制作一个小mod——爆炸箭头。
|
||||
|
||||
首先我们新建一个空白附加包,切换到关卡编辑器。
|
||||
|
||||

|
||||
|
||||
然后在资源管理界面中,找到目录`Presets(预设)`,点击右边的加号,新建一个玩家预设。
|
||||
|
||||
玩家预设是一种自动加载的预设,每个世界中只能存在一个玩家预设。
|
||||
|
||||
点击后,会弹出一个设置预设名的窗口,这里直接点击确定即可。
|
||||
|
||||
创建完成后,会自动跳转到预设编辑器。
|
||||
|
||||
在预设编辑器中,点击创建零件,然后依次选择 常用,蓝图零件。
|
||||
|
||||

|
||||
|
||||
点击下一步,在命名窗口中可以给这个蓝图起个名字。比如我们这个蓝图实现了爆炸箭头的功能,所以给它命名为`ArrowExplosion`,然后点击创建。
|
||||
|
||||

|
||||
|
||||
创建完成后,可以到资源管理的常用目录中,点击`Parts(零件)`,即可看到我们刚刚创建的零件目录,点击即可看到对应文件。
|
||||
|
||||

|
||||
|
||||
图中第一个为零件文件,可以将其拖拽到预设上进行绑定。第二个为蓝图文件,可以在逻辑编辑器中进行编辑。
|
||||
|
||||

|
||||
|
||||
将其拖拽到`Player0`的预设上,即可完成零件和预设的绑定。
|
||||
|
||||
然后我们切换回关卡编辑器,可以看到,舞台中已经有了一个Player0的玩家预设,并且零件中已经显示出了我们刚刚绑定的蓝图零件。
|
||||
|
||||
点击蓝图零件,可以在右侧属性窗口类型为`ArrowExplosionPart`,即可确认这是我们刚刚创建的蓝图零件。
|
||||
|
||||

|
||||
|
||||
至此关卡编辑器和预设编辑器的设置全部完成,下面将开始逻辑编辑器的学习。
|
||||
172
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/2-逻辑编辑器基础.md
Normal file
172
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/2-逻辑编辑器基础.md
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
front: https://mc.163.com/dev/mcmanual/mc-dev/assets/img/07.f83b4752.png
|
||||
hard: 高级
|
||||
time: 25分钟
|
||||
selection: true
|
||||
---
|
||||
# 逻辑编辑器基础
|
||||
|
||||
本节我们将介绍逻辑编辑器的基本操作逻辑。
|
||||
|
||||
|
||||
|
||||
## 基础操作
|
||||
|
||||
继续上一节的内容,在资源管理的窗口中,找到`ArrowExplosion`这个零件的蓝图文件,双击打开。
|
||||
|
||||
即可打开逻辑编辑器并打开该蓝图文件。
|
||||
|
||||

|
||||
|
||||
鼠标左键在Graph窗口中拖动,即可选中逻辑对象。
|
||||
|
||||
对逻辑对象右键可以打开操作菜单,在空白处右键可以打开创建节点的菜单。按住右键拖动,可以移动逻辑编辑器的视图。
|
||||
|
||||
鼠标滚轮滚动,则可以对Graph窗口进行缩放。
|
||||
|
||||
## 概念讲解
|
||||
|
||||
在新建的蓝图文件中,可以发现,现有的逻辑主要为两大块,分别是服务端事件,和客户端事件。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
同时服务端和客户端事件中,都对应了3个节点
|
||||
|
||||
- 初始化
|
||||
- 每刻
|
||||
- 销毁
|
||||
|
||||
初始化和销毁很好理解,它们分别会在服务端或客户端启动/关闭的时候被执行。
|
||||
|
||||
每刻是指服务端或客户端在每刻执行的逻辑,在我的世界中,1秒有30刻。可以简单地理解为,在每刻这个节点后的逻辑,会在游戏中被每秒执行30次。
|
||||
|
||||
> 为什么代码分为服务端和客户端?
|
||||
>
|
||||
> 因为我的世界在单人游戏时,是同时启动了服务端和客户端。
|
||||
>
|
||||
> 服务端负责游戏的逻辑运算,比如红石、伤害等等。
|
||||
>
|
||||
> 而客户端只负责游戏视觉部分的运算,比如渲染、特效、界面等等。
|
||||
>
|
||||
> 所以在编写逻辑时必须要注意观察节点的使用范围,不能在服务端调用客户端的代码,也不能在客户端调用服务端的代码。
|
||||
|
||||
刚刚提到的一共6个节点,通常作为所有节点的头部,即程序的入口。
|
||||
|
||||
并且在上图中,每个节点后都有一个Out端口,这里叫做输出端口。将输出端口和输入端口相连接,就代表了节点之间的连接顺序,从而构成逻辑关系。
|
||||
|
||||
## 逻辑编写
|
||||
|
||||
### 思路分析
|
||||
|
||||
除此之外,监听事件也可以作为程序的入口,比如我们即将制作的爆炸箭头。
|
||||
|
||||
爆炸箭头的实现方式如下:
|
||||
|
||||
1. 监听抛射物碰撞的事件
|
||||
2. 判断投掷物是不是箭头
|
||||
3. 获取坐标,维度相关参数
|
||||
4. 删除箭头的实体
|
||||
5. 在对应坐标和维度生成一个爆炸
|
||||
|
||||
我们这个模组的入口就是**监听抛射物碰撞的事件**,即只有监听到这个事件,我们的逻辑会继续往下运行。
|
||||
|
||||
分析完操作逻辑,我们就要一步一步地进行逻辑编辑器的创作。
|
||||
|
||||
### 上手操作
|
||||
|
||||
首先在空白处右键,在搜索框输入,抛射物,找到`监听服务端事件:ProjectileDoHitEffectEvent(抛射物碰撞时)`,点击进行节点的创建。
|
||||
|
||||
> 为什么一上来就知道搜索抛射物呢?
|
||||
>
|
||||
> 我们可以在进行开发前,先确定自己需要监听的事件或者接口是否能在API文档中找到,
|
||||
>
|
||||
> 然后确定事件或接口的描述,并在逻辑编辑器中输入关键字进行搜索,方便创建。
|
||||
>
|
||||
> API文档链接:[点我](https://mc.163.com/dev/apidocs.html)
|
||||
|
||||

|
||||
|
||||
创建完成后,可以看到这个节点的后边后方有许多的参数输出端口,每个端口都对应了这个事件触发时的具体值。
|
||||
|
||||
我们可以将这些值带入下一个节点中,并完成一定的计算,最后实现模组的逻辑功能。
|
||||
|
||||

|
||||
|
||||
监听完成后,我们就需要判断这个子弹ID对应的实体,是否是弓箭。同样右键新建节点,搜索并选中`GetEngineTypeStr(获取实体的类型名称)`
|
||||
|
||||

|
||||
|
||||
创建完成后,可以看到,这个节点左侧有一个`实体Id`的输入端口,右侧有个实体名称的输出端口。
|
||||
|
||||

|
||||
|
||||
通过该节点的运算,可以将子弹Id得出对应的实体类型名称来判断是不是箭头。
|
||||
|
||||
我们需要将存档Id和子弹Id相连接,并把上一个节点的Out和这个节点的In相连。
|
||||
|
||||
> Out和In之间的连线为橙色,叫做执行连线。
|
||||
>
|
||||
> 两个节点之间只有使用执行连线进行连接,才会在上一个节点执行完成后触发下一个与其连接的节点。
|
||||
>
|
||||
> 而子弹Id和存档Id之间的连线为蓝色,叫做数据连线。
|
||||
>
|
||||
> 代表数据的传递,不代表执行顺序。
|
||||
|
||||

|
||||
|
||||
得到了实体类型名,我们就需要判断这个名称是不是箭头,也就是`minecraft:arrow`。
|
||||
|
||||
继续添加节点,进行字符串比较。
|
||||
|
||||

|
||||
|
||||
创建完成后,填入对应参数,将节点进行连接,效果如图。
|
||||
|
||||

|
||||
|
||||
然后我们创建一个生成爆炸的节点,并给他填入参数,爆炸威力设置为3,勾选带火,破坏方块。
|
||||
|
||||

|
||||
|
||||
除了存档Id这个参数,大部分参数都非常好理解。那么存档Id是什么呢?
|
||||
|
||||
存档Id是用来区分存档的,一般需要在服务端或客户端初始化的时候,进行获取。
|
||||
|
||||
我们可以在初始化之后使用接口`获取存档ID`,进行存档Id的获取。
|
||||
|
||||

|
||||
|
||||
同时我们需要创建一个levelId变量,并在需要的时候调用它。在左侧变量窗口点击+号,输入变量名levelId。
|
||||
|
||||

|
||||
|
||||
在获取存档ID后赋值`levelId`
|
||||
|
||||

|
||||
|
||||
然后按照图示连接方式,创建剩下的节点,并进行连接。
|
||||
|
||||

|
||||
|
||||
最后还需要销毁掉箭头这个实体,注意一定要选择**服务端接口**,而不是客户端接口。
|
||||
|
||||
> 如果不销毁箭头这个实体,会在产生爆炸后,箭的实体落下,继续触发事件,从而一直爆炸。
|
||||
>
|
||||
> 感兴趣的可以尝试不添加销毁实体的节点并查看效果。
|
||||
|
||||
连接效果如图
|
||||
|
||||

|
||||
|
||||
### 测试
|
||||
|
||||
完成蓝图文件的编辑后,我们点击运行按钮进入游戏测试。
|
||||
|
||||

|
||||
|
||||
可以看到射出弓箭,弓箭落地后产生爆炸。
|
||||
|
||||
那么我们的爆炸箭就制作完毕了。
|
||||
|
||||
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/01.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/01.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/02.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/02.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/03.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/03.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/04.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/04.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/05.gif
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/05.gif
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/06.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/06.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/07.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/07.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/08.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/08.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/09.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/09.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/10.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/10.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/11.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/11.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/12.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/12.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/13.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/13.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/14.gif
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/14.gif
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/15.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/15.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/16.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/16.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/18.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/18.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/19.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/19.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/20.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/20.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/21.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/21.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/22.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/22.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/23.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/23.png
LFS
Normal file
Binary file not shown.
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/24.png
LFS
Normal file
BIN
docs/mconline/60-我的世界创造营教程/玩法组件基础教程/6-独立完成一个作品/images/24.png
LFS
Normal file
Binary file not shown.
Reference in New Issue
Block a user