ニコニコ動画に投稿されていた
殲滅TASで問題となっている「最高速度の減少」について少し調べてみました。
このほかの現象については解析を行っていませんのでご了承ください。
以下は動画の投稿者コメントからの抜粋です。
素足の最高速度の初期値は75で、
スケボーの最高速度の初期値は81ですが、
ジャンプ攻撃をするたびに、最高速度が1ずつ目減りしていきます
ただし、素足は75 -> 73、スケボーは81 -> 80で下げ止まります
(中略)
まれに特定の敵を倒すと、最高速度が1~2増えます
まず、このゲームにおける(横)速度処理についてです。
主人公の速度は $05A4, $0DA4, $15A4, $1DA4 の4箇所に格納されていて、お互いにミラーの役割を果たしていると思われます。
速度を監視する上ではいずれか一つを見れば十分でしょう。
主人公の加速度は、地上で3、空中で1と、処理が微妙に違います。
主人公の最高速度(あるいは加速度の方向)は、ある一定の条件のもとで制御されています。
以下では、徒歩時とスケボー時の2つの場合に、最高速度がどのように振る舞うか述べていきたいと思います。
1. 徒歩時
最初にBボタンを押さずに右ボタンを押している状況を考えます。
この状況下では、主人公の速度が48以下のとき加速度はプラス方向に働き、速度が49のとき加速度は働かず、速度が50以上のとき加速度はマイナス方向に働きます。
次にBボタンと右ボタンのどちらも押している状況では、速度が72以下のとき加速度がプラス方向に働き、速度が73以上であれば加速度は働きません。
2. スケボー時
基本的な挙動は徒歩時と変わりません。
Bを押さずに右だけ押している場合、速度が72以下のとき加速度がプラス方向に働き、速度が73のとき加速度は働かず、速度74以上なら加速度はマイナス方向に働きます。
Bと右を押していれば、速度が79以下なら加速度はプラス方向に働き、速度が80以上であれば加速度は働きません。
これらを踏まえた上で、最高速度の目減りを考察してみましょう。
簡単のため徒歩時のみ考えます。
主人公の初期速度は0なので、最高速度に達するまでジャンプしなければ、最高速度は75となります(75は3の倍数)。
また、空中で攻撃するというのは、1フレームBを離すことに相当します。
つまり、速度75の状態で空中で攻撃すると、上の解析にしたがって速度は1下がり74となり、この値より増えることはありません。
速度74の状態からもう一度空中で攻撃を行うと、更に速度は1つ減少し、73となります。
ただし、速度73で空中攻撃を行うと、一瞬速度が72になりますが、72のときは加速度がプラス方向に働くので、速度はすぐに73に戻ります。
これが最高速度の目減りの原理です。
この目減り現象は、空中での加速度が1であることによるものだと言うことができます。
それはつまり、空中で失った速度を、空中で取り返せるようなシステムになっていないということです。
しかし逆に、このシステムを利用することで常に最高速度の75(スケボー時なら82)を得ることもできます。
徒歩時で言えば、着地直前に減速して、着地時の速度が72になるように調整します。
この直後に得られる加速度は
地上での加速度なので、速度が3増えて75になります。
スケボー時には着地時の速度が79になるように調整すれば、最高速度の82を得られます。