骑马与砍杀2:霸主 另一个音乐系统(战斗音乐模组)

骑马与砍杀2:霸主 另一个音乐系统(战斗音乐模组)

自适应战斗音乐,实时读取战斗数据——兵力规模、伤亡、势头、结果——并分阶段配乐。208首精心挑选的曲目赋予每个国家独特的风格,外加各国专属的VS主题曲。适用于野战、攻城和海战、竞技场、菜单和地图。不是对原生音乐的“升级”——而是一套不同的系统。首批更

[center][color=#d4d4d8][size=6][b]AMS — 另一个音乐系统 / 战斗音乐模组[/b][/size]

[i]为《骑马与砍杀 II:霸主》打造的自适应战斗音乐。[/i][/color][/center]

[center][/center]

[color=#d4d4d8][img]https://staticdelivery.nexusmods.com/mods/3174/images/12189/12189-1784449837-982826935.png[/img][/color]

[color=#d4d4d8][size=5][b]这是什么[/b][/size]

AMS([b]另一个音乐系统[/b])用自己的自适应引擎替换了游戏音乐。音乐并非随机播放——它会实时读取战斗状态并随之变化:兵力规模、伤亡、势头、最终结果。目标是让配乐跟随战斗的走势。

[b]本模组并不声称改进了游戏原版音乐。[/b] 它是一个[i]不同[/i]的系统,由作者作为一个小型测试项目构建——是更宏大音效设计任务中的一个独立练习。它只是实现自适应战斗音乐的一种方式,而不是原生音乐的“更好”版本。请把它当作一种替代方案,而非升级。

本模组不修改引擎(不使用 Harmony)。它只读取战斗状态,并通过独立的播放器播放自己的音频,因此对存档安全且兼容性广泛。

[i]这是作者的第一个模组。[/i][/color]

[size=5][b]⚠ 必需 — 安装前请阅读[/b][/size]

[b]1. 安装 BLSE 并通过它启动游戏。[/b] 本模组使用外部音频 库(NAudio),原生启动器无法加载它们——游戏会在进入主菜单前 崩溃。使用 BLSE 一切正常。BLSE: https://www.nexusmods.com/mountandblade2bannerlord/mods/1

[b]2. 安装 MCM(模组配置菜单),选择适合你游戏版本的最新版本。[/b] 模组的设置位于其中。MCM 还需要 Harmony、ButterLib 和 UIExtenderEx。

[b]3. 从 Files 标签页下载两个必需文件:[/b] [list] [][b]BattleMusicMod (AMS) — BASE[/b] — 模组本体(音乐逻辑)。没有它 一切都无法运行。[/] [][b]AMS Music[/b] — 音乐合集。没有它模组仍能运行,但没有曲目 可播放,你将听不到任何声音。[/] [/list](第三个文件 [b]AMS Cutter[/b] 是可选的——一个用于将自己 mp3 切割成循环集的工具。你不需要它来游玩。)

[b]4. 在音频设置中将游戏自带音乐调至 0[/b]——本模组是替换 而非叠加。

[b]加载顺序:[/b] MCM 及其依赖项必须加载在本模组之上。

[quote]兼容 1.3.13 和 1.4.7。很可能也兼容其他版本,但尚未测试[/quote]

[center][size=5][b]视频[/b][/size]

[b]预告片——模组音乐下的战斗[/b]:[url=ССЫЛКА][/url][url=https://youtu.be/laBZnx5OGsY]点此观看[/url] 简要展示了音乐如何跟随一场战斗经历各个阶段。 [youtube]laBZnx5OGsY[/youtube]

[b]斯特吉亚——完整曲目合集[/b]:[url=ССЫЛКА][/url][url=https://youtu.be/mmTY2uABkyY]点此观看[/url] 模组中所有斯特吉亚作品,连续播放。 [youtube]mmTY2uABkyY[/youtube] [/center]

[color=#d4d4d8][size=5][b]音乐[/b][/size]

所有曲目都是[b]先生成再按国家逐一挑选[/b]的,考量音色、质量和契合度。重点是赋予每个王国在战斗中可辨识的特色。

[b]总共 208 首作品[/b](不计游戏原生音乐):[/color] [list] [][color=#d4d4d8]100 个阵营战斗集[/color][/] [][color=#d4d4d8]88 个“国家对国家”(VS)集,覆盖 36 对组合[/color][/] [][color=#d4d4d8]20 个氛围集(间歇、暂停、战后、世界地图)[/color][/] [/list][color=#d4d4d8]每个“集”都是一首完整作品——引子、循环部分、尾声——而非单个文件。

[size=4][b]你实际能听到多少种独特的战斗组合[/b][/size]

一场战斗会叠加 A 方曲目、B 方曲目、一首 VS 曲目和一个氛围底音,因此真正的多样性远高于文件数量。组合计算:[/color] [list] [][color=#d4d4d8][b]一个国家 vs 某个特定国家[/b] — 数千种独特音景[/color][/] [][color=#d4d4d8][b]一个国家 vs 所有国家[/b](包括镜像对战)— 数万种[/color][/] [][color=#d4d4d8][b]所有国家 vs 所有国家[/b] — 数十万种[/color][/] [/list][color=#d4d4d8]需要说明的是:这些是叠加组合,并非完全独立的作品。氛围层和 VS 层是在一场战斗的特色[i]之内[/i]增加变化,而非每次都播放全新曲目。即便只计算阵营主题配对,严格的最小值也有数千种。

[size=5][b]战斗中的音乐机制[/b][/size]

[img]https://staticdelivery.nexusmods.com/mods/3174/images/12189/12189-1784449919-1392644158.png[/img]

每场战斗按阶段配乐,由[b]全军(含预备队)的真实伤亡[/b]驱动,而不仅仅是当前在场上的部队。[/color] [list] [][color=#d4d4d8][b]阶段 0 — 布阵。[/b] 静默,随后在军队集结时播放平静的氛围音乐。[/color][/] [][color=#d4d4d8][b]阶段 1 — 开战。[/b] 当两军接战(或首次见血)时,全军规模较大一方的主 题曲响起。[/color][/] [][color=#d4d4d8][b]阶段 2 — 对峙。[/b] 一旦双方都有伤亡,播放专用的“X vs Y”曲目。如果某对 组合没有对应曲集,则两个国家的主题曲交替播放。[/color][/] [][color=#d4d4d8][b]阶段 3 — 压制。[/b] 当一方损失明显多于另一方时,其主题曲通过长 交叉渐变升起。如果战局趋于均衡,音乐回到对峙状态;如果局势逆转,则切换到另一方。[/color][/] [][color=#d4d4d8][b]阶段 4 — 结局。[/b] 根据游戏的判定,播放胜者的尾声,随后是短暂的 静默和战后的氛围收尾。[/color][/] [][color=#d4d4d8][b]冲击阶段[/b](可选,默认关闭)——一场压倒性、近乎零代价的 屠杀会播放震惊的氛围音乐,而非胜利主题。[/color][/] [/list][color=#d4d4d8]突发伤害峰值(一次漂亮的骑兵冲锋、一轮齐射)会为造成伤害的一方触发短促的音乐冲击。

[size=5][b]战场之外[/b][/size][/color] [list] [][color=#d4d4d8][b]主菜单[/b] — 完整的国家作品。[/color][/] [][color=#d4d4d8][b]世界地图[/b] — 偶尔的氛围间奏。[/color][/] [][color=#d4d4d8][b]竞技场[/b] — 城镇文化的主题曲,混合“你对战城镇”。[/color][/] [][color=#d4d4d8][b]海战[/b](War Sails)——同样的阶段系统在水上运行。[/color][/] [][color=#d4d4d8][b]暂停[/b] — 战斗音乐轻柔地过渡到氛围乐,取消暂停时恢复。[/color][/] [][color=#d4d4d8][b]原声音乐[/b] — 可选混入作为额外素材(比例可配置)。[/color][/] [/list][color=#d4d4d8]

[size=5][b]需求[/b][/size][/color] [list] [][color=#d4d4d8]《骑马与砍杀 II:霸主》(当前版本)[/color][/] [][color=#d4d4d8]模组配置菜单(MCM)v5+[/color][/] [][color=#d4d4d8]在游戏音频设置中,将原生音乐调至 0——本模组是替换而非叠加。[/color][/] [/list][color=#d4d4d8]

[size=5][b]安装[/b][/size][/color] [list=1] [][color=#d4d4d8]安装 MCM(模组配置菜单)。[/color][/] [][color=#d4d4d8]将模组解压到你的 Modules 文件夹:Modules\BattleMusicMod\[/color][/] [][color=#d4d4d8]在启动器中启用 Mod Configuration Menu 和 Battle Music Mod(MCM 应加载在其上)。[/color][/] [][color=#d4d4d8]启动游戏并将原生音乐设为 0。[/color][/] [][color=#d4d4d8]设置位于 选项 → 模组选项 → Battle Music Mod。[/color][/] [/list][color=#d4d4d8]

[size=5][b]⚠ 注意事项和警告[/b][/size][/color] [list] [][color=#d4d4d8][b]本模组在铁人模式中效果最佳[/b](单存档,不读档)。那里才是风险、损失和转折点发挥作用的 地方,而音乐正是为强调这些而写。在普通模式下也能正常运行;只是效果在铁人模式中最强。[/color][/] [][color=#d4d4d8][b]原生(原版)游戏音乐在首个版本中处理不正确[/b]——一些原版曲目可能 出现故障或被截断。如果这困扰你,请在设置中关闭原声音乐。模组随后 只播放自己的作品。此问题将在后续解决。[/color][/] [/list][color=#d4d4d8]

[size=5][b]添加你自己的音乐[/b][/size]

模组从 Modules\BattleMusicMod\ModuleSounds\ 内的文件夹读取 .ogg 文件:[/color] [list] [][color=#d4d4d8][b]阵营文件夹[/b](aserai, battania, khuzait, nordving, sturgia, vlandia, northern_empire, southern_empire, western_empire, bandits)——阵营战斗集。[/color][/] [][color=#d4d4d8][b]VS[/b] — “国家对国家”集(阶段 2)。[/color][/] [][color=#d4d4d8][b]ambient[/b] — 平静集(间歇、暂停、地图、战后)。[/color][/] [/list][color=#d4d4d8]每个集是一个子文件夹,如 bm_sturgia_004,包含 intro.ogg → loop_01.ogg → outro.ogg,外加可选的 loop_02.ogg / loop_03.ogg 以增加变化。[/color]

[color=#d4d4d8][size=4][b]切割工具(AMS/DMS Music Cutter)[/b][/size]

你不必手动准备循环文件。该工具能将原始 mp3 转换成现成的集(intro / loop / outro),自动寻找循环点。有两种运行方式——现成的 exe(主要工具)和纯 Python 脚本(备用)。

[b]打包的二进制文件:[/b] 压缩包中包含的 ffmpeg.exe 和 ffprobe.exe 是来自 gyan.dev 的官方 FFmpeg Windows 构建(https://www.gyan.dev/ffmpeg/builds/,release-essentials)。它们未经修改,遵循 LGPL/GPL 许可,并非我的作品——它们属于 FFmpeg 项目。exe 本身是用 PyInstaller 从开源 Python 脚本构建的;单文件 PyInstaller 构建是众所周知的杀毒软件误报触发源。完整源代码:https://github.com/viliaham/ams-music-cutter

[b]选项 1 — 现成的 exe(主要工具)[/b][/color]

[list=1] [][color=#d4d4d8]将 AMS_MusicCutter.exe 放在模组根目录(ModuleSounds 文件夹旁边),连同 ffmpeg.exe 和 ffprobe.exe(均包含在压缩包中)。[/color][/] [][color=#d4d4d8]将你的 mp3 放入正确的文件夹(见下文)。[/color][/] [][color=#d4d4d8]运行 exe。它会自动找到 ModuleSounds;如果找不到,会询问完整路径。它会从你的系统选择界面语言(或可在启动时选择英语/俄语),并在工作时显示进度。[/color][/] [][color=#d4d4d8]使用编号菜单:[1] 切割全部,[2] 仅阵营/氛围文件夹,[3] 仅 VS 文件夹,[0] 退出。[/color][/] [/list][color=#d4d4d8]

[b]选项 2 — 纯 Python 脚本(备用,无需 exe)[/b][/color]

[list=1] [][color=#d4d4d8]安装 Python 3.10+ 和 ffmpeg(ffmpeg + ffprobe 需在 PATH 中)。[/color][/] [*][color=#d4d4d8]安装循环引擎:[/color]

[code]pip install pymusiclooper[/code][/] [][color=#d4d4d8]将压缩包中的 batch_loops.py 放在模组根目录并运行,例如从 PowerShell:[/color]

[code]python batch_loops.py[/code][/*] [/list][color=#d4d4d8]

[b]选项 3 — 自行构建 exe(如果压缩包仍在审核中)[/b][/color]

[list=1] [][color=#d4d4d8]从 GitHub 下载源代码 batch_loops.py:https://github.com/viliaham/ams-music-cutter[/color][/] [][color=#d4d4d8]从官方 FFmpeg Windows 构建(gyan.dev)下载 ffmpeg.exe 和 ffprobe.exe:https://www.gyan.dev/ffmpeg/builds/ —— 选择“release-essentials”包,从其 bin 文件夹中提取 ffmpeg.exe 和 ffprobe.exe。[/color][/] [*][color=#d4d4d8]安装 PyInstaller:[/color]

[code]pip install pyinstaller[/code][/] [][color=#d4d4d8]构建 exe(一行命令):[/color]

[code]pyinstaller --onefile --console --name AMS_MusicCutter --collect-all pymusiclooper --collect-all librosa --collect-all numba --collect-all soundfile --collect-all audioread batch_loops.py[/code][/] [][color=#d4d4d8]将 ffmpeg.exe 和 ffprobe.exe 放在生成的 exe 旁边,然后像选项 1 一样运行它。[/color][/*] [/list][color=#d4d4d8]

[b]mp3 应该放在哪里[/b][/color]

[list] [][color=#d4d4d8][b]阵营战斗曲目[/b] — 将 MyTrack.mp3 放入 ModuleSounds\sturgia\(或其他阵营)。它会变成 bm_sturgia_NNN。[/color][/] [][color=#d4d4d8][b]VS(对峙)曲目[/b] — 将其放入 ModuleSounds\VS\ 并命名为类似“STvsNE 1 - Title.mp3”(两个字母 + vs + 两个字母)。缩写:BA=battania, ST=sturgia, KH=khuzait, AS=aserai, VL=vlandia, NO=nordving, NE=northern_empire, WE=western_empire, SE=southern_empire。[/color][/] [][color=#d4d4d8][b]氛围曲目[/b] — 将其放入 ModuleSounds\ambient\ 。[/color][/] [/list][color=#d4d4d8]

[b]实用信息[/b][/color]

[list] [][color=#d4d4d8]该工具只处理新的 mp3(每个文件夹保留一个 processed.txt),因此你可以在添加曲目后反复运行它。[/color][/] [][color=#d4d4d8]模组在运行时自行处理循环之间的交叉渐变和衔接——工具只需向其提供原始循环。[/color][/] [][color=#d4d4d8]要重新切割曲目:删除其 bm_..._NNN 子文件夹并从该文件夹的 processed.txt 中移除对应行,然后再次运行。[/color][/] [/list][color=#d4d4d8][size=5][b]权限[/b][/size]

你可以使用、修改和上传本模组及其工具,前提是注明原模组并链接作者页面。作者很可能不会回归活跃开发(忙于其他项目并正在求职),因此欢迎社区分支、续作和曲目合集。[/color]