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