截图
介绍
Music Events 是一款高度可配置的模组,可全面控制原版游戏音乐和自定义音乐。它支持创建复杂且适应不同情境的音轨,例如环境音乐、战斗主题曲或特定情境的配乐。模组内置直观易用的游戏内 GUI,大大简化了配置过程,也是设置模组的主要方式。
作为开发者,你们的反馈对我帮助很大!如果你有任何疑问、需要帮助,或想进一步了解这款模组,欢迎加入我的 Discord;我有空时会尽快为你详细解答:
V1.2.0 新内容:亡灵军团事件展示:
剧透
观看恐怖主题配乐设置指南:
恐怖主题配乐所用语法
# ==========================================
# UNIVERSAL SETTINGS
# ==========================================
[universal]
server_nbt_sync = ["warden_spawn_tracker"]
# ==========================================
# EVENTS (TRIGGERS)
# ==========================================
[[events.mobs]]
event_name = "warden_undetected_4"
priority = 204
detection_range = 25.0
sync_group = "warden_proximity"
resource_name = ["minecraft:warden"]
[[events.player]]
event_name = "shrieker"
priority = 300
event_delay = 6.0
nbt_match = ["{warden_spawn_tracker:{warning_level:1}}"]
[[events.mobs]]
event_name = "warden_undetected_3"
priority = 203
detection_range = 50.0
sync_group = "warden_proximity"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "warden_undetected_2"
priority = 202
detection_range = 75.0
sync_group = "warden_proximity"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "warden_detected_4"
priority = 214
detection_range = 25.0
mob_targeting = true
sync_group = "warden_proximity_detected"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "warden_detected_3"
priority = 213
detection_range = 50.0
mob_targeting = true
sync_group = "warden_proximity_detected"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "warden_detected_2"
priority = 212
detection_range = 75.0
mob_targeting = true
sync_group = "warden_proximity_detected"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "warden_detected_1"
priority = 211
detection_range = 100.0
mob_targeting = true
sync_group = "warden_proximity_detected"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "angel"
priority = 100
detection_range = 50.0
mob_targeting = true
require_fov = 2
resource_name = ["weeping_angels:weeping_angel"]
[[events.mobs]]
event_name = "warden_undetected_1"
priority = 201
detection_range = 100.0
sync_group = "warden_proximity"
resource_name = ["minecraft:warden"]
[[events.mobs]]
event_name = "dweller"
priority = 101
mob_targeting = true
require_fov = 1
resource_name = ["cave_dweller:cave_dweller"]
该模组仅支持 .ogg 格式的音频文件。
配置主要通过专用的游戏内 GUI 完成。
打开 GUI:
按下 F6 键打开界面。
修改原版音乐:
- 前往 Events 选项卡。
- 创建一个新事件(例如,维度事件),并为其设置优先级。
- 定义所需参数(例如,添加 resource_name 并将其设为 minecraft:overworld)。
- 选择 Register Audio,然后搜索所需的音频文件。
- 注意:搜索使用文件的内部名称(例如,Haggstrom 在文件中存储为 hal3)。
- 注意:将鼠标悬停在下拉列表中的文件上,可试听音频。
- 点击 Save,然后点击 Reload,即可应用配置。
使用自定义音频文件:
- 通过 GUI 打开 Audios 文件夹。
- 将自定义 .ogg 文件放入指定目录(也可以创建子文件夹,让文件更有条理)。
- 使用标准的“注册音频”流程,将曲目关联到事件。
GUI 面板概览:
- 通用:管理默认参数值,这些值将应用于所有新建事件。事件专属参数会覆盖通用设置。
- 事件:用于创建自定义事件并配置相应参数。
- 音频:用于管理各个音轨的配置。
- 同步组:概览并管理通过
sync_group参数绑定在一起的事件。
事件类型、修饰符与示例:
每个事件都会在触发音频播放前检查当前情境是否符合条件。
通用参数(事件默认配置池):
展开内容
- play_when_paused = true/false:决定游戏菜单暂停时是否允许播放音轨。
- muffling_when_paused = 1.0:游戏暂停时应用的音频闷声效果倍率。(推荐:1.0)。
- underwater_muffling = 1.0:玩家潜入水下时应用的音频闷声效果倍率。(推荐:1.0)。
- gui_muffling = 1.0:GUI 界面打开时应用的音频闷声效果倍率。(推荐:1.0)。
- gui_muffling_delay = 20:应用 GUI 闷声效果前的延迟时间(秒)。
- gui_muffling_blacklist = [“InventoryScreen”]:不受闷声效果影响的 GUI 类列表。使用该模组的调试界面查看当前所在的 GUI。
- pause_volume_multiplier = 0.5:游戏暂停时应用的音量控制倍率。
- remember_track = true/false:启用后,事件会记住停用前播放的最后一首曲目;再次激活时会重新播放该曲目,而不是随机选择新曲目。
- resume_from_timestamp = true/false:启用后,事件重新激活时会从暂停时的准确时间点继续播放。
- seamless_handoff = true/false:启用平滑的曲目切换。如果事件 A 切换到事件 B,且两者的播放列表中都包含当前正在播放的曲目,该曲目将无缝继续播放,不会重新开始或淡出。
- fade_in = 2.0 / fade_out = 2.0:指定事件激活或停用时的音量渐变时长(秒)。
- persistence = 10.0:事件在激活条件不再满足后,仍强制保持激活并继续播放音乐的时长(秒)(例如,怪物被消灭后仍继续处于战斗状态 10 秒)。
- time_between_audio = 60.0:一首曲目播放完毕后,事件再次触发曲目播放前的冷却时长(秒)。
- jukebox_behavior = “ignore”/”pause”/”muffle”:决定曲目如何响应附近正在播放音乐唱片的原版唱片机。
- cooldown_group_time = 120.0 / cooldown_group_events = [“eventA”, “eventB”]:将多个不同事件的曲目冷却时间关联起来。如果某个事件播放完一首曲目,
cooldown_group_events中列出的所有事件都将共享指定的cooldown_group_time,冷却结束后才能再次播放。
- mob_blacklist = [“minecraft:slime”, “minecraft:vex”]: 实体 ID 列表;其中的实体无法在全局范围内触发生物事件。
- priority = 50: 用于确定多个事件同时激活时播放顺序的整数值。数值越高,优先级越高。
- hard_interrupt = true/false: 强制立即终止当前音轨,忽略并跳过常规的持续时间和淡出参数。
- locked = true / unlocks_event = “phase_2” / relock_when_inactive = true: 用于管理状态的参数,可实现事件依次激活。事件默认可以处于
locked状态,只有在另一个事件调用其unlocks_event时才会激活。
- sync_group = “battlefield_crescendo”: 将事件分配到同步组。同一
sync_group中依次触发的事件会继承上一个活动音轨的精确播放时间戳。适用于节奏和布局相同的分层或多阶段音频文件。
- server_nbt_sync = [“warden_spawn_tracker”]: 以逗号分隔的根 NBT 键列表;服务器会主动同步这些键,以供 nbt_match 参数使用。
音轨参数:
展开内容
- volume = 1.0: 音轨音量的倍率。
- weight = 50: 当一个事件注册了多条音轨时,用于决定音轨的播放概率。权重越高,被选中的概率就越大。
- require_all_events = true/false: 若设为 true,只有
target_events数组中明确列出的所有事件同时处于活动状态,音轨才会播放。
- target_events = [“overworld_day”, “overworld_night”]: 指定音轨所属事件的列表,并检查这些事件是否已激活。
- upgrade_delay = 5.0 / upgrade_fade_in = 3.0 / upgrade_fade_out = 3.0: 用于动态音轨升级的平滑过渡设置。满足事件条件时,当前播放的音轨可以无缝“升级”为此音轨;此过程使用单独的交叉淡化时长,不受常规事件淡化设置影响。
- start_time = 15.5: 指定音轨开始播放的时间戳(秒)。设为 15.5 后,音轨每次都会从第 15.5 秒开始播放,跳过开头部分。
- start_x = 2: 配置重复播放次数。音轨会准确重复 2 次后结束。
- loop_start = 10.0 / loop_end = 60.0: 创建独立的内部播放循环。音轨正常开始播放;播放到
loop_end(例如 60.0 秒)时,会无缝跳回loop_start(例如 10.0 秒),并根据start_x值无限重复该片段。
- play_once = 1/2/3/4/5: 决定音轨可以重播的频率。可使用以下数值:
- 1(轮流播放):在当前事件的其他可用音轨全部播放过之前,不会再次播放此音轨。
- 2(事件持续期间):只要事件持续处于活动状态,此音轨就只播放一次。
- 3(会话):每次加入世界后,此音轨只播放一次。退出并重新登录后重置。
- 4(JVM 会话):每次启动游戏后,此音轨只播放一次。完全重启 Minecraft 后重置。
- 5(持久世界):此音轨在某个世界中永远只播放一次。播放状态会持久保存。
- interruptible = true/false: 指定更高优先级的事件能否强制中断此音轨。标记为
false的音轨会充当屏障,拒绝暂停,并始终从头播放到尾。
- breakthrough_priority = 500:覆盖轨道的不可中断状态。即使轨道充当护盾,任何优先级等于或高于 500 的事件都可以强行突破并中断轨道。
- interrupt_whitelist = [“boss_phase_2”]:仅允许列表中的事件名称绕过可中断标记并暂停轨道,不受优先级影响。
特定事件类型及限制条件:
- 生物:根据实体距离触发。
展开详情
- resource_name = [“minecraft:zombie”, “category:monster”, “regex:.zombie.“, “player:Name”]:要监测的目标实体 ID、标签或通配符。
- nbt_match = “{IsBaby:1b}”:检查实体/玩家是否具有与字符串匹配的 NBT 属性。对于服务端 NBT 属性,必须在 Universal 部分的 server_nbt_sync 中添加根键。
- detection_range = 16.0:以玩家为中心、用于检测实体是否存在的半径。
- activation_mobs = 5 / deactivation_mobs = 2:严格的数量阈值。仅当匹配的实体数量达到或超过 5 时,事件才会触发;数量降至 2 或以下时,事件停止。
- max_health = 10.0:只有目标匹配实体的生命值低于指定阈值时,事件才会触发。
- health_override_threshold = 100.0:如果哪怕只有一个匹配实体的生命值大幅超过此最大生命值,事件即可立即绕过
activation_mobs数值阈值(适用于 Boss 的变体)。 - mob_targeting = true/false:仅当实体处于主动攻击状态且以玩家为目标时才触发。
- require_fov = “Spotted”/”Constant”:仅对当前处于玩家视线范围内的实体触发。
- 击杀:实体死亡时触发。
展开详情
- resource_name = [“minecraft:ender_dragon”]:被击杀实体的具体类型。
- attacker_name = [“minecraft:player”]:必须造成最后一击的实体类型。
- nbt_match = “{…}”, detection_range = 128.0, require_fov = “Spotted”:应用与生物事件类似的限制条件。
- 物品栏:物品位于指定的物品栏位置时触发。
展开详情
- resource_name = [“minecraft:diamond”, “slot:head|regex:.*_helmet”]:目标物品 ID 或正则表达式模式。可添加前缀
slot:xxx|,以仅在特定栏位中检测该物品。
- target_slots = [“mainhand”, “offhand”, “head”, “chest”, “legs”, “feet”, “any”]:指定要检查的有效栏位数组,作为全局回退设置。如果
resource_name中的物品没有slot:前缀,则会在此处定义的所有栏位中进行检测。
- require_all_resources = true/false:若为 true,则要求同时持有按顺序列出的所有物品,而非任意一种物品。
- 玩家:检查玩家的精确内部状态。
展开详情
- is_dead = true/false:严格要求玩家处于死亡状态。
- max_health = 6.0:玩家生命值严格降至此数值或以下时触发事件。
- min_y = -64.0 / max_y = 0.0:限制事件触发位置的垂直高度范围。
- min_light = 0 / max_light = 7 / light_type = “sky”/”block”/”total”:根据所选光源类型,检查环境光照强度是否处于设定范围内。
- require_underwater = true/false:强制检查玩家是否直接浸没在液体中。
- nbt_match = “{…}”:玩家数据的 NBT 条件。
- 区域:基于固定坐标的立体触发区域。
展开详情
- min_x = -50 / max_x = 50 / min_y = 64 / max_y = 120 / min_z = -50 / max_z = 50:建立永久的 3D 地理边界框,严格按坐标控制激活范围。
- 突袭:检查掠夺者突袭变量。
剧透
- min_wave = 1 / max_wave = 5:限制当前掠夺者突袭波次等级的上限和下限。
- status = “active”/”victory”/”loss”/”stopped”/”any”:验证特定的突袭进度状态。
- 统计:检查内部玩家统计数据。
剧透
- resource_name = [“minecraft:mined:minecraft:diamond_ore=100”]:定义要追踪的目标指标。格式明确要求包含核心类别、模组 ID、对象和数值限制(例如
minecraft:used:minecraft:elytra=50或minecraft:custom:minecraft:play_time=12000)。 - require_all_resources = true/false:要求同时满足所有数值统计追踪条件。
- 维度 / 生物群系 / 时间 / 天气 / 游戏模式 / 难度 / 结构 / 进度 / PvP / 骑乘 / GUI / 效果:
通过统一的 resource_name 参数进行评估,该参数提供标准的字符串匹配数组。
剧透
- resource_name:
- 维度默认值:
["minecraft:overworld", "minecraft:the_nether", "minecraft:the_end"] - 生物群系默认值:
["minecraft:plains", "minecraft:desert", "minecraft:badlands"] - 时间默认值:
["day", "night", "sunrise", "sunset"] - 天气默认值:
["clear", "rain", "thunder"] - 游戏模式默认值:
["survival", "creative", "adventure", "spectator"] - 难度默认值:
["peaceful", "easy", "normal", "hard"] - 结构默认值:
["minecraft:bastion_remnant", "minecraft:village", "minecraft:stronghold"] - 进度默认值:
["minecraft:story/enter_the_nether", "minecraft:end/kill_dragon"] - PvP 默认值:
["player:Name", "any"] - 骑乘默认值:
["minecraft:horse", "minecraft:minecart"] - GUI 默认值:
["InventoryScreen", "ChatScreen", "TitleScreen"]使用该模组的调试屏幕查看当前界面对应的 GUI。 - 效果默认值:
["minecraft:poison", "minecraft:regeneration"]
命令与调试:
该模组提供了若干以基础 /musicevents 命令开头的命令,可直接在聊天栏中管理状态机并追踪音频:
剧透
/musicevents reload:指示模组对音频引擎执行硬重置,并从文件系统重新加载所有配置和音频内存缓存。/musicevents skip:立即跳过当前播放的音轨,并评估优先级最高的下一首音轨或事件。/musicevents unlock <event_name>:解锁一个已锁定的状态机事件,将其标记为激活/可评估状态。/musicevents relock <event_name>:重新锁定指定的状态机事件,除非再次满足其解锁条件,否则阻止其激活。你也可以使用/musicevents relock all重置整个状态进程。/musicevents zone pos1//musicevents zone pos2:根据你的精确玩家坐标,设置维度边界框的第一和第二个角点。/musicevents zone save <event_name>:将内部 pos1 和 pos2 边界坐标永久写入指定的区域事件!
此外,默认情况下可按 F4 键切换内置调试屏幕。调试屏幕会以实时覆盖层的形式显示,帮助你配置参数、了解模组如何计算优先级、查看当前播放的音轨,以及运行期间哪些参数正在强制影响音轨行为。
常见问题
Music Events 支持哪些 Minecraft 版本?
Music Events 支持 Minecraft Java 版 1.16.5–1.21.1,共 3 个版本,可用的加载器:Fabric / Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
Music Events 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:客户端和服务端都要装。
xelotex 的其他作品
查看全部 →
Halloween Mashup Pack Music only.
用万圣节混音包的音乐替换原版背景音乐。就这样。
Minecraft Dungeons Emerald Pickup Sound
将拾取音效替换为《我的世界:地下城》中收集绿宝石的音效
MC Dungeons Emerald Pickup Sound
Replaces the pickup sound with the MCD's emerald collection sfx. Reacts dynamically to the amount of items you pick on quick succession.
Trident Recall
Dont wait for the trident to land, right click to recall it while it is mid-flight.
评论
登录后评论和评分