Wii Wii リモコンを PC で使う

Bluetooth デバイスであるところの Wii リモコンは「Nintendo RVL-CNT-01」という名前のジョイスティックとして認識され,ペアリングも出来る。 でもそのままだと一般的なジョイスティック・ゲームパッド対応アプリでは使えない。

[PNG / 6KB]

これを一般的なアプリで使えるようにするソフトが公開されてるので,試してみたい。

 Wii リモコンをマウスにする WiinRemote

これは簡単。 展開して実行するだけ。

確かにマウスカーソルの操作に使えた。 使えたけど,まだ実用的じゃない……。

 Wii リモコンをジョイスティック (ゲームパッド) にする

digg - Windows Wiimote driver created で紹介されてる GlovePIE というソフトと PPJoy というソフトを組み合わせる。

GlovePIE に付属してる TestWiimote.PIE は Wii リモコンの入力をキーボードの入力に変換する例なので,それを参考に適当なスクリプトを書いたら,Wii リモコンの入力をゲームパッドの入力に変換することに成功。 アナログ操作のできないシンプルなゲームパッドとして使う場合,GlovePIE に読み込ませるスクリプトはこんな感じ:

// input

if Wiimote.Left then
  PPJoy1.Analog0 = -1
else if Wiimote.Right then
  PPJoy1.Analog0 = 1
else
  PPJoy1.Analog0 = 0
end if

if Wiimote.Up then
  PPJoy1.Analog1 = -1
else if Wiimote.Down then
  PPJoy1.Analog1 = 1
else
  PPJoy1.Analog1 = 0
end if

PPJoy1.Digital0 = Wiimote.A
PPJoy1.Digital1 = Wiimote.B
PPJoy1.Digital2 = Wiimote.One
PPJoy1.Digital3 = Wiimote.Two
PPJoy1.Digital4 = Wiimote.Home
PPJoy1.Digital5 = Wiimote.Minus
PPJoy1.Digital6 = Wiimote.Plus

// output
Wiimote.Leds = 2 + 4

// unused
//  Wiimote.RawForceX
//  Wiimote.RawForceY
//  Wiimote.RawForceZ
//  Wiimote.HasNunChuck
//  Wiimote.HasClassic
//  Wiimote.Rumble (output: Force Feedback)

ボタンの割り当てを工夫すれば,ふつうに PC ゲームの操作に使える。 RawForceX / RawForceY / RawForceZ をうまく変換できれば,アナログパッドとしても使えるだろう。 これはおもしろい。

 Wii リモコンで Infinite Mario Bros! をプレイする

キーボード操作が難しかった Infinite Mario Bros! を Wii リモコンでプレイする。

前述の GlovePIE を使えば簡単。 今回は Wii リモコンを横向きに持つのを前提とし,1 ボタンが A キー相当,2 ボタンが S キー相当になるようにスクリプトを書く:

Up = Wiimote.Right
Down = Wiimote.Left
Left = Wiimote.Up
Right = Wiimote.Down
A = Wiimote.One
S = Wiimote.Two
F1 = Wiimote.A
Wiimote.Leds = 1 + 8

この程度ならスクリプトと呼ばなくてもいいシンプルさだ。 これはおもしろい。