スーパーマリオブラザーズ3 Pダッシュ仕様について(その1)
スーパーマリオブラザーズ3の謎が深いPダッシュの仕様について述べていきます。
その1~その4までの4記事に分けて説明します。
ご興味あればぜひ見てください。
リンクは一番下にあります。
その1ではPメーターの上昇下降について書きます。
地面を走るとPメーターが増え、溜まりきるとPダッシュ状態になると分かると思います。
Pが溜まっていない通常のダッシュ状態の最大速度は40spx(サブピクセル)になります。
Pメーター上昇の基本条件として、
速度40spx以上で足場の上を走らないとPメーターは増えません。
そしてPメーターは、その上昇下降タイミングが設定されていることが分かりました。
まずPメーターの最初の1ゲージ目については
速度40spx以上で足場の上を走る1フレーム目に上昇することが決まっております。
例えば、速度40spxで空中にいるとすると、足場に着地してから1フレーム目に上昇します。
Pメーター2ゲージ目以降については
前ゲージ目の上昇判定から8フレーム後に
速度40spxで足場の上を走っていれば上昇します。
反対にそうでなければメーターは下降します。
Pメーターが下降した場合、
前ゲージ目の下降判定から24フレーム後にゲージの上昇下降判定をします。
(下降してPメーターが0になる場合のみ、24フレーム待たず即1ゲージ目に上昇できる)
このゲージ上昇下降を判定する8(or 24)フレーム目になるまでの間は何をしても自由で、
例えば、速度を遅くしたりジャンプをしたりしても、
8(or 24)フレーム目までに速度を40spxに戻し、足場の上を走っていれば
ゲージは上昇することになります。
こうしてPメーターが最大になると、
速度は40から上限を突破して、最大56まで上昇し始めます。
ゲーム画面上のPメーター表示は、製作者の意図があるのか、正しく表示されません。
Pメーターの表示は、揺らぐように0~3フレームの間でぶれます。
ただし、内部のPメーター処理は正しいフレームで計算されるのでご安心ください。
例題 1-6
ここでPメーターを溜めるためには、
① 低い段からPメーターを溜め始める
② 小ジャンプをして高い段へ登る
③ 高い段でPメーターを再び溜め始める
④ 高い段で1ブロックの穴を通過する
こうしてPメーターを溜めきることになります。
① 左側から速度40spxで移動してくるので、1歩目からPメーターが溜まり始めます。
② 小ジャンプで2段上の高台に登るには、
最小限ジャンプの場合でおよそ最低14フレーム以上空中にいます。
Pメーターの上昇は8フレームごとに足場を走らないと上昇しないため、
14フレームも空中にいることからPメーターは1ゲージ下がります。
1ゲージ下がると、次Pメーター上昇下降判定は24フレーム後になるので
空中にいる時間を24フレーム以下にすれば1ゲージ下がるだけで済みます。
画像のマリオの高さが頂点のジャンプまでなら24フレーム以下に抑えられる
低い段で、ゲージが上昇したと同時にジャンプすれば
最大+8フレーム空中にいられる時間が増えますが
気にせずに低いジャンプを心がけたほうがPメーターを見ずに行けるので楽です。
Pメーターが2ゲージ下がってしまったら、Pを溜めるのは困難になります。
③ 特になし
④ この穴の上にいるとき、Pメーターの上昇下降判定フレームが来てしまうと
足場の上にいないため1ゲージ下がってしまい、アウトです。
そうならないように、Pメーターの溜め始めポイントを調整してください。
(しっぽマリオの場合、ジャンプ中に減速するため調整が困難です)
【穴の大きさと空中にいる時間について】
1ブロックの穴は16px、ブロックの乗り判定はマリオが3px乗った時なので、
この穴の大きさは20pxとも考えられます。
マリオの横幅は12pxで速度は40spx=2.5pxであるから、
3~4フレーム空中(穴の上)にいることになります。