話題のミニPCレビュー
  • 記事をシェア
  •  
  •  
  •  
  • B! 
  •  

MSFSのシーナリーにライト/照明を追加する方法

マイクロソフトフライトシミュレーター用のシーナリーにライト・照明を置くには2つの方法があります。 一つ目は、3DモデルにBlenderのライトオブジェクトを設置して、それをMSFS用glTF形式で書き出す方法です。 そしてもう一つは、シーナリーをMSFS SDKに取り込んだ後に、MSFS SDKの持つライトオブジェクトを設置する方法です。
また、これらの合わせ技として、Blenderのライトオブジェクトを部品として書き出して、MSFS SDK内でこれを大量に設置するという方法もあります。
ドローン入門

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

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

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

作成するシーナリーのパッケージ名を考えてください。 MSFS SDKでは、パッケージの命名規則が厳密に決められています。 規則に従った正しいパッケージ名を考えてください。
パッケージ名が決まったら、中身が空のプロジェクトを作成します。
詳しくは、下記のページをご参照ください。

MSFS SDKでシーナリーにライト/照明を追加する

MSFS SDKを使うと、MSFSに標準で準備されているライトオブジェクトを、シーナリーに簡単に追加することができます。
PC MSFSを起動し、プロジェクトを読み込み、シミュレーションをスタートします。 そしてシーンを夜に切り替えます。 ツールバーの[WEATHER]を選びます。
PC WEATHERの設定画面が開きます。 TIME欄のスライドバーをドラッグして、夜にします。 ただし真っ暗になる時刻にしてしまうと建物が見えなくなるので、ちょうど日没頃の時間に設定するのがおすすめです。
PC なお、開発者メニューの[Options]-[Local time]欄でも時刻を変更することができますが、WEATHERの設定画面のほうが、時間(=明るさ)が細かく調整できます。
PC MSFSに標準で準備されているライトは「オブジェクト」です。 Scenery Editor画面で[View]-[Objects]を選び、Objects画面を開きます。
PC Objects画面で、"Object Type"欄に"Scenery"が選択されていることを確認します。 画面右の"Packages"欄で"fs-base"を検索してクリックします。 つづいて画面左の"Objects"欄で"light"または"lamp"を検索します。
するとMSFSに標準搭載されているライトオブジェクトが見つかります。 最もポピュラーなライトは"Light_Cold", "Light_Warm"の2つです。 "Light_Cold"は白色のライト(昼光色)です。 "Light_Warm"はややオレンジが混じった色のライト(電球色)です。
その他にもいろいろなライトオブジェクトが準備されています。試してみてください。
ライトオブジェクトを選択したら、画面左下の[Add]ボタンをクリックします。
PC あるいは"Packages"欄で"fs-base"を選択し、"Objects"欄で"street"を検索します。 するとこのように"StreetLamp-"という名前のライトオブジェクトが見つかります。 これらはMSFSに標準搭載されている街路灯です。 いろいろなデザインの街路灯がそろっています。
PC "Packages"欄で"ALL"を選択し、"Objects"欄で"light"または"lamp"を検索すると、あなたのMSFSにインストールされているすべてのシーナリーから、ライトオブジェクトを検索します。
しかしこの中にはMSFSに標準搭載されていない(他のユーザーは持っていないかもしれない)ライトオブジェクトや、そもそもライトではないオブジェクトも含まれます。 この中からオブジェクトを選択するときは注意してください。
PC ライトオブジェクトを選択して[Add]ボタンをクリックすると、 Scenery Editor画面にライトのオブジェクト(この画面の例では"Light_Cold*")が追加されます。 またゲームの画面にライトが表示されます。 ただし最初は座標軸だけが見えて、ライトそのものは見えていないと思います。 Scenery Editor画面でライトのオブジェクトを右クリックしてプロパティ画面を表示し、"Snap to ground(地面に貼り付ける)"のチェックを外します。
PC まず最初に、ライトの座標軸の緑色の矢印を上(Y軸)方向にドラッグします。 座標軸の横に表示されるY座標の値を見て、ライトの高度を少しずつ上げます。 するとライトが画面に現れ、その周囲がライトに照らされます。
つづいて座標軸の横の緑色の四角形をドラッグすると、ライトを水平面上だけで移動できます。 高度を調整したり、水平面上で移動したりを繰り返して、ライトを好きな場所に設置してください。
あとはひたすら上の手順を繰り返し、ライトを設置していきます。 時々Scenery Editor画面の[Save Scenery]ボタンをクリックして、シーナリーを保存しながら作業を進めてください。
PC ライトはシーナリー内に大量に配置することになります。 後で必要なライトオブジェクトがすぐに見つけられるように、Scenery Editor画面で細かくグループ分けしておくと良いと思います。
なお、MSFSのライトを設置しただけでは、光源そのもの(電球や蛍光灯)はレンダリングされません。 光源を設置した周囲が明るくなるだけです。 光源そのものを見えるようにするには、光源を3Dモデルとして作成し、"発光"マテリアルを設定するなどの作業が必要です。 しかしGoogleMapのシーナリーは、通常上空の高いところから眺めるので、光源そのものが見えなくても十分楽しめます。
PC ライトの設置が終わったら、最後にScenery Editor画面の[Save Scenery]ボタンをクリックしてシーナリーを保存し、Project Editor画面の[Build All]ボタンをクリックします。 エラー無くビルドが終わったら、完成したパッケージを"Community"フォルダーにコピーして、MSFSを再起動しましょう。
PC とりあえず駅のホームと、駅前のビル周辺にライトを配置してみました。 ぐっと夜景の見栄えが良くなりました。
ライトの明るさは、シーナリーオブジェクトからの距離で調整します。 この例では、高層ビル(Act Tower)には、こちら側と反対側に、"Light_Cold"を2つずつ配置しています。

ライトオブジェクトの保存される場所


上の手順でシーナリーに追加したライトの情報は、"PackageSources\scene"フォルダーの下にある"objects.xml"ファイルに追記・保存されていきます。

Blenderでシーナリーにライト/照明を追加する・メッシュを編集する

無料の3Dモデリングソフト:Blenderと「glTF-Blender-IO-MSFS」エクスポータープラグインを使うと、Blenderで作成したオブジェクトやGoogle Earth Decoderで生成したMSFSシーナリーに、ライト/照明を追加したり、そのメッシュを編集することができます。 Blenderに準備されている4種類のライト:スポットライト、点光源、太陽、面光源を追加できます。 また色や明度も自由に設定可能。点滅するライトも追加できます。
ただしGoogle Earth Decoderで生成したシーナリーを編集対象にする場合は、シーナリー全体を一気に加工することはできません。 各タイルごと、LODごとにライトの追加やメッシュの編集を行う必要があります。 作業にはとても手間がかかるので、シーナリーの中で特に目立つランドマークに限って処理すると良いと思います。
注意: 「glTF-Blender-IO-MSFS」エクスポータープラグインは、Blenderバージョン3.3または3.6で使用してください。
シーナリーのインポート
PC Blenderにシーナリー(Google Mapのタイル)のglTFファイルをインポートします。 インポート手順については BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方 のページをご覧ください。
ここで各LODのメッシュを加工してエクスポートすれば、シーナリーを変形することができます。
なお、Blenderにインポートする前には シーナリーデーターの最適化 を済ませておいてください。 シーナリーをBlenderで加工してしまうと、Google Earth Decoder Optimization Tools (GEDOT)で最適化したときにエラーが発生します。
Blenderのセッティング
PC ライト/照明を追加するには、Blenderの表示モードを"Render Preview"に切り替えます。 画面右上の アイコンをクリックします。
PC するとこのような画面になります。 シーナリーにはまだ光源が一つも設定されていないので、真っ暗になります。
PC Blenderで追加するライトは、最終的に各LODのメッシュにコピーする必要があります。 まずはライト用のコレクション(フォルダー)を作って、そこに原本となるライトを作ります。 そして最後にそれを各LODにコピーするのが良いと思います。
PC Google Earth Decoderで生成したシーナリーのような、広大なメッシュを扱うには、Blenderの"Quad View"を使うのがおすすめです。 追加するオブジェクトを細かく位置合わせするのが簡単になります。 メニューから[View]-[Area]-[Toggle Quad View]を選びます。
ライトの追加
PC ライトを追加するには、"Object Mode"に切り替え、[Add]-[Light]メニューからライトを選びます。 夜景のディテールアップに使うなら、Point(点光源)またはSpot(スポットライト)が良いと思います。
PC すると選択しているコレクションにライトが追加されます。
PC ライトの位置を決めます。 "Move"モードに切り替えます。
PC ライトの座標軸をドラッグして、位置を決めます。 デフォルトのライトは暗いので、オブジェクトにギリギリ近づけないと、照明が当たりません。 しかしあまりオブジェクトに近づけると、低解像度のLODのモデルに切り替えた場合に、ライトがオブジェクトの中に埋もれてしまうこともあります。 表示するモデルのLODを切り替えながら、慎重に位置合わせしてください。
プロパティの設定
PC 画面右下の緑色の (電球) アイコンをクリックして、ライトのプロパティ画面を開きます。
上に並ぶ[Point][Sun][Spot][Area]をクリックすると、ライトの種類を切り替えることができます。 "Color"欄をクリックすると、ライトの色が選択できます。 "Power"欄で、ライトの明るさが選択できます。 街灯は20~30W程度、店舗の照明などは50W程度、ビル頂上の赤色点滅灯(航空障害灯)は30W程度、ランドマークのライトアップに使うスポットライトは300W程度にするといいかもしれません。
MSFSにエクスポートすると、ライトはBlenderの画面で見るより明るく見えるようです。
PC つづいて画面右下のオレンジ色の (プロパティ) アイコンをクリックして、MSFSエクスポーター向けのプロパティ画面を開きます。
編集したいライトが選択されていなかったときは、プロパティ画面の最上部にあるドロップダウンリストから、編集したいライトを選択します。
PC プロパティ画面の"MSFS Light Parameters"欄を展開します。
"Has symmetry"欄にチェックを入れると、ライトが対称になります。ライトの向く方向の反対側にもライトコーンが生成されます。スポットライトの場合に効果があります。 しかし筆者はまだ効果を確認できていません。
"Day/Night cycle"欄にチェックを入れると、そのライトは夜になったときだけ点灯します。
その他のパラメーターは、ライトの点滅と回転に関するパラメーターです。 下記の表をご覧ください。
MSFS Light Properties
Keyworddescription
Flash frequency (点滅回数) 1分間にライトが「点滅」する回数。 例えばここに6を指定すると、ライトは10秒(= 60 sec / 6 times )に1回点灯します。 これを0に設定するとライトは点滅しません(点灯したまま)。
Flash duration (点灯時間) 1回の点灯の持続時間(秒)。 "Flash frequency"が0の時は、このパラメータは意味を持ちません。
Flash phase (点灯位相) これは、シミュレーターでモデルが生成されてから、最初の点滅が行われるまでの時間(秒)です。 このパラメーターは、同じ *.gltf 内の複数のライトを同期または非同期で点滅させるのに使います。 "Flash frequency"が0の時は、このパラメータは意味を持ちません。
rotation speed ライトの1分あたりの回転数。 この値は、ライトの角度が 360°未満(スポットライト)の場合にのみ意味を持ちます。
航空障害灯の明滅間隔は、一般的に20~60回/分です。 まずはFlash frequencyを20前後、Flash durationを0.5~1.5程度で試してみてください。
これらパラメータの詳細については、MSFS SDKドキュメントの LIGHTS のページで読めます。
PC 同じ色、明るさを持ったライトを複数作るときは、コピーして使いましょう。 ライトを選択したうえで[Object]-[Duplicate Objects]を選ぶと、すぐさまコピーが生成されて、それを移動するモードになります。 新しいライトを設置する場所をクリックしてください。
PC スポットライトを設置するときは、画面左のアイコンで"Rotate"モードを選び、ライトコーンの方向を決めます。
新しくライトを設置するたびに、その色や明るさに加えて、MSFSエクスポーター向けのプロパティも設定することを忘れないでください。
ライトを各LODのメッシュにコピー
PC タイル内のすべてのライトの設置が完了したら、その原本を各LODのメッシュの下にコピーします。 すべてのLODにライトがコピーされている必要があります。 さもないと、ゲーム画面上でオブジェクトのLODが切り替わる度に、ライトが点いたり消えたりします。 逆に、遠くから見たときには不要なライトは、低解像度のLODからは削除します。
まずはライトが格納されたコレクションを、各LODのコレクションにコピーします。 ライトの原本を格納したコレクションを選択し、右クリックメニューで"Copy"を選びます。
PC つづいてコピー先のLODのコレクションを選択し、右クリックメニューで"Paste"を選びます。
PC つづいてコピーしたライトのコレクションから、すべてのライトを取り出します。 すべてのライトを選択して、LODのコレクションのルートに移動します。 ライトを複数のコレクションに分類していたときは、それぞれのコレクションからLODのルートに移動します。
PC 空っぽになったライト用のコレクションは、右クリックメニューから"Delete Hierarchy"を選んで、削除してしまいましょう。
PC つぎに、すべてのライトを、LODの中のどれか1つのメッシュの「チャイルド」にします。 すべてのライトを選択して、LODの中のどれかのメッシュに移動します。 ライトをメッシュの中に入れるには[Shift]キーを押しながらドラッグ&ドロップします。
この作業をすべてのLODに対して行います。
MSFSプロジェクトへエクスポート
PC 完成したシーナリーを、MSFSプロジェクトへエクスポートします。 エクスポートの手順については BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方 のページをご覧ください。
ただし、ライトをエクスポートするには、オプションの設定が必要です。 「glTF-Blender-IO-MSFS」エクスポータープラグインの"Settings"画面を開きます。
テクスチャはすでにプロジェクトに存在していると思います。 今回新たに出力する必要はないので、ダミーの出力先フォルダを作り、"Textures"欄に指定します。
また、"Include"-"Data"欄の"Punctual Lights"欄にチェックを入れます。
PC つづいてエクスポータープラグインの"Objects"画面を開きます。 出力先にはプロジェクトの"PackageSources\modelLib"フォルダを指定します。 既存のシーナリーデータを上書きするのが嫌なら、別のフォルダに出力しておいて、後でmodelLibフォルダの下と入れ替えても良いと思います。 出力したい各LODにチェックを入れ、その右にある各LODの番号を設定します。
一方、ライトの原本が格納されているコレクションは、すべてチェックを外して、出力しないようにしておきます。
そして最後に一番下の"Export"ボタンをクリックします。
PC プロジェクトのmodelLibフォルダを見ると、各LODの".bin"ファイルと".gltf"ファイルの時刻が更新されているのが確認できます。 ダミーのテクスチャ出力先フォルダにはテクスチャーが出力されています。 これは削除してかまいません。
また、".gltf"ファイルをテキストエディタで開き、文字列"ASOBO_macro_light"を検索すると、追加したライトのパラメータが反映されているのが確認できます。
PC MSFSを起動して、プロジェクトを ゲーム画面に読み込み 、MSFS SDKでビルドすると完成です。 Project Editorの画面で[Clean All]ボタンをクリックすると、"Packages"フォルダの下にある古いパッケージが削除されます。 つづいて[Build All]ボタンをクリックすると、ビルドが始まります。
なお、Blenderのライトを設置しただけでは、光源そのもの(電球や蛍光灯)はレンダリングされません。 光源を設置した周囲が明るくなるだけです。 光源そのものを見えるようにするには、光源を3Dモデルとして作成し、"発光"マテリアルを設定するなどの作業が必要です。 しかしGoogleMapのシーナリーは、通常上空の高いところから眺めるので、光源そのものが見えなくても十分楽しめます。
PC 完成したシーナリーを ゲーム画面で確認 してみましょう。
画面左のお城(浜松城)は、白色のスポットライトで4方向からライトアップしました。
お城の敷地には、街灯として、黄色い点光源をいくつか配置しました。
画面中央下部の広場には、全体を照らすように白い点光源を1つ、周囲の建物の前にも黄色い点光源を5つ配置しました。
その奥の駐車場の左にある小さな建物(スターバックスコーヒー浜松城公園店)にも点光源を一つ。
さらにその後ろの高層ビル(ホテル)のてっぺん4隅には、赤色点滅灯(航空障害灯)を点滅させました。

ライトオブジェクトの保存される場所


上の手順でシーナリーに追加したライトの情報は、"PackageSources\[シーナリー名]-modelLib"フォルダーの下にある"[タイル名]_LODnn.gltf"ファイルの中に、テキストデータで保存されます。 "ASOBO_macro_light"を検索すると、ライトオブジェクトを見つけることができます。 テキストエディタを使って、ライトオブジェクトのパラメーターを修正することができます。

Blenderで作成したライトオブジェクトをMSFSシーナリーに設置する

Blenderで作成したライトは、建物などのオブジェクトと同じように、部品としてMSFSシーナリーに設置することができます。 MSFS SDKには準備されていない、いろいろな色のライト、点滅するライト、スポットライトなどを部品として作成しておくと便利です。
PC このようなライトを、オブジェクトとして作成しました。 原点近くに直径40cmほどの球を置き、"電球"としました。 そしてそのすぐ上に、Blenderの点光源を設置しています。 点光源の出力は、設置する場所に合わせて使い分けられるよう、30W, 100W, 1000Wの3種類を作りました。
そして球と同じメッシュ内、原点から300mほど下に200x200x400mほどの大きな直方体を置きました。 地表に現れない部分に巨大な直方体を作りこむことで、ある程度遠くからでもゲーム内にライトオブジェクトが表示されるようにしています。
PC 右の図は、ライトを拡大したところです。 "電球"は、Blenderに標準で準備されているメッシュ"UV Sphere"を、Scaleパラメーターで0.2倍に縮めます。 そしてEdit Modeで[Mesh]-[Clean UP]-[Decimate Geometry(形状のポリゴン数削減)]機能で、Ratioに0.1を指定してポリゴンを削減します。 最後に[Mesh]-[Normals]-[Smooth Vectors]機能で、法線を平滑化します。 すると最小限のポリゴン数で"電球"が表現できます。
PC メッシュには、MSFS Material Params欄で、発光色(Emissive Color)を指定し、Day Night Cycleオプションにチェックを入れます。
PC ライトには、MSFS Light Parameters欄で、必要に応じて点滅を指定し、Day/Night Cycleオプションにチェックを入れます。 ただしライトに対するDay/Night Cycleオプションは、うまく動作しないようです。 このオプションを指定しても、日中もライトが点灯してしまいます。
PC このライトオブジェクトを「glTF-Blender-IO-MSFS」エクスポータープラグインを使って部品として出力し、MSFSのシーナリーに設置すれば完了です。 右図のようにいろいろな色のライトを並べると、商店街に活気が満ちます。
エクスポータープラグインの使い方と、オブジェクトをMSFSのシーナリーに設置する方法は、 BlenderとMSFSの間で3Dデータのエクスポート・インポートを行うglTF-Blender-IO-MSFSの使い方 のページをご覧ください。
地表をライトで埋め尽くす
PC このようなオブジェクトを作ってMSFSのシーンに大量に設置すれば、簡単に地表をライトで埋め尽くすことができます。 一つのメッシュの中に、複数の"電球"を手動で配置しています。 なお、このオブジェクトには光源はセットしていません。 光源は、MSFSのライトを使って、広いエリアを淡く照らします。
PC 右図のように、工業地帯にライトをちりばめることができます。
ビルの窓に明かりを灯す
PC 建物の窓に明かりを灯すには、右図のように、窓の部分に平面のメッシュを配置します。 そしてMSFS Material Param欄で、Base Colorに日中の窓の色を、そしてEmissive Colorに、夜の窓の色を設定します。 Day Night Cycleにチェックを入れると、夜には窓に明かりがともります。
PC 右図のように、ビルの夜景がよりリアルになります。

マイクロソフトフライトシミュレーターの楽しみ方

基礎編

応用編

便利なツール

アドオンシーナリーの開発


8K360度 アクションカメラ Insta360 X4 の使い方
話題のミニPCレビュー