OBS でコントローラーオーバーレイが動かない? 本当に効く対処法
ゲームパッドのオーバーレイが固まる、真っ白になる、別のコントローラーを追ってしまう。ブラウザソースのオーバーレイが壊れる理由と、ボタンを 1 回押すことから重要な OBS の更新まで、ケースごとの直し方をまとめます。
リンクとして OBS に追加するコントローラーオーバーレイは、gamepad.lol も GamePad Viewer も含めて、ほとんどが Web ページです。OBS はそれを内蔵の Chromium で描画し、そのブラウザは Chrome と同じ Gamepad API でコントローラーを読み取ります。オーバーレイが動かないとき、原因はたいていブラウザ側の数個のルールのどれかです。上から順に確認してください。多くの環境は最初の 2 つで解決します。
1. OBS がオーバーレイを読み込んだあとにボタンを押す
ブラウザは、いずれかのボタンが押されるまで、コントローラーの存在を Web ページに知らせません。これはプライバシーのためのルールで、これがなければどのサイトも PC につながっている機器を一覧できてしまいます。OBS は起動時、ソースの追加時、そしてソースが更新されるたびにオーバーレイのページを読み込み、そのたびにページは何も見えない状態から始まります。
いずれかのボタンを 1 回押せば、オーバーレイがコントローラーを認識します。対話ウィンドウを開いたり、先にソースの中をクリックしたりする必要はありません。
2. OBS がアクティブなときだけ動く
OBS の中をクリックしている間は動くのに、ゲームに切り替えた瞬間に固まる場合は、OBS を更新してください。
これは Windows 版 OBS 31.0.0 と 31.0.1 のリグレッションです。これらのバージョンはブラウザソースを新しい Chromium に切り替えましたが、Chromium はバージョン 117 以降、Windows では Windows.Gaming.Input を使ってコントローラーを読み取ります。この API はフォーカスのあるアプリにしか入力を渡しません。OBS 31.0.2 でブラウザソースについてはこの経路が無効化され、バックグラウンドでもコントローラーを読めるようになりました。OBS のヘルプメニューから「更新を確認」を選んでください。
通常の Chrome ウィンドウでオーバーレイを開いてそのウィンドウをキャプチャする方法が使えないのも同じ理由です。Chrome は前面から外れた時点でコントローラーの入力を受け取らなくなります。新しい Chromium を使う他の配信アプリも同じ挙動になることがあり、これを変えられるのはその開発元だけです。
3. コントローラーを再接続したらソースを更新する
Bluetooth の途切れ、コントローラーのスリープ、うっかり抜けたケーブルなどでコントローラーが切断されると、オーバーレイが古い接続をつかんだままになることがあります。ソースをダブルクリックしてプロパティを開き、現在のページのキャッシュを更新 をクリックしてから、コントローラーのボタンを押してください。
プロパティを開いたついでに 表示されていないときにソースをシャットダウン も確認しましょう。これが有効だと、シーンを切り替えるたびに OBS がページを破棄し、戻ってきたページは何も見えない状態になるため、シーンを切り替えるたびにボタンを押す必要が出てきます。入力オーバーレイでは無効のままにしてください。
4. 違うコントローラーが表示される、または入力が反映されない
gamepad.lol はブラウザが最初に列挙したコントローラーを追います。プレイヤー番号を選べるオーバーレイも、同じ一覧を数えています。Windows がゲームコントローラーとして扱うものはすべてこの一覧に並びます。ハンドル、フライトスティック、アーケードスティック、リマップツールが作る仮想コントローラーも同じです。
いちばん多いのは DS4Windows です。本物の PlayStation コントローラーの隣に仮想の Xbox コントローラーを作るため、ブラウザからは 2 台に見え、オーバーレイが想定と違うほうを追ってしまうことがあります。DS4Windows のドキュメントがまさにこの用途で勧めている HidHide で物理コントローラーを隠すか、余分なデバイスを外してから、ソースを更新してください。
何がつながっているか分からないときは、ゲームパッドテスター を開いてください。ブラウザから見えるコントローラーをすべて一覧し、切り替えて確認できます。
5. ボタンが違う場所で光る
Chrome 系のブラウザは Xbox、PlayStation、Switch Pro コントローラーの配列を知っていて、ボタンを標準の順序で報告します。認識できないコントローラー、たとえば汎用の古い USB パッドなどでは、ハードウェアが使っている順序のままボタンが届くため、オーバーレイは違うボタンを光らせます。
どちらの状態かはゲームパッドテスターで分かります。ボタン配列が Standard か Unknown のどちらかで表示されます。Unknown の場合は、コントローラーを Xbox コントローラーとして見せるリマップツール、たとえば x360ce を使うと、ブラウザが理解できる配列になります。
6. オーバーレイが切れる、またはぼやける
ブラウザソースはサイズが固定されたウィンドウです。プロパティの幅と高さは、エディターで設定したオーバーレイのサイズ、変更していなければ 800 × 500 と一致している必要があります。小さいとオーバーレイの一部が切れます。
シーンの中でソースを大きく引き伸ばすと、OBS は小さい画像を拡大するため、輪郭がすべて甘くなります。必要なサイズはエディター側で決めて、ソースをそれに合わせてください。
7. コントローラーが何度も切断される
無線コントローラーは入力がないまましばらく経つと自動で電源が切れますし、Windows は節電のために Bluetooth アダプターをスリープさせることがあります。コントローラーが戻ったらボタンを押し、オーバーレイが止まったままならソースを更新してください。
配信中に起きる場合は、デバイス マネージャーを開いて Bluetooth アダプターを探し、電源の管理タブで 電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする のチェックを外します。有線接続ならこの問題は起きません。
8. Mac から配信している
macOS の OBS は、ブラウザソースにコントローラーへのアクセスを許可していません。自分たちのコードの問題を切り分けるため、同じ OBS で GamePad Viewer も試しましたが、やはり動きませんでした。現時点では、どのブラウザベースのオーバーレイでも設定では解決できません。OBS の外でコントローラーを読み取る小さなネイティブヘルパーを開発中です。Windows では上記がそのまま当てはまり、リンク 1 本で動きます。
9. ゲームを別の PC で動かしている
ブラウザソースが読めるのは、OBS を動かしている PC につながったコントローラーだけです。2PC 構成ではコントローラーはゲーム用 PC 側にあるため、配信用 PC のオーバーレイからは決して見えません。同じネイティブヘルパーが入力を転送できるようにする予定ですが、それまではブラウザベースのオーバーレイには OBS 側のマシンにコントローラーが必要です。
それでも解決しない場合
まず ゲームパッドテスター でコントローラーを確認してください。そこで動くなら、問題は OBS とページの間にあり、上の手順で対応できます。そこでも動かないなら、コントローラー本体、ケーブル、ドライバーを確認しましょう。OBS 設定ガイド では、ゼロからの設定手順を順に説明しています。