方块入门
本页面镜像自 BedrockWiki
根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。
格式版本 & 最低引擎版本 1.20.30
本页介绍基础方块特性。更多方块组件内容请访问此处。
原版方块的逻辑是硬编码实现的,无法被修改或访问。
Minecraft 基岩版允许我们添加具有多种类原版特性的自定义方块。自定义方块可以拥有多阶段生长(如植物)、方向朝向等实用功能。
本教程将指导如何在稳定版 Minecraft 中创建基础方块。
注册方块
方块定义的结构与实体类似:包含行为描述和定义方块特性的组件列表。
与实体不同,方块除RP/blocks.json
外没有其他资源定义。
以下是将自定义方块加入创造模式物品栏所需的最低限度行为包代码:
{
"format_version": "1.20.30",
"minecraft:block": {
"description": {
"identifier": "wiki:custom_block",
"menu_category": {
"category": "construction", // 方块所在的创造模式物品栏或配方书标签
"group": "itemGroup.name.concrete", // 方块所属的可展开分组(可选)
"is_hidden_in_commands": false // 是否在命令中隐藏该方块(可选)
}
},
"components": {} // 必须保留,即使为空!
}
}
方块描述
- 定义方块的
identifier
- 采用命名空间:标识符
格式的唯一ID - 配置方块的
menu_category
归属- 可选参数
group
和is_hidden_in_commands
- 可选参数
添加组件
目前我们的自定义方块使用的是默认组件值(可参考此处)。
现在开始自定义功能配置!
{
"format_version": "1.20.30",
"minecraft:block": {
"description": {
"identifier": "wiki:custom_block",
"menu_category": {
"category": "construction"
}
},
"components": {
"minecraft:destructible_by_mining": {
"seconds_to_destroy": 3
},
"minecraft:destructible_by_explosion": {
"explosion_resistance": 3
},
"minecraft:friction": 0.4,
"minecraft:map_color": "#ffffff",
"minecraft:light_dampening": 0,
"minecraft:light_emission": 4,
"minecraft:loot": "loot_tables/blocks/custom_block.json"
}
}
}
minecraft:destructible_by_mining
定义玩家破坏方块所需时间(目前无法为不同工具设置不同破坏时间)minecraft:destructible_by_explosion
定义抗爆性。值越高,被炸毁概率越低minecraft:friction
定义方块摩擦系数。例如灵魂沙具有高摩擦值会减缓玩家,冰的低摩擦值则产生滑溜效果。经典方块(如木头/石头)的摩擦系数为0.4
minecraft:map_color
是地图上显示的代表色(十六进制)。#ffffff
代表白色,可通过在线取色器获取其他颜色代码minecraft:light_dampening
定义光线阻挡程度minecraft:light_emission
定义方块发光等级minecraft:loot
定义战利品表路径。若移除,方块将默认掉落自身。更多战利品表信息请访问此处
更多组件配置请访问方块组件手册!
应用纹理
WARNING
RP/blocks.json
会忽略命名空间。即使不写命名空间或随意填写也不会产生影响。若自定义方块与原版方块同名(仅命名空间不同)可能导致问题
方块音效也可在RP/blocks.json
中定义
对于基础的16×16×16像素方块,纹理应在RP/blocks.json
中定义。
如需使用自定义模型,应使用geometry(几何组件)和material_instances(材质实例)。
{
"format_version": [1, 1, 0],
"wiki:custom_block": {
"textures": "custom_block", // 此纹理简称需在下方terrain_texture.json中定义
"sound": "grass"
}
}
现在需要在RP/textures/terrain_texture.json
中关联纹理简称与图片路径:
{
"texture_name": "atlas.terrain",
"resource_pack_name": "wiki", // 资源包ID
"padding": 8, // 防止纹理视觉溢出
"num_mip_levels": 4, // 远距离/倾斜视角下的纹理质量
"texture_data": {
// 我们的纹理简称:
"custom_block": {
"textures": "textures/blocks/custom_block" // 指向图片文件名
}
}
}
分面纹理
纹理可按面分别设置。例如一个自定义"指南针方块"可使用以下✨惊艳✨纹理:
textures/blocks/compass_block_down.png

textures/blocks/compass_block_up.png

textures/blocks/compass_block_north.png

textures/blocks/compass_block_east.png

textures/blocks/compass_block_south.png

textures/blocks/compass_block_west.png

对应的blocks.json
配置如下:
{
"format_version": [1, 1, 0],
"wiki:compass_block": {
"textures": {
"down": "compass_block_down",
"up": "compass_block_up",
"north": "compass_block_north",
"east": "compass_block_east",
"south": "compass_block_south",
"west": "compass_block_west"
}
}
}
若使用材质实例,配置示例如下:
"minecraft:material_instances": {
"*": {
"texture": "compass_block_down" // 此纹理用于破坏粒子效果
},
"up": {
"texture": "compass_block_up"
},
"north": {
"texture": "compass_block_north"
},
"east": {
"texture": "compass_block_east"
},
"south": {
"texture": "compass_block_south"
},
"west": {
"texture": "compass_block_west"
}
}
对应的terrain_texture.json
数据:
{
"texture_name": "atlas.terrain",
"resource_pack_name": "wiki",
"padding": 8,
"num_mip_levels": 4,
"texture_data": {
"compass_block_down": {
"textures": "textures/blocks/compass_block_down"
},
"compass_block_up": {
"textures": "textures/blocks/compass_block_up"
},
"compass_block_north": {
"textures": "textures/blocks/compass_block_north"
},
"compass_block_east": {
"textures": "textures/blocks/compass_block_east"
},
"compass_block_west": {
"textures": "textures/blocks/compass_block_west"
},
"compass_block_south": {
"textures": "textures/blocks/compass_block_south"
}
}
}
定义名称
最后定义方块的显示名称:
tile.wiki:custom_block.name=自定义方块
tile.wiki:compass_block.name=指南针方块
更多本地化内容请访问文本与翻译指南。
成果总结
通过本教程,您已掌握:
...但这只是开始,更多精彩内容等待探索!