Sound Culling

Sound Culling

该项目添加了一个高度优化的声音管理系统,能够动态剔除和削弱重叠的音频,以防止声音混乱,并在声音密集的环境中消除帧数下降的问题。

🎧 Sound Culling

Sound Culling 是一款轻量级客户端模组,可减少农场、机械密集区域、刷怪塔以及拥挤多人环境中的过度重叠音效。

它会将附近的音效分组到可配置的区域,并且仅在超过设定的音效限制后才应用音量衰减或完全静音。重要音效会受到保护,方向优先级功能则能让相关音效更加清晰。


✨ 主要特性

  • 🔉 动态音量衰减: 降低过度重叠的音效,而不是突然静音所有声音。
  • 👀 方向优先级: 一旦达到限制,玩家前方的音效将优先于其身后的重叠音效。
  • 📊 按类别限制: 可为以下类别分别配置限制:
    • 敌对生物
    • 中立生物
    • 方块与机械
    • 环境音效
    • 其他音效类别
  • 🌍 区域音效限制: 控制可配置区域内最大的组合音效活动量。
  • 🛡️ 重要音效保护: 重要音效,如玩家受伤、爆炸、雷声、激活的苦力怕和激活的TNT,会受到保护。
  • 🎨 游戏内配置: 安装 Mod Menu 后可通过其调整设置。
  • 💬 游戏指令: 无需 Mod Menu 即可配置模组。
  • 🔧 自动验证: 无效的配置值会被自动修正。
  • ⚡ 轻量级实现: 直接挂钩音效引擎,无需持续扫描世界。

📐 工作原理

该模组会在可配置的三维区域内追踪音效。

当相同或总音效数超过设定的阈值时:

  1. 受保护和列入白名单的音效会正常播放。
  2. 相关的界面音效和 Minecraft 音乐会忽略。
  3. 玩家前方的重叠音效会获得优先级。
  4. 相关性较低的重叠音效会被更大幅度地衰减。
  5. 超出硬性限制的音效会被阻止启动。

在达到配置的限制之前,所有音效会正常播放。


🛠️ 配置

如果安装了 Mod Menu,请打开:

模组 → Sound Culling → 配置

Mod Menu 是可选的,模组本身运行不需要它。

配置值存储在:

config/soundculling.json

可用设置包括:

  • 区域总数: 一个区域内允许的最大组合音效数量。
  • 时间窗口: 用于衡量重叠音效的时间段。
  • 区域大小: 每个追踪区域的尺寸(以方块为单位)。
  • 敌对限制: 敌对生物音效的限制。
  • 中立限制: 中立生物音效的限制。
  • 方块限制: 方块、机械、活塞及类似来源音效的限制。
  • 环境限制: 环境音效的限制。
  • 默认限制: 其他音效类别的后备限制。
  • 调试日志: 定期显示汇总的静音统计信息。

🚀 游戏指令

  • /soundculling — 显示当前设置和会话统计信息。
  • /soundculling limit <1-50> — 更改默认音效限制。
  • /soundculling total <1-100> — 更改区域总音效限制。
  • /soundculling window <5-200> — 更改评估窗口(以游戏刻为单位)。
  • /soundculling region <2-64> — 更改区域大小(以方块为单位)。
  • /soundculling reset — 重置会话统计信息。

📦 当前维护的版本

  • Minecraft 26.1.2 — Fabric
  • Minecraft 26.2 — Fabric

较旧的 Fabric、Forge 和 NeoForge 版本将继续可用,但可能不会收到未来更新。


📋 需求

  • Fabric Loader
  • Fabric API
  • Mod Menu 是可选的,仅图形化配置界面需要它