MSFSには,アドオンスクリプトという仕組みがないようです。先日公開されたMSFS向けのFSUIPC7もMSFSの外部プログラムとして動いています。これまでにも着陸速度を測定するプログラムもありましたがこれも外部プログラムです。MSFSをフルスクリーンで使っているとき起動し忘れた外部プログラムは,マルチデスクトップを使って後追いでスタートさせていました。いつも使うアドオンプログラムであればMSFSと一緒にスタートさせたくなります。これを実現する方法があるのでご紹介します。
MSFSに合わせてアドオンプログラムをスタートさせるバッチファイル
MSFSのスタートの仕組みとコマンドライン命令
MSFSには,アドオンスクリプトという仕組みがないようです。
先日公開されたMSFS向けのFSUIPC7についてもMSFSの外部プログラムとして動いています。
これまでにも着陸速度を測定するプログラムもありましたが,これも外部プログラムです。
MSFSをフルスクリーンで使っているとき起動し忘れた外部プログラムはマルチデスクトップを使って後追いでスタートさせていました。
いつも使うアドオンプログラムであれば忘れないようにMSFSと一緒にスタートさせたくなります。
Windows10には”cmd.exe“というコマンド画面があることはご存じのことと思います。
MSFSもこの”cmd.exe”を使ってスタートしています。
“cmd.exe”には,Windows10の祖先であるMS-DOSのころから存在したバッチファイルという仕組みがあります。
MSFSを動画なしでスタートさせる方法は,”cmd.exe”上でMSFSにパラメータを与えてスタートさせるコマンドライン命令です。
これにアドオンプログラムの起動命令を組み合わせてバッチファイルを作れば,スタート時に複数のアドオンプログラムをスタートさせることができます。
複数プログラムの起動手順を組み込んだバッチファイルの作り方
強化されたMSFS起動手順バッチファイルの目的
MSFSの起動と複数プログラムの起動命令をまとめたバッチファイルを作ります。
つぎにこのバッチファイルのショートカットを作り,これに管理者権限を与えてアイコンをダブルクリックすればOKです。
一方で,MSFSを動画なしでスタートさせるとき,“cmd.exe”はメッセージを画面に表示しないためMSFSがスタートしているかどうか不安になることがあります。
これを解決するために,画面にMSFSがスタートした表示を付け加えることにします。
またMSFSがスタートしたことを知らせる大きな画像を表示する方法には,Webスクリプトを使う方法とWindowsのフォトビューワーを使う方法があります。
けれども一番簡単なのは,コマンドプロンプト画面に簡単なメッセージを表示することです。
これらを組み合わせて強化されたMSFSスタートファイルを作りましょう。
基本的なバッチファイルの構造
これは次のような構造になります。
MSFSの動画なし起動コマンド
アドオンプログラムのパラメータ登録
アドオンプログラムのスタートコマンド
告知画像の表示部分(オプション)
バッチファイルの終了
サンプルファイルのダウンロード
私が作成した強化スタートバッチファイルのサンプルは,ここからダウンロードできます。
このファイルはStore版のMSFSにあわせて作成しています。
以下各部分の働きについて説明しますので,読者の皆様が自分の好きなアドオンを組み込んで利用してください。
サンプルファイルを適当な場所で展開し,中に入っている3つのファイルをMSFSをインストールしたフォルダーにコピーしてください。
“MSFSFastStart.bat”を右クリックしてショートカットを作成します。
このショートカットを右クリックしプロパティで,アイコンの設定,詳細で管理者権限の設定を行います。
サンプルの内容は以下の画像のとおりです。
なお行先頭の”::”はコメントの印です。
告知部分
具体的には,”@echo “というコマンドを使います。
冒頭の
<code>
@echo.
@echo Start MSFS
@echo.
@echo Please wait …
@echo.
</code>
が告知部分です。
MSFSの動画なし起動コマンド
<code>
cmd.exe /C start shell:AppsFolder\Microsoft.FlightSimulator_8wekyb3d8bbwe!App -FastLaunch
</code>
これは,私の前の記事でご紹介したとおりで,これをコマンドラインに記述したものです。
アドオンプログラムのパラメータ登録
<code>
:: Set Lounch addon
SET TARGET_EXE1=C:\Tools\Gees\Gees.exe
::SET TARGET_EXE2=
::SET TARGET_EXE3=
</code>
バッチファイル内で複数プログラムを順次動かすには,プログラムをおいている場所をパラメータで記述する必要があります。
例として着陸速度測定のアドオンであるGees.exeを記述しています。
今後,FSUIPC7.exeとかを記述することになるのでしょうか。
追加は番号を追加していけば,多くのプログラムを登録できます。
アドオンプログラムのスタートコマンド
<code>
:: Splash Screen & Addon process Start
START “” “%TARGET_EXE1%”
::START “” “%TARGET_EXE2%”
::START “” “%TARGET_EXE3%”
</code>
これは,こう記述するのだという理解で問題ありません。
告知画像の表示部分(オプション)
<code>
:: Start Splash Screen
rundll32.exe “c:\Program Files\Windows Photo Viewer\PhotoViewer.dll”,ImageView_Fullscreen G:\MSFS\mysplashscreen.jpg
</code>
告知画像はバッチファイルが最後の部分まで実行できたことを確認表示するもので,単なるオプションです。
ここでは,Windowsに付属しているフォトビューワーを利用して表示しています。
MSFSのフォルダー内に”mysplashscreen.jpg“というファイルをおいておけば,フォトビューワーが表示してくれます。
MSFSがスタートしたことが判れば,フォトビューワーは終了してかまいません。
バッチファイルの終了
<code>
exit
:: End Of Batch
</code>
MSFSを終了したとき,”exit”コマンドで,このバッチファイルのプロセスは完全に終了します。
ただし,スタートさせたアドオンプログラムの終了コマンドは記述していませんので,個別に終了処理をしてください。
告知表示にWebスクリプトを使う方法
これはMSFSのフォーラムにおいて,”A simple Splash Screen after starting MSFS“という記事で紹介されています。
このバッチファイルを使えば,スマートに告知画面を表示できます。
バッチファイル”MSFS2020Splash.bat”はここからダウンロードできます。
“MSFS2020Splash.bat”は,ダウンロードするときWindows10が警告をしますので,保存を選択してダウンロードします。
ダウンロードしたものは,シンプルにスプラッシュスクリーンを表示するためのバッチファイルです。
このファイルをエディターで開きます。
動画を表示しないようにするコマンドラインは,コメントという形で保存されていますので,デフォルトのコマンドラインを”::”でコメントに変更し動画を表示しないコマンドラインに変更します。
このバッチファイルには,Steam版への対応も記述されています。
私のところでは検証できないので,後述のサンプルではそのままにしています。
スプラッシュスクリーンのカスタマイズ
Webスクリプトを使うとき使う画像は,Web上にないと表示できません。
つまり自分の好きな画像を使うには,GooglDriveやOneDriveなどのCloudDrive上にファイルを転送し,そのアドレスを参照しなければ変更できません。
さらにこのWebスクリプトは,Web上にあるモジュールをその都度呼び出して動く仕組みになっています。
スプラッシュ画面の表示はスマートで自動で消えるのですが,処理が冗長になっています。
このスクリプトを基に,先に記述した動画なしのMSFSスタートと複数プログラムのスタートを組み込んだバッチファイルのサンプルをつくりました。
サンプルは,ここからダウンロードできます。
使い方は,先のバッチファイルと同様です。
2つのバッチファイルのうちで気に入った方を利用してください。
まとめ
簡単なバッチファイルですが,30年前の知識を総動員し,Windows10のバッチファイルの仕組みを調べながら作成しました。
うまく動くようになったので,自分としては満足しています。
Enjoy Flight!