Unity에서 Oculus Integration의 SampleFramework를 사용하여 Oculus Quest의 핸드 트래킹 시도 (2)

5875 단어 OculusQuestVRUnity

소개



지난번에는 트리거 액션으로 큐브의 색상을 변경했습니다.
Unity에서 Oculus Integration의 SampleFramework를 사용하여 Oculus Quest의 핸드 트래킹 시도

이번에는 SampleFramework의 Hands를 사용하여 핀치 폭을 얻어 보겠습니다.
그런 다음 All Valid Tools Tags를 변경하고 각각의 움직임이 될 수 있습니다.

Hands에서 사용할 수있는 것



Hands.cs



표시 유형 전환Hands.Instance.SwitchVisualization();
좌우 취득Hands.Instance.LeftHandHands.Instance.RightHand

Hand.cs



Hands로부터 좌우의 hand를 취득해, 각각에 실행할 수 있다

핀치 폭 획득hand.PinchStrength(OVRPlugin.HandFinger.Middle)
스켈레톤 표시hand.PinchStrength(OVRPlugin.HandFinger.Middle)

핀치 조작



MyHand.cs 스크립트를 만들고 Hands에 추가하십시오.

MyHand.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using OculusSampleFramework;

public class MyHand : MonoBehaviour
{
    private Renderer renderer;

    void Start()
    {
        renderer = GameObject.Find("CubeButtonRay").GetComponent<Renderer>();
    }

    void Update()
    {
        if (Hands.Instance.LeftHand.PinchStrength(OVRPlugin.HandFinger.Middle) > 0.9f)
        {
            renderer.material.color = Color.black;
        }
        else if (renderer.material.color == Color.black)
        {
            renderer.material.color = Color.white;
        }
    }
}

using OculusSampleFramework에서 Hands를 사용할 수 있습니다.
가운데 손가락을 핀치하면 큐브의 색을 검정으로
놓으면 백색으로 한다



표시 유형을 전환해 봅니다.



ButtonController 의 Interactable State Change 로 Hands 의 SwitchVisualization 를 호출한다



큐브를 선택하면 손 표시가 전환됩니다.



All Valid Tools Tags



전회는 모두 All로 하고 있었으므로, 큐브를 복제해, Ray, Poke, Pinch를 각각 배치해 보았습니다





모두



Ray에서도 Poke에서도 움직입니다.

Ray



조금 떠나지 않으면 선택할 수 없습니다.
선이 맞으면 빨아들이기 때문에 의외로 선택하기 쉬웠다



Poke



직접 접촉하면 발화
선이 닿더라도 빨아들이지 않는다.



Pinch



어떻게 움직이는거야?

사이고에게



그리고는 자유롭게 만들어 보자!
핸드 트래킹의 메뉴 표시를 멋지게 하고 싶다.
아바타의 이동은 어떻게 조작하자.
손을 잃었을 때의 거동을 생각하고 싶다.

좋은 웹페이지 즐겨찾기