纹理
这篇文档的作用主要就是简单讲解一下纹理(贴图)相关的内容, 包括纹理文件的存放, 代码注册时和纹理有关的方法说明
正文
纹理文件存放位置
纹理文件存放在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
就是纹理在纹理数组中的每一个键名
{
"parent": "minecraft:block/orientable",
"textures": {
"front": "minecraft:block/furnace_front",
"side": "minecraft:block/furnace_side",
"top": "minecraft:block/furnace_top"
}
}
我们来看原版的熔炉模型
front
对应着正面的纹理
side
对应着侧边的纹理
top
对应着顶面的纹理
在上面的方法中第一个参数中的参数则是需要填入这些键名[String], 然后才是纹理的路径