判定箱(Hitbox)定義方塊或實體的物理「邊界」(或其近似值),用於計算碰撞和選取。
和方塊模型不同的是,所有的判定箱都是硬編碼的,不能透過資料包修改,只能透過Mod改變。
方塊
輪廓箱
輪廓箱(Outline Box)會在玩家看向指定方塊時顯示。當十字準心指向方塊時,會有黑框線描出該方塊的輪廓。
輪廓箱對於一個方塊並不是固定的,在不同的方塊狀態下可能具有不同的輪廓箱。例如上半半磚和下半半磚屬於同一種方塊,但具有不同的輪廓箱。液體不具有輪廓箱。
碰撞箱
碰撞箱(Collision Box)用於管理與實體間的碰撞。
並非所有方塊都具有碰撞箱。下列這些方塊沒有碰撞箱,實體可以自由穿過它們:
- 空氣/虛空空氣/洞穴空氣
- 結構空位
- 熔岩、水(對於可以站立在對應液體上的生物,碰撞箱高度為1⁄2格)
- 氣泡柱
- 南瓜梗和西瓜梗
- 各種農作物
- 草叢
- 花
- 樹苗
- 小懸葉草和大懸葉草葉柄
- 藤蔓和洞穴藤蔓
- 地獄芽、扭曲藤和垂泣藤
- 海帶、海草和高海草
- 枯灌木
- 甜莓灌木叢
- 懸根
- 孢子花
- 粉瓣花
- 發光地衣和伏聆脈絡
- 蘑菇
- 珊瑚和扇狀珊瑚
- 青蛙卵
- 火和靈魂火
- 火把、靈魂火把和紅石火把
- 旗幟
- 告示牌和懸掛式告示牌
- 按鈕
- 壓力板
- 控制桿
- 各種鐵軌
- 紅石線
- 絆線和絆線鈎
- 蜘蛛網
- 終界折躍門、終界傳送門和地獄傳送門
具有碰撞箱的方塊其碰撞箱預設與輪廓箱形狀相同,但下列這些方塊碰撞箱與輪廓箱不同:
- 竹子:碰撞箱寬度為3⁄16格,而非輪廓箱的6⁄16格或10⁄16格。
- 大懸葉草:只有上方的葉子部分有碰撞箱,下面的莖沒有碰撞箱。
- 仙人掌:碰撞箱高度為15⁄16格,而非輪廓箱的1格。
- 堆肥桶:碰撞箱始終與0層堆肥的輪廓箱相同。
- 柵欄:碰撞箱高度為1.5格,而非輪廓箱的1格。
- 柵欄門:關閉時碰撞箱高度為1.5格,而非輪廓箱的1格。開啟時無碰撞箱。
- 蜂蜜塊:碰撞箱高度為15⁄16格,寬度為14⁄16格,而非輪廓箱的1格。
- 講台:講台桌面的碰撞箱是一個長方體且不旋轉,而非輪廓箱那樣隨方塊方向旋轉而旋轉。
- 移動中的活塞:碰撞箱與目前移動中的活塞移動程度有關。
- 泥巴:碰撞箱高度為14⁄16格,而非輪廓箱的1格。
- 粉雪:對於超過2.5格下落高度的任何實體碰撞箱高度為0.9格,對於粉雪上方掉落的方塊和穿戴了皮革靴子的生物碰撞箱為完整方塊,其他條件下沒有碰撞箱。
- 鷹架:如果實體從上方向下落,並且鷹架具有底部,則碰撞箱只包含底部的16×2×16區域;如果實體向下落且鷹架不具有底部,則沒有碰撞箱。其他條件下與放置在地面上的鷹架輪廓箱相同。
- 伏聆嘯口:碰撞箱高度為8⁄16格,而非輪廓箱的1格。
- 雪:碰撞箱高度比輪廓箱低1⁄8格,單層雪無碰撞箱。
- 靈魂砂:碰撞箱高度為14⁄16格,而非輪廓箱的1格。
- 牆:碰撞箱高度為1.5格。
- 牆上的懸掛式告示牌:只有上方的欄杆有碰撞箱。
如果一個方塊的碰撞箱不能和一個與座標網格對齊的1×1×1的正方體完全重合,那麼無論碰撞箱大小如何,這個碰撞箱都被認為是不完整的,而這個方塊就是碰撞箱不完整方塊。絕大多數碰撞箱不完整的方塊都不是紅石導體,也不能使生物窒息。生物也不能自然生成在任何碰撞箱完整的方塊內部。
互動箱
上面:視線與鐵砧輪廓箱的某一個上表面碰撞,選擇方向為上方。下面:視線與堆肥桶輪廓箱的某一個水平表面碰撞,但由於堆肥桶有一個完整方塊大小的互動箱,且視線與互動箱上表面碰撞,所以最終選擇方向為上方。
互動箱(Interaction Box)用於處理選中方塊後的選擇方向。如果一個方塊可以被選中(由輪廓箱判定),並且視線與方塊的互動箱相交,那麼選擇方向不取決於輪廓箱與視線的碰撞面,而是取決於互動箱與視線的碰撞面。
絕大多數方塊的互動箱都不存在,選擇方向只取決於輪廓箱。只有下方這些方塊具有互動箱:
- 鍋釜:鍋釜內的空間是互動箱。
- 堆肥桶:堆肥桶的互動箱是整個方塊。
- 漏斗:漏斗的互動箱與方塊狀態有關。當漏斗指向下方,互動箱為漏斗內部的空間;當漏斗指向某一個水平方向,互動箱位於對應漏斗方向上,覆蓋漏斗的指向部分。
- 鷹架:鷹架的互動箱是整個方塊。
方塊支撐形狀
漏斗的支撐面(藍色正方體上的各個面)
方塊支撐形狀(Block Support Shape)主要用於判斷一個方塊表面是否可以附著另一個依附型方塊。
方塊支撐形狀預設與碰撞箱相同,但下列方塊不同:
- 懸掛式告示牌:方塊支撐形狀與輪廓箱相同。
- 柵欄門:打開時方塊支撐形狀不存在,關閉時為碰撞箱下方縮減5⁄16格。
- 樹葉:方塊支撐形狀不存在。
- 泥巴:方塊支撐形狀為完整的方塊。
- 界伏盒:關閉時方塊支撐形狀為完整的方塊,開啟時方塊支撐形狀向對應方向拉伸。
- 雪:方塊支撐形狀與輪廓箱相同。
- 靈魂砂:方塊支撐形狀為完整的方塊。
方塊支撐形狀和一個與座標網格對齊的1×1×1正方體的某個面重合的所有面的併集就是這個方塊在某個方向上的支撐面。
- 如果某個方向上的支撐面是一個1×1的正方形,則這個面完整。
- 如果某個方向上的中心1⁄8×1⁄8的正方形都屬於支撐面,則這個面中心完整。
- 如果某個方向上的寬度為1⁄8的邊緣都屬於支撐面,則這個面邊緣完整。
- 如果一個方塊的所有支撐面都完整,則這個方塊是方塊支撐形狀完整的方塊,簡稱完整方塊,否則為不完整方塊。
例如漏斗的上表面是不完整的,因為上表面中間缺失了3⁄4×3⁄4的區域,同時它的上表面中心不完整,但邊緣完整,而漏斗這個方塊是不完整方塊。
依附型方塊判斷支撐面的類型來決定它們是否能依附於要依附方塊的某個面上。直立的火把、燈籠等方塊只能放置於上表面中心完整的方塊上;紅石比較器、紅石中繼器、鐵軌等方塊只能放置於上表面邊緣完整的方塊上;門、控制桿等方塊只能放置於上表面完整的方塊上。
絕大多數上表面不完整的方塊上方不能生成任何生物。
遮擋形狀
遮擋形狀(Occlusion Shape)主要用於計算亮度和方塊的某一面是否可見。
大多數方塊並不以遮擋形狀作為亮度計算的參數,沒有碰撞箱的方塊不會遮擋光線,一些具有碰撞箱的方塊也不會阻擋光線。遮擋形狀預設與輪廓箱相同,但下列方塊不同:
- 柵欄:柵欄的遮擋形狀比輪廓箱高度更低、寬度更小,並且下方是空的。
- 柵欄門:柵欄門的遮擋形狀取決於它是否連接到了其它的柵欄或牆上。如果沒有連接,遮擋形狀會更高;如果連接了其它的柵欄或牆,那麼遮擋形狀也會相應降低。
- 講台:講台的遮擋形狀只包含下面的底座和支柱,上面的桌面不屬於遮擋形狀。
- 鐘乳石:鐘乳石沒有遮擋形狀。
- 粉雪:粉雪沒有遮擋形狀。
- 伏聆嘯口:伏聆嘯口的遮擋形狀與碰撞箱相同。
- 生物頭顱:生物頭顱沒有遮擋形狀。
視覺遮擋形狀
視覺遮擋形狀(Visual Shape)用於判斷視角能否透過方塊觀察到自身,確定第三人稱視角的最佳位置。
視覺遮擋形狀預設與碰撞箱相同,但下列這些方塊是例外:
- 玻璃、染色玻璃、遮光玻璃:所有類型的玻璃都不存在視覺遮擋形狀。
- 柵欄:柵欄的視覺遮擋形狀與輪廓箱相同。
- 鐵柵欄:鐵柵欄沒有視覺遮擋形狀。
- 泥巴:泥巴的視覺遮擋形狀是一個完整的方塊。
- 粉雪:粉雪沒有視覺遮擋形狀。
- 雪:雪的視覺遮擋形狀與輪廓箱相同。
- 靈魂砂:靈魂砂的視覺遮擋形狀是一個完整的方塊。
實體
所有實體的判定箱都是以一個正方形為底的長方體,無視實體的實際形狀。比如,女巫的判定箱不包括頂部的帽子,而凋零怪的判定箱不包括兩側的頭。終界龍除本體外還有8個身體構件,所以終界龍本質上是多個實體的組合,它的判定箱也由這些子實體組合而成。
邊界箱
在Java版中,實體的邊界箱(Boundary Box)可以透過F3 + B除錯快捷方式查看。當玩家選中實體的邊界箱後才能與其互動。同時,實體的邊界箱也是它們的碰撞箱。
視平線
視平線(Eye Level)具有紅色的輪廓,且只會出現在實體的判定箱中。視平線負責判定窒息和溺水傷害,當一個生物的視平線處於窒息方塊或水中時,該生物就會受到窒息傷害或因耗盡氧氣而溺水。當視平線位於水或熔岩中時,畫面也會產生不同的繪製效果。
歷史
方塊
碰撞箱
| Java版 | |||||
|---|---|---|---|---|---|
| 1.4.4 | 1.4.3 | 牆現在有了自己的碰撞箱了,以前它的碰撞箱與柵欄是相同的。[1] | |||
| 1.5 | 13w06a | 柵欄的碰撞箱已被變更,凹型的角落現在有了更貼近它們形狀的判定箱,而不是以前會產生隱形部分的凸型判定箱。 | |||
| 1.9 | 15w38a | 修復了大量有關於碰撞箱的錯誤。[2] | |||
| 1.13 | 17w47a | 牆的碰撞箱已被正確地做成凹形。[3] | |||
輪廓與互動箱
| Java版pre-Classic | |||||
|---|---|---|---|---|---|
| rd-132211 | 被選中的方塊現在會顯示明暗閃爍的視覺效果。 | ||||
| Java版Classic | |||||
| 0.0.13a | 被選中的方塊現在會顯示輪廓箱。 | ||||
| 0.24_SURVIVAL_TEST | 明暗閃爍的判定箱被移除,只留下輪廓箱。 | ||||
| ? | 某些方塊(花、蘑菇、火把)的判定箱不再是完整的方塊,而是更貼近它們各自的大小。 | ||||
| Java版Infdev | |||||
| Minecraft Infdev | 20100313 | 在此版本以前,輪廓箱會隨著離世界原點越遠而越不精確。在所有受支持的硬體裝置中,輪廓箱的位置會不規律地微幅抖動,而某些顯示卡甚至會使輪廓箱呈現非長方體的扭曲形狀。 | |||
| Java版 | |||||
| ? | 階梯的缺角不再能夠被十字準心選中,然而它的輪廓箱仍然是完整的方塊。 | ||||
| ? | 某些隨機不對齊的方塊如芒草,它們的判定箱現在也會跟著偏移以更完整地包含該方塊。 | ||||
| 1.0.0 | Beta 1.9-pre2 | 柵欄現在在xz平面上不再有完整一格方塊的判定箱,而是更貼近它們的視覺形狀。 | |||
| 1.1 | 12w01a | 柵欄門的判定箱也被變更,以更符合先前針對柵欄的變更。 | |||
| 1.5 | 13w06a | 修復了柵欄、柵欄門與牆在遠離世界原點時出現的判定箱扭曲問題。 | |||
| 1.9 | 15w38a | 蛋糕的輪廓箱現在永遠會出現在(0,0,0)的位置上,無論選中的蛋糕真正的位置在哪裏。這同時也造成了一個距離錯誤,詳見下方15w49a。 | |||
| 15w46a | 紅石線的判定箱現在只會根據線路的排列,而只覆蓋下方方塊的一部份。 | ||||
| 15w49a | 在此版本以前,蛋糕與仙人掌的輪廓箱會在離世界原點極遠時變得異常拉伸與扭曲。 | ||||
| 15w49b | 終界傳送門方塊的判定箱高度由原本的1⁄16格高改為3⁄4格高。 | ||||
| 1.11 | 16w35a | 蛋糕的判定箱再次顯示在正確的位置上了。[4] | |||
| 1.13 | 17w47a | 鐵砧和漏斗的輪廓箱更符合其模型。 | |||
| 釀造台的中軸也計入判定箱。[5] | |||||
| 柵欄在直角方向的分支的輪廓箱現在是正確的L形、T形或十字形。[6] | |||||
| 仙人掌現在有一個正確的長方體輪廓箱。[7] | |||||
| 包含多個藤蔓的方塊輪廓箱最佳化。 | |||||
| 玻璃片和鐵柵欄在分支時有更明確的輪廓箱。 | |||||
| 終界傳送門框架的輪廓箱現在可以正確地囊括終界之眼。 | |||||
| 活塞和荷葉的輪廓箱已被變更。 | |||||
| 牆的碰撞箱已被正確地做成凹形。[8] | |||||
| 1.14 | 18w48a | 現在床的輪廓箱更符合其視覺形狀。 | |||
| 19w13a | 鍋釜的輪廓箱現在更符合模型,允許它下面的方塊被選取。[9] | ||||
| 1.16 | 20w10a | 火現在有一個輪廓箱(靈魂火亦如此),[10]使它更符合其他方塊。在此之前,火根本沒有輪廓箱,破壞它需要瞄準下面的方塊,這也允許它在創造模式時,不會被手持劍或三叉戟的玩家破壞。這還阻止其方塊狀態在除錯畫面中讀取或透過除錯棒修改。 | |||
| 20w18a | 紅石線的輪廓箱現在更接近其視覺形狀。例如,紅石線在不同方向上的分支會導致其輪廓箱自身在所述方向上分支,[11]對應了柵欄、玻璃片、鐵柵欄和牆的行為。並且,如果攀升至一個方塊的側面,紅石粉的垂直部分現在也可以被選取。[12] | ||||
| 1.17 | 20w49a | 鐘乳石的輪廓箱整體寬度縮減了1⁄8格。 | |||
實體
邊界箱
| Java版 | |||||
|---|---|---|---|---|---|
| 1.4.4 | 1.4.3 | 現在可以透過F3 + B來查看實體的判定箱,此時判定箱為白色不透明的,且無法與實際輪廓相符。 | |||
| 1.7.2 | 1.7.1 | 在視覺上對實體判定箱做調整,以使其變得更符合直覺。 | |||