Photo Scenery Maker によるフォトシーナリ作成

はじめに

ここでは、Photo Scenery Maker を使って FS2002/2004 専用のフォトシーナリを作成する手順について解説します。
(以前、TerraBuilder 向けに書いた文書を Photo Scenery Maker 向けに手直しした文書です。)

FS2000 以前のバージョンの Flight Simulator はフォトシーナリをサポートする機能をもっておらず、アドオンシーナリ作者は写真テクスチャをポリゴン命令で描画することでフォトシーナリを実現していました。FS2002 からはフォトシーナリを正式にサポートするようになっており、これを使うと以下のようなメリットがあります。

  1. テクスチャがテレインメッシュに合わせて貼られるので、アドオン作者側で高度を計算して合わせる必要がない。
  2. テクスチャの剥がれが起こりにくい。
  3. 描画が速い(と、思う)

従来、フォートシーナリは TerraBuilder という定番ツールを使って制作するのが普通でしたが、最新版の TerraBuilder はどうも挙動が変なので、私が TerraBuilder に代わるツールとして Photo Scenery Maker を開発しました。

実際のフォトシーナリの作成には、Microsoft Terrain SDK に含まれるツールが使わていて、Photo Scenery Maker はそのフロントエンドとして機能しています。

必要なツールの準備

まず、必要なツールを準備します。Photo Scenery Maker, FS2000 Terrain SDK, Custom Terrain Textures SDK の3つが必要です。これに加えてペイントソフト、電子地図ソフトなどがあったほうがよいでしょう。

Photo Scenery Maker

Photo Scenery Maker を http://scenerytools.sourceforge.net からダウンロード/インストールします。

FS2000 Terrain SDK

ここ をクリックして FS2000 Terrain SDK をダウンロード/インストールしてください。

注意: 最新版の Terrain SDK ではありません。FS2000 用のものが必要です。

万一、上記のリンクが切れている場合、Microsoft の Flight Simulator のページから、"Article Index" → "Flight Simulator 2000 SDK" を順にたどれば見つかるはずです。

Custom Terrain Texture SDK

Custom Terrain Textures SDK は Flight Simulator 2002 Software Development Kits のページにあります。 ここをクリックしてダウンロード・インストールしてください。 この SDK に含まれる Imagetool.exe が必要になります。

ペイントソフト

これは必須ではないのですが、画質の調整をしたり、後述する海面の切り抜きをするときに必要になります。私は Adobe Photo Shop 7J を使っています。ただ、これはかなり高価なツールなので、JASC Paint Shop Pro を使ってもいいでしょう。

それと、フォトシーナリ作成ではかなり巨大な画像を扱いますので、メモリが大量に必要です。256MB だと全然だめです。できれば 1GB 以上積んでくっださい(私は 2GB 積んでます)。

電子地図ソフト

緯度/経度を調べるときに必要になります。私が使っているのはゼンリンの Z IV ですが、何でもかまいません。

ただ、国産の電子地図の場合、表示される緯度/経度は「東京測地系」と呼ばれる座標系に基づいた値です。FS2002 内で使われるのは「WGS84」と呼ばれる座標系ですので、電子地図ソフトで読みとった座標を FS2002 で使うためには変換処理をしなければなりません。

東京測地系 - WGS84 の変換を行うソフトを私のページで公開していますので、活用ください。

写真の準備

実はこれが一番厄介だったりします。フォトシーナリを作るためには、上空から垂直に撮影されたゆがみのない写真が必要です。このような写真は、垂直航空写真か衛星写真しかありませんが、ふつうに購入するとかなり高価です。

2002/4月頃から、国土地理院が航空写真の閲覧をインターネット上で 行っていますので、これを使ってみるもの手です。ただ、 このシステムは閲覧に利用が制限されていますので、実際にシーナリを作って再配布する場合は写真を購入しなければなりません。

もしくは、国土交通省が提供する国土情報ウェブマッピングシステムを使ってもいいでしょう。こちらのほうは引用・転載が可能です。

写真は1枚の BMP ファイルにしておく必要があります。複数枚の場合は何回かに分けてシーナリを作成しなければなりませんが、隙間が空くことが多いので1枚にまとめておくのがベターです。また、北がぴったり真上にくるように調整が必要です。

名古屋フォトシーナリ 2002 の場合、運良く坂川典正氏が作成された名古屋の垂直航空写真がありましたので、これを使いました。


オリジナルの BMP ファイル (1/10に縮小)

この画像は 4096 x 4096(!) という巨大な BMP ファイルで、ほぼ名古屋全域をカバーしていました。解像度はだいたい 8m/pixel 程度です。ただ、みてわかるとおり完全な正方形ではなく、ところどころ抜けているところがあります。

なお、FS2002/2004 でのフォトシーナリにおける解像度は、南北方向が 4.8m/pixel です。元の画像がこれより低い解像度だとあまりいい結果が得られません。逆に細かくても意味がありません。

Photo Scenery Maker の起動

それでは Photo Scenery Maker を起動しましょう。最初にオプションを開きます。

ここでは、Terrain SDK のフォルダ、Imagetool のフォルダを指定しておきます。上記の画面は英語になってますが、日本語 Windows なら自動的に日本語で表示されていると思います。

次に、ファイルメニューから "新規作成" を選んでください。プロジェクトのプロパティダイアログが開きます。

最初に「ビットマップ」タブを選んで、ビットマップを選びます。「季節のサポート」はとりあえず外しておきます。

 

次に「出力」タブを選んで、シーナリの出力フォルダとベースファイル名を指定します。

 

この時点で、いったんプロジェクトを保存します。「ファイル」メニューから「保存」を選んで保存してください。

なお、名古屋フォトシーナリ2002の場合、画像が長方形になっていないので、4つの区域に区切って処理します。(つまり、Photo Scenery Maker を4回使う)。これはかなり面倒なので、できれば完全な長方形のフォトを使ったほうがいいです。

キャリブレーションを行う

次に、緯度/経度のキャリブレーションを行います。

キャリブレーションには 「2点補正」で行います。これは2つのポイントの緯度/経度を入力してキャリブレーションする方法です。

まず、キャリブレーションを行う位置を決めます。名古屋フォトシーナリ 2002 の場合は、1つめの位置は名古屋駅前のモニュメントの中心位置、もう一つはJR中央線が矢田川と交差する位置を使いました。あらかじめ電子地図ソフトで座標を読みとっておき、WGS84 に変換しておきます。

次に「補正」メニューの「2点補正」を選びます。アイコンが変わりますので1つ目のポイントをクリックして緯度/経度を入力し、ついで2つ目のポイント上でクリックして緯度/経度を入力します。


名古屋駅前のモニュメント位置で1つめのキャリブレーションを行う

これでキャリブレーション完了です。ステータスバーに、マウス位置の緯度/経度が常に表示されていますので、確認してみてください。

シーナリの生成

それではいよいよシーナリを生成します。

「シーナリ生成」メニューをクリックすると以下のダイアログがでます。

「全実行」を押します。これだけです。簡単ですね :-) TerraBuilder だとだいぶ面倒だったんですよぉ。

フォトが大きいとだいぶ時間がかかりますが、お茶でも飲みながら待ちましょう。 なお、画面右にあるボタンを使うと、順番に一つずつ処理を行うことができますが、まあ使わなくてもいいでしょう。

作業が終わると、出力フォルダに BGL ファイルやテクスチャファイルができているはずです。

動作確認する

それでは動作確認しましょう。FS2002/2004 を起動し、シーナリライブラリを設定してください。

正しくシーナリが表示されましたか?

 

海面の切り抜き

アルファチャネル

さて、完成したシーナリですが、このままではテクスチャの海面部分にもそのままテクスチャが貼られてしまうので、海面が露出しません。名古屋フォトシーナリの場合は海面が真っ黒になります。

これを防ぐには、テクスチャの海面部分を「切り抜いて」やる必要があります。これには「アルファチャネル」というものを使います。


アルファチャネル

上の画像は名古屋港付近のテクスチャのうちの1枚ですが、通常の画像のほかにアルファチャネルの画像が入っています。アルファチャネルの黒色になっている部分はテクスチャがくりぬかれ、海面になります(デフォルトの地形が現れるのではありません)。

アルファチャネルビットマップを作成する

アルファチャネルは、元の画像と全く同じサイズのビットマップとして作成します。海面を黒、地上を白とします。なお、ビットマップは 24bit の bmp ファイルとして作成してください。

あとは、プロジェクトプロパティのビットマップタブにある「水面」テクスチャにこれを指定するだけです。

これも、初期の TerraBuilder に比べるととっても楽にできるようになっています。

 

他の季節/夜間用テクスチャを作る

上記の方法で作ったフォトシーナリは、季節時間帯にかかわらず同じテクスチャが表示されます。

季節はまあどうでもいいのですが、夜間は少々問題です。というのは、この方法で作ったテクスチャは夜間になると全く発光しないので、完全な暗闇になってしまうからです。

ここでは他の季節/夜間用のテクスチャを作る方法について説明します。

フォトを用意する

まず、夜間用と他の季節用のフォトを作成しなければなりません。画像サイズは最初の画像と必ず同じにしなければなりません。

季節/夜間テクスチャには以下の6種類があります。

それぞれのテクスチャにはサフィックスがついているので、どの種類のテクスチャがわかるようになっています。たとえば、夜間用のテクスチャは ....Lm.bmp という名前になっています。Photo Scenery Maker では、デフォルトでは夏用のテクスチャだけが生成されます。

季節/夜間用テクスチャを使う場合、上記6セットを必ず全部用意しなければなりません。夜間だけ別フォトにして、それ以外は1種類、、、ということはできないのです。 さもないと、特定の季節でテクスチャが貼られないという現象が起こります。

とはいえ、6種類もフォトを用意するのは大変です。名古屋フォトの場合、そもそもフォトは1枚しかありませんでしたので、このフォトは夏用に使い、冬と夜間のテクスチャだけでっちあげ 、それ以外は他のフォトをコピーして使い回すことにしました。

冬のテクスチャを作るのは割と簡単です。ペイントソフトで元のフォトを開いて、彩度を少しさげ、明度を上げてやります。これで一面冬景色になります。


冬用のフォト

夜間はかなり難しいです。明度、彩度、カラーバランスなどを駆使して、「それらしく」見えるようにします。名古屋フォトの場合、以下の2つのレイヤを作っています。

上のレイヤは、透過率を数十%にして、下のレイヤにかぶせています。

場合によっては、ある程度「手書きで」調整が必要になると思います(実際名古屋フォトでもやってます)
# 伊藤さんのイラストレイテッドシーナリみたいだ (^^)


夜間用のフォト

シーナリを生成する

季節・夜間フォトをサポートするには、プロジェクトのプロパティのビットマップタブで、「季節のサポート」をオンにしておきます。

すると、各季節と夜間のビットマップを指定できるようになりますので、それぞれ指定してやります。

あとは普通の手順と同じです。

AutoGenとの相性について

TerraBuilder が生成したフォトシーナリは、通常の AutoGen シーナリとの相性がよくありません。フォトシーナリを配置した場所には AutoGen シーナリが全く生成されません。

フォトシーナリ上に AutoGen シーナリを表示させるためには、テクスチャと同じディレクトリに AGN ファイル(拡張子が .agn のファイル)をおけばよいです。AGN ファイルを生成するには、AutoGen SDK を使用してください。


戻る