世界生成入门
本页面镜像自 BedrockWiki
根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。
WARNING
本文档部分内容已过时,信息量有限。如需获取最新最全面的信息,请查阅本节其他页面。
您可以通过附加包修改世界的生成规则。行为包中需要以下文件夹:
structures
(结构)、features
(特征)、feature_rules
(特征规则)和 biomes
(生物群系)。顾名思义:您可以将结构方块生成的.mcstructure文件存放在structures
中,生物群系文件存放在biomes
中,矿石等地形特征存放在features
中,其生成规则则存放在feature_rules
中。让我们先从添加自定义生物群系开始。
注:使用 bridge. 这款可视化附加包创作工具(联系方式见"链接与联系")创建生物群系可能更方便,因为官方文档尚不完善。您也可以生成所有原版生物群系、特征和特征规则的示例文件作为参考,如下图所示:
使用 bridge. 生成 coal_ore 特征
当然,bridge. 并非必需工具。
自定义生物群系
{
"format_version": "1.13.0",
"minecraft:biome": {
"description": {
"identifier": "cold_biome"
},
"components": {
"minecraft:climate": {
"downfall": 0.7,
"snow_accumulation": [0.6, 0.9],
"temperature": 15.0
},
"minecraft:overworld_height": {
"noise_params": [0.6, 0.9]
},
"minecraft:surface_parameters": {
"sea_floor_depth": 7,
"sea_floor_material": "minecraft:blue_ice",
"foundation_material": "minecraft:cobblestone",
"mid_material": "minecraft:minecraft:concrete",
"top_material": "minecraft:glass",
"sea_material": "minecraft:water"
},
"minecraft:overworld_generation_rules": {
"generate_for_climates": [
["medium", 100],
["warm", 100],
["cold", 100]
]
},
"cold_biome": {}
}
}
}
- 设置
format_version
为 1.13.0:这是当前版本的最新生物群系文件格式 description
仅需一个值:identifier
。此处不需要命名空间且必须与文件名一致 (如果使用命名空间,例如wiki:cold_biome
,文件名仍需保持为cold_biome.json
)components
即生物群系的基本属性配置,让我们逐一解析:minecraft:climate
控制气候相关参数downfall
表示降水频率。0.0 代表无降水(如沙漠),1.0 表示持续降水temperature
用于定义水体结冰和降雨转雪等效果
可使用 bridge. 生成原版生物群系文件作为参考
overworld_surface
控制地形生成材质floor_depth
表示湖泊河流的底部深度(方块数)sea_floor_material
定义水域底部材质foundation_material
用于 y=5 至 y=50 之间的基础岩层(例如沙漠使用石头)sea_material
水域液体材质(主世界通常设为 "minecraft:water")top_material
表层材质(如草方块用于平原)mid_material
中间层材质(如泥土用于平原)overworld_height
定义地形高度特征
不可同时使用 noise_type
和 noise_params
。noise_params
是包含噪声最高值和最低值的数组
使用 noise_params [0.1, 0.1] 和 [1.0, 1.0] 生成的同生物群系非平滑过渡示例
若使用
noise_type
,可选预设值包括:beach, default, extreme, taiga, ocean, mountains, default_mutated, deep_ocean, lowlands, less_extreme, stone_beach, swamp, river, mushroom
minecraft_world_generation_rules
是最重要的组件,特别是generate_for_climates
数组。游戏中有三种气候:"warm"、"medium" 和 "cold"。在世界生成时这些气候会随机分布[硬编码]。您可以为每个气候设置生物群系的生成权重。若不设置,默认权重为0,生物群系不会生成。示例中测试时将各气候权重设为100,使该生物群系在主世界广泛生成。正式使用时需调整权重(例如原版沙漠在warm气候中的权重为3)该组件还包含
hills_transformation
、mutate_transformation
、shore_transformation
、river_transformation
等参数,具体含义尚不明确。欢迎补充说明。surface_meaterial_adjustments
组件同理最后是生物群系标签!使用方式简单但实用。通过在
components
中添加如下格式的标签:
"tagName": {}
即可在环境传感器、过滤器、生物群系检测、生成规则等场景中使用该标签
至此,您的自定义生物群系已创建完成!
特征与特征规则
注:在 v1.15Beta 中,可使用 structures
文件夹中的 .mcstructures
配合 feature_rules
生成自定义结构。更多详情将在更新发布后补充
特征与特征规则用于生成矿石、花草、植被、花岗岩或黏土矿脉等各类地形元素。虽然目前可用其创建自定义结构,但操作繁琐,建议等待后续更新简化流程
推荐使用 MACHINE_BUILDER 开发的自动生成工具来创建自定义结构。该工具免费版功能有限,完整功能需购买专业版。不过我们仍将学习手动创建特征的方法,因为矿石等元素使用 ore_feature
比 structure_template_feature
更高效
让我们以生成自定义方块 wiki:blocky
的矿石为例:
- 打开 bridge. 选择附加包
- 新建文件 > features > diamond_ore 和 feature_rules > diamond_ore
- 保存文件后用代码编辑器进行必要修改
若无安装 bridge.,也可手动创建或从示例包或 bridge. 仓库获取原版文件
特征
特征文件位于 BP/features
目录,本质上是游戏中可被特征规则放置的区块集合。文件名必须与标识符匹配
完整文档请参考 bedrock.dev/r/Features
{
"format_version": "1.13.0",
"minecraft:ore_feature": {
"description": {
"identifier": "blocky_ore_feature"
},
"count": 8,
"places_block": "wiki:blocky",
"may_replace": [
{
"name": "minecraft:stone",
"states": {
"stone_type": "andesite"
}
},
{
"name": "minecraft:stone",
"states": {
"stone_type": "andesite_smooth"
}
},
{
"name": "minecraft:stone",
"states": {
"stone_type": "diorite"
}
},
{
"name": "minecraft:stone",
"states": {
"stone_type": "diorite_smooth"
}
},
{
"name": "minecraft:stone",
"states": {
"stone_type": "granite"
}
},
{
"name": "minecraft:stone",
"states": {
"stone_type": "granite_smooth"
}
},
{
"name": "minecraft:stone",
"states": {
"stone_type": "stone"
}
}
]
}
}
minecraft_ore_feature
是自动生成矿石的特定特征类型。每种特征类型都有独特语法(另有single_block_feature
用于生成单个方块等)identifier
此处不需要命名空间。文件名不包含命名空间count
表示矿簇的最大方块数places_block
设置要生成的方块标识符may_replace
列出可被替换的方块类型。遇到未列出的方块时将保留原方块
特征规则
特征规则控制特征(及未来的结构)的生成位置和方式
{
"format_version": "1.13.0",
"minecraft:feature_rules": {
"description": {
"identifier": "overworld_underground_blocky_ore_feature",
"places_feature": "blocky_ore_feature"
},
"conditions": {
"placement_pass": "underground_pass",
"minecraft:biome_filter": [
{
"any_of": [
{
"test": "has_biome_tag",
"operator": "==",
"value": "overworld"
},
{
"test": "has_biome_tag",
"operator": "==",
"value": "overworld_generation"
}
]
}
]
},
"distribution": {
"iterations": 100,
"coordinate_eval_order": "zyx",
"x": {
"distribution": "uniform",
"extent": [0, 16]
},
"y": {
"distribution": "uniform",
"extent": [0, 16]
},
"z": {
"distribution": "uniform",
"extent": [0, 16]
}
}
}
}
description
identifier
不需要命名空间,但文件名需匹配places_feature
设置要控制的特征标识符
conditions
placement_pass
控制特征生成阶段biome_filter
通过生物群系标签过滤生成位置(与生成规则类似)
distribution
iterations
生成概率。设为100表示全图生成(钻石矿通常设为1)- 后续参数控制矿脉延伸方向(需要更多说明)
测试矿石生成建议在低Y坐标使用指令 /fill ~15 ~5 ~15 ~-15 ~-15 ~-15 air 0 replace stone
,该指令会清除选定区域内所有石头,保留其他方块:
显然,将"iterations"设为100确实过量 😉
建议通过研究原版特征和特征规则文件来学习更多技巧。不过上文所述内容已能满足大部分生成需求
自定义结构
自 MCBE v1.16.20 起,支持自定义生成结构 推荐使用前文提到的 MACHINE_BUILDER 工具自动生成结构文件。该工具会生成三个必要文件:feature_rules/mystructure.feature_rule.json
、feature_rules/mystructure.feature.json
和 structures/mystructure.mcstructure
。更多关于使用结构块定义 .mcstructure
的内容请参考此文档
准备好 .mcstructure
文件后,需要编写对应的 feature
和 feature rule
。特征规则与矿石生成类似(参见前文),以下是特征示例(来自特征文档):
{
"format_version": "1.13.0",
"minecraft:structure_template_feature": {
"description": {
"identifier": "wiki:hot_air_balloon_feature"
},
"structure_name": "wiki:hot_air_balloon",
"adjustment_radius": 8,
"facing_direction": "random",
"constraints": {
"unburied": {},
"block_intersection": {
"block_whitelist": [
"minecraft:air"
]
}
}
}
}
structure_name
是结构块的保存标识符
至此,您已掌握在游戏中生成自定义结构的方法!
当前进度
已完成内容: