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

BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方

Blender用のプラグイン glTF-Blender-IO-MSFS のインストール

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

BlenderでMSFSの3Dモデル(glTF)をインポートする

BlenderでMSFSの3Dモデル(glTF)、特に Google Earth Decoder でダウンロードされたGoogle Mapのデータを読み込む方法を解説します。
Google Mapデータのメッシュを編集する場合は、先にGoogle Earth Decoder Optimization Tools (GEDOT)での「最適化」を終えてください。 GEDOTは、Google Earth Decoderの出力を扱うことに特化されており、それ以外、例えばBlender用エクスポーターで生成されたデータを扱うことはできません。
PC Blenderを起動したら、まずデフォルトで準備されているキューブとカメラ、ライトを削除します。 "Collection"を右クリックすると表示されるメニューから"Delete Hierarchy"を選びます。 するとこれらがまとめて削除できます。
PC まずはLOD0のデータを読み込むためのコレクションを作ります。 右クリックすると表示されるメニューから"New Collection"を選びます。
PC 生成された新しいコレクションの名前をダブルクリックして変更します。
LOD別のデータを格納したコレクションの名前には、後ろに"_LODn"、または前に"xn_"を付加する必要があります(nは0から始まる整数)。 これはプラグイン「glTF-Blender-IO-MSFS」の仕様です。
PC [File]-[Import]-[glTF 2.0 (.glb/.gltf)]メニューを選びます。
PC するとファイル選択のダイアログボックスが開きます。 [Ctrl]キーを押しながら、LOD0の".gltf"ファイルをすべて選択します。 つづいて画面右下の[Import glTF 2.0]ボタンをクリックします。
Google Earth DecoderでダウンロードされたGoogle Mapのデータの場合は、".gltf"ファイルは"modelLib"フォルダーの下に格納されています。
PC するとLOD0のデータが読み込まれます。 これらをすべて選択して、先ほど作ったLOD0用のコレクションにドラッグ&ドロップします。
PC LOD0用のコレクションは、左端にある▲マークをクリックして畳んでおきましょう。 つづいてLOD1用のコレクションを作ります。
PC そして[File]-[Import]-[glTF 2.0 (.glb/.gltf)]メニューから、LOD1の".gltf"ファイルをすべて読み込み、LOD1用のコレクションにドラッグ&ドロップします。 同様にして、全てのLODのデータを読み込んで、コレクションに分類します。
PC ".gltf"ファイルの読み込みが終わったら、テクスチャのフォルダーを指定します。 [File]-[External Data]-[Find missing files]メニューを選びます。
PC するとファイル選択のダイアログボックスが開きます。 テクスチャの保存されているフォルダーを開き、画面右下の[Find Missing Files]ボタンをクリックします。
Google Earth DecoderでダウンロードされたGoogle Mapのデータの場合は、テクスチャファイルは"modelLib\texture"フォルダーの下に格納されています。
PC そして画面右上にある アイコンをクリックします。 すると読み込んだオブジェクトに、テクスチャーが貼り付けられます。
PC Blenderはデフォルトでカメラから0.01m~1,000mの範囲しか表示されません。 広大なシーナリーを表示するには、表示範囲を大きくする必要があります。 右図の矢印が示す位置にある"<"アイコンをクリックします。
PC すると右図のようなパネルがせり出してきます。 パネル右端のメニューから"View"を選び、"End"欄の数値を変更します。 今回の例では、5,000mを指定したら全景が表示できました。
PC 右図の矢印が示す位置にある目玉アイコンをクリックするたびに、LOD別にオブジェクトを表示/非表示にすることができます。
PC Google Earth DecoderでダウンロードされたGoogle Mapのデータの場合は、各LOD別コレクションの下に、さらに各タイル別(.xml形式ファイル別)のコレクションに分類します。 するとBlenderでメッシュを編集した後に「glTF-Blender-IO-MSFS」でエクスポートするときに便利です。 元データの"modelLib"フォルダの中身を参考にして、同じ名前のコレクションを作ります。
PC [File]-[Save]メニューを選んで、Blender形式(".blend")で保存しましょう。

Blenderで編集したGoogle Earth DecoderのモデルをMSFS用(glTF)にエクスポートする

Blenderで編集したMSFSの3Dモデル、特に Google Earth Decoder のデータをglTF形式で書き出す方法を解説します。
PC 右図の矢印が示す位置にある"<"アイコンをクリックします。
PC すると右図のようなパネルがせり出してきます。 パネル右端のメニューから"Multi-Export glTF 2.0"を選びます。 画面右上のコレクション一覧から、ルートのコレクションを選びます。 つづいて"Reload LODs"ボタンをクリックします。
PC シーンの各メッシュデータが認識され、一覧表示されます。 "Grouped by collections"にチェックを入れます。
PC 正しくタイル別、LOD別にコレクションが作成されていると、右図のようになります。 タイル別に一覧表示されます。
各タイルについて、オプションを設定していきます。
"Genete XML"にチェックを入れると"(タイル名).xml"ファイルが生成されます。 ここにチェックを入れると"Overwrite GUID"欄が表示されます。 GUIDを更新したい場合は、ここにチェックを入れます。 Google Earth Decoderのデータを書き出す場合は、すでにXMLファイルは存在しているので、"Genete XML"にチェックは不要です。
"Export Path"欄には、.glTFファイルの書き出し先フォルダーを指定します。 Google Earth Decoderのデータを書き出す場合は、元データの保存されていたフォルダを指定します。
その下に並ぶ、各LOD名の左のチェックボックスをチェックすると、そのLODのデータが.glTFファイルに含まれます。 基本的にはすべてのLODにチェックを入れます。
PC 全ての設定が完了したら、一番下にある"Export"ボタンをクリックすると、書き出しが行われます。
Google Earth Decoderのデータを書き出す場合は、元データの保存されていたフォルダを書き出し先として指定すれば、Blenderでの編集結果がシーンに反映されます。 あとはMSFSに読み込んで、シーナリーを"Build All"すれば完成です。
オリジナルの3DモデルをMSFSに取り込む方法については Blenderで作成したオリジナルの3DモデルをMSFSに取り込む をご覧ください。

Blenderで作成したオリジナルの3DモデルをMSFSに取り込む

Blenderで作成したオリジナルの3DモデルをglTF形式で書き出し、MSFSのシーナリーに取り込む方法を解説します。

オブジェクトの書き出し

PC このようなモデルをMSFSのシーナリーに取り込んでみます。 Blenderにデフォルトで準備されているsphereオブジェクトです。 スケーリング機能で10m四方程度の大きさに拡大しました。 また、"vertex paint"機能で、すべての頂点カラーをオレンジ色に指定してみました。 なお、LOD別のモデルは準備していません。
このままではBlenderのレンダリング画面では頂点カラーは反映されませんが、MSFSに取り込むと、ちゃんと反映されます。
PC パネル右端のメニューから"Multi-Export glTF 2.0"を選びます。 今回プラグインの設定は特に変更していません。 頂点カラーをMSFSに反映させるには、[Settings]画面の[Mesh]-[Vertex Colors]欄にチェックが入っていることを確認してください。
PC プラグインの[Objects]画面を開き、"Reload LODs"ボタンをクリックします。 するとこのような画面になります。
今回出力するモデルは"Sphere"のみなので、"Sphere"の欄の"Sphere"にチェックを入れます。 また、新しいオリジナルモデルなので、MSFS用のXMLファイルの出力も必要です。 "Generate XML"にもチェックを入れます。
作成済みモデルをBlenderで編集して再出力する場合は、MSFS用のXMLファイルの出力は不要です。 前回生成したXMLファイルをそのまま使います。
[Export Path]欄に、任意の出力先フォルダを指定して、一番下にある[Export]ボタンをクリックします。
PC すると、指定したフォルダに".bin", ".gltf", ".xml"の3つのファイルが生成されます。 もしモデルにテクスチャを貼り付けていた場合は、同じフォルダにテクスチャの画像ファイルも出力されます。

プロジェクトに新しいオブジェクトを追加する

PC つづいてMSFSのプロジェクトに、今回準備した新しいオブジェクトを格納するためのフォルダを作ります。 これにはMSFS SDKを使います。
MSFSで新しいオブジェクトを取り込むプロジェクトを開きます。 そしてProject Editor画面で、青文字のプロジェクト名をクリックし、Inspector画面で[Add asset group]ボタンをクリックします。 各オブジェクトは、それぞれ独立した"Asset group"として、シーナリーに取り込みます。
MSFS SDKのプロジェクトの作り方と、プロジェクトの詳細については、下記のリンクをクリックしてください。
PC するとこのようなウインドウが表示されます。 [Custom]をクリックします。
PC つづいて[Next]をクリックします。
PC するとこのようなウインドウが表示されます。
[Asset group name]欄には、新しいオブジェクトの名前を考えて、入力します。 ここに入力した名前は、他のユーザーからも見えます。
[Asset type]欄は、"ModelLib"を選びます。
そして一番下にある[Create]をクリックします。
PC Project Editor画面には、新しいModelLibが追加されているのが確認できます。 これを選んだうえでInspector画面を開くと、"AssetDir"欄に、3Dデータの格納先フォルダ名が表示されています。 格納先フォルダは "[プロジェクト名]\PackageSources\Scenery\[プロジェクト名]\[Asset group name]" です。
PC 上の画面で指定された3Dデータの格納先フォルダに、Blenderから書き出した3Dデータをコピーします。 ".bin", ".gltf", ".xml"の3つのファイルをすべてコピーします。 テクスチャーがある場合は、"texture"フォルダを作り、すべてのテクスチャーファイルをそこに格納します。
MSFSは起動したままで構いません。
PC Project Editor画面で"Build All"をクリックしてプロジェクトをビルドします。 ビルド結果が"0 failed"で終了することを確認します。 すると新しいオブジェクトがMSFSのプロジェクトに"部品"として組み込まれました。 つぎにこの"部品"をシーンに設置します。

新しいオブジェクトをシーンに設置する

PC Scenery Editor画面から[View]-[Objects]画面を開きます。 Objects画面の"Object type"欄で"Scenery"を選び、"Packages"欄で、新しいオブジェクトを組み込んだプロジェクト/パッケージ名を選びます。 すると"Objects"欄に、そのプロジェクト/パッケージに含まれているオブジェクトの名前が表示されます。 シーンに追加したいオブジェクト(この例では"Sphere")を選択したうえで、画面左下の"Add"をクリックします。
PC するとScenery Editor画面に、新しいオブジェクトが追加されます。 またMSFSのゲーム画面に新しいオブジェクトが表示されます。 ただし、追加したオブジェクトの"Snap to ground(地面に貼り付ける)"パラメーターが有効になっているため、オブジェクトは地面に埋まっています。
PC Scenery Editor画面で、追加したオブジェクトを右クリックしてProperties画面を開き、"Snap to ground(地面に貼り付ける)"のチェックを外します。 するとオブジェクトが好きな高さに移動できます。
オブジェクトが好きな場所に設置できたら、Scenery Editor画面で、左下にある"Save Scenery"ボタンをクリックして、シーナリーを保存します。 そしてProject Editor画面で"Build All"をクリックしてプロジェクトをビルドします。 以上で、新しいオブジェクトの設置が完了しました。
PC "部品"として組み込まれたオブジェクトは、Objects画面で繰り返し"Add"をクリックすれば、いくつでもシーナリーに追加することができます。