Virtual flight is a homepage which introduces FlightGear Flight Simulator.

Bombable add-on



   

●Bombable add-onの導入

【コメント】

 Bombableは、FlightGear上での本格的な空戦の実現を予感させるアドオンです。爆撃や射撃、ミサイルの発射などが可能であれば、AI航空機や建物など3Dオブジェクトを爆発、炎上させ、そして損害を表示してくれます。

WWII↑ju EF128のミサイル攻撃で炎上するB-17

vietnam warMiGの接近に編隊をくずす北爆米軍機↑
反撃に転ずる機も


 画像は、Bombable用のAIシナリオを使用して得たスクリーンショットです。左は第2次大戦時のドイツを舞台にした米軍爆撃機編隊と護衛戦闘機隊を迎え撃つドイツ空軍戦闘機のシナリオ、WWII-Luftwaffe-intercept-1を用いたもので、迎撃機はFW-190に替えてJu EF128。右はこのAIシナリオをもとにベトナム戦争時の北爆をテーマに改変した、米軍機を迎撃するMiG機のシナリオをです。レシプロ機とジェット機の違いなのでしょうか、B-17とP-51Dの編隊はあまりくずれていませんが、F-105やF-4Dの編隊は蜘蛛の子を散らすようにくずれ、反撃にむかってくる機も見えます。いずれにしても、うかうかしているとこちらが撃墜されます。

 Bombableがあれば、かなりすごいことができるんですね。Bombableの全容を理解する能力があるわけでありませんから、的確なコメントもできないでしょうが、わかったことをメモしていくことにしたいと思います。
 参考は、Howto:Adding Bombable to FlightGear Aircraft(http://wiki.flightgear.org/Howto:Adding_Bombable_to_FlightGear_Aircraft)。

 なお、Bombableはマルチプレイヤーの相手機も対象となるのですが、ここではシングルプレイヤーというかスタンドアロンを前提にします。

【Bombableを使うために必要な準備】

〔Bombableのダウンロードとインストール〕

・Bombable add-onのパッケージを、次のページを通じてダウンロードし解凍します。
   http://wiki.flightgear.org/Bombable または
   http://www.flightgear.org/forums/viewtopic.php?f=6&t=5742&p=43772
 現時点で最新版のパッケージは、Bombable-4.6delta.zipです。
 注記)以下、ここでの記述はBombable4-5bまでのものにもとづいています。Bombable-4.6がFlightGearのv3.0からv2016.4.4までの100%互換性のための微調整とされていることから、大きな変化はないとみられます。

・解凍後生成した4つのフォルダを、通常はそのまま$FG_ROOT(FlightGearのルートディレクトリ)下に上書きコピーします。

 厳密には、次の二つが核心。
◯解凍後のNasalフォルダ中のbombable.nasをコピーし、$FG_ROOT /Nasalに貼り付けること。
◯解凍後のAiフォルダ中のAircraftフォルダ下にあるFire-Particlesフォルダをコピーし、$FG_ROOT /AI/Aircraftに貼り付けること。

bombable setting

↑Bombable Objects Settings画面

 これで、bombable add-onは、FlightGearの起動とともに、スタートします。起動したFlightGearのウインドウ上部のバーにBombableの文字が見えます。これをクリックするとBombable Objects Settings画面が開きます。画像は、初期状態からマルチプレイヤーを使うにチェックを入れた画面です。

〔次いで必要になる作業〕

 次いで必要になるのは、次の3つです。
◯ターゲットとなる航空機(航空機以外でもよい)が、攻撃を受けた際に爆発・炎上するように、3Dモデル.xmlファイル中に必要なNasalプログラムが書き足されていなければなりません。なお、ターゲットとなるAI機は、プロペラを回したり、ジェットの炎も再現されるのがのぞましいと思われます。
◯攻撃に用いる航空機の武器が使用できるようになっていなければなりません。弾丸やロケット弾などの発射を記述するsubmodels.xmlファイルの<submodel>タグにcollisionとimpact reportが必要です。
◯攻撃対象となるAI機を飛ばすAIシナリオの用意。
 次項以降、順次とりあげていきます。

[2012/12/01][2012/12/23更新][2013/04/02更新][2014/02/24更新][2017/03/18更新][2018/04/23刷新][2018/0410/10更新]


   

●ターゲットをBombable対応に

【コメント】

 ダウンロードし解凍したBombableのファイルには、Bombable対応の機体がいくつかすでに用意されていて、ターゲットに使用する際のAI機用のファイルもあります。問題はそれ以外の機体をターゲットしたい場合ですが、攻撃を受けた際に爆発・炎上するように、別途必要なNasalプログラムを記述しなければなりません。

 かつては、AI機用の3Dモデル設定.xmlファイル中にプログラムを書き込んでいましたが、現在はA-10-bombableinclude.xmlのように、機体名の後ろに-bombableincludeと付けた.xmlファイルにNasalプログラムを書き込んだものを用意し、3Dモデル設定.xmlと関連付けするようになっています。こちらの方が作業がわかりやすく間違えなくて済みそうですね。

 通常AI機のファイルは当該航空機のファイルとは別に、$FG_ROOT/AI/Aircraftに置かれます。大概は3Dモデルのacファイルと3Dモデル設定xmlファイルにテクスチュアpngファイルくらいをコピーしてくれば足りるのですが、Bombableに使う機体となればそうはいきません。爆弾やミサイルがないと様にならないとはいえ、AI機用に必要なファイルを調べるのは大変。
 ターゲットにする機体をAI機として扱う際に、新たに用意しなければならないのは、AI機用の3Dモデル設定.xmlファイルとせいぜい-bombableinclude.xmlファイルですから、いっそのこと$FG_ROOT/Aircraftの当該機体フォルダの/Modelsにこれらを置けばよさそうなものですが、一応、マルチプレイヤーのこともありますので、メモリーはくいますが、逆に当該機体のファイルをすべてコピーし、$FG_ROOT/AI/Aircraft下にあらたにAI機用のフォルダをもうけ、先のファイルもこちらに置くことにします。

 加えて、ターゲットとなるAI機は、プロペラを回したり、ジェットの炎も再現されるのがのぞましいと思われます。その方法にについては、こちらを参照ください。なお、Bombable用のB-17では、面白いことにプロペラを回すのにengines/engine[x]/rpmが使われています。

【実際】

〔ターゲットとする機体のパッケージを手に入れる〕
 flightgear用の機体がダウンロードできるサイトから、目的のターゲットとなる機体のファイルパッケージを手に入れます。
 $FG_ROOT/AI/Aircraft下に丸ごとコピーします。

〔Bombable対応用のNasalプログラム(-bombableinclude.xmlファイル)のコピー〕
 ダウンロードして解凍したBombableのファイルのうちから、まず-bombableincludeと付いた.xmlファイルを見つけてきます。
 AIフォルダ中のAircraftフォルダに、ターゲットなる航空機や車両、船舶のフォルダがあります。目的のターゲットがジェット戦闘機なら、ジェット戦闘機(現在ではA-10しかBombable対応のジェット戦闘機はありません)の機体から、レシプロ戦闘機ならA6M2などの機体から-bombableincludeと付いた.xmlファイルを借りてきます。
 コピーした例えばA-10-bombableinclude.xmlファイルは、名前をターゲットとする機体名のものに、例えばjuef128-bombableinclude.xmlに変え、当該AI機用フォルダ中のModelsフォルダ内に貼り付けます。

〔-bombableinclude.xmlファイルの修正〕
 なお、コピペして作成したこの-bombableinclude.xmlファイルには、元の機体名を示す文字、例えばA-10 Warthogの文字が2ヶ所、はじめの方と後ろの方に見られます。これをターゲットとする機体名に書き換えます。他にも2ヶ所、Aー10の文字が見えます。うち1ヶ所は、機体の寸法の出所に関する部分です。機体の寸法くらいはターゲットとする機体のものにさしかえておきたいと思います。

〔-bombableinclude.xmlファイルをAI機用3Dモデル設定ファイルに関連付けする〕
 機体のModelsフォルダの中に作成したAI機用3Dモデル設定ファイル、例えばjurf128-ai.xmlファイルの記述を変更するだけです。
 冒頭部分にある<PropertyList>のPropertyListの後に続けてスペースを1つ置いてinclude=と書き込み、以下-bombableinclude.xmlファイル名を””で囲んで書き加えます。次にJu EF128の例。

   <PropertyList include="juef128-bombableinclude.xml">


 以上でターゲットのBombable対応は(一応)完了です。


[2012/12/23][2018/04/23刷新]


   

●攻撃側の武器使用を可能に

【コメント】

 攻撃側となる自機については、起動した機体が武装しているだけでなく、実際に機銃やミサイルを発射したり、爆弾を投下できるかが肝心です。
 はじめから機銃が使用できるようにプログラムされている機体では、FlightGearにBombableがインストールされ、ターゲットがBombable対応済みなど、すでにBombableな環境が整っているなら、そのままただちに発進してターゲットを攻撃し炎上させることができます。
 ただし、機銃で撃墜するのはかなり大変です。機銃弾が与える打撃は小さく、執拗にターゲットを追い回し銃撃を加えつづける必要があるからです。やはりミサイルかロケット弾ポッドが欲しいところです。
 ミサイルを発射できるようにする方法については、すでに別なページに記していますので(注参照)、ここでは概略だけを示しながら、攻撃側に必要となる条件についてふれることにします。

【実際】

〔武器の3Dモデル〕
 何もなければ、一から3Dモデルを作成しなければなりませんが、できあいのミサイルの3Dモデル(.acファイル)を使うのもよいでしょう。パイロンも必要ですね。なければ、Blenderなり3Dモデリングソフトを使い作成してやります。
 この3Dモデルにパスを通すミサイル用の.xmlもうけます。

〔装着〕
 ミサイルはパイロン位置に吊り下げられていなくてはなりません。3Dモデル設定.xml中にミサイルの装着位置と発射のanimationを記述します。

〔武器の使用キー〕
 ミサイル発射用のキーの指定とhelpへのキーの追加を-set.xmlに記述します。

〔submodelsを有効にする〕
 Submodels.xml中に 書かれたsubmodelsを有効にするため、-set.xml中の記述でこれを有効にします。

〔弾道に関する初期値、条件を記述するsubmodelsに、<collision>、<impact-report>は必須〕
 発射後のミサイルの動きは、Submodels.xml中に<submodels>を追加し、弾道に関する初期値、条件を記述します。Bombableが有効に働き、ターゲットが被弾し炎上するには、<submodels>中に<collision>、<impact-report>の記述が必須です。ここが核心! なお、Bombableでは、<name>タグ中に記述されたbombやrocket、aim-9などの武器名・種類名と重量の記述をもとに、被害の大きさをきめているように思われます。

     <collision>true</collision>
     <impact>true</impact>
     <impact-report>ai/models/model-impact</impact-report>


〔発射音、スモーク〕
 もちろん、発射音やスモークはあったにこしたことはありません。

注記)ミサイルの実装に関することは、下記を参考に願います。
  装備の搭載・武装
  積荷と重量
  当たり判定と空戦
  スモーク

 なお、FlightGearのRembrandt効果を有効にしている場合、武器のヒット時の爆発の光や煙の描画に不具合が生じることがあります。機体の側での対応が必要です。その方法はこちらを参照ください。


[2012/12/23][2013/05/03追加][2018/04/23刷新]


   

●AIシナリオの用意

【コメント】

 Bombableのもつ高いポテンシャルを発揮させるにはAIシナリオが必要ですが、AIシナリオ自体の基本は単純なもののようです。ひとつひとつのターゲットごとに<entry>を用意し、速度と進行方向、他を指定し、それぞれ異なる位置を与えたものをいくつか作成することで、編隊を組ませたりするだけ。ターゲットが逃げ惑い、あるいは撃墜されたり反撃したりしてくるのは、Bombableのほうで司ってくれてます。

 

Vietnam war
↑Vietnam war


 ダウンロードしたBombableのパッケージにも、多数のAIシナリオがありますので参考になることと思います。
 画像は、ハイフォン近郊の北ベトナム上空で、北爆米軍機を迎え撃つMiG21とそのミサイル攻撃を受け黒煙を上げ墜ちていくF-105。北爆シナリオと名づけた自作のAIシナリオ、Vietnam-War-intercept-2.xmlを実行して得たスクリーンショットです。実は、WWII-Combat Scenarios for FlightGear中のWWII-Luftwaffe-intercept-1のまったくのパクリです(^_^;)。第2次大戦時のドイツを舞台に、基地前方より来襲するB-17の編隊と護衛のP-51Dを迎撃するドイツ空軍機用のよくできたシナリオなのですが、残念なことにダウンロード元のサイトはなくなっています。おしいので、まねして自前のシナリオをと思ったのですが、舞台を移しただけ、単純すぎて手を加えるところなどまるでありません。そのかわり、-bombableinclude.xmlの重要さを教えられたのが収穫かもしれません。F-105やF-4D用に-bombableinclude.xmlを書き換えることで、前述のとおり同一といっていいようなAIシナリオでもレシプロ機とジェット機とではかなり違った展開となることがわかったのですから。

※最近のバージョンのFlightGearでは、このAIシナリオは動かなくなりました。かつて使えていたflightplanがなぜかエラーを起こすのです。従って、該当部分を含む友軍MiGのAI機に関する記述をコメントアウトすればエラーは回避できるようになります。ただし、後述の「ゲームの進め方」に記したような発進の許可などの表示などもこのMiGのAI機のプログラム中に書き込んだため、当然表示されなくなります。とはいえ、なぜか迎撃ミサイルも白煙をひかなくなり、実質飛ばないも同様のため、こうした表示はすでに表示されなくとも問題にならなくなってしまっています。僚機がなくなり寂しいですが、自機のレーダーを頼りに索敵し、北爆米軍機を見つけたらドックファイトをはじめることができます。

【実際】

〔AIシナリオの記述〕

 AIシナリオの記述は、aircraft_demo.xmlやship_demo.xmlなど通常のAIシナリオと変わるところはありません。基本は、ひとつひとつのターゲットごとに<entry>を用意し、速度と進行方向、位置、他を指定してやるだけ。ダウンロードしてきたBombableのパッケージに含まれるAIシナリオのBOMB-MarinCounty-TwoZeros.xmlも、まさに来襲する2機のゼロ戦の緯度、経度、速度、方向が記述されているだけです。

 FlightGearの機体もふえてきて、今ではハインケルHe111もあり、歴史上有名な航空戦である、かのバトル・オブ・ブリテンも再現できそうです。悲惨な経験をした国民感情から、嫌悪されそうなことは避けたほうが賢明かもしれませんが。

 なお、臨場感あるシナリオには、AIシナリオの記述はもちろんですが、各機体の-bombableinclude.xmlに各機体固有のデータを与えることも大事そうです。

※AIシナリオの手直し
 前述の通り、最近のバージョンのFlightGearではflightplanが原因で、このAIシナリオは動きません。手直しが必要です。当該ファイルはvietnam-war20120411.zipを解凍して得たVietnam-War-2フォルダ中のAIフォルダ下にあるVietnam-War-intercept-2.xmlです。友軍のMiGのAI機の記述の部分、<entry>タグ下をそっくり<!--と-->で囲んでコメントアウトすればOKです。

〔ゲームの紹介と起動〕

 ベトナムと合衆国の両国民の感情を傷つけそうですが、前述のとおり北爆シナリオをつくりました。ターゲットが見つけられないとはじまらないので、シナリオの設定は単純にしてあります。ダウンロードはこちらから。

・インストールの注意
 インストールは、ダウンロードしたvietnam-war20120411.zipを解凍し、生成した3つのフォルダを対応するデイレクトリにコピーしはりつければよいのですが、注意があります。
 /Sceneryなり/TerraSyncなりにe100n20がインストールされていること、ターゲットとなるF-105やF-4D、自機とするMiG-21bisをあらかじめインストールしておくことが必要です。入手先は、F-105、F-4DがDAVE's HANGERから、MiG-21bisはFLIGHTGEAR UKのものが都合がよいです。機体の関係でDavePackもインストールしておく必要があります(どちらのサイトからも入手可能)。
 AIフォルダは$FG_ROOT/下に、e106n20フォルダは先の/e100n20/下にフォルダごとコピぺします。Aircraftフォルダについては、中のF-105やF-4D、DavePack名のフォルダを、$FG_ROOT/Aircraft下に上書きコピーします。MiG-21bisを上書きコピーしないのは、インストールしたMiG-21bisがすでに最新のBonbable対応であり、Rembrandt効果にも対応しているからです。
 念のため付記しますが、このAIシナリオではAI機用のフォルダを$FG_ROOT/AI/Aircraftにもうけることはせず、$FG_ROOT/Aircraft の当該機体フォルダのファイルと兼用にしています。先の項の記述とは異なることに注意願います。

・ゲームの起動
 北爆シナリオの起動は、下記のとおりコマンド入力、実行すれば、FlightGearの起動とともにスターとします。

$ fgfs --airport=VVCI --runway=07 --aircraft=MiG-21bis --ai-scenario=Vietnam-War-intercept-2


・ゲームの進め方
 起動直後の状態で、すなわち、Catbi空港のrunwayが07の滑走路上から東を向いた状態で、正面前方、わずかに右方向のトンキン湾海上より、米軍機の編隊はやってきます。その後正面に迫り、ついで滑走路左横方向を通過して行きます。
 迂回し、ハノイを襲うのでしょうか? ゲームをしやすくしたあくまでも架空のシナリオであり、現実的にはありえない設定かもしれませんが、ご容赦願います。

 FlightgGearが起動したら、来襲する米軍機に向け迎撃ミサイルが発射されます。しばらく待って発進許可が表示されてからブレーキを解除してMiG-21bisを発進させると、うまく米軍機に遭遇できます。タイミングをとるこの辺のしかけは、オリジナルです。(注参照)MiG機にはレーダーが装備されていますので、索敵は容易です。これに従って米軍機の編隊に接近します。高度11,500ftに上昇し、レーダー上の光点が中心位置まで米軍機に接近したら、機首を左右に振って目視で米軍機の編隊を確認します。外部ビューならより視認しやすいと思いますが、編隊の出す多数の白煙をたよりに、編隊を見つけてください。
 発見したら増槽を捨て、背後よりターゲットにさらに接近します。蜘蛛の子を散らすように米軍機は逃げ惑い、一部は反撃してきます。ターゲットを撃破できるか、後は腕次第。

 なお、ここで使用したFlightGear用のMiG機はMiG-21MFに形の似たできあいのMiG-21bisです。この北爆シナリオを作成した頃のMiG-21bisは、デフォルトで機銃が使用できるものの、ミサイルはあっても発射できず、ターゲットの撃墜を容易にするために、これを使えるよう改造、あわせて人民空軍の塗装を施したものでした。その後、ミサイルも発射でき、Bombableにフル対応の機体パッケージが用意され、人民空軍の塗装も加えていただきました。感謝!感激!

注)ただしFlightGearのバージョンが2016.x.x以降では、この仕掛けが機能しないのは前述の通りです。問題はありません。自機のMiG機にはレーダーが装備されていますので、索敵は容易です。

[2012/12/24][2014/04/20更新][2018/04/23刷新][2018/10/10更新]


「仮想飛行」(virtual flight) by virt_fly