物体设计-简易弹丸制作
基础插件
简易弹丸 如下图。
如果要从零开始设计 简易弹丸,需要用到下图的插件:
注意,该设计需要有物体触发的知识垫底,去看文档:** 9.物体触发 > 关于物体触发-固定区域.docx **了解 主动触发和被触发 的机理。 |
基础配置
具体注意示例下面的地方:
1)地图事件
需要留意 机关解谜管理层 中的发射弹丸、转向砖事件。
2)弹丸模板事件
留意 模板管理层 的弹丸事件。
3)开关触发介绍
留意 机关管理层 的重力开关、制动开关,这些是 弹丸事件触发 的基础功能。
重力开关实现 触发转向,制动开关实现 弹丸停止移动时 触发爆炸流程。
从零开始设计(DIY)
弹丸事件设计
1. 设置一个目标
作者我想设计一种弹丸事件,事件碰壁后立即爆炸的功能。
2. 结构规划/流程梳理
从发射弹丸到弹丸爆炸是一个复杂的过程,但经过深入分析,可以拆成下面的小点:
1). 弹丸要可以实时创建,并且创建后保持向前移动。2). 弹丸被阻塞移动(碰壁)后,会立即触发爆炸。3). 爆炸时,要对相应爆炸的位置,进行物体触发设置。4). 物体触发能够使得石头事件炸开,而单纯的墙壁无效。 |
经过逐步小点的分析,可以用到下面的插件:
1). 弹丸要可以实时创建,并且创建后保持向前移动。
事件复制器 创建。
事件转向 设置弹丸初始朝向。
2). 弹丸被阻塞移动(碰壁)后,会立即触发爆炸。
制动开关 监听弹丸移动暂停情况,暂停时 开启 独立开关A。
独立开关A开启后,执行爆炸流程。
3). 爆炸时,要对相应爆炸的位置,进行物体触发设置。
用 位置与位移 插件获取当前事件脚下的位置,给予变量。
用 制动开关 插件获取当前事件的前一格撞击位置,给予变量。
用 固定区域触发 插件,对变量位置进行触发,触发关键字为“触发传感器”。
4). 物体触发能够使得石头事件炸开,而单纯的墙壁无效。
用 固定区域触发 插件给石头事件设置被触发条件的注释,
条件关键字为“触发传感器”。
注意,你必须先掌握上述的插件的全部 功能和子功能,才能理解并对想要的功能进行组合,并实现。 |
3. 移动路线规划
弹丸事件这里设置为,循环向前移动。
你也可以让弹丸固定向前走30步,然后等待60帧,这样也可以触发爆炸。
这样的效果相当于限制弹丸的最大发射距离。
4. 撞击触发
这里使用制动开关设置最大暂停时间。(最好在3-6帧左右)
制动开关触发后,执行爆炸流程,播放动画,然后固定范围触发。
获取到的撞击位置是弹丸事件的前面一格,详细可见 ”8.物体 > 大家族-开关.docx
”中制动开关介绍。
5. 阻塞关系
弹丸之间需要相互穿透,防止发射过于密集时,相同的弹丸相互碰撞爆炸。
另外注意,这里设置的弹丸事件,处于上方的/飞行状态,默认与人物不会发生碰撞。
所以需要开启制动开关中提供的 飞行/地面阻塞 的功能。
(你也可以让弹丸处于 与事件相同 的位置,只是这样的弹丸会被事件遮挡。)
6. 发射器设置
完成了弹丸事件后,将弹丸事件放在模板管理层。
(你最好专门画一张地图,然后该地图中存放所有 游戏中用于复制 的事件。)
然后建立发射事件,使用事件复制器复制弹丸,并设置初始的朝向。
7. 测试弹丸
完成上述步骤后,进入游戏测试。
站在发射台上能够正常发射弹丸。
弹丸接触墙壁后,查看爆炸情况。
以及设置一个传感器事件,确保弹丸主动触发的标签,能够正常触发到传感器事件。
弹丸的流程如下:发射器 > 弹丸移动 > 阻塞监听 > 爆炸指令 > 触发事件你可以在任何一个流程的基础上进行改进,比如 发射器 的过程,你可以将此流程设计成一个按钮,按下按钮,可以使玩家释放魔法并发射出弹丸(但要注意弹丸与玩家相互穿透)。 |
8. 其他细节补充
弹丸发射后,会留下一道烟卷的痕迹。
这个痕迹仅仅是美术装饰效果,并不具备任何物理功能效果。
用到了多层行走图粒子插件,需要注意下面的配置:
烟卷的持续时间很短,并且在弹丸出现时,
所有粒子为依次产生,而不是全部产生,
最后弹丸移动时,粒子会滞留在产生时的位置而不会跟随弹丸一并移动。
弹丸转向砖设计
1. 设置一个目标
完成弹丸事件后,由于弹丸一直向前移动,只能是单向的轨迹,局限性很大。
是否可以写一个事件,让弹丸接触后立即转向呢?答案是可以的,我们开始考虑设计一个 转向砖 事件,能让弹丸转向。
2. 结构规划/流程梳理
事件与事件接触的插件,目前只有 重力开关 能捕获。(写文档时是2.82版本)
(默认的 事件接触 并不能真的在事件接触后执行。)
因此这里考虑使用 重力开关 的子功能:“获取上一个触发重力的事件ID”,当重力开关触发后,变对那个接触的事件,进行转向处理。
如果你要找插件指令,最好使用小工具“插件信息查看器”去找,打开一个个插件来找指令特别麻烦。![]() |
3. 重力开关设置
注意,因为开关只对弹丸进行转向处理,如果是玩家或其它事件,重力开关应该过滤掉。所以这里需要给弹丸事件和开关 绑定 重力的条件钥匙和条件锁 。
弹丸激活开关后,开关让弹丸瞬间转向,达到弹丸“被反弹”的效果。
由于 开启独立开关,再关闭独立开关 的过程,前后会消耗 2帧 的时间,所以如果弹丸过于密集,那么很可能会漏掉一些弹丸无法转向。
为了规避这个问题,你可以设置发射台每次要等几帧,才能再发射。
4. 举起花盆设置
这里需要设置 转向砖 能够被玩家举起,布置到任意地方。
你也可以设计 固定在地面的砖、只能推动的砖。
5. 测试转向
完成上述内容后,发射一个弹丸测试转向情况。
你也需要操作 玩家自己或其它事件 走到砖上面,看看会不会出其它问题。
石头设计
1. 设置一个目标
弹丸能够触发事件,那么就需要一种石头事件,能被弹丸炸开。
2. 结构规划/流程梳理
从设计上看,石头事件应该只是一个简单的事件,被触发后不再作用。
但是注意,由于后期添加并绑定了各种插件加成,你很难让一个石头事件与所有插件都毫不相干。
比如:石头具有镜像、石头能压一般的重力开关、石头能堵住玩家的去路 等。
因此你必须仔细分析这些因素,并排除意想不到的问题。
虽然 石头事件 没有 弹丸事件 复杂,但是你要考虑的情况仍然很多,因为石头本身是一个事件,可以具备许多特殊属性。需要反复测试游戏才能找出来。 |
3. 事件设置
石头反射镜像会干扰解谜设计的思路,这里关闭它。
石头爆炸后,瓦砾最好不一样,这里加了 行走图随机帧数设置。
注意,爆炸后的瓦砾,需要将触发设置改为“事件接触”。
该设置是为了避免问题:站在某事件上,无法举起面前的花盆 。
4. 测试石头
完成上述测试后,使用玩家的各项能力,检查石头的各项属性。
常见问题(FAQ)
弹丸遇到地面瓦砾事件也会爆炸
问题名称 | 弹丸遇到地面瓦砾事件也会爆炸 |
问题图示 | ![]() ![]() |
问题描述 | 1. 弹丸能够正常发射,而且能正常通过转向砖。2. 弹丸遇到其它事件会爆炸,但是遇到处于下方的瓦砾事件也会爆炸。 |
原理解析 | 此问题非常常见,与单位的阻塞设置有关。主要是添加了下面的注释造成的:![]() |
解决方案 | 给石头瓦砾勾选穿透即可。(你也可以给石头添加 弹丸的穿透标签)![]() |
转向砖放在某事件上,无法再举起
问题名称 | 转向砖放在某事件上,无法再举起 |
问题图示 | ![]() ![]() |
问题描述 | 1. 放置后,转向砖 无法被举起。2. 不同朝向都无法举起,并且不能触发任何指令。3. 没有任何提示音。 |
原理解析 | 举起花盆的不能生效的原因很多:1. 举起被禁止(但按键会发出错误提示音)2. 按键时,执行了其它的事件指令,而不是举起花盆。3. 花盆所处的事件页,没有举起注释。(举起的注释不能跨事件页,切换事件页后,花盆被举起功能则失效)既然 转向砖 放在了某事件上,那么极有可能是 砖 本身发生了事件页切换,从而不能被举起。后来将事件页的行走图通过修改图片标记了一下,发现的确是切换事件页了。罪魁祸首就是 转向砖 的重力开关,遇到了某事件,开启了开关。从而事件页切换,举起功能失效。 |
解决方案 | 给重力开关绑定 重力钥匙和重力锁 ,排除其它事件对 转向砖事件 的干扰。![]() |
站在某事件上,无法举起面前的花盆
问题名称 | 站在某事件上,无法举起面前的花盆 |
问题图示 | ![]() |
问题描述 | 1. 其他方向能够举起花盆。2. 唯独站在瓦砾事件上,无法举起花盆。 |
原理解析 | 此问题不是插件问题,而是游戏本身处理机制顺序问题。如果你站在一个事件上,你也无法与另一个事件进行对话。![]() ![]() |
解决方案 | 给将瓦砾事件切换成 “玩家接触”或者“事件接触”即可。这样就不会造成按 确定键 被抢优先权问题了。![]() |