自定义血月音乐模组

自定义血月音乐模组

自定义血月音乐模组,通过用用户自选的自定义音乐曲目替换默认的血月音效,为《七日杀》增添个性化色彩,强化游戏中的紧张夜晚氛围。不包含音乐,需自行提供。

音频

自定义血月音乐模组

为《七日杀》增添个性化色彩,用您自选的自定义音乐曲目替换默认的血月音效,强化游戏紧张刺激的夜晚体验。不包含音乐文件,需自行提供本地曲目。

该模组会在血月事件期间(每第7天,22:00–04:00)自动播放您选择的音乐,提供控制播放、随机播放曲目以及通过配置文件调整设置的选项。它支持多种音频格式,并通过游戏内工具提示提供反馈,让您在抵御尸潮时轻松享受自定义配乐。

最新更新日志

V1.6.0

  • 修复了死亡或血月结束时日志刷屏的问题,日志中不断显示血月是否激活为假

版本1.5.9

  • 修复了切换按钮开关时的空值错误,和谐补丁在第二次启用后失效。
  • 新增配置功能 "shuffleTracks": false,可配置项若设为 true,将打乱加载的指定播放列表中的曲目顺序而非仅播放首曲,您仍可使用随机指令获得类似效果,无论此项设为 truefalse
  • 新增配置功能 "fadeDuration": 2.0,可配置血月音乐开始与结束之间的淡入淡出时长,默认为2秒

版本1.5.8

  • 修复了音量系统的问题,现在如果 respectMusicSlider: 设置为 false,可在 config json 中进行配置。
  • 添加了音量检查日志和配置 json 中音量的动态更新,以便更好地管理音量并减少音量更新的日志冗余
  • 集成音乐滑块功能,使音量随音乐滑块调节,若失败则回退至配置 JSON 文件。
  • 新增动态配置重载或文件监视功能,以便在游戏过程中根据音量变化重新加载配置 json 文件。
  • 修复暂停功能,确保在游戏暂停或玩家断开连接时,能够正确恢复和暂停自定义及原版音乐。

版本1.5.6

  • 修复了使用自定义动态音乐模组后音乐被静音的问题,现已更改为自定义探索音乐模组,之前会出现播放几秒后突然中断的情况
  • 修复了即使 cycletracks 设置为 true,仍循环播放曲目且仅播放一首歌曲的问题
  • 修复了循环问题,现在播放列表中的歌曲在完整循环后会从第一首重新开始播放
  • 修复了与自定义探索音乐模组的兼容性问题,并在禁用时恢复原版的血月音乐。
  • 为血月状态检查添加了更多调试日志,并移除了每条音轨重复出现的禁用原版音乐消息,该消息应仅在模组启用或禁用时显示。
  • 更好的循环管理,当 Loop 处于激活状态时,若 cycletrackstrue 则会循环播放整个播放列表,若 cycle tracksfalse 则仅循环当前单曲。

更新的默认配置 JSON 示例

配置文件 JSON

{
  "bloodMoonTracks": "血月资源/BloodMoon",
  "音量": 0.8,
  "尊重音乐滑块": true,
  "随机播放曲目": false,
  "淡出时长": 2.0,
  "循环": true,
  "循环轨道": true,
  "最大血月轨迹数": 50,
  "恢复原版音乐": true,
  "默认启用自定义音乐": true,
  "切换键": "小键盘9"
}

自定义文件夹

使用 "bloodMoonTracks": "C:\\Music\\Rock"(使用双反斜杠或正斜杠指定自定义音乐文件夹位置...)

通用模组关键特性

  • 自动播放:血月开始时或玩家进入已激活的血月时音乐自动播放,血月结束时停止。
  • 如果设置为 true,则默认启用自定义音乐,请参考下方的自定义设置
  • 支持格式:从 Mods\CustomBloodMoonMusic\Resources\ 或自定义文件夹加载 .mp3.wav.ogg.m4a 文件。

控制

  • 控制台命令/play(开始/继续)、/next(跳过曲目)、/pause(暂停)、/stop(暂停并保存位置)、/shuffle(随机播放曲目)、/togglemusic(启用/禁用)、/rescan(重新加载曲目)。
  • 按键绑定:数字键盘9键可切换模组的开启/关闭状态。

自定义

编辑 config.json 以设置:

  • 音轨:用于自定义文件夹和/或使用现有的 Resources 文件夹,并在该文件夹内使用 BloodMoon 文件夹存放您的音频文件。例如设置 "bloodMoonTracks" 为您的自定义路径(如 "C:\\Music\\");留空则使用默认的 Resources/BloodMoon 文件夹,如果没有音轨则播放原版音乐或至少应该如此。
  • 音量0.0(静音)至 1.0(最大)。
  • respectMusicSlider: true,切换游戏内音乐滑块的集成(默认:true),但如果设为 false 则回退到配置 json。
  • 循环True 循环当前曲目;false 停止除非循环播放。
  • cycleTracks: True 在一首曲目结束后播放下一首。
  • maxBloodMoonTracks: 50,最大血月轨道数(例如50),但可配置。
  • restoreVanillaMusic: True 禁用时恢复为游戏原声音乐。

视觉反馈

工具提示显示操作(例如“跳至下一曲目”),随后是当前曲目信息(例如“正在播放曲目 2/3(track2.mp3)”)。

默认启用自定义音乐

true - 当设置为 true 时,默认会播放自定义音乐,静音原版音乐,无需切换,除非你需要使用小键盘键选项禁用它,此时会禁用并恢复原版音乐。如果设置为 false,在血月期间需要手动激活,如果你更喜欢这种方式的话。

示例日志记录

检查日志:%APPDATA%\7DaysToDie\logs\output_log.txt。预期日志如 F1 用于模组日志。

  • 配置加载示例

    正在从 [modPath]\config.json 加载配置 配置已加载 - 曲目:0,音量:0.8,循环:是,循环模式:是,文件夹:C:\Music\BloodMoonTracks

  • 音频加载

    正在扫描音频文件于:C:\Music\BloodMoonTracks 尝试加载:C:\Music\BloodMoonTracks\track1.mp3 已加载 track1.mp3

  • 命令

    已播放第1/X首曲目(track1.mp3)

  • 提示信息集[自定义血月音乐] 正在播放音乐!

使用方法

如果使用自定义文件夹(例如,C:\Music\BloodMoonTracks),其中包含一些 .mp3.wav.ogg 文件(无子文件夹),或者使用现有的音乐文件夹,其中的音轨位于该根文件夹中...更新 config.json 文件,填入该位置的路径(使用 \\/ 作为分隔符)。

如果使用 Mods Resources 文件夹,请先创建一个,然后添加 BloodMoon 文件夹来存放你的音轨,这样如果你想听几首音轨而不是整个自定义音轨文件夹会更方便。

以禁用 EAC 模式启动。仅限客户端使用,这意味着此功能仅适用于您的个人电脑,不兼容服务器。每台想要自定义音乐的客户端或电脑都需要在自己的设备上单独安装此模组,并准备自己的音乐文件,以便血月激活时播放自定义音乐。

加载存档,触发血月(在 DebugMenu 中设置时间为第7天的 21:00)或其他时间进行测试!

已知问题

  • 试图让它仅适用于游戏内的聊天框,但目前似乎失败了……
  • 按 T 键并输入那些 / 命令时,没有游戏内聊天框……
  • 目前只有 F1 控制台命令可用……
  • 非服务器端...希望是未来的功能

注释

任何损坏的音乐文件会在日志中显示 FMOD 错误,提示格式不受支持...但会使用该缓存,以便更快加载游戏音轨,无需每次都手动加载。(例如 错误:无法为剪辑“”创建FMOD::Sound实例(FMOD错误:不支持的文件或音频格式。)

CustomBloodMoonMusic: [2025-03-26 06:19:14] 曲目已缓存至 C:/Program Files (x86)/Steam/steamapps/common/7 Days To Die/7DaysToDie_Data/../Mods\CustomBloodMoonMusic\track_cache.txt

曲目缓存将保存在名为 track_cache_bloodmoon.txt 的文件中,以防那些希望在模组文件夹中查看具体加载了哪些歌曲的玩家需要额外的日志记录。

与任何其他音频模组不兼容,如果你碰巧使用了任何静音模组或其他自定义音乐模组或全面改造的音频模组,它可能与这些模组兼容也可能不兼容,谁知道呢?也许可以,但根据我的测试...这主要是为原版玩家准备的,他们可能想自定义血月音乐,最多算是个小小的任性享受。

如果 musicFolder 为空("")或无效,则默认使用该模组文件夹中的 Resources 文件夹。如果 tracks 非空,则使用 musicFolder(如果未设置 musicFolder 则使用 Resources)中的这些特定文件。

附注:你不需要在配置的 json 文件中保留 // 留空或双反斜杠的信息,因为这些只是注释,无论如何它都不会读取这些注释内容。

免责声明

使用此模组即表示您承认 TechFreq 不对因使用该模组导致的任何问题、崩溃或冲突负责。使用风险自负。在安装任何类型的模组前,请备份您的游戏文件。

感谢您的下载,祝您玩得愉快!

安装

  1. 请确保模组目录中存在 harmony 模组,因为它是必需的。
  2. 下载模组文件,解压模组文件。
  3. 请备份您的世界、存档或游戏文件。
  4. 将它们放入你的《七日杀》游戏 Mods 目录中。
  5. EAC 必须禁用,尽管我希望未来能有所改变,目前 DLLS 不受 EAC 支持,但 XML 没有问题,遗憾的是这是一个 dll 修改。
  6. 这仅适用于客户端,但也许这也适用于服务器端和客户端兼容性?
  7. 无需进一步设置。尽情享受吧!

制作人员

再次感谢 TheMeanOnes,特别为你这个点子大声喝彩,那 20% 的灵感加上我代码 80% 的努力!期待未来能看到更多项目和进步!

感谢 TechFreq 和 A.I、ChatGPT 或 Microsoft CoPilot A.I 或来自 Twitter/X 的 Grok AI,帮助我创建了这个 modlet。由于我对游戏模组制作了解甚少,只能边学边做,没有它们的帮助我无法完成这项工作。同时也要感谢整个模组社区的集体智慧与支持。

我非常感激,并且也非常欢迎对 mod 的任何反馈。

支持公告

该模组可能会也可能不会在 7DaystoDieMods 上交叉发布。

对于那些想支持'TechFreqs'作品的人,通过 ModsFire 在其网站上下载(广告驱动,每次下载都会获得收益)。此外,他们的网站上还提供直接的 MEGA 镜像,而 NexusMods 也提供直接链接,这些链接不会按点击或下载次数获得收益,而是依靠捐赠点数或通过'TechFreqs'的 PayPal 或 Ko-fi 捐赠链接来维持。

然而,捐赠并非强制要求,但每一份支持都将帮助我们前行,并为未来的模组、音乐和漏洞修复提供动力。

如果你慷慨解囊,愿意在 kofi 或 paypal 页面捐赠,那对我帮助巨大,但这并非必须!

所以再次感谢你们的出色表现,并查看了模组帖子。

社交媒体

如果你欣赏'TechFreqs'的工作并想表示支持,可以使用这个捐赠链接,尽管这不是必须的。

感谢您查看模组帖子、分享并享受任何模组内容本身。再次感谢!祝游戏愉快!

喜欢这个模组吗?有反馈、想法或需要故障排除?

加入 TechFreq 超酷小队 Discord 服务器!https://discord.com/invite/SQCnGjNUhw

快来我们的 Discord 一起畅聊游戏、分享趣图,还有更多模组更新等你发现!

至于 TechFreqs 音乐,它是免版税音乐,可用于您的项目或休闲聆听!源音乐文件可随意索取,欢迎在 Discord 上询问!或获取更多内容!

TechFreqs 社交媒体:https://beacons.ai/techfreq

看看今天的幕后花絮!再次感谢大家查看模组帖子。

先前更新日志

V1.2V

  • 新增内容:"enableCustomMusicByDefault": true,该值设定后,血月期间可自动启用自定义音乐,无需每次手动切换,但若偏好手动设置,也可在配置 json 文件中将其设为 false
  • 新增功能,可配置的小键盘绑定默认为数字键盘9
  • 新增功能,更多机器人日志记录,同时减少垃圾信息,保留有用内容,避免重复时间戳
  • 希望兼容 v1.3,以及 V1.4,因为这是我最近更新的版本。
  • 使用上一首歌曲命令、曲目管理、
  • 移除了冗余或之前的音轨尝试,已在我另一个模组中修复,使环境音频(如探索悬疑和战斗音乐)可自定义。

半最新变更日志

  • 修复了文件夹名称问题,部分用户因文件夹命名不规范导致模组失效。文件夹标签必须与 modinfo.xml 文件中的 name 属性值完全匹配才能正常运行,本次小更新已解决该问题。
  • 当前版本已通过血月模式测试,但暂不支持其他探索、战斗和悬疑音轨。
  • 未来有空时会彻底重构代码,移除相关限制并发布新版本。
  • 祝游玩愉快!!

确保你的自定义文件夹使用双斜杠,并且循环指的是循环播放列表而非单曲,除非文件夹中只有一首曲目。如果你想要随机播放,请在配置中将 cycletracks 设置为 off 以实现随机播放,反之亦然。

1.2升来自1.2B和D

  • 添加了一个更健壮的赛道文件夹,不再需要在配置 json 中手动为单个赛道定义赛道信息,它应该直接扫描文件夹内容,或者你也可以在配置 Json 中定义,我也不知道我当时在想什么哈哈
  • 添加了 /previous 和 or previous 命令,用于 F1 日志,以便可以返回之前的赛道
  • 添加了模组禁用时的工具提示
  • 为血月音乐激活时添加了额外功能和调试日志
  • 添加了更强大的重新扫描或曲目缓存功能,以帮助预加载曲目。但请注意,使用 /rescanrescan 命令进行全面重新扫描时可能会出现卡顿或延迟,因为即使在游戏加载前,它仍会进行重新扫描以确保万无一失。不过有时会使用 txt 缓存作为缓冲区来确保匹配。此外,该功能还会为资源文件夹中的音乐文件夹类别创建单独的曲目缓存,甚至支持自定义文件夹,并将这些曲目缓存保存在模组本身的根目录中。
  • 在 F1 日志中增加了更多调试日志或信息,用于记录曲目播放时的来源,因为之前的来源未提及源文件夹。
  • 为未来版本添加了更多配置 JSON 选项,以便在游戏中控制探索、悬念和战斗音乐轨道。但由于我遇到的问题比预想的要多得多,所以请忽略这些选项,或者在配置 JSON 中将其留空不定义。
  • 感谢 Rizzrd 的 Custom Music Mod 提供了一些代码,虽然我没有添加太多内容,因为我们有不同的理念,但很高兴能引用他的开源代码,帮助我最终解决了使用 EnumMusicutils 的问题,在禁用血月音乐或血月音乐结束后重新启用它。https://www.nexusmods.com/7daystodie/mods/6035
  • 新增了通过全局音量控制音量的功能,某种程度上,这要再次感谢 rizzards 的代码,快去试试他的模组,效果同样惊艳。不过由于这个问题,配置 JSON 中仍保持独立设置。

问题

注意,如果在血月结束后启用模组,那么在未来的版本中,原版音乐将被静音,直到我能解决探索、悬疑和战斗音乐与血月音乐等内容的兼容问题。不过,如果在配置 JSON 中设置为 "" 而不是 Resources\CombatMusic 文件夹(因为它会寻找该文件夹来识别要使用的音轨),它将或应该使用原版音乐,如果未找到则反之亦然。

所以现在先忽略其他代码

和之前一样的问题,没有游戏内聊天命令,非服务器端,但至少原版的猩红之月音乐回来了!

注意:与任何其他音频模组不兼容,如果您正在使用任何静音模组或其他自定义音乐模组或全面改造音频模组,它可能与这些模组兼容也可能不兼容,谁知道呢?或许可以,但根据我的测试...这主要是为原版用户准备的,他们可能想自定义血月音乐,最多算是个小小的任性享受。

较新的示例默认配置 JSON

{
  "bloodMoonTracks": "血月音轨",
  "explorationTracks": "资源/探索音乐",
  "suspenseTracks": "Resources/SuspenseMusic",
  "combatTracks": "战斗音乐资源",
  "homeDayTracks": "Resources/HomeDay",
  "homeNightTracks": "资源/家庭夜晚",
  "音量": 0.8,
  "循环": true,
  "循环轨道": true,
  "最大血月追踪数": 50,
  "最大探索轨迹数": 20,
  "最大悬念音轨数": 20,
  "最大战斗音轨数": 20,
  "最大家园日轨道数": 20,
  "maxHomeNightTracks": 20,
  "恢复原版音乐": false
}

版本1.3

  • 将轨道配置的 json 文件中的特性更改为资源文件夹,以指定轨道的文件夹位置,不再需要手动输入少量轨道,
  • 为资源及自定义文件夹追踪缓存

版本1.2