第八十章 结构方块 下
(本章已于2022/7/20日重写)
(本章写作时,作者使用的是基岩Windows10版1.19.10、基岩Android版1.19.10、Java版1.12.2和Java版1.19)
(强烈推荐在游玩Minecraft时阅读此章)
(本章的内容由于和指令没有太大关系,所以并不会讲得很详细)
在上一章,我们了解了结构方块五个模式中最重要的两个模式:储存和加载。这一章,我们将会了解剩下的3个模式:角落、数据和3D导出。
—③角落模式
角落模式(Corner Mode)和储存模式的结构方块是互相配合的。在储存模式的结构方块中,有一个『探测』按钮,可以快速地通过同名的角落模式结构方块检测结构的大小和位置。
那到底怎么使用呢?举个简单的例子:
████████▤█
███▓▓▓▓▓██
██▩███████
其中,▩代表着储存模式的结构方块,▤代表着角落模式的结构方块,阴影部分代表我们要保存的结构。
我们只需要在储存模式中,写上结构要存储成的名称,比如填写『my:str』,然后在角落模式结构方块中的『结构名称』参数也写上『my:str』,最后使用『探测』功能,游戏就会以这两个结构方块的位置分别作为两个顶点构成一个长方体,这个长方体就是储存的区域。游戏也会自动更新储存模式结构方块中的相对位置和大小两个参数。最后,你只需要按下『保存』就可以将结构存储下来。
你也可以使用两个角落方块来选取区域:
████████▤█
█▩█▓▓▓▓▓██
██▤███████
在这里,你只需要确保两个▤都写上了相同的『结构名称』,并且和▩的一致,最后使用『探测』功能,游戏就会自动以这两个▤为顶点来选取区域。
需要注意的是,角落方块选取的区域不能超过游戏规定的上限,也不能是一个2维甚至是1维的区域(即长宽高都不能为0)。并且,如果有超过两个同名的角落方块,虽然游戏也能选取,但选取的区域会有些奇怪。
—④数据模式[仅Java版]
数据模式(Data Mode)主要的用途是用来自然生成结构,虽然说在Java1.17以下版本结构方块的默认模式都是数据模式,但它对于玩家的用处其实并不大。
数据模式的结构方块只有一个参数:自定义数据标签名称。你虽然能够填写一些参数,但其实你并不能自己触发数据模式的结构方块,这只能由游戏在自然生成的过程中触发。
所以即使截止Java1.19版本,数据模式对于玩家来说也没有任何用途。但是,对于游戏来说,这东西有着很大的用途。数据模式内填写的东西是游戏内自带的函数,游戏触发数据模式结构方块时其实就是触发指定的函数,然后对诸如箱子之类的东西进行修改,比如放上战利品表之类的。如果玩家也能够使用数据模式来触发函数,那这个数据模式瞬间就变得十分有用,上限就变得无限大啊!
所以作者这边就埋个坑,看看Mojang以后到底会不会允许玩家使用数据模式。
—⑤3D输出模式[仅基岩版Windows10版本]
3D输出模式(3D Exbr /ort mode)有些类似于存储模式,只不过它并不是储存结构,方便玩家以后生成,而是直接将游戏内的结构导出为3D模型文件,以用于其他地方,比如动画制作、手办制作等等。
需要注意的是,该模式仅仅适用于基岩版的Windows10版本(当然,Windows11也能用,毕竟是套壳Windows10[滑稽])。
该模式有如下几个选项:
相对位置——不用讲了,同存储模式
结构大小——也不用讲了,同存储模式
移除方块——也不用讲了
显示边框——还是不用讲
导出——将选取的区域以3D模型文件.glb导出
导出后,你可以使用一些3D模型软件来打开文件,如画图3D、3D Viewer等等。你甚至还能导入到Photoshobr /等专业软件里面进行操作,可谓是Minecraft二创开发利器。
回到正题。现在,结构方块的五个模式我们都知道怎么用了,但有个东西我们还没讲:
如何生成游戏自带的结构呢?
让我们先来到你的游戏版本目录,找到你游戏的jar文件:
.minecraft\versions\<游戏名称>\<游戏名称>.jar
至于怎么找到.minecraft文件夹,我们在第六十三章已经研究过了。
接下来,用压缩软件打开这个jar文件,找到如下位置:
文件根目录\data\minecraft\structures\
在这个structures文件夹里面,就放着游戏自带的各种结构文件。在Java1.19版本的jar文件中,这个目录下有这么几个文件夹:
ancient_city
bastion
end_city
fossil
igloo
nether_fossils
br /illager_outbr /ost
ruined_br /ortal
shibr /wreck
underwater_ruin
village
woodland_mansion
不难发现,这每个文件夹都对应了游戏内的一个结构,如village对应村庄,end_city对应末地城等等。
打开其中的文件夹,你会发现.nbt后缀的结构文件和更多的文件夹。我们这边就以ruined_br /ortal目录下的br /ortal_1.nbt文件为例。在游戏中打开结构方块,调整为加载模式,然后输入结构名称为:ruined_br /ortal/br /ortal_1。接下来点击加载,你就会惊喜的发现生成了一个废弃地狱门!还有宝箱!
废弃地狱门的宝箱由于在结构保存的时候就带有了Loot标签(战利品表的NBT标签),因此不需要数据模式的结构方块就能够加载出战利品。如果你加载的是其他类型的如村庄的结构,就会发现它们的箱子大多上面都顶着一个数据模式的结构方块。
最后,让我们了解一下『结构空位』。
你在加载结构时,就算是空气也会替代原本的方块,那该如何使得原本的方块不被替换呢?
使用结构空位(Structure Void)就能够解决这个问题。
结构空位是一个方块,其ID为minecraft:structure_void。当你在保存一个结构时,结构内的结构空位虽然也会被保存,但游戏在加载结构时并不会将结构空位加载出来,也就是说结构空位所在的地方会被游戏忽略并保留原本的方块。所以,适当的使用结构空位,可以防止我们的结构在生成时破坏其周围的地形。
(奇妙的是,在基岩版,结构空位被视作为一个完整的方块,这就使得火把之类的东西能够插在上面,然后结构空位又是隐形的、能够让实体通过的.......)
这就是结构方块的全部内容了。
附录:结构方块和结构空位历史
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——默认模式从数据模式改到了加载模式,并隐藏了数据模式,只能在按住Alt键的情况下才能被切换到。结构空位的渲染颜色再次被更改。
携带版/基岩版
1.0.0——加入了具有功能但完全无法获得的结构方块和结构空位。
1.2.0——结构方块现在能够获得,并具有了唯一的模式:3D输出模式。只不过,该模式仅在Windows10和IOS版本中可用。
1.5.0——结构方块能在Andorid和IOS版本中获取了,但无法使用。
1.9.0——移除使用remix3d导出选项,结构改为本地导出
1.13.0——在IOS和Android版本中,结构方块能够在开启『实验性玩法』的前提下使用。结构空位能够获得了。
1.16.0——结构方块和结构空位不再属于『实验性玩法』,并加入了『检测』按钮。
1.17.0——结构方块现在能够指定加载结构的动画
1.17.30——结构方块现在有了角落模式