EXOS Haptics Library Developer Manual

 

 

 

Last updated on Apr 23, 2019

 

 

 

対応バージョン

Managed Unity DLL / Unity 2018 or Later / .Net Framework 4.7.1

 

 

デバイスの設定

EXOS Wrist Setup Manualをお読みください。

 

 

 

インストール方法

1. 以下を Asset Storeからインストールする。

 SteamVR Plugin (Tested up to version 2.0.1)

 

 ※2018.3以前のUnityバージョンにて下記ダイアログが出現する場合があります。

 

  

  

  2018.3以前ではOpenVRの手動インストールは不要ですので、下記のSettingからチェックを外してください。

  

2. Player Settingsから、.NET 4.X on Runtime ver selectionを選択する。

3. EXOS_Unity_SDK_vXXXをインストールする。

4. (Unity 2018.3 以降の場合) Window->Package ManagerからOpenVRをインストールする。

5. EXOS_Haptics_Library_vXXXをインストールする。

6. SteamVR_Input (with default)を生成する。

 

下記の実行によりSteamVR_InputフォルダがAssets直下に生成されます。

  

  

 

 

Step.1 物体に触れることができる手を表示する

新規シーンを作成してMainCameraを削除、適当な平面を配置してください。

 

EXOS_HAPTICS_LIBRARY/Assets/Standard/Prefabs/Static/[HandBuilder]を配置します。

 

設置した[HandBuilder]のSceneHandを設定します。ここでは[EHLHandSteamVR_Tools]を選択してください。

カメラのホームポジションにしたい場所にEXOS_HAPTICS_LIBRARY/Assets/Standard/Prefabs/Static/[StartMarker]を配置してください。

 

上記作業によって手が空間に現れます。また、Wristが正しく接続されていれば端末とWristが通信状態となります。

 

 

位置がずれている場合、スペースキーによりStartMarkerへの位置再設定を行えます。

また下記のキー入力により移動などが可能です

 

 

 

Step.2 触れることができるオブジェクトを用意する

 

手で触れやすい位置に物体が来るように適当な台を作成してください。

HandSettingについて

設定可能なHandSettingは下記の種類があります。

EHLHandSteamVR_Tools(標準Hand) ToolsMethodによる触覚判定を行います。
EHLHandSteamVR_Penalty  PenaltyMethodによる触覚判定を行います、EHL0.1.3以前のHandとなります。
EHLHandSteamVR_Gripper  Gripperを動作させるためのHandです。ViveTracker専用となります。

触覚の付与方法について

触りやすい位置・サイズでCubeを配置します。

 

[EHLHandSteamVR_Tools]の場合

対象のオブジェクトに下記を付与してください。

  • RigidBodyコンポーネント
  • ExosObjectスクリプト

以上により、対象のオブジェクトに触れた際にWristにフィードバックが発生するようになります。

 

[EHLHandSteamVR_Penalty]の場合

現在PenaltyMethod(Collider)とPenaltyMethod(Mesh)での触覚判定を行うことができます。

下記の表を参考に、用途に応じて選択して利用してください。

 

PenaltyMethod(Collider)の触覚判定の付与方法

 

対象のオブジェクトに下記を付与してください。

  • Rigidbodyコンポーネント
  • ExosObjectスクリプト
  • ColliderShapeContainerスクリプト

 

 

設置した物体に触れられることが確認できるようになります。

 

PenaltyMethod(Mesh)の触覚判定の付与方法

 

対象のオブジェクトに下記を付与してください。

  • Rigidbodyコンポーネント
  • ExosObjectスクリプト
  • MeshRendererContainerスクリプト
  • ExMeshSurfaceContainerスクリプト

 

 

設置した物体に触れられることが確認できるようになります。

 

 

Step3. オブジェクトに関与する・処理を加える

オブジェクトを掴む

 

対象のオブジェクトに下記を付与してください。

  • ExosGrabbableScriptスクリプト

 

手が触れているときにGrabボタンを押すと 押している間オブジェクトを掴んだ状態になります。 

 

※ExosObjectのIsStickyGrabをチェックするとトグル式になります。

 

※うまく掴めない時は[Steam_EventCaster_R_070]のUse/Gripが正しく設定されているかを確認してください。

 

掴んだオブジェクトの動作

Usable Scriptを付与し、掴んでる最中にUseボタンを押した際のEventを指定することができます。           

  • OnStart:Useが押された時のイベント
  • OnUpdate:Useが押されている時のイベント
  • OnEnd:Useが離された時のイベント

※DEMO/Sampleの銃の挙動などが該当します、詳しくはそちらをご確認ください。

 

 

補足資料:SteamVRの設定について

SteamVR 2.0.1以降では、Trackerの設定項目が追加されています。EHL Ver0.1.2以降を使用する場合、これらの設定が必要となります。

 

 

Tracker Role の設定

各トラッカーごとにRoleを設定することで、各トラッカーの使用する位置を固定することができます。

全身のトラッキングや、キーボードなどのデバイスのトラッキングが想定されており、あらかじめ設定項目が決められています。

ExosHapticsLibraryでは、Trackerを使用する箇所の設定はデフォルトですべてRightShoulderかLeftShoulderに設定されています。デバイスの左右に合わせて、どちらかを選択してください。

 

 

Action Binding の設定

Unity内での設定により、アプリケーション内で使用するActionを定義することができます。

ユーザーはそれらのActionに対して、SteamVRのメニュー画面からBindingを設定することができ、アプリケーション側を変更することなく、キーの割り当てを変更できるようになっています。

 

Trackerを使用する際には、PositionTrackingの設定がデフォルトでUnuseとなっており、ユーザー設定を変更しないとトラッキングが行われません。

TrackerのBindingの設定画面から、EditActionPose > Pose へと変更する必要があります。

 

詳細につきましては、SteamVR Documentをご確認ください。