外观
AI 游戏项目:美术资产与 Godot 引擎实践篇
项目边界| 本文设计一条“AI 辅助、人工负责、确定性工具验收”的风格化 3D 资产管线。没有真实角色源文件、许可证清单、引擎构建和性能实测,因此所有预算、切换条件与收益都必须在最小切片中补证。
目录
- 1. 项目目标与资产边界
- 2. 小白场景与专业映射
- 3. Art Bible 与资产分类
- 4. AI 辅助美术生产链
- 5. 资产生命周期与 Manifest
- 6. Blender 到 Godot 的 3D 管线
- 7. Godot 资源加载与运行时使用
- 8. Godot、Unity 与 Unreal 横向对比
- 9. 技术点清单与横向选型
- 10. 资产故障演练与质量门禁
- 11. 最小实践与验收
- 12. 面试表达与参考资料
- 13. 简明总结
1. 项目目标与资产边界
1.1 30 秒项目回答
这条美术管线的目标不是“一句话生成可发布角色”,而是把 AI 放在概念变体、纹理草案、初始网格和自动质检等适合产候选的位置,再由美术、技术美术和确定性检查负责风格、拓扑、骨骼、版权、性能与引擎验收。参考实现使用 Blender 产出
.glb,Godot 4.6 负责导入、继承场景、AnimationTree 和后台加载,并用稳定asset_id与智能 NPC 提案连接。当前只有工程设计,没有资产实测,不能声称已经缩短制作周期。
1.2 资产范围
首个最小切片只覆盖一名铁匠 NPC、一个锤子道具和一间小型工坊:
- 角色:身体、服装、头发、骨骼、表情、待机、说话、点头和锻打动画;
- 道具:锤子、铁砧和可交互火炉;
- 场景:工坊模块、简单碰撞、导航和灯光;
- 特效:火星与任务提示,不包含复杂流体和大规模破坏;
- AI 生成内容:只进入草稿或候选,不直接进入正式构建。
1.3 成功标准
| 维度 | 验收问题 | 证据 | 当前状态 |
|---|---|---|---|
| 风格 | 角色、道具、场景是否遵守同一轮廓、色彩与材质语言 | Art Bible、评审记录、对比图 | 待制作 |
| 技术 | 拓扑、UV、骨骼、动画、碰撞和导航是否可用 | Blender 检查、导入报告、游戏内录像 | 待实现 |
| 性能 | 同一场景是否满足目标硬件的帧、内存和加载预算 | Profiler、显存、构建和加载日志 | 待基准 |
| 版权 | 来源、授权、模型版本和人工改动是否可追溯 | AssetManifest、许可证与审批记录 | 仅设计字段 |
| 业务 | 资产产能是否改善且质量护栏不下降 | 同任务人工基线与受控工时记录 | 未实验 |
2. 小白场景与专业映射
小白先这样理解:给一位数字演员制作服装与动作
导演要让铁匠演员登台。概念设计师先画出几套轮廓,服装师制作可活动的衣服,道具师准备锤子,动作指导设计点头和锻打,舞台技术员检查服装不会穿模、道具不会飞走、演员能走过门口。AI 可以快速画候选或提供动作参考,但最终哪套服装能上台,仍由各岗位共同签字。
| 生活角色或物品 | 技术对象 | 主要责任 |
|---|---|---|
| 导演和风格手册 | Art Bible | 统一世界观、轮廓、色彩、材质和禁用项 |
| 概念设计候选 | 图像生成与人工绘制 | 探索方向,不等于可用 3D 资产 |
| 服装与身体 | Mesh、UV、PBR Material | 决定形体、纹理和渲染表现 |
| 骨架与动作指导 | Skeleton、Skin、Animation | 支撑变形、表情和行为反馈 |
| 舞台技术员 | 技术美术和自动质检 | 检查预算、碰撞、LOD、命名和引擎效果 |
| 上台签字单 | AssetManifest 与发布状态 | 记录来源、版本、审批和回滚关系 |
回到专业机制:AI 输出的图片、网格或动画先进入 Draft/Generated,经过艺术评审、技术验证、Godot 导入和游戏内验收后才获得 Released 状态。animation_cue 只能引用已发布的稳定 asset_id。
类比没有覆盖生成模型的训练来源、许可证兼容、蒙皮权重数值、GPU 带宽和平台压缩差异。生产验收必须依赖可重复工具和目标设备实测,而不是只看编辑器截图。
图:教学插图|AI 美术资产从候选到发布门禁
替代文本: 风格化铁匠角色从多组概念和粗模候选出发,依次经过美术师的风格校准、技术美术的拓扑骨骼材质与 LOD 检查、许可证和来源审查;失败资产被分流回对应工位,只有通过全部门禁的版本才进入引擎场景并保留上一批准版本供回滚。

读图结论: “生成出角色”只是流水线起点;能够进入游戏构建的是同时通过风格、拓扑、材质、骨骼、性能、来源和引擎内验证的可回滚版本。
这张 gpt-image-2 教学图把主链标为“AI 生成候选 → 艺术评审 → 技术与版权门禁 → Godot 导入验收 → 发布并保留回滚版本”,并在底部写明风格、技术和来源失败各自返回哪里。右侧在场景中稳定运行的角色才对应 InGameApproved/Released,绿色通道不表示模型可以自动发布。
3. Art Bible 与资产分类
3.1 Art Bible 最小字段
| 类别 | 必须定义的内容 | 失败信号 |
|---|---|---|
| 世界与情绪 | 地域、年代、阵营、明暗和情绪关键词 | 同一区域资产像来自不同游戏 |
| 角色轮廓 | 身高比例、头身比、剪影层级、夸张部位 | 缩小后角色身份不可辨认 |
| 色彩 | 主色、辅助色、危险/交互色和饱和度范围 | 交互物与背景混淆 |
| 材质 | 金属、木材、布料、皮肤的粗糙度与细节尺度 | 所有表面同样发亮或细节频率失控 |
| 动画 | 重量感、节奏、停顿、循环和表情幅度 | 动作与角色年龄、职业不一致 |
| 技术预算 | 面数、骨骼、贴图、材质槽、动画和 LOD 分档 | 单资产可用但多人场景失速 |
| 合规 | 禁止图形、来源要求、授权和 AI 标识 | 无法证明来源或包含受限元素 |
预算必须按目标平台、摄像机距离、同屏数量和场景复杂度通过基准确定。本文不编造统一面数或贴图尺寸。
3.2 资产分类与稳定 ID
建议使用 角色/场景/道具/动画/特效/音频/UI 七类,并将显示名称与稳定 ID 分离。例如 chr_blacksmith_body_v003 是制作版本,运行时稳定 ID 可为 npc_blacksmith_body,由 Manifest 指向当前批准版本。重命名文件不应让存档、任务或 AI 提案失效。
4. AI 辅助美术生产链
4.1 静态架构
图:架构|风格化 3D 资产工厂与 Godot 消费边界
替代文本: 需求和 Art Bible 进入概念、建模、材质、骨骼动画和技术美术工位,AI 工具只为各工位提供候选;源文件、许可证和 Manifest 进入版本库,自动质检与人工审批通过后导出 glTF/GLB,Godot 导入生成 Resource/Scene,资产注册表只向运行时暴露已发布 ID。
图表加载中…
读图结论: AI 工具不拥有“发布”箭头;只有带来源、技术报告和人工审批的资产才能进入 Godot 运行时注册表。
4.2 端到端步骤
- 需求拆解: 定义用途、镜头距离、同屏数量、动画集合、目标平台和预算;
- 概念探索: 人工草图与 AI 变体都绑定 Art Bible 和来源记录;
- Blockout: 先验证比例、轮廓、装备拆分和场景尺度;
- 高低模与拓扑: 保证轮廓、关节变形和可复用 UV;
- 纹理材质: 校准 Base Color、Normal、Roughness、Metallic 等通道及色彩空间;
- 骨骼蒙皮: 锁定骨架档案、命名、权重和附件点;
- 动画表情: 制作循环、过渡、事件标记、Root Motion 策略和口型边界;
- 技术美术: 配置 LOD、碰撞、导航、材质实例、灯光和特效;
- 导出导入: 以
.glb为主,固定导出预设和引擎导入配置; - 游戏内验收: 在目标相机、灯光、动画混合和多人负载下验证;
- 发布与回滚: Manifest 原子切换稳定 ID,旧存档仍能解析兼容版本。
4.3 AI 可以做与不能做
AI 适合快速探索轮廓、配色、材质草案、初始网格、多视图参考、动作参考、标签和异常预筛。关键角色面部和手部、变形拓扑、最终蒙皮、版权判断、性能预算及游戏内艺术效果仍由专业人员负责。自动检测“没有超预算”也不能证明“看起来正确”。
5. 资产生命周期与 Manifest
5.1 资产状态机
图:状态机|AI 美术资产从草稿到发布和回滚
替代文本: 资产从草稿或 AI 生成候选开始,依次通过艺术评审、技术验证、Godot 导入和游戏内批准;任一门禁失败都返回相应制作环节,发布后发现版权、性能或兼容问题则废弃并回滚到上一批准版本。
图表加载中…
读图结论: “生成完成”位于流程前段;只有 Released 资产可以被智能 NPC 的动作和任务提案引用。
5.2 AssetManifest Schema
yaml
asset_id: npc_blacksmith_body
asset_type: character
source_file: source/characters/blacksmith_v003.blend
content_hash: sha256:example-only
generator:
used: true
model_id: locked-at-production
prompt_hash: sha256:example-only
provenance:
owner: project-team
license_id: license-record-017
skeleton_profile: humanoid_stylized_v2
material_profile: stylized_pbr_v3
lod_set: blacksmith_lod_v2
collision_profile: npc_capsule_v1
import_profile: godot_character_glb_v4
engine_version: 4.6.x-locked-at-build
review_status: released
supersedes: npc_blacksmith_body@v002示例 Hash 和版本不是实际数据。生产 Manifest 还需要审批人、时间、工具版本、导出日志、依赖 ID、平台变体和回滚原因。
5.3 发布调用流程
图:技术调用流程|AI 美术资产从生成到 Godot 发布门禁
替代文本: 美术需求先生成候选,艺术评审拒绝风格或来源不合格资产;通过后由 DCC 和自动检查完成技术验证,Godot 导入及目标场景测试成功才更新 Manifest,失败则携带原因码返回最小返工环节,已发布严重问题走回滚而非覆盖文件。
图表加载中…
读图结论: 失败必须返回具体工位和证据,不能靠无限重新生成掩盖拓扑、版权或运行时问题。
6. Blender 到 Godot 的 3D 管线
6.1 交换格式与目录
参考实现使用 Blender 源文件与 glTF 2.0 二进制 .glb 交换。Godot 官方文档说明其 3D 场景导入支持 glTF,并可通过 Import Dock、Advanced Import Settings 和继承场景调整导入结果。项目应锁定 Blender、导出器、Godot 小版本和导入预设,而不是只记录扩展名。
text
source/
characters/blacksmith_v003.blend
textures/blacksmith/
export/
characters/blacksmith_v003.glb
godot/
imported/characters/blacksmith_v003.glb
scenes/npc/npc_blacksmith.tscn
resources/npc/npc_blacksmith_profile.tres
manifests/assets.yaml6.2 导出前检查
- 统一米制单位、前向和上方向,应用需要应用的 Transform;
- 检查原点、Pivot、法线、切线、非流形几何和重叠面;
- 检查 UV、纹理色彩空间、PBR 通道和材质槽数量;
- 锁定骨骼命名、父子层级、蒙皮权重、附件点和根骨策略;
- 区分角色网格、骨架、动画、道具和场景模块的复用边界;
- 按目标相机和同屏数量制作 LOD 与碰撞,不机械追求高面数;
- 将许可证、来源和生成工具信息写入 Manifest,而不是只放在聊天记录里。
6.3 Godot 导入后检查
导入的原始场景视为生成物,不直接堆叠业务脚本。创建继承或包装场景,添加 CharacterBody3D、碰撞、导航代理、AnimationTree、交互点和 AssetRegistry 绑定。重新导入源 GLB 时,验证引擎侧配置仍被保留。
AnimationTree 使用 AnimationPlayer 中的动画进行高级过渡和混合;它不负责决定任务、奖励或 AI 行为。NPC HFSM 选择允许的 animation_cue,AnimationBridge.gd 再将其映射到白名单状态。
7. Godot 资源加载与运行时使用
7.1 项目内资产
普通项目资产使用 Godot 的 Resource/Scene 导入与依赖系统。大型角色或场景切换先调用 ResourceLoader.load_threaded_request,轮询状态后再 load_threaded_get,避免在需要流畅交互的帧上直接阻塞加载。后台请求发起太晚时,最终获取仍可能阻塞,因此需要预加载距离、等待 UI 和超时策略。
gdscript
const BLACKSMITH_SCENE := "res://scenes/npc/npc_blacksmith.tscn"
func request_blacksmith() -> void:
var error := ResourceLoader.load_threaded_request(BLACKSMITH_SCENE)
if error != OK:
show_placeholder("asset_load_request_failed")
func try_spawn_blacksmith() -> void:
var status := ResourceLoader.load_threaded_get_status(BLACKSMITH_SCENE)
if status == ResourceLoader.THREAD_LOAD_LOADED:
var scene: PackedScene = ResourceLoader.load_threaded_get(BLACKSMITH_SCENE)
add_child(scene.instantiate())
elif status == ResourceLoader.THREAD_LOAD_FAILED:
show_placeholder("asset_load_failed")代码只展示关键路径;实际项目还要处理取消、依赖、并发请求、内存预算、节点所有权和场景退出。
7.2 动态内容与 Mod
运行时 glTF、PCK/ZIP 和用户 Mod 属于另一条信任边界。Godot 官方文档明确提醒:属于项目本身的资源不应为了方便而改用运行时文件加载,因为它更低效,也不能利用完整的资源处理能力。动态内容需要签名、权限、大小、格式、脚本禁用、沙箱和平台政策检查。
7.3 资产注册表
运行时不接受模型直接返回路径。AssetRegistry 将 npc_blacksmith_nod_v2 映射到已发布 Resource 和 AnimationTree 状态;不存在、已废弃或平台不兼容时返回占位资产和原因码。稳定 ID 与 Manifest 版本进入 Trace,便于复现“对话正确但动画错误”的问题。
8. Godot、Unity 与 Unreal 横向对比
8.1 等价能力映射
| 关注点 | Godot 4.6 主实现 | Unity 6 对照 | Unreal Engine 5.8 对照 |
|---|---|---|---|
| 对象组织 | Node、Scene、Resource | GameObject、Prefab、ScriptableObject | Actor、Component、Blueprint、Data Asset |
| 动画状态 | AnimationPlayer + AnimationTree | Animator Controller/Playable | Animation Blueprint、State Machine、Montage |
| NPC 决策 | 自定义 HFSM 或经验证插件 | C# 状态机或行为树方案 | Behavior Tree + Blackboard、StateTree |
| 资产加载 | Import、ResourceLoader、PCK | Addressables、AssetBundle | Asset Manager、Primary Data Asset、Asset Bundle |
| 网络 | High-level Multiplayer、Headless Server | Netcode for GameObjects 等 | Replication、Replication Graph、Iris、Dedicated Server |
| 主语言 | GDScript、C#、GDExtension | C# | C++、Blueprint |
| 适合本项目的理由 | 开源透明、低成本展示完整机制 | 生态和跨平台商业工具成熟 | 高品质 3D、大型团队和原生 AI/网络工具完整 |
映射只说明“谁承担类似职责”,不表示能力、性能或工作量完全等价。例如 Unreal 的 Behavior Tree/Blackboard 与 StateTree 是引擎原生工具,而 Godot 本项目选择自定义 HFSM;这不是简单改类名即可迁移。
8.2 受控比较方法
使用同一铁匠角色、工坊场景、动画集合、目标平台、硬件和摄像机,分别记录:
- 从 GLB 到可交互角色的人工步骤和失败次数;
- 冷启动、首个角色出现和场景切换加载时间;
- 同屏 NPC 数量增长时的 CPU、GPU、内存和帧时间;
- 动画混合、资源卸载、网络同步和构建体积;
- 资产回滚、依赖审计和团队协作成本;
- 接入同一 AI 服务时的接口、取消、流式响应和 Trace 完整度。
没有这些受控数据时,只能给条件性建议:Godot 适合本示例的开源可控原型;Unity 更适合强依赖成熟商业生态和跨平台生产效率的团队;Unreal 更适合高品质 3D、大型场景及需要原生 Behavior Tree、StateTree 和复杂复制工具的项目。
9. 技术点清单与横向选型
9.1 技术清单
TP-01 与 TP-05~TP-13 见智能 NPC 与动态剧情篇。
| 技术点 ID | 技术点/环节 | 类型 | 采用方案 | 链路职责 | 版本/证据边界 |
|---|---|---|---|---|---|
| TP-02 | 风格化 3D 美术生成 | 模型/流程 | AI 候选 + 人工艺术评审 | 加速概念、纹理、初始网格和动作参考探索 | 不绑定具体生成模型;发布能力需项目实测与授权审查 |
| TP-03 | DCC、glTF 与资产导入 | 工具/协议 | Blender + glTF/GLB + Godot Import | 产出可追溯源文件并稳定交换网格、材质、骨骼和动画 | 锁定 Blender、导出器和 Godot 4.6.x 后验证 |
| TP-04 | 资产版本、加载和发布 | 数据模型/基础设施 | AssetManifest + ResourceLoader + 稳定资产 ID | 管理来源、状态、异步加载、发布、兼容与回滚 | Manifest 和代码为设计;需真实资产与构建验证 |
9.2 横向对比
| 技术点 ID | 候选方案 | 优点 | 缺点/代价 | 适用场景 | 不适用场景 | 选择结论与依据 |
|---|---|---|---|---|---|---|
| TP-02 | AI 候选 + 人工制作与门禁 | 变体探索快,可把失败样本结构化 | 来源、风格漂移和返工风险,需要多角色审批 | 前期探索、批量低风险变体、辅助质检 | 未经审核直接生产关键角色 | 本项目采用,AI 只拥有候选权 |
| TP-02 | 全人工传统制作 | 风格与责任边界清晰,成熟流程稳定 | 探索和重复劳动成本可能更高 | 核心角色、强风格、严格授权 | 大量低风险变体且周期紧 | 作为质量基线,关键资产保留人工主导 |
| TP-03 | Blender + glTF/GLB | 开源、与 Godot 主路径匹配、二进制包便于交换 | 复杂专有 DCC 管线和个别特性需适配 | Godot、中小团队、标准 PBR 角色场景 | 深度绑定专有插件和 FBX 管线 | 本示例首选,并锁定导出预设 |
| TP-03 | Maya/3ds Max + FBX | 商业动画与大型团队管线成熟 | 许可成本、FBX 版本和转换差异 | 已有商业 DCC 团队和工具链 | 低成本开源教学项目 | 团队已有沉没成本时评估,不因格式名直接迁移 |
| TP-04 | Godot Import + ResourceLoader + Manifest | 利用引擎依赖、导入缓存和后台加载,发布可追溯 | 热更新、远程内容和大型资产分包需额外设计 | 项目内正式资产 | 不可信用户内容直接执行 | 本项目采用,运行时只暴露已发布稳定 ID |
| TP-04 | 运行时原始 glTF/文件加载 | 支持用户内容和动态外部文件 | 更低效,依赖、翻译、脚本与安全治理复杂 | Mod、用户生成内容、外部资产预览 | 代替项目内部正式资产系统 | 仅放在独立沙箱边界,不作默认路径 |
10. 资产故障演练与质量门禁
证据边界| 下列为生产风险演练,不代表已发生事故。
| 问题 | 现象与影响 | 定位证据 | 根因 | 临时止损 | 长期修复 | 回归验证 | 防复发 |
|---|---|---|---|---|---|---|---|
| 重导入后动画丢失 | NPC 能显示但无法点头,交互反馈中断 | GLB 动画列表、导出日志、Import 设置、Manifest | 动作未导出或骨架命名变化 | 回滚上一 Released 版本 | 锁定导出预设、骨架档案和动画存在性检查 | 重导入并遍历必需动画集合 | 构建前动画契约门禁 |
| 材质异常发亮 | 工坊资产风格破坏,移动端更明显 | 纹理通道、色彩空间、材质参数、目标设备截图 | Roughness/Metallic 打包或色彩空间错误 | 替换为安全材质 | 统一通道约定和导入配置 | 标准灯光场景跨设备对比 | 材质 Profile 检查 |
| AI 资产来源不清 | 无法证明授权,存在发布风险 | generator、prompt_hash、license_id、审批记录 | 来源字段未进入流程门禁 | 阻止发布并下线候选 | Manifest 必填、许可证审查、供应商条款快照 | 缺字段和撤销许可测试 | 发布清单与定期审计 |
| 同屏 NPC 掉帧 | 城镇帧时间升高,玩家操作受影响 | Profiler、同屏数、骨骼、材质槽、阴影和 LOD | 单资产预算未按同屏规模制定 | 降低生成距离、阴影或替换 LOD | 分档预算、实例化、LOD/HLOD 和目标机基准 | 固定摄像机逐级加 NPC | 性能预算 CI 与场景看板 |
| 资产 ID 失效 | AI 对白正确但动画变占位符 | proposal、AssetRegistry、Manifest、构建依赖 | 文件重命名后稳定 ID 映射未迁移 | 使用默认动作并记录原因 | ID 重定向、依赖扫描、兼容期 | 旧存档和旧提案回放 | 禁止直接引用文件路径 |
| 动态内容夹带脚本 | Mod 导致越权或崩溃 | 包签名、文件类型、沙箱日志 | 把运行时内容当成可信项目资产 | 禁止加载并隔离包 | 签名、白名单、大小限制和脚本禁用 | 恶意包与压缩炸弹测试 | 动态内容独立信任边界 |
11. 最小实践与验收
11.1 最小切片
- 编写铁匠 NPC 的 Art Bible 和预算表;
- 生成或绘制三组概念候选,记录来源并完成人工选择;
- 在 Blender 完成角色、锤子和工坊 Blockout;
- 制作最小 PBR 材质、骨骼和四段动画;
- 导出 GLB,生成 AssetManifest 和自动检查报告;
- 在 Godot 创建继承场景、AnimationTree、碰撞和导航;
- 让第一册的
animation_cue只驱动白名单动画; - 注入缺失动画、旧资产 ID、加载失败和场景切换;
- 在固定目标设备上记录加载、内存和帧时间;
- 用同一资产制作 Unity/Unreal 最小对照,不改变测试条件。
11.2 验收清单
- [ ] 源文件、导出文件、Manifest、许可证和审批可以互相追溯;
- [ ] 重导入不会覆盖引擎侧脚本、碰撞和 AnimationTree 配置;
- [ ] 必需动画、骨骼、材质、LOD、碰撞和导航检查通过;
- [ ]
ResourceLoader加载失败会显示占位资产且不阻塞主流程; - [ ] 旧存档与旧提案通过稳定 ID 找到兼容资产或明确降级;
- [ ] 性能结论来自目标设备和同屏负载,不来自空场景编辑器;
- [ ] AI 生成资产未经人工、技术和版权门禁无法进入 Released;
- [ ] 三引擎比较使用同一资产、硬件、场景和记录表。
12. 面试表达与参考资料
12.1 可直接口述的项目亮点
原来的基线是把 AI 生成结果当成成品,主要问题是风格、拓扑、版权和性能无法同时举证。我选择“AI 产候选、专业岗位负责、Manifest 与确定性门禁验收”,并用 Blender 到 Godot 的 GLB 管线把来源、骨骼、动画、导入配置和稳定资产 ID 串起来。亮点不在于用了生成模型,而在于任何资产都能说明为什么被批准、被谁消费、失败后回到哪个工位;当前仍需用真实角色切片和三引擎对照数据验证成本与效率。
12.2 官方资料
- Godot Engine, Godot release policy,访问日期:2026-07-14。
- Godot Engine, Importing 3D scenes,访问日期:2026-07-14。
- Godot Engine, Background loading,访问日期:2026-07-14。
- Godot Engine, Runtime file loading and saving,访问日期:2026-07-14。
- Unity Technologies, Addressables,访问日期:2026-07-14。
- Unity Technologies, Netcode for GameObjects,访问日期:2026-07-14。
- Epic Games, Behavior Trees,访问日期:2026-07-14。
- Epic Games, StateTree Overview,访问日期:2026-07-14。
- Epic Games, Data Assets,访问日期:2026-07-14。
- Epic Games, Networking Overview,访问日期:2026-07-14。
13. 简明总结
一句话记忆: AI 美术的生产价值来自可追溯候选和更快试错,发布权仍属于艺术、技术、版权和运行时门禁。
- Art Bible、AssetManifest 和稳定资产 ID 把风格、来源、版本与运行时消费连接起来;
- Blender + glTF/GLB + Godot Import 是本示例的主路径,运行时原始文件加载只用于独立动态内容边界;
- Godot、Unity、Unreal 必须使用同资产、同硬件和同目标平台比较,结论保持条件性;
- 资产状态机让失败返回最小返工环节,并支持正式发布、废弃与回滚;
- 当前需用真实铁匠切片、目标设备数据和许可证记录补齐项目证据。