Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

全包囲、全対応の多機能コントローラ、しかし色々と難あり - COWBOX S900

f:id:espio999:20211212211032j:plain
先日の投稿でXinput、DirectInputについて触れた*1。このように操作系APIだけでなく、接続形態からキー配置まで、何かと排他関係にある要素がPC用ゲーム・コントローラには存在している。

API Xinput or DirectInput
接続 USB or Bluetooth
キー配置 Xbox系:左右アナログスティック位置がズレている
Playstation系:左右アナログスティック位置が揃っている

これらすべての違いを包含し、1台で全対応できる。なおかつTURBO(連射)、アナログ感度調整、マクロ機能まで搭載している、いわゆる「全部入り」のコントローラが存在する。COWBOX S900だ。

スペックと機能だけを見ると魅力的ではあるのだが、コントローラの本質的なところで問題を感じるコントローラでもある。

今回の投稿では、このコントローラを紹介する。

キー配置の切り替え

この投稿冒頭の画像が示すように、S900の左右外装はマグネットで固定され、簡単に取り外すことができる。左外装を外したところに、次の2つが装着されている。

  • T字プレート
  • 方向キーと左アナログ・スティックの統合ユニット

T字プレートは、言うなればマイナス・ドライバーだ。統合ユニットを固定しているマイナス・レバーの回転に用いる。T字プレートでマイナス・レバーを回すと、統合ユニットを取り外すことができる。

f:id:espio999:20211212211149j:plain

統合ユニットは差し込み式だ。これを差し替えることで十字キー、左アナログ・スティックの配置を入れ替えることができる。
統合ユニット背面を見ると、スティックを固定している折爪が見える。分解していないが、もしハンダ付けされていなければ、故障時の交換にも容易に対応できそうだ。

USB接続

USB接続時には、コントローラのキー操作によってXinput、DirectInputの操作系を切り替えることができる。Windowsも切替に応じて適用するドライバを切り替えるため、USBコネクタを抜き差しして、コントローラを再認識させる必要はない。

Xinputでは「Xbox 360 Controller」として認識される。DirectInputの場合は「S900 Gamepad」だ。

USB接続時のデバイス認識
f:id:espio999:20211212211326p:plain
f:id:espio999:20211212211337p:plain

Bluetooth接続

一方、Bluetooth接続では操作系を切り替えることはできない。操作系毎にBluetoothペアリングすることで、それぞれのコントローラとして機能する。

HOMEボタン長押しでペアリングすると、DirectInputでペアリングできる。この時、コントローラは「Pro Controller」として認識される。キャリブレーションでは「Wireless Gamepad」と表示される。

Xinputでペアリングする場合は、HOMEボタン+Xボタンを長押しする。コントローラは「Xbox Wireless Controller」として認識される。キャリブレーションでは、「Bluetooth XIPNPUT compatible」と表示される。

Bluetooth接続時のデバイス認識
f:id:espio999:20211212211439p:plain
f:id:espio999:20211212211455p:plain

操作系の違い

このコントローラの要注意点の一つだ。それぞれの接続形態によって、認識されているボタン数や、アナログ・スティックの操作軸が異なっている。

USB Bluetooth
Xinput f:id:espio999:20211212211532p:plain f:id:espio999:20211212211601p:plain
DirectInput f:id:espio999:20211212211625p:plain f:id:espio999:20211212211642p:plain

Xinput系では、操作軸は共通だが、認識されているボタン数が異なり、DirectInput系では、ボタン数は共通だが、操作軸が異なっているのが分かる。

TURBO(連射)機能

目的のボタン+Tボタンの同時押しで連射機能を割り当てることができる。注意したいのが、そのモードだ。単純なon/offではなく、次の3モードを切り替える。

  1. on
  2. ホールド
  3. off

ホールドは、ボタンを押すことなく押下状態を維持する、いわゆる「打ちっぱなし」機能だ。このモードが存在するため、連射機能をoffにしようと思えば、操作を2回繰り返す必要がある。

各種スイッチとスティック(トリガー)感度調整

コントローラ背面に3つのスイッチを搭載している。

LRトリガーの下に位置する2つのスイッチで、トリガーの押し込み深度を切り替えるため。ここが2つ目の要注意点だ。2スイッチのon/off向きが揃っておらず、左右対称になっていることだ。つまりトリガーの深さを揃える前提では、

トリガー深度浅め 両スイッチがコントローラ外側 つまりスイッチを離す
トリガー深度深め 両スイッチがコントローラ内側 つまりスイッチを寄せる

これに気付かないまま操作すると、トリガーの感度、精度が左右で異なることになる。

またコントローラ背面に配置されているN2ボタンを押しながら右アナログ・スティックを操作すると、感度が緩やかになる。つまり微調整しやすくなる。しかし、左スティックには同様の機能が存在しない。それは、次のマクロ機能と関係している。

3つ目のスイッチはプログラミング・スイッチとして機能している。MN1、N2にマクロを割り当てることができる。M2が対象外なのは、右スティックの感度調整のためだ。ここも多機能が仇になることがある要注意点だ。