Skip to content

地表补丁生成教程

本页面镜像自
BedrockWiki

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

基于特征的地表构建器是一种将多种方块组合生成的功能,用于为主世界地表增添多样性和装饰效果。本教程将详细讲解如何创建这种地表特征,包括尺寸、生成频率、生成位置等参数设置!

单方块特征

单方块特征将作为我们地表构建的基础。它们定义了我们将要使用的具体方块类型。本教程将使用粗泥、灰化土和圆石作为示例。

了解更多单方块特征知识请点击此处

粗泥特征文件

json
{
	"format_version": "1.13.0",
	"minecraft:single_block_feature": {
		"description": {
			"identifier": "wiki:coarse_dirt_feature"
		},
		"places_block": {
			// 粗泥与普通泥土共享相同标识符,需通过名称和状态值指定
			"name": "minecraft:dirt",
			"states": {
				"dirt_type": "coarse"
			}
		},
		"enforce_survivability_rules": false,
		"enforce_placement_rules": false,
		"may_replace": [
			"minecraft:grass" // 该方块仅可替换草方块
		]
	}
}

灰化土特征文件

json
{
	"format_version": "1.13.0",
	"minecraft:single_block_feature": {
		"description": {
			"identifier": "wiki:podzol_feature"
		},
		"places_block": "minecraft:podzol", // 灰化土可直接通过标识符定义
		"enforce_survivability_rules": false,
		"enforce_placement_rules": false,
		"may_replace": [
			"minecraft:grass" // 该方块仅可替换草方块
		]
	}
}

圆石特征文件

json
{
	"format_version": "1.13.0",
	"minecraft:single_block_feature": {
		"description": {
			"identifier": "wiki:cobblestone_feature"
		},
		"places_block": "minecraft:cobblestone", // 圆石可直接通过标识符定义
		"enforce_survivability_rules": false,
		"enforce_placement_rules": false,
		"may_replace": [
			"minecraft:grass" // 该方块仅可替换草方块
		]
	}
}

权重随机特征

权重随机特征将作为我们的_随机选择器_,用于在不同方块类型之间进行概率选择。

了解更多权重随机特征知识请点击此处

json
{
	"format_version": "1.13.0",
	"minecraft:weighted_random_feature": {
		"description": {
			"identifier": "wiki:select_surface_block_feature"
		},
		"features": [
			[
				"wiki:coarse_dirt_feature", // 粗泥权重为5
				5
			],
			[
				"wiki:podzol_feature", // 灰化土权重为3
				3
			],
			[
				"wiki:cobblestone_feature", // 圆石权重为2
				2
			]
		]
	}
}

散点特征

散点特征是我们地表构建的重要部分。它将决定单个斑块中方块的数量、形状和分布范围。

了解更多散点特征知识请点击此处

json
{
	"format_version": "1.13.0",
	"minecraft:scatter_feature": {
		"description": {
			"identifier": "wiki:scatter_surface_block_feature"
		},
		"iterations": "math.random_integer(20,25)",
		"x": {
			"extent": [0, 8],
			"distribution": "gaussian"
		},
		"z": {
			"extent": [0, 8],
			"distribution": "gaussian"
		},
		"y": "q.heightmap(v.worldx, v.worldz) -1",
		"places_feature": "wiki:select_surface_block_feature" // 权重随机特征的标识符
	}
}
  • iterations 决定将放置的方块数量。使用Molang的 math.random_integer 函数可实现数量随机化。本示例中将在20到25个方块之间随机

  • extent 使用数组决定斑块尺寸。[0, 8] 表示斑块从0到8格扩展。因此,我们的斑块在X和Z轴上将延伸8格。该参数仅适用于X和Z轴分布

  • "y": "q.heightmap(v.worldx, v.worldz) -1 表示方块将放置于当前地表最高点的Y坐标-1处,即始终在地表生成

  • distribution 指定分布类型。可用选项包括:Gaussian(高斯分布)、Inverse Gaussian(逆高斯分布)、Uniform(均匀分布)、Fixed Grid(固定网格)和Jittered Grid(抖动网格)

特征规则

这是地表构建的最后一步。地表构建器的特征规则设置略有不同。

json
{
	"format_version": "1.13.0",
	"minecraft:feature_rules": {
		"description": {
			"identifier": "wiki:overworld_surface_blocks_feature",
			"places_feature": "wiki:scatter_surface_block_feature"
		},
		"conditions": {
			"placement_pass": "surface_pass",
			"minecraft:biome_filter": {
				"test": "has_biome_tag",
				"operator": "==",
				"value": "overworld" // 可更改为任意生物群系标签
			}
		},
		"distribution": {
			"iterations": 1,
			"x": {
				"extent": [0, 16],
				"distribution": "uniform"
			},
			"y": 0,
			"z": {
				"extent": [0, 16],
				"distribution": "uniform"
			},
			"scatter_chance": {
				// 每个区块生成斑块的概率
				"numerator": 1,
				"denominator": 5
			}
		}
	}
}

至此我们的地表构建器就完成了!欢迎自由调整参数并探索更多可能性!