界面状态与条件显示
v1.8.0 新增
- 界面状态;
- 剧情变量;
- 扩展数据;
- 已绑定的游戏设置。
修改状态和值
按钮动作可以设置、翻转、增减或循环切换界面状态与可写数据。例如:- 点击「下一步」把步骤从
1增加到2; - 点击折叠标题翻转布尔状态;
- 点击分类按钮循环切换当前筛选值;
- 修改剧情变量后,让另一个元素的显示条件立即重新计算。
在文字中显示变量
文字内容使用双花括号插入变量:变量名需要和项目里的变量完全一致。变量不存在时,界面无法显示预期内容。
让玩家写入变量
「输入对话框」智能组件可以把结果写入一个可写变量,并支持:- 字符串、数字和布尔类型;
- 必填校验;
- 最大长度;
- 数值步进;
- 按 Esc 取消。
绑定游戏设置
下拉、开关、滑块和勾选框可以绑定引擎设置。玩家调整控件后,值会自动保存。滑块
- 主音量
- 背景音乐音量
- 音效音量
- 语音音量
- 文字速度
- 自动播放速度
下拉
- 跳过模式:全部 / 已读
开关与勾选框
- 进入下一句对话时停止当前语音
- 全屏
显示扩展数据列表
「数据列表」可以读取扩展存档中的数组,也可以直接读取扩展声明并绑定的数据集合。在属性检查器的「数据源」中选择对应条目即可。 存档数组的数据源格式为:- 网格、列表或图文列表显示模式,以及各自独立的条目模板和分页模板;
- 标题、副标题和图片对应的字段名;
- 列数、行数和间距;
- 空列表文案;
- 分页或滚动展示。
extension.json 的 dataDependencies 中声明的逻辑别名读取集合;集合的每行记录就是一个列表项。跟随存档的玩家数据集合也可直接绑定,例如道具系统的玩家物品。
智能组件调用扩展方法时会保留当前条目的来源。支持来源写回的扩展可以据此分别处理:数据集合条目写回对应集合,扩展变量条目写回原变量,不需要同时维护两份数据。
它适合背包、任务、角色图鉴等重复数据。如果需要计算、筛选或组合复杂数据,可以在扩展程序里处理后,再用程序控制可视化界面更新元素。
自定义列表、网格、图文列表与分页模板
在设计画布中双击「数据列表」,可以进入智能组件子页面。数据列表包含五份独立模板:- 列表项模板:用于「列表模式」,初始包含条目背景、标题和副文字;
- 网格项模板:用于「网格模式」,初始包含卡片背景、图片、文字栏背景、标题和副文字;
- 图文列表项模板:用于「图文列表模式」,初始使用左图右文结构,包含条目背景、图片、标题和副文字;
- 分页模板:三种显示模式共用,初始包含上一页按钮、页码和下一页按钮;
- 滚动条模板:三种显示模式共用,初始包含滚动条轨道和滚动滑块。
- 条目标题:
{{item.title}},读取检查器中设置的标题字段; - 条目副文字:
{{item.subtitle}},读取副标题字段; - 条目图片:
{{item.image}},读取图片字段; - 条目序号:
{{item.index}},从 1 开始编号; - 已绑定数据集合或扩展变量的其他子字段,例如
{{item.rarity}}、{{item.profile.score}}。
{{pagination.current}}(当前页码)和 {{pagination.total}}(总页数)。设计画布会用 1 / 3 预览分页效果,保存时仍保留原始占位符;上一页和下一页按钮的翻页行为、首尾页禁用状态仍由数据列表自动控制。
在属性检查器中开启「滚动模式」后,数据列表会一次生成全部条目并在组件内容区纵向滚动,同时隐藏分页模板并使用滚动条模板。滚动条模板的画布宽度决定预留宽度,轨道决定滑块移动范围,滑块高度作为运行时自动伸缩的最小高度。关闭开关即可恢复按列数与行数分页;旧界面未设置该属性时继续使用分页模式。
内容来源可以直接从下拉列表选择,也可以把占位符与固定文字组合填写。没有进入过模板子页面的旧数据列表继续使用原有外观,不需要迁移。

点击动作
文字、图片和按钮可以配置点击动作。动作在预览和玩家端执行,设计画布中不会触发。数据列表项点击
选中数据列表,在检查器的「列表项点击」中设置动作。选择「调用扩展方法…」后,选择已安装扩展的方法,并填写 JSON 参数,例如:{{item.id}} 读取 id,{{item.profile.score}} 读取嵌套字段,{{item.index}} 是整个列表中从 1 开始的序号,{{item}} 可传入完整条目。参数中的字段路径直接对应数据源,不经过标题、副文字或图片字段映射。
完整占位符会保留数字、布尔值、对象和数组类型;与固定文字拼接时得到字符串。缺失字段的完整占位符得到 null。参数必须是 JSON 对象,无效时不会调用扩展;留空则使用空参数。
三种布局、自定义条目模板、分页和滚动模式均支持列表项动作,也可以使用 Tab 聚焦后按 Enter 或空格触发。未绑定动作的旧列表保持只读,翻页和空白占位格不会触发条目动作。
悬停与点击音效
选中可交互元素,在右侧检查器的「交互音效」或「事件 → 交互音效」中分别选择 悬停音效 和 点击音效。普通按钮、带点击动作或扩展点击订阅的文字与图片,以及页签、下拉框、开关、数据列表、CG 画廊等复合控件都可以提供声音反馈。- 悬停音效只响应鼠标真正进入可操作项,触摸不会误播;
- 点击音效在按钮或动作成功触发时播放;开关类控件使用独立的切换音效;
- 复合控件只在内部真实可操作的按钮、卡片或分页项上反馈,不会让整个容器重复播放;
- 可以从项目 BGM、音效或语音资源中选择,界面反馈通常建议使用短而轻的音效;
- 在「预览」视图中检查音量、触发范围和连续操作时的节奏。

界面与流程
| 动作 | 说明 |
|---|---|
| 关闭当前界面 | 关闭当前可视化 UI;模态界面关闭后剧本继续 |
| 打开另一个界面 | 打开项目或扩展中的另一份可视化 UI |
| 开始新游戏 | 从项目入口开始 |
| 继续最近存档 | 读取最近一次可继续的进度 |
| 返回标题 | 打开当前项目绑定的标题界面 |
| 退出游戏 | 关闭桌面版游戏 |
阅读控制
v1.9.0 新增
| 动作 | 说明 |
|---|---|
| 进入跳过模式 | 开始按项目设置的「全部 / 已读」规则跳过对白 |
| 进入自动模式 | 开始自动推进对白 |
| 隐藏对话框 | 临时隐藏对话框;玩家再次点击游戏画面后恢复 |
系统界面
| 动作 | 说明 |
|---|---|
| 打开存档 / 读档 | 打开当前绑定的存档或读档界面 |
| 打开设置 | 打开当前绑定的设置界面 |
| 打开历史记录 | 打开当前绑定的历史界面 |
| 打开鉴赏 | 打开当前绑定的鉴赏界面 |
存档与设置
| 动作 | 说明 |
|---|---|
| 快速保存 / 快速读取 | 操作快速存档 |
| 保存 / 读取指定槽位 | 对固定槽位执行存读档 |
| 重置设置 | 恢复游戏设置默认值 |
扩展方法
选择扩展方法后,可以附带 JSON 参数。参数结构必须符合扩展方法声明的 Schema。系统插槽还是直接界面
打开标题、存读档、设置、历史和鉴赏时,优先使用对应的系统动作。系统动作会跟随项目当前绑定;以后替换界面,不需要逐个修改按钮。 只有在明确要打开某一份具体界面时,才使用「打开另一个界面」。系统绑定的完整说明见默认游戏壳和系统插槽。项目数据与外部链接
数据列表既可连接扩展数据,也可选择项目数据集合;需要嵌套数据时检查绑定的子字段与列表结构。先在数据集合准备至少两条不同内容,再绑定条目中的文字与图片,验证当前条目、详情和分页,避免所有行都固定显示同一条记录。 文字可绑定只读系统变量{{加载百分比}}% 显示资源加载进度,范围为 0–100,不写入存档。按钮新增「打开外部链接」系统动作,只接受完整 HTTP/HTTPS 地址,详情见打开外部链接。
游戏语言与存档整理动作
v2.5.0 新增
{{当前说话人}},显示当前对白的人名,旁白为空;不应把它当作角色 ID。数据列表项点击与模板参数沿用本页的 {{item...}} 规则,先用两个不同条目检查真实传参。
