パラメータ - みる会図書館


検索対象: Leap Motionプログラミングガイド 改訂版
25件見つかりました。

1. Leap Motionプログラミングガイド 改訂版

[ 3-9 ] ジェスチャーを検出する ・変数の追加と変更 Leap: :Frame lastFrame; std: :1ist<Leap: :SwipeGesture> beforeGestureList; params: : 工 nterfaceGl mparams; float minLenagth; float minvelocity; ・ setup() 127 minveloci ty = mLeap.confi g() . getFloat( "Gesture. Swi pe. Mi nveloci ty" ) ; minLenagth = mLeap. config(). getFloat( "Gesture. swipe. MinLength" ) ; / / 設定を変える mLeap . enableGesture( Leap: :Gesture: :Type: :TYPE—SWIPE ) ; / / ジェスチャーを有効にする void setup() ・「 setup ( ) 」の変更 引数には、「パラメータ名」と変更するための「変数」を指定します。 パラメータの追加には、「 params::InterfaceGI::addParam() 」を呼び出します。 引数には、「タイトル」と「表示位置」を指定します。 続いて「 params::InterfaceGI クラス」のインスタンスを作ります。 取得し、「 Config::getFloat() 」で初期値を取得します。 パラメータは、「 Leap::ControIler::config() 」で「 config クラス」のインスタンスを 「 TYPE_SWIPE 」のみ「 Leap::Controller::enabIeGesture() 」で有効化します。 初期化時に「スワイプ・ジェスチャー」のみを有効と、パラメータの設定をします。

2. Leap Motionプログラミングガイド 改訂版

[ 3-9 ] ジェスチャーを検出する 「キータップ・ジェスチャー」固有のパラメータは、「 Leap::KeyTapGesture クラ ス」で表わされ、次のパラメータがあります。 「 Leap::KeyTapGesture クラス」固有のバラメータ position direction progress pointable Vector Vector f loat 意味 キータップ・ジェスチャーの検出位置 キータップ・ジェスチャーの方向べクトル キータップ・ジェスチャーの検出状況 ( 常に 1 .0 ) Pointable ジェスチャーをしている指 「キータップ・ジェスチャー」の変更可能な検出設定は次の値です。 「キータップ・ジェスチャー」の設定 型 f loat float float デフォルトの値単位 意味 Gesture. KeyTap. MinDownVelocity Gesture. KeyTap. HistorySeconds Gesture. KeyTap. MinDistance しよう。 ・変数の追加と変更 50 0.1 3. O mm/ 秒 検出する最小の移動 速度 検出する最小の移動 時間 検出する最小の移動 距離 それでは実際に「キータップ・ジェスチャー」を検出し、目に見えるようにしてみま 137 storySeconds 」「 minDistance 」も合わせて定義しておきます。 「キータップ・ジェスチャー」のパラメータの値として「 minDownVelocity 」と「 Hi これで「キータップ・ジェスチャー」を扱えるようにします。 reGestureList 」のリストの型を、「 Leap::KeyTapGesture 」に変更します。 先ほど「 std::list<Leap::Gesture> 」で定義した、ジェスチャーを保持する「 befo リストのクラスを変史、パラメータの追加を行ないます。

3. Leap Motionプログラミングガイド 改訂版

第 3 章アプリケーションの開発 があります。 「 Leap::SwipeGesture クラス」固有のバラメータ 固有のパラメータは、「 Leap::SwipeGesture クラス」で表わされ、次のパラメー タ startPosition position d irect ion speed po i ntable 刑」 Vector Vector Vector float 意味 スワイプ・ジェスチャーの開始位置 スワイプ・ジェスチャーの現在位置 スワイプ・ジェスチャーの方向べクトル スワイプ・ジェスチャーの速度 ( mm / 秒 ) Pointable ジェスチャーをしている指 「スワイプ・ジェスチャー」の変更可能な検出設定は、次の値です。 「スワイプ・ジェスチャー」の設定 型 . Gesture. Swipe. MinVelocity float Gesture. Swipe. MinLength float デフォルトの値単位 意味 1 50 1000 mm 検出する最小の長さ mm/ 秒検出する最小の速度 それでは実際に「スワイプ・ジェスチャー」を検出し、目に見えるようにしてみましよう。 ・変数の追加と変更 先ほど「 std::list く Leap::Gesture> 」で定義した、ジェスチャーを保持する「 befo reGestureList 」のリストの型を「 Leap::SwipeGesture 」に変更します。 これで「スワイプ・ジェスチャー」を扱えるようにします。 またパラメータを動的に変更できるように、「 Cinder 」が提供するパラメータ変更 のためのクラスである「 params::InterfaceGl 」を定義します。 パラメータの値として「 minLenagth 」と「 minVeIocity 」も合わせて定義しておき ます。 なお、「 params::InterfaceGl 」を利用するには「 cinder/params/Params. h 」を インクルードします。 126

4. Leap Motionプログラミングガイド 改訂版

[ 3-9 ] ジェスチャーを検出する / / Leap Motion ・変数の追加と変更 「 historySeconds 」「 minDistance 」も合わせて定義しておきます。 「スクリーンタップ・ジェスチャー」のパラメータの値として「 minDownVelocity 」と これでスクリーンタップ・ジェスチャーを扱えるようにします。 reGestureList 」のリストの型を「 Leap::KeyTapGesture 」に変更します。 先ほど「 std::Iist<Leap::Gesture> 」で定義した、ジェスチャーを保持する「 befo リストのクラスを変更し、パラメータの追加を行ないます。 ・変数の追加と変更 しよう。 それでは実際にスクリーンタップ・ジェスチャーを検出し、目に見えるようにしてみま std: :list<Leap: :screenTapGesture> mGestureList; Leap: :Frame mLastFrame; Leap: :Frame mCurrentFrame; Leap: :controller mLeap; 143 続いて「パラメータ入力 UI 」の作成と「初期値」の設定を行ないます。 し「スクリーンタップ・ジェスチャー」のみ有効化します。 「 TYPE_SCREEN_TAP 」を、「 Leap: ℃ ontroller::enableGesture() 」に指定 ・ setupLeapObject() float mMinDistance; float mHistorySeconds; float mMi nDownVe1 oci ty ; params: :InterfaceGl mparams ;

5. Leap Motionプログラミングガイド 改訂版

第 3 章 アプリケーションの開発 図 3-24 0 ンユ ao 00 ! 6 ( : を S を 00 ー 洋 0 議い 00 ? 3 5 青をゞい 0 ′ 2 & 、い 00 ? 0 い : 宅 00 69 0 ′を 5 ! 00 6 / C ツ 0 靆 00 66 こ′ 0 第 00 60 Ge 第を Co 朝 0 ジェスチャーバラメータの調整 ジェスチャーを認識 ジェスチャーの認識には、いくつかのパラメータがあり、これを調整することでジェ 個別のジェスチャーの前に、「ジェスチャーパラメータ」の調整について解説します。 スチャーの認識具合を変えることができます。 この設定は、「 Leap::Config クラス」が担当し、「 Leap::ControlIer::config() 」を 呼ぶことで、 C 。 nfig クラスのインスタンスを取得できます。 パラメータは、「キー」と「値」から構成され、現在は次の値を変史できます。 ジェスチャーのバラメータ Gesture. Circle. MinRadius Gesture. Circle. MinA ℃ Gesture. Swipe. MinLength Gesture. Swipe. MinVeIocity Gesture. KeyTap. MinDownVelocity Gesture. KeyTap. HistorySeconds Gesture. KeyTap. MinDistance 124 Gesture. ScreenTap. MinDistance Gesture. ScreenTap. HistorySeconds Gesture. ScreenTap. MinForwardVeIocity 型 float float float f loat float f loat f loat f loat f loat f loat デフォルトの値 5. O 1 50 1 OOO 50 0.1 3.0 50 O. 1 5.0 単位 フンフ 7 ン mm/ 秒 mm/ 秒 秒 mm/ 秒

6. Leap Motionプログラミングガイド 改訂版

[ 3-9 ] ジェスチャーを検出する 実際のアプリケーションでは手の動きに合わせてジェスチャーを検出処理させま 「サークル・ジェスチャー」は、指を使った「円 川 00 すので、先ほど使った手の ID でフィルターするなどの処理が必要になります。 Min 0 [ Min L を 0 き綮 h 5W2 当叩 99 ( -05 ? 3 い 9 030848. 乃 9 博 3 ) しいを 3 氈を 1 1 1 10 0 い 2734 3024 9 swipe 00 98 ( ー 084 96- 0355411. 、、 0 39382 ) Le 1 1 1 14 0 14 ? 425 41 1 す 26 、 w 第 0 00 盟 ( ・・ 0817903 0483648 ー 031163 田し第社 1 1 1 13020812 46315 5 物 4 滝 op 96 い ( ) 8065 霍 046598 み ~ 036384 をし朝 : 1 : 12 0 20812 469032 いい pe 0095 を 0 月 5309 0490 炻 - ー 039 る 55 冫しをー 1 ! い 02168 リ 4572 ? ? sw 0 00 39 ( 0 ( 408323 00 い 9897 0999921 「′ 0 1 9 1 91 0346383 303095 0 を 5 いにに CO リ秋 0 サークル・ジェスチャー 図 3-26 スワイプ・ジェスチャー の動き」を検出します。 で表わされ、次のパラメータがあります。 「サークル・ジェスチャー」固有のパラメータは、「 Leap::CircIeGesture クラス」 図 3-27 サークル・ジェスチャー 131

7. Leap Motionプログラミングガイド 改訂版

[ 3-9 ] ジェスチャーを検出する 1 else { beforeGestureList. push—back( gesture ) ; Leap: :Gesture: :Type : :TYPE—SCREEN—TAP ) { ス」などそれぞれのジェスチャーのコンストラクタに「 Leap::Gesture クラス」のインスタ 各ジェスチャー固有のパラメータを取得する場合は、「 Leap::SwipeGesture クラ Leap: :Gesture: :Type: :TYPE—SWIPE ) { if ( gesture.type() / / 各ジェスチャー固有のパラメーターを取得する ・ジェスチャー固有のバラメータの取得 ンスを与えます。 Leap: :SwipeGesture swpie( gesture ) ; el se i f el se i f el se i f ( gesture. type() Leap: :CircleGesture circle( ( gesture. type() Leap: :KeyTapGesture keytap( ( gesture. type() Leap: :Gesture: :Type: :TYPE—CIRCLE ) { Leap : :Gesture : :Type : :TYPE—KEY—TAP ) { gesture gesture Leap: :ScreenTapGesture screentap( gesture ) ; 121 両者の差分から、最後の認識からの時間を算出しています。 レームを取得できます。 ジェスチャークラスも「 Leap::Gesture::frame() 」でそのジェスチャーを認識したフ 返します。 「 Leap::Frame::timestamp() 」は、フレームのタイムスタンプをマイクロ秒単位で すぐに削除はせず、認識しなくなって 1 秒たったジェスチャーを削除しています。 最後に、認識しなくなったジェスチャーを削除します。

8. Leap Motionプログラミングガイド 改訂版

第 3 章 アプリケーションの開発 「 Leap: ℃ ircIeGestu 「 e クラス」固有のバラメータ center normal progress radius pointable 型 Vector Vector float float 意味 サークル・ジェスチャーで検出した円の中心位置 サークル・ジェスチャーで検出した円の法線べクトル サークル・ジェスチャーで検出した円の進行状況 サークル・ジェスチャーで検出した円の半径 ( mm ) PointabIe ジェスチャーをしている指 「サークル・ジェスチャー」の変更可能な検出設定は、次の値です。 「サークル・ジェスチャー」の設定 型デフォルトの値単位 Gesture. Ci ℃ . MinRadius Gesture. Circle.MinArc float 5.0 float 検出する最小の半径 検出する最小の円弧の 長さ ラジ、ファン それでは実際に「サークル・ジェスチャー」を検出し、目に見えるようにしてみましよう。 ・変数の追加と変更 「スワイプ・ジェスチャー」と同じように、「リストのクラスを変更」「パラメータの追加」 を行ないます。 先ほど「 std::Iist<Leap::Gesture> 」で定義した、ジェスチャーを保持する「 befo reGestureList 」のリストの型を「 Leap::CircleGesture 」に変更します。 これで「サークル・ジェスチャー」を扱えるようにします。 「サークル・ジェスチャー」のパラメータの値として、「 minRadius 」と「 minArc 」も 合わせて定義しておきます。 ・変数の追加と変更 Leap: : Frame lastFrame; std: :1ist<Leap: :swipeGesture> beforeGestureList; params: :InterfaceGl mparams; 132

9. Leap Motionプログラミングガイド 改訂版

第 3 章アプリケーションの開発 ・「 Leap Motion 」の動作設定の設定、取得 「 config() 」では、「 Leap Motion 」の動作設定についてのパラメータを設定でき :Gesture: :Type: :TYPE_SWIPE ) ; :Gesture: :Type: :TYPE_CIRCLE ) ; :Gesture: :Type: :TYPE_KEY—TAP ) ; 現在は、「ジェスチャー」の検出に関わるパラメータのみとなっています。 ます。 ・ジェスチャーのバラメータの取得 mLeap. config() . save() ; mLeap . config() . setFloat("Gesture. Ci rcle . MinArc" mLeap. config() . setFloat("Gesture. Circle.MinRadius", 10.0 ) ; ・ジェスチャーのバラメータの変更 ※詳細は「 3-9 ジェスチャーを検出する」を参照してください。 ジェスチャーの状態は、「 isGestureEnabled() 」で取得できます。 「 enableGesture() 」は、ジェスチャーごとの「有効 / 無効」を切り替えます。 ・ジェスチャーの検出状態の設定、取得 minArc = mLeap. config() . getFloat( "Gesture. Ci rcle. MinArc' minRadius = mLeap. config() . getFloat( "Gesture. circle. MinRadius 「 3-9 」で利用しています。 ・ジェスチャーを有効にする mLeap. enableGesture( Leap: mLeap. enableGesture( Leap: mLeap.enab1eGesture( Leap: mLeap . enabIeGesture( Leap: ・ジェスチャーの状態の取得 :Gesture: :Type: :TYPE_SCREEN—TAP ) ; b001 isswipeEnabIe = mLeap. isGestureEnabIed( Leap: :Gesture: :Type: :TYPE_SWIPE ) ; ・「 Leap Motion コントローラー」「サービスの接続状態」の取得 「 isConnected() 」は、「アプリケーション」と「 Leap Motion コントローラー」の接 続状態を取得し、「 isServiceConnected() 」は「アプリケーション」と「 Leap Moti 76

10. Leap Motionプログラミングガイド 改訂版

第 3 章 アプリケーションの開発 スクリーンタップ・ジェスチャー 「スクリーンタップ・ジェスチャー」は指の前向きの動きを検出します。 コンピュータのスクリーン ( タッチパネル ) をタッチするような動作です。 「キータップ・ジェスチャー」と同じように、「ス ワイプ・ジェスチャー」で「検出距離」と「速度」 を下げると同じ動きを検出できますが、「スクリー ンタップ・ジェスチャー」は前向きの動きのみ検 出し、状態も「 Stop 」のみ通知され、指が止まっ た位置が取得できます。 図 3-31 スクリーンタップ・ジェスチャー 「スクリーンタップ・ジェスチャー」固有のパラメータは「 Leap::ScreenTapGestu re クラス」で表わされ、次のパラメータがあります。 「 Leap::ScreenTapGesture クラス」固有のバラメータ position d irecti on progress pointable 型 Vector Vector float Pointable 意味 スクリーンタップ・ジェスチャーの検出位置 スクリーンタップ・ジェスチャーの方向べクトル スクリーンタップ・ジェスチャーの検出状況 ( 常に 1 .0 ) ジェスチャーをしている指 」の変更可能な検出設定は、次の値です。 「スクリーンタップ・ジェスチャー 「スクリーンタップ・ジェスチャー」の設定 牙リ f loat float float テフォルトの値単位 意味 Gesture. ScreenTap. MinForwardVeI 142 Gesture. ScreenTap. MinDistance ds G estu re. ScreenTap. H i storyS econ oc ity 50 0.1 5.0 mm/ 秒 秒 検出する最小の移動 速度 検出する最小の移動 時間 検出する最小の移動 距離