菜单
最后更新于
菜单是对于贴图的重要应用之一,所有的菜单插件都支持使用贴图替换背景。像下面这样的,就是使用贴图实现的自定义菜单背景。
该功能所有插件都支持,只要它能自定义箱子UI的标题,所以不存在只能 TrMenu 这样做的限制。(我不知道为什么那么多人会这么觉得)
同样新建一个贴图,贴图的大小是随意的,只要分辨率在 256 x 256 以内即可。如果你的贴图大小超过了这个值,那么只能通过分割的形式进行显示,届时调整贴图位置的工作复杂量指数倍上升。
每个箱子 UI 都有一个标题,我们通过在标题处写上菜单背景贴图所替换的字符即可将其显示。所以,本质上玩家在打开带有贴图的菜单时,他面对的仍是箱子 UI,只是我们将标题的贴图放大,以至于它覆盖掉了下面的箱子 UI 内的所有地方(包括格子),以达到自定义菜单的效果。
一般来说,如果你是显示正常大箱子(6行格子)大小的 UI 的话,呈现正方形的长宽比即可。如果长是 175 像素点,那么每行(箱子格)大约是 20 像素点(包括格子外围的装饰)。
总而言之,贴图的分辨率大小在这里没有固定的标准,由于每个人的习惯、风格和像素画需要的像素点不同,往往分辨率大小也不是固定的。作为新手的你可以使用其他人做好的菜单贴图进行练手(例如 ItemsAdder/resource_pack/assets/mcguis/textures
内插件自带的一些菜单贴图模板,v.3.2.0 版本后为 ItemsAdder/contents/_iainternal/resourcepack/assets_iainternal/textures/gui
文件夹),反复调整 scale_ratio
和 y_position
的值,直到自己满意的位置(不上下偏差,物品能正常在所画的格子中间显示)为止,这样你就可以自己制作一个菜单模板,以后再做第二个菜单背景贴图时,上手快很多。
在调整完 scale_ratio
和 y_position
的值后,我们发现左右仍存在偏差,这时我们可以通过这个字符串来调整左右显示位置。我们只需要在菜单 UI 的标题的贴图所替换的那个字符前添加 :offset_数值:
即可,例如 :offset_-8:
,直到找到自己满意的位置为止。
一般来说,由于字符本身与箱子 UI 的边缘本身也存在间距,因此尽管你在绘制贴图时是从最左边贴边开始绘制,在实际显示时仍会先右偏移,偏移的像素点往往是 8 个像素点,所以在字符前加上 :offset_-8:
即可。
添加的贴图往往是莫名其妙的变成黑色调的,这是因为箱子 UI 标题自动添加的黑色颜色代码导致的,我们只需要再在上文的 :offset_数值:
前添加 &f
即可。
在箱子 UI 的标题通过 &f:offset_数字:替换的字符
格式显示菜单的背景贴图。
例图按钮同样也是通过贴图显示的,也同样在箱子UI的标题中用贴图替换的字符显示,并使用 &f:offset_数字:替换的字符
格式,你需要来回调整贴图的位置才能达到满意的效果。
有时,固定使用字符也不是我们需要的效果,就以最开始给的例图来看,我们想要这个按钮在解锁和未解锁时是不同的贴图,这时我们需要自定义一个 Placeholder,这种功能在 TAB 插件中存在且功能丰富,并且笔者也为该插件翻译了 Wiki,感兴趣可以自行查看。
首先我们需要了解,用物品来显示菜单内的按钮是不现实、也是非常复杂的,大多数都是直接使用贴图显示。以最上面给的图片为例,我们想要做到玩家碰到背景贴图所绘制的按钮那里后有一个物品 Tip 告诉玩家这个按钮具体作用,但我们不想让玩家真正的看到这个物品,这时,我们需要新建空白贴图的物品。
我们可以使用 ItemsAdder 的自定义物品(后文提及)制作空白贴图的物品,并在菜单中使用该物品,但在本篇教程中,笔者考虑到部分插件可能并不支持 CustomModelData 或者其他情况,只能使用原版自带的物品,因此介绍一个更加简便的方法。
我们通过替换原版资源包下的 结构空位 物品的材质,来实现空白贴图的物品。该物品在单机使用较多,服务器下几乎用不到,玩家也无法获取该物品,所以使用它是再合适不过的。
第一步:打开 ItemsAdder/resource_pack/assets/minecraft/item
文件夹(如果没有对应的文件夹,依次新建即可)。
v.3.3.0 版本以后为打开 ItemsAdder/contents/_iainternal/resourcepack/assets/minecraft/item
。
第二步:绘制一个 16x16 分辨率的空白贴图,就像这样。
第三步:将这个图片放置到第一步的文件夹,取名为 structure_void.png 文件。
第四步:菜单中的物品 ID 填写为 structure_void 即可。
我们假设你已了解 ItemsAdder 的自定义物品功能,如果你尚未掌握,请跳过这里,在掌握后返回这里继续阅读。
第一步:使用 /iacustommodeldata 物品id
获取到该物品的 CustomModelData 值。
第二步:在菜单插件内配置对应物品的 CustomModelData。主流菜单插件均支持:包括 DeluxeMenu、TrMenu,请仔细阅读它们的 Wiki。