第八十章 結(jié)構(gòu)方塊 下
?。ū菊乱延?022/7/20日重寫)
(本章寫作時,作者使用的是基巖Windows10版1.19.10、基巖Android版1.19.10、Java版1.12.2和Java版1.19)
?。◤娏彝扑]在游玩Minecraft時閱讀此章)
?。ū菊碌膬?nèi)容由于和指令沒有太大關(guān)系,所以并不會講得很詳細)
在上一章,我們了解了結(jié)構(gòu)方塊五個模式中最重要的兩個模式:儲存和加載。這一章,我們將會了解剩下的3個模式:角落、數(shù)據(jù)和3D導(dǎo)出。
—③角落模式
角落模式(Corner Mode)和儲存模式的結(jié)構(gòu)方塊是互相配合的。在儲存模式的結(jié)構(gòu)方塊中,有一個『探測』按鈕,可以快速地通過同名的角落模式結(jié)構(gòu)方塊檢測結(jié)構(gòu)的大小和位置。
那到底怎么使用呢?舉個簡單的例子:
████████?█
███▓▓▓▓▓██
██?███████
其中,?代表著儲存模式的結(jié)構(gòu)方塊,?代表著角落模式的結(jié)構(gòu)方塊,陰影部分代表我們要保存的結(jié)構(gòu)。
我們只需要在儲存模式中,寫上結(jié)構(gòu)要存儲成的名稱,比如填寫『my:str』,然后在角落模式結(jié)構(gòu)方塊中的『結(jié)構(gòu)名稱』參數(shù)也寫上『my:str』,最后使用『探測』功能,游戲就會以這兩個結(jié)構(gòu)方塊的位置分別作為兩個頂點構(gòu)成一個長方體,這個長方體就是儲存的區(qū)域。游戲也會自動更新儲存模式結(jié)構(gòu)方塊中的相對位置和大小兩個參數(shù)。最后,你只需要按下『保存』就可以將結(jié)構(gòu)存儲下來。
你也可以使用兩個角落方塊來選取區(qū)域:
████████?█
█?█▓▓▓▓▓██
██?███████
在這里,你只需要確保兩個?都寫上了相同的『結(jié)構(gòu)名稱』,并且和?的一致,最后使用『探測』功能,游戲就會自動以這兩個?為頂點來選取區(qū)域。
需要注意的是,角落方塊選取的區(qū)域不能超過游戲規(guī)定的上限,也不能是一個2維甚至是1維的區(qū)域(即長寬高都不能為0)。并且,如果有超過兩個同名的角落方塊,雖然游戲也能選取,但選取的區(qū)域會有些奇怪。
—④數(shù)據(jù)模式[僅Java版]
數(shù)據(jù)模式(Data Mode)主要的用途是用來自然生成結(jié)構(gòu),雖然說在Java1.17以下版本結(jié)構(gòu)方塊的默認模式都是數(shù)據(jù)模式,但它對于玩家的用處其實并不大。
數(shù)據(jù)模式的結(jié)構(gòu)方塊只有一個參數(shù):自定義數(shù)據(jù)標(biāo)簽名稱。你雖然能夠填寫一些參數(shù),但其實你并不能自己觸發(fā)數(shù)據(jù)模式的結(jié)構(gòu)方塊,這只能由游戲在自然生成的過程中觸發(fā)。
所以即使截止Java1.19版本,數(shù)據(jù)模式對于玩家來說也沒有任何用途。但是,對于游戲來說,這東西有著很大的用途。數(shù)據(jù)模式內(nèi)填寫的東西是游戲內(nèi)自帶的函數(shù),游戲觸發(fā)數(shù)據(jù)模式結(jié)構(gòu)方塊時其實就是觸發(fā)指定的函數(shù),然后對諸如箱子之類的東西進行修改,比如放上戰(zhàn)利品表之類的。如果玩家也能夠使用數(shù)據(jù)模式來觸發(fā)函數(shù),那這個數(shù)據(jù)模式瞬間就變得十分有用,上限就變得無限大啊!
所以作者這邊就埋個坑,看看Mojang以后到底會不會允許玩家使用數(shù)據(jù)模式。
—⑤3D輸出模式[僅基巖版Windows10版本]
3D輸出模式(3D Export mode)有些類似于存儲模式,只不過它并不是儲存結(jié)構(gòu),方便玩家以后生成,而是直接將游戲內(nèi)的結(jié)構(gòu)導(dǎo)出為3D模型文件,以用于其他地方,比如動畫制作、手辦制作等等。
需要注意的是,該模式僅僅適用于基巖版的Windows10版本(當(dāng)然,Windows11也能用,畢竟是套殼Windows10[滑稽])。
該模式有如下幾個選項:
相對位置——不用講了,同存儲模式
結(jié)構(gòu)大小——也不用講了,同存儲模式
移除方塊——也不用講了
顯示邊框——還是不用講
導(dǎo)出——將選取的區(qū)域以3D模型文件.glb導(dǎo)出
導(dǎo)出后,你可以使用一些3D模型軟件來打開文件,如畫圖3D、3D Viewer等等。你甚至還能導(dǎo)入到Photoshop等專業(yè)軟件里面進行操作,可謂是Minecraft二創(chuàng)開發(fā)利器。
回到正題。現(xiàn)在,結(jié)構(gòu)方塊的五個模式我們都知道怎么用了,但有個東西我們還沒講:
如何生成游戲自帶的結(jié)構(gòu)呢?
讓我們先來到你的游戲版本目錄,找到你游戲的jar文件:
.minecraft\versions\<游戲名稱>\<游戲名稱>.jar
至于怎么找到.minecraft文件夾,我們在第六十三章已經(jīng)研究過了。
接下來,用壓縮軟件打開這個jar文件,找到如下位置:
文件根目錄\data\minecraft\structures\
在這個structures文件夾里面,就放著游戲自帶的各種結(jié)構(gòu)文件。在Java1.19版本的jar文件中,這個目錄下有這么幾個文件夾:
ancient_city
bastion
end_city
fossil
igloo
nether_fossils
pillager_outpost
ruined_portal
shipwreck
underwater_ruin
village
woodland_mansion
不難發(fā)現(xiàn),這每個文件夾都對應(yīng)了游戲內(nèi)的一個結(jié)構(gòu),如village對應(yīng)村莊,end_city對應(yīng)末地城等等。
打開其中的文件夾,你會發(fā)現(xiàn).nbt后綴的結(jié)構(gòu)文件和更多的文件夾。我們這邊就以ruined_portal目錄下的portal_1.nbt文件為例。在游戲中打開結(jié)構(gòu)方塊,調(diào)整為加載模式,然后輸入結(jié)構(gòu)名稱為:ruined_portal/portal_1。接下來點擊加載,你就會驚喜的發(fā)現(xiàn)生成了一個廢棄地獄門!還有寶箱!
廢棄地獄門的寶箱由于在結(jié)構(gòu)保存的時候就帶有了Loot標(biāo)簽(戰(zhàn)利品表的NBT標(biāo)簽),因此不需要數(shù)據(jù)模式的結(jié)構(gòu)方塊就能夠加載出戰(zhàn)利品。如果你加載的是其他類型的如村莊的結(jié)構(gòu),就會發(fā)現(xiàn)它們的箱子大多上面都頂著一個數(shù)據(jù)模式的結(jié)構(gòu)方塊。
最后,讓我們了解一下『結(jié)構(gòu)空位』。
你在加載結(jié)構(gòu)時,就算是空氣也會替代原本的方塊,那該如何使得原本的方塊不被替換呢?
使用結(jié)構(gòu)空位(Structure Void)就能夠解決這個問題。
結(jié)構(gòu)空位是一個方塊,其ID為minecraft:structure_void。當(dāng)你在保存一個結(jié)構(gòu)時,結(jié)構(gòu)內(nèi)的結(jié)構(gòu)空位雖然也會被保存,但游戲在加載結(jié)構(gòu)時并不會將結(jié)構(gòu)空位加載出來,也就是說結(jié)構(gòu)空位所在的地方會被游戲忽略并保留原本的方塊。所以,適當(dāng)?shù)氖褂媒Y(jié)構(gòu)空位,可以防止我們的結(jié)構(gòu)在生成時破壞其周圍的地形。
(奇妙的是,在基巖版,結(jié)構(gòu)空位被視作為一個完整的方塊,這就使得火把之類的東西能夠插在上面,然后結(jié)構(gòu)空位又是隱形的、能夠讓實體通過的.......)
這就是結(jié)構(gòu)方塊的全部內(nèi)容了。
附錄:結(jié)構(gòu)方塊和結(jié)構(gòu)空位歷史
Java版
1.9——加入了對于玩家來說沒有任何用處的結(jié)構(gòu)方塊
1.10——結(jié)構(gòu)方塊可以讓玩家使用了。加入了結(jié)構(gòu)空位。
1.11——更改ID從Structure至structure_block
1.13——結(jié)構(gòu)保存的位置從『存檔根目錄\structures』改到了『存檔根目錄\generated\<命名空間>\structures』。
1.14——結(jié)構(gòu)空位的渲染顏色被更改。
1.16——結(jié)構(gòu)的最大尺寸從32×32×32增加到了48×48×48
1.17——默認模式從數(shù)據(jù)模式改到了加載模式,并隱藏了數(shù)據(jù)模式,只能在按住Alt鍵的情況下才能被切換到。結(jié)構(gòu)空位的渲染顏色再次被更改。
攜帶版/基巖版
1.0.0——加入了具有功能但完全無法獲得的結(jié)構(gòu)方塊和結(jié)構(gòu)空位。
1.2.0——結(jié)構(gòu)方塊現(xiàn)在能夠獲得,并具有了唯一的模式:3D輸出模式。只不過,該模式僅在Windows10和IOS版本中可用。
1.5.0——結(jié)構(gòu)方塊能在Andorid和IOS版本中獲取了,但無法使用。
1.9.0——移除使用remix3d導(dǎo)出選項,結(jié)構(gòu)改為本地導(dǎo)出
1.13.0——在IOS和Android版本中,結(jié)構(gòu)方塊能夠在開啟『實驗性玩法』的前提下使用。結(jié)構(gòu)空位能夠獲得了。
1.16.0——結(jié)構(gòu)方塊和結(jié)構(gòu)空位不再屬于『實驗性玩法』,并加入了『檢測』按鈕。
1.17.0——結(jié)構(gòu)方塊現(xiàn)在能夠指定加載結(jié)構(gòu)的動畫
1.17.30——結(jié)構(gòu)方塊現(xiàn)在有了角落模式