噪声设置
跳转到导航
跳转到搜索
本文章所述内容仅适用于Java版。
噪声设置(Noise settings)也即噪声生成器设置(Noise generator settings)。噪声设置用于生成地形和噪声洞穴的形状,以及生成地形时使用哪些方块,其以JSON文件的形式存储在数据包的data/<命名空间>/worldgen/noise_settings
目录下,用于维度中的minecraft:noise
生成器。原版中的设置包括:minecraft:overworld
用于一般的主世界生成,minecraft:amplified
用于放大化主世界生成,large_biomes
用于巨型生物群系生成,minecraft:nether
用于常规的下界生成,minecraft:caves
用于洞穴生成,minecraft:end
用于常规的末地生成,minecraft:floating_islands
用于浮岛的生成。
数据格式[编辑 | 编辑源代码]
在地形生成时,最终密度(final_density
)小于等于零的位置为空气并将会被含水层填充,大于零的位置生成世界的默认方块default_block
并将被地表规则(surface_rule
)填充。在应用地表规则时,游戏会使用minecraft:surface
噪声决定表层厚度,将(X,0,Z)处的噪声值 × 2.75 + 3.0
作为表层厚度,而实际表层厚度还受与坐标相关的随机数的影响上下浮动0.25。该噪声与实际表层厚度在原版的地表规则中配合使用,例如用以决定平原生物群系里泥土和草方块的总厚度。
- :根对象。
- sea_level:此维度的海平面高度。
- disable_mob_generation:是否禁止普通动物随地形一起生成。
- ore_veins_enabled:是否生成矿脉。
- aquifers_enabled:是否生成含水层和含熔岩层。
- legacy_random_source:是否使用1.18之前的旧的随机数生成器来生成世界。
- default_block:该维度地形的默认的方块。
- 方块状态,见自定义世界生成/block_state
- default_fluid:该维度默认的流体,用于生成海洋和湖。
- 方块状态,见自定义世界生成/block_state
- spawn_target:(可以为空)一个生物群系参数区间/值的列表,用于决定玩家出生点的环境条件。会选取距离(0,0)不超过2560格的多个点,获取其环境条件噪声值(depth值和offset值恒为0),计算,其中代表该点处某种生物群系参数的值到本列表中对应值的区间的距离()。计算结果最小的位置就是最佳位置。玩家出生位置会在这个位置附近。
- :一个范围区间。
- 生物群系噪声值参数,见自定义世界生成/parameter point
- :一个范围区间。
- noise:世界生成参数。
- min_y:地形开始生成的最低高度。取值为-2032到2031的闭区间,必须是16的倍数()。
- height:地形生成的总高度。取值为0到4064的闭区间,必须是16的整数倍()。min_y + height不能超过2032。
- size_horizontal:取值为0到4的闭区间。
- size_vertical:取值为0到4的闭区间。
- noise_router:将密度函数应用于用于世界生成的噪声参数。以下每个字段可以填入一个密度函数ID或一个密度函数(包括常量形式和对象形式)。
- initial_density_without_jaggedness:与含水层和地表规则的生成有关。在一XZ坐标下,从世界顶部开始以size_vertical*4个方块的精度从上到下查找,初次遇到大于25/64的值的高度作为世界生成的初始地表高度。该高度通常应该低于实际的地表高度(由
final_density
决定)。 - final_density:决定了一个坐标是空气(可以生成含水层)还是世界的默认方块default_block(将会被surface_rule填充)。
- barrier:影响是否使用方块分隔含水层和洞穴其他区域。函数值越大越有可能分隔。
- fluid_level_floodedness:影响含水层生成液体的概率。函数值越大越有可能生成。该噪声值大于1.0的被视为1.0,小于-1.0的被视为-1.0。
- fluid_level_spread:影响某处含水层液体表面的高度。函数值越小液体表面越可能较低。
- lava:影响某处含水层是否使用熔岩代替水。阈值为0.3。
- vein_toggle:影响矿脉类型和垂直范围。这值大于0.0将是铜矿脉,小于等于0.0将是铁矿脉。
- vein_ridged:控制哪些方块会参与组成矿脉。如果小于0.0,则方块是矿脉的一部分(是否为矿石块由下方值决定)。
- vein_gap:影响矿脉中的哪些方块将是矿石块。如果大于-0.3,并且随机数小于从0.4到0.6映射到0.1到0.3的vein_toggle的绝对值,则会放置矿石块,且有2%的概率变为粗金属块。否则,将放置矿脉类型对应的石块。
- temperature:生物群系的温度噪声。这里和下方的六个值是用于生物群系放置的生物群系参数。某点处生物群系的生物群系参数向量与该点处的对应参数向量的2-范数距离是最小的。
- vegetation:即humidity,生物群系的湿度噪声。
- continents:生物群系的大陆性噪声。
- erosion:生物群系的侵蚀噪声。
- depth:生物群系的深度噪声。
- ridges:即weirdness,生物群系的奇异噪声。
- initial_density_without_jaggedness:与含水层和地表规则的生成有关。在一XZ坐标下,从世界顶部开始以size_vertical*4个方块的精度从上到下查找,初次遇到大于25/64的值的高度作为世界生成的初始地表高度。该高度通常应该低于实际的地表高度(由
- surface_rule:(不能为空)为地形填充方块。
- 地表规则,见自定义世界生成/surface rule
历史[编辑 | 编辑源代码]
Java版 | |||||||
---|---|---|---|---|---|---|---|
1.16.2 | 20w28a | 加入了对自定义世界生成的支持。 | |||||
20w29a | 噪声设置被移动到了worldgen/noise_settings 目录下。 | ||||||
pre1 | 自定义世界生成从data/minecraft/<type>/<namespace>/<path>移动到了data/<namespace>/<type>/<path>,和其他资源保持一致。 | ||||||
1.17 | 20w49a | 向噪声设置加入了noise.min_y字段。 | |||||
21w06a | 向噪声设置加入了noise_caves_enabled、aquifers_enabled和min_surface_level参数,均对于主世界默认为true 。 | ||||||
21w07a | 向噪声设置加入了grimstone_enabled参数,对于主世界默认为true 。 | ||||||
21w08a | 将上个快照的grimstone_enabled参数替换为deepslate_enabled。 | ||||||
21w14a | 向噪声设置加入了min_surface_level字段。 | ||||||
21w15a | noise_caves_enabled、aquifers_enabled和deepslate_enabled参数现在在主世界中也默认为false 了。 | ||||||
21w16a | 向噪声设置加入了ore_veins_enabled参数,在各维度中都默认为false 。 | ||||||
21w17a | 向噪声设置加入了noodle_caves_enabled参数,在各维度中都默认为false 。 | ||||||
1.18 | 21w37a | 移除了噪声设置的min_surface_level字段。 | |||||
21w40a | 向噪声设置加入了noise.legacy_random_source参数。 | ||||||
21w41a | 向噪声设置加入了surface_rule字段。 | ||||||
移除了噪声设置的noise.simplex_surface_noise 和noise.random_density_offset 字段。 | |||||||
主世界噪声设置的legacy_random_source参数现在设为false 了。 | |||||||
21w42a | 将表面规则noise_threshold 的name 字段改为noise ,指向数据包的data/命名空间/worldgen/noise 的噪声文件。 | ||||||
移除了噪声设置的octaves 字段,被噪声取代。 | |||||||
移除了噪声设置的noise.use_legacy_random字段。 | |||||||
21w43a | 向噪声设置加入了noise.terrain_shaper字段,包含offset 、factor 和jaggedness 三个参数。 | ||||||
21w44a | 向噪声设置加入了noise.large_biomes字段。 | ||||||
移除了噪声设置的noise.density_factor和noise.density_offset字段。 | |||||||
移除了噪声设置的bedrock_roof_position,bedrock_floor_position和deepslate_enabled字段,被表面规则取代。 | |||||||
1.18.2 | 22w06a | 为结构噪声设置添加结构放置类型标签字段,包括random_spread 和concentric_rings 两种可能的类型。 | |||||
pre1 | 向噪声设置加入了noise_router字段,加入密度函数构成这一字段,并移除了noise_caves_enabled 、noodle_caves_enabled 和structures 字段。 | ||||||
使用结构集取代了噪声设置中的结构放置类型,存储于worldgen/structure_set 目录下,格式与原先一致。 | |||||||
1.19 | 22w11a | 移除了噪声设置的noise.terrain_shaper字段,将其功能移动到密度函数。 | |||||
加入了spawn_target字段,是一个生物群系气候参数区间/值的列表。 | |||||||
22w12a | 移除了噪声设置的noise.sampling 、noise.top_slide 和noise.bottom_slide 字段,将其功能移动到密度函数。 | ||||||
1.19.3 | 22w42a | 世界生成设置数据现在内置于对应版本的client.jar的data/minecraft/worldgen 目录下。 | |||||
1.21.2 | 24w33a | 现在sea_level还会影响生物生成、结构放置和生物群系温度。此前,由于部分海平面参数固定为63层,此值仅影响世界生成。 |
外部链接[编辑 | 编辑源代码]
导航[编辑 | 编辑源代码]
[隐藏] | |||||||||
---|---|---|---|---|---|---|---|---|---|
基本概念 | |||||||||
数据包 |
| ||||||||
资源包 | |||||||||
相关条目 | |||||||||
相关教程 | |||||||||
参考实例 |
|