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