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

MSFS SDKのプロジェクトの作り方/Google Earth Decoderのためのプロジェクトを作る

ユーザーは、MSFS SDKを使って、マイクロソフトフライトシミュレーター用のアドオンコンテンツを作ることができます。 これは、SDKによって定義される「プロジェクト」というフォルダー構造に格納されます。
ここではMSFS SDKのプロジェクトの解説と、Google Earth Decoder(Google Earthの3DマップをMSFS用に変換するツール)のためのプロジェクトを作る方法を解説します。

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

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

プロジェクトとパッケージとアセットグループ

MSFS SDKの「プロジェクト」には複数の「パッケージ」を作ることができます。 そして各「パッケージ」には、複数の「アセットグループ」を組み込むことができます。
「パッケージ」とは、アドオンとして配布される単位です。 flightsim.to などのサイトで配布されているシーナリーや航空機、空港などのアドオンは、この「パッケージ」フォルダーを圧縮したものです。
「アセットグループ」とは、パッケージに組み込まれる部品です。 「アセットグループ」の種類には、ModelLib、ArtProj、BGL、Mission、SimObjectなどがあります。 これらアセットグループの詳細については、MSFS SDK docsの ASSET TYPES のページで読めます。
「パッケージ」フォルダーは、MSFSのデータ格納フォルダの中にある"Community"フォルダーに保存すると、ゲームに読み込まれ(インストールされ)ます。 ゲーム内のマーケットプレースからダウンロード購入したアドオン「パッケージ」は、MSFSのデータ格納フォルダの中にある"Official"フォルダーに保存されます。

プロジェクトの構造

各プロジェクトフォルダーの中には、次のようなフォルダーが生成されます。
General Package Folder Structure
FolderDescription
_PackageInt開発に伴い、パッケージに加えられた変更の履歴や各種パラメーターなどの情報が記録されていきます。SDKによって生成されます。
PackageDefinitionsパッケージに組み込まれたアセットグループの情報など、パッケージの内部構造を示す情報が格納されます。SDKによって生成されます。
Packagesパッケージの完成品が格納されます。この中身を、アドオンとしてほかのユーザーに配布することができます。ビルドという操作を行うことで、SDKによって生成されます。
PackagesMetadata(??)
PackageSourcesシーナリーの3Dモデルなど、パッケージを構成する元データ(アセットグループ)を保存します。開発者が準備します。
[プロジェクト名].xmlプロジェクトの基本情報が格納されます。MSFS SDKでプロジェクトを開くときは、このファイルを指定します。SDKによって生成されます。
これらの詳細については、MSFS SDK docsの USING THE SDK のページで読めます。

パッケージの命名規則

MSFS SDKでは、パッケージの命名規則が厳密に決められています。 あなたが開発したアドオンを、広くほかのユーザーに配布する場合は、この命名規則にのっとった名前を付ける必要があります。 また、パッケージ名は英数字128文字以内に収める必要があります。
Basics of package naming conventions
基本規則developer - type ( - subtype ) - name-of-asset ( - variation-of-named-asset ) ( - subcontent )
"developer"とは開発者(あなた)の名前です。下記の一覧表では"company(会社名)"と表現されています。 MSFS SDKでプロジェクトを作ると、自動的に付加されます。
"type"とは、アドオンのタイプを示す単語で、下記の表のように決められています。
この後ろに、アドオンの内容を示す名前を付けます。
Package naming conventions
Package TypeNaming conventions
空港(Airports)<company>-airport-<ICAO>-<airport_name>
航空機(Aircraft)<company>-aircraft-<aircraft_name>
航空機のペイント(Aircraft Liveries)<company>-aircraft-<aircraft_name>-livery-<livery_name>
着陸チャレンジ(Landing Challenges)<company>-landingchalenge-<ICAO>-<name>
ディスカバリーミッション<company>-discovery-<name>
ブッシュトリップ<company>-bushtrip-<name>
モデルライブラリ<company>-modellib-<name>
動くオブジェクト(SimObjects)<company>-simobjects-<type>
シーナリー<company>-scenery-<name>
Google Earth Decoderを使って作成するアドオンのタイプは「シーナリー」になります。
例えば開発者someoneさんが、tokyoという名前のシーナリーを配布する場合は、パッケージに"someone-scenery-tokyo"という名前を付ける必要があります。
命名規則の詳細については、MSFS SDK docsの THE PROJECT EDITOR のページで読めます。

MSFS SDKでプロジェクトを作る

例として、Google Earth Decoder(Google Earthの3DマップをMSFS用に変換するツール)のためのシーナリープロジェクトを作る手順を紹介します。 これには、MSFS SDKで作る方法と、Blenderプラグインで作る方法があります。 まずは、MSFS SDKで作る方法を紹介します。

パッケージ名の決定


ここでは仮に、開発者名を"someone"、シーナリーの名前を"tokyo"とします。 すると、上に示した命名規則にのっとり、パッケージ名は"someone-scenery-tokyo"となります。

プロジェクトの作成


PC MSFSを起動し、開発者メニューで[File]-[New project]を選びます。
PC このようなウインドウが開きます。
Projects Folder欄には、プロジェクトを保存するフォルダーを指定します。 大量のデータを何度も読み書きするので、SSDではなく、大容量のハードディスクを使うのがおすすめです。
Project Name欄には、開発者名の部分を除いたプロジェクト名を指定します。今回の例では"scenery-tokyo"となります。
Default creator name欄には、開発者の名前を入れます。あなたの名前、ペンネームなどを指定します。今回の例では"someone"となります。
Default company name欄には、制作会社名を入れます。個人開発者の場合はDefault creator name欄と同じで良いでしょう。今回の例では"someone"となります。
そして画面右下の[Create new project]ボタンをクリックします。 するとProjects Folder欄で指定したフォルダーの下に、"scenery-tokyo"という名前のプロジェクトフォルダーが生成されます。
PC 次にこのようなウィザード画面が開きます。 今回作成するのはパッケージなので、画面の一番左にある[Package]ボタンをクリックします。 そして画面右下の[Next]をクリックします。
なお、Packs(複数の作成済みパッケージをセットにして配布する)やBundles(すでにマーケットプレースで公開済みのパッケージをセットにして販売する)を作るときは[Bundle/Pack]を選びます。 この場合は、一つのプロジェクトに複数のパッケージを含むことになります。
また、PacksやBundlesを新しいプロジェクトとして作成するときには、今回作る新しいプロジェクトに、既存のパッケージを追加することができます。この場合は[Import Item]を選びます。
PC つづいてこのような画面になります。 航空機を作るときは[Aircraft]、空港を作るときは[Airport]、炎や煙などの視覚効果を作るときは[Visual effect]ボタンをクリックします。 シーナリーなど、その他のタイプのアドオンを作る場合は、画面一番右の[Custom]ボタンをクリックします。
[Custom]をクリックすると、その下に次のような項目が現れます。
Display title欄には、このパッケージの表示名を指定します。 これはマーケットプレイスなどで配布するときのタイトルとして表示されます。
Company name欄には、制作会社名を入れます。個人開発者の場合は、あなたの名前やペンネームなどを指定します。
Package name欄には、命名規則にのっとって決めたパッケージ名"scenery-tokyo"を指定します。
Content-Type欄のドロップダウンリストで、パッケージのタイプを指定します。 今回は"SCENARY"を指定します。
そして画面右下の[Next]をクリックします。
PC つづいてアセットグループの指定画面になります。 パッケージには最低一つのアセットグループが必要です。 まずは最も基本的な情報を保存する"BGL"タイプのアセットグループを作ります。
Asset group name欄には、アセットグループの名前を指定します。 Google Earth Decoderを使うと、"scene"というBGLアセットグループが生成されます。 今回は、これに合わせて"scene"と入力することにします。
Asset type欄には、アセットグループのタイプを指定します。 ここでは"BGL"を選択します。
そして画面下の[Create]をクリックします。
PC MSFSの画面には"Project Editor"が表示されます。 その中には、青い文字で、このプロジェクトに含まれているパッケージ名の一覧が表示されます。 図の例では、"someone-scenery-tokyo"というパッケージ1つだけが含まれています。
パッケージ名をクリックすると、そこに含まれるアセットグループの一覧が表示されます。 図の例では、"scene"という名前の"BGL"タイプのアセットグループ1つだけが含まれています。
なお、この画面の下にある[Add Item]ボタンを使うと、新たなパッケージを追加することができます。 また[Import Item]ボタンを使うと、既存のパッケージを追加(Bundle/Pack)することができます。
PC 以上でGoogle Earth Decoderのためのシーナリープロジェクトの作成は完了しました。 Project Editorの[Project]-[Save]を選んでプロジェクトを保存し、[Project]-[Close]を選んでプロジェクトを閉じ、MSFSを終了します。
PC プロジェクト保存フォルダーの下には、このようなフォルダーが生成されます。 この中にある"PackageSources"フォルダーを、Google Earth Decoderの出力先として指定します。

Google Earth Decoder使用後の設定


PC Google Earth Decoderを起動して、マップデーターをダウンロードします。
Google Earth Decoderのインストール方法については、下記をご覧ください。
PC すると"PackageSources"フォルダーの下に"modelLib"と"scene"という2つのアセットグループが生成されます。 これらをプロジェクトに追加します。
なお、この図で見えている"Scenery"というフォルダーは、SDKでプロジェクトにBGLアセットグループを追加したときに、SDKによって自動的に生成されたものです。
PC MSFSを起動し、開発者メニューで[File]-[Open project]を選びます。
またはこの下の[Open resent]を選ぶと、最近開いたプロジェクトの一覧から選択することも可能です。
PC するとファイル選択ダイアログボックスが表示されるので、プロジェクトフォルダーの直下にある"[パッケージ名].xml"ファイルを選択します。
なお、一つのプロジェクトに複数のパッケージを作ると、ここに複数の"[パッケージ名].xml"ファイルが生成されます。
PC プロジェクトが読み込まれて、"Project Editor"が表示されます。 青い文字のパッケージ名("someone-scenery-tokyo")をクリックし、アセットグループの一覧を表示させます。 そしてプロジェクトの新規作成時に追加した、"scene"という名前の"BGL"アセットグループを選択します。
PC アセットグループ"scene"の設定を変更します。 Project Editorのメニューから[View]-[Inspector]を選びます。
PC するとInspectorが開き、アセットグループ"scene"の詳細情報が表示されます。 ソースフォルダー(AssetDir欄)が、SDKによって自動生成されたフォルダーとなっているので、これをGoogle Earth Decoderが生成した"scene"フォルダーに変更します。
PC "AssetDir"と書かれている場所の左にある[...]をクリックすると、フォルダー選択ダイアログ画面が表示されます。 "PackageSources"フォルダー直下にある、Google Earth Decoderが生成した"scene"を選びます。
PC このようになりました。
"OutputDir"については特に変更は不要です。 あなたのパッケージの設計に合わせて、お好みで修正してください。 一般に配布されているGoogle Earthから生成されたシーナリーアドオンでは、ここには"scenery/world/scenery"が指定されることが多いようです。
PC つづいてプロジェクトに、3Dマップデーターが保存されている"modelLib"を追加します。 Project Editorの画面で、青い文字のパッケージ名("someone-scenery-tokyo")をクリックします。
PC するとInspectorの画面が、パッケージ全体情報に切り替わります。 画面下部のアセットグループ一覧にある[Add asset group]ボタンをクリックします。
もしInspectorを閉じてしまった場合は、Project Editorの画面で[View]-[Inspector]を選んでください。
PC 追加するアセットグループのタイプは[Custom]を選びます。 そして画面下の[Next]をクリックします。
PC つづいて追加するアセットグループの情報を入力します。
Asset group name欄には、アセットグループの名前を指定します。 Google Earth Decoderを使うと、"modelLib"というModelLibアセットグループが生成されます。 今回は、これに合わせて"modelLib"と入力することにします。
Asset type欄には、アセットグループのタイプを指定します。 ここでは"ModelLib"を選択します。
そして画面下の[Create]をクリックします。
PC するとパッケージに"modelLib"という名前の"ModelLib"アセットグループが追加されました。
PC アセットグループ"modelLib"の設定を変更します。 "scene BGL"の設定を変更したときと同じように、Project Editorの画面で"modelLib"をクリックし、Inspectorの画面でソースフォルダー(AssetDir)を変更します。
"OutputDir"については特に変更は不要です。 あなたのパッケージの設計に合わせて、お好みで修正してください。 一般に配布されているGoogle Earthから生成されたシーナリーアドオンでは、ここには"scenery/global/scenery"が指定されることが多いようです。
PC 以上でGoogle Earth Decoder向けのプロジェクトの作成は完了です。 Project Editorの画面で[Project]-[Save]を選んで、プロジェクトを保存しましょう。 つづいて プロジェクトのビルド作業 に進みましょう。
PC PackageSourcesフォルダーの下にある"Scenery"フォルダーは、MSFS SDKによって自動生成されたアセットグループのフォルダーです。 Google Earth Decoderで生成したアセットグループを使用する場合は、このフォルダーは使用しないので、削除しておきましょう。

Blenderのプラグインでプロジェクトを作る

ここでは、Blenderのプラグイン「Google Earth Decoder Optimization Tools」を使って、Google Earth Decoderのためのシーナリープロジェクトを作成する方法を解説します。

プラグインのインストール


「Google Earth Decoder Optimization Tools」のインストール方法については、下記をご覧ください。

パッケージ名の決定


ここでは仮に、開発者名を"someone"、シーナリーの名前を"tokyo"とします。 すると、上に示した命名規則にのっとり、パッケージ名は"someone-scenery-tokyo"となります。

プロジェクトの作成


PC Blenderを起動し、メニューから[Google Earth Decoder Optimization Tools]-[1. Initialize a new MSFS scenery project]を選びます。
PC するとこのようなダイアログボックスが表示されます。
画面上部中央にあるPath of the MSFS projects...と書かれた部分をクリックすると、フォルダー選択画面が開きます。 プロジェクトを保存する場所を指定します。
Name of the project to initialize欄には、命名規則にのっとって決めたパッケージ名(この例では"scenery-tokyo")を指定します。
Author of the project欄には、あなたの名前/ペンネームなど(この例では"someone")を指定します。
赤い[Initialize a new MSFS project scenery...]ボタンをクリックすると、新しいプロジェクトフォルダーが生成されます。
なお、既存のプロジェクトを開くときは、青い[OK]を押します。
PC するとこのような画面が表示されます。 数秒ほど待つと"Script correctly applied"と表示されます。
PC 指定したフォルダーに、プロジェクトのフォルダーが生成されています。 Blenderは閉じてしまっても構いません。
この中にある"PackageSources"フォルダーを、Google Earth Decoderの出力先として指定します。

Google Earth Decoder使用後の設定


PC Google Earth Decoderを起動して、マップデーターをダウンロードします。
Google Earth Decoderのインストール方法については、下記をご覧ください。
PC すると"PackageSources"フォルダーの下に"modelLib"と"scene"という2つのアセットグループが生成されます。 これらはプラグインによって、生成されたプロジェクトの構成ファイルに追加されています。
PC ただしプラグインで生成されたプロジェクトのModelLibアセットグループの名前は"[パッケージ名]-modelLib"と定義されています。 生成された"modelLib"フォルダーの名前を、これに合わせて変更します。 あるいはSDKのInspecterで、ModelLibアセットグループの名前を"modelLib"に変えても構いません。
なお、パッケージに含まれているアセットグループの名前などは、"PackageDefinitions"フォルダーの下の"[パッケージ名(この例では"someone-scenery-tokyo")].xml"に書かれています。 SDKを使う代わりに、テキストエディタなどでこのファイルを直接編集しても構いません。
以上でGoogle Earth Decoder向けのプロジェクトの作成は完了です。 Project Editorの画面で[Project]-[Save]を選んで、プロジェクトを保存しましょう。 つづいて プロジェクトのビルド作業 に進みましょう。

プロジェクトをビルドする

PC 開発者メニューで[File]-[Open project]を選び、プロジェクトフォルダーの直下にある"[パッケージ名].xml"ファイルを選択します。 するとプロジェクトがSDKに読み込まれます。
初めてビルドするときは、事前にプロジェクトの保存が必須です。 Project Editorの画面で[Project]-[Save]をクリックしてください。
つづいて、Project Editorの画面で[Build All]ボタンをクリックすると、ビルドが始まります。
PC ビルドの状況は、Windowsのタスクマネージャーで確認できます。 ビルド中はCPU使用率が100%に張り付き、プロジェクトを作成したディスクの使用率も上昇します。
ビルドにかかる時間は、Google Earthから切り取った領域の広さとLODレベルによって変わります。
PC ビルドが終わるとSDKのConsole画面が開き、結果が表示されます。 もし画面左上のErrorsが0ではなかったときは、画面を上に向かってスクロールして、エラー内容を確認して対処してください。
ここで発生するエラーの多くは、SDKが認識しているアセットグループの格納パス/フォルダー名と、実際の格納パス/フォルダー名の不一致です。 PackageDefinitionsフォルダーに格納されている"[パッケージ名].xml"をテキストエディタなどで開いて、"<AssetDir>"タグの中身と、実際の格納パス/フォルダー名が一致していることを確認してください。
PC ビルドに成功すると、Packagesフォルダーの下に、パッケージ名のフォルダー"someone-scenery-tokyo"ができています。 これをMSFSのデータ格納フォルダの中にある"Community"フォルダーにコピーすれば、あなたのMSFSにインストールされます。 パッケージを配布するときは、このフォルダーを圧縮して、配布サイトなどにアップロードします。

ゲーム画面でプロジェクトのビルド結果を確認する

PC MSFSでWORLD MAP画面を開いて、今回作成したシーナリーが見渡せる場所をクリックして、[SET AS DEPARTURE(出発地点として設定)]をクリックします。 必要に応じて時刻や天候などの条件をセットして、[FLY(飛行)]ボタンをクリックします。
PC 指定した場所の約1500フィート上空から、北向きに飛行が始まります。 (飛行高度は、選択した航空機によって変わります。)
PC すぐさま一時停止します。
PC Developer Cameraに切り替えます。
Developer Cameraをゲームコントローラーで操作する方法は、下記の表のとおりです。
Game controller
SwitchControll
左アナログスティックカメラを前後左右へ平行移動する
右アナログスティックカメラを上下左右へ回転する
左右トリガーカメラを上下方向に移動する(上昇/下降)
左右ボタンカメラを左右にロールする
PC ツールバーから、時刻や天候を変更することもできます。 夜景のチェックも可能です。
PC ビルドした直後であれば、生成したGoogleの3Dマップが、シミュレーション画面に表示されます。
MSFSが自動生成した建築物なども同時に表示されます。 この図の例では、Google Earthからキャプチャしたビルと、MSFSが自動生成した家が重なっています。 ここから、プロジェクトの加工・チューニングを行っていきます。
MSFSが自動生成した建築物などを消すには、パッケージに除外ポリゴン(Exclude Poligon)のアセットグループを追加します。
また、夜のシーンのために、照明を配置する必要があります。 特に有名な建物や観光施設、高層ビルなどは、遠くから見てもわかるよう、やや派手に照明を配置するのが見栄えの良い夜景を作るコツです。
PC MSFSを再起動したときには、ビルドしたプロジェクトをSDKに読み込むか、パッケージを"Community"フォルダーにコピーしないと、作成したシーナリーがシミュレーション画面に現れません。
開発者メニューで[File]-[Open project]を選びます。 そしてプロジェクトフォルダーの直下にある"[パッケージ名].xml"ファイルを選択します。
プロジェクトが読み込めたら、Project Editorの画面でアセットグループ"BGL"を選び、Inspectorで[Load in Editor]をクリックすると、作成したシーナリーが、シミュレーション画面に表示されます。
動作確認時の注意
あなたがパッケージに組み込ん機能の多くは、開発者モードの画面では機能しません。 完全な動作確認を行うには、完成したパッケージを"Community"フォルダーにコピーして、MSFSを再起動し、通常モードでプレイする必要があります。