ステーション選択と重量(2) | virt_flyのブログ

virt_flyのブログ

フライトシミュレーターソフトのFlightGearで仮想飛行を楽しむブログです。

イメージ 1

画像は記事内容とは無関係。賑やかしに、Fー14が発射したAIM-9が蛇行する様子がおもしろいので掲載。

 先に「ステーション選択と重量(1)」で、搭載した複数の武器を選択することで一つのボタンで発射・投下する方法と発射・投下による重量の変化を機体に反映する方法についてのJSBSimでの例のあることを紹介しました。

 参考にしたF-100DはGPLでなくCCライセンスであり、著作権者の表示が求められるのですが、部分移植の場合はどうなるのか、著作権の範囲の識別などよくわからないため、例として直接のファイルの配布や具体的なプログラムの抜粋の掲載が、はばかられます。

 話がわかりにくいことおびただしいのですが、それでもせめていじったファイルは何かくらいはメモし、自身の覚えのためにも移植の実際について記しておきたいと思います。

1)武器の装着
◯機体の3Dモデル.xmlで武器の装着位置を指定
  元   Aircraft/F-100D/Models/F-100D.xml
  移植  Aircraft/juef128/Models/juef128.xmlを上記を参考に修正
◯装着位置指定に使われる武器の3Dモデルと.xmlファイルの例
  元   Aircraft/DavePack/Stores/mk82/mk82.ac
      Aircraft/DavePack/Stores/mk82/mk82-sta3.xml
  移植  Aircraft/juef128/Models/Stores/Bombs/bomb.ac
      Aircraft/juef128/Models/Stores/Bombs/bomb-sta3.xml

2)発射・投下後の武器の挙動   
◯submodels.xmlに発射/投下後の各武器の初期位置など挙動に関するパラメーターを設定(実際には具体的な弾道などのパラメーターは、各武器毎のsubumodels.xmlをもうけてpath指定)
  元   Aircraft/F-100D/submodels.xml
  移植  Aircraft/juef128/Models/submodels.xmlを上記を参考に修正
◯なお、このsubmodels.xml中の<model>にpath指定される武器の3Dモデルと.xmlファイルの例は以下のとおり(1)に記した.xmlファイルとは異なることに注意)
  元   Aircraft/DavePack/Stores/mk82/mk82.ac
      Aircraft/DavePack/Stores/mk82/mk82.xml
  移植  Aircraft/juef128/Models/Stores/Bombs/bomb.ac
      Aircraft/juef128/Models/Stores/Bombs/bomb.xml
◯各武器毎のsubumodels.xmlの例
  元   Aircraft/DavePack/Stores/mk82/mk82-submodels.xml
  移植  Aircraft/juef128/Models/Stores/Bombs/bomb-submodels.xml
◯武器毎のsubumodels.xmlに記述された、武器のヒット時の爆発の再現にかかわるファイル(略)


3)ステーション選択スイッチ  
◯station-select.xmlに武器を装着したステーションを選択するスイッチのON/OFFの挙動を記述
  元   Aircraft/DavePack/Instruments/Armament/station-select.xml
  移植  Aircraft/juef128/Models/Interior/Panel/Instruments/Armament/station-select.xmlは上記を修正し、自機フォルダ内に配置
◯スイッチの3Dモデル
  元   Aircraft/DavePack/Instruments/Armament/weapons-panel.ac
  移植  Aircraft/juef128/Models//Interior/Panel/Instruments/Armament/weapons-panel.acは上記を元に改造したもので、自機フォルダ内に配置
◯ステーション選択スイッチの位置を指定
  元   Aircraft/F-100D/Models/F-100D.xml
  移植  Aircraft/juef128/Models/juef128.xmlを修正

4)ホットスポット
◯ステーション選択スイッチをクリックして動かすためのpanel-hotspots.xml
  元   Aircraft/F-100D/Models/panel-hotspots.xml
  移植  Aircraft/juef128/Models/Interior/Panel/panel-hotspots.xmlを上記を参考に修正
◯ホットパネルの位置を指定
  元   Aircraft/F-100D/Models/F-100D.xml
  移植  Aircraft/juef128/Models/Interior/Panel/panel.xmlを修正

5)キーに関する設定、他
◯発射・投下キーの指定とヘルプの記述、submodelsやmaster-armの有効・無効、よくわからないのですが<trigger>のためと思われる<fdm>タグ内<armament>へのステーションの記述
  元   Aircraft/F-100D/F-100D-set.xml
  移植  Aircraft/juef128/juef128-set.xmlおよび
      Aircraft/juef128/Nasal/juef128-keyboard.xml
 
6)当該武器の使用とそれに伴う重量変化の反映
◯<channel>で各ステーションの選択状況や発射・投下キーの状態を判別し、該当すれば当該武器の使用をアウトプット、また武器の使用の際には当該武器の重量を減少としてアウトプットしているとみられます
  元   Aircraft/F-100D/Systems/armament.xml
  移植  Aircraft/juef128/Systems/armament.xmlを上記を参考に新設

7)フライトモデル
◯機体のバランスにかかわるpointmassに各ステーションの武器の重量と重心を指定(ドロップタンクについては武器と多少扱いの違うところがあるためくわしくふれませんが、<contents>での重量の指定は0に)
  元   Aircraft/F-100D/F-100D-jsbsim.xml
  移植  Aircraft/juef128/juef128.xmlに書き加えと修正

注記)本来フライトモデルに記述されるべき内容をarmament.xmlとして外部ファイルに書き出したのでしょう。フライトモデルを記述したF-100D-jsbsim.xmlには、<system file="armament"/>の1行が見られます。juef128.xmlにも、この1行が書き加えられている必要があります。