※ これは 2018/08/18 Unity 2018.2.3f1、Mixed Reality Toolkit vNext Alpha v2018.7.0.0 時点の情報です
最新版では動作が異なる可能性がありますのでご注意ください
Mixed Reality Toolkit の次期バージョン vNext のアルファ版がプレリリースしていました
詳しいことは下記でも紹介されていますが、せっかくなのでチラ見!
※ 必要環境は下記の通り
環境 | 必要条件 |
---|---|
Unity | 2018.1 以降が必須、2018.1.9f1 推奨 |
C# ランタイム | .NET 4.x API 指定必須 |
プラットフォーム | UWP ビルドサポート必須 |
Windows SDK | 10.0.17134 以降 |
Visual Studio | 2017 以降 |
Windows 10 | Fall Creators Update 以降 |
.NET 4.x 指定必須のため C#6 が使えるように!
スポンサードリンク
まだアルファ版だからか unitypackage はなく 圧縮ファイルしか用意されていないので、素直に zip をダウンロードして展開
とりあえず最新の Unity 2018.2.3f1 でおもむろに展開後のディレクトリを開くといつものバージョン更新確認
Continue ボタンで自動グレードアップ
プロジェクトビューを適度に開くとこんな感じ
HoloToolkit から MixedRealityToolkit に刷新
旧版と並べてみると結構大胆に整理されているのがわかります
新しい構成の方が少し抽象化され階層がふかくなったおかげですっきりしています
すでに Unity と提携強化し Google 提供のネットワーク API に置き換わる予定の UNET が残っているのは気になりますが・・・
旧版でメニューから設定していた Configure 系の設定は、Unity 推奨の Scriptable Object に置き換わったみたいです
Prefab ほど重くなく、設定の複製や一部だけ変更して調整するのに向いているので Scriptable Object に移行したんでしょうね
Assets/MixedRealityToolkit-SDK/Profiles 配下にありました
プロファイル名 | 主な設定項目 |
---|---|
DefaultMixedRealityConfigurationProfile | MRTK の全体設定、各種プロファイルへの参照がまとまっている |
DefaultMixedRealityBoundaryVisualizationProfile | 現実の安全範囲境界の VR 空間上の表示設定など |
DefaultMixedRealityCameraProfile | カメラの設定 |
DefaultMixedRealityControllerConfigurationProfile | モーションコントローラーのトラッキング設定など |
DefaultMixedRealityInputActionsProfile | アクションコマンドで参照する数値制約の設定 |
DefaultMixedRealityInputPointerProfile | 表示ポインターの設定 |
DefaultMixedRealitySpeechCommandsProfile | 音声操作用の設定 |
とりあえず何かサンプルを動かしてみるため、Assets/MixedRealityToolkit-Examples/Demos/Boundary/Scenes/BoundaryVisualization.unity を開いて実行
vNext だと UnityEditor 上で実行するだけでも MixedReality ポータルが立ち上がりシミュレーター上で操作ができました
・・・ただ、Boundary のサンプルは現実世界の部屋の境界が設定されないとデモができないらしい
シミュレーターでは境界のセットアップができないのでサンプルデモがなんのことやら状態
本来なら下記のように境界に合わせた可視化がされるはずです
このあと HoloLens 実機にインストールしようとビルドするとエラーになってしまいました
D:\1_Tools\VisualStudio\2017\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets(44,5): error MSB3073: �R�}���h ""D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\Il2CppOutputProject\\IL2CPP\build\il2cpp.exe" --libil2cpp-static --compile-cpp -architecture=x86 -configuration=Debug -platform=winrt -outputpath="D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\\build\bin\Win32\Debug\GameAssembly.dll" --data-folder="D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\\build\bin\Win32\Debug\\" -cachedirectory="D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\\build\obj\il2cppOutputProject\Win32\Debug\\" -generatedcppdir="D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\Il2CppOutputProject\\Source" --additional-defines=WINDOWS_UWP --additional-defines=UNITY_UWP --additional-defines=UNITY_WSA_10_0 --additional-defines=UNITY_WSA --additional-defines=UNITY_WINRT --additional-defines=PLATFORM_WINRT -dotnetprofile=unityjit -verbose --map-file-parser="D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\Il2CppOutputProject\\IL2CPP\MapFileParser\MapFileParser.exe"" �̓R�[�h -532462766 �ŏI�����܂����B [D:\2_Documents\2_Sources\MRSamples\vNextAlpha\UWP\Il2CppOutputProject\Il2CppOutputProject.vcxproj] UnityEngine.Debug:Log(Object) Microsoft.MixedReality.Toolkit.Internal.Extensions.<StartProcessAsync>c__AnonStorey3:<>m__2(Object, DataReceivedEventArgs) (at Assets/MixedRealityToolkit/_Core/Extensions/ProcessExtensions.cs:87) System.Threading._ThreadPoolWaitCallback:PerformWaitCallback() MixedRealityToolkit appx build Failed! (ErrorCode: 1) UnityEngine.Debug:LogError(Object) Microsoft.MixedReality.Toolkit.Internal.Build.<BuildAppxAsync>c__async0:MoveNext() (at Assets/MixedRealityToolkit/_Core/BuildAndDeploy/UwpAppxBuildTools.cs:192) System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetResult(ProcessResult) Microsoft.MixedReality.Toolkit.Internal.Extensions.<StartProcessAsync>c__async0:MoveNext() (at Assets/MixedRealityToolkit/_Core/Extensions/ProcessExtensions.cs:37) System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetResult(ProcessResult) Microsoft.MixedReality.Toolkit.Internal.Extensions.<StartProcessAsync>c__async1:MoveNext() (at Assets/MixedRealityToolkit/_Core/Extensions/ProcessExtensions.cs:109) UnityEngine.UnitySynchronizationContext:ExecuteTasks()
Unity の方もガンガンバージョンアップするし、まだアルファだしこの辺はまだまだすんなりとはいかなそうですね