Leap Motion Developer SDK の C++ サンプルやデモは「Cinder(シンダー)」と呼ばれるフレームワークで作られているものが多くあります。Cinder とは ProcessingやopenFrameworks に類するフレームワークで、より簡単にC++アプリケーションの作成ができるようになっています。日本では、プログラムの入門に Processingが、 Mac でインタラクションのアプリケーションを開発する際に openFrameworks が利用されることが多いようです。Cinderは海外では多く使われているようですが、日本ではProcessingやopenFrameworksに比べると... というのが現状のようです。
ここでは Cinder を利用した Leap Motion Developer SDK の開発手順についてまとめます。
Cinderのダウンロード
Cinder のダウンロードページ(http://libcinder.org/download/)から自分の環境のCinderをダウンロードします。ここでは 「Cinder for Mac OS X」とします。ZIPファイルのダウンロードが終わったら解凍します。
Cinder を使ったプロジェクトを作成する
プロジェクト作成ツールである TinderBox を起動します。この実行ファイルは「cinder_0.8.5_mac\tools\TinderBox-Mac\TinderBox」にあります。
起動すると、テンプレート、プロジェクト名、出力先、Cinderバージョン、対応環境を設定します。対応環境について、MacだけならXcodeを、MacとWindowsを両対応するには Xcode と VC++2012 の両方を選択します(Visual Studio側のPath設定を確認する必要があります)。
環境によってはテンプレートの項が空欄になっている場合があります。これはCinderバージョンの位置があってない場合で「Settings」ボタンから「Preferencve」画面でHEADの位置を正しく指定してください。
プロジェクトを作成すると、Boxと呼ばれるアドインを選択します。ここでは何も使用しませんが、物理エンジンのBox2DやOpenCVなどを利用することができます。
作成されたプロジェクトがこちらです。「xcode」フォルダにプロジェクトファイルがあります。
Cinderを使ったアプリケーションを作成する
Leap MotionとCinder を使った、簡単でわかりやすいアプリケーションを作成します。「Touch Emulation」とういうタッチを模擬したアプリケーションで Leap Motion のデベロッパーサイト(https://developer.leapmotion.com/documentation/Languages/C++/Guides/Leap_Touch_Emulation.html)あります。
Cinderの環境は上記で作成したものを使用しますが、Leap Motion Developer SDK の環境が入っていませんので、 こちら(http://www.naturalsoftware.jp/blog/8376)を参考にして、 環境を追加してください。
Touch Emulation のコードを書いて実行すると、次のような画面が表示されます。Leap Motion 上で指を動かすと、その位置に応じて丸の描画が変わります。これはタッチの検出で、指をぐっと押すと丸が緑に変わり、タッチされたことを通知します。