SAAT - 音频 API 和工具包

创作者: ZeroMetres
已更新:2022-02-01 10:54:33
26KB

关于此 MOD

音频API和SMAPI的音频管理,无需Harmony。添加自定义音轨。
SMAPI 的音频 API 和音频管理,无需使用 HarmonyLib。
为您的模组添加自定义音乐!


这个模组有什么作用?

SAAT 是一个用于在《星露谷物语》中添加、管理和修改音轨的框架。此外,由于 XNA/MonoGame 的音频引擎在内存管理和支持方面表现不佳,SAAT 计划在未来改进其音频引擎。SAAT 的目标是消除和声。

您可以从Github 上的文档


v1.1.2 中的新功能:
- 修复了导致警告消息“无法找到名为‘title_day’的 CueDefinition”的错误

v1.1.1 中的新功能:
- 故障安全功能可防止在错误调用/未找到提示时游戏崩溃。
-- 失败时,会播放“Defaulting Cue”(默认提示)。此提示播放静音。
- 强制将音轨添加到点唱机的功能。请参阅“addtojukebox”命令。
-- 这是为了涵盖迁移。由于需要前缀 (cm:) 符号 CM,从自定义音乐迁移到 SAAT 的模组的所有自定义曲目将从点唱机播放列表中移除。SAAT 会验证点唱机中的所有曲目,并移除缺失的曲目,以防止出现问题。

v1.1.0 中的新功能:
- 添加音轨设置。
-- 您现在可以在 tracks.json 中设置一个条目来连续循环。
-- 现在您可以设置一个条目,当创建新游戏时立即将其添加到点唱机中。
- 命令“setdebug”已重命名为“audiodebug”,因为很有可能与其他模块发生冲突。
- 命令“gen_track_json”已重命名为“tracktemplate”。
- 命令“audio_allocs”已重命名为“audioallocs”。
- audioallocs 命令已进行一些格式修复。
- audioallocs 命令现在包含一个可选参数。添加轨道 ID 将提供特定轨道的更多详细信息。
- 进行了一些内部重组。
- 文档更新。

当前功能:
允许将全新的音乐和音效添加到星露谷
允许将音乐添加到点唱机中。

尚未实现/即将推出的功能:


音轨替换/覆盖
个人可以用另一个音轨替换现有的音轨,以不可破坏的方式覆盖原始资产。

音频信号处理(APS或DPS)


即将推出的功能将允许音频进行低通、高通、改变音调、效果等,而无需创建另一个音轨。

适当的内存管理

这将成为 API 的主要功能。目前,《星露谷物语》依赖 XNA/MonoGame 来处理音频的内存管理。这种内存管理设计不佳,要么全部加载,要么全部不加载。通常情况下,音频会被分块加载到内存中,而不是一次性加载所有音频。这会导致内存消耗非常大。

比如,冬季音乐曲目在游戏开始时就会加载到内存中。即使是春天,在游戏进行到四分之三的时候,你都听不到这段音轨,但它仍然在消耗内存。

注意:此 API / Mod 子集将用 C 编写。需要 Native 以确保性能。

打包音频格式

结合适当的内存管理,音频将按模块压缩为二进制文件。这将加快加载/卸载/重新加载的速度。

它将不需要,但它会优化性能。特别是对于较大的音频文件。

打包音频格式工具包

为了协助和鼓励内容创作者优化音频性能,将提供一个工具来创建上述打包音频格式。

源代码和文档

使用 Xmod 解锁 星露谷物语 的全部潜力 — 今天就探索这些顶级 MOD!