2013年3月20日水曜日

PS3のコントローラをBluetoothでPCに繋ぐのは驚くほど簡単!

 諸事情あって、PS3のコントローラをPCにBluetooth接続してみたんだけど、思ったよりも簡単に使えるようになりました。備忘録も兼ねてブログにしてみます。
ネット上の記事を見てると、Bluetoothアダプタを専有してしまうとのことで、すでにキーボードやマウスなどをBluetoothで使っている場合はどうしたらええのん?という疑問やら、ドライバの導入ミスるとOS再インストールとか言われてて怖い!とか思ってたんですが、そんな懸念も取り越し苦労、全く問題なく簡単にPS3コントローラをBluetoothで使えます。

ちなみに使ったのはこの純正PS3コントローラです。
なおすでに書いていますが、PS3コンロトーラ用に新たにBluetoothアダプタを用意する必要があります。今回は、余っていたPlanexのBT-micro4を使いましたが、もっと安価なものでも問題ないはずです。
余談ですがBT-micro4は、Bluetooth4.0対応を謳っているにもかかわらず、4.0のHIDプロファイルに対応していないひどい製品です。。


---
 さて、手順は結構ややこしそうでいろいろ記事を当たってみたんだけど、要点は以下の感じ。

・PS3のコントローラをPCにUSBで接続しただけでは、コントローラとして認識はされるけど充電されるだけでコントローラとしては使えない。ふしぎ!

・コントローラとして使うには、有志の開発したドライバ/アプリが必要で、有名なのはMotioninJoy。

・USBでの有線接続の場合は、上記のドライバを入れるだけですぐ使える。

・Bluetoothの場合でも、MotioninJoyがBluetooth用ドライバを提供しているので別途アプリやドライバは必要ない。

・MotioninJoyは、PC側のBluetooth受信機(以下レシーバ)を1つ専有してしまい、同じレシーバでキーボードなどをペアリングすることができなくなる。
コントローラを使用している間だけ他の機器とペアリングできなくなる、の意味ではなく、MotioninJoy専用のレシーバ用デバイスドライバがインストールされるので、そのレシーバは他の機器を認識することすらできなくなる。

とにかく、別途レシーバを用意する必要がある。

・レシーバは、Bluetooth2.1以上のHIDプロファイルに対応している必要がある(今出回っているレシーバなら大体問題ない)
 
・ 誤って既存のレシーバのドライバを上書きしてしまうとキーボードやマウスが使えなくなるだけでなく、OSの再インストールが必要なことがある。また、最悪の場合死に至る。


とまぁ、私みたいにすでに入力デバイスをBluetooth化している人にはめんどくさそうな感じです。
ろくな下調べもせずにPS3コントローラをヨドバシでポチってしまった後だったし、OS再インストールとかもうガクブルもんです。
びびって、もう有線だけでええんちゃうかと思ってました。


が、実際やってみるとBluetooth接続はびっくりするくらい簡単でした。案ずるより横山やすしとはよく言ったものです。
以下に具体的な手順を記載しておきます。
参考までに、うちの環境はwindows7/64bitです。


1.既存のレシーバを取り外して、キーボードとマウスを有線化しておく。
MotioninJoyでBluetoothドライバをインストールする時の事故を防ぐために、一旦キーボードとマウスとをペアリングしているレシーバをPCから取り外します。
キーボードとマウスは有線のものを別途用意してください。
うちはキーボードはMajestouch 2を使っているのでUSBケーブルで繋ぎ直すだけでした。FILCOのキーボードはこういうことにも気が効いて最高に素晴らしいですね。
ちなみにこの工程は、MotioninJoy上でどのレシーバがどのポートに繋がっているかを確実に確認出来る場合は不要です。


2.MotioninJoyをダウンロードしてインストール。
ここから、MotioninJoyをダウンロードしてインストールしてください。インストール手順はごく普通のアプリと変わらないので省略します。
私は新しいもの好きなのでVersion 0.7.0000(testing)を選択しました。testingって書いてあるけど今のところ何も問題はないです。

インストールの最後の画面で「Run DS3_tool」にチェックが入ってますがそのままFinishしちゃってください。
DS3toolとやらが起動します。これがMotioninJoyの設定画面です。


3.USBケーブルで、PS3コントローラをPCに接続
ここで一旦、 コントローラをUSBで接続します。ちなみに、ここで繋ぐかどうかはBluetoothで繋ぐことには関係ないんですが、ここでドライバをインストールしておけば充電が切れた時などUSBで接続する際に慌てなくて済むのでオススメです。

USBで接続すると、MotioninJoyがゲームパッドと思しきデバイスを自動で一覧表示してくれます(キーボードやマウスは表示されません)。

このサイトの手順通りであれば、ここで表示されるデバイスは、今差し込んだコントローラのみであるはずです。このキャプチャ画面は作業終了後に撮ったものなので複数のデバイスが表示されちゃってます。


さてこれからドライバをインストールするわけですが、デバイスが複数表示されてる場合は、インストール先を間違えないように十分注意してください。
#個人的には、もし複数表示された場合はコントローラ以外をすべて抜線して再度やり直すことをオススメします。

Port番号はご使用の環境により異なります。
ちなみにこの写真では、Port_#0003がUSB接続されたコントローラです。
ポートが間違いないことを確認したら左端のチェックボックスにチェックを入れて「LoadDriver」ボタンをクリックします。あとは出てくるウインドウに従えば、ドライバのインストールは終了です。
なおドライバが導入されたPortには、上記画面の右端のMotioninJoy欄に、緑のチェックが付きます。


この時点で、PS3コントローラがwindowsから使用可能になってます(windowsが、デバイスが使用可能になりました、だのうるさく言ってると思います)

何か適当なアプリを起動して確認してくみてください。


 さて、ここまでは下準備です。Bluetooth接続の手順はここからです。


4.一旦、PS3コントローラをUSB端子から抜く。さらにDS3_toolを終了する。
※DS3_toolは終了しなくてもいいかもしれないです。確認してないのでわからんです。
一旦ここで初期状態に戻すわけですね。


5. PS3コントローラ用のBluetoothレシーバをUSBの端子に接続

使用するレシーバを適当なUSBポートに差し込んでください。
注意点がいくつかあります。

・ ここで使用するレシーバのドライバはMotioninJoyからインストールされるので、レシーバ付属のCDなどからドライバをインストールする必要はあり ません。ドライバのインストールをwindowsから促されたり、デバイスが使用出来ない旨が表示されても無視してください。

・コントローラが使えるようになってからレシーバのUSBポートを変えると、再度ドライバのインストールからやり直す必要があります。
一部のアプリはコントローラとの電波が途切れるとフリーズするものがあるため、差し込み位置には気をつける必要があります。レシーバ大きなものではないのでPCの前面に差すか、背面に差したものを延長ケーブルで表側に持ってくることをオススメします。




6. DS3_toolを起動して、DeviceManagerタブ画面に移動。
DS3_toolが認識したレシーバが表示されます。
お分かりかと思いますが、手順1で他のBluetoothデバイスを一旦有線化したのは、ここでの選択ミスを防ぐためです。
手順3と同様ですが、以下のようにPort_#000?という状態の表示があるはずです。



他のBluetoothデバイスを外していれば1個しか表示されないはずなので、左端のチェックボックスをチェックして「LoadDriver」 ボタンをおしてください。



上記のように、SUCCESS:Install MotioninJoy Driver Successfully.
と表示されてればOKです。

あと、以下のように、MotioninJoyの欄が緑のチェックマークになってるはず。
※下の写真は導入が終わった後に撮ったので、レシーバが2個写ってます。


ここの手順で間違ったBluetoothレシーバを選択していると悲惨なことになると思います。
いわゆる、最悪の場合死に至るというケースだと思います。合掌。


7. ペアリングの実施
Bluetoothpairタブに移動して、「pair now」ボタンをクリック
勝手にPS3コントローラとペアリングしてくれます。してくれない場合は、コントローラのPSボタンを押してみればいいことあるかも。
Bluetooth adapter:の、AdapterMACと、DUALSHOCK3:のMACアドレスがが同じ値であればペアリング完了です。

※MACアドレスがが同じにならなくてもペアリングできてる場合もあります。
がっかりせずにとりあえず次に進んでください。


8. 設定反映
Profilesタブに移動。
ペアリング出来ていれば、Connected game controller(s):に、
1.Dualshock 3/sixaxis (Bluetooth)の記載があるはず。
ちなみにUSBにケーブルで繋いでる場合は「1.Dualshock 3/sixaxis (USB)」という表記になります。


この時点でwindowsは、Bluetooth経由でPS3コントローラを認識してます。

あとは、このコントローラをどうエミュレートするかを設定するだけです。
例えばXBOXから移植されたゲームなどは、Xinputを選択するとXBOXコントローラとして機能するようになります。
ここはいつでも変更できるので、遊ぶゲームにあわせて変更すると良いと思います。



ここまで設定は完了です。お疲れ様でした。
最後に「Enable」のピンクのボタンを押せば、設定が反映されます。


Game controller panelボタンを押せば、windows標準のコントローラ管理アプリが立ち上がるのでコントローラの動作を確認できます。vibration testingボタンを押せばコントローラがブルブル振動するはずです。
うまく動かなければどこかの手順が間違っていると思うので、頑張って直してください。。。

以上の手順で、どのアプリからもBluetoothで接続したPS3コントローラが見えるはずです。
う~ん素晴らしい!!
あとは手順1で切り離したキーボードとマウスを再度Bluetoothで繋ぎ直せば作業は終了です。



最後にいくつかメモを。

・デフォルト設定では,MotioninJoyは自動で起動しないので、ゲームをするたびに起動してやる必要があります。自動で起動させることもできるようですが、他のアプリとの影響をまだ確認していないので設定はしてません。
 
・どのボタンを何の機能に割り当てるかは、ゲームの方で指定することになります。コントローラの選択で適当なものを選んでいればゲーム側では何も設定する必要がないこともあります。
もちろんMotioninJoy側で自分好みの割り当ても可能です。

・MotioninJoyを起動しなくても、コントローラのPSボタンを押すとペアリングされデジタルパッドとしてwihdowsは認識してくれます。
ただこのままだとアナログスティックや振動機能が使えないので、ゲームをする前にMotioninJoyはやはり起動する必要があります。
なおこの場合、何分で接続が切れるかは確認していません。電池が気になる場合がMotioninJoyでdisconnectしてやると良いと思います。 コントローラから接続を切る方法は私は知りませんです。。
 
・optionsタブにある「Auto disconnect BT controller if no button action after minute(s)」で、自動切り離しまでの時間を設定できます。長いムービー中などで勝手に切れると面倒なので、私は30分に設定してます。


---
やっぱり無線環境は快適ですねぇ。
有線と違って取り回しが楽なので、急に寝こむことになってもベッドからゲームができるのはうれしい(寝込みたくないけど)。

せっかくBluetooth使ってるんでレシーバは一個にしたいんですが、まぁしょうが無いですね。
MotioninJoyが進化してレシーバを専有しなくなる日を待ち望むこととします。

ちなみに、充電が心もとないときや、今日はなんだか有線でやりたいなぁなんて気分の時(どんな時や)は、単純にUSBケーブルで繋ぐだけで何の問題もなく使えます。

では素敵なPS3コントローラーライフを!