[MC]全物品倉庫單片與物品排布參考(1.12.2JE)

編者意見:
人機交互工程是全物品倉庫的核心。
本文所說的“全物品倉庫”就是現(xiàn)在你腦子里想到的那個“全物品倉庫”,當然不是字面意思,而是現(xiàn)在圈內(nèi)流行的意思,就是那個意思,你肯定明白的,封面那個東西,沒有別的意思= =
傳統(tǒng)全物品倉庫的設(shè)計重點主要是單片結(jié)構(gòu)、系統(tǒng)流程、物品排布。一些其他教程中可能只提到了前二者,然而根據(jù)我個人的設(shè)計體驗,物品排布也是非常值得重視的一部分。
本文只討論單片結(jié)構(gòu)的部分內(nèi)容和物品排布的大多數(shù)內(nèi)容,即本文幾乎不涉及任何紅石電路
物品排布需要在分析單片結(jié)構(gòu)特點的基礎(chǔ)上考慮,在以物品屬性簡單分類的同時特別注重物品用途的關(guān)聯(lián)。對于多屬性、多用途的物品,要力求平衡、兼顧(可以采取適度妥協(xié)的弱相關(guān)模式),在發(fā)生沖突時舍棄屬性而遵循用途。通過交錯布局、環(huán)境背景關(guān)聯(lián)等方式提高各物品的視覺對比度(專治強迫癥),使用戶能夠快速而精確地辨認物品。不盲目追求物品歸類布局的嚴格性,但要盡量追求便捷性。
1. 單片結(jié)構(gòu)
每個單片包含2*4種物品,圖片展示的是其中半邊的電路結(jié)構(gòu)

1. 使用雙箱/三箱結(jié)構(gòu)的原因
在1.12.2及更早版本中,箱子不能相鄰放置,因此需要將陷阱箱和普通箱子交替相鄰放置。陷阱箱打開時會發(fā)出持續(xù)信號,鎖住漏斗。當玩家打開陷阱箱查看物品余量時,箱子后面緊鄰的漏斗就會停止工作,這會導致分類器停止工作,降低分類效率。
為了解決這個問題,需要在展示界面的箱子后方再連接一個較大容器作為緩存,以便在陷阱箱打開時分類器仍能正常工作;考慮到緩存器前后物品流速守恒,保險起見,選用與終端容量相等的緩存器(即一個相同的大箱子),從而保證能應(yīng)對較極端的情況。
普通箱列并不需要這樣的緩存機制,但為了保證倉庫整齊美觀以及降低施工難度,仍采用與陷阱箱列相同的結(jié)構(gòu)。
最上面一行的三箱就是圖一樂,可以說是為了把空間填滿,也可以說是為了滿足大容量儲存欲望,實際上完全可以改成雙箱(甚至箱子+投擲器)。
2. 側(cè)面展示
在1.13及以后版本中,物品展示框可以放置在方塊的任何一面,包括上下表面;在1.12.2及以前版本中,物品展示框只能放置在方塊的側(cè)面,這導致新版本流行的很多單片方案很難在舊版本中使用:

由于這一特性的局限,本文發(fā)布的單片結(jié)構(gòu)每個位置都可以從側(cè)面展示方塊或物品。有相當多的物品沒有對應(yīng)的方塊,這些物品都必須通過物品展示框才能展示,該方案保證物品排布具有更大的自由度。

這樣布局的局限性是每個單片只能存放4*2=8種物品,密度不高,導致倉庫整體長度增加。在1.12.2中,物品種類還不是很多(約500種),所以仍然可以接受;在新版本中就必須考慮更高密度布局了。
3. 特殊方塊位
全物品倉庫實際上儲存的是廣義上的全部物品,包括方塊對應(yīng)的物品。為了避免物品展示框造成巨量卡頓,往往會將物品對應(yīng)的方塊直接擺放出來,其中包括一些特殊的方塊。
本文方案中,第1,3,4層均不能放置實體方塊,因此物品排布時需要盡可能將非實體方塊(包括物品展示框所需的任意非實體方塊)集中置于第2層;第1層(最下層)是變種最多的位置,專門用于放置各種性質(zhì)特殊的方塊:
只能放在地上的方塊、兩格高的方塊(其他位置都只有一格,且都沒有完整的地面)

沙子(重力型實體方塊):第3,4層無托底結(jié)構(gòu),第2層不能放實體方塊,所以只能放第1層

植物或類植物方塊(蘑菇不是植物x),這其實也算特殊的地面依附型方塊

音符盒、唱片機、鐵砧:這些怎么放都可以,但為了區(qū)分,必須展示出上表面(我已經(jīng)預感到評論區(qū)有人想說某個材質(zhì)包,但這里的設(shè)計原則是保證不加修飾的純凈原版也能正常使用)

4. 部分方塊的視角設(shè)計
這個單片采用了比較友好的人體工學設(shè)計,從玩家視線起點到各個箱子的距離基本相等,大多數(shù)情況下使用體驗是比較舒適的,但也會有一些小問題。
半臺階與樓梯的區(qū)分是一個很重要的設(shè)計要素,柵欄/墻壁類方塊、側(cè)面依附型方塊也需要減少對視線的干擾。這些其實都是物品排布的問題。
5. 物品填充數(shù)量
根據(jù)物品分類器的結(jié)構(gòu)可知,第1層物品需要至少1+64個填充物(41+64是穩(wěn)定填充量,但實際上只要填充1+64就可以保證穩(wěn)定工作,因此取施工時的最小值,下同),而第2,3,4層僅需1個填充物。由此可見,最下面一層不宜存放貴重物品。
在我的設(shè)計中,最下面一層的貴重物品只有一種:唱片機(合成需要鉆石)。這其實是我設(shè)計中的一個失誤(是xinbing發(fā)現(xiàn)的!),我暫時還不知道怎么解決(
2. 物品排布
物品排布方案是本次的重點內(nèi)容,是以更好地服務(wù)長期用戶為目標而精心設(shè)計的,但新用戶需要一段時間的適應(yīng)(這是xinbing說的,雖然原話不是這樣,但我覺得確實是這個意思);這里的長期用戶當然也包含設(shè)計者本人(我自己x),因為設(shè)計的過程就是高強度使用的過程。
以下敘述和講解流程基本上符合我設(shè)計時的思考過程。
在物品歸類方面,圈子里比較流行方法至少包括按物品屬性分類、按物品用途分類等多種分類或分區(qū)方式(當然也有按物品id或字母順序分類的方式,由于我個人對這些異端分類方式非常厭惡,所以此處不討論)。其中,物品屬性和物品用途大致相關(guān),但也有很多并不重合,這是我在設(shè)計中面臨的主要問題。
在設(shè)計初期,我也打算采用物品屬性分類的方式,具體表現(xiàn)是將物品按照屬性歸到各個大區(qū),每個大區(qū)內(nèi)屬性相同或相近。這種設(shè)想看似美好,實則尷尬,因為有很多物品是多屬性的,并不能簡單地歸為某一屬性;當然,總體上可以試一試。
1. 石頭、土壤、礦物
這一部分是我最先考慮的,因此是設(shè)計中難度最小的部分(越早設(shè)計的部分難度越低)。
石頭可能有些混亂,包括主要包括石磚、圓石、石頭等。磚與黏土相鄰是因為物品屬性,其他同理。石英的布局形狀比較詭異,半階和樓梯的布局在一般人看來很可能異?;靵y,但這其實是我故意用來提高對比度的做法。與美觀相比,便利性——定位速度和準確度才是最重要的,當你享受了這種便利之后,再看也會覺得美觀。
礦物是一類具有鮮明層次的物品:原礦、礦物塊、礦物基本料(錠)、礦物變種料(木炭、粒)。原礦和礦物塊比較珍貴,而第一層更應(yīng)該放置最便宜的變種;紅石礦的相關(guān)下游產(chǎn)物都是紅石元件,礦物只有這么孤立的一個;青金石是染料,因此礦物旁邊可以直接與16種染料相連。

2. 染料與染色物品
染料是第一類棘手物品。玩過舊版本的都知道,在1.13.2或更早版本中,除了用花和仙人掌制成的專用染料以外,也有一些染料完全就是其他屬性的物品:青金石屬于礦物,可可豆屬于植物,骨粉屬于怪物掉落物,墨囊屬于動物掉落物;這些類別并不相同,然而這些物品同屬于染料,又必須放在一起。我不打算輕易采用某一物品占用兩個位置的粗暴解決方案,所以必須采取比較艱難的方式:將礦物、農(nóng)作物、怪物掉落物、生物掉落物這四個大類以染料為紐帶擺放在相近的位置。實際上我采取了略微妥協(xié)一些的方案,這和之后整體策略變更有關(guān),暫時不談,請耐心看完下文。
這種操作還有另一個依據(jù):1.12.2中,彩色物品主要包括染料、玻璃、陶瓦、帶釉陶瓦、玻璃板、羊毛、地毯、旗幟、混凝土、混凝土粉末,共10種;去掉我不打算經(jīng)常使用的旗幟,還剩9種;再去掉性質(zhì)極其特殊的染料,還剩8種,剛好可以放在彩色物品專用的16個單片中。
染料內(nèi)部有一些微妙的安排:將相同色系的染料相鄰放置,例如綠色-棕色系、粉色-紫色系、黑白系、藍色系、紅橙黃系。

細心的讀者在上圖中發(fā)現(xiàn)了兩個異物:陶瓦和玻璃。將它們安排在染料附近,完全是因為用途方面的考慮:作為染色底物,用來被染色。如果把另外16種顏色的陶瓦、玻璃等各種方塊都放置在染料旁邊或許也可以,但這會擠占很多空間,增大染料和農(nóng)作物之間的距離,所以我暫時沒有采用這種做法。
從這里開始,依照用途而非屬性分類的策略已經(jīng)逐漸凸顯出來。這里的用途并不是用途的類別,而是用途的關(guān)聯(lián)性:在使用某一物品時,往往會同時使用特定的另外一些物品,這種使用當然也包括“合成”。染色底物與周邊物品的關(guān)聯(lián)性很弱,看起來很突兀,然而強行關(guān)聯(lián)只是面子工程,使用時的便捷性才是更重要的。
3. 木制紅石元件
在1.12.2-中,這主要指的是柵欄門和木門。顯然,它們既屬于6種木制品,又屬于紅石元件。一個自然的解決方案是將紅石元件大區(qū)和樹木大區(qū)(位于石材區(qū)的對面)相鄰放置,這并不是很棘手的問題,但一些細節(jié)值得考慮。
在樹木大區(qū)中,每種樹木預留了8個位置,分別用于放置原木、樹葉、樹苗、木板(本體、臺階、樓梯)、木柵欄,這7種顯然不是紅石元件,剩下一個位置則面臨柵欄門與木門的抉擇:哪個更應(yīng)該歸為紅石元件?在此列舉我實際考慮的若干理由:
這涉及應(yīng)用層面的分析,即根據(jù)物品用途分類。根據(jù)經(jīng)驗,對于紅石元件來說,似乎柵欄門的使用頻率比木門更高,而木門更接近建筑裝飾方塊:鐵門比木門更像紅石元件,但柵欄門沒有替代品。
同時也有一些物品屬性或方塊特性的理由:木門是兩格高的方塊,應(yīng)優(yōu)先考慮占用第1層,這勢必侵占第1層其他更寶貴的地面紅石元件位置;在樹木大類中,只有木門和樹苗必須放置在第1層,當然可以順手安排。
再具體考慮一下樹木類方塊的微調(diào):木柵欄形成連接材質(zhì)比較好看,因此決定與木板(實體方塊)相連??紤]到視覺對比度的問題,木臺階和木樓梯可以分開放置。柵欄門在紅石元件中屬于不太常用的方塊,綜合考慮使用頻率和方塊觀感,將其置于紅石區(qū)的最上面一層。
對于紅石元件,由于地面依附型物品比例較大,占用了較多的橫向空間,導致紅石區(qū)、樹木區(qū)之間出現(xiàn)一片空缺??紤]物品屬性的關(guān)聯(lián),將自然生態(tài)類方塊——海綿、冰雪以及海晶系物品置于兩區(qū)之間。海晶系物品的擺放其實還與染料有關(guān),之后再談。

在1.13+版本中,木質(zhì)紅石元件的種類更加豐富,這個問題還有很多繼續(xù)探討的空間。
4. 食品、藥品、特殊建材
這依然與染料有關(guān)。四種特殊染料中,青金石已經(jīng)安排好了,接下來先考慮棕色染料——可可豆(1.14+玩家可能會說“這不是兩種東西嗎”,然而在舊版本這真的就是同一種東西)。可可豆是農(nóng)作物,與農(nóng)作物相關(guān)的是食物和“花草”(裝飾性植物),與食物相關(guān)的是煉藥物品——金胡蘿卜既是藥品又是食品,僅此一條就足以聯(lián)系兩大類。這些物品就按照一定次序安排在染料旁邊,保證可可豆與其他農(nóng)作物/食物之間較近的距離。由于可可豆作為農(nóng)作物并不常用(用于合成cookie),而更常見的用途是作為染料,因此可可豆完全沒有必要與農(nóng)作物直接相鄰,只要別太遠就可以了。
說到煉藥,就不得不想到煉藥臺的來源——地獄。巖漿膏是煉藥物品,可以合成作為地獄建材的巖漿塊,地獄疣塊同理,這些東西都來自地獄堡壘——由地獄磚組成的建筑。地獄建材與礦物區(qū)的物品有好像有著一些聯(lián)系,尤其是螢石、黑曜石、靈魂沙。
提到地獄,就又想到下一個維度:末地。作為藥品的龍息是末地物品;爆裂紫頌果與烈焰棒可以合成末地燭,爆裂紫頌果本身可以合成紫珀塊,紫頌果本身又是食物。
綜合考慮以上因素,從染料向右的順序如圖所示:

5. 雜項方塊與紅石元件
雜物就是各種雜亂的物品,種類繁多,用途各異,基本上很難良好歸類,是最疼痛的問題之一。雜物包括各種功能性方塊,也包括雜七雜八的功能性或裝飾性純物品。
功能性方塊和紅石元件有較密切的關(guān)系,很多都是紅石工程中常用的方塊,例如箱子、末影箱、陷阱箱、煉藥鍋、粘液塊、牌子,自然可以把它們放在紅石區(qū)附近。
紅石元件的擺放也有一些重要細節(jié),主要是紅石特性的控制。例如:用紅石塊鎖定漏斗,用紅石火把鎖定兩種活板門,用拉桿鎖定投擲器和發(fā)射器。這些措施除了控制它們自己以外,也是為了屏蔽它們附近陷阱箱的作用。TNT故意放低一格,在下方留出穩(wěn)定墜落空間,避免意外點燃TNT炸毀倉庫。

6. 雜物,以及雜物引發(fā)的思考
雜項物品非常復雜,有一些其他可歸類的物品也令人尷尬:潛影殼、皮革、羽毛似乎都可以歸為生物掉落物,然而潛影殼的幾乎唯一用途是與箱子一起合成潛影盒,皮革、羽毛與書有關(guān),看來都可以屬于雜物。
幾乎每一種雜物都有多種物品屬性,然而仔細考慮便可發(fā)現(xiàn):物品屬性僅僅反映雜物的來源。按照物品屬性或特征分類,符合我們邏輯上的基本認知:看到海晶石磚就想到海晶碎片,看到瓶子就想到龍息、附魔之瓶,潛影殼似乎屬于末地,火把和紅石火把似乎應(yīng)該相鄰……
按物品屬性分類可以讓人很容易猜到物品所在的位置,從而使新用戶很快地找到想到的物品。然而,這有必要嗎?
總體來說有必要,但沒有那么必要,甚至有些地方完全可以放棄這種策略。我們可以讓新用戶立刻猜出潛影殼和箱子的位置、海晶碎片和墨囊的位置、骨粉和樹苗的位置,然而這每一對中兩個物品如果相距甚遠,等到用戶使用熟悉之后就會非常麻煩。
海晶碎片一定要和海晶方塊相鄰嗎?實際上沒有必要。既然是自動分類倉庫,在合成之后就可以直接扔進水道(物品輸入端完全可以伸入倉庫內(nèi)部,而不僅僅設(shè)置在一個大廳)而非手動裝箱;如果僅僅貪圖手動裝箱時的便捷,反而讓原材料歸屬不同,會造成更難解決的硬性麻煩。因此,合成原料與合成產(chǎn)物不必相鄰;但合成原料與合成原料必須相鄰。
在此,我對各類歸屬并不明確的物品部分放棄了物品屬性的考量(除非物品屬性與用途密切相關(guān),比如染料),而是以物品用途的關(guān)聯(lián)為核心原則;對于屬性明確的物品,也按照用途將各類物品的距離盡量拉近。這種做法勢必打破物品屬性分區(qū)的整齊度,對新用戶不太友好,但應(yīng)該可以帶來更好的長期使用舒適度。
物品用途其實也很難精準窮舉,不可能每組關(guān)聯(lián)物品都能相鄰,但可以盡可能地拉近距離,達到一定程度的平衡。
海晶碎片屬于海晶系,墨囊屬于染料類,用于合成暗海晶石磚:

潛影殼與箱子、拌線鉤與箱子、粘液球與活塞(粘液球與粘液塊有屬性關(guān)聯(lián)):

生存常備物資:食物、珍珠、煙花火箭(有些服務(wù)器的全物品倉庫居然把這些東西分到兩翼儲存,太沒人性了.jpg)

水(盔甲架)、瓶子、空桶、煉藥鍋;釀造臺、煉藥原料。唯一的缺憾是沒有放無限水,但其實建造配套打水機即可解決水桶問題。

木棍與木頭隔了一個紅石區(qū),其實不算太遠,因為這個倉庫是一體式的,沒有中心大廳。黑曜石、末影之眼同理。

碗不屬于雜物,甚至不屬于工具物品,它就是食物,還有其他用途嗎?分類不是看它長得像什么,而是看它哪里好用(

7. 花草、獵物、彩色方塊
這些就是收尾的內(nèi)容了。一體式倉庫布局下,無論是用途關(guān)聯(lián)還是屬性關(guān)聯(lián)都不是非常致命的問題,關(guān)聯(lián)物品之間的距離和一個中心大廳比起來小得多。所以,這些東西隨便安排即可。


8. 物品的標識
物品的定位需要清晰而精準,決不能出現(xiàn)盯著瞅半天才能認出來的尷尬情況。這就需要在對比度和相關(guān)性提示方面精心安排。下面的圖片專門用來治強迫癥——不舒服就對了;內(nèi)心毫無波瀾說明用戶看一眼認不出物品,那樣的倉庫是不合格的。
高對比度主要體現(xiàn)在臺階和樓梯的區(qū)分。這里采用了一個通用套路:將兩個不同材質(zhì)的臺階、樓梯交替放置,互相凸顯。

如果沒有交錯對比提示,我可能沒法一眼認出地獄磚樓梯:

圓石和石磚:高強度交錯布局,保證區(qū)分度。很多時候,看物品并不是盯著看,而是結(jié)合上下文(周圍物品)猜測或聯(lián)想物品種類。良好的設(shè)計應(yīng)該有助于提高猜測速度和精準度。

植物也可以采用相似策略,比如紅沙種甘蔗(綠色),黃白沙種枯灌木(棕褐色);左邊的草和蕨就沒辦法了,真看不出來,只能用展示框:

對于類似于方塊-碎片的對應(yīng)關(guān)系,可以采用背景提示:

黑乎乎的一片是什么?肯定能猜出來是地獄磚和相應(yīng)方塊;紫頌果主要是為了好看,區(qū)分度意義不那么關(guān)鍵。

除了三種碎片,石英塊也值得區(qū)分:豎紋石英兩面不一樣,所以兩面都要看到;石英礦和地獄巖、石英碎片連接;純石英塊最沒特色,所以用兩邊極特殊的東西襯托;鏨制石英應(yīng)該能看出來,不用襯托。

樹葉-樹苗-原木-木板,加起來肯定認得出來,但樹葉單獨拿出來很難認:

食物生熟對應(yīng)、龍蛋和雞蛋:

在物品標識方面,物品屬性是有利用價值的,但僅限于一些屬性明確、辨識度低的物品和方塊。
物品標識也與底色裝飾有關(guān)。在臨時設(shè)計中我采用了顏色比較干凈的石英,但在舊版本中石英塊是比較珍貴的不可再生資源,不適合大量使用(除非允許羊駝復制物品,這可能很爽,但是我認為這不好,至少我自己的存檔不打算使用,其他場合肯定由相關(guān)人自己決定);目前我可能考慮地獄磚(雖然不可再生,但是儲量極度豐富)或者石頭類方塊,這可能導致一些物品的布局需要微調(diào)。
9. 你們最想要的
經(jīng)過以上仔細討論,我最終確定了這個全物品倉庫的物品排布方案,如圖所示(Excel表格):

通過表格邊框可以清晰地看出物品屬性分區(qū)。這里的物品名稱是1.12.2版本的顯示名稱,而不是物品id或序號,因此會有一些重名的現(xiàn)象,我用花括號做了區(qū)分標記。如果是1.13+版本就沒有重名問題了。
通過表格也可以看出此排布方案的其他特點和問題。我現(xiàn)在也想到一些可能需要解決的問題:16色物品能否融入儲存?關(guān)聯(lián)度能否進一步提高(藤蔓和圓石、石磚還沒有關(guān)聯(lián))?關(guān)聯(lián)物品的取用便捷性能否繼續(xù)提高?以及,
有無人想在1.13+或者更高版本按照本文思路(開篇總結(jié)?)設(shè)計相應(yīng)的注重便捷性的物品排布方案?
新版本的單片結(jié)構(gòu)大概需要5*2或者6*2,這很可能比4*2結(jié)構(gòu)更有利于物品排布。
至于本文的作品,實際上倉庫系統(tǒng)設(shè)計甚至都沒有開始(如果以后我做完了,這句話就作廢),所以我不一定會發(fā)存檔。

文章里可能會有錯別字或者低級語法錯誤,可能是我沒發(fā)現(xiàn),也可能是發(fā)布之后發(fā)現(xiàn)但不想消耗修改次數(shù)。在發(fā)布之前我并不是很愿意列文虎克,我肝不動。