附.迁移旧 MVU 卡

附.迁移旧 MVU 卡#

为什么你需要迁移旧 MVU 卡?#

如果你已经阅读了这个教程正文, 那么想必你已经有了 MVU zod 优于 MVU 本体或 MVU beta 的概念; 如果你没有阅读教程正文……MVU zod 优于 MVU 本体或 MVU beta 的点包括但不限于:

  • 用 zod 定义变量能轻松实现 "限定变量只能是某些值"、"变量值出某些错时自动修正"、"变量值依赖于另一个变量比如根据好感度设定好感阶段"、"特定情况才有某个变量值"、"物品栏最多 10 个道具" 等原本必须拷打 AI 编写脚本来做的事情;

  • 新设计的变量更新规则提示词比原来的写法更省 token、AI 更容易理解正确;

  • 变量输出格式改为了 json patch 而不是自定义 _.set 等命令, 经测试更容易保持格式正确;

  • 新的变量结构写法、initvar 写法、变量提示词写法都更清晰, 也更适合 AI 生成——简单来说, 更适合制作各种写卡助手和工作流.

而实测结果是, 用 claude-sonnet-4.5|code 游玩一张有着物品栏、装备栏、系统面板、技能、任务、商品等复杂变量的 MVU zod 变量卡, 在 200 楼内没有出现过变量更新错误.

迁移步骤#

如果你已经使用 MVU 本体或 MVU beta 编写好了角色卡, 而想将它迁移成 MVU zod 变量卡, 以下是你需要注意的内容. 在了解这些内容后, 我会再给你提供迁移步骤:

[initvar]
  • MVU zod 不建议[initvar] 条目里使用 [值, 描述] 风格写法! 这个写法会让变量用起来非常麻烦, 建议直接阅读教程正文然后尝试重制变量部分;

  • 如果你原先使用 [值, 描述] 风格写法, 而就是不想重制变量想直接迁移, 请注意将使用了变量的每个地方都转换为 变量: 格式, EJS、前端等中也不再用 [0] 获取值, 具体见之后的迁移步骤;

  • 旧的 [initvar] 条目在 MVU zod 中被拆分为变量结构脚本和 [initvar] 条目, 变量结构规定了对象是否可扩展等, [initvar] 条目则设置了变量的初始值;

为不同开局设置不同变量初始值
  • 你现在可以在开场白里直接使用 <initvar> 块来为不同开场白设置不同变量初始值;

  • 开场白中如果使用了 _.set 等命令来为不同开场白设置不同变量初始值, 那就没必要改掉, MVU zod 依旧支持使用这些更新变量命令, 但如果原本是 [值, 描述] 风格写法, 建议重新生成;

  • 如果想要将 _.set 等命令转换为 <initvar> 块, 可以从变量管理器中复制每个开局的 stat_data 变量值, 发给门之主的变量初始设置提示词来生成.

变量列表: 即你可能写了 {{get_message_variable::xxx}} 的提示词
  • 建议将 {{get_message_variable::xxx}} 换成 {{format_message_variable::xxx}}. 如果没有专门自定义变量列表而是直接抄的 MVU 示例, 可以直接换掉不必保留.

变量更新规则: 根据角色对<user>当前行为的态度增减好感度
  • 之前的变量更新规则依旧能用, 但建议你切换成新的变量更新规则格式, 它更省 token、AI 更容易理解正确.

变量输出格式: <UpdateVariable>
  • 虽然 MVU zod 依旧支持使用 _.set 等来更新变量, 但你最好换成新的变量输出格式, 它更容易正确.

因此, 你可以直接阅读教程正文然后重新制作相应部分, 也可以使用门之主写卡助手咩咩的 Gemini CLI 全自动写卡工作流来转换: (当然建议读读教程了解一下, 方便自己修改qaq)

提示

如果旧的 initvar 是 变量: [值, 描述] 风格, 一定要在提示词中明确告知:

我发给你的 JSON/YAML 变量信息是`变量: [值, 描述]`格式,其中`值`是变量实际的值,而`描述`可能是变量用途、更新规则等,在生成时一定要注意帮我转换为`变量: 值`格式,如果是代码中则替我移除不再需要的`[0]`索引
  • 用旧 initvar + 门之主写卡助手里的变量结构设计提示词 -> 变量结构设计脚本;

  • 变量结构设计脚本 + 门之主写卡助手里的变量初始设置提示词 -> 新的 initvar;

  • 旧变量更新规则 + 门之主写卡助手里的变量更新规则提示词 -> 新的变量更新规则提示词;

  • 复制粘贴门之主写卡助手里变量列表变量输出格式提示词的 ```yaml 代码块部分, , 删除开头的 ```yaml、结尾的 ``` 和所有 \.