世界生成入门
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,文件名只需匹配ID部分,因此仍需保持为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, mushroomminecraft_world_generation_rules是最重要的组件,特别是generate_for_climates数组。游戏中有三种气候:"warm"、"medium"和"cold"。它们在世界创建时随机分布[硬编码]。您可以指定自定义生物群系在每种气候中的生成频率。如果不设置,默认值为0,生物群系不会生成。示例中所有气候的权重(数值越小,在该气候中生成自定义生物群系而非原版的可能性越低)都设为100用于测试:这会使生物群系几乎遍布整个主世界。测试完成后,应调整权重至合理值。例如原版沙漠在温暖气候中的权重为3。该组件还接受以下对象:
hills_transformation、mutate_transformation、shore_transformation、river_transformation,但其含义尚不明确。欢迎补充说明。surface_meaterial_adjustments组件同理。最后但同样重要的是生物群系标签!它们简单但实用。您可以在
components中以以下格式添加任意数量的原版或自定义标签:
"tagName": {}然后您可以在_environment_sensors_、filters、_has_biome_测试、_spawn rules_等场景中检测这些标签。
您的自定义生物群系现已完成!
特征与特征规则
注:在v.1.15Beta中,可以使用structures文件夹中的.mcstructures替代features来生成自定义结构(通过feature_rules)。更多详情将在更新发布后补充。
特征和特征规则用于生成从矿石到花草、植被到花岗岩或黏土矿脉等各种内容。 甚至可以用它们创建自定义结构,但由于操作繁琐且在更新后会简单许多,我们暂不讨论。
值得一提的是,生成自定义结构最简单的方法是使用MACHINE_BUILDER开发的自动生成器。请注意该工具有功能受限的免费版,完整功能需付费版。不过我们仍将学习一些手动生成方法,因为像矿石这样的内容用ore_feature生成比structure_template_feature更高效。
让我们以教程为例,使自定义方块wiki:blocky作为矿石生成。我将采用简单方式:
- 打开bridge.,选择您的附加包
- 新建文件>features>diamond_ore和新建文件>feature_rules>diamond_ore
- 保存文件后在代码编辑器中打开并进行必要修改
如果安装bridge.有困难,您完全可以手动编写或从其他地方复制这些文件。示例包和bridge.的仓库都是获取原版文件的好去处。
特征
特征存放在BP/features中,本质上是游戏文件中可通过_feature_rule_放置的方块组合。特征的文件名必须与标识符匹配。
{
"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]
}
}
}
}descriptionidentifier不需要命名空间,但文件名需匹配places_feature填入本规则控制的特征标识符
conditionsplacement_pass特征生成方式biome_filter检测特征生成的生物群系标签,与生成规则完全相同
distributioniterations基本等同于生成几率。设为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。更多关于使用结构块定义.mcstructures的内容见这里。
现在您已拥有.mcstructure文件,接下来编写feature和feature rule。后者与矿石相同(见本文开头)。让我们继续看特征。
- 记住命名空间不是必需的,且文件名必须匹配标识符(不包括命名空间)。因此如果特征规则的标识符是
wiki:myfeaturerule或简单的myfeaturerule,两种情况下文件名都可以是myfeaturerule.json。
以下是特征文档中的代码示例:
{
"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是结构的标识符,即您通过结构块保存的名称
就是这样!现在您可以在世界中生成自定义结构了。
当前进度
已完成内容:







