MobiFlight でフライトシミュレーター(MSFS2020)用コントロールパネル3号機の制作をしていますが、いざMobiFlight の設定をしようと思ったら、以前設定してから久しぶりなので忘れてるというのと、MobiFlight のバージョンアップがあって画面構成が変わったので、設定方法を確認するまで時間がかかってしまいました。
特にLCDの画面の切り替えに変数を使っていて複雑なので、ここに忘備録としてここに記しておきたいと思います。
まず、ツマミ(Encoder)を回すと単純にカウントアップ、カウントダウンする変数 PageNo を下記のように Input config に Encoder の Input 設定を追加します。
この PageNo はツマミを回していくと、どんどん値が大きくなって、100でも200 (逆に回していくと -100 でも -200 にでも)なってしまう変数です。
これを画面の番号(5画面なら 1~5)に変換する必要があります。
この設定は、Output config の方に、PageIndex として設定します。
下記のように Sim Variable タブの Variable Type で MobiFlight Variable を選択すると Output config のリストに追加して Descriptionに設定した PageIndex が 変数名となる変数が設定できます。
で、ここが分かりずらいところですが、上記の Variable Settings で指定するのは、この設定画面で取り扱いする変数の元となる変数($ に入る値)を指定します。
ここでは、 PageNo を元にして値を設定するので、PageNo を指定します。
やりたいことは、この PageNo を 1~5 のサイクリックするということなので、Modyfy タブで Modifier に下記の様に設定します。
先ほど 変数の元($)になる値に PageNo を指定したので、まず、 Add Modifier ボタンをクリックして、 Transfom を選択し、IEEERemainder($,5)+1 と設定します。
IEEERemainder($,5) は $(= PageeNo)を5で割った余りを返す関数なので、0~4 になります。これに 1 を加えて、1 ~ 5 になります。
もし、画面を 6 つにしたい場合は、IEEERemainder($,5) を IEEERemainder($,6) にすればよいことになります。
と、説明しましたが、上記は PageNo が+の値の場合です。
ツマミをマイナス側に回していくと、上記の値は -4 ~ 0 になりますので、これを 1~5にするために、Add Modifier ボタンをクリックして、 Compare を選択し、
If current Value < 1 then $+5 else $
と設定します。
これで、Output config のリストの Descriptionに設定した PageIndex に 1~ 5 の値が設定されます。
次に、LCDの画面を切り替える設定をします。
Output configs に LCD 1 ~ LCD 5 を追加し、それらの設定がそれぞれ PageIndex の有効になる設定をします。
Output config Wizerd の Precondition で 下記の様に設定します。(最後に指定している数字を 1 ~ 5 で設定)
これでツマミを回すことで LCDの画面が切り替わるようになります。
※ LCDの表示は2つ以上設定しておかないと切替が確認できないので注意(一度表示すると消えない)
以上、忘備録。