自定义探索音乐模组

自定义探索音乐模组

TechFreqs自定义动态音乐模组,v1.7.2版,适用于《七日杀》 用自定义音乐提升用户体验! 该模组会根据您自己的MP3音乐文件替换原版游戏状态音乐。 根据游戏状态动态切换曲目。

音频

TechFreqs 自定义动态音乐模组,v1.7.2版,适用于《七日杀》

用自定义音乐提升用户体验!
该模组会根据您自己的MP3音乐文件替换原版游戏状态音乐。
动态切换曲目,基于游戏状态(探索、悬疑、战斗、家园白天、家园夜晚、新商人区域)。
功能包括曲目淡入淡出、平滑交叉渐变、音乐播放列表或文件夹中的分类循环,以及通过可配置的json文件实现可选随机播放。

请注意:
你必须在模组中新建或创建一个名为 Resources 的文件夹,
其中包含对应每个游戏状态的相应子文件夹,
并为每个子文件夹提供你自己的音轨文件。

或者,如果你计划将其设置为桌面上的自定义文件夹(指向某个音乐文件夹),
你必须确保每个游戏状态文件夹的路径中,
对于不在模组 Resources 文件夹内的自定义路径,
都使用双斜杠分隔符。

明白我的意思了吗?
否则,如果文件夹不存在、文件夹未在配置json中定义以供模组读取,或者音轨损坏,你将收到游戏内错误且不会播放任何音乐。目前仅支持mp3文件...虽然应该不会太难,但请注意,网站可能会删除空文件夹。
请参考下面的“如何操作”部分来设置 :)

最新更新日志:

版本1.7.2

  • 减少了在探索过程中因10秒过渡而跳过的音乐的日志冗余信息,不再每秒记录,且不可配置
  • 减少非音乐源的日志刷屏,预期每60秒一次而非每秒一次
  • 将静音的原版音乐频率的日志刷屏从每秒一次减少到每10秒一次
  • 新增配置JSON功能,可自定义商人区域的淡入淡出效果
    "交易员淡出持续时间": 3.0
  • 新增对配置json的功能支持,可配置
    "状态变化延迟": 2.0,
    意味着它会淡入淡出
    游戏情境追踪
    并显示日志
    FadeInAudio 表示音轨进度和完成情况
    以及记录等待状态变更延迟的日志,通常为1.5秒,然后播放音轨,模仿原版风格
  • 修复了构建和测试较新版本mod时的常见问题,禁用了与原版音乐重叠的mod
  • 修复了当轨道完成阈值设置为1.0时,在游戏状态下完全完成轨道后仅播放一次而不循环的问题。
    现在它会播放并循环。

主要关键特性:

  • 自定义曲目:将您的MP3文件加载到类别文件夹中。
  • 动态播放:音乐通过 dmsConductor 根据游戏状态自适应调整,7天死亡动态音乐指挥器
  • 淡入淡出过渡:曲目和状态之间的平滑淡入和淡出,通常硬编码为2秒左右。
  • 循环或交叉淡入淡出:循环播放类别中的所有曲目或在它们之间进行交叉淡入淡出,如果启用了随机播放,则进行交叉淡入淡出。
  • 洗牌选项:随机播放每个类别状态下类别内的曲目顺序。
  • 切换控制:通过按键(默认:小键盘8)或控制台命令(toggleexploration)启用/禁用。

使用方法:

准备:

  1. 下载并安装模组,
    • CustomMusicMod 文件夹复制到你的 Mods 目录中(例如,C:\Program Files (x86)\Steam\steamapps\common\7 Days To Die\Mods\)。
  2. 添加你的音乐:
    • 将你截取或自有的MP3文件放入 Mods\CustomMusicMod\Resources\ 下的子文件夹中:
      • 探索音乐 文件夹
      • 悬疑音乐 文件夹
      • 战斗音乐 文件夹
      • HomeDay 文件夹
      • HomeNight 文件夹
      • TraderMusic 文件夹
    • 每个类别最多20条轨道(可在配置json中调整)。
  3. 启动游戏:模组会自动加载并等待切换,但可在配置json中设置。

配置:

编辑 Mods\CustomMusicMod\config.json 以自定义设置:

  • explorationTrackssuspenseTrackscombatTrackshomeDayTrackshomeNightTracksTraderMusic:MP3文件的文件夹路径(相对于模组文件夹或绝对文件夹路径)。
  • volume: 0.0 到 1.0(默认值:0.8)。
  • loopCategoryTracks: true 表示循环播放类别中的所有曲目(默认值:true);false 表示在类别内进行交叉淡入淡出。
  • shuffleCategoryTracks: true 表示随机播放顺序(默认:false)。
  • maxExplorationTracksmaxSuspenseTracksmaxCombatTracksmaxHomeDayTracksmaxHomeNightTracks:每个类别的最大音轨数(默认值:20)。
  • enableCustomMusicByDefault: 设为 true 将在生成时默认启用自定义音乐模组(默认值:false)。
  • toggleKey: 切换音乐的按键(默认:Keypad8)。使用 Unity KeyCode 名称进行更改。
  • 'trackCompletionThreshold': 0.9,如果设置为0.9,表示在游戏状态下需要播放歌曲的100%
    就像依次是轨道的百分比,并在轨道完成之前循环到下一个
  • 'respectMusicSlider': true, 在游戏内音乐滑块范围内调整音量(默认为true),但如果设为false则回退到config json中的音量设置。
  • 'debugBloodMoonLogs': false, 启用详细的血月日志记录(默认为 false,限制为约30秒间隔)。
  • 'traderFadeDuration': 3.0,可配置商人区域的淡入淡出效果,进入和离开时复制原版风格
  • 'stateChangeDelay': 2.0, 可配置的游戏状态变化淡入淡出效果,例如从探索切换到交易或从探索切换到战斗等,2秒延迟以模仿原版风格

默认配置 JSON:

{
    "explorationTracks": "资源/探索音乐",
    "suspenseTracks": "Resources/SuspenseMusic",
    "combatTracks": "战斗音乐资源",
    "homeDayTracks": "Resources/HomeDay",
    "homeNightTracks": "Resources/HomeNight",
    "traderTracks": "Resources/TraderMusic",
    "音量": 0.8,
    "循环类别音轨": true,
    "随机分类音轨": false,
    "最大探索轨迹数": 20,
    "最大悬念音轨数": 20,
    "最大战斗音轨数": 20,
    "最大家庭日轨迹数": 20,
    "最大夜间家庭轨道数": 20,
    "最大商人轨迹数": 20,
    "默认启用自定义音乐": true,
    "切换键": "小键盘8",
    "完成度阈值": 0.9,
    "尊重音乐滑块": true,
    "调试血月日志": false
    "状态改变延迟": 3.0,
    "交易员淡出时长": 3.0
}

已知问题:

  • 小问题,来自原版的 无法播放已禁用的音频源 日志(无害但偶尔会出现,因为它正在静音片段)。
  • 微妙的问题,探索状态可能会因 dmsConductor 中原始ClipSets的短暂中断而从“探索”闪烁为 ——但已实施5秒延迟来缓解,如果持续无状态超过5秒将暂停音乐,否则继续播放曲目...但同样由于这些ClipSets源自原始wav片段集,其中部分短于10秒左右。
    (功能正常,但可能会遇到中断情况)

免责声明:

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

安装:

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

致谢:

感谢 TechFreq 和 A.I、ChatGPT 或 Microsoft CoPilot A.I 或 Twitter/X 的 Grok AI 帮助我创建这个模组。
由于我对游戏的模组制作知识非常有限,只能边学边做,没有它们的帮助我无法完成这些工作。
同时也感谢整个模组社区的集体智慧和支持。
我非常感谢您对模组的任何反馈。

支持公告:

该模组可能会也可能不会被交叉发布到7DaystoDieMods。
对于想要支持'TechFreqs'作品的用户,通过ModsFire网站下载(广告支持,每次下载可获利)
此外,他们的网站上还提供直接的MEGA镜像链接,
NexusMods上也有直接链接,但这些不会按点击或下载获利,而是通过捐赠点或'TechFreqs'的PayPal或Ko-fi捐赠链接运作。
然而,捐赠并非强制要求,但每一份支持都将助力前行,为未来的模组、音乐和漏洞修复注入动力。
如果你愿意慷慨解囊,通过Ko-fi或PayPal页面捐赠,那将对我帮助巨大,但这并非必须!
所以再次感谢你们的出色表现,并查看了模组帖子。

社交媒体:

如果你欣赏“TechFreqs”的工作并想表示支持,可以使用这个捐赠链接,尽管这不是必须的。
Kofi页面:https://ko-fi.com/techfreq
1
感谢大家查看模组帖子、分享并享受任何模组内容本身。再次感谢!祝游戏愉快!

喜欢这个模组吗?有反馈、想法或需要故障排除?
加入TechFreq超酷小队Discord服务器!https://discord.com/invite/SQCnGjNUhw
快来Discord和我们一起畅聊游戏、分享梗图,还有更多模组更新等你发现!
至于TechFreqs音乐,它是免版税音乐,可用于您的项目或休闲聆听!
源音乐文件可提供,欢迎随时询问,可在discord上获取!或获取更多内容!
TechFreqs 社交平台:https://beacons.ai/techfreq
来看看今天的幕后花絮吧!再次感谢大家查看模组帖子。
NERDY BITS 感谢阅读 命中远方

你的模组将《七日杀》原版音乐替换为你的MP3文件,并通过dmsConductor使音乐与游戏状态同步,实现流畅的淡入淡出和播放列表氛围。
它会静音游戏原有的音频源,在玩家身上添加自定义音频源,并像专业DJ一样循环或交叉淡入淡出曲目。
可通过小键盘8键或输入 togglemusic 命令来切换开关。

音频劫持(技术细节)

状态嗅探:窥探 GameManager.Instance.World.dmsConductor.CurrentSectionType,将 SectionType.Combat 映射为 "combat"。不涉及 ClipSet 篡改——仅进行状态监控。

原生静音:查找 clip.name 类似 "Suspense" 的 AudioSources,随后设置 source.enabled = false; source.volume = 0f。将其暂存以备后续使用。

自定义接管:在玩家的 GameObject 上生成一个新的 AudioSource,通过 WWW 加载 MP3 至 AudioClips,并以 bypassEffects = true 播放以实现原始输出。

渐变技术:协程在 2 秒内线性插值音量(0 → 0.6 或反向)。loopCategoryTracks = false 时通过重叠的 FadeOutAudio/FadeInAudio 触发交叉渐变。

播放列表逻辑:GetNextTrackIndex() 遍历(shuffleCategoryTracks ? Random.Range : index++)直至达到 maxCombatTracks(20)。在 !isPlaying 时循环或交叉渐变。

回退机制:无/血月 → 5 秒延迟 → 淡出 → 通过 source.enabled = true 恢复原生音频。

极客精髓

这是一次隐秘的越权操作——绕过Unity的ClipSet系统,用野生的AudioSource劫持音频管道,并将游戏的情绪触发器绑定到你的播放列表上。完全掌控,无需核心修改。

之前的更新日志:

v1.6.8/1.6.9

  • 新增了TraderMusic文件夹,用于存放资源文件夹或与其他文件夹相同的绝对路径!
    淡入淡出音轨,用你的自定义音乐进出商人区域!
  • 新增提示:血月结束后可重新启用被软禁用的模组。
  • 修复了禁用模组时与其他音乐重叠的问题
  • 修复了即使禁用模组,也会在并非通过命令的情况下错误显示血月激活的问题
  • 修复了问题,使命令 toggleexploration 能够作为启用和禁用功能的替代选项
  • 修复了音量与滑块不同步的问题,现在保持同步并通过配置json动态更新音量
  • 新增了在配置json中调试血月状态的日志记录功能,目前默认值为true以检查血月状态,但由于每隔几秒就会在日志中产生大量记录,暂时无法通过设置为false或true来完全控制。不过当血月激活或未激活时仍能正常工作,只是日志中会有大量记录。这部分代码借鉴了与血月音乐模组类似的代码逻辑。
  • 可以单独使用,或者与血月音乐模组一起安装时相互补充。
  • 之前的调试血月日志没有效果,但在1.6.9版本中生效了!
  • 无论设置为true还是false,界面都更简洁清晰

V1.4.8

  • 在配置json中新增了trackCompletionThreshold,0.9表示在游戏状态变更前需完成当前曲目90%(相当于原逻辑的100%完成度),避免因游戏状态快速切换(如从探索突然转战斗甚至无状态)导致歌曲被强行中断的问题。
  • 新增血月激活时的工具提示信息!这样当血月发生时,模组会暂时禁用直至血月结束
  • 新增工具提示信息,用于在血月结束后重新启用模组(称为“血月后”),以便探索音乐恢复播放
  • 为保持一致性而进行的新名称更改
  • 修复了轨道快速结束的问题,即使在C#代码中设置了更长的延迟
  • 为血月变化和血月结束时的检测状态添加了更多日志
  • 新增功能每30秒运行一次,用于检查血月类别状态,但减少日志中的刷屏信息
  • 新命令 toggleexploration 替代了原先的命令,因为它与血月音乐模组的 togglemusic 命令产生了冲突
  • 如果使用了血月音乐模组,会予以尊重,因此安装后不会影响其他模组,因为它们更加独立。
  • 修复了之前的问题,快速轨道,抑制血月音乐,因为它会播放一秒后立即停止,希望不再抑制其他声音甚至游戏内声音

V1.31

  • 新增功能,轨道过渡,采用3秒交叉淡入淡出效果,与原版音乐沉浸感相匹配
  • 新增功能,淡入淡出效果类似于交叉淡入淡出,但会根据探索、悬疑、战斗、家园白天或家园夜晚等状态或状态,在启用或禁用模组时对音轨进行淡入淡出处理。
  • 新增内容,主要修复了一个错误:当配置中该选项的值设为true时,切换开关无法禁用模组的问题
    "默认启用自定义音乐": 是或否,
    所以现在可以了,
  • 新增功能:如果模组默认启用,则提示信息会显示音乐将自动播放,无需手动切换。除非你想禁用此功能,但必须将此值设为true才能生效。"enableCustomMusicByDefault": true,
  • 新增功能,若设置为true(如上文提示信息所示)将自动启用,但即使不通过键盘频繁切换,仅使用命令同样可启用此功能。
  • 适用于v1.4和v1.3版本,修复了一些细微的调试日志问题,以及一些原版音乐的小瑕疵,但功能正常
    并根据游戏新系统进行了调整,可以说
    预计在F1日志中会看到关于dmsConduction未找到或找到的消息
  • 修复了初始轨道切换过快的问题,但预计在探索和战斗情况下游戏内会有快速变化

版本1.21
主要特点:

  • 自定义音轨:将您的MP3文件加载到类别文件夹中。
  • 动态播放:音乐通过dmsConductor基本适应游戏状态,7天死亡动态音乐指挥器
  • 淡入淡出过渡:曲目和状态之间的平滑淡入淡出,通常硬编码为2秒左右。
  • 循环或交叉淡入淡出:循环播放类别中的所有曲目或在它们之间交叉淡入淡出,如果启用了随机播放,则进行交叉淡入淡出。
  • 洗牌选项:随机排列每个播放类别状态下的曲目顺序。
  • 切换控制:通过按键(默认:小键盘8)或控制台命令(togglemusic)启用/禁用。