逻辑图
逻辑图像虚幻引擎的蓝图一样,以节点和连线显示世界逻辑规则。它不是新的格式,而是以另一种形式查看与世界逻辑面板相同的数据。在任一边修改,都会立即反映到另一边。
一条规则从左到右排成一行。执行引脚按 事件 →(过滤)→ 条件 → 动作 的顺序相连。
| 内容 | 位置 |
|---|---|
| 逻辑图 | 工具 › 逻辑图(下方停靠区域的「逻辑图」选项卡。也可在「窗口」菜单中打开) |
| 添加节点 | 在图的空白处右键 · 工具栏「节点」 |
在图中创建「进入区域时播放声音」的规则。
- 在图的空白处右键。「添加节点」窗口打开。
- 在搜索框中输入
区域,选择「进入区域时」(事件)。会生成一条新规则。 - 在事件节点的「区域」字段中选择触发区域 Actor。
- 将事件节点右侧的白色执行引脚拖到空白处放开。
- 在打开的窗口中选择「声音」(动作)。它会连接到事件之后。
- 填写声音节点的「声音」字段。
- 确认工具栏右侧的检查摘要为「检查通过」。
| 节点 | 标题颜色 | 含义 |
|---|---|---|
| 事件 | 红 | 规则的触发器,是链条的起点。标题上有规则启用按钮。 |
| 过滤 | 赭黄 | 仅一次 · 每位玩家一次 · 冷却 · 权限。总是紧跟在事件之后。 |
| 条件 | 绿 | 为真时进入下一步。 |
| 动作 | 蓝(按分类着色) | 规则执行的内容。 |
| 等待 | 深蓝 | 即动作 wait。秒数字段在节点内。 |
| Actor 引用 | 紫 | 一个场景 Actor。连接到字段即可使用该 Actor。 |
| 未连接 | 灰 | 没有附属于任何规则的节点。不会被保存。 |
自 0.9.7 起:条件、动作节点的标题颜色按分类区分(区域 橙 · 流动 靛蓝 · 变量 · 函数 青绿 · 世界 偏绿 · 画面 蓝 · Actor 偏紫 · 碰撞 棕 · 方块 赭黄 · 战斗 偏红)。条件为混合了绿色的颜色。
有错误的节点显示红色边框,有注意事项的节点显示黄色边框。将鼠标悬停在标题上的标记上即可查看内容。
每条规则都由一个注释框(「规则框」)包围。框的标题显示规则名称和一行说明。拖动框会整体移动该规则。
| 引脚 | 形状 | 连接对象 | 数量 |
|---|---|---|---|
| 执行引脚 | 白色五边形箭头 | 执行顺序(事件 → 条件 → 动作) | 一条输出线 |
| 函数引脚 | 黄色菱形 | 调用函数的动作 →「函数」事件 | 一个引脚一条线 |
| 数据引脚 | 紫色圆形 | Actor 引用 → Actor 字段 | 一个可连接多个字段 |
| 信号引脚 | 黄色菱形 | 「发送信号」动作 →「收到信号时」事件 | 所有接收规则(广播) |
已连接的引脚为实心形状,未连接的引脚只有边框。函数线和信号线以虚线绘制。
- 将执行引脚拖到另一个节点上,会将该节点从当前位置取出并插入到紧随其后的位置。其他规则的节点也可以移动过来。
- 条件只能位于事件、过滤或其他条件之后,不能位于动作之后。
- 事件节点前面不能连接任何节点。
- 将执行引脚放在空白处时,「添加节点」窗口以「连接到此之后」方式打开,只显示条件和动作。
- 拖动连线的输入端将其断开,该节点会从链条中移出,后面的节点接到前面的节点上。移出的节点变为「未连接」。
自 0.9.11 起:黄色函数引脚一个引脚对应一个函数。执行是串行的,而不是并行的。
| 动作 | 引脚位置 |
|---|---|
| 调用函数 · 重复 · 每个玩家 | 「函数」字段行上一个引脚 |
| 分支(如果) | 「若为真」·「若为假」字段行上各一个引脚 |
| 依次(序列) | 每个步骤一个引脚(1 · 2 · …)+「连接下一步」引脚 |
- 将引脚拖到「函数」事件节点上,该函数名称会被填入字段。
- 对已连接的引脚再次连接会替换原连接,不会增加连线。
- 连接到「连接下一步」引脚会增加一个步骤。步骤按编号顺序执行。
- 将引脚放在空白处,会新建一条「函数」规则(名称为
func_1、func_2…)并连接。 - 存在两条以上同名函数规则时会产生检查错误,因为一个引脚会分成两路。
- 在一个调用字段中写入多个函数会产生检查错误。要依次调用多个函数,请使用「依次(序列)」。
函数及调用函数的动作详见变量 · 函数 · 数据类型。
- 将「发送信号」动作的引脚拖到「收到信号时」事件上,两者的信号名称会变为相同。
- 信号是广播,会发送到所有接收同名信号的规则。各接收规则用条件进行过滤。
- 动作节点上会显示「接收规则 N」或「无接收规则」。
- 将引脚放在空白处,会新建一条「收到信号时」规则并连接。
- 将 Actor 引用节点的紫色引脚拖到节点的 Actor 字段上,该字段即设为该 Actor。
- 如果是字段不接受的类型的 Actor,则不会连接,并提示原因。
- 将字段的紫色引脚拖到空白处,会打开只含 Actor 引用的「添加节点」窗口。
- 断开连线后该字段会被清空。
添加节点窗口
Section titled “添加节点窗口”在空白处右键或点击「节点」按钮打开。搜索框可按名称、type、分组搜索。
| 分组 | 选择后 |
|---|---|
| 事件 · … | 新建规则。 |
| 条件 · … / 动作 · … | 放置节点。如果是从执行引脚打开的窗口,则连接到其后;否则成为「未连接」节点。 |
| 规则 › 过滤 (仅一次·冷却·权限) | 显示所选规则的过滤节点。 |
| Actor 引用 | 将该 Actor 连接到所选节点中匹配的 Actor 字段。 |
仅能手动触发的触发器也可以在此窗口中选择。测试时使用运行中的「触发」。
删除 · 复制 · 拷贝
Section titled “删除 · 复制 · 拷贝”| 对象 | Delete | Ctrl+D |
|---|---|---|
| 事件 | 删除整条规则 | 复制整条规则(名称 +「 副本」) |
| 条件 · 动作 | 仅移出该节点 | 在其后创建副本 |
| 过滤 | 将过滤恢复为默认值并隐藏 | — |
| Actor 引用 | 清空使用该 Actor 的字段 | — |
| 未连接的节点 | 直接删除 | — |
自 0.9.7 起:可用 Ctrl+C · Ctrl+V 复制、粘贴节点。选中事件时会复制整条规则。可以粘贴到所选节点之后、其他规则或其他世界中。
断点与执行显示
Section titled “断点与执行显示”自 0.9.7 起:新增断点和执行显示。
- 选择动作节点(包括等待),按 F9。标题上会出现红点。
- 开始运行。
- 规则执行到该动作之前时,运行会暂停并弹出通知。
- 再次播放(Pause 或「已暂停」按钮)后,从该动作继续执行。
- 不能在条件节点和事件节点上设置断点。
- 运行中被执行的节点会以绿色边框短暂高亮。
- 断点仅在编辑器中有效。服务器会忽略。
工具栏上的按钮和复选框。
| 项目 | 默认值 | 含义 |
|---|---|---|
| 「节点」 | — | 打开添加节点窗口(与右键相同)。 |
| 自动排列 | — | 清除已保存的节点位置,每条规则排成一行。 |
| 断点 | — | 开启或关闭所选动作节点的断点(F9)。 |
| 查看全部 | — | 缩放以显示所有节点。 |
| 查看所选规则 | — | 跳转到世界逻辑列表中所选的规则。 |
| 与列表同步 | 开 | 在列表中选择规则时图会跳转到该规则;在图中选择节点时列表也会选中该规则。 |
| 规则框 | 开 | 为每条规则显示注释框。 |
| Actor 节点 | 开 | 为每个 Actor 字段显示 Actor 引用节点。 |
| 吸附到网格 | 开 | 将节点对齐到 16 单位的网格。 |
| 小地图 | 开 | 右下角的小地图。图区域较矮时隐藏。 |
| 缩放 | — | 显示当前缩放比例。范围为 25%~200%。 |
拖动节点后的位置会保存在规则数据中(_graph 字段,仅编辑器)。没有位置的节点会自动排布。
| 键 | 动作 |
|---|---|
| 右键(空白处) | 添加节点窗口 |
| Delete | 删除所选节点 |
| Ctrl+D | 复制所选节点 |
| Ctrl+C · Ctrl+V | 拷贝 · 粘贴 |
| F9 | 开启/关闭断点(焦点在图上时) |
| Ctrl+鼠标滚轮 | 放大 · 缩小 |
| 鼠标滚轮 | 平移图 |
| Ctrl+Z | 撤销(所有图修改) |
提示 / 注意
Section titled “提示 / 注意”- 「未连接」节点不会被保存,重新打开世界后会消失。请将其执行引脚接入规则链条。
- 过滤为默认值时,过滤节点处于隐藏状态。可通过「添加节点」› 过滤使其显示。
- 函数规则不使用过滤,请使用条件。
- 节点内的字段与世界逻辑面板中的控件相同。不在字段下方显示检查信息,而是通过字段名称的颜色和节点边框提示问题。