可视化界面可以显示变量和扩展数据、写入变量、绑定游戏设置并执行点击动作。

界面状态与条件显示

v1.8.0 新增
界面状态用于记录当前 UI 内部的临时交互,例如当前步骤、详情是否展开或选择了哪一类内容。它只属于当前打开的界面,不进入游戏存档。 在界面文档设置中新增状态,并配置名称、类型和默认值。元素的「显示条件」可以组合判断:
  • 界面状态;
  • 剧情变量;
  • 扩展数据;
  • 已绑定的游戏设置。
条件支持相等、不等、大小比较以及布尔判断。多个条件可以组合为全部满足或任一满足。

修改状态和值

按钮动作可以设置、翻转、增减或循环切换界面状态与可写数据。例如:
  • 点击「下一步」把步骤从 1 增加到 2;
  • 点击折叠标题翻转布尔状态;
  • 点击分类按钮循环切换当前筛选值;
  • 修改剧情变量后,让另一个元素的显示条件立即重新计算。
只影响当前界面的交互使用界面状态;读档后仍需保留的数据使用剧情变量或扩展存档。

在文字中显示变量

文字内容使用双花括号插入变量:
欢迎回来,{{playerName}}
好感度:{{affection}}
玩家端会读取当前变量值,并在变量变化后更新文字。设计画布中显示的是占位效果,真实值请在预览视图或游戏运行时查看。
变量名需要和项目里的变量完全一致。变量不存在时,界面无法显示预期内容。

让玩家写入变量

「输入对话框」智能组件可以把结果写入一个可写变量,并支持:
  • 字符串、数字和布尔类型;
  • 必填校验;
  • 最大长度;
  • 数值步进;
  • 按 Esc 取消。
普通「输入框」适合临时输入或配合程序控制,本身不会自动写入剧情变量。需要无代码的数据录入时,请使用输入对话框。

绑定游戏设置

下拉、开关、滑块和勾选框可以绑定引擎设置。玩家调整控件后,值会自动保存。

滑块

  • 主音量
  • 背景音乐音量
  • 音效音量
  • 语音音量
  • 文字速度
  • 自动播放速度

下拉

  • 跳过模式:全部 / 已读

开关与勾选框

  • 进入下一句对话时停止当前语音
  • 全屏
绑定设置后,不需要再为控件配置扩展方法。制作自定义设置页时,可以直接用这些控件替换默认布局。

显示扩展数据列表

「数据列表」可以读取扩展存档中的数组,也可以直接读取扩展声明并绑定的数据集合。在属性检查器的「数据源」中选择对应条目即可。 存档数组的数据源格式为:
ext:<扩展 id>.<存档字段>
例如:
ext:my.inventory.items
对应的存档字段必须是数组。列表可以设置:
  • 网格、列表或图文列表显示模式,以及各自独立的条目模板和分页模板;
  • 标题、副标题和图片对应的字段名;
  • 列数、行数和间距;
  • 空列表文案;
  • 分页或滚动展示。
数据源下拉按「数据集合」和「扩展变量」分组。数据集合项以「扩展名 · 集合名」显示,运行时会通过该扩展在 extension.json 的 dataDependencies 中声明的逻辑别名读取集合;集合的每行记录就是一个列表项。跟随存档的玩家数据集合也可直接绑定,例如道具系统的玩家物品。 智能组件调用扩展方法时会保留当前条目的来源。支持来源写回的扩展可以据此分别处理:数据集合条目写回对应集合,扩展变量条目写回原变量,不需要同时维护两份数据。 它适合背包、任务、角色图鉴等重复数据。如果需要计算、筛选或组合复杂数据,可以在扩展程序里处理后,再用程序控制可视化界面更新元素。

自定义列表、网格、图文列表与分页模板

在设计画布中双击「数据列表」,可以进入智能组件子页面。数据列表包含五份独立模板:
  • 列表项模板:用于「列表模式」,初始包含条目背景、标题和副文字;
  • 网格项模板:用于「网格模式」,初始包含卡片背景、图片、文字栏背景、标题和副文字;
  • 图文列表项模板:用于「图文列表模式」,初始使用左图右文结构,包含条目背景、图片、标题和副文字;
  • 分页模板:三种显示模式共用,初始包含上一页按钮、页码和下一页按钮;
  • 滚动条模板:三种显示模式共用,初始包含滚动条轨道和滚动滑块。
双击时会先打开当前「显示模式」对应的条目模板;进入后仍可在左侧「自定义项」切换其他条目模板、分页模板或滚动条模板。三份条目模板分别保存,玩家端只使用当前显示模式对应的一份;分页模板和滚动条模板由三种显示模式共用。修改显示模式不会覆盖其他设计。 模板内可以继续添加、删除和调整文字、图片、矩形等基础元素。选中文本或图片后,右侧「内容来源」提供:
  • 条目标题:{{item.title}},读取检查器中设置的标题字段;
  • 条目副文字:{{item.subtitle}},读取副标题字段;
  • 条目图片:{{item.image}},读取图片字段;
  • 条目序号:{{item.index}},从 1 开始编号;
  • 已绑定数据集合或扩展变量的其他子字段,例如 {{item.rarity}}、{{item.profile.score}}。
分页模板中的文本还可以使用 {{pagination.current}}(当前页码)和 {{pagination.total}}(总页数)。设计画布会用 1 / 3 预览分页效果,保存时仍保留原始占位符;上一页和下一页按钮的翻页行为、首尾页禁用状态仍由数据列表自动控制。 在属性检查器中开启「滚动模式」后,数据列表会一次生成全部条目并在组件内容区纵向滚动,同时隐藏分页模板并使用滚动条模板。滚动条模板的画布宽度决定预留宽度,轨道决定滑块移动范围,滑块高度作为运行时自动伸缩的最小高度。关闭开关即可恢复按列数与行数分页;旧界面未设置该属性时继续使用分页模式。 内容来源可以直接从下拉列表选择,也可以把占位符与固定文字组合填写。没有进入过模板子页面的旧数据列表继续使用原有外观,不需要迁移。
LetsGal Studio 数据列表智能组件与属性检查器

点击动作

文字、图片和按钮可以配置点击动作。动作在预览和玩家端执行,设计画布中不会触发。

数据列表项点击

选中数据列表,在检查器的「列表项点击」中设置动作。选择「调用扩展方法…」后,选择已安装扩展的方法,并填写 JSON 参数,例如:
{"id":"{{item.id}}","amount":1,"position":"{{item.index}}"}
点击时会读取当前条目的真实字段。{{item.id}} 读取 id,{{item.profile.score}} 读取嵌套字段,{{item.index}} 是整个列表中从 1 开始的序号,{{item}} 可传入完整条目。参数中的字段路径直接对应数据源,不经过标题、副文字或图片字段映射。 完整占位符会保留数字、布尔值、对象和数组类型;与固定文字拼接时得到字符串。缺失字段的完整占位符得到 null。参数必须是 JSON 对象,无效时不会调用扩展;留空则使用空参数。 三种布局、自定义条目模板、分页和滚动模式均支持列表项动作,也可以使用 Tab 聚焦后按 Enter 或空格触发。未绑定动作的旧列表保持只读,翻页和空白占位格不会触发条目动作。

悬停与点击音效

选中可交互元素,在右侧检查器的「交互音效」或「事件 → 交互音效」中分别选择 悬停音效 和 点击音效。普通按钮、带点击动作或扩展点击订阅的文字与图片,以及页签、下拉框、开关、数据列表、CG 画廊等复合控件都可以提供声音反馈。
  • 悬停音效只响应鼠标真正进入可操作项,触摸不会误播;
  • 点击音效在按钮或动作成功触发时播放;开关类控件使用独立的切换音效;
  • 复合控件只在内部真实可操作的按钮、卡片或分页项上反馈,不会让整个容器重复播放;
  • 可以从项目 BGM、音效或语音资源中选择,界面反馈通常建议使用短而轻的音效;
  • 在「预览」视图中检查音量、触发范围和连续操作时的节奏。
交互音效会参与资源引用、文件路径迁移和成品构建,并叠加项目音效基础音量以及玩家端音效、主音量设置。
LetsGal Studio 按钮样式与点击动作配置

界面与流程

动作说明
关闭当前界面关闭当前可视化 UI;模态界面关闭后剧本继续
打开另一个界面打开项目或扩展中的另一份可视化 UI
开始新游戏从项目入口开始
继续最近存档读取最近一次可继续的进度
返回标题打开当前项目绑定的标题界面
退出游戏关闭桌面版游戏

阅读控制

v1.9.0 新增
动作说明
进入跳过模式开始按项目设置的「全部 / 已读」规则跳过对白
进入自动模式开始自动推进对白
隐藏对话框临时隐藏对话框;玩家再次点击游戏画面后恢复
阅读控制适合制作自定义对话工具栏。动作本身只负责进入对应状态;退出跳过或自动仍由玩家输入、当前工具栏和项目输入按键共同控制。

系统界面

动作说明
打开存档 / 读档打开当前绑定的存档或读档界面
打开设置打开当前绑定的设置界面
打开历史记录打开当前绑定的历史界面
打开鉴赏打开当前绑定的鉴赏界面

存档与设置

动作说明
快速保存 / 快速读取操作快速存档
保存 / 读取指定槽位对固定槽位执行存读档
重置设置恢复游戏设置默认值

扩展方法

选择扩展方法后,可以附带 JSON 参数。参数结构必须符合扩展方法声明的 Schema。
「重置设置」「读取存档」和「退出游戏」会立即影响玩家当前状态。正式使用前请在预览和打包版本中验证按钮位置、确认流程与参数。

系统插槽还是直接界面

打开标题、存读档、设置、历史和鉴赏时,优先使用对应的系统动作。系统动作会跟随项目当前绑定;以后替换界面,不需要逐个修改按钮。 只有在明确要打开某一份具体界面时,才使用「打开另一个界面」。系统绑定的完整说明见默认游戏壳和系统插槽。

项目数据与外部链接

数据列表既可连接扩展数据,也可选择项目数据集合;需要嵌套数据时检查绑定的子字段与列表结构。先在数据集合准备至少两条不同内容,再绑定条目中的文字与图片,验证当前条目、详情和分页,避免所有行都固定显示同一条记录。 文字可绑定只读系统变量 {{加载百分比}}% 显示资源加载进度,范围为 0–100,不写入存档。按钮新增「打开外部链接」系统动作,只接受完整 HTTP/HTTPS 地址,详情见打开外部链接。

游戏语言与存档整理动作

v2.5.0 新增
按钮的「点击时」可选择「切换游戏显示语言」,然后指定项目支持的语言。先在译稿校对台维护译文;按钮不会自动翻译原文。 存档界面可使用删除、清空和移动动作。移动到已有存档的目标时交换两槽;删除与清空必须让玩家明确确认,具体实现与返回值见存档 API。 文字中可绑定 {{当前说话人}},显示当前对白的人名,旁白为空;不应把它当作角色 ID。数据列表项点击与模板参数沿用本页的 {{item...}} 规则,先用两个不同条目检查真实传参。
S35:LetsGal Studio 2.5.0 按钮切换游戏显示语言
S35 · 按钮切换游戏显示语言