Posts
KFX で飛び道具を消す方法あれこれ
KFX には飛び道具を消去する命令が用意されていないので、「飛び道具は画面外に出ると消える」というゲームのルールを利用して消去を行う。
画面外に出たかどうかは飛び道具の攻撃判定が使われるので、何らかの方法で判定を画面外に移動させることになるが、決まった手順が無いので消去方法には幾つかバリエーションが存在する。
画面外に判定を設定
KFX は画面サイズと設定できる判定の範囲は同じ大きさになっているが、キャラクターは 16 ドットずれた位置に表示されるので、判定の上部 16 ドットは常に画面外に出ている状態になる。

この上部 16 ドットの領域に攻撃判定を設定してやれば、飛び道具を移動しなくても画面外に出せる、という方法。
移動量に大きな値を指定しなくてすむので、リストの項目がずれず、少し見やすくなるという利点がある。
飛び道具はヒットストップ中であってもモーションが進行するという特徴があるので、注意して使わないと意図せぬタイミングで飛び道具が消えてしまう。
画面外へ移動する (地面)
地面方向へ移動させて消去するという方法。
地面はキャラクターの基準座標になっているので、地上で出した飛び道具はステージの大きさに関わらず、一定の移動量で地面にたどり着けるという特徴がある。これは、外的要因に左右されず安定した消去が出来るということ。
また、地面だけは他の方向と違い、攻撃判定の下側が触れただけで画面外扱いされるので、判定が多少いい加減であっても問題なく消去される。
地面方向は他の方向と違い、飛び道具を消しただけで接地分岐が発生するので、キャラクター側に接地分岐が設定されていると意図せぬ分岐が起きてしまうことがある。
画面外へ移動する (地面以外)
地面以外の方向へ移動させて消去するという方法。
地面とは違い、飛び道具が移動する方向へのスクロールが可能なので、同じ方向へキャラクターが高速移動したりすると、稀に飛び道具が消えない瞬間が出来てしまう。
移動量に十分な値を設定すれば、まず遭遇することはない問題ではあるが、可能性が 0 ではないという部分が少し気持ち悪い。