Leap motion

提供: socialakiba wiki
移動: 案内検索

windows 10 + unity 5.6 + leap motion controller デスクトップセットアップ

まず、leap motion のサイトから

leap motion setup windows 2.3.1.exe

を落としてきて実行。ウェブサイトのデモを動かしてみる。普通、キャリブレーションなど何もしなくても使える。次に

leap motion orion setup win 3.2.0.exe

を落としてきて実行。

Headset も Orion も要らないわー、と思って古い SDK をインストールすると unity 当たりではまります(windows 7 では動くが windows 10 では動かないとかそんな挙動)。 次に、unity を起動しプロジェクトを開いた状態で、

leap motion core assets 4.2.0.unitypackage

を落としてきて unity用のアセットをインポート。

デスクトップのデモを動かしてみる。例えば Assets\LeapMotion\Core\Scenes の中にある Leap Hands Demo Desktop.unity など。

とりあえず InteractionBox の中で片手の位置を認識

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Leap;

public class NewBehaviourScript : MonoBehaviour {
    Controller controller;

    public GameObject ball;

    void Start()
    {
        controller = new Controller();
    }

    void Update()// 手のひらの位置をカメラ座標に変換
    {
        Frame frame = controller.Frame();
        InteractionBox interactionBox = frame.InteractionBox;
        Hand hand = frame.Hands[0];

        Vector pos = interactionBox.NormalizePoint(hand.PalmPosition);
        pos.x -= 0.5f;
        pos.z *= -1;
        pos *= 10;
        ball.transform.localPosition = new Vector3(pos.x, pos.y, pos.z);
    }

    void OnApplicationQuit()// 無いとフリーズする。
    {
        controller.StopConnection();
        controller.Dispose();
    }
}

このスクリプトをメインカメラのコンポーネントに仕込む。

ball には手の位置に動かしたい 3D オブジェクトを登録する。