前回「Oculus Interaction SDKを使ってみました ~ Poke編 ~」、前々回「 Oculus Interaction SDKを使ってみました」で、Oculus Interaction SDKを利用して「ものを掴む」「ものをつつく」の基本的な動作を実現しました。
しかしながら、このままだといくつか不都合な点があります。
Oculus Interaction SDKのHandGrabPoseコンポーネントでは、指の可動範囲を制限して、ものを握った見た目を維持することができるのですが、このままの設定だと以下のように指が握っているものを貫通します。
また、Poke機能でものをつついた時に以下のように指が貫通してしまいます。
これをうまく解決してくれるのが LeftHandSynthetic と RightHandSynthetic です。
今回は、この導入方法についてまとめます。
前回の設定が行われている前提の手順となります。
これらの設定は、OculusIntegrationのサンプルシーン(Oculus > Interaction > Samples > Scenes > Example)を参考にさせて頂きました
LeftHandSynthetic と RightHandSynthetic の導入
- OVRHands の下にLeftHandSyntheticとRightHandSyntheticを配置します
- OVRHandsのLeftHandSyntheticとRightHandSyntheticにそれぞれ、LeftHand、RightHandを設定します
- OVRHandsのLeftHand、RightHand配下にあるLeftHandVisual、RightHandVisualをそれぞれ無効化します
掴む(Grab)設定編
- OVRHandsのLeftHand、RightHandの配下にあるHandGrabInteractorのさらに配下、HandGrabVisualを有効化して、それぞれLeftHandSyntheticとRightHandSyntheticを設定します
- これで、HandGrabPoseコンポーネントの制限が効くようになります(握りしめていますが、HandGrabPoseで指定した制限により、握った形が維持されています)
つつく(Poke)設定編
- OVRHandsのLeftHand、RightHandの配下にあるHandPokeInteractorのさらに配下、HandPokeLimiterを有効化して、それぞれLeftHandSyntheticとRightHandSyntheticを設定します
- これで、つついた時に指が貫通しなくなります
Oculus Interaction SDKは、まだまだいろいろできそうなので、検証していきます。