导入已有文件
MPE 支持大部分已有项目 Pipeline 的直接导入,但仍需留意一些事项。
对于使用方式,您可以参考 快速上手
提示
虽然 MPE 支持已有项目导入,但仍然推荐您仅使用 MPE 维护新建的 Pipeline 文件,避免出现未预期的不兼容、非可视与可视思路差异导致的布局不佳等问题。
MPE 以 json 文件作为操作单位,若您的旧文件无需更改,没有必要整个项目适配 MPE!
无法解析的部分
深层自定义字段
MPE 在协议支持的字段之外设置了 extras 字段,用于解析与配置协议外字段,但仅对节点的根字段生效。
例如,您的 Pipeline 中含有如下节点:
{
"节点1": {
"action": {
"type": "DoNothing",
"param": {
"param_code": "自定义字段"
},
"param_doc": "自定义说明"
},
"next": "节点2",
"doc": "自定义说明"
}
}在导入 MPE 后,节点将变为:

在导出后,Pipeline 将变为:
{
"节点1": {
"action": {
"type": "DoNothing",
"param": {}
},
"next": "节点2",
"doc": "自定义说明"
}
}虽然您可以使用 extras 字段自定义字段,但在使用 MPE 时不推荐您使用此功能配置做过多的说明,您可以使用如下方案代替:
- 可视化的相对位置已经足够您记忆其功能
- 您可以使用独立的节点放置在旁边强调说明,远比节点内的字段显眼
若您已有较多的自定义字段,请自行转移至根节点,或在初次导入时对比添加独立说明节点。
[可选] 特性兼容
在导入前,您可以先修改部分 Pipeline,以更好的适配 MPE。
统一前缀
MPE 提供了统一前缀功能,若您的 Pipeline 中也使用了相似方案,可以按如下方式兼容配置:
- 将所有前缀与其余部分的连接符改为
_ - 添加
$__mpe_config_{文件名}节点,在节点下添加$__mpe_code字段,在字段中添加"prefix": "{前缀}", "filename": "{文件名}"
例如,您的已有项目 Pipeline 为:
{
"统一前缀-节点1": {
/* ... */
},
"统一前缀-节点2": {
/* ... */
}
}在导入前您需要改为:
{
"$__mpe_config_文件1": {
"$__mpe_code": {
"prefix": "统一前缀",
"filename": "文件1"
}
},
"统一前缀_节点1": {
/* ... */
},
"统一前缀_节点2": {
/* ... */
}
}此后,MPE 会在渲染时将前缀分离,并在导出时自动全部添加。
导入
方法
MPE 以单个 .json 内的所有 Pipeline 作为“文件”,您可以将“文件”理解为单个 .json 文件。
MPE 支持多种导入方式:
1. 从粘贴板导入
- 复制需要导入的 Pipeline 文件代码(注意不是文件,是直接复制文件内的所有代码),此时您的粘贴板内容为所有 Pipeline 代码。
- 点击 MPE 右侧
Pipeline JSON面板的从粘贴板导入按钮,即可导入当前文件。
2. 从文件导入
您可以通过以下两种方式直接导入 .json 或 .jsonc 文件:
- 点击按钮导入:点击 MPE 右侧
Pipeline JSON面板的从文件导入按钮,选择需要导入的文件。 - 拖拽导入:直接将
.json或.jsonc文件拖拽到 MPE 页面的任意位置。
提示
MPE 会自动检测并兼容 v1/v2 协议格式,三种导入方式功能完全一致,请根据使用场景选择最方便的方式。
自动布局
由于非 MPE 导出的文件不包含布局配置,MPE 无法得知在加载时应该将节点渲染在哪个位置,在初次导入时会直接将所有节点渲染在视口中心。
在加载成功后,您可以在未选中任何节点的情况下点击右下角的自动布局工具,MPE 会根据节点之间的连接关系自动排版:

(示例 Pipeline:M9A-anecdote.json, 994 lines)
需要注意的是,MPE 的自动布局仅在节点视角将连接“理顺”,并不知道您的 Pipeline 业务逻辑,因此您需要自行将布局优化为您期望的排布。
此外,复杂的分支/合并关系、较多的外部连接等都会导致布局看起来“不美观”,这是由于非可视编程与可视编程的业务处理思路不同导致(主要是 next、jump_back、on_error 的处理思路)。因此,虽然有自动布局,仍然建议您仅使用 MPE 维护新建的 Pipeline 文件,全程在 MPE 完成的 Pipeline 文件即使逻辑复杂但思路也将会非常清晰:

(示例 Pipeline:MNMA-清体力.json, 1996 lines)

(示例 Pipeline:MNMA-城市探索.json, 2186 lines)
