Guides / Building & Resources

使用资源包隐藏和调整 HUD 元素大小

快捷栏、准星和经验条都位于同一个材质图集中。本文将介绍如何使其部分内容不可见、哪些内容无法移动,以及用于自定义 HUD 文本的字体技巧。

没有用于隐藏快捷栏的配置。但有一个材质——将其部分内容设置为透明即可在视觉上移除它,同时所有功能保持不变。

所有内容都在一个文件中

assets/minecraft/textures/gui/sprites/hud/

现代版本将旧的 widgets.png 图集拆分为独立的精灵图:hotbar.pngcrosshair.pngexperience_bar_background.pngheart/full.png 等。用相同尺寸的完全透明 PNG 替换其中任何一个即可将其隐藏。

相同尺寸很重要。如果一个 182×22 的快捷栏位置期望的是一个 1×1 的透明 PNG,它会拉伸而不是消失,从而产生一条模糊的带状物。

你能做什么,不能做什么

能:

  • 通过使精灵图透明来隐藏任何元素
  • 重新设计所有内容——不同的心形、极简的准星、主题快捷栏
  • 通过在相同大小的画布内绘制较小的内容来改变其显示大小

不能:

  • 移动元素。位置是硬编码的;只有美术作品是数据。
  • 独立于框架隐藏快捷栏槽位——它们是一个精灵图。
  • 改变槽位的功能。这仅是外观上的,物品仍然可以选择。

最后一点值得明确说明:隐藏的快捷栏仍然是快捷栏。这并非库存限制,玩家仍然可以使用这些槽位。

九宫格陷阱

几个 HUD 精灵图是九宫格(nine-sliced)的——角固定,边缘拉伸。PNG 旁边的 .mcmeta 声明了边界:

{ "gui": { "scaling": { "type": "nine_slice", "width": 200, "height": 20,
  "border": { "left": 2, "top": 2, "right": 2, "bottom": 2 } } } }

替换此类精灵图而不匹配 mcmeta 文件会导致拉伸错误。如有疑问,请将原版 .mcmeta 复制到您的 PNG 旁边。

通过字体自定义 HUD 文本

真正强大的技巧:定义一个字体提供器(font provider),其字形是图像,然后使用 /title 或 Boss 血条打印这些字符。文本将渲染为您的美术作品。

assets/<namespace>/font/default.json
{ "providers": [
  { "type": "bitmap", "file": "my_pack:font/icons.png", "ascent": 8, "height": 9,
    "chars": [""] }
] }

使用私用码点( 及以上),这样就不会与真实文本冲突。然后 /title @a actionbar {"text":""} 会在动作栏上绘制您的图像。

这就是服务器如何在客户端无需任何模组,仅通过资源包显示自定义血条、货币图标和进度条的方式。

负空间字体

定义一个具有负 advances 的字形,您可以向后移动光标,将图像相互叠加。这是服务器 HUD 看起来像真实界面的技术。它很繁琐,但却是定位任何东西的唯一方法。

HUD 自定义器和字体包制作工具中隐藏或重新设计 HUD 元素,并使用为您分配的码点构建字体提供器。

HUD 自定义与字体包制作 →

More guides

Browse all →

还想找别的我的世界工具?

一整套在浏览器里运行的生成器、查看器和转换器,全部免费。