UnityでValveIndexコントローラーの指入力を取る方法です
前提条件
- SteamVRは2.0以降を使用します
- Action Setsはdefaultを使用します
実行環境
- Windows10
- Unity 2019.2.8f1
- SteamVR Plugin 2.5.0
#SteamVR Inputの設定
Asset StoreでSteamVRをimport後、メニューの「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.5 ・ボタンに指を置いた場合:約0.8 |
indexCurl | 人差し指の握りを表します |
middleCurl | 中指の握りを表します |
ringCurl | 薬指の握りを表します |
pinkyCurl | 小指の握りを表します |
#実行の準備
Main Cameraを削除して[CameraRig]をHierarchyに追加します
適当にGameObjectを作成して先ほど作成したスクリプト「InputTest.cs」をアタッチします
inspectorから指の入力を取得する手を選択します
今回は左手の指入力を取得するので「\action\default\in\SkeletonLeftHand」を選択します