MetaCore/docs/designs/metacore-model-workflow-roadmap-vs-unity-ue.md

16 KiB
Raw Permalink Blame History

MetaCore 模型工作流 Roadmap对标 Unity / UE

生成时间2026-04-11
状态:执行稿
范围模型导入、资源浏览、场景实例化、层级结构、Inspector、模型/材质编辑

目的

这份文档用于回答一个很实际的问题:

如果以 Unity / UE 的模型内容工作流为参照MetaCore 现在做到哪里了,还差哪些,应该先补什么。

这里关注的不是单个函数是否存在,而是整条用户工作流是否成立:

外部模型文件
  -> 进入项目资源系统
    -> 在资源界面可见、可查、可重导入
      -> 拖入 Scene / Hierarchy
        -> 生成对象树
          -> 在 Hierarchy / Inspector 中查看和编辑
            -> 保存、重开、重导入后仍然稳定

结论先说

当前 MetaCore 已经具备:

  • 模型资源化基础
  • glTF/glb 主导入链
  • 模型节点树实例化
  • Mesh / Material / Texture 资产文档
  • Prefab 基础工作流
  • Scene / Hierarchy / Inspector 的基础对象编辑链

但距离 Unity / UE 风格的完整模型工作流,还缺一整层编辑器交互闭环

一句话概括:

MetaCore 现在更像“已经有模型资产内核的编辑器原型”,还不是“完整的模型内容生产工具”。

现状总评

按整体工作流评估,当前大致处于:

  • 底层能力55 / 100
  • 编辑器工作流30 / 100
  • 整体生产力35 / 100

为什么不是更低

因为下面这些主链已经存在:

  • AssetDatabase
  • ImportPipeline
  • CookService
  • ModelAssetDocument
  • InstantiateModelAsset
  • Prefab Create / Instantiate / Apply / Revert
  • Scene 对象树编辑

为什么也还不能更高

因为下面这些仍然是核心缺口:

  • 真正可用的 Project / Content Browser
  • 资源拖拽进 Scene / Hierarchy
  • 模型资源 Inspector
  • 材质资源 Inspector
  • 资源级编辑与实例级编辑边界

评估维度

本文按下面 8 个维度评估:

  1. 模型导入链路
  2. Project / Content Browser
  3. 资源拖拽到 Scene / Hierarchy
  4. 模型实例化后的层级结构
  5. 模型与资源信息查看
  6. 模型对象 Inspector 编辑
  7. 材质资源编辑
  8. Prefab / 模型实例 / 覆盖关系

状态分级:

  • 已完成:主链可用
  • 半完成:底层有了,编辑器交互/UI 不完整
  • 未完成:尚未形成工作流

优先级分级:

  • P0:必须先补,不然整体不像编辑器
  • P1:主链打通后紧接着补
  • P2:增强项或第二阶段内容

一、模型导入链路

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
外部文件导入到项目 支持拖入编辑器窗口复制到 Assets 并刷新导入 Unity/UE 是明确的 Project/Content Browser 导入工作流 半完成 P0
glTF / glb 导入 已有主实现,能生成模型/mesh/material/texture/node 文档 Unity/UE 更成熟,支持更完整导入设置与报告 半完成 P0
obj / fbx 导入 有 generic fallback更像占位支持 Unity/UE 是正式导入器 半完成 P2
导入后生成正式资源 已生成 mesh/material/texture/model 结构 方向正确 已完成 -
重导入 ReimportAsset,有 GUID 稳定性测试 缺完整 UI、导入参数持久化、差异反馈 半完成 P1
导入错误诊断 有部分失败路径与 fallback 缺统一导入日志/导入报告面板 半完成 P1
导入设置面板 基本没有 Unity/UE 很强 未完成 P1

现状判断

这部分最接近“引擎底层已经有了”。

问题不在于不能导,而在于:

  • 用户不容易理解导入结果
  • 导入设置和重导入控制还不够显式
  • 还没有形成真正的内容浏览工作台

目标状态

第一阶段目标不是“支持所有格式”,而是:

把 glTF/glb 做成真正可用于生产的基线导入格式。


二、Project / Content Browser

这是当前最大的缺口。

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
目录树浏览 设计文档明确,代码主链未形成成熟面板 Unity/UE 的核心入口 未完成 P0
资源列表 AssetDatabase 能提供记录,但 UI 还不够成型 Unity/UE 有成熟列表/卡片/缩略图 半完成 P0
搜索 / 筛选 设计有,现状不足 Unity/UE 标配 未完成 P1
资源图标 / 缩略图 基本不足 Unity/UE 标配 未完成 P1
资源右键菜单 设计有,现状不足 Unity/UE 标配 未完成 P1
选中资源联动 Inspector 方向有,完整表现不足 Unity/UE 很成熟 半完成 P0
Refresh / Reimport 入口 服务已存在,界面入口不足 Unity/UE 明确 半完成 P0
引用定位 / 反查 基本没有 Unity/UE 常用能力 未完成 P2

现状判断

MetaCore 现在有 AssetDatabase,但还没有真正做出:

资源工作台。

如果这部分不先补,导入器再强,也只是后台服务,不是生产力工具。

目标状态

第一阶段至少应达到:

  • 左侧目录树
  • 中间资源列表
  • 右侧 Inspector
  • 基本搜索 / 筛选
  • Reimport / Refresh / Create Folder / Copy Path

三、资源拖拽到 Scene / Hierarchy

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
模型资源实例化服务 已有 InstantiateModelAsset() 后端能力已具备 已完成 -
从 Project 拖到 Scene 后端可支持,交互主链不完整 Unity/UE 很成熟 未完成 P0
从 Project 拖到 Hierarchy 设计已定义,现状未成型 Unity/UE 标配 未完成 P0
材质拖到对象材质槽 设计有,现状未成型 Unity/UE 标配 未完成 P0
Prefab 拖入场景 Prefab 服务存在 缺正式 Content Browser 拖拽体验 半完成 P1
Drop 预览 / 高亮 / 放置反馈 基本没有 Unity/UE 强 未完成 P1

现状判断

这里是“服务有了,但编辑器交互没长出来”的典型模块。

这是 MetaCore 从“会导入”走向“像编辑器”的关键门槛。

目标状态

第一阶段最小要求:

  • 模型资源拖到 Scene生成对象树
  • 模型资源拖到 Hierarchy生成对象树并支持指定父节点
  • 材质资源拖到对象:改材质槽
  • Prefab 拖到场景:实例化 Prefab

四、模型实例化后的层级结构

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
保留模型节点层级 已支持 Nodes + ParentIndex + MeshIndex 方向正确 已完成 -
实例化为 GameObject 已支持 第一版已可用 已完成 -
节点局部 Transform 保留 已支持 正确 已完成 -
Hierarchy 显示对象树 已有基础 还需更完整交互与资源联动 半完成 P0
多选 / 复制 / 删除 / 重挂接 已有基础服务和测试 接近最小可用 已完成 -
搜索过滤层级 设计有,现状不强 Unity/UE 常用 未完成 P1
重挂接 UX 逻辑有,视觉与反馈不够 Unity/UE 更成熟 半完成 P1
资源侧结构预览 不足 Unity/UE 有资源结构理解路径 未完成 P1

现状判断

这是 MetaCore 当前比较像样的一块。

问题不是“不能生成对象树”,而是:

  • 资源侧结构视角不够
  • Hierarchy 交互还不够编辑器化
  • 资源拖拽和层级树联动不够完整

五、模型与资源信息查看

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
显示 SourcePath / ImporterId / SourceHash 数据层有 UI 呈现不完整 半完成 P0
显示 mesh/material/texture 数量 数据层有 Inspector 仍不够完整 半完成 P0
节点结构摘要 数据层有 缺正式模型资源 Inspector 半完成 P1
Vertex / Index / SubMesh / AABB MeshAsset 里已有部分 缺 UI 呈现 半完成 P1
导入警告/问题显示 有少量日志 缺正式 import report 未完成 P1
依赖关系查看 基本没有 Unity/UE 较成熟 未完成 P2

现状判断

MetaCore 现在已经不是“没有模型信息”,而是:

模型信息存在于数据层,但没有充分变成编辑器能力。

目标状态

第一阶段模型资源 Inspector 至少显示:

  • 源文件路径
  • 导入器类型
  • 模型类型与格式
  • 节点数量
  • Mesh 数量
  • Material 数量
  • Texture 数量
  • 每个 mesh 的顶点/索引数量

六、模型对象 Inspector 编辑

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
Transform 编辑 已有 最小主链成立 已完成 -
MeshRenderer 编辑 已有基础字段 偏对象快照,不够资源化 半完成 P0
BaseColor / Visible 等基础项 已有 可用但偏原型 半完成 P1
材质槽指派 数据结构支持 MaterialAssetGuids UI 不够成熟 半完成 P0
Mesh 资源替换 理论可做,完整流程不足 Unity/UE 成熟 半完成 P1
SourceModel / Node 信息展示 有字段 UI 薄 半完成 P1
SubMesh 级编辑 基本没有形成工作流 Unity/UE 常见 未完成 P2

核心问题

当前 MeshRenderer 里仍混着很多材质表现字段:

  • BaseColor
  • Metallic
  • Roughness
  • 贴图路径

这在原型阶段合理,但长期会模糊:

  • 对象实例编辑
  • 材质资源编辑
  • override 关系

目标状态

应逐步收敛为:

  • 对象 Inspector编辑资源引用
  • 材质资源 Inspector编辑材质内容
  • override 路径清晰

七、材质资源编辑

这部分是 MetaCore 与 Unity / UE 差距很大的区域。

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
Material 资源结构 MetaCoreMaterialAssetDocument 已定义 方向正确 已完成 -
材质资源生成 模型导入已生成 第一版可用 已完成 -
材质资源 Inspector 尚未成型 Unity/UE 很成熟 未完成 P0
贴图槽编辑 数据结构有 编辑器工作流未成型 半完成 P0
Metallic / Roughness / Alpha 编辑 数据结构有 编辑器工作流不足 半完成 P1
实时刷新到场景实例 不确定是否全链完整 Unity/UE 标配 半完成 P1
材质资源与对象 override 区分 基本还没拉清 Unity/UE 很强 未完成 P1

现状判断

你已经有“材质资源格式”,但还没有真正的:

材质编辑器。

这意味着:

  • 导入出来的材质能保存
  • 但不代表用户能舒服地编辑它们

八、Prefab / 模型实例 / 覆盖关系

能力 MetaCore 现状 对标 Unity / UE 状态 优先级
从选择创建 Prefab 已有 很不错 已完成 -
Prefab 实例化 已有 第一版可用 已完成 -
Apply / Revert 已有 第一版可用 已完成 -
PrefabInstance 元数据 已有 方向正确 已完成 -
模型实例和 Prefab 实例关系清晰化 不够 Unity/UE 心智清晰 半完成 P1
对象字段 override 可视化 有少量 apply/revert 提示 远不如 Unity/UE 半完成 P1
资源级 override 管理 基本没有 Unity/UE 更成熟 未完成 P2

现状判断

Prefab 是当前 MetaCore 一个意外偏强的模块。

但要真正接近 Unity

  • Prefab
  • 模型实例
  • 材质资源
  • 对象字段 override

这几层关系必须在 UI 和数据层都更清晰。


差距清单:最关键的 10 项

当前最关键缺口如下:

  1. 真正可用的 Project / Content Browser
  2. 模型 / 材质 / Prefab 从资源面板拖到 Scene / Hierarchy
  3. 模型资源 Inspector
  4. 材质资源 Inspector
  5. 资源编辑与实例编辑边界清晰化
  6. 导入设置 / Reimport 工作流 UI
  7. 模型导入结果可视化mesh / material / texture / node 摘要
  8. 材质槽编辑与材质拖放
  9. 资源搜索、筛选、右键菜单
  10. 更完整的导入诊断与引用定位

建议路线图

下面给出推荐分阶段路线。

Phase A先做成“像编辑器”的最小闭环

目标:

让用户第一次感受到 MetaCore 不是后台工具,而是可用编辑器。

A1. Project 面板最小可用版

内容:

  • 目录树
  • 当前目录资源列表
  • 基本图标/类型标识
  • 选中资源联动 Inspector
  • Refresh / Reimport / Create Folder / Copy Relative Path

依赖:

  • AssetDatabase 已有

优先级:

  • P0

A2. 资源拖拽主链

内容:

  • Model -> Scene View
  • Model -> Hierarchy
  • Prefab -> Scene View / Hierarchy
  • Material -> MeshRenderer 材质槽

依赖:

  • InstantiateModelAsset
  • InstantiatePrefab

优先级:

  • P0

A3. 模型资源 Inspector 最小版

内容:

  • 源路径
  • 导入器
  • 格式
  • Mesh / Material / Texture / Node 数量
  • Mesh 列表摘要
  • Reimport 按钮

优先级:

  • P0

A4. 材质槽指派 UI

内容:

  • 对象 Inspector 中显示材质槽
  • 可替换材质资源
  • 支持从资源面板拖入

优先级:

  • P0

A5. 材质资源 Inspector 最小版

内容:

  • BaseColor
  • BaseColorTexture
  • NormalTexture
  • Metallic / Roughness
  • AlphaMode
  • DoubleSided

优先级:

  • P0

Phase B把主链做顺

目标:

让模型工作流从“能跑”进入“好用”。

B1. 搜索 / 筛选

内容:

  • 按名称搜索
  • 按类型筛选Model / Mesh / Material / Texture / Prefab / Scene

优先级:

  • P1

B2. 导入诊断 / 报告面板

内容:

  • 最近一次导入结果
  • 丢失贴图
  • 无法解析节点
  • fallback 提示
  • reimport 结果摘要

优先级:

  • P1

B3. 场景与资源反向定位

内容:

  • 选中对象可定位资源
  • 选中资源可高亮引用对象

优先级:

  • P1

B4. override 与实例关系清晰化

内容:

  • Prefab override 显示
  • 材质资源覆盖提示
  • 对象实例 vs 资源实例心智拉清

优先级:

  • P1

Phase C第二阶段增强

目标:

让 MetaCore 开始进入接近 Unity / UE 深水区的内容工具形态。

C1. 模型导入设置页

内容:

  • 坐标系
  • 缩放
  • 法线/切线导入策略
  • 材质重映射
  • 默认碰撞

优先级:

  • P2

C2. 更完整 FBX 导入

内容:

  • 正式而非 fallback 的 FBX 导入链

优先级:

  • P2

C3. 模型资源独立编辑器

内容:

  • Static Mesh / Model 详情页
  • 节点结构预览
  • SubMesh / Material Slot 可视化
  • 统计信息与预览

优先级:

  • P2

C4. 动画 / 蒙皮 / 更完整资源链

内容:

  • 骨骼
  • 动画 clip
  • 蒙皮网格

优先级:

  • P2

推荐实现顺序

推荐按下面顺序推进:

  1. Project 面板最小版
  2. 资源拖拽到 Scene / Hierarchy
  3. 模型资源 Inspector
  4. 材质槽编辑 UI
  5. 材质资源 Inspector
  6. Reimport / Refresh 显式入口
  7. 搜索 / 筛选
  8. 导入诊断面板
  9. 资源与实例反向定位
  10. override 关系清晰化

这条顺序的原因很简单:

它优先补的是用户最能感知编辑器是否“成立”的那一层


Definition of Done

当下面这些成立时,可以认为 MetaCore 第一阶段模型工作流真正可用:

  • 用户能把模型导入项目
  • 用户能在 Project 面板找到模型及其资源
  • 用户能查看模型的基本结构与导入信息
  • 用户能把模型拖入 SceneHierarchy
  • 模型会生成正确对象树
  • 用户能在 Hierarchy 中组织对象
  • 用户能在 Inspector 中编辑对象引用与基础材质
  • 用户能编辑材质资源本身
  • 用户能执行 Reimport 并看到结果更新
  • 保存 / 重开 / 实例化 / Prefab 主链保持稳定

最终建议

接下来不建议优先继续扩导入格式列表。

更合理的策略是:

先把“资源浏览 -> 拖拽实例化 -> 层级编辑 -> Inspector 编辑 -> 重导入更新”这条模型生产力主链补完整。

因为对用户来说,决定 MetaCore 像不像 Unity / UE 的,不是“支持几个格式”,而是:

导进来的模型,能不能被顺畅地看见、拖进来、组织起来、编辑起来、保存下来。