Seaside Laboratory

Posts

KFM 2.06 リリース

主な変更点は以下の通り。

表示コンボ数の改善

途中で補正切りが入っても問題なし。

KFA でこっそり導入された「ダメージ 0 でも表示コンボ数はリセットされない」機能は、KFX に浸透してしまった強引なコンボ補正切りを自然な見た目に変えてくれる気の利いた機能だと思い込んでいたが、T パラメーターの仕様を紐解いていくと「単なる副産物なのでは」という認識になった。

KFA で投げ技を作る場合、相手を持ち上げたり振り回したりするために操作用の攻撃を当てることになるが、体力を減らすことが目的ではないのでダメージを 0 にすると、KFX から引き継いだ仕様によりコンボ数がリセットされてしまう。こうならないよう T パラメーターにはコンボ数のリセットを抑制する機能がついている。

KFX ではコンボ補正に影響するコンボ数と表示されるコンボ数は全く同じものだが、新たに表示用のコンボ変数を追加して、それを T パラメーターと同じアルゴリズムで更新してやれば KFA と同じコンボ数表示を作ることができる、という話。

K.O. 時のヒットエフェクト改善

ゲームには「ゲームの進行は停止しているがアニメーションは行われる」といった状態が多々あり、例えばアドベンチャーゲームの文字送りカーソルなどがそれに該当する。このようなゲームの特性を考えるとスキンの仕様は「ゲームの状況に関係なく動き続ける」とするのが妥当で、実際多くの場面で問題なく動作する。

その中でも K.O. は問題が起きる数少ないシーンのひとつで、K.O. 表示とヒットエフェクトのアニメーションが通常通り進行した結果、表示時間の短いヒットエフェクトだけ先に消失し、やや迫力に欠けた見た目なってしまう。この現象は KFM だけでなく似た仕様の KFA でも発生する。

これを回避するには K.O. が発生した瞬間に特定のスキンだけ一時停止を行い、K.O. が終了したら動作を再開する、という当たり前のやり方で解決するしかないが、特定のスキンだけ一時停止したり再開したりする機能なんてものはなかったので、スキンのデータ保持方法なども含め機能全体を改修することになった。

暗転フレーム数の変更

KFA を想定して作られた暗転時の演出が KFM でも動作するよう暗転時間を 15 から 20 に変更した。

時間が延びたので発動エフェクトの枚数も増やしておいた。

KFA には「暗転後の先行動作時間」という KFX と異なる仕様があることは知っていたが、暗転時間そのものが変わっていたことは知らなかった。KFX の 15 フレームという値は単純に引き継いだだけで特にこだわりがあったわけでもなく、時間を延ばしたことによる影響も小さそうなので変更することにした。

T パラメーターの追加

KFX で投げ風の技を作る際に邪魔になるのがヒットエフェクトなどの演出で、技の流れとしてエフェクトが表示されても問題ないような見た目なら気にすることはないが、相手を投げ飛ばすような動きだとどうしても不自然な見た目になってしまう。特に KFM は吹き飛ばし時のヒットストップが長いので、投げたときに「引っかかる」感が出てしまいよろしくない。

自然な見た目に。

この問題は随分前から把握していたものの、T が持つ機能は KFX のガード属性で賄えないものが多く、対応するにはヒット判定も含め大がかりな修正が必要だったため、長年放置されていた。

コマンド文字数制約の緩和

ターンパンチのようなボタン溜めタイプのコマンドを定義する場合、「押しっぱなし」修飾子をボタンひとつひとつに付加しなければならず、結果としてコマンドがやたら長くなり、タメ時間によっては最大文字数を超過してしまうことがあったので、最大文字数を増やしてこの問題を緩和した。

修飾子とボタンを組み合わせた 2 文字は内部的に 1 フレームのコマンドとして展開されるので、基本的には短く変換される傾向にはあるが、内部のコマンドサイズはコマンドバッファと同じという点は変わっていないので、文字数が増えたからといって展開後のサイズが大きいコマンドを指定すると溢れてしまう。