Skip to content

导入已有文件

MPE 支持大部分已有项目 Pipeline 的直接导入,但仍需留意一些事项。

对于使用方式,您可以参考 快速上手

提示

虽然 MPE 支持已有项目导入,但仍然推荐您仅使用 MPE 维护新建的 Pipeline 文件,避免出现未预期的不兼容、非可视与可视思路差异导致的布局不佳等问题。

MPE 以 json 文件作为操作单位,若您的旧文件无需更改,没有必要整个项目适配 MPE!

无法解析的部分

深层自定义字段

MPE 在协议支持的字段之外设置了 extras 字段,用于解析与配置协议外字段,但仅对节点的根字段生效。

例如,您的 Pipeline 中含有如下节点:

json
{
  "节点1": {
    "action": {
      "type": "DoNothing",
      "param": {
        "param_code": "自定义字段"
      },
      "param_doc": "自定义说明"
    },
    "next": "节点2",
    "doc": "自定义说明"
  }
}

在导入 MPE 后,节点将变为:

在导出后,Pipeline 将变为:

json
{
  "节点1": {
    "action": {
      "type": "DoNothing",
      "param": {}
    },
    "next": "节点2",
    "doc": "自定义说明"
  }
}

虽然您可以使用 extras 字段自定义字段,但在使用 MPE 时不推荐您使用此功能配置做过多的说明,您可以使用如下方案代替:

  • 可视化的相对位置已经足够您记忆其功能
  • 您可以使用独立的节点放置在旁边强调说明,远比节点内的字段显眼

若您已有较多的自定义字段,请自行转移至根节点,或在初次导入时对比添加独立说明节点。

[可选] 特性兼容

在导入前,您可以先修改部分 Pipeline,以更好的适配 MPE。

统一前缀

MPE 提供了统一前缀功能,若您的 Pipeline 中也使用了相似方案,可以按如下方式兼容配置:

  1. 将所有前缀与其余部分的连接符改为 _
  2. 添加 $__mpe_config_{文件名} 节点,在节点下添加 $__mpe_code 字段,在字段中添加 "prefix": "{前缀}", "filename": "{文件名}"

例如,您的已有项目 Pipeline 为:

json
{
  "统一前缀-节点1": {
    /* ... */
  },
  "统一前缀-节点2": {
    /* ... */
  }
}

在导入前您需要改为:

json
{
  "$__mpe_config_文件1": {
    "$__mpe_code": {
      "prefix": "统一前缀",
      "filename": "文件1"
    }
  },
  "统一前缀_节点1": {
    /* ... */
  },
  "统一前缀_节点2": {
    /* ... */
  }
}

此后,MPE 会在渲染时将前缀分离,并在导出时自动全部添加。

导入

方法

MPE 以单个 .json 内的所有 Pipeline 作为“文件”,您可以将“文件”理解为单个 .json 文件。

MPE 支持多种导入方式:

1. 从粘贴板导入

  1. 复制需要导入的 Pipeline 文件代码(注意不是文件,是直接复制文件内的所有代码),此时您的粘贴板内容为所有 Pipeline 代码。
  2. 点击 MPE 右侧 Pipeline JSON 面板的 从粘贴板导入 按钮,即可导入当前文件。

2. 从文件导入

您可以通过以下两种方式直接导入 .json.jsonc 文件:

  1. 点击按钮导入:点击 MPE 右侧 Pipeline JSON 面板的 从文件导入 按钮,选择需要导入的文件。
  2. 拖拽导入:直接将 .json.jsonc 文件拖拽到 MPE 页面的任意位置。

提示

MPE 会自动检测并兼容 v1/v2 协议格式,三种导入方式功能完全一致,请根据使用场景选择最方便的方式。

自动布局

由于非 MPE 导出的文件不包含布局配置,MPE 无法得知在加载时应该将节点渲染在哪个位置,在初次导入时会直接将所有节点渲染在视口中心。

在加载成功后,您可以在未选中任何节点的情况下点击右下角的自动布局工具,MPE 会根据节点之间的连接关系自动排版:

(示例 Pipeline:M9A-anecdote.json, 994 lines)

需要注意的是,MPE 的自动布局仅在节点视角将连接“理顺”,并不知道您的 Pipeline 业务逻辑,因此您需要自行将布局优化为您期望的排布。

此外,复杂的分支/合并关系、较多的外部连接等都会导致布局看起来“不美观”,这是由于非可视编程与可视编程的业务处理思路不同导致(主要是 nextjump_backon_error 的处理思路)。因此,虽然有自动布局,仍然建议您仅使用 MPE 维护新建的 Pipeline 文件,全程在 MPE 完成的 Pipeline 文件即使逻辑复杂但思路也将会非常清晰:

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

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