XNAからWiiリモコンを使う!?


YouTube - Accessing Wii Remote from XBox 360 XNA
まず、このWaru360氏による動画を見てください。
Xbox360上のXNAでの3DモデルをWiiリモコンを使って動かしています。
XNAからは現段階ではBluetoothもUSBもネットワークも使うことができないのに、いったいどうやってWiiリモコンのデータを取得しているのでしょうか。



後日、Waru360氏のブログ上で種明かしがされてました。
Xbox360上で直接Wiiリモコンにアクセスしたのではなく、PC上で取得したデータをXNAデバッグモードを使って変数の値を書き換えるプログラムを作ったとのことです。ソースコードが無いので推測ですが、XNA Game Studioのウィンドウを監視しておき、ブレイクポイントで止まったら、ローカルデバッグウィンドウをFindWindowして変数を変更するキーボードイベントを送信する。F5も送信してブレイクを解除する。というような仕組みではないでしょうか。トリッキーですが、Xbox360上でWiiリモコンが使えていることは間違いありません。ただし、動画を見た限りは1秒間に1回くらいしかデータの取得ができていないみたいです。


一部のソースコードはダウンロードできるのですが、残念ながら私の環境ではWiiリモコンを認識してくれず、WaruProxy.exeが落ちてしまいます。
Wiiリモコンを認識しないのはこのソフトだけではなく、かたちのココロWiiAccも動きません。
WiinRemoteなどは問題なく動くのですが、私の環境では何か特殊な初期化処理が必要なんでしょうかね。



3/25 20:26 追記 Link
Ziggyware XNA Resources and Tutorials(XNA関連のニュースやサンプルが盛りだくさん。)
wiimote.zip(WaruProxyでも使われている、Wiiリモコンの操作ライブラリーです。)

3/26 23:30 追記
動かなかった原因は、私の環境はHIDデバイスとしてトラックボールがあり、その初期化のときにHidD_GetAttributes()がfalseを返してしまうためにうまく動かないようです。falseを返しても初期化を続行するように修正したらziggy氏のライブラリーは動きました。