前知識0でHolo1も触っていない私が得た知見を勢いだけでまとめたものです。
開発が完了したタイミングで清書をする予定です。
今は知見を積んでいる状態です。
使用するUnityのバージョン
2019のLTSを推奨していました。本環境は2019.4.10f1を仕様しています。
こちらから最新の2019LTSをDL推奨。
https://unity3d.com/unity/qa/lts-releases
UnityProjectの設定
こちらが参考になりました。
https://docs.microsoft.com/ja-jp/windows/mixed-reality/recommended-settings-for-unity
UWPにSwitchPlatformしたところ警告が出ていますね。
VisualStudioの環境構築が足りていないと警告が出るようです。
その場合の対応はこちらが参考になりました。
https://qiita.com/chomado/items/38baafdfd96892d3b41d
MRTKもインストールしました。VRを開発した方ならVRTKと言えば察しがつくかと思います。入力系の処理がいい感じにラップしてある便利ツールだと思っていただければよいかと思います。Unity2019をインストールしたのはMRTKのサポートが保証されているからです。
https://github.com/microsoft/MixedRealityToolkit-Unity/releases
Microsoft.MixedReality.Toolkit.Unity.Foundation.X.X.X.unitypackage
をDLしましょう。(X.X.X はバージョン)
WiondowsとHololoends2の設定
MRTKを導入した状態でビルドしたらエラーがでるんですけど。。
Assets\MixedRealityToolkit.Providers\WindowsMixedReality\WindowsMixedRealityArticulatedHand.cs(418,73): error CS0246: The type or namespace name 'HandJointKind' could not be found (are you missing a using directive or an assembly reference?)
Assets\MixedRealityToolkit.Providers\WindowsMixedReality\WindowsMixedRealityArticulatedHand.cs(111,17): error CS0246: The type or namespace name 'HandMeshObserver' could not be found (are you missing a using directive or an assembly reference?)
Assets\MixedRealityToolkit.Providers\WindowsMixedReality\WindowsMixedRealityArticulatedHand.cs(382,33): error CS0246: The type or namespace name 'HandJointKind' could not be found (are you missing a using directive or an assembly reference?)
Assets\MixedRealityToolkit.Providers\WindowsMixedReality\WindowsMixedRealityArticulatedHand.cs(412,26): error CS0246: The type or namespace name 'JointPose' could not be found (are you missing a using directive or an assembly reference?)
I am running on Windows 10 Insider preview with OS build : 18362.30 Version : 1903
Also I double checked with build setting Minimum SDK is 10.0.10240.0 Target SDK version is “Latest installed”
かなりハマりました。
エラーコードでググると下のページがみつかりましたが、エラーがとれませんでした。
https://stackoverflow.com/questions/55706007/facing-issue-when-i-build-the-mixedrealitytoolkit-unity-v2-sample-project
原因は、Windows10SDKの未インストールでした。
https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk/
インストーラーからSDKをDLしたのちUnityEditorを再起動したところビルドできました。
人にとっては、Libraryフォルダを削除したら直ったりBuildSettingsのMinimumPlatformVersionを10.0.10240.0に選択すえうと直ったりと色々な原因がありそうです。
(自分の環境で最適化した)Unityの設定
MRTK導入エラーで設定をいじくりまわした結果、複数のサイトから適用した形になりましたのでスクリーンショットを共有します。(あくまで私の環境でのベストですので)
BuildSettings->PlayerSettings->XRSettings
EnableDepthBufferShariungをオフにする情報はMS公式のYoutube動画で言っていたので正しいんじゃないですかね(他のサイトだとONにしていたりするのでちょっと不安)
https://www.youtube.com/watch?v=q1cvbJP2miM&frags=wn&ab_channel=%E6%97%A5%E6%9C%AC%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E5%85%AC%E5%BC%8F%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB
PublishingSettingsのCapabilitiesのチェック入れ忘れも気をつけてください。SpatialPerceptionとかね。
Edit->ProjectSettings->Quality
QualityLevelをVeryLowに
上部のDefaultテキストの右部にある▼マークから変更です。
Window->Rendering->Lighting
RealLightingはオフにしたほうがいいらしいです
(自分の環境で最適化した)VisualStudioInstaller
VisualStudioのバージョンは2019(2017だとダメでした)
・C++デスクトップ開発
・ユニバーサルWIndwosプラットフォーム開発
・Unityによるゲーム開発
個別のコンポーネントからUSBデバイスの接続を選択しておくと有線接続で実機に転送できるようになります。
(自分の環境で最適化した)VisualStudio
前提としてUnityでビルドして吐き出されたプロジェクト名.sinを開いておいてください。
プロジェクト名(UniversalWindows)を右クリック
・スタートアッププロジェクトに設定
・プロパティ->デバッグ->コンピューター名にHololends2がアクセスしているIPアドレスを入力(入力すると無線接続でビルドができます)
Hololends側からIPアドレスを確認するには
設定アプリの「ネットワークとインターネット」→ 現在つながっているネットワークの「詳細オプション」をタップすることで確認できました。
Release、ARM64
を選択。ARM64に選択しないと実機でエラーになり動作しませんでした(5敗)。
プロファイラ、Development Consoleを消す
UnityEditorからリモートでデバッグする
WindowsStoreからHolographic Remoting PlayerをインストールしたのちUnityEditorから設定を行えばできました(Hololends側でもHolographic Remoting Playerを起動をわすれないように)
DL先
https://docs.microsoft.com/ja-jp/windows/mixed-reality/holographic-remoting-player
公式できれいにまとめてくれていました。
https://docs.microsoft.com/ja-jp/windows/mixed-reality/holograms-100#chapter-5---verify-on-device-from-unity-editor
起動時に毎回PIN入力を行わないようにする
ロビー画面?で
アカウント→サインインオプション→サインインを求めるタイミング
で行えるようです。
こちら参考にしました。
https://blog.hololab.co.jp/entry/2020/01/20/000000
QR対応(QRマーカーを読み込む)
試すだけならサンプルをダウンロードするのが楽そうです。
https://github.com/chgatla-microsoft/QRTracking/tree/master/SampleQRCodes
自分の環境はQRマーカーを読む機能を追加で行いたかったのでNugetパッケージからのインストールを行いました。
Nugetパッケージをまずインストールしたのち、NugetからQRマーカーを読むSDKをインストールするそうな。
まずは下リンクから最新の「NuGetForUnity.X.X.X.unitypackage
」をDLしUnityにインポート。
https://github.com/chgatla-microsoft/QRTracking
NuGetウィンドを表示し「Microsoft.MixedReality.QR」と検索したら出てきました。
使い方はこちらを参考にしました
https://docs.microsoft.com/ja-jp/windows/mixed-reality/qr-code-tracking?WT.mc_id=MR-MVP-5003868
PacageManagerから
2つDL
・WindowsMixedReality