Meta XR SDKを使って、ハンドジェスチャをレコーディングする
はじめに
Meta Quest向けアプリケーションの開発において下図のように、ハンドジェスチャの見本を3Dアニメーションで表現したい場合があるかと思います。そのために、ハンドジェスチャのアニメーションをレコーディングする方法をメモします。
(あくまで自分が取った方法なので、他にもやり方はあると思います。)
1. レコーディング用の手を用意する
まず、UnityプロジェクトにMeta XR Interaction SDK OVR Samples
をインストールします。
このとき、Samples > Example Scenes
もインポートします。
次に、シーンを新規作成します。ここで、GestureExamples
というサンプルシーン(Assets/Samples/Meta XR Interaction SDK OVR Samples/59.0.0/Example Scenes/GestureExamples.unity
)からOVRCameraRig
をコピーし、作成したシーンにペーストします。
このOVRCameraRig
の配下に、手のオブジェクトが含まれています。
2. レコーディングする
レコーディングにはUnity Recorderを使用します。
Recorder Window
+ Add Recorder > Animation Clip
をクリックしてから、右下のエリアのInput > GameObject
に手のオブジェクト(左手の場合OVRCameraRig > OVRInteraction > OVRHands > LeftHand > HandVisualsLeft > OVRLeftHandVisual > OculusHand_L
)をドラッグ&ドロップします。
OculusHand_L / OculusHand_Rの場所
Recorded Components
はTransform
を選択し、Record Hierarchy
にはチェックを入れます。これによって手のオブジェクトのTransform
と、手のオブジェクトの子オブジェクト(すなわち指のオブジェクト)のTransform
をレコーディングできるようになります。
両手を同時にレコーディングしたい場合は再度+ Add Recorder > Animation Clip
をクリックしてから、Input > GameObject
にもう片方の手のオブジェクトをドラッグ&ドロップします。
設定が完了したらSTART RECORDING
を押して、レコーディングを開始します。STOP RECORDING
を押すと、レコーディングを終了できます。これによって、指定したフォルダ内にAnimation Clipが作成されます。
3. レコーディングしたAnimation Clipを再生する
Animation Clipを再生するための手のオブジェクトを用意します。
OVRCameraRig
配下の手のオブジェクト(左手の場合OVRCameraRig > OVRInteraction > OVRHands > LeftHand > HandVisualsLeft > OVRLeftHandVisual > OculusHand_L
)を複製して、OVRCameraRig
の外側に出します。
この手のオブジェクトに、レコーディングで作成したAnimation Clipをドラッグ&ドロップします。これによって手のオブジェクトが、レコーディングされたアニメーションを再生できるようになります。
おわりに
以上、ハンドジェスチャのアニメーションをレコーディングして再生するまでの方法をまとめました。
詳しい手順の記述を省いた箇所も多々あるので、分かりにくい箇所はコメントで指摘していただけると幸いです。
Discussion