MRが楽しい

MRやVRについて学習したことを書き残す

WorldLockingToolsの利用手順を試す

本日は HoloLens2 の技術調査枠です。
WorldLockingTools の利用手順のドキュメントを読んで使い方を試してみます。
f:id:bluebirdofoz:20210727220854j:plain

WorldLockingTools

WorldLockingTools ホログラフィックを現実空間にバインドするための座標系をプロジェクトに提供します。
物理的な世界の特徴に関連付けて配置されたホログラムはその特徴を持つ現実空間に固定されます。
補正を行う際はホログラムの位置ではなく座標系を補正するため、ホログラム間の相対座標は保持されます。
microsoft.github.io

WorldLockingTools の仕組みやメリットを理解したい場合は以下の記事が分かりやすいです。
www.tattichan.work

参考ページ

以下のページのチュートリアルを MRTK と組み合わせて試してみます。
docs.microsoft.com
microsoft.github.io

WorldLockingToolsのアプリケーションへのセットアップ

このチュートリアルでは WorldLockingTools の必要最小限なサブセットをプロジェクトに追加する方法について説明します。
WorldLockingTools は WorldAnchors やその他の特別な動作を必要とせず、アプリケーション内のコンテンツを現実世界にロックする動作を実現します。

このチュートリアルは WorldLockingTools の 01_Minimal サンプルを参照しています。
既存のプロジェクトに追加する場合も同じ手順が適用されます。

このチュートリアルで世界にロックしているアプリケーションは簡単な Unity AR アプリケーションです。
MRTK を用いたアプリケーションの場合、セットアップは更に簡単になります。

本記事では MRTK を用いたセットアップ手順をピックアップします。

WorldLockingToolsのインポート手順

Unity プロジェクトを新規作成します。

Unityプロジェクトの作成

WorldLockingTools のパッケージはパスが深いため、一定以上のパスの深さにプロジェクトを作成すると FileNotFound のエラーが発生することがあります。
なるべく作成フォルダとプロジェクト名を短いパスに抑えておくことをお勧めします。
f:id:bluebirdofoz:20210727220940j:plain

Unity プロジェクトを作成したら次はパッケージをインポートします。
f:id:bluebirdofoz:20210727220948j:plain

MRTK基本シーンの構成

初めにMRTKのインポートと基本シーンの構成を行います。
MixedRealityFeatureTool を利用し、MRTK の Foundation パッケージをインポートします。
f:id:bluebirdofoz:20210727221003j:plain

著者メモ

MixedRealityFeatureTool を利用すると、WorldLockingTools を同時にインポートすることが可能です。
しかし、2021/7/27 現在の筆者環境では同時にインポートを行うと競合が発生したため、ここでは順にインポートとセットアップを行っています。

MRTK の設定ダイアログが開くのでセットアップを実施します。
注意点としてセットアップで OpenXR または WINDOWS XR プラグインを使用した場合は WorldLockingTools ではなく ARAnchorManager を使用する必要があります。
f:id:bluebirdofoz:20210727221020j:plain

メニューから[MixedReality -> Toolkit -> AddToSceneAndConfigure]を実施し、MRTK の基本シーンを構築します。
f:id:bluebirdofoz:20210727221032j:plain

WorldLockingToolsのインポート

WorldLockingTools は MixedRealityFeatureTool を使ってインポートできます。
MixedRealityFeatureTool の利用手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com

[WorldLockingTools]の項目から[WLT Core]にチェックを入れて有効にします。
f:id:bluebirdofoz:20210727221048j:plain

パッケージを取り込んだら再び Unity プロジェクトを開きます。
インポートが完了すると[MixedRealityToolkit -> Utilities -> WorldLockingTools]が追加されます。
f:id:bluebirdofoz:20210727221104j:plain

WorldLockingToolsの設定

メニューから[MixedRealityToolkit -> Utilities -> WorldLockingTools -> Configure scene]を実行します。
f:id:bluebirdofoz:20210727221115j:plain

WorldLockingTools の設定はこれで自動的に実施されます。
WorldLockingManger オブジェクトが追加され、MixedRealityPlayspace オブジェクトは WLT_Adjustment オブジェクトにラッピングされます。
f:id:bluebirdofoz:20210727221125j:plain

WorldLockingToolsの可視化

これで現実空間にホログラムがロックされます。
ただし、WorldLockingTools はその特性上、このままでは機能が動作していることを視認できません。
もし MixedRealityPlayspace の動作を可視化して確認したい場合は[MixedRealityToolkit -> Utilities -> WorldLockingTools -> AddDevelopmentVisualizers]を実行します。
f:id:bluebirdofoz:20210727221135j:plain

2つの可視化用オブジェクトが追加されます。
f:id:bluebirdofoz:20210727221145j:plain

動作確認

現実空間に配置する確認用の3Dモデルをシーンに作成し、アプリケーションを HoloLens2 にデプロイしてみます。
f:id:bluebirdofoz:20210727221157j:plain

HoloLens2 でアプリを起動すると、Spongy オブジェクトとロック位置のオブジェクトが確認できます。
f:id:bluebirdofoz:20210727221213j:plain

可視化の除去

デバッグが完了し、WorldLockingTools の可視化をやめたい場合はメニューから[]を実行します。
f:id:bluebirdofoz:20210727221224j:plain