複数台の Wiimote をPCに認識させて使う

タイトルの通りですが、snesgtだったりPowerPointだったりいろいろな使い道のあるHIDことWiiリモコンですが、制御ソフトを開発する人の多くは一人プレイヤーだからかどういうわけか1台のみ制御可というソフトが多いところで、複数台(Bluetoothの限界上は7台?)のWiimoteを認識させる場合について。

Wiimote自体は多数の機能を持っているため、例えばモーションセンサやジャイロなどの機能を使おうとすると場合によっては複数のソフトウェアやドライバが必要になりますが、通常のソフトウェアでの使用であれば、キーボードエミュレーションの機能があれば十二分という場合が殆どであり、その場合は GlovePie 一つで事足ります。

また、Bluetoothスタックによるかも知れませんが、少なくとも東芝スタックにおいては、Wiimote自体は汎用HID(ヒューマンインターフェースデバイス)としてシステムに登録されるため、追加のデバイスドライバも必要にはなりません。従って、Win7以降、x64/x86の環境による違いを意識する必要がほとんど無いということも利点となります。

今回はWiimote+GlovePieという例ですが、これはPS3のコントローラーと混載した環境でも成立します。従って、複数人で何かしらのソフトウェアを用いる場合、ソフトウェア側で予め適切にキーの割り当てを行っておき、そのキーに対し、GlovePie側でWiimoteもしくはPS3のコントローラーボタンを各キーに割り当てるという作業を行うことで、多数のWiimoteを使用する環境が成立するという仕組みです。

なお、MotionPlus内蔵のWiimoteは、現時点で最新版の GlovePie 0.45 では対応していないようで、こちらの記事から別途 PIEFree.exe のみ取得する必要があります。

以下に複数台の Wiimote を使用する場合のスクリプト例を記載します。wiimoteオブジェクトの配列、とかではなく、認識した順番に wiimote1, wiimote2,…というような割り当てになるようなので、そのまま順次記載していけば良いと思われます。

wiimote1.Led1=true
key.A=wiimote1.One
key.B=wiimote1.Two
key.C=wiimote1.Up
key.D=wiimote1.Right
key.E=wiimote1.Down
Key.F=wiimote1.Left

wiimote2.Led2=true
key.G=wiimote2.One
key.H=wiimote2.Two
key.I=wiimote2.Up
key.J=wiimote2.Right
key.K=wiimote2.Down
key.L=wiimote2.Left

wiimote3.Led3=true
key.M=wiimote3.One
key.N=wiimote3.Two
key.O=wiimote3.Up
key.P=wiimote3.Right
key.Q=wiimote3.Down
key.R=wiimote3.Left

wiimote4.Led4=true
key.S=wiimote4.One
key.T=wiimote4.Two
key.U=wiimote4.Up
key.V=wiimote4.Right
key.W=wiimote4.Down
key.X=wiimote4.Left