生成

来自Minecraft Wiki
跳转至: 导航搜索
Clock JE2 BE1.gif
此条目需要更新。

原因:需要从1.9至1.16快照完整地检查该文章是否是最新的。

Cleanup.svg
该文章需要整理以符合样式标准讨论

请帮助优化文章样式来让它符合样式要求。

生成(Spawn)是指玩家生物在世界中被创造的过程和行为。

玩家的生成[编辑 | 编辑源代码]

世界生成[编辑 | 编辑源代码]

世界生成区域示意图。白色表示单人游戏生成区域,蓝色代表多人游戏生成区域,黄色代表世界出生点。
参见:多人游戏详情

当服务器处于除冒险模式以外的其他模式下时,新玩家最初将在世界出生点周围的小片区域内生成。区域默认为21×21格,但能通过修改游戏规则spawnRadius更改。一旦死亡,玩家将在该区域内重生,除非他们的个人重生点已经被更改(在上睡觉、使用重生锚或使用/spawnpoint命令)。另外,在世界生成中,玩家只能在草方块上生成。

当玩家加载世界或重生时,游戏会在世界生成区域中搜索并将玩家放在草方块上。任何直接放在草方块上的非固体方块(例如线,地毯或是花)均会使该草方块成为无效的出生点。如果所有的草方块均被破坏或是上方有不完整方块,那么玩家将直接在21x21的区域中心生成。

玩家生成时会出生在出生点的X轴与Z轴的相应位置的最高处,即使这样的生成算法会把玩家放到最大建筑高度的上面。这个区域将不考虑实体生成在什么可怕的地方,因此,若在X轴和Z轴的位置没有方块,就可能会导致玩家生成在虚空上方。

世界出生点也决定了永久加载的出生点区块的中心。

世界出生点可通过/setworldspawn更改。

基岩版世界生成搜索[编辑 | 编辑源代码]

基岩版中,当玩家创建一个新的世界时,世界出生点会被限制到特定的生物群系中。该算法从坐标(0,0)开始一直搜索,直到找到可以成为世界出生点的生物群系为止。通过使用附加包,还可以指定一个稀有的生物群系,来让玩家生成在较远的地方。不过如果这个生物群系不存在或无法生成,那么游戏将会崩溃。

算法会搜索下列生物群系:


玩家会生成在以已选生物群系的选中点为中心、半径为5的范围内,有时会导致玩家生成在出生生物群系之外,比如在沙滩、河流或沼泽。

可用的世界出生生物群系搜索不会在超平坦旧世界类型中使用。

冒险模式[编辑 | 编辑源代码]

当服务器的默认游戏模式被设置为冒险模式(通过使用server.properties)时,游戏就会忽略正常的生成机制,并直接在世界出生点上生成玩家。这包括了XYZ轴坐标,即使没有阻挡及上方有方块存在。

如果Y轴不是一个有效的生成区域直到服务器找到有效为止,大多数玩家可以生成在Y=256。如果生成区域中间是空气,玩家会生成在空气中,甚至在出现空隙(如果有)的情况下时会掉进虚空里。

确定位置[编辑 | 编辑源代码]

有几种方法可以确定世界出生点:

  • 没有被绑定到磁石上的指南针总是指向世界出生点。
  • 执行/gamerule spawnRadius 0命令,之后执行/kill
  • 除玩家外的实体若是掉入末地中的返回传送门,则将会精确地落到世界出生点。扔进去的物品将会在主世界中标记出出生点。玩家则会照常生成,以避免死亡。
  • Mod或外部程序(例如NBTExplorerMCEdit)也可以用来寻找世界出生点。

个人生成[编辑 | 编辑源代码]

玩家可以通过重生锚或使用/spawnpoint命令来更改个人出生点。如果玩家死亡时个人出生点被阻挡(或被破坏等),他们将被迫重生在世界出生点。

在床上睡觉允许周围被阻挡,但如果原来的出生点被阻挡,玩家将尝试在床附近的其他方块上重生。这对重生锚也有效。如果出生点是使用/spawnpoint设置的但被阻挡了,玩家将不会被迫重生到世界出生点,会无视阻挡。

自然生成[编辑 | 编辑源代码]

许多生物在区块创建时生成,这个事件只能在每个区块内只能发生一次,且不受/gamerule doMobSpawning命令的影响。

动物的生成[编辑 | 编辑源代码]

一头牛在地图中的树叶中生成并且不能逃出,这是在丛林以及森林地区常见的现象。

大约十分之一的新生成区块中将包含生物,通常是一群最多到4只的同种动物。它们总在该区块柱状区域中最高的有效方块生成,换言之就是可以看到天空的地方。此方块必须是不透明的方块而且其上两个方块必须是透明方块。方块上面并不需要有也不需要被照亮(生物生成也是同理)。

共有两种动物生成类型:普通动物以及生物群系特有动物。

普通动物

普通动物将不会在沙漠恶地沙滩积雪的冻原河流冻河蘑菇岛这些生物群系生成。这些权重值是来自基岩版的生物生成率‌[需要更多信息]

    • 权重:6, 2-3只动物
    • 权重:5, 2-4只动物
    • 权重:5, 1-3只动物
    • 权重:4, 2-3只动物
生物群系特有动物

一些生物只可以在特定的生物群系生成。‌[需要更多信息][需要验证]

生物 生物群系 生成权重
兔子 沙漠

针叶林
巨型针叶林‌‌[仅JE]
积雪的针叶林
积雪的冻原 (所有变种)
冻洋
冻河
积雪的沙滩
冻洋(旧版)‌‌[仅BE]
繁花森林

125 (在繁花森林中为15
红色哞菇 蘑菇岛
蘑菇岛岸
810
北极熊
积雪的冻原

冻洋
冻河

110 (在冻洋中为510
熊猫 丛林‌‌[仅BE]

竹林

410 (在普通的丛林中为110
狐狸 针叶林

积雪的针叶林
巨型针叶林

810
羊驼 热带草原

山地

810 (在山地中为510
热带草原

平原

410 (在热带草原中为110
平原

热带草原

240 (在热带草原中为140
鹦鹉

豹猫

丛林 (所有变种) 鹦鹉为410,豹猫为310
针叶林

积雪的针叶林
巨型针叶林
森林

810 (在森林中为510
海龟 沙滩 810
海豚 海洋

暖水海洋
温水海洋
冷水海洋

710
鳕鱼 海洋

温水海洋
冷水海洋
冻洋‌‌[仅BE]

75100
鱿鱼 海洋

河流
沙滩

810
鲑鱼 河流

冷水海洋
冻洋
温水海洋‌‌[仅BE]

在海洋中为26100,在河流中为16100
河豚

热带鱼

暖水海洋

温水海洋‌‌[仅JE]
温水深海‌‌[仅JE]

25100

动物生成的随机性继承自世界种子, 这意味着种子相同的世界总是会在相同的地方加载区块时生成相同的动物。

怪物[编辑 | 编辑源代码]

大多数怪物无法在和平模式下生成。在更高的难度中,大多数怪物都会影响玩家睡觉,且它们通常都在亮度为7或更低的地方生成。

普通怪物

普通的怪物生物可以在主世界中的任何生物群系生成(蘑菇岛除外)。它们在地面上或是地下均可生成。这些权重值是来自基岩版的生物生成率。

  • 僵尸
    • 权重:100,每组2-4只
  • 苦力怕
    • 权重:100,单独生成
  • 蜘蛛
    • 权重:100,单独生成
  • 骷髅
    • 权重:80,每组1-2只
  • 末影人
    • 权重:10,每组1-2只
  • 女巫
    • 权重:5,单独生成
生物群系特有怪物‌[需要更多信息]

一些怪物只能在特定的生物群系生成。

生物 生物群系
溺尸 海洋(所有变种)

河流(所有变种)

尸壳 沙漠(所有变种)
史莱姆 沼泽
流浪者 积雪的冻原

雪山
冰刺平原
冻河
冻洋(所有变种)

岩浆怪 下界荒地

玄武岩三角洲

猪灵
僵尸猪灵
下界荒地

绯红森林

疣猪兽 绯红森林
恶魂 下界荒地

灵魂沙峡谷
玄武岩三角洲

炽足兽 下界荒地

绯红森林
灵魂沙峡谷
玄武岩三角洲
诡异森林

其他生物[编辑 | 编辑源代码]

/gamerule doMobSpawning设置为了false,这些生物仍会生成,因为它们是作为结构的一部分生成的。

生成周期[编辑 | 编辑源代码]

Java版[编辑 | 编辑源代码]

生物大致划分为五种类型:攻击型,被动型,水生型(例如鱿鱼),水生环境型(例如)和环境型(例如蝙蝠)。攻击型生物有一个每游戏刻120秒)执行一次的生成周期。而被动型以及水生型每400游戏刻(20秒)只有1次生成周期。因此,在满足生成条件的地方,攻击型生物会频繁生成,而被动型生物(即动物)很少生成。大多数动物都是在区块生成时一起生成的。

生物会自然生成在以玩家为中心15×15区块(240×240方块)的正方形范围内。当有多个玩家时,生物会在任意玩家周围的给定距离内生成。然而,和最近的玩家的直线距离大于128格的怪物(以及一些其他的)将会被立即删除(距离最近玩家距离大于32格,小于128格的怪物将会被随机删除),因此生物生成或多或少的会被限制在半径为128格,以每个玩家为中心的欧几里得球体内。在多人游戏中,生物上限是所有玩家共享的,无论他们在哪里。

每24000游戏刻(20分钟),如果世界中没有流浪商人,游戏会在玩家或是村庄集合点48格之内尝试生成一个流浪商人和两只被拴住的羊驼。流浪商人在玩家在地下时将不会生成。‌‌‌[仅Java版]

Java版生物上限[编辑 | 编辑源代码]

该段落仍需完善。你可以帮助我们扩充关于该主题的更多信息。
原因:有一个新的用于灵魂沙峡谷和诡异森林的刷怪势能系统(此机制也在自定义世界生成中被提及)。每个生物生成时都会有一个成本,并会从生物群系的总能量中扣除。它是单纯的会减少每次生成,还是只会减少成群生成?能量如何恢复?等等。请查看源代码中的 Biome.java , NaturalSpawner.java ,以及 PotentialCalculator.java。

生物上限数与符合生成生物条件的区块数量成正比。为了计算上限,生成区域在每个方向上拓展一个区块(因此默认为17×17的区块),然后将总区块数量代入以下公式:

生物上限 = 生物类型所对应的常数 × 区块数 ÷ 289

每个生物类型的常数如下:

  • 怪物=70
  • 动物=10
  • 环境类(蝙蝠)=15
  • 水生动物(鱿鱼和海豚)=5
  • 水生环境类(鱼)=20
  • 其他=-1

分类“其他”只会用在一些非生物实体,不会自然生成的生物,或是遵循其他不同的生成规则的生物使用。因此,生物上限和这类实体没有关系。

在单人游戏中,总是会有289个区块被加载,所以生物类型所对应的常数和整个世界的生物上限总是相等的。

在多人游戏中,当更多区块被加载时,生物上限也会增加。由于在多个玩家的加载范围内的区块只会被计算一次,所以玩家分布的范围越广,则会加载更多的区块和产生更高的生物上限。

当生成周期开始时,游戏会根据生物上限检查一次生物数量。如果某个类别中的生物数量超过上限,则这个生物类型的生成周期会被直接跳过。生物数量的检查区域和计算生物上限的检查区域相同,都是在生成区域的四个方向各拓展一个区块所得的区域。每个维度的生物上限是独立的。

生物在每个区块尝试生成前会对生物数量是否大于生物生成上限进行检查,如果生物数量达到生物生成上限+1时,生物将不会继续生成。也就是说,生物实际能最的最大数量是生物生成上限+群组大小。

成群生成[编辑 | 编辑源代码]

一个成群生成的例子。这个41×1×41的生成区域被蓝色阴影标记(未按照比例),黄色的标记是生物在检查环境后实际上可以生成的位置。注意生物可以生成在火把或梯子方块内部,但是不能生成在玻璃上方,因为玻璃不是一个固体方块。红色立方体是该群组的中心。
生物生成位置对环境的需求

在每个生成周期内,游戏会尝试在每个“合格的”区块(即受随机刻影响的区块)尝试进行一次成群生成。首先游戏会选择一个在X和Z轴上随机,Y在0和最高非空气方块+1(含两端)之间的位置作为成群生成的中心。如果还位置是一个固体方块,那么该区块内进一步的生成会被中止。

一群生物会在一个以初始生成方块为中心,大小为41×1×41的方形区域内尝试生成。生成的生物身体的下半部分会处于还区域中。每次尝试生成时,游戏会把上一次尝试的位置的X和Z坐标随意移动0-5格。具体格数由两个1-6的随机整数做差得到,所以游戏会倾向于移动更少的格数。这样,生成的生物会强烈地集中于中心方块附近。大约85%的生物会生成在距离中心方块5格以内,约99%的会在10格以内。

群组内的所有生物都是同一个种类。这个种类在第一次在区块内尝试时,由初始方块所在的生物群系或者结构(后者优先)随机决定。不同的生物群系中的不同生物有不同的权重,某些结构内有专门的生物生成列表供选择。

游戏会在每次尝试生成时检查该群生物数量是否已经达到最大群组规模和该位置是否可以生成这种生物。

成群生成大小:

生成尝试将会进行的次数:

  • 8 狼,鳕鱼和热带鱼
  • 6 马和驴
  • 1 恶魂
  • 4 其他生物

如果最大群组规模小于生成尝试次数,那么会有一些生成尝试失败,这在实际运行中很常见。如果最大群组规模的大于生成尝试次数,那么就只有进行尝试并且成功的会真正生成。一些生物有最大和最小群组规模,那么生成尝试的次数将会在两者之间。

生成位置:

在所有维度,结构边界箱比生物群系有更高的优先级决定敌对生物的生成。这意味着在沼泽小屋,掠夺者前哨站,下界堡垒(结构体外部的大范围只有在生成方块下面是下界砖块时如此)和海底神殿会生成特有的生物。

主世界这取决于位置:

下界

生成条件[编辑 | 编辑源代码]

当游戏试图在生物群系中生成生物时,则生成是否失败不同于上述的描述。例如,海豚可以在冻洋和封冻深海中发生成群生成,但其他生物群系不行。这些规则也适用于同一种生物的变种,例如小僵尸和蜘蛛骑士。

只有在下列所有条件满足时,每次独立的生成尝试才能成功:

  • 24格(球形)内不能有玩家和出生点(玩家出生点或世界出生点)。
  • 已加载的生物数量必须小于该种生物上限(也就是对应的生物上限未满)。
  • 要生成的生物的碰撞箱必须不能被其他碰撞箱阻挡,生物无法在生成时与其他物体相互碰撞。
  • 生物的碰撞箱不能被方块截断。
  • 包括被动生物在内的所有生物,超过玩家128格(球形)时生成会失败。
  • 游戏规则DoMobSpawning被设置为true
  • 对于非水生生物,生成方块和上方不能为铁轨充能铁轨探测铁轨激活铁轨红石组件,也不能为凋零玫瑰(除了凋零骷髅)或甜浆果丛(除了狐狸)。

敌对生物:

  • 难度不能为和平,但豹猫猪灵疣猪兽是例外。[1]
  • 除了守卫者、溺尸和幻翼以外的敌对生物:
    • 下方的方块必须有一个完整不透明的上表面(这个条件包括了所有上半台阶,倒置的楼梯,位于方块上半部分的活板门),或者是灵魂沙粘液块
    • 下方的方块不得是基岩、屏障或任意一种活板门。[2]
    • 下方的方块不得是光源等级为14-15的光源方块,除南瓜灯和点亮的红石灯
    • 生物的碰撞箱不能与液体碰撞。
    • 上方的方块必须是透明的。

满足上方的条件的方块位置可以称为可刷怪方块

  • 对于在沼泽史莱姆苦力怕骷髅凋零骷髅女巫僵尸村民尸壳流浪者溺尸蜘蛛
    • 光照等级8是因光照强度生成失败的分界线,因此敌对生物生成需要7及以下。
    • 在主世界中露天下会有额外50%生成失败几率。
    • 如果是在沼泽生物群系的史莱姆:
      • 怪物生成方块必须在沼泽生物群系。
      • 生成方块必须在51到69层之间。
      • 生成失败率基于月相
      • 额外有50%的失败率
    • 如果是尸壳或流浪者
      • 生成地点必须露天,通常由天空光照必须为15来决定。
      • 如果是下界堡垒中的骷髅
      • 有80%的概率生成为凋零骷髅。
    • 上述敌对生物的光照检查不适用下列情况。
      • 史莱姆区块中的史莱姆
        • 生成方块高度必须低于40。
        • 有90%的生成失败率。
      • 恶魂
        • 有95%的生成失败率。
      • 岩浆怪
      • 猪灵或者僵尸猪灵
        • 光照等级必须为11或更低
        • 下方不得是下界疣块
      • 疣猪兽
      • 烈焰人
        • 光照等级需要11或更低。
      • 北极熊
        • 光照等级需要大于8
        • 只能生成在冰上。
        • 群系必须为冻洋或者封冻深海。
      • 如果是烈焰人、凋零骷髅、骷髅、岩浆怪或僵尸猪灵在下界要塞的大范围内,建筑范围外。
      • 豹猫
        • 生成方块必须在62以上。
        • 生成方块必须是草方块树叶
        • 在丛林中有13的几率生成失败,而在竹林和丛林边缘会100%生成失败。
  • 对于守卫者和溺尸:
    • 生成方块,上方和下方都必须是水,包括含水方块和气泡柱。
      • 如果是守卫者:
        • 如果刷怪方块暴露在天空下,有95%的失败几率。(细节)
      • 如果是溺尸
        • 海洋中有140的几率成功,而河流中有115的几率成功。
        • 在海洋生物群系中,溺尸需要生成在海平面以下5格以下。

被动生物

  • 生物的碰撞箱内不能有液体。
    • 如果不是炽足兽,那么光照等级需要9及以上。
      • 如果是哞菇
        • 下方方块必须是菌丝
      • 如果是海龟
        • 下方方块必须是沙子
        • 生成方块必须在高度67或更低。
      • 其他生物
        • 下方方块必须是草方块。
    • 如果是炽足兽
      • 生成尝试会在熔岩中向上检查,直到检查到一个上方为空气的熔岩。
      • 炽足兽生成在高度31及以下。

水生生物(鱿鱼鳕鱼鲑鱼河豚热带鱼海豚

  • 生成方块和上方必须是水,但不能是含水方块。
  • 生成方块下方必须是水或含水方块。
    • 如果是鳕鱼、鲑鱼、河豚和热带鱼,那么水生环境类动物生成上限需要未满。
    • 如果是鱿鱼或海豚,那么水生动物生成上限需要未满。
      • 对于鱿鱼
        • 生成方块需要在高度46至62。
        • 生成方块必须在海洋或河流生物群系。
      • 对于海豚
        • 生成方块需要在高度45到62。
        • 生成方块需要在海洋或深海生物群系。

环境生物:

  • 生物碰撞箱内不能有液体。
    • 对于蝙蝠
      • 生成方块需要在62或更低。
      • 现实世界时间在10月20日到11月3日期间,光照等级需要7或更低。其他时间需要光照等级4或更低。

所有条件满足后,生物即可生成。

生成势:

下界疣块和下界岩标出了因生成势而不会发生生成的区域

生成可能因为生成势而取消。扭曲森林中的末影人和灵魂沙峡谷中的骷髅、恶魂、炽足兽和末影人会提高生成势。能够提高生成势的生物会在以其为中心的一个球体中将生成势提高到足以取消生物生成的程度。如果生成势足够高,那么能够提高生成势的生物不会生成。如果有多个生物临近,这会导致生物的生成势不会互相覆盖,而是影响到较远的区域。生物生成的方块与其南侧、东侧和东南侧的方块的生成势相同。如果附近没有其他影响生成势的生物,那么以其为中心,直线六格以内、对角线四格以内不会有生物生成。

注解[编辑 | 编辑源代码]

  • 通常情况下,室外有空气的建筑比地下室能在室内生成更多的生物,因为在室外生成的群组可以在室内生成生物。
  • 生物容量在很短的时间内就趋于饱和。因为这一点,通过让生物聚集于一个生成空间里(比如刷怪塔)可以防止生物在室外生成。
  • 容量的存在也意味着生物死得越快,生成得就越快。
  • 如果玩家的视野距离或多人游戏中的服务器视野距离为9或更低,则怪物生成数量会严重减少(或者它们消失太快),并且可能导致玩家根本没有遇到怪物。请将视图距离设置为10或更高,以确保怪物正确生成。
  • 通过方块碰撞箱,玩家可以阻止部分生物生成。例如一格空气配合一个上半活板门,能只让苦力怕和蜘蛛生成。而一格高的空间上方为合适方块的地方能只生成蜘蛛。

基岩版[编辑 | 编辑源代码]

基岩版中的自然生成与在Java版中的有某些相似之处。在基岩版中,有两种主要的生成类型:集群生成与结构生成。结构生成指生物作为结构的一部分生成(如下界要塞、女巫小屋等)。集群生成负责其他所有自然生成,包括单独生成的生物。在生成条件和生物上限上,两种自然生成遵守(和Java版)相同的规则,然而绝大多数动物可以生成于光照等级高于7的地点,而非高于9的。

基岩版中,生物生成于模拟区块中距玩家24-44格远处。每一刻中每一区块有1200的几率运行生成算法。

基岩版生物上限[编辑 | 编辑源代码]

有两种主要的生物上限影响生成:全局生物上限、用于一般生物的种群控制上限和用于个别生物的密度上限。无论难度如何,自然生成的全局上限总是200。全局上限仅影响自然生成,不影响繁殖刷怪蛋/summon刷怪笼或其他种类的生成。只有玩家周围和通过/tickingarea手动设置的常加载区域中的生物纳入全局生物上限的计算之中;未加载的生物不计算。

除全局生物上限之外,还有种群控制上限。种群控制上限限定了每种生物在尝试生成的区块周围9×9区块的区域内的个数。常加载区域之外的生物,只要它们在登录时就已经加载,就会计入种群上限之中。种群上限分为截然不同的两类:平面生物上限和洞穴生物上限。洞穴生物不会计入平面生物上限中,反之亦然。决定生物计入哪个上限之中的是其生成时的位置,而非当前所在的位置。对于集群生成,生成在最高可生成方块的生物计入平面上限,否则计入洞穴上限。结构生成的生物和转化的生物永远计入洞穴上限,而刷怪笼生成的生物计入平面上限。

生物分为以下五种:环境生物、动物、怪物、掠夺者和水生生物。每一个维度下每种生物的在不同地点的种群控制上限如下所示(以星号标记的上限出现在代码中,但是未被使用):

种群控制上限
类别 地点 主世界 下界 末地
环境 平面 0 0 0
洞穴 2 0 2*
动物 平面 4 0 4*
洞穴 0 4 0
怪物 平面 8 0 10
洞穴 8 16 8*
掠夺者 平面 8 0 8*
洞穴 8 0 8*
水生 平面 36 0 36*
洞穴 0 0 0

某些生物亦有其自己的密度上限,这使得其数量略小于种群控制上限。密度上限和种群控制上限的检查方式相同。

单种生物的上限
生物 平面上限 洞穴上限
鳕鱼 20 不生成
苦力怕 5 无限(受种群控制上限的限制)
海豚 5 不生成
溺尸 5(海洋)
2(河流)
不生成
恶魂 不生成 2
河豚 3 不生成
鲑鱼 10(海洋)

4(河流)

不生成
鱿鱼 4 不生成
热带鱼 20(预设图案)
20(随机图案)
不生成


基岩版生成条件[编辑 | 编辑源代码]

以下规则适用于绝大多数生物:

  • 该生物仅能玩家附近24至44格(上限取决于模拟距离)的球形中生成。
  • 该生物的底部(站立生物的脚部,如果该生物的身高小于等于一格则是全身)仅能在空气方块或是水方块(水生生物)之中生成。该规则无视一些自然生成的不阻碍运动的方块,如草和花。
  • 该生物必须生成在一个完整的固体表面之上。(生物不能生成在地毯、下半块台阶、栅栏、向上的楼梯、红石中继器和箱子等之上)
  • 该生物不能生成生成在完整透明方块,如玻璃和树叶之上。
  • 对于能够生成并漂浮在空气或水中的生物,检查生成条件的方块是该生物生成位置向下第一个固体方块之上紧邻的空气或水方块。(因此,幻翼不能在铺满地毯的平原上空生成,鱼也不能在铺满下半块台阶的海洋之中生成)。
  • 绝大多数主世界怪物不能在亮度高于7的地点生成。
  • 绝大多数主世界动物不能在亮度低于7的地点生成。

集群生成[编辑 | 编辑源代码]

集群生成分为以下两步:首先尝试生成平面生物,然后尝试生成洞穴生物。在生成之前,会在当前区块周围9×9区块的正方形区域内计算种群控制上限。然后,生成开始并在被计算的区块内随机选择X和Z坐标。Y坐标通过从世界高度向下搜索至第一个上方一格没有阻碍生成方块且顶部为固体的方块来计算得到。生成算法会将该方块当作平面方块,同时尝试生成一群平面生物。然而,如果生成算法在找到平面方块之前就遇到了固体方块(比如树叶下方的树干),那么就不会尝试进行平面生成。此后,生成算法继续向下搜索至下一个合适的,上方一格没有阻碍生成方块的方块。找到满足上述要求的方块后,生成算法会尝试在该方块处生成洞穴生物。洞穴生成会一直持续至Y坐标达到世界底部,并且不会在生成生物后停止。

尝试集群生成平面或洞穴生物时,生成算法会通过以下步骤得到生成何种、多少生物。

  1. 选择一种随机生物
    • 如果当前生成位置为液体,选择随机水生生物
    • 如果光照等级大于等于7,当前位置上方没有其他方块且当前位置为草方块,则选择随机动物
    • 否则,生成怪物
  2. 选择随机数字作为该集群的生物数量。每种生物都有自己的最小和最大数量,且该数量可能受难度和生物群系的影响
  3. 确保生成位置满足生成条件
  4. 由全局生物上限限制生成生物的数量。如果生物数量已经达到或者超过生物上限则生成不会发生
  5. 对于每个生成的生物,检查是否超过种群控制上限或是生物密度上限
    • 如果生成当前生物不会超过两个上限,则生成该生物的概率由以下公式计算:(生物密度上限 - 当前生物密度) / 生物密度上限
  6. 最后,尝试生成该生物
    • 生成生物可能失败,比如生成在方块或是墙壁当中时。

结构生成[编辑 | 编辑源代码]

游戏会尝试于自然生成的结构中的特定相对X、Z坐标(称为“硬编码生成点”)进行结构生成。含有硬编码生成点的结构包括女巫小屋、海底神殿、掠夺者前哨和下界要塞。每当含有硬编码生成点的区块中进行了一次成功的集群生成,环境生成算法亦会尝试进行结构生成。注意此处的成功指找到可生成的方块,即使由于光照或是密度检查而未能生成生物。结构生成遵循和上述集群生成相同的规则和步骤,只有以下不同:

  • 特定X与Z坐标位置的Y坐标搜索的起止点由结构的类型决定,而非从世界高度开始至基岩结束。结构生成仅在该区间内第一个可生成方块(即最高的可生成方块)处尝试一次。
  • 选择的生物取决于结构:女巫小屋生成女巫,海底神殿生成守卫者,掠夺者前哨生成掠夺者(包含巡逻队长),下界要塞生成骷髅、凋灵骷髅、烈焰人和岩浆怪。
  • 对于结构生成的尝试,有效的种群控制上限提高一个。

其他种类的生成[编辑 | 编辑源代码]

  • 扔出的鸡蛋可以生成
  • 如果玩家建造出正确的结构,即可生成雪傀儡铁傀儡凋灵。在人口足够的村庄中亦会生成铁傀儡。参见各自的页面以获得详细信息。
  • 破坏被虫蚀的方块或其附近的蠹虫遭到攻击会生成蠹虫。
  • 僵尸猪灵可能在主世界的下界传送门附近生成。这种生成不受到光照与玩家过近的限制。
  • 玩家使用末影珍珠时可能生成末影螨
  • 杀死大型或中型的史莱姆岩浆怪会生成更多更小的个体。
  • 闪电击中时会被替换为新生成的僵尸猪灵
  • 村民被闪电击中时会被替换为新生成的女巫
  • 苦力怕被闪电击中时会被充能。
  • 刷怪笼会在其周围不断地生成生物。自然生成的刷怪笼可以生成僵尸骷髅蜘蛛洞穴蜘蛛蠹虫岩浆怪烈焰人。可以使用指令或刷怪蛋使其生成其他生物。参见:刷怪笼
  • 海龟蛋可孵化并生成小海龟。
  • 僵尸、灾厄村民和僵尸猪灵受伤时可能生成增援‌‌[仅Java版]
  • 雷暴中可能生成骷髅马,然后生成骷髅骑士
  • 自然生成的僵尸中有 5% 的概率生成僵尸村民。
  • 被僵尸杀死的村民有一定概率(普通难度 50%,困难难度和极限模式 100%)生成僵尸村民。
  • 自然生成的骷髅中有 20% 的概率生成流浪者。
  • 自然生成的僵尸中有 20%‌‌[仅Java版] 或 30%‌‌[仅基岩版] 的概率生成尸壳。
  • 小僵尸、僵尸猪灵‌‌[仅Java版]、溺尸‌‌[仅Java版]、尸壳和僵尸村民生成时有 15%‌‌[仅基岩版] 或 5%‌‌[仅Java版] 的概率生成鸡骑士
  • 蜘蛛和洞穴蜘蛛‌‌[仅基岩版]有 1% 的概率生成为蜘蛛骑士
  • 卫道士唤魔者掠夺者劫掠兽可作为袭击的一部分生成。
  • 幻翼在玩家至少连续三天没有睡觉或死亡时生成。
  • 基于床的数量在村庄中生成。
  • 棕色哞菇被闪电击中时生成红色哞菇,反之亦然。
  • 灾厄巡逻队卫道士‌‌[仅基岩版]和掠夺者构成。在Java版中,巡逻队和一般怪物一样生成。在基岩版中,巡逻队可在除末地、下界、蘑菇岛之外的任何生物群系中生成。
  • 鳕鱼、鲑鱼、河豚、热带鱼可在使用对应鱼桶时生成。
  • 蜜蜂可在蜂巢或蜂房被未带有精准采集的魔咒的工具破坏时生成。
  • 如果猪灵疣猪兽被运送至主世界末地,其会在15秒后变为僵尸猪灵和僵尸疣猪兽。
  • 创造模式或通过发射器,玩家可以使用刷怪蛋生成大多数生物。以此方式生成的生物忽视通常情况下的所有生成条件。(尽管卫道士、唤魔者、潜影贝和末影龙不能以这种方式生成)。
  • 通过代码连接可生成吉祥物。‌‌[仅基岩教育版]
  • 任何实体均可使用/summon生成。

清除[编辑 | 编辑源代码]

Java版[编辑 | 编辑源代码]

各种生物生成范围的图解。

在以下条件下,敌对生物(除了村民转化为的僵尸村民女巫),鸡骑士的鸡,怪物,会被清除的生物(包括蝙蝠、鱿鱼和豹猫)(存在2400刻后)与敌对的可能从游戏中消失,亦称“清除”:

  • 在30秒钟之内,其周围32格以内没有任何玩家的生物,每一游戏刻120秒)就有1800的几率(即每秒 2.47% 的几率)被清除。因此,在最初的三十秒之后,这种生物的生存时间期望为40秒。
  • 没有玩家在其128格以内的生物会立刻被清除。
    • 注意计算的距离是欧几里得距离,而非曼哈顿距离。例子:如果玩家移动到 65/y/65,在 0/y/0 的生物仍能存在至少三十秒(欧氏距离91.9,曼哈顿距离130);而玩家移动至 91/y/91 时该生物会立刻被清除(欧氏距离128.7)。
    • 被清除的生物所在区块必须保持加载。否则,该生物将被保留直至区块再次加载。
  • 世界中所有敌对生物(包括手持物品的生物),均会在难度设为和平时被清除,无论玩家位于哪个位置。
  • 多人游戏中,没有玩家在线时不会发生生物清除。
  • 命名牌命名的怪物永远不会被清除。然而,由重新命名的刷怪蛋生产的生物会被正常清除。
  • 手持或穿戴任何被玩家给予或是从地上捡起的物品的怪物不会被清除。
  • 由鸡骑士生成的鸡遵守与僵尸相同的清除规则,而非与鸡相同的规则。

基岩版[编辑 | 编辑源代码]

基岩版中,模拟距离为4区块时,生物如果移动至距离玩家44格以外,则会立刻被清除。

  • 当前几乎所有自然生成的生物在模拟距离为4时都会在距离玩家44格或更远时被清除。模拟距离更高时,生物会在模拟距离边界处(距最近的玩家至多128格)被清除。
  • 所有都会在距离玩家至少40格时被清除,无论模拟距离为何。
  • 如果生物在距最近的玩家32至44格处,其必须在30秒内没有受伤,然后就会有八百分之一的概率被清除。


具有持久性的生物不会被清除。以下方式会使生物拥有持久性:


以下实体总是拥有持久性:

历史[编辑 | 编辑源代码]

Java版Classic
2009年8月25日生物现在成群生成。
?生成区域曾经是17*17个区块而不是15*15。该区域被缩小了,但是旧的大小仍然被用于计算生物容量。
并不总是能通过防止生物在其他地方生成来够驱使它们聚集于一个生成空间里。一些更早的关于“生成”的资料或许可以作为参考。
大量的空余空间曾经能促进一般地区的生物生成。这一点对于一个小一点的规模仍然有效,且由于成组生成的机制而只对水平分布有效。
Java版Alpha
v1.2.0?0,0区块(X为0-16且Z为0-16)不再总是首先进行生物生成判定。如果一个人在此区块建了一个暗室,那所有的生物都会生成在其中,而导致其他地方都没有。
Java版Beta
1.8Pre-release玩家的出生点必然位于特定的生物群系中,而非此前的必然在沙子上。玩家可以生成在森林、沼泽和针叶林中。
Java版
1.0.0?在此之前,生成只被光照等级所决定而不是当前区块的属性。攻击型生物在光照等级7或更低的地方生成而被动型生物在光照等级9或更高的地方生成。因为这一点,尽管在有光照的地方仍有很小的几率生成攻击型生物,归因于它们在无光照的空中生成。另外如果你带了很多火把下矿,然后返回,你很可能将会看到你的房子里面有一些牛、猪、鸡或羊在里面到处跑。
1.112w01a对玩家的生成位置的有效生物群系进行了调整。玩家现在能生成在森林平原针叶林繁茂的丘陵针叶林丘陵里。
1.2.112w03a玩家的出生点现在可能在丛林丛林丘陵生物群系里。
1.814w25a成群生成的大多数限制被移除。在此之前必须为空气,现在可以为任意透明方块。
1.915w46a当生成敌对生物时,要求生成点的方块不能阻止生物的移动(以前只是不透明的),不能是任何类型的铁轨。此外,上面的方块不能再是液体
15w51a添加spawnRadius游戏规则以控制玩家能在距离世界出生点多远的位置重生。
pre2调整了成群生成的机制。“12次尝试”现在为“至多12次尝试”,且中心的生成权重更大。
1.1519w37a可繁殖的生物自然生成为一群时,这群生物可能包括幼年个体。(概率为5%或10%,取决于生物种类)

漏洞[编辑 | 编辑源代码]

关于“生成”的漏洞由漏洞追踪器维护,请在此汇报漏洞。

你知道吗[编辑 | 编辑源代码]

  • 出生点(玩家在没有有效的床的情况下的重生点)通常是X和Z轴上由种子决定的-500和+500之间的随机点。如果选择的点在水中(因为为在-500到+500范围内只有海洋生物群系),就将在-1500到+1500之间进行第二次尝试。如果由于海洋而失败,则游戏放弃此方法并将世界生成点设置在海洋中间(仍在海平面)。然而,通常情况下,如果玩家在水中生成,它将在岸边,因为世界生成本身在干燥的地方上选择了一个地方。
  • 正常情况下,一个不透明方块会导致其下所有方块生成洞穴生物,然而如果其上放置一个透明方块,便不会如此。这可以利用来建造某些刷怪塔

参考[编辑 | 编辑源代码]

外部链接[编辑 | 编辑源代码]