本日は MetaQuestPro の小ネタ枠です。
Unity-MovementのHigh Fidelity Sampleの仕組みを確認して記事にします。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
本記事では以下のHigh Fidelity Sampleの解説ページを参考にサンプルシーンを確認します。
Unity Movement High Fidelity Sample: Unity | Oculus Developers
High Fidelity Sampleを試す
High Fidelity Sampleを試すには以下のサンプルシーンを利用します。
・Packages/MetaMoveMent/Samples/Aura/Scenes/MovementHighFidelity.unity
Packages フォルダ配下は書き込み不可の領域のため、そのままではシーンを開けません。
一旦、これらのサンプルシーンを Assets フォルダ配下にドラッグしてコピーます。
サンプルを動作させるにはボディ/アイ/フェイストラッキングの権限設定を行う必要があります。
Hierarchy から InteractionRigOVR-Basic/OVRCameraRig を選択して Inspector ビューを開きます。
[OVRManager]コンポーネントで以下の通り設定を行います。
・[Quest Features -> Hand Tracking Support]に[Controllers And Hands]を設定する
・[Quest Features -> Body Tracking Support]に[Required]を設定する
・[Quest Features -> Face Tracking Support]に[Required]を設定する
・[Quest Features -> Eye Tracking Support]に[Required]を設定する
・[Permission Requests On Startup -> Body Tracking]にチェックを入れる
・[Permission Requests On Startup -> Face Tracking]にチェックを入れる
・[Permission Requests On Startup -> Eye Tracking]にチェックを入れる
シーンの詳細
1.
InteractionRigOVR-Basic -> OVRCameraRig -> HighFidelityFirstPerson の下に、ユーザーの動きを追跡するミラーリングされていないキャラクターが存在します。
ミラーリングされたキャラクターは InteractionRigOVR-Basic -> OVRCameraRig -> MirroredObjects の下にあります。
2.
メインのディレクションライトはミラーリングされていないキャラクターに作用します。
MirroredObjects の下にあるディレクションライトはミラーリングされたキャラクターに作用します。
3.
一般に、すべてのミラーリングオブジェクトは InteractionRigOVR-Basic -> OVRCameraRig -> MirroredObjects ゲームオブジェクトの下に存在します。
4.
スポットライトはベイクド・ライティングによってプロップに影響を与えます。
ミラーキャラクターの詳細
このシーンは Packages/Meta Movement/Samples/HighFidelity/Character/Scenes/MovementHighFidelity.unity に存在します。
一人称のキャラクターは Packages/Meta Movement/Samples/HighFidelity/Character/Prefabs/HighFidelity.prefab です。
三人称のキャラクターは同じフォルダ内の HighFidelityThirdPersonMirrored.prefab です。
キャラクターのプレハブのモデルは Packages/Meta Movement/Samples/HighFidelity/Character/Models/high_fidelity_rig.fbx を参照します。
そのマテリアルは Packages/Meta Movement/Samples/HighFidelity/Character/Materials に存在しています。
コンポーネントの解説
各コンポーネントの機能に関する詳細を記載します。
以下のリストはキャラクターに設定された各コンポーネントの基本情報です。
1.OVRBody
ボディ・トラッキングの機能を提供します。
2.OVRCustomSkeleton
ボディ・トラッキングで BoneId 列挙型を対応するボーンのトランスフォームにマッピングするために使用されます。
このマッピングは手動または "Auto Map Bones" ボタンで行うことができます。
4.BlendshapeModifier
キャラクターの顔の表現を修正するために使用します。
6.CorrectiveShapesDriver
ブレンドシェイプ用の修正スクリプトです。
ここで使われる修正ファイルは Packages/Meta Movement/Samples/HighFidelity/Character/CombinationShapes/HighFidelityCombinationShapes.json に存在します。
7.RecalculateNormal
メッシュがアニメートする際に法線を再計算します。
8.OVRFaceExpressions
顔トラッキングから更新された顔の表情の値を提供します。