こんにちは、くのへ@MasazaneKunoheです。
今日はMeta Quest3のパススルー機能を行っている際に、ハンドを3D-CGの手前に表示する方法を紹介します。
これはDepthと呼ばれる機能であり、自分の手とVRデバイスの距離をMetaQuest3が測定しており、その距離に応じて3D-CGの手前もしくは手奥に表示するものです。
はじめに
下の動画を見て下さい。左の動画は手がどんなに手前にあってもCubeの裏側に隠れてしまっています。
一方、右の動画は手がCubeの手前に見えています。
これは手の距離をMetaQuest3が認識し(Depthという機能。ハンドトラッキングもこれを使っている。)、その距離に応じて3D-CGの手前・手奥に表示するものです。
今回はこの設定を解説します。
開発方法
①準備(パススルーのセッティング、SceneModelPassThroughマテリアルの作成)
まず、パススルー機能をセッティングしてください(この記事です)。
そして、以前のMR化の記事で解説したSceneModelPassThroughというマテリアルを作ってください。この記事の①項のことです。
②OVRHandPrefabにセッティング
準備が出来たら、下図のようにヒエラルキーウィンドウからOVRHandPrefabを探し(下図①)、インスペクターウィンドウのSkinned Mesh Rendererを探し(下図②)、そして、Materialsの項を開きます(下図③)。
そして、SceneModelPassThroughマテリアルと交換してください。ドラッグアンドドロップすればOKです(下図③)。
左手が終わったら、右手にも同じ設定を行います。
以上です!
これだけで、ハンドが3D-CGの手前に表示されるようになります。
なお、どうしても手の周囲の薄皮一枚分だけ背面が映ってしまいます。他の手法を用いることで、対応できる可能性があるのですが、非常に手順が複雑なので、それは研究次第、また別記事としてアップしたいと思います。
今日はパススルー機能中にハンドを3D-CGの手前に表示する方法(Depth機能)を解説しました。
仮想現実と現実世界(自分の手)が融合する瞬間であり、これもとても面白いですね~。
ではまた別の記事で会いましょう。
ではでは~
🦅バサバサ~