Bluetooth接続によるXbox Series X/SコントローラーでFF14を快適にプレイする方法

Play FF14 with Xbox Series X/S Controller via Bluetooth
マイクロソフトが販売しているXbox Series X/SコントローラーはWindows 10の標準コントローラーといっても差支えない製品です。しかしながら、現時点ではFinal Fantasy XIVにおいてはBluetooth接続でゲームをプレイしようとすると、常にカメラ視点が動き続ける(いわゆるドリフト現象)、XHBが正常に動作しない、といった問題が生じます。

ほかのゲームではこの問題が生じているという報告はなく、また、USBケーブルによる有線接続や、別売りのXboxワイヤレスアダプター for Windows 10による無線接続では問題が発生しないため、私はFF14側が「Bluetooth LE XINPUT compatible input device」をXboxコントローラーではなく、一般的なゲームパッドとして処理してしまっているため、アナログ処理に齟齬が生じていると考えています。

つまるところ、これはFF14のバグであるともいえ、完全に解決するにはFF14のプログラム修正・アップデートを待たなくてはいけません。それまでは、有志の開発したユーティリティーアプリを用いることで、基本的な操作には支障のないレベルにまで問題を低減することができます。

「Xbox 360 Controller Emulator」は、その名の通り、一般的なゲームコントローラーをXbox360コントローラーのようにふるまわせることができるツールです。Xbox360ベースなので、共有ボタンなどの最新のXboxコントローラーが持つ機能をすべて使えるわけではありませんが、アナログスティックやボタンなどのゲームプレイに欠かせない操作は機能するので、日常的な使用では何ら問題はありません。

プロジェクトのサイトよりアプリのアーカイブ(トップ画面上部に表示されている「Ver 4.x For All Games」)をダウンロードしたら、アーカイブファイル内から「x360ce.exe」を取り出して、適当なフォルダー内に保存します。 続いてデバイスドライバーをインストールします。x360.exeのメインウィンドウタブ一番右の「issue」リスト右端にある「Install」からか、「ViGEmBus」をダウンロード・インストールしてください。ドライバーをアンインストールしたい場合は、デバイスマネージャーから「Nefarius Virtual Gamepad Emulation Bus」を削除するか、x360ceの「Options→Virtual Device→ViGEmBus」の「Uninstall」ボタンを押します。
「Controller 1」タブに移動したら、ウィンドウ右にある「Add」ボタンを押し、一覧からBluetoothペアリング済みのXboxコントローラー(Bluetooth LE XINPUT互換入力デバイスと表示)を選びましょう。
スティック、トリガーとボタンの割り当てを行います。「Remap All」ボタンを押して、画面に表示されている緑色の個所に対応するコントローラーのボタンを押していきます。スティックの中央が緑色のときは、そのスティックを押し込みます。

あるいは以下のコードをクリップボードにコピーして「Paste」ボタンを押します。
pad.xml
<PadSetting>
  <PadSettingChecksum>c47f3eb9-fba3-4dc3-2700-767822476df4</PadSettingChecksum>
  <ButtonA>1</ButtonA>
  <ButtonB>2</ButtonB>
  <ButtonBack>7</ButtonBack>
  <ButtonStart>8</ButtonStart>
  <ButtonX>3</ButtonX>
  <ButtonY>4</ButtonY>
  <DPad>p1</DPad>
  <ForceEnable>1</ForceEnable>
  <GamePadType>1</GamePadType>
  <LeftMotorPeriod>60</LeftMotorPeriod>
  <LeftShoulder>5</LeftShoulder>
  <LeftThumbAxisX>a1</LeftThumbAxisX>
  <LeftThumbAxisY>a-2</LeftThumbAxisY>
  <LeftThumbButton>9</LeftThumbButton>
  <LeftTrigger>x3</LeftTrigger>
  <RightMotorPeriod>120</RightMotorPeriod>
  <RightShoulder>6</RightShoulder>
  <RightThumbAxisX>a4</RightThumbAxisX>
  <RightThumbAxisY>a-5</RightThumbAxisY>
  <RightThumbButton>10</RightThumbButton>
  <RightTrigger>x-3</RightTrigger>
  <ButtonADeadZone>8192</ButtonADeadZone>
  <ButtonBDeadZone>8192</ButtonBDeadZone>
  <ButtonBackDeadZone>8192</ButtonBackDeadZone>
  <ButtonStartDeadZone>8192</ButtonStartDeadZone>
  <ButtonXDeadZone>8192</ButtonXDeadZone>
  <ButtonYDeadZone>8192</ButtonYDeadZone>
  <LeftThumbButtonDeadZone>8192</LeftThumbButtonDeadZone>
  <RightThumbButtonDeadZone>8192</RightThumbButtonDeadZone>
  <LeftShoulderDeadZone>8192</LeftShoulderDeadZone>
  <RightShoulderDeadZone>8192</RightShoulderDeadZone>
  <DPadDownDeadZone>8192</DPadDownDeadZone>
  <DPadLeftDeadZone>8192</DPadLeftDeadZone>
  <DPadRightDeadZone>8192</DPadRightDeadZone>
  <DPadUpDeadZone>8192</DPadUpDeadZone>
</PadSetting>
「Force Feedback」の「Force Feedback - Enable」にチェックを入れるとコントローラーの振動が有効になります。
公式ドキュメントによると、「Games」リストにFF14のゲーム(ffxiv_dx11.exe)を登録し、「Hook Mask」の「COM」「DI」「PIDVID」にチェックを入れると互換性が向上するそうです。
設定が完了したら、「Controller 1」にもどり「Enable 1 Mapped Device」にチェックを入れると、ソフトウェアドライバーが稼働します。ウィンドウを閉じるとドライバーも止まってしまうので、ゲーム中はこのウィンドウは最小化してタスクトレイに収納しておきましょう。
エミュレーターが有効であるうちは、デバイスマネージャーに「XBOX 360 Controllers For Windows」が表示されています。
ゲームのタイトル画面のCONFIGを開き、「ゲームパッド全般設定」の「使用するデバイス」リストから「Controller (XBOX 360 Form Windows)」を選択し、「適用」ボタンを押して、ゲームパッドの入力をテストしてみましょう。
2021/06/01