1. Wiki
  2. /世界生成
  3. /生物群系文件

生物群系文件

制作一个 Minecraft 基岩版自定义生物群系:行为包中的 biome.json、它的组件和标签,以及设置颜色和迷雾的 client_biome 文件。

生物群系是世界中拥有自己的地面、天气、颜色和生物的一片区域。平原、沙漠和樱花树林都是生物群系。在这篇指南中,你将制作一个红宝石树林:一片温暖的草甸,草是偏红色的,它会替换掉平原中的一小部分区域。

和方块一样,生物群系也分布在两个包里:

  • 行为包文件说明这片土地是如何构建的:它的气候、地面由哪些方块覆盖,以及它出现在哪里。
  • 资源包文件(“客户端生物群系”)说明它看起来和听起来是什么样的:草的颜色、水的颜色、迷雾和音乐。

文件

你的附加包
BP/
  biomes/
    ruby_grove.biome.json
RP/
  biomes/
    ruby_grove.client_biome.json

两个文件使用同一个 identifier:wiki:ruby_grove。游戏就是靠它知道这两个文件是一对的。

第 1 步:行为包生物群系

BP/biomes/ruby_grove.biome.json
{
  "format_version": "1.26.30",
  "minecraft:biome": {
    "description": {
      "identifier": "wiki:ruby_grove"
    },
    "components": {
      "minecraft:climate": {
        "temperature": 0.9,
        "downfall": 0.4,
        "snow_accumulation": [0.0, 0.125]
      },
      "minecraft:overworld_height": {
        "noise_type": "lowlands"
      },
      "minecraft:surface_builder": {
        "builder": {
          "type": "minecraft:overworld",
          "top_material": "minecraft:grass_block",
          "mid_material": "minecraft:dirt",
          "foundation_material": "minecraft:stone",
          "sea_floor_material": "minecraft:gravel",
          "sea_material": "minecraft:water",
          "sea_floor_depth": 7
        }
      },
      "minecraft:replace_biomes": {
        "replacements": [
          {
            "dimension": "minecraft:overworld",
            "targets": ["plains"],
            "amount": 0.25,
            "noise_frequency_scale": 0.5
          }
        ]
      },
      "minecraft:map_tints": {
        "grass": { "type": "tint", "tint": "#c4504f" },
        "foliage": "#b8433f"
      },
      "minecraft:tags": {
        "tags": ["overworld", "animal", "monster", "plains", "ruby_grove"]
      }
    }
  }
}

这个文件分为两部分:

  • description 里放的是 identifier。使用小写字母和你自己的命名空间。这也是 /locate biome 使用的名称。
  • components 里放其他所有内容。每个组件开启生物群系的一项功能。

每个文件只放一个生物群系,并以生物群系的名字给文件命名(wiki:ruby_grove 对应 ruby_grove.biome.json)。

主要组件

下面是你最常用的组件。每一个都在生物群系组件中有自己的页面。

组件作用
minecraft:climate温度和降雨。寒冷的生物群系会有雪和冰,downfall 为 0 表示完全不下雨。
minecraft:surface_builder地面由哪些方块构成:最上层、它下面的泥土、深处的石头以及海底。
minecraft:overworld_height地形有多高、多崎岖。选择一个预设,比如 lowlands、highlands 或 mountains。
minecraft:replace_biomes通过占据现有生物群系的部分区域,把你的生物群系放进世界中。
minecraft:map_tints游戏内地图上草和树叶的颜色。
minecraft:creature_spawn_probability区块首次生成时动物出现的频率(0 到 0.75)。
minecraft:village_type这里可以生成哪种风格的村庄:default、desert、ice、savanna 或 taiga。
minecraft:tags供其他文件检查的标签。见下文。

你的生物群系如何进入世界

单靠一个新的生物群系文件什么也不会发生。游戏只会放置那些告诉了它该去哪里的生物群系,所以自定义生物群系需要 minecraft:replace_biomes:

  • targets 列出你要占据的生物群系。不要写命名空间(写 plains,而不是 minecraft:plains)。
  • dimension 是 minecraft:overworld 或 minecraft:nether。
  • amount 大致表示你替换掉目标生物群系的多少,从略大于 0 到 1。
  • noise_frequency_scale 设置区块的大小。值越低,区块数量越少但面积越大;值越高,就会出现很多小块。

新的替换项要加在末尾

一旦玩家已经有了包含你的生物群系的世界,就只能在 replacements 列表的末尾添加新条目。把新条目放在前面会改变所有新区块的生成方式。

标签

标签是附加在生物群系上的普通单词。它们有两个用途:

  1. 其他文件会检查它们。 生成规则和地物规则会用 has_biome_tag 之类的测试来决定生物在哪里生成,树木和矿石放在哪里。给你的生物群系加上 overworld、animal 和 monster 这样的标签,很多原版内容就会把它当作普通的主世界生物群系来对待。
  2. 有些标签有内置含义。 例如 cold 或 frozen 会让村民穿上雪地服装,plains、forest、meadow 和 swamp 决定长出哪些花,desert 和 mesa 会让沙子播放环境音效。

再加上你自己的标签(这里是 ruby_grove)。这样你自己的地物和生物就可以只针对这个生物群系。

标签可以使用字母、数字、. 和 _。

第 2 步:客户端生物群系

资源包这边的结构相同,但根节点是 minecraft:client_biome:

RP/biomes/ruby_grove.client_biome.json
{
  "format_version": "1.21.120",
  "minecraft:client_biome": {
    "description": {
      "identifier": "wiki:ruby_grove"
    },
    "components": {
      "minecraft:grass_appearance": {
        "color": "#c4504f"
      },
      "minecraft:foliage_appearance": {
        "color": "#b8433f"
      },
      "minecraft:water_appearance": {
        "surface_color": "#7a3fd1"
      },
      "minecraft:sky_color": {
        "sky_color": "#ff9a8c"
      },
      "minecraft:fog_appearance": {
        "fog_identifier": "wiki:ruby_fog"
      },
      "minecraft:biome_music": {
        "music_definition": "cherry_grove"
      }
    }
  }
}
组件作用
minecraft:grass_appearance草的颜色。
minecraft:foliage_appearance树叶和藤蔓的颜色。
minecraft:water_appearance水面颜色和透明程度。
minecraft:sky_color天空颜色。
minecraft:fog_appearance使用哪个迷雾文件。
minecraft:biome_music播放哪首音乐。
minecraft:ambient_sounds背景循环音和随机的额外音效。

光影视效还增加了四个组件,它们各自指向自己的文件:大气效果、光照、调色和水体。完整列表请看客户端生物群系组件。

所有组件都是可选的。你没写的部分都会使用默认值。

biomes_client.json 是旧做法

旧的包会把所有生物群系的颜色放在一个大大的 RP/biomes_client.json 中。较新的内容为每个生物群系使用一个 .client_biome.json 文件。游戏仍然会为其他包读取旧文件,但新的附加包应该使用按生物群系划分的文件。

测试

  1. 在一个新世界中开启两个包。生物群系只会出现在尚未生成的区块中。
  2. 运行 /locate biome wiki:ruby_grove 来找到它。
  3. 飞过去检查草的颜色。如果还是普通的绿色,说明客户端生物群系的 identifier 不匹配。

找不到它?

测试时调高 amount、调低 noise_frequency_scale,让生物群系又大又常见。满意之后再把它们调回去。也要查看内容日志:方块名称中的一个拼写错误就会让整个生物群系无法加载。

下一步

We use cookies to improve your experience and analyse site traffic. Learn more