Varjo XR-3を使ってハンドトラッキングを試してみる(MRTK編)

こんにちは!   Synamonでエンジニアをしている黒岩(@kro96_xr)です。
前回に引き続きVarjo XR-3でのハンドトラッキングについて試していきたいと思います。  

前回の記事はこちら   synamon.hatenablog.com

はじめに  

Varjo XR-3にUltraleap Geminiが搭載されていることは前回触れた通りです。

今回はMRTKを使用したハンドトラッキングについて試してみたいと思います。
MRTK for ultraleapについてはこちら > MRTK公式リファレンス.

環境  

今回の環境は以下の通りです。  

VarjoUnityXRPluginのインポートとプロジェクト設定の変更は前々回記事と同様なので割愛します。  

以降のカメラ設定についても前回記事を参考に適宜変更していただければと思います。

導入手順  

Ultraleap SDK導入まで(前回記事と同様)  

  • Varjo公式githubからVarjo XR-3 & VR-3 Ultraleap SDK for UnityをClone  
  • CloneしたフォルダからのAssets/Pluginsをコピーしプロジェクトに追加  
  • パススルー機能を使う場合はパススルーでのレンダリングを開始するように下記スクリプトを用意してシーンに追加しておく
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using Varjo.XR;
 
 public class Sample : MonoBehaviour
 {
     private void Start()
     {
         VarjoRendering.SetOpaque(false);
         VarjoMixedReality.StartRender();
     }
 }

MRTK導入まで

  • Microsoft.MixedReality.Toolkit.Foundation をダウンロードしてのUnityPackageをインポート
  • 新規シーンを開いてLeap Motion Unity ModulesとMRTKを統合する
    • Mixed Reality > Toolkit > Utilities > Leap Motion > Integrate Leap Motion Unity Modulesを選択 f:id:krocks96:20211031172559p:plain
  • シーンに設定を追加する
    • Mixed Reality > Toolkit > Add to Scene and Configure f:id:krocks96:20211031172749p:plain
  • MixedRealityToolKitから"Copy & Customize"をクリックしプロファイルを作成する。名前は任意で決めてCloneを押す f:id:krocks96:20211031173023p:plain
  • Inputを選び、デフォルトプロファイルをCloneする f:id:krocks96:20211031173052p:plain
  • Input Data Providersが編集可能になるので、"Add Data Provider"をクリックし、TypeをMicrosoft.MixedReality.Toolkit.LeapMotion.Input > LeapMotionDeviceManagerを選択 f:id:krocks96:20211031173126p:plain
  • CloneをクリックしてデフォルトのLeapMotionSettingをクローンする f:id:krocks96:20211031173214p:plain
  • オフセットをVarjo公式が指定する値に変更する f:id:krocks96:20211031173246p:plain
  • StandardShaderをURP用に更新する f:id:krocks96:20211031173334p:plain
  • パススルーの設定
    • インスペクタでカメラをいじってもMRTKのプロファイルで上書きされてしまうのでMixedReality ToolkitのCameraから設定を変更する
      • プロファイルをクローンしてDisplay SettingsのClear FlagをColorに、Background Colorを(0,0,0,0)に設定する f:id:krocks96:20211031173444p:plain

上記設定でパススルーかつMRTKでのハンドトラッキングが可能となります。 f:id:krocks96:20211031173548p:plain

同様にしてSampleを動かすことも可能です。(社内共有用に撮影した動画のキャプチャのため画質はご容赦ください) f:id:krocks96:20211031173750p:plain

躓きポイント  

Varjo XR-3でパススルー機能を使うためにはカメラ設定を指定されたものにする必要があるのですが、MRTKの場合はMRTKのプロファイル側を変更する必要がありますのでご注意ください。
MRTKのプロファイル構成ガイドはこちら > MRTK プロファイル構成ガイド

おわりに  

以上でMRTKを使ったハンドトラッキングの設定は完了です。
一連の記事でXR-3向けのハンドトラッキングを含むコンテンツ開発に必要な設定が出来たかと思います。

Synamonでは今後も継続してXR-3を使ったコンテンツ開発を行なっていきます。
開発に興味がある方はぜひ下記の求人もご覧ください!

お知らせ  

Synamonは、Unity / C#エンジニア、テックリードを中心に新しい仲間を募集中です。
「XRが当たり前の世界をつくる」というミッションに共感したメンバーが、切磋琢磨しながら日々挑戦しています!
カジュアル面談も実施中なので、ご興味ある方、お気軽にご連絡ください。
カジュアル面談でご来社いただきXR-3を体験することなども可能ですよ!  

カジュアル面談はMeetyから▼   meety.net  

エントリーはこちら▼   herp.careers  

また、本テックブログやnote記事のお知らせは、Synamon公式Twitterでも発信もしています。
弊社の取り組みに興味を持っていただけたら、ぜひフォローお願いいたします!   twitter.com