★★アナログの罠

「WindowsでSIXAXISを使った無線コントローラーを使えるようにして東方をやった」エントリ。
Let’s Note+BlueToothでSIXAXISでプレイできるように調整したんですよ。
やり方は次のページをどうぞ
※後継のDUALSHOCK3でも同じ手順でできます(BtSixのバージョンは1.5c以上必要だと思いますが)が、記事中ではSIXAXISで記述をできるだけ統一します。
 
※ちなみに下のエントリの画像が干渉するので、見る場合は記事タイトルをクリックしてこの記事だけを表示させてから見てください。
 
(2009/02/07 修正)
ポケットニュースさんの記事を参照に最新状況に合わせてリンク先変更などの補遺を実施
(2010/01/25 修正)
漠然と知ってはいましたがPPJoyのページがリンク切れしてたので、自分で代替のサイトを探して手順とリンクを修正

 どうでもいいが、エントリ時間=書き始めの時間なので、今1:30=そんな時間かけて作業してたのか俺!


・Bluetooth Ver2.0以上に対応したUSBアダプタを用意する。
 自宅には腐るほどあるというか、持て余す程度の数があるわけですがw
 Let’sのマウス、キーボード用につけてるPrinctonの超小型USB型のアダプタをそのまま利用。
 ちなみにハードウェア的には何もしないので、後で手順を踏めば簡単に元のBlueToothアダプタ
 に戻せます。
 ノートPCなどで内蔵されているBlueToothでもOKです。
 ちなみにドライバをSIXAXIS専用にするため、他のBluetooth機器がつなげなくなります。内蔵+外付けで片方がSIXAXIS専用、というやり方はできますが…
 
・WindowsXP(SP2)かVistaを用意してない人に「歩いてお帰り」願う
 まぁこれはしょうがない話だと思ってください。
 
・以下のソフトをダウンロード

 強調しましたがlibusb-win32のフィルタドライバの導入バージョンは0.1.10.1です。重要なのでもう一度言います。0.1.10.1です。最新の0.1.12.1ではありません。
 BtSixは新しいバージョンだとVC++のランタイムが必要になるようなので導入してください。BtSixが起動しない場合、こいつをインストールしていない可能性があります。
 (詰まったこと数度)
 なお、libusb-win32のバージョンを間違えて入れたらアンインストール・・・だけではダメです。ドライバとDLLは消えません(サイトを読んでたら「アンインストーラーでは消せない」とのたまっていた)。c:\windows\system32あたりに「libusb〜〜.dll」とか「libusb〜〜.sys」が残ってるので消しましょう。ただしシステムフォルダなので扱いには注意しましょうね。さらに、再インストール前にPCの再起動が必要です(キャッシュ絡みだと思われるが、面倒やね…)
 まぁこれもやっちまってちょっとドツボにはまったわけですが。
・PPJoyをダウンロードして、解凍、しかるのちにSetup.exeを実行してインストールをする
 (10/01/25 以前のダウンローダーと同じ? simtel系の場所から直接ZIPを落とす場所にリンクを差し替えました)
 ドライバが署名されていないので64bitOSでは多分素直にインストールできないでしょう。他の手段を考える必要があるかもなぁ。32bitOSでも署名されてないとしつこく注意されますが、インストールを強行しましょう。
 
27.5:484:424:0:0:ppjoySET01:center:0:0:Addボタンをクリックして仮想ジョイスティックを増やすんだぜ:
 
 ちなみに出てきたダイアログでは特に何も考えずにAddボタンを押して、最後に右下のDoneボタンを押して終了。
 
・libusb-win32フィルタドライバはインストールが必要なのでインストールすること。あとは解凍すればOK
・BluetoothドライバをBtsixのものに交換する
 ちょっと面倒。手順を6つのスクリーンショットで紹介する。これでわからない人は豆腐の角に頭をぶつけて死ねばいいと思う。
30.2:469:423:0:0:driverset01:center:0:0:なんとかしてBluetoothドライバを探して(リストを接続別一覧にするとわかりやすいかも)、プロパティの「ドライバ」タブから「ドライバの更新」を選ぶ:
21.3:586:369:0:0:driverset02:center:0:0:一番下を選択:
21.4:586:369:0:0:driverset03:center:0:0:これも下を選択。明示的にドライバを指定する場合の常套手順:
19.1:586:369:0:0:driverset04:center:0:0:ドライバを明示的に選択するために下を選択。間違ったら最初からやり直す。でも人生はやり直せない。:
19.4:586:369:0:0:driverset05:center:0:0:右下にある「ディスク使用」を選ぶ。ここでもともとのドライバを選べば、アダプタを元通り使えるようになる:
31.1:656:390:640:380:driverset06:center:0:0:BtSixを解凍した中にDriver XPというフォルダがあるので、そのフォルダにあるinfファイルを選択して先に進めばドライバが入る。:
(ここにあった手順は省略可能になった)

・有線でSIXAXISを接続する
 ちなみにWindowsからはちゃんとPlayStaytion3(R) Controllerとかそんな形でジョイスティックとして認識されるが、このままだと有線ジョイスティックとしても使えない(特別なコネクションコマンドを送ってやる必要がある)

 
・この状態でBtSixを起動して、「Address」ボタンを押す
26.6:464:561:0:0:画面:center:0:0:左上側のAddressボタンをクリックする。:
  
3.6:225:112:0:0:失敗:center:0:0:SIXAXISをUSB接続できてない(認識できてない)とエラーになる:
 
3.8:281:112:0:0:成功1:center:0:0:こう出れば成功購入後の初回なら「00:00:00:00:00:00」になる:
 
3.9:277:112:0:0:04:center:0:0:SIXAXIS側に新しくアドレスが設定される。例では同じ機器につなぎなおしただけ。:
 
で、成功したらUSB接続を解除して終了。BtSixが起動してる状態でPSボタンを押すと接続動作を行い、接続される(BtSixの画面にバッテリー残量や傾き情報などのインジゲータが表示され、SIXAXIS側も「1」のLEDが点灯する)。
2回目以降はペアリングのための手段は不要。BtSixを起動してPSキーを押せばそのままPSコントローラーとして扱われる。Windows側からはPPJoyの仮想ジョイスティックとして扱われるという寸法。
補足ですが、本体側でBtSixのドライバとソフト、PPJoyさえインストールしておいて、USB接続のBlueToothアダプタにSIXAXISをペアリングすると、コントローラーとBlueToothアダプタをペアで持ち運べばコントローラーをどこでも使えるようになります…だからどうした、という話になりそうですが。
次ページは東方をやる上での注意
問題点っつーのは

  • デフォルトで方向キーが左アナログスティックに割り当てられている
  • 本来の(デジタル)方向キーは方向キーではなく「ボタン」として扱われている

という点。
 普通のソフトだと、方向キーのアサインとかもできたりするのだが、東方には方向キーのアサインがないんだぜ。
 幸いにもPPJoyがキーのアサインをやれるので、そっちで設定する。
27.5:484:424:0:0:mapping01:center:0:0:PPJoy Virtual joystick 1を選んで赤丸部分をクリック:
ウィザードが始まるが、最初2つは何も変えずに「次へ」を押す。問題は次の画面。
20.4:514:404:0:0:mapping02:center:0:0:「X Axis」と「Y Axis」の設定を上のように変える:
これで全部終了。ちなみにゲーム コントローラのプロパティで「古いプログラムに使う優先ジョイスティック」にPPJoyを選んでおかないとダメなときがある。
で、ちょっと憂さ晴らしに初のレザマリ@Normal。ああ楽だ…ってこりゃ楽すぎだろうjk・・・
だがオチがある。
 RizaはR2ボタンを「SLOW」にアサインしているのだが、SixAxisはL2、R2が「アナログ値」をとる。
そして、東方では「押し込んでいても、軽く押してても『押した』扱いになる」。
アクセルを緩く踏もうがベタ踏みだろうがアクセルを踏んでいる事実には変わりない、という感じか?
で、SLOWから戻したつもりが戻ってないということがよくある。そして「押してない」と「押した」の域値の問題か、軽く触った程度だとSLOWにならないことがある。
 
 加速したまま突っ込む、減速から戻れずにぶち当たること数回。こんな状況で顔山が越せるわけもなく(越せそうな気も一瞬したが)、満身創痍。
皆さんもL2、R2へのボタンアサインには気をつけましょう。
※ところでSIXAXISの傾きで自機移動させる方式にして東方やったら、クリアできるヤツいるのか?