跳转至

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 显示/隐藏任务规划工作台
回车 提交输入的指令 (在输入框中)
发送按钮 点击提交指令

指令输入界面功能

  • 输入自然语言指令
  • 查看系统响应结果
  • 支持中英文输入
  • 自动聚焦到输入框
  • 提交后自动清空输入框

任务规划工作台

⌨️ 按键 功能
Z 显示/隐藏任务规划工作台

画布操作

操作 功能
左键拖拽空白区域 平移画布
滚轮 缩放画布 (0.25x ~ 2.0x)
左键点击节点 选中节点
左键拖拽节点 移动节点
从输出端口拖拽到输入端口 创建边
Delete / Backspace 删除选中的节点或边
双击节点 编辑节点
左键点击边 选中边
Escape 取消连线拖拽 / 取消选中

工作台功能

  • 状态日志: 显示操作记录和系统消息 (只读)
  • JSON 编辑器: 手动编辑任务图 JSON
  • 更新任务图按钮: 从 JSON 编辑器更新画布
  • 提交任务图按钮: 将当前任务图发送到后端规划器
  • 指令输入框: 输入自然语言指令发送到规划器后端
  • 发送指令按钮: 提交指令
  • DAG 画布: 可视化任务图,支持拓扑排序自动布局
  • 节点工具栏: 提供可拖拽的节点模板 (Navigate, Patrol, Custom 等)

快捷键配置

按键映射在 MAInputActions.cpp 中定义,可通过修改代码自定义。UI 切换键已从 C 键改为 Z 键以避免冲突。

技能分配查看器

⌨️ 按键 功能
N 显示/隐藏技能分配查看器

技能分配查看器功能

  • 以甘特图格式显示机器人技能分配
  • 左侧面板包含状态日志、JSON 编辑器和控制按钮
  • 右侧面板显示甘特图可视化
  • 支持手动编辑 JSON 或加载模拟数据
  • 可发送技能分配到后端执行
  • 实时显示技能执行状态(待执行、执行中、已完成)

画布操作

操作 功能
鼠标悬停技能条 显示技能名称和参数的工具提示
滚轮 垂直/水平滚动查看大型数据集