8-29 1,761 views
作者:nenn(百度id:正正正正正好)
注1:本文中提到的所有Minecraft版本均为1.8.7。服务器均为纯净的正版服务器。
注2:本文内容与红石技术无关,但鉴于该问题有较大的应用价值,因此发布于此并暂时归类为杂侃。
【问题背景】
我们知道OctopusCraft(下简称OC)的S2世界(详见:http://tieba.baidu.com/p/3433248102)分为三大部落:西北方的雪原部落、西南方的雨林部落以及东方的黏土山部落。本人驻扎雪原部落,清理积雪成为了一个不痛不痒的问题。积雪极易因为人工光源而融化,从而形成我们不期望的形状。但是如果不对地面进行点亮,刷出的怪物则会造成极大的安全隐患。于是,这就给我们带来了一个难题:我们究竟是应该彻底照明保证安全而抛弃美观,还是保护好那北国风光却不顾安全隐患?
上为OctopusCraft S2的三大部落。(详见:http://tieba.baidu.com/p/3433248102)
OctopusCraft的S1世界中,消音所在的即雪原生物群系。消音选择了北国风光而抛弃了安全。结果自然就是,我去她家观光的时候都差点回不来。
OctopusCraft的S2世界中,截至目前为止,雪原的几个基地都为了保证安全,从而牺牲掉银装素裹的美景。这一点上,雪原首都并不非常注意整齐和美观,而远东基地ni-mas则选择了密集火把从而尽可能减少积雪。即便如此,积雪问题仍然没有从根本上解决,密集火把下星星点点的积雪,依旧令人抓狂。而结冰的河流很大程度上也限制了水路交通在雪原的发展。
上为雪原远东基地ni-mas地面上零星的积雪。
上为雪原首都(左)和雪原远东基地ni-mas(中)的1:1地图。
【前人的尝试】
1.厚积雪
OctopusCraft的S1世界中,消音尝试了使用厚积雪来避免刷怪。但是厚积雪依然会因为亮度过高(亮度大于等于12,详见Minecraft Wiki)而融化。
2.密集的火把
OctopusCraft的S2世界中,本人尝试使用密集的火把来避免刷怪和积雪。但造成的问题即火把用量巨大,且效果有限。
3.在天空中铺设方块
虽然可以完全阻止积雪形成,但是由于方块可见,因此会破坏自然景观。
4.使用伪和平装置
虽然可以实现任意亮度下不再刷怪。但加载区块的大量怪物将极大影响服务器tps,造成卡顿。此外,伪和平装置会使刷怪塔无法正常使用,这将对服务器秩序造成极大的破坏。因此该方法仅可在单人模式中考虑使用。
5.使用草和花
虽然草和花能够避免草方块表面积雪,但是对于其他非透明方块表面就无能为力了。
前人方法的总结。
【问题的提出】
基于上述的问题背景以及前人的尝试,那么我们该如何在原版生存中找到一种方法,玩家不会观察到任何变化,却也能阻挡特定区域的雨雪?
这个问题用一句话表达较为复杂,所以这里我们列举并解释其关键:
1.原版生存模式
即游戏地图内的所有成员自始至终完全的生存模式,没有使用指令和cb的权限,没有插件,没有mod,也没有任何第三方软件对存档进行操作。
2.被玩家观察到的任何变化
即玩家能够在日常生活中很快发现异样。例如使用羊毛遮挡天空,虽然可以遮蔽雨雪,但这会使得地面亮度下降。另外,抬头就可看见的羊毛将极大影响自然环境。
3.阻挡所需区域的雨雪
即玩家可以使用这种方法对任意希望遮挡雨雪的区域进行遮挡。遮挡雨雪的意思即玩家无法在区域内看见下雨和下雪的动画,也无法看见地面出现积雪或者水面结冰。当然,可以看见区域外的下雨和下雪的动画是允许的。
【解决思路】
由于不可使用可以被玩家观察到变化的方法,因此对地面的任何直接改造将会变得不可取。所以剩下的可以考虑的办法就是使用伪和平装置来从杜绝刷怪,或者使用阻挡所需区域的雨雪来从杜绝积雪。前面我们已经提到了,为了避免对服务器秩序带来的影响,避免刷怪的思路我们已经不予考虑。所以所有的问题集中在如何使用不可见方块阻挡雨雪。
上为该问题中对抗的主要因素。
容易想到的思路就是使用透明的玻璃进行挡雨。
我们在OC的gm1服务器里寻找到了一片高山生物群系并进行测试。由于山较高,因此其上也会下雪。我们对玻璃进行测试,观察玻璃的视觉效果。
清晰地看到一个方形的区域。可以想象当天空布满这种虚线,是多么令人无力的事情。
玻璃会留下可见的区域,那么使用另一套思路,使用玻璃板、铁栅栏这类侧面极小的方块呢?
我们依旧会看见模糊的框架。
类似的,我们可以考虑诸如活塞臂、栅栏门等等的方块。但最后都会发现,我们总是可以看见那些方块。所以它们都不符合我们的期望。
到了这一步为止,绝大部分人的脚步已经停止。有些人甚至断言这是不可能解决的问题。然而事实并非如此。
一些人渐渐开始更换思路。例如使用从下往上看无需进行材质渲染的方块。沿着这条思路很容易想到末地传送门方块。虽然不得不承认这是条好思路,因为末地传送门方块的确可以挡雨雪,但是末地传送门无法满足阻挡所需区域的雨雪这个要求。毕竟,一个地图只有三个末地传送门,而玩家是不能移动它们的。
开启的末地传送门。其从下往上看时,游戏不会传送门方块其进行渲染。
还有一些玩家提及使用线来遮挡雨雪。但测试后会发现,线虽然基本不可见,但它根本无法遮挡雨雪。
另一些玩家想到了幽灵方块(Ghost Block,下简称GB)。关于GB的相关研究和探讨,我们可以参考下面的一些资料:
1.关于GB的生成和性质:
http://tieba.baidu.com/p/3841053228
http://tieba.baidu.com/p/3922254049
2.关于GB的应用:
http://tieba.baidu.com/p/3941394673
http://tieba.baidu.com/p/3846248412
http://tieba.baidu.com/p/3819568781
http://tieba.baidu.com/p/3983096784
我们可以使用一个较为简单的GB发生器(http://tieba.baidu.com/p/3880030810)来进行下面的实验。上面的一排石头为GB,下面一排石头为真正的石头。可以看到,GB并不能阻止在下面的非透明方块上形成积雪。
然而,神奇的就是,在GB下你却看不见下雪的动画。
也就是说,通过GB你可以看见地上无缘无故积雪的奇观。当然,其他玩家也许并不能有幸见到。
关于这部分GB对积雪情况的研究成果,来源于Dim White(官网账号:DimWHite,百度id:滚大幕)。该结果他本人尚未发布,故特此声明。
不过无论如何,GB也不满足我们的要求。
那么这个问题是不是无解的呢?并非如此。
本人提出另一种思路并对其进行了测试。测试结果是其他玩家完全没有注意到遮蔽雨雪的办法,因此可以说已经完全达到了解决问题的要求。那么这个思路是如何的呢?
游戏本身自带一些特殊的方块。这些方块本身并不是透明的。你可以真真实实地看到它们。但是当你远离它们时,游戏将不对他们进行渲染。这类方块包括:箱子、陷阱箱、告示牌、旗帜。它们可以很好地遮蔽雨雪,防止积雪和冰块的形成,同时又可以在远离玩家时无法被玩家看见。
这个思路也许很没有说服力。但上文的所有测试图片中,在255的高度处,都放着一个占满了一个chunk大小以及另一片小区域的箱子、陷阱箱和旗帜,如下图所示。
相信你在之前一定从未意识到他们的存在。
当这层遮蔽雨雪的方块位于255的高度时,只有当玩家的高度大于191时才会看见它们。然而,在一般的生存模式中,高山的高度也就在110附近,远远不及191这个临界高度。一般玩家的活动高度也很难达到191,因此可以说这个方案可以在神不知鬼不觉的情况下,遮挡住雨雪,避免积雪的形成,避免水面结冰。因为这些方块不会改变地表亮度,一般也不可见。遮挡区域可以根据自己的需求来进行部署。
由于告示牌的放置较为繁琐,因此不建议使用告示牌。箱子和陷阱箱虽然消耗木材和铁,但是考虑到搭建过程和旗帜必须附着在方块上的特点,适当数量的箱子和陷阱箱是必不可少的。下图给出的只是一种参考方案。
如此看来,这种方法可以很好地阻挡一个区域的下雨和下雪,也能够阻止积雪形成,阻止水面结冰。在这些功能中,价值最高的就是阻止水面结冰。因为如果在雪原有一条较深的冻河,使用常规方法的话,你是很难在这条河上发展水路运输的。即使你能做到每一个水面方块都是光照大于12,水面依然会有一个先结冰后快速融化的过程。而船完全可能因为突然出现的冰块而撞毁。另外,在较深的河里保持水面方块亮度大于12也很容易牺牲美观。光源的放置是一个非常大的麻烦。
这种“遮天罩方法”虽然不能改变地表的亮度和刷怪情况,但是可以从根本上解决积雪和水面冰块的形成。所以一旦有了“遮天罩”,雪原就是一个普通的大平原啦。正是因为“遮天罩”达到了常规方法无法达到的效果,所以才有着特别的应用价值。
当然,总有一些细心的玩家会想尽办法来质疑。他们一定会眯起眼睛摇着头说,我拿个地图一看不就明白了吗?但是接下去他们一定是真的明白了什么,比如nenn不会欺骗他们啦,比如nenn喜欢装逼啦,当然最重要的就是日黑庄主啦。比如,我会眯起眼睛摇摇头说,庄主一定不会提出什么质疑,而是赶快把这个搬运到他的视频里面,用各种自己的方式呈现,改改小细节啥的,比如把箱子、陷阱箱和旗帜的排列换一换说是自己原创的啦,或者做在明月乡里面然后说是自己早就发明了啦,或者是哎呀这个简单的玩意儿外国早就有了啦,然后丝毫不提资料来源,就好像是自己发明了什么东西一样理直气壮。
算了不提了。还是希望这种技术被更多的人了解。虽然结论很简单,但是思考过程很精彩。这也就是为啥这个问题可以写一篇4000字的随笔小文章。
下面这句话我觉得多半是废话。因为以我个人的经验,有些人的素质难以支撑他对授权这件事情进行思考和理解,而那些人的脸皮又恰能弥补他素质的不足。我可以不介意那些人做出什么不合道德的事情,不过其他人介不介意我就不清楚了。
欢迎喜欢的读者注明本文链接并转载。但未经RMC授权,本文内容禁止明月庄主(优酷账号:明月庄主moon,百度id:明月庄主moon,Minecraft游戏名:moonboos)转载、引用或进行细节修改后再发布。否则,后果自负。
特别感谢:
好时(百度id:Hershey4)为搭建官网做出的巨大贡献。
Dim White(百度id:滚大幕)提供的关于GB与积雪的相关研究。
Eater(百度id:Eater_X)提供成熟的GB发生器方案。
Haphaistos2333(百度id:Garfaid)和杨月华(百度id:杨月华132)关于GB形成机理的研究。
OctopusCraft服务器提供的服务器资源。
Magnus(百度id:霸王别搅基)提供的关于线遮挡雨雪的思路。
_Yiiiii(百度id:天上一片红云)提供的关于末地门遮挡雨雪的思路。
董多多(百度id:duoduo_123dong)参加的盲测实验。
RMC平台上参与讨论的各位。
版权属于: Redstone Machinery Communication 红石机械交流促进会
原文地址: http://www.rmcteam.ml/world-without-rain-and-snow.html
转载时必须以链接形式注明原始出处及本声明。