FS2000 と Terrainシーナリー

English version

マイクロソフトから、terrain SDKが出ました。これによって数値地図からTerrainシーナリーを作成することができるようになりました。ただ、数値地図データをバイナリに変換しないと terrain SDK が使えません。アメリカのデータの変換ツールは terrain SDK で紹介されています。一方、日本のデータの変換ツールを村上 卓弥さんが開発され、ついに日本中の Terrainシーナリーが作成可能になりました。

実際の製作手順は terrain SDK そのものや村上さんのサイトを見ていただくとわかるのですが、ここでは実際に実験してみた手順や結果を簡単にお知らせします。

アメリカ編

まず、ここに行ってデータを頂いてきます。これは、1-Degree USGS DEM というもので、ブロックの各辺の長さが1度、解像度が約 100 m であり、"3-arc second" または "1:250,000 scale" DEM データとも呼ばれています。 これより細かいのもありますが、有料になります。データをダウンロードする際は、圧縮してあるものの方が小さくて良いです。gzファイルの解凍はツールによって方法が違うと思いますが、もし拡張子が付かないようなら、自分で.dem と付けます。結局、9.38 MB の大きさの dem ファイルが得られます。この大きさにならない場合は多分解凍方法が間違っています。
次に、ここから、read_dem.exe を頂いてきます。これだけでは使い方がわからないので read_dem.c も一緒に頂いた方がいいです。例えばハワイ島南部でしたら、
read_dem hawaii-s.dem hawaii-s.raw hawaii-s.hdr
のようにして使います。hawaii-s.demはダウンロードして解凍したファイル名、hawaii-s.rawはこれから作るバイナリファイル名、hawaii-s.hdrは これから作るヘッダファイルです。これをやると、rawファイル( 2.75 MBになると思います。)と hdrファイルができます。
次に terrain SDK を使うために infファイルを作ります。infファイルを作るときに先程の hdrファイルを参考にします。実際に、ハワイ州全て(demファイル14個)を変換して一つにする infファイルの例をここに示します。他の地域を作成するときの参考になればと思います。注意としては、hdrファイル上の緯度経度は秒単位で示されていますので、3600で割ってあげないと度になりません。度に変換した数値を infファイルの該当するところに入れます。経緯度以外の数値は特別なものは無く、ソースファイルの数に合わせて適当に変更すればこのままでOKだと思います。
出来上がった infファイルと先程の rawファイルを一緒にして resample.exeをかけます。またバッチファイルの例を書くと、
resample hawaii0.inf
のようになります。infファイルさえ作ってあれば実に簡単です。これが終わると tmfファイルができます。先程の hawaii0.inf の例だと、出来上がった hawaii0.tmf ファイルは 10.9 MB になります。次に、tmfcompress.exe をかけます。
tmfcompress hawaii0.tmf hawaii.tmf
のようになります。こうすると、圧縮された hawaii.tmf ファイルが出来上がり、この場合は 1.51 MB になります。あとはこの tmfファイルを bglファイルに変換するだけです。tmf2bgl.exe を使うのですが、同様に、
tmf2bgl hawaii.tmf hawaii.bgl
となります。出来上がった hawaii.bgl は同じ 1.51 MB です。これを sceneryフォルダに入れればよいわけです。(注意:今回は tmfmerge.exe は使っていません。このハワイの例では特に使用せずにできます。)

アメリカ編の実験結果
場所
DEMファイル数
結果
Hawaii
14
デフォルトのHAWAIIシーナリーが優先して表示され、一緒にすると terrainシーナリーが全く表示されません。terrainシーナリーだけにすると建物や海岸線などが全部なくなってしまい、使用に耐えません。残念がならハワイでは terrainシーナリーの出る幕はありませんでした。例としてあげたのですが、これをこのままなぞるのはお勧めできません。




日本編

まず、国土地理院の数値地図50mメッシュ(標高)を買ってきます。日本 I ・ II ・ III があり、各7500円です。私の場合は東京駅のそばの八重洲ブックセンターで買いました。もし日本全国をやる場合はこの CD-ROM 内のデータ(これは MEMファイルです。)をハードディスクに吸い出して、1つのフォルダに収めておくと後々便利でしょう。
次にやるのがアメリカ編での read_dem.exe に相当するツールで、これを村上さんが作成されました(ここから入って「日本 Terrain シーナリ Part 1 公開」へお進み下さい。)。 ここで「日本 Terrain シーナリ作成キット」を頂いてきてください。このプログラムは国土地理院の数値地図50mメッシュ(標高) のデータを terrain SDK で扱うことができる raw 形式への変換を行い、これによって日本全国の地形を50mメッシュでシーナリーに変換することが可能になります。さらに、rawファイルの作成だけでなくアメリカ編で書いたその後の作業も全部自動的に行われ、あっという間に bglファイルが出来てしまう!というすばらしいツールです。日本編については村上さんのサイトの解説が丁寧なのでこれ以上手順については書くことがありません。また、日本のデータはまだ座標が古い日本座標で作られているため、これを WGS-84 に変換する必要があり、村上さんのツールでも変換を行っています。当初ありましたWGS-84 変換ルーチンの問題も全て解決され、沖縄・小笠原を含んだ日本全国のシーナリー作成が可能となりました。
そしてさらに便利なことに、同梱の jterrain を使えば、変換する MEMファイルの指定をいちいち自分で行うことなく、まさに全自動で bglファイルまで作成可能です。しかも、村上さんが terrain SDK の resample のプログラムの動作を検証されて、変換しようとする領域(MEMファイル64個分)の周囲の3列分まで広く抽出を行い作成されるファイルの品質を上げているという心遣いつきです。(ソースファイルまで付けていただいているのでこのあたりが具体的にわかります。)また、resample する精度 LOD (Level Of Detail) も8(サンプルサイズ 153 m)に設定され、実際の動作がそんなに重くならないように設定されています。さらに、富士山だけは LODを10(サンプルサイズ 38 m)にして細かく表現する Fujiファイルもついていて、これまたユーザーの心理を鋭く突いた設計となっています!。
7月30日現在、村上さんが ver1.1 を開発されました。ver1.0 では、海岸線のそばのシーナリーではところどころ地盤が陥没し、地獄へ落ちるような深い穴があくという現象がありました(羽田空港のそばの城南島、北海道の野付半島など)。 ver1.1 でもまだ穴は存在していますが、前より数は減っている気がします。ごく一部を見た限りでは、城南島の穴は変わっていません。野付半島の穴は個数が減ったような気がします。

ここでちょっと実験して、村上さんの jterrain を改造して、jt_auto というプログラムを作ってみました。これは、jterrain の LOD設定を"Auto"で行うようにしたプログラムで、変換されるファイルそのものが持っている精度に一番近い精度で自動的に resample されるという設定です。(要するに、せっかく「22500円」も出してCD-ROMを買ったのだから、中に入っている情報をフルに利用しようという「貧乏性」な発想です・・・)実際に日本のシーナリーを作ると、全て LOD = 10 で変換され、日本全国で詳細な富士山と同じ精度が得られます。その代わり、動作が非常ーーーに重くなります。まず、変換するだけで約4時間!変換後のファイルサイズは、jterrainが 23MB なのに対し jt_auto では 470MB !、フレームレートは1とか2はあたりまえ!、しかも 256MB のRAMを積んで仮想メモリを 4G にした Windows2000 でもメモリー不足で落ちる!! というものすごさ・・・
到底実用に耐えるものではありません。まさに静止画観賞用のみです。(Slewモードでも、少しでも動くとすぐにメモリー不足で落ちます。デフォルトのシーナリーで移動して場所が決まってから jt_auto で作成した Terrainシーナリーに切り替えないとだめです。)

追記 2001年7月

世の中の進歩は早く、CPUパワー・メモリー容量ともに、このjt_autoを作った当時とは雲泥の差があるシステムがあたりまえの時代になりました。結論から言いますと、このjt_autoで作ったシーナリーが実用になる時代になりました。詳しくはこちらからどうぞ。


なお、実際の表示例をここにまとめました。デフォルトのシーナリーと jterrain, jt_auto 使用のものを比較してあります。

jt_auto

村上さんの jterrain を改造して作った jt_auto の使用方法です。とても簡単で、jterrain が入っているのと同じフォルダに入れてダブルクリックするだけです。LOD = Auto 以外の動作は全て jterrain と同じです。すばらしいプログラムを作られた村上さんに感謝いたします。
Click here to visit our sponsor

ダウンロードMMMMMMMjt_auto.exe (60KB)



今後の展望

まだ世間では、 Windows2000 はこれからのOSでリソースがたくさん必要になっても大丈夫という認識が強い中で、これだけの環境でも平気で Windows2000 のコミットチャージをオーバーフローさせてしまうというFS2000。これはすごいソフトです。また、FS2000にそういう動作をさせてしまう Terrainシーナリー、これもすごいシーナリーです。確かに現実のフライトには程遠い状況ですが、PCのハードもOSもFS2000にとってはまだまだ不足していることを明言しているようで、FSユーザーのPCグレードアップ・ライフはまだまだ続くことを明示しているかのようです。こういうFS2000に付き合っていくのは大変そうですが、やはり楽しみでもあります!。

日本全国Terrainシーナリー詳細版

2001年5月、上記の jt_auto で作った日本全国の詳細なシーナリーを、国土地理院の承認を得てこちらのサイトより公開を開始しました。どうぞご利用ください。


フライトシミュレータ・シーナリーのページへ戻る。



©2000-2001 S.Ito. All rights reserved.