Template:Translation:未知参数。 生成(Spawn)是指玩家和生物被创造和在世界里出生。玩家将会在死亡时在他们的出生点出生,或者在上次睡过的床旁出生。而生物死亡后则会被清除。
玩家的生成
世界重生
若需详细多人游戏中玩家生成的详细解释,请参阅生成/多人游戏详情子条目。
自Minecraft正式版1.3之后,单人中的玩家通常都会于世界出生点为中心20*20范围内任意位置生成,而多人游戏则缩小到10*10范围的范围。
当生成时,玩家将出生在出生点的X轴与Z轴的相应位置的最高处(即Y轴最大,也就是说生成在最高的方块上),即使这样的生成算法会把玩家放到最大建筑高度(目前是256m)的上面。
这个区域将不考虑实体生成在什么可怕的地方,因此,若在X轴和Z轴的位置没有方块,就可能会导致玩家生成的虚空上方。另,世界重生点可以使用/setworldspawn命令来修改。
世界重生点也决定了永久加载区块(即无论玩家身处何地此区块内的数据都会被加载并处理)的位置。
世界生成区域示意图。白色表示单人游戏生成区域,蓝色代表多人游戏生成区域,黄色代表世界产生点。
个人重生
每个玩家修改他们自己出生点有两种方式:
- 在床上睡一觉(不需要睡一整晚)注:在多人游戏中,只在所有玩家全都上床睡觉或者处于AFK状态下(Away From Keyboard,离开键盘,即未操作)才会快速度过夜晚。
- 使用
/spawnpoint命令来修改。
如果玩家死亡时个人重生点受阻(或被破坏等),他们将被迫重生在世界重生点。
不过,躺在床上设置复活点的方式将允许较大范围的重生,即:如果原来的点被阻塞,这名玩家会尝试重生在床的附近区域里。但如果通过/spawnpoint设置重生点,遇到上述情况时,玩家将不会有这种较大范围的重生。
非攻击型生物的生成
非攻击型生物主要定义为所有被动型生物,还有狼。本章节内容与下章节内容有交集。该段动物生成分建立世界时的动物生成和游戏进行过程中的动物生成。
大约十分之一的新生成区块中将包含生物,通常是一群最多到4只的同种动物。它们总在该区块柱状区域中最高的有效方块生成,换言之就是可以看到天空的地方。如果要让动物在该方块上生成,此方块必须是不透明的方块而且其上两个方块必须是透明方块。方块上面并不需要有草也不需要被照亮(生物生成也是同理)。[1]
一头牛在地图中的树叶中生成并且不能逃出,这是森林山丘地区常见的现象。
动物生成的随机性取决于(生成)世界种子,这意味着相同种子的世界将会在同一个地方产生带有同样动物的区块。
在非常稀少的情况下,新的动物会生成在已经生成的区块里,这点与怪物一样。当动物以这种方式生成的时候,它们只在光照9级或以上的草方块上生成。从刷怪箱中生成的动物也需要相同的条件。除了狼在攻击型状态下可以被清除之外,动物并不会自发地被清除。[2]
马的生成
与其它的被动型生物不同,马只在一种生物群系中生成——草原。由此原因,马看起来比其它生物要少,尽管在平原它们和其它的生物生成概率相同。马成群生成,每群有至少4到8只。尽管确切数字尚未确认。给定群体中所有的成员的类型和毛色花样都是一致的,尽管其个体标志可能会有些差别。所有毛色花样的马,包括驴在内都有相同的几率生成,尽管驴看起来要少见一点。骡不能天然生成,只能在生存模式中将任意一种系别的马和驴杂交来取得。
生物的生成
生物大致划分为四种:攻击型,被动型,水生型(也就是鱿鱼)和环境型(也就是蝙蝠)。攻击型生物有一个每游戏刻(1/20秒)一次的生成周期。被动型和水生型生物只有每400刻(20秒)一次的生成周期。因为这一点,攻击型生物可以在任何时候生成,而动物生成则非常少。另外,大部分动物在建立世界时产生的区块中生成(参见非攻击型生物的生成一节)。
攻击型生物生成通常情况下在玩家周围15*15区块(240*240方块)内。当在多人游戏中,攻击型生物会在任意一名玩家的上述距离之内生成。然而,远于所有玩家128方块距离之外的怪物会立即被清除(参见清除一节),所以攻击型生物生成区域被有效地限制在以每一玩家为中心的半径128方块内的球形范围里。
怪物容量(可理解为人口)与适合生成的区块总数直接成比例。要计算容量的话,生成区域在每一方向上均扩展一个区块,所以有17*17区块的大小,然后总的区块数被代入到下式中:
容量=常量*區塊數/289
每一种生物均具有自己的容量计算和公式中不同的常量值:
攻擊型 = 70 被動型 = 10 環境型(蝙蝠) = 15 水生型 = 5
在单人游戏模式下,区块计数总为17*17=289,那么各种生物的容量也就是上面列出的数值。在多人游戏中,在多个玩家范围内的区块只被计算一次,所以玩家越分散,更多地区块会被覆盖且会有更高的容量。
在每次生成周期的开始都会检查一次容量。如果存活的生物数量超过它的容量,整个生成周期就会被跳过。
一组生物生成的举例。这一41*1*41生成区域被标记为蓝色(没按比例)。黄色轮廓表示在检查环境后事实上生物可以生成的地点。注意生物可以在火把和楼梯方块内生成。但是它们不能在玻璃方块的上面生成因为它是透明的。红色立方体是这一组生物的中心,必须是空气方块,不过其上下可以为任意方块。
单独一个生物生成地点的要求。
在每一生成周期中,会在每一个合适的区块中进行一次生成一组生物的尝试。该区块内选择一个随机地点作为这组生物的中心点。为生成这组生物,中心方块对水生生物而言必须是水方块,对所有其它生物来说则必须是空气方块。注意在后面的情形中,它一定得是空气方块。任何其它方块,哪怕是一个透明方块都会阻止整组生物的生成。
如果该组位置合适,会在以中心方块为原点41*1*41的范围(就是41*41格大小的方型,有1格高的区域)内进行12次尝试以生成多至4个的生物(狼是8个,恶魂是1个)。生物将会在这一区域生成其身体的最下部分。在每次生成尝试中,会在这一区域中随机选择一个方块的地点。尽管生成区域能扩展到中心21格之外,但是随机选出的地点强烈地向该组的中心集中。大约有85%的生成将会在该组中心的5格以内,99%会落在10格以内
组内所有的生物都是相同的种类。在该组第一次生成尝试时从该地区所适合生成的种类中随机挑选一种以决定整组的种类:
- 在主世界里,这取决于生物群系:
- 没有刷怪箱时实际上有两种方式可以自然生成史莱姆:在高度40以下特定的区块中,或者在亮度<8的沼泽生物群系。
- 洞穴蜘蛛只能从它们特定的刷怪箱中生成,这能在废弃矿井中密集的蜘蛛网间找到。
- 蠹虫从要塞和山脉生物群系中的石头,圆石,石砖方块生成。他们也可在要塞里它们特定的刷怪箱中生成。
- 女巫只能在沼泽生物群系中的沼泽小屋中生成。在1.7及以后版本中,女巫可以在大多数生物群系小几率天然生成。
- 下界普通位置只能生成恶魂、僵尸猪人、岩浆怪。
- 下界要塞处可生成凋灵骷髅和骷髅。烈焰人生成于下界要塞中的特定的刷怪箱,而且它们也在要塞建筑的其它地方生成。
- 末路之地只能生成末影人(除了在末地城生成的潜影贝)。
- 末影龙会在末地中天然地生成,但是总是只有一条,而且不遵循通常的生物生成过程。
- 雪傀儡、铁傀儡和凋灵一般只能通过搭建生成。其中铁傀儡还可在至少有10个村民和21座房屋(以门的数量为记)的村庄中生成。
- 末影螨在末影人瞬移时有15%几率生成(并会使生成几率下降1%),或在玩家使用末影珍珠落地时时有5%几率生成,并且在2分钟之内消失(未被命名)。但在14w28a后,末影螨不再从末影人处生成。
每次独立的生成尝试只有在以下的所有的条件都符合时才能成功:
- 生成方块在周围24米内(球体)不能有玩家或者玩家出生点。
- 如果生成的不是鱿鱼,则...
- 如果生成的是动物,则...
- 生成的方块的下面必须是草。
- 生成的方块的周围亮度必须是9或者更高。
- 如果生成的是一个攻击性生物生成在主世界,则...
- 亮度必须等于或者小于7,随着亮度的增加生成失败的机率也会增加。
- 阳光直接照射到生成方块将进一步增加失败的几率,最高会到50%。
- 如果生成的是史莱姆,则...
- 如果生成的是恶魂,生成会有95%的机率失败,因此恶魂的生成速度是其它生物的二十分之一。
如果上述所有条件均满足的话生物就生成了。当4个生物生成(或者是8只狼或1只恶魂)或完成12次尝试(此条件优先)后该组即告生成完成。而末影龙和凋灵不适用上述规则。
注解
- 由于普遍性的方块检查,除了鱿鱼之外所有生物必须生成于一个上方至少带两格无障碍空间的不透明方块的顶端,甚至恶魂等也是如此。然而如果上面一格的方块是透明的话(譬如一个玻璃方块或活塞),矮个子的生物可以在一格高的空间里生成。
- 单个的生物可以在告示牌、压力板和其它的透明非固体方块中生成,但一组生物不可以。它们需要一个完全空白的方块作为中心。因为一组生物都是在同一高度生成,这就需要在一个平坦的表面上有一些空气方块以允许生物生成,且空气方块越多就允许生成更多。
- 通常情况下,室外有空气的建筑比地下室能在室内生成更多的生物,因为在室外生成的群组可以在室内生成生物。
- 生物容量在很短的时间内就趋于饱和。因为这一点,通过让生物聚集于一个生成空间里(比如刷怪塔)可以防止生物在室外生成。
- 容量的存在也意味着生物死得越快,生成得就越快。
- 因为只在生成周期的开头检测(生物)容量,所以当一次周期生成大量生物时,容量可被戏剧性地超出。这在鱿鱼身上经常发生,它们容量正常情况下很少(单人游戏中是5),但是在一个有很多水的地方可以一次周期内生成很多。
- 在多人游戏中,生物容量被所有玩家所共有,无论他们在哪。如果一名玩家可以让很多生物生成在他附近,换言之有一个刷怪塔,其它地方的玩家将会更少见到同种类型的生物。同样的,如果一名玩家可以防止生物在他附近生成(或许是给周围浇上很多水或者是点亮附近的洞穴),这样会有效地把生成生物的可能性留给其他人。
- 曾经一个漏洞导致生物不会在240高度以上生成,但自正式版1.4.6之后它被修复。现在生物可以在240高度以上生成。
- 在多人游戏中,如果server.properties文件中设置有“view-distance=9”或更低,生物生成将会急剧减少(或它们清除过于迅速),最终导致玩家几乎见不到生物。将视距(即view-distance)设为10或更高值以确保生物正常生成。
其它类型的生成
一个刷怪箱会在其周围持续地刷出生物。
一枚扔出去的鸡蛋有1/8的几率生成一只小鸡,其中又有额外1/32的几率从一枚鸡蛋中生成4只小鸡,所以共计有1/256的几率扔一只鸡蛋获得4只小鸡。
牛、鸡、猪、羊、哞菇、村民、豹猫和狼可以进行繁殖。除村民之外,这些繁殖方式需要玩家饲喂它们。
在主世界中一个叠一个地放置两个雪块,再叠上一个南瓜或南瓜灯,将会生成一个雪傀儡。同样的,把雪块换成铁块(在高的那一块相对的两边还要额外各安上一个铁块)将会生成一个铁傀儡。铁傀儡也在村庄生成。凋灵也是通过放置方块来生成。
在创造模式下,玩家可以用刷怪蛋来生成大多数生物。当用此法生成生物时,会忽略所有的常规生成需求,如光照等级和方块类型等。
與其它生物相同,馬可以在生存模式中通過刷怪蛋生成。由刷怪蛋得到的馬毛色花樣是完全隨機而無法控制的,這一變數包括生成驢的可能性(驢本身並無專屬的刷怪蛋)。 與生存模式一樣,騾不能自然覓得也不能從刷怪蛋生成——它們必須由馬和驢繁殖獲得。
攻城:僵尸可以在村庄中生成。这并非自然生成方式,因其可发生在蘑菇生物群系中。
怪物蛋在被破坏或附近的蠹虫被攻击时会生成一条蠹虫。
中型和大型史莱姆和岩浆怪被击杀时会生成更多同类,不过要小上一号。
僵尸猪人可以在主世界的下界传送门周围生成。这暗示它们来自下界,但事实上这是一个货真价实的生成过程。其实僵尸猪人(和其它生物一样)也可以双向穿越这些传送门,但它们需要来自一个已加载的区块。从它们在单人游戏中出现在主世界的情形来看,玩家肯定处于主世界,所以下界那边的传送门所在区块一定未被加载。注意在穿越传送门之后,非玩家所属的生物一段时间内不能重新进入传送门(甚至该区块被加载后一会),而且主世界生成的僵尸猪人似乎也受相同的限制。
清除
各种生物生成范围图解。注意自正式版1.6.1之后僵尸离玩家超过32格时也可移动。
怪物(未持有物品且未披甲的)和鱿鱼(但不包括动物)还有自1.1版本以来攻击型的狼在以下一些条件下可以终止存在,或称“清除”:
- 如果一个生物附近128个方块范围内没有玩家存在就会立即被清除。注意这是按照球形计算而非一个从地图从顶至底的一个圆柱。
- 一个生物周围32个方块距离内没有玩家超过30秒后,每刻(1/20秒)都有1/800的几率被清除。这意味着在玩家32个方块距离之外生成的或脱离这一范围(30秒)的生物平均能存在40秒。也就是说,在最初30秒度过后,玩家32个方块距离之外怪物的半衰期是27.73秒。
- 当游戏难度设置为和平时,世界中所有攻击型生物(包括那些持有物品的)都会立即被清除,无论玩家在世界的什么位置。
在多人游戏中,当没有玩家在游戏中时并不发生生物的清除。
历史
| Java版Classic | |||||
|---|---|---|---|---|---|
| ? | 生成区域曾经是17*17个区块而不是15*15。该区域被缩小了,但是旧的大小仍然被用于计算生物容量。 | ||||
| 并不总是能通过防止生物在其它地方生成来够驱使它们聚集于一个生成空间里。一些更早的关于“生成”的资料或许可以作为参考。 | |||||
| 大量的空余空间曾经能促进一般地区的生物生成。这一点对于一个小一点的规模仍然有效,且由于成组生成的机制而只对水平分布有效。 | |||||
| Java版Alpha | |||||
| 0.2.0 | 0,0区块(X为0-16且Z为0-16)总是首先进行生物生成判定。如果一个人在此区块建了一个暗室,那所有的生物都会生成在其中,而导致其它地方都没有。 | ||||
| Java版Beta | |||||
| 1.8 | 世界建立时的生成位点即使不是在沙滩也总是在沙子上。 | ||||
| release | |||||
| 1.0.0 | 此版本之前的Beta版中,生成只被光照等级所决定而不是当前区块的属性。攻击型生物在光照等级7或更低的地方生成而被动型生物在光照等级9或更高的地方生成。因为这一点,尽管在有光照的地方仍有很小的几率生成攻击型生物,归因于它们在无光照的空中生成。另外如果你带了很多火把下矿,然后返回,你很可能将会看到你的房子里面有一些牛、猪、鸡或羊在里面到处跑。此情况在正式版1.0.0中不复存在。 | ||||
你知道吗
- 有时世界建立时的生成会发生在地下或海洋里。
- 建立世界时的生成甚至可以发生在地牢或村庄中(非常罕见)。
- 有时世界的出生点可能会挨着一个方块,但是几乎不会发生定位在一个方块内部的错误。
- 通过敌对生物不会被刷新,在出生点区块(总是在内存中加载)放置大量敌对生物,可以造成“伪和平"(defanive2 首次在百度贴吧提出)。
- 有时玩家会生成在空中,有可能造成无限的摔落致死,从而导致无法游戏。
参考
- ↑ http://www.minecraftforum.net/topic/639466-918-update-animals-can-respawn-proof-within
- ↑ 在对游戏程序的反编译过程中,EntityWolf类下有这么一段:
protected boolean canDespawn() { return isAngry(); }这段意味着狼只有在攻击型状态下才可能被清除,那时狼基本上可以被归类为攻击型生物了。
外部链接
- http://www.minecraftforum.net/topic/136723-mob-spawning-algorithm-in-12-01-analyzed/ - Marglyph创作的Beta 1.2中的生成算法
- http://www.minecraftforum.net/topic/37979-mob-spawning-science/ - fr0stbyte124创作的万圣节更新之前的生成算法