ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

UE5.4 中让 Codex 写蓝图:Python 脚本与施工图自动化实践

UE5.4 中让 Codex 写蓝图:Python 脚本与施工图自动化实践 最近在 UE5.4 项目里想尝试“让 AI 写蓝图”一开始的想法很简单让 Codex 直接生成一个.uasset蓝图文件。真正试过之后才发现蓝图是图形化资产不是普通文本代码Codex 不能像改 C 那样直接改蓝图文件。绕了一段路之后我整理出了一条真正可落地的路径Codex 负责生成“蓝图施工图”和 UE Python 脚本UE5.4 编辑器负责执行脚本批量生成蓝图资产复杂节点逻辑再按施工图手动补完。本文会把完整流程、提示词模板、自动化脚本、常见问题全部记录下来。1. 背景与核心概念1.1 Codex 是什么Codex 是 OpenAI 推出的终端内 AI 编程代理工具它不只是聊天窗口而是可以直接读取项目文件、执行命令、生成代码补丁、运行测试的自动化代理。简单说你给 Codex 一个任务它可以帮你完成“分析项目结构 - 编写代码 - 修改文件 - 验证结果”的闭环。在 UE5.4 这种大型引擎项目里Codex 的作用并不是“点击编辑器按钮”而是作为文本生成层生成符合 UE 开发规范的代码、配置和脚本。因为 UE 项目本身包含大量目录结构、资产路径和版本信息所以我们需要在 Codex 的上下文中显式告诉它引擎版本、蓝图路径、编码约定等信息否则它很容易生成“看起来像但放不进项目”的内容。1.2 UE5.4 蓝图是什么UE5.4 的蓝图Blueprint是虚幻引擎的可视化脚本系统节点和连线构成逻辑网络。常见的蓝图类型包括 Actor 蓝图、动画蓝图、控件蓝图、编辑器工具蓝图等。蓝图虽然图形化但它不是“纯文本可读”的格式。蓝图层面的信息主要存储在后缀为.uasset的二进制资产文件中节点、引脚、变量、组件引用都序列化在这个文件里。正因如此Codex 这类基于文本的 AI 工具不能直接可靠地生成一个完整的蓝图.uasset文件。1.3 为什么不能直接让 Codex 生成蓝图很多刚接触 UE AI 的人会以为告诉 Codex “生成一个 BP 蓝图里面有 StaticMesh 组件和旋转逻辑”它就能直接在项目里建好蓝图。实际情况是.uasset是二进制格式不是 Markdown 或 JSON。蓝图节点网络非常复杂包含节点 GUID、引脚类型、连接信息、编译结果。即使强行生成二进制文件引擎也难以保证资产合法很可能导致编辑器崩溃或资产损坏。所以我们需要找一个“中间人”来帮 Codex 落地。UE 引擎本身就提供了自动化能力也就是编辑器 Python 脚本。Codex 生成 UE Python 脚本引擎在编辑器中执行脚本就可以创建、修改、编译蓝图资产。这是目前比较稳妥的 AI 写蓝图方案。1.4 可行的路径Codex UE Python 编辑器脚本我把整个流程拆成三层方案层Codex 根据需求生成蓝图节点清单我给它取名叫“蓝图施工图”用 JSON 描述节点和连线关系。自动化层Codex 生成 UE Python 脚本用于在 UE5.4 编辑器中创建蓝图资产、设置父类、配置初始属性。手工层对于节点图的自动写入UE Python API 目前尚未完整开放所以复杂节点连线仍需按“蓝图施工图”手工补充。这看起来不是“一键全自动”但在实际项目中已经能节省大量时间尤其是批量创建蓝图、批量改蓝图属性、统一蓝图命名这些重复劳动。2. 环境准备与版本说明2.1 本文使用的基础环境我在验证这套流程时用了以下环境操作系统Windows 11虚幻引擎UE5.4.x编辑器脚本插件Python Editor Script PluginCodex CLI通过 npm 安装的版本安装方式见下文模型服务OpenAI 兼容接口以实际模型服务为准需要说明的是UE 版本和 Codex 版本都会影响具体 API所以下文代码块里的关键位置我都会注明“需要按你的实际版本调整”不要原封不动拷贝就当作万能脚本。2.2 启用 UE5.4 的 Python 脚本插件在 UE5.4 编辑器中执行以下步骤打开菜单Edit - Plugins。搜索Python。启用Python Editor Script Plugin。重启编辑器。建议同时也启用Editor Scripting Utilities插件它可以提供方向更全的资产操作函数。启用后你可以在 UE 编辑器中通过Window - Developer Tools - Python打开 Python 命令面板也可以直接在 Output Log 的命令输入框里执行py命令。2.3 安装 Codex CLICodex CLI 的安装方式会根据官方版本变化。比较常见的两种Windows 桌面版从官方 GitHub Releases 页面下载安装包。CLI 版如果本机有 Node.js 18 及以上可以通过 npm 安装。示例命令npm install -g openai/codex安装完成后终端执行codex即可进入交互模式如果官方要求登录需要先完成认证登录。由于 Codex 版本迭代比较快安装时要以官方仓库的最新说明为准。2.4 配置模型服务如果你使用 OpenAI 官方模型服务直接在 Codex 的配置里指定模型名即可。如果你使用兼容 OpenAI 接口的第三方模型服务例如 DeepSeek 的 OpenAI 兼容接口可以通过 Codex 配置文件指向对应的base_url。下面是一份示意配置字段名以你当前使用的 Codex 版本为准# 文件位置C:\Users\你的用户名\.codex\config.toml # 仅示意具体字段请参考 Codex 官方文档 model deepseek-chat model_provider deepseek [model_providers.deepseek] name DeepSeek base_url https://api.deepseek.com/v1配置完成后可以用一条简单的 Codex 指令测试是否连通codex exec 你好请回复 OK如果返回OK说明模型服务已经打通。3. 核心拆解Codex 与 UE Python API 如何配合3.1 Codex 的核心交互模式Codex 既可以进入交互式会话也可以使用一次性指令。在交互模式里它会根据项目目录里的文件自动建立上下文也能读取你指定的.md或.txt文件。在 UE5.4 项目里推荐先在项目根目录建一个codex_context文件夹把项目规范、蓝图目录、常用命名规则写进去让 Codex 每次开始任务前读取。这样它就不会凭空发挥。我习惯让 Codex 输出固定格式的方案。比如你是 UE5.4 蓝图专家请针对我给出的需求输出两部分内容 1. BlueprintNodePlan用 JSON 描述需要的节点、节点属性、节点之间的连接关系。 2. PythonAutoCreateScript用 UE Python API 编写创建蓝图的脚本脚本不需要自动生成节点图只需创建蓝图资产并设置基础属性。 输出时只给代码块不要额外解释。这个 Prompt 才是整个流程的关键。它把事情拆成了“人类能看懂的蓝图施工图”和“引擎能执行的自动化脚本”两部分。3.2 UE Python 能操作哪些蓝图能力UE 的 Python API 属于编辑器自动化 API它能做的事情包括创建、复制、移动、删除资产。创建蓝图资产并指定父类。编译蓝图资产。添加或修改变量。访问资产路径和资产元数据。也就是说它更适合做“蓝图壳子”和“资产组织”而不是精细到每个节点位置和引脚连线。3.3 蓝图节点图的自动化边界这里要明确一个边界UE Python API 目前没有像 C 反射那样完整的节点编辑接口。你很难用 Python 在Event BeginPlay后面自动添加一个Print String节点并把它连接到执行引脚上。所以要合理发挥 Codex 的价值而不是逼它做做不到的事。我的做法是让 Codex 输出节点 JSON 施工图。让 Codex 输出 UE Python 脚本自动创建蓝图资产。人工根据 JSON 施工图在蓝图编辑器里补节点。3.4 一个可复用的“蓝图施工图”格式我推荐用 JSON 描述节点计划字段不要太复杂。下面是一个旋转 Actor 的施工图示例{ nodes: [ { type: Event BeginPlay, name: BeginPlay, position: -500, 0 }, { type: Add Actor Local Rotation, name: Rotate90, target: Self, params: { rotation: (0, 0, 90) }, position: 0, 0 }, { type: Delay, name: Delay1s, params: { duration: 1.0 }, position: 200, 0 } ], connections: [ { from: BeginPlay.exec, to: Rotate90.exec }, { from: Rotate90.exec, to: Delay1s.exec }, { from: Delay1s.completed, to: Rotate90.exec } ] }这个 JSON 并不是引擎原生格式但它足够清晰。人工照着这个施工图拖节点最多几分钟就能完成一个循环旋转逻辑。4. 实战让 Codex 生成旋转 Actor 蓝图的 Python 脚本4.1 明确目标蓝图我们在本文中要生成一个名为BP_RotatingActor的蓝图父类为Actor生成位置在/Game/Blueprints。功能要求游戏开始时自动执行旋转逻辑。每 1 秒绕 Z 轴旋转 90 度。需要循环执行。节点施工图我们已经在上一节给了示例下面重点看 Codex 如何生成 UE Python 脚本。4.2 在项目里准备 Codex 上下文在 UE5.4 项目根目录创建文件夹codex_context里面新建ue5_project.md# UE5.4 项目上下文 - 引擎版本5.4.x - 项目类型第三人称示例项目 - 蓝图目录/Game/Blueprints - Python 脚本目录/Content/Python - 命名规范蓝图资产以 BP_ 开头目录统一使用 /Game/Blueprints - Python 脚本规范使用 unreal 模块创建资产后必须调用 compile_blueprint 编译然后在终端中进入项目根目录再启动 Codex这样它就能参考这个上下文。4.3 向 Codex 下指令在 Codex 交互模式中输入下面这条指令请根据 codex_context/ue5_project.md 的项目规范在 /Game/Blueprints 下创建 BP_RotatingActor 蓝图资产。 要求 1. 蓝图父类为 Actor。 2. 生成路径为 /Game/Blueprints。 3. 资产名为 BP_RotatingActor。 4. 输出一个 Python 脚本脚本保存到 Content/Python/create_bp_rotating_actor.py。 5. 脚本中要包含资产目录判断、蓝图创建、蓝图编译和日志输出。正常情况下Codex 会输出一份可执行的 Python 脚本。下面是我对脚本的整理版本# 文件路径Content/Python/create_bp_rotating_actor.py import unreal # 目录常量 ASSET_PATH /Game/Blueprints ASSET_NAME BP_RotatingActor FULL_PATH f{ASSET_PATH}/{ASSET_NAME} # 1. 确保目录存在 asset_lib unreal.EditorAssetLibrary if not asset_lib.does_directory_exist(ASSET_PATH): asset_lib.make_directory(ASSET_PATH) # 2. 如果资产已存在先记录日志并退出避免覆盖 if asset_lib.does_asset_exist(FULL_PATH): unreal.log_warning(f资产已存在: {FULL_PATH}) raise SystemExit(停止创建资产已存在) # 3. 创建蓝图工厂并设置父类 asset_tools unreal.AssetToolsHelpers.get_asset_tools() factory unreal.BlueprintFactory() factory.set_editor_property(parent_class, unreal.Actor) # 4. 创建蓝图资产 bp_asset asset_tools.create_asset( ASSET_NAME, ASSET_PATH, unreal.Blueprint, factory ) if bp_asset is None: raise RuntimeError(Blueprint 创建失败请检查父类和资产路径) # 5. 编译蓝图 unreal.BlueprintEditorLibrary.compile_blueprint(bp_asset) # 6. 输出日志 unreal.log(f成功创建蓝图: {FULL_PATH})这份脚本的核心价值在于创建前检查目录避免手工建目录的繁琐。创建前检查资产是否存在避免覆盖已有资产。创建后立即编译蓝图确保蓝图资产可用。如果你使用的 UE 版本中BlueprintFactory.set_editor_property的字段名不一样需要参考当前版本的 Python API 文档调整。4.4 在 UE5.4 中运行 Python 脚本脚本写好后在 UE5.4 编辑器中打开 Output Log在命令输入框中执行py C:/YourProject/Content/Python/create_bp_rotating_actor.py如果你的项目在别的盘符请把路径换成实际路径。预期 Output Log 会输出成功创建蓝图: /Game/Blueprints/BP_RotatingActor如果出现异常大概率是 Python 插件没有启用或者脚本中的 API 名称和当前引擎版本不一致。4.5 按施工图手动补充节点蓝图资产生成后双击打开BP_RotatingActor蓝图表按下面流程补节点在事件图表中右键搜索Event BeginPlay放置。右键搜索Add Actor Local Rotation目标引脚连接SelfRotation 设置为(0, 0, 90)。右键搜索DelayDuration 设置为1.0。执行线按 JSON 施工图连接BeginPlay - AddActorLocalRotation - Delay - AddActorLocalRotation如此循环。这样BP_RotatingActor 就完成了一个循环旋转逻辑。4.6 运行与验证将BP_RotatingActor拖入关卡点击 PIE 运行。观察 Actor 的 Rotation 是否每 1 秒变化一次。如果正常说明 Codex 生成的蓝图资产和人工补充的节点逻辑都工作正常。5. 常见问题与排查思路在实际操作过程中最容易踩的坑主要集中在 Codex 配置、模型调用、UE Python 插件三块。问题现象常见原因解决思路Codex 安装后无法启动Node.js 版本过低或安装包不完整升级 Node.js 到 18重新安装 Codexcodex无法加载组织设置用户没有登录或认证信息失效重新执行登录流程检查用户组织权限调用模型时提示cc switch local proxy failed while handling codex endpoint /responses. provider...本地网络代理设置异常Codex 请求模型端点时走了不正确的代理检查系统代理环境变量以及 Codex 配置里的代理相关字段确保端点可达提示model is not supported配置的模型名与模型服务不支持查看模型服务支持的模型名修改config.toml中的model字段UE Python 执行报 No module named unrealPython 插件没有启用打开 Plugins启用 Python Editor Script Plugin 后重启编辑器py命令找不到脚本文件脚本路径错误或路径包含中文空格使用绝对路径路径用双引号包裹蓝图资产创建成功但打开后为空BlueprintFactory参数不正确或没有编译确认父类设置正确检查compile_blueprint日志节点逻辑无法循环Delay 与旋转节点未按循环结构连接对照 JSON 施工图把 Delay 的 completed 引脚接回旋转执行引脚如果你遇到 Codex 无法连接模型服务排查顺序应该是先看网络环境是否允许访问目标 API 端点再看config.toml的base_url是否正确最后用一条简单指令做连通性测试。6. 最佳实践与工程建议6.1 把提示词模板化不要每次临时给 Codex 下需求。我建议在项目里维护一个codex_prompts目录把常用任务做成模板例如创建蓝图资产脚本。批量复制蓝图并重命名。生成蓝图节点施工图。检查项目资产命名规范。这样既能保证输出格式稳定也方便团队复用。6.2 对 Codex 输出做分层管理Codex 输出的内容可以分为三类不能直接执行蓝图施工图、建议、方案说明。可以直接执行Python 脚本、命令行命令。需要 review修改引擎配置、修改项目设置。我会把蓝图施工图放在 Docs 目录把 Python 脚本放在Content/Python把需要人工确认的配置变更放到单独的 Review 清单里。这样不会把 AI 输出和正式项目文件混在一起。6.3 资产操作安全边界通过 Python 脚本操作 UE 资产是有风险的。特别是批量删除、覆盖、移动资产时一旦出错可能影响整个项目。建议在测试项目里先跑通脚本。脚本中增加“资产已存在”判断防止覆盖。操作前先提交版本控制或者备份Content目录。避免在生产项目中直接执行未经审查的批量删除脚本。6.4 维护性与人工审查AI 生成的 Python 脚本并不等于“可信任代码”。它可能存在使用了不存在的 API。遗漏了错误处理。对引擎版本特性理解错误。所以每次 Codex 生成代码后至少要人工检查一遍关键路径资产路径、类名、编译调用、错误日志。让 AI 自动化创建资产而人来把握项目规范这才是工程上更稳的姿势。6.5 把 Codex 输出纳入版本管理Codex 生成的有用资产和脚本也应该纳入版本控制包括Python 脚本。蓝图施工图 JSON。Codex 上下文文件。变更记录。这样团队里其他人也能看到这份蓝图是怎么生成的后期维护时也有据可查。7. 总结与下一步学习建议这篇文章主要解决了“Codex 如何接入 UE5.4 写蓝图”的路径问题。Codex 不能直接写二进制蓝图资产但可以通过 UE Python 自动化脚本创建蓝图资产再通过 JSON 施工图辅助人工拼接节点逻辑。这个组合在批量生成蓝图、规范化蓝图制作流程、快速验证蓝图设计方案时效率提升非常明显。接下来如果想继续深入可以从这几个方向学习UE Python API重点掌握AssetTools、EditorAssetLibrary、BlueprintEditorLibrary的常用方法。编辑器工具蓝图用来做更复杂的编辑器内自动化工具。Codex 的自定义上下文学会把项目规范、引擎版本、资产目录写进上下文让 Codex 输出更贴合实际项目。C 扩展蓝图编辑如果你真的需要“AI 一键生成节点图”可以考虑在 C 层做编辑器扩展给 Codex 提供更底层的 API 支持。这套流程的核心不是“完全不需要人”而是“让人从重复劳动里解放出来把时间花在审核和设计上”。如果你也在 UE5.4 项目里尝试 AI 辅助蓝图开发建议先从一个最简单的 Actor 蓝图开始跑通全流程再逐步扩展到更多复杂逻辑。
返回列表