前置 Mod
详情
面向 SMAPI 的音频 API 与音频管理,完全不使用 HarmonyLib。
为你的模组添加自定义音乐!
这个模组做什么?
SAAT 是一个框架,旨在在《星露谷物语》中添加、管理和修改音轨。此外,它还计划在日后改进音频引擎,因为 XNA / MonoGame 的音频引擎在内存管理和支持方面有所欠缺。它的目标是无需 Harmony。
你可以从 Github 上的文档 查看如何添加自定义音轨的示例
v1.1.2 新增:
- 修复了一个会导致警告消息“Could not find a CueDefinition with the name 'title_day'”的 bug
v1.1.1 新增:
- 一项故障安全功能,可在 cue 被错误调用 / 未找到时防止游戏崩溃。
-- 发生失败时,会播放一个“Defaulting Cue”。这个 cue 播放静音。
- 强制将音轨添加到点唱机的能力。参见“addtojukebox”命令。
-- 这是为了覆盖迁移情况。从 Custom Music 迁移到 SAAT 的模组,由于 CM 需要使用前缀 (cm:) 表示法,其所有自定义音轨都会从点唱机播放列表中移除。SAAT 会验证点唱机中的所有音轨,并移除缺失的音轨以防止。
v1.1.0 新增:
- 添加音轨设置。
-- 现在你可以在 tracks.json 中设置某个条目以持续循环。
-- 现在你可以设置某个条目,使其在创建新游戏时立即将自己添加到点唱机。
-
命令“setdebug”已重命名为“audiodebug”,因为它极有可能与其他模组冲突。
-
命令“gen_track_json”已重命名为“tracktemplate”。
-
命令“audio_allocs”已重命名为“audioallocs”。
-
audioallocs 命令进行了一些格式修复。
-
audioallocs 命令现在有一个可选参数。添加音轨 id 将提供特定音轨的更多详细信息。
-
进行了一些内部重构。
-
文档更新。
当前功能:
允许将全新的音乐和音效添加到《星露谷物语》中
允许将音乐添加到点唱机中。
尚未实现 / 即将推出的功能:
音轨替换 / 覆盖
任何人都可以用另一条音轨替换现有音轨,以非破坏性方式覆盖原版资源。
音频信号处理(APS 或 DPS)
即将推出的功能,将允许音频进行低通、高通、变调、效果等处理,而无需创建另一条音轨。
恰当的内存管理
这将是该 API 的主要功能。目前,《星露谷物语》依赖 XNA / MonoGame 来处理音频的内存管理。其内存管理设计不佳,因为它要么全部加载,要么完全不加载。通常,音频会分块载入内存,而不是一次性全部保留。这会造成非常大的内存消耗。
例如,冬季音乐音轨会在游戏开始时加载到内存中。即使当前是春季。你在游戏四分之三的时间里都不会听到该音轨,但它仍然在消耗内存。
注意:API / 模组的这一部分将用 C 编写。为了确保性能,必须使用原生代码。
打包音频格式
结合恰当的内存管理,音频将按每个模组为单位压缩为二进制文件。这可以实现更快的加载 / 卸载 / 重新加载操作。
它不是必需的,但它会优化性能。尤其是对于较大的音频文件。
打包音频格式工具包
为了协助并鼓励内容创作者针对性能优化音频,将提供一款工具来创建上述打包音频格式。

