判定箱
判定箱(Hitbox)定義方塊或實體的物理「邊界」(或其近似值),用於計算碰撞和選取。
和方塊模型不同的是,所有方塊和大部分實體的判定箱都是硬編碼的,無法通過數據包修改,只能通過Mod改變。
方塊[編輯 | 編輯原始碼]
輪廓箱[編輯 | 編輯原始碼]
輪廓箱(Outline Box)會在玩家看向指定方塊時顯示。當十字準星指向方塊時,會有黑框線描出該方塊的輪廓。
一個方塊的輪廓箱並不是固定的,在不同的方塊狀態下可能具有不同的輪廓箱。例如上半磚和下半磚屬於同一種方塊,但具有不同的輪廓箱。液體不具有輪廓箱。
碰撞箱[編輯 | 編輯原始碼]
碰撞箱(Collision Box)主要用於管理與實體間的碰撞。
並非所有方塊都具有碰撞箱。下列這些方塊沒有碰撞箱,實體可以自由穿過它們:
具有碰撞箱的方塊其碰撞箱預設與輪廓箱形狀相同,但下列這些方塊碰撞箱與輪廓箱不同:
竹:碰撞箱寬度為3⁄16格,而非輪廓箱的6⁄16格或10⁄16格。
大懸葉草:只有上方的葉子部分有碰撞箱,下面的莖沒有碰撞箱。
仙人掌:碰撞箱高度為15⁄16格,而非輪廓箱的1格。
堆肥桶:在Java版中碰撞箱始終與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.5 | 1 1⁄2 | 24 | ![]() |
![]() ![]() | |||
0.9375 | 15⁄16 | 15 | ![]() ![]() ![]() ![]() |
![]() ![]() | |||
0.875 | 7⁄8 | 14 | ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() | |||
0.8125 | 13⁄16 | 13 | 無終界之眼的![]() ![]() ![]() |
up=false 的![]() ![]() ![]() ![]() ![]() | |||
0.75 | 3⁄4 | 12 | ![]() ![]() ![]() |
![]() ![]() | |||
0.6875 | 11⁄16 | 11 | ![]() ![]() ![]() |
0.625 | 5⁄8 | 10 | ![]() |
![]() ![]() ![]() | |||
0.59375 | 19⁄32 | 9 1⁄2 | ![]() |
0.5625 | 9⁄16 | 9 | ![]() ![]() ![]() ![]() ![]() |
0.5 | 1⁄2 | 8 | ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | |||
0.4375 | 7⁄16 | 7 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
0.375 | 3⁄8 | 6 | ![]() ![]() ![]() |
![]() ![]() ![]() | |||
0.3125 | 5⁄16 | 5 | ![]() ![]() age 為0的![]() |
0.25 | 1⁄4 | 4 | ![]() |
![]() ![]() ![]() | |||
0.1875 | 3⁄16 | 3 | ![]() ![]() |
0.125 | 1⁄8 | 2 | ![]() ![]() ![]() ![]() |
![]() ![]() ![]() | |||
0.09375 | 3⁄32 | 11⁄2 | ![]() |
0.0625 | 1⁄16 | 1 | ![]() ![]() ![]() |
如果一個方塊的碰撞箱不能和一個與座標網格對齊的1×1×1的正方體完全重合,那麼無論碰撞箱大小如何,這個碰撞箱都被認為是不完整的,而這個方塊就是碰撞箱不完整方塊。絕大多數碰撞箱不完整的方塊都不是紅石導體,也不能使生物窒息。生物也不能自然生成在任何碰撞箱完整的方塊內部。
在Java版中,大多數高度為0.375、0.625、0.75、0.875的方塊和方塊碰撞箱包含這幾個高度的平面的方塊在碰撞計算時內部會產生多個平面,可以讓實體在這些平面上停留而不是直接穿過方塊。這些平面並不是真正的方塊碰撞箱,而是計算過程中產生的錯誤計算面。[1]
互動箱[編輯 | 編輯原始碼]

互動箱(Interaction Box)用於處理選中方塊後的選擇方向。如果一個方塊可以被選中(由輪廓箱判定),並且視線與方塊的互動箱相交,那麼選擇方向不取決於輪廓箱與視線的碰撞面,而是取決於互動箱與視線的碰撞面。
絕大多數方塊的互動箱都不存在,選擇方向只取決於輪廓箱。只有下方這些方塊具有互動箱:
鍋:鍋內的空間是互動箱。
堆肥桶:堆肥桶的互動箱是整個方塊。
漏斗:漏斗的互動箱與方塊狀態有關。當漏斗指向下方,互動箱為漏斗內部的空間;當漏斗指向某一個水平方向,互動箱位於對應漏斗方向上,覆蓋漏斗的指向部分。
棚架:棚架的互動箱是整個方塊。
方塊支撐形狀[編輯 | 編輯原始碼]

方塊支撐形狀(Block Support Shape)主要用於判斷一個方塊表面是否可以附着另一個依附型方塊。
方塊支撐形狀預設與碰撞箱相同,但下列方塊不同:
吊牌:方塊支撐形狀與輪廓箱相同。
歌萊花:方塊支撐形狀在各個方向上都比輪廓箱小1⁄16格。
閘門:打開時方塊支撐形狀不存在,關閉時為碰撞箱下方縮減5⁄16格。
樹葉:方塊支撐形狀不存在。
泥:方塊支撐形狀為完整的方塊。
界伏盒:關閉時方塊支撐形狀為完整的方塊,開啟時方塊支撐形狀向對應方向拉伸。
雪:方塊支撐形狀與輪廓箱相同。
靈魂砂:方塊支撐形狀為完整的方塊。
方塊支撐形狀和一個與座標網格對齊的1×1×1正方體的某個面重合的所有面的併集就是這個方塊在某個方向上的支撐面。
- 如果某個方向上的支撐面是一個1×1的正方形,則這個面完整。
- 如果某個方向上的中心1⁄8×1⁄8的正方形都屬於支撐面,則這個面中心完整。
- 如果某個方向上的寬度為1⁄8的邊緣都屬於支撐面,則這個面邊緣完整。
- 如果一個方塊的所有支撐面都完整,則這個方塊是方塊支撐形狀完整的方塊,簡稱完整方塊,否則為不完整方塊。
例如漏斗的上表面是不完整的,因為上表面中間缺失了3⁄4×3⁄4的區域,同時它的上表面中心不完整,但邊緣完整,而漏斗這個方塊是不完整方塊。
依附型方塊判斷支撐面的類型來決定它們是否能依附於要依附方塊的某個面上。直立的火炬、燈籠等方塊只能放置於上表面中心完整的方塊上;紅石比較器、紅石中繼器、路軌等方塊只能放置於上表面邊緣完整的方塊上;按鈕、拉桿等方塊只能放置於完整的支撐面上。
絕大多數上表面不完整的方塊上方不能生成任何生物。
遮擋形狀[編輯 | 編輯原始碼]
遮擋形狀(Occlusion Shape)主要用於計算亮度和方塊的某一面是否可見。
遮擋形狀預設與輪廓箱相同,但下列方塊不同:
欄杆:欄杆的遮擋形狀比輪廓箱高度更低、寬度更小,並且下方是空的。
閘門:閘門的遮擋形狀取決於它是否連接到了其他的欄杆或牆上。如果沒有連接,遮擋形狀會更高;如果連接了其他的欄杆或牆,那麼遮擋形狀也會相應降低。
講台:講台的遮擋形狀只包含下面的底座和支柱,上面的桌面不屬於遮擋形狀。
滴水石柱:滴水石柱沒有遮擋形狀。
幼雪:幼雪沒有遮擋形狀。
沉靈尖嘯器:沉靈尖嘯器的遮擋形狀與碰撞箱相同。
生物頭顱:生物頭顱沒有遮擋形狀。
如果一個方塊的遮擋形狀不能和一個與座標網格對齊的1×1×1的正方體完全重合,那麼無論遮擋形狀大小如何,這個遮擋形狀都被認為是不完整的,而這個方塊就是遮擋形狀不完整方塊。所有可以遮擋光線且遮擋形狀完整的方塊都是完全固體繪製方塊。
與方塊支撐形狀類似,遮擋形狀也有對應遮擋面的屬性。它主要用於剔除方塊多餘的繪製面。如果一個方塊的某個繪製面被另一個方塊的遮擋面完全遮擋,那麼這個繪製面就不會繪製。
視覺遮擋形狀[編輯 | 編輯原始碼]
視覺遮擋形狀(Visual Shape)用於判斷視角能否透過方塊觀察到自身,確定第三人稱視角的最佳位置。
視覺遮擋形狀預設與碰撞箱相同,但下列這些方塊是例外:
玻璃、
染色玻璃、
遮光玻璃:所有類型的玻璃都不存在視覺遮擋形狀。
欄杆:欄杆的視覺遮擋形狀與輪廓箱相同。
鐵欄杆:鐵欄杆沒有視覺遮擋形狀。
泥:泥的視覺遮擋形狀是一個完整的方塊。
幼雪:幼雪沒有視覺遮擋形狀。
雪:雪的視覺遮擋形狀與輪廓箱相同。
靈魂砂:靈魂砂的視覺遮擋形狀是一個完整的方塊。
實體[編輯 | 編輯原始碼]
所有實體的判定箱都是一個以正方形為底的長方體,無視實體的實際形狀。比如,女巫的判定箱不包括頂部的帽子,而凋零怪的判定箱不包括兩側的頭。終界龍除本體外還有8個身體構件,所以終界龍本質上是多個實體的組合,它的判定箱也由這些子實體組合而成。
邊界箱[編輯 | 編輯原始碼]
在Java版中,實體的邊界箱(Boundary Box)可以通過F3 + B除錯快捷方式查看。當玩家選中實體的邊界箱後才能與其互動。同時,實體的邊界箱也是它們的碰撞箱。
視平線[編輯 | 編輯原始碼]
視平線(Eye Level)具有紅色的輪廓,且只會出現在實體的判定箱中。視平線負責判定窒息和溺水傷害,當一個生物的視平線處於窒息方塊或水中時,該生物就會受到窒息傷害或因耗盡氧氣而溺水。當視平線位於水或熔岩中時,熒幕也會產生不同的繪製效果。
歷史[編輯 | 編輯原始碼]
方塊[編輯 | 編輯原始碼]
碰撞箱[編輯 | 編輯原始碼]
請協助補充相關內容的描述,討論頁可能有更多細節。
Java版 | |||||||
---|---|---|---|---|---|---|---|
1.4.4 | 1.4.3 | 牆現在有了自己的碰撞箱了,以前它的碰撞箱與欄杆是相同的。[2] | |||||
1.5 | 13w06a | 欄杆的碰撞箱已被更改,凹型的角落現在有了更貼近它們形狀的判定箱,而不是以前會產生隱形部分的凸型判定箱。 | |||||
1.9 | 15w38a | 修復了大量有關於碰撞箱的錯誤。[3][4][5] | |||||
1.13 | 17w47a | 牆的碰撞箱已被正確地做成凸形。[6] |
輪廓與互動箱[編輯 | 編輯原始碼]
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 | 蛋糕的判定箱再次顯示在正確的位置上了。[7] | |||||
1.13 | 17w47a | 鐵砧和漏斗的輪廓箱更符合其模型。 | |||||
釀造台的中軸也計入判定箱。[8] | |||||||
欄杆在直角方向的分支的輪廓箱現在是正確的L形、T形或十字形。[9] | |||||||
仙人掌現在有一個正確的長方體輪廓箱。[10] | |||||||
包含多個藤蔓的方塊輪廓箱最佳化。 | |||||||
玻璃片和鐵欄杆在分支時有更明確的輪廓箱。 | |||||||
終界傳送門框的輪廓箱現在可以正確地囊括終界之眼。 | |||||||
活塞和荷葉的輪廓箱已被更改。 | |||||||
牆的碰撞箱已被正確地做成凹形。[11] | |||||||
1.14 | 18w48a | 現在牀的輪廓箱更符合其視覺形狀。 | |||||
19w13a | 鍋的輪廓箱現在更符合模型,允許它下面的方塊被選取。[12] | ||||||
1.16 | 20w10a | 火現在有一個輪廓箱(靈魂火亦如此),[13]使它更符合其他方塊。在此之前,火根本沒有輪廓箱,破壞它需要瞄準下面的方塊,這也允許它在創造模式時,不會被手持劍或三叉戟的玩家破壞。這還阻止其方塊狀態在除錯熒幕中讀取或通過除錯棒修改。 | |||||
20w18a | 紅石線的輪廓箱現在更接近其視覺形狀。例如,紅石線在不同方向上的分支會導致其輪廓箱自身在所述方向上分支,[14]對應了欄杆、玻璃片、鐵欄杆和牆的行為。並且,如果攀升至一個方塊的側面,紅石粉的垂直部分現在也可以被選取。[15] | ||||||
1.17 | 20w49a | 滴水石柱的輪廓箱整體寬度縮減了1⁄8格。 |
實體[編輯 | 編輯原始碼]
邊界箱[編輯 | 編輯原始碼]
Java版 | |||||||
---|---|---|---|---|---|---|---|
1.4.4 | 1.4.3 | 現在可以通過F3 + B來查看實體的判定箱,此時判定箱為白色不透明的,且無法與實際輪廓相符。 | |||||
1.7.2 | 1.7.1 | 在視覺上對實體判定箱做調整,以使其變得更符合直覺。 |
參見[編輯 | 編輯原始碼]
參考[編輯 | 編輯原始碼]
- ↑ MC-153191
- ↑ MC-1332 — 錯誤狀態為「已修復」。
- ↑ MC-1635 — 錯誤狀態為「已修復」。
- ↑ MC-73302 — 錯誤狀態為「已修復」。
- ↑ MC-1720 — 錯誤狀態為「已修復」。
- ↑ MC-2666 — 錯誤狀態為「已修復」。
- ↑ MC-106300 — 錯誤狀態為「已修復」。
- ↑ MC-4504 — 錯誤狀態為「已修復」。
- ↑ MC-12000 — 錯誤狀態為「已修復」。
- ↑ MC-59610 — 錯誤狀態為「已修復」。
- ↑ MC-2666 — 錯誤狀態為「已修復」。
- ↑ MC-129205 — 錯誤狀態為「已修復」。
- ↑ MC-163655 — 錯誤狀態為「已修復」。
- ↑ MC-137336 — 錯誤狀態為「已修復」。
- ↑ MC-153508 — 錯誤狀態為「已修復」。