Skip to content

纹理

这篇文档的作用主要就是简单讲解一下纹理(贴图)相关的内容, 包括纹理文件的存放, 代码注册时和纹理有关的方法说明

正文

纹理文件存放位置

纹理文件存放在assets/${modid}/textures目录下, 其中包含有block, entity, item以及models等文件夹, 分别对应不同的纹理类型, 其中

  • block对应方块的纹理
  • item对应物品的纹理
  • entity对应着实体(生物还有三叉戟, 箭矢等特殊处理模型的纹理)
  • models文件夹内还有一层armor, 主要用于存放盔甲的纹理

以上介绍的几个目录是在KubeJS注册中常用的几个文件夹, 在高级一点的gui啥的就不是KubeJS能做到的了

在Mod的注册方式中不单单将纹理放在对应的位置, 还需要在模型中将纹理给应用上, 详见关于模型的初步讲解

注册时的方法介绍

在物品的注册中只有一个texture方法, 这个直接将对应路径写上去即可(这个方法一般用于指定某些不在默认位置的纹理, 还有那种指定一张白底图然后直接着色处理的情况(需要搭配color方法使用))

但是在方块的注册中有着textureAll, textureSide, texture三种方法负责处理方块上不同位置的纹理

首先是textureAll, 这个方法用于将一个纹理渲染到每个面上, 只需要填入路径定位到纹理文件即可, textureSide同理, 不同的是这个方法用于将一个纹理渲染到侧边的面上

texture则用于将一个纹理渲染到指定位置, 根据probejs的提示, 在填写纹理路径之前还需要填入一个id的参数, 这个参数用于指明这个纹理在哪个位置上

类似于熔炉那样的不同的面有不同纹理的方块, 模型文件中会有一个textures的键, 键值中的每个键名都是一个纹理对象, 键值则是纹理的路径, 其中id就是纹理在纹理数组中的每一个键名

json
{
	"parent": "minecraft:block/orientable",
	"textures": {
		"front": "minecraft:block/furnace_front",
		"side": "minecraft:block/furnace_side",
		"top": "minecraft:block/furnace_top"
	}
}

我们来看原版的熔炉模型

front对应着正面的纹理 side对应着侧边的纹理 top对应着顶面的纹理

在上面的方法中第一个参数中的参数则是需要填入这些键名[String], 然后才是纹理的路径

Contributors

Changelog