音频设计
音频是让世界变得真实的最快方式。一个带有雨声和远处心跳音效的生存惊悚游戏,感觉和只有文字的截然不同
关于曲目类型(BGM、SFX、Ambient)和设置基础,请参阅入门指南:视觉与音频。
音频如何被触发
有三种方式播放音频,从最简单到最灵活。
1. 播放列表:设置后就不用管
BGM 播放列表在玩家进入世界时自动播放一系列曲目。大多数世界只需要这个。
在编辑器的音频部分配置:
| 设置 | 功能 |
|---|---|
| tracks | 要播放的 BGM 曲目及顺序 |
| playMode | loop(从头循环)、shuffle(随机)或 sequential(全部播完再重复) |
| autoPlay | 世界加载时立即开始 |
| waitForFirstMessage | 等玩家发送第一条消息后再开始——适合有角色创建或开场动画的世界 |
| gapSeconds(0-30) | 曲目之间的静音间隔,营造「换唱片」的感觉 |
最简配置
上传一个音频文件。创建一个 BGM 曲目。将其加入播放列表并设 autoPlay: true。搞定——玩家从开始那一刻就能听到音乐。
2. 条件 BGM:音乐跟随故事
条件 BGM 是音频系统最有趣的部分。你定义条件,一般是变量,当变量满足时自动切换曲目——不需要 AI 参与。
可以把它想象成编程一段响应游戏状态的配乐:在酒馆时播放酒馆音乐,在战斗中播放战斗音乐,其他时候播放探索音乐。
每个条件 BGM 条目包含:
| 设置 | 功能 |
|---|---|
| triggerType | 监视什么:variable(变量)、keyword / ai-keyword(文本)、turn-count 或 session-start |
| conditions | 变量检查(使用 variable 触发器时) |
| targetTrackId | 切换到哪首曲目 |
| priority | 多个条件同时匹配时数字越大优先 |
| fadeInDuration / fadeOutDuration | 过渡速度(秒) |
| stopPreviousBGM | 通常为 true——除非你想叠加多首曲目 |
| fallback | 条件不再满足时播放什么:"default"(回到播放列表)、"previous"(回到上一首)或指定 trackId |
示例:战斗曲目切换
两首 BGM 曲目一个条件 BGM 条目监视状态变量等不等于战斗,当ai回复后发出指令,条件为 true 时,引擎在 0.5 秒内渐变到战斗音乐。当玩家离开竞技场,fallback: "default" 回到探索音乐。
玩家在战斗开始和结束时听到平滑的音乐过渡,AI 不需要记住任何关于音频的事。
3. AI 指令:让叙述者为配乐打拍子
这是比较难用的方式,更推荐灵活使用上方的两张方式,已经完全足够了,实际上,在正常回复是的时候,AI可以在回复中嵌入音频命令,使用与变量指令相同的方括号语法,
可用指令:
| 指令 | 功能 |
|---|---|
[audio: trackId play] | 播放曲目 |
[audio: trackId stop] | 停止曲目 |
[audio: trackId crossfade 2.0] | 在 2 秒内从当前 BGM 渐变到此曲目 |
[audio: trackId volume 0.5] | 不停止地改变音量 |
[audio: trackId play chain:nextTrackId] | 播放此曲目,结束时自动播放下一首 |
chain 指令特别适合过渡:播放一个战争号角 SFX,号角结束时无缝切入战斗 BGM。比两条单独的指令更流畅。
延伸阅读
完整音频 schema 和播放列表配置 → World Spec: Audio
