MultiAgent-Unreal 按键说明
鼠标操作
| ⌨️ 按键 |
Select 模式 |
Deployment 模式 |
Modify 模式 |
Edit 模式 |
| 左键 |
点击选择 Agent / 框选多个 Agent |
在点击位置部署 Agent |
点击选择 Actor 进行修改 |
在点击位置创建 POI 标记点 |
| 左键 + Ctrl |
添加/移除选择 |
- |
- |
- |
| 左键 + Shift |
- |
- |
- |
选择 Actor 或 POI |
| 右键 |
选中的 Quadruped/Drone 导航到点击位置 |
- |
- |
- |
⌨️ 模式切换
| ⌨️ 按键 |
功能 |
| M |
切换 Edit 模式 (按一次进入,再按一次退出) |
| , (逗号) |
切换 Modify 模式 (按一次进入,再按一次退出) |
| Z |
切换主 UI 显示/隐藏 (输入框 + 结果显示) |
| N |
切换技能分配查看器显示/隐藏 |
注意:Edit 模式和 Modify 模式互斥,进入一个模式会自动退出另一个模式。
右侧边栏面板切换
右侧边栏已拆分为三个独立面板,可通过按键独立控制显示/隐藏:
| ⌨️ 按键 |
功能 |
| 6 |
切换系统日志面板 (System Log Panel) 显示/隐藏 |
| 7 |
切换预览面板 (Preview Panel) 显示/隐藏 |
| 8 |
切换指令输入面板 (Instruction Panel) 显示/隐藏 |
面板说明
| 面板 |
位置 |
功能 |
| 系统日志面板 |
右上角 |
显示系统日志消息,支持错误高亮 |
| 预览面板 |
右侧中部 |
显示任务图预览和技能列表预览 |
| 指令输入面板 |
右下角 |
提供指令输入框和发送按钮 |
注意:三个面板可独立显示/隐藏,互不影响。
Modify 模式 (修改模式)
w
Modify 模式用于查看和编辑场景中 Actor 的标签信息。进入该模式后,屏幕右上角显示橙色 "Mode: Modify (,)" 指示器,屏幕左侧显示修改面板。
操作说明
| 操作 |
功能 |
| 左键点击 Actor |
选中 Actor,显示轮廓高亮,文本框显示 Actor 标签 |
| 左键点击空白区域 |
取消当前 Actor 的高亮选中 |
| 编辑文本框 |
修改 Actor 的标签内容 |
| 点击确认按钮 |
提交修改,清空文本框和高亮 |
修改面板功能
- 多行文本框: 显示选中 Actor 的标签信息,可编辑
- 确认按钮: 提交修改内容
- 提示文字: 未选中 Actor 时显示 "点击场景中的 Actor 进行选择"
特性说明
- 同一时间只能高亮一个 Actor
- 切换到其他模式时自动清除高亮和隐藏修改面板
- 当前为占位符实现,标签格式为 "Actor: [ActorName]\nLabel: [placeholder]"
Edit 模式 (编辑模式)
Edit 模式用于模拟任务执行过程中发生的"新情况"(动态变化)。与 Modify 模式(持久化修改源场景图文件)不同,Edit 模式的所有操作仅针对临时场景图文件进行,不影响源文件。进入该模式后,屏幕右上角显示蓝色 "Mode: Edit (M)" 指示器,屏幕左侧显示编辑面板,屏幕左侧显示 Goal/Zone 列表面板。
操作说明
| 操作 |
功能 |
| 左键点击场景 |
在点击位置创建 POI (Point of Interest) 标记点 |
| Shift + 左键点击 Actor |
选中 Actor,显示轮廓高亮,编辑面板显示 Actor 对应的 JSON |
| Shift + 左键点击 POI |
选中/取消选中 POI(支持多选) |
| Shift + 左键点击 Goal/Zone Actor |
选中 Goal 或 Zone,显示其 JSON 信息 |
| Shift + 左键点击已选中对象 |
取消选中该对象 |
编辑面板功能 (右侧)
选中 Actor 时
- JSON 编辑区: 显示 Actor 对应的 Node JSON,可编辑(根据 shape 类型限制可编辑字段)
- Node 切换按钮: 如果 Actor 属于多个 Node,可切换显示不同 Node
- 确认按钮: 提交 JSON 修改到临时场景图
- 删除按钮: 从场景中删除 Actor 及其对应的 Node(仅 point 类型)
- 设为 Goal 按钮: 为选中的 Actor 添加
is_goal: true 属性
- 取消 Goal 按钮: 移除 Actor 的
is_goal 属性(仅当 Actor 已是 Goal 时显示)
选中 POI 时
- 描述输入框: 输入 Goal 或 Zone 的描述信息
- 创建 Goal 按钮: 选中单个 POI 时显示,将 POI 转换为 Goal 节点
- 创建区域按钮: 选中 3 个或更多 POI 时显示,将 POI 围成的区域创建为 Zone 节点
- 预设 Actor 下拉框: 选中单个 POI 时显示,可在 POI 位置添加预设 Actor
选中 Goal Actor 时
- JSON 编辑区: 显示 Goal 的 JSON 信息,可编辑描述等属性
- 确认按钮: 提交修改
- 删除按钮: 删除 Goal
选中 Zone Actor 时
- JSON 编辑区: 显示 Zone 的 JSON 信息,可编辑 properties
- 确认按钮: 提交修改
- 删除按钮: 删除 Zone
临时场景图预览
- JSON 预览区: 只读显示临时场景图的完整内容
- 滚动浏览: 支持滚动查看完整 JSON
- 高亮显示: 选中 Actor 或 POI 时,相关 Node 在预览中高亮
Goal/Zone 列表面板 (左侧)
- Goal 列表: 显示当前临时场景图中所有 Goal 节点
- Zone 列表: 显示当前临时场景图中所有 Zone 节点
- 点击列表项: 自动选中对应的 Goal/Zone Actor
- 自动刷新: 当场景图变化时自动更新列表
选择机制
- POI 多选: 可同时选中多个 POI
- Actor 单选: 同一时间只能选中一个 Actor,选中新 Actor 时自动取消之前的选择
- 互斥选择: Actor 和 POI 不能同时选中,选择一种类型时自动清除另一种类型的选择
Shape 类型编辑约束
| Shape 类型 |
可编辑字段 |
可删除 |
| point |
properties, shape.center |
✓ |
| polygon |
properties |
✗ |
| linestring |
properties |
✗ |
可视化元素
| 元素 |
外观 |
说明 |
| POI |
蓝色粒子效果 |
临时标记点,选中时变为黄色 |
| Goal Actor |
红色锥体 + 文本标签 |
已创建的 Goal 节点可视化 |
| Zone Actor |
蓝色样条曲线边界 |
已创建的 Zone 节点可视化,选中时变为黄色 |
特性说明
- POI 仅作为临时标记,不写入场景图文件
- 切换到其他模式时自动清除所有 POI、Goal Actor、Zone Actor 和高亮状态
- 所有修改仅影响临时场景图,不影响源文件
- 场景变化会实时通知后端规划器,支持重规划触发
- 修改 point 类型 Node 的坐标时,场景中 Actor 位置会同步更新
- Goal 和 Zone 创建后会自动生成可视化 Actor,支持点击选择和编辑
突发事件系统
| ⌨️ 按键 |
功能 |
| - |
触发/结束突发事件 (切换事件状态) |
| X |
切换突发事件详情界面 (仅在事件激活时有效) |
视角控制
| ⌨️ 按键 |
功能 |
| Tab / C |
切换到下一个 Agent 的 Camera 视角,进入 Direct Control 模式 |
| 0 / V |
返回上帝视角 (Spectator),位置 (790, 1810, 502) |
Agent View Mode (Direct Control 模式)
按 Tab 键进入 Agent 视角后,可以直接控制该 Agent 移动和视角。屏幕顶部会显示 "Direct Control: [Agent Name]" 指示器。
移动控制
| ⌨️ 按键 |
功能 |
| W |
Agent 向前移动 |
| S |
Agent 向后移动 |
| A |
Agent 向左平移 |
| D |
Agent 向右平移 |
| Space |
跳跃 (Human/Quadruped) |
| E |
Drone 上升 (仅 Drone 有效) |
| Q |
Drone 下降 (仅 Drone 有效) |
视角控制
| ⌨️ 按键 |
功能 |
| 鼠标左键拖动 |
旋转 Agent 视角 (Yaw/Pitch) |
| 方向键 ←/→ |
左右旋转 Agent (Yaw) |
| 方向键 ↑/↓ |
上下调整相机俯仰 (Pitch) |
特性说明
- 进入 Direct Control 模式后,RTS 命令 (巡逻、跟随等) 不会影响当前控制的 Agent
- 鼠标视角灵敏度较高,方向键灵敏度较低,适合精细调整
- 按 0 键退出 Direct Control 模式,返回 Spectator 视角
⌨️ 选择与编组 (星际争霸风格)
| ⌨️ 按键 |
功能 |
| 1-5 |
选中编组 1-5 |
| Ctrl + 1-5 |
将当前选择保存到编组 1-5 |
Squad 编队
| ⌨️ 按键 |
功能 |
| Q |
创建 Squad (需选中至少 2 个 Agent) |
| Shift + Q |
解散选中 Agent 所属的 Squad |
| B |
循环切换编队类型 (None → Line → Column → Wedge → Diamond → Circle → None) |
⌨️ Agent 命令
| ⌨️ 按键 |
功能 |
| F |
选中的 Quadruped/Drone 跟随 Human |
| G |
选中的 Quadruped/Drone 开始巡逻 (需场景中有 PatrolPath) |
| H |
选中的 Quadruped/Drone 去充电 |
| J |
选中的 Quadruped/Drone 停止并进入 Idle |
| K |
选中的 Quadruped/Drone 开始覆盖扫描 (需场景中有 CoverageArea) |
⌨️ 物品交互
| ⌨️ 按键 |
功能 |
| P |
Human 拾取附近物品 |
| O |
Human 放下持有物品 |
| I |
在鼠标位置生成可拾取物品 |
⌨️ 生成与调试
| ⌨️ 按键 |
功能 |
| T |
在 Human 前方生成 Quadruped |
| Y |
打印所有 Agent 信息 |
| U |
销毁最后一个 Agent |
⌨️ 相机传感器
| ⌨️ 按键 |
功能 |
| L |
拍照 (保存到 Saved/Screenshots/) |
| R |
开始/停止录像 (当前选中 Agent 的相机视角) |
| F9 |
开始/停止 Viewport 录制 (上帝视角/主窗口) |
⌨️ 显示控制
| ⌨️ 按键 |
功能 |
| [ |
切换 Agent 圆环高亮显示/隐藏 (橙色/绿色圆环) |
编队类型说明
| 类型 |
说明 |
示意 |
| None |
无编队,自由移动 |
- |
| Line |
横向一字排开 |
○ ○ L ○ ○ |
| Column |
纵队,跟随 Leader |
L → ○ → ○ → ○ |
| Wedge |
V形楔形 |
○ L ○ |
| Diamond |
菱形 |
◇ |
| Circle |
圆形环绕 Leader |
○○L○○ |
UI 指令输入
| ⌨️ 按键 |
功能 |
| Z |
显示/隐藏任务规划工作台 |
| 回车 |
提交输入的指令 (在输入框中) |
| 发送按钮 |
点击提交指令 |
指令输入界面功能
- 输入自然语言指令
- 查看系统响应结果
- 支持中英文输入
- 自动聚焦到输入框
- 提交后自动清空输入框
任务规划工作台
画布操作
| 操作 |
功能 |
| 左键拖拽空白区域 |
平移画布 |
| 滚轮 |
缩放画布 (0.25x ~ 2.0x) |
| 左键点击节点 |
选中节点 |
| 左键拖拽节点 |
移动节点 |
| 从输出端口拖拽到输入端口 |
创建边 |
| Delete / Backspace |
删除选中的节点或边 |
| 双击节点 |
编辑节点 |
| 左键点击边 |
选中边 |
| Escape |
取消连线拖拽 / 取消选中 |
工作台功能
- 状态日志: 显示操作记录和系统消息 (只读)
- JSON 编辑器: 手动编辑任务图 JSON
- 更新任务图按钮: 从 JSON 编辑器更新画布
- 提交任务图按钮: 将当前任务图发送到后端规划器
- 指令输入框: 输入自然语言指令发送到规划器后端
- 发送指令按钮: 提交指令
- DAG 画布: 可视化任务图,支持拓扑排序自动布局
- 节点工具栏: 提供可拖拽的节点模板 (Navigate, Patrol, Custom 等)
快捷键配置
按键映射在 MAInputActions.cpp 中定义,可通过修改代码自定义。UI 切换键已从 C 键改为 Z 键以避免冲突。
技能分配查看器
技能分配查看器功能
- 以甘特图格式显示机器人技能分配
- 左侧面板包含状态日志、JSON 编辑器和控制按钮
- 右侧面板显示甘特图可视化
- 支持手动编辑 JSON 或加载模拟数据
- 可发送技能分配到后端执行
- 实时显示技能执行状态(待执行、执行中、已完成)
画布操作
| 操作 |
功能 |
| 鼠标悬停技能条 |
显示技能名称和参数的工具提示 |
| 滚轮 |
垂直/水平滚动查看大型数据集 |