Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Advertisement
Clock.gif
此条目需要更新。

理由:条目信息可能落后了几个大版本。部分信息可以参照英文版更新及拆分,但英文版亦缺失了一个大版本(1.17)的更新。
相关资料:Misode整理的Minecraft JSON文件格式(包含中文语料)

翻译者从英文条目翻译下文中的内容时感觉其艰涩难懂。

翻译者希望更有能力的用户能够帮助改善本条目的行文,所以请先慎重对待本条目内容。
如果可能,请帮助我们完善此条目的内容。

Information icon.svg
此特性为Java版独有。

自定义世界生成(Custom world generation)可以让数据包改变世界的生成方式,与自定义世界或生物群系搭配使用时尤其有用。

噪声设置[]

噪声设置(Noise settings)用于生成地形,其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/noise_settings目录下,用于dimension目录中的minecraft:noise生成器。默认世界生成设置包括:minecraft:overworld用于一般的主世界生成,minecraft:amplified用于放大化主世界生成,minecraft:nether用于常规的下界生成,minecraft:caves用于洞穴(类似于下界但使用主世界的地形特征)生成,minecraft:end用于常规的末地生成,minecraft:floating_islands用于浮岛类型的维度(类似于末地外岛)生成。

JSON格式[]

  • 根标签
    •  sea_level:此维度的海平面高度。
    •  disable_mob_generation:是否禁止被动型生物随地形一起生成。
    •  ore_veins_enabled:是否生成矿脉
    •  aquifers_enabled:是否生成含水层和含熔岩层。
    •  legacy_random_source:是否使用1.18之前的旧的随机数生成器来生成世界。
    •  default_block:该维度的近地表方块的命名空间ID;参见Java版数据值§方块
      • 方块状态
    •  default_fluid:用于生成海洋和湖的流体的命名空间ID;详见Java版数据值§流体
      • 方块状态
    •  noise_router:将密度函数应用于用于世界生成的噪声参数。
      •  final_density:决定了是空气还是石头。
      •  vein_toggle[需要检查源代码]
      •  vein_ridged[需要检查源代码]
      •  vein_gap[需要检查源代码]
      •  erosion:地形生成和生物群系放置的侵蚀值。
      •  depth:地形生成和生物群系放置的深度值。
      •  ridges:地形生成和生物群系放置的奇异值。
      •  initial_density_without_jaggedness[需要检查源代码]
      •  lava:用于含熔岩层。[需要检查源代码]
      •  temperature:生物群系放置的温度值。
      •  vegetation:生物群系放置的湿度值。
      •  continents:地形生成和生物群系放置的大陆性值。
      •  barrier:用于分隔含水层和洞穴开放区域。[需要测试]
      •  fluid_level_floodedness[需要检查源代码]
      •  fluid_level_spread[需要检查源代码]
    •  noise:世界生成参数。
      •  min_y(整数):地形开始生成的最低高度。数值从-2032到2031之间可用,且必须是16的整数倍。注意如果使用了-2048,底部的基岩地板可能会有光照异常。[1]
      •  height:地形生成的总高度。必须是16的整数倍。1.17之前,会挤压整个世界,比如如果height=128,则地面设为Y=32。min_y + height不能超过2032,所以最大值为4064或4080。
      •  size_horizontal:改变陆块(landmass)在X和Z轴上的比例。生物群系不会因此改变。例如,增加山地地形之间的距离。此参数的最高值在4到8之间。
      •  size_vertical:改变陆块在Y轴上的比例。1至1.5之间的值可以逐渐增加山丘高度,大于2.0的值将会使得所有陆地高于通常的海平面63,比3.2更高的值会使得通常的陆地高度到达100+。
      •  island_noise_override(可选):使世界像末地一样在世界中心生成一个大型岛屿,在周围生成小型岛屿。
      •  amplified(可选):在放大化和正常地形生成之间切换。
      •  large_biomes(可选):在巨型生物群系和正常生物群系生成之间切换。
      •  sampling:指定噪声的采样方式。
        •  xz_scale(双精度浮点数):缩放噪声的X轴和Z轴。值越大,水平形状会更加复杂。作用类似于旧版自定义中的“平面比例”(coordinate scale)选项。
        •  xz_factor(双精度浮点数):平滑水平方向上的噪声。作用类似于旧版自定义世界中的main noise scale。
        •  y_scale(双精度浮点数):缩放噪声的Y轴。值越大,垂直形状会更加复杂。作用类似于旧版自定义中的“高度比例”(height scale)选项。
        •  y_factor(双精度浮点数):平滑垂直方向上的噪声。值在0.0011000.0之间,作用类似于旧版自定义世界中的main noise scale Y。
      •  top_slide:世界顶部曲线的设置。
        •  target:曲线的值。负值会使受影响区域内的山丘更加圆润,正值会使其更加陡峭(类似于屋顶)。绝对值越大效果越明显。
        •  size:定义以世界顶部为中心的影响区域大小。计算公式为size = <方块高> * 0.25 / size_vertical
        •  offset:从世界顶部移动受影响区域。offset使用和size相同的公式,也就是offset = <方块高> * 0.25 / size_vertical。对于top_slide,正值会使区域向下移动,负值使之向上移动。
      •  bottom_slide:世界底部曲线的设置。
        •  target(整数):曲线的值。负值会移除基岩地板并使浮岛的底部更加圆润,正值会生成一个基岩地板。绝对值越大效果越明显。
        •  size(整数):定义以世界底部为中心的影响区域大小。和top_slide中使用的公式相同。
        •  offset(整数):从世界底部移动受影响区域。和在top_slide中使用的公式相同。对于bottom_slide,正值使区域向上移动,负值使之向下移动。
      •  terrain_shaper:
        •  offset:确定地形偏移的地形样条。对应旧的 density_offset字段,但是现在可以根据维度噪声进行配置。
        •  factor:确定地形因子的地形样条。对应旧的 density_factor字段,但是现在可以根据维度噪声进行配置。
        •  jaggedness:确定地形“锯齿状”程度的地形样条。
    •  surface_rule:地形的表面规则配置。取代了旧的表面构建器系统。
      •  type:表面规则的类型,可以是以下值(以minecraft:为前缀):conditionblockvertical_gradientabove_preliminary_surfacesequencestone_depthwaterbiomey_abovenotnoise_thresholdsteepholebandlandstemperature。每个类型的额外属性见下方。


每个类型的 surface_rule的额外属性如下:

  • condition
    •  if_true:输出true或false的表面规则
    •  then_run:进行特定操作的表面规则
  • block 将符合该表面规则的方块设定为指定的方块
    •  result_state:使用的方块
      •  Name:使用的方块的id。
      •  Properties:方块状态。
        •  状态:方块状态的键和值。
  • vertical_gradient 条件表面规则,在渐变中选择方块,用于深板岩和基岩(渐变自身位于指定的y坐标之间)。
    •  random_name[需要测试]任何随机名称。
    •  true_at_and_below:条件为true时的低y坐标。
      •  above_bottom:从世界底部往上数的y坐标,与absolutebelow_top互斥。
      •  absolute:准确y坐标,与above_bottombelow_top互斥。
      •  below_top:从世界顶部往下数的y坐标,与above_bottomabsolute互斥。
    •  false_at_and_above:条件为false时的高y坐标。
      •  above_bottom:从世界底部往上数的y坐标,与absolutebelow_top互斥。
      •  absolute:准确y坐标,与above_bottombelow_top互斥。
      •  below_top:从世界顶部往下数的y坐标,与above_bottomabsolute互斥。
  • above_preliminary_surface [需要测试]条件表面规则,没有额外属性
  • sequence 依次应用表面规则(似乎只应用第一个成功的规则 [需要测试]
    •  sequence
      • 表面规则
  • biome 条件表面规则,用于测试生物群系
    •  biome_is:结果为true的生物群系列表。
      • :检查生物群系是否为这个命名空间id。
  • y_above 条件表面规则,检查是否位于指定的y坐标上方
    •  anchor:使此条件为true的最小y坐标。
      •  above_bottom:从世界底部往上数的y坐标,与absolutebelow_top互斥。
      •  absolute:准确y坐标,与above_bottombelow_top互斥。
      •  below_top:从世界顶部往下数的y坐标,与above_bottomabsolute互斥。
    •  surface_depth_multiplier[需要测试]
    •  add_stone_depth[需要测试]
  • not 条件表面规则,翻转该条件
    •  invert:需要翻转的表面规则。
  • noise_threshold [需要测试]条件表面规则
    •  noise:指向数据包的data/命名空间/worldgen/noise的噪声文件
    •  min_threshold[需要测试]
    •  max_threshold[需要测试]
  • steep [需要测试] 条件表面规则,没有额外属性
  • bandlands [需要测试] 条件表面规则,用于恶地,没有额外属性
  • temperature [需要测试] 条件表面规则,用于在封冻海域生成冰,没有额外属性


默认设置[]

以下是minecraft:noise生成器可用的6个预设中的设置。

结构默认值[]

以下是所有带命名空间的结构的默认值。所有预设对于这些结构都使用相同的值,除了minecraft:ruined_portal

表头为文件中的键名,仅给出暂译。

  1. 占位值,无实际效果。
  2. 2.0 2.1 盐不是为了这些结构而准备的;改变这些结构的盐值不会有任何效果。

生物群系[]

生物群系JSON文件的形式存储在数据包data/<命名空间>/worldgen/biome目录下。

雕刻器[]

雕刻器(Carver)用于添加雕刻出的生物群系的区域,并用空气或液体代替。这些雕刻器以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_carver目录下。

目前尚不清楚是否可以配置雕刻器的“海洋”层(例如主世界洞穴中y=10下方出现的熔岩)。

JSON格式[]

根标签

    •  type: 使用的洞穴类型,必须是以下中的一种:"cave"(洞穴)、"nether_cave"(下界洞穴)、"canyon"(峡谷)、"underwater_canyon"(水下峡谷)或"underwater_cave"(水下洞穴)。
    •  config: 参见下方。

所有雕刻器类型共用的:

  •  config:雕刻器的配置值。
    •  probability:每个区块尝试生成此雕刻器的概率,必须是0到1之间。
    •  y:高度提供器。雕刻器尝试生成在此高度。
      • 高度提供器
    •  yScale:浮点提供器。垂直缩放被雕刻的区域。
      • 浮点提供器
    •  lava_level:熔岩开始生成在此垂直锚点。
      • 一个垂直锚点的选项
    •  aquifers_enabled:如果为true,则会生成含水层。

如果雕刻器类型为"cave""nether_cave""underwater_cave"

  •  config:雕刻器的配置值。

如果雕刻器类型为"canyon""underwater_canyon"

  •  config:雕刻器的配置值。
    •  vertical_rotation[需要测试] 继续在峡谷中创建曲线。
      • 浮点提供器
    •  shape:峡谷使用的形状。
      •  thickness[需要测试]峡谷的宽度。
        • 浮点提供器
      •  width_smoothness[需要测试]值越高,峡谷的墙壁在垂直方向上越平滑。必须是正的。
      •  distance_factor[需要测试]
        • 浮点提供器
      •  horizontal_radius_factor[需要测试]
        • 浮点提供器
      •  vertical_radius_default_factor[需要测试]
        • 浮点提供器
      •  vertical_radius_center_factor[需要测试]
        • 浮点提供器

地表生成器[]

Paeonia (texture) TU1.png
该页面所介绍的内容已从Minecraft中移除。

这些特性曾存在于游戏中,但已被移除。

主条目:配置的地表生成器

地表生成器(Surface builder)控制地表的形状和其生成的方块。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_surface_builder目录下。

地物[]

主条目:配置的地物

地物(Feature)是世界中独特的元素,如树木矿脉等。配置的地物以JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_feature目录下。

结构地物[]

主条目:配置的结构地物

结构地物(Structure feature)是一种特殊的生成结构的地物,配置的结构地物(Configured structure features)JSON文件的形式存储在数据包data/<命名空间>/worldgen/configured_structure_feature目录下。目前尚不清楚普通地物和结构地物之间的区别标准。地牢沙漠水井通常被认定为结构,但在此处并不是结构地物。又如,下界化石是结构地物,但普通的化石并不是,虽然本质上它们一致。

结构集[]

结构集(Structure set)用于在给定位置上放置结构,其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/structure_set目录下。

JSON格式[]

  • 根标签
    •  structures:要放置的结构列表。
      • 要被放置的一个结构。
        •  structure:这个结构的命名空间ID,位于数据包data/<命名空间>/worldgen/configured_structure_feature[需要测试]目录下。
        •  weight:这个结构的权重。
    •  placement:列表中结构的放置方式。
      •  type:必须是minecraft:concentric_ringsminecraft:random_spread其中之一。
      • 如果typeminecraft:concentric_rings
        •  distance:结构之间的距离,分布方式类似于要塞[需要测试]
        •  count:结构生成的数量。
        •  spread:最中心一环的结构生成数量[需要测试]
      • 如果typeminecraft:random_spread
        •  spread_type(可选):lineartriangular,默认为linear
        •  locate_offset(可选):使用 /locate structure时的偏移量(单位为区块)。
        •  spacing:两个结构之间的平均距离(单位为区块)[注 1]
        •  separation:两个结构之间的最小距离,必须小于 spacing(单位为区块)。
        •  salt:帮助随机生成的数字;见盐 (密码学)

拼图池[]

拼图池(Jigsaw pool)模板池(Template pool)使用拼图方块,用于生成结构。其以JSON文件的形式存储在数据包data/<命名空间>/worldgen/template_pool目录下。

JSON格式[]

  • 根标签
    •  name: 该池的命名空间ID。[需要测试]
    •  fallback: 回落池,可以被设定为另一模板池。回落池中定义的模板会在以下三种情况下生成:
1.当拼图方块生成达到预定层数时,回落池会生成在最后一层的末尾。原版中,回落池用于生成村庄街道的末尾处,即结构文件中的terminators[需要测试]
2.当一个结构中的拼图方块试图加载的模板的边界箱既不完全在结构边界外部也不完全在结构边界内部时。参照拼图方块
3.当一个结构中的拼图方块试图加载的模板与其他已生成的结构有冲突时。例如,某拼图方块试图把一个12x12x12的结构加载到两个只有10方块间隔的结构之间。
以上三种情况中,游戏会试图从回落池加载一个模板来替代原先的模板进行生成。回落池中模板的大小可以是任意的,但通常比模板池中已有的结构小。当回落池中的模板真正尝试生成时,如果符合以下条件:
若为情况1、3:即将生成的模板不与其他已生成的结构冲突。
若为情况2:即将生成的模板完全位于原结构边界的内部。
此时,此模板将成功生成。否则,不会生成任何东西。
    •  elements: 一个可供选择的结构列表
      •  一个元素:
        •  weight: 使用该池时,该元素被选中的频率。
        •  element: 该元素的属性。
          •  element_type: 可为minecraft:empty_pool_element以不生成任何结构;minecraft:feature_pool_element,当feature被使用时;minecaft:list_pool_element,当elements被使用时;minecraft:legacy_single_pool_elementminecraft:single_pool_element,当location被使用时。 minecraft:legacy_single_pool_elementminecraft:single_pool_element的区别在于,minecraft:legacy_single_pool_element不会用空气方块替换已生成的方块,而minecraft:single_pool_element会使用空气方块替换生成范围内的方块,结构空位不受影响。
          •  feature: 要使用的地物的命名空间ID。
          •  location: 要放置的结构的命名空间ID。
          •  projection: 可为rigidterrain_matching[需要测试]
          •  processors: 处理器的命名空间ID,如果是一个字符串。
            •  processors: 所使用的处理器的列表。
              •  一个元素:
                •  processor_type: 所使用的处理器的命名空间ID。
                •  other properties [需要测试]
          •  elements: 一个可供选择的结构列表
            •  一个元素:
              •  weight: 使用该池时,该元素被选中的频率。
              •  location: 要放置的结构的命名空间ID。
              •  projection: 可为rigidterrain_matching[需要测试]
              •  element_type: 可为minecraft:empty_pool_element以不生成任何结构;minecaft:list_pool_element,当elements被使用时;minecraft:legacy_single_pool_element,当location被使用时。 [需要测试]
              •  processors: 处理器的命名空间ID,如果是一个字符串。
                •  processors: 所使用的处理器的列表。
                  •  一个元素:
                    •  processor_type: 所使用的处理器的命名空间ID。
                    •  other properties [需要测试]


处理器列表[]

主条目:处理器列表

处理器列表(Processor list)是用于影响结构中的方块的处理器的列表,以JSON文件的形式存储在数据包data/<命名空间>/worldgen/processor_list目录下。

JSON格式[]

  • 根标签
    •  processors: 处理器列表
      •  一个处理器
        •  processor_type: 可为minecraft:ruleminecraft:block_rotminecraft:block_ageminecraft:block_ignoreminecraft:blackstone_replaceminecraft:jigsaw_replacementminecraft:lava_submerged_blockminecraft:gravityminecraft:nop
        • processor_typeminecraft:block_rot:
          •  integrity: 结构的完整度,决定随机移除结构中方块的概率,0到1之间的数字。[需要测试]
        • processor_typeminecraft:rule:
          •  rules: 一个从上到下所要应用的规则的列表。[需要测试]
            •  一条规则
              •  position_predicate: 要应用到该方块的位置上的方块处理谓词(Predicate)[需要测试],可用的方块处理谓词见下
              •  input_predicate: 要应用到被放置的方块上的方块处理谓词
              •  location_predicate: 要应用到该结构生成前的该方块上的方块处理谓词[需要测试]
              •  output_state: 所有条件满足时放置的方块
                •  Name: 方块的ID
                •  Properties: 方块状态
                  •  state: 一个方块状态键值对。
        • processor_typeminecraft:block_age:
          •  mossiness: 0以下的值相当于0;1以上的值相当于1。用于决定结构中石质方块中含青苔的变种的比例。[需要测试]
        • processor_typeminecraft:block_ignore:
          •  blocks: [需要测试]
            •  一个方块
              •  Name: 所使用的方块的命名空间ID。
              •  Properties: 方块状态
                •  state: 一个方块状态的键值对。
        • processor_typeminecraft:gravity:
          •  heightmap: 必须是"WORLD_SURFACE_WG"(地表面(世界生成))、"WORLD_SURFACE"(地表面)、"OCEAN_FLOOR_WG"(海床面(世界生成))、"OCEAN_FLOOR"(海床面)、"MOTION_BLOCKING"(阻挡实体运动面)或"MOTION_BLOCKING_NO_LEAVES"(阻挡实体运动面(不含树叶))中的一个。
          •  offset: [需要测试]

方块处理谓词[]

Disambig gray.svg  本段落介绍的是自定义世界生成的机制。关于用于数据包中其他部分的技术性JSON文件,请见“战利品表谓词”。关于更多谓词,请见“谓词(消歧义)”。
  • 根标签
    •  predicate_type: 可为以下值:always_true以永远通过;axis_aligned_linear_pos以一个随机的概率通过,该概率基于方块到结构中心的距离[需要测试]block_match以检测一个方块;blockstate_match以检测一个特定的方块状态;random_block_match以检测方块,并以一个随机的概率通过;random_block_state_match以检测一个特定的方块状态,并以一个随机的概率通过;tag_match以检测方块是否在方块标签中。
    • predicate_typeaxis_aligned_linear_pos
      •  axis: 可以为xyz
      •  min_chance: 当方块距结构中心的距离等于min_dist时,该方块处理谓词通过的概率[需要测试]
      •  max_chance: 当方块距结构中心的距离等于max_dist时,该方块处理谓词通过的概率[需要测试]。若方块的距离在min_distmax_dist之间,则概率由min_chancemax_chance之间的值线性插值而得,即概率为( 距离 - min_dist ) / ( max_dist - min_dist ) * ( max_chance - min_chance ) + min_chance
      •  min_dist
      •  max_dist
    • predicate_typeblock_match
      •  block: 一个方块ID。
    • predicate_typeblockstate_match
      •  block_state
        •  Name: 方块的ID
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对
    • predicate_typerandom_block_match
      •  block: 方块的ID
      •  probability: 若该方块存在,该方块处理谓词通过的概率(在0到1之间)。
    • predicate_typerandom_block_state_match
      •  probability: 附加的概率
      •  block_state: 要检查的方块状态
        •  Name: 方块的ID
        •  Properties: 方块状态
          •  state: 一个方块状态的键值对
    • predicate_typetag_match
      •  tag: 方块标签的命名空间ID

历史[]

Java版
1.16.220w28a加入了对自定义世界生成的支持。
20w29a噪声设置被移动到了worldgen下。
1.1721w06a在“噪声设置”部分加入了 noise_caves_enabled aquifers_enabled min_surface_level参数,均对于主世界默认为true
21w07a在“噪声设置”部分加入了 grimstone_enabled参数,对于主世界默认为true
加入了新的矿脉地物生成机制。
21w08a将上个快照的 grimstone_enabled参数替换为 deepslate_enabled
略微更改了新的矿脉地物生成机制。
21w15a noise_caves_enabled aquifers_enabled deepslate_enabled参数现在在主世界中也默认为false了。
在各个生物群系中禁用了新的矿脉地物生成机制。
洞穴与山崖地形生成的有关更改被整合到洞穴与山崖预览数据包中。
21w16a在“噪声设置”部分加入了 ore_veins_enabled参数,在各维度中都默认为false
21w17a在“噪声设置”部分加入了 noodle_caves_enabled参数,在各维度中都默认为false
1.18.222w06a为结构噪声设置添加标签字段。

外部链接[]

原版世界生成设置(直接下载)

注释[]

  1. 将其设置为一个数字并不意味着结构会生成得如同这个值一般频繁,仅仅是游戏会尝试去如此生成而已;生物群系和和地形都会阻止一些结构得以生成。两次结构生成位置的尝试之间的最大距离为2*spacing - separation

参考[]

Advertisement