264 lines
5.7 KiB
Markdown
264 lines
5.7 KiB
Markdown
# MetaCore 第一阶段范围定义
|
||
|
||
生成时间:2026-03-27
|
||
状态:草案
|
||
范围:第一阶段
|
||
|
||
## 目的
|
||
|
||
这份文档定义 MetaCore 第一阶段到底要交付什么、要给未来预留什么,以及明确不准备在这一阶段完成什么。
|
||
|
||
目标是防止范围漂移,同时保留真实的产品野心:
|
||
|
||
**MetaCore 第一阶段要成为一个足够完整的引擎版本,能够支撑工业数字孪生应用开发,并为后续扩展到 VR 虚拟维修训练留下清晰路径。**
|
||
|
||
## 第一阶段产品定义
|
||
|
||
MetaCore 第一阶段是:
|
||
|
||
- 一个以 Windows 为先的 C/S 引擎与编辑器栈
|
||
- 能用于构建工业三维可视化和数字孪生类应用
|
||
- 具备实时数据接入接口
|
||
- 在架构上为未来 XR 和 B/S 扩展保留空间
|
||
- 底层采用 EnTT ECS,编辑器界面采用 ImGui,主渲染后端采用 Filament,运行时 UI 规划采用 RmlUi
|
||
- 编辑期优先使用 JSON 和可读元数据,发布期通过 Cook 生成二进制运行时资产
|
||
|
||
MetaCore 第一阶段不是:
|
||
|
||
- 一个完整行业平台
|
||
- 一个完整 VR 训练平台
|
||
- 一个浏览器优先的引擎
|
||
- 一个要在广度上正面对标 Unity 的通用引擎
|
||
|
||
## 第一阶段完成陈述
|
||
|
||
当 MetaCore 能够被用于构建并交付一个 Windows C/S 工业三维可视化应用,并且具备以下能力时,第一阶段才算完成:
|
||
|
||
- 项目与资源管理
|
||
- 场景制作
|
||
- 运行时打包
|
||
- 实时数据源集成
|
||
- 场景对象状态绑定
|
||
- 稳定的运行时执行
|
||
|
||
并且同一套架构仍然保留了通往以下方向的清晰路径:
|
||
|
||
- VR 应用开发
|
||
- B/S 嵌入式产品化
|
||
|
||
## 第一阶段功能分层
|
||
|
||
### 1. 引擎核心
|
||
|
||
必须包含:
|
||
|
||
- 应用生命周期
|
||
- 平台抽象
|
||
- 日志
|
||
- 模块与服务基础设施
|
||
- 反射与序列化
|
||
- package 格式与资产标识
|
||
|
||
### 2. 场景与对象系统
|
||
|
||
必须包含:
|
||
|
||
- 场景模型
|
||
- GameObject 层级
|
||
- 组件模型
|
||
- Transform 编辑
|
||
- 场景保存与加载
|
||
- prefab 基础工作流
|
||
|
||
### 3. 渲染与运行时
|
||
|
||
必须包含:
|
||
|
||
- 场景渲染
|
||
- 相机系统
|
||
- 基础光照
|
||
- 视口渲染
|
||
- 运行时 Player
|
||
|
||
### 4. 项目与资源系统
|
||
|
||
必须包含:
|
||
|
||
- 项目结构
|
||
- 资源导入
|
||
- 元数据生成
|
||
- 资源数据库
|
||
- package 与 cook 流程
|
||
- 启动场景与 runtime config
|
||
|
||
### 5. 编辑器系统
|
||
|
||
必须包含:
|
||
|
||
- Hierarchy 面板
|
||
- Scene 视图
|
||
- Inspector
|
||
- Project 面板
|
||
- Console
|
||
- Undo / Redo
|
||
- 对象与组件编辑
|
||
|
||
### 6. 支撑应用开发的 RuntimeData 层
|
||
|
||
必须包含:
|
||
|
||
- 实时数据 adapter 接口
|
||
- 数据源定义
|
||
- 数据点定义
|
||
- 场景 binding 定义
|
||
- 运行时更新分发
|
||
- 诊断与降级行为
|
||
|
||
## 第一阶段必须具备的功能
|
||
|
||
这些功能构成第一阶段闭环。
|
||
|
||
### 引擎与编辑器
|
||
|
||
- 打开项目
|
||
- 加载启动场景
|
||
- 编辑场景
|
||
- 保存并重新加载场景
|
||
- 查看并修改对象属性
|
||
- 导入并管理项目资源
|
||
- 打包并运行独立 Windows 客户端
|
||
|
||
### RuntimeData
|
||
|
||
- 定义数据源
|
||
- 定义逻辑数据点
|
||
- 把数据点绑定到场景目标
|
||
- 用外部更新驱动运行时场景状态
|
||
- 可见地处理 source fault 和 stale data
|
||
|
||
### 交付
|
||
|
||
- 在编辑器外运行一个已打包的样板项目
|
||
- 把样板项目交付为 Windows C/S 应用
|
||
|
||
## 第一阶段支持的 binding 目标
|
||
|
||
第一阶段只应支持受控白名单。
|
||
|
||
### 初始必须支持
|
||
|
||
- `Transform.Position`
|
||
- `MeshRenderer.Visible`
|
||
- `MeshRenderer.BaseColor`
|
||
- `Light.Intensity`
|
||
- `Light.Color`
|
||
|
||
### 后置目标
|
||
|
||
- 任意组件字段绑定
|
||
- UI 文本绑定
|
||
- 动画参数绑定
|
||
- 骨骼状态绑定
|
||
|
||
## 第一阶段必须预留的区域
|
||
|
||
这些不需要在第一阶段完全产品化,但架构必须给它们留口子。
|
||
|
||
### XR 与 VR
|
||
|
||
- 输入系统不能从设计上只服务桌面
|
||
- 运行时逻辑不能默认只有键鼠交互
|
||
- 对象模型和运行时系统要能复用于训练场景
|
||
|
||
### B/S 与嵌入
|
||
|
||
- 场景和资源格式不能锁死桌面形态
|
||
- RuntimeData 模型要能脱离编辑器被服务化
|
||
- Player 运行时不能依赖编辑器专属系统
|
||
|
||
### 行业解决方案分层
|
||
|
||
- 第一阶段的应用逻辑不能把某一种客户业务流程硬编码进引擎核心
|
||
|
||
## 第一阶段明确不做的内容
|
||
|
||
这些内容不进入第一阶段完成定义。
|
||
|
||
- 完整 B/S 运行时产品
|
||
- 嵌入式 SDK 产品化
|
||
- 完整 VR 虚拟维修训练工作流
|
||
- XR Interaction Toolkit 等价能力
|
||
- 训练评分与回放系统
|
||
- AI 辅助工作流
|
||
- 仿真编排平台
|
||
- 大规模工业协议矩阵
|
||
- 多人协作编辑
|
||
- Unity 级别的编辑器广度
|
||
- 通用可视化脚本平台
|
||
|
||
## MVP / V1 / V1.5 分层
|
||
|
||
### MVP
|
||
|
||
目的:
|
||
|
||
- 证明引擎闭环是真的
|
||
|
||
包括:
|
||
|
||
- 引擎主循环与运行时壳
|
||
- 项目与场景基础
|
||
- 编辑器基础
|
||
- Windows 独立运行
|
||
- RuntimeData 子系统骨架
|
||
- mock adapter
|
||
- 基础 scene binding
|
||
- 一个样板项目
|
||
|
||
### V1
|
||
|
||
目的:
|
||
|
||
- 证明 MetaCore 能支撑第一类真实交付场景
|
||
|
||
包括:
|
||
|
||
- 稳定的资源与 package 流程
|
||
- 稳定的 prefab 基础
|
||
- 一个简单 live adapter
|
||
- runtime config 持久化
|
||
- binding config 持久化
|
||
- 最小 binding 编辑 UI
|
||
- runtime diagnostics
|
||
- 更强的回归覆盖
|
||
|
||
### V1.5
|
||
|
||
目的:
|
||
|
||
- 让 MetaCore 更像引擎,而不是 pilot 壳
|
||
|
||
包括:
|
||
|
||
- 更成熟的编辑器工作流
|
||
- 更强的诊断能力
|
||
- 更清晰的 Runtime / Editor 分离
|
||
- 更稳的资源工作流
|
||
- 更明确的 XR 与 B/S 架构预留
|
||
|
||
## 验收标准
|
||
|
||
MetaCore 第一阶段应该按以下标准判断。
|
||
|
||
### 产品验收
|
||
|
||
- 开发者可以使用 MetaCore 构建一个小型工业三维可视化应用
|
||
- 运行时应用可以响应外部数据更新
|
||
- 打包后的应用可以独立在 Windows 上运行
|
||
|
||
### 工程验收
|
||
|
||
- Runtime 与 Editor 边界清晰
|
||
- 数据接入以独立子系统实现,而不是散落在各处逻辑里
|
||
- 核心工作流具备回归测试
|