多层组合装饰插件的指令容器
相关插件
相关插件:
◆Drill_MenuDecorationPluginCommandList 主菜单 - 多层装饰的指令容器
◆Drill_HtmlDecorationPluginCommandList 游戏窗体 - 天窗层装饰的指令容器
◆Drill_LayerDecorationPluginCommandList 地图 - 多层装饰的指令容器
◆Drill_BattleDecorationPluginCommandList 战斗 - 多层装饰的指令容器
指令容器能跨界面,能像公共事件一样被调用。
但只能装多层装饰插件的插件指令。

指令容器
定义
公共事件: 指游戏编辑器里面的 公共事件 配置。
可以加入多条事件指令,也包括插件指令。

指令容器: 指专门装插件指令的容器,可以执行容器内的指令,与公共事件用法类似。
(多层组合装饰插件的指令容器即:只能装装饰插件指令的容器)

指令容器中,每行代表一条插件指令,能快速编辑修改大量插件指令。
指令容器与动画
设计说明
装饰插件的设计分为两种:静态装饰设计、变换动画设计。
静态装饰设计,只是单纯的把贴图放在界面中;
变换动画设计,即通过插件指令专门设计一个变换动画。
后者因为支持 延迟指令/周期指令,灵活度非常高,所以就需要指令容器。

| 可以了解下大图:“17.主菜单 > 多层组合装饰与动画转场的关系.png”。 |
2)界面的用法差异
菜单界面、地图界面、战斗界面、天窗层,
有各自的装饰插件,也有各自的指令容器。
但指令容器之间不互通。
不同界面之间还存在用法差异,可见:
菜单界面:3)容器初始化
天窗层:3)用法差异
地图界面:3)用法差异
战斗界面: 3)用法差异
| 你必须先确定在什么界面设计动画,再使用对应的容器。 |
3)记事本存储插件指令
指令容器中,每行代表一条插件指令,能快速编辑修改大量插件指令。
以天窗层的指令容器为例,
你可以先在记事本中写好全部变换指令,
然后 Ctrl+A 选择全部,Ctrl+C 复制,Ctrl+V 粘贴到配置中。


| 一个记事本文件,代表一个做好的动画效果。 |
4)清空设计
设计添加指令时,注意留两个指令容器。
一个作为动画指令,另一个作为清空指令。

指令容器的等待
指令容器不是事件对象,无法添加等待指令。
目前只能将等待施加在 延迟指令 上。

比如:
1~3条不需要等待;
4~6条延迟2帧;
7~8条延迟2+31帧;
9~10条延迟2+31+31帧;
11~12条延迟2+31+31+31帧……以此类推。
最后,得到下面的设置。(直接从延迟10帧开始,后面方便统一调整)

子插件
【主菜单 - 多层装饰的指令容器】
1)容器设置
来自插件:
◆Drill_MenuDecorationPluginCommandList 主菜单 - 多层装饰的指令容器
直接在插件中配置即可。

指令列表中可以填写多行,每行代表一条插件指令。

设计添加指令时,注意留两个指令容器。一个作为动画指令,另一个作为清空指令。![]() |
2)为什么需要菜单指令容器
菜单装饰插件自带 延迟指令/周期指令。
(这些指令 不依赖 该插件)

使用方法与战斗插件相似,提前在地图界面执行公共事件完成配置,然后进入菜单界面。
只不过菜单界面没有 实时修改 功能,进入菜单后,什么都不能做。

战斗插件在每次进入战斗界面前,可以分配一个公共事件执行装饰动画。
但是菜单不一样,进入菜单不会执行公共事件,
并且在标题界面,直接能通过按钮进入菜单面板。(比如信息面板B)

为了让装饰插件的指令提前生效,
该插件 的 容器初始化 功能,就有用处了。
3)容器初始化
初始化功能会在游戏进入的一瞬间执行,配置如下图。

注意,放在标题界面的面板,(比如信息面板B、画廊等)
只能通过这个 容器初始化 的方式,添加自定义的 延迟指令和周期指令 来做动画。
因为脚本中 全局存储 不适用 延迟指令和周期指令,
所以标题界面没有 延迟指令和周期指令 功能,菜单界面只能通过初始化实现配置。

| 做动画用的 延迟指令和周期指令,执行后会存储起来。这个存储受限于存档,所以不支持全局存储,才不支持 标题界面 和 在标题的面板。 |
4)执行指令
使用下面插件指令即可,相当于公共事件调用。

【游戏窗体 - 天窗层装饰的指令容器】
1)容器设置
来自插件:
◆Drill_HtmlDecorationPluginCommandList 游戏窗体 - 天窗层装饰的指令容器
指令列表中可以填写多行,每行代表一条插件指令。
注意,只能是 天窗层装饰 的插件指令,其他指令无效。

你可以先在记事本中写好,然后一起粘贴到容器列表中。

设计添加指令时,注意留两个指令容器。一个作为动画指令,另一个作为清空指令。![]() |
2)执行指令
使用下面插件指令即可,相当于公共事件调用。

3)用法差异
》天窗层的贴图,跨越菜单界面、地图界面、战斗界面。

》天窗层的贴图,初始处于 隐藏 状态。动画播放结束时,需要重新隐藏。
》天窗层的贴图,播放延迟指令、周期指令时,因为跨界面,不会因为切换到不同界面而暂停变换动画的播放。
【地图 - 多层装饰的指令容器】
1)容器设置
来自插件:
◆Drill_LayerDecorationPluginCommandList 地图 - 多层装饰的指令容器
指令列表中可以填写多行,每行代表一条插件指令。
注意,只能是 地图装饰 的插件指令,其他指令无效。

你可以先在记事本中写好,然后一起粘贴到容器列表中。

设计添加指令时,注意留两个指令容器。一个作为动画指令,另一个作为清空指令。![]() |
2)执行指令
使用下面插件指令即可,相当于公共事件调用。

3)用法差异
》地图界面的装饰,在进入菜单界面、战斗界面时,装饰会处于停止状态。
也就是说,动画会暂停,回到地图界面了才继续。
》地图界面的装饰,需要绑定地图。如果绑定了所有地图,一定要 隐藏 或 设置透明度为0,否则全图都会受影响。

【战斗 - 多层装饰的指令容器】
1)容器设置
来自插件:
◆Drill_BattleDecorationPluginCommandList 战斗 - 多层装饰的指令容器
指令列表中可以填写多行,每行代表一条插件指令。
注意,只能是 战斗装饰 的插件指令,其他指令无效。

你可以先在记事本中写好,然后一起粘贴到容器列表中。

| 战斗界面的延迟指令、周期指令,存储在新创建的贴图的数据中。如果贴图被删除,那么对应的指令都会一起被删掉。所以战斗界面的指令容器,一般不考虑“清空”的情况。 |
2)执行指令
使用下面插件指令即可,相当于公共事件调用。

3)用法差异
》战斗界面需要先创建,后变换。

》创建的贴图被清理后,延迟指令、周期指令也会被一起清理。
所以战斗界面一般不考虑 ”清理” 的容器设置。
》因为贴图被删除后,延迟指令、周期指令也一起被删了,所以如果要在战斗界面加自定义动画,一般会在战斗场景的基础上,加入新执行的指令。

