2018年7月31日火曜日

X-Planeで飛行時間を短縮するためのマクロを作成しました

以前にも取り上げていますが、X-Planeでは長距離飛行の巡航時間の短縮がやりにくいです。対地速度だけを2~16倍に上げる機能がありますが、あくまで対地速度を上げるだけであって、シミュレーション速度は変わりません。その結果、物理計算やオートパイロットは対地速度に対して相対的に遅くシミュレートされることになり、軌道修正の反応が遅くて、機体が大暴れを起こします。具体的には、ピッチがハンチングを起こしはじめ、次第に増幅し、数千フィート単位で高度が上下動します。放っておくと地上に激突したり宇宙空間に飛び出しそうな勢いです。シミュレーション速度の方も速くすることはできるのですが、CPUのパワーを使うようで、1.2倍程までしか上げることができません。

対地速度を上げる方法で巡航飛行の時間を短縮するには、対地速度を上げた後、ハンチングが大きくなって手が付けられなくなる前に、通常速度に戻してハンチングが収束するのを待ち、また対地速度を上げるということを繰り返す必要があります。短距離ならなんとか使えなくもないですが、長距離だと面倒で付き合っていられません。

もう一つの方法は地図のウィンドウを表示して、自機のマーカーをドラッグして移動させる方法があります。これであれば長距離を瞬間移動できます。しかし、FMSに入力したルートに沿って飛んでいる場合、そのルート上に目算でドラッグしなければなりませんし、マウスでドラッグするということは、どうしても、ある程度はFMSのルートからずれてしまいます。私の場合Pilot2ATCで飛んでいるため、ルートからはずれるとATCから怒られてしまいます。
最大の問題は、地図の縮小レベルに限界があって狭い範囲しか表示できないことです。長い距離を移動しようと思うと、少しずつ刻んで移動していくことになります。地図の下の方に表示された機体を地図の上の方にドラッグしてワープするのですが、その後ドラッグ先周辺の地図をロードするのに時間がかかり、そのロードが終わるまで地図がスクロールせず、次のドラッグができません。ロード時間は海のみのエリアであれば速いのですが、陸が含まれているとトイレに行って戻ってきても終わっていなさそうなほど時間がかかります。一回一回ワープするたびにそれですから、かなり手持ち無沙汰になります。現状は、そのようにして地図上を少しずつワープ移動することしかできません。

どちらの方法にせよ、X-Planeでの移動時間の短縮はストレスです。


どうにかならないものかといろいろ試行錯誤しているのですが、現状としては、FlyWithLuaのマクロを作って手間を軽減しています。

この自作マクロにより、2~512倍速く移動することができます。この倍速移動を開始するとX-Planeをポーズ状態にし、その瞬間の方位、速度、昇降率で移動し続けます。FMSにルートが入力されていても旋回しませんし、オートパイロットに入力されている高度も考慮しません。ただ開始した時の進行方向に高速移動し続けます。
一定の高度を巡航している場合でも、実際は微妙に上昇降下して高度を維持しており、ある瞬間の昇降率で移動しつづけると、ずっと先では高度が大きく変わってしまいます。そのため、開始時の高度を維持する機能はつけました。移動した分だけ時間も経過していることになりますから、その分の時間を加える機能も追加しました。

このマクロで、一定速度の上昇、下降時や、巡航時におけるウェイポイント間の飛行を短縮することができます。
ただし、速く移動しすぎると風景のロードが間に合わなくなりますので、その部分はどうしようもありません。また、移動した分の燃料は消費しません。高速移動中は、地図上での現在地が更新されないため、停止するタイミングが分かりにくいです。
いろいろ欠点は多く、巡航を短縮するための完全な解決はできませんが、省力化はできます。

このマクロを使用したい方がおられましたら、ここからダウンロードしてください。zip圧縮されています。
使うには、FlyWithLuaが必要です。何かのアドオンを使うためにすでにインストールされているかもしれません。

使い方は、FlyWithLuaのScriptフォルダにFastTravel.luaを放り込みます。そして、FastTravelの各機能をジョイスティックのボタンにアサインします。機能は以下の6種類あります。

1.Increase speed…速度を、2倍、4倍、8倍、16倍、32倍、64倍、128倍、256倍、512倍に上げていきます。
2.Increase speed(Maintain altitude)…速度を上げていきます。高度は開始時を維持します。
3.Inclesase speed(Time advance)…速度を上げていきます。その分、時間もすすめます。
4.FastTravel: Inclesase speed(Maintain altitude, Time advance)…速度を上げていきます。開始時の高度を維持し、時間をすすめます。
5.Declease speed…速度を一段階遅くします。
6.Reset speed…速度を1倍速にし、FastTravelを停止します。



実際に使うのは3.Inclesase speed(Time advance)、4.FastTravel: Inclesase speed(Maintain altitude, Time advance)、6.Reset speedの3つだけで十分だと思います。
高速移動中は画面下に、高度等の情報を表示していますので、参考にしてください。
ボタンにアサインするのでVRコントローラーやジョイスティックに設定して、VRでも使うことができます。


本当はこうした実用上必要な機能は標準で入っていてほしい気がします。そういえば、FSXでも8倍速や16倍速でオートパイロットを使うと、機体が暴れていました。フライトシミュレーターには、まじめにシミュレートしなくてもいいので、あくまで時間短縮の機能を用意しておいて欲しいです。
実際に何時間もかかるルートを、本当に何時間もかけて飛ばすのも悪くはありませんが、生きる時間にも限りがありますので、こうした部分こそシミュレーターである利点を活かしてほしいです。