“连接纹理”是指某一方块的纹理在相邻方块满足特定条件时发生变换,以满足特定的视觉呈现需求。经典的使用例有 Mekanism热力蒸馏方块、资源包中广泛存在的连接玻璃。“连接纹理”可被统称为 CTM(Connected Texture Method),为避免混淆,以下将名叫 ConnectedTexturesMod 的模组称为 CTM Mod,CTM 则指“连接纹理”这一行为本身。

连接纹理模组一览和简单介绍-第1张图片成型的热力蒸馏塔

连接纹理模组一览和简单介绍-第2张图片同色相连的玻璃

CTM 不是 Minecraft 原版的内容,而是由各种模组添加渲染连接纹理的能力,由资源包对特定方块加入纹理。也就是说,仅安装连接纹理模组的情况下,不会有纹理连接的效果

因为不是原版的内容,所以由不同模组提供的 CTM 有不同的格式。只有当同时安装格式匹配的模组和模组/纹理包时,CTM 纹理才可见。常见的格式有:

每种格式有自己的写法和特点,按需选择安装即可。 一般来说同格式写法不会大改,不同实现主要是代码上有区别。几个格式虽然支持的 CTM 种类不同,但是基本都包括了最简单的四图简化 CTM、柱状 CTM 等,虽然纹理排布可能不同,但最终实现效果类似。如果需要,也可以摸索排布规律,实现部分种类 CTM 纹理的互转,所以不要纠结于格式,做一半要改也来得及。

MCPatcher 格式的纹理一般存储在 minecraft/mcpatcher/ctm/** 下(1.13后所有mcpatcher文件夹下的文件应全部改放在optifine文件夹下),纹理以块为单位,properties 文件内存储信息。Wiki 有官方的(英文)和我自己在看的森罗万象(中文)。连接时使用的纹理是一堆特定状态下的小纹理,而不像其他模组一样拼接在一起。

连接纹理模组一览和简单介绍-第3张图片一资源包内绿色玻璃的全尺寸 CTM 和 properties 文件

CTMMod 格式的纹理存储位置不定,存储信息在与模型引用纹理同名的 mcmeta 文件下,类似原版动态纹理的写法。而连接时使用的纹理,则是拼接而成的一张大图,或者多张大图,或者其他的,具体由选择的加载方式而定。Github 上有一个 WiKi(英文),很久不更新了,仍然可用,但是一些新加的的特性(例如使用 Json 自定义 CTM 逻辑、proxy 新写法)没写上去。

连接纹理模组一览和简单介绍-第4张图片凿子的雕凿石头

Fusion 格式类似 CTM,连接纹理是类似的一整张图,信息也存储在 mcmeta 文件,支持的种类更多一点,有自己的模板库和详尽的 WiKi(英文),不再赘述。

Athena 格式写在方块状态文件里面。有官方的 WiKi(英文),可以作为高版本首选。

以下是赛特斯石英块的一个示例。

assets/ae2/blockstates/quartz_block.json

{
  "variants": {
    "": {
      "model": "ae2:block/quartz_block"
    }
  },
  "athena:loader": "athena:ctm",
  "ctm_textures": {
    "center": "ae2:block/quartz_block_center",
    "empty": "ae2:block/quartz_block_empty",
    "horizontal": "ae2:block/quartz_block_h",
    "vertical": "ae2:block/quartz_block_v",
    "particle": "ae2:block/quartz_block"
  }
}

你可以在 assets/ae2/textures/block 下找到 ctm_textures 里的这四张图。它们都是拆分的状态纹理。