NekoFlightに関する作者のたわごと’98

NekoFlightのページに戻る ’97のNekoFlightに関するたわごとを見る


11/8日、Ver0.9 3DFC版データ修正

 何人かの方から、3DFC版で地球が真っ白というメールを頂きましたので原因を調べてみたのですが、どうもテクスチャフォーマットのせいだったようです。結局、テクスチャに24ビットカラービットマップを使うと誤動作するチップがあるらしく、現状でこれに相当すると判っているのは3D RageIIとS3 Savageです。以前のバージョンで24ビットカラーデータだったのは地球以外に、空、追加モード用の煙と爆発パターン、ビルのテクスチャなどでした。もしかするといままでこれらのテクスチャが変だったのに気がつかない方がいたかもしれません。

 ということで、テクスチャデータを全て8ビットパレットに変更したものを公開しておきます。これなら、3D RageIIやSavageでもOKのはずです。あと、こちらが使っているVisualC++のバージョンが6.0に上がったので、新しいコンパイラで再コンパイルしておきました。動作的には、何も変わってないはずです。

11/4日、Ver0.9 3DFC版一時公開

 10月31日に行われた3D Fellows Conference(3D野郎大会)向けに製作したバージョンを、一時的にHPの方でも公開します。なお、3DFCに関しては、作者現状の方も見てください。

 この3DFC版、普通のVer0.9とどこが違うのかですが、主に上空の処理の部分が変わってます。YF-1(ゲーム版)の方はいろんなシチュエーションを楽しむという代物に仕上がりつつあるのですが、そのシチュエーションの一つとして、宇宙空間や大気圏突入などがあり、それに絡んで、YF-1ではNekoFlightと違って、ちゃんと上空の処理が宇宙空間までされています。(なお、正確にはする予定。まだ細部が完成してない(^^;)。

 ということで、今回特別にこのYF-1用に作った宇宙用ルーチンα版をONしたのがこの3DFC版です。とりあえず、ロボットにしてブーストし続けて高度3万以上に上がってください。きれいな地球が見えるはずです。

 ↓ こうなるはず(ただしビデオボードによっては変かもしれず)


 なお高度3万mで航法モードが宇宙用に切り替わりまして、この時点で推進方式が外気取り入れから、内部燃料使用に切り替わります(正確には内部推進剤(プロペラント)使用、YF-1ではパワージェネレーター本体はほぼ無制限に使えるという設定です)。で、この3DFC版ではプロペラントが減らないようになってますので、どこまででも上昇できます。上に上がって遊んでください。

 あと、今のところ地球自身の処理がいいかげんなので真上以外には行かないようにしてください。きちんと地球丸くなってるんですが、後ろ側がありません(笑)。テクスチャデータ見ればわかりますが、いまのところ地球の写真を球に平行マップしてるだけです。同様、重力計算もニュートン系ではなくガリレオ系です。重力は必ず下にかかりますので、地球の周りを周りつづけることはできません。きちんと地球を周回できるようにしたいとこですが、YF-1に想定しているステージ設定ではこれで十分なので手抜きしてます。もしかしたら、将来的には地球全て作るかもしれません。

 あと、どこに下りても同じランドスケープ地面です。海に下りてもなぜか地面があります(^^;。YF-1では、海上も作る予定になってますが、まだできてません。とりあえず、美しい地球を見るのが、今回の楽しみ方ですので、将来に期待ということで。

 もひとつ注意点として、上空表示はDirectX表示モードでないとうまく動きません。ゲーム版YF-1の方は、WinGとフラットポリゴンモードがなくなって、ワイヤー表示とDirectX表示だけになると思います。このあたりは表現能力の点で仕方がないと思ってください。

 あ、あと、Ver0.9にあったテクスチャが非常に拡大された時にテクスチャがゆがむというバグがとってあります。その他、ごちゃごちゃ直した気がするけど、忙しくて忘れました(^^; 今はレンズフレアや音、スペースコロニーの壁判定など平行して作ってますがあ〜暇がぁぁぁ

9/15日、Ver0.9公開

 やっと正式版の公開となりました。今回の正式版バージョンアップは、DirectX周りを完全に作り変えた&忙しかったので、半年もかかってしまいました(^^;

β3からの変更点は、細かいチューニングやバグフィックスです。バグの方は細かいものばかりなので省略します(主に、防御系の修正や、いろいろなトラブルへの対処です)。

チューニングの方は、DirectX時の爆発周りの細かい修正や高速化です。速度関連では、最も確実に速度を上げられる方法ということで、画面の大きさを半分にできるようになっています。ビットマップコピーが遅めのビデオボードでは、これが最も効果的でしょう。その他、できるだけ高速化しましたが、実は速度面で最も重要なことはWindowsの画面の解像度などを最適な状態に設定して起動することです。この辺、ヘルプのほうにトラブルシューティングに関する記述を追加しましたので、一度目を通すようにお願いします。あと目立つ修正点は、Direct3D周りの設定ダイアログを作ったことぐらいでしょうか。

さて、画面周りや動き回りはこれでだいたい完成ですので、次は前からの計画通り、効果音のほうを実装しようと思います。Ver1.0では、他にスクリーンセーバー機能などが付く予定です。あと、NekoFlight Ver1.0より先にYF-1の評価版の方を公開すると思います。

8/30日、Ver0.9β3

 βにつき、あいかわらずバグフィックス中です。主な修正点は、

です。あと、デモ設定がダイアログからメニューに移動してるなどの細かい変更点があります。

新機能としては、機体同士の干渉チェックの追加があります。敵機と高速ですれ違うと機体がゆれます。

さて、βはこれが最後で、次が正式版Ver0.9になる予定です。基本的にヘルプ付けるだけですが、速度か非常に低下しているので最後にできるだけチューニングしようと思います。主に、ミサイルと機体の表示周りでしょうか。あと、まだバグがあるはずなのでできるだけつぶします。何かありましたらメール下さい。

8/31にちょっと修正

Premedia2で煙が見えないという報告を受けましたので、Direct3D周りの設定を細かく実験できるように修正しました。Flight.iniのDirect3Dセクションを直接編集することでいろいろ変えられます。またこれに伴い、半透明表示周りのデフォルト設定が変わっています。以前の状態に戻すには"UseAddMode=0"としてしてください。現在のデフォルトは、値を加えていくタイプの半透明表示となっています。

8/20日、Ver0.9β2

 今回も主にバグフィックスです。修正点は、

などです。Glide表示モードは、マシンをハングさせることがあるという致命的なバグが取れない(^^;のと、結局NekoFlightでは画面や表示速度が、DirectX-IM表示とあまり変わらないので、最終的に削除することにしました。Glideでは、アンチエイリアスラインやアルファグーローが容易という利点があり、主にHUD表示時にGlideの方が綺麗という利点がありましたが、開発速度を上げるために今回はGlideモードをお蔵にします。半透明HUDはDirectXでもできなくはないので、将来的には半透明のHUDやGlideモードを復活させたいとは思います。

その他、新しい改造点としては、

などがあります。太陽の方はレンズフレアとかはやってなく単に空のテクスチャに太陽描いただけです(^^;レンズフレアもやりたいとこですが、気が向いたらやります。あとアイコンの方は、西 紘平さん(kounishi@mba.sphere.ne.jp)にデータを戴いたので取り替えました。ありがとうございました(^^/

さて、あと残っているバグとしては、

などがあります。他に何かあったら教えてください。あとバグじゃないんですが、爆発煙がDirectX時もGDIで描いてるので貧弱というのがあり、直す予定です。

8/12日、Ver0.9β1

 βになり、そろそろ一度まとめようということで、細かい不都合の修正を行いました。今回の修正点は、

です。MMX対応の方は、今のところCPU IDチェックをやってませんので、対応CPUをお使いの方だけONしてください。そうでないと、NekoFlightが飛ぶだけです(^^;。
 あと、ちょっとしたおまけ表示を加えてまして、

など加わってます。そのうち太陽や雲の表現もやりたいです。

 さて、問題点はまだ山のようにあります。今のところ分かっているのは、

などなどです。次のβでできるだけ直します。

7/22日、Ver0.9α8

 3Dアクセラレータがない場合のためのテクスチャマップルーチンを新しく作りました。本当はDirect3DのHELがあるので、ここまでやらんでも良いはずなんですが、HEL遅いし、いろいろと機能が足りないので、しょうがないので独自ドライバです(^^;。これ、WinG上で動いていて、DirectXを用いていないため、ほとんどの環境で動くと思います。ただし、6万色の画面モードにしてください。
 この自前ドライバですが、さすがにDirectXのHELドライバよりは早いですが、640x480、6万色モードでソフトウェアテクスチャマップする都合上、Pentium200MHzあたりがまともに動作する最低ラインだと思います。機能的にはテクスチャマップとフォグの機能がありますが、パースペクティブコレクト機能をまだ実装してないため、地面に近づくと致命的にテクスチャがゆがみます(^^;。そのうち直します。 これにより、画面モードは、ワイヤーフレーム表示(GDI)、ポリゴン表示(GDI)、テクスチャ表示(WinG)、DirectX表示(Direct3D-IM)、Glideの5モードに簡略化して、細かいオプションをはずしました。バイリニアフィルタぐらいの選択しかできません。
 他の変更点として、DirectX表示に関して少し凝りました。ミサイルの煙を細めにしてテクスチャ張ったり、爆発にもテクスチャマップを追加したりしました。DirectX側は、オブジェクト表示周りや煙を除けば、 そろそろ出来上がりかなと思ってます。
 えんえんと、表示周りを改造してましたが、えーかげんやんなってきましたので、次辺りで、もう少し改良&バグとり&高速化をして、β版にしようかと思います。表示周りじゃなくて、ステージ設定周りの改造予定だったんだけど(^^;うーむ。

6/24日、Ver0.9α7

 Direct3D-IM動作時に地面にテクスチャが張り付くようになったので公開します。これで、背景に関してはどうにかVer0.9α3のレベルに戻ったでしょうか。α3までみたいな手抜きフォグでないので、上空に行くと自然に地面が見えなくなります。また、Ver0.1からずっと問題になっていた、フィールドに端があるのがようやく直りました。どこまででも行けます。また、上空に行っても変な隙間が見えなくなっていると思いますし、地面だけみれば市販ソフトのレベルなのでは。次のような画面です。IMはハード間の違いを吸収するのが面倒ですが、RMと比べて、細かい点まで調節できますね。

new.gif (56104 バイト)

なお、DirectXをONにするには、3Dアクセラレータに最新のものを使っている必要があります。こちらで動作を確認したのはVoodoo Rush, Premedia2, Riva128です。古めのカードだとフォグがまともにかからなかったりするようです。あと、各ボードによってフォグのかかり方に微妙に違いがあるようで、Riva128だと少しフォグが不自然かも。なお、3Dアクセラレータがない場合、半透明やフォグが効きません。そもそも遅いので選択しない方が良いでしょう。あと、今回、エラーチェックを少しまともにしました。今まではエラーほとんど無視してたし。

6/11日、Ver0.9α6

 機外視点を付けたので公開します。本当は他にも改造してから公開しようと思ったのですが、なかなか良い感じなので早めに公開しました。まだ視点をどのように定めるかに関してチューニングが甘いですし、自機の後方から、自機と同じ方向への視点のみです。ただ、この視点の場合、違和感なく操作できますので、この視点をデフォルトにしても良いかもと思ってます。
 あ、あと、変形とかしても自機形状は変化しません。Ver0.9α3以前はそれぞれの機種用の形状ありましたし、変形もしてましたが、現在表示周りを作り直し中なので、常に固定です。そのうち直ります。足の位置とか内部的には既に計算しているので、エンジン炎とかきちんと表現したいとこですが。

6/9日、Ver0.9α5

 どうにか動くようになったのでDirect3D-IM版を公開します。ただ、まだテクスチャ張ってません。αグーローとかもまともに使えないから、Glideと比べるとIM版、貧弱です(^^;
 しかし、バグ取りに1ヶ月も使ってしまった(笑)。DirectXは各マシンのばらつきが大きいのでプログラム組むのが面倒です。実はどうしても取れないバグがまだ数点残っているのですが、あきらめてそこは隠しました。とりあえず問題にならないはずです。あと今のところ速度的にあまりチューニングできてません。ですので、Ver0.8α3からすると改悪です(^^;加えて、半透明がまともに使えるHAL以外ではあまり綺麗でもないです。このあたりはもう少しお待ち下さい。
 なお、今回からウインドウのリサイズができなくなってます。また、レジストリ使うのをやめて、プログラムと同じディレクトリにINIファイルを作るようにしました。あと、使用ポリゴン数が左上にでてます。ミサイル1発で100ポリゴンぐらいでしょうか。しかし、ミサイル20発程度で思いっきり速度が落ちてしまいます。うーむ遅いぞ(^^;

5/8日、Ver0.9α4

 どうにかGlide対応版ができましたので公開します。今回のバージョンはVoodooかVoodoo Rush搭載のボードを持ってないと意味ないです(私はRushしか持ってないので、もしかするとVoodooで動かないかもしれない(^^;)。今回、DirectX周りを一時的に削除してますので、Glide以外は表示周りがVer0.4相当にバージョンダウンしてます。あと、Glide用のテクスチャデータの作り方がまだ良く分からないので、今回のバージョンでは、変なテクスチャ張ってます(文字表示用のデータをテクスチャとして貼り付けてます)。それと、Glide使用時はHUD表示が半透明+アンチエイリアス表示になりますが、この表示の明度はその他設定ダイアログで設定できます。

 Glideに関してですが、DirectXと比べると非常に使いやすいのですが、低機能なのでいろいろと面倒でした。3Dライブラリというよりは、3D向きの2Dライブラリで、3角形やラインを書く機能しかありません(使える座標系は画面座標系のみ)。とどのところが、Direct3D IMのD3DTLVERTEX相当の機能だけです。
 あとせっかくですので、今後、DirectX側もDirectX5対応にしようと思います(プログラム的にはGlideと変わらんので)。これに絡んで、今回のバージョンではDirectX周りが削除されてます。Direct3D RMを使ったバージョンはα3が最後になると思います。


4/6日、Ver0.9α3

 どうにか大学の方も落ち着いてきたので、YF-1の方のバージョンアップをしてました。それに絡んで、ステージ周りの設定をやっとファイルからできるようになったので、NekoFlightの方も関連して修正しました。
 ファイルメニューの「ステージ設定を開く」で、Sample.txtファイルを読んで見てください。まあ、特に面白いことはないですが(^^;、いろいろと設定を変えられます。Sample.txtファイル内のドキュメントを見てください。メッシュの高さとか、オブジェクトの位置や大きさ、用いるテクスチャの設定などを自由に変えられます。オブジェクトに関しては、ここでは直方体に限ってますが、大きさや配置、個数など自由なので、これだけでもいろいろ表現できます。一応、表示周りと衝突判定が分離しているんですが、NekoFlightではまだ意味が無いです。もっと複雑なオブジェクトも直ぐに置ける様になりますので、お待ち下さい。
 その他、プログラム内部はYF-1との関連からいろいろ変更されているんですが、表面的にはあまり変わってません。
 あと、スクリーンセーバー機能とかも既に追加されているんですが、こちらもまだ挙動が怪しいので、公開しませんでした。

3/21日、Ver0.9α2

 やっと、研究室の引越しが終わりました(^^;。少し時間ができたので趣味プロ・・・。今回は基本に戻って、ミサイル軌跡の美しさ(笑)に磨きをかけました。といっても、ミサイル側の変更ではなく、目標となる敵機の動きの方を、従来のものよりも滑らかにし、よりミサイルがきれいに曲がる様に変更しました。ミサイルを奇麗に見せるには、追いかけられる方の動きも重要です(笑)。
 また、設定に関することなのですが、よりミサイルの動きをきれいに見せるには、目標を追いかける目標に向かってミサイルを撃つと良いようですので、その様にデモの設定を変更しました。機種設定ダイアログのミサイル乱射デモを選択してみてください。個人的には、これが現状で最も美しい動きだと思っています。
 この敵機の動き変更を行ったのは、実はスクリーンセーバー機能を付けようとしたからなのですが、こちらはまだ実験中です。実装予定リストの方にこれらの実装予定を書きましたのでそちらも参照してください。
 あと、PowerVRでポリ欠けするバグですが、単にPowerVRドライバのバグのせいだった様です(^^;
http://www.powervr.com/html/drivers.htmで最新のドライバをダウンしてみてください。

3/15日、Ver0.9α1

 いろいろとごたごたしているため、大規模な変更はしてないのですが、表示周りを少し変更しましたので公開しておきます。今回は最新のDirect3Dアクセラレータ向けの変更です。主な変更点は、ミサイルの煙と爆炎表示部で、半透明+テクスチャを用いることができるようにしました。デカールとかいろいろ実験してみたのですが、これが一番それらしいかなと(上の画面がこれです)。
 なお、半透明+テクスチャは全ての環境で動作するわけではありません。まずソフトウェアエミュレータ(HEL)では半透明になりません。また、一部(というか、結構の)3Dボードでも半透明が効かない様です。具体的には、私の手持ちのボードでは、ViRGEやPowerVRではだめで、VoodooRUSHでは大丈夫でした。速度の問題もあるので、まともに動作するのはあとはRIVA128とかPREMEDIAぐらいじゃないんでしょうか(^^;。なお今回の変更を見るには基本的に、画面系のオプションを全てONにする必要があります。
 あと変更したのは、地面のテクスチャを変えてみたとか、一部リソースリークしていたので直したことぐらいでしょうか。
 本当はいろいろご要望を頂いているので、対応したいところなんですが(^^;うーむ

2/5日、Ver0.8公開

 特に致命的なバグはないようですので、ヘルプを変更してVer0.8としました。今回はバグフィックスがメインだった気がします。そろそろ、YF-1の方も公開したいのですが、いつになるやら(^^;
 

2/3日、Ver0.8β2

 またまた、いろいろとバグが発覚しましたので、そのバグフィックスをしました。見つかったバグは、機銃をOFFにできない、ミサイル設定での修正予測追尾係数の変更が保存されない、キー設定ダイアログで設定できないキーがあった、ミサイル追尾アルゴリズムにおける追尾精度低下などです。キー設定ダイアログでのキー設定は、どうもキーボードの種類によって動作が異なっていた様ですが、各キーボード毎のコードを直接読み取る様にしたので、どのキーボードでも問題無く設定できるようになったはずです。ただし、キー設定ダイアログで表示される設定キー内容が実際のキーと異なって表示されることがあるようです。このあたりは、WindowsのHotKeyControlのせいということにしておきます(^^;
 あと、ミサイルの追尾精度低下ですが、これは本当はバグではなく、ミサイルの向きが暴れるというのを止めるように入れておいたものでした。せっかくですので、この修正率もユーザ側で設定できる様にしておきます。ミサイル設定での方向変更率というものです。NekoFlightではミサイルの角速度(回転する速度)をまじめに計算していない(でないと、各ミサイル毎に飛行機と同じ計算をする必要があり重いし、ミサイルを目標に当てるアルゴリズムが非常に複雑になる)ため、ミサイルは好きな方向に一瞬で向くことができます。この方向変更率というのは、このミサイルの方向変化を調整するもので、1にすると一瞬で向きがかわり、小さくすると、向きの変更に時間がかかるようになります。結果的にこのパラメータを小さくすると、追尾の精度が下がり、ミサイルの挙動がオーバーシュートぎみ(ふらふらする)になりますが、CAMM-12などではそちらの方が理想ですので、このパラメータを小さくしてあります。より美しい軌跡になったと思っているんですが、どうでしょう(^^;
 あともう一つミサイル設定に追加しました。どうもミサイルの近接信管をわざと切って、ミサイルが迷走するのを楽しまれている方が結構いるようですので(笑)、接触信管の方も感度を調整できるようにしました。接触信管では近接信管と違い、ここで設定した距離内にミサイルが目標に近づくと無条件で爆発します(近接信管では、設定距離内に入っても目標を追い超さないと爆発しません)。近接・接触信管感度を共に0にすることで、ミサイルが完全に当たらなくなります。
 あとはエアーブレーキをつけました。変形できる機体の場合は、変形した方が効果的に減速できますので、これは主に変形できない機体で用います。単純に、押している間、主翼の抵抗係数を増やしているだけです。デフォルトはCキーです。
 このβ2で致命的なバグでも見付からない限り、ヘルプを書き換えてVer0.8になる予定です。バグを見つけた方は、報告していただけると助かります。なお、今手元にPowerVRの3Dアクセラレータがあるのですが、なぜかこれだとポリ欠けします。致命的なバグなので直したいのですが、なぜか直りません(^^;。表示周りがまったく同じなのにYF-1の方だと何故か問題無いのですが(^^;。この理由が推測できるかたは教えていただけると助かります・・・。PowerVRドライバのバグ?あと、Trio64+PowerVRの組み合わせだとHALが認識されないし、うーむ。
 なお、HALで動いているかHELで動いているかは、バージョン情報ダイアログに表示されています。3Dボードを用いているのに、ここでRamp Emulationと表示されている場合、実はその3DボードはNekoFlightで使われてません。3Dボードが利用されている場合、Direct3D HALと表示されます。3DボードがあるのにRamp Emulationとなっている場合や、動作がおかしい場合などは、作者にご利用のビデオボードの情報を報告していただけると助かります。
 

1/30日、Ver0.8β

 いろいろとバグを報告していただいたのでそのバグフィックスと、また新たに設定系を増やしましたので公開します。バグの方は、ステージ設定によっては地面にめり込むことがあったとか、各設定ダイアログでの値の保存や初期化が変だったとかです。
 また、新たに追加された設定は、ミサイル周りの設定と、ジョイスティックセンターの遊び設定などです。
 ミサイルには以前から、打ち出し時の初速というものがありましたが、まずこれがミサイル設定から、各機体のミサイル設定の方に移動しています。また、今まではミサイルの初速を前・後方にしか設定できませんでしたが、上下方向と、機体から離れる方向への初速のランダム成分を設定できる様にしました。また、ミサイル設定ダイアログの方でも、燃焼遅延ステップというものが増えています。これは前からあった追尾遅延ステップと似ていますが、追尾を遅らせるのではなく、ミサイルのモーター(推進剤)への点火を遅らせるパラメータです。追尾遅延ステップの設定で追尾が止まっている間も、ミサイル自身は加速されて前方に進んでしまいますが、このパラメータを調節することで、一定時間ミサイルが自機の周りに留まっているように設定できます。
 今回のこれらのミサイル設定は主に二つの目的で設けてます。一つ目はスパローなどの大型ミサイルで用いられるカートリッジ打ち出しで下方に切り離してからミサイルを点火することを表現することで、もう一つはアニメで見られる発射直後にミサイルが機体の周りに派手にばらまかれるというものを表現するためです。今回のバージョンでは、CAMM-12をある程度、後者のばらまきかたに変更してありますが、より派手にしたい方は、モデル設定ダイアログに追加した、ミサイルの初速開度をもう少し大きくしてください。あと、ミサイル設定ダイアログで燃焼遅延を大きくするとかです。ミサイルの初速開度は前からあった、取り付け角開度と似てますが、こちらがミサイルが始めにどのぐらい機体外向きの角度を持っているかの設定なのに対して、初速開度は機体外向きの初期速度です。加えてこちらは乱数で決めているために、ばらばらと機体の周りに打ち出されることになります。
 あと追加された設定はジョイスティックの遊びの設定です。機体が勝手にぐるぐる回ってしまうという報告を頂きましたが、どうもスティックのセンターがずれてしまうためらしいので、ある程度以上センターにスティックが近づいたら値を打ち切れるようにしました。ただし、この値は用いているスティックごとに最適値が違うので、ジョイスティックセンターダイアログのセンター設定で各軸毎に細かく設定できるようにしておきました。
 次にNekoFlightのバージョンに関してですが、本当はステージ設定を完成させてVer0.8にしようと思ってたのですが、かなりバグが見つかってますし、各設定周りに結構追加したので、一度正式版にしてヘルプを作ろうと思います。もう2ヶ月以上正式版の方がバージョンが上がってないですし。ということで、今回のものがβ版になります。
 

1/25日、Ver0.8α3

 今回の変更は、主に設定周りの追加です。内容は、
 

 
です。あと、ミサイル警報周りの細かい修正とか、気圧の低下が上空で急激すぎたのでこれを少し緩やかにしたなどの、細かい修正があります。
 主に、YF-1の方の対COM戦部制作に伴い設定が増えた部分をNekoFlightの方に持ってきたというのが、今回の修正の主な内容です。特に、機種が増えたことに関連した修正が主です。
 あと、市販のF-22のフライトシミュレータを買ってきて、初めてF-22のHUDらしきものを見ることができたので、NekoFlightのHUDもそれらしく変更しておきました。具体的には、三角形状の目標コンテナ・デジタル式の方位計・円形式でない目標距離系などです。こんな画面です。

 あと、前の設定ではF-22の旋回率が悪すぎたので、少し修正してあります。推力・質量・翼面積などをF-22とあわせると、どうしても旋回率が遅めになるので、F-22ではこんなものかと思ってたんですが、水平尾翼の可動角度がYF-1の失速条件に合わせて小さめに固定されていたので、F-22の最大旋回が実現できてなかった様です。ですので、各可動翼の可動角度を設定できるようにしました。NekoFlightの翼計算では、迎角0.4rad(=22度)以上で各翼が失速するので、機体自身の迎角とあわせて水平尾翼の可動角は10度辺りが最大値ですが、実際のF-22はスラストベクターノズルなので失速に強く、なんと迎角60度ぐらいまで耐えられるようです(^^;。ですので、これでも旋回率などに実機と差が出ていると思いますが、これ以上早く旋回すると、旋回時のGが10を超えてしまいますので、このあたりが現実的でしょう。
 あと目立つ変更は、ステージの大きさや高低を設定できるようになってます。このステージ設定周りはこれから本格的に変更する所なので、今回のものは暫定です。最終的には前に書いたように、ステージ設定ファイルを読むようになると思います。
 その他、ぜんぜん目立たないですが、プログラム的に重要な変更として、ミサイルの追尾アルゴリズムの変更が行われています。実は、CAMM-12が用いる追尾アルゴリズム自身を変えるのは、NekoFlight Ver0.1以来初めてです。今までの変更は、パラメータを変えられるようにとか、新しい追尾アルゴリズムの追加とかでしたから。
 今回の変更で、いままで1次予測追尾となっていたミサイル追尾アルゴリズムは修正予測追尾というものに置き換わりました。内容的には、従来の1次予測追尾は実際には、修正1次予測追尾(1次予測だが、わざと後ろに回りこむ様に修正)だったので、これを2次予測にしたものです。これで従来の1次のアルゴリズムと違い、加速している目標にも正確に追尾できます。ミサイル設定ダイアログでは、修正予測追尾となっています。また、従来の2次予測追尾は、名前が予測追尾になりました。どちらも2次予測(等加速している物体までなら直撃する)ですが、わざと曲線的に動くようにする修正が入るか入らないかの違いです。見た目てきには、CAMM-12の動きはあまり変わってないはずですが、命中率が上がっているはずです。
 また、予測追尾、修正予測追尾の両方に、予測打ち切り時間をいうものを設けました。これは、ミサイルの衝突までの時間がある程度以上長く推定された場合、その値以内に衝突推定時間を丸めるというものです。前のアルゴリズムでは、長距離とか目標の正面からミサイルを撃つと、とんでもない方向にミサイルが行ってしまうことがありました。これは主に、ミサイル衝突までの時間を長めに見積もった結果起きた現象です。すなわち、実際には3秒後に衝突するのに、5秒後に衝突すると推測してしまうと、目標の5秒後の予測位置(=大抵、目標が既に通り過ぎた位置、ミサイルからすると後ろ)に向かうので、いきなりミサイルが後ろを向くということです。これを防ぐには、本来は衝突までの予想時間をより正確に推定すればよいのですが、予測が外れるときはどうしても外れるので(^^;この修正で防ぐと。これでかなり命中率が向上したと思うのですが、まだ、たまに変な追尾をすることがあるようです(^^;
 

1/13日、Ver0.8α2

 いろいろと忙しくて、バージョンアップがあまり進んでいませんが、YF1の方で敵機の撃墜ルーチンを付けましたので、NekoFlightの方にも移植しました。爆発の表示周りはミサイル関連のものをそのまま使ってます。あまり美しくないので、もう少し変更すると思いますが、敵機が落とされた場合の表現はこんな感じになると思います。
 あと、いまのところ自機がやられた場合も敵機撃墜と同じ処理をしており、単に初期位置に戻しているだけですが、このあたり、もう少し凝ると思います。これじゃ素っ気ないし(^^;。BITもどきで、故障位置を表示とかかな。
 

1/2日、Ver0.8α1

 ネットワーク対戦速度を確保するのにかなり苦労してましたが、どうにか速度的に問題無い対戦機能を実装することができました。といっても、対戦機能があるのはNekoFlightではなく、YF1というプログラムの方で、こちらはまだ公開しません(^^;。ゲームとして最低限の機能を持ったら公開しようと思います(まだゲームオーバーの処理などがないので)。こちらはもうしばらくお待ち下さい。
 ということで今回公開するのは、YF1の方で変更した部分をNekoFlight側に組み込んだものです。そのため二ヶ月ぶりの変更にしては、あまり変わっていません(^^;
 ここで、両ソフトのこれからの改造予定ですが、ネットワーク部分はできたので次は、ステージ設定を変更できるようにしようと思ってます。NekoFlightでは、ファイルメニューからステージデータファイルを読むということになると思います。今回の改造は、主にこのステージ変更に向けての前準備になっています。
 実は前のバージョンでは、ポリゴンと各種の弾との間の印面処理を行っていないという問題があり、このままだと建物内の戦闘や、障害物に隠れての戦闘の時に、表示が変になるという問題がありました。そのため、この印面処理を行ったというのが今回の一つ目の改造です。これより、表示速度が少し落ちているかもしれません。この印面処理にかんしては、DirectX OFFのときは完全に修正されてますが、DirectX ONの場合、ミサイルその他を全てポリゴンで表示する必要があります。で、想像した通り、これをやるとものすごく遅い(^^;ので、このDirectXによるミサイルなどのポリゴン表示機能は使用を選択できるようにしてあります。あと、今回ミサイルのバーナー炎や爆発には、Direct3Dによる半透明機能を使ってます。ただしこれは、3Dボードがないとメッシュ表示になってしまいます。
 あとの改造点は、表示周りの細かい変更です。まず、フルスクリーンの機能をつけました。あと、CPUに早いものを使っているけど、3Dボードをお持ちでない方のために、Direct3D のHELによる描画を高速化しました。私はDirect3D のHEL(ソフトウェアエミュレーションによる表示ドライバ部)の性能をなめていたため(^^;あまり真面目にチューニングしてなかったんですが、Rampドライバ使用&ディザ機能OFFにすることで、かなりの速度が実は出せたのでした(^^;。MMX Pentium 200ぐらいのCPUを使っていれば、3DボードがなくてもテクスチャマップONで10FPS以上を確保できると思います。いろいろ実験すればこのことはすぐに気が付いたはずなんですが、早いCPUをお使いの方すいませんでした。これで場合によっては、5倍以上早くなっていると思います。


NekoFlightのページに戻る ’97のNekoFlightに関するたわごとを見る


ソフトウェアトップページに戻る