FrontPage > 機体データ開発FAQ

1 - はじめに

1.1 - フライトモデルとは

フライトモデルとは、FlightGearにおいて機体開発をする際にプログラミングする必要のある、FlightGear独自のXMLのタグ要素の事です。フライトモデルを記述する事によって、機体の飛行速度や運動性、離陸距離、エンジン出力などなど...を表す事があできます。

1.2 - フライトモデルの選択

機体開発を行う際は、必ずフライトモデルを記述しなければなりません。そのフライトモデルの記述法、機体の飛行の様子や機能は、フライトモデルによって大きく異なります。

FlightGearにおいてメジャーなフライトモデルは、YASim、JSBsim、UIUCです。特に、YASimは簡素だが性能はそこそこで、FlightGearの機体データのうち大半を占めます。JSBsimはYASimより手間をかけてつくられ、機体の飛行状況も現実により近いのですが、入力されていない値を超えた飛行をすると、非現実的な飛行に陥ることがあります (突然空中でくるくる回転するなど)。UIUCは、アメリカのNASAによって開発されたフライトモデルです。

1.3 - どんなプログラミング言語を習得する必要がありますか?

基本的に、XMLについて基礎知識があれば十分です。また、C++を使用する事も、たまにあるようです。XMLはプログラミングの感じだけ理解していれば、だいたいいいそうです。

しかしFlightGearの機体開発には、XMLよりもフライトモデルのタグについての習得が不可欠です。フライトモデルは、機体開発初心者には簡単なYASimをお勧めします。YASimについての勉強は、機体データの作成/YASimフライトモデルの解説をご覧下さい。

1.4 - どんな3DCGソフトウェアを習得する必要がありますか?

まず、他のデータの3D機体モデルを借りるのでなければ、3DCGソフトの習得は不可決です。FlightGearで最もよく使用される3DCGソフトは、無料で提供されるBlenderと、有料販売のAC3D、有料版と無料版があるSketchUpがあります。しかし、基本的に3Dモデル拡張子は.acで統一されています。詳細は機体データの作成をご覧下さい。

1.5 - どんな2DCGソフトウェアを習得する必要がありますか?

ここでいう2DCGソフトウェアとは、Illustratorのようなペインティングソフトの事です。しかしやっかいなことに、現時点でFlightGearの機体データは、2Dのデータ (機体のペイントや計器類の絵など、テクスチャとも呼ばれる)の拡張子は.rgbで統一されています。Illustratorには、データを破損せずに拡張子を.rgbにする機能がありません。また、このソフトは有料での購入になってしまいます。

なので、FlightGearの機体開発者たちは、無料でダウンロード可能のGIMPを使用しています、このGIMPはWindowsやMac、Linuxなど様々なOSで使用できます(ダウンロードページ : [http://www.gimp.org/index.html])。

また、Photoshopにhttp://www.telegraphics.com.au/sw/#sgiformatからダウンロードした、SGI FORMATというプラグインを使用する事によって編集する事も可能です。

どちらかを習得していれば、あとは十分です。

2 - 質問

2.1 - どのOSでも機体開発ができますか?

FlightGearに対応しているOS (Windows、Linux、Mac、FreeBSD、Solaris または IRIX)ならばできます。ただ、Windows、Mac、Linuxなどメジャー以外のOSで開発する際は、使用できるソフトを探すのが大変かもしれません。

2.2 - 使用する3DCGソフトは何でもかまいませんか?

使用する3DCGソフトに制限はありません。ただ、FlighGearの個々のデータに対応するソフトは、BlenderやAC3D、SketchUpなどが最適です。

これら以外のソフトでモデリングを行った例はないようですが、一部のソフトにはFlightGearの個々のデータに対応できずバグを発生させてしまうものがあるかもしれません。なので、これらのソフトでやるのが一番無難でしょう。

2.3 - 固定翼機とヘリコプターでは開発に違いがありますか?

ヘリコプターの場合、YASimを利用する場合が多いですので、YASimを使用する前提で解説します。
基本的に差はほとんどないようですが、フライトモデルの記述の際に、少なくとも以下の点が異なります。

  • 固定翼機では<wing>タグで主翼を定義し、エンジンを<jet>や<propeller>の子要素タグで<piston-engine>または<turbine-engine>で定義しますが、回転翼機ではそれらを使わない代わりに<rotor>タグでローターを定義します。
  • ヘリコプターの場合、通常はローターの回転数をガバナで自動で調整(昔の機種は、手動スロットルですが)して、プロペラピッチで推進力を調節するので、エンジン関連の記述をせずに、<rotor>で纏めて記述します。そして、重量バランスを<ballast>タグで調整します。これは、テイルローターも同じです。
  • CH47等、タンデムローター機の場合は両方のrotorタグ内の、control-inputタグのcontrol値でaileronだけではなく、rudderにもCYCLICAILを割り当てて、後ろのローターの方に「invert="true"」と付け加えて、ブレードの回転面が前後のローターで逆になるようにします。
  • 2重反転ローター機の場合はテールローターがありませんが、ラダーペダルや垂直尾翼があります。機種によってはラダー(方向舵)もあるでしょう。 以下は推測ですが、ラダーペダルの操作をピッチの増減に割り当ててやれば(片方はinvert="true"、もう片方は"false")、双方のローターにかかるトルクに差が出て、結果として旋回できるでしょう。

2.4 - ドッグファイトや爆撃などのコンバット系はプログラミングできますか?

できないこともないでしょうが、これまでに挑戦している方はいません。やるとなれば、フライトモデルの記述が異なるでしょう。また、兵装に関するXMLファイルの作成も必要となるでしょう。それについては、現時点では自身での研究が必要となるでしょう。


!加筆・査読をお願い致します!

(執筆) BBCTV 2007/12/13


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-17 (月) 17:09:03 (3647d)