UnityでHoloLens2アプリをデプロイする手順とよくあるトラブルのまとめ
この記事はUnity 2021.3.0f1とMRTK 2.7.3を使ったHoloLens2アプリ開発の実機デプロイまでの記録である。- 2022/4/12
NEW! Unity2021.3.7fとMRTK2.8.2、Mixed Reality OpenXR Plugin1.4.3(1.4.4はNG)で確認 - 2022/8/9
※投げ銭スタイルで全文公開
🛠️今回の開発環境
Windows 11 Pro Build 22000
HoloLens 2 Build 20348.1450
Visual Studio 2022
https://visualstudio.microsoft.com/ja/downloads/Unity 2021.3.0f1※Unity 2020.3.35f1が鉄板 参照
https://unity3d.com/jp/get-unity/download
https://unity3d.com/unity/whats-new/2021.3.0MixedRealityFeatureTool 1.0.2203.0-Preview (MRFT)
https://www.microsoft.com/en-us/download/details.aspx?id=102778
UnityプロジェクトにMRTKなどを簡単に入れることができるツールPlatform Support
Mixed Reality OpenXR Plugin 1.4.0
Mixed Reality Toolkit 2.7.3 (MRTK)
Mixed Reality Toolkit Foundation 2.7.3
Mixed Reality Toolkit Tools 2.7.3
Mixed Reality Toolkit Standard Assets 2.7.3
Mixed Reality Toolkit Examples 2.7.3
Mixed Reality Toolkit Extentions 2.7.3
基本的に公式の推奨以上のバージョンであれば問題ない。
と言えないのが現状。
⚠️重要⚠️Unity バージョンとパッケージの既知の問題 - Mixed Reality | Microsoft Docs
HoloLens2アプリ開発でなんかあったらUnityのバージョンを疑う。
現状公式が把握している問題点がまとめられたページはこちら。
(@saka_itさん情報サンクス!)
2022/06/17現在 Unity 2020.3.35f1が鉄板
⚠️ハマりポイント⚠️
「Unityのバージョン」←マジでこれ
↑実機でFPSが出ないときはこれを疑え
↑⭕でもFPSが出ないことがある
あるバージョンのUnityや、特定のMRTKの組み合わせの場合、HoloLens2の実機デプロイがNGなパターンがある。
(症状としては、デプロイでエラーとかCubeだけなのにめちゃくちゃ重いFPSが全然でないとか)
https://issuetracker.unity3d.com/issues/app-doesnt-launch-on-hl2-uwp-after-update-to-2020-dot-3-32f1
一例)
Unity 2020.3.28f1⭕ 2020.3.32f1❌ 2020.3.33f1⭕
Unity 2021.2.17f1❌ 2021.3.0f1⭕
Unity 2022.1.0b15❌ 2022.1.0b16⭕
※NGでも大丈夫だったという話も。Unityのバージョン的にはOKでも他との組み合わせでダメとなるパターンもあり得る。
com.microsoft.mixedreality.openxr-1.4.4 でFPSが出ない症状に遭遇
(追記)2022年8月9日
📑手順 Unityで新規プロジェクト作成からHoloLens2デプロイまで
事前準備、開発環境構築(いくつかの前提については省略)
・Visual Studio Installerから必要コンポーネントなどを入れておく
必要なものは公式や参考資料のリンク先のページを参照
細かい手順のスクリーンショットを確認して進めたい方は、参考資料のリンク先がおすすめ。(バージョンが異なる場合や不要な手順があるけど)
HoloLens2デプロイまでに必須ではない手順は省略
(Unityプロジェクトに対して行う一般的な設定、Package nameなど)
1. (Unity) Unity 2021.3.0f1で3D(URP)を選んでプロジェクト作成
2. (MRFT) OpenXR PluginとMRTKを入れる
3. (Unity) MRTK Project Configureの指示通りに設定を行う
基本的に設定はPCとUWPのタブの両方。
⚠️などのマークが出たら押して直す。
4. (Unity) MRTKのサンプルをプロジェクトに追加する
5. (Unity) HandInteractionExamples を開く
・自動的に開くTMP ImporterウインドウからImport TMP Essentialsを押してTextMeshProをインポート(初回のみ)
・ピンクを修正。MRTKのシェーダーをURPに変換
MRTK.Toolsで追加されたツールバーのUpgrade MRTK Standard Shader for Universal Render Pipline
6. (Unity) Burst AOT SettingsをOFF
手順詳細のスクショは後述の「UnityでBuildしたらBurstAotCompilerでエラー」参照
7. (Unity) VisualStudioプロジェクトをビルド
・シーンをAdd
・Architecture = ARM 64-bit
・Minimum Platform Version = 10.0.18362.0
8. (Visual Studio) HoloLens2へDeploy
🔎トラブルシュート
基本
エラーメッセージをよく読む・全部ググる
英語がしんどかったらScreenTranslatorで。OCRした文字を翻訳だけではなくコピーもできる。
https://note.com/yuujii/n/n8be835c9062e#58892ae2-e251-465d-98e3-5ec3ce924f94
ログを確認する
Development Buildにすると出力されるログファイルなどでエラーを確認
ビルドのエラーは大体Visual Studio Installerから足りないコンポーネントを追加すると解決する
環境構築関係
MixedRealityFeatureToolのRefreshing catalog…が終わらない
Windowsのユーザー名がマルチバイトだとダメ。ネットワーク環境など
Mixed Reality Feature ToolでDiscover Featuresを押すとクラッシュする
UnityのモジュールにWindows Build Support(IL2CPP)がない。追加する。
表示がピンクになる
URPでプロジェクトを作成した場合に必要な手順。
Upgrade MRTK Standard Shader for Universal Render Piplineを実行。
MRTKのStandard Assetsなどに含まれるMRTKのマテリアルのシェーダーがURPのものに変換される。
それでもピンクが残るようなら、Hierarchyビューでシーンを選択するか、Projectビューで当該マテリアルを選択してConvert Selected Build-in Materials to URPを実行。
これでMRTKのサンプルが参照しているUnity標準のマテリアルがURPのものに変換される。
もし自分で既存プロジェクトからのアセットを移行して自作シェーダー、マテリアルを追加している場合は自動変換対象外なので、各自URP対応を行う。
MRTK.ToolsのBuild WindowsでリモートのHoloLens2に接続できない
InvalidOperationException: Insecure connection not allowed
Microsoft Mixed Reality ToolkitのBuild WindowでTest Connectionボタンを押したとき
Edit -> Project Settings -> Player -> Other Settings -> Configuration -> Allow downloads over HTTP
MRTK.ToolsのBuild WindowのDeploy OptionsからInstall AppX実行時にエラーが出る
パッケージが見つかりました: C:\Unity\Projects\Holo21.3_MRTK2.7.3\Builds\WSAPlayer\AppPackages\Holo21.3_MRTK2.7.3\Holo21.3_MRTK2.7.3_1.0.1.0_ARM64_Master_Test\Holo21.3_MRTK2.7.3_1.0.1.0_ARM64_Master.msix
アプリをインストールしています... 依存関係パッケージが見つかりました: C:\Unity\Projects\Holo21.3_MRTK2.7.3\Builds\WSAPlayer\AppPackages\Holo21.3_MRTK2.7.3\Holo21.3_MRTK2.7.3_1.0.1.0_ARM64_Master_Test\Dependencies\x86\Microsoft.VCLibs.x86.14.00.appx C:\Unity\Projects\Holo21.3_MRTK2.7.3\Builds\WSAPlayer\AppPackages\Holo21.3_MRTK2.7.3\Holo21.3_MRTK2.7.3_1.0.1.0_ARM64_Master_Test\Dependencies\x64\Microsoft.VCLibs.x64.14.00.appx
Add-AppxPackage : 次の HRESULT で展開に失敗しました: 0x80073D10, パッケージが対象としているプロセッサ
アーキテクチャが正しくないため、展開操作に失敗しました。
パッケージ com.unity.holo21.3MRTK2.7.3 にはアーキテクチャ ARM64
が必要であるものの、このコンピューターのアーキテクチャが x64 であるため、このパッケージをインストールできません。
注: 詳細については、イベント ログで [ActivityId] 5bf37d64-4e2f-0014-0e32-f55b2f4ed801 を検索するか、コマンド ラインの
Get-AppPackageLog-ActivityId 5bf37d64-4e2f-0014-0e32-f55b2f4ed801 を使用してください
発生場所 C:\Unity\Projects\Holo21.3_MRTK2.7.3\Builds\WSAPlayer\AppPackages\Holo21.3_MRTK2.7.3\Holo21.3_MRTK2.7.3_1.0.1.
0_ARM64_Master_Test\Add-AppDevPackage.ps1:522 文字:13
+ Add-AppxPackage -Path $DeveloperPackagePath.FullName -Dep ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (C:\Unity\Projec...M64_Master.msix:String) [Add-AppxPackage], Exception
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
エラー: アプリをインストールできませんでした。
続行するには、Enter キーを押してください...:
USB接続したHoloLens2にLocal(127.0.0.1)でアクセスできない状態。
→ HoloLens2側で開発者モードとデバイスポータルをONにする。
→ Visual Studio Installerから「USB デバイスの接続」(USB Device Connectivity、旧Windows IP Over USB)を入れる。
または既に別のものに割り当てられている。ブラウザに127.0.0.1を入れてHoloLens2のデバイスポータルの画面が出るか確認。
別のローカル鯖のものが出た場合はそれを止めるか、なにも出ない場合はUSBケーブルを変える。
いっそRemoteでつなぐ。
MRTKインポート後
Visual StudioやUnityのプロジェクトでUnityEngineなどの参照がないエラー
ソリューションファイルが壊れている。Regenerate project filesを押す。
それでも解決しない場合、Unityプロジェクトをいったん閉じてTempやLibraryフォルダを削除して再度開きなおす。それでもダメならそもそもいろいろ壊れているので最初からやり直すかPC買いなおす。
ビルド時などでMRTKのPrefabがSaving Prefab to immutable folder is not allowed: エラー
Saving Prefab to immutable folder is not allowed:
Packages/com.microsoft.mixedreality.toolkit.foundation/SDK/StandardAssets/Prefabs/SceneDescriptionPanelRev.prefab
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)
MRTK 2.7.2で発生。2.7.3を使うか、MRFTからUPMで入れるのではなくunitypackageで入れて、当該をdefaultで初期化する。
MRTKを入れた直後のerror CS0165: Use of unassigned local variable
Assets\MRTK\SDK\Features\UX\Scripts\BoundsControl\BoundsControl.cs(939,54): error CS0165: Use of unassigned local variable 'colliderByTransform'
Assets\MRTK\SDK\Features\UX\Scripts\BoundsControl\BoundsControl.cs(947,54): error CS0165: Use of unassigned local variable 'rendererBoundsByTransform'
Assets\MRTK\SDK\Features\UX\Scripts\BoundingBox\BoundingBox.cs(1906,54): error CS0165: Use of unassigned local variable 'colliderByTransform'
Assets\MRTK\SDK\Features\UX\Scripts\BoundingBox\BoundingBox.cs(1914,54): error CS0165: Use of unassigned local variable 'rendererBoundsByTransform'
MRTK 2.7.2で再現。2.7.3を使うか、MRFTからUPMで入れるのではなくunitypackageで入れて、当該変数をdefaultで初期化する。
https://github.com/microsoft/MixedRealityToolkit-Unity/issues/7924
MRTKを入れた直後の error CS0269: Use of unassigned out parameter 'guid'
Assets\MRTK\Tools\MSBuild\Scripts\Utilities.cs(132,17): error CS0269: Use of unassigned out parameter 'guid'
MRTK 2.7.2で再現。2.7.3を使うか、MRFTからUPMで入れるのではなくunitypackageで入れて、当該メソッドを2.7.3の内容に書き換える。
https://github.com/microsoft/MSBuildForUnity/blob/70947bb02bb034d80c8380a0e7dc9909cc731c43/Source/MSBuildTools.Unity/Packages/com.microsoft.msbuildforunity/Editor/ProjectGenerator/Scripts/Utilities.cs#L162-L195
Audio Spatializer Pluginがない This application is not using the recommended Audio Spatializer Plugin. Go to Project Settings > Audio > Spatializer Plugin and select one of the following: MS HRTF Spatializer, Microsoft Spatializer.
MRFTからSpatial Audio > Microsoft Spatializerを入れる。
UnityEditorで実行するとカメラが荒ぶって勝手に回転する
ゲームパッドを接続していると発生。また3Dconnexionのコンパニオンアプリが起動していても発生する。
状況としては、シーンのMixedRealityToolkit > Input > Input Data ProvidersのInput Simulation Serviceで定義されているInputManagerの定義(Horizontal, Vertical, UpDown, AXIS_4, AXIS_5)に値が入ってきてしまっている。
対策としては、Project SettingsのInputManagerで、当該定義のJoy NumをGet Motion from all Joysticksから、Joystick 16などへ向き先を変更する。(または明示的に使いたいもの変更する)
Visual Studio書き出し時
UnityでBuildしたらBurstAotCompilerでエラー
Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Windows.Foundation, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null'
�ꏊ Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
�ꏊ zzzUnity.Burst.CodeGen.AssemblyResolver.Resolve(AssemblyNameReference name)
�ꏊ Burst.Compiler.IL.AssemblyLoader.Resolve(AssemblyNameReference name)
�ꏊ Mono.Cecil.MetadataResolver.Resolve(TypeReference type)
�ꏊ Mono.Cecil.TypeReference.Resolve()
�ꏊ Burst.Bcl.BclApp.CollectGenericTypeInstances(TypeReference type, List`1 types, HashSet`1 visited)
�ꏊ Burst.Bcl.BclApp.CollectGenericTypeInstances(AssemblyDefinition assembly, List`1 types, HashSet`1 visited)
�ꏊ Burst.Bcl.BclApp.FindExecuteMethods(List`1 rootAssemblyPaths, Boolean includeRootAssemblyReferences)
BuildFailedException: Burst compiler (1.7.0) failed running
(Unity)Project Settings > Burst AOT Settings
Enable Burst Compilation [OFF]
Enable Optimisations [OFF]
Burstコンパイラに対応していないものがあるため。
UnityException: Failed to run reference rewriter with command
UnityException: Failed to run reference rewriter with command "--target=Temp\StagingArea\Data\Managed\App.Modules.dll" "--target=Temp\StagingArea\Data\Managed\Unity.VisualScripting.State.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.ARFoundation.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.ARSubsystems.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.Management.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.OpenXR.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.OpenXR.Features.ConformanceAutomation.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.OpenXR.Features.MockRuntime.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.OpenXR.Features.OculusQuestSupport.dll" "--target=Temp\StagingArea\Data\Managed\Unity.XR.OpenXR.Features.RuntimeDebugger.dll" "--target=Temp\StagingArea\Data\Managed\Unity.VisualScripting.Flow.dll" "--target=Temp\StagingArea\Data\Managed\UnityEngine.SpatialTracking.dll" "--target=Temp\StagingArea\Data\Managed\Unity.VisualScripting.Core.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Timeline.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Providers.WindowsSceneUnderstanding.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Providers.WindowsVoiceInput.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Providers.XRSDK.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WindowsMixedReality.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.SDK.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.SDK.Experimental.Interactive.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.CameraSystem.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.DiagnosticsSystem.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.InputAnimation.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.InputSimulation.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.InputSystem.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.SceneSystem.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.SpatialAwarenessSystem.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Services.TeleportSystem.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Tests.Utilities.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Providers.WindowsMixedReality.Shared.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Providers.OpenXR.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Gltf.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Extensions.Tracking.dll" "--target=Temp\StagingArea\Data\Managed\App.Modules.UniRxTrigger.dll" "--target=Temp\StagingArea\Data\Managed\Assembly-CSharp.dll" "--target=Temp\StagingArea\Data\Managed\AVProVideo.Demos.dll" "--target=Temp\StagingArea\Data\Managed\AVProVideo.Extensions.Timeline.dll" "--target=Temp\StagingArea\Data\Managed\AVProVideo.Extensions.UnityUI.dll" "--target=Temp\StagingArea\Data\Managed\AVProVideo.Extensions.VisualEffectGraph.dll" "--target=Temp\StagingArea\Data\Managed\AVProVideo.Runtime.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Tools.Runtime.dll" "--target=Temp\StagingArea\Data\Managed\IngameDebugConsole.Runtime.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.OpenXR.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Async.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Demos.UX.Interactables.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Examples.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Extensions.HandPhysics.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.MixedReality.Toolkit.Extensions.SceneTransitionService.dll" "--target=Temp\StagingArea\Data\Managed\InputSystem.Samples.Visualizers.dll" "--target=Temp\StagingArea\Data\Managed\Microsoft.SpatialAudio.Spatializer.dll" "--target=Temp\StagingArea\Data\Managed\netstandard.dll" "--target=Temp\StagingArea\Data\Managed\Unity.RenderPipelines.Universal.Runtime.dll" "--target=Temp\StagingArea\Data\Managed\Unity.RenderPipelines.Universal.Shaders.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Analytics.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Configuration.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Device.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Environments.dll" "--target=Temp\StagingArea\Data\Managed\Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Environments.Internal.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Networking.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Registration.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Scheduler.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Telemetry.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Threading.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Subsystem.Registration.dll" "--target=Temp\StagingArea\Data\Managed\Unity.TextMeshPro.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Services.Core.Internal.dll" "--target=Temp\StagingArea\Data\Managed\UnityEngine.XR.LegacyInputHelpers.dll" "--target=Temp\StagingArea\Data\Managed\Unity.RenderPipelines.Core.ShaderLibrary.dll" "--target=Temp\StagingArea\Data\Managed\Unity.RenderPipeline.Universal.ShaderLibrary.dll" "--target=Temp\StagingArea\Data\Managed\ProtoMock.dll" "--target=Temp\StagingArea\Data\Managed\UniRx.dll" "--target=Temp\StagingArea\Data\Managed\UniTask.Addressables.dll" "--target=Temp\StagingArea\Data\Managed\UniTask.dll" "--target=Temp\StagingArea\Data\Managed\UniTask.DOTween.dll" "--target=Temp\StagingArea\Data\Managed\UniTask.Linq.dll" "--target=Temp\StagingArea\Data\Managed\UniTask.TextMeshPro.dll" "--target=Temp\StagingArea\Data\Managed\Unity.RenderPipelines.Core.Runtime.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Burst.dll" "--target=Temp\StagingArea\Data\Managed\Unity.InputSystem.dll" "--target=Temp\StagingArea\Data\Managed\Unity.InputSystem.RebindingUI.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Mathematics.dll" "--target=Temp\StagingArea\Data\Managed\nunit.framework.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Burst.Unsafe.dll" "--target=Temp\StagingArea\Data\Managed\Unity.VisualScripting.Antlr3.Runtime.dll" "--target=Temp\StagingArea\Data\Managed\Newtonsoft.Json.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Burst.Cecil.Pdb.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Burst.Cecil.Mdb.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Burst.Cecil.dll" "--target=Temp\StagingArea\Data\Managed\Unity.Burst.Cecil.Rocks.dll" "--additionalreferences=Temp\StagingArea\Data\Managed,Temp\StagingArea\Data\Managed\Plugins\X86,Temp\StagingArea\Data\Managed\Plugins\ARM64,Temp\StagingArea\Data\Managed\Plugins\ARM,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\ARM,Temp\StagingArea\Data\Managed\Plugins\ARM64,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\X86,Temp\StagingArea\Data\Managed\Plugins\ARM,Temp\StagingArea\Data\Managed\Plugins\ARM64,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\X86,Temp\StagingArea\Data\Managed\Plugins\ARM64,Temp\StagingArea\Data\Managed\Plugins\ARM,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\X86,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\ARM64,Temp\StagingArea\Data\Managed\Plugins\ARM,Temp\StagingArea\Data\Managed\Plugins\ARM,Temp\StagingArea\Data\Managed\Plugins\X64,Temp\StagingArea\Data\Managed\Plugins\ARM64" "--platform=C:\Program Files (x86)\Windows Kits\10\UnionMetadata\10.0.22000.0\Facade\Windows.winmd" "--dbg=pdb" "--framework=Temp\StagingArea\Data\Managed" "--alt=Microsoft.Win32.SafeHandles,mscorlib;System,mscorlib;System,System;System,System.ComponentModel.Composition;System,System.Core;System.CodeDom.Compiler,System;System.Collections,mscorlib;System.Collections.Concurrent,mscorlib;System.Collections.Concurrent,System;System.Collections.Generic,mscorlib;System.Collections.Generic,System;System.Collections.Generic,System.Core;System.Collections.ObjectModel,mscorlib;System.Collections.ObjectModel,System;System.Collections.Specialized,System;System.ComponentModel,System;System.ComponentModel.DataAnnotations,System.ComponentModel.DataAnnotations;System.ComponentModel.DataAnnotations.Schema,System.ComponentModel.DataAnnotations;System.Data,System.Data;System.Data.Common,System.Data;System.Diagnostics,mscorlib;System.Diagnostics,System;System.Diagnostics.CodeAnalysis,mscorlib;System.Diagnostics.Contracts,mscorlib;System.Diagnostics.Tracing,mscorlib;System.Dynamic,System.Core;System.Globalization,mscorlib;System.IO,mscorlib;System.IO,System;System.IO,System.Core;System.IO,System.Runtime.WindowsRuntime.UI.Xaml;System.IO.Compression,System;System.IO.Compression,System.IO.Compression.FileSystem;System.IO.IsolatedStorage,mscorlib;System.Linq,System.Core;System.Linq.Expressions,System.Core;System.Net,System;System.Net.NetworkInformation,System;System.Net.Security,System;System.Net.Sockets,System;System.Numerics,System.Numerics;System.Reflection,mscorlib;System.Reflection.Emit,mscorlib;System.Resources,mscorlib;System.Runtime,mscorlib;System.Runtime.CompilerServices,mscorlib;System.Runtime.CompilerServices,System.Core;System.Runtime.ExceptionServices,mscorlib;System.Runtime.InteropServices,mscorlib;System.Runtime.InteropServices,System;System.Runtime.InteropServices,System.Core;System.Runtime.InteropServices.ComTypes,mscorlib;System.Runtime.InteropServices.ComTypes,System;System.Runtime.InteropServices.WindowsRuntime,mscorlib;System.Runtime.Serialization,mscorlib;System.Runtime.Serialization,System.Runtime.Serialization;System.Runtime.Serialization.Json,System.Runtime.Serialization;System.Runtime.Versioning,mscorlib;System.Runtime.Versioning,System;System.Security,mscorlib;System.Security.Authentication,System;System.Security.Authentication.ExtendedProtection,System;System.Security.Claims,mscorlib;System.Security.Principal,mscorlib;System.ServiceModel,System.ServiceModel;System.ServiceModel.Channels,System.ServiceModel;System.ServiceModel.Description,System.ServiceModel;System.ServiceModel.Dispatcher,System.ServiceModel;System.ServiceModel.Security,System.ServiceModel;System.ServiceModel.Security.Tokens,System.ServiceModel;System.Text,mscorlib;System.Text.RegularExpressions,System;System.Threading,mscorlib;System.Threading,System;System.Threading,System.Core;System.Threading.Tasks,mscorlib;System.Threading.Tasks,System.Core;System.Windows.Input,System;System.Xml,System.Runtime.Serialization;System.Xml,System.Xml;System.Xml.Linq,System.Xml.Linq;System.Xml.Schema,System.Xml;System.Xml.Serialization,System.Xml;<winmd>,Windows.winmd;<winmd>,Windows.AI.MachineLearning.MachineLearningContract.winmd;<winmd>,Windows.AI.MachineLearning.Preview.MachineLearningPreviewContract.winmd;<winmd>,Windows.ApplicationModel.Calls.Background.CallsBackgroundContract.winmd;<winmd>,Windows.ApplicationModel.Calls.CallsPhoneContract.winmd;<winmd>,Windows.ApplicationModel.Calls.CallsVoipContract.winmd;<winmd>,Windows.ApplicationModel.CommunicationBlocking.CommunicationBlockingContract.winmd;<winmd>,Windows.ApplicationModel.SocialInfo.SocialInfoContract.winmd;<winmd>,Windows.ApplicationModel.StartupTaskContract.winmd;<winmd>,Windows.Devices.Custom.CustomDeviceContract.winmd;<winmd>,Windows.Devices.DevicesLowLevelContract.winmd;<winmd>,Windows.Devices.Printers.PrintersContract.winmd;<winmd>,Windows.Devices.SmartCards.SmartCardBackgroundTriggerContract.winmd;<winmd>,Windows.Devices.SmartCards.SmartCardEmulatorContract.winmd;<winmd>,Windows.Foundation.FoundationContract.winmd;<winmd>,Windows.Foundation.UniversalApiContract.winmd;<winmd>,Windows.Gaming.XboxLive.StorageApiContract.winmd;<winmd>,Windows.Graphics.Printing3D.Printing3DContract.winmd;<winmd>,Windows.Networking.Connectivity.WwanContract.winmd;<winmd>,Windows.Networking.Sockets.ControlChannelTriggerContract.winmd;<winmd>,Windows.Security.Isolation.IsolatedWindowsEnvironmentContract.winmd;<winmd>,Windows.Services.Maps.GuidanceContract.winmd;<winmd>,Windows.Services.Maps.LocalSearchContract.winmd;<winmd>,Windows.Services.Store.StoreContract.winmd;<winmd>,Windows.Services.TargetedContent.TargetedContentContract.winmd;<winmd>,Windows.Storage.Provider.CloudFilesContract.winmd;<winmd>,Windows.System.Profile.ProfileHardwareTokenContract.winmd;<winmd>,Windows.System.Profile.ProfileRetailInfoContract.winmd;<winmd>,Windows.System.Profile.ProfileSharedModeContract.winmd;<winmd>,Windows.System.Profile.SystemManufacturers.SystemManufacturersContract.winmd;<winmd>,Windows.System.SystemManagementContract.winmd;<winmd>,Windows.UI.UIAutomation.UIAutomationContract.winmd;<winmd>,Windows.UI.ViewManagement.ViewManagementViewScalingContract.winmd;<winmd>,Windows.UI.Xaml.Core.Direct.XamlDirectContract.winmd;<winmd>,Windows.ApplicationModel.Activation.ActivatedEventsContract.winmd;<winmd>,Windows.ApplicationModel.Activation.ActivationCameraSettingsContract.winmd;<winmd>,Windows.ApplicationModel.Activation.ContactActivatedEventsContract.winmd;<winmd>,Windows.ApplicationModel.Activation.WebUISearchActivatedEventsContract.winmd;<winmd>,Windows.ApplicationModel.Background.BackgroundAlarmApplicationContract.winmd;<winmd>,Windows.ApplicationModel.Calls.LockScreenCallContract.winmd;<winmd>,Windows.ApplicationModel.FullTrustAppContract.winmd;<winmd>,Windows.ApplicationModel.Preview.InkWorkspace.PreviewInkWorkspaceContract.winmd;<winmd>,Windows.ApplicationModel.Preview.Notes.PreviewNotesContract.winmd;<winmd>,Windows.ApplicationModel.Resources.Management.ResourceIndexerContract.winmd;<winmd>,Windows.ApplicationModel.Search.Core.SearchCoreContract.winmd;<winmd>,Windows.ApplicationModel.Search.SearchContract.winmd;<winmd>,Windows.ApplicationModel.Wallet.WalletContract.winmd;<winmd>,Windows.Devices.Portable.PortableDeviceContract.winmd;<winmd>,Windows.Devices.Printers.Extensions.ExtensionsContract.winmd;<winmd>,Windows.Devices.Scanners.ScannerDeviceContract.winmd;<winmd>,Windows.Devices.Sms.LegacySmsApiContract.winmd;<winmd>,Windows.Gaming.Input.GamingInputPreviewContract.winmd;<winmd>,Windows.Gaming.Preview.GamesEnumerationContract.winmd;<winmd>,Windows.Gaming.UI.GameChatOverlayContract.winmd;<winmd>,Windows.Gaming.UI.GamingUIProviderContract.winmd;<winmd>,Windows.Globalization.GlobalizationJapanesePhoneticAnalyzerContract.winmd;<winmd>,Windows.Management.Deployment.Preview.DeploymentPreviewContract.winmd;<winmd>,Windows.Management.Deployment.SharedPackageContainerContract.winmd;<winmd>,Windows.Management.Workplace.WorkplaceSettingsContract.winmd;<winmd>,Windows.Media.AppBroadcasting.AppBroadcastingContract.winmd;<winmd>,Windows.Media.AppRecording.AppRecordingContract.winmd;<winmd>,Windows.Media.Capture.AppBroadcastContract.winmd;<winmd>,Windows.Media.Capture.AppCaptureContract.winmd;<winmd>,Windows.Media.Capture.AppCaptureMetadataContract.winmd;<winmd>,Windows.Media.Capture.CameraCaptureUIContract.winmd;<winmd>,Windows.Media.Capture.GameBarContract.winmd;<winmd>,Windows.Media.Devices.CallControlContract.winmd;<winmd>,Windows.Media.MediaControlContract.winmd;<winmd>,Windows.Media.Playlists.PlaylistsContract.winmd;<winmd>,Windows.Media.Protection.ProtectionRenewalContract.winmd;<winmd>,Windows.Networking.NetworkOperators.LegacyNetworkOperatorsContract.winmd;<winmd>,Windows.Networking.XboxLive.XboxLiveSecureSocketsContract.winmd;<winmd>,Windows.Perception.Automation.Core.PerceptionAutomationCoreContract.winmd;<winmd>,Windows.S<message truncated>
原因はAssembly Definition Referencesの設定漏れやロード順の問題
解決方法は一例として、
- 直近で入れたアセットをいったん消したりなどしてそれが本当に原因かを特定
- その後入れ直し
- 追加アセットを参照するコードが関係するAssembly Definition AssetのReferencesへ、追加アセットのAssembly Definition Assetを追加 or 順番を上にする。
HoloLens2実機デプロイ時
Visual Studioのソリューションエクスプローラーに自分のプロジェクトが見当たらない
Unityでビルドしたプロジェクトじゃなくて、間違えてUnityのプロジェクトの.slnファイルを開いている。
DEP0600: 配置が失敗しました。新しい配置パイプラインを通して配置できませんでした。
原因1
アプリパッケージが大きすぎるとたまに発生。HoloLens2を再起動したりUSB接続しなおしたり、Wi-Fiでデプロイしてみる。
またよくあるパターンのStreamingAssets以下のものを他においてアプリパッケージの外に出す。
原因2
それかPackage Nameが同じアプリをデバイスポータルのアプリパッケージ経由やストアからインストールした場合にも以下のエラーが同時にでて失敗する。
自分のプロジェクトのPackage Nameを変更するか、HoloLens実機のインストール済みのアプリを一度アンインストールを行ってから再度実施する。
RemoteCommandException: Another user has already installed a packaged version of this app. An unpackaged version cannot replace this. The conflicting package is パッケージ名 and it was published by CN=インストールしたユーザー名.
実機にデプロイしたアプリの起動時
HoloLens2にデプロイしたアプリが3つの丸がくるくる回って読み込み中の表示のまま起動しない場合
他のバージョンのUnityを試す。
実機のアプリの表示がされないなど
HoloLens2にデプロイしたアプリの表示がない。Gazeや手の線のみ表示される
OpenXRに切り替える必要があるパターン
(Unity.Hierarchy)MixedRealityToolkit
OpenXRConfigurationProfileに切り替える
Project SettingsのXR Plug-in ManagementのUWPタブでInitialize XR on Startupのチェックを入れる
環境認識で生成されるSpatial Meshに埋まってるパターン
(Unity.Hierarchy)MixedRealityToolkit > Spatial Awareness > OpenXR Spatial Mesh Observer > General Settings/Startup Behavior = Manual Start
Build Settingsに登録し忘れているパターン
追加する。沼ってて疲れてくるとよくある。一休みだ。
起動直後にアプリがクラッシュして落ちているパターン
Editorでは動いているのに実機では動かない。ログなどを確認。
一例としてコンポーネントの参照にMissingがあると落ちたりもする。
UnityのプロジェクトからMissingだけでなく何かしらの問題となるようなものをサクッと調べて直してくれる有料アセットのMaintainerが超おすすめ。
https://assetstore.unity.com/packages/tools/utilities/maintainer-32199?locale=ja-JP
何かがおかしいパターン
UnityからBuildしたVisual Studioのフォルダを丸ごと消してやり直しするか、Unityのバージョンを変えてプロジェクトを作り直す。
それでもダメならばVisual Studioの個別コンポーネントの入れ漏れがある可能性などがある。
アプリパッケージの作成時
アプリパッケージの作成手順
(Visual Studio)プロジェクト>公開>アプリパッケージの作成
※アプリパッケージの作成がグレーアウトして選べない場合は、
アプリパッケージのインストール手順
HoloLens2のDevice PortalのViews>Apps
デバッグなしで実行などで既にインストール済みの場合はいったん消してから入れなおす。
自動更新について
※更新についてはできたが、新規インストールができなかった。
情報お持ちの方は上記ツイートまで。
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?