2014年01月07日

LeapMotionを使ってAR(Augmented Reality)やその他諸々をやってみた

昨年7月にLeapMotionが手元に届き、一通り遊んでみたので振り返りもかねて紹介します。

まず、開発に用いた言語やライブラリは以下の通りです。

・開発言語:C#
・グラフィクス:OpenGL (OpenTK使用)
・カメラ画像取得:DirectShow.NET
・ARマーカの認識: NyARToolKit for C#
・物理演算:BulletSharp
・その他センサ:Kinect for Windows

7/24
オーダーから約1年近く待ってようやくLeapMotionが手元に。とりあえず付属のアプリで遊んでみた。第一印象としては「応答が早い」。



7/25
早速プログラムを組んでみる。この時点では仮想空間に指の軌跡を表示するだけ。SDKが使い易かったのでここはすんなりクリア。


7/25
そのままの勢いでAR表示にもトライ。初見の人には2D平面上に線を描いているだけに見えたようで、最後の方でARマーカの動きを動かしたことによって3次元的な軌跡だと分かってもらえた。
この動画はコツコツupしてきた研究紹介の動画よりもはるかにアクセス数が多く、嬉しいやら悲しいやら。。。


7/28
LeapMotionを利用するうちに「計測可能な範囲を目視で確認したい」と思ってやってみたのがこれ。ただし、全領域で手を動かすのは大変だったので前半分のみ。


8/2
LeapMotionを2個購入していたのでこれらを連動したコンテンツも作ってみました。これは2つのPC間をWebsocketで通信し、仮想空間内の3Dオブジェクト(球体)を双方で共有するといったものになります。遠隔地での共同作業なんかで使ってみたいなと考えています。


8/7
Kinectとの併用も試みました。LeapMotionは指の位置の取得、Kinectは距離画像を取得してCGと実物体との前後関係を認識するのに利用。CGの動きが指の動きより大きいのは座標をスケーリングをかけているため。
なお、この動画と7/25の指クルクル動画はAugmented Reality Barcelonaで紹介していただきました。[File]


10/1
CGとのインタラクションもやってみたくなって物理演算ライブラリのBulletSharpを導入。指先とCGがぶつかるとブロックが崩れていきます。


10/29
どうせ指差しをしているならソレらしいコンテンツも考えようと思って作ってみたのがARシューティング。指先から弾が飛んで壁に当たった時はかなりテンションが上がったのを覚えています。
ちなみに、これまでは指先の「座標」しか使用していませんでしたが、このコンテンツでは指の「向き」も銃弾が飛んでいく方向を決定するために使用しています。もちろんこれもSDKで簡単に取得できます。


10/31
前作の1人称視点バージョン。自分の視点と画面内の視点が一致しているのでかなり遊びやすくなった。この作品はSC13のResearchExhibitでの展示(@VR Study Meeting booth)の際に人目を引くためのデモにも使用し、来場者から"cool!","Incredible!"のコメントをいただけて大好評でした。もちろん研究紹介もちゃんとしました。


11/2
教育にも使えそうとの声があったので試作。原子のところに指を持っていくと原子の情報が表示されたり、両手を動かすと分子のスケールが変わったりします。もうちょっと見せ方や操作方法を工夫したいところ。



こうやって振り返ってみるとLeapMotionで色々と試せたなと思います。
またYouTubeで公開することで様々な国の方に興味を持ってもらい、問い合わせに答えながら交流ができたのもなかなか楽しかったです。


posted by yoshinaga at 13:03 | Comment(0) | 技術
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: