理由:需要從1.9至1.16快照完整地檢查該文章是否是最新的。
生成(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) |
| 貓熊 | 叢林 |
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版生物上限
生物上限數與符合生成生物條件的區塊數量成正比。為了計算上限,生成區域在每個方向上拓展一個區塊(因此預設為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 其他生物
如果最大群組規模小於生成嘗試次數,那麼會有一些生成嘗試失敗,這在實際執行中很常見。如果最大群組規模的大於生成嘗試次數,那麼就只有進行嘗試並且成功的會真正生成。一些生物有最大和最小群組規模,那麼生成嘗試的次數將會在兩者之間。
- 對於殭屍村民,沉屍,莽原中的驢子,竹林和叢林外的叢林生態域中的鸚鵡,沼澤小屋中的貓以及女巫來說是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版
各種生物生成範圍的圖解。
除界伏蚌、遠古深海守衛、凋零怪和終界龍以外的敵對生物都可能被清除,除非在某些例外情形下它們被判定為不可清除(見下文)。會被清除的非敵對生物包括流浪商人、山貓、未被馴服的貓和敵對狀態的狼。友好生物如蝙蝠、海豚、魷魚和各種類的魚能夠被清除,除非在例外情形下它們被判定為不可清除(見下文)。
對於能夠被清除的生物:
- 若其周圍半徑32格的範圍內超過30秒無任何玩家,則其在每一遊戲刻(1⁄20秒)都有1⁄800的機率被清除。
- 對於其中魚以外的生物,若其周圍半徑128格的範圍內無任何玩家,其會被立刻清除;對於魚,這個範圍半徑則是64格。
- 大多數敵對生物在難易度設定為和平時會被清除。
- 僅當一個維度中的玩家不全處於旁觀者模式時,該維度中才會發生清除。
- 作為雞騎士的一部分生成的雞遵從殭屍的清除機制,而非雞的清除機制。
在以下情形下,生物會被判定為不可清除:
- 它們正在騎乘其他生物。
[需要驗證] - 它們正在乘坐船。
- 它們正在乘坐礦車。
[需要驗證] - 它們作為生成結構的一部分生成。
- 它們的物品欄裡有物品,這包括它們裝備上的物品(如鞍),也包括它們撿起的物品,但不包括與它們一同生成的物品。
- 這也包括吸引海豚進行玩耍的物品。
[需要驗證]
- 這也包括吸引海豚進行玩耍的物品。
- 它們被命名牌命名過。
- 但由被重新命名過的生怪蛋生成的生物不在此列。
- 它們作為突襲的一部分生成。
[需要驗證] - 搬起方塊的終界使者。
- 用魚桶放置出的魚。
- 由已進行過交易的村民轉化成的殭屍村民。
[需要驗證] - 餵食過緋紅蕈菇的豬布獸。
- 在殭屍化前被餵食過緋紅蕈菇的豬屍獸。
- 鐵魔像或雪人。
- 它們被應用了NBT標籤
{PersistenceRequired: 1b},不論它們是隨之生成的,還是被/data merge或/data modify指令手動給予了該標籤。
基岩版
在基岩版中,模擬距離為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%,取決於生物種類) | |||
錯誤
Template:Issue list
你知道嗎
- 重生點(玩家在沒有有效的床的情況下的重生點)通常是X和Z軸上由種子決定的-500和+500之間的隨機點。如果選擇的點在水中(例如在-500到+500範圍內只有海洋生態域),就將在-1500到+1500之間進行第二次嘗試。如果由於海洋而失敗,則遊戲放棄此方法並將世界生成點設定在海洋中間(仍在海平面)。然而,通常情況下,如果玩家在水中生成,它將在岸邊,因為世界生成本身在乾燥的地方上選擇了一個地方。
- 正常情況下,一個不透明方塊會導致其下所有方塊生成洞穴生物,然而如果其上放置一個透明方塊,便不會如此。這可以利用來建造某些生怪塔。
參考
外部連結
- 來自Marglyph的論壇帖子討論了Beta 1.2中的生成算法。
- 來自fr0stbyte124的論壇帖子討論了從Alpha v1.1.2_01至萬聖節更新之前生物生成的變化。