EXOS Haptics Library Developer Manual

 

 

 

Last updated on Mar 11, 2019

 

 

 

対応バージョン

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

 

 

デバイスの設定

DK2セットアップマニュアルをお読みください。

 

 

インストール方法

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

 SteamVR Plugin (Tested up to version 2.0.1)

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)を生成する。

7. Define Symbolに「 EHL_SteamVR」の定義がされていることを確認する。

     ※自動で定義されますが、定義されていない場合は

     ・\Assets\EXOS_HAPTICS_LIBRARY\Assets\Standard\Resourcesのreimport

     ・Unityの再起動

     を行ってください。

 

 

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

 

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

 

EXOS_HAPTICS_LIBRARY/EHL_SteamVR/Assets/Prefab/[SteamVR2.0]を配置します。

 

EXOS_HAPTICS_LIBRARY/EHL_SteamVR/Assets/Prefab/ExosDeviceの EXOS_ViveWrist_DK2_R_070をシーンに配置します。

 

EXOS_ViveWrist_DK2_R_070のOriginを[SteamVR2.0]に設定します。

 

PlayerSettings->OtherSettings->Optimization->PreloadedAssetsに EXOS_HAPTICS_LIBRARY/Assets/Standard/Resources/ExosRscContainerを登録します。

 

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

 

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

 

 

 

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

 

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

 

触覚判定の方式について

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

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

※Meshデータの条件により計算が正しくない場合があり、継続して改善しています。

 

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

 

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

 

CubeのコンポーネントにRigidbody/ExosObject/ColliderShapeConainerを追加します。

 

 

ExosObjectのIsPhysicalObjectにチェックし SharedPhyscalPropertiesにPhysicalPropertiesを設定します。

 

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

 

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

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

 

CubeにRigidbody/ExosObject/MeshRendererContainer/ExMeshSurfaceContainerを追加してください。

 

ExosObjectのIsPhysicalObjectにチェックしSharedPhyscalPropertiesにPhysicalPropertiesを設定します。 

 

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

 

 

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

 

オブジェクトを掴む

 

掴みたいオブジェクトにGrabbable scriptを付与します。

 

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

 

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

※うまく掴めない時は[EXOS_ViveEventCaster_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をご確認ください。