生成
生成(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或外部程序(例如NBTExplorer或MCEdit)也可以用来寻找世界出生点。
个人生成[编辑 | 编辑源代码]
玩家可以通过床、重生锚或使用/spawnpoint
命令来更改个人出生点。如果玩家死亡时个人出生点被阻挡(或被破坏等),他们将被迫重生在世界出生点。
在床上睡觉允许周围被阻挡,但如果原来的出生点被阻挡,玩家将尝试在床附近的其他方块上重生。这对重生锚也有效。如果出生点是使用/spawnpoint
设置的但被阻挡了,玩家将不会被迫重生到世界出生点,会无视阻挡。
自然生成[编辑 | 编辑源代码]
许多生物在区块创建时生成,这个事件只能在每个区块内只能发生一次,且不受/gamerule doMobSpawning
命令的影响。
动物的生成[编辑 | 编辑源代码]
大约十分之一的新生成区块中将包含生物,通常是一群最多到4只的同种动物。它们总在该区块柱状区域中最高的有效方块生成,换言之就是可以看到天空的地方。此方块必须是不透明的方块而且其上两个方块必须是透明方块。方块上面并不需要有草也不需要被照亮(生物生成也是同理)。
共有两种动物生成类型:普通动物以及生物群系特有动物。
- 普通动物
普通动物将不会在沙漠、恶地、沙滩、积雪的冻原、河流、冻河和蘑菇岛这些生物群系生成。这些权重值是来自基岩版的生物生成率[需要更多信息]。
- 生物群系特有动物
一些生物只可以在特定的生物群系生成。[需要更多信息][需要验证]
生物 | 生物群系 | 生成权重 |
---|---|---|
兔子 | 沙漠 针叶林 |
1⁄25 (在繁花森林中为1⁄5) |
红色哞菇 | 蘑菇岛 蘑菇岛岸 |
8⁄10 |
北极熊 |
积雪的冻原 |
1⁄10 (在冻洋中为5⁄10) |
熊猫 | 丛林[仅BE] |
4⁄10 (在普通的丛林中为1⁄10) |
狐狸 | 针叶林 |
8⁄10 |
羊驼 | 热带草原 |
8⁄10 (在山地中为5⁄10) |
马 | 热带草原 |
4⁄10 (在热带草原中为1⁄10) |
驴 | 平原 |
2⁄40 (在热带草原中为1⁄40) |
鹦鹉 |
丛林 (所有变种) | 鹦鹉为4⁄10,豹猫为3⁄10 |
狼 | 针叶林 |
8⁄10 (在森林中为5⁄10) |
海龟 | 沙滩 | 8⁄10 |
海豚 | 海洋 |
7⁄10 |
鳕鱼 | 海洋 |
75⁄100 |
鱿鱼 | 海洋 |
8⁄10 |
鲑鱼 | 河流 |
在海洋中为26⁄100,在河流中为16⁄100 |
河豚 |
暖水海洋 |
25⁄100 |
动物生成的随机性继承自世界种子, 这意味着种子相同的世界总是会在相同的地方加载区块时生成相同的动物。
怪物[编辑 | 编辑源代码]
大多数怪物无法在和平难度下生成。在更高的难度中,大多数怪物都会影响玩家睡觉,且它们通常都在亮度为7或更低的地方生成。
- 普通怪物
普通的怪物生物可以在主世界中的任何生物群系生成(蘑菇岛除外)。它们在地面上或是地下均可生成。这些权重值是来自基岩版的生物生成率。
- 生物群系特有怪物[需要更多信息]
一些怪物只能在特定的生物群系生成。
生物 | 生物群系 |
---|---|
溺尸 | 海洋(所有变种) 河流(所有变种) |
尸壳 | 沙漠(所有变种) |
史莱姆 | 沼泽 |
流浪者 | 积雪的冻原 |
岩浆怪 | 下界荒地 |
猪灵 僵尸猪灵 |
下界荒地 |
疣猪兽 | 绯红森林 |
恶魂 | 下界荒地 |
炽足兽 | 下界荒地 |
其他生物[编辑 | 编辑源代码]
若/gamerule doMobSpawning
设置为了false
,这些生物仍会生成,因为它们是作为结构的一部分生成的。
- 村民、铁傀儡、流浪猫、猪、牛、羊和马会作为村庄的一部分生成。
- 一只单独的女巫和黑猫会在女巫小屋生成时一起生成。
- 三只远古守卫者将会作为海底神殿的一部分生成。
- 当末地维度被创建时,一只末影龙将会在其中生成。末影龙也可以使用将末影水晶放在返回传送门上的方法以复活。
- 潜影贝会作为末地城的一部分生成。
- 卫道士和唤魔者会作为林地府邸和高等级的袭击的一部分生成。
- 一只村民和一只僵尸村民将会作为生成了地下室的雪屋的一部分生成。
- 溺尸将会作为海底废墟的一部分生成。[仅JE]
- 掠夺者前哨站、袭击和灾厄巡逻队生成的灾厄村民。
- 幻翼将会在玩家3天或以上不睡觉时生成。
生成周期[编辑 | 编辑源代码]
Java版[编辑 | 编辑源代码]
生物大致划分为五种类型:攻击型,被动型,水生型(例如鱿鱼),水生环境型(例如鱼)和环境型(例如蝙蝠)。攻击型生物有一个每游戏刻(1⁄20秒)执行一次的生成周期。而被动型以及水生型每400游戏刻(20秒)只有1次生成周期。因此,在满足生成条件的地方,攻击型生物会频繁生成,而被动型生物(即动物)很少生成。大多数动物都是在区块生成时一起生成的。
生物会自然生成在以玩家为中心15×15区块(240×240方块)的正方形范围内。当有多个玩家时,生物会在任意玩家周围的给定距离内生成。然而,和最近的玩家的直线距离大于128格的怪物(以及一些其他的)将会被立即删除(距离最近玩家距离大于32格、小于128格的怪物将会被随机删除),因此生物生成或多或少的会被限制在半径为128格,以每个玩家为中心的欧几里得球体内。在多人游戏中,生物上限是所有玩家共享的,无论他们在哪里。
每24000游戏刻(20分钟),如果世界中没有流浪商人,游戏会在玩家或是村庄集合点48格之内尝试生成一个流浪商人和两只被拴住的羊驼。流浪商人在玩家在地下时将不会生成。[仅Java版]
Java版生物上限[编辑 | 编辑源代码]
生物上限数与符合生成生物条件的区块数量成正比。为了计算上限,生成区域在每个方向上拓展一个区块(因此默认为17×17的区块),然后将总区块数量代入以下公式:
生物上限 = 生物类型所对应的常数 × 区块数 ÷ 289
每个生物类型的常数如下:
- 怪物=70
- 动物=10
- 环境类(蝙蝠)=15
- 水生动物(鱿鱼和海豚)=5
- 水生环境类(鱼)=20
- 其他=-1
分类“其他”只会用在一些非生物实体,不会自然生成的生物,或是遵循其他不同的生成规则的生物使用。因此,生物上限和这类实体没有关系。
在单人游戏中,总是会有289个区块被加载,所以生物类型所对应的常数和整个世界的生物上限总是相等的。
在多人游戏中,当更多区块被加载时,生物上限也会增加。由于在多个玩家的加载范围内的区块只会被计算一次,所以玩家分布的范围越广,则会加载更多的区块和产生更高的生物上限。
当生成周期开始时,游戏会根据生物上限检查一次生物数量。如果某个类别中的生物数量超过上限,则这个生物类型的生成周期会被直接跳过。生物数量的检查区域和计算生物上限的检查区域相同,都是在生成区域的四个方向各拓展一个区块所得的区域。每个维度的生物上限是独立的。
生物在每个区块尝试生成前会对生物数量是否大于生物生成上限进行检查,如果生物数量达到生物生成上限+1时,生物将不会继续生成。也就是说,生物实际能最的最大数量是生物生成上限+群组大小。
成群生成[编辑 | 编辑源代码]
在每个生成周期内,游戏会尝试在每个“合格的”区块(即受随机刻影响的区块)尝试进行一次成群生成。首先游戏会选择一个在X和Z轴上随机,Y在0和最高非空气方块+1(含两端)之间的位置作为成群生成的中心。如果还位置是一个固体方块,那么该区块内进一步的生成会被中止。
一群生物会在一个以初始生成方块为中心,大小为41×1×41的方形区域内尝试生成。生成的生物身体的下半部分会处于还区域中。每次尝试生成时,游戏会把上一次尝试的位置的X和Z坐标随意移动0-5格。具体格数由两个1-6的随机整数做差得到,所以游戏会倾向于移动更少的格数。这样,生成的生物会强烈地集中于中心方块附近。大约85%的生物会生成在距离中心方块5格以内,约99%的会在10格以内。
群组内的所有生物都是同一个种类。这个种类在第一次在区块内尝试时,由初始方块所在的生物群系或者结构(后者优先)随机决定。不同的生物群系中的不同生物有不同的权重,某些结构内有专门的生物生成列表供选择。
游戏会在每次尝试生成时检查该群生物数量是否已经达到最大群组规模和该位置是否可以生成这种生物。
成群生成大小:
生成尝试将会进行的次数:
- 8 狼,鳕鱼和热带鱼
- 6 马和驴
- 1 恶魂
- 4 其他生物
如果最大群组规模小于生成尝试次数,那么会有一些生成尝试失败,这在实际运行中很常见。如果最大群组规模的大于生成尝试次数,那么就只有进行尝试并且成功的会真正生成。一些生物有最大和最小群组规模,那么生成尝试的次数将会在两者之间。
- 对于僵尸村民,溺尸,热带草原中的驴,竹林和丛林外的丛林生物群系中的鹦鹉,沼泽小屋中的猫以及女巫来说是1。
- 对于竹林和丛林中的鹦鹉,北极熊,温水海洋中的墨鱼,熊猫和海豚是1-2。
- 对于草原中的驴,豹猫,河豚来说是1-3。
- 对于不在末路之地和下界荒地的末影人,不在温水海洋的墨鱼来说是1-4。
- 对于兔子,烈焰人开始是2-3。
- 对于守卫者,狐狸,绯红森林中的僵尸猪灵,炽足兽来说是2-4。
- 对于海龟来说是2-5。
- 对于马来说是2-6。
- 对于绯红森林中的猪灵和疣猪兽来说是3-4。
- 对于鳕鱼来说是3-6。
- 对于羊驼来说是4-6。
- 对于哞菇来说是4-8。
- 对于下界堡垒中的凋灵骷髅和骷髅来说是5。
- 对于蝙蝠和热带鱼来说是8。
- 对于其他任何生物是4。
生成位置:
在所有维度,结构边界箱比生物群系有更高的优先级决定敌对生物的生成。这意味着在沼泽小屋,掠夺者前哨站,下界堡垒(结构体外部的大范围只有在生成方块下面是下界砖块时如此)和海底神殿会生成特有的生物。
在主世界这取决于位置:
- 丛林生物群系有更大的概率生成鸡。[仅Java版]
- 恶地只会生成敌对生物和蝙蝠。
- 河流和冻河可以在水下生成溺尸,墨鱼和鲑鱼。其中的敌对生物是由附近群系的成群生成生成的。
- 海洋群系中不会生成被动生物,溺尸和其他敌对生物会在其中生成冻洋中不会生成海豚,但是会生成北极熊。
- 沼泽小屋中只会生成女巫,猫和蝙蝠。
- 海底神殿中会生成守卫者和其它水生生物以及蝙蝠。
- 掠夺者前哨站中会生成掠夺者,其它被动生物和蝙蝠。
在下界:
- 骷髅,凋灵骷髅,岩浆怪,僵尸猪灵和烈焰人可以生成在下界要塞。
- 恶魂可以生成在下界荒地。
- 僵尸猪灵,猪灵可以生成在下界荒地。岩浆怪可以生成在玄武岩三角洲,有时也会在下界荒地生成。
- 除僵尸猪灵,猪灵和骷髅外的所有生物可无视光照等级生成。
- 疣猪兽和猪灵在绯红森林可以以较大的几率生成。
- 末影人可以在诡异森林更频繁地生成。
- 骷髅和恶魂可以在灵魂沙峡谷更频繁地生成。
生成条件[编辑 | 编辑源代码]
当游戏试图在生物群系中生成生物时,则生成是否失败不同于上述的描述。例如,海豚可以在冻洋和封冻深海中发生成群生成,但其他生物群系不行。这些规则也适用于同一种生物的变种,例如小僵尸和蜘蛛骑士。
只有在下列所有条件满足时,每次独立的生成尝试才能成功:
- 24格(球形)内不能有世界出生点和玩家。
- 已加载的生物数量必须小于该种生物上限(也就是对应的生物上限未满)。
- 要生成的生物的碰撞箱必须不能被其他碰撞箱阻挡,生物无法在生成时与其他物体相互碰撞。
- 生物的碰撞箱不能被方块截断。
- 包括被动生物在内的所有生物,超过玩家128格(球形)时生成会失败。
- 游戏规则
DoMobSpawning
被设置为true
。 - 对于非水生生物,生成方块和上方不能为铁轨、充能铁轨、探测铁轨、激活铁轨和红石组件,也不能为凋零玫瑰(除了凋灵骷髅)或甜浆果丛(除了狐狸)。
敌对生物:
满足上方的条件的方块位置可以称为可刷怪方块。
- 对于在沼泽的史莱姆,苦力怕、骷髅、凋灵骷髅、女巫、僵尸村民、尸壳、流浪者、溺尸和蜘蛛。
- 光照等级8是因光照强度生成失败的分界线,因此敌对生物生成需要7及以下。
- 在主世界中露天下会有额外50%生成失败几率。
- 如果是在沼泽生物群系的史莱姆:
- 怪物生成方块必须在沼泽生物群系。
- 生成方块必须在51到69层之间。
- 生成失败率基于月相
- 额外有50%的失败率
- 如果是尸壳或流浪者
- 生成地点必须露天,通常由天空光照必须为15来决定。
- 如果是下界堡垒中的骷髅
- 有80%的概率生成为凋灵骷髅。
- 上述敌对生物的光照检查不适用下列情况。
- 对于守卫者和溺尸:
- 生成方块,上方和下方都必须是水,包括含水方块和气泡柱。
- 如果是守卫者:
- 如果刷怪方块暴露在天空下,有95%的失败几率。(细节)
- 如果是溺尸
- 海洋中有1⁄40的几率成功,而河流中有1⁄15的几率成功。
- 在海洋生物群系中,溺尸需要生成在海平面以下5格以下。
- 如果是守卫者:
- 生成方块,上方和下方都必须是水,包括含水方块和气泡柱。
被动生物
- 生物的碰撞箱内不能有液体。
- 生成方块和上方必须是水,但不能是含水方块。
- 生成方块下方必须是水或含水方块。
- 如果是鳕鱼、鲑鱼、河豚和热带鱼,那么水生环境类动物生成上限需要未满。
- 如果是鱿鱼或海豚,那么水生动物生成上限需要未满。
- 对于鱿鱼
- 生成方块需要在高度46至62。
- 生成方块必须在海洋或河流生物群系。
- 对于海豚
- 生成方块需要在高度45到62。
- 生成方块需要在海洋或深海生物群系。
- 对于鱿鱼
环境生物:
- 生物碰撞箱内不能有液体。
- 对于蝙蝠
- 生成方块需要在62或更低。
- 现实世界时间在10月20日到11月3日期间,光照等级需要7或更低。其他时间需要光照等级4或更低。
- 对于蝙蝠
所有条件满足后,生物即可生成。
生成势:
生成可能因为生成势而取消。诡异森林中的末影人和灵魂沙峡谷中的骷髅、恶魂、炽足兽和末影人会提高生成势。能够提高生成势的生物会在以其为中心的一个球体中将生成势提高到足以取消生物生成的程度。如果生成势足够高,那么能够提高生成势的生物不会生成。如果有多个生物临近,这会导致生物的生成势不会互相覆盖,而是影响到较远的区域。生物生成的方块与其南侧、东侧和东南侧的方块的生成势相同。如果附近没有其他影响生成势的生物,那么以其为中心,直线六格以内、对角线四格以内不会有生物生成。
注解[编辑 | 编辑源代码]
- 通常情况下,室外有空气的建筑比地下室能在室内生成更多的生物,因为在室外生成的群组可以在室内生成生物。
- 生物容量在很短的时间内就趋于饱和。因为这一点,通过让生物聚集于一个生成空间里(比如刷怪塔)可以防止生物在室外生成。
- 容量的存在也意味着生物死得越快,生成得就越快。
- 如果玩家的视野距离或多人游戏中的服务器视野距离为9或更低,则怪物生成数量会严重减少(或者它们消失太快),并且可能导致玩家根本没有遇到怪物。请将视图距离设置为10或更高,以确保怪物正确生成。
- 通过方块碰撞箱,玩家可以阻止部分生物生成。例如一格空气配合一个上半活板门,能只让苦力怕和蜘蛛生成。而一格高的空间上方为合适方块的地方能只生成蜘蛛。
基岩版[编辑 | 编辑源代码]
在基岩版中的自然生成与在Java版中的有某些相似之处。在基岩版中,有两种主要的生成类型:集群生成与结构生成。结构生成指生物作为结构的一部分生成(如下界要塞、女巫小屋等)。集群生成负责其他所有自然生成,包括单独生成的生物。在生成条件和生物上限上,两种自然生成遵守(和Java版)相同的规则,然而绝大多数动物可以生成于光照等级高于7的地点,而非高于9的。
在基岩版中,生物生成于模拟区块中距玩家24-44格远处。每一刻中每一区块有1⁄200的几率运行生成算法。
基岩版生物上限[编辑 | 编辑源代码]
有两种主要的生物上限影响生成:全局生物上限、用于一般生物的种群控制上限和用于个别生物的密度上限。无论难度如何,自然生成的全局上限总是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坐标达到世界底部,并且不会在生成生物后停止。
尝试集群生成平面或洞穴生物时,生成算法会通过以下步骤得到生成何种、多少生物。
- 选择一种随机生物
- 如果当前生成位置为液体,选择随机水生生物
- 如果光照等级大于等于7,当前位置上方没有其他方块且当前位置为草方块,则选择随机动物
- 否则,生成怪物
- 选择随机数字作为该集群的生物数量。每种生物都有自己的最小和最大数量,且该数量可能受难度和生物群系的影响
- 确保生成位置满足生成条件
- 由全局生物上限限制生成生物的数量。如果生物数量已经达到或者超过生物上限则生成不会发生
- 对于每个生成的生物,检查是否超过种群控制上限或是生物密度上限
- 如果生成当前生物不会超过两个上限,则生成该生物的概率由以下公式计算:
(生物密度上限 - 当前生物密度) / 生物密度上限
- 如果生成当前生物不会超过两个上限,则生成该生物的概率由以下公式计算:
- 最后,尝试生成该生物
- 生成生物可能失败,比如生成在方块或是墙壁当中时。
结构生成[编辑 | 编辑源代码]
游戏会尝试于自然生成的结构中的特定相对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格以内没有任何玩家的生物,每一游戏刻(1⁄20秒)就有1⁄800的几率(即每秒 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.8 | pre1 | 玩家的出生点必然位于特定的生物群系中,而非此前的必然在沙子上。玩家可以生成在森林、沼泽和针叶林中。 | |||
Java版 | |||||
1.0.0 | ? | 在此之前,生成只被光照等级所决定而不是当前区块的属性。攻击型生物在光照等级7或更低的地方生成而被动型生物在光照等级9或更高的地方生成。因为这一点,尽管在有光照的地方仍有很小的几率生成攻击型生物,归因于它们在无光照的空中生成。另外如果你带了很多火把下矿,然后返回,你很可能将会看到你的房子里面有一些牛、猪、鸡或羊在里面到处跑。 | |||
1.1 | 12w01a | 对玩家的生成位置的有效生物群系进行了调整。玩家现在能生成在森林、平原、针叶林、繁茂的丘陵和针叶林丘陵里。 | |||
1.2.1 | 12w03a | 玩家的出生点现在可能在丛林和丛林丘陵生物群系里。 | |||
1.8 | 14w25a | 成群生成的大多数限制被移除。在此之前必须为空气,现在可以为任意透明方块。 | |||
1.9 | 15w46a | 当生成敌对生物时,要求生成点的方块不能阻止生物的移动(以前只是不透明的),不能是任何类型的铁轨。此外,上面的方块不能再是液体。 | |||
15w51a | 添加spawnRadius 游戏规则以控制玩家能在距离世界出生点多远的位置重生。 | ||||
pre2 | 调整了成群生成的机制。“12次尝试”现在为“至多12次尝试”,且中心的生成权重更大。 | ||||
1.15 | 19w37a | 可繁殖的生物自然生成为一群时,这群生物可能包括幼年个体。(概率为5%或10%,取决于生物种类) |
漏洞[编辑 | 编辑源代码]
你知道吗[编辑 | 编辑源代码]
- 出生点(玩家在没有有效的床的情况下的重生点)通常是X和Z轴上由种子决定的-500和+500之间的随机点。如果选择的点在水中(因为为在-500到+500范围内只有海洋生物群系),就将在-1500到+1500之间进行第二次尝试。如果由于海洋而失败,则游戏放弃此方法并将世界生成点设置在海洋中间(仍在海平面)。然而,通常情况下,如果玩家在水中生成,它将在岸边,因为世界生成本身在干燥的地方上选择了一个地方。
- 正常情况下,一个不透明方块会导致其下所有方块生成洞穴生物,然而如果其上放置一个透明方块,便不会如此。这可以利用来建造某些刷怪塔。
参考[编辑 | 编辑源代码]
外部链接[编辑 | 编辑源代码]
- 来自Marglyph的论坛帖子讨论了Beta 1.2中的生成算法。
- 来自fr0stbyte124的论坛帖子讨论了从Alpha v1.1.2_01至万圣节更新之前生物生成的变化。