Seaside Laboratory

Posts

拡張エンジンとカノンリベンジャー

KAZU キャラ再公開の流れで久しぶりにカノンリベンジャーシリーズのあゆあゆを動かしたら、KFX の奇妙な振る舞いに遭遇することになったので、忘れないよう記しておくことにした。

このキャラは通常状態の「あゆあゆ」とスタンド状態の「はねあゆ」を切り替えて戦うのが特徴となっている。

特殊ボタンを押す度に状態が切り替わる。

説明書には、キャラの状態によってゲージ技の内容が切り替わると書かれているが、KFM 上では何をやっても「はねあゆ」の技しか発動せず、KFA でも同じ結果となった。

分かりにくいが「あゆあゆ」の状態から発動。

原因を特定するには先に「キャラの状態をどうやって管理しているのか」を知る必要がある。motion.lst を見たところ「はねあゆ」時は Ci が 41 (屈み通常技)、C が 0 (リバーサル) の行をループさせていたので、リバーサルキャンセルが可能かどうかでキャラの状態を判断している模様。

次は問題の本丸と思われる command.lst。

CmdNum--Command--Cancel--Std-AmnNum--Vx--Comment
   119      26p   00100  001    480   0  ;ayuayu
   120      26p   00100  001    470   0  ;ayuayu
   121      24p   00100  001    970   0  ;ayuayu
   122      24p   00100  001    470   0  ;ayuayu
   123     2n2p   00100  001    480   0  ;ayuayu
   124     2n2p   00100  001    470   0  ;ayuayu

   125      26p   00001  001   1260   0  ;ayuayu
   126      24p   00001  001   1140   0  ;ayuayu
   127     2n2p   00001  001   1063   0  ;ayuayu

Cancel にリバーサルが設定されている最後の 3 行が「はねあゆ」用のゲージ技となっている。これを見て一番最初に思ったのは「正しく動いている」だった。「はねあゆ」用のコマンドはゲージ以外の制約がなく、優先度も高いので、常にこれらの行が発動するのは当然の結果である。

逆に何故 KFX だと意図した動作になるのか。KFX は「優先度の低い行からゲージを消費しながら走査していく」というアルゴリズムのため、先に「あゆあゆ」用のコマンドが処理される、というのが答えだった。こんな書き方をすると「え、KFX って CmdNum が小さい行が優先されるの?」と誤解してしまうが、ポイントは優先順位の低い行から走査はするものの、発動可能な行を見つける度に候補を上書きするため、結果的に CmnNum の大きい行が優先される。

優先順位の扱いが同じとなると「拡張エンジンと同じ結果になるのでは?」という疑問が出てきて、話が振り出しに戻ってしまう。KFX だけ結果が異なるのは「ゲージを消費しながら走査してく」という処理の特殊性に因るもので、「あゆあゆ」用のコマンドを処理した時点でゲージは消費し尽くされるため、「はねあゆ」用のコマンドはゲージ不足で発動できなくなる。

KFX の最大ゲージ量は 2 なので、どう頑張っても「はねあゆ」用コマンドには到達しないが、理論上はゲージさえあれば KFX でも「はねあゆ」用の技を発動できるということになる。これは実験するしかない。

ゲージ初期値を書き換えて無理やり 4 ゲージ化。
3 ゲージ消費して「はねあゆ」の技を発動。

結論。カノンリベンジャーやばい。