Steam Controller

Steam Controller

評價次數不足
[WIP]PC ゲームのコントローラー設定は Steam におまかせ
由 bravehearts623 發表
このガイドでは Steam コントローラの動作設定を請け負うミドルウェア的存在、Configrator でできることを解説していきます。
PS4 や Xbox コントローラーにおけるコンフィグサポートについてもカバー。
書きかけのまま限定公開にしていましたが、書きかけ項目は作業ファイルに待避させて公開することにしました。
   
獎勵
加入最愛
已加入最愛
移除最愛
Steam Input API
2015年の Steam コントローラの発売当時からしばらくのあいだ、Steam でコントローラーと言えば
Steam コントローラを指す言葉でした。[要出典] それから約1年後の2016年11月、Stam 上で 様々なコントローラーを使えるようにする仕組み、Steam Controller Configuration Support その第一弾として DS4 / DUALSHOCK4 のサポートが発表されます。コントローラー機能は日々改良され、2017年の現在では Xbox コントローラーやその他の XInput コントローラーのほとんどを使用できるようになりました。また、Steam Controller API として開発されてきたこれらの機能は Steam Input API
と生まれ変わり現在に至ります。

Steam コントローラーの動作は、
  1. スタイルを被せたボタンを押すと、
  2. 設定したキーが、
  3. アクティベーターによって微調整されて
  4. 信号出力
という流れが基本です。

入力スタイルは2017年8月現在、全部で11種類あります。
次のセクションで各入力スタイルについて簡単に解説していきます。
入力スタイル
十字キー スティック、タッチパッド、フェイスボタン、ジャイロ
マウス タッチパッド、ジャイロ
マウスジョイスティック タッチパッド、ジャイロ
ジョイスティック移動 スティック、タッチパッド、フェイスボタン、ジャイロ
ジョイスティックカメラ タッチパッド、ジャイロ
ジョイスティックマウス スティック
スクロールホイール スティック、タッチパッド、フェイスボタン
マウスリージョン スティック、タッチパッド、フェイスボタン、ジャイロ
タッチメニュー タッチパッド
パイ型メニュー スティック、タッチパッド、フェイスボタン
シングルボタン タッチパッド
コントローラ HUD
スチコンは複雑な設定が可能ですが、ときには思った通りに動かないこともあります。
そんなときは割り当てたアクションが出力されているか、コントローラ HUD で見てみましょう。

HUD のオンオフはオーバーレイの「コントローラ HUD の切り替え」から行います。


トラックパッドでタッチしている場所、入力したキー、ジャイロによる仮想スティックなどの入力が可視化されます。
コントローラーコンフィグレーションサポート / CCS
CCSとはSteamコントローラ以外のゲームパッドもSteamで使えるようにする仕組みです。
2017年12月現在で151種類のコントローラーを Steam で使うことができます。。
一覧はこちら
アクティベーター
単純なコントローラではボタンが押下されたときそのボタンの信号が発信されます。
アクティベーターはボタンと信号発火の間に立ち、様々な条件によって信号のパターンを制御することが出来ます。

シングルプレスにはインターセプト設定があります。オンにするとシングルが起動する前に他のアクティベーターが割り込むことができます。オフは割り込みを防ぎます。初期値はオンです。
オンにしておくとシングルプレスが起動するには常に他のプレスの判定終了を待たなければいけませんが、オフにしておけば判定は同時に始まるのでシングルを使いたいときにはすぐボタンを話すだけです。
アクションセット
※スチコングループのお知らせからほぼベタ移植。あとで整理します。

Photoshopのレイヤー機能と似たような概念でアクションセットを多層構造にすることができ、これまで設定できなかった複数ボタンの同時押しによるアクション実行なども行えるようになります。

使い方
  1. コンフィグレーターUIのアクションセットボタンの下にレイヤー管理ボタンが追加されています。まずは add action layer を押してレイヤーを追加。名前を決めます。レイヤーの名前を変えたり削除したりする方法はいままでのセットと同じです。
  2. 追加したレイヤーではすべてのボタンが暗転されていますが、元のセットからアクションが変更されていないということです。従来のアクションセットがレイヤーの最下層で、そこに新しい透明レイヤーを重ねて、変更箇所だけ明るく表示されていきます。これはアクションのオプションやアクティベーターも同じです。可能な限り元のセットの設定がレイヤーの初期値になっています。
  3. セット切り替えしたい状況をイメージしてそれに合うセットを作ります。
  4. http://steamcommunity.com/sharedfiles/filedetails/?id=1135533949 元のアクションセットのアクションバインド画面でセット切り替えアクション(ブラウザの更新ボタンに似てる)を選択。するとドロップダウンリストで[アクションセット切り替え, Hold Action Layer, Apply Action Layer, Remove Action Layer]が出てきます。hold と apply はどちらもレイヤー有効化ボタンですが、要するにホールドまたはスイッチです。前者はボタンを押している間、後者はボタンを一度押すと離しても有効になったままです(有効になるタイミングは離した直後からのようです)。Remove は apply で有効になったレイヤーを無効にするために使います。これらを決めた後、続けて有効無効にするレイヤーを選択するダイアログが出てきますので選択します。
  5. ゲーム内で使ってみましょう。設定したボタンを押すことで、一時的に設定を切り替えることができます。

正式版実装は来月以降?
今後しばらくのベータで調整が行われ、10月か11月の正式アップデートで実装されるかと思います。ベータ登録していない方はそれまでお待ちください。開発キットにもレイヤーが提供される予定ので、Darksoul3やGTAV、L4D2などの開発者公式コントローラー設定でもレイヤーが使われるようになるかもしれません。

レイヤーで出来るようになること
これまでは、一部のアクションだけ変えたセットを作る場合コピーして作っていましたが、基本の設定を変えようとするとコピーしたセットもすべて手作業で変える必要がありました。それがレイヤーを使うことによって1カ所の変更で済むようになったので管理しやすくなりました。
セットを作るまでもない場合はモードシフトでアクションを変更していましたが、レイヤーでも同じような動きができます。
また、一度に使えるモードシフト有効化ボタンはひとつだけでしたが、これが2つの有効化ボタンによるモードシフトもできるようになります。例えば、Layer 2 の X に Screenshot を設定しておいてにして Hold Layer 1 するアクションをRTに設定、 Hold Layer 2 するアクションを Layer 1 のLTに設定すると、RTLT 同時押ししたときだけ X でスクリーンショット撮影ができます。この例はあまり役に立たないかもしれませんが(ガイドボタンコード設定でできますし)、複雑なアクションゲームなどには3つ以上のボタンによる特殊なアクションがあったはずです。それが Steam コントローラで再現できるようになります。
設定を公開しよう!
練り上げたコントローラー設定が出来たらコミュニティに公開してみましょう。
コンフィギュレーターで「設定をエクスポート」を選択するとエクスポート画面に写ります。
初めてエクスポートする場合は「個人設定」タブに「Save new personal binding」「Save new local-only binding」の二つが並んでいます。personal binding は公開する方、local-only は非公開で保存されます。いったん保存して少し変更したバージョンを作りたいときも local-only としてエクスポートしておくとやり直しが簡単になりますし、データが破損したときのためのバックアップとしても使えます。
また、すでに自分が公開した設定がある場合、ここか「コミュニティ」タブに表示され、上書き保存することもできます。

時期バージョン(2017年12月?)ではフレンドタブが追加され、自分の設定をフレンドに紹介しやすくなります。
参考
スチームコントローラアップデート 2015年12月(Steamストアページ)

スチームコントローラアップデート 2016年11月(Steamストアページ)

元々この記事を書き始めたのは、この2つの記事が見つけにくいところにあるからまとめて目に付くところに置いておきたいからでした。コントローラーの機能がどういったシーンで使えるのか紹介されています。
キャラクターを操作しながらスクリーンショットを保存する
(このセクションはWindows10のDVRやNvidia Shareを使う方には無縁の話かもしれません)

あるゲームの初回プレイのとき驚いたり感動したり、偶然にもスーパープレイが出来たりして「今のシーン、スクショ(スクリーンショット)保存しとこう」と思ったとしましょう。そのときあなあはどのキーを押しますか?PrintScreen? Shift + F12? それとも Alt + Application とか?どのキーもキーボードのホームポジションからはちょっと遠いですよね。WASD周辺やマウスのサイドキーなどの一等地にはなかなかスクショ保存キーを配置できませんが、コントローラーなら配置する余裕があります。それも操作中に指を置いているボタンに、です。

例えば、方向キーと4ボタンとLRとスタートセレクトを使うアクションゲームがあったとして、LRトリガーをまったく使わないなら、コンフィグレーターからトリガーを選択してそこに「スクリーンショット保存」アクションをバインドしておきましょう。片方だと暴発しそうと思うなら、Rトリガーのソフトプル/フルプルには何も割り当てず、右上の「モードシフト」設定からLトリガーをモードシフトボタンにしてスクショ保存アクションをバインドすれば、いいなと思ったシーンで左右のトリガーを同時押しでSteamのスクリーンショットフォルダーに保存されます。
ゲーム独自のスクリーンショット機能がある場合はバインド画面でYボタンを押してマルチバインドを有効に、「スクリーンショット保存」とゲームで定義されている撮影キーの2つをひとつのトリガーに割り当てることもできます。(私はFF14でこのマルチバインドを使っています。ファイル生成を監視するウォッチドッグと組み合わせると捗りますよ。)