末地成就弹窗,是那个永远弹不出来的
进度弹窗按游戏自身的像素尺寸绘制,而末地成就是玩家截图最多、还原得最糟的一个。界面尺寸是整数倍,所以应以原生像素绘制、保留透明通道以免出现白边、用最近邻而非双线性缩放;Java版与基岩版的边框和文字也不一样。
末地成就是最常被仿制的弹窗,而几乎每一次还原都栽在同一个地方:作者先按屏幕上看着顺眼的尺寸画出来,然后再缩小。弹窗不是一张弹窗的图片。它是在游戏自身的像素网格上绘制的精灵图,而网格才是关键所在。
弹窗到底是什么
进度弹窗是一个小窗口:一个背景边框、一个图标槽位,以及两行文字。图标是进度的展示物品,按与物品栏相同的分辨率渲染。里面没有任何平滑的东西。每条边缘都是整数个像素,因为游戏就是这么绘制的,然后窗口再按你的 GUI 尺寸(Scale)缩放它。
最后这一点才是陷阱。GUI 尺寸是整数倍率,所以尺寸 2 的弹窗正好是两倍像素,绝不会是 1.5 倍。如果你以小数尺寸导出 PNG,它在你的编辑器里看着没问题,但拿去和任何截图对比都会不对。
Java 与 Bedrock 并不一致
Java 从屏幕右上角绘制弹窗,并水平滑入。Bedrock 同样锚定在右上角,但边框美术和文字度量不同,所以照着 Java 截图描出来的 PNG 在 Bedrock 里会偏几个像素。开始画之前就要确定你对齐的是哪个版本,而不是画完再说。
像素尺寸规则
| 元素 | 绘制尺寸 |
|---|---|
| 图标 | 物品原生纹理尺寸 |
| 边框 | 1 像素黑色描边加 2 像素灰色带,随其他部分一同缩放 |
| 文字 | 游戏的字体网格,1 像素对 1 像素 |
一张 16x16 的图标就是 256 像素的数据。用双线性过滤把它放大,会毁掉让它看起来像 Minecraft 的唯一要素。请使用最近邻,或者更好:按原生尺寸绘制,让观看者自己的缩放去完成剩下的工作。
透明度不是可选项
弹窗有阶梯状的、像素切割的圆角,在与背后世界相接处是完全透明的——边框里任何地方都没有半透明。请导出为保留 alpha 通道的透明 PNG。如果你的工具把它压平到白色背景上,弹窗就会在它出现的每一张缩略图里带上一圈白色光晕。
段位徽章用的是同一套网格
服务器段位徽章是同一个问题、不同的轮廓:一个小图标、一圈边框、一段文字,全都在同一套像素网格上。你能画好其中一个,就能画好另一个,而让徽章显得官方的像素纪律,和让弹窗显得真实的那套完全一样。
无论做哪一个,都请按原生像素尺寸、带 alpha、不做重采样,在成就与徽章制作工具里完成。