附.迁移旧 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、结尾的```和所有\.