以下に書いたことはどうも再現性があったりなかったりするようです。途中まで書いたのですが確証がないのでこのエントリー捨てようかと思いましたが、それでもこういう感じになることをメモしておいた方がもしかすると役に立つときがあるかもしれませんので。。。ということで残しておきました。その程度の情報ということで見てください。
まえふり
昨日やったことが以下で。
toioゲーム改造(その3)、一応、完成 - memorandums
課題が1つありました。それが以下でした。
問題が1つ残っています。Macにジョイコンを2台、Bluetoothで接続して使おうとしています。これ用にわざわざヨドバシで買ってきました。でもね。。。1台は問題ないのですが2台めを接続しようとするとうまく認識してくれないんです。。。前回やったときは認識してくれたんですが。。。
色々と調べてみたのですが情報が錯綜していてよくわかりません。1台はOKだけど2台はできない、というのが大方の見方のようです。
でも、以下の方は両方のジョイコンを接続できたと。やり方は スクショとホームボタンを3秒同時押しすればよい というもののようですが、やってもできませんでした。わかりません。この動画はVenturaで僕のはSonomaだからでしょうか。
Using two joycons with Gamepad - Misc Forum | Cycling '74
したがないので色々試してみました。自分のもっているジョイコン+M1 Mac(Sonoma)ですので、他の個体では異なる結果になるかもです。
試したこと
MacでBluetoothの画面を開きます。
ジョイコンを1つずつMacにBluetooth接続します(ページ下の方に写真がありますが、Macが認識するまでジョイコンの横にあるボタンを長押しします)。下の方に 近くにあるデバイス に Joy-Con (L) もしくは Joy-Con (R) が出現しますので接続ボタンを押します。
接続が完了すると以下のようになります。ここまでは普通の方法ですね。
両方とも 接続済み になります。ここまでは何回やっても同じ状態になりました。
このときのジョイコンのランプは以下のようになります。コントローラ1として認識されていますよね。つまり2つコントローラがあるけどMacからみると1つのコントローラとして認識されるということです。ここが最初わかっているようでわかっていませんでした。ネットで見られるMacで 2台以上のジョイコンは接続できない というのはつまるところ 独立したコントローラとして認識することはできない ということなんでしょうね。
で、私の利用はここ数日作ってきたゲームではMacのキー入力で操作できるようにしているため、JoyKeyMapperという素敵なアプリでジョイコン入力をキーにマッピングすることでした。
apps.apple.comで、ここからが本題になります。
つまり、僕の用途としては「2台(左右)のジョイコンを1つのコントローラとして認識されても構わないのでそれぞれの入力をJoyKeyMapperで受け取れるようにしたい」ということ で、これができれば うまくいったと判断するということになります。
うまくいかないケース
上記に書いたように、Bluetooth機器を接続する手順でジョイコンを接続します。ここまではほぼ確実にできます。
ただ、ここで一度、Macージョイコン間の接続を切ります(下図のジョイコンのペアリングボタンを軽く押す)
その後、普通のボタンを押し続けているとスイッチに接続するのと同じように接続できるはずですが。。。確率的になります。うまくいくときもあればいかないときもある。ジョイコンが両方ともサーチ中で接続できないときもあれば、片方だけ接続できるときもありますし、MacのBluetooth画面では接続できたように見えるけどジョイコンのランプはサーチ中みたいになったり。。。
うまくいくケース
で、これは何度かうまくいった方法が以下です。
まず、Macからジョイコンの登録をすべて解除します(切断ではなくペアリング解除です)。
で、上で紹介したJoyKeyMapperを起動します。
そこでジョイコンを登録します。
その後は、切断したあとすぐに接続できるようになりました。
で、これを書きながら何度かテストをしていたんですが。。。これがまた確率的になりました。JoyKeyMapperを起動せずに登録してもまったく問題なく使えたり、JoyKeyMapperを使っても全然認識しなかったり。。。
わからん。。。これにtoioのBluetoothも絡んできます。Macからみればまたさらに複雑な挙動になるかと思います。
どうしようかな。。。こんなに不安定ではイベントでは困るだろうな。。。
もう少し様子見ます。
追記 8/26
ジョイコンでももしかすると同じ側のコントローラ、例えば、LとL、RとRであれば別コントローラ(1,2とか)として認識されるのかなと思ったんです。で、4つコントローラをMacに接続してみたんです。結果は以下でした。「はっ!?」です。全部コントローラ1として認識されています。そんなことがあるんですね。。。