自定义交叉贴图方块
交叉贴图方块使用引擎预设的十字交叉模型渲染,效果类似原版甘蔗、蜘蛛网、花草等方块——两个面片以 X 形交叉排列。你不需要手动制作方块模型,只需在资源包的 blocks.json 中配置即可启用。
前置条件
请先阅读 自定义基础方块 了解方块的注册流程和 JSON 组件体系。交叉贴图方块使用 format_version: "1.10.0",不需要设置 base_block,不需要开启实验性玩法。
概述
交叉贴图是一种渲染预设:引擎会自动在一个方块空间内生成两个对角面片,将贴图以 X 形交叉方式渲染。这种渲染方式被广泛用于原版的植物类方块(花、草、甘蔗、枯灌木)和蜘蛛网。
与自定义方块模型不同,交叉贴图方块不需要你编写 netease:block_geometry 模型文件。你只需要在资源包的 blocks.json 中配置三个关键字段即可激活预设模型。
交叉贴图方块适合以下场景:
- 自定义花卉、草丛、藤蔓
- 自定义蛛网类陷阱方块
- 自定义水生植物外观
- 任何需要十字交叉渲染的装饰性方块
blocks.json 配置字段
在资源包根目录的 blocks.json 中,为你的方块配置以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
netease_model | string | 必填,设为方块的 identifier,启用网易预设模型渲染 |
model_item_texture | string | 必填,物品栏中显示的物品图标贴图名称(对应 item_texture.json 中的资源名) |
model_textures | array(string) | 必填,模型使用的方块贴图名称列表(对应 terrain_texture.json 中的资源名) |
必须同时设置
model_item_texture 和 model_textures 必须同时配置,缺少任何一个都不会生效。
完整示例:自定义蛛网方块
下面演示一个完整的交叉贴图方块:自定义蛛网方块 mymod:custom_web。
行为包 — 方块定义
文件路径:行为包/netease_blocks/custom_web.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
{
"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
{
"resource_pack_name": "mymod",
"texture_data": {
"mymod:web_item": {
"textures": "textures/items/custom_web_item"
}
}
}资源包 — blocks.json
文件路径:资源包/blocks.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
{
"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
{
"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:
"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 中的资源名。两者引用不同的贴图系统,必须分别配置。
