一応WiiYourself!でも使えるのですが、そのまま使うとジャイロを認識してくれません。(v1.15現在)
Visual Studioで実行するとわかるのですが、デバッグの出力画面に
WiiYourself! : unknown extension controller found (0x50420a40001)
とかいうのが大量に出てくると思います。 要約すると「なんだかわからない拡張機器 (0x50420a40001)が見つかりました」と言っています。
Wiiリモコンでは拡張機器の識別値がWiiリモコンから送られてきます。 その識別値がWiiYourself!ではtypeというもので管理されているみたいなのですが、Wiiリモコンから送られてくる識別値がモーションプラスとWiiリモコンプラスでは違うみたいで、Wiiリモコンプラスを使うとジャイロが認識されません。
識別値をいじる
そこで、wiimote.cppの中に書かれているモーションプラスの識別値をいじくります。
1759行目にある
wiimote.cpp
static const QWORD MOTION_PLUS = 0x050420A40000ULL; static const QWORD MOTION_PLUS_DETECT = 0x050020a60000ULL; static const QWORD MOTION_PLUS_DETECT2 = 0x050420a60000ULL;
というところを、↓のように書き換えます。
wiimote.cpp
static const QWORD MOTION_PLUS = 0x50420A40001; static const QWORD MOTION_PLUS_DETECT = 0x50020a60001; static const QWORD MOTION_PLUS_DETECT2 = 0x50420a60001;
これで一応は使えるようになります。 ただし、「Wiiリモコン+モーションプラス」「Wiiリモコンプラス」どちらにも対応したわけではないので、さらにプログラム修正の余地はあります。(どなたかできたら教えてください)
もしアップデートがあれば、この辺が改善されるのではないかと期待しています。