生成
发表时间: 2025-11-15 15:00:30
最后更新: 2025-11-15 15:00:30(1小时前)
本文标签: 生物机制
介绍
-
生成(Spawn)是指生物在Minecraft游戏世界中被创造的过程及其行为。
-
周期生成是指在游戏运行时,每个游戏刻都会进行的生物生成操作。
-
如果游戏设置中关闭了“生成生物”(doMobSpawning)选项,系统将不再执行周期性生成。
-
为了防止生物数量过多而导致游戏性能下降,同时也为了保持生物的刷新机制,游戏设计了自然清除机制。
-
生成和清除操作都是在每个游戏刻进行,确保了生物数量的动态平衡。
玩家生成
一、 世界出生点
- 在每个世界中,都存在一个称为“世界出生点”的特定位置。
- 当玩家首次进入游戏时,或是当个人出生点无效时,他们会在该世界出生点附近生成,并面朝南方。
- 在冒险模式下,玩家的生成位置将直接设定在世界出生点上,如果该位置设置了碰撞箱,生成位置会自动调整至上方,直到找到一个没有碰撞的区域。
- 在其他游戏模式下,玩家会在世界出生点及其周围生成,默认的生成区域为边长21格的正方形,这一范围可以通过“重生点半径”(spawnRadius)进行调整。
- 当玩家生成时,系统会随机选取一个符合特定条件的位置,这些条件包括:生成点不超出当前世界的边界;最高方块不能是水;并且在垂直方向上需要至少有一个完整的可阻挡方块,且该方块需高于任何水方块。
- 一旦找到合适的位置,玩家会在该位置的最高可阻挡方块上方生成,同样面朝南方。如果该位置依然是一个有碰撞箱的方块,则生成位置会自动向上调整,直到找到合适区域。
- 如果没有找到符合条件的位置,玩家将以与冒险模式下相同的方式生成,直接在世界出生点上,面朝南方,向上调整至无碰撞的位置。
- 世界出生点的选择是通过特定搜索算法进行的,旨在避免玩家生成于海洋或河流中。
- 每个位置都有其“适合度”,该适合度会随着距离非河流陆地的远近而变化,越靠近陆地的适合度越高,越接近坐标(0,0)的适合度也越大。
- 搜索算法首先会将生成点设置在XZ坐标为(0,0)的位置,随后在半径分别为512、1024、1536和2048格的圆内选取一些位置进行适合度计算。
- 若能找到更适合的位置,生成点将被更新为新的位置;否则,继续以当前生成点为圆心,以32格为间隔画出16个圆进行进一步分析。
- 如果在这些新的圆中找到更加合适的位置,则将世界出生点移动到该位置,否则出生点将保持为当前选定的位置。
- 除了在世界生成时设定世界出生点,玩家还可以通过使用指令/setworldspawn来更改世界出生点。
二、 个人出生点
-
如果在玩家去世时,个人出生点被妨碍或破坏,他们将回到世界的出生地点重生。
-
在重生时,系统会确保玩家不会出现在不恰当的位置。
-
合适的重生位置需符合以下几个条件:该位置必须处于世界边界之内。
-
此外,该位置的方块及其上方的方块都不应标记为#invalid_spawn_inside。
-
此外,所选位置的方块碰撞箱不能与位于方块中心的玩家的碰撞箱发生碰撞,以免导致玩家生成在阻碍移动的方块内部。
-
同时,该位置下方的方块必须具有碰撞箱,而所有可攀爬的方块如梯子和藤蔓将不被视为具有碰撞箱,因此玩家不会在这些方块上重生。
-
如果存在多个符合上述条件的位置,系统将优先选择以下这些位置:该位置的方块不能为凋灵玫瑰、甜浆果丛、仙人掌、细雪,亦不能为易导致火焰伤害的岩浆块或熔岩。
-
若该位置的方块缺乏碰撞箱,则其下方的方块也不得是前述列出的方块。
-
若玩家的重生点是床,则其可用的重生位置为床的周围及其上方区域;如床下还有其他床,则下方床的周围以及上方床的上方也将计算在内。
-
如果所有可用的重生位置都不合适,玩家将在世界的出生点重新生成。
-
若玩家的重生点为重生锚,则可用的重生位置为重生锚的周围及其上方,重生时视线水平朝向重生锚。
-
同样,如果可用的位置不合适,玩家将回到世界的出生点重生。
-
若玩家的个人出生点由命令/spawnpoint设定,则在重生时只会检查该位置及其上方方块的类型。
-
重生后,玩家的视线将朝向命令指定的方向。
-
如果这两个方块都不是固体或液体方块,玩家将会在此重生;否则,他们将回到世界出生点。
伴随区块生成
一、 初始动物生成
-
在Minecraft中,区块生成系统在新创建的区块表面上会生成动物。
-
如果第一次尝试生成动物成功与否都将触发第二次判定,以决定是否继续尝试。
-
该过程会持续进行,直到某次判定失败为止。
-
此生成机制与周期生成相似,但动物的生成范围仅限于当前区块,并且不会受到生物上限的限制。
-
需要注意的是,如果在世界噪声设置中将disable_mob_generation选项设定为true,则动物将不会被生成。
二、 结构生物生成
-
在某些结构中,特定实体将伴随结构的放置而生成。
-
此外,一些特殊生物会在与特定村庄相关的结构中出现,如牲畜栏可能生成牛、绵羊、猪或马,马厩中则可能有马、牛或猪。
-
其他结构如肉铺和牧羊人小屋也会生成特定动物,分别包括猪、牛、绵羊与绵羊。
-
每位生成的村民都会在设有床的房间中诞生,而铁傀儡则通常在村庄的中心位置生成。
-
三只远古守卫者会作为海底神殿的组成部分出现。
-
潜影贝则会在末地城中生成。
-
在雪屋的地下室中,可以同时找到一位村民和一位僵尸村民。
-
最后,溺尸作为海底废墟的一部分而生成。
周期生成
一、 Java版
生物类别与生物上限
-
在《我的世界》中,生物可以被归为八个不同的类别,这些类别包括怪物(Monster)、动物(Creature)、环境生物(Ambient)、美西螈(Axolotls)、地下水生物(Underground Water Creature)、水生生物(Water Creature)、水下环境生物(Water Ambient)和其他(Misc)。
-
要注意的是,豹猫在生成时被视为怪物,但在计算生物数量上限时却归属于动物类别。
-
这种分类方法的目的是为了限制某一类生物的过量生成,同时也有助于自然调整生物的总体比例。
-
每种生物类别都有相应的生成上限,以避免无限生成的现象,这一上限受生物类别及玩家数量的共同影响。
-
可生成区块的范围以玩家所在区块为中心,形成一个17×17的区块区域,而每种生物类别的生成上限m则是由可生成区块数量c和生物类别上限乘数a的乘积除以289得出的,公式为m=ac/289。
-
在单人游戏中,玩家数量为1,其可生成区块数量始终为289,因此每个生物类别的上限数量等于其上限乘数。
-
而在多人游戏中,如果玩家间距离超过16个区块,生成上限将等于玩家数量与上限乘数的乘积;如果玩家距离较近,则可生成区块数量会因重叠而减少,导致各生物类别的生成上限减少。
-
如果所有玩家都在同一区块内,其可生成区块范围完全重叠,综上所述,总体可生成区块数量依然为289,各生物类别的上限数量仍等于其上限乘数。
-
在每个生成周期的开始,游戏会检测各生物类别的当前数量,进行统计的生物需满足一定条件,包括位于强加载、弱加载或加载边界区块内。
-
需要确保PersistenceRequired为false,且被统计的生物必须不是骑乘其他实体的生物、桶中鱼类和美西螈、手持方块的末影人以及正在进行攻击的生物。
-
在生成周期内,每个可能生成的区块会在执行生成前检查该生物类别的数量是否达到了上限;若达到了全局生物上限,则停止该类别生物的生成。
-
同样的,如果周围128格内有玩家,其生成候选区块中的生物数量超过了对应生物类别的上限乘数,生成也将被中止。
-
只有当上述两个判定均通过后,才能继续进行生成,生成的生物将被计入总数,以防止一次生成数量过多。
-
由于存在生物上限,生物数量的增长很快会达到饱和状态,为了促进生物的刷新,必须让一些生物死亡,或避免统计生物数量达到上限。
-
此外,一个特定位置接纳多种类的生物也能有效抑制该类生物的刷新。
-
在Java版中,不同维度的生物上限是彼此独立计算的,互不干扰,而渲染距离也可能对生物生成产生影响。
| 类别 | 上限乘数 | 友好生物 | 自动清除 | 清除半径 |
|---|---|---|---|---|
| 怪物 | 70 | 否 | 是 | 128 |
| 动物 | 10 | 是 | 否 | 128 |
| 环境生物 | 15 | 是 | 是 | 128 |
| 美西螈 | 5 | 是 | 是 | 128 |
| 地下水生生物 | 5 | 是 | 是 | 128 |
| 水生生物 | 5 | 是 | 是 | 128 |
| 水下环境生物 | 20 | 是 | 是 | 64 |
| 其他 | -1 | 是 | 否 | 128 |
生成周期与生成候选区块
-
在《我的世界》中,游戏每一刻都会执行一次生成判定,以确定新生物的生成情况。
-
不同类型的动物生成判定则每隔400个游戏刻(约20秒)进行一次,这样设定有助于控制生物数量,避免生成过多而无法自动清除。
-
为了限制生物生成的距离,某些区块被设定为不能生成生物。
-
可供生物生成的区块被称为生成候选区块,它们需满足若干条件。
-
首先,该区块的加载等级必须达到实体计算等级。
-
其次,这些区块必须位于世界的边界之内。
-
最后,区块的中心需与至少一个非旁观模式的玩家保持在128格的范围内,采用欧几里得距离来计算。
可生成位置
-
在选定生成候选区块后,系统无法保证所有位置均适合生物的生成。
-
某些地区可能存在不适合生物生成的因素,比如会造成生物伤害的方块或与玩家距离过近的情况。
-
一个可生成生物的位置需满足以下条件:与世界出生点以及任一玩家的距离需大于24格(欧几里得距离)。
-
在满足清除半径要求的前提下,生物与最近玩家的距离必须小于特定生物类别的清除半径,比如水下生物不得超过64格,而其他类型生物则不得超过128格,动物、掠夺者及潜影贝在此不受限制。
-
另外,生物生成的实体碰撞箱范围内不能存在其他碰撞箱。
-
而对于生命体在熔岩中的生成,位置则必须为熔岩。
-
针对在地面生成的生物,其生成位置还需满足以下条件:底下必须是可生成方块。
-
一般上表面完整且光照等级低于14的方块皆为可生成方块,然而玻璃、遮光玻璃、各种活板门、紫颂花、脚手架、基岩及屏障则不被视为可生成方块。
-
免疫于火焰伤害的生物可以在岩浆块上生成,但其他生物则不可以。
-
生成位置上的方块以及其上方的方块必须是有效的空方块,液体和含水的方块均不符合这一条件。
-
对于免疫火焰伤害的生物,可以在岩浆块和熔岩等引发火焰伤害的方块生成,但其他生物则不适用。
-
还需注意方块不应带有#prevent_mob_spawning_inside标签。
-
某些特定生物可能需要额外的检查条件,可参考各生物的生成章节。
-
大多数动物生成需要底下方块带有#animals_spawnable_on标签,且其光照级别需高于8。
-
一般遇到的怪物要求在非和平难度下生成,主世界的怪物还需保持光照为0,内部光照不超过7,且光照越低,其生成概率越高。
-
至于下界生物,只需要确保其内部光照不大于7。
生成势
-
该系统为每个生物分配了一定的势能,并使其向周围空间扩散。
-
如果某一位置的总势能超过了生物的最大生成势,则该生物在该位置无法生成。
-
设想在某个空间中存在N个具有生成势的生物,个体生物的生成势用ai表示,则对于空间中的某点P,其势能EP可用公式EP=c∑aidi计算。
-
其中di为该点P到每个生物位置的欧几里得距离,而c则是待生成生物的生成势。
-
以诡异森林中的末影人为例,其生成势设为1,因此在其中心半径为1的球体内,其他末影人的势能均为1,而在半径为2内势能为0.5,在半径为8内则势能降至0.125。
-
末影人的最大生成势为0.12,这意味着若某位置的势能超过0.12,则末影人无法生成。
成群生成
-
在Minecraft的生成机制中,游戏会在每一个生成周期中,针对每种生物类别在候选区块内尝试成群生成。
-
生成系统首先随机选择一个水平坐标作为起始生成点,并计算该点的最高方块高度(即世界表面高度)。
-
该高度图的数值可以在调试界面的SH行的S值中找到,同时其也被称为lc值,生成高度的下限则是维度最低建筑高度。
-
随后,在最低建筑高度与最高方块高度之间的区间内,随机选择一个整数作为生成的高度起点。
-
如果所选起始高度刚好等于最低建筑高度,则此次生成将失败,且不进行后续的生成操作。
-
如果起始生成点位于红石导体上,生成同样会立即失败。
-
每次生成操作被分为三次基本生成,每次基本生成仅针对一种生物进行操作,因此一次生成中最多可以生成三种不同的生物。
-
基本生成开始时,系统会在XZ方向上将生成点进行水平移动,移动范围在-5到5格之间,且移动距离越远,成功的概率则越低,这一过程被称为生成游走。
-
在完成游走后,系统会检查生成点是否距离玩家或世界出生点在24格范围内,若在该范围内,则继续游走,直到找到符合条件的地点。
-
如果游走超过了一至四次仍未找到合适的生成位置,则此次基础生成失败,系统将进入下一次的基础生成。
-
一旦找到合适的位置,系统将计算该地点能够生成的生物类别,并决定具体生成什么生物以及数量。
-
生成的位置所能生成的生物受该位置所属生物群系和生成结构的限制,生成结构的判定优先于生物群系的。
-
若该位置不允许生成当前类别的生物,则基础生成过程将中断。
-
对于特定生物群系和生成结构,生成系统还会执行特殊的判定,例如水下生物在特定生物群系中的生成机率仅为2%。
-
如果生成的生物类型属于怪物,并且位于下界要塞的范围内,其生物生成将依据下界砖块或结构片段来决定。
-
确定生物类型及数量后,系统将尝试放置这些生物。
-
如果所选位置为有效生成位置,则生物成功生成;反之则不会发生生物生成。
-
无论生成结果如何,只要未达到要求的放置数量,生成点将持续游走以决定新的放置位置并进行尝试。
-
若当前生物类别成功生成的数量超过了设定的最大数量限制,生成过程将结束,并开始下一个生物类别或下一个区块的生成。
-
由于生成游走过程中不会改变生成点的高度,地形越平坦,群体生成的效率就越高。
-
同时,因为生成点的高度与最高方块高度密切相关,若该区域的最高方块较低,则每层被选中的概率将增加。
-
若整个维度只有一层可生成方块,并且位于最低建筑高度,上述条件下成功找到合适生成位置的概率为50%。
二、 基岩版
- 在基岩版与Java版之间,生物的自然生成有一定的相似之处。
- 基岩版的生成方式主要分为两类:集群生成和结构生成。
- 结构生成是指生物作为特定结构的一部分而出现,像是掠夺者前哨站、海底神殿和下界要塞等。
- 与此相对,集群生成则涵盖了其他类型的自然生成,例如单独出现的生物。
- 在基岩版中,生物的生成范围受到模拟距离n的影响。
- 如果模拟距离设置为4,生物将会在玩家的欧几里得距离24至44格内生成;而当模拟距离超过4时,生成范围则扩大到欧几里得距离24至128格以内,同时曼哈顿距离也必须小于或等于n-1个区块。
- 每一个游戏刻,任一区块都有11/2000的机会触发生物生成算法。
生物上限
-
在《我的世界》中,生物生成受两种主要上限的影响:全局生物上限和种群控制上限。
-
除了种族控制上限外,特定生物还有各自的密度上限。
-
无论游戏的难度如何,全局生物上限始终固定为200,这个上限仅适用于自然生成的生物。
-
计入全局生物上限的生物仅限于玩家周围加载的区块以及通过/tickingarea指定的常加载区域内的生物,未被加载的生物不纳入统计。
-
除全局生物上限外,种群控制上限限制了特定区域内生物的密度。
-
生物生成时,中心9×9区块的范围必须遵循种群控制上限,这个范围被称为区块密度检测范围。
-
如果生物在模拟距离控制的区块加载区域内,已生成的生物则会影响种群控制上限。
-
种群控制上限包含两种主要类型:地表生物上限和洞穴生物上限。
-
洞穴生物的生成不会受到地表生物上限的影响,反之亦然。
-
决定生物所计入的上限取决于其生成时的位置,而不是它此时所处的位置。
-
在集群生成情况下,Y坐标从上往下遍历到的第一个固体方块上方生成的生物(可能会生成失败)计入地表生物上限,其余的则计入洞穴生物上限。
-
结构生成的生物(女巫除外)及转化的生物永久计入洞穴生物上限,而刷怪笼内的生物则归入地表生物上限。
-
某些生物设有自己的密度上限,因此其数量可能会低于种群控制上限。
-
密度上限和种群控制上限的检查方式是相似的。
-
在《我的世界》中,生物可以分为五种类别:环境生物、动物、怪物、掠夺者以及水生生物。
-
每一个维度下每种生物的在不同地点的种群控制上限如表中所示(以星号标记的上限出现在代码中,但未被使用):
| 类别 | 地点 | 主世界 | 下界 | 末地 |
|---|---|---|---|---|
| 环境 | 地表 | 0 | 0 | 0 |
| 洞穴 | 2 | 0 | 2* | |
| 动物 | 地表 | 4 | 0 | 4* |
| 洞穴 | 0 | 4 | 0 | |
| 怪物 | 地表 | 8 | 0 | 10 |
| 洞穴 | 16 | 16 | 8 | |
| 掠夺者 | 地表 | 8 | 0 | 8* |
| 洞穴 | 8 | 0 | 8* | |
| 水生 | 地表 | 36 | 0 | 36* |
| 洞穴 | 36 | 0 | 0 |
| 生物 | 地表上限 | 洞穴上限 |
|---|---|---|
| 20 | 不生成 | |
| 5 | 无限制(受种群控制上限的限制) | |
| 5 | 不生成 | |
| 5(海洋) 2(河流) |
5(溶洞) | |
| 不生成 | 2 | |
| 3 | 不生成 | |
| 10(海洋) 4(河流) |
不生成 | |
| 4 | 不生成 | |
| 20(预设图案) 20(随机图案) |
不生成 |
生成条件
-
在Minecraft中,大多数生物的生成受限于空气和空间的条件。
-
当生物的碰撞箱与某些方块的碰撞箱重叠时,这会影响生物的生成。
-
完全不阻碍生成的方块是指,当生物的碰撞箱与这些方块重合时,依然可以生成生物。
-
与此相对,阻碍生成的方块则是在生物的碰撞箱与它们重叠时,无法生成生物。
-
此外,还有部分不阻碍生成的方块,这类方块对某些特定生物可以生成,而对其他生物则无法生成。
空气检测
- 在Minecraft中,生物生成的具体要求与周围方块的类型密切相关。
- 例如,对于在陆地上生成的生物,其上方一格的方块必须是空气;而生物在水中生成时,该格方块需要为水;对于炽足兽,则要求上方方块为熔岩。
- 有效的空气检测必须确保上方一格为真空气方块,这样才不会阻碍生物的生成。
- 生存模式中,允许的真空气方块包括空气、水、熔岩以及无水气泡柱等。
- 此外,生物同样可以在伪空气方块中生成,但前提是其上方一格必须为真空气方块。
- 伪空气方块可以堆叠,只需确保其最上层的伪空气方块上方有真空气方块,即可有效提升空气检测的位置。
- 典型的伪空气方块包括花、树苗、草丛、雪以及多种植物和物品。
- 这些伪空气方块如脚手架、梯子及各种火把等,都可对生物的生成位置产生影响。
- 即使伪空气方块可以提高空气检测的位置,生物生成是否为陆地生物或水生生物,仍取决于上方一格的水流状态。
- 对于集群生成的生物,当空气检测位置上移超过建筑高度上限时,检测仍会成功,因为建筑高度上限外的空间是空气。
- 在某些情况下,如特定的生成点,伪空气方块的作用有限,若没有真空气方块,则生成会失败。
- 需要注意的是,并非所有生物的生成过程都涉及空气检测,例如僵尸猪灵和试炼刷怪笼等生物的生成不受此限制。
空间检测
-
在《我的世界》中,各种方块根据不同性质可分为几类,这些类别对生物的生成产生了不同的影响。
-
挤压类方块是指那些不妨碍生物自然生成的方块,通常包括完全不阻碍生成和部分不阻碍生成的方块。
-
一些部分挤压类方块具有碰撞箱功能,这允许它们在生物生成时挤压生物,导致生成位置的偏移,从而有效处理怪物。
-
限制类方块则会使尝试生成的生物因与其碰撞箱重叠而生成失败,属于阻碍生成方块的范畴。
-
一般情况下,除了挤压类方块和体积较完整的红石导体外,其他方块均可视为限制类方块。
-
阻挡类方块是指当位于生成点上方第二格时,会彻底阻止所有生物生成的方块,它们同样属于阻碍生成方块。
-
还有一些性质独特的方块,被称为部分不阻碍生成方块,这些方块对某些生物表现为挤压类方块,而对另一些则表现为限制类方块。
-
对于生物生成而言,上方第二格的方块不能为阻挡类方块,否则会导致所有生物的生成失败。
-
随机生成某生物时,其碰撞箱不能与限制类方块或被视为限制类方块的挤压类方块的碰撞箱重叠。
-
绝大多数主世界怪物无法在光照高于0或天空光照超出7的地方生成,而绝大多数动物则不能在低于7光照的区域生成。
-
特定生物有其独特生成规则,如水生生物在某些方块上生成不会受到阻碍,但对其他生物来说可能会形成限制。
-
鱼类在水中自然生成的高度范围为Y=50至Y=64,并且它们的生成受距离玩家的限制。
-
幻翼在玩家上方28格的特定范围内生成,而对于能漂浮在空气或水中的生物,所需生成条件的判定也特别。
-
铁傀儡和猫在玩家进入村庄加载范围后会生成,而在同一范围内,灾厄巡逻队将不会尝试生成。
集群生成
-
在《我的世界》中,大部分生物通过集群方式生成。
-
集群的生成可分为地表生成和洞穴生成两种类型。
-
首先,生成过程会更新生物的种群控制上限,然后在计算的区块内随机选择X和Z坐标。
-
确定X和Z坐标后,Y坐标会从世界的最高点向下进行搜索,直到找到第一个固体方块及其上方的空气方块,以便尝试生物的生成。
-
在这一阶段,所找到的方块将被视作地表方块,并尽力生成一群地表生物,但这个过程可能会失败。
-
如果地表生物的生成失败,算法会继续向下查找,直到找到下一个合适的方块,该方块上方没有障碍物。
-
一旦发现符合条件的方块,生成算法将尝试在此位置生成洞穴生物。
-
洞穴生物的生成过程会持续到Y坐标达到世界的底部,生成不会因为生成生物而停止。
-
所有相关的生成数据可以在《生成/集群生成(生物群系)》中找到。
-
在集群生成过程中,算法会按照以下步骤决定生成何种生物及其数量。
-
首先,随机选择一种生物。
-
如果生成位置处于液体中,则选择随机的水生生物。
-
当光照等级达到7或以上,当前位置上方无其他方块且当前位置是草方块时,会选择随机动物生成。
-
否则,依据怪物生成的亮度要求生成相应怪物。
-
然后选择一个随机数字来决定该集群中的生物数量。
-
每种生物都会有最小和最大数量,这一数量受生物群系的影响。
-
游戏会生成一个介于0到1之间的随机浮点数R,根据公式计算生物数量:生物数量=最小数量+R²×(最大数量-最小数量),并进行四舍五入处理。
-
此外,生成位置必须符合生成条件。
-
生成生物的数量受到全局生物上限的限制,如果当前生物数量已达到或超过上限,则将停止生成。
-
对于每个集群,需检查其所在区块及周围9×9区块内同类生物的数量,以确保没有超过种群控制上限或生物密度上限。
-
如果数量达标,算法将尝试生成该生物。
-
需要注意的是,生物生成过程有时可能失败,例如当生成位置为方块或墙壁内部时。
结构生成
-
在Minecraft中,结构生成是基于预先确定的集群生成尝试进行的,该过程使用特定的X、Z坐标来决定结构出现的位置,这些位置通常被称为“硬编码生成点”。
-
具有硬编码生成点的结构包括沼泽小屋、海底神殿、掠夺者前哨站以及下界要塞等。
-
当在包含硬编码生成区域的区块内成功进行了一次集群生成时,环境生成算法会尝试生成结构。
-
需要注意的是,这里的成功集群生成指的是找到可生成的方块,即使某些生物由于光照或密度检查等原因未能生成,也不影响这一过程。
-
如果某个特定的X、Z坐标没有进行集群生成,例如仅为空气方块,或所有可生成位置被半坡方块阻挡,那么结构将不会进行生成尝试。
-
结构生成是遵循与集群生成相同的规则及步骤,但在以下方面有所不同:硬编码生成点的Y坐标搜索将依据结构的硬编码生成区域来决定,而不是从世界的最高点开始到基岩结束。
-
在这一特定Y坐标区间内,结构生成会在第一个可以生成的方块(即最高的可生成方块)处尝试一次。
-
硬编码生成区域通常位于结构中各子结构的中心,若子结构被区块切割,则该子结构的中心在每个区块内均有一个硬编码生成区域。
-
生成的生物种类将根据结构的类型来决定,例如沼泽小屋会生成女巫,而海底神殿会生成守卫者。
-
在结构生成的过程中,有效的种群控制上限将增加一个单位。
生物生成的执行顺序
-
在已加载的区块中,更新过程是按照特定顺序进行的。
-
每次更新某一区块时,都会存在11/2000的概率去尝试生成新生物,同时更新该区块内不同类别生物的密度情况。
-
进行生成尝试的过程始于随机选择该区块内的X和Z坐标,并从世界的最高方块开始向下检查所有方块是否存在空气。
-
当找到第一个满足空气条件的方块时,将尝试进行露天生成,而其他方块则作为洞穴生成的候选。
-
在进行露天生成功能的同时,如果该区块有硬编码的生成点,将同时尝试生成相关结构。
-
在露天或洞穴生成的尝试中,依据生成点的光照、海拔、是否位于村庄范围,以及是否暴露在外等因素,选择能够生成的生物。
-
所有符合条件的生物将根据其权重随机选出一种,同时再随机决定要生成的该生物数量。
-
如果随机结果为零,则不进行生物生成。
-
在决定生物生成后,会对选取的生物种类进行空间检测,并确认生成点是否在玩家周围的可生成区域内。
-
如果所有检测均成功,生物将成功生成,且更新密度检测范围内各个类别生物的密度数据。
其他生成
一、计划周期生成
- 猫生成系统会每1200游戏刻(60秒)检查玩家附近的村庄或沼泽小屋,并决定是否生成一只新的猫。
- 灾厄巡逻队会在游戏时间达到100分钟(5个游戏日)后自然生成。
- 若此条件满足,系统每隔10-11分钟会尝试生成一支巡逻队(成功概率为20%)。
- 在Java版中,幻翼每1200游戏刻(60秒)~2400游戏刻(120秒)尝试生成一次,会自然生成在至少72000游戏刻(60分)未在床睡眠超过5秒的玩家上空。
- 在Java版中,每晚的午夜(昼夜更替中的第18000刻),系统有10%的概率尝试安排一次僵尸围城。
- 如果此时有玩家正在村庄内,则有可能触发这次僵尸围城,在村庄内产生大量的僵尸。
- 在世界创建的24000游戏刻(20分)后,游戏将开始尝试生成流浪商人和行商羊驼,并在此后每24000刻进行一次尝试。
二、 方块事件生成
- 如果玩家建造出正确的结构,即可生成雪傀儡、铁傀儡、铜傀儡和凋灵。
- 当玩家位于刷怪笼16格范围内时,刷怪笼会在其周围的8×3×8区域尝试生成生物。
- 当虫蚀方块被破坏或周围有蠹虫遭到攻击时会生成蠹虫。
- 蜜蜂可在蜂巢或蜂箱被未带有精准采集的魔咒的工具破坏时生成。
- 当蜂巢或蜂箱内有蜜蜂时蜜蜂也可以自然生成在周围,同时减少方块内的蜜蜂数量。
- 当下界传送门方块接收到随机刻时有概率生成一只僵尸猪灵。
三、 实体事件生成
- 动物和一部分其他生物可以使用它们感兴趣的食物进入“求爱模式”,两只进入求爱模式的同种生物可以繁殖生成新的幼年生物个体或对应的蛋类方块。
- 一个村庄中,村民可以自然生成铁傀儡。
- 恼鬼可被唤魔者召唤而生成。
- 带有不祥之兆的玩家进入村庄可以触发一次袭击,袭击中会自然生成女巫、卫道士、唤魔者、掠夺者和劫掠兽。
- 雷暴中生成的骷髅陷阱马在玩家接近时生成骷髅骑士。
- 在Java版中,僵尸、尸壳、溺尸、僵尸村民和僵尸猪灵受伤时可能生成增援。
- 杀死大型或中型的史莱姆和岩浆怪会生成更多更小的个体。
- 如果末影龙战斗仍然处于激活的状态,而末影龙实体失踪,游戏会生成末影龙。
- 幼年僵尸、幼年僵尸猪灵、幼年溺尸
[仅Java版]、幼年尸壳和幼年僵尸村民在周期生成时有概率附带一只鸡,它们作为一个整体生成成为鸡骑士。 - 一只打开壳的潜影贝被另一只潜影贝(或自己)的子弹击中时,有概率在原地生成一只潜影贝。
四、 物品事件生成
五、 生物转化生成
- 猪被闪电击中时会被替换为新生成的僵尸猪灵。
- 村民被闪电击中时会被替换为新生成的女巫。
- 如果猪灵和疣猪兽被运送至主世界或末地,其会在15秒后变为僵尸猪灵和僵尸疣猪兽。
- 被僵尸杀死的村民有一定概率(普通难度为50%,困难难度为100%)生成僵尸村民。
- 僵尸村民被治愈为村民。
- 僵尸保持浸泡在水中900游戏刻(45秒)会变为溺尸,尸壳保持浸泡在水中900游戏刻(45秒)会变为僵尸。
- 骷髅在细雪中440游戏刻(22秒)会变为流浪者。
- 蝌蚪成长为青蛙。
- 哞菇被剪刀剪除蘑菇会变成牛。
六、 外部命令生成
- 任何实体均可使用/summon生成。
- 通过代码连接可生成智能体。
[仅基岩版和教育版]
清除
一、 Java版
-
生物是否会被自然清除,主要取决于它们与最近玩家的距离以及它们自身的特性。
-
根据与最近玩家的距离,自然清除可分为两种类型:立刻清除与延迟清除。
-
首先,对于可被清除的生物,若其距离最近玩家超过生物类别的清除半径,则立即被清除;通常情况下,这一半径为128格,而水下的生物则为64格。
-
其次,若生物距离最近玩家超过32格,且其无动作计数器超过600,便每个游戏刻有1/800的概率被清除。
-
无动作计数器用于跟踪生物多长时间没有执行任何动作,同时,也影响生物能否随机移动。
-
当无动作计数器超过100时,除了一些特定生物外,其余所有生物将不再随机移动。
-
对所有生物而言,无动作计数器每个游戏刻增加1;而对于怪物而言,若内部光照等级超出12,每个游戏刻将额外增加2。
-
若生物满足几项特定条件,无动作计数器将被重置,包括生物距离最近玩家小于32格或受到任何类型的伤害。
-
由于无动作计数器的机制,位于32格外但在清除半径内的生物都设定了最小存活时间。
-
对于一般生物,当其距离玩家超过32格后,需持续600游戏刻(30秒)才能被清除,平均而言1400游戏刻(70秒)会被清除。
-
至于灾厄村民或在亮处的怪物,同样需要在距离玩家32格外至少200游戏刻(10秒)后,平均1000游戏刻(50秒)会被清除。
-
只有在实体计算的区块中,生物才有可能被自然清除,非实体计算的区块内生物则不会被清除。
-
若生物的“PersistenceRequired”标记为true,则该生物将不会被清除,这包括一些特定转化后的生物及其他几个特例。
-
大多数伴随结构生成的生物,以及生物与玩家有过交互的情况,也会保持不被清除的状态。
-
最后,还有一些特殊生物的清除方式,这类生物只需在强加载区块内存在,而不需要考虑最近玩家的距离。
-
需要指出的是,PersistenceRequired为false的末影螨会在生成2400游戏刻(120秒)后被清除,监守者则在钻回地下后立即消失。
二、 基岩版
-
在基岩版中,生物的自然清除机制取决于其与最近玩家之间的距离以及当前的世界模拟距离。
-
当模拟距离为4个区块时,若生物距离最近的玩家超过44格,则该生物将被瞬时清除。
-
在模拟距离设定为6或更高时,几乎所有自然生成的生物会在以下几种情况中被立即清除:位于模拟距离边缘的区块内,以及周围8个区块尚未完全加载;或者距离最近玩家超过128格。
-
所有鱼类在距离最近的玩家超过40格时都会被清除,而这一规则与模拟距离无关。
-
如果生物距离最近玩家超过32格且在30秒内没有受到任何伤害,则每个游戏刻生物有1/800的概率被清除。
-
所有生物,包括具有持久性NBT标签的生物,都会在Y轴坐标达到-128及以下时被立刻清除。
-
此外,生物也可能通过繁殖、生存或受伤等方式获得持久性。
语言
字体
平视显示器
第三人称视角
聊天
弹窗
教学提示
提示框
动作栏
定位栏
Boss栏
灵动视效
记分板
截图
进度
统计信息
队伍
成就
判定箱
东南规则
爆炸
多人游戏
药水效果
游戏事件
世界
难度
极限模式
游戏规则
维度
种子(世界生成)
灾厄巡逻队
袭击
僵尸围城
方块基本属性
挖掘
Java版材料
基岩版材料
含水
方块更新
红石电路
氧化
作物机制
含雪
稀有度
工具材料
盔甲材料
物品耐久
魔咒
光效
槽位
物品冷却
掉落物
箱子战利品(结构索引)
钓鱼
药水酿造
附魔(物品修饰)
铁砧机制
物品修复
锻造
伤害
伤害类型
着火
摔落
骑乘
朝向
重力
跳跃
走上方块
属性
生物AI
寻路
生物转化
受击后伤害免疫
生成
生命
死亡消息
治疗
近战攻击
状态效果
盔甲机制
呼吸
窒息
繁殖
以物易物
挤压
物品栏
创造模式物品栏
饥饿
经验
防御
双持
选取方块
创造模式
生存模式
冒险模式
旁观模式
爬行
飞行
坐
潜行
躺
疾跑
游泳
表情
评论( {{ count }})条
{{ item.user_detail["nick_name"] }}
{{ item.user_detail["title"] }}
暂无内容