Google MapでMSFSのシーナリーが作れるGoogle Earth Decoderの使い方
Google Earth Decoderというツールを使うと、Google Earthの3DマップをMSFS用に変換して、MSFSにリアルなシーナリーや建物を追加することができます。 MSFSの世界に欠けている建築物を追加したり、あなたの故郷の街などをMSFSの世界にリアルに再現することができます。YouTubeなんて時間の無駄、ここでは無料ツール : Google Earth Decoder の使い方の要点をまとめて解説します。
Show this page in English
もくじ
- MSFS2024との互換性
- Google Earthの3Dマップを確認する
- 各種ツール類のインストール
- パッケージの命名とプロジェクトの作成
- Google Earth Decoderで3Dデータをダウンロードする
- シーナリーデーターを最適化する
- シーナリーの加工準備をする:オブジェクトをグループにまとめる
- 除外ポリゴンを作成してMSFSが自動生成した建物を消す
- MSFS SDKでシーナリーにライト/照明を追加する
- Blenderでシーナリーにライト/照明を追加する・メッシュを編集する
- DDSテクスチャを圧縮してパッケージサイズを小さくする
- ゲーム画面でプロジェクトのビルド結果を確認する
- 不要なタイルを削除する/シーナリーのクリーンナップ
- 複数のシーナリープロジェクトを結合する
- 空港をGoogleMapでアップグレード/シーナリーの標高を調整する
- 地面のちらつきを抑える/テラフォーミングポリゴンでMSFSの地面の高さを変える
- 余分な木を削除する/ベジテーションポリゴンで木の生え方を制御する
- テクスチャの明度や色調を調整する/バッチ処理で複数の画像を一括処理する
MSFS2024との互換性
ここで紹介する手順で作成したシーナリーは、MSFS2020/MSFS2024どちらでも使用可能です。 MSFS2020のSDKでビルドしたシーナリーを、そのままMSFS2024のCommunityフォルダーにコピーして使用することができます。Google Earthの3Dマップを確認する
まず最初に、あなたが作りたいシーナリーや建物が、Google EarthやGoogleマップで3Dデータとして表示可能か否かを確認してください。 3Dデータがサポートされている地域は、都市部や有名な観光地などに限定されています。 3Dデータが存在しない地域では、Google Earth Decoderは使用できません。この画面で[Ctrl]キーを押しながらマウスを動かすと、視点を移動させることができます。 マウスのスクロールホイールを回すと、ズームイン/ズームアウトできます。
広い地域をMSFS用に変換したいときは、どこまで3Dデータがサポートされているかを確認しておきましょう。
Google Earth
各種ツール類のインストール
マイクロソフトフライトシミュレーター用のアドオンコンテンツを作るには、まず各種ツール類をパソコンにインストールしてください。詳しくは、下記のページをご参照ください。
パッケージの命名とプロジェクトの作成
作成するシーナリーのパッケージ名を考えてください。 MSFS SDKでは、パッケージの命名規則が厳密に決められています。 規則に従った正しいパッケージ名を考えてください。パッケージ名が決まったら、中身が空のプロジェクトを作成します。 Google Earth Decoderを使う場合は、Blenderのプラグイン「Google Earth Decoder Optimization Tools (GEDOT)」を使ってシーナリープロジェクトを作成するのがおすすめです。
詳しくは、下記のページをご参照ください。
Google Earth Decoderで3Dデータをダウンロードする
画面右上の「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を指定すると、より高精細なシーナリーが表示されますが、よりゲームの速度(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 のページ で読めます。
LODs (MSFS SDK Documentation)
プロジェクトの PackageSourcesフォルダーの中身が7.5GBを超えると、MSFSのビルドでエラーが発生する場合があります。 あまり広い領域を選択すると、ビルドに失敗します。 LOD17~19を指定する場合は、画面右下のゲージを参考にして、まずは5~6km四方程度の範囲を選んで、ダウンロードされるデータ量を確認してみてください。
一度に広範囲のシーナリーを作ると、シーナリーの端のタイルがMSFSの地面に沈み込んでしまう場合があります。 広範囲のシーナリーを作りたいときは、約2~3km四方くらいのシーナリーに分けて作成し、最後に シーナリーデーターを結合する するのが良いと思います。
右図の例では、約1km四方を選択していて、ダウンロードされるタイルの数は4となります。
Google Earth Decoderを初めて使用するときは、インストールした各ツールが正しく動作することを確認するため、ごく狭い領域で試してください。
セッティングが完了したら「DOWNLOAD」ボタンをクリックします。 すると3Dデータのダウンロードが始まります。
もしダウンロードを中止したい場合は「CANCEL」ボタンをクリックしてください。
なお、さまざまな理由で「DOWNLOAD」ボタンをクリックしてもダウンロードが始まらない場合があります。 その場合は、領域を小さくしたり、場所を変えたり、またはしばらく時間を空けて試してみてください。 3Dデータがサポートされていない地域では、ダウンロードが始まりません。
最大LODの指定によって、ゲーム中でどれだけ見え方が変わるか、比較してみました。 最大LOD21、20、19のモデルを、同じ場所から眺めた映像です。 データ量は各LODの間で3倍以上になります。 なお、LOD19の画像例は、広いシーナリーの端に位置しており、若干MSFSの地面に沈み込んでしまっています。
シーナリーデーターを最適化する
Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)を使うと、ダウンロードしたシーナリーデーターを最適化することができます。注意: Google Earth Decoder Optimization Tools (GEDOT)は、Blenderバージョン3.5で使用してください。
Google Earth Decoder Optimization Tools (flightsim.to)
Google Earth Decoder Optimization Tools (Github)
画面上部中央にあるPath of the MSFS projects...と書かれた部分をクリックします。
Author of the project欄には、あなたの名前/ペンネームなど(この例では"someone")を指定します。
Bake texutures enabledにチェックを入れると、地表を構成する各タイルのLODごとに、テクスチャが1枚に合成されます。 ゲームの表示速度(FPS値)が向上します。 ただしこの機能を使うには、BlenderにLily Texture Packerプラグインがインストールされている必要があります。 Lily Texture Packerのインストール方法については、下記をご覧ください。
MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法
この画面では、各LOD値に対する"minSize"値を指定します。 デフォルトで正しい値がセットされているので、更新は不要です。
ただしこの画面にはLOD17~LOD23までの設定値しかありません。 これより低い、または高いLOD値のデータが存在する場合は、追加と修正が必要です。
画面上部中央にある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]を押すと、このダイアログボックスが閉じます。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法
より広い地域のシーナリーを作りたいときは、複数のプロジェクトに分割する必要があります。
右図のように、Google Earthから読み込んだ3Dデータが、ゲーム画面上に表示されます。 しかし手前や中央奥にある小さい建物をよく見ると、Google Earthから読み込んだ建物と、MSFSによって自動生成された建物が重なって表示されているのがわかります。 つぎに、シーナリーに「除外ポリゴン」を追加することによって、この自動生成された建物を消します。
ゲーム画面でプロジェクトのビルド結果を確認する
シーナリーの加工準備をする:オブジェクトをグループにまとめる
作成したGoogleマップのシーナリーをMSFS SDKに読み込んで、加工する準備をしましょう。 Googleマップのオブジェクトを「グループ」にまとめておきます。★この作業は必須ではありません。単にMSFS SDKでパッケージを修正するときの扱いやすさを向上するだけのものです。
ゲーム画面でプロジェクトのビルド結果を確認する
注意:
少なくとも画面右下に[READY TO FLY(フライト準備完了)]ボタンが表示されている状態(シミュレーションの場所特定)までWORLD MAP画面を進めないと、ここでエラーになるのでご注意ください。
あるいは各ウインドウの左上、ウインドウ名の左にある「▼」マークをクリックすると、この図のようにウインドウを折り畳んでおくことができます。
ここまでの作業で、GoogleマップのシーナリーデータがMSFS SDKに読み込まれました。 SDKを使ってシーナリーを編集したり、新しいオブジェクトを追加することができます。
除外ポリゴンを作成してMSFSが自動生成した建物を消す
作成したシーナリーに「除外ポリゴン」を置くと、MSFSによって自動生成された建物を消すことができます。この状態のときは、あなたがMSFSにインストールしているすべてのシーナリーから、オブジェクトをコピーして持ってくることができます。 他のユーザーが開発したオブジェクトを、あなたのシーナリーに取り込むことができます。
なお、MSFSで扱えるオブジェクトの詳細については、MSFS SDKドキュメントの OBJECTS のページ で読めます。
OBJECTS (MSFS SDK Documentation)
Scenery Editor画面で、追加した赤字の"Polygon"をクリックして選択します。
次にゲーム画面で[Ctrl]キーを押しながらマウスを左クリックすると、そこに頂点が追加されます(右図中の赤い矢印)。 シーナリーを囲むように、[Ctrl]+クリックしていきます。 そして、[Ctrl]キーを押さずに、マウスを左ダブルクリックすると、頂点の追加を終了します。 ただしダブルクリックした場所には、頂点は置かれません(図中の青い矢印)。
"TIN"は、Bing Mapsから写真測量によって生成された建物です (Triangulated Irregular Network)。
"detected buildings"は、航空写真から合成された建物です。
"OSM buildings"は、 Open Street Map による建物です。
"MS buildings"は、マイクロソフトの自動建物生成ai(Blackshark.ai)による建物です。
ポリゴンとその操作方法、およびプロパティの詳細については、MSFS SDKドキュメントの POLYGON OBJECTS のページ で読めます。
OSM buildings (Open Street Map)
POLYGON OBJECTS (MSFS SDK Documentation)
カメラを"Top Down Camera"に切り替えると、真上からの視点となり、より正確な位置合わせができます。
参考:ここでScenery Editor画面を閉じると、ゲーム画面から、あなたの作成したGoogleマップのシーナリーが消えてしまいます。 しかしプロジェクトの中には残っているので、Project Editor画面でBGLを選択し、Inspector画面で[Load in Editor]ボタンをクリックすると、ゲーム画面にシーナリーが戻ってきます。
Project Editor画面でパッケージ名をクリックして選択し、Project Editorのメニューから[View]-[Inspector]を選びます。 するとInspector画面にバージョン番号の入力欄が現れます。
バージョン番号は3つの数字から成り、左からメジャーバージョン、マイナーバージョン、パッチバージョンです。 軽微な修正はパッチバージョンをアップします。 機能追加など行ったときはマイナーバージョンをアップします。 大幅な改造を行ったときはメジャーバージョンをアップします。
プロジェクトのビルド手順に関する詳細は MSFS SDKのプロジェクトの作り方/Google Earth Decoderのためのプロジェクトを作る の「プロジェクトをビルドする」の章をご覧ください。
MSFS SDKのプロジェクトの作り方/Google Earth Decoderのためのプロジェクトを作る
主要なビルには、ビル全体を照らすようにライトを設置したり、高層ビルに赤色点滅灯(航空障害灯)を設置すると、リアリティが増します。
ポリゴンオブジェクトの保存される場所
上の手順でシーナリーに追加したポリゴンの情報は、"PackageSources\scene"フォルダーの下にある"objects.xml"ファイルに追記・保存されていきます。
MSFS SDKでシーナリーにライト/照明を追加する
MSFS SDKを使うと、MSFSに標準で準備されているライトオブジェクトを、シーナリーに簡単に追加することができます。するとMSFSに標準搭載されているライトオブジェクトが見つかります。 最もポピュラーなライトは"Light_Cold", "Light_Warm"の2つです。 "Light_Cold"は白色のライト(昼光色)です。 "Light_Warm"はややオレンジが混じった色のライト(電球色)です。
その他にもいろいろなライトオブジェクトが準備されています。試してみてください。
ライトオブジェクトを選択したら、画面左下の[Add]ボタンをクリックします。
しかしこの中にはMSFSに標準搭載されていない(他のユーザーは持っていないかもしれない)ライトオブジェクトや、そもそもライトではないオブジェクトも含まれます。 この中からオブジェクトを選択するときは注意してください。
つづいて座標軸の横の緑色の四角形をドラッグすると、ライトを水平面上だけで移動できます。 高度を調整したり、水平面上で移動したりを繰り返して、ライトを好きな場所に設置してください。
あとはひたすら上の手順を繰り返し、ライトを設置していきます。 時々Scenery Editor画面の[Save Scenery]ボタンをクリックして、シーナリーを保存しながら作業を進めてください。
なお、MSFSのライトを設置しただけでは、光源そのもの(電球や蛍光灯)はレンダリングされません。 光源を設置した周囲が明るくなるだけです。 光源そのものを見えるようにするには、光源を3Dモデルとして作成し、"発光"マテリアルを設定するなどの作業が必要です。 しかしGoogleMapのシーナリーは、通常上空の高いところから眺めるので、光源そのものが見えなくても十分楽しめます。
ライトの明るさは、シーナリーオブジェクトからの距離で調整します。 この例では、高層ビル(Act Tower)には、こちら側と反対側に、"Light_Cold"を2つずつ配置しています。
ライトオブジェクトの保存される場所
上の手順でシーナリーに追加したライトの情報は、"PackageSources\scene"フォルダーの下にある"objects.xml"ファイルに追記・保存されていきます。
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で使用してください。
Blenderにシーナリー(Google Mapのタイル)のglTFファイルをインポートします。 インポート手順については BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方 のページをご覧ください。
ここで各LODのメッシュを加工してエクスポートすれば、シーナリーを変形することができます。
なお、Blenderにインポートする前には シーナリーデーターの最適化 を済ませておいてください。 シーナリーをBlenderで加工してしまうと、Google Earth Decoder Optimization Tools (GEDOT)で最適化したときにエラーが発生します。
BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方
シーナリーデーターを最適化する
ライト/照明を追加するには、Blenderの表示モードを"Render Preview"に切り替えます。 画面右上の アイコンをクリックします。
ライトを追加するには、"Object Mode"に切り替え、[Add]-[Light]メニューからライトを選びます。 夜景のディテールアップに使うなら、Point(点光源)またはSpot(スポットライト)が良いと思います。
画面右下の緑色の (電球) アイコンをクリックして、ライトのプロパティ画面を開きます。
上に並ぶ[Point][Sun][Spot][Area]をクリックすると、ライトの種類を切り替えることができます。 "Color"欄をクリックすると、ライトの色が選択できます。 "Power"欄で、ライトの明るさが選択できます。 街灯は20~30W程度、店舗の照明などは50W程度、ビル頂上の赤色点滅灯(航空障害灯)は30W程度、ランドマークのライトアップに使うスポットライトは300W程度にするといいかもしれません。
MSFSにエクスポートすると、ライトはBlenderの画面で見るより明るく見えるようです。
"Has symmetry"欄にチェックを入れると、ライトが対称になります。ライトの向く方向の反対側にもライトコーンが生成されます。スポットライトの場合に効果があります。 しかし筆者はまだ効果を確認できていません。
"Day/Night cycle"欄にチェックを入れると、そのライトは夜になったときだけ点灯します。
その他のパラメーターは、ライトの点滅と回転に関するパラメーターです。 下記の表をご覧ください。
Keyword | description |
---|---|
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°未満(スポットライト)の場合にのみ意味を持ちます。 |
これらパラメータの詳細については、MSFS SDKドキュメントの LIGHTS のページで読めます。
LIGHTS (MSFS SDK Documentation)
新しくライトを設置するたびに、その色や明るさに加えて、MSFSエクスポーター向けのプロパティも設定することを忘れないでください。
タイル内のすべてのライトの設置が完了したら、その原本を各LODのメッシュの下にコピーします。 すべてのLODにライトがコピーされている必要があります。 さもないと、ゲーム画面上でオブジェクトのLODが切り替わる度に、ライトが点いたり消えたりします。 逆に、遠くから見たときには不要なライトは、低解像度のLODからは削除します。
まずはライトが格納されたコレクションを、各LODのコレクションにコピーします。 ライトの原本を格納したコレクションを選択し、右クリックメニューで"Copy"を選びます。
この作業をすべてのLODに対して行います。
完成したシーナリーを、MSFSプロジェクトへエクスポートします。 エクスポートの手順については BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方 のページをご覧ください。
ただし、ライトをエクスポートするには、オプションの設定が必要です。 「glTF-Blender-IO-MSFS」エクスポータープラグインの"Settings"画面を開きます。
テクスチャはすでにプロジェクトに存在していると思います。 今回新たに出力する必要はないので、ダミーの出力先フォルダを作り、"Textures"欄に指定します。
また、"Include"-"Data"欄の"Punctual Lights"欄にチェックを入れます。
一方、ライトの原本が格納されているコレクションは、すべてチェックを外して、出力しないようにしておきます。
そして最後に一番下の"Export"ボタンをクリックします。
また、".gltf"ファイルをテキストエディタで開き、文字列"ASOBO_macro_light"を検索すると、追加したライトのパラメータが反映されているのが確認できます。
なお、Blenderのライトを設置しただけでは、光源そのもの(電球や蛍光灯)はレンダリングされません。 光源を設置した周囲が明るくなるだけです。 光源そのものを見えるようにするには、光源を3Dモデルとして作成し、"発光"マテリアルを設定するなどの作業が必要です。 しかしGoogleMapのシーナリーは、通常上空の高いところから眺めるので、光源そのものが見えなくても十分楽しめます。
画面左のお城(浜松城)は、白色のスポットライトで4方向からライトアップしました。
お城の敷地には、街灯として、黄色い点光源をいくつか配置しました。
画面中央下部の広場には、全体を照らすように白い点光源を1つ、周囲の建物の前にも黄色い点光源を5つ配置しました。
その奥の駐車場の左にある小さな建物(スターバックスコーヒー浜松城公園店)にも点光源を一つ。
さらにその後ろの高層ビル(ホテル)のてっぺん4隅には、赤色点滅灯(航空障害灯)を点滅させました。
ゲーム画面でプロジェクトのビルド結果を確認する
ライトオブジェクトの保存される場所
上の手順でシーナリーに追加したライトの情報は、"PackageSources\[シーナリー名]-modelLib"フォルダーの下にある"[タイル名]_LODnn.gltf"ファイルの中に、テキストデータで保存されます。 "ASOBO_macro_light"を検索すると、ライトオブジェクトを見つけることができます。 テキストエディタを使って、ライトオブジェクトのパラメーターを修正することができます。
DDSテクスチャを圧縮してパッケージサイズを小さくする
あなたが開発したMSFSシーナリーのリリースパッケージには、テクスチャファイルがDDS形式に変換されて格納されます。 Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)と、AMDの後援でオープンで開発されているグラフィック関連ツール:Compressonatorを使うと、 このDDS形式テクスチャファイルのサイズを半分以下に圧縮することができます。 パッケージ配布時のサイズを縮小し、ゲームプレイ時の負荷を軽減することができます。テクスチャの圧縮を行うタイミングは、シーナリーが完成して、最後のビルドが終わった後、パッケージのリリース直前で良いと思います。
圧縮の対象とするシーナリーは、事前にMSFS SDKでビルドに成功している必要があります。
最後に赤い[Optimize the built package by...]ボタンをクリックすると、テクスチャの圧縮が始まります。
なお、青い[OK]を押すと、このダイアログボックスが閉じます。
Compressonatorのインストール方法については、下記をご覧ください。
MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法
圧縮前と圧縮後を比較したところ、今回の例では、"texture"フォルダーの中身の合計サイズが、22.4MBから8.45MBに減少しました。 元のファイルサイズの1/3近くまで圧縮できました。
ゲーム画面でプロジェクトのビルド結果を確認する
ここでは、ビルドした開発中のプロジェクトをMSFS SDKに読み込んで、ゲーム画面で確認する方法を解説します。またはこの下の[Open recent]を選ぶと、最近開いたプロジェクトの一覧から選択することも可能です。
なお、一つのプロジェクトに複数のパッケージを作ると、ここに複数の"[パッケージ名].xml"ファイルが生成されます。
プロジェクトはMSFS SDKで[Save]されていないと、シミュレーション画面に移行できません。 読み込んだら、最初に[Project]-[Save]を選んでください。 もし[Save]メニューがグレーアウトしているときは保存済みです。
MSFSでWORLD MAP画面を開いて、今回作成したシーナリーが見渡せる場所をクリックして、[SET AS DEPARTURE(出発地点として設定)]をクリックします。 必要に応じて時刻や天候などの条件をセットして、[FLY(飛行)]ボタンをクリックします。
初期値ではキーボードの[PAUSE]キーに割り当てられています。 もしあなたのキーボードに[PAUSE]キーがあるなら、それでオン/オフできます。
Switch | Controll |
---|---|
左アナログスティック | カメラを前後左右へ平行移動する |
右アナログスティック | カメラを上下左右へ回転する |
左右トリガー | カメラを上下方向に移動する(上昇/下降) |
左右ボタン | カメラを左右にロールする |
Switch | Controll |
---|---|
左アナログスティック | カメラを前後左右へ平行移動する |
左右トリガー | カメラを上下方向に移動する(上昇/下降) |
開発者メニューで、[Debug]-[Debug model LODs]を選びます。
あなたがパッケージに組み込ん機能の多くは、開発者モードの画面では機能しません。 完全な動作確認を行うには、完成したパッケージを"Community"フォルダーにコピーして、MSFSを再起動し、通常モードでプレイする必要があります。
不要なタイルを削除する/シーナリーのクリーンナップ
意図せず不要な領域が3Dデータとして取り込まれてしまったら、MSFS SDKを使って、そのタイルだけを削除することができます。 建物が存在しないタイルは、極力削除してポリゴン数を減らしましょう。しかしMSFS SDKでタイルを削除しても、それに関連付けられているテクスチャファイルなどはプロジェクトフォルダの中に残ったままです。 Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)を使うと、このような使用されていないファイルを自動的に削除(クリーンナップ)することができます。
不要なタイルを削除する
そしてScenery Editor画面の下にある[Delete]ボタンをクリックすると、選択中のタイルが削除されます。
もし誤って削除してしまったときは、Scenery Editor画面のメニューで[Edit]-[Undo]を選択してください。
シーナリーをクリーンナップする
画面上部中央にある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]を押すと、このダイアログボックスが閉じます。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法
複数のシーナリープロジェクトを結合する
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テクスチャの圧縮などを行う必要があります(自動でビルドするオプションがあります)。
画面上部中央にある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]を押すと、このダイアログボックスが閉じます。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
MSFS SDK/Blender/プラグイン/ツールのダウンロードとインストールの方法
このあと必要に応じて 除外ポリゴンの追加 を行います。
空港をGoogleMapでアップグレード/シーナリーの標高を調整する
建物が作りこまれていない空港を、GoogleMapシーナリーでアップグレードすることができます。また、GoogleMapシーナリーの標高を調整して、MSFSに現れる他のオブジェクトとの干渉を避けることができます。
通常"Airport"は標高が高めに設定されているので、滑走路はGoogleシーナリーの上に表示されます。 しかし、場合によっては滑走路がGoogleシーナリーの下に沈んでしまったり、逆にGoogleシーナリーの標高が低すぎて、その建物がエプロンに埋まってしまう場合があります。 このような場合には、Googleシーナリーの標高を調整します。
オブジェクトの標高を調整するには、一番上で「Translate(移動)」を選んだうえで、"Lat, long, alt:(緯度,経度,標高)"欄の3つめの数値を変更します。 数値をクリックして、キーボードから数字を入力し、Enterキーを押すと更新されます。 ただし反応が遅いので、更新にはコツが必要です。 0.1m単位で調整してみてください。
入力できたら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックして、シーナリーを保存します。 そしてビルドしなおしましょう。
地面のちらつきを抑える/テラフォーミングポリゴンでMSFSの地面の高さを変える
これを解決するには、以下の3つの方法が考えられます。
- Googleのシーナリーの標高を上げて、全ての地面をGoogleのシーナリーに統一する
- Googleのシーナリーの標高を下げて、建物以外をMSFSの地面に統一する
- テラフォーミングポリゴンを使って、MSFSの地面の標高を下げる(上げる)
ここでは3つめの、テラフォーミングポリゴンを使う方法を紹介します。
Scenery Editor画面のメニューで[View]-[Objects]を選び、Objects画面で"Polygon"を選び[Add]ボタンをクリックします。 そしてゲーム画面で[Ctrl]キーを押しながらマウスを左クリックして、MSFSの標高を変えたい部分を囲むように、ポリゴンを作成します。
注意:テラフォーミングポリゴンを設置すると、その中のMSFS地面は完全に平らになります。 もともと凹凸のある場所にテラフォーミングポリゴンを設置すると、MSFS地面は部分的に持ち上げられたり引き下げられたりすることになります。 あまり大きなテラフォーミングポリゴンを設置すると、想定外の場所が隆起したり陥没するので注意してください。 もともと起伏の少ない平らな場所で使用するのがおすすめです。
調整が済んだら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックして、シーナリーを保存します。 そしてプロジェクトをビルドしなおしましょう。
テラフォーミングポリゴンの各パラメータについては、MSFS SDKドキュメントの POLYGON OBJECTS のページで読めます。
POLYGON OBJECTS (MSFS SDK docs)
右図のように、海岸線に沿って、海面や水面にちらつきが発生する場合があります。 このような現象が発生するのは、Googleのシーナリーの水面部分が、MSFSの水面の上に飛び出しているためです。 Googleのシーナリーの水面部分を、MSFSの水面の下に沈めてやればOKです。
右図の黄色い線で囲ったようなテラフォーミングポリゴンを作成し、0.1m単位で少しずつMSFSの水面を持ち上げて、Googleのシーナリーの水面を隠します。 また、陸地の部分には、海岸線に沿うようなテラフォーミングポリゴンを作成し、逆にMSFSの地面を引き下げて、Googleのシーナリーの地面が現れるように調整しています。 2つのテラフォーミングポリゴンの境界線は、海岸線の、Googleのシーナリーの地面の内側を沿うように設定します。 さもないと、海岸線に滝のような段差が見えてしまいます。
余分な木を削除する/ベジテーションポリゴンで木の生え方を制御する
基本的な手順は 除外ポリゴンの作成 と同じです。 すなわち、シーナリーにポリゴンオブジェクトを追加し、そのプロパティを Vegetation に指定し、そのポリゴンのパラメータを操作します。
4つのパラメータがありますが、一番上の「Vegetation scale」を0にすると、木が見えなくなります。 Googleマップから作ったシーナリーでは、市街地の木はすべて無くしてしまっても良いと思います。 すでに作成済みの除外ポリゴンのプロパティ画面を開き、「Vegetation」にもチェックを入れ、「Vegetation scale」を0にします。
より細かく植栽をコントロールしたいときは、 テラフォーミングポリゴンの例 のように新しいポリゴンを設置して、「Vegetation」のパラメーターを操作します。
ベジテーションポリゴンの各パラメータについては、MSFS SDKドキュメントの POLYGON OBJECTS のページで読めます。
POLYGON OBJECTS (MSFS SDK docs)
テクスチャの明度や色調を調整する/バッチ処理で複数の画像を一括処理する
Google Earth Decoderでダウンロードされるシーナリーは明度が高すぎるので、ゲームなかで、その部分だけが白っぽくなってしまいます。 これを改善するには、テクスチャの明度、コントラストを調整します。 調整値はダウンロードしたGoogleマップの地域や、使用する画像処理ソフトに依存しますが、明度を大幅に低く(暗く)、コントラストは少しだけ強く調整すると良いようです。しかし、複数のビットマップファイルの明度、彩度、コントラストなどを、一括で変更できるソフトはあまり多くありません。 ここでは一例として、フリーの画像処理ソフトGIMPと、そのプラグインBIMPを使用して、バッチ処理で複数の画像を一括処理する方法を紹介します。
ツールのインストール
GIMP オフィシャルサイト を開き、メニューから[DOWNLOAD]をクリックすると、タウンロード画面に移行します。
すると「BitTorrentを使ってダウンロードする」「直接オフィシャルサイトからダウンロードする」「Microsoft Storeからダウンロードする」の3つのボタンが表示されます。 お好みの方法でダウンロードしてください。
「gimp-2.10.38-setup.exe」といったファイルがダウンロードできます。 これをダブルクリックするとGIMPがインストールできます。
GIMP オフィシャルサイト
BIMPは、複数の画像に対して一括で画質調整が行える、GIMP用のプラグインです。 githubの BIMP オフィシャルサイト を開き、画面右下の[Latest]ボタンをクリックします。
BIMP オフィシャルサイト (github)
BIMP オフィシャルサイト (alessandrofrancesconi)
テクスチャの明度や色調の調整値を求める
まず、任意のテクスチャ1枚について、明度や色調を変更して、MSFSゲーム画面で確認します。
"\PackageSources\(パッケージ名)-modelLib"フォルダの下にある"texture"フォルダーをコピーして、バックアップを作ります。
MSFSを起動して、調整対象とするタイルをクリックします。 するとScenery Editort画面で対象のタイル名が選択されます。
つづいて "\PackageSources\(パッケージ名)-modelLib\texture" フォルダーの中から、対応するテクスチャファイルを探します。
MSFSは起動したまま、画像処理ソフト(GIMP)を使って、対応するテクスチャファイルの明度やコントラストを調整して、上書き保存します。
Project Editorの画面で[Clean All]ボタンをクリックすると、"Packages"フォルダの下にある古いパッケージが削除されます。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
テクスチャの調整、プロジェクトのビルド、ゲーム画面上での確認を繰り返して、適切な調整値を求めます。
調整値が決まったら、その値をメモして、テクスチャファイルをバックアップから復元します。
バッチ処理で複数の画像を一括処理する
テクスチャの調整値が決まったら、シーナリーを構成するすべてのテクスチャをバッチ変換します。
事前に、加工後の画像ファイルを保存する、出力用フォルダーを作っておきます。 今回は入力となるターゲットのプロジェクトの "\PackageSources\(パッケージ名)-modelLib\" フォルダーの下に、"texturenew"という名前で作成してみました。
GIMPを起動します。 そしてメニューから[ファイル]-[Batch Image Manipulation]を選びます。
するとこのようなダイアログウインドウが開きます。 まずは入力フォルダーを選びます。 画面左下の[画像を追加]ボタンをクリックし、[フォルダを追加]をクリックします。 するとフォルダー選択画面になります。
ターゲットのプロジェクトの "\PackageSources\(パッケージ名)-modelLib\texture" フォルダーを選択します。
そしてフォルダー選択画面の右下にある「+Add」ボタンをクリックします。
「保存フォルダ:」と書かれている下のテキストボックスをクリックします。 するとフォルダー選択画面になります。 先ほど作成しておいた、出力フォルダーを選びます。
そしてフォルダー選択画面の右下にある「Ok」ボタンをクリックします。
画面左上の[Add]ボタンをクリックすると、画像ファイルに対して実施する処理内容が指定できます。 明るさ(Brightness)・コントラスト(Contrast)を操作するには、[GIMPのフィルターを使用]を選びます。
そして画面右側で、明るさとコントラストの調整値を設定します。 今回作ったシーナリーでは、「明るさ」は"-0.6"を、「コントラスト」は"0.3"を指定すると、良い感じでした。
そして画面の右下にある「Ok」ボタンをクリックします。
ここに指定する値は、トライ&エラーで試して決めるしかありません。 変換とゲーム画面での確認を繰り返して、あなたのダウンロードしたシーナリーに適切な値を求めてください。
最後に、画面右下の[Apply]ボタンをクリックすると、変換が始まります。 変換にかかる時間はシーナリーの広さやLOD数によって変化しますが、数キロ四方のシーナリーで1時間程度かかります。
入力フォルダーの名前"texture"を、例えば"textureold"に変更し、 出力フォルダーの名前"texturenew"を"texture"に変更します。
次にMSFSを起動して、プロジェクトを ゲーム画面に読み込み 、MSFS SDKでビルドすると完成です。 Project Editorの画面で[Clean All]ボタンをクリックして古いパッケージを削除します。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
[Clean All]ボタンをクリックしないと、テクスチャの変更が反映されないので注意してください。
変換前と変換後のシーナリーを、ゲーム画面の中で比較してみました。 左側の赤枠内が明度とコントラストの調整後、右の赤枠内が未調整のシーナリーです。 今回の処理で、周囲のシーナリーに溶け込むようになったのがわかります。
期待通りテクスチャの調整に成功したら、最初に作成したテクスチャのバックアップや"textureold"フォルダは削除しても構いません。