タイトルどおりなのですが、ついこの間の7月20日にCodeplexでWiiリモコンをパソコンで使う為のライブラリ「WiimoteLib」に新しくMotionPlusが対応したものが公開されました。
まだWiimoteLib_1.8 Beta版ということですが、問題ないと思います。
↓ここからDLできます
http://wiimotelib.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30401
WiiMotionPlusには3軸(正確には2軸+1軸)のジャイロセンサが搭載されていて、Wiiリモコンがどちらの向きにどれくらい回転したかが正確にわかります。
その精度がすごいということで一部で話題になっていましたが、
いままでのジャイロセンサが一秒間に300度の回転を読み取ることが出来たのですが、それではスポーツなどの素早い運動に対応できないという事で1秒間に1600度まで対応させたという高精度さ。
そんなすごいジャイロセンサが1500円という低価格で手に入ってしまうとは時代も変わりましたね・・・。
ちなみにうちの研究室にあるモーションキャプチャーのジャイロセンサは1つ50万するらしいですが(笑)
MotionPlusを研究室で買ってくれるみたいですが、待ちきれない&俺が欲しいので個人で買ってしまいそうです。
Processing -sound-
最近Processingというビジュアル表現の為のプログラミング言語をさわり始めました。
Processingはプログラム初心者にオススメするだけあって、難しい表記無しに簡単な命令文でプログラムが動かせる上に、コンパイル無しで動き、Processing自体のインストールもしなくてもいいというすごいソフト。
ビジュアル表現に便利な映像・音楽・3D表現などのライブラリも初めから用意されているので、それらを組み合わせたプログラムが簡単に作れます。
Processingに慣れる為に音楽を読み込んでその波形から映像を作り出す、いわゆるビジュアライザというものを作ってみました。
■sound(別窓でアプレットを起動します)
プログラムとしてはとても簡単で、80行程度でこんな楽しいプログラムが出来てしまいます。
minimという音楽を扱うライブラリを使用してステレオ音源を読み込みloadFile()、左右のスピーカーのレベル合計mix.get()で大きさと場所が変わる円をellipse()で真ん中に書いているんですね。
ちなみにクリックすると、マウスの位置によって音程が変わるSinカーブの音を鳴らすモードに変わります。(まさかここでメディア情報論の知識が出てくるとは・・・)
バックでドラム音が流れてるのでそれにあわせてメロディーを作ってみては?
3Dにも簡単に対応できそうなので可能性がひろがります。
そういやiTunesの新しいビジュアライザのビジュアルプロトタイプ開発にもProcessingが使われたとか・・・
Wiiリモコンで出来る事
WiiリモコンはBluetooth通信を使っているので、Bluetoothが入っているパソコンなら簡単にWiiリモコンをPCとワイヤレス接続する事ができます。
さらにcodeplexで公開されているWiimoteLibというライブラリを使うとC#なんかで簡単にWiiリモコンの制御を行う事ができる訳です。
■WiimoteLibはこちら
http://www.codeplex.com/WiimoteLib
Wiiリモコンについている機能として前の記事でも書きましたが、
・赤外線カメラ
・XYZ軸加速度センサ
・XY軸傾きセンサ(加速度センサから求める)
・11ボタン
・4つのLED
・バイブレーション機能
・サウンド機能
と、これだけ沢山のセンサがワイアレスで使えてしまうので色々な可能性が広がりますよね。
ここで少しWiiリモコンから受け取る値の説明をしようかと思います。
・赤外線カメラ
赤外線カメラでは赤外線光源を4つまで検出する事ができ、それぞれIRSensors[0]~[3]の中にX・Yの座標が格納されます。
X・Yはそれぞれ0~1の間で表されて、小数点以下もかなり細かいところまで正確に検出できます。
たとえば・・・
if(IRState.IRSensors[0].found)で赤外線が1つ見つかったときに、
(IRState.IRSensors[0].X , IRState.IRSensors[0].Y) の位置にマークを表示したりして使います。
・加速度センサ
X・Y・Z軸それぞれ-1~+1の間で加速度が検出されて、こちらもかなり細かい数値がでます。
ちなみにWiiリモコンを平行に地面に置いた状態では重力でY軸が常に+1になります。
こちらはAccselState.Value.Xでその軸の値を呼び出して使用することが出来ます。
この二つだけでもかなり面白そうなものができそうです。
今研究で、フィジカルコンピューティングという現実とデジタルを組み合わせて身体的に操作できるものが作りたいと思っています。
そこで考えたのが、Wiiリモコンの赤外線カメラでボールの位置をトラッキングして遊べるゲームもしくはインタラクティブアート。
仕組みとしてはこんな感じ。
・Wiiリモコンを部屋の上部に固定し、その方向から赤外線を放出
・ボール(赤外線を反射するもの)から反射した赤外線の座標をWiiリモコンで検出
・プロジェクタでボールに重ね合わせてエフェクトを表示したり敵キャラクターを表示する
・一人はボールを転がして遊び、別の人がもう1つのWiiリモコンで敵キャラクターを操作できて対戦できると楽しいかも
簡単だけどこんなイメージ。
実際にプロトタイプは作ってるけど、動いてる所を録画したらまたここに載せたいとおもいます。
どうやらProce55ingがすごいらしい
インターネットで研究に使えそうな技術なんかを調べていたら、Processing(Proce55ingとも書く)という開発言語をよく目にした。
どうやらJavaベースで電子アートとビジュアルデザインのための言語らしいのでビジュアル表現にとても強く、コンパイル作業不要なので開発がとても楽で、さらにはWin.Mac.LinuxのOSに対応しているという割と新しい開発言語らしい。
色んな動画やらみてたら開発画面がめっちゃ単純で言語も単純明解。
すごく楽そう
こんな動画がありました。
こんなビジュアル表現が手軽にできるなんてステキ
他の方が作ってる動画も色々見てたら、Processingと他の色んなライブラリを組み合わせている方がいました。
例えば「Bullet」という物理エンジンなのですが、3Dのオブジェクトをぶつけたり転がしたりしたときの実際の動きをシミュレートできるもの。
Bullet自体もJavaベースでなので、Processingでも簡単に使えるようです。
物理演算は見てるだけで楽しいので、研究とは関係あっても無くても物理演算を使った何か作ってみたいですね。
そして「ARToolkit」。
これは拡張現実感と言って現実の映像にリアルタイムで3Dを合成するというものですが、元はC言語なのでそのままでは使用できませんが、さすがProcesseing。注目されているだけあってもう作られてますねぇProcessing用ARToolkit
■NyARToolkit
ここで公開されています。ほかにもJava、C#、C++などでARToolkitを動かせるようにされてるみたいですごい方ですね。尊敬します。
これだけでProcessingにはARToolkitもBulletもそろっちゃったので、現実世界で物体をグチャグチャできるわけですね
あと欲しいのはWiiリモコンを使えるようにするライブラリのみ・・・・・・ジュルッ
こんなすばらしい言語使わないわけにいかないって事でインストールは終わらせましたが、時間無くてまだ触ってません。
またためしに何か作れたらUPしますね