夜風のMixedReality

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

HoloLens で自作アプリのキャプチャができない問題 原因

本日はトラブルシューティング枠です。

〇自作アプリのキャプチャができない

HoloLensではMRC(MixedRealityCapture)と呼ばれる機能があり、実機での体験の様子を画像、動画で撮影、保存することができます。

今回自作のアプリケーションをデプロイし、実機で体験中にアプリのキャプチャを撮影しようとした際、アプリケーションが落ちるなど撮影ができない現象が発生しました。

〇問題

今回発生した問題は次の通りです。

・ホームメニューからカメラ、ビデオで撮影・録画を行う際に撮影カウント画面でカメラが停止する。

ミラーリングを行うことができない。

ミラーリングを行う際にアプリケーションがクラッシュする

・アプリ起動前からミラーリングを行っている場合アプリケーションのロード画面で画面が固まり、アプリが起動しない。

いずれもHoloLens2のカメラにアクセスする際に発生していることがわかります。

〇環境

・HoloLens 2

・MixedRealityToolkit v2.7

・Untiy2021.1.0f1

・Universal RenderPipeline

〇原因

Universal Render Pipelineの設定に原因がありました。

Unityではレンダリング後の画像の解像度を設定する[Render Scale]と呼ばれる設定項目があります。

[Render Scale]はレンダリング後の画質を設定します。値を上げることで解像度が上がり、よりグラフィックがきれいになりますが、メモリーの使用量が上がります。逆に下げることでFPSなどを担保することができます。

今回の現象が発生しているプロジェクトでは共通してこの[Render Scale]が1以上に設定されていました。

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

 ドキュメントによるとデフォルトの設定でHoloLens2の最大レンダーターゲットサイズである1440x936の解像度が使用されているようです。

docs.microsoft.com

 実機での使用ではFPSを引き換えにレンダースケールを上げることができますが、このあたりの問題及びメモリーの問題でキャプチャを行うカメラリソースへのアクセスに問題が発生していると考えられます。