PC上でWiiリモコンを扱うライブラリ
WiimoteLib
https://wiimotelib.codeplex.com/
公式板の最新バージョンWiimoteLib v1.8 Beta 1は外付けのWii MotionPlusに対応していますが、Wii MotionPlusを内蔵するリモコン(新しいほうのやつ)には対応していません。
デバイスIDが異なるため弾かれるようです。
公式サイトからWiimoteLib_1.8_srcをダウンロードします。
Solution ExplorerのWiimoteLib - Docs - DataType.csを開いて
a00405で検索
MotionPlus = 0x0000a4200405,を
MotionPlus = 0x0100a4200405,に書き換えます
BuildメニューのBuild WiimoteLibでビルドします。
\WiimoteLib_1.8\WiimoteLib\bin\Releaseか
\WiimoteLib_1.8\WiimoteLib\bin\Debugに
WiimoteLib.dllができます。
外付けのWii MotionPlusには対応できなくなります。
======dllの作成ここまで=======
使い方
wm.Connect()
wm.InitializeMotionPlus()
wm.WiimoteState.ExtensionType = ExtensionType.MotionPlus
このへんは私には何が正解かよくわかりませんが、2回くらい起動すると動くので、間違っているけどなんとかなるくらいの状態だと思います。。
wm.SetReportType(InputReport.ButtonsAccel, True)
wm.SetReportType(InputReport.IRExtensionAccel, True)
各データはこんな感じで取れます。
yaw0 = wm.WiimoteState.MotionPlusState.RawValues.X
roll0 = wm.WiimoteState.MotionPlusState.RawValues.Y
pitch0 = wm.WiimoteState.MotionPlusState.RawValues.Z
角度が出てくるわけではなく、14bitの生値が出てくるそうです。
早い動きを検出するモードと遅い動きを検出するモードがあるそうです。
しっかりデータの解析をしていないのでよくわかりません。
キャリブレーションコマンドがLib内にありますが、私には使い方がわかりませんでした。