Questハンドトラッキングを実案件で使ってみた所感

システム

先日、弊社でQuestハンドトラッキングを実案件で初めて使用したので、

その所感と簡単なTipsなどを紹介します。

 

 開発環境

Unity 2019.4.1f1

Oculus Integration v18.0

 

 

 サクッと動作確認をしてみる

何はともあれ、まずはどうすれば実機で動作するのか、ミニマムにやっていきます。

 

アセットストアから Oculus Integration をインポートします。

 

OculusProjectConfig の Target DeviceQuest に、

Hand Tracking SupportControllers And Hands もしくは Hands Only に設定します。

Quest ハンドトラッキング

 

空のシーンを用意して、OVRCameraRig を配置します。

Quest ハンドトラッキング

 

左右の HandAnchor 直下に OVRHandPrefab を配置し、

右手側のオプションを Hand Right に変更します。

Quest ハンドトラッキング

 

ビルドして実機で実行すると、以下のような黒い手が出てきます。

(ビルドにまつわる解説は割愛します。)

Quest ハンドトラッキング

 

 

 OVRHandPrefabについて

あらかじめ様々なコンポーネントがアタッチされており、

骨表示にしたり、インタラクションのためのコライダをつけたり、

また、↑動画のようにトラッキングができなくなると自動的に消えたりします。

 

とても便利そうなのですが、骨やメッシュ自体のオブジェクトがランタイムで生成されるため、

案件に合わせた、より細かい仕込みをするのが困難です。

Регистрация, рабочие зеркала, как написать в техподдержку и скачать мобильное приложение. Все о казино Вавада и ссылка на регистрацию с бонусами, присоединяйтесь к Vavada casino и получайте приветственный пакет подарков.

 

 

 OVRCustomHandPrefabについて

そこで、別で用意されている OVRCustomHandPrefab を使用します。

 

こちらは左右別々のプレハブが用意されているので、それぞれを HandAnchor の直下に配置します。

Quest ハンドトラッキング

 

OVRHandPrefab と違い、エディター上でモデルと骨のオブジェクトを確認できるので、

例えば、細かいボタンを押すために指先だけにコライダを仕込んだりなど、

用途に合わせたカスタマイズがしやすいです。

Quest ハンドトラッキング

 

ただし、トラッキングが外れた場合は、

消えるのではなくローカル座標が(0, 0, 0)に来るだけなので、(↑画像のような配置になる)

カメラから不自然な見え方をしてしまいます。

特に両面描画をしている場合はなおさらです。

Quest ハンドトラッキング

 

トラッキングロスト時の非表示機能は OVRHandPrefab にアタッチされている

OVRMeshRenderer.cs 内に記述されているので、

必要部分だけを抜き出したコンポーネントを新たに作成し、アタッチすればよいです。

Quest ハンドトラッキング

 

MeshNode をデュプリケートして、見た目の違う手を(マテリアル & シェーダーが違う)

フェードで入れ替えたりなんかもできます。

Quest ハンドトラッキング

 

 

 ピンチ値の利用

各指のピンチ値を取得する事ができるので、


ピンチしていない状態(開いている)= コライダー On

ピンチしている状態(閉じている)= コライダー Off

という設定をすることで、意図しない操作を防ぐことができました。

Quest ハンドトラッキング

 

 

 Oculus Link は必須

スムーズにデバッグを進めるためには Oculus Link は必須です。

無いとハンドトラッキングを使用したコンテンツ制作は不可能、と言っても過言ではありません。

 

しかし、こいつは曲者です。うまくいったりいかなかったりします。

どうにかして環境構築してください。

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)