Skip to content

方块入门

本页面镜像自
BedrockWiki

根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。

格式版本 & 最低引擎版本 1.20.30

本页介绍基础方块特性。更多方块组件内容请访问此处

原版方块的逻辑是硬编码实现的,无法被修改或访问。

Minecraft 基岩版允许我们添加具有多种类原版特性的自定义方块。自定义方块可以拥有多阶段生长(如植物)、方向朝向等实用功能。

本教程将指导如何在稳定版 Minecraft 中创建基础方块。

注册方块

方块定义的结构与实体类似:包含行为描述和定义方块特性的组件列表。

与实体不同,方块除RP/blocks.json外没有其他资源定义。

以下是将自定义方块加入创造模式物品栏所需的最低限度行为包代码:

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归属
    • 可选参数groupis_hidden_in_commands

方块描述还包含状态特性,相关内容请参见对应页面。

添加组件

目前我们的自定义方块使用的是默认组件值(可参考此处)。

现在开始自定义功能配置!

json
{
  "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"
    }
  }
}

更多组件配置请访问方块组件手册!

应用纹理

WARNING

RP/blocks.json会忽略命名空间。即使不写命名空间或随意填写也不会产生影响。若自定义方块与原版方块同名(仅命名空间不同)可能导致问题

方块音效也可在RP/blocks.json中定义

对于基础的16×16×16像素方块,纹理应在RP/blocks.json中定义。

如需使用自定义模型,应使用geometry(几何组件)material_instances(材质实例)

json
{
  "format_version": [1, 1, 0],
  "wiki:custom_block": {
    "textures": "custom_block", // 此纹理简称需在下方terrain_texture.json中定义
    "sound": "grass"
  }
}

现在需要在RP/textures/terrain_texture.json中关联纹理简称与图片路径:

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配置如下:

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"
    }
  }
}

若使用材质实例,配置示例如下:

json
"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数据:

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"
    }
  }
}

定义名称

最后定义方块的显示名称:

c
tile.wiki:custom_block.name=自定义方块
tile.wiki:compass_block.name=指南针方块

更多本地化内容请访问文本与翻译指南

成果总结

通过本教程,您已掌握:

...但这只是开始,更多精彩内容等待探索!

下一步学习