EchoSight

EchoSight

将Minecraft音频转化为可读的HUD:每个声音都会在威胁环上获得方向、距离和优先级,外加一个重制的字幕面板。专为聋哑及听力受损玩家打造。客户端运行,无混合注入,无ESP。

EchoSight

为 Minecraft 提供的无障碍与声音感知功能。仅客户端,基于 Fabric,可在任何服务器上运行。

Minecraft 中一半关乎生死的信息都来自声音:苦力怕的嘶嘶声、你身后的洞穴蜘蛛、拉满的弓弦、溺水的声音。对于失聪和听力困难的玩家——以及任何静音游戏的玩家——这条信息渠道根本不存在。原版字幕只会告诉你发生了什么事情,却不会告诉你它发生在哪里、有多远,或者它有多重要。

EchoSight 会分类客户端播放的每一个声音,并将其渲染为方向、距离和优先级。


功能特性

定向威胁环

每一个声音都会在你准星周围变成一个弧形指示器:

通道 编码信息
角度 方位——每帧重新计算,因此当你转身时弧形会随之扫动
轨道(3 条环) 距离区间:≤12 / ≤32 / >32 格
粗细 严重程度——无需颜色即可辨识
颜色 声音身份——不同的生物和事件保持可区分性

优先级分类

  • 致命——已点燃的苦力怕、循声守卫、恶魂火球、TNT
  • 危险——洞穴蜘蛛、熔岩、飞来的箭矢
  • 信息类——拾取物品、经验值、村民、门、箱子

四种预设,一键切换

全部 → 除噪音外全部 (默认) → 仅重要声音 → 仅致命声音。 针对单个声音的自定义规则始终优先于预设,且双向生效。

色盲友好调色板

基于 Okabe–Ito 配色,另附绿色盲、红色盲、蓝色盲及单色变体。严重程度可通过弧形粗细辨识,且每条字幕行都带有独特的形状图标——颜色绝非唯一的信息通道。

重制的字幕面板

分组与去重(重复触发的声音源只显示为一行并附带重复次数,而非刷屏)、以格为单位的实时距离、方位指示器,以及优先级排序——致命信息行永远不会被琐碎信息挤出屏幕底部。

持续声音真正持续显示

只要唱片机真的在播放唱片,它就会一直显示在 HUD 上,而不是在有人按下播放键两秒后就消失。只要声音引擎仍在播放该声音源,且你仍在其可闻半径内,其信息就会持续更新——走近时它会出现,走远时它会淡出。

可选的屏幕边缘脉冲

为关键声音提供的“触觉”提示。默认关闭,受严重程度门控,采用平滑衰减而非频闪效果——任何闪烁整个屏幕的选项都是主动开启的,因为对于光敏性玩家来说,这是危害,而非辅助。

游戏内调整

一个基于你实际听到过的声音构建的逐事件设置界面:可搜索、可按被我修改过或无规则筛选,每行附带出现次数和“最近听到”时间。两个设置界面都不会暂停游戏,且威胁环在界面上方保持可见——你可以对照实时声音调整半径、不透明度和持续时间。

15 种语言

英语、俄语、西班牙语、葡萄牙语(巴西)、法语、德语、意大利语、荷兰语、波兰语、乌克兰语、土耳其语、简体中文、繁体中文、日语、韩语。声音名称来自 Minecraft 自身的字幕键,因此也会跟随你的客户端语言。


公平竞技——这不是透视作弊(ESP)

边界在代码层面强制执行,而不仅仅是意图声明:

  • EchoSight 只处理客户端实际接收并开始播放的声音——它挂钩的是与原版字幕相同的 SoundEventListener。
  • 声音处理路径中没有任何实体查询、射线检测或世界查询。声音事件 ID 是唯一的信息来源,因此墙后的生物对你来说的可识别程度,与对有听力的玩家完全一致——绝无额外信息。
  • 没有实际方向意义的声音(UI、音乐、与听者相关的声音)将不显示方位,而不是误导性地指向你脚下。
  • 不会显示任何原版音频本未携带的信息。

有一个刻意的例外,且方向相反:EchoSight 不受你的音量滑块限制。即使主音量为零,它也能正常工作——这正是其目标用户的核心需求。


安装方法

  1. Minecraft 26.2,需安装 Fabric Loader ≥ 0.19.3 和 Java 25
  2. 安装 Fabric API
  3. 将 jar 文件放入 .minecraft/mods/ 目录

仅客户端——适用于任何服务器,包括原版服务器。Mod Menu 为可选安装;若已安装,也可通过“配置”按钮访问设置。

按键 操作
K 打开 EchoSight 设置
未绑定 开关 EchoSight

配置文件位于 .minecraft/config/echosight.json,但所有设置均可通过界面访问——无需手动编辑文件。


给资源包作者的信息

规则由数据驱动。在任何资源包的 assets/<命名空间>/echosight/rules/<任意名称>.json 路径下放置一个 JSON 文件即可——无需模组依赖,无需编写代码。资源包按加载顺序合并,按 F3+T 可重新加载。

​ {   "category_fallback": { "hostile": "dangerous" },   "rules": [     { "match": "minecraft:entity.creeper.primed", "severity": "lethal", "glyph": "burst" },     { "prefix": "minecraft:entity.warden.", "severity": "lethal", "glyph": "eye" },     { "match": "mymod:entity.thing.growl", "severity": "dangerous", "label": "mymod.echosight.thing" }   ] }

字段 含义
match 完整声音 ID;允许使用 * 通配符
prefix 以此字符串开头的任何 ID
severity lethal | dangerous | info | ignored
glyph burst spike fang eye flow block dot dash
label 可选的翻译键,用于覆盖原版字幕
replace 顶层字段;丢弃此文件之前合并的所有规则

匹配优先级:精确 ID → 字面字符最多的模式 → SoundSource 回退。内置规则集为 26.2 版本 1873 个声音 ID 中的 618 个编写了显式规则,其余则有意保留其分类——规则只针对分类错误的地方。无法识别的声音仍会通过回退机制显示,而不会悄然消失。


技术说明

  • 零 Mixin。声音捕获使用官方认可的 SoundManager.addListener 钩子;HUD 使用 Fabric 的 HudElementRegistry。更新时不会因 Mixin 而导致脆弱性问题。
  • 方位来自音频引擎自身的听者变换,而非玩家偏航角——因此屏幕上的方向与你实际听到声音的耳朵方向一致,并且在第三人称和旁观模式下依然准确。
  • 原版字幕被包装而非移除——关闭面板时可干净地回退到原版渲染。
  • 图标和弧形是程序化生成的,而非纹理贴图——在任何 GUI 缩放下都清晰锐利。

作者:Shinoame。