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

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

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

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

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

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

アドオンコンテンツは、MSFS SDKの「プロジェクト」として作成します。 そして「プロジェクト」をビルドすると、シミュレータに組み込むことができる「パッケージ」が完成します。
MSFS SDKの「プロジェクト」には複数の「パッケージ」を作ることができます。 そして各「パッケージ」には、複数の「アセットグループ」を組み込むことができます。
「パッケージ」とは、アドオンとして配布される単位です。 flightsim.to などのサイトで配布されているシーナリーや航空機、空港などのアドオンは、この「パッケージ」フォルダーを圧縮したものです。
「アセットグループ」とは、パッケージに組み込まれる部品です。 「アセットグループ」の種類には、ModelLib、ArtProj、BGL、Mission、SimObjectなどがあります。 これらアセットグループの詳細については、MSFS SDKドキュメントの 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ドキュメントの 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ドキュメントの THE PROJECT EDITOR のページで読めます。

プロジェクトを保存する場所

プロジェクトの開発時には、データに対する大量の読み書きが発生します。 SSD上でプロジェクトを開発すると、SSDの劣化が早まり、また書き込みが遅いとビルドに時間がかかります。
プロジェクトを保存するドライブは、MSFS SDKのインストールドライブと異なっていても構いません。 プロジェクトの開発には、SSDではなく、専用のハードディスクを準備するのがおすすめです。

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

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

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


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

パッケージ名の決定


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

プロジェクトの作成


PC Blenderを起動し、メニューから[Google Earth Decoder Optimization Tools]-[Initialize a new MSFS project scenery]を選びます。
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"と表示されます。
完了したら、この画面は最小化しておきましょう。 なお、この画面を[X]ボタンで閉じると、Blenderが終了します。
PC 指定したフォルダーに、プロジェクトのフォルダーが生成されています。 Blenderは閉じてしまっても構いません。
この中にある"PackageSources"フォルダーを、Google Earth Decoderの出力先として指定します。
つづいてマップデータのダウンロード、プロジェクトの最適化、ビルドの各作業を行います。 詳しくは下記のページをご参照ください。

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

ここでは、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の使い方については Google MapでMSFSのシーナリーが作れるGoogle Earth Decoderの使い方 のページをご覧ください。
PC すると"PackageSources"フォルダーの下に"modelLib"と"scene"という2つのアセットグループが生成されます。 これらをプロジェクトに追加します。
なお、この図で見えている"Scenery"というフォルダーは、SDKでプロジェクトにBGLアセットグループを追加したときに、SDKによって自動的に生成されたものです。
PC MSFSを起動し、開発者メニューで[File]-[Open project]を選びます。
またはこの下の[Open recent]を選ぶと、最近開いたプロジェクトの一覧から選択することも可能です。
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で生成したアセットグループを使用する場合は、このフォルダーは使用しないので、削除しておきましょう。

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

PC 開発者メニューで[File]-[Open project]を選び、プロジェクトフォルダーの直下にある"[パッケージ名].xml"ファイルを選択します。 するとプロジェクトがSDKに読み込まれます。
初めてビルドするときは、事前にプロジェクトの保存が必須です。 Project Editorの画面で[Project]-[Save]をクリックしてください。
Project Editorの画面で[Clean All]ボタンをクリックすると、"Packages"フォルダの下にある古いパッケージが削除されます。 つづいて[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にインストールされます。 パッケージを配布するときは、このフォルダーを圧縮して、配布サイトなどにアップロードします。
プロジェクトフォルダの[Packages]-[(パッケージ名)]フォルダの下に、"layout.json"と"manifest.json"が生成されていない場合は、ビルドに失敗しています。 データ量が多すぎる場合には、ビルドが途中でクラッシュしてしまうことがあります。 シーナリーの範囲を狭めるなどしてみてください。