本站文本內容除另有聲明外,轉載時均必須註明出處。(詳情…)本站文本內容除另有聲明外,轉載時均必須註明出處。(詳情…)中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!中文Minecraft Wiki是完全公開的。請勇於擴充與修正內容!Minecraft中文Wiki微博正在更新!或許有興趣去看看?Minecraft中文Wiki微博正在更新!或許有興趣去看看?想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。翻譯或創建頁面之前,不妨看看譯名標準化與Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標準化與Wiki條例頁面。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。
各位用戶:為了讓我們能更好了解您的需求,提供更優良的服務,請幫助我們填寫一份問卷。編者問卷、讀者問卷(需要花費7分鐘左右)
模型
方塊模型 用於顯示遊戲裏的所有方塊,而 物品模型 用於顯示在玩家手上、頭上(頭盔欄)、地上、物品欄里、物品展示框中和盔甲座上的物品。 因為某些方塊有不同的變種, 方塊狀態 用作連接對應狀態的模型。每個模型和方塊狀態擁有各自的 .json
格式文件。用在物品欄的顯示狀態也在這些文件中定義。
目錄
方塊狀態[編輯 | 編輯原始碼]
某些方塊擁有不同的變種(例如可以開關的門),因此每個方塊有各自的方塊狀態文件來列出所有存在的變種並連接到對應的模型。方塊也可以同時由不同的模型組合,稱為「multipart」。然後模型會根據當前方塊的狀態而被調用。
這些文件儲存在assets/minecraft/blockstates
中。這些文件會根據名稱來直接使用, 因此不同名字的方塊狀態文件不會影響其他的方塊狀態文件。
根標籤
variants:變種列表,列出此方塊的所有變種。
A variant:變種的名字,由逗號分隔相關的方塊狀態組成。只有一個變種的方塊狀態使用"normal"
為變種名。每個變種可以擁有單個模型或者模型數組以及它的屬性。如果被設定為數組,將會通過選項在組內隨機選擇一個模型,每個選項都被指定了不同的
標籤。
A model: 包含模型的屬性,如果不止一個模型用於同一個變種。替代所有在遊戲中指定的模型。
model:指定模型文件的路徑,起始於assets/minecraft/models/block
。
x:模型相對於x軸的旋轉,90度增量。
y:模型相對於y軸的旋轉,90度增量。
uvlock:可為true
或false
(預設)。設定為true
將鎖定方塊貼圖的旋轉。這樣貼圖將不會在使用上面的
x和
y標籤時跟着方塊旋轉。
weight:設定模型在遊戲中被選用的機率,預設為1(=100%)。如果多於一個模型被用作同一個變種,每個模型被選中的機率將會為此模型的weight除以所有模型weight的總和。(例如,三個weight分別為1,1和2的模型。他們weight的總和為4(1+1+2)。這三個模型被調用的機率則分別為1/4,1/4和2/4,也可以說為25%,25%和50%。)
model:指定模型文件的路徑,起始於assets/minecraft/models/block
。
x:模型相對於x軸的旋轉,90度增量。
y:模型相對於y軸的旋轉,90度增量。
uvlock:可為true
或false
(預設)。設定為true
將鎖定方塊貼圖的旋轉。這樣貼圖將不會在使用上面的
x和
y標籤時跟着方塊旋轉。
multipart:取代了
variants,基於方塊狀態屬性以來組合模型。
A case確定一種情況,並決定應用在這種情況下的模型。
when:為了使模型被應用而必須滿足的情況的列表。當未設定時,模型總是應用的。
OR:如果該標籤包含了的情況中的任意一個情況返回true時匹配。不能同時設定其他情況。
A condition當方塊必須匹配為返回true時的情況列表。
A case在單一情況下方塊匹需配的方塊狀態。它可以設為一個列表,由|
來分隔,以便允許多個值匹配。
A case在單一情況下方塊匹需配的方塊狀態。它可以設為一個列表,由|
來分隔,以便允許多個值匹配。不能和
OR標籤同時設定。
apply:決定了模型的應用及其屬性。可以擁有單一模型或者模型數組以及它的屬性。如果被設定為數組,將通過給出的選項隨機選擇一個模型,每個選項都被指定了不同的
標籤。
A model:包含模型的屬性,如果不止一個模型用於同一個變種。替代所有在遊戲中指定的模型。
model:指定模型文件的路徑,起始於assets/minecraft/models/block
。
x:模型相對於x軸的旋轉,90度增量。
y:模型相對於y軸的旋轉,90度增量。
uvlock:可為true
或false
(預設)。設定為true
將鎖定方塊貼圖的旋轉。這樣貼圖將不會在使用上面的
x和
y標籤時跟着方塊旋轉。
weight:設定模型在遊戲中被選用的機率,預設為1(=100%)。如果多於一個模型被用作同一個變種,每個模型被選中的機率將會為此模型的weight除以所有模型weight的總和。(例如,三個weight分別為1,1和2的模型。他們weight的總和為4(1+1+2)。這三個模型被調用的機率則分別為1/4,1/4和2/4,也可以說為25%,25%和50%。)
model:指定模型文件的路徑,起始於assets/minecraft/models/block
。
x:模型相對於x軸的旋轉,90度增量。
y:模型相對於y軸的旋轉,90度增量。
uvlock:可為true
或false
(預設)。設定為true
將鎖定方塊貼圖的旋轉。這樣貼圖將不會在使用上面的
x和
y標籤時跟着方塊旋轉。
"uvlock": true
|
"uvlock": false
|
![]() |
![]() |
示例:火把[編輯 | 編輯原始碼]
火把有若干個變種: 它能被插在地上或牆上,而在牆上時火把還能朝向四個不同方向。以下這個示例取自文件 wall_torch.json
,你能在assets/minecraft/blockstates
路徑下找到該文件。
File: wall_torch.json { "variants": { "facing=up": { "model": "normal_torch" }, "facing=east": { "model": "normal_torch_wall" }, "facing=south": { "model": "normal_torch_wall", "y": 90 }, "facing=west": { "model": "normal_torch_wall", "y": 180 }, "facing=north": { "model": "normal_torch_wall", "y": 270 } } }
"facing=up"
指的是火把立在地上的那個變種,該變種連接到與它對應的模型 "normal_torch"
。而火把又能被插在方塊的四個側面上,所以自然又需要四個不同的變種,每個側面都得有一個變種。這四個變種分別叫作"facing=east"
,"facing=west"
,"facing=south"
以及 "facing=north"
.。四個變種的模型都用的是 "normal_torch_wall"
, 但這個模型因 "y"
設定的數值而在y軸方向上旋轉了幾個90度,這樣被插在不同側面上的火把看起來才都十分協調。
示例:草地[編輯 | 編輯原始碼]
草地有兩個變種,第一個變種有四個不同的模型。以下這個示例取自文件 grass.json
,你能在 assets/minecraft/blockstates
路徑下找到該文件。
File: grass.json { "variants": { "snowy=false": [ { "model": "grass_normal" }, { "model": "grass_normal", "y": 90 }, { "model": "grass_normal", "y": 180 }, { "model": "grass_normal", "y": 270 } ], "snowy=true": { "model": "grass_snowed" } } }
不被雪所覆蓋的草地 ("snowy=false"
) 擁有四個模型, 這四個模型都使用的是同一個方塊模型,但模型被旋轉了幾個90度。因為有四個模型而其中任何一個都沒用上 weight
標籤,所以在你放置一個(無雪的)草地的時候,每個模型都有25%的機率被使用,也就是說這個草地朝向東南西北任何一個方向都有可能。
示例:橡木柵欄[編輯 | 編輯原始碼]
橡木柵欄使用了 multipart
這個格式.。以下這個示例取自 assets/minecraft/blockstates
路徑下的文件 fence.json
。
{ "multipart": [ { "apply": { "model": "oak_fence_post" }}, { "when": { "north": "true" }, "apply": { "model": "oak_fence_side", "uvlock": true } }, { "when": { "east": "true" }, "apply": { "model": "oak_fence_side", "y": 90, "uvlock": true } }, { "when": { "south": "true" }, "apply": { "model": "oak_fence_side", "y": 180, "uvlock": true } }, { "when": { "west": "true" }, "apply": { "model": "oak_fence_side", "y": 270, "uvlock": true } } ] }
第一個模型,柵欄樁(the fence post),是一直使用着的,而其他模型只在某些情況下使用。柵欄邊( the sides of the fence)只有在其他方塊與該柵欄相鄰時才出現 。 可柵欄邊是有朝向的,於是柵欄邊的模型就被旋轉了幾個90度來用,這樣的話所需的模型數量就能減至兩個了,一個是柵欄樁,一個是柵欄邊。與在1.8中用到的5個模型、16個變種相比,這算是個相當大的改進了。
示例:紅石線[編輯 | 編輯原始碼]
紅石線模型也使用了 multipart
這個格式。以下這個示例取自 assets/minecraft/blockstates
路徑下的文件 redstone_wire.json
。
{ "multipart": [ { "when": { "OR": [ {"north": "none", "east": "none", "south": "none", "west": "none"}, {"north": "side|up", "east": "side|up" }, {"east": "side|up", "south": "side|up" }, {"south": "side|up", "west": "side|up"}, {"west": "side|up", "north": "side|up"} ]}, "apply": { "model": "redstone_dot" } }, { "when": { "OR": [ { "north": "side|up" }, { "north": "none", "east": "none", "south": "side|up", "west": "none" } ]}, "apply": { "model": "redstone_side0" } }, { "when": { "OR": [ { "south": "side|up" }, { "north": "side|up", "east": "none", "south": "none", "west": "none" } ]}, "apply": { "model": "redstone_side_alt0" } }, { "when": { "OR": [ { "east": "side|up" }, { "north": "none", "east": "none", "south": "none", "west": "side|up" } ]}, "apply": { "model": "redstone_side_alt1", "y": 270 } }, { "when": { "OR": [ { "west": "side|up" }, { "north": "none", "east": "side|up", "south": "none", "west": "none" } ]}, "apply": { "model": "redstone_side1", "y": 270 } }, { "when": { "north": "up" }, "apply": { "model": "redstone_up" } }, { "when": { "east": "up" }, "apply": { "model": "redstone_up", "y": 90 } }, { "when": { "south": "up" }, "apply": { "model": "redstone_up", "y": 180 } }, { "when": { "west": "up" }, "apply": { "model": "redstone_up", "y": 270 } } ] }
紅石粉的模型是動態創建的。第一個條件決定了紅石粉東、南、西、北四個方向都不被連接時,或當兩個不相對的面為up
或 side
時,redstone_dot
模型才被使用。
最後一種情況只檢查一個條件,它檢查west
是否為up
,如果是,則應用模型 redstone_up
。
方塊模型[編輯 | 編輯原始碼]
資料夾assets/minecraft/models/block
保存所有變種指定的模型文件。 可以更改文件的名稱,但必須對應於方塊狀態文件中使用的名稱。
根標籤
parent:從assets/minecraft/models
引用其他模型。如果同時設定了"parent"
和"elements"
,此模型的"elements"
標籤將覆蓋父類模型""parent
下的"elements"
標籤。- 可以設定為
"builtin/generated"
以使用從指定圖標創建的模型。請注意,僅支持一層,且只能通過方塊狀態文件來實現旋轉。
- 可以設定為
ambientocclusion:是否使用環境遮擋,預設為true
。如果設定了"parent"
,則其父模型的ambientocclusion
標籤會覆蓋該模型的ambientocclusion
標籤。[1]
display: 保存物品模型於不同位置下的顯示設定。
thirdperson_righthand, thirdperson_lefthand, firstperson_righthand, firstperson_lefthand, gui, head, ground, or fixed: 物品模型於不同位置下的顯示設定。設定分別為旋轉,位移和縮放。 fixed 指的是當被擺放在物品展示框上時,其他的顯示位置如同其名。值得注意的是位移比旋轉優先應用模型。
rotation: 根據[x, y, z]
格式,使模型相對於對應軸進行旋轉。
translation: 根據[x, y, z]
格式,使模型相對於對應軸進行移動。若數值大於80,數值則為80。若數值小於-80,數值則為-80。
scale: 根據[x, y, z]
格式,使模型相對於對應軸進行縮放。若數值大於4,數值則為4。
textures: 模型材質的路徑,起始於assets/minecraft/textures
,也可以是另一個材質變量。
particle: 模型的粒子材質。如果你在地獄傳送門,將會使用此材質。注意:所有非模型的方塊的粒子破壞效果為硬編碼。
A texture variable: 定義一個貼圖的名字和此貼圖的文件路徑。
elements: 包含模型的所有"An element"
,這些元素只能為立方體形態。如果同時設定了"parent"
和"elements"
,此模型的"elements"
標籤將覆蓋父類模型"parent"
下的"elements"
標籤。
An element
from: 根據[x, y, z]
格式,指定一個方塊的起始點。數值必須為-16到32之間。
to: 根據[x, y, z]
格式,指定一個方塊的結束點。數值必須為-16到32之間。
rotation: 此"element"
的旋轉設定。
origin:[x, y, z]
所旋轉的原點/中心點,預設為[8, 8, 8]
。
axis: 旋轉的一個且只能為一個軸,可以為"x"
,"y"
或"z"
。
angle: 旋轉的角度。可以為45到-45度,以22.5度為增量。預設為0。
rescale: 是否縮放為整塊。可以為"true"
或"false"
。預設為"false"
。
shade: 是否渲染陰影。可以為"true"
或"false"
。預設為"true"
。
faces: 包含單個"element"
的所有面。若有一個面沒有定義,則不渲染此面。
down, up, north, south, west or east: 包含指定面的所有屬性。
uv: 根據[x1, y1, x2, y2]
格式,指定所使用的貼圖區域。如果沒指定,則預設根據此element的xyz坐標設定。若此element低於0或高於16,則指定的預設貼圖將會不一致。若x1
和x2
坐標對調,貼圖也將會被翻轉(例:從原本的0, 0, 16, 16
變為16, 0, 0, 16
)。UV為可設定項,若未指定,則會自動根據element的位置生成。
texture: 指定所使用的貼圖變量,變量前加上#
。貼圖變量於"A texture variable"
定義。
cullface: 指定當前面在指定的面被方塊接觸時,是否不渲染。指定的面可以為:down
,up
,north
,south
,west
, 或east
。同時當前面的亮度計算等同於指定的面,若未設定,預設為side。
rotation: 根據特定的角度旋轉貼圖。可以為0,90,180或270。預設為0。旋轉不會影響到uv所指定的貼圖部分,而是此部分的旋轉角度。
tintindex: 是否使用硬編碼着色貼圖。預設不使用着色和任何着色數值。注意只有特定方塊可以着色,其他方塊設定此項無效。
示例:直立的火把[編輯 | 編輯原始碼]
為簡單起見,此示例只介紹直立的火把,代碼由儲存於assets/minecraft/models/block
中的文件torch.json
和normal_torch.json
定義。
File: torch.json { "ambientocclusion": false, "textures": { "particle": "#torch" }, "elements": [ { "from": [ 7, 0, 7 ], "to": [ 9, 10, 9 ], "shade": false, "faces": { "down": { "uv": [ 7, 13, 9, 15 ], "texture": "#torch" }, "up": { "uv": [ 7, 6, 9, 8 ], "texture": "#torch" } } }, { "from": [ 7, 0, 0 ], "to": [ 9, 16, 16 ], "shade": false, "faces": { "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }, "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" } } }, { "from": [ 0, 0, 7 ], "to": [ 16, 16, 9 ], "shade": false, "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" }, "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#torch" } } } ] }
此文檔被用於創建火把的模型,此模型被普通火把和紅石火把使用。因此"elements"
標籤下創建了三個element,或者說立方體。因為只定義了兩個面,所以每個立方體只有兩個面會在遊戲裏被渲染。"uv"
指定了材質所使用的區域。材質變量"#torch"
用於指定方塊的粒子貼圖和立方體定義的材質,雖然這裏的"#torch"
還未定義路徑。
File: normal_torch.json { "parent": "block/torch", "textures": { "torch": "blocks/torch_on" } }
此文件為普通火把的地上擺放模型。會先讀取並繼承其父類文件"parent"
(torch.json)下的定義。然後給予父類文件下材質路徑定義,定義為普通火把的材質路徑(定義路徑時不需要#
)。自此,這個普通火把的模型就為父類定義的模型,而材質和粒子貼圖則為自己定義的路徑材質。
示例: 標準方塊[編輯 | 編輯原始碼]
此示例為Minecraft里大部分方塊的基本結構。這部分方塊使用同一個基本模型,以此模型定義他們的材質,如上例子。此cube.json
示例取自assets/minecraft/models/block
。
- cube.json
{
"elements": [
{
"from": [ 0, 0, 0 ],
"to": [ 16, 16, 16 ],
"faces": {
"down": { "texture": "#down", "cullface": "down" },
"up": { "texture": "#up", "cullface": "up" },
"north": { "texture": "#north", "cullface": "north" },
"south": { "texture": "#south", "cullface": "south" },
"west": { "texture": "#west", "cullface": "west" },
"east": { "texture": "#east", "cullface": "east" }
}
}
]
}
上文中提到過的將不會再朗讀。使用"cullface": "down"
會在方塊底面有相鄰方塊時,不渲染此面。其他幾個面同理。
示例:樹苗[編輯 | 編輯原始碼]
此示例為所有樹苗使用的基本結構(無需為樹苗指定材質)。此模型為cross.json
,材質(假設)就會在oak_sapling.json
里被定義。這兩個文件都存放在assets/minecraft/models/block
資料夾下。
- cross.json
{
"ambientocclusion": false,
"textures": {
"particle": "#cross"
},
"elements": [
{
"from": [ 0.8, 0, 8 ],
"to": [ 15.2, 16, 8 ],
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
"shade": false,
"faces": {
"north": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" },
"south": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }
}
},
{
"from": [ 8, 0, 0.8 ],
"to": [ 8, 16, 15.2 ],
"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
"shade": false,
"faces": {
"west": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" },
"east": { "uv": [ 0, 0, 16, 16 ], "texture": "#cross" }
}
}
]
}
一個普通的樹苗形狀,為兩個element片旋轉45度。因此要把原點和指定的旋轉軸設定為對應的數值,然后角度設為45,並把"rescale"
設定為true
。"rescale": true
的作用是讓旋轉之後的貼圖拉伸為旋轉前的寬度(見下圖)。
"rescale": true
|
"rescale": false
|
![]() |
![]() |
物品模型[編輯 | 編輯原始碼]
因為物品模型沒有變種,所以沒有設定變種的必要。文件路徑assets/minecraft/models/item
下存放着所有的物品模型文件。文件的名字為硬編碼,因此不應修改文件名。
根標籤
parent:從assets/minecraft/models
引用其他模型。如果同時設定了"parent"
和"elements"
,此模型的"elements"
標籤將覆蓋父類模型""parent
下的"elements"
標籤。
textures:模型材質的路徑,起始於assets/minecraft/textures
,也可以是另一個材質變量。
elements:包含模型的所有元素。可以只有一種立方體形式。不可以與"parent"
設定共存。
一個元素。
from:根據[x, y, z]
格式,指定一個方塊的起始點。數值必須為-16到32之間。
to:根據[x, y, z]
格式,指定一個方塊的結束點。數值必須為-16到32之間。
rotation:定義元素的旋轉。
origin:根據坐標[x, y, z]
設定旋轉中心,預設為[8, 8, 8]
。
axis:指定旋轉方向,可以是"x"
、"y"
或"z"
。
angle:指定旋轉角度,可以是在45和-45之間,預設為0。
faces:該立方的所有面。若有一個面沒有定義,則不渲染此面。
方向:該標籤的名稱可以是down、up、north、south、west或 east。包含指定面的參數狀態。
uv:定義需要使用材質的區域,根據坐標[x1, y1, x2, y2]
。如果未設定,它的預設值等於元素的xyz位置。如果UV延伸到0以下或16以上,材質的行為將不一致。如果交換了x或y值,材質就會朝這個方向翻轉。UV是可選的,如果沒有提供,它將根據元素的位置自動生成。
texture:以材質變量的形式指定材質,該材質變量的前綴是#
。
cullface:指定當在指定位置有方塊接觸某個面時,是否不顯示這個面。這個面可以是:down
,up
,north
,south
,west
,或east
。這個標籤還會決定方塊的哪個面由光照水平照亮表面,如果未設定,預設為側面。
rotation:旋轉材質,90的倍數。
tintindex:確定是否使用硬編碼的着色索引來着色材質。預設情況下不着色,任何數字都會決定着色器使用顏色(除了生怪蛋,設定為0會使它使用第一種顏色,設定為1會使它使用第二種顏色)。請注意,只有特定的物品或物品的特定層(例如藥水)具有着色索引,其他物品不受影響。
display:模型顯示時的不同位置。
位置:該標籤名稱為thirdperson_righthand、thirdperson_lefthand、firstperson_righthand、firstperson_lefthand、gui、head、ground或fixed。設定模型顯示的位置。確保它的旋轉,平移和比例為指定的情況。fixed指的是物品框架,而其餘的是他們的名稱狀態。
rotation:指定模型的旋轉角度,根據坐標[x, y, z]
。
translation:指定模型的位置,根據坐標[x, y, z]
。如果值大於80,會作為80處理,小於-80時則看作-80。
scale:指定模型的尺寸,根據[x, y, z]
。當值大於4時,效果等同於4。
overrides:指定基於物品標籤的顯示不同模型的情況。
某一種情況。
predicate指定情況。
一種情況:一個情況標籤。參見物品標籤查閱所有可用的標籤。
model:當符合情況時的模型路徑,以assets/命名空间/models/
開始。
物品標籤[編輯 | 編輯原始碼]
有些物品可以使用額外的標籤進行模型覆蓋的判斷。以下為可用的標籤列表。
"angle"
:角度,判斷指南針的角度,以十進制小於1的數值表達。"blocking"
:格擋,判斷盾牌是否為格擋狀態。格擋時為1
。"broken"
:破損,判斷鞘翅是否破損。破損時為1
。"cast"
:拋擲,判斷釣竿是否已拋出。已拋出時為1
。"cooldown"
:冷卻,判斷終界珍珠/歌萊果的剩餘冷卻時間,以十進制,0到1之間的數值表達。"damage"
:損傷值,判斷擁有耐久值的物品的已受損程度,以十進制,0到1之間的數值表達。"damaged"
:受損, 判斷擁有耐久值的物品是否為已受損狀態。已受損時為1
。若物品擁有Unbreakable標籤時,此數值為0
,且"damage"
標籤的數值可以不為0。"lefthanded"
:指定被左手玩家使用的模型,會影響其在物品欄的顯示樣式,以及玩家被看見拿起或穿在身上時。"pull"
:拉伸程度,判斷弓被拉伸的程度,以十進制,0到1之間的數值表達。沒被拉伸時為0
,被完全拉伸時為1
。"pulling"
:拉伸,判斷弓是否被拉伸。被拉伸時為1
。"time"
:時間,判斷時鐘的時間,以十進制,0到1之間的數值表達。"custom_model_data"
: 自定義模型,用於使用自定義模型的物品,用整數表達。
示例:火把[編輯 | 編輯原始碼]
此例子為火把為物品時的顯示模型。模型為存放在assets/minecraft/models/item
下的torch.json
。
- torch.json
{
"parent": "builtin/generated",
"textures": {
"layer0": "block/torch"
},
"display": {
"thirdperson_righthand": {
"rotation": [ -90, 0, 0 ],
"translation": [ 0, 1, -3 ],
"scale": [ 0.55, 0.55, 0.55 ]
},
"firstperson_lefthand": {
"rotation": [ 0, -135, 25 ],
"translation": [ 0, 4, 2 ],
"scale": [ 1.7, 1.7, 1.7 ]
}
}
}
因為"parent"
標籤下所使用的父類模型為"builtin/generated"
,所以物品形態的火把模型使用遊戲內置生成的2D圖像模型。而生成所使用的圖像由"layer0"
標籤定義,這個物品模型使用的貼圖同時也是方塊模型使用的貼圖。因為硬編碼規定火把只有一個圖層,所以給予火把添加額外的圖層是沒用的。此外,通過設定顯示屬性,可以保證此物品模型在不同情況下的正確顯示。由於火把戴在玩家頭上時使用的並不是物品模型而是方塊模型,所以沒必要定義戴在頭上時的顯示設定。遊戲會根據當前顯示的方式,讀取此顯示狀態下的各項設定,也就是旋轉的角度、移動造成的位置差、和縮放的大小。
示例:釣魚杆[編輯 | 編輯原始碼]
此處以1.9的釣竿為例。模型為存放在assets/minecraft/models/item
下的fishing_rod.json
。
{
"parent": "item/handheld_rod",
"textures": {
"layer0": "item/fishing_rod_uncast"
},
"overrides": [
{
"predicate": {
"cast": 1
},
"model": "item/fishing_rod_cast"
}
]
}
此釣竿的貼圖在非投擲的情況下為layer0所指向的貼圖路徑文件fishing_rod_uncast.png。當投擲出去後(cast
為1
時),改為使用"item/fishing_rod_cast"
路徑下的物品模型和此模型下的定義貼圖路徑"items/fishing_rod_cast"
。
歷史[編輯 | 編輯原始碼]
Java版 | |||||
---|---|---|---|---|---|
1.7.2 | 13w36a | 花現在被放置時像高草一樣不會位於方塊中間。 | |||
1.8 | 14w06a | 加入了自定義方塊模型 | |||
14w07a | 重寫模型格式。現在不僅有「平面」,還有「平面」和「立方體」。對象的旋轉也被限制為每個對象以22.5度遞增的方向旋轉。 | ||||
14w11a | 固體方塊上的光照不再使方塊內部的部分黑咕隆咚一片。 | ||||
14w11b | 通用方塊現在加載模型,而不是方案的形狀。 | ||||
April 12, 2014 | TheMogMiner發佈了關於模型格式即將更改的文章。 | ||||
14w17a | 將剩餘的大部分固體方塊轉換為模型格式。 | ||||
添加"rotateVariantTextures" 通過旋轉保存uv細節。 | |||||
14w25a | 從uv定義中移除方向屬性,並將其替換為顯式材質引用。"textureFacing" 被"texture" 參數替換,其前綴為哈希符號(#)。
| ||||
"useAmbientOcclusion"重命名為"ambientocclusion" | |||||
"rotateVariantTextures"重命名為"UV lock" | |||||
"cull"重命名為"cullface",指定選擇的相鄰面的反面 | |||||
旋轉變得更加冗長,現在它變得更清晰因為它只能發生在一個軸上。"cross" 模型的兩個面之一的旋轉現在是:"rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true },
| |||||
刪除了資料夾models/blocks/meshes ,模型文件現在存儲在models/block .
| |||||
添加了方塊狀態資料夾,並在models/block 存儲了以前在其中找到的模型選擇文件。
| |||||
模型格式現在支持自定義物品模型。 | |||||
14w27a | 用能夠更好地顯示內部數據的數據替換方塊狀態名。現在還沒有顯示某些方塊的所有數據。將在將來的版本中切換到使用實際存儲的數據,為此,數值化數據值將完全刪除,方塊狀態替代。 | ||||
14w27b | 方塊狀態文件現在支持隨機模型的模型數據。 | ||||
14w30a | 加入了物品模型"builtin/entity" . | ||||
1.8.2 | pre5 | 標籤"translation"現在被限制在-24到24之間。 | |||
標籤"scale"現在被限制在4或更少 | |||||
1.9 | 15w31a | UV現在是可選的,如果沒有提供,它將根據元素的位置自動生成。 | |||
不同的模型/材質對於不同的損害值,物品狀態,以及玩家是否是左撇子。這種方法適用於指南針、時鐘和任何有耐久度的物體。它還包含弓和釣竿的附加標籤。 | |||||
模型現在可以基於方塊狀態屬性(比如柵欄)組合在一起。因此,普通方塊模型集削減了近300個模型。 | |||||
現在方塊模型JSON更嚴格了,不允許使用注釋和無引用標識符。 | |||||
"display"標籤預設設定已經更改,"thirdperson" 和"firstperson" 標籤替換為"thirdperson_righthand" ,"thirdperson_lefthand" ,"firstperson_righthand" ,和"firstperson_lefthand" 。
| |||||
"parent"和"elements"標籤現在可以共存,儘管頂級元素標籤覆蓋了以前的所有標籤。 | |||||
刪除禁用備用方塊模型的選項。 |
常規資源 |
| ||||
---|---|---|---|---|---|
常規世界數據 |
| ||||
遊戲世界 |
| ||||
軟件 | |||||
存儲格式 | |||||
設定 | |||||
多人 | |||||
歷史 |