2018年3月7日水曜日

vJoy+UCRでフライトシミュレーターのジョイスティック入力を柔軟にカスタマイズ

X-Planeを使うにあたり、私は、THRUSTMASTER製のT-Flight Hotas Xというジョイスティックを使っています。手ごろな価格で、コンパクトサイズであり、私のようなライトなフライトシミュレーターユーザーには悪くない製品ですが、X-Planeを使うためには少々悩みがあります。

まず、スロットルレバーにセンターがあります。スロットルレバーを動かすと、中間でカクッと抵抗のある部分があります。スロットルをちょうど中間で止められるようになっています。これは、前進と後進ができる宇宙船等を操縦するようなゲームを想定して、スロットルを前後方向に分けて操作できるようになっているためです。しかし、航空機の操縦であるX-Planeにおいてはこの機構は邪魔です。スロットルの中間部分にひっかかりがあると、スムーズな操作を阻害します。実際のところ、気にしなければそれほど大きな問題にはならないのですが、邪魔ではあります。
そうであれば、スロットルレバーの上半分をスロットル、下半分をリバースとして割り当てられるようなことができればいいのですが、X-Planeではそのように設定することはできません。

もう一つ。このジョイスティックのアナログ入力は、スティックによるエルロンとエレベーター、スティックのひねりによるラダー、それからスロットルレバーの4系統の他に、もう一つ、スロットルレバーの後ろにアナログ入力できるレバーというかボタンのようなものが付いています。スロットルレバーを握る左手の人差し指から小指までがあたる部分にあって、シーソー式に操作します。このシーソー式ボタンはスプリングでセンターに戻るため左右に分かれた操作となります。例えばラダーとして割り当てることができます。
ラダーに関してはスティックのひねりでできるため、せっかくならこのシーソー式ボタンは他の用途に使いたいです。X-Planeでは、アナログ入力をコマンド入力に置き換えられる設定があります。そこでシーソー式ボタンの右半分にブレーキを設定してみました。少し右に押すと普通のブレーキ力、いっぱいまで押すと最大のブレーキ力がかかるようにX-Plane上で設定できるため、たった2段階ではありますが、アナログチックにブレーキ操作できるようになります。しかしながら、タキシング中に普通のブレーキ力でブレーキをかけただけでも、強いブレーキ力になって、機体が前のめりでカックン、カックンとなります。
本来であればX-Planeにはアナログのトーブレーキがあるのですが、左足、右足に分かれた入力となっているため、一系統のアナログ入力に左右のどちらかのブレーキしか割り当てできません。X-Planeに左右同時トーブレーキの設定ができればいいのですが、それがないのです。

スロットルレバーの上半分と下半分を別々に割り当てる方法と、シーソー式ボタンによる左右同時トーブレーキ。この二つの問題を解決する方法を探していたところ、外部のソフトウェアを使うことでどうにかなりました。

まず、vJoyという仮想ジョイスティックソフトウェアを使います。これは、フライトシミュレーター用というわけではなく一般的に使われているもので、ジョイスティックを必要とするゲームのために、他のなんらかの入力(キーボードやマウス入力等)をジョイスティック入力に変換させることを想定したものです。そのような用途を求めるソフトウェア開発者向けに提供されています。Windowsのデバイスドライバとして動作し、Windows上で仮想ジョイスティックとして振舞います。しかし、一般ユーザーにとって、これ単体では意味を成しません。この仮想ジョイスティックを活用したアプリケーションソフトウェアを使います。

その一つが、ジョイスティック入力を変換できるUniversal Control Remapper(UCR)というソフトウェアです。例えば、スロットルスティックの上半部の入力を、仮想ジョイスティックの特定の軸出力の全域に割り当てるといったことや、二つのアナログ入力をマージして一つの軸出力に変換するといったことができます。マージするというのは、例えば、自動車ゲーム用のアクセルとブレーキの2系統のペダル入力を足して、航空機ゲームでラダーとして流用するということが考えられます。実際に試したわけではないので、その場合の操作感はどうか分かりませんが。

vJoy+UCRの組み合わせで、スロットルレバーの上半分をスロットルとし、下半分をリバーススラストとして割り当てることや、シーソー式ボタンの右半分をトーブレーキの左右両方に割り当てることが可能になります。

vJoyは以下から入手します。
http://vjoystick.sourceforge.net/site/index.php/download-a-install/download

UCRは以下から入手します。
https://autohotkey.com/boards/viewtopic.php?t=12249

vJoyをインストールした後、UCRをインストールしてください。

vJoyとUCRは、全面的に英語のソフトウェアですので、英語が理解できないと分かりにくいかもしれません。以下に、基本的な使い方を説明します。
1.UCRを起動
UCR.exeを起動します。

2.プロファイルを作成
UCRの右側にあるAddボタンをクリックしてツリーにプロファイルを追加します。
例えばX-Plane用として「X-Plane」という名前でプロファイルを作っておくと分かりやすいと思います。

3.プロファイルにプラグインを追加
作成したプロファイルにプラグインを追加していきます。プラグインというのは、変換を行う単位です。ひとつのプロファイルに複数のプラグインを作成できます。
たとえばAxisSplitというプラグインは軸入力の下側と上側を半分に分けて、上側、下側それぞれを別の軸出力に分けることができます。
上部にあるPlugin Selectionコンボボックスから目的のプラグインを選択してその横のAddをクリックすると、プラグイン名の入力を求めてきますので、適当な名前にして追加します。すると、青色のタイトルバーを持つプラグイン設定項目がウィンドウ内に追加されます。
そこでInput Axisとある部分が、入力側の軸で、Output側がvJoyへの出力となります。入力側のコンボボックスから、Stick番号を選び、さらにAxisを選んで、割り当てるジョイスティックとその軸を選択します。といっても、ジョイスティックの特定の軸が何番のStick番号でどのAxisか分かりませんから、見当をつけて選ぶ必要があります。右横にあるInput Previewで、選んだ軸の入力状況を見ることができますから、ジョイスティックの割り当てたい軸をガチャガチャ動かしながら、反応するものを探すことになると思います。Output側はvJoyのどの軸に出力するかを選ぶことになります。このようにして軸変換の設定であるプラグインを必要なだけ追加していきます。
設定が終われば、最後に一番下のSave Settingsボタンをクリックして保存しておきます。

4.X-Planeで設定
X-Planeではジョイスティックの設定画面でvJoyからの入力を設定します。
vJoyは普通のジョイスティックとして認識されていますので、物理的なジョイスティックと同じように設定することができます。

vJoy+UCRを使うことで、私の操作環境は大きく改善されました。しかし、実は完璧ではなく、vJoyからの入力が確実にX-Planeに入力されない現象があります。特にジョイスティックを素早く操作した際に入力位置が反映されないことがあります。私が主にやっている大型旅客機の操縦では、ゆっくりとした操作しかしないので大きな問題ではありませんが、たまにうまく動作しないことがあります。

vJoyとUCRは汎用のソフトウェアですので、X-Planeに限らず、FSXやその他の用途にも有効です。

0 件のコメント: