• 記事をシェア
  •  
  •  
  •  
  • B! 
  •  

Google MapでMSFSのシーナリーが作れるGoogle Earth Decoderの使い方

ユーザーは、MSFS SDKを使って、マイクロソフトフライトシミュレーター用のアドオンコンテンツを作ることができます。 Google Earthの3DマップをMSFS用に変換すれば、MSFSにリアルなシーナリーや建物を追加することができます。
ここでは、Google Earthの3DマップをMSFS用に変換する無料ツール : Google Earth Decoder の使い方を解説します。

Google Earthの3Dマップを確認する

まず最初に、あなたが作りたいシーナリーや建物が、Google EarthやGoogleマップで3Dデータとして表示可能か否かを確認してください。 3Dデータがサポートされている地域は、都市部や有名な観光地などに限定されています。 3Dデータが存在しない地域では、Google Earth Decoderは使用できません。
PC あなたが作りたいシーナリーや建物をGoogleマップで探します。 そして画面左下の「航空写真」ボタンをクリックします。
PC 航空写真画面の右下の「3D」ボタンをクリックします。
PC シーナリーや建物が立体的に表示されたら、Google Earth Decoderを使って、その場所の3DデータをMSFS用に変換することができます。 3Dデータがサポートされていない地域では、単に航空写真が傾いて表示されるだけで、建物は立体的に表示されません。
この画面で[Ctrl]キーを押しながらマウスを動かすと、視点を移動させることができます。 マウスのスクロールホイールを回すと、ズームイン/ズームアウトできます。
広い地域をMSFS用に変換したいときは、どこまで3Dデータがサポートされているかを確認しておきましょう。
PC あるいはブラウザで Google Earth を開いて、メニューから[表示]-[レイヤ]を選び、表示されたダイアログボックスで「建物の3D表示」をオンにします。 するとこの図のように、3Dデータが供給されている地域がオレンジ色で塗りつぶされます。 ただし高い視点からでないと、塗りつぶしが表示されません。

各種ツール類のインストール

マイクロソフトフライトシミュレーター用のアドオンコンテンツを作るには、まず各種ツール類をパソコンにインストールしてください。
詳しくは、下記のページをご参照ください。

パッケージの命名とプロジェクトの作成

作成するシーナリーのパッケージ名を考えてください。 MSFS SDKでは、パッケージの命名規則が厳密に決められています。 規則に従った正しいパッケージ名を考えてください。
パッケージ名が決まったら、中身が空のプロジェクトを作成します。 Google Earth Decoderを使う場合は、Blenderのプラグイン「Google Earth Decoder Optimization Tools (GEDOT)」を使ってシーナリープロジェクトを作成するのがおすすめです。
詳しくは、下記のページをご参照ください。

Google Earth Decoderで3Dデータをダウンロードする

PC Google Earth Decoderのフォルダーで「Earth2MsfsWPF.exe」をダブルクリックすると、Google Earth Decoderが起動します。
画面右上の「Output Folder」欄にあるフォルダーアイコンをクリックして、3Dデータを保存するフォルダーを指定します。 中身が空のプロジェクトが準備できているときは、その中の「PackageSources」フォルダーを指定します。
LOD OPTIONS」欄で、ダウンロードするデータの精細度(LOD:Level Of Details)の範囲を指定します。 2つの青いバーを左右にドラックすると、最低LODと最高LODが指定できます。 数値が小さいほど精細度が低く(データ量が少ない)、数値が大きいほど精細度が高い(データ量が多い)ことを示します。
なお、この画面の各minSize欄のデフォルト値は正しくありませんが、 シーナリーデーターを最適化 すると自動的に修正されます。 このまま放置してかまいません。
COLOR CORRECTION」欄で、テクスチャの色調などが調整できます。 ダウンロードされるテクスチャはやや明るすぎるので、Brightness(明るさ)のみ、0.9程度にすると良いかもしれません。 しかしこの画面でリアルタイムに確認できるわけではないので、この機能を使うのは難しいと思います。 色調の調整が必要となった場合は、シーナリー完成後に GIMPなどのペイントツールで直接テクスチャファイルを加工 してください。 地図が表示されている場所で、マウスのスクロールホイールを回すか、左ボタンをダブルクリックすると、ズームイン/ズームアウトできます。 ドラッグすると、場所を移動することができます。
マウスの右ボタンを押さえながらドラッグすると、3Dデータをダウンロードする範囲が選択できます。 白いラバーバンドが表示されます。 繰り返してドラッグすれば、範囲の指定を何度でもやり直すことができます。 ただし3Dデータは、Google Earthで定義される「タイル」という単位でダウンロードされます。 このため、実際には白線で囲んだ部分より広い領域のデータがダウンロードされます。
画面右上の「CLEAR REGION」ボタンをクリックすると、選択範囲をクリアします。 範囲を選びなおすことができます。
LODの指定方法について
PC より大きいLODを指定すると、より高精細なシーナリーが表示されますが、よりゲームの速度(FPS値)を低下させます。 通常はLOD値として最小17、最大19を指定してください。
LOD20のデータサイズは、LOD17~19のすべてのデータサイズの10倍以上になる場合もあります。 空港のビルなど、ゲーム中で拡大表示されるシーナリーを作る場合に限って、範囲をごく狭くしたうえで最大LODとして20または21を試してみてください。 なお、LOD22以上を指定すると、データ量が多すぎるためか、MSFSのビルドでエラーとなる場合があります。 LOD22以上は指定しないでください。
建物の多い都市部では、最大LOD19でも実用的な速度が出ない場合があります。 このような場合は範囲を狭めるか、最大LODを下げてください。
地域全体と、その中のランドマークとなる建物を別のシーナリーにして、それぞれ個別の最大LOD値を指定し、後から シーナリーデーターを結合する のも良いと思います。
minSizeとは
minSize(単位は%)とは、ゲーム中で、オブジェクトの解像度の選択に使用される指標です。 ゲーム画面上で、オブジェクトのサイズがminSize値より大きくなったときに、そのLODのモデルが表示されます。 ここが正しくセットされていないと、オブジェクトに近づいても低い解像度のモデルが表示されたり、オブジェクトから遠ざかっても、高い解像度のモデルが表示されたりします。 オブジェクトのサイズ(ダウンロードしたGoogle Mapの広さ)に合わせて、毎回調整する必要があります。 シーナリーデーターを最適化 するとシーナリーはタイルごとに分割され、正しいminSizeがセットされます。
LODの詳細については、MSFS SDKドキュメントの LODs のページ で読めます。
範囲指定の目安
PC プロジェクトの PackageSourcesフォルダーの中身が7.5GBを超えると、MSFSのビルドでエラーが発生する場合があります。 あまり広い領域を選択すると、ビルドに失敗します。 LOD17~19を指定する場合は、画面右下のゲージを参考にして、まずは5~6km四方程度の範囲を選んで、ダウンロードされるデータ量を確認してみてください。
一度に広範囲のシーナリーを作ると、シーナリーの端のタイルがMSFSの地面に沈み込んでしまう場合があります。 広範囲のシーナリーを作りたいときは、約2~3km四方くらいのシーナリーに分けて作成し、最後に シーナリーデーターを結合する するのが良いと思います。
右図の例では、約1km四方を選択していて、ダウンロードされるタイルの数は4となります。
Google Earth Decoderを初めて使用するときは、インストールした各ツールが正しく動作することを確認するため、ごく狭い領域で試してください。
ダウンロード
PC セッティングが完了したら「DOWNLOAD」ボタンをクリックします。 すると3Dデータのダウンロードが始まります。
もしダウンロードを中止したい場合は「CANCEL」ボタンをクリックしてください。
なお、さまざまな理由で「DOWNLOAD」ボタンをクリックしてもダウンロードが始まらない場合があります。 その場合は、領域を小さくしたり、場所を変えたり、またはしばらく時間を空けて試してみてください。 3Dデータがサポートされていない地域では、ダウンロードが始まりません。
PC ダウンロードが完了すると、「DOWNLOAD」ボタンの下に"Finished"と表示されます。 指定したフォルダーの下に"modelLib"と"scene"という名前の2つのフォルダーができているはずです。 この中に3Dシーナリーデーターが格納されています。 総データ量が7.5GBを超えていないことを確認しましょう。
参考:LODによる見え方の差異
最大LODの指定によって、ゲーム中でどれだけ見え方が変わるか、比較してみました。 最大LOD21、20、19のモデルを、同じ場所から眺めた映像です。 データ量は各LODの間で3倍以上になります。 なお、LOD19の画像例は、広いシーナリーの端に位置しており、若干MSFSの地面に沈み込んでしまっています。

シーナリーデーターを最適化する

Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)を使うと、ダウンロードしたシーナリーデーターを最適化することができます。
注意: Google Earth Decoder Optimization Tools (GEDOT)は、Blenderバージョン3.5で使用してください。
PC GEDOTでは、ModelLibアセットグループの名前は"[パッケージ名]-modelLib"と定義されています。 Google Earth Decoderで生成された"modelLib"フォルダーの名前を、これに合わせて変更します。
PC Blenderを起動し、メニューから[Google Earth Decoder Optimization Tools]-[Optimize an existing MSFS scenery project]を選びます。
PC するとこのようなダイアログボックスが表示されます。
画面上部中央にあるPath of the MSFS projects...と書かれた部分をクリックします。
PC ファイル選択画面になるので、プロジェクトフォルダー直下にある"Scenery-[シーナリー名].xml"を選びます。
PC すると、プロジェクトの情報が画面に反映されます。 "Path of the project", "Project name", "Xml definition file"の各項目が、正しく読み込まれていることを確認してください。
Author of the project欄には、あなたの名前/ペンネームなど(この例では"someone")を指定します。
Bake texutures enabledにチェックを入れると、地表を構成する各タイルのLODごとに、テクスチャが1枚に合成されます。 ゲームの表示速度(FPS値)が向上します。 ただしこの機能を使うには、BlenderにLily Texture Packerプラグインがインストールされている必要があります。 Lily Texture Packerのインストール方法については、下記をご覧ください。
PC 画面左のメニューで[LODS]を選択すると、このような画面になります。
この画面では、各LOD値に対する"minSize"値を指定します。 デフォルトで正しい値がセットされているので、更新は不要です。
ただしこの画面にはLOD17~LOD23までの設定値しかありません。 これより低い、または高いLOD値のデータが存在する場合は、追加と修正が必要です。
PC 画面左のメニューで[AUTOMATIC_BUILD]を選択すると、このような画面になります。
画面上部中央にあるPath of the MSFS bin exe...と書かれた部分をクリックすると、フォルダー選択画面が開きます。 ここではMSFS SDKのビルド用ツール "fspackagetool.exe" の場所を指定します。 これは通常 "[MSFS SDKインストールフォルダ]\Tools\bin" の下にあります。
Build package enabledにチェックを入れると、最適化が終わった後、自動的にビルドがスタートします。
また、あなたが購入したMSFSがSteam版の時は MSFS Steam versionにチェックを入れてください。
最後に赤い[Optimize an existing MSFS scenery...]ボタンをクリックすると、プロジェクトの最適化が始まります。
なお、青い[OK]を押すと、このダイアログボックスが閉じます。
PC 最適化の実行中は、このような画面になります。 "Script correctly applied"と表示されたら完了です。
PC 「Build package enabled」にチェックを入れておいた場合は、この後20~30秒ほど待つと、MSFSの"fspackagetool.exe"が起動して、ビルドが始まります。 「続行するには何かキーを押してください...」と表示されたらビルドは完了です。 画面にエラーが表示されていないことを確認してください。 また、画面の最後の部分に"0 failed"と表示されていることを確認してください。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
PC また、プロジェクトフォルダの[Packages]-[(パッケージ名)]フォルダの下に、"layout.json"と"manifest.json"が生成されていない場合は、ビルドに失敗しています。 データ量が多すぎる場合には、ビルドが途中でクラッシュしてしまうことがあります。 シーナリーの範囲を狭めるなどしてみてください。
より広い地域のシーナリーを作りたいときは、複数のプロジェクトに分割する必要があります。
PC ビルドに成功したら、ここまでの状態を、MSFSのゲーム画面で確認してみましょう。 確認方法は ゲーム画面でプロジェクトのビルド結果を確認する を参照してください。
右図のように、Google Earthから読み込んだ3Dデータが、ゲーム画面上に表示されます。 しかし手前や中央奥にある小さい建物をよく見ると、Google Earthから読み込んだ建物と、MSFSによって自動生成された建物が重なって表示されているのがわかります。 つぎに、シーナリーに「除外ポリゴン」を追加することによって、この自動生成された建物を消します。

シーナリーの加工準備をする:オブジェクトをグループにまとめる

作成したGoogleマップのシーナリーをMSFS SDKに読み込んで、加工する準備をしましょう。 Googleマップのオブジェクトを「グループ」にまとめておきます。
★この作業は必須ではありません。単にMSFS SDKでパッケージを修正するときの扱いやすさを向上するだけのものです。
PC MSFSを起動して、ビルドしたプロジェクトをSDKに読み込みます。 この手順については ゲーム画面でプロジェクトのビルド結果を確認する をご覧ください。
PC プロジェクトをSDKに読み込んだら、Project Editor画面で、パッケージ名の左にある三角マークをクリックします。 するとパッケージに含まれるアセットグループの一覧が表示されます。 このなかにある、アセットグループ"BGL"をクリックします。
PC つづいて、Project Editorのメニューから[View]-[Inspector]を選びます。
PC するとこのようにInspector画面が開きます。 [Load in Editor]をクリックします。
注意:
少なくとも画面右下に[READY TO FLY(フライト準備完了)]ボタンが表示されている状態(シミュレーションの場所特定)までWORLD MAP画面を進めないと、ここでエラーになるのでご注意ください。
PC 開発者メニューを操作していると、次々と新しいウインドウが開いていきます。 操作しやすいように、適宜ウインドウを並べ替えながら作業を進めてください。
あるいは各ウインドウの左上、ウインドウ名の左にある「▼」マークをクリックすると、この図のようにウインドウを折り畳んでおくことができます。
PC すると今度はScenery Editor画面が開き、シーナリーのデータの読み込みが始まります。 "Loadings..."の表示が消えるまでしばらく待ちます。
PC 読み込みが終わると、このようにシーナリーに含まれるオブジェクトのリストが表示されます。 この例では、Googleマップの3Dデータが、4つのタイルに分割されて格納されています。
ここまでの作業で、GoogleマップのシーナリーデータがMSFS SDKに読み込まれました。 SDKを使ってシーナリーを編集したり、新しいオブジェクトを追加することができます。
PC 新しいオブジェクトを追加する前に、Googleマップの3Dデータを、ひとつのグループにまとめておきましょう。 [Ctrl]キーを押しながらGoogleマップのタイルをクリックして、全てを選択します。 そして画面下にある アイコンをクリックします。
PC すると即座に新しい「New Group 1」が生成され、そこにGoogleマップのタイルが入りました。
PC グループ名を右クリックすると、このようなダイアログボックスが表示されます。 「Rename」ボタンをクリックすると、グループ名が変更できます。
PC 今回私は「googlemap_scenery」というグループ名に変更しました。

除外ポリゴンを作成してMSFSが自動生成した建物を消す

作成したシーナリーに「除外ポリゴン」を置くと、MSFSによって自動生成された建物を消すことができます。
PC 新しい追加オブジェクトを選ぶために「Objects」画面を開きます。 Scenery Editor画面のメニューで[View]-[Objects]を選びます。
PC Objects画面が開きました。 最初は"Object Type"欄に"Scenery"が選択されています。
この状態のときは、あなたがMSFSにインストールしているすべてのシーナリーから、オブジェクトをコピーして持ってくることができます。 他のユーザーが開発したオブジェクトを、あなたのシーナリーに取り込むことができます。
PC ここでシーナリーに追加するのはポリゴンなので、"Object Type"欄をクリックして、"Polygon"を選びます。
なお、MSFSで扱えるオブジェクトの詳細については、MSFS SDKドキュメントの OBJECTS のページ で読めます。
PC つづいてObjects画面で[Add]ボタンをクリックします(図の左側)。 すると、Scenery Editor画面に、"Polygon"が赤字で追加されます(図の右側上)。 まだこのポリゴンには頂点が一つもないので、ゲーム画面に表示することができません。 そのため赤字で"Show error"が表示されています(図の右側下)。
PC もし、ポリゴンがGoogleマップのタイルグループの中に生成されてしまったときは、ドラック&ドロップで、グループの外に出してください。
PC まずは大雑把に、あなたが作成したGoogleマップのシーナリーを囲むように、ポリゴンの頂点を置いていきます。
Scenery Editor画面で、追加した赤字の"Polygon"をクリックして選択します。
次にゲーム画面で[Ctrl]キーを押しながらマウスを左クリックすると、そこに頂点が追加されます(右図中の赤い矢印)。 シーナリーを囲むように、[Ctrl]+クリックしていきます。 そして、[Ctrl]キーを押さずに、マウスを左ダブルクリックすると、頂点の追加を終了します。 ただしダブルクリックした場所には、頂点は置かれません(図中の青い矢印)。
PC 図では見づらいですが、完成したポリゴンが紫のラインで結ばれています。 このポリゴンを「除外ポリゴン」に指定します。 Scenery Editor画面で、今回追加した"Polygon"を右クリックすると、このようなメニューが表示されます。 "Properties"の左のボックスをクリックします。
PC ポリゴンのプロパティ画面が表示されます。 "Buildings"をクリックして展開し、"Exclude detected buildings", "Exclude OSM buildings", "Exclude MS buildings"にチェックを入れます。 するとポリゴンの内側の、自動生成された建物が消えます。
"TIN"は、Bing Mapsから写真測量によって生成された建物です (Triangulated Irregular Network)。
"detected buildings"は、航空写真から合成された建物です。
"OSM buildings"は、 Open Street Map による建物です。
"MS buildings"は、マイクロソフトの自動建物生成ai(Blackshark.ai)による建物です。
ポリゴンとその操作方法、およびプロパティの詳細については、MSFS SDKドキュメントの POLYGON OBJECTS のページ で読めます。
PC 次に、ポリゴンの各頂点の位置を微調整します。 Scenery Editor画面で今回追加した"Polygon"を選択した状態で、画面上の任意の頂点をクリックすると、このようなハンドルが表示されます。 ここで、図中に矢印で示した、緑色の四角形をドラッグすると、頂点を水平面上だけで移動できます。 各頂点がGoogleマップのシーナリーをぴったりと囲むように調整してください。
カメラを"Top Down Camera"に切り替えると、真上からの視点となり、より正確な位置合わせができます。
PC 除外ポリゴンが完成したら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックして、シーナリーを保存します。
参考:ここでScenery Editor画面を閉じると、ゲーム画面から、あなたの作成したGoogleマップのシーナリーが消えてしまいます。 しかしプロジェクトの中には残っているので、Project Editor画面でBGLを選択し、Inspector画面で[Load in Editor]ボタンをクリックすると、ゲーム画面にシーナリーが戻ってきます。
PC ビルドする前に、パッケージのバージョン番号を設定しておきましょう。 公開するコンテンツは、改良のたびにバージョンを上げていきましょう。
Project Editor画面でパッケージ名をクリックして選択し、Project Editorのメニューから[View]-[Inspector]を選びます。 するとInspector画面にバージョン番号の入力欄が現れます。
バージョン番号は3つの数字から成り、左からメジャーバージョン、マイナーバージョン、パッチバージョンです。 軽微な修正はパッチバージョンをアップします。 機能追加など行ったときはマイナーバージョンをアップします。 大幅な改造を行ったときはメジャーバージョンをアップします。
PC 最後にMSFS SDKでプロジェクトをビルドすると完成です。 Project Editorの画面で[Clean All]ボタンをクリックすると、"Packages"フォルダの下にある古いパッケージが削除されます。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
プロジェクトのビルド手順に関する詳細は MSFS SDKのプロジェクトの作り方/Google Earth Decoderのためのプロジェクトを作る の「プロジェクトをビルドする」の章をご覧ください。
PC ビルドに成功すると、Packagesフォルダーの下に、パッケージ名のフォルダーができています。 これをMSFSのデータ格納フォルダの中にある"Community"フォルダーにコピーすれば、あなたのMSFSにインストールされます。 パッケージを配布するときは、このフォルダーを圧縮して、配布サイトなどにアップロードします。
PC MSFSを再起動して、ゲームをスタートさせると、ゲームの中にあなたの作成したGoogleマップのシーナリーが現れます。 シーナリーをGEDOTで最適化していれば、道路には自動生成された自動車(トラフィック)が走ります。 また時間を夜に切り替えると、街灯も点灯します。 衝突判定が有効化されているので、建物に衝突すると、突き抜けることなく、飛行機はクラッシュします。 ただし夜になるとビルの窓は真っ暗のままです。
主要なビルには、ビル全体を照らすようにライトを設置したり、高層ビルに赤色点滅灯(航空障害灯)を設置すると、リアリティが増します。

MSFS SDKでシーナリーにライト/照明を追加する

MSFS SDKを使うと、MSFSに標準で準備されているライトオブジェクトを、シーナリーに簡単に追加することができます。 追加できるのは、白色またはややオレンジが混じった色の点光源です。 街灯として使ったり、建物を照らすのに使えます。
PC MSFSを起動し、プロジェクトを読み込み、シミュレーションをスタートします。 そしてシーンを夜に切り替えます。 ツールバーの[WEATHER]を選びます。
PC WEATHERの設定画面が開きます。 TIME欄のスライドバーをドラッグして、夜にします。
PC なお、開発者メニューの[Options]-[Local time]欄でも時刻を変更することができますが、WEATHERの設定画面のほうが、時間が細かく調整できます。
PC MSFSに標準で準備されているライトは「オブジェクト」です。 Scenery Editor画面で[View]-[Objects]を選び、Objects画面を開きます。
PC Objects画面で、"Object Type"欄に"Scenery"が選択されていることを確認します。 画面右の"Packages"欄で"fs-base"を検索してクリックします。 つづいて画面左の"Objects"欄で"Light"を検索します。
すると"Light_Cold", "Light_Warm"というオブジェクトが見つかります。 "Light_Cold"は白色のライト(昼光色)です。 "Light_Warm"はややオレンジが混じった色のライト(電球色)です。 どちらかを選び、画面左下の[Add]ボタンをクリックします。
PC するとScenery Editor画面にライトのオブジェクト(この画面の例では"Light_Cold*")が追加されます。 またゲームの画面にライトが表示されます。 ただし最初は座標軸だけが見えて、ライトそのものは見えていないと思います。 Scenery Editor画面でライトのオブジェクトを右クリックしてプロパティ画面を表示し、"Snap to ground(地面に貼り付ける)"のチェックを外します。
PC まず最初に、ライトの座標軸の横の赤色の四角形を上(Y軸)方向にドラッグします。 座標軸の横に表示されるY座標の値を見て、ライトの高度を少しずつ上げます。 するとライトが画面に現れ、その周囲がライトに照らされます。
つづいて座標軸の横の緑色の四角形をドラッグすると、ライトを水平面上だけで移動できます。 高度を調整したり、水平面上で移動したりを繰り返して、ライトを好きな場所に設置してください。
あとはひたすら上の手順を繰り返し、ライトを設置していきます。 時々Scenery Editor画面の[Save Scenery]ボタンをクリックして、シーナリーを保存しながら作業を進めてください。
PC ライトはシーナリー内に大量に配置することになります。 後で必要なライトオブジェクトがすぐに見つけられるように、Scenery Editor画面で細かくグループ分けしておくと良いと思います。
なお、MSFSのライトを設置しただけでは、光源そのもの(電球や蛍光灯)はレンダリングされません。 光源を設置した周囲が明るくなるだけです。 光源そのものを見えるようにするには、光源を3Dモデルとして作成し、"発光"マテリアルを設定するなどの作業が必要です。 しかしGoogleMapのシーナリーは、通常上空の高いところから眺めるので、光源そのものが見えなくても十分楽しめます。
PC ライトの設置が終わったら、最後にScenery Editor画面の[Save Scenery]ボタンをクリックしてシーナリーを保存し、Project Editor画面の[Build All]ボタンをクリックします。 エラー無くビルドが終わったら、完成したパッケージを"Community"フォルダーにコピーして、MSFSを再起動しましょう。
PC とりあえず駅のホームと、駅前のビル周辺にライトを配置してみました。 ぐっと夜景の見栄えが良くなりました。
ライトの明るさは、シーナリーオブジェクトからの距離で調整します。 この例では、高層ビル(Act Tower)には、こちら側と反対側に、"Light_Cold"を2つずつ配置しています。

Blenderでシーナリーにライト/照明を追加する・メッシュを編集する

無料の3Dモデリングソフト:Blenderと「glTF-Blender-IO-MSFS」エクスポータープラグインを使うと、Google Earth Decoderで生成したMSFSシーナリーに、ライト/照明を追加したり、そのメッシュを編集することができます。 Blenderに準備されている4種類のライト:スポットライト、点光源、太陽、面光源を追加できます。 また色や明度も自由に設定可能。点滅するライトも追加できます。
ただしGoogle Earth Decoderで生成したシーナリーを編集対象にする場合は、シーナリー全体を一気に加工することはできません。 各タイルごと、LODごとにライトの追加やメッシュの編集を行う必要があります。 作業にはとても手間がかかるので、シーナリーの中で特に目立つランドマークに限って処理すると良いと思います。
注意: 「glTF-Blender-IO-MSFS」エクスポータープラグインは、Blenderバージョン3.3または3.6で使用してください。
シーナリーのインポート
PC Blenderにシーナリー(Google Mapのタイル)のglTFファイルをインポートします。 インポート手順については MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページをご覧ください。
ここで各LODのメッシュを加工してエクスポートすれば、シーナリーを変形することができます。
なお、Blenderにインポートする前には シーナリーデーターの最適化 を済ませておいてください。 シーナリーをBlenderで加工してしまうと、Google Earth Decoder Optimization Tools (GEDOT)で最適化したときにエラーが発生します。
Blenderのセッティング
PC ライト/照明を追加するには、Blenderの表示モードを"Render Preview"に切り替えます。 画面右上の アイコンをクリックします。
PC するとこのような画面になります。 シーナリーにはまだ光源が一つも設定されていないので、真っ暗になります。
PC Blenderで追加するライトは、最終的に各LODのメッシュにコピーする必要があります。 まずはライト用のコレクション(フォルダー)を作って、そこに原本となるライトを作ります。 そして最後にそれを各LODにコピーするのが良いと思います。
PC Google Earth Decoderで生成したシーナリーのような、広大なメッシュを扱うには、Blenderの"Quad View"を使うのがおすすめです。 追加するオブジェクトを細かく位置合わせするのが簡単になります。 メニューから[View]-[Area]-[Toggle Quad View]を選びます。
ライトの追加
PC ライトを追加するには、"Object Mode"に切り替え、[Add]-[Light]メニューからライトを選びます。 夜景のディテールアップに使うなら、Point(点光源)またはSpot(スポットライト)が良いと思います。
PC すると選択しているコレクションにライトが追加されます。
PC ライトの位置を決めます。 "Move"モードに切り替えます。
PC ライトの座標軸をドラッグして、位置を決めます。 デフォルトのライトは暗いので、オブジェクトにギリギリ近づけないと、照明が当たりません。 しかしあまりオブジェクトに近づけると、低解像度のLODのモデルに切り替えた場合に、ライトがオブジェクトの中に埋もれてしまうこともあります。 表示するモデルのLODを切り替えながら、慎重に位置合わせしてください。
プロパティの設定
PC 画面右下の緑色の (電球) アイコンをクリックして、ライトのプロパティ画面を開きます。
上に並ぶ[Point][Sun][Spot][Area]をクリックすると、ライトの種類を切り替えることができます。 "Color"欄をクリックすると、ライトの色が選択できます。 "Power"欄で、ライトの明るさが選択できます。 街灯は20~30W程度、店舗の照明などは50W程度、ビル頂上の赤色点滅灯(航空障害灯)は30W程度、ランドマークのライトアップに使うスポットライトは300W程度にするといいかもしれません。
MSFSにエクスポートすると、ライトはBlenderの画面で見るより明るく見えるようです。
PC つづいて画面右下のオレンジ色の (プロパティ) アイコンをクリックして、MSFSエクスポーター向けのプロパティ画面を開きます。
"Has symmetry"欄にチェックを入れると、ライトが対称になります。ライトの向く方向の反対側にもライトコーンが生成されます。スポットライトの場合に効果があります。 しかし筆者はまだ効果を確認できていません。
"Day/Night cycle"欄にチェックを入れると、そのライトは夜になったときだけ点灯します。
その他のパラメーターは、ライトの点滅と回転に関するパラメーターです。 下記の表をご覧ください。
MSFS Light Properties
Keyworddescription
Flash frequency (点滅回数) 1分間にライトが「点滅」する回数。 例えばここに6を指定すると、ライトは10秒(= 60 sec / 6 times )に1回点灯します。 これを0に設定するとライトは点滅しません(点灯したまま)。
Flash duration (点灯時間) 1回の点灯の持続時間(秒)。 "Flash frequency"が0の時は、このパラメータは意味を持ちません。
Flash phase (点灯位相) これは、シミュレーターでモデルが生成されてから、最初の点滅が行われるまでの時間(秒)です。 このパラメーターは、同じ *.gltf 内の複数のライトを同期または非同期で点滅させるのに使います。 "Flash frequency"が0の時は、このパラメータは意味を持ちません。
rotation speed ライトの1分あたりの回転数。 この値は、ライトの角度が 360°未満(スポットライト)の場合にのみ意味を持ちます。
航空障害灯の明滅間隔は、一般的に20~60回/分です。 まずはFlash frequencyを20、Flash durationを0.5程度で試してみてください。
これらパラメータの詳細については、MSFS SDKドキュメントの LIGHTS のページで読めます。
PC 同じ色、明るさを持ったライトを複数作るときは、コピーして使いましょう。 ライトを選択したうえで[Object]-[Duplicate Objects]を選ぶと、すぐさまコピーが生成されて、それを移動するモードになります。 新しいライトを設置する場所をクリックしてください。
PC スポットライトを設置するときは、画面左のアイコンで"Rotate"モードを選び、ライトコーンの方向を決めます。
新しくライトを設置するたびに、その色や明るさに加えて、MSFSエクスポーター向けのプロパティも設定することを忘れないでください。
ライトを各LODのメッシュにコピー
PC タイル内のすべてのライトの設置が完了したら、その原本を各LODのメッシュの下にコピーします。 すべてのLODにライトがコピーされている必要があります。 さもないと、ゲーム画面上でオブジェクトのLODが切り替わる度に、ライトが点いたり消えたりします。 逆に、遠くから見たときには不要なライトは、低解像度のLODからは削除します。
まずはライトが格納されたコレクションを、各LODのコレクションにコピーします。 ライトの原本を格納したコレクションを選択し、右クリックメニューで"Copy"を選びます。
PC つづいてコピー先のLODのコレクションを選択し、右クリックメニューで"Paste"を選びます。
PC つづいてコピーしたライトのコレクションから、すべてのライトを取り出します。 すべてのライトを選択して、LODのコレクションのルートに移動します。 ライトを複数のコレクションに分類していたときは、それぞれのコレクションからLODのルートに移動します。
PC 空っぽになったライト用のコレクションは、右クリックメニューから"Delete Hierarchy"を選んで、削除してしまいましょう。
PC つぎに、すべてのライトを、LODの中のどれか1つのメッシュの「チャイルド」にします。 すべてのライトを選択して、LODの中のどれかのメッシュに移動します。 ライトをメッシュの中に入れるには[Shift]キーを押しながらドラッグ&ドロップします。
この作業をすべてのLODに対して行います。
MSFSプロジェクトへエクスポート
PC 完成したシーナリーを、MSFSプロジェクトへエクスポートします。 エクスポートの手順については MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページをご覧ください。
ただし、ライトをエクスポートするには、オプションの設定が必要です。 「glTF-Blender-IO-MSFS」エクスポータープラグインの"Settings"画面を開きます。
テクスチャはすでにプロジェクトに存在していると思います。 今回新たに出力する必要はないので、ダミーの出力先フォルダを作り、"Textures"欄に指定します。
また、"Include"-"Data"欄の"Punctual Lights"欄にチェックを入れます。
PC つづいてエクスポータープラグインの"Objects"画面を開きます。 出力先にはプロジェクトの"PackageSources\modelLib"フォルダを指定します。 既存のシーナリーデータを上書きするのが嫌なら、別のフォルダに出力しておいて、後でmodelLibフォルダの下と入れ替えても良いと思います。 出力したい各LODにチェックを入れ、その右にある各LODの番号を設定します。
一方、ライトの原本が格納されているコレクションは、すべてチェックを外して、出力しないようにしておきます。
そして最後に一番下の"Export"ボタンをクリックします。
PC プロジェクトのmodelLibフォルダを見ると、各LODの".bin"ファイルと".gltf"ファイルの時刻が更新されているのが確認できます。 ダミーのテクスチャ出力先フォルダにはテクスチャーが出力されています。 これは削除してかまいません。
また、".gltf"ファイルをテキストエディタで開き、文字列"ASOBO_macro_light"を検索すると、追加したライトのパラメータが反映されているのが確認できます。
PC MSFSを起動して、プロジェクトを ゲーム画面に読み込み 、MSFS SDKでビルドすると完成です。 Project Editorの画面で[Clean All]ボタンをクリックすると、"Packages"フォルダの下にある古いパッケージが削除されます。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
なお、Blenderのライトを設置しただけでは、光源そのもの(電球や蛍光灯)はレンダリングされません。 光源を設置した周囲が明るくなるだけです。 光源そのものを見えるようにするには、光源を3Dモデルとして作成し、"発光"マテリアルを設定するなどの作業が必要です。 しかしGoogleMapのシーナリーは、通常上空の高いところから眺めるので、光源そのものが見えなくても十分楽しめます。
PC 完成したシーナリーを ゲーム画面で確認 してみましょう。
画面左のお城(浜松城)は、白色のスポットライトで4方向からライトアップしました。
お城の敷地には、街灯として、黄色い点光源をいくつか配置しました。
画面中央下部の広場には、全体を照らすように白い点光源を1つ、周囲の建物の前にも黄色い点光源を5つ配置しました。
その奥の駐車場の左にある小さな建物(スターバックスコーヒー浜松城公園店)にも点光源を一つ。
さらにその後ろの高層ビル(ホテル)のてっぺん4隅には、赤色点滅灯(航空障害灯)を点滅させました。

DDSテクスチャを圧縮してパッケージサイズを小さくする

あなたが開発したMSFSシーナリーのリリースパッケージには、テクスチャファイルがDDS形式に変換されて格納されます。 Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)と、AMDの後援でオープンで開発されているグラフィック関連ツール:Compressonatorを使うと、 このDDS形式テクスチャファイルのサイズを半分以下に圧縮することができます。 パッケージ配布時のサイズを縮小し、ゲームプレイ時の負荷を軽減することができます。
テクスチャの圧縮を行うタイミングは、シーナリーが完成して、最後のビルドが終わった後、パッケージのリリース直前で良いと思います。
PC Blenderを起動し、メニューから[Google Earth Decoder Optimization Tools]-[Optimize the built package by compressing the texture files]を選びます。
PC まず、画面左のメニューで[PROJECT]を選択します。 シーナリーデーターを最適化 した時と同じように、画面上部中央にあるPath of the MSFS projects...と書かれた部分をクリックして、圧縮の対象とするシーナリーの情報を読み込みます。
圧縮の対象とするシーナリーは、事前にMSFS SDKでビルドに成功している必要があります。
PC 次に、画面左のメニューで[COMPRESSONATOR]を選択します。 画面上部中央にあるPath to the compressonator bin exe...と書かれた部分をクリックして、"compressonatorcli.exe"のインストールフォルダを指定します。 Compressonatorは "C: \Compressonator_[Version] \bin \CLI \compressonatorcli.exe" にインストールされています。
最後に赤い[Optimize the built package by...]ボタンをクリックすると、テクスチャの圧縮が始まります。
なお、青い[OK]を押すと、このダイアログボックスが閉じます。
Compressonatorのインストール方法については、下記をご覧ください。
PC 圧縮の実行中は、このような画面になります。 "Script correctly applied"と表示されたら完了です。
PC 圧縮の対象となるテクスチャの格納フォルダーは、 "[プロジェクトフォルダ] \Packages \[パッケージ名] \scenery \global \scenery \texture" です。
圧縮前と圧縮後を比較したところ、今回の例では、"texture"フォルダーの中身の合計サイズが、22.4MBから8.45MBに減少しました。 元のファイルサイズの1/3近くまで圧縮できました。

ゲーム画面でプロジェクトのビルド結果を確認する

ここでは、ビルドした開発中のプロジェクトをMSFS SDKに読み込んで、ゲーム画面で確認する方法を解説します。
PC MSFSを起動して、開発者メニューで[File]-[Open project]を選びます。
またはこの下の[Open recent]を選ぶと、最近開いたプロジェクトの一覧から選択することも可能です。
PC するとファイル選択ダイアログボックスが表示されるので、プロジェクトフォルダーの直下にある"[パッケージ名].xml"ファイルを選択します。
なお、一つのプロジェクトに複数のパッケージを作ると、ここに複数の"[パッケージ名].xml"ファイルが生成されます。
PC すると図のようなProject Editor画面が開きます。
プロジェクトはMSFS SDKで[Save]されていないと、シミュレーション画面に移行できません。 読み込んだら、最初に[Project]-[Save]を選んでください。 もし[Save]メニューがグレーアウトしているときは保存済みです。
PC Project Editor画面はそのままにしておきます。 邪魔になるときは、画面の脇にどけておきます。
MSFSでWORLD MAP画面を開いて、今回作成したシーナリーが見渡せる場所をクリックして、[SET AS DEPARTURE(出発地点として設定)]をクリックします。 必要に応じて時刻や天候などの条件をセットして、[FLY(飛行)]ボタンをクリックします。
PC ここでこのようなダイアログボックスが表示されたときは、プロジェクトがMSFS SDKで[Save]されていません。 [Y]キーを押すと、プロジェクトがSaveされます。
PC 指定した場所の約1500フィート上空から、北向きに飛行が始まります。 (飛行高度は、選択した航空機によって変わります。)
PC すぐさま一時停止します。
PC ちなみに、ゲーム中の一時停止は、コントロールオプションで[TOGGLE ACTIVE PAUSE]を割り当てたキーやスイッチでもオン/オフできます。
初期値ではキーボードの[PAUSE]キーに割り当てられています。 もしあなたのキーボードに[PAUSE]キーがあるなら、それでオン/オフできます。
PC 開発者メニューで、[Camera]-[Developer Camera]または[Top Down Camera]を選びます。 するとカメラ(視点)が切り替わります。 そしてカメラを生成したGoogleの3Dマップの方向に向けてください。 作成したシーナリーが見えるはずです。
Developer Cameraをゲームコントローラーで操作する方法は、下記の表のとおりです。
Game controller
SwitchControll
左アナログスティックカメラを前後左右へ平行移動する
右アナログスティックカメラを上下左右へ回転する
左右トリガーカメラを上下方向に移動する(上昇/下降)
左右ボタンカメラを左右にロールする
Top Down Cameraをゲームコントローラーで操作する方法は、下記の表のとおりです。
Game controller
SwitchControll
左アナログスティックカメラを前後左右へ平行移動する
左右トリガーカメラを上下方向に移動する(上昇/下降)
PC ツールバーから、時刻や天候を変更することもできます。 夜景のチェックも可能です。
LODの確認方法
PC 開発者メニューで、[Debug]-[Debug model LODs]を選びます。
PC すると、Googleの3Dマップの各タイルの上に、現在表示されているLOD / 準備されているLOD数(ゼロオリジン)、画面上でのオブジェクトのサイズが表示されます。 Developer Cameraを近づけたり遠ざけたりすると、各タイルのLOD値が切り替わるのが確認できます。 また、"Debug LODs"画面では、LODにかかわる各種情報の表示オン/オフが指定できます。
動作確認時の注意
あなたがパッケージに組み込ん機能の多くは、開発者モードの画面では機能しません。 完全な動作確認を行うには、完成したパッケージを"Community"フォルダーにコピーして、MSFSを再起動し、通常モードでプレイする必要があります。

不要なタイルを削除する/シーナリーのクリーンナップ

意図せず不要な領域が3Dデータとして取り込まれてしまったら、MSFS SDKを使って、そのタイルだけを削除することができます。 建物が存在しないタイルは、極力削除してポリゴン数を減らしましょう。
しかしMSFS SDKでタイルを削除しても、それに関連付けられているテクスチャファイルなどはプロジェクトフォルダの中に残ったままです。 Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)を使うと、このような使用されていないファイルを自動的に削除(クリーンナップ)することができます。

不要なタイルを削除する

PC MSFS SDKのScenery Editor画面でタイル名をクリックすると、ゲーム画面上でそのタイルが白い枠(バウンディングボックス)で囲まれます。 不要なタイルを探してください。 [Ctrl]キーを押しながらタイル名をクリックすると、複数のタイルを同時に選択することができます。
PC Scenery Editor画面で、選択したタイル名の左にある目玉アイコンをクリックすると、ゲーム画面上で、そのタイルを隠すことができます。 まずは正しく削除対象のタイルを選択しているか、確認してください。
そしてScenery Editor画面の下にある[Delete]ボタンをクリックすると、選択中のタイルが削除されます。
もし誤って削除してしまったときは、Scenery Editor画面のメニューで[Edit]-[Undo]を選択してください。
PC 不要なタイルの削除が済んだら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックします。 そしてビルドしなおしてください。

シーナリーをクリーンナップする

PC Blenderを起動し、メニューから[Google Earth Decoder Optimization Tools]-[Clean the unused files of the msfs project]を選びます。
PC まず、画面左のメニューで[PROJECT]を選択します。 この画面では、クリーンナップ対象となるプロジェクトを指定します。 シーナリーデーターを最適化 した時と同じように、画面上部中央にあるPath of the MSFS projects...と書かれた部分をクリックして、対象シーナリーの、 プロジェクトフォルダー直下にある"Scenery-[シーナリー名].xml"を選びます。
PC 画面左のメニューで[AUTOMATIC_BUILD]を選択すると、このような画面になります。
画面上部中央にあるPath of the MSFS bin exe...と書かれた部分をクリックすると、フォルダー選択画面が開きます。 ここではMSFS SDKのビルド用ツール "fspackagetool.exe" の場所を指定します。 これは通常 "[MSFS SDKインストールフォルダ]\Tools\bin" の下にあります。
Build package enabledにチェックを入れると、結合が終わった後、自動的にビルドがスタートします。
また、あなたが購入したMSFSがSteam版の時は MSFS Steam versionにチェックを入れてください。
最後に赤い[Clean the unused files of the MSFS project...]ボタンをクリックすると、プロジェクトのクリーンナップが始まります。
なお、青い[OK]を押すと、このダイアログボックスが閉じます。
PC クリーンナップの実行中は、このような画面になります。 "Script correctly applied"と表示されたら完了です。
PC 「Build package enabled」にチェックを入れておいた場合は、この後20~30秒ほど待つと、MSFSの"fspackagetool.exe"が起動して、ビルドが始まります。 「続行するには何かキーを押してください...」と表示されたらビルドは完了です。 画面にエラーが表示されていないことを確認してください。 また、画面の最後の部分に"0 failed"と表示されていることを確認してください。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
クリーンナップ後のプロジェクトフォルダーを見ると、 [PackageSources]-[(パッケージ名)-modelLib]-[texture]フォルダーの下のファイルが減っているのが確認できます。

複数のシーナリープロジェクトを結合する

Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)を使うと、Google Earth Decoderで、複数回に分けてダウンロードしたシーナリー(タイル)を、ひとつのプロジェクトに結合することができます。 単純な四角形ではないシーンや、飛び地のあるシーンを作りたいときに便利です。
メインのシーナリー(結合先)となるプロジェクトに、コピーされるシーナリー(結合元)となるプロジェクトのタイルとテクスチャーをコピーします。 双方のシーナリーに重複するタイルがある場合は、メインのシーナリー(結合先)のタイルを削除してくれます。 このため、まずメインシーナリーとして、広い地域を低いLOD値(例:17~19)で作成し、あとから高いLOD値(例:17~21)で作成した狭い地域をいくつか結合していくと、要所要所に高解像度モデルを持ったシーンを作ることができます。
なお、結合するシーナリーは、双方の最低LOD値が同じである必要があります。 また、結合後のPackageSourcesフォルダーの中身が7.5GBを超えないよう注意する必要があります。 さもないと、MSFSのビルドでエラーが発生する場合があります。
結合されるのは、PackageSourcesフォルダーの中のタイルと、それに関連する情報だけです。 このため、MSFS SDKで追加したオブジェクト(除外ポリゴンやライトなど)はコピーされません。 結合するタイミングは、それぞれの シーナリーデーターの最適化 さえ終えていれば、いつでも構いません。 ただし、結合後に再度ビルド、除外ポリゴンやライトの追加、DDSテクスチャの圧縮などを行う必要があります(自動でビルドするオプションがあります)。
PC Blenderを起動し、メニューから[Google Earth Decoder Optimization Tools]-[Merge an existing MSFS scenery project into another one]を選びます。
PC まず、画面左のメニューで[PROJECT]を選択します。 この画面では、メインのシーナリー(結合先)となるプロジェクトを指定します。 シーナリーデーターを最適化 した時と同じように、画面上部中央にあるPath of the MSFS projects...と書かれた部分をクリックして、メイン(結合先)とするシーナリーの、 プロジェクトフォルダー直下にある"Scenery-[シーナリー名].xml"を選びます。
PC 次に、画面左のメニューで[MERGE]を選択します。 この画面では、コピーされるシーナリー(結合元)となるプロジェクトを指定します。 画面上部中央にあるPath of the project definition file...と書かれた部分をクリックして、コピーされるシーナリー(結合元)の、 プロジェクトフォルダー直下にある"Scenery-[シーナリー名].xml"を選びます。
PC 画面左のメニューで[AUTOMATIC_BUILD]を選択すると、このような画面になります。
画面上部中央にあるPath of the MSFS bin exe...と書かれた部分をクリックすると、フォルダー選択画面が開きます。 ここではMSFS SDKのビルド用ツール "fspackagetool.exe" の場所を指定します。 これは通常 "[MSFS SDKインストールフォルダ]\Tools\bin" の下にあります。
Build package enabledにチェックを入れると、結合が終わった後、自動的にビルドがスタートします。
また、あなたが購入したMSFSがSteam版の時は MSFS Steam versionにチェックを入れてください。
最後に赤い[Merge an existing MSFS scenery...]ボタンをクリックすると、プロジェクトの結合が始まります。
なお、青い[OK]を押すと、このダイアログボックスが閉じます。
PC 結合の実行中は、このような画面になります。 "Script correctly applied"と表示されたら完了です。
PC 「Build package enabled」にチェックを入れておいた場合は、この後20~30秒ほど待つと、MSFSの"fspackagetool.exe"が起動して、ビルドが始まります。 「続行するには何かキーを押してください...」と表示されたらビルドは完了です。 画面にエラーが表示されていないことを確認してください。 また、画面の最後の部分に"0 failed"と表示されていることを確認してください。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
結合後のプロジェクトフォルダーを見ると、一見何も変わっていないように見えますが、 [PackageSources]-[(パッケージ名)-modelLib]フォルダーの下には、2つのプロジェクトのソースデーターが格納されています。 またビルドした場合は、[Packages]-[(パッケージ名)]-[scenery]-[global]-[scenery]フォルダーの下にも、2つのパッケージを結合したBGLファイルとテクスチャが格納されています。
PC 結合後のプロジェクトをMSFS SDKに読み込んでみると、このようになります。 コピーされたタイルのオブジェクトデータ名には、"(元のパッケージ名)_"が付加されています。
このあと必要に応じて 除外ポリゴンの追加 を行います。

空港をGoogleMapでアップグレード/シーナリーの標高を調整する

建物が作りこまれていない空港を、GoogleMapシーナリーでアップグレードすることができます。
また、GoogleMapシーナリーの標高を調整して、MSFSに現れる他のオブジェクトとの干渉を避けることができます。
PC MSFSに作りこまれている「空港/飛行場」は、パッケージのタイプが"Airport"であり、"Scenery"ではありません。 "Airport"は、GoogleMapシーナリーに設定した除外ポリゴンの影響を受けません。 このため、空港がある場所にGoogleMapシーナリーを置くと、両方が重なって表示されます。 もしMSFSの空港に建物が作りこまれていない場合は、その代わりにGoogleシーナリーの建物や飛行機が空港に表示されます(右図:RJNH 航空自衛隊浜松基地)。
通常"Airport"は標高が高めに設定されているので、滑走路はGoogleシーナリーの上に表示されます。 しかし、場合によっては滑走路がGoogleシーナリーの下に沈んでしまったり、逆にGoogleシーナリーの標高が低すぎて、その建物がエプロンに埋まってしまう場合があります。 このような場合には、Googleシーナリーの標高を調整します。
PC Scenery Editor画面を開き、GoogleMapシーナリーを入れたグループをクリックして選択します。 そしてScenery Editor画面のメニューから[View]-[Gizmo]を選びます。
PC すると右図のようなGizmoツール画面が表示されます。 この画面では、選択中のオブジェクトの、移動・拡大縮小・回転などを行うことができます。
オブジェクトの標高を調整するには、一番上で「Translate(移動)」を選んだうえで、"Lat, long, alt:(緯度,経度,標高)"欄の3つめの数値を変更します。 数値をクリックして、キーボードから数字を入力し、Enterキーを押すと更新されます。 ただし反応が遅いので、更新にはコツが必要です。 0.1m単位で調整してみてください。
入力できたら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックして、シーナリーを保存します。 そしてビルドしなおしましょう。

地面のちらつきを抑える/テラフォーミングポリゴンでMSFSの地面の高さを変える

PC 右図のように、GoogleのシーナリーとMSFSの地面が混じって表示されたり、カメラの移動に伴ってGoogleのシーナリーの地面がちらつくことがあります。 MSFSの地面の標高が、部分的にGoogleのシーナリーの標高より高くなっていたり、双方の標高が非常に近いと、このような現象が発生します。
これを解決するには、以下の3つの方法が考えられます。
  • Googleのシーナリーの標高を上げて、全ての地面をGoogleのシーナリーに統一する
  • Googleのシーナリーの標高を下げて、建物以外をMSFSの地面に統一する
  • テラフォーミングポリゴンを使って、MSFSの地面が飛び出している部分の標高を下げる(上げる)
Googleのシーナリーの標高を上げ下げする方法については 空港をGoogleMapでアップグレード/シーナリーの標高を調整する をご覧ください。
ここでは3つめの、テラフォーミングポリゴンを使う方法を紹介します。
PC 基本的な手順は 除外ポリゴンの作成 と同じです。 すなわち、シーナリーにポリゴンオブジェクトを追加し、そのプロパティを Terraforming に指定し、そのポリゴンの標高を操作します。
Scenery Editor画面のメニューで[View]-[Objects]を選び、Objects画面で"Polygon"を選び[Add]ボタンをクリックします。 そしてゲーム画面で[Ctrl]キーを押しながらマウスを左クリックして、MSFSの標高を変えたい部分を囲むように、ポリゴンを作成します。
PC Scenery Editor画面で作成したポリゴンを右クリックしてプロパティ画面を開き、"Terraforming"にチェックを入れます。 するとGoogleのシーナリーの見え方が変わるはずです。
注意:テラフォーミングポリゴンを設置すると、その中のMSFS地面は完全に平らになります。 もともと凹凸のある場所にテラフォーミングポリゴンを設置すると、MSFS地面は部分的に持ち上げられたり引き下げられたりすることになります。 あまり大きなテラフォーミングポリゴンを設置すると、想定外の場所が隆起したり陥没するので注意してください。 もともと起伏の少ない平らな場所で使用するのがおすすめです。
PC "Falloff distance"パラメーターは、テラフォーミングポリゴンによって変形された地面と、MSFSの本来の地面をどのように接続するかを指定します。 デフォルトの200のままでは、右図のようにテラフォーミングポリゴンの周辺で、GoogleのシーナリーとMSFS地面の間に隙間が発生します。
PC "Falloff distance"パラメーターを、最小値である1にすると、右図のように隙間がなくなります。
PC では、テラフォーミングポリゴンの標高を調整しましょう。 Scenery Editor画面でテラフォーミングポリゴンをクリックして、ゲーム画面に表示される座標軸の、赤い四角マークを上下にドラッグすると、テラフォーミングポリゴンの標高が変わります。 あるいはScenery Editor画面のメニューから[View]-[Gizmo]を選び、Gizmoツール画面の"Lat, long, alt:(緯度,経度,標高)"欄の3つめの数値を変更します。
調整が済んだら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックして、シーナリーを保存します。 そしてプロジェクトをビルドしなおしましょう。
PC "Falloff distance"パラメーターを1にしても、シーナリーを拡大すると、GoogleのシーナリーとMSFS地面の間に隙間が見えます。 これを避けるには、テラフォーミングポリゴンをGoogleのシーナリーよりほんの少し小さくしてください。

テクスチャの明度や色調を調整する/バッチ処理で複数の画像を一括処理する

Google Earth Decoderでダウンロードされるシーナリーは明度が高すぎるので、ゲームなかで、その部分だけが白っぽくなってしまいます。 これを改善するには、テクスチャの明度、彩度、コントラストを調整します。 調整値はダウンロードしたGoogleマップの地域や、使用する画像処理ソフトに依存しますが、明度を大幅に低く(暗く)、彩度とコントラストは少しだけ強く調整すると良いようです。
しかし、複数のビットマップファイルの明度、彩度、コントラストなどを、一括で変更できるソフトはあまり多くありません。 ここでは一例として、フリーの画像処理ソフトGIMPと、そのプラグインBIMPを使用して、バッチ処理で複数の画像を一括処理する方法を紹介します。

ツールのインストール


GIMPのインストール
PC GIMP オフィシャルサイト を開き、メニューから[DOWNLOAD]をクリックすると、タウンロード画面に移行します。
すると「BitTorrentを使ってダウンロードする」「直接オフィシャルサイトからダウンロードする」「Microsoft Storeからダウンロードする」の3つのボタンが表示されます。 お好みの方法でダウンロードしてください。
「gimp-2.10.38-setup.exe」といったファイルがダウンロードできます。 これをダブルクリックするとGIMPがインストールできます。
BIMPのインストール
PC BIMPは、複数の画像に対して一括で画質調整が行える、GIMP用のプラグインです。 githubの BIMP オフィシャルサイト を開き、画面右下の[Latest]ボタンをクリックします。
PC するとこのような画面になります。 "Assets"欄で"gimp-plugin-bimp_win32.exe"をクリックするとダウンロードできます。 これをダブルクリックするとBIMPがインストールできます。

テクスチャの明度や色調の調整値を求める


まず、任意のテクスチャ1枚について、明度や色調を変更して、MSFSゲーム画面で確認します。
テクスチャのバックアップを取る
PC "\PackageSources\(パッケージ名)-modelLib"フォルダの下にある"texture"フォルダーをコピーして、バックアップを作ります。
MSFSを起動して対象テクスチャを確認する
PC MSFSを起動して、調整対象とするタイルをクリックします。 するとScenery Editort画面で対象のタイル名が選択されます。
つづいて "\PackageSources\(パッケージ名)-modelLib\texture" フォルダーの中から、対応するテクスチャファイルを探します。
テクスチャの明度や色調を変更する
PC MSFSは起動したまま、画像処理ソフト(GIMP)を使って、対応するテクスチャファイルの明度や色調を調整して、上書き保存します。
パッケージの削除と再ビルド
PC Project Editorの画面で[Clean All]ボタンをクリックすると、"Packages"フォルダの下にある古いパッケージが削除されます。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
PC ビルドが完了すると、テクスチャの修正結果がゲーム画面に反映されます。
テクスチャの調整、プロジェクトのビルド、ゲーム画面上での確認を繰り返して、適切な調整値を求めます。
調整値が決まったら、その値をメモして、テクスチャファイルをバックアップから復元します。

バッチ処理で複数の画像を一括処理する


テクスチャの調整値が決まったら、シーナリーを構成するすべてのテクスチャをバッチ変換します。
出力用フォルダーの準備
PC 事前に、加工後の画像ファイルを保存する、出力用フォルダーを作っておきます。 今回は入力となるターゲットのプロジェクトの "\PackageSources\(パッケージ名)-modelLib\" フォルダーの下に、"texturenew"という名前で作成してみました。
プラグインBIMPの起動
PC GIMPを起動します。 そしてメニューから[ファイル]-[Batch Image Manipulation]を選びます。
入力フォルダーの指定
PC するとこのようなダイアログウインドウが開きます。 まずは入力フォルダーを選びます。 画面左下の[画像を追加]ボタンをクリックし、[フォルダを追加]をクリックします。 するとフォルダー選択画面になります。
ターゲットのプロジェクトの "\PackageSources\(パッケージ名)-modelLib\texture" フォルダーを選択します。
出力フォルダーの指定
PC 「保存フォルダ:」と書かれている下のテキストボックスをクリックします。 するとフォルダー選択画面になります。 先ほど作成しておいた、出力フォルダーを選びます。
処理内容の指定
PC 画面左上の[Add]ボタンをクリックすると、画像ファイルに対して実施する処理内容が指定できます。 色相(Hue)・彩度(Saturations)・明度(Lightness)を操作するには、[GIMPのフィルターを使用]-[gimp-drawable-colorize-hsl]を選びます。
PC するとこのような画面となり、色相・彩度・明度の設定値が指定できます。 [OK]をクリックすると、処理が追加されます。
このほかに [gimp-drawable-color-balance]でCMY値の調整が、 [gimp-drawable-brightness-contrast]で明るさとコントラストの調整ができます。
PC BIMP自身にも[明るさ コントラスト]の調整機能があります。
PC [明るさ コントラスト]の調整値を設定します。 今回、「明るさ」は最低となる"-0.50"を、「コントラスト」はほんの少し、"0.05"を指定しました。
ここに指定する値は、トライ&エラーで試して決めるしかありません。 変換とゲーム画面での確認を繰り返して、あなたのダウンロードしたシーナリーに適切な値を求めてください。
処理の開始
PC 最後に、画面右下の[Apply]ボタンをクリックすると、変換が始まります。 変換にかかる時間はシーナリーの広さやLOD数によって変化しますが、数キロ四方のシーナリーで1時間程度かかります。
処理結果の適用とプロジェクトのビルド
PC 入力フォルダーの名前"texture"を、例えば"textureold"に変更し、 出力フォルダーの名前"texturenew"を"texture"に変更します。
次にMSFSを起動して、プロジェクトを ゲーム画面に読み込み 、MSFS SDKでビルドすると完成です。 Project Editorの画面で[Clean All]ボタンをクリックして古いパッケージを削除します。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
処理結果の確認
変換前と変換後のシーナリーを、ゲーム画面の中で比較してみました。 画像中央の白い部分がGoogle Earth Decoderでダウンロードしたシーナリーの部分です。 今回の処理で、周囲のシーナリーに溶け込むようになったのがわかります。
繰り返しBIMPを使って、もう少し明度を下げても良いようにも思えます。 しかしこれ以上明度を下げると、今度は白い建築物が灰色に見えてしまいます。 この程度が適切な調整値と考えます。