舞台与声音
这一页讲两件事:舞台模式,也就是像视觉小说一样的全屏画面;以及让这个画面更完整的两个内置插件,场景舞台和配乐。
| 插件 | 一句话 |
|---|---|
场景舞台(scene-stage) | 记录当前场景、昼夜和在场角色,供舞台使用 |
配乐(soundtrack) | 按场景和情绪,播放世界自带的背景音乐 |
舞台模式
舞台模式把一局游戏变成全屏的视觉小说画面。

你会看到:
- 背景:当前场景的图片,白天和夜晚可以不同。
- 立绘:在场角色站在背景前,正在说话的角色会被突出。
- 对话框:故事正文一段一段显示,说话人的名字标在旁边(来自叙事写下的段落,故事写完后显示)。点击画面继续下一段。
- 选项:需要你决定时,对话框下方出现可选的回应,也可以点“✎ 自己输入…”写自己的话。
画面上会显示当前场景的名字。一排小按钮可以打开“履历”(回看对话)、开关“自动播放”、进入“全屏舞台”。想回到文字界面,点“退出舞台”。
怎么切换
游戏界面顶部有两个并列的按钮:“文本”和“舞台”。点“舞台”进入舞台模式,点“文本”回到文字界面。切换不会影响存档,随时可以来回换。
世界要准备什么
舞台模式本身不需要额外设置,但画面是否完整,取决于世界带了什么:
| 世界带了 | 舞台上的效果 | 怎么做 |
|---|---|---|
| 场景图片 | 故事走到哪个地点,背景就换成哪张图 | 给世界配场景图 |
| 角色立绘 | 角色站在场景前 | 给角色配立绘 |
| 都没有 | 舞台仍能用,但背景退回世界封面,没有立绘 | - |
场景图片和在场角色的数据由下面介绍的场景舞台提供。想让舞台显示场景背景和在场角色,请在准备页启用它;没有它仍可在舞台里阅读故事。
场景舞台(scene-stage)
让舞台知道“现在在哪里、是白天还是夜晚、谁在场”。
你会看到什么
- 舞台上的背景和立绘都来自它。说话人的名牌来自叙事写下的故事段落,不需要它。
- 聊天视图的对白段落会显示说话人名牌,有头像时一同显示头像;没有使用分段故事时仍显示普通正文。
- 右侧有一个“当前场景”标签页,里面是只读的“场景”面板(场景名、白天或夜晚、背景来自哪里)和“在场角色”面板。在场角色面板还会写出每个角色为什么被选中,例如“玩家提到”“在场景中”“有角色档案”“刚刚活跃”。
- 地点在世界的场景图里找不到时,背景显示为“无背景”,舞台改用世界封面。
- 故事换地点时写入的
cues.scene决定地点,非空cues.present决定谁在场;更新随故事一起提交。继续在场的角色保留站位与视觉变体,新角色从左到右淡入空位,不在名单中的角色随提交立即离场,不做淡出。最多显示四名演员,焦点跟随最后一个解析成功且在台上的对白或动作说话者。 - 当前视角角色不上台,同一玩家席位绑定的其他角色仍可出现。换地点时先清空旧演员,再应用新的在场名单;同一地点的昼夜变化保留演员。故事没有在场名单时保留已有演员,换地点除外;尚无演员记录时沿用说话人选择。
什么时候启用
可选插件。内置的“对话模式”玩法包包含它;遥风学园的“学园恋爱 · 视觉小说”玩法包也包含它。
可以调什么
| 名称 | 作用 | 默认 |
|---|---|---|
| 活跃说话人数 | 每回合推荐几名主要参与对话的 NPC,可选 1 到 4;不限制故事里能写到的人数 | 2 |
世界作者可以在 world.yaml 的 pluginSettings.scene-stage.activeSpeakerCount 里给这个世界换一个默认值。
世界作者可以预置什么
| 内容 | 文件 | 说明 |
|---|---|---|
| 场景背景图片 | media/scenes/ | 只放图片文件,索引在导入时生成 |
| 场景注册表 | media/scenes.registry.json | 不要手写,由脚本生成,见下面的链接 |
注意
- 开局时,如果故事一直没有说明场景,舞台会先用场景注册表里的第一个场景,所以不会一上来就是空白。
- 地点按名字匹配,写法和例子见名字决定背景会不会换。地点名写得太短(比如只写一个“港”字),而多个场景都含这个字时,无法选出唯一背景,请写完整。
- 地点未变时可省略
cues.scene。cues.scene不带昼夜信息,所以换场保留当前的白天或夜晚。昼夜变化仍用scene.set。stage.direction可调整站位、焦点与视觉变体。同回合的显式事件在故事提示之后处理,覆盖相应结果;事件预览仍可用,故事提示在提交后显示。 - 缺少故事或相关
cues时插件成功跳过并记录原因,不会强制启用叙事插件。
配乐(soundtrack)
播放世界自带的背景音乐。故事换了地点,或者气氛明显变了(比如进入战斗),音乐会跟着换。
你会看到什么
没有面板。游戏界面顶部的喇叭按钮可以“关闭背景音乐”或“播放背景音乐”。音乐的切换有淡入淡出。
什么时候启用
可选插件,没有被任何内置玩法包选中。需要在准备页的插件列表里自己勾选。内置世界目前都没有带音乐,所以只有安装或制作了带音乐的世界,它才有声音。
可以调什么
插件本身没有设置项。音乐的开关和音量在应用的设置里:
| 名称 | 作用 | 备注 |
|---|---|---|
| 背景音乐 | 游玩时是否播放背景音乐 | 与游戏界面顶部的喇叭按钮是同一个开关 |
| 音乐音量 | 0 到 100 | 播放旁白语音时,音乐会自动压低 |
世界作者可以预置什么
| 内容 | 文件 | 说明 |
|---|---|---|
| 音乐文件 | media/music/ | .mp3 或 .wav,只放文件 |
| 曲目表 | media/music.yaml | 写每首曲子对应的文件、场景、情绪,以及哪一首是主题曲 |
曲目表里,情绪的名字由你自己定,并用顶层的 moods 说明每种情绪什么时候适用。故事在氛围变化时用 cues.mood 写情绪,未变时省略,配乐忽略大小写和空白匹配清单,并保留清单里的原名;未匹配的情绪不改变当前音乐,会记录原因。一个最小的例子:
schemaVersion: 1
registryId: music-registry
tracks:
- id: tavern
file: tavern.mp3
scenes: [歪角鹿酒馆]
- id: theme
file: theme.mp3
theme: true选曲时,曲目表中靠前的曲目优先。按下面的顺序查找,选用第一首匹配的曲目:
- 既符合当前情绪、又属于当前场景的曲目。
- 符合当前情绪、不限场景的曲目。
- 当前场景自己的曲目。
- 标为
theme: true的主题曲。 - 没有合适的就安静。
情绪写成 silence 表示停止音乐。所有曲目都没有写情绪时,音乐只跟随场景和主题曲。完整的写法见插件自述。
搭配
配乐直接读取故事的 cues.scene 和 cues.mood,沿用未提供提示的当前地点或情绪,不需要场景舞台也能跟随地点选曲,更新随故事一起提交。没有故事或相关提示、状态没有变化、世界没有曲目表时成功跳过并记录原因。
不以段落作答的故事仍可发 music.cue;世界和插件仍可用 scene.set 改变音乐场景。同回合显式事件在故事提示之后处理,覆盖对应的情绪或场景。故事提示不做提交前预览,原有事件预览继续可用。
接下来
群像的名牌与在场
群像对话的演员台词和动作都由故事补上规范名字,舞台仍只消费公开的段落与 cues 显示名牌。失败或沉默演员仍可在场,不把失败解释为离开。舞台的活跃说话人数控制场景显著性,不能代替编排面板的执行名额。未启用舞台时仍可委托,场景候选由对话叙事规划器推断。