Posts
KFM 2.19 リリース
主な変更点は以下の通り。
ヒットストップ設定機能を追加
昔から KFX のスカスカなヒットストップをどうにかできないものかと思っていて、matiisya さんにヒットストップ設定機能を要望してみたり、Ya-Ta さんにヒットストップを実験的に長くした特別版 KFA を作ってもらったりと、自分なりの解決策を模索してはみたが解決に至ることはなく、最終的に KFM という形で自ら実装することになった。
KFM を作る前から温めていた「motion.lst の情報からヒットストップを導き出す」というアイディアをそのまま実装したら思いのほかうまく動いてしまい、任意のヒットストップを設定できるようにする、という発想が頭から抜け落ちてしまっていたが、自動設定が全てのケースにおいて完璧に動作するわけではなく、手動で設定できた方がキャラ作成の幅は広がるだろう、ということで実装することにした。
この機能はヒットストップの「フレーム数」ではなく「レベル」を指定するものなので、好き勝手にヒットストップの長さを変えられるものではない。こうなっているのにはいくつか理由があり、例えばキャラは攻撃を食らうとヒットストップ中に振動するが、振動は左右の移動で 1 セット、つまり 2 フレーム単位で行われるので、奇数のフレーム数が指定されると見栄えが悪くなってしまう。
ヒットストップレベルは CL の小数部を利用しているが、このパラメーターを設定したキャラを他のエンジンに読み込ませた場合、KFA は小数の切り捨てが行われるので影響なし、XPlus は整数以外を受け付けないのか無効な値として扱われる。厳密な検証をしたわけではないので参考までに。
64 ビット化
CPU も Windows も 64 ビットが当たり前の時代になったので、KFM も 64 ビットに移行することにした。64 ビット化にあたり、プログラムを大幅に書き換えているのと、DirectX のような API も 64 ビット版が使われるようになるので、何らかの不具合が発生するかもしれない。
もちろん、手元では正常に動作することを確認しているが、こればっかりは安定する (問題がないと確認できる) まで一定の期間を要するので、何か問題があったら報告してもらえるとありがたい。
プレイヤーの攻撃が優先されるバグを修正
ふらふら効果の飛び道具を多段ヒットさせてヒットストップの挙動確認をしていたときに、何気なくプレイヤーの攻撃を重ねてみたら、最大コンボ数超えによるダウンで少し浮いた後、再びふらふら食らいに戻る、という少し変わった動きになったので、KFA でも試してみたら同じ挙動にならないことが判明した。
KFM だけおかしいとなると挙動を変えてしまった可能性が高いので、KFX の逆アセソースを確認してみたら、普通に飛び道具が先に処理されていた。KFX は同時ヒットを制限しているので、飛び道具が先に当たるとプレイヤーの攻撃は当たらなくなる。
ヒット処理はプレイヤーと飛び道具の組み合わせを総当たりで検索するところから始まるが、KFX はプレイヤーと飛び道具を別々に管理しているので、この組み合わせ処理が少々特殊な作りになっている。KFM はまとめて管理する方式になっているので、ヒット処理の構造が KFX とは大きく異なるのだが、どうやら作り替えた際に処理順が変わってしまっていた模様。
原因は分かったので KFX と同様に飛び道具から先に処理するようにした。