Skip to content

自定义交叉贴图方块 ​

交叉贴图方块使用引擎预设的十字交叉模型渲染,效果类似原版甘蔗、蜘蛛网、花草等方块——两个面片以 X 形交叉排列。你不需要手动制作方块模型,只需在资源包的 blocks.json 中配置即可启用。

前置条件

请先阅读 自定义基础方块 了解方块的注册流程和 JSON 组件体系。交叉贴图方块使用 format_version: "1.10.0",不需要设置 base_block,不需要开启实验性玩法。

概述 ​

交叉贴图是一种渲染预设:引擎会自动在一个方块空间内生成两个对角面片,将贴图以 X 形交叉方式渲染。这种渲染方式被广泛用于原版的植物类方块(花、草、甘蔗、枯灌木)和蜘蛛网。

与自定义方块模型不同,交叉贴图方块不需要你编写 netease:block_geometry 模型文件。你只需要在资源包的 blocks.json 中配置三个关键字段即可激活预设模型。

交叉贴图方块适合以下场景:

  • 自定义花卉、草丛、藤蔓
  • 自定义蛛网类陷阱方块
  • 自定义水生植物外观
  • 任何需要十字交叉渲染的装饰性方块

blocks.json 配置字段 ​

在资源包根目录的 blocks.json 中,为你的方块配置以下字段:

字段类型说明
netease_modelstring必填,设为方块的 identifier,启用网易预设模型渲染
model_item_texturestring必填,物品栏中显示的物品图标贴图名称(对应 item_texture.json 中的资源名)
model_texturesarray(string)必填,模型使用的方块贴图名称列表(对应 terrain_texture.json 中的资源名)

必须同时设置

model_item_texture 和 model_textures 必须同时配置,缺少任何一个都不会生效。

完整示例:自定义蛛网方块 ​

下面演示一个完整的交叉贴图方块:自定义蛛网方块 mymod:custom_web。

行为包 — 方块定义 ​

文件路径:行为包/netease_blocks/custom_web.json

json
{
    "format_version": "1.10.0",
    "minecraft:block": {
        "description": {
            "identifier": "mymod:custom_web",
            "register_to_create_menu": true,
            "category": "Nature"
        },
        "components": {
            "minecraft:destroy_time": { "value": 4.0 },
            "minecraft:block_light_absorption": { "value": 0 },
            "netease:render_layer": { "value": "alpha" },
            "netease:solid": { "value": false },
            "netease:pathable": { "value": true },
            "netease:aabb": {
                "collision": {
                    "min": [0.0, 0.0, 0.0],
                    "max": [0.0, 0.0, 0.0]
                },
                "clip": {
                    "min": [0.0, 0.0, 0.0],
                    "max": [1.0, 1.0, 1.0]
                }
            }
        }
    }
}

资源包 — terrain_texture.json ​

文件路径:资源包/textures/terrain_texture.json

json
{
    "resource_pack_name": "mymod",
    "texture_name": "atlas.terrain",
    "texture_data": {
        "mymod:web_texture": {
            "textures": "textures/blocks/custom_web"
        }
    }
}

资源包 — item_texture.json ​

文件路径:资源包/textures/item_texture.json

json
{
    "resource_pack_name": "mymod",
    "texture_data": {
        "mymod:web_item": {
            "textures": "textures/items/custom_web_item"
        }
    }
}

资源包 — blocks.json ​

文件路径:资源包/blocks.json

json
{
    "format_version": [1, 1, 0],
    "mymod:custom_web": {
        "netease_model": "mymod:custom_web",
        "model_item_texture": "mymod:web_item",
        "model_textures": [
            "mymod:web_texture"
        ]
    }
}

资源包 — 本地化 ​

文件路径:资源包/texts/zh_CN.lang

tile.mymod:custom_web.name=自定义蛛网

贴图文件 ​

  • 方块贴图:资源包/textures/blocks/custom_web.png
  • 物品图标:资源包/textures/items/custom_web_item.png

完整示例:自定义花卉方块 ​

下面是另一个交叉贴图方块的例子——一种自定义花卉。

行为包 — 方块定义 ​

文件路径:行为包/netease_blocks/blue_flower.json

json
{
    "format_version": "1.10.0",
    "minecraft:block": {
        "description": {
            "identifier": "mymod:blue_flower",
            "register_to_create_menu": true,
            "category": "Nature"
        },
        "components": {
            "minecraft:destroy_time": { "value": 0.0 },
            "minecraft:block_light_absorption": { "value": 0 },
            "netease:render_layer": { "value": "alpha" },
            "netease:solid": { "value": false },
            "netease:pathable": { "value": true },
            "netease:redstone_property": { "value": "break_on_push" },
            "netease:may_place_on": {
                "block": ["minecraft:grass", "minecraft:dirt", "minecraft:farmland"],
                "spawn_resources": true
            },
            "netease:aabb": {
                "collision": {
                    "min": [0.0, 0.0, 0.0],
                    "max": [0.0, 0.0, 0.0]
                },
                "clip": {
                    "min": [0.2, 0.0, 0.2],
                    "max": [0.8, 0.8, 0.8]
                }
            }
        }
    }
}

资源包 — blocks.json ​

json
{
    "format_version": [1, 1, 0],
    "mymod:blue_flower": {
        "netease_model": "mymod:blue_flower",
        "model_item_texture": "mymod:blue_flower_item",
        "model_textures": [
            "mymod:blue_flower_texture"
        ]
    }
}

常见问题 ​

交叉贴图方块渲染为实心方块 ​

原因: 你可能没有在 blocks.json 中配置 netease_model 字段,或者 netease_model 的值与方块 identifier 不一致。请确认 netease_model 的值与方块的 identifier 完全相同。

物品栏图标显示为紫黑色 ​

原因: model_item_texture 指向的资源名在 item_texture.json 中不存在,或者贴图文件路径不正确。请确认 item_texture.json 中已配置对应的资源名,并且贴图文件已放入 textures/items/ 目录。

交叉贴图只显示一面 ​

原因: 渲染层设置可能不正确。交叉贴图方块应使用 alpha 渲染层,并将 minecraft:block_light_absorption 设为 0:

json
"netease:render_layer": { "value": "alpha" },
"minecraft:block_light_absorption": { "value": 0 }

model_item_texture 和 model_textures 的区别 ​

model_item_texture 是方块在物品栏中显示时使用的平面图标,对应 item_texture.json 中的资源名。model_textures 是方块在世界中渲染时使用的贴图,对应 terrain_texture.json 中的资源名。两者引用不同的贴图系统,必须分别配置。

下一步 ​