Bedrock Wiki
  • QQ
  • 原站
新手入门指南
  • Guide
    • 1. 简介
      指南
    • 2. 附加组件详解
    • 3. 软件与准备工作
    • 4. 项目设置
    • 5. 创建自定义物品
    • 6. 创建自定义实体
    • 7. Blockbench:建模、贴图与动画制作
    • 8. 添加战利品表、生成规则与合成配方
  • Extra
    • a. 理解JSON
    • b. 下载示例包
    • c. 故障排除
      帮助
    • d. 高级清单文件指南
    • e. 格式版本
    • f. Android 项目设置
JSON UI
  • General
    • JSON UI 入门指南
      指南
    • 最佳实践
      指南
  • Tutorials
    • Aseprite 动画
    • 保留标题文本
      中级
    • 修改服务器表单
      中级
    • 字符串与数字转换
      中级
    • 按钮与开关
      新手
    • 添加HUD界面元素
      新手
  • Documentation
    • JSON UI 文档
Meta
  • Style Guide
  • 使用JSON模式(Schemas)
  • 实用链接
  • 版本控制
  • 附加包性能优化
  • Q&A
    • GameTest 问答集 2021/08/06
    • 世界生成问答 2024/11/15
    • 延迟渲染技术预览问答 2024/02/23
    • 方块与物品问答 2024/08/30
    • 脚本与编辑器问答 2023/09/22
NBT
  • General
    • .mcstructure
  • Tutorials
    • 扩展结构限制
      简单
    • 教育版中的实验功能
      简单
  • NBT in Depth
    • NBT 库列表
      专家
    • NBT读取示例
      专家
    • 关于NBT(命名二进制标签)
      专家
世界生成
  • General
    • 世界生成入门
      指南
      实验性
    • 特性类型
      实验性
    • 生物群系
      指南
      实验性
  • Tutorials
    • 特征(Feature)的方块条件
      实验性
    • 生成地表区块
      实验性
    • 生成自定义矿石
      实验性
    • 生成自定义结构
      实验性
    • 高度图噪声地形
      实验性
  • Documentation
    • 生物群系标签
动画控制器
  • 动画控制器入门指南
    指南
  • 实体命令
    中级
  • AFK检测器
  • 将Molang变量转换为计分板数值
  • 死亡指令
  • 重生指令
命令
  • General
    • 命令方块入门指南
    • 函数
    • NBT 命令
    • 坐标系
    • 方块状态
    • 理解目标选择器
    • 记分板操作
  • Commands
    • Execute
      简单
    • Playanimation
    • 伤害
    • 播放音效
  • On Event Systems
    • 玩家首次加入时
    • On Player Join
    • 玩家离开时触发
    • 玩家死亡事件
    • 玩家重生事件系统
    • 首次加载世界时
  • Scoreboard Systems
    • 实体计数器
    • 计分板计时器
    • 比较与获取分数
  • Techniques
    • 执行逻辑门
    • MBE - Max的方块实体
    • FMBE - 创建显示实体的新方法
    • 视线检测
    • 移动状态检测
    • 轨道摄像机
  • Useful Creations
    • 多人位置重排系统
      函数
    • 自定义合成台
      简单
实体
  • General
    • Intro to Entities BP
      指南
      新手
    • 实体资源包入门
      指南
      新手
    • 实体问题排查指南
      帮助
    • NPC对话系统
      中级
    • 实体事件
      新手
    • 实体属性
    • 渲染控制器
      新手
    • 生成规则
  • Tutorials
    • 任意坐标系间的坐标转换(世界、实体、骨骼)
      中级
    • 创建船只
      中级
    • 实体手持物品
      中级
    • 实体攻击机制
      中级
    • 实体睡眠机制
      中级
    • 实体碰撞体
      中级
    • 实体移动
    • 实体计时器
      中级
    • 无敌实体
      新手
    • 村庄机制实现指南
    • 检测其他实体
      中级
    • 生成已驯服的实体
      脚本
      中级
    • 视线检测实体
      中级
    • 禁用队友伤害
      中级
    • 范围效果云入门指南
      中级
    • 虚拟实体
      新手
    • 飞行实体控制
      中级
  • Documentation
    • Vanilla Usage Spawn Rules
    • 原版使用组件
    • 抛射物
    • 虚拟组件
    • 运行时标识符
    • 非生物实体运行时标识符
战利品、配方与交易
  • General
    • 交易行为
  • Documentation
    • 战利品表
    • 交易表
    • 合成配方
    • 物品函数
  • Tutorials
    • 随机化结构战利品
      简单
文档
  • Shared Constructs
  • Molang 查询详解
  • Vanilla Materials
    专家
  • 声音定义
  • 文件类型
  • 材质配置文件说明
    专家
  • 菜单分类
  • 资源包文件夹结构
  • 雾效ID
  • 高级Molang指南
方块
  • General
    • 方块入门指南
      指南
      新手
    • 方块组件
    • Block Tags
    • 方块状态
    • Block Traits
    • 方块排列组合
    • 方块事件
      脚本
    • 方块事件迁移指南
      帮助
    • 方块物品化
      中级
    • 方块问题排查指南
      帮助
  • Visuals
    • 方块剔除
      中级
    • 方块模型
      指南
      新手
      简单
    • 方块着色
      简单
    • 方块纹理动画
      中级
    • 方块纹理变体
      中级
  • Tutorials
    • Precise Interaction
      专家
      脚本
    • Precise Rotation
      专家
      脚本
    • 伪方块
      中级
    • 可旋转方块
    • 应用持续效果
      简单
      脚本
    • 矿石战利品表
      简单
      脚本
    • 规避状态值限制
      专家
  • Vanilla Re-Creations
    • 自定义作物
      中级
      脚本
    • 自定义活板门
      中级
      脚本
    • 自定义玻璃
      新手
      简单
      已弃用
    • 自定义釉面陶瓦
      简单
  • Documentation
    • 原版方块模型
      新手
    • 方块形状
    • 方块格式历史
    • 方块音效
服务器
  • Software
    • Bedrock Server Software
  • Protocols
    • Bedrock Protocol
    • NetherNet 协议
    • RakNet 协议
概念
  • contents.json
  • Molang
    中级
  • Rawtext
  • textures_list.json
  • 命名空间
  • 子包
  • 文本与本地化
  • 着色器
  • 纹理图集
    中级
  • 表情符号与特殊字符
  • 覆盖资源
    中级
  • 音效
    中级
物品
  • General
    • 物品入门指南
      指南
      新手
    • 物品组件
    • 物品标签
    • 物品事件
      脚本
    • Item Event Migration
      帮助
    • 物品问题排查指南
      帮助
  • Tutorials
    • Custom Pottery Sherds
    • 可投掷物品
      中级
    • 生成物品
      中级
    • 自定义武器
      简单
    • 自定义盔甲
    • 自定义食物
      简单
      脚本
    • 通过装备物品执行命令
      实验性
      中级
    • 高分辨率物品
  • Documentation
    • 附魔
    • Numerical Item IDs
    • Vanilla Usage Components
    • 原版物品标识符
      已弃用
    • 可附着物
      新手
    • 物品格式历史记录
视觉效果
  • General
    • 实体视觉效果简介
      指南
    • 基岩版建模指南
    • 动画中的特效
    • 基于数学的动画
      中级
    • 材质
      专家
    • 材质创作
      专家
    • 皮肤包制作指南
    • 自定义死亡动画
      中级
  • Tutorials
    • Glowing Entity Texture
    • 受伤动画
      中级
    • 实体纹理动画
      中级
    • 栓绳位置调整
      简单
    • 玩家几何模型
      新手
    • 移除实体阴影
      中级
    • 重绘生成蛋纹理
      新手
  • Ideas
    • 结构展示技巧
粒子效果
  • General
    • 粒子效果入门
      指南
  • Tutorials
    • 禁用粒子效果
      新手
  • Documentation
    • 原版粒子效果
脚本编写
  • General
    • 脚本编程入门
    • 什么是Script API?
    • API 模块
  • Tutorials
    • GameTests
      实验性
    • 简易聊天命令
      实验性
    • 脚本核心功能
    • 脚本表单
      实验性
    • 脚本请求API
      实验性
    • 阻止方块放置
  • Documentation
    • JavaScript 问题排查指南
    • Script Resources
    • Script Watchdog
      实验性
    • TypeScript
    • 引擎环境
虚拟现实
  • General
    • 启用VR模式
      指南
    • 配置资源包
      专家
  • Tutorials
    • 编辑你的第一个模型
      专家

特性类型

experimental
特性类型
  • 内容特性
    • 单方块特性
    • 矿石特性
    • 结构模板特性
    • 生长植物特性

最后更新于1.17.10版本

WARNING

部分设计用于引用外部文档的链接暂不可用,后续将更新指向正确资源。

此处列出的许多特性类型将在后续提供截图和其他参考资料。

内容特性 ​

内容特性是特性系统中定义方块放置的基础类型。它们不提供排列或组合功能,而是定义方块的基本布局,通常与代理特性结合使用或定位。

单方块特性 ​

json
{
    "format_version": "1.13.0",
    "minecraft:single_block_feature": {
        "description": {
            "identifier": "wiki:pier_planks"
        },
        "places_block": "minecraft:planks",
        "enforce_placement_rules": true,
        "enforce_survivability_rules": true,
        "may_replace": ["minecraft:water"],
        "may_attach_to": {
            "top": "minecraft:air",
            "sides": ["minecraft:planks", "minecraft:water"]
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

单方块特性在世界中放置单个方块。单独使用时通常效果有限,其真正价值在于与代理特性结合构建复杂结构。

通过"places_block"属性指定目标方块(即要放置的方块)。当前定义中无法实现变体功能,必须改用加权随机特性组合多个单方块特性。

条件限制 ​

可通过条件限制放置成功率。若任何条件不满足,方块将不会被放置。

WARNING

出于放置成功判定考虑,单方块特性若尝试替换自身会被视为失败。这对于聚合特性、条件列表等有重要影响。当仅考虑放置限制成功时,应使用搜索特性代理单方块特性。

固有方块条件 ​

单方块特性可绕过方块固有放置限制。

当"enforce_placement_rules"为true时(必须指定),方块必须通过其固有放置检查;设为false则忽略此检查。例如种子通常只能种在耕地上,但禁用检查后可在任意位置生成。

同样,必须指定的"enforce_survivability_rules"布尔属性控制是否进行方块存活检查。若为false,则忽略方块的存活条件。例如活珊瑚需要邻近水源的存活条件。

注意

世界生成时忽略方块的存活检查,不意味着游戏过程中会保持无效状态。方块更新会修正无效的存活状态。

替换条件 ​
json
"may_replace": [
    "minecraft:air",
    "minecraft:leaves",
    "minecraft:leaves2"
]
1
2
3
4
5

通过"may_replace"数组可指定替换列表,限制目标方块可替换的方块集合。若单方块特性输入位置的方块不在此列表中,放置将失败。

WARNING

与附着属性不同,"may_replace"必须声明为数组,不能直接引用单个方块。

附着条件 ​
json
"may_attach_to": {
    "top": "minecraft:air",
    "sides": [
        "minecraft:planks",
        "minecraft:water"
    ]
}
1
2
3
4
5
6
7

通过可选的"may_attach_to"属性指定附着规范,限制方块的邻接关系。可为每个可附着面设置属性:

  • "top"
  • "bottom"
  • "north"
  • "south"
  • "east"
  • "west"

每个属性可接受单个方块引用或此类引用的数组:

json
"bottom": {
    "name": "minecraft:stone",
    "states": {
        "stone_type": "andesite"
    }
}
1
2
3
4
5
6
json
"top": [
    "minecraft:netherrack",
    "minecraft:soul_sand"
]
1
2
3
4

"sides"属性可作为通配项匹配"north"、"west"、"east"和"south"。此外,"all"属性匹配全部6个面。这8个属性均为可选,但至少应指定一个。

对于侧面附着("north"、"south"、"east"、"west"),还有2个额外属性用于精细控制:

"min_sides_must_attach"设置需要成功附着的最小侧面数。若设为4,则必须全部四个侧面匹配;若设为2而只有1个侧面匹配,方块放置将失败。

"auto_rotate"使侧面定义被解释为相对关联而非严格方向。例如若需让方块在某一维度上夹在两个其他方块之间而不关心朝向,启用自动旋转并指定相对侧面即可实现任意朝向生效。

json
{
    "format_version": "1.13.0",
    "minecraft:single_block_feature": {
        "description": {
            "identifier": "wiki:force_conduit_block"
        },
        "places_block": "wiki:force_conduit",
        "enforce_placement_rules": true,
        "enforce_survivability_rules": true,
        "may_replace": ["minecraft:air"],
        "may_attach_to": {
            "north": "minecraft:glass",
            "south": "minecraft:glass",
            "auto_rotate": true
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

具体而言,上述代码会使力导管方块在任意朝向上夹在相邻玻璃之间。

矿石特性 ​

json
{
    "format_version": "1.13.0",
    "minecraft:ore_feature": {
        "description": {
            "identifier": "wiki:starlite_ore_cluster"
        },
        "count": 4,
        "replace_rules": [
            {
                "places_block": "wiki:starlite_ore",
                "may_replace": ["minecraft:stone"]
            }
        ]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

矿石特性在目标位置周围放置方块簇。通过替换规则控制所放置方块的变体。只有矿石特性中的方块数量是全局控制的,由"count"属性决定。

注意

无法控制簇的形状;要实现此功能,需使用散布特性配合自定义分布系统。

替换规则 ​

json
"replace_rules": [
    {
        "places_block": "infinitum:exposed_pylon",
        "may_replace": [
            "minecraft:air"
        ]
    },
    {
        "places_block": "infinitum:submerged_pylon",
        "may_replace": [
            "minecraft:water"
        ]
    }
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14

在矿石特性中,替换规则将目标方块与限制其放置的替换列表绑定,通过"replace_rules"提供。目标方块由必需的"places_block"属性指定;替换列表(通过"may_replace")是可选的数组,仅允许替换特定方块。对于簇中的每个位置,将选择第一个匹配规则的目标方块。若未提供替换列表,则该规则在其位置总会成功,后续规则将被忽略。

结构模板特性 ​

json
{
    "format_version": "1.13.0",
    "minecraft:structure_template_feature": {
        "description": {
            "identifier": "wiki:blackmoor_castle_feature"
        },
        "structure_name": "wiki:blackmoor_castle",
        "facing_direction": "random",
        "constraints": {
            "block_intersection": {
                "block_allowlist": [
                    "minecraft:air",
                    "minecraft:stone",
                    "minecraft:dirt",
                    "minecraft:grass"
                ]
            },
            "unburied": {}
        },
        "adjustment_radius": 4
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

结构模板特性通过引用保存的结构文件生成结构。这类特性以灵活性和功能性换取便利性。

WARNING

与数据驱动特性不同,结构特性中的方块若放置于水中_不会_自动变为含水状态。

通过"structure_name"字符串属性放置目标结构,其命名格式为命名空间:路径,用于从行为包中选择.mcstructure文件。结构文件必须放在顶级structures目录中,可在此目录下建立文件夹层级(非必需)。若直接放在structures目录中,则使用默认命名空间mystructure;若放在structures的子目录中,则使用该目录名作为命名空间。任何嵌套路径都会反映在路径中,最后省略文件扩展名(.mcstructure)。

示例:

结构文件位置对应的"structure_name"
/structures/well.mcstructure"mystructure:well"
/structures/farmstead/silo.mcstructure"farmstead:silo"
/structures/campsites/taiga/rustic/tents/wool.mcstructure"campsites:taiga/rustic/tents/wool"

WARNING

由于特性系统限制,大型结构可能需要预切割为较小结构并通过定位组合。

旋转 ​

json
"facing_direction": "south"
1

通过"facing_direction"属性进行结构旋转,接受四个横向方向:"north"、"south"、"east"和"west",以及额外的"random"属性实现每次实例随机旋转。南方是"默认"方向;使用此方向时结构向正_x_和正_z_方向延伸。

WARNING

对于非南向结构,并非所有方块状态都会更新以适应旋转,导致某些可旋转方块(如藤蔓)悬挂在无效位置。

旋转从俯视视角顺时针进行。旋转围绕结构原点而非中心进行,因此大型结构在随机旋转时可能因特性限制被截断。但使用固定旋转会以可靠(尽管不便)的方式定向。所有旋转从特性原点开始包含性地生成,具有以下方向:

旋转x 投影z 投影俯视顺时针旋转角度
"east"正负270°
"south"正正0°
"west"负正90°
"north"负负180°

因此,若7×6的特性从原点(64, 64)生成,东向旋转将占据横向区域(64, 58)到(70, 65)。

WARNING

由于旋转处理方式,结构特性通常需要通过加权随机特性和散布代理进行代理以偏移位置。

约束 ​

json
"constraints": {
    "block_intersection": {
        "block_whitelist": [
            "minecraft:sand",
            "minecraft:sandstone",
            "minecraft:stone"
        ]
    },
    "unburied": {},
    "grounded": {}
}
1
2
3
4
5
6
7
8
9
10
11

结构特性可通过必需的"constraints"属性强制执行约束,限制方块交叉、调整放置位置并用空气清除特性上方空间。虽然该属性及其对象({})是必需的,但所有子属性均为可选。

方块交叉 ​
json
"block_intersection": {
    "block_whitelist": [
        "minecraft:end_stone"
    ]
},
1
2
3
4
5

结构可替换的方块集合由方块白名单指定,通过"block_whitelist"给出。若结构尝试占据的体积中有任意方块不在白名单中,结构将不会在该位置放置。若未提供方块交叉约束,则结构可替换所有方块。

注意

奇怪的是,"block_whitelist"属性也可用"block_allowlist"表示,两者功能相同。

地面附着 ​
json
"grounded": {}
1

可选的"grounded"组件确保结构底部不会悬空于空气、水或熔岩中。考虑结构底层所有非结构虚空、非空气方块;若任意此类方块下方为空气、水或熔岩,生成将失败。

顶部 clearance ​
json
"unburied": {}
1

"unburied"组件确保结构顶部暴露于空气中才能成功生成。仅考虑结构顶层非结构虚空、非空气方块,且所有此类方块上方必须暴露于空气。

注意

与地面附着不同,不考虑水的暴露。

放置调整 ​

json
"adjustment_radius": 4
1

为适应可能的严格约束,提供可选的"adjustment_radius"属性;接受0(默认)到16的值。放置时,Minecraft会从输入位置开始,在横向向外径向搜索此属性指定的方块数;不尝试垂直调整。检查每个对应体积的有效性;考虑方块交叉、地面附着和[顶部 clearance](#顶部 clearance)。使用第一个成功的(若存在)。

TIP

若需使用垂直调整,应通过搜索特性代理结构特性。

生长植物特性 ​

json
{
    "format_version": "1.13.0",
    "minecraft:growing_plant_feature": {
        "description": {
            "identifier": "wiki:bulbous_cerulon"
        },
        "body_blocks": [
            ["wiki:bulbous_cerulon_stem", 1],
            ["wiki:bulbous_cerulon_spiked_stem", 1]
        ],
        "head_blocks": [
            ["wiki:bulbous_cerulon_bulb", 1],
            ["wiki:bulbous_cerulon_bulb_exposed", 1]
        ],
        "age": { "range_min": 1, "range_max": 15 },
        "growth_direction": "up",
        "height_distribution": [[{ "range_min": 4, "range_max": 12 }, 1]]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

生长植物特性放置由末端带有头部方块的体部方块组成的列。两者均可按方块随机化以实现精细定制。

TIP

对于高级柱状生成,使用散布特性配合固定网格分布。

柱状方块 ​

json
"body_blocks" : [
    ["arctica:ice", 4],
    ["arctica:ice_crystallized", 1]
],
"head_blocks" : [
    ["arctica:growing_ice", 1]
],
"age": 3
1
2
3
4
5
6
7
8

生长植物分为体部方块(构成大部分特性)和头部方块(仅作为植物最后生成的方块)。两者均作为方块条目数组给出。每个方块条目是将方块引用与整数权重绑定的数组:

json
["crestfallen:fungi_stem", 2]
1

体部和头部的每个方块均独立选择。无法使用生长植物特性使所有体部方块相同。

可选的"age"属性用于设置头部方块的年龄方块状态。接受两种形式:整数和范围对象。使用范围对象时,年龄在每次特性实例时均匀随机选择给定整数边界之间的值。

整数形式:

json
"age": 12
1

范围对象:

json
"age": {"range_min": 4, "range_max": 8}
1

WARNING

当前年龄配置仅适用于洞穴藤蔓。

柱状生成 ​

json
"growth_direction": "down",
"height_distribution":  [
    [{"range_min": 8, "range_max": 12}, 4],
    [{"range_min": 4, "range_max": 8}, 2],
    [2, 1]
],
"allow_water": true
1
2
3
4
5
6
7

柱状从特性原点沿"growth_direction"属性指定的垂直方向生成,接受"up"或"down"。

生长植物特性的_最大_可能长度由"height_distribution"数组给出。与之前的方块声明类似,高度分布中的每个条目是将高度与权重绑定的高度条目。高度可作为固定整数或范围对象给出。

整数形式:

json
[6, 3]
1

范围对象:

json
[{ "range_min": 2, "range_max": 8 }, 1]
1

根据权重从高度分布中选择一个条目,若提供范围,则在给定限制之间均匀随机选择值。

生长植物特性从输入位置开始沿正确方向向上或向下进行。默认仅替换生成列中的空气。若非始于空气,柱状生成从沿正确方向的第一个可用空气方块开始。因非空气方块阻挡而错过的方块机会不会重新尝试。这意味着若特性原点必须穿过两个非空气方块才能到达空气,高度将减少2。

到达(或始于)空气后,柱状生成体部方块直至遇到非空气方块,此时永久停止柱状生成。当然,从特性原点开始遍历确定高度时也会停止柱状生成。无论如何,列的最后一个方块将是头部方块,即使列最终高度仅为1个

贡献者

编辑 特性类型

Bedrock Wiki by Bedrock OSS ,Translate by 8aka-Team

"Minecraft"是Mojang AB的注册商标。

Bedrock OSS、Bedrock Wiki以及 bedrock.dev 与Microsoft及Mojang AB不存在任何隶属关系。

  • 隐私政策
  • 加入QQ社区
  • 参与贡献指南
  • 访问代码仓库