改め Objective Technician

はぐれ技術者のやりたい放題

Wii リモコン×2 で 三次元らくがき帳

2009-10-01 22:46:01 | 勉強
もはや遊びと研究の区別が付かなくなってきている気がするが、今回のはいちおう本職の研究に関係するもの。



Wii リモコンで三次元空間に絵を描くアプリケーションを作った。



AS3ソースはこちら

三次元座標を取るには、赤外線光点を二つ使って Wiiリモコンから見える光点間の距離を使う方法があるけど、これだとやや不安定なので Wiiリモコンを2つ使うことにする。

そして、Wii リモコンを動かすのではなく赤外線 LED のほうを動かして、Wii リモコンは光点検出用のカメラ代わりにする。

2つの Wii リモコンを互いに直交する位置に固定すると、指先につけた赤外線 LED で三次元空間内で位置を指定できる(つまり一軸余る)。




ヌンチャクの加速度センサとボタンで回転とかの細かい制御。

ヌンチャクのスティックの値が取得できなかった。WiiFlash が未対応らしい。



三次元ペイントなら普通のカメラでもこれと同じやり方でできるけど、Wii リモコンを使うと光点検出の画像処理が一切不要。WiiFlash 側ではすでに座標値そのものが入ってるから、それをリアルタイムで取ってくるだけ。楽すぎる。



あと、作ってみて気づいたけど、Wiimoteのイベントはウィンドウにフォーカスが当たってなくてもリスナに通知される。

だから、マウスとかキーボードとかではひとつのウィンドウだけにしかイベントを送れないのに対して、Wiimote を使えば同時に複数のウィンドウを操作できる。


これを使うと、カメラの角度を微妙にずらして二つ同時起動するだけで、視差付きの立体映像が作れる。






WiiFlash と Papervision3D との組み合わせの可能性はすごい