前回記事からすぐですが、mofmofにHoloLens2が到着したので早速環境構築していきます。
今回はHololens2のセットアップと、実際に適当なプロジェクトを作ってxR系統のHello worldことtofuをHoloLens2でみられるようにしたいと思います。
動作環境
- windows Windows 10 Home OSビルド 19042.662
- unity HUb 2.4.2
- unity 2019.4.15f1
- visual Studio 2019 16.8.2 Community
で立ち上げています。
事前準備
HoloLens2に限りませんが、Windowsデバイスは開発者モードにしておく必要があることが多いです。HoloLens2の開発でもWindows機、HoloLens2実機のどちらも開発者モードにする必要があるみたいでした。
設定 -> 更新とセキュリティ -> 開発者モード から変更しましょう。
HoloLens2の方も同様に開発者モードにします。中身はWindowsOSが入ってるようなのでこちらも同様にセットアップします。
このタイミングで初めてHoloLens2を起動してみましたが、空中に画面が浮かんだり、手首にwindowsマークがあって押したら設定が表示されたりと、近未来的な感じがしました。 一方、空中に浮かんだ画面やキーボードをクリックするのが結構大変で、パスワードの入力のとことかは特に難易度が高いです(主に誤タップ的な意味で)もっといい方法があるのかもしれませんが、細かいリンクをクリックするのに手こずりました。
Unity側で環境を整える
まだUnityが入っていない場合はUnityHubからUnityのインストールを行います。
すでにインストール済みの場合は Universal Windows Platform Build Support
(以降UMP)モジュールが入っているかどうかを確認し、もし入っていなければ追加してください。
インストールが終わったら、サンプル用のプロジェクトを立ち上げましょう。
テンプレートは3Dを選択しました。
プロジェクト作成後、そのまま開くので少し待ちます。
unityプロジェクトが開いたら、FileからBuildSettingsを開きます。下記のような画面がポップアップされると思います。
画像のように、UMPを選択し、Switch Platform
でUMPを使用するように切り替えましょう。現在のPlatformがどれであるかはUnityロゴがついているものになります。(画像ではUMPにswitch済み。自分の環境ではデフォルトはPC,Mac & Linuxが選択されていました。)
選択が終わったら、ポップアップ左下部のPlayerSetting
を選択し、別ポップアップを開きます。
このポップアップ上で、XR Settings
を選択し、プルダウンを表示させます。
Virtual Reality Support
が有効になっていなければ、チェックをいれて有効にしましょう。
最後に、プラスボタンを押して、SDKにWindowsMixedReality がなければそれを追加します。
MRTKを入れる
https://github.com/Microsoft/MixedRealityToolkit-Unity/releases
Unityは一からゴリゴリと何かを書くと結構大変です。
とはいえ、Webにおけるアセットやライブラリのように、Unityでもよく使われるようなボタンやゲームのHPバーなどはライブラリとして提供されています。
HoloLens2の場合はMRTKと呼ばれるオープンソースのツールキットがあり、
ハンドトラッキングやキーボードなどは自前で作成しなくてもMRTKを導入することで高いクオリティでそのまま使用することができるみたいです。
MRTKなしでなにかを実装するのは茨の道のようなので、今回はMRTKのセットアップもやっていきます。
MRTKのインストール
MRTKをインストールする前に、依存関係であるText Mesh Pro
と呼ばれるテキストのリッチな演出ができるアセットをインストールしましょう。
https://blogs.unity3d.com/jp/2017/03/20/textmesh-pro-joins-unity/
画像にあるように、 Import TMP Essential Resources を実行しましょう。
実行が終わったら、MRTKをダウンロードしていきます。 https://github.com/Microsoft/MixedRealityToolkit-Unity/releases
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.5.1.unitypackage
が基本パッケージのようです。
とりあえずはこいつをダウンロードしましょう。 ダウンロードが終わったら、AssetsからImport Packageを行い、先ほどダウンロードしたMRTKを読み込みます
インポートしたら、MRTKのポップアップが出てくるので、Applyを押して適用します。とりあえずオールインで全てにチェックを入れています。
Tofuを出す
ここからUnityの元来の機能を少し触ります。
Hierarchyから、3Dオブジェクトを生成し、
positionなどを変更して目の前にcubeが出るようにします。 HoloLens2に表示させたいシーンが出てきたら、
save asでシーンを適当な場所に保存しましょう。
保存が終わったら、再度Hierarchyのセクションに戻り、インポートして追加されているMixedRealityToolKit
を選択、InsupectorのプロファイルをHoloLens2のものに変更しましょう。
Buildする
ここまで出来たら、再度Fileから、BuildSettingsを選択し、右上Add Open Scene
ボタンをクリックする。これで先ほど保存したシーンを選択しておく。
ここでBuildしたいところではあるができない。
自分の環境だと、真ん中あたりに赤い!マークがでて、サポートされているSDK見つからない的なことが言われているのが原因みたいです。
ないなら入れる。エラー内容に従ってみましょう。
https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk/
自分は上記のとこからインストールした。インストールしてUnityを再度開いてみる。
ちょっと変わった。どうやらBuildもできそう。 ただ、黄色い!がでている。あまりいいことは言ってない。どうやらVisual Studioにこのビルドしたプロジェクトを実行するためのコンポーネントがないらしい。 なるほど。
Visual Studio Instollerを開いて、確認する。
変更をクリックして、ユニバーサルWindowsプラットフォームの項目にチェックを入れて、右側の必要っぽいものにチェックを入れていく。
ダウンロード。結構時間がかかる。
終わったら、再度Unityを開く。
オッケーな気がする。 エラーや警告が出ていなければBuildします。 場所は今回はどこでもいいがAppディレクトリを作ってそこに置いてみた。
Visual Studio
ビルドが終わったら、Visual Studioで開く。
ビルドの中に、.sln
という拡張子のファイルがあると思われるので、それをVisual Studioで開く。
Visual Studioの構成をReleaseに、その右の項目をARM64に設定。
設定を終えたら、プロパティタブを開いて、鍵マークのようなものをクリックする。プロパティページがポップアップする。
プロパティページからデバッグを選択し、コンピューター名にHoloLens2のIPアドレスを入れる。(HoloLens2とコンピューターを有線接続している場合はこの工程はスキップできるみたい)
入力できたら、デバッグメニューから、デバッグなしで開始を選択し、デバッグインストールを行う。
リモート接続の場合、HoloLens2側で開発者モードからペアリングを行い、PINを発行する。Visual Studioでそれを要求されるので、接続すればオッケー。 正常に立ち上がった場合、HoloLens2側では自動でUnityが立ち上がるので、そのまま確認できる。
やったー!できた!
公式のビルドガイドが丁寧。