
战斗音乐渐强
让玩家在与敌对生物和玩家战斗时添加背景音乐的模组以及其他功能。
战斗音乐渐强
Minecraft 1.21.x · 客户端侧 自适应战斗音乐 · 自定义音乐包 · 游戏内编辑器 · 可选的服务器同步 · 支持怪物战斗音乐包格式
作者: MickDev
这个模组实际上做了什么(底层机制)
战斗音乐渐强并非单一循环音轨。它每秒钟都会:
- 扫描你周围的世界(敌对生物、Boss、PvP、生命值、生物群系、结构)。
- 评分战斗强度并选取一种氛围(探索 → 紧张 → 战斗 → 激烈 → Boss → PvP → 致命危险)。
- 处理优先级,确保真正的危险始终压倒环境装饰音。
- 选择已启用的音乐包中最匹配的音轨(JSON 规则 + 条件)。
- 以可配置的淡入/淡出在音轨之间交叉淡变。
- 静音原版 Minecraft 音乐,同时播放你的自定义音乐(可选)。
- 战斗结束时播放胜利音效(可选)。
所有音频仅在你的客户端上运行。其他玩家听到自己的音乐(或原版音乐)。服务器永远不需要你的 .ogg 文件。
功能一览
| 功能 | 详情 |
|---|---|
| 音轨氛围 | 探索、紧张、轻度战斗、激烈战斗、Boss、PvP、胜利、致命危险、环境、菜单(标题画面)、脚本触发 |
| 音乐包 | 位于 battlemusiccrescendo_musicpacks/ 的文件夹包 — 像资源包一样启用它们 |
| 包编辑器 | 创建、编辑、预览、导出 .zip、导入包、加载示例包(完整模板) |
| JSON 音轨 | 每首音轨一个 .json 文件 + 匹配的 .ogg 文件位于 sounds/music/ |
| 条件 | 生物群系、维度、结构、实体 ID、实体标签、最小敌人数、Boss、PvP、低生命值、屏幕(title 用于主菜单) |
| 怪物战斗音乐 | 使用 assets/mobbattlemusic/music_tracks/ 导入包(mob_specific、mob_list、mob_tag、player_specific) |
| 多人游戏 | 任何服务器上仅客户端 — 无需服务器模组 |
| 服务器同步 | 可选:也安装到服务器上以获得稍好的战斗检测 |
| 配置界面 | 音量、检测、淡变、调试覆盖、菜单音乐、静音原版 |
| 调试覆盖 | 实时状态、音轨 ID、优先级、敌人数、强度 |
兼容性
| 设置 | 结果 |
|---|---|
| 单人游戏 | 完整功能 |
| 多人游戏 — 模组仅在你的客户端上 | 有效 — 本地生物检测 |
| 多人游戏 — 模组在客户端 + 服务器上 | 有效 — 可选的战斗同步数据包 |
| 混合服务器(Mohist 等) | 客户端回退检测;无需服务器模组 |
| 怪物战斗音乐包 | 将 JSON + OGG 放入你的 BMC 音乐包(见下文教程) |
Minecraft 版本: 1.21.x
完整教程
首次使用模组时,请按顺序执行以下步骤。之后,你只需调整包或添加新的 .ogg 文件。
第 1 部分 — 安装并打开设置
- 在你的 Minecraft 客户端(1.21.x)上安装战斗音乐渐强。
- 启动游戏并加入一个世界(单人游戏适合测试)。
- 打开 选项 → 控制 并找到类别 战斗音乐渐强:
- 打开配置(默认
B)— 主设置界面 - 切换调试(默认
F8)— 屏幕上的战斗/音乐调试信息 - 测试音乐(未绑定)— 如果已加载包,则播放测试音轨
- 打开配置(默认
- 打开 选项 → 音乐和声音(或通过
B/ 模组列表打开模组配置)。 - 点击 音乐包...(位于皮肤/资源包按钮附近)。
你不需要在专用服务器上安装此模组即可听到音乐。
第 2 部分 — 加载示例包(推荐)
该模组附带了一个完整的 ExamplePack 模板。使用游戏内编辑器,这样你永远不必从空文件夹开始。
- 从主菜单或游戏内,打开音乐包界面:
- 选项 → 音乐包...,然后 音乐包编辑器, 或 从模组配置界面使用编辑器快捷键。
- 在编辑器中(左侧栏),点击 加载示例包。
- 你应该会在列表中看到 12 首音轨,例如:
tension_near,combat_light,combat_intense,boss_dark,pvp_duel,victory_sting,critical_danger,ambient_forest,ambient_stronghold,menu_title,exploration_calm,scripted_example
- 点击 打开包文件夹 — 资源管理器会打开你的包目录。
默认文件夹(游戏目录):
battlemusiccrescendo_musicpacks/ExamplePack/
- 任何文件更改后,在编辑器中点击 重新加载包。
重要: 加载示例包只会创建 JSON + sounds.json。你还需要添加你自己的音乐文件(下一部分)。
第 3 部分 — 添加你的音乐文件 (.ogg)
每首音轨 JSON 都引用一个 ogg_file。将匹配的文件放在这里:
battlemusiccrescendo_musicpacks/ExamplePack/assets/battlemusiccrescendo/sounds/music/
| 音轨 JSON | 将此文件放入 sounds/music/ |
|---|---|
tension_near.json |
tension.ogg |
combat_light.json |
combat_light.ogg |
combat_intense.json |
combat_intense.ogg |
boss_dark.json |
boss_dark.ogg |
pvp_duel.json |
pvp.ogg |
victory_sting.json |
victory.ogg |
critical_danger.json |
defeat.ogg |
ambient_forest.json |
ambient_forest.ogg |
ambient_stronghold.json |
ambient_stronghold.ogg |
menu_title.json |
menu_title.ogg |
exploration_calm.json |
exploration.ogg |
scripted_example.json |
scripted_event.ogg |
提示:
- 使用
.ogg(Vorbis),立体声,流式音乐质量。 - 文件名必须与 JSON 中的
ogg_file完全匹配。 - 如果你愿意,可以为多个音轨使用同一个
.ogg文件(用不同名称复制文件)。
复制文件后:
- 返回游戏。
- 音乐包... → 启用 ExamplePack(将其移至已选)。
- 在编辑器中,点击 重新加载包。
- 在音轨上点击播放进行预览,或生成生物以实时测试。
第 4 部分 — 在游戏中启用包
- 选项 → 音乐包...
- 左侧列表:可用音乐包 — 选择
ExamplePack(或你的包名)。 - 点击箭头将其移至已选音乐包。
- 关闭界面 — 游戏会自动重新加载包资源。
- 可选:在模组配置中启用菜单测试音乐,以在主菜单上听到
menu_title.ogg(屏幕条件title)。
如果听不到任何声音:
- 确认
.ogg文件存在于sounds/music/中。 - 确认该包已被选择,而不仅仅存在于磁盘上。
- 在编辑器中点击重新加载包。
- 启用调试覆盖 (
F8) 并在附近有生物时检查 Playing: true 和 State:。
第 5 部分 — 在一个世界中测试战斗音乐
- 启用调试覆盖 (
F8或配置)。 - 将检测范围设置为至少
48个方块(默认配置)。 - 在创造模式或生存模式下,生成或找到范围内的敌对生物。
- 观察覆盖信息:
- State 应移动:
exploration→tension→light_combat/intense_combat(当你战斗时) - 当音轨匹配时,Playing 应为
true。
- State 应移动:
- 杀死生物并离开战斗 — 可能会播放一个简短的胜利音轨(如果在公共配置中启用)。
- 受到低于临界生命值阈值的伤害 — 可能会播放失败/危险音乐。
Boss 音乐: 生成一个高生命值的生物,或在 JSON 中使用 boss: true 条件(见第 7 部分)。
PvP: 与另一名玩家战斗,并在配置中启用 PvP 音乐。
第 6 部分 — 音乐包编辑器(创建你自己的音轨)
从音乐包界面或模组配置中打开音乐包编辑器。
| 按钮 | 作用 |
|---|---|
| 加载示例包 | 安装/刷新所有 12 个示例 JSON 文件 + 怪物战斗音乐样本 + README |
| 打开包文件夹 | 在文件管理器中打开 battlemusiccrescendo_musicpacks/ExamplePack/ |
| 新建音轨 | 创建一个空白的 JSON 供你编辑和保存 |
| 保存 | 将当前音轨 JSON 写入磁盘 |
| 播放 / 停止 | 预览选定的音轨 |
| 重新加载包 | 重新加载资源以便注册新声音 |
| 导出 zip | 将完整的音乐包导出为可共享的 .zip 文件 |
| 导入 .zip 包 | 将 zip 包解压到 battlemusiccrescendo_musicpacks/ 目录下 |
编辑器字段(右侧面板)
| 字段 | 含义 |
|---|---|
| Id | 唯一音轨 ID,例如 battlemusiccrescendo:my_boss |
| Ogg 文件 | 位于 sounds/music/ 的文件名,例如 my_boss.ogg |
| 类型 | tension、combat、intense、boss、pvp、victory、defeat、ambient、menu、exploration、scripted |
| 优先级 | 当多首音轨匹配时,数字高的获胜(boss > combat > tension) |
| 维度 / 生物群系 / 结构 | 逗号分隔的 ID — 仅在匹配时播放音轨 |
| 实体标签 | 例如 minecraft:skeletons |
| 最小敌人数 | 所需的最小敌对生物数量 |
| Boss / PvP / 临界 | 切换条件标志 |
保存后,点击重新加载包。模组会自动根据你的 JSON 文件重建 sounds.json。
第 7 部分 — 音轨 JSON 参考(手动编辑)
文件夹:
assets/battlemusiccrescendo/music_tracks/my_track.json
最小示例:
{
"id": "battlemusiccrescendo:my_track",
"ogg_file": "my_track.ogg",
"type": "combat",
"priority": 30,
"fade_in_ticks": 60,
"fade_out_ticks": 80,
"loop": true,
"conditions": {
"min_enemy_count": 1
}
}
type 值
| 类型 | 播放时机 |
|---|---|
exploration |
平静 — 无真正威胁 |
tension |
敌人在附近,未完全进入战斗 |
combat |
轻度战斗 |
intense |
众多敌人 / 激烈战斗 |
boss |
检测到 Boss 或 boss: true 条件 |
pvp |
与玩家战斗 |
victory |
战斗结束后播放一次 |
defeat |
生命值极低 |
ambient |
生物群系/结构环境音覆盖 |
menu |
主菜单(conditions.screen:"title") |
scripted |
自定义脚本/事件使用 |
conditions(全部可选)
"conditions": {
"dimensions": ["minecraft:overworld", "minecraft:the_nether"],
"biomes": ["minecraft:deep_dark"],
"structures": ["minecraft:stronghold"],
"entities": ["minecraft:wither"],
"entity_tags": ["minecraft:skeletons"],
"min_enemy_count": 4,
"boss": true,
"pvp": true,
"critical_health": true,
"screen": "title"
}
ogg_file是主要引用 — 声音 ID 从文件名派生(不带.ogg)。- 在您发布的包中,不要使用受版权保护的占位符名称;请使用您自己的文件名。
第 8 部分 — 兼容怪物战斗音乐(Mob Battle Music)的包
您可以在您的 BMC 包中重用 怪物战斗音乐 的音轨格式。
文件夹:
assets/mobbattlemusic/music_tracks/
示例 — 僵尸攻击音轨:
{
"type": "mob_specific",
"sound": "mobbattlemusic:aggro_track",
"priority": 30,
"fade_time": 40,
"group": "attacking",
"selector": "any",
"mob": "minecraft:zombie"
}
放置音频文件:
assets/mobbattlemusic/sounds/aggro_track.ogg
assets/mobbattlemusic/sounds/non_aggro_track.ogg
assets/mobbattlemusic/sounds/player_track.ogg
支持的类型:mob_specific、mob_list、mob_tag、player_specific、player_specific_uuid。
示例包包含三个示例 JSON 文件。在编辑器中加载示例包会为您复制它们。
第 9 部分 — 多人游戏和服务器
| 您的设置 | 应该怎么做 |
|---|---|
| 在没有该模组的类原版服务器上游玩 | 仅在你的客户端上安装 BMC — 音乐通过本地检测工作 |
| 在装有该模组的服务器上游玩 | 可选的更好同步;在您的客户端上使用相同的音乐包 |
| 托管您自己的服务器 | 服务器模组是可选的 — 玩家无需安装即可听到音乐 |
网络同步是可选的。如果服务器没有该模组,客户端永远不会因为缺少频道而断开连接。
第 10 部分 — 配置文件
| 文件 | 位置 |
|---|---|
| 公共 | config/battlemusiccrescendo-common.toml |
| 客户端 | config/battlemusiccrescendo-client.toml |
公共(共享逻辑)
| 选项 | 用途 |
|---|---|
enabled |
主开关 |
detectionRange |
生物扫描半径(方块) |
bossDetectionRange |
Boss 扫描半径 |
fadeInTicks / fadeOutTicks / crossfadeTicks |
默认过渡时间 |
minMobsForBattle / minMobsForIntense |
战斗氛围的阈值 |
pvpMusic / victoryMusic |
启用 PvP 和胜利音效 |
allowServerSync |
可用时使用服务器战斗数据包 |
allowClientOnlyFallback |
当服务器没有模组时进行本地检测 |
blacklistDimensions / whitelistDimensions |
限制音乐播放的维度 |
entityBlacklist / entityWhitelist |
过滤哪些生物计入统计 |
客户端
| 选项 | 用途 |
|---|---|
battleVolume |
你的战斗音乐音量 (0.0–1.0) |
showDebugOverlay |
屏幕上的调试信息 |
muteVanillaDuringCombat |
在模组音乐播放时停止原版背景音乐 |
menuTestMusic |
在标题屏幕上播放菜单音轨 |
游戏内:模组 → 战斗音乐渐强 → 配置 或按键绑定 B。
第 11 部分 — 共享一个包 (.zip)
- 在
battlemusiccrescendo_musicpacks/MyPack/下构建您的包。 - 包括:
pack.mcmetaassets/battlemusiccrescendo/music_tracks/*.jsonassets/battlemusiccrescendo/sounds/music/*.ogg- 可选:
assets/mobbattlemusic/...
- 在编辑器中,导出 zip。
- 其他人使用导入 .zip 包,然后在音乐包... 中启用该包。
故障排除
| 问题 | 解决方案 |
|---|---|
| 完全没有音乐 | 在已选中启用包;添加 .ogg 文件;重新加载包 |
| 编辑器中只有一首音轨 | 再次点击加载示例包(刷新所有 12 个 JSON 文件) |
日志中显示 Sound ... not loaded |
缺少 .ogg 文件,或文件名与 ogg_file 不匹配 |
| 菜单音乐无声 | 添加 menu_title.ogg;启用菜单测试音乐;包已选择 |
| 原版音乐重叠 | 在客户端配置中启用战斗时静音原版 |
| 需要服务器模组才能播放音乐 | 错误 — 仅客户端安装即可 |
| 战斗感觉滞后 | 增加 detectionRange;在服务器上安装模组以实现同步 |
| 日志中的 JSON 错误 | 每首音轨都需要 ogg_file(或 sound)+ type |
测试时启用调试覆盖 (F8) — 它会显示实时战斗状态、选定的音轨以及音频是否正在播放。
灵感
战斗音乐概念灵感来源于 [怪物战斗音乐] 作者:nonamecrackers2 的目标。战斗音乐渐强添加了自己的优先级系统、包编辑器、菜单音轨、胜利/临界层以及可选的服务器同步。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。