经得起每一道倒角的 GUI 换色:靠亮度,而非平涂
给 Minecraft 的物品栏铺上一层纯色,会抹掉所有阴影与高光。GUI Colorizer 用亮度驱动渐变,把它们保留下来:暗像素依旧暗、高光依旧亮,只换掉色相。适用于物品栏、箱子、熔炉、快捷栏和经验条。
每一个手工修改的 GUI 材质包都会以同样的方式翻车:有人打开物品栏贴图,把灰色背景一股脑填成纯色,结果看起来像贴了张贴纸。格子失去了内凹的阴影,快捷栏选中框失去了边缘,经验条变成一条实心色带。GUI Colorizer 通过亮度重新着色,而不是替换像素,从而避开了这个问题。
为什么平涂会毁掉 GUI
Minecraft 的界面贴图并不是纯色加描边。每个格子、按钮和面板都是一张小小的灰度图,其中每个像素的明度编码了深度。格子是下凹的——左上边缘更暗,右下边缘更亮——而面板和按钮是凸起的,左上受光、右下带阴影,主体为中灰调。一张 18x18 的格子贴图有 324 个像素,其中大多数与相邻像素只差几个色阶。
把这 324 个像素全换成同一个 RGB 值,你就丢掉了唯一承载倒角的通道。你真正想要的是保留明暗关系,只把它们底下的色相换掉。
用亮度驱动渐变
这个工具读取每个像素的亮度,把该亮度映射到你选定的渐变上,再把结果写回去。格子顶部那个暗像素依然是暗的——只是从深灰变成了深蓝。高光依然是高光。
正因如此,一段很短的渐变就够用了——工具为面板使用三个色标,为选择框和经验条使用两个:
| 亮度区间 | 在源贴图中是什么 | 会变成什么 |
|---|---|---|
| 低 | 倒角阴影、格子内凹 | 最暗色标 |
| 中 | 面板主体、按钮表面 | 渐变的中点 |
| 高 | 高光、悬停边缘 | 最亮色标 |
只要色标从暗到亮排列,倒角就能保留下来。如果色标的亮度彼此接近,原图的每一种明暗都会落到几乎相同的颜色上——于是平贴纸的问题又从另一个方向回来了。
哪些能这样换色,哪些不能
工具覆盖的范围:物品栏界面、箱子和熔炉容器、快捷栏,以及经验条。这些都是玩家时刻盯着看的表面,也正因如此,一次糟糕的换色才会如此显眼。
不在覆盖范围内、但在你做出任何承诺之前值得了解的:世界贴图。红石材质包、盔甲材质包或鞘翅材质包是另一回事——那些是方块与实体图集,有自己的排布规则,再好的亮度渐变也修不好错位的盔甲纹饰。
Java 与 Bedrock 在这里分道扬镳
两个版本都在资源包内提供 GUI 贴图,但资源包的目录结构并不通用。Java 版资源包使用 assets/minecraft/textures/gui/,其中 pack.mcmeta 声明其格式范围(26.x 上为 min_format/max_format);Bedrock 版使用不同的文件夹根目录和自己的 manifest JSON。为其中一个版本构建的资源包无法在另一个版本中加载,所以在开始调渐变之前,先确定目标版本。
实用的操作顺序
- 选择渐变,而不是最终颜色:一个暗色标、一个亮色标,以及夹在两者之间的你的色相。
- 应用,下载资源包,放进 resource packs 文件夹。
- 在同一次游戏里检查物品栏、箱子、熔炉和快捷栏——在物品栏上看着合适的渐变,可能会把熔炉的燃料箭头冲淡。
- 只有在倒角显得过于生硬时才收窄跨度,或者显得过于平淡时才拉宽跨度。
在 GUI Colorizer 里把渐变调一次,剩下的明暗交给亮度去处理。