Virtual flight is a homepage which introduces FlightGear Flight Simulator.

3Dオブジェクトの配置



   

●3Dオブジェクトの配置

Yakushi-ji
↑薬師寺の堂塔を配置してみました

【コメント】

 先にAIシナリオを用いてAI機の駐機や編隊飛行を試す際に、空港に借り物のターミナルビルを配置してみましたが、建物のためのみにいちいちAIシナリオを指定するのもバカバカしい。単に構造物を置くだけならFlightGearの他のオブジェクト同様の仕方でいいはずです。

 日本のサイトのフォーラムには、FlightGear本来の3Dオブジェクトの配置法についての記述がありました。オブジェクトファイルが置かれている地形データ(Scenery)の中に、あらたな追加と配置の記述を加えるものです。
 これを参考に、空港にターミナルビルをもうけたり、お寺をあたらしく配置してみることができました。


【実際】

〔前提〕


 奈良の西の京にある薬師寺伽藍を再現します。この3Dオブジェクトの関連ファイルを置くシーナリーの地形データは、/Scenery/Objects/e130n30/e135n34/です。

〔シーナリに関連ファイルを置く〕

 /Scenery/Objects/e130n30/e135n34/下に、薬師寺の堂塔を模して作成した3Dモデルと関連ファイルを置きます。

 yakusiji-kairou.ac ・・・講堂と回廊の3Dモデル
 yakusiji-kondou3s.ac ・・・金堂の3Dモデル
 yakusiji-saitou3s.ac ・・・西塔の3Dモデル
 yakusiji-sanjyunotou3s.ac ・・・東塔の3Dモデル
 yakusiji-koudou.png ・・・講堂と回廊の画像ファイル
 yakusiji-kondou.png ・・・金堂の画像ファイル
 yakusiji-saitou.png ・・・西塔の画像ファイル
 yakusiji-sanjyunotou.png ・・・東塔の画像ファイル

〔タイルファイルの記述〕

 /Scenery/Objects/e130n30/e135n34/下には、オブジェクト配置を記述している拡張子stgのタイルファイルがいくつかあります。例えば、関空のタイルファイルは5168920.stgです。

 奈良市周辺の該当するタイルファイルがあれば、これに薬師寺を配置する記述を追加すれば良いのですが、残念ながらありません。
 すなわち、FlightGearの世界の奈良市には建物など一切の3Dオブジェクトが存在しないということになりますので、ここにはじめて5168939.stgというタイルファイルを設け、薬師寺という最初の3Dオブジェクトを配置することになります。
 その5168939.stgの記述は次のとおりです。


 OBJECT_STATIC yakusiji-kondou3s.ac 135.784311 34.668355 64 180
 OBJECT_STATIC yakusiji-saitou3s.ac 135.783998 34.6681117 64 180
 OBJECT_STATIC yakusiji-sanjyunotou3s.ac 135.784624 34.668117 63 180
 OBJECT_STATIC yakusiji-kairou.ac 135.784311 34.668817 63 90


 ここでは、OBJECT_STATICにつづき、3Dモデルのファイル名(acだけでなくxmlファイルでもよさそうです)、3Dモデルをおく経度、緯度、高度、方角を記述しています。

 なお、OBJECT_STATICを使うのは主に世の中に1つしかない特定の形状をしたスタティックモデルに対してであり、すなわちゴールデンゲートブリッジなどの著名なモデルの位置指定に、これに対して、主に共有モデルについて、空港関連設備や汎用的なビルなどのモデル位置の指定には、OBJECT_SHAREDを使うようです。

注記)緯度と経度は正確なものではありません。また、伽藍の配置自体、実際には東西南北にきっちり一致はせずぶれているものの、ここでは一致しているかのように配置しています。


[2008/06/20][2012/12/01更新][2018/04/21刷新]


   

●UFOを使った3Dオブジェクトの配置

【コメント】

 建物など、位置(緯度・経度)がGoogle Mapなどから読み取れたり、あらかじめわかるならば、前項の方法が良いでしょうが、空港の駐機場にAI機を配置するような場合は、UFOの利用が便利でしょう。

 UFOを起動すれば、FlightGearの画面上でマウスを使って見たままの好きなところに目的の3Dオブジェクトを置き、前後左右、高さや、向きの微調整もできます。ピッチ、ロールの調整も可。操作方法の詳細はUFOのHelpでAircraft Helpを見れば確認できますから、ここでは詳しく記述することはしません。

 なお、配置が確定したらdキーを押します。そうすれば端末(コンソール)画面に先の項で述べたタイルファイルのパスやOBJECT_SHARED付きでオブジェクトの位置情報が表示されます。これをもとに前項同様、拡張子stgのタイルファイルをエディタで開き、OBJECT_SHARED以下の記述を書き込むことで、3Dオブジェクトのシーナリへの配置は完了です。


adjustmodel

↑UFOを使い見たままに747機を駐機させているところ


【実際】

〔前提〕

 とある飛行場に格納庫を設けるものとしましょう。  飛行場は/Scenery/Objects/e130n30/e135n34/下にあるとし、ここに格納庫の3Dモデルhangar3.acとその画像ファイルhangar3.pngを置くことにします。  UFOを起動し、格納庫の3Dオブジェクトを設置したい場所近くに移動します。

〔操作の概略〕

[l]キーを押し、目的の3Dオブジェクトのac(またはxml)ファイルを見つけ、[Load Model]をクリック
→画面上のおおよそオブジェクトを置きたい場所にカーソルを合わせ、マウスを左クリック オブジェクトが出現します
→[=]キーを押してカーソルダイアログを開きます 遠近、左右、高度、向き、ピッチ、ロールを微調整
→位置が決まれば[=]キーを押してカーソルダイアログを閉じます
→同じものをコピーし貼り付けたい場合は、カーソルを目的のオブジェクトに置き、[CTRL]キーと同時にマウスを左クリック。目的のオブジェクトが点滅するまで繰り返します。点滅したオブジェクトが選択状態にあります
→目的の位置でマウスをで左クリックすると、オブジェクトがコピーされて貼り付けられますので、カーソルダイアログで微調整
→気に入らなければ、[backspace]キーを押すことで、選択中のオブジェクトを消去できます
→配置が確定したら、[d]キーを押します
→FlightGearを起動した端末(コンソール)画面に、タイルファイルのパスとオブジェクトの位置情報が表示されます
→エディタで当該タイルファイル(拡張子.stg)開き、OBJECT_SHARED以下の記述を書き込みます


 ここで使用した格納庫のファイルは、FlightGear Scenery Websaiteからダウンロードしたものを使いましたので、当該Sceneryデータデレクトリ下に置いてあるのを、[l]キーを押して開いた「Select 3D model file」のウインドウで探して指定しました。もし、FlightGearに用意されているなんらかの共有オブジェクトを使用する際は、[space]キーを押して開いた「Select model」ダイアログから選び、以下同様にして配置します。


[2013/11/10][2018/01/01修正][2018/04/21刷新]


   

●目的の場所に対応するタイルファイルの探し方

【コメント】

 FlightGearの世界の地形は、パソコン内のSceneryフォルダあるいはTerraSyncフォルダの下に保存されているデータが読み出されて描画されることなど、先刻ご承知とは思いますが、少し細かく言えば緯度経度それぞれ10度毎のフォルダができていて、その下にさらに1度毎のフォルダがあって、その中には多数のタイルとよばれる拡張子stgの地形データファイルが存在します。

 FlightGearの仮想世界にランドマークか何かの構造物(3Dオブジェクト)を配置したい場合は、該当タイルのファイルに、位置や標高、向きなどを記述する必要があり、その際は、UFOを利用すると見た目とおりに3Dオブジェクトが配置でき、位置情報も簡単に得られることなどは、上に述べたとおりです。

 まだUFOを利用した場合には、当該タイルファイル名が表示されるのでよいのですが、それ以外だと、たくさんのタイルファイルの中から目的のタイルファイルを探し出すに、どうすればよいのでしょう。

 タイルのファイル名は、意味不明な不連続な数字だし、近くにランドマークがあれば片っ端からファイルを開いて探すこともできるのですが、さもなければタイルファイルを探すことは結構やっかいなのです。

 こうした目的の場所に対応するタイルを簡単に検索する方法として、これまではmapserverの地図を使ってきました。日本のサイトで、タイルファイルの探し方とタイルファイル名の命名規則を説明した投稿が載ったのを見て知ったものでしたが、どうしたわけかそのmapserverが見当たらなくなりました。

 困ったなと思っていたところ、これに替わるFlightGear Scenemodels Mapを見つけることができました。マップが通常の地図で見やすく、地図上の位置のタイルインデックスばかりか緯度経度も度分秒と10進数の両方で画面左下に表示がなされるようになっていて、わかりやすくmapserverより使いやすい感じがします。ズームによる地図の拡大表示も大きくて申し分ありません。緯度経度の指定はできませんが、ICAOコードの指定で当該空港のある地図が表示されます。  FlightGearの仮想世界を3Dオブジェクトで豊にするためには、欠かせない大事な知識です。紹介しておきます。


【実際】

〔FlightGear Scenemodels Mapの地図を使う方法〕

FlightGear Scenemodels Map↑開いたFlightGear Scenemodels Map

mapserver↑検索後タイルがわかるように退いた画面


 FlightGear Scenemodels Map(https://scenery.flightgear.org/map/)を開きます。
→地図をドラッグして見たい場所に移動するか、ウインドウ左上のAirportのボックスに空港のICAOコードを入力し、クリックします。
→目的の場所の地図が表示されます。マウスホイールを動かすかウインドウ左上の+またはーをクリックして、見やすい大きさに地図を拡大ないしは縮小できます。
→現在カーソルがある直下の地図上の位置の緯度と経度、ならびにその位置が含まれるタイルインデックス番号がウインドウ左下に表示されています。


[2015/03/28][2018/04/21刷新][2019/02/10刷新]

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