有玩家在《我的世界》中不借助Mod造出了“完美圓形”_風聞
游戏研究社-游戏研究社官方账号-2021-09-18 07:41

遠看像個圓,近看還像個圓。
我們的電腦顯示屏畫面,是由上萬個正方形像素點排列組成的。平常我們用肉眼在屏幕上看到的“圓”,其實是擁有多條邊的不規則圖形,在畫面放到足夠大時就會展現出它們的稜角。

《我的世界》的畫面原理也近似,只不過把像素點換成了立體的像素方塊。眾所周知,《我的世界》一直是一款字面意義上“稜角分明”的建築遊戲,絕大多數的建築方塊與生物,都是基於網格和座標的生成機制,由方形平面、正方體或長方體構成的。

圖源《我的世界》中文wiki
凡事都有例外,如指南針、雪球、火藥、藥水瓶、末影珍珠等,就沒有那麼方正。但這些例外,要麼邊角十分粗糙,無需放大都能看出稜角;要麼無法作為單獨的建築方塊放置在地上。
如果不安裝Mod、修改遊戲文件或使用外部工具,我們一般會像下面這樣,造出一個十字架確定半徑,再圍繞十字架平鋪建築方塊,造出圓形,然後是球體。這樣造出的圓或球,從近處看並不夠圓潤,但拉開距離就顯得美觀許多。

自《我的世界》發售以來,總有玩家想要打破如此方正的遊戲規則。雖説不能創造出絕對完美的圓形或球體,但他們至少要讓自己的造物更加圓潤,降低讓圓或球看起來足夠美觀的距離閾值。
Mysticat擁有對這方面最新研究成果的發言權。8月29日,他在Youtube上傳視頻,記錄自己創造出的圓形;9月4日,他又上傳了視頻,這回他成功造了個球,整個過程中沒有使用任何Mod。

起初Mysticat想試試玩家社羣已知的一種畫圓工具:礦車。礦車沒有阻礙玩家移動的碰撞體積,允許重疊,且會被玩家的作用力所推動,且運動方向沒有限制。當多輛不在軌道上的礦車重疊在一起時,礦車會以一個恆定速度保持運動,直至撞到實體方塊。
Mysticat在單一方塊上鋪設一道鐵軌與多輛礦車,然後於鐵軌周圍放置額外的方塊,避免礦車亂跑。隨後他移除軌道,跳到礦車中推動它們,礦車向隨機的方位運動,並在方塊的拘束下,自動形成一個圓圈。

當然,這樣畫出的圓並不美觀,Mysticat想着另尋方案。
類似於礦車,遊戲中用於存放和展示盔甲的盔甲架,也有允許重疊、能夠朝向多個方位的特性。另外還有沙子,沙子方塊會受重力影響,在下方沒有方塊時下墜;但控制枱生成的沙子可以抹消重力影響,這時浮空的沙子也是沒有碰撞體積、允許重疊的。

以這些機制作為基礎,Mysticat摞起了數個命令方塊,並給它們注入了一連串對普通玩家而言有如天書的控制枱召喚指令。

第一部分的指令,會在與方塊有恆定距離的位置生成數十個盔甲架,畫出一個簡略的圓形,這個恆定距離便是圓的大致半徑。Mysticat在盔甲架的腦袋上放置了浮空的沙子方塊,同時把盔甲架設置為隱形,只用沙子進行繪製。


第二部分的指令,將使所有盔甲架連帶着上面互相重疊的沙子方塊,一同朝向命令方塊,從而畫出一個趨近於完美的圓形。

生成這個圓形的沙子方塊,在與其他方塊產生碰撞時可能觸發圖形錯誤,造成黑色的閃爍。Mysticat通過反覆調試,把產生問題的方塊用半磚替代,解決了絕大部分問題。

圓的邊緣還有些不可避免的閃爍與瑕疵,但無傷大雅,往裏面倒幾桶水,就是一座適合擺在家裏的圓形泳池。

至於繪製三維立體的球,就要比繪製圓形困難得多。Mysticat發現,盔甲架套沙子方塊的方法,只能指定平面上X軸與Z軸的朝向,但無法修正垂直的Y軸,很難畫出一個像樣的球。

但礦車就不一樣了。遊戲裏本來就有斜向的上下坡跑道,因此礦車的XYZ軸朝向均可自由修改。

Mysticat使用了更笨但更嚴謹的步驟。他在礦車上空綁定了一塊能夠與礦車一同轉向的石頭;隨後把這串指令注入數不清的命令方塊,複製出無數礦車和石頭;再微調單個命令方塊的指令,修正每一輛礦車的朝向。

先畫出一個圓

再畫出無數個圓
最終當Mysticat按下按鈕,一個坑坑窪窪的石球突然出現在半空中。這個石球的外部同樣沒有碰撞體積,鑽進球體內部的話,會發現裏面的礦車也團成了一個小球。


理論上,再來幾十排命令方塊、多安排些礦車與石塊,能夠撫平石球肉眼可見的稜角,讓它變得更加圓潤。然而Mysticat已有的造物已經讓他的電腦吃不消了,遊戲出現嚴重卡頓,幀數也降到了個位數。
Mysticat並不想就此放棄,他接下來的企劃,是繼續在不打Mod的前提下,把整個世界變成一個球體,以自己的硬件壽命為代價,繼續發掘與改寫《我的世界》中的世界法則。