🖐️

Meta XR SDKを使って、ハンドジェスチャをレコーディングする

2023/12/03に公開

はじめに

Meta Quest向けアプリケーションの開発において下図のように、ハンドジェスチャの見本を3Dアニメーションで表現したい場合があるかと思います。そのために、ハンドジェスチャのアニメーションをレコーディングする方法をメモします。
(あくまで自分が取った方法なので、他にもやり方はあると思います。)

1. レコーディング用の手を用意する

まず、UnityプロジェクトにMeta XR Interaction SDK OVR Samplesをインストールします。
https://assetstore.unity.com/packages/tools/integration/meta-xr-interaction-sdk-ovr-samples-268521
このとき、Samples > Example Scenesもインポートします。

次に、シーンを新規作成します。ここで、GestureExamplesというサンプルシーン(Assets/Samples/Meta XR Interaction SDK OVR Samples/59.0.0/Example Scenes/GestureExamples.unity)からOVRCameraRigをコピーし、作成したシーンにペーストします。

このOVRCameraRigの配下に、手のオブジェクトが含まれています。

2. レコーディングする

レコーディングにはUnity Recorderを使用します。
https://soredemo-apparel.net/vfx-and-3dcg/howtouse_unity_recorder
Unity RecorderをインストールしRecorder Windowを表示させたら、レコーディングの設定をします。

Recorder Window
+ Add Recorder > Animation Clipをクリックしてから、右下のエリアのInput > GameObjectに手のオブジェクト(左手の場合OVRCameraRig > OVRInteraction > OVRHands > LeftHand > HandVisualsLeft > OVRLeftHandVisual > OculusHand_L)をドラッグ&ドロップします。

OculusHand_L / OculusHand_Rの場所
Recorded ComponentsTransformを選択し、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をドラッグ&ドロップします。これによって手のオブジェクトが、レコーディングされたアニメーションを再生できるようになります。

おわりに

以上、ハンドジェスチャのアニメーションをレコーディングして再生するまでの方法をまとめました。
詳しい手順の記述を省いた箇所も多々あるので、分かりにくい箇所はコメントで指摘していただけると幸いです。

GitHubで編集を提案

Discussion