夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unity URPプロジェクトをHoloLensで動かす。

本日はHoloLensでの実験枠デス。

HoloLensの開発において使用される主要なツールの一つUnityはバージョン2019シリーズでスクリプタブルレンダリングパイプラインが導入されました。

blogs.unity3d.com

スクリプタブルレンダリングパイプラインとは従来のビルドインレンダリングパイプラインに変わりスクリプタブル(スクリプト可能)の名の通りC#レンダリングを行うことができるパイプラインです。

docs.unity3d.com

レンダリングの調整などカスタマイズができるうえ、従来のレンダリングよりもリッチなレンダリングが可能になっています。

今回はHoloLens 2でURPのプロジェクトを動かしてみます。

〇環境

・Unity2019.4.18f1(LTS)

・Windows10

・HoloLens 2

・MixedRealityToolkit 2.53

〇プロジェクトの作成

①UnityHubを立ち上げます。

②テンプレートから[UnityRenderingPipeline]を選択し、新規のプロジェクトを作成します

f:id:Holomoto-Sumire:20210130131327j:plain

プロジェクトが作成できました。

f:id:Holomoto-Sumire:20210130132045j:plain

今回は新規で最初からUROのテンプレートプロジェクトを立ち上げましたが、通常のビルドインレンダリングパイプラインの状態からパッケージマネージャーを使用してURPに切り替えることもできます。

〇MRTKの導入 シーンの個性

通常のUnityプロジェクト同様MRTKを導入してHoloLensようにカスタマイズしていきます、

①MRTKをプロジェクトに導入します。

MRTKの導入直後に次のような画面が表示された場合は[Apply]を選択します。

f:id:Holomoto-Sumire:20210130133025j:plain

②上部ワールドタブから[MixedRealityToolkit]→[Add to Scene and Configure...]を選択しシーンに[MixedRealityToolkit]オブジェクトと[MixedReaityPlaySpace]オブジェクトを追加します。

f:id:Holomoto-Sumire:20210130133347j:plain

③[MixedRealityToolkit]オブジェクトを選択しinspectorウィンドウからProfileを[DefaultHoloLens2Profile]に切り替えます。

f:id:Holomoto-Sumire:20210130133805j:plain

④このままではカメラに対してオブジェクトの位置が高すぎます。[]オブジェクトのY座標を適度に下げます。

f:id:Holomoto-Sumire:20210130134006j:plain

〇カメラの設定を変更

このままEditorを実行すると何も描画されない問題があります。

これの問題を解消するために[PacageManager]を開き[XR Pulgin Management]をインストールします。

f:id:Holomoto-Sumire:20210130183605j:plain

また[Windows MixedReality]もインストールします。

f:id:Holomoto-Sumire:20210130190726j:plain

これで解消します。

f:id:Holomoto-Sumire:20210130183740j:plain

次に[MixedRealityPlayspace]オブジェクトの子オブジェクトの[MainCamera]オブジェクトを選択し、[Tracked Pose Driver]コンポーネントをアタッチします。

f:id:Holomoto-Sumire:20210130201247j:plain

これでカメラにオブジェクトがレンダリングされるようになります。

MRTKで提供されているオブジェクトはビルドインレンダリングパイプライン用のためURPで実行した場合エラーを示す紫色になりますが今回はこのままBuildSettingsでUWPにスイッチプラットフォームしてビルドします。

f:id:Holomoto-Sumire:20210130184216j:plain

〇実機で確認

youtu.be

きちんとハイクウォリティな見た目で動くことを確認しましたがキャプチャではかなり粗い画質となってしまっています。

カーソルやハンドレイなどMRTKの機能が使用できなかったことも含めまだ調査が必要です。

フレームレートはデフォルトのシーンで30~40FPSでした。