小功能设计-第一次获得物品
===概述===
示例图
第一次获得物品 的效果如下图。

示例工程
考虑到示例工程中的插件太多了,群友单独拿出来会遇到各种问题。
这里我建立了单独的解谜设计工程,并放入了集合中,方便熟悉用法。
| 小型示例工程集合链接: https://pan.baidu.com/s/1Z60Fht7alAGZymWOle68PQ提取码: 3r5e |
另外,示例中的插件一直在更新,而打包工程中的插件不一定会同步更新哦。
灵感来源
2022年6月1日,作者我在看《只狼》游戏的速通。
发现了这个功能:

第一次获得物品后,会显示上述的提示,而后面再获得物品,不会再提示。
最近我也在整理公共事件的插件,于是准备写“物品积累”插件。
写完物品积累插件后,如果也像只狼设计一样弹出一个提示窗口,有点费美术资源。
作者我懒了,不想画画。
然后作者我就想到了,游戏《塞尔达传说缩小帽》中林克的一个动作:

第一次获得物品,要让地图的小人物播放一个高兴的动作。
手中的道具闪耀发光。感觉不错,于是就开坑了。
===第一次获得物品 - 实现===
基础插件
如果要从零开始设计,需要用到下图的插件:

注意,该文档只说明 整体设计思路。
对于具体 插件指令和配置项 ,需要去示例中 公共事件 看看。
| 此设计为作者我一时兴起,目的是实现一个小仪式动画。因此会 混合使用 不同类型的插件来实现。设计是重点,插件才是其次,如果你有其它思路,不需要完全按照上述的插件来设计。 |
基础配置
具体注意示例下面的地方:
1)公共事件
只有这一个公共事件控制获得物品的全过程。

注意,示例中的公共事件在69位置,小工程中在2位置。

2)声音设置
获得物品时,需要播放me声音。

3)物品设置
为了方便起见,这里定义一个物品。
“物品积累时”插件需要根据这个物品id,来判断物品的获得次数。

4)模板管理层
需要一个模板管理层的地图,用于复制事件。
该事件就是一个穿透的事件,没有任何事件指令。


5)插件配置-行走图魔法圈
留意“行走图魔法圈”插件中的配置,对应了物品的光芒。


6)插件配置-物品积累时
留意“物品积累时”插件中的配置,
需要绑定物品id和公共事件id。

注意示例中,这两个id的值不一样。

设计思路
1)防干扰设计
由于此动作在地图界面中实时播放,
因此需要阻塞其它事件的执行,避免此过程中被其他事件干扰。

所以这里可以考虑用 串行的公共事件 执行。

| 除了地图串行的公共事件,还可以设计为打开进入一个菜单介绍界面。但这样就需要按新思路来设计,使用菜单GIF、菜单魔法圈另一套的插件结构了。 |
2)动作设计
量子妹获得物品后,需要高举获得的水晶。
这个动作中,水晶应该只是一个图像,并不是真实的物品。(不然就反复获得物品了)
所以可以设计为:用事件复制器复制一个假的穿透的事件,从玩家身上缓缓冒出,然后加上闪闪发光的效果。

公共事件设计
| 玩家可能在任何地图中获得矩量水晶,因此你不能指定某个id事件来进行操作,你只能复制一个事件,再操作复制的事件。 |
1)暂停与阻塞
首先,要将该公共事件,设置为串行执行,确保阻塞其它事件的触发。

然后,暂时关闭鼠标和键盘的控制。

2)复制水晶
由于玩家可能在任何地图中获得水晶,因此要获取玩家触发的水晶事件id极其麻烦。这里,我们可以复制一个新的水晶事件,来进行动画操作。
(这样,从宝箱里面拿的水晶,也能被量子妹”拿出来”展示了。)

水晶动画结束后,要留意彻底删除它,避免事件残留在地图中。

3)动作与特效
水晶复制后,播放缓缓上升的漂浮效果,然后背后加一个旋转的魔法圈,表示闪闪发光。

4)收尾细节
动画播放结束后,需要删除相关事件和魔法圈,以及恢复输入设备的控制。

5)游戏中测试效果
测试的效果如下,即使在遇敌管理层,被一群小爱丽丝追逐,
只要事件保持串行阻塞,就不会触发战斗。

| 动画播放时长与配置的音效相关。之前示例找的是一个很长的音效,要等4秒以上,后来换了短音效,2秒就结束了。 |
===第一次获得物品 - 注意事项===
事件复制的id
由于水晶事件是新生成的临时事件,因此其id在不同地图会变化。
因此需要先用事件变量来暂存,然后再重新拿出来用。

此方法在很多临时技能中都有用到,需要建立一个事件,然后控制事件执行施法功能。
但这里需要注意,“等待60帧”的延迟问题。
此处是串行执行,所以不担心被改写问题。
而如果是并行执行,那么存储的变量21可能会被其他并行事件改写,这样参数值就会错乱,找不到了。