生成自定义结构
experimental
结构特征是游戏中最基础的功能之一,它可以将导出的 .mcstructure 文件放置在世界中。 本教程将展示如何制作:
- 地表结构
- 地下结构
- 浮空结构
- 水下结构
- 水面结构
TIP
在安卓设备上导出结构时,请使用这个资源包
请确保将 .mcstructure 文件放入 BP/structures/ 文件夹中!
地表结构
特征文件
BP/features/house_feature.json
json
{
"format_version": "1.13.0",
"minecraft:structure_template_feature": {
"description": {
"identifier": "wiki:house_feature"
},
"structure_name": "mystructure:house",
"adjustment_radius": 4,
"facing_direction": "random",
"constraints": {
"grounded": {},
"unburied": {},
"block_intersection": {
"block_allowlist": [
"minecraft:air" //该结构只能替换空气方块
]
}
}
}
}特征规则
BP/feature_rules/plains_house_feature.json
json
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "wiki:plains_house_feature",
"places_feature": "wiki:house_feature"
},
"conditions": {
"placement_pass": "first_pass",
"minecraft:biome_filter": {
"test": "has_biome_tag",
"operator": "==",
"value": "plains"
}
},
"distribution": {
"iterations": 1,
"x": {
"extent": [0, 16],
"distribution": "uniform"
},
"y": "q.heightmap(v.worldx, v.worldz)", //在区块最高点生成结构
"z": {
"extent": [0, 16],
"distribution": "uniform"
},
"scatter_chance": {
"numerator": 1,
"denominator": 25
}
}
}
}
地下结构
特征文件
BP/features/bunker_feature.json
json
{
"format_version": "1.13.0",
"minecraft:structure_template_feature": {
"description": {
"identifier": "wiki:bunker_feature"
},
"structure_name": "mystructure:bunker",
"adjustment_radius": 4,
"facing_direction": "random",
"constraints": {
"block_intersection": {
"block_allowlist": [
"minecraft:air", //该特征只能替换空气和石头
"minecraft:stone"
]
}
}
}
}特征规则
BP/feature_rules/overworld_bunker_feature.json
json
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "wiki:overworld_bunker_feature",
"places_feature": "wiki:bunker_feature"
},
"conditions": {
"placement_pass": "first_pass",
"minecraft:biome_filter": {
"test": "has_biome_tag",
"operator": "==",
"value": "overworld"
}
},
"distribution": {
"iterations": 1,
"x": {
"extent": [0, 16],
"distribution": "uniform"
},
"y": {
"extent": [
11,
50 //使结构在y11至y50之间生成
],
"distribution": "uniform"
},
"z": {
"extent": [0, 16],
"distribution": "uniform"
},
"scatter_chance": {
"numerator": 1,
"denominator": 15
}
}
}
}
浮空结构
特征文件
BP/features/balloon_feature.json
json
{
"format_version": "1.13.0",
"minecraft:structure_template_feature": {
"description": {
"identifier": "wiki:balloon_feature"
},
"structure_name": "mystructure:balloon",
"adjustment_radius": 4,
"facing_direction": "random",
"constraints": {
"block_intersection": {
"block_allowlist": [
"minecraft:air" //该结构只能替换空气
]
}
}
}
}特征规则
BP/feature_rules/overworld_balloon_feature.json
json
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "wiki:overworld_baloon_feature",
"places_feature": "wiki:balloon_feature"
},
"conditions": {
"placement_pass": "first_pass",
"minecraft:biome_filter": {
"test": "has_biome_tag",
"operator": "==",
"value": "overworld"
}
},
"distribution": {
"iterations": 1,
"x": {
"extent": [0, 16],
"distribution": "uniform"
},
"y": {
"extent": [
100, //使结构在y100至y200之间生成
200
],
"distribution": "uniform"
},
"z": {
"extent": [0, 16],
"distribution": "uniform"
},
"scatter_chance": {
"numerator": 1,
"denominator": 25
}
}
}
}
水下结构
TIP
对于水下结构,请确保你已经将结构设置为含水状态,因为Minecraft不会自动为其添加水!
特征文件
BP/features/aqua_temple_feature.json
json
{
"format_version": "1.13.0",
"minecraft:structure_template_feature": {
"description": {
"identifier": "wiki:aqua_temple_feature"
},
"structure_name": "mystructure:aqua_temple",
"adjustment_radius": 4,
"facing_direction": "random",
"constraints": {
"block_intersection": {
"block_allowlist": [
"minecraft:water" //该结构只能替换水方块
]
}
}
}
}特征规则
BP/feature_rules/ocean_aqua_temple_feature.json
json
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "wiki:ocean_aqua_temple_feature",
"places_feature": "wiki:aqua_temple_feature"
},
"conditions": {
"placement_pass": "first_pass",
"minecraft:biome_filter": {
"test": "has_biome_tag",
"operator": "==",
"value": "ocean"
}
},
"distribution": {
"iterations": 1,
"x": {
"extent": [0, 16],
"distribution": "uniform"
},
"y": "q.above_top_solid(v.worldx, v.worldz)", //将特征放置在区块最高固体方块上方,避免生成在水面
"z": {
"extent": [0, 16],
"distribution": "uniform"
},
"scatter_chance": {
"numerator": 1,
"denominator": 25
}
}
}
}
水面结构
特征文件
BP/features/raft_feature.json
json
{
"format_version": "1.13.0",
"minecraft:structure_template_feature": {
"description": {
"identifier": "wiki:raft_feature"
},
"structure_name": "mystructure:raft",
"adjustment_radius": 4,
"facing_direction": "random",
"constraints": {
"block_intersection": {
"block_allowlist": [
"minecraft:water", //该结构只能替换水和空气
"minecraft:air"
]
}
}
}
}特征规则
BP/feature_rules/ocean_raft_feature.json
json
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "wiki:ocean_raft_feature",
"places_feature": "wiki:raft_feature"
},
"conditions": {
"placement_pass": "first_pass",
"minecraft:biome_filter": {
"test": "has_biome_tag",
"operator": "==",
"value": "ocean"
}
},
"distribution": {
"iterations": 1,
"x": {
"extent": [0, 16],
"distribution": "uniform"
},
"y": 62, //使特征仅在y62(Minecraft水位高度)生成
"z": {
"extent": [0, 16],
"distribution": "uniform"
},
"scatter_chance": {
"numerator": 1,
"denominator": 25
}
}
}
}

