Unity에서 ValveIndex 컨트롤러의 손가락 입력 받기

Unity에서 ValveIndex 컨트롤러의 손가락을 입력하는 방법입니다.

전제 조건


  • SteamVR은 2.0 이상을 사용합니다
  • Action Sets는 default를 사용합니다

  • 실행 환경


  • Windows10
  • Unity 2019.2.8f1
  • SteamVR Plugin 2.5.0

  • SteamVR 입력 설정



    Asset Store에서 SteamVR을 가져온 후 메뉴의 Window 탭에서 SteamVR Input을 선택합니다.

    actions.json이 없다는 것을 말하기 때문에 "Yes"를 선택하십시오.

    SteamVR Input이 열리면 "Save and generate"를 선택합니다.


    스크립트 작성



    InputTest.cs
    using UnityEngine;
    using Valve.VR;
    
    public class InputTest : MonoBehaviour
    {
        // 指の入力
        public SteamVR_Action_Skeleton actionSkeleton;
    
        void Update()
        {
            Debug.Log(
                "親指:" + actionSkeleton.thumbCurl +
                "人差し指:" + actionSkeleton.indexCurl +
                "中指:"+actionSkeleton.middleCurl +
                "薬指:"+actionSkeleton.ringCurl +
                "小指:"+actionSkeleton.pinkyCurl
                );
        }
    }
    

    SteamVR_Action_Skeleton



    손가락의 입력 액션의 상태를 가져 오는 클래스입니다.

    thumbCurl~pinkyCurl



    각각의 손가락을 얼마나 잡고 있는지 「0~1.0」의 float치로 표현됩니다


    매개변수
    설명


    thumbCurl
    엄지 손가락을 나타냅니다 엄지의 값은 조금 특수하고, 다음과 같은 값이 들어갑니다. 스틱에 손가락을 넣은 경우: 약 0.4. 놓은 경우: 약 0.8

    indexCurl
    검지 손가락의 손잡이를 나타냅니다.

    middleCurl
    가운데 손가락의 손잡이를 나타냅니다.

    ringCurl
    약지 손잡이를 나타냅니다.

    pinkyCurl
    새끼 손가락을 나타냅니다.


    실행 준비



    Main Camera를 삭제하고 CameraRig를 Hierarchy에 추가합니다.

    적당히 GameObject를 작성해 방금 작성한 스크립트 "InputTest.cs"를 첨부합니다
    inspector에서 손가락 입력을 가져올 손을 선택합니다.
    이번에는 왼손의 손가락 입력을 취득하므로 「\action\default\in\SkeletonLeftHand」를 선택합니다


    실행



    게임을 재생하고 왼손 ValveIndex 컨트롤러를 잡으면 디버그 로그 값이 변경됩니다.


    참고 사이트



    클래스 SteamVR_Action_Skeleton

    좋은 웹페이지 즐겨찾기