贴图

贴图是本篇教程中对于所有使用原版 font 替换以达到显示图片效果的统称。像在服务器中显示下面这种图标的,均是贴图的定义范围内。

贴图的作用很大,你可以在服务器的各个角落使用图片代替文字以达到更美观、更有沉浸感的效果。

新建一个贴图包(v.3.3.0 版本以前)

第一步:首先这是我们的第一个 ItemsAdder 配置,我们需要在 items_packsresource_pack/assets 文件夹下各创建一个名称随意但必须由小写英文、数字和下划线组成的文件夹。

第二步:在 items_packs/你新建的文件夹/ 文件夹内新建一个名称随意的 .yml 后缀的文件,并使用文本软件打开。这是这个包里的一个配置文件,你可以在一个包(也就是这里的文件夹内)创建无限多的配置文件,它们同属于这个包内。

第三步:在 resource_pack/assets 文件夹内新建与第一步一样名称的文件夹,并在此文件夹内再新建 textures 文件夹。

第四步:以此为模板复制到另外的文件夹内,以后你再新建新的贴图包时,只需要改动上面三步已经新建好的文件即可,不必再浪费时间建立文件和文件夹。

新建一个贴图包(v.3.3.0 版本以后)

第一步:首先这是我们的第一个 ItemsAdder 配置,我们需要在 contents 文件夹创建一个新的文件夹,文件夹名称随意但必须由小写英文、数字和下划线组成。

第二步:在 你新建的文件夹 下新建两个文件夹(这个文件夹就是包),名字分别为 configsresourcepack

第三步:在 contents/你新建的文件夹(即包名)/configs 文件夹内新建一个名称随意的 .yml 后缀的文件,并使用文本软件打开。这是这个包里的一个配置文件,你可以在一个包的物品配置文件夹(也就是这里的文件夹内)创建无限多的配置文件,它们同属于这个包内。

第四步:在 contents/你新建的文件夹(即包名)/resourcepack 文件夹内新建一个文件夹,它的名称就是 namespace 的名称,在本教程中,这里的文件夹名称应该和你的包名一致,也就是你第一次创建的文件夹的名称,并在此文件夹内再新建 textures 文件夹。

第五步:以此为模板复制到另外的文件夹内,以后你再新建新的贴图包时,只需要改动上面四步已经新建好的文件即可,不必再浪费时间建立文件和文件夹。

新建第一个贴图

v.3.3.0 版本以前:使用文本软件打开 items_pack/你新建的文件夹/你新建的文件.yml 文件,将下面的模板内容复制进去:

v.3.3.0 版本以后:使用文本软件打开 contents/你新建的文件夹(即包名)/configs/你新建的文件.yml 文件,将下面的模板内容复制进去:

info:
  namespace: "你新建的文件夹"
font_images:
  smile: # <----- 这个贴图的id
    path: "smile.png" # <----- 这个贴图的路径
    symbol: "鄿" # <----- 这个贴图替换的字符
    scale_ratio: 9 # <----- 这个贴图的大小
    y_position: 8 # <----- 这个贴图的上下偏移

另请注意,贴图id不能出现大写字母,只能是小写字母、数字、下划线组成。

我们以新建一个 idsmile 的贴图为例,在上面的配置中,我们需要做以下操作:

path 的配置

路径的配置非常关键,出错贴图就显示不出。我们在上文新建文件夹时,特别说明在 resource_pack/assets/你新建的文件夹 (v.3.3.0 版本以后为 包名/resourcepack/你新建的文件夹(和包名一致))内再新建名称为 textures 的文件夹,这时你应该把贴图放置在这个 textures 文件夹内,在配置中,无需填写这个 textures 的目录。

这么做的原因是,resource_pack/assets (v.3.3.0 版本以后为 包名/resourcepack)内本质上是原版的资源包,需要遵循原版的资源包结构。英文单词 texture 的意思是纹理(也就是很多人理解的材质)的意思,所以,所有的贴图等都需要放置在这个文件夹内才会被读取,其他文件夹是不会读取的。ItemsAdder 在读取这个 smile 的贴图路径时,如果没有特别再标注其他的 namespace,只会从该 namespace 下的 textures 文件夹开始读取,所以千万不要在前面加上 textures 目录。

另请注意,path 选项中不能出现大写字母,只能是小写字母、数字、下划线组成。

symbol 的配置

这个选项的可选的,但笔者是非常推荐的。如果你不配置该选项,ItemsAdder 将会随机为你分配一个字符作为替换。如果资源包内的 font json配置被各种原因丢失数据、替换等,会再次打乱重新分配,如果你直接使用字符在各个地方显示该图片,将会导致你不得不重新配置一遍,这是非常麻烦的,所以直接固定死是非常稳妥的方式。

这里的 symbol 不建议随意设置自己喜欢的字符,因为玩家可能会误打误撞发现或者拆解你的资源包发现替换的字符,然后在服务器里使用替换的字符在聊天框刷屏等等。最为稳妥的办法是使用 Unicode 字符。Unicode 字符一般不会被使用,它一般以 \u 开始,后续跟着四个字母或者数字。例如 \uE026 是一个正确的 Unicode 字符。

例如:

  space1:
    path: 'font/space_nosplit.png'
    symbol: "\uE041"
    y_position: -32768
    scale_ratio: -7

在游戏中,我们需要将 Unicode 字符变为中文字符以使得其显示,我们可以通过 这个网址 进行转换。在左边输入 Unicode 字符后点击上方的 UNICODE转中文 按钮获取游戏内实际使用的替换字符。

由于本篇教程编写时间较早,全篇查找此错误用法费时费力,故只在此说明,后续不再提及。

scale_ratio 和 y_position 的配置

这点是非常麻烦的所在,由于你制作的贴图的替换字符,而字符显示(也就是贴图显示)的位置很可能和你的理想位置不同,包括地方大小不匹配或者上下不匹配,所以你必须修改这里来匹配。

scaleratio 是按比例缩放大小,以原图大小为标准。y_position 是上下调整大小,以像素点为单位。

如果你是用于聊天框内(也就是一行文字大小),那么上面所给的示例就是非常标准的两个数据。

我们需要不断调试、修改这两个数据,找到贴图能够在正确位置显示的最佳合适值。

另外的可选选项配置

另有 permissionshow_in_gui 选项可使用,它们分布是玩家使用该贴图需要的权限节点和是否在 /ia 中显示该贴图。

由于在 首次使用 一章中,我们并没有主动给予玩家在任何位置使用表情(也就是这些贴图)的权限,所以这里不填写,玩家也无法正常使用。

另外的 /ia GUI中,由于这里并没有设置另外一个概念——类别,所以玩家也不会在 /ia GUI中看到这个。

上面两个选项是可有可无,建议直接省略,除非特有需要,后文不再提及。

包括这两个选项的物品配置如下:

smile:
  permission: smile
  show_in_gui: true
  path: "smile.png"
  symbol: "鄿"
  scale_ratio: 9
  y_position: 8

使用贴图

当你完成上文的操作后,在使用 /iareload/iazip 后,你只需使用 symbol 选项内的字符即可显示该贴图,以该配置为例子,即为

贴图的限制

  • 贴图必须是 256 x 256 分辨率及以下。

  • y_position 的值必须小于 scale_ratio

最后更新于