Skip to main content
点击编辑器顶部“变量配置”,左侧显示 State 变量,右侧显示按模板归类的 Frame 变量。 变量配置中的 State 变量与 Frame 变量

State 与 Frame 的区别

例如,selected_route 记录玩家选择了哪条调查路线,两个 AI 页面都能读取。frame.portrait 只表示当前帧显示哪张立绘。

添加 State 变量

点击“+ 添加 State 变量”,填写:
  • 变量名;
  • 类型:字符串、数字、布尔值、对象或数组;
  • 默认值;
  • 描述。
对象和数组的默认值使用有效 JSON。变量名在作品中保持唯一。触发器规则、上下文条件和页面代码都会按名称引用它。

内置变量

界面会显示由运行时提供的内置变量。内置变量不能编辑、删除或联动素材库,只能设置调试值检查预览状态。

调试值

点击变量卡片上的铅笔可以设置调试值。调试值只影响当前编辑器会话中的作品实时预览:
  • 不进入“保存作品”;
  • 不写入玩家存档;
  • 刷新页面或切换作品后清空。

Frame 变量从哪里出现

Frame 变量不能在变量配置中手动新建。模板的触发器规则只要写入 frame.background、frame.text 等目标,变量配置右侧就会在该模板下列出这些字段。 删除或改名规则中的写入目标后,回到变量配置检查对应的 Frame 变量和媒体绑定。

把变量联动素材库

上传文件后,点击变量卡片上的“联动素材库”。选择可能出现的素材,并配置:
  • 默认素材;
  • 每个素材对应的变量值或生效条件;
  • 多个素材的匹配顺序。
为 Frame 变量选择默认素材和条件映射 素材库界面显示的“素材名称”在数据中就是可读的素材 ID。运行时,变量保存这个 ID,而不是文件 URL:
页面代码先直接读取这个字段,再用 media_url() 取得浏览器可以加载的地址:
State 媒体变量使用同一写法,例如 media_url(state.player_avatar)。media_url 的参数必须是直接的 frame.x 或 state.x 字段,不能另写一个素材 ID 字符串,也不能先拼接表达式。完整代码规则见页面代码:数据、素材与交互。

默认素材

变量为空或没有精确匹配到素材 ID 时,编辑器使用配置的默认素材。某种状态不应显示素材时,可以让变量使用约定值“无”,并由页面代码在调用 media_url() 前判断这个值:
“无”不是一张透明图片。页面代码应直接隐藏对应元素。

State 和 Frame 的绑定位置

  • State 变量的媒体绑定位于 State 变量卡片,整个作品共用。
  • Frame 变量的媒体绑定位于右侧对应模板下,只影响使用该模板的页面。
同名 Frame 变量出现在不同模板中时,需要分别配置。
新模板第一次保存前不能配置 Frame 媒体绑定。先保存模板,再回到“变量配置”联动素材库。

保存

新增、编辑、重命名和删除 State 变量会进入变量标签草稿。媒体绑定的默认素材、条件和顺序也会进入草稿。 点击顶部“保存作品”或关闭变量标签时选择“保存并关闭”,提交变量和媒体绑定。保存失败后,橙色圆点会保留。

素材没有显示时

  1. 在素材库确认文件仍存在。
  2. 在变量配置确认变量显示“已联动素材库”。
  3. 检查指令填写值与媒体条件完全一致。
  4. 检查触发器规则是否把参数写入正确的 State 或 Frame 变量。
  5. 检查页面代码是否把正确的变量传给 media_url()。
MoMo:先看变量里的素材 ID,再看素材绑定,最后看 media_url()。三处必须使用同一个变量。