本日は MRTK v2 の技術調査枠です。
MRTK v2を使ってのHoloLens1/HoloLens2/WindowsMR(VR)向けアプリを作成する方法について基本的な手順をまとめます。
今回はUnityプロジェクトの新規作成からUWPアプリをビルドするまでの手順になります。
以下の記事の続きです。
bluebirdofoz.hatenablog.com
2020/02/15追記
MRTK v2.3.0 のリリースに対応して本記事を更新。
合わせて、HoloLens1/HoloLens2/WindowsMR対応版に更新。
Unity プロジェクトの作成
Unity の新規プロジェクトを作成します。
Unity Hub の[新規作成]を起動し、新規プロジェクトの作成を行います。
このとき、利用する Unity のバージョンは 2018.4.x, 2019.1.x または 2019.2.x を選択します。
本記事では 2018.4.x を利用します。
以下の通りに設定を行い、[作成]ボタンをクリックしてプロジェクトを作成します。
・テンプレート:[3D]
・プロジェクト名:任意のプロジェクト名
・保存先:任意のディレクトリ
これで新規プロジェクトが作成されました。
パッケージのインポート
プロジェクトに MRTKv2 をインポートします。
最初に Microsoft.MixedReality.Toolkit.Unity.Foundation.2.3.0.unitypackage をインポートします。
Unity プロジェクトを開いた状態であれば unitypackage をダブルクリックでインポートできます。
Import Unity Package ダイアログが開きます。
[Import]ボタンをクリックして、パッケージをインポートします。
Foundation パッケージはインポート完了時に、[MRTK Project Configurator]ダイアログが表示されます。
[Apply]を選択すると、以下のデフォルト設定が行われます。
・現在のプラットフォームで VR Support を有効にする
・レンダリングパスをシングルパスに設定する
・デフォルトの空間認識レイヤーを設定する
特に指定がなければ[Apply]で自動設定する事が推奨されます。
2.2.0 での設定項目[Enable MSBuild for Unity]は 2.3.0 では UWP プラットフォーム切り替え後の設定項目に変更されています。
これで Foundation パッケージがインストールされました。
Foundation パッケージをインポートすると、メニューに[Mixed Reality Toolkit]が追加されます。
[MRTK Project Configurator]ダイアログは Mixed Reality Toolkit -> Utilities -> Configure Unity Project から手動で開くこともできます。
全ての設定にチェックが入っていれば設定が完了しています。
他の3つのパッケージのインポートは任意です。必要な場合は同様にインポートを行います。
各パッケージはそれぞれ以下の役割を持ちます。
Examples :MRTK機能を使ったデモシーンを含むパッケージです。 Tools :便利な開発者用ツールを含むパッケージです。 Extensions:オプションコンポーネントを含むパッケージです。
各パッケージに含まれる機能やツールの詳細は以下のページを参照ください。
bluebirdofoz.hatenablog.com
プラットフォームの選択
アプリのビルドプラットフォームを UWP に切り替えます。
メニューから File -> Build Settings.. を選択します。
Build Settings ダイアログが開きます。
[Add Open Scenes]をクリックして現在のシーンをビルド対象のシーンとして追加します。
[Platform]から[Universal Windows Platform]を選択して[Switch Platform]を実行します。
これでビルド対象にシーンが追加され、プラットフォームが UWP(Universal Windows Platform) に切り替わりました。
プラットフォームが切り替わると、[MRTK Project Configurator]ダイアログが表示されます。
切り替え時に VR Support のチェックが外れる他、UWP では追加の Capability の設定が要求されます。
改めて[Apply]をクリックして設定を反映します。
処理が完了したら[MRTK Project Configurator]ダイアログで全ての設定が完了していることを確認します。
[Enable MSBuild for Unity]をチェックしていると、メニューに[MSBuild]が追加され、Dependencies フォルダが生成されます。
Dependencies フォルダーには MRTK によってインポートされるプラグイン(DotNetWinRTなど)が含まれています。
シーンの設定
次にアプリのシーンを設定を行います。
Foundation パッケージをインポート済みであれば[Mixed Reality Toolkit]メニューが追加されています。
そのメニューから Mixed Reality Toolkit -> Add to Scene and Configure.. を選択します。
するとシーンの Hierarchy に以下のゲームオブジェクトが追加されます。
・MixedRealityToolkit
・MixedRealityPlayspace
Mixed Reality Toolkit:フレームワーク全体の中央構成エントリポイントを提供するツールキットの本体。 MixedRealityPlayspace:ヘッドセットの親オブジェクト。ヘッドセット/コントローラーおよびその他の必要なシステムを管理します。メインカメラはプレイスペースの子オブジェクトとして移動します。
利用するデバイスにシーンを最適化するには、デバイスに合わせたプロファイルを設定する必要があります。
MixedRealityToolkit オブジェクトを選択し、Inspector ビューを開きます。
HoloLens1/HoloLens2/WindowsMR(VR)全てに対応したプロジェクトを作成する場合は Mixed Reality Toolkit コンポーネントで[DefaultMixedRealityToolkitConfigurationProfile]が選択されていることを確認します。
Mixed Reality Toolkit コンポーネントではその他、以下のプロファイルを選択できます。
・DefaultHoloLens1ConfigurationProfile
・DefaultHoloLens2ConfigurationProfile
・DefaultXRSDKConfigurationProfile
各プロファイルはそれぞれ以下の役割を持ちます。
DefaultMixedRealityToolkitConfigurationProfile:HoloLens1/HoloLens2/WindowsMR(VR)/OpenVR全ての環境に対応可能なプロファイル DefaultHoloLens1ConfigurationProfile :HoloLens1向けに最適化されたプロファイル DefaultHoloLens2ConfigurationProfile :HoloLens2向けに最適化されたプロファイル DefaultXRSDKConfigurationProfile :Unity XRプラットフォーム向けに設定されたプロファイル
例えば DefaultMixedRealityToolkitConfigurationProfile と DefaultHoloLens2ConfigurationProfile のどちらを利用しても HoloLens2 向けのビルドは可能です。
ただし DefaultHoloLens2ConfigurationProfile は HoloLens2 のスペックに最適化が図られているため、空間メッシュやハンドメッシュが予め無効化されています。
特定の環境での利用を想定していないのであれば、ひとまず[DefaultMixedRealityToolkitConfigurationProfile]で設定しておくと良いでしょう。
なお、DefaultXRSDKConfigurationProfile はUnity XRプラットフォーム向けに 2.3.0 から追加されたプロファイルです。
2.3.0 ではUnity XRプラットフォームの対応は実験的(Experimental)と位置付けられています。
microsoft.github.io
プロファイルの詳細については以下を参照ください。
microsoft.github.io
サンプルシーンの作成
このままビルドして HoloLens にインストールすることも可能ですが、動作確認用にサンプルシーンを作ってみます。
Hierarchy 上で右クリックして で Cube オブジェクトを作成します。
作成した Cube オブジェクトの[Transform]コンポーネントの値を以下の通り調整しました。
Position X:0, Y:0, Z:1 Rotation X:0, Y:0, Z:0 Scale X:0.2, Y:0.2, Z:0.2
これでアプリを実行すると、目の前に 20cm 四方の Cube オブジェクトが表示されます。
[再生]ボタンをクリックすることで、[Game]画面上でアプリの動作を確認できます。
パッケージ名の変更
パッケージ名がデフォルトのままだと、インストール時に同じパッケージ名を持つ既存のアプリケーションを上書きしてしまいます。
以下の手順でアプリケーションのパッケージ名を変更することができます。
メニューから Edit -> Project Settings を選択します。
[Project Settings]ウィンドウが表示されるので[Publishing Settings]の項目を開きます。
[Package name]の項目に任意のパッケージ名を設定します。
これでパッケージ名が変更されました。
再ビルド時の注意
一度ビルドを実施して作成された (プロジェクト名)/Package.appxmanifest ファイルは通常、Unity 側のパッケージ名のみを変更して再ビルドしても更新されません。
パッケージ名を変更して再ビルドする際は一旦 Package.appxmanifest ファイルを削除してからビルドを行うことをお奨めします。
プロジェクトのビルド
プロジェクトのビルドを行います。
メニューから File -> Build Settings.. を選択します。
Build Settings ダイアログが開くので、[Build]を実行します。
ビルドでは出力先のディレクトリを指定する必要があります。
今回は App という名前のディレクトリを作成し、これを指定しました。
ビルドが完了すると、指定ディレクトリに Visual Studio のソリューションファイルが出力されます。
次回は HoloLens1/HoloLens2/WindowsMR(VR) 向けのインストール手順に続きます。
bluebirdofoz.hatenablog.com