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

Google Earth Decoderの使い方 MSFS用のオリジナルシーナリーを作る

ユーザーは、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データがサポートされているかを確認しておきましょう。

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

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

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

作成するシーナリーのパッケージ名を考えてください。 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が指定できます。 数値が小さいほど精細度が低く(データ量が少ない)、数値が大きいほど精細度が高い(データ量が多い)ことを示します。
COLOR CORRECTION」欄で、テクスチャの色調などが調整できます。 しかしこの画面でリアルタイムに確認できるわけではないので、この機能を使うのは難しいと思います。
地図が表示されている場所で、マウスのスクロールホイールを回すか、左ボタンをダブルクリックすると、ズームイン/ズームアウトできます。 ドラッグすると、場所を移動することができます。
マウスの右ボタンを押さえながらドラッグすると、3Dデータをダウンロードする範囲が選択できます。 白いラバーバンドが表示されます。 ただし3Dデータは、Google Earthで定義される「タイル」という単位でダウンロードされます。 このため、実際には白線で囲んだ部分より広い領域のデータがダウンロードされます。
画面右上の「CLEAR REGION」ボタンをクリックすると、選択範囲をクリアします。 範囲を選びなおすことができます。
LODの指定方法について
より大きいLODを指定すると、より高精細なシーナリーが表示されますが、よりゲームの速度(FPS値)を低下させます。 まずはLOD値に17~19の範囲を指定して、テストしてみてください。
LOD20のデータサイズは、LOD17~19のすべてのデータサイズの10倍以上になります。 また、PackageSourcesフォルダーの中身が7.5GBを超えると、MSFSのビルドでエラーが発生する場合があります。
空港など、ゲーム中で拡大表示されるシーナリーを作る場合は、範囲をごく狭くしたうえで最大LOD20を試してみてください。 建物の多い都市部では、最大LOD19でも実用的な速度が出ない場合があります。 このような場合は範囲を狭めるか、最大LODを下げてください。
地域全体と、その中のランドマークとなる建物を別のアセットにして、それぞれ個別の最大LOD値を指定するのも良いと思います。
LODの詳細については、MSFS SDKドキュメントの LODs のページ で読めます。
PC セッティングが完了したら「DOWNLOAD」ボタンをクリックします。 すると3Dデータのダウンロードが始まります。
もしダウンロードを中止したい場合は「CANCEL」ボタンをクリックしてください。
なお、さまざまな理由で「DOWNLOAD」ボタンをクリックしてもダウンロードが始まらない場合があります。 その場合は、領域を小さくしたり、場所を変えたり、またはしばらく時間を空けて試してみてください。 3Dデータがサポートされていない地域では、ダウンロードが始まりません。
PC ダウンロードが完了すると、「DOWNLOAD」ボタンの下に"Finished"と表示されます。 指定したフォルダーの下に"modelLib"と"scene"という名前の2つのフォルダーができているはずです。 この中に3Dシーナリーデーターが格納されています。

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

Blenderのプラグインである Google Earth Decoder Optimization Tools (GEDOT)を使うと、ダウンロードしたシーナリーデーターを最適化することができます。
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 画面左のメニューで[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」にチェックを入れておいた場合は、この後しばらくするとMSFSの"fspackagetool.exe"が起動して、ビルドが始まります。 「続行するには何かキーを押してください...」と表示されたらビルドは完了です。 画面にエラーが表示されていないことを確認してください。 また、画面の最後の部分に"0 failed"と表示されていることを確認してください。
ここでエラーが表示される場合は、 MSFS SDK/Blender/プラグインのダウンロードとインストールの方法 のページを参照して、各ツールのバージョンが適切かを確認してください。
PC ビルドに成功したら、ここまでの状態を、MSFSのゲーム画面で確認してみましょう。 確認方法は ゲーム画面でプロジェクトのビルド結果を確認する を参照してください。
右図のように、Google Earthから読み込んだ3Dデータが、ゲーム画面上に表示されます。 しかし手前や中央奥にある小さい建物をよく見ると、Google Earthから読み込んだ建物と、MSFSによって自動生成された建物が重なって表示されているのがわかります。 つぎに、シーナリーに「除外ポリゴン」を追加することによって、この自動生成された建物を消します。

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

作成したGoogleマップのシーナリーをMSFS SDKに読み込んで、加工する準備をしましょう。 Googleマップのオブジェクトを「グループ」にまとめておきます。
PC MSFSを起動して、ビルドしたプロジェクトをSDKに読み込みます。 この手順については ゲーム画面でプロジェクトのビルド結果を確認する をご覧ください。
PC プロジェクトをSDKに読み込んだら、Project Editor画面で、パッケージ名の左にある三角マークをクリックします。 するとパッケージに含まれるアセットグループの一覧が表示されます。 このなかにある、アセットグループ"BGL"をクリックします。
PC つづいて、Project Editorのメニューから[View]-[Inspector]を選びます。
PC するとこのようにInspector画面が開きます。 [Load in Editor]をクリックします。
開発者メニューを操作していると、次々と新しい画面が開いていきます。 操作しやすいように、適宜画面を並べ替えながら作業を進めてください。
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マップのシーナリーを囲むように、ポリゴンの頂点を置いていきます。 [Ctrl]キーを押しながらマウスを左クリックすると、そこに頂点が追加されます(図中の赤い矢印)。 そして、[Ctrl]キーを押しながらマウスを左ダブルクリックすると、頂点の追加を終了します。 ただしダブルクリックした場所には、頂点は置かれません(図中の青い矢印)。
PC 図では見づらいですが、完成したポリゴンが紫のラインで結ばれています。 このポリゴンを「除外ポリゴン」に指定します。 Scenery Editor画面で、今回追加した"Polygon"を右クリックすると、このようなメニューが表示されます。 "Properties"の左のボックスをクリックします。
PC ポリゴンのプロパティ画面が表示されます。 "Buildings"をクリックして展開し、"Exclude detected buildings", "Exclude OSM buildings", "Exclude MS buildings"にチェックを入れます。 するとポリゴンの内側の、自動生成された建物が消えます。
"TIN"は、Bing Mapsから写真測量によって生成された建物です。
"detected buildings"は、航空写真から合成された建物です。
"OSM buildings"は、 Open Street Map による建物です。
"MS buildings"は、マイクロソフトの自動建物生成ai(Blackshark.ai)による建物です。
ポリゴンとその操作方法、およびプロパティの詳細については、MSFS SDKドキュメントの POLYGON OBJECTS のページ で読めます。
PC 次に、ポリゴンの各頂点の位置を微調整します。 Scenery Editor画面で今回追加した"Polygon"を選択した状態で、画面上の任意の頂点をクリックすると、このようなハンドルが表示されます。 ここで、図中に矢印で示した、緑色の四角形をドラッグすると、頂点を水平面上だけで移動できます。 各頂点がGoogleマップのシーナリーをぴったりと囲むように調整してください。
PC 除外ポリゴンが完成したら、Scenery Editor画面の下にある[Save Scenery]ボタンをクリックして、シーナリーを保存します。
参考:ここでScenery Editor画面を閉じると、ゲーム画面から、あなたの作成したGoogleマップのシーナリーが消えてしまいます。 しかしプロジェクトの中には残っているので、Project Editor画面でBGLを選択し、Inspector画面で[Load in Editor]ボタンをクリックすると、ゲーム画面にシーナリーが戻ってきます。
PC 最後にMSFS SDKでプロジェクトをビルドすると完成です。 Project Editorの画面で[Build All]ボタンをクリックすると、ビルドが始まります。
プロジェクトのビルド手順に関する詳細は MSFS SDKのプロジェクトの作り方/Google Earth Decoderのためのプロジェクトを作る の「プロジェクトをビルドする」の章をご覧ください。
PC ビルドに成功すると、Packagesフォルダーの下に、パッケージ名のフォルダーができています。 これをMSFSのデータ格納フォルダの中にある"Community"フォルダーにコピーすれば、あなたのMSFSにインストールされます。 パッケージを配布するときは、このフォルダーを圧縮して、配布サイトなどにアップロードします。
PC MSFSを再起動して、ゲームをスタートさせると、ゲームの中にあなたの作成したGoogleマップのシーナリーが現れます。 シーナリーをGEDOTで最適化していれば、道路には自動生成された自動車(トラフィック)が走ります。 また時間を夜に切り替えると、街灯も点灯します。 衝突判定が有効化されているので、建物に衝突すると、突き抜けることなく、飛行機はクラッシュします。 ただし夜になるとビルの窓は真っ暗のままです。
主要なビルには、ビル全体を照らすようにライトを設置したり、高層ビルに赤色点滅灯を設置すると、リアリティが増します。

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 指定した場所の約1500フィート上空から、北向きに飛行が始まります。 (飛行高度は、選択した航空機によって変わります。)
PC すぐさま一時停止します。
PC ちなみに、ゲーム中の一時停止は、コントロールオプションで[TOGGLE ACTIVE PAUSE]を割り当てたキーやスイッチでもオン/オフできます。
初期値ではキーボードの[PAUSE]キーに割り当てられています。 もしあなたのキーボードに[PAUSE]キーがあるなら、それでオン/オフできます。
PC 開発者メニューで、[Camera]-[Developer Camera]を選びます。 するとカメラ(視点)が切り替わります。 そしてカメラを生成したGoogleの3Dマップの方向に向けてください。 作成したシーナリーが見えるはずです。
Developer Cameraをゲームコントローラーで操作する方法は、下記の表のとおりです。
Game controller
SwitchControll
左アナログスティックカメラを前後左右へ平行移動する
右アナログスティックカメラを上下左右へ回転する
左右トリガーカメラを上下方向に移動する(上昇/下降)
左右ボタンカメラを左右にロールする
PC ツールバーから、時刻や天候を変更することもできます。 夜景のチェックも可能です。
LODの確認方法
PC 開発者メニューで、[Debug]-[Debug model LODs]を選びます。
PC すると、Googleの3Dマップの各タイルの上に、現在表示されているLOD / 準備されているLOD数、画面上でのオブジェクトのサイズが表示されます。 Developer Cameraを近づけたり遠ざけたりすると、各タイルのLOD値が切り替わるのが確認できます。 また、"Debug LODs"画面では、LODにかかわる各種情報の表示オン/オフが指定できます。
動作確認時の注意
あなたがパッケージに組み込ん機能の多くは、開発者モードの画面では機能しません。 完全な動作確認を行うには、完成したパッケージを"Community"フォルダーにコピーして、MSFSを再起動し、通常モードでプレイする必要があります。