//
GTMC
DATABASE
MY DRAFTS
REVIEW HUB
FEATURES
LOGIN
< BACK
NEW_SUBMISSION
TITLE_
FILE_PATH (e.g. Folder/My-Article.md)_
CONTENT (MARKDOWN)_
B
I
LINK
IMG
H3
</>
SUPPORT_PASTE/DROP_IMG
# 1° 概述 本篇将一步步教你配置绿萌使用环境,并简单地讲解相关的基础知识。 以下是涉及到的模组汇总:Carpet mod、WorldEdit(创世神)、Tweakeroo、pistorder(或Tweakmore,本篇用pistorder演示。)、Replay mod(可选)。 *** # 2° 环境配置 *你大可以跳过本节,但是我依旧建议你阅读本节内容,使用较为先进的工具总归对你的学习和设计有好处的。* ## 1.2.1 世界环境 打开单人游戏,选择**创造模式**,创建一个**虚空存档**。 `创建新的世界→世界→世界类型:超平坦→自定义→预设→虚空` ![[图01 一片虚空平台.png]] 如果你出生在一片石头平台上,证明你成功了。 它日后会变成这样子: ![[图02 被绿萌填满的虚空截图.png]] **当然,鉴于玩家对破基岩科技树的研究**,我们可以将预设改为:`minecraft:bedrock;minecraft:the_void` 如果你想要多层,只要在方块名称后面加上$*x$即可($其中0<x<=324,且x\in N^{*}$)如:`minecraft:bedrock*5;minecraft:the_void` 便可以模拟五层破基岩环境。 ![[图03 虚空大陆.png]] **当然,为保证生存实装的稳定性,最终都要创建一个正常的世界进行实地测试,一切不进行实地测试就发布的机器,都是对自己和他人不负责任的表现。** ## 1.2.2 结构方块 在自己的作品经历了一次次炸膛、解体、粘连后,我们找到了比备份更为简单的局部存档利器:**结构方块**。我们主要使用两个模式:**保存模式**和**加载模式**。 ### 保存模式 ![[图05 结构方块加载模式界面.png]] ### 加载模式 ![[图04 结构方块保存模式界面.png]] ### 必要说明 + 结构名称不能使用中文命名。 + 相对位置和结构大小都有三个框,该三个框从左到右分别对应x轴,y轴,z轴,可通过按下键盘上的“F3”,屏幕中间的指针来对照。 + **保存模式仅能保存 对应加载模式中角度为0°的结构框**。 + 包括实体:在保存模式中,为保存结构框内的实体;在加载模式中,为加载保存模式已保存过的实体。 ### 小技巧 我们可以对迭代中的结构多次留档,便于以后回退和debug,以下是示例: ![[图06 结构方块留档示例.png]] 在上面保存模式和加载模式的示意图中,保存模式负责留档:上图留档示意的图中,结构方块都是完全一致的保存模式的结构方块 <hidden>文件名bedrock_breakers也可以看出来,是一系列的基岩机</hidden>,以此作为留档区,工作区仅有一个加载模式的结构方块(图中未显示)。 **以上仅是对我来说比较舒服的方式,读者可创新思路**。 ## 1.2.3 Carpet指令 下面会简述Carpet的配置,如需更多选择,请参考其他章节,或观看Carpet使用教程。 ### Carpet配置 打开你的测试存档,在对话框中输入指令。本小节内容的一经设置,基本不会再更改。 `/carpet tntDoNotUpdate true`:放置TNT时,TNT不会被红石激活。这使得我们在制作TNT复制机时,省去推矿车,或者其他的”上弹“方式。 `/carpet fillUpdates false`:使用 fill、clone、setblock指令和结构方块时不会造成更新。尤其是解决加载结构后,造成的机器”乱动“的困扰。 `/carpet creativeNoClip true`:创造模式无碰撞,便于我们愉快地穿梭在各种机器结构中,同时解决被粘液块弹走的麻烦。 `/carpet structureBlockLimit 48/96/192/256`:其中,数值选项用“/”隔开。当你需要的结构范围大于结构方块默认的框选范围时,可以考虑此选项。**需要注意的是,在实际使用过程中,过大的结构框会造成一定的渲染问题和卡顿,如非必要,默认选项为48即可**。 `/carpet explosionNoBlockDamage true`:当你设计和TNT有关的结构时,可以把该调试打开, 这使得TNT爆炸不会炸坏任何方块;当你需要测试TNT是否会破坏预期的范围时,可以设置为false。 ### 游戏刻指令 + `/tick freeze`:冻结游戏刻,通常结合下面的`/tick step x`指令,来观察设计的结构是否按照预期运作。类似于编程中打的调试断点。 + `/tick step x`:冻结游戏刻后,该指令可以使游戏前进x游戏刻,其中x是要前进的游戏刻数。 + `/tick sprint x`:类似于`/tick warp`通常用来长时间测试机器稳定性,或者加速飞行器的到位(便于调试)。 + `/tick unfreeze`:解除冻结游戏刻,部分版本使用`/tick freeze`同时兼顾开关冻结游戏刻。<hidden>吐槽一下,不知道为什么要把一条指令分开,每次打指令都麻烦得要死。</hidden> ### TNT监测指令 + `/log tnt`:使用此指令可以订阅TNT有关的选项。 + `/log tnt full`和`/log tnt brief`:当TNT爆炸的时候,告诉你TNT的生成位置和爆点位置,在控制TNT的爆点时非常有用,我们将在实战篇讲到。 + `/log tnt clear`:取消订阅TNT有关的选项。 ### 假人指令 + `/player <Name> spawn`:利用假人的第一步,最基本的是测试机器时用来强加载区块。如使用`/player yu_xian520 spawn`召唤一个名为余弦的假人。<hidden>哔哩哔哩关注叁日余音喵~</hidden> + `/player <name> use`:可以让假人使用物品、放置方块或与方块互动,相当于鼠标右键。相同的指令还有`/player <name> use once`。将假人对准音符盒/栅栏门,可以实现远程开机/步进效果。如使用`/player Twisuki use`可让Twisuki点击一下音符盒/栅栏门。 + `player <name> use continous`:可以让假人持续使用物品、放置方块或与方块互动。通常用来放基岩机的活塞。使用`/player <name> use`可以结束放置。 ## 1.2.4 WorldEdit指令 *本节内容主要涉及`//set`,`//undo`,`//redo`,`//stack`,`//move`等指令的使用,提前掌握了的玩家可以跳到下一节。* ***本小节只讲绿萌设计中最常用的部分***。 1. //set、//undo、//redo //set 是很基础的指令了对吧?使用小木斧,和投影mod一样,左右键框选一定的范围,输入`//set 0` 不出意外的话,你框选的这片区域已经被替换成了空气。那么,如何恢复这个平台呢? + 使用`//undo`便可以撤销这一步操作; + 使用`//redo`便可以复原刚刚撤销的操作。 2. `//move <Num>` 这个也是很基础的指令,在我们框选区域后,对着某一方向(或者用`//set <Num> <direction>`便可让移动该区域的方块,*如使用//move 1 up来向上移动一格*,不使用方向便默认玩家朝向为移动方向。使用`//move <Num> -e`可以保留实体。 可以使用这个指令来将制作的模块移动到合适的位置。 3. `//stack <Num>` 在框选区域后,你可以对区域向着某一方向批量复制,非常方便拓绿萌单元。 这条指令用法与`//move`基本类似,只是由”移动多少格“的功能转变为”复制多少次“。便不再过多赘述。 **受限于我的笔力,以上内容肯定有点抽象,你可以框选后输入相关的指令试一试,或者搜索相关的WE教程**。 ## 1.2.5 Tweakeroo配置 1. **禁用侦测器选项**: 在游戏界面中,同时按下`x+c`,在禁用类选项中,可以找到禁用侦测器选项,我建议你在键盘的右侧设置一个快捷键,方便我们在debug时随时打开。 打开此选项后,侦测器就变成了“石头”,不再响应更新。当我们使用WE或者其他工具,对绿萌结构进行操作时,可避免侦测器激活造成的不可预知的结果。也可以防止我们手残对侦测器造成更新。 2. **Flyspeed飞行速度控制 飞行速度预设**: 挖沟机,矿机等往往都有超过200格的高度,我们游走在机器各处是非常麻烦的,使用Flyspeed功能可以大幅提高玩家的飞行速度,在各个部分之间快速通勤。 ## 1.2.6 Pistorder使用方法 这是设计绿萌的必备模组之一,前面的章节也讲过pistorder和活塞到位的相关规律,这里只对绿萌相关的做相关简述。 空手右击普通活塞,活塞上会显示 能否推动(如图上的 推动√,不能推动则显示 推动×),而被推动的方块,则**从小到大**显示方块到位的先后顺序。有助于我们压缩机器和快速debug。 + 对于普通活塞:空手右击一次为直接推动(活塞臂直接接触),右击两次为隔一个方块推动(如下图)。 + 对于黏性活塞:空手右击一次为直接推动,右击两次为隔一个方块拉回。 ![[图07 pistorder模组示例.png]] ## 1.2.7 Replay mod的debug小技巧 Replay mod对于主播或者录过mc视频的玩家而言并不罕见 <hidden>骂谁罕见!</hidden>,它能够记录所加载区块,在录制所在的时间段内发生的事。 正是因为Replay mod的情景复现功能,我们可以通过回放后拉取进度条的方式debug。通常在问题复现时间太长,或使用`/tick freeze` debug比较困难的情况下使用这个小妙招。 # 3° 基础知识 ## 1.3.1 时序科普 ### 游戏刻 前面的章节我们已经了解了游戏刻的基本内容,本节更倾向于介绍游戏刻在绿萌中的应用。 为了照顾未学习过时序章节的读者,这里简述下比较重要的基本内容: + Minecraft时间的基本单位是游戏刻(简称**gt**)。 + 不同红石原件有不同的游戏刻延迟,比如侦测器延时2gt,中继器每档分别延迟2gt(故中继器延时2~8gt)。 本章所有内容都将抛弃**红石刻(RedTick,简称rt,1rt = 2gt)** 的使用, 因为我们后面将涉及到一定的奇数刻的时序关系,使用游戏刻方便计算。 对于绿萌来说,游戏刻可以用来指示各个布线的先后运动关系。对于大部分情况来讲,我们仅仅知道它们运动的先后顺序即可。如下,是我复现的我的第一台绿萌机器,一台以活塞链条作为延迟的盾构机。 **图 活塞延迟式盾构机** *读者可以顺带记住的是,上方黏性活塞一小节延迟为6gt,下方普通活塞延迟为4gt*。 了解过绿萌的玩家都知道,信号的传导从上方的黏性活塞链开始,至下方的普通活塞链结束;*此结构被用来作为盾构机等TNT延迟;* 熟悉了上方的信号延迟后,我们可以计算出上图的总延迟为多个黏性活塞和普通活塞相加,即多个6gt和多个4gt相加。 当然,经过简单的计算我们也知道,以上的活塞延迟排列组合,我们能创造出4gt及以上,所有偶数gt的延迟。**那么,我们如何创造出2gt的延迟呢?** 这似乎有些麻烦,我们通常只能把6gt的延时改为4gt的延时来提早2gt,反之亦然。 既然已经有了偶数gt的延迟,那么,**如何创造出奇数gt的延迟?** 这看似困难的事,实际上简单得多!我们回到上图4gt延时的活塞结构中,我们可以将其改造为基于红石块的传动结构,红石块的关系,活塞会到位后的下一gt就触发,这样,我们就创造了3gt的信号延迟。 **图 两种活塞延迟的示意图(拼图,用两张图将其二合一)** *分析一下具体的情况:对于上图侦测器的结构,gt0活塞和侦测器到位后,gt1侦测器激活,gt2活塞伸出,gt3活塞伸出中,gt4被推动的方块到位;对于下图红石块的结构,gt0活塞到位后,gt1活塞伸出,gt2活塞伸出中,gt3被推动的方块到位*。 结合以上4gt和6gt的延迟单元,我们可以创造出3gt和7gt及以上的延迟单元。 下面我们讨论一种奇妙的7gt延迟技巧:我们回到上图中6gt延时的结构,我们如图在斜上方放一个可充能方块,并再加一个侦测器对其qc,我们就创造出了一个简单巧妙的7gt延时,这个在kades的三向破基岩中亦有应用: **图 7gt延时结构,附kades的基岩机应用部分**。 *我们仍然可以分析一下具体的情况:先欠着。* 当然,根据上段原理,我们可以创造出11gt周期的飞行器,或是11gt的二步进结构,应用在无沟地吞上简直是点睛之笔。 **图 11gt周期的飞行器和二步进结构** 当然,在很多情况下,我们不需要如此精确地计算延迟,很多绿萌结构需要下一次启动前复位即可,正是因为很多结构所谓的“钝感”,便有了较为巧妙的布线风格:**借力**。 ### 借力 自我入坑绿萌之初,就听说过类似于这样一句话: > 厉害的布线往往应用着大量的借力。 正如上一节所言,借力就是把对时间不敏感的结构A,通过其他结构B甚至毫不相关的结构C复位甚至直接替代结构A的布线手段。很拗口是吧?让我们直接看图: **图 借力示意图,最好GIF** 由图可知,上面的无延迟连杆的活塞,在触发后,他的黏性活塞由下面一个 可能作为其他用处的无延迟连杆复位,这就是借力, 这里可以作为一个比较浅显的例子。 再结合上面的游戏刻部分,我们可以以机器运行的某一刻作为时间原点(类似于电路分析中设定的电位的零参考点。<hidden>电子相关的学生并不陌生</hidden>),每一个模块甚至每一个活塞都能得到一个gt数标记,这样我们能准确分析每一个部分的运动先后顺序。 **图 我的14m高前弹无沟地吞** 如图是我的14m前弹无沟地吞出发站部分,我们以TNT缓存输出的信号部分作为0gt点,可以测出弹射飞行器的时间间隔为7gt。(当然,标记点不同,测出的时间也不同)。 除了对机器的大小或者时间有极端要求的情况以外,大部分时候并不需要如此理性地计算时序,本小节只是提供了一个理性的分析思路,以满足极端情况下的需求。 **图 无沟地吞的借力单元,GIF** ### * b36到位时间分析 本小节可直接参考前面章节的b36到位时间分析,本小节主要讲我们如何利用b36的到位时间来压缩机器。直观起见,这里依然用pistorder来辅助讲解。 (咕咕咕)
SAVE DRAFT
SUBMIT FOR REVIEW