HoloLens2 エミュレーターでMRTK2.0を動かすまでのメモ

自分用の雑多なものになりますが、HoloLens2 エミュレーターでMRTK2.0を動かすまでのメモをまとめました。

背景

個人開発者なので、まだ手元にHoloLens2がないものの、HoloLens2 エミュレーターを使う機会を得たのでやってみる次第です。

基本のチュートリアル

HoloLens2の開発環境を構築するうえで、以下の公式ドキュメントが役に立ちました。

入門チュートリアル -2. プロジェクトと最初のアプリケーションの初期化 – Mixed Reality | Microsoft Docs

以下の記事も、参考になりました。

HoloLens 2公式チュートリアルやってみた(その1)

準備

ツールのインストール に書かれているような環境設定をして、

  • Unity 2019.2.21f
  • Visual Studio 2019

に、まつわる色々を入れて整えました。

注意点(ハマりどころ)

ファイルの置き場所を注意

入門チュートリアル -2. プロジェクトと最初のアプリケーションの初期化 – Mixed Reality | Microsoft Docs ここにも言及がありますが、

Windows で作業している場合は、255 文字の MAX_PATH 制限があります。 Unity はこれらの制限の影響を受け、255 文字を超えるファイル パスが存在する場合、コンパイルに失敗する可能性があります。 そのため、できるだけドライブのルートの近くに Unity プロジェクトを保存することを強くお勧めします。

チュートリアルにも書かれているが、ドライブのあまり深いところに予期しないコンパイルエラーに悩まされる可能性があります。ドライブのルートの近くに Unity プロジェクトを保存しましょう。

MSB3644: .NETFramework,Version=v4.6 関連のエラーが出てしままう

error MSB3644: .NETFramework,Version=v4.6 �̎Q�ƃA�Z���u�������‚���܂���ł����B���̖���������ɂ́A���̃t���[�����[�N �o�[�W������ Developer Pack (SDK/Targeting Pack) ��C���X�g�[�����邩�A�A�v���P�[�V�����̃^�[�Q�b�g��Đݒ肵�Ă��������Bhttps://aka.ms/msbuild/developerpacks �� .NET Framework Developer Pack ��_�E�����[�h�ł��܂��B [C:\Users\     \Assets\MixedRealityToolkit.Providers\WindowsMixedReality\DotNetAdapter\DotNetAdapter.csproj]
UnityEngine.Debug:LogError(Object)

このエラーは .NETFramework v4.6 Developer Pack を入れたら治りました。

さきほどのエラーログにもある、 https://aka.ms/msbuild/developerpacks で案内される、

Download archives | .NET

から .NETFramework v4.6 Developer Pack を探してダウンロードします。

UnityのBuildSetting画面で Selected Visual Studio is missing required components and may not be able to build the generated がプロジェクト設定で出てしまう

image

このようなエラー。

今回のターゲットである Visual Studio 2019 に、C++サポート、Unityサポートを入れると解決しました。

image

Unityサポートはすでにオンだったので、

image

C++のほうが本命だと思っています。とにかくよかった。

TextMesh Proインストール忘れがち

もちろん、チュートリアルに書かれているのですが、何度かプロジェクトを作っているもののTextMesh Proインストール忘れがちでした。

image

このあたりは、MRTK2.0サンプルを動かす際にも、インストールを促されるので漏れはなさそうですが、最初から入れておきましょう。

サンプルプロジェクトを作る

入門チュートリアル -2. プロジェクトと最初のアプリケーションの初期化 – Mixed Reality こちらを引き続き。

  • Windows Mixed Reality 用に Unity プロジェクトを構成する
  • TextMesh Pro の重要なリソースをインポートする
  • Mixed Reality ツールキットをインポートする
  • Mixed Reality ツールキット用に Unity プロジェクトを構成する
  • Mixed Reality ツールキットを構成する

このあたりを進めていきます。親切。

Unityプロジェクトにさっそく初期シーンに適用するか聞かれます

image

早速適用しておきましょう。2020/3/15時点でMRTK2.0は2.2.0を使ってます。

image

image

Cubeを配置します。

image

buildフォルダにBuild

image

忘れずシーンを入れます。

image

ビルドフォルダを作って

image

ビルドしましょう。ビルドが長くてもめげない。(本当に長い)

image

ビルドができたら、*****.sln ファイルを Visual Studio 2019 を起動します。

Visual Studio 2019 起動

image

初めに起動したときに、以下の画面が出るかもしれません。

image

image

粛々とインストールします。

image

こちらの書き出し設定で行います。

HoloLens2 エミュレーターで動かす

ここからは以下の記事にとても助けられました。

HoloLens 2 Emulatorのコマンドライン起動とMixed Reality Toolkit V2 RC1のサンプルを動かす – Qiita

ありがとうございます。

こちらの記事、MRTK v2のExamplesパッケージにあるサンプルシーンを試す – MRが楽しい を参考にしつつサンプルも動かせました。

Image from Gyazo

注意点:グラフィックドライバによっては、デプロイ後に落ちてしまう。

Surface Pro 7だとグラフィックドライバの相性なのか、デプロイ直後のアプリ起動・メニューからのアプリ起動後にすぐにフリーズ?してしまいます。

先ほどの記事にも言及されていて、ハマった後に意味が分かりました。

解決方法としてはVirtual GPU Settingsをオフにすれば一応動作します(激重ですが)。この設定を無効化するには、コマンドラインで「/noGPU」オプションをつけて起動するか、ToolsのOptional Settingsにある、「Use Desktop accelarated graphics」のチェックを外して適用します。

ということで、

image

の対応したエミュレータを起動してから、アプリ書き出しファイルをアップロードしたらうまくいきました。

他にもいろいろとハマった気がするのですが、主だったものはメモできてよかったです。はやく実機を触りたいです!