日々の色々

そのときやってることはまってることについて書いてくよ

デバイス機器を用いたプログラミング

はじめに

この記事はSLP KBIT Advent Calendar 2015 - Adventarの20日目の記事です。

LeapMotionを使用したプログラミング

今回は、LeaPresenの改良を行った際に、LeapMotionを使用することになりました。そのため、今回はLeapMotionでの開発の基礎みたいな記事を書いていきます。LeapMotion、ひいてはデバイスを使用したプログラミングに興味のある方は是非読んでいってください。もし、LeapMotion興味ないって人は最後の「デバイスを使ったプログラミングをしてみて」ってところだけでも読んでいただければ幸いです。

 

github.com

github.com

 

LeapMotionとはなんぞや

 LeapMotionとは、両手の指の動きを検知し、空中ジェスチャ操作を認識するNUI機器で、サイズは小さくポケットに入るほど小型なデバイスである。また、値段も一万円以下とNUI機器の中では安価な商品である。対応OSにはWindows, MacOS, Linuxと幅広く対応している。ただし、2015年12月現在ではWindows10には対応できていないようである。最近の傾向としては、UnityやVR機器との連携に力を入れているように感じる。

f:id:ucchi_in:20151219200511p:plain

 

実際に動かしてみよう

LeapMotionをPCに接続して、公式のセットアップから環境に合わせてソフトをダウンロードしよう。そして、LeapMotionを接続してApp Homeを開くとデフォルトで入っているアプリケーションで遊ぶことができる。また、LeapMotionのAppStoreがあるので、そこから無料のアプリをダウンロードすることもできる。これだけの説明じゃ分かんねぇよ!!って人は”LeapMotiton Setup”で検索検索ゥ

LeapMotionでの開発

それでは、次は環境構築の手順について説明します。最初に、この記事を書いているときの私の開発環境はこのようになっています。適宜、自分の環境に読み替えて見ていってください。

 LeapMotionSDKのインストール

公式の開発者のところから LeapMotionSDKのインストールを行います。そしてダウンロードされたLeapSDKを解凍した後、任意の場所においてください。(今回はCドライブ直下とします)

VisualStudioの設定

VisualStudioを起動したら、[ファイル][新規作成][プロジェクト][テンプレート][VisualC#]とすすみ、[コンソールアプリケーション]を作成します。(色を黒に変えているので見にくかったらスミマセン)

f:id:ucchi_in:20151219210413p:plain

プロジェクトができたら、LeapMotionを使うための設定を行います。[プロジェクト][参照の追加]、ボタンの[参照]とすすみ、[C:\LeapSDK\lib\Leap\LeapCSharp.NET4.0.dll]を追加します。

f:id:ucchi_in:20151219211108p:plain

最後に、[プロジェクト][プロパティ][ビルドイベント]とすすみ、ビルド後に実行するコマンドラインのところに、以下の文を追加します。

xcopy /yr "C:\LeapSDK\lib\x86\Leap.dll" "$(TargetDir)"

xcopy /yr "C:\LeapSDK\lib\x86\LeapCSharp.dll" "$(TargetDir)"

 

f:id:ucchi_in:20151219211719p:plain

アプリの実行

先ほどダウンロードした[C:\LeapSDK\samples\]にある[Sample.cs]の内容をコピペして実行します。結果が見えにくいですが、LeapMotion上に手をかざすとこんな感じになれば成功です。

f:id:ucchi_in:20151219220044p:plain

LeapMotionにできること

LeapMotionでは手のモーションや、伸ばしている指の検出など様々なことがが行えます。この辺を説明すると長くなるので、ここのサイトのサンプルと説明を見ればだいたい分かるので参考にしてください。(マル投げ)

もし、サンプルが動かなかったら、上記で行ったビルドイベントのところを確認してみてください。

www.buildinsider.net

デバイスを使ったプログラミングをしてみて

 今回は、LeapMotionを使用したアプリケーションを作成したので、その導入部分を紹介しました。デバイス機器を用いたプログラミングを行ってみて、まず動かなかったり、値が思ったように取れなかったり、座標がどのようになっているのかが分からなかったり、今まであまり苦戦したことがないことに苦労しました。しかし、外部機器を用いたプログラミングは面白く、見た目的にも映えるものを作りやすように感じます。昨今ではLeapMotionに限らず、OculusRiftやKinectなど様々なデバイス機器が安価になり手に入りやすくなってきています。皆さんもこれを期に様々なデバイスを利用したプログラミングを初めてみてはいかがですか? 

 

参考にさせていただいたサイト

Leap Motion Developer SDK で開発できる環境を整える(Windows C# 編) - Natural Software