首页
快速开始
文档
常见问题
联系方式
English
简体中文
首页
快速开始
文档
常见问题
联系方式
English
简体中文

QuickUI 文档

快速开始
文档
常见问题
沟通与联系

更新日志

v1.1.0

视频教程

UECopilot:在UE5中和AI一起工作
上一页快速开始
下一页常见问题

#UECopilot 插件手册

版本: 1.0.0 | 最后更新: 2026-05-08 适用引擎: Unreal Engine 5.7


#1. 插件概述

#1.1 什么是 UECopilot?

UECopilot 是一个集成在 Unreal Engine 5 编辑器中的 AI 辅助开发插件。它通过蓝图 MCP 服务端 (Blueprint Model Context Protocol Server, UEMCP),将 UE5 的蓝图数据结构和编辑操作暴露为 HTTP API,让 AI 模型(如 Claude、GPT 等)能够直接读取、理解、创建和修改蓝图资产。

一句话总结:UECopilot 让 AI 能"看懂"你的蓝图,并能像一名经验丰富的 TA/程序员一样帮你操作它们。

#1.2 运行模式

模式启动方式适用场景特点
编辑器模式UE5 编辑器启动时自动加载日常开发编辑器和 MCP 服务共存,实时操作

#2. 核心能力总览

UECopilot 的 UEMCP 模块经过全面分析,当前提供 80+ 个 MCP 工具,覆盖以下 9 大能力域:

能力域工具数量能力评级
蓝图读取与检索8稳定
蓝图图编辑与节点操作15稳定
蓝图变量与类型系统6稳定
函数/参数管理4稳定
蓝图结构与元数据9稳定
材质系统18成熟
动画蓝图系统12发展中
安全与快照系统6稳定
资产发现与反射5成熟
Unreal Python API(AI + World Building)Level Automation (Procedural Tools)计划中

能力评级说明:

  • 成熟:工具功能完整,边缘情况处理完善,有 SEH 保护
  • 稳定:核心路径可用,部分边界情况需留意
  • 发展中:基础能力可用,高级场景有待完善

#2.1 能做什么?(场景化描述)

场景一:AI 辅助蓝图调试

用户:"帮我检查这个蓝图里有没有断开的引脚连接"
AI → 调用 find_disconnected_pins → 返回所有未连接的输入引脚
AI → 给出修复建议

场景二:AI 辅助蓝图重构

用户:"把所有引用到 OldClass 的函数调用改成 NewClass"
AI → 调用 replace_function_calls(支持 dry_run 预览)→ 执行替换

场景三:AI 辅助材质创建

用户:"帮我创建一个带法线贴图和颜色调整的材质"
AI → create_material → add_material_expression (TextureSample、Multiply 等)
     → connect_material_pins → 完成材质网络

场景四:AI 辅助动画状态机

用户:"在这棵动画蓝图中添加一个 Idle→Run 的转换"
AI → add_anim_state → add_anim_transition → set_transition_rule

场景五:安全实验

用户:"我想修改这个函数参数类型,但怕出问题"
AI → snapshot_graph(先快照)→ change_function_parameter_type → 如果出错则 restore_graph

#3. 系统要求

  • Unreal Engine: 5.7+
  • 操作系统: Windows 64 位(已完整测试)
  • 额外依赖: Node.js(用于 Web UI 服务,MCP 服务不需要)

#4. 使用引导

#4.1 工作流程建议

推荐的工作流程是 "预览 → 快照 → 执行 → 验证" 四个步骤:

步骤 1:预览分析
  ├── 使用 get_blueprint / get_blueprint_graph 了解当前状态
  ├── 使用 search_blueprints 搜索相关节点
  └── 使用 check_pin_compatibility 预检引脚连接可行性

步骤 2:创建安全快照
  └── 使用 snapshot_graph 保存当前图状态

步骤 3:执行变更
  ├── 使用 add_node / connect_pins / delete_node 等
  ├── 支持 dryRun 参数的修改工具先做干运行
  └── 重大变更使用 validate_blueprint 检查编译结果

步骤 4:验证与恢复
  ├── 使用 validate_blueprint 验证蓝图完整性
  ├── 使用 diff_graph 对比变更前后差异
  └── 如有问题使用 restore_graph 回滚到快照状态

#4.2 AI 对话提示词技巧

好的提示词示例:

# 明确指定操作对象
"在蓝图 MyCharacter 的 EventGraph 中添加一个 Print String 节点,打印 'Hello'"

# 分步骤操作
"1. 先对 MyCharacter 的 EventGraph 做快照
 2. 然后把 MoveForward 函数的输入参数类型从 float 改成 double
 3. 最后验证蓝图是否有编译错误"

# 先查询后操作
"先列出项目中所有继承自 Character 的蓝图,
 然后告诉我它们的名字和路径"

需要避免的模糊提示词:

✗ "帮我修一下这个蓝图" — 哪个蓝图?修什么?
✗ "加个功能" — 什么功能?在哪加?
✗ "改一下材质" — 哪个材质?改成什么样?

#4.3 使用注意事项

  1. MCP 服务不是头部安全的:虽然使用了 SEH(结构化异常处理)保护,但极端情况下错误操作仍可能导致编辑器崩溃。建议在操作前先保存项目,并备份重要蓝图。

  2. 所有写操作支持 Ctrl+Z 撤销:服务端为每个写操作包装了 Undo 事务,但在持续操作后建议及时手动保存。

  3. 快照保存在磁盘:快照文件保存在 Project/Saved/BlueprintMCP/Snapshots/ 目录,不会随项目版本控制。重要操作建议手动备份。

  4. AI 模型对 UE 术语的理解差异:不同 AI 模型对 UE 特定术语(如"引脚连接"、"分解结构体"、"事件调度器")的理解可能存在差异,请在提示词中使用 UE5 官方术语。


#5. MCP 工具大全

说明:以下列出所有可通过 AI 对话直接调用的 MCP 工具。工具名称采用蛇形命名法(snake_case),您可以在提示词中直接使用这些工具名。

#5.1 蓝图检索与读取(8 个工具)

工具名功能关键参数
list_blueprints列出所有蓝图资产,支持按名称、父类筛选filter, parentClass, type
get_blueprint获取指定蓝图的详细信息(变量、函数、组件等)name
get_blueprint_summary获取蓝图的简要摘要(与 get_blueprint 相同)name
get_blueprint_graph获取指定图(EventGraph、FunctionGraph 等)的完整结构name, graph
describe_graph获取图的伪代码风格描述(与 get_blueprint_graph 相同)name, graph
search_blueprints在蓝图中搜索特定名称的节点query, path, maxResults
find_asset_references查找引用指定类的所有节点class, blueprint
search_by_type按节点类型搜索蓝图中的使用情况nodeClass, blueprint, graph

#5.2 蓝图节点编辑(15 个工具)

工具名功能关键参数
add_node在指定图中添加新节点blueprint, graph, nodeType, position
delete_node删除图中的一个节点blueprint, nodeId
duplicate_nodes复制一个或多个节点blueprint, nodeIds, offset
move_node移动节点到新位置blueprint, nodeId, position
connect_pins连接两个节点之间的引脚blueprint, sourceNodeId, sourcePin, targetNodeId, targetPin
disconnect_pin断开指定引脚的所有连接blueprint, nodeId, pinName
refresh_all_nodes刷新图中所有节点(清理断开引用)blueprint
set_pin_default设置引脚的默认值blueprint, nodeId, pinName, value
get_pin_info获取引脚的详细信息(类型、方向、连接状态)blueprint, nodeId, pinName
check_pin_compatibility预检两个引脚是否可以连接blueprint, sourceNodeId, sourcePin, targetNodeId, targetPin
get_node_comment获取节点的注释文本blueprint, nodeId
set_node_comment设置节点的注释文本blueprint, nodeId, comment
replace_function_calls替换蓝图中的函数调用目标类(支持 dry_run 预览)blueprint, oldClass, newClass, dryRun
change_struct_node_type更改 Break/Make 结构体节点的结构体类型blueprint, nodeId, structType

#5.3 蓝图变量系统(6 个工具)

工具名功能关键参数
add_variable添加新成员变量到蓝图blueprint, variableName, variableType, category
remove_variable删除蓝图的成员变量blueprint, variableName
change_variable_type修改变量类型(支持 dry_run 预览影响分析)blueprint, variable, newType, dryRun
set_variable_metadata设置变量的元数据(分类、描述等)blueprint, variable, metadata
set_blueprint_default设置蓝图 CDO 默认属性值blueprint, propertyName, value
delete_asset删除指定的资产文件path

#5.4 函数与参数管理(4 个工具)

工具名功能关键参数
add_function_parameter为函数/自定义事件添加参数blueprint, functionName, paramName, paramType
remove_function_parameter删除函数/自定义事件的参数blueprint, functionName, paramName
change_function_parameter_type修改函数参数类型(支持 dry_run 预览)blueprint, functionName, paramName, newType, dryRun
reparent_blueprint更改蓝图的父类(支持 C++ 类和蓝图类)blueprint, newParentClass

#5.5 蓝图结构与元数据(9 个工具)

工具名功能关键参数
create_blueprint创建新的蓝图资产blueprintName, packagePath, parentClass, blueprintType
create_graph在蓝图中创建新图(EventGraph、FunctionGraph 等)blueprint, graphName, graphType
delete_graph删除蓝图中的指定图blueprint, graphName
rename_graph重命名蓝图中的图blueprint, oldName, newName
add_interface为蓝图添加接口实现blueprint, interfaceName
remove_interface移除蓝图实现的接口(可选择保留函数)blueprint, interfaceName, preserveFunctions
list_interfaces列出蓝图已实现的所有接口blueprint
add_event_dispatcher添加事件调度器(支持带参数的调度器)blueprint, dispatcherName, parameters
list_event_dispatchers列出蓝图所有的事件调度器及其参数blueprint

#5.6 组件系统(3 个工具)

工具名功能关键参数
add_component在蓝图的 SCS 中添加组件blueprint, componentClass, name, parentComponent
remove_component删除蓝图的 SCS 组件blueprint, componentName
list_components列出蓝图 SCS 中的所有组件blueprint

#5.7 用户自定义类型(4 个工具)

工具名功能关键参数
create_struct创建用户定义结构体资产(支持添加属性)assetPath, properties
create_enum创建用户定义枚举资产assetPath, values
add_struct_property为结构体添加新属性structPath, propertyName, propertyType
remove_struct_property从结构体中删除属性structPath, propertyName

#5.8 材质系统(18 个工具)

材质读取:

工具名功能关键参数
list_materials列出所有材质和材质实例资产filter, type
get_material获取材质的详细信息(域、混合模式、参数列表、引用贴图)name
get_material_graph获取材质图的节点连接结构name
describe_material对材质图进行详细的伪代码描述material
search_materials搜索材质中的表达式query
find_material_references查找引用指定贴图或材质函数的材质texture, materialFunction

材质写入:

工具名功能关键参数
create_material创建新材质资产(支持域、混合模式设置)name, packagePath, domain, blendMode
set_material_property设置材质顶层属性(域、混合模式、双面等)material, property, value
add_material_expression在材质图中添加表达式节点material, expressionClass, position
delete_material_expression删除材质图中的表达式material, expressionId
connect_material_pins连接材质图中的两个引脚material, expression, pinName, targetExpression, targetPin
disconnect_material_pin断开材质指定引脚的所有连接material, expressionId, pinName
set_expression_value设置材质表达式的参数值material, expressionId, parameter, value
move_material_expression移动材质表达式在编辑图中的位置material, expressionId, position

材质实例:

工具名功能关键参数
create_material_instance创建材质实例常量(MIC)name, packagePath, parentMaterial
set_material_instance_parameter设置材质实例的参数覆盖值materialInstance, parameterName, value, type
get_material_instance_parameters获取材质实例的所有可覆写参数列表materialInstance
reparent_material_instance更改材质实例的父材质materialInstance, newParent

材质函数:

工具名功能关键参数
list_material_functions列出所有材质函数资产filter
get_material_function获取材质函数的详细信息name
create_material_function创建新的材质函数资产name, packagePath

材质安全:

工具名功能关键参数
validate_material编译验证材质material
snapshot_material_graph对材质图做快照material
diff_material_graph对比材质图与快照的差异material, snapshotId
restore_material_graph从快照恢复材质图material, snapshotId

#5.9 动画蓝图系统(12 个工具)

工具名功能关键参数
create_anim_blueprint创建动画蓝图资产name, packagePath, skeleton, parentClass
add_state_machine在动画蓝图中添加状态机blueprint, name
add_anim_state在状态机中添加动画状态blueprint, stateMachine, stateName
remove_anim_state从状态机中删除动画状态blueprint, stateName
add_anim_transition在状态之间添加转换规则blueprint, fromState, toState
set_transition_rule设置状态转换的规则蓝图blueprint, transitionId, ruleBlueprint
add_anim_node在动画状态中添加动画节点blueprint, stateName, nodeType
set_state_animation设置状态使用的动画序列blueprint, stateName, animation
list_anim_slots列出动画蓝图的插槽(Slots)blueprint
list_sync_groups列出动画蓝图的同步组(Sync Groups)blueprint
create_blend_space创建混合空间资产(1D/2D)name, packagePath, skeleton
set_blend_space_samples设置混合空间的采样点blendSpace, samples

#5.10 安全与快照系统(6 个工具)

工具名功能关键参数
snapshot_graph创建蓝图的图快照(保存在磁盘)blueprint, graphs
diff_graph将当前图与快照进行差异对比blueprint, snapshotId
restore_graph从快照恢复蓝图图blueprint, snapshotId
find_disconnected_pins查找图中所有未连接的输入引脚blueprint
analyze_rebuild_impact分析蓝图重建的潜在影响范围blueprint, changeDescription
diff_blueprints对比两个蓝图的图结构差异blueprintA, blueprintB, graph

#5.11 资产发现与反射(5 个工具)

工具名功能关键参数
list_classes列出所有可用的 UClassfilter
list_functions列出指定类的所有函数className, filter
list_properties列出指定类的所有属性className, filter
rescan_assets重新扫描资产注册表,刷新缓存无
server_status查看 MCP 服务器运行状态和资产统计无

#5.12 工具函数与安全机制

类型解析器(ResolveTypeFromString)

支持的类型解析格式:

输入格式示例解析结果
基本类型int, float, bool, string, text对应基本引脚类型
对象引用object:ActorUObject 子类引用
软对象softobject:Texture2D软对象引用
类引用class:Actor类引用
软类引用softclass:AnimInstance软类引用
结构体struct:Vector, struct:Transform结构体引脚类型
枚举enum:ETraceTypeQuery枚举字节类型
接口interface:BPI_Interact接口引用
数组array:int, array:object:ActorTArray 类型

SEH 安全保护(Windows 专用)

对于高风险操作(蓝图编译、材质表达式添加、包保存等),使用了 __try/__except 结构化异常处理(SEH)机制。这意味着即使操作导致引擎内部崩溃(如访问冲突),服务也不会完全崩溃,而是返回错误信息。

Undo 事务支持

所有修改蓝图的工具调用都会包裹在 Undo/Redo 事务中,这意味着在编辑器中使用时,可以通过 Ctrl+Z 撤销 AI 执行的操作。


#6. 使用边界与限制

#6.1 已知限制

类别限制说明影响程度
多用户服务为单用户设计,不支持多人同时操作⚠️ 中
网络仅监听 127.0.0.1,不支持远程访问🔒 安全设计
版本兼容基于 UE5.4+ API,未在 UE4 测试⚠️ 高
平台SEH 保护仅限 Windows;材质系统 SEH 有专用实现⚠️ 中
热重载插件模块热重载后需要重新连接⚠️ 低
大项目上万个蓝图的超大项目首次扫描可能耗时数秒⚠️ 中
编译安全蓝图编译触发完整编译链,复杂蓝图可能耗时⚠️ 中
AI 理解AI 模型对 UE 图结构、引脚类型的理解有其局限性⚠️ 需注意

#6.2 不支持的场景

  1. C++ 代码操作:只能操作蓝图和资产,不能创建或修改 C++ 代码文件
  2. 运行时调试:不支持断点、单步执行等调试功能
  3. 多用户协作:无并发控制机制,不适合多人同时操作同一蓝图
  4. 内容迁移:不支持跨项目的内容迁移
  5. 源码控制集成:不直接与 Perforce/Git/SVN 交互
  6. 打包构建:不支持打包、烘焙等构建流程
  7. 关卡编辑:不直接支持关卡中的 Actor 放置和编辑
  8. 数据表操作:暂时不支持 DataTable/CurveTable 的编辑
  9. Niagara 系统:不支持 Niagara 粒子系统的操作
  10. UI/UW 编辑:不支持 Widget Blueprint 的编辑

#6.3 安全边界

✅ 可以做的:
   · 读取/创建/修改蓝图资产
   · 读取/创建/修改材质资产
   · 读取/创建/修改动画蓝图
   · 创建结构体和枚举
   · 进行安全快照和恢复
   · 在编辑器中使用 Ctrl+Z 撤销

❌ 不应做的:
   · 将编辑器暴露到外网访问
   · 在无版本控制的情况下批量修改
   · 依赖 AI 完全理解复杂图结构的语义
   · 跳过测试在关键节点上直接使用

⚠️ 需要谨慎的:
   · 修改已有蓝图的父类(可能导致大量断连)
   · 批量重命名/删除资产
   · 修改变量类型(可能断开现有连接)
   · 在动画蓝图状态机中大规模修改

#7. 对话式 MCP 操作的提示词准确度难点

#7.1 核心难点

使用自然语言通过 AI 模型操作 UE5 蓝图,存在以下核心挑战:

#难点一:图结构的三维语义丢失

蓝图图是一个二维视觉结构。AI 只能看到一个扁平的 JSON 节点列表,丢失了空间信息,例如:

  • 节点位置和布局(靠近意味着逻辑分组)
  • 通过注释框实现的视觉分组
  • 执行流方向(从左到右、从上到下的约定)
  • 颜色提示(节点类型指示、执行线颜色)

影响:AI 难以理解图的"设计意图",只能看到结构化的连接数据。

#难点二:引脚类型的隐性知识

引脚类型在 UE5 中是一个复杂系统:

引脚的显性信息需要的隐性知识
PinCategory = "object"需要知道子类关系树
PinSubCategoryObject需要理解对象引用 vs 类引用
bIsReference需要知道传值 vs 传引用的语义差异
PinValueType需要理解 Map/Set 容器的键值类型关系

影响:AI 在构造 connect_pins 请求时,可能给出语义不正确的引脚配对。

#难点三:变更的级联效应

一个简单的修改可能产生连锁反应:

修改变量类型(int → float)
  → 所有 Get/Set 节点的输出引脚类型变化
    → 连接到这些引脚的节点可能断连
      → 下游节点的输入值变成无效
        → 编译时产生警告或错误

影响:AI 难以完整预测一个变更的全部级联效应,即使有 dryRun 支持。

#难点四:UE 术语的多义性

术语在不同上下文中的含义
"节点"可以是蓝图节点、材质表达式、动画状态或者骨架节点
"连接"可以是引脚连接、状态转换或者组件父子关系
"类型"可以是变量类型、引脚类型、节点类型或者资产类型
"图"可以是 EventGraph、FunctionGraph、AnimationGraph 或 MaterialGraph

影响:AI 可能混淆不同上下文中的术语含义,导致请求参数错误。

#难点五:会话状态维护

第1轮:AI → "列出所有蓝图"
       服务 → 返回 50 个蓝图名

第2轮:AI → "打开第一个看看"
       问题 → "第一个"指的哪个?用户需要维护对话上下文

影响:插件本身无状态,每次工具调用都是独立的。AI 模型需要在对话中维护状态,但上下文窗口有限。

#7.2 当前缓解策略

插件层面已实现的缓解措施:

  1. 详细的错误信息:当操作失败时返回具体的错误原因和可用选项列表(如列出可用引脚名、可用图名等)
  2. dryRun 模式:关键修改操作支持预览模式,返回影响分析
  3. 快照机制:支持操作前快照,操作后可恢复
  4. SEH 保护:极端情况下的崩溃保护

#10. 常见问题与故障排除

#10.1 操作问题

问:操作蓝图后没有生效

  1. 检查操作返回的 JSON 中 saved 字段是否为 true
  2. 在编辑器中手动保存资产(Ctrl+S)
  3. 重新打开蓝图图查看变更

问:蓝图编译出现错误

  1. 使用 validate_blueprint 工具查看具体错误信息
  2. 如果有快照,使用 restore_graph 恢复
  3. 或在编辑器中使用 Ctrl+Z 撤销

问:AI 无法找到指定的蓝图

  1. 确保蓝图名称正确(区分大小写)
  2. 使用 list_blueprints 工具查看所有可用蓝图
  3. Level Blueprint 需要通过地图名引用

#10.2 性能问题

问:首次调用 list_blueprints 响应慢

首次调用会触发资产注册表全量扫描。后续调用使用缓存,速度会提升。


#11. 附录:能力统计总表

#11.1 概览数据

统计项数值
MCP 工具总数80+
能力域9 大类
支持的资产类型Blueprint, Material, MaterialInstance, MaterialFunction, AnimBlueprint, UserDefinedStruct, UserDefinedEnum, BlendSpace

#11.3 类型支持覆盖

蓝图引脚类型支持状态
boolean, byte, int, int64, float, double, name, string, text✅ 完整
object, softobject, class, softclass, interface✅ 完整
struct (Vector, Transform, Rotator, Color 等)✅ 完整
enum✅ 完整
array, set, map✅ 基础支持
delegate, mcdelegate✅ 基础支持

#结语

UECopilot 的目标是让 AI 成为 UE5 开发者的得力副驾——不是替代你的判断力,而是帮助你更快地完成重复性工作、减少人为失误、并在大型项目中保持操作的准确性和可追溯性。

给用户的建议:

  • 从小处开始:先在简单的蓝图上试用
  • 善用快照:任何重大操作前先做快照
  • 渐进式使用:从读取 → 简单修改 → 复杂创建,逐步深入
  • 保持反馈:遇到问题请提供详细日志,帮助插件持续改进

UECopilot - 让 Unreal Engine 开发插上 AI 的翅膀