远看像个圆,近看还像个圆。
我们的电脑显示屏画面,是由上万个正方形像素点排列组成的。平常我们用肉眼在屏幕上看到的“圆”,其实是拥有多条边的不规则图形,在画面放到足够大时就会展现出它们的棱角。
《我的世界》的画面原理也近似,只不过把像素点换成了立体的像素方块。众所周知,《我的世界》一直是一款字面意义上“棱角分明”的建筑游戏,绝大多数的建筑方块与生物,都是基于网格和坐标的生成机制,由方形平面、正方体或长方体构成的。
图源《我的世界》中文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的前提下,把整个世界变成一个球体,以自己的硬件寿命为代价,继续发掘与改写《我的世界》中的世界法则。
扫码关注
游研社公众号
小程序
游研社精选
- 首页
-
- 页 / 共页