GoogleEarthデコーダー

Last-modified: 2021-05-09 (日) 12:18:48

!!!著作権には十分注意してください。当Wikiは責任を負いません!!!



はじめに

この手順では、googleEarthデコーダーにより地形データ(modelib,scene)に抜き出す方法を記載する。
長方形で抜き出したい領域を指定が可能。
(※多角形には指定できない。多角形で抜き出したいなら"GoogleMapのモデル取り込み"の手順を確認(※素晴らしいものするにはかなり大変!!!))

  • この地形データ(modelib,scene)を利用してシーナリーを作成でき、MSFS2020にその地形を登場させることができる。
  • 作成手順はシーナリーの作成手順と同様。
  • 手順の参考youtube
  • XMLは使い回しせずにSDKから毎回複写し、テキストエディタで修正すること。(使い回しするとXMLの版が古くなったり、フォーマットが変わってビルド出来なくなる場合あり)

インストール

ソフトのインストール手順を説明する。

  • インストール(GoogleEarthDecorder)
    • Microsoft .NET Framework 4.7.2のインストール(※Windows10であれば不要)
    • GoogleEarthDecorderのダウンロード先
    • ダウンロードした(Release.zip)を解凍する
    • この手順では、Releaseというフォルダに解凍した前提で手順を記載する
  • インストール(MSFS2020 SDK:ソフトウェア開発キット)
    • MSFS2020を起動
    • DelelopperModeを起動
    • デベロッパーメニューの"help > SDK Installer"からダウンロード(1.87GByte)できる。ダウンロードしたらダブルクリックして好きなところにインストール。
    • ※SDKはPatch適用後にアップデートされているので、アンインストールしてから最新版を適用すること

シーナリーのプロジェクトファイルの準備

シーナリーのプロジェクトファイルの準備を行う。
この手順はシーナリー作成ごとに実施する必要がある。
この手順では、シーナリー名は"AAAA"として記載する。適時、読み替えて欲しい。

  • サンプルシーナリーの複製
    • MSFS SDKをインストールしたフォルダー内の"Samples\SimpleScenary"を適当なところに複製する。
  • ファイル、フォルダー名変更、不要なファイルの削除、ディレクトリの追加
    • 複製したフォルダー名を"AAAA"に変更。
    • "AAAA\SceneryProject.xml"を"AAAA\AAAA.xml"に変更。
    • "AAAA\PackageDefinitions\mycompany-scene-simple.xml"を"AAAA\PackageDefinitions\AAAA.xml"に変更。
    • "AAAA\PackageDefinitions\mycompany-scene-simple"を"AAAA\PackageDefinitions\AAAA"に変更。
    • "AAAA\PackageSources\modelLib"の下のフォルダー三つを削除
    • "AAAA\PackageSources\scene\objects.xml"を削除
  • XMLファイルを編集
    • "AAAA\AAAA.xml"をテキストエディターで開き、5行目"mycompany-scene-simple"を"AAAA"にして保存。
    • "AAAA\PackageDefinitions\AAAA.xml"をテキストエディターで開き、1行目、18行目、19行目の三箇所の"mycompany-scene-simple"を"AAAA"に変更して保存。

以上で、プロジェクトフォルダーの用意は完了だが、このあと失敗してやり直したくなったとき用に、ここで"AAAA"フォルダーのバックアップを取っておくと楽。

GoogleMapから3Dデータを抜き出す

  • 解凍したReleaseフォルダの中にEarth2MsfsWPF.exeがあるので、ダブルクリックで起動する。
  • 地図とエクスポート先のディレクトリを指定する画面が出る
  • 地形をエクスポートする(Output Folder)ディレクトリは、"AAAA\PackageSources\"を指定する
  • 地図をスクロールして、出力したい所を表示させる
  • 地図は左ドラッグで移動、マウスのスクロールボタンで拡大縮小
  • LOD option:※不明※
    • LODは地図の細かさを意味している。
    • 書き出すLODの範囲は、15-19あたりが実用的ではないかと思う(※最適値は確認中)
    • マシンスペックにもよるが、細かすぎるとデータが大きく描画性能を要求するため、やり過ぎないことが必要。
    • GoogleMapで3D化されていなければ、書き出されるデータも3Dモデルではない。
    • minsize:※不明
    • LODのレベルは地図の細かさを表す
    • 【参考】MS BingMap LODの値
  • COLOR CORRECTION:※不明※
    • 色調整のようです。
    • GoogleMapから抜き出した3Dモデルは青みが出ているのでここで調整もできるようです。(※最適値は確認中)
    • ※Ifranview(Windowsアプリ)で複数のテクスチャを同時で青み調整ができるとの情報あり(※筆者未確認)
  • 出力したい領域の指定は、右ドラッグで指定する。
    • あまりにも大きい領域を切り出すと、筆者環境では読み込みができずエラーとなるもよう。重くなるので適度なところで辞めた方が良い
  • "DOWNLOAD"をクリックすると、出力先ディレクトリへ地形データ(modelib,scene)が書き出しが開始される
  • ダウンロードが終了すると、"Finished"のメッセージがでる。

シーナリーを作成する

※この部分の手順は、シーナリーの作成手順とほとんど一緒。

  • モデルを配置したいところに行く
    • MSFS2020を起動。
    • デベロッパーモードにする。
    • World Mapでモデルを配置したいところの近くを指定して好きな機体で目的の場所に飛んでいく(GoogleMapで目的の場所の緯度経度を調べていたら、Searchのところに「緯度,経度」を入れれば直接行けて楽)。
    • デベロッパーメニューの"Options > Pause Simulations ||"でポーズ。
    • デベロッパーメニューの"Camera > Developer Camera"でデベロッパーカメラにする。この辺りは、モデルを配置したいところをカメラ内に収めれば、順序は好みでどうでもいい。デベロッパーカメラの動かし方は、
      • Alt + マウス左ドラッグ: 回転
      • Alt + マウス中ドラッグ: 位置移動
  • モデルの読み込み
    • デベロッパーメニューの"Tools > Project Editor"を選んでプロジェクトエディターを表示。
    • 同時にインスペクターが表示されなかったら、プロジェクトエディターの"View > Inspector"にチェックを入れて表示させる。
    • プロジェクトエディターの"Project > Open..."で作ったプロジェクトの"AAAA\AAAA.xml"を開く。
    • プロジェクトエディターに、AAAAが現れるので、クリック。インスペクターの方に色々出てくる。
    • インスペクターの左下"Build package"を押してパッケージをビルド。
    • しばらくしてビルドが済むと、コンソールウィンドウが出る。エラーが沢山出ていても気にしない。
    • 邪魔なので、デベロッパーメニューの"Windows > Console"のチェックを外して、コンソールを閉じる。
    • プロジェクトエディターのAAAA横のポッチを開くと、"myscene BGL", "mymodellib ArtProj"がある。"myscene BGL"の方をクリックして、インスペクターの"Load in Editor"を押す。
    • Project Editorで、"myscene BGL"の方をクリックして選択(※既に選択はされているが念のため)
    • GizmoのScaleを"1.000000"から"1.003500"に変更
    • 沢山ウインドウが開くが、この先、Material Editorは不要。Scenery Editor, Objects, Propertiesウィンドウが要る。これらが開いてないときは、デベロッパーメニューの"Tools > Scenery Editor"でシーナリーエディター、シーナリーエディターの"View > Objects"と"View > Properties"でオブジェクトウィンドウとプロパティーウィンドウを開く。
  • シーナリーの編集(重複するので、デフォルトの建物と森林を消す)
    ※この段階に来ると、既に取り込んだ範囲が表示されているはず。表示されている内容を確認しつつ作業しましょう。
     もし、取り込んだ範囲が表示されていない場合、建物の高さが合っていない場合などは、次の項目"取り込んだ範囲の標高を変更する"で調整します。
    • オブジェクトウィンドウの"Object type"ドロップダウンメニューで"Polygon"を選択して、下の"Add"ボタンを押す。カーソルが赤い+になる(解説動画32分25秒)。
    • 消したい3Dオブジェクトが入っている範囲を囲うように、周囲をCtrlキーを押しながらクリックしていく。最後にCtrlキーを押しながらダブルクリックで範囲が閉じられる。
    • シーナリーエディターの"Scene:"リストの中に、追加したPolygonが出るはず。多分選択されているが、念の為クリック。
    • プロパティーの"Exclude all"にチェックを入れる。これでPolygon内部は、デフォルト3Dオブジェクトが隠れて平坦な航空写真になり、取り込んだ範囲の建物等のみになる。
    • ※取り込んだ範囲はgizmoのテラフォームで上下にできるので、取り込んだ範囲で表示されてない部分があれば標高を上下してみよう
  • 取り込んだ範囲の標高を変更する
    • ※この項目は取り込んだ範囲が表示されていない場合、建物の高さが合っていない場合などに利用します。(表示上で問題ないように見える場合はこの項目は飛ばして良いです)
    • Scenery Editorウインドウで、数字19桁のオブジェクトを全選択(一番上のオブジェクトをクリック、最下部のオブジェクトを[shift]を押下しつつクリック)する。
    • オブジェクトの表示が変わり、どこにオブジェクトがあるかワイヤーフレームで表示がされる。(※ワイヤーフレームが表示されない場合は標高(alt)が低いので、慌てず下記手順でaltを変更)
    • gizmoのlat,long,altの数値でaltに200とか高い数値を入力すると指定されたオブジェクトの標高が高くなる。取り込んだ3Dモデルの表示を確認し適切な高度に再設定。
    • 別のところをクリックしてオブジェクトの選択を外す。
    • 標高が高くなれば、隠れていたものも表示されるのでここで3Dモデルの表示を確認できる。
    • ※逆にaltの値を"-(マイナス値)"に設定すると地形に埋もれるので表示できず、ワイヤーフレームも表示されません。
  • 保存
    • シーナリーエディターの右下"Save Scenery"をクリック。保存先フォルダーとして、"AAAA\PackageSources\scene"を選び、ファイル名"AAAASHP"を指定して"Save"。もう一度保存ウィンドウが開くので、ファイル名"AAAASCN"を指定して"Save"(ファイル名は重複しなければ任意)。未確認だが、二度目のウィンドウは開かないこともあるらしい。
    • ProjectEditorで"AAAA"をクリック
    • インスペンターの"Build pacage"を押して、もう一度パッケージをビルド。
    • しばらくしてビルドが済むと、コンソールウィンドウが出る。
    • フォルダー"AAAA\Packages"の下に"AAAA"ができていれば成功。
    • MSFS2020を終了。

パッケージのインストール

  • フォルダー"AAAA\Packages\AAAA"をMSFS2020の"Community"フォルダーにコピー
  • ※MSFS2020の"Community"フォルダーがどこかを調べる方法:(MSFS2020のDevelopperモード>Tool>Virtual File Sysytem>Watched Bases>"Community"と書かれているフォルダがそれ)
  • MSFS2020を起動して、デベロッパーモードを抜ける。
  • シーナリーを作ったところに行って出来栄えを確かめる。