Leap Motion Core Assets for Unity 4.0.1とOrion Pinch Module

1.始めに

Leap Motion Core Assets for Unity 4.0.1がリリースされました。

https://developer.leapmotion.com/gallery/unity-core-assets

Pinch機能(人差し指と親指でつまむジェスチャー)に対応しました。これは別パッケージを追加でインストールします。

https://developer.leapmotion.com/gallery/pinch-move

Pinch機能対応モジュールはzipファイルになっており、サンプルの実行ファイルも含まれています。

 

2. 使用方法

まずCoreパッケージをインポートします。次にPinchパッケージを追加でインポートします。

上記のサンプルシーンはAssets/LeapMotionModules/PinchUtility/Exampls/Scenes/にあります。

スクリーンショット 2016-03-03 22.10.46

3. Pinch機能の使い方

サンプルシーンのHierarchyにあるLMHeadMoountedRig/CenterEyeAnchor/LeapSpace/LeapHandController/の下にあるCapsuleHand_LとCapsuleHand_RにLeapMotionModules/PinchUtility/Scripts/LeapPinchDetector.csがアタッチされているのが分かります。

sc1

何も無い状態から設定した時は、スクリプトをアタッチ後にHand ModelにアタッチしたGameObjectをセットしてください。

 

次にユーザプログラムでピンチを検出するためのサンプルコードについてです。

PinchDrawDemoシーンファイルを開き、HierarchyのPinch Drawingを確認すると、PinchDraw.csがアタッチされているのが分ります。このプログラムにはピンチを検出したあと、線を空中に書くコードが書かれています。

sc2

このときPinch Detectorsに先ほどLeapPinchDetector.csをアタッチしたGameObjectを設定するのがポイントです。

以下に、PinchDraw.csでピンチを検出するところだけ抜き出したもを示します。

using UnityEngine;
using System.Collections.Generic;

namespace Leap.PinchUtility.Examples {

  [ExecuteAfter(typeof(LeapPinchDetector))]   //Execute after LeapPinchDetector so we give it a chance to update before we do
  public class PinchDraw : MonoBehaviour {

    [Tooltip("Each pinch detector can draw one line at a time.")]
    [SerializeField]
    private LeapPinchDetector[] _pinchDetectors; /* LeapPinchDetector.csがアタッチされたGameObject群 */

    /*  省略  */

    void Update() {
      for (int i = 0; i < _pinchDetectors.Length; i++) {
        var detector = _pinchDetectors[i];
        if (detector.DidStartPinch) {
             /* ピンチ開始時の処理 */
        }

        if (detector.DidEndPinch) {
             /* ピンチ終了時の処理 */
        }

        if (detector.IsPinching) {
             /* ピンチ中の処理 */
        }
      }
    }
  }
}

これを参考に自作アプリに組み込んでください。

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です