土鍋で雑多煮

UnityでXR・ゲーム開発をしています。学んだことや備忘録、趣味の記録などを書いていきます。

XR Interaction toolkit の XR Hands を試す

どうも、土鍋です。

XR Handsが今年の1月にプレスリリースされましたが、触っていなかったので触ってみました。

XR HandsとはXR Interaction toolkitでハンドトラッキングするパッケージです。今までOculus Integrationを使うことが多かったと思いますが、これによりハンドトラッキングできるデバイスであれば、デバイスによらずハンドトラッキングができるので、今後かなり必要になってくると思います。

導入方法

XR HandsはXR Interaction toolkitと組み合わせて使いますので、XR Interaction toolkitとOpenXRのセットアップを先に行ってから導入してください。
XR Interaction toolkitとOpenXRのセットアップはこりんさんの記事が参考になります。(XR Interaction toolkitをいじるときはいつもお世話になってます。)

framesynthesis.jp

Package Managerを開き、Unity Registstryから「XR Hands」を探し、インポートしてください。 HandVisualizerのSampleもインポートしてください。

AndroidでXR Handsを使用する際はOpenXR 1.6.0が必要なので左上のプラスからAdd package by nameでアップデートしてください。

Project SettingsのOpenXRの項目からHand Trackingの項目にチェックしましょう。(PCとAndroid両方)

これで、ハンドトラッキングが動くようになるはずです。

デモシーンを触る

Hand Visualizer

ハンドトラッキングの動作確認だけでしたら「Hand Visualizer」のシーンで良いと思います。

Oculus Linkでも確認できるのでビルドする必要はなさそうです。

指のジョイントを表示する

Draw Meshesのチェックを外し、Debug Draw Jointsのチェックをつけると、指のジョイントが見えます。手のポーズを作っていくときに便利そうですね。

Hands Interaction Demo

ハンドトラッキングを使ったインタラクションを試したい場合はXR Interaction toolkitの「Hands Interaction Demo」がいい感じでした。物を掴む、UI触るなどの動作は問題なくできそうです。

導入はXR Interaction toolkitのSamplesからできます。

動かすとこんな感じ。

※初期設定でHand VisualizerのHand Mesh Materialが外れてて、手が表示されなくなってるので注意

まとめ

Unityデフォルトでハンドトラッキングができるようになったのでは嬉しいですね!
今後、ハンドトラッキングができるデバイスは増えるでしょうし、XR Interaction toolkitとOpenXRのメリットである様々なデバイスに対応できるというのが生きてきそうです。
ただ現状、Oculus Integrationにあった手のポーズとか指の距離とか取るものは無いので、自作する必要がありそうですね。

もう少し色々試したら、また記事を書こうと思います。