SDKの使用方法

プロジェクト作成画面で、バーチャルリアリティテンプレートを選択してプロジェクトを作成します。

vr.jpg

SteamVRとDivingStationのセットアップが正しく完了している場合、 VR Previewを実行することで、ハンドトラッキングができる状態になっています。

ContactGlove API へのアクセス

ここではBlueprintからContactGlove API へアクセスする方法を説明します。 まずはPlugins/ContactGlovePlugin/Content/Blueprints/フォルダ内にある CGPawnをDefault Pawn Classに設定してください。

Project Settings→Maps & Modesと進み、Default ModesのDefault Pawn ClassをCGPawnに設定します。

ContactGloveComponent

bp1.jpg

CGPawnはContactGloveComponentを所有しています。 ContactGloveの各データへのアクセスはこのコンポーネントを介して行います。 (AddボタンからContactGloveComponentを追加できます。)

DevicePriority

DivingStationに複数のデバイスが接続されている場合は、ContactGloveComponent の DevicePriority で参照するデバイスを選択できます。 DevicePriority は First から Sixth までの最大6台分です。

優先順位は、DivingStationから受信したデバイスIDに対して自動的に割り当てられます。

bp2.jpg

例えば上の写真のような使い方をします。 Send Vibrationノードで左手に0.1秒間の振動を与えています。 続く Set Haptics ノードでは、左手人差し指の触覚状態を有効にしています。動作の詳細は Set Haptics の説明をご覧ください。 Set Haptics は法人向け販売の触覚モジュール搭載モデルでのみ使用できます。通常モデルでは Send Vibration による振動を使用してください。

イベント

ContactGloveComponentには、DivingStationからデータを受信した際やボタン入力に変化があった際に発生するイベントがいくつか含まれています。

bp3.jpg

OnControllerDataイベントは、コントローラ情報に変化があった際に呼ばれます。

FControllerInputというコントローラ情報をすべて含んだ構造体が渡されるため、Break Controller Inputを用いて分解して必要な情報を取り出します。

アニメーション

手のビジュアライズは、CGPawn > {Left, Right}Hand > SkeletalMeshComponent > Hand_{L, R}_Skeleton_Animが実行しています。

このクラスはPlugins/ContactGlovePlugin/Content/Mesh/フォルダ内にあります。 このアニメーションBlueprintを開き、AnimGraphを開くと以下のようなものが現れます。 anim1.jpg

SetFingerRotationノードでは、DivingStationから手の曲げ具合を取得し、ボーンに反映しています。 ただし、対応するボーンや最大回転量などをDetailsで指定する必要があります。

anim2.jpg

より詳細な使用方法については、ドキュメントを参照してください。