
这两年做游戏原型最明显的变化就是“资产”和“代码”这两件最耗时的事终于有了能真正干活的 AI 搭档。Tripo Astra 负责把一句话描述变成带 PBR 材质的 3D 资产Codex 负责把一段需求变成可编译的 C 逻辑两者再汇入虚幻引擎——一套从零到可运行 Demo 的流程就能压缩到几个小时以内。这篇文章就是一套我已经跑通的原型工作流复盘用什么工具、按什么顺序做、在哪个环节容易翻车全部基于实际操作记录不是那种只讲概念的科普。如果你正在做独立游戏、Game Jam 原型或者团队里急需要一个“能玩”的关卡验证玩法这一套流程可以直接参考。我也踩了不少坑特别是 Codex 的模型权限报错、UE5 工程编译失败、AI 生成模型导入后比例错乱这类问题都会在最后整理成速查表。1. 方案拆解一套“AI出资产、AI写代码”的原型工作流1.1 这套组合到底解决什么问题传统做游戏原型最怕两件事第一美术资产没到位第二逻辑代码写不动。过去一个人想快速验证一个玩法要么去买现成资产包要么啃几个月建模要么硬着头皮堆代码。很多时候想法很好卡在这两步。Tripo Astra 这类 AI 3D 生成工具目标是把“有资产”这件事变成分钟级操作。你在输入框里写一句“一间中世纪森林小屋木墙、茅草顶”它就能给你生成一个带贴图的三维模型。不用建模软件不用雕刻不用展 UV至少从“有没有”这个角度看它已经把门槛砍掉了一大截。Codex 解决的是另一头。它是 OpenAI 推出的编程智能体和普通聊天问答不一样它可以直接在你的项目目录里读写文件创建 C 类、修改代码、帮你跑构建命令。对虚幻引擎这种巨型 C 工程来说这意味着“写一个拾取物品的 Actor”这种任务你只要用自然语言描述清楚Codex 就能把 .h 和 .cpp 都生成好剩下的是编译和微调。两者组合起来价值就很明显了Tripo Astra 把你脑子里的“场景想象”变成视口里的模型Codex 把“玩法需求”变成可运行的逻辑。虚幻引擎负责把这些东西串成最终体验。一个人一台电脑几个小时就能做出以前需要一个三到五人的小团队才能完成的原型验证。适合这么干的人我总结下来有三类独立开发者Core Loop 还没有验证不想过早投入美术制作。程序或策划背景模型能力约等于零但需要占位资产快速看效果。Game Jam 参与者时间极紧需要“有东西能玩”而不是“资产的精细度”。1.2 为什么选 Tripo Astra 而不是其它 3D 生成方案市面上能做文字生成 3D 的工具不算少Meshy、Luma Genie、Tripo 这些都是经常被提到的。我最后把 Tripo Astra 当作主力是有几个实操层面原因的。第一是生成速度。Tripo Astra 在线生成一个中等复杂度的资产通常几十秒到两三分钟就能出结果。这个速度对原型阶段非常重要因为你要反复试提示词一个资产不满意就换一个等待时间过长的工具根本没法进入试错循环。第二是格式对游戏引擎友好。它可以直接输出 glb、fbx、obj 这些常见格式并且支持生成 PBR 材质贴图BaseColor、Normal、Roughness、Metallic 这些通道都会带出来。导入 UE5 之后你不需要手动连连看直接使用资源就能看到一个接近成品的材质效果。第三是网格质量在可接受范围内。AI 生成的网格拓扑大多数时候不干净但原型阶段要的不是生产级资产而是把空间占住、把视觉方向定下来。Tripo Astra 生成的结果三角面数可以选择档位低档位适合远景布置高档位适合近距离观察这个灵活度让我不用在性能问题上过于纠结。当然它也有明显边界网格可能破面UV 可能出现拉伸贴图接缝偶尔会很显眼。你要不是把它当最终资产用这些问题完全可以接受。我在 4.2 里会详细讲怎么规避。1.3 为什么是 Codex而不是直接在 UE5 里手写说实话UE5 的蓝图系统已经算好上手了但你做一个稍微复杂的交互逻辑蓝图节点的连线还是容易把人绕晕。Codex 的价值在于它不是一个只会输出代码片段的聊天机器人而是能在本地仓库里实际干活的助手。它可以在你指定的目录里创建文件、读取项目结构、修改已有代码、执行命令。放回虚幻引擎的语境里就是它可以在你的工程源码目录里新建一个 Actor 类写好成员变量、UPROPERTY 标记、构造函数、碰撞回调这些对不熟悉 C 的人来说是最难迈的一步。我实际使用时的几个典型场景新建一个 C Actor 类命名规范、继承关系、模块引用都帮我写好。看懂引擎源码比如某个组件在哪个头文件里哪个函数在什么条件下被调用。处理编译报错把错误信息原样贴给它让它定位问题并给出修改方案。批量处理类文件比如给多个 Actor 统一加一个接口函数。注意Codex 不是万能的。虚幻引擎工程巨大它的上下文窗口有限不要让它一次性修改十几个文件任务拆小了它才能干好。具体协作姿势我在 3.3 里详细说。1.4 这套流程的边界能做什么不能做什么这套流程能做的是快速把“想法”变成“能打开、能操作、能看到效果”的 DEMO。它适合验证玩法适合把抽象概念具象化适合在项目早期拉通一条从资产到逻辑的管道。但它不能做的是直接产出生产级内容。Tripo Astra 生成的模型需要清理拓扑、重新展 UV、补细节才能放进正式项目里Codex 生成的代码涉及性能优化、内存管理、网络同步这些复杂话题时仍然需要人来把关。我的定位是它们是两个上手很快的实习生你给需求检查产出关键地方及时纠偏。明确了这个边界之后后面所有的步骤都可以围绕“原型”两个字来安排不会因为某个环节不够完美而卡住。2. 环境准备先把 Codex 和 Tripo 跑起来2.1 安装 Codex 的两种方式OpenAI 官方给 Codex 提供的入口主要是桌面客户端和 CLI 命令行工具两种。桌面客户端适合不太熟悉终端的用户打开之后就是一个可以对话和显示文件变动的界面CLI 适合已经在用终端工作流的人前后端项目里可以直接调用。我自己的习惯是 Windows 上把桌面客户端和 CLI 都装一遍Ubuntu 环境则只用 CLI。Windows 上安装的常见坑值得先说一遍安装目录不要选带中文、带空格的位置这类路径最容易让后续命令行工具找不到可执行文件。安装完成后必须重开一次终端让 PATH 环境变量重新加载。杀毒软件有时会把命令行工具当成可疑程序拦截需要手动放行。如果安装过程显示“未完成”多半是权限不足或者安装包没完全下载下来直接以普通用户身份重跑安装器就行。Ubuntu 下我自己用的官方安装脚本方式装完之后需要确认 codex 命令是否在 PATH 里。如果提示找不到 codex去编辑 ~/.bashrc 或 ~/.zshrc把安装目录加进去。这一步非常简单但很多新手会卡在这以为装失败了。启动之后先用账号登录。登录这一步是后续所有操作的前提我之前遇到过登录后仍然提示无法定位 CLI 二进制文件的情况后来发现是安装目录和 PATH 没设置好和登录本身没有关系。2.2 登录与模型选择账号权限决定你能用哪些模型用 ChatGPT 账号登录 Codex 之后默认会选择一个可用的模型。这里就涉及一个非常高频的报错信息某个模型在 Codex 里提示 not supported后面还跟着一句和当前账号类型相关的话。我实测下来的解释是Codex 支持的模型集合和你账号的套餐权限是绑定的。普通账号能用的模型和付费套餐账号能用的实验模型并不完全一样。如果你在一个账号下用编辑器在另一个账号下用 CLI两边可用的模型列表可能完全不同。处理思路也很直接先看当前 Codex 配置里指定的是哪个模型。再去确认这个模型是否在当前账号的可用范围里。如果不在直接把模型切换回账号默认支持的那一个。千万不要因为模型权限不够去折腾账号之外的旁门左道合规使用把模型参数调回官方默认值就能解决绝大多数问题。Codex 界面本身是全英文的但对话输入中文指令完全没问题不用专门找汉化包我测试下来它对中文理解很到位代码注释也可以让它用中文写。2.3 接入 Tripo Astra网页端与 API 两种使用姿势Tripo Astra 的接入最无脑的方式是直接打开网页端输入提示词生成下载。这个路径适合刚开始测试提示词、需要快速看效果的人我也最推荐先走一遍网页端因为你得先知道这个模型对什么样的描述最敏感。网页端生成之后可以预览模型旋转视角看网格、看贴图满意就下载 glb 或 fbx。不满意就改提示词重新生成。这一步值得耐心做因为后面的 UE5 环节依赖资产质量。当你要批量生成资产的时候网页端就不太够用了。这时候可以去申请一个 API Key走官方接口。基本流程是提交生成任务、轮询任务状态、任务完成后下载结果。我在 Ubuntu 环境下也用 Python 调过接口整个链路很清爽。一个最简的请求提交逻辑大概长这样import requests API_KEY your_tripo_api_key headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } payload { type: text_to_model, prompt: a low-poly medieval hut with thatched roof, wood walls, stone base, PBR texture, game asset, texture: True, pbr: True, format: glb, face_count: medium } resp requests.post(https://api.tripo3d.ai/v2/tasks, jsonpayload, headersheaders) print(resp.json())注意这只是请求提交的数据形态实际字段需要以官方文档为准。批量生成的时候可以写一个循环把几十个提示词分批提交控制好并发避免把配额打满。这种批量能力在后面要铺一个完整关卡时特别有用。2.4 项目初始化新建 UE5 C 工程时要注意什么虚幻引擎项目初始化这一步看起来简单但直接影响 Codex 能不能顺畅工作。我的建议是建一个 C 工程而不是纯蓝图工程。原因很简单Codex 最擅长的产出是文本代码蓝图在编辑器里是一堆节点它没法直接操作。你新建一个第三人称 C 模板工程就同时拥有了角色控制代码和 C 项目结构后面让 Codex 新加类、改类都很方便。引擎版本方面我用的是 UE5.4UE5.5 也能用但如果你同时要兼顾老插件和旧项目5.4 的插件兼容面更宽。工程命名一定要用英文路径也不要出现中文这一点对 C 编译影响很大我见过不少因为路径带中文导致的诡异编译错误。工程建好之后先跑一次确认基础模板能在编辑器里正常 Play再往下走。不要急着加 AI 工具先把地基确认好。3. 实操从一个篝火小屋开始3.1 用 Tripo Astra 生成第一批资产提示词怎么写我这次原型的主题是“森林篝火小屋”场景需要四类资产林间小屋、篝火堆、木箱、石块或石桥。资产不多但足够覆盖不同形态和材质类型。提示词的核心结构我总结为“主体 风格 材质 渲染约束”。以小屋为例a small medieval hut in forest, wooden planks walls, thatched roof, stone foundation, low poly game asset style, clean topology, PBR texture, no background, centered拆开来看主体a small medieval hut in forest先把是什么说清楚。风格low poly game asset style给引擎一个明确的风格目标。材质wooden planks walls, thatched roof, stone foundation材质决定贴图走向。渲染约束PBR texture, no background, centered避免生成带背景的展示图也避免物体偏出画面中心。篝火堆我写的是 “a campfire with logs and stones, charcoal, low poly game asset, PBR texture, no background”木箱是 “a wooden crate, old wood, metal corner braces, low poly game asset, PBR texture”。小技巧是每个提示词都补一句 “game asset” 和 “PBR texture”这两个词对 AI 生成结果的材质风格影响很大。如果平台支持 negative prompt把不想要的东西写进去比如 “with people, with animals, with background”能明显减少废稿。生成的时候每类资产我建议一次出 3 到 4 个候选挑一个最顺眼的。这个挑选过程不用太纠结细节只要没有明显破面、形状符合预期就行因为原型阶段后面还有导入 UE5 的测试。3.2 导出与导入FBX 进 UE5 的参数设置Tripo Astra 生成完可以下载 glb 或 fbx。我自己的经验是能选 FBX 就选 FBXUE5 对 FBX 的导入是最成熟的glb 虽然也能用但需要在项目设置里启用 GLTF 加载插件多一层麻烦。导入时几个参数值得认真对待Import Uniform Scale这个参数默认通常是 1但 AI 生成的模型单位不一定统一有的资产导出后显示只有几厘米高需要在这里调整缩放比例。Normal Import Method保持源数据法线不要默认重新计算否则有些模型的明暗会变得很奇怪。Collision可以先自动生成跑起来之后如果碰撞不对再手动改成简单碰撞盒。MaterialTripo 输出 PBR 贴图时UE5 导入后会自动创建材质引用不需要手动连节点。导入之后我习惯立刻在场景里检查三件事模型能不能正常显示、缩放比例是否合适、碰撞体是不是简化过的。这三个问题在 AI 生成资产上出现频率很高早发现早调整比拖到后面排查省时得多。把下载下来的资源统一放进 Content 目录下的 Models 文件夹里方便管理。资产名字尽量用英文避免后续 C 引用时出问题。3.3 用 Codex 写第一段交互代码场景有了下一步就是让它“能玩”。我设计的交互是玩家靠近小屋旁边的金属探测器这里我用一个木箱代替按 E 拾取屏幕提示获得物品。用 Codex 之前先把任务拆成可落地的子项新建一个 C Actor 类用来表示可拾取物。给这个类加一个球形碰撞体和一个静态网格体组件。写一个重叠回调函数当角色进入范围时触发拾取逻辑。在 Codex 终端里我输入的指令大概是这样的Create a new C actor class called APickupActor in the project. It should have a USphereComponent as root, a UStaticMeshComponent attached to it, and an overlap event that prints the item name when a character enters. Use the projects module name for the generated header include. Add necessary #include lines.Codex 会在项目的 Source 目录下生成 PickupActor.h 和 PickupActor.cpp。生成完之后我没有直接粘到 UE5 里而是先打开文件做了一次 review确认组件创建、碰撞回调这些关键逻辑没有明显遗漏。这一步是必要的毕竟它是 AI 生成的代码不是经过编译验证的引擎源码。最终编译通过的版本大致是下面这样的。PickupActor.h#pragma once #include CoreMinimal.h #include GameFramework/Actor.h #include PickupActor.generated.h DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnPickedUp, APickupActor*, PickupActor); UCLASS() class ASTRAUE5PROTO_API APickupActor : public AActor { GENERATED_BODY() public: APickupActor(); UPROPERTY(BlueprintAssignable, Category Pickup) FOnPickedUp OnPickedUp; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category Pickup) FName ItemName; protected: virtual void BeginPlay() override; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category Pickup) class USphereComponent* CollisionSphere; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category Pickup) class UStaticMeshComponent* MeshComponent; UFUNCTION() void OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult SweepResult); };PickupActor.cpp#include PickupActor.h #include Components/SphereComponent.h #include Components/StaticMeshComponent.h #include GameFramework/Character.h APickupActor::APickupActor() { PrimaryActorTick.bCanEverTick false; CollisionSphere CreateDefaultSubobjectUSphereComponent(TEXT(CollisionSphere)); RootComponent CollisionSphere; CollisionSphere-SetSphereRadius(70.0f); CollisionSphere-SetCollisionProfileName(TEXT(OverlapAllDynamic)); MeshComponent CreateDefaultSubobjectUStaticMeshComponent(TEXT(MeshComponent)); MeshComponent-SetupAttachment(RootComponent); MeshComponent-SetCollisionEnabled(ECollisionEnabled::NoCollision); } void APickupActor::BeginPlay() { Super::BeginPlay(); CollisionSphere-OnComponentBeginOverlap.AddDynamic(this, APickupActor::OnOverlapBegin); } void APickupActor::OnOverlapBegin(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult SweepResult) { if (ACharacter* Character CastACharacter(OtherActor)) { UE_LOG(LogTemp, Warning, TEXT(Picked up: %s), *ItemName.ToString()); OnPickedUp.Broadcast(this); Destroy(); } }这个版本的逻辑很简单玩家进入碰撞球后触发拾取回调打印物品名广播一个委托然后销毁自身。编译是绕不开的一步。在终端里直接让 Codex 帮你找到编译方式也行但它不熟悉你机器上的具体引擎安装路径更快的办法是你自己把编译命令跑一遍。一次编译过了说明 Codex 生成的代码至少没有语法和引用错误。编译报错的时候把完整的错误信息原样贴给 Codex它会给你改法。我遇到过几次重复报错仔细看其实是我没有把最新生成的代码重新编译属于操作习惯问题不是工具的问题。3.4 串起来白盒关卡里的拾取演示资产和代码都准备好了接下来就是组装。我打开 UE5 编辑器把从 Tripo 下载的小屋、木箱、篝火、石块拖进场景。小屋放中间篝火放门口木箱放屋角石块铺一条小路。摆放过程中如果发现某个资产太大或太小直接在细节面板里调整缩放不用回到 Tripo 重新生成。然后把 PickupActor 拖进场景把它的 Mesh 组件指定成木箱的静态网格体ItemName 设为 WoodenCrate。为了让玩家知道靠近会触发拾取我让 Codex 又生成了一段逻辑在角色类里声明一个依赖距离的交互检测靠近显示提示文字按 E 触发拾取。这一步我用的是 UMG 提示逻辑不复杂但已经展示出一个可玩交互的原型。最后运行 PIEPlay In Editor第三人称角色出生点放在小屋门口走两步靠近木箱屏幕提示出现按 E日志里输出 Picked up: WoodenCrate木箱消失。至此一个完整的经验闭环已经跑通。这个流程里最让我觉得有效率的是资产的生成和代码的生成是并行推进的。Tripo Astra 生成模型的时候我就可以让 Codex 先把 PickupActor 写好两边同时跑最后只需要把它们在编辑器里接起来。4. 常见问题与排查实录4.1 Codex 相关的报错与处理这一路下来Codex 的问题我遇到不少大部分集中在安装、模型选择、连接状态这三类。安装类问题最典型的是 Windows 桌面版安装中断或者提示 “unable to locate the codex cli binary”。我遇到之后的第一反应就是检查 PATH 环境变量。CLI 没有进 PATH终端就找不到可执行文件和安装本身有没有完成是两回事。重新添加路径重开终端问题就消失了。模型选择类的报错就是我前面提到的 “not supported” 问题。有一次我在 Codex 配置里手动指定了一个实验模型然后它就一直报当前模型不支持切回默认模型之后立刻恢复正常。还有一次是切换了登录账号新账号的权限和老账号不一样也导致模型不可用。这一类问题的本质是账号权限和模型可用范围不匹配先想清楚这一点就不会乱试。连接状态类的报错比如一直显示重新连接、打不开、请求某个端点失败等基本都是本地网络环境异常。处理顺序我固定是三步结束 Codex 相关进程重新启动检查网络是否能正常访问目标服务再不行就换个网络环境试试。不要在这上面反复重装软件意义不大。4.2 导入模型后的资产问题AI 生成资产不是拿来就能用导入 UE5 之后会有一堆小问题。最常见的是模型在内容浏览器里能看到缩略图拖到场景里却什么都不显示。我检查下来大部分情况是导入时网格体没有真正生成或者静态网格体资源为空。解决办法是回到导入设置确认“导入网格体”是勾选状态然后重新导入。其次是比例问题。Tripo Astra 生成的模型尺寸经常不是米制单位一个小屋可能只有 30 厘米高导入后和第三人称角色放在一起特别违和。处理方式是两种一种是在 UE5 导入窗口里改 Import Uniform Scale另一种是导入完成后直接调整场景里 Actor 的 Scale 值。前者更干净因为模型内部尺寸就对了。第三是材质问题。Tripo Astra 带 PBR 贴图的时候UE5 自动创建的材质引用通常没问题。但如果下载的只是白模需要自己建材质把 BaseColor、Roughness、Metallic 三张贴图连到对应通道。建议先把贴图放到 Material 文件夹里统一管理别让 UE5 默认的命名把你绕晕。4.3 UE5 运行时的图形和字体问题很多人在“玩”UE5 项目时会遇到花屏、闪退其实大多数时候不是 AI 工具的问题而是显卡驱动和渲染特性的组合不对。我处理这类问题时顺序是固定的第一更新显卡驱动这个能解决大概一半的问题。第二关闭一些重型渲染特性比如 Nanite、Lumen或者把渲染缩放调低。第三删除项目 Saved 目录下的着色器缓存文件重新编译一次着色器。虚拟引擎的项目运行本质是大量着色器编译任务缓存一旦损坏花屏、闪退就会频繁出现。别上来就怀疑显卡坏了优先排软件层面。还有一个 UE5.4 里经常问的字体问题。要在 UMG 里显示中文需要先把 TTF 或 OTF 字体文件导入内容浏览器然后右键创建复合字体资产设置字体范围时选“全字库”再把 UMG 的 Text 控件字体指定成这个资产。如果不这么操作中文显示出来就是方块。4.4 一张速查表问题、原因、处理办法我把这段时间踩过的问题整理成了一张速查表方便以后照着排查现象可能原因处理办法Codex 提示模型 not supported当前账号没有该模型权限切回账号默认支持的模型找不到 codex cli binaryCLI 目录不在 PATH 中把安装目录加入 PATH重开终端Windows 安装未完成权限不足或安装包下载不完整重跑安装器确保安装包完整Codex 一直显示重新连接后台进程卡死或网络异常结束进程重启检查网络连通性请求 /responses 端点失败当前网络环境异常检查基础网络稍后重试模型导入后不显示网格体未生成或导入选项取消勾选“导入网格体”重新导入模型比例不对导出单位不是米制调整 Import Uniform Scale材质显示异常缺少贴图引用或通道连接错误手动创建材质并连接 PBR 贴图运行项目花屏闪退显卡驱动或着色器缓存异常更新驱动删除 Saved 下缓存中文字体显示方块字体资产范围未设置创建复合字体设置全字库范围这张表不一定覆盖所有情况但能覆盖 AI 驱动原型开发里 80% 的日常问题。5. 后续扩展与个人心得5.1 从原型到生产资产清理是绕不开的Tripo Astra 生成的资产当我把它当白盒或临时占位用时非常顺手但只要进入正式项目的考虑范围就必须做清理。我通常的处理流程是这样的用 Blender 重拓扑把三角面数控制到游戏可接受的范围。重新展 UV因为 AI 生成的 UV 往往有拉伸烘焙贴图会露馅。在 Substance Painter 或者 UE5 里重新调整材质细节把粗糙度、金属度这些参数调成项目统一的风格。补齐 LOD远景用低面数版本近景用高面数版本。这四步做完一个资产才能算真正进入生产管线。换句话说AI 生成资产缩短的是“从零到有”的时间而不是“从有到精”的时间。5.2 提示词和任务拆解是两门手艺表面上这套流程的工具是 Tripo Astra、Codex、UE5但真正决定产出质量的是两门软技能写提示词和拆任务。写 3D 生成的提示词要求你把一个视觉想象拆成“主体、风格、材质、约束”四个维度任何一个维度缺失结果就可能跑偏。而且同一套提示词模板换一个场景之后可能需要微调。比如生成金属物品要加 metallic 相关描述生成有机体要加 soft organic shapes这些都是要反复试错总结的。给 Codex 下指令也是类似。你不能说“帮我做一个拾取系统”这个范围太大了它的输出很可能不是你想要的。拆成“新建 Actor 类、加碰撞和网格体、写重叠回调、编译通过”每一步都是可验证的错误才能被快速定位。我自己的体会是这两门手艺都靠反馈循环写一段提示词看结果拆一个任务看产出。迭代几轮之后你自然就知道什么样的描述能生成什么什么样的指令能被 Codex 高效执行。5.3 后面可以这么玩这套流程跑通之后扩展空间还挺大的。批量生成是第一个值得试的方向。把几十个物品的提示词整理成一个 JSON 文件用 Tripo 的 API 批量提交任务挨个下载再做一套 UE5 编辑器脚本把下载资源自动导入并分类整个资产库就能在一天之内铺起来。第二个方向是概念图还原。Tripo Astra 支持参考图生成模型你可以拿原画师的概念图去生成初版模型导入 UE5 看空间关系。对于关卡前期验证这个效率比手动建模快得多。第三个方向是用 Codex 做资产管理脚本。它可以帮你写 Python 脚本批量重命名下载的模型文件、转换格式、统一压缩纹理。我之前为了让几十个 AI 生成资产统一成一个命名规范就是让 Codex 写了一个脚本跑一遍全改好了。最后再分享一个小技巧AI 驱动原型开发时任何一步都要养成“先提交再实验”的习惯。用一个 git 仓库管理 UE5 项目每次让 Codex 改代码前先提交一次生成资产导入前也拍个快照。这样不管 AI 生成了什么奇怪结果你都能随时退回上一个状态整个试错过程会轻松很多。