Posts
KFM 1.96 リリース
直さなければと思いつつ放置し続けた項目の改修が多いので、大きな機能追加は特になし。描画処理の再構築に時間を取られ過ぎた。
主な変更点は以下の通り。
描画を DirectDraw からソフトウェアレンダリングに変更
DirectDraw 版は API の制約上スプライトをフルカラーで保持しなければならず、chara.bmp が大きいキャラ同士の対戦となると、VRAM (メモリ) を大量に消費していた。例えば、UNBER で同キャラ戦をすると、
バージョン | メモリ使用量 |
---|---|
1.92 | 47.9MB |
1.96 | 16.4MB |
これだけの差が出たりする。chara.bmp の容量以上の差が出ているのは、スキンによる消費も抑制されているため。
最近の PC のスペックであれば気にする程の量ではないが、同程度のゲームが作られていたセガサターンのスペック (VRAM 1.5MB + 拡張 RAM カートリッジ 4MB) を大幅に超える VRAM 消費は、さすがに無駄使いし過ぎかなと。
パレット機能の強化
パレット機能を持たない旧バージョンの KFM で、どうやってパレットのような表現をしていたかというと、「予めパレット適用済みのスプライトを作っておく」という力技。
この方式はパレットを増やす度に大量の VRAM を消費していくので、スーパーコンボの残像とブロッキング時の点滅色に同じスプライトを流用するなどして節約を行っていたが、パレット付き描画機能が備わったことでこの制約から解放された。
開発ライブラリにパレットだけ読んでおく機能を追加したのでリアルタイムの色変更にも対応。
古い DirectX API の廃止
描画をソフトウェアレンダリングに切り替えたことで DirectDraw を使っている箇所がほとんどなくなったが、残っていた解像度変更処理も Win32 API にしてしまったので完全廃止となった。
DirectMusic は Windows 8 上で動作が不安定ということと、DirectX SDK から削除され非推奨 API になったこともあり、これも廃止に。
ゲームスピードの高速化
以前から FPS を 25 から 30 に上げたいとは思っていたが、
- KFX の演出や当時のキャラは 25 フレーム前提で調整されている。
- スピードを速くするとビデオを早送りしたときのような不自然な見た目になる。
という理由により決心がつかず、ズルズルと先延ばしになっていた。とはいえ高速化をすると、
- 市販ゲームとのゲームスピード差 (やや遅い) を小さくすることができる。
- フレームレートが上がり、キャラクター移動の荒さが軽減される。
- フレームの分解能が上がったことでヒットストップの微調整がしやすくなる。
というメリットもあるので FPS を変更することにした。「ナックラーへ 100 の質問」の回答で 30 FPS 派が多かったという理由もある。
バトルシーン以外も 30 FPS に変更したので、スキンのアニメーションスピードを再調整しなければならず、結構面倒な作業とになった。
ちなみに、スピードを高速化していたときの脳内開発コードは「Knuckle Fighter Maniax Turbo」。
enemy.lst のズレを解消
「KFX の enemy.lst とヒットストップ」にも書いたように、長いこと放置していた enemy.lst のズレを解消した。そのかわり KFM 用にチューンされていた Blade の永パ風コンボがつながらなくなってしまっている。今後はヒットストップ変更による影響を受けなくなる、ということで勘弁していただきたい…。