Magic Leap One을 통한 제스처 인식
10707 단어 MagicLeap
MagicLeap이 축소판 그림의 손을 인식하면 Unity 편집기에 로그가 나타납니다.
동작을 확인하면 매직리프를 PC에 연결해 ZeroIteration으로 진행한다.
컨디션
PC : Windows10
Unity : 2019.3.7f1
Lumin SDK : v.0.24.1
이루어지다
먼저 GestureTrackingManager 클래스를 만듭니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.MagicLeap;
public class GestureTrackingManager : MonoBehaviour
{
private void Start()
{
}
private void Update()
{
}
}
사용할 제스처를 정의하고 Start에 등록합니다.여러 개의 제스처가 있다면 목록에 등록하세요.이번에는 미리 보기 그림만 사용합니다.
/// <summary>使用するジェスチャー</summary>
private MLHandTracking.HandKeyPose _gesture;
private void Start()
{
MLHandTracking.Start();
// トラッキングするジェスチャーを登録
_gesture = new MLHandTracking.HandKeyPose.Thumb;
// 登録したジェスチャーのトラッキングを有効にする
MLHandTracking.KeyPoseManager.EnableKeyPoses(_gesture, true, false);
}
다음은 실제 인식의 처리다.다음 GetGesture 방법은 지정된 제스처를 인식한 후 True로 돌아갑니다.
bool GetGesture(MLHandTracking.Hand hand)
{
if (hand != null)
{
if (hand.KeyPose == MLHandTracking.HandKeyPose.Thumb && hand.HandKeyPoseConfidence > 0.9f)
{
return true;
}
}
return false;
}
좌우 임의의 손으로 미리 보기 그림을 업그레이드하면 로그가 나온다.public void TrackGesture()
{
if(GetGesture(MLHandTracking.Left) || GetGesture(MLHandTracking.Right))
{
Debug.Log("Hand gesture Thumb was detected.");
}
}
Update를 사용하여 TrackGesture 메서드를 호출합니다.반 전체 학생은 아래와 같다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.MagicLeap;
namespace Manager
{
public class GestureTrackingManager : MonoBehaviour
{
/// <summary>使用するジェスチャーリスト</summary>
private MLHandTracking.HandKeyPose[] _gestures;
private void Start()
{
MLHandTracking.Start();
// トラッキングするジェスチャーを登録
_gestures = new MLHandTracking.HandKeyPose[2];
_gestures[0] = MLHandTracking.HandKeyPose.Ok;
_gestures[1] = MLHandTracking.HandKeyPose.Thumb;
// 登録したジェスチャーのトラッキングを有効にする
MLHandTracking.KeyPoseManager.EnableKeyPoses(_gestures, true, false);
}
private void Update()
{
TrackGesture();
}
private void OnDestroy()
{
MLHandTracking.Stop();
}
public void TrackGesture()
{
if (GetGesture(MLHandTracking.Left) || GetGesture(MLHandTracking.Right))
{
Debug.Log("Hand gesture Thumb was detected.");
}
}
bool GetGesture(MLHandTracking.Hand hand)
{
if (hand != null)
{
if (hand.KeyPose == MLHandTracking.HandKeyPose.Thumb && hand.HandKeyPoseConfidence > 0.9f)
{
return true;
}
}
return false;
}
}
}
콘솔에 다음 로그가 있습니다.Reference
이 문제에 관하여(Magic Leap One을 통한 제스처 인식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NestVisual/items/cda26de6cccb945ec0c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)