OculusTouch
Oculus Rift CV1用モーションコントローラー。
VR空間内に自分の手を持ち込めるといっても過言ではないかもしれない。
このページではUnityでの開発方法について記述していきます。
基礎知識
フレームシンセシス様のページが詳しい。(まる投げ )
Unity+Oculus Touch開発メモ - フレームシンセシス
物体を投げる仕組みを作る
物体を投げる仕組みを作ってみる。
選択肢はひとまず次の2つ。
- Oculusの中の人が作ったサンプルプロジェクトを使う
- いちから自分で作る
物体を投げる仕組みをOculusの中の人が作ったサンプルプロジェクトを使って実現する
物体を投げる仕組みを、Oculusの中の方が開発したサンプルプロジェクトを使って実現してみる。
Unity 5.4系だとクラッシュするので、5.5系推奨。
試した際の動画。
手順
- Avatar Grab sampleをダウンロードする。
- Oculus Utilities for Unity 5をダウンロードする。
- Oculus Avatar SDKをダウンロードする。
- Unityで新規プロジェクトを作成する。
- 1を展開して、AvatarGrabSample.unitypackageをインポートする。
- 2を展開して、OculusUtilities.unitypackageをインポートする。
- 3を展開して、OvrAvatar.unitypackageをインポートする。
- Samples/Content/AvatarWithGrab.unityを開く。
おしまい!簡単!
トラブルシューティング: "No Oculus Rift App ID has been provided."というエラーメッセージが表示される。
- メニューの[Oculus Avatars]>[Edit Configuration]をクリックする。
- 右ペインの[Oculus Rift App Id]に開発者ダッシュボードに表示されているApp IDを入れる。
Oculus Avatar SDKについては凹みさんの記事が詳しい。
トラブルシューティング: ビルドすると手が表示されない
Unity 5.5.0p3でビルドしexeを実行したところ、握れるものの、手が表示されなかった。
次のようにすると解消できる。
- [Edit]>[Project Settings]>[Graphics]を開く。
- [Always Included Shaders]の[Size]を現在の値から3つ増やす。
- 追加分にぞれそれ"AvatarSurfaceShader"、"AvatarSurfaceShaderPBS"、"AvatarSurfaceShaderSelfOccluding"を設定する。
- ビルドの際に[Architecture]で[x86_64]を選択する。(参考情報)
トラブルシューティング: ボールが投げにくい
(人によっては)箱に比べてボールが投げにくい。
これは次の理由による。
- ボールにはGrabblableスクリプトがAddされており、同スクリプトのSnapOffsetの設定により、てのひらに握り込むようになっている。
- 一方で、自分の場合は、手首のスナップで投げようとしていたため、角速度が十分出ずに飛ばなかった。
次のどちらかを採ると解消する。
(a)手首のスナップで投げても角速度が出やすくするように設定する。箱の設定のようにSnapOffsetをnullに設定して、指先で握れるようにする。
(b)設定は変えずに、手首のスナップではなく拳を突き出すようにして投げる。
物体を投げる仕組みをいちから自分で作る
以下のチュートリアル動画が参考になる。