まったりFuropenブログ

ではごゆっくり

スーパーマリオブラザーズ3 壁抜けについて(立ち抜け編)

7-1の壁抜け等に使われる立って壁を抜けるやり方について述べます。
ただ速度を出してジャンプするだけなので操作が簡単なのが魅力ですね。


壁抜けには、足場となるブロックに乗りたいので、
マリオが天井に大きくめり込まないといけません。
ブロックの角は天井当たり判定がなく深くめり込むことができるため、
7-1のような壁の形状では、壁抜けができることになります。



これではめり込み高さが足りず、マリオの足がブロックの高さに届かない



マリオが半分くらいめり込めばOK

これはジャンプタイミングが早くても遅くてもNGで
(早いと壁の左に押し出され、遅いとめり込み高さが足りない)
そのタイミングは1フレームのみになり、そこが難点です。
しゃがみジャンプ抜けは1フレームではない

壁との適切な距離かつ適切なフレームでジャンプをしたら壁抜けが成功します。





これで終わりのはずでしたが、どうやら例外があるようです。
下図のように、より深くめり込んで壁を抜けるパターンもあります。



深くめり込んだとき、特定の座標でマリオがスライドされるようです。
(この仕様を筆者は現在全く理解できておりません)
特定座標で左に押し戻される場合や、右に押し出される場合があるようです。

押し戻される場合は速度が0になって反対方向に-1pxスライドされますが
押し出される場合は速度は変わらず、進行方向に+1pxスライドされます。
壁にめり込んだのにやけに手前で止まるのは、この仕様のせいです。

この謎の仕様のおかげで1pxスライドするので
壁との距離が16spx~23spxのとき、壁抜けの条件を満たすことができます。

ただしこの場合、高さ方向のspxが重要になります。
 高さ方向のspx=0~5 : 壁の左側に押し出される
 高さ方向のspx=6~15 : 壁抜けが成功する。 

この値の調整についてはステージ内でも可能ですが、調整に時間がかかるため、
壁抜け試行回数を増やしたほうがよいと思います。



まとめ
 立って壁抜けする場合は
 壁との距離が 0~7spx または 16~23spx(条件あり)のとき
 適切なフレームでジャンプすれば壁抜け可能