熱帯や亜熱帯の暖かい海では珊瑚礁でいっぱいでエメラルドグリーンのきれいな模様が見られます。そこでOrtho4xpを使ってどの程度までこの珊瑚礁の海のシーナリーを表現できるのか調べて作成してみた結果を報告します。
美しい海のフォトシーナリーを作って楽しむ方法
離島のシーナリーと珊瑚礁の海
私は離島のVFRが大好きです。
世界中の離島を訪ねることもフライトシミュレーターの楽しみの一つになっています。
X-Plane11で使うフォトシーナリーを作ることができるOrtho4xpは,世界中の場所のフォトシーナリーを作る事ができます。
けれども表示できる海面については陸地周辺に限るという制約があります。
陸地周辺にある浅い海を表示する距離は,ドライバーとスパナのアイコンで開く”Config“のなかにある”masks_width“で設定しますが,岸から10kmがその限界です。
なお”masks_width=10000″というのは,グラデーションマスクを作らないという設定のようです。
離島ではないのですが,カリブ海にエメラルドグリーンの海が広がる”Great Bahama Bank”という場所があります。
この場所は陸地から200kmまで浅い海が広がっていてフォトシーナリーでみると素晴らしい景色になるだろうと想像できます。
日本の南西諸島の海
日本でも沖縄県には珊瑚礁が広がっている場所があります。
Googlearthで岸からの距離を測ると,珊瑚礁のデータがあるのは10km以内に収まるようです。
ところが問題はGooglemapのテクスチャーで,海面に”Google2020“というロゴマークが浮かび上がります。
雲のないデータはGooglemapしかないので,沖縄本島のフォトシーナリーを”masks_width“を5km(5000)に設定して作成してみました。
その結果,那覇空港の第二滑走路の周辺の珊瑚礁が再現でき,南城市から宮城島までの珊瑚礁をなんとか表示することができました。
なおすでにフォトシーナリーを作っていても,”mask_ZL”を14にして”masks_width”を5000で,マスクデータとdsfだけを作り替えることで短い時間で修正することができます。
バハマの海
バハマの海は浅くて広く岸から10kmでは表示しきれません。
こういうときOrtho4XPにはフォトシーナリーを最大限活かして外海を低解像度テクスチャーで補う設定があります。
Ortho4XP設定の変更
マスクの解像度を下げて距離を伸ばす設定
海のフォトシーナリーには基本的にマスクは不要です。
そのためマスクの解像度は最低のZL=14としてマスクの距離”masks_width“を10km(10000)とします。
ただし,利用する写真”Imagery“は雲がところどころあるのですが色変化が少なくロゴが表示されない”BI”を選択します。
フォトシーナリーを最大限活かす設定
“DSF/Imagerty“の設定の中に”resio_water“という設定があります。
これを1.0にしてOrtho4XPで作ったテクスチャーを100%利用する設定にします。
海のテクスチャーを拡張利用する設定
つぎに”experimental_water“を2として海のテクスチャーを拡張利用する設定にします。
ただしこの設定を行うと,水面が陸地扱いになってしまうため水上機で着水できなくなりますので,着水する海を作る時は“0“のままにしておきましょう。
experimwntal_waterの説明
If non zero, replaces X-Plane water by a custom nomal map over low res ortho-imagery (requires XP11 but turn water rendering more XP10 alike).The value 0 corresponds to legacy X-Plane water, 1 replaces it for inland water only, 2 over sea water only, and 3 over both. Value 2 and 3 should always be used in combination with “imprint_mask_to_dds”.
This experimental feature has two strong downsides: 1) the waves are static rather dynamical (would require a plugin to update the nomal_map as X-Plane does) and 2) the wave height is no longer weather dependent. On the other hand, waves might have less repetitive patterns and and some blinking in water reflections might be improved too; users are welcome to implrove the provided water_nomal_map.dds (Gimp can be used to edit the mipmaps individuallly).(英文の邦訳)
ゼロ以外の場合、X-Plane水を低解像度のオルソ画像上のカスタムの通常のマップに置き換えます(XP11が必要ですが、水を回してXP10をより多くレンダリングします)。値0は従来のX-Planeの水に対応し、1は内陸水のみ置き換えます。 、2は海水のみ、3は両方置き換えます。 値2および3は、常に「imprint_mask_to_dds」と組み合わせて使用する必要があります。
この実験的な機能には、2つの大きな欠点があります。1)波は静的で動的です(X-Planeのようにnomal_mapを更新するにはプラグインが必要です)。2)波の高さは天候に依存しなくなります。 一方、波は繰り返しパターンが少なく、水の反射の点滅も改善される可能性があります。 ユーザーは、提供されたwater_nomal_map.ddsを理解することを歓迎します(Gimpを使用してミップマップを個別に編集できます)。”imprint_mask_to_dds”の説明
Will apply masking directly to dds texture (at the Build Imagery/DSF step) rather than using external png files. This doubles the file size of masked textures (dxt5 vs dxt1) but reduce the overall VRAM footprint (a matter of choice!)
(英文の邦訳)
外部のpngファイルを使用するのではなく、(イメージの作成/ DSFステップで)ddsテクスチャに直接マスキングを適用します。 これにより、マスクされたテクスチャのファイルサイズが2倍になりますが(dxt5とdxt1)、全体的なVRAMフットプリントが削減されます(選択の問題です)。
ついでながら,バハマはアメリカ合衆国周辺の国ですから,”custom_dem”データを”NED 1/3″(from USDG) -USA”の方が良いようです。
以上を設定したConfig画面が次のようになります。
この設定でカリブ海のフォトシーナリーを作成しました。
ちなみに島では道路や橋のオーバーレイは不要なので作成していません。
下の画像が2日間かけて作成した29タイル(約41GB)です。
浅い海が表示されないタイルの修正
先の設定で作成したタイルでも浅い海が表示されないもの(+27-079)があります。
このタイルでは,水深が少し深いのでぼんやりとしか海底が表示されません。
この空港は,バハマ諸島の北端部にあるアバコ諸島にあるウォーカー・カイ空港(MYAW)です。
タイルの修正方法
白紙のpngファイルを作る
このタイルの海底を表示するには,手動でpngファイルを白紙化します。
”zOrtho4XP_+27-079”フォルダーを開き,この中にある”*.png”ファイルを選択表示します。
これらのファイルをバックアップして別フォルダーに保管します。
つぎに512×512ピクセルの白紙のpngファイルを作成(ひとつのファイルを白紙化してもいいです)して,フォルダー内のpngファイルの名前で保存していきます。
なおフォトシーナリーを作り替えるとpngファイルは元に戻ってしまうので,別フォルダーに保管しておきます。
これをX-Plane11で表示すると次のようになります。
これは,写真ソースを100%表示したもので実際の海の色です。
上の写真では,外海タイルとの境界を表示していませんが,海が深いので外界のタイルとの間ではっきりとした境界が表示されてしまうのが欠点です。
島の周りを白くぼかしたpngファイルを作る
そこで,空港のある島の周りだけをペイントソフトで白くぼかしたpngファイルを作って表示してみました。
このpngファイルを使って表示したウォーカー・カイ空港(MYAW)です。
こうすれば空港のある島の周りを詳細なフォトシーナリーで表示することが可能です。
私は,島の周りが詳細に表示されていれば4000フィートくらいに上がれば,気にならなくなりました。
まとめ
カリブ海との格闘で,なんとか海のシーナリーを作る手法を半分くらい習得できたような気がします。
“Paint.net”というフリーソフトを使えば,外海との境界をぼかすことや浅い海を表示することが比較的簡単にできます。
時間さえかければ,実際の海に近いシーナリーが作れそうです。
コメント