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

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

Google Earth Decoderというツールを使うと、Google Earthの3DマップをMSFS用に変換して、MSFSにリアルなシーナリーや建物を追加することができます。 MSFSの世界に欠けている建築物を追加したり、あなたの故郷の街などをMSFSの世界にリアルに再現することができます。
YouTubeなんて時間の無駄、ここでは無料ツール : Google Earth Decoder の使い方の要点をまとめて解説します。

MSFS2024との互換性

ここで紹介する手順で作成したシーナリーは、MSFS2020/MSFS2024どちらでも使用可能です。 MSFS2020のSDKでビルドしたシーナリーを、そのままMSFS2024のCommunityフォルダーにコピーして使用することができます。
ただしMSFS2020とMSFS2024では、オブジェクト(テクスチャ)が表示される色や明るさが若干異なります。 どちらでも違和感が無いような色と明るさになるよう、調整が必要です。 また水面の高さは、MSFS2024とMSFS2020で若干異なっています。 どちらのMSFSでも使用できるシーナリーにするためには、繊細な水面の標高の調整を行う必要があります。
なお、MSFS2020で開発したプロジェクトを、MSFS2024 SDKで読み込むと、Google Earthから取り込んだModelLibが破損する場合があります。 MSFS2024 SDKへの移行を試す場合は、必ず事前にプロジェクトフォルダー全体のバックアップを取ってください。
基本的には、MSFS2020/MSFS2024の両方に対応したシーナリーを作りたい場合は、MSFS2020のSDKで開発するので良いと思います。

作品例

筆者の制作したシーナリーを紹介させていただきます。 こんなシーナリーが作れます。 これは https://flightsim.to/file/92679/yokkaichi-city-japan で配布しています。 筆者が子供のころの数年間を過ごした思い出の街です。
MSFS Scenery Yokkaichi City Night cruising 四日市工場夜景クルージング
YouTubeで見る

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データをダウンロードする

中身が空のプロジェクトが準備できたら、そこにGoogle Earthの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ドキュメントの下記のページで読めます。
範囲指定の目安
PC プロジェクトの PackageSourcesフォルダーの中身が7.5GBを超えると、MSFSのビルドでエラーが発生する場合があります。 あまり広い領域を選択すると、ビルドに失敗します。 LOD17~19を指定する場合は、画面右下のゲージを参考にして、まずは5~6km四方程度の範囲を選んで、ダウンロードされるデータ量を確認してみてください。
一度に広範囲のシーナリーを作ると、シーナリーの端のタイルがMSFSの地面に沈み込んでしまう場合があります。 広範囲のシーナリーを作りたいときは、約2~3km四方くらいのシーナリーに分けて作成し、最後に シーナリーデーターを結合する するのが良いと思います。
右図の例では、約1km四方を選択していて、ダウンロードされるタイルの数は4となります。
Google Earth Decoderを初めて使用するときは、インストールした各ツールが正しく動作することを確認するため、ごく狭い領域で試してください。
自作するアドオンコンテンツを広く配布したい場合
Flightsim.toというサイトでは、あなたの作成したアドオンコンテンツを、広くユーザーに配布することができます。 ただしFlightsim.toへコンテンツをアップロードするには、ファイルサイズ(圧縮後各2.5GB/圧縮前約4~5GB程度)やファイル数(最大4つ)など、数々の制約があります。 また、事前に準備しておくべきものもいくつかあります。 アドオンコンテンツを開発する前に、この手順に目を通しておくことをお勧めします。
ダウンロード
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で使用してください。 このページで使用しているGEDOTは、バージョン1.1.3(2022年4月版)です。
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ドキュメントの下記のページで読めます。
PC つづいてObjects画面で[Add]ボタンをクリックします(図の左側)。 すると、Scenery Editor画面に、"Polygon"が赤字で追加されます(図の右側上)。 まだこのポリゴンには頂点が一つもないので、ゲーム画面に表示することができません。 そのため赤字で"Show error"が表示されています(図の右側下)。
PC もし、ポリゴンがGoogleマップのタイルグループの中に生成されてしまったときは、ドラック&ドロップで、グループの外に出してください。
PC まずは大雑把に、あなたが作成したGoogleマップのシーナリーを囲むように、ポリゴンの頂点を置いていきます。
Scenery Editor画面で、追加した赤字の"Polygon"をクリックして選択します。
次にゲーム画面で[Ctrl]キーを押しながらマウスを左クリックすると、そこに頂点が追加されます(右図中の赤い矢印)。 シーナリーを囲むように、[Ctrl]+クリックしていきます。 そして、[Ctrl]キーを押さずに、マウスを左ダブルクリックすると、頂点の追加を終了します。 ただしダブルクリックした場所には、頂点は置かれません(図中の青い矢印)。
PC ポリゴンの任意の頂点を選択したうえで、マウスの右ボタンをクリックすると、右図のようなメニューが表示されます。 「Add point」を選ぶと、選択している頂点とほぼ同じ位置に、新しい頂点を追加することができます。 「Remove point」を選ぶと、選択している頂点を削除することができます。
PC 図では見づらいですが、完成したポリゴンが紫のラインで結ばれています。 このポリゴンを「除外ポリゴン」に指定します。 Scenery Editor画面で、今回追加した"Polygon"を右クリックすると、このようなメニューが表示されます。 "Properties"の左のボックスをクリックします。
PC ポリゴンのプロパティ画面が表示されます。 "Buildings"をクリックして展開し、"Exclude all"にチェックを入れます。 するとポリゴンの内側の、自動生成された建物が消えます。
"TIN"は、Bing Mapsから写真測量によって生成された建物です (Triangulated Irregular Network)。
"detected buildings"は、航空写真から合成された建物です。
"OSM buildings"は、 Open Street Map による建物です。
"MS buildings"は、マイクロソフトの自動建物生成ai(Blackshark.ai)による建物です。
ポリゴンとその操作方法、およびプロパティの詳細については、MSFS SDKドキュメントの下記のページで読めます。
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アドオンコンテンツ用のプロジェクトの作り方 の「プロジェクトをビルドする」の章をご覧ください。
PC ビルドに成功すると、Packagesフォルダーの下に、パッケージ名のフォルダーができています。 これをMSFSのデータ格納フォルダの中にある"Community"フォルダーにコピーすれば、あなたのMSFSにインストールされます。 パッケージを配布するときは、このフォルダーを圧縮して、配布サイトなどにアップロードします。
PC MSFSを再起動して、ゲームをスタートさせると、ゲームの中にあなたの作成したGoogleマップのシーナリーが現れます。 シーナリーをGEDOTで最適化していれば、道路には自動生成された自動車(トラフィック)が走ります。 また時間を夜に切り替えると、街灯も点灯します。 衝突判定が有効化されているので、建物に衝突すると、突き抜けることなく、飛行機はクラッシュします。 ただし夜になるとビルの窓は真っ暗のままです。
主要なビルには、ビル全体を照らすようにライトを設置したり、高層ビルに赤色点滅灯(航空障害灯)を設置すると、リアリティが増します。

ポリゴンオブジェクトの保存される場所


上の手順でシーナリーに追加したポリゴンの情報は、"PackageSources\scene"フォルダーの下にある"objects.xml"ファイルに追記・保存されていきます。

シーナリーにライト・照明を置く

Scenery with Blender light objects
MSFS用シーナリーにライト・照明を置くには2つの方法があります。 一つ目は、3DモデルにBlenderのライトオブジェクトを設置して、それをMSFS用glTF形式で書き出す方法です。 そしてもう一つは、シーナリーをMSFS SDKに取り込んだ後に、MSFS SDKの持つライトオブジェクトを設置する方法です。
また、これらの合わせ技として、Blenderのライトオブジェクトを部品として書き出して、MSFS SDK内でこれを大量に設置するという方法もあります。
これらの方法については、 MSFSのシーナリーにライト/照明を追加する方法 のページをご覧ください。

シーナリーに動く煙・炎・霧・水などを置く

Scenery with MSFS SDK Visual Effect
MSFS SDKに内蔵されているVisual Effect Editorを使うと、マイクロソフトフライトシミュレーター用のシーナリーに、動く煙・炎・霧・水などを追加することができます。 シーナリーのリアリティが増します。
この方法については、 MSFSのシーナリーに動く煙・炎・霧・水などを追加する方法 / Visual Effect Editorの使い方 のページをご覧ください。

シーナリーにランドマークマーカーを置く

Scenery with MSFS SDK Visual Effect
フリーフライト中のゲーム画面には、ランドマーク(POI:Points Of Interest)のマーカーや、空港、都市の位置を示すマーカーなどが表示されます。 これらは、あなたの作成したシーナリーにも設置することができます。
この方法については、 MSFSのシーナリーにランドマークマーカーを追加する方法 のページをご覧ください。

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...と書かれた部分をクリックして、圧縮の対象とするシーナリーの情報を読み込みます。 そして"Author of the project"欄に、開発者(あなた)の名前を入力します。
圧縮の対象とするシーナリーは、事前に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に取り込んで、そのメッシュを加工します。
PC 今回は、右図のようなGoogleマップの3Dデータを加工します。 画面の中央に見えているのは観覧車です。 Googleマップの3Dデータでは、観覧車の形が正しくモデリングされていません。
これを削除して、手作りの観覧車オブジェクトに置換します。
PC まずは加工すべきタイルの名前を確認します。 MSFS SDKにシーナリープロジェクトを読み込み、加工したい部分をクリックします。 すると対象のタイルが白い立方体の枠で囲まれ、Scenery Editor画面では、そのタイルが選択された状態になります。 選択されたタイルの名前をメモしておきます。
PC 加工すべきタイルをBlenderに取り込みます。 この方法については BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方 のページをご覧ください。
そしてメッシュを加工します。 不要なオブジェクトを削除するには、BlenderのModifiers機能を使うのが便利です。
Blenderの画面で、削除したい部分をすっぽり囲むようなメッシュ(Modifireメッシュ : 右図の例では白い立方体)を作り、それを非表示にしておきます。
そして (選択) モードにして、タイルの中で削除したい部分をクリックします。 すると画面右のOutliner画面でそのメッシュが選択されます。 (Modifire) 画面を開き、メッシュに対してBoolean Modifire (Difference)を適用すると、メッシュが消えます。
タイルの中で、削除したい部分がすべて消えるまで、メッシュの選択とModifiersの適用を繰り返します。
BlenderのModifiers機能の使い方については、 Modifiers (Blender Manual) などの外部資料をご参照ください。
PC すべてのLODの、対象となるメッシュのすべてにModifiersを適用します。
PC タイルの加工が完了したら、glTF-Blender-IO-MSFSプラグインを使って、加工したタイルをエクスポートします。
Modifiersを使ってタイルを加工した場合は、glTF-Blender-IO-MSFSプラグインのSettings画面で、"Apply Modifires"にチェックを入れることを忘れないでください。
PC MSFSを起動して、加工したタイルを含むシーナリーをSDKに読み込みます。 すると画面には加工前のシーナリーが表示されます。
Project Editorの画面で[Build All]ボタンをクリックして、シーナリーをビルドします。
もしビルド時にエラーが発生した場合はBlenderに戻り、Modifiersの設定を見直します。 Modifireメッシュの位置や大きさを変えるのも効果があります。
PC ビルドに成功したら、MSFSで一旦メニュー画面まで戻り、再度シーナリーをSDKに読み込みます。 すると加工結果が反映されているはずです。 カメラを対象に近づけたり遠ざけたりして、すべてのLODで期待通りにメッシュが変形できていることを確認してください。
PC なお、MSFSにシーナリーを読み込んだ時に、Modifiersでうまくメッシュが消せていない場合は、BlenderのModifiers画面で"Apply"を試してください(右図)。 "Apply"するとメッシュ自体が変形され、代わりにModifireノードは消えます。
Modifiersでメッシュが期待通りに変形できない例が発生するのは、glTF-Blender-IO-MSFSプラグインの不具合と思われます。 メッシュによって、"Apply"すると期待通り変形できる場合や、うまくいかない場合があります。 状況によって対応を選択してください。
"Apply"を試す前には、元に戻せるように".blend"ファイルのバックアップを取っておきましょう。
PC 手作りの観覧車オブジェクトに置換できました。

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

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]ボタンをクリックして、シーナリーを保存します。 そしてプロジェクトをビルドしなおしましょう。
MSFSの地面が不要な場合は、テラフォーミングポリゴンの標高を大きく下げても構いません。 しかしその場合は、MSFSが生成する池や川の水面の情景、木・植栽などもGoogleのシーナリーの下に沈み込んでしまいます。 これらを残したい場合は、繊細な標高の調整を行う必要があります。
PC "Falloff distance"パラメーターを1にしても、シーナリーを拡大すると、GoogleのシーナリーとMSFS地面の間に隙間が見えます。 これを避けるには、テラフォーミングポリゴンをGoogleのシーナリーよりほんの少し小さくしてください。
テラフォーミングポリゴンの各パラメータについては、MSFS SDKドキュメントの下記のページで読めます。
海面・水面のちらつきを解消する
PC 右図のように、海岸線に沿って、海面や水面にちらつきが発生する場合があります。 このような現象が発生するのは、Googleのシーナリーの水面部分が、MSFSの水面の上に飛び出しているためです。 Googleのシーナリーの水面部分を、MSFSの水面の下に沈めてやればOKです。
PC 今回は次のように解決しました。
右図の黄色い線で囲ったようなテラフォーミングポリゴンを作成し、0.1m単位で少しずつMSFSの水面を持ち上げて、Googleのシーナリーの水面を隠します。 また、陸地の部分には、海岸線に沿うようなテラフォーミングポリゴンを作成し、逆にMSFSの地面を引き下げて、Googleのシーナリーの地面が現れるように調整しています。 2つのテラフォーミングポリゴンの境界線は、海岸線の、Googleのシーナリーの地面の内側を沿うように設定します。 さもないと、海岸線に滝のような段差が見えてしまいます。
水面の高さは、MSFS2024とMSFS2020で若干異なっています。 どちらのMSFSでも使用できるシーナリーにするためには、繊細な水面の標高の調整を行う必要があります。

余分な木を削除する/ベジテーションポリゴンで木の生え方を制御する

PC MSFSが自動生成する木や植栽は、時々変な場所に生成されることがあります。 右図の例では、川と線路に木が生い茂っています。
PC シーナリーに「ベジテーション(植栽)ポリゴン」を設置すると、その中の植栽をコントロールすることができます。
基本的な手順は 除外ポリゴンの作成 と同じです。 すなわち、シーナリーにポリゴンオブジェクトを追加し、そのプロパティを Vegetation に指定し、そのポリゴンのパラメータを操作します。
4つのパラメータがありますが、一番上の「Vegetation scale」を0にすると、木が見えなくなります。 Googleマップから作ったシーナリーでは、市街地の木はすべて無くしてしまっても良いと思います。 すでに作成済みの除外ポリゴンのプロパティ画面を開き、「Vegetation」にもチェックを入れ、「Vegetation scale」を0にします。
より細かく植栽をコントロールしたいときは、 テラフォーミングポリゴンの例 のように新しいポリゴンを設置して、「Vegetation」のパラメーターを操作します。
ベジテーションポリゴンの各パラメータについては、、MSFS SDKドキュメントの下記のページで読めます。
PC 逆に植栽を増やしてシーナリーの欠陥を隠すこともできます。 右図のような、Googleマップシーナリーの端の部分に発生する建物の断片を、木で隠すことができます。
PC 右図のようなベジテーションポリゴンを設置し、"Vegetation scale"と"Vegetation density factor"を最大にすると、建物の断片を見えにくくすることができます。

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

Google Earth Decoderでダウンロードされるシーナリーは明度が高すぎるので、ゲームなかで、その部分だけが白っぽくなってしまいます。 これを改善するには、テクスチャの明度、彩度、コントラストを調整します。 調整値はダウンロードしたGoogleマップの地域や、使用する画像処理ソフトに依存しますが、明度を大幅に低く(暗く)、彩度とコントラストは少しだけ強く調整すると良いようです。
ここではフリーソフトのXnConvertを使う方法と、GIMPプラグインのBIMPを使う方法を紹介します。 XnConvertを使うと、パラメーターの変更をその場でプレビューできるので、より直感的に調整を行うことができます。
事前に、加工後の画像ファイルを保存する、出力用フォルダーを作っておきます。 例えば入力となるターゲットのプロジェクトの "\PackageSources\(パッケージ名)-modelLib\" フォルダーの下に、"texturenew"という名前で作成しておきます。
そしてツールの入力には、ターゲットのプロジェクトの "\PackageSources\(パッケージ名)-modelLib\texture" フォルダーを指定します。
XnConvertを使う方法
PC これはXnConvertの明度、彩度、コントラストの調整画面です。 今回作ったシーナリーでは、「明度」は"-20"、「彩度」は"0"、「コントラスト」は"15"を指定すると、良い感じでした。
XnConvertの使い方については、 複数画像の明度、彩度、コントラスト、ファイル形式などを一括変更できる XnConvertの使い方 のページをご覧ください。
GIMPプラグインのBIMPを使う方法
PC これはGIMPプラグインのBIMPの明度、コントラストの調整画面です。 今回作ったシーナリーでは、「明るさ」は"-0.6"を、「コントラスト」は"0.3"を指定すると、良い感じでした。 テクスチャがより白っぽいときは、「明るさ」に"-0.7"、「コントラスト」に"0.4"程度を指定してみてください。
BIMPの使い方については、 GIMPプラグインのBIMPを使って複数画像の明度、コントラストなどを一括変更する のページをご覧ください。
PC 変換前と変換後のテクスチャーを比較すると、このようになります。 変換後のテクスチャーはとても暗い画像となっていますが、ゲーム画面ではちょうどよい明るさです。
処理結果の適用とプロジェクトのビルド
PC 入力フォルダーの名前"texture"を、例えば"textureold"に変更し、 出力フォルダーの名前"texturenew"を"texture"に変更します。
次にMSFSを起動して、プロジェクトを ゲーム画面に読み込み 、MSFS SDKでビルドすると完成です。
まずProject Editorの画面で[Clean All]ボタンをクリックして古いパッケージを削除します。 ビルド前に[Clean All]しないと、テクスチャの変更が反映されないので注意してください。
一方、同じプロジェクト内に、Blendarなどから取り込んだ3DモデルのmodelLibが含まれていると、[Clean All]した時にプロジェクトが壊れる場合があります。 プロジェクトのバックアップを取っておいてください。
PC [Clean All]ボタンをクリックすると、このような警告が表示されます。 「はい」をクリックします。
PC そしてこのようなコンソール画面が表示されます。 右上の「×」をクリックして閉じます。
PC つづいてProject Editorの画面で[Build All]ボタンをクリックすると、ビルドが始まります。
PC すべてのテクスチャの再生成を行うので、ビルドにはとても時間がかかります。 しかもビルド中は、MSFSの画面に進捗状況は表示されません。 タスクマネージャーを開いて、CPUの負荷でビルドの状況を判断します。 パソコンの性能にもよりますが、ビルド中はCPUの負荷が約60%以上になります。
PC CPUの負荷が急激に低下してしばらくすると、右図のようにビルド結果が表示されます。 "Reloading texture file..."というメッセージがたくさん並んでいます。 最後の行に「0 failed」のメッセージがあれば、ビルド成功です。
処理結果の確認
PC 変換前と変換後のシーナリーを、ゲーム画面の中で比較してみました。 左側の赤枠内が明度とコントラストの調整後、右の赤枠内が未調整のシーナリーです。 今回の処理で、周囲のシーナリーに溶け込むようになったのがわかります。
期待通りテクスチャの調整に成功したら、最初に作成したテクスチャのバックアップや"textureold"フォルダは削除しても構いません。

マイクロソフトフライトシミュレーターの楽しみ方

基礎編

応用編

便利なツール

アドオンシーナリーの開発