[文献] 关于MW的二三事

[复制链接]

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-8 13:33:59 | 显示全部楼层
横向移动桥和纵向移动桥在游戏运行之初就会开始运动。横向移动桥的初始运动方向为向右。
当马里奥同时站在(或横穿)多个横向移动桥上时,也会同时获得多个横向移动桥的速度。例如将两个2速的横向移动桥重合摆放,则马里奥站在上面时会以4像素/帧的速度滑动,这也就是“滑桥”的设计原理。
悬浮桥和纵向移动桥的移动都是无视实体的,但是横向移动桥并不无视实体。横向移动桥撞到实体时会反向。如果横向移动桥与实体重合,则会固定向右运行,直至与实体完全不重合,再以正常方式运行。如下图,移动桥原本会卡在左侧的三格空间中,但如果顶了隐藏砖,则会把移动桥向右“挤”,最终移动桥会卡在右侧的三格空间中。
图179.png
关卡的左右边界正常来讲是无法跨越的,但是横向移动桥可以把马里奥带出关卡右边界,左边界依然不能跨越。在视野受限时(如处于滚屏或后面会介绍的视野控制范围中时),马里奥一般也无法跨越视野左右边界,但移动桥可以把马里奥带出视野左右边界,不过马里奥依然无法乘坐移动桥向左跨越横坐标为0处的边界。事实上,无法乘坐移动桥跨越的右边界理论上也存在,只不过离得很远,一般不会涉及。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-9 11:19:39 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-9 18:39 编辑

有一个MARK’s类物件和移动桥有重要联系,那就是移动桥转向标记。
图180.png
该标记仅对横向移动桥有效,对其他桥无效。该标记也仅在编辑界面显示,实际游玩时不会显示。横向移动桥运动过程中的一端触碰到该标记时,移动桥会减速,转向,再加速至原速,类似于MF中的忽悠桥的效果。
该标记并不需要针对某个移动桥使用,多个移动桥可以共用同一个标记。移动桥两个方向的转向方式也未必需要保持一致,可以一个方向碰撞实心直接反弹,另一个方向使用转向标记。
移动桥触碰到转向标记进行减速,转向,再加速的过程中会无视任何实体,直至恢复原速时才恢复与实体的碰撞(或重合)判定。
如果是移动桥运动过程中一端触碰到了转向标记,则移动桥转向加速至原速时那一端的位置会远离转向标记一点点,这避免了反复触发同一个转向标记。但如果将移动桥与转向标记深度重合放置,则移动桥在每次完成转向恢复原速后又会再次触发转向标记,最终的结果是移动桥会被束缚在一个小范围内来回晃动。就该单个桥而言,和在移动桥两端同时紧挨着放上转向标记没有什么区别。
图181.png
如果再顶出一个隐藏砖与该转向标记重合,则该桥在每次重新触发转向标记前会瞬间触发一次与实体的重合判定,这会使得桥每次触发转向标记前的运动方向都被瞬间置为朝右。又由于每次触发完转向过程后都会远离转向标记一点点(因为是以朝右的方向触发,因此是向左远离),因此最终的结果是移动桥经过一系列的“抽搐”运动后从左侧脱离。
图182.png
图183.png
最后再提一点,马里奥站在任何移动桥上死亡或通关时“灵魂”仍会伴随桥移动一段距离。此时视野也会随着桥移动,从而触发一些与视野有关的敌人或物件的运动。该灵魂可以吃到二级道具实现“重生仪式”类先天发育(见33楼)。该灵魂也可以触发CP(之后会介绍)。
此外移动桥还与青色开关砖的二级功能有关,留到之后介绍开关砖时再介绍。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-10 17:06:10 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-10 17:09 编辑

今天介绍一个大家可能比较讨厌的东西:冰块。
图184.png
冰块未被打碎时是一个实体,与非马里奥的物件的碰撞判定机制类似于普通实心。
冰块可以被马里奥和火球龟的子弹打碎,一个冰块需要打两次才能打碎。打一次后冰块上回出现裂纹,但并不会碎,判定也仍照常。
冰块如果被流体岩浆淹没,则会直接消失(相当于被融化了)。但是敌人中的岩浆或岩浆底部对冰块不会产生任何影响。
如果马里奥在水中踩到冰块,则马里奥的横向速度会被瞬间置为0,且无法左右移动。

冰块最让大家讨厌的地方或许不是上面这些,而是当马里奥在陆地上站在冰块上时操作手感会改变。但如果进一步对这一改变的机制心里有数的话,其实还是完全可以适应冰块的。
马里奥在陆地上踩到冰块时,并不会直接改变马里奥的速度(和最大速度),而是会显著减小马里奥的加速度,直到踩到非冰块的实体或桥才能恢复。具体而言,就是冰块上马里奥对速度的改变能力减弱了。在没有踩到冰块时,马里奥可以在很短的距离用很短的时间就加到最大速度,但在冰块上时,马里奥需要助跑很长的距离才能加到最大速度。刹车时也是同样的道理,不在冰块上时稍微按一下反方向键就能刹住速度并立即转向,但在冰块上时刹车距离会非常长。
尽管改变速度的能力减弱了,但是马里奥的最大速度不会改变,因此合理利用这一点,冰块的影响也并没有那么大。下面看几个与冰块有关的例子。
例1:我们知道5引力时最高可以翻越6格高墙,而MW里是可以贴墙加速的,因此像下图这样的可贴墙的6格高墙,不管是在正常陆地还是在冰块上,只要怼着墙加到最大速度再起跳,总是可以翻越的,只不过是冰块上需要加速的时间更长罢了。
图185.png
例2:像这样不能贴墙加速的6格墙,即使最近的落脚点是冰块,利用冰块不改变最大速度的特点,也可以轻松翻越。只要在正常陆地上先加满速再踩到冰块上(当然全程右键和加速键不能松)再起跳即可。
图186.png
例3:还是刚才的情况,但如果我们想要在翻越后3格内就刹下车,如果等到落地时再试图减速肯定是来不及的,这时需要用到提前空中减速的技巧。事实上如果按住跳键不放,马里奥起跳的高度只由起跳瞬间的横向速度决定,因此在马里奥跳起后的上升过程中,我们就已经可以松开右键,按住左键进行提前的减速了。空中减速的技巧在MW操作中非常非常有用,在冰块上体现得尤为明显。之后有机会还会再提到。
图187.png
例4:像这样的F阶,在正常地面上想要跳上去并不太难,但在冰块地形上是不可能的。因为跳F阶需要快速的跳出和回拉,跳出需要足够大的横向速度,回拉需要速度的快速改变。前者在冰块上有可能做到,但后者是不可能的。即使上下平齐,在冰块上要跳上去也有一定难度,需要跳出时横向的速度不能过快,才能在空中完成减速转向的过程。
图188.png

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-11 10:26:58 | 显示全部楼层
今天介绍这4个非常基本的元素。
图189.png
前三个其实之前已经介绍过(26楼)。第四个是Check Point检查点,简称CP。CP可以提供保存进度的功能。若马里奥触碰CP后死亡,复活的位置会在CP处而非起点。关卡中可以放置多个CP,复活的位置以死亡前最后一个触发的CP为准。在一关中已经触发过的CP无法再次触发。例如关卡中有2个CP,依次触发了CP1和CP2,此后每次死亡复活都会在CP2的位置,无法再触发CP1。
CP的任意位置都可以触碰从而触发CP,但从CP复活时的位置固定在杆子最下侧。
CP除了会保存马里奥的复活位置外,还会保存触发CP时的流体高度,也就是说每次从CP处复活时,流体初始高度都会被置为触发CP瞬间流体的高度。除此之外,CP不会再保存任何东西,即复活时的所有物件的状态和各种参数与初次打开关卡时一致。
在GOD模式下,按PgUp/PgDn键可以传送到上/下一个CP处(按照编辑界面的摆放顺序依次传送)。利用这一点可以比较方便地进行关卡测试。
再补充一个关于实心的BUG。如果马里奥在防穿墙模式下与实心重合(主要通过起点与实心重合或CP复活与实心重合实现),此时保持马里奥的横向速度为零,按一定时长的跳跃键,则马里奥会如同火箭发射般高高跃起。且马里奥头顶上的实心越多,所需按跳跃键的时间越长,发射时的速度就越快。
如下图左侧的情况,其实已经能发射到很高,而右侧头顶进一步增加了实心,发射的速度和最终能够达到的高度将相当惊人。可自行尝试。
图190.png
该BUG由蓝太阳发现,原理暂不明,但效果还是挺惊艳的。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-12 22:05:28 | 显示全部楼层
今天介绍封顶实心。
图191.png
封顶实心是个比较特殊的物件,它只能放置在关卡的最上方一行(即纵坐标必须为0)。封顶实心除了可以在放置位置充当一个普通实心外,还可以阻止马里奥从关卡上方跨越封顶处。
封顶实心的实现原理比较有趣。其并不是在关卡上方设置了一个极高无比的墙。事实上,所有的封顶实心都是会纵向移动的动态实心(当然封顶实心放置位置处也会永远有一个静止实心)。当马里奥不在屏幕上方时,动态实心紧贴着静止实心的上方;当马里奥在屏幕上方时,所有动态实心的高度将永远保持和马里奥的高度一致,像一个盾牌一样永远阻挡着马里奥。事实上,动态实心远远不止有1格高,据测算,动态实心大约有高达16格的高度。因此不单单是马里奥无法翻越,多数物件也无法翻越。
但是该高度毕竟是有限高度,因此特殊情况下还是有可能翻越的,例如跳得极高的跳乌龟。此外也有可能从正下方向上突破,例如与实心重合时会上穿墙的补给。另外,由于该实心是动态的,因此如果马里奥在屏幕外使得该动态实心上移的话,动态实心的底部与封顶位置处就会出现“缺口”。
如图,正常来讲蘑菇在上升后会向右撞到封顶实心,然后反弹最终从左侧掉落。但如果马里奥在屏幕上方使得封顶的动态实心上移的话,蘑菇就可以从动态实心下方的空隙通过,最终从右侧掉落。
图192.png
图193.png

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-13 22:40:13 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-13 22:44 编辑

半格实心、单向实心和桥实心这三个特殊实心共居MARK’s类物件中的一栏,可通过鼠标滚轮进行切换。
图194.png
图195.png
图196.png
半格实心与普通实心的差别仅仅在于其尺寸为普通实心的一半。半格实心通常放置在桥样式的BLOCK上,可以很好地贴合桥的贴图的大小。如果用普通实心的话,桥的下半部分就会像是有一小层空气墙,会影响一定的游戏体验。
图199.png
单向实心和桥实心之前已经提到过,它们其实对于马里奥来说都相当于静止且透明的运输桥。它们的区别在于,单向实心也会阻挡敌人、物件等从上往下运动,而桥实心对这些敌人、物件等不会产生任何阻挡。
正因单向实心对敌人、物件等的特殊判定,使得其也出现了一些较为神奇的BUG。如图,将单向实心两两相距半格在纵向上排成一列,形成的装置可以将横向移动且正在下落的敌人、物件等瞬间传送至正上方。
图197.png
图198.png
这个BUG最早由lake发现。利用该BUG可以非常便捷、稳定地实现将物件从低处传送到高处的效果,还是相当有应用价值的。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 2024-12-14 18:44:15 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-14 18:49 编辑

今天开始介绍水管通道。
图200.png
水管通道可以将马里奥从一个地方传送到另一个地方。放置水管通道时需要同时放置入口和出口,并确定朝向。第一次点击的位置为入口位置(蓝色标记),第二次点击将根据光标的位置确定入口的朝向(可选上下左右四个方向中的一个),第三次点击的位置为出口的位置(红色标记),第四次点击同样根据光标的位置确定出口的朝向。
删除水管通道时,只能在入口处删除。删除入口后相应出口也会被同时删除。
一般来讲,水管通道的入口和出口都会设置在水管处,如下图为四个方向的出入口的常规摆法。
图201.png
可以看到,同一对水管通道的出入口处都会被标记上同样的编号,方便区分。不过该编号并非一成不变,而是会在每次运行关卡后动态调整。例如编了0~3的情况下,删除0号和1号后,其他水管的编号暂时不会改变,但按F3或F4运行一次关卡后,原来的2号和3号就会变成0号和1号。
水管通道可以在PREF’s的ADDITIONAL SETTINGS中设置为MF型或MW型(只能将所有水管通道统一设置成一种类型)。MW型水管通道在出水管后会提供一小段无敌时间,而MF型水管通道在出水管时没有无敌时间。注意出水管时游戏并不会考虑水管食人花的影响,因此不建议在使用MF型水管时在水管出口处放食人花。
水管通道看似并不复杂,但实际上水管通道也存在着不少神奇的特性(或者说BUG),之后会慢慢介绍。
首先提一个小BUG。水管通道的入口和出口都可以进行微调,但是出口无法通过Z+RFDG进行步长为16像素的微调。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 7 天前 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-15 15:54 编辑

四个方向的水管通道出口的判定位置为下图中金币的位置。
图202.png
当出口判定位置不与实体重合时,马里奥在出水管时将瞬间从判定位置处出现。如果出口处与实体重合,则马里奥会从判定位置处沿着出口的方向一直缓慢平移(途中不会受到伤害),直到与实体不重合为止。传统的出口放置方式将出口和水管重合,实际上就是利用这一判定机制模拟了一小段“出水管动画”的效果,使得出水管过程不那么突兀。当然,也可以进一步利用这一机制实现超长的出水管动画,甚至是“死亡电梯”的效果,如下图。
图204.png

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 6 天前 | 显示全部楼层
四个方向的水管通道入口的判定存在一定差异。
向左、向右和向上的水管通道入口,判定位置分别在左边缘线、右边缘线和上边缘线。当马里奥与边缘线接触或重合且按了相应的方向键(向左就是左键,向右就是右键,向上就是上键),就会触发进水管判定。
图203.png
向下的水管通道入口的判定比另三个方向更大,入口的整个下半区域都是判定区域。当马里奥与判定区域接触或重合且按了下键,就会触发进水管判定。
图205.png
由于向下的水管通道入口判定大,因此按照正常摆法,即使在水管上方堵上一层实体,也仍然能够进入水管。为了避免这种情况,可以将向下的水管通道入口下放一格作为改良。如下图左侧的水管,即使不打碎砖块,也仍然可以进入。但右侧的水管通道只有打碎了砖块才能进入。
图206.png

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 5 天前 | 显示全部楼层
最近对水管通道有了一些新发现,仍在研究和整理中,今天暂时先不更了。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 4 天前 | 显示全部楼层
下面发的一些都是关于水管通道的最新研究结果,不一定完全正确。欢迎一起探讨。
编号较大的通道入口的判定区域被编号较小的任意朝向的通道入口的2*2方格的任意位置覆盖时,被覆盖处的判定区域将会失效。失效的意思即为马里奥无法从该位置进入通道。
如下图,4号通道(向下)被0~3号完全覆盖,因此4号通道无法进入。
图208.png
如下图,0号通道是编号较小的通道,其入口判定均有效(红色)。1号通道是编号较大的通道,其判定区域被0号通道覆盖的部分无效(黑色),其余部分有效。
图207.png
同时进入了多个通道的有效判定区域时,优先触发编号较小的通道的进入判定。
如下图,左边的通道编号小,因此马里奥站在两个水管中间按下键,会触发左边通道的进入判定。如果把两个通道调换一下位置,则触发的就是右边的。
图209.png
但是触发了某通道的进入判定并不代表就会从该通道相应的出口出来。在进入的过程中会有一小段“进入动画”,动画过程中仍有可能触发到别的入口判定从而转到别的入口去。下次再来分析。

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 3 天前 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-20 20:54 编辑

在进入动画的开始,马里奥在非进入方向的坐标会移动到所进通道的“标准位置”。
具体而言,向上和向下的通道,其非进入方向就是横向,标准位置是通道横向2格的中间位置。向左和向右的通道,其非进入方向就是纵向,标准位置是通道纵向2格的下面那格。
再通俗一点来说,马里奥不管站在哪里进纵向管道,开始进入时横坐标都会被瞬间拉到水管口的中间位置。
图210.png
图211.png
马里奥不管站在哪里进横向管道,开始进入时纵坐标都会被瞬间拉到水管口的下方位置。
图212.png
图213.png
注意,标准位置仅限定在非进入方向。在进入方向上无标准位置,以触发进入判定时的位置为准。如下图向下方向的通道入口,马里奥可以在空中就触发进入判定,因此马里奥可以以更高的纵坐标开始进入动画。不同的纵坐标有可能会影响到进入动画后续的各种判定。
图214.png
图215.png

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 前天 21:22 | 显示全部楼层
本帖最后由 马里奥奥里马 于 2024-12-20 21:23 编辑

在进入动画中,马里奥为无敌状态,但视野会随着马里奥的移动而移动,因此动画过程可以触发某些与视野有关或与马里奥位置有关的物件。
马里奥在进入动画中的移动可以分为进入方向的和非进入方向的。今天首先来看进入方向的。
进入方向的移动非常简单,动画过程中马里奥每一帧会向进入方向移动1像素,总共移动约1格后结束动画。
进入动画结束时,将根据马里奥的位置最终决定进入哪个通道。若马里奥与多个通道接触,将进入编号最小的通道;若马里奥不与任何通道重合,则进入最后接触的通道(若有多个重合同样取编号最小)。
特别注意,在进入动画中,所有的通道的判定都将变为整个2*2方格的大小,且无论朝向如何,都将被同等视为与进入方向朝向相同的通道,均有可能被进入。也就是说,如果进的是向下的通道,最终判定进入的有可能原本是别的方向的通道。
如下图,0号通道向下,1号通道向左。如果小个子状态站在水管表面进入向下的通道,则在进入动画结束时,马里奥向下移动一格,将完全离开0号通道的覆盖范围,处于1号通道的范围内,因此最终判定进入1号通道。如果小个子状态站在水管上方一格实心处进入向下的通道,则进入动画结束时,马里奥同时与0号通道和1号通道接触,判定进入编号较小的通道,即0号通道。如果是大个子状态,不管是站在水管表面进入还是在上方一格进入,动画结束时的位置都同时与0号通道和1号通道接触(因为大个子体积大),因此大个子一定会进入0号通道。
图216.png

9

主题

293

回帖

4

精华

版主

经验
4035
硬币
783 枚

第二届MW杯冠军请务必再光临秘密合战!请务必再光临秘密合战!他山之石盲猜大王

 楼主| 发表于 昨天 21:57 | 显示全部楼层
之前说过,在进入动画中,马里奥在进入方向上的位移是固定的,即每帧移动1像素,总共移动约1格。但是在非进入方向上,马里奥的位置有可能发生较大变动,这种变动的原因同样来自于动画过程中对通道的判定。
具体而言,在进入动画的每一帧,游戏都会找到与马里奥当前位置接触的编号最小的通道(如果有的话),并将马里奥在非进入方向上传送到该通道的“标准位置”。
标准位置之前已经介绍过。这里再次重复一下上次说到的一个事实,那就是在进入动画中,所有的通道的判定都将变为整个2*2方格的大小,且无论朝向如何,都将被同等视为与进入方向朝向相同的通道。也就是说,如果进的是向下的通道,在进入动画中有可能在非进入方向上被传送到原本是向右的通道的横向2格的中间位置,即该向右的通道被视为了向下的通道,而向下的通道的标准位置就是横向2格的中间位置。
当然,上面说的这些可能还是太抽象了,还是举例来说明吧。
如下图共有10个通道,从左到右编号从9递减到0。9号通道方向朝上,其他通道方向任意。此时如果马里奥进入9号通道,则进入瞬间会被拉到标准位置,即9号通道横向2格的中间,这正好接触到了8号通道的范围。因此1帧后马里奥会被传送到8号通道横向2格的中间,这正好接触到了7号通道的范围。因此1帧后马里奥会被传送到7号通道横向2格的中间,这又接触到了6号通道的范围。以此类推,最终马里奥会被传送到0号通道横向2格的中间,最终判定进入0号通道。这一传送过程在视觉上非常有意思,大家可以自行实验。
图217.png
再次重复,这样的传送只能是在非进入方向上的。在进入方向上马里奥的位移是固定的,每帧移动1像素,总共移动约1格。那么由此也可以推出,整个进入动画将持续32帧左右,因此非进入方向上的传送的最大次数也就为32次左右。
以上就是最近对水管通道的一些新发现,在此之前还真的没有注意到水管通道的判定机制如此神奇,且能产生这么多的“黑科技”,还是挺让我惊喜的。下次开始继续回归正常的介绍,尽量暂时不再涉及太复杂的内容。
您需要登录后才可以回帖 登录 | 创建账户

本版积分规则