Logic Driver Pro
只需开口,就能构建 Logic Driver Pro 状态机:状态、转换、管道、条件图、布局以及 PIE 检查,全部通过 Logic Driver Assist 完成。
Logic Driver Pro
Recursoft 出品的 Logic Driver Pro 是许多 Unreal 项目用于 AI、任务、对话和游戏流程的状态机插件。借助 Logic Driver 扩展,Ultimate Engine CoPilot 可以为您构建这些状态机:它会创建资产,添加状态、转换和管道,编写转换条件,对图进行布局,编译它,并在 PIE 中检查。
它通过 Logic Driver Assist 工作,这是 Recursoft 为 Logic Driver 提供的官方创作层,因此每一次编辑都与您在 Logic Driver 图编辑器中手动进行的编辑完全相同。
您需要什么
在您项目的 Plugins 文件夹中:
- Logic Driver Pro 2.11 或更新版本,来自 Recursoft。
- Logic Driver Assist(即
SMAssist插件),来自 Recursoft。
另外还需要开启了 Logic Driver 扩展的 Ultimate Engine CoPilot。
没有 Logic Driver Assist 时,该扩展不会造成任何影响。它只会添加一个状态工具,其他一切不变。
设置
- 在您的项目中安装 Logic Driver Pro 2.11+。
- 将 Logic Driver Assist 放入同一项目的
Plugins文件夹。 - 在 CoPilot 中打开 设置 > 扩展,开启 Logic Driver。它默认是关闭的。
- 重启编辑器。启动时,CoPilot 会找到 Logic Driver Assist 的操作,并把每个操作添加为一个工具。
- 让 AI 检查 Logic Driver 的状态。它会报告是否找到了 Logic Driver Assist、添加了多少个操作;如果缺少什么,它会告诉您缺的是什么。
您可以提出的请求
- “创建一个包含 Idle、Patrol、Chase 和 Attack 的敌人 AI 状态机。当玩家在 1,500 单位以内时进入 Chase。”
- “添加一个任何状态都可以进入的 Stunned 状态,并在 2 秒后返回 Idle。”
- “给每个状态设置速度和颜色,并在节点上显示出来。”
- “对这个图进行布局,让连线互不交叉,然后给我看一张截图。”
- “把这个 Actor 放进关卡,启动 PIE,然后告诉我它处于哪个状态。”
在这些请求背后,AI 可以:
- 创建状态机 Blueprint,并添加状态、转换、管道、链接状态、Any State 和嵌套状态机。
- 内联编写转换条件,或指定一个转换类。它还可以让转换在事件发生时触发,而不是每个 Tick 都检查。
- 为状态指定带有自身变量的节点类,并设置每个状态的值,显示在节点上。
- 将状态机组件添加到 Actor 上,并设置它何时启动。
- 对图进行布局,找出重叠的节点,并为图截图。
- 编译,然后读取正在运行的 PIE 实例的当前活动状态,以证明流程正常运作。
人能读懂的图
状态机是用来阅读的,所以 AI 把布局视为构建的一部分:
- 每个状态都已连接。 恰好有一个状态启动状态机,不会留下任何未连接的节点。
- 独立的文件夹。 新的状态机会放入一个干净的文件夹。除非您要求,您现有的状态机不会被改动。
- 最后统一布局一次。 AI 会在添加完所有内容之后再对新图进行布局,这样随属性增长的节点仍有足够空间。会穿过某个状态的连线会被重新绕行。
- 检查,而不是假设。 它会查找重叠并为图截图,并使用链接状态和嵌套状态机,而不是让长连线横跨整个图绕回去。
- 在 PIE 中验证。 编译通过并不能证明流程正确,所以它会运行状态机并读取当前活动状态。
权限
读取不受限制:检查资产、图或正在运行的状态时无需询问。每一项更改都会先征求同意,与 CoPilot 的其他部分一样。少数无法撤销的更改,例如删除状态或替换类,会被标记为破坏性操作。
桥接如何运作
- 自动发现,而非硬编码。 CoPilot 在编辑器启动时读取 Logic Driver Assist 的操作,并添加已安装版本中的所有操作。当 Recursoft 添加或更改某个操作时,工具会随之更新,无需更新 CoPilot。
- 沿用其描述和参数。 每个工具都带有 Logic Driver Assist 自己的描述和参数列表,因此 AI 能看到真实的参数名称和类型。参数错误的调用不会被继续发送,而是会返回正确的参数。
- 处处可用。 这些工具可以在 CoPilot 的聊天中、在 Claude Code 和 Cursor 等外部 MCP 客户端中,以及在编码代理中使用。请参阅 MCP 集成。
- 名称。 Logic Driver Assist 用点号为操作命名,例如
ld.add_state。在 CoPilot 中,它们会变成ld_add_state、ld_add_transition、ld_compile等。Recursoft 的文档使用带点号的名称。 - 插件之间没有链接。 桥接通过控制台命令与 Logic Driver Assist 通信,因此两个插件在构建时都不依赖对方,并且无论是否安装了 Logic Driver,CoPilot 的运行方式都相同。
实验性
Logic Driver Assist 被 Recursoft 标记为实验性功能,其操作仍可能发生变化。由于 CoPilot 在启动时读取这些操作而不是将其硬编码,该扩展会自动跟上变化。
关于扩展的工作方式,请参阅 扩展;关于 Logic Driver 本身,请参阅 Logic Driver 文档。