Edited at

Unity2018.4 + WinMR + MRTK v2.0.0 RC2.1でのVRコンテンツ開発(セットアップ編)


はじめに

SteamVR Plugin v2.xを恐れてHTC ViveからWindows Mixed Reality Headsetに逃げたら、思いのほか情報が少なくて余計に苦労したという記録です。

最終的にはMRTK v2.0.0とWinMRコントローラを使って、以下のようにテレポートしたり物をいい感じに掴めるようにします。

basic interaction

ただし今回の記事では、まずMRTK v2.0.0のサンプルシーンを動かし、シンプルなシーンをビルドできるようにすることを目標とします。


追記

2019/10/21の時点でMRTK v2.1.0が正式版としてリリースされており、特にunitypackageの構成などにおいて、後述の内容は多少古くなっています。MRTKの最新版はGitHubから確認してください。

また、HoloLabさんがMRTKの公式ドキュメントを部分的に翻訳したサイトを公開してくださっているので、そちらも確認すると良いかと思います。


開発環境など


1. 環境構築

最低限必要なソフトウェアなどはMRTKのGetting started guideに載っています。

2019/08/21現在では以下のようになっており、この章では環境構築の手順を書いていきます。なおVisual Studio 2019のインストール手順は省きます。

Required Software


1-1. Windows SDK 18362のインストール

Windows SDK 18362はVisual Studio 2019のUWP開発用のパッケージに含まれています。

Visual Studio Installerを立ち上げ、UWPアプリケーションのビルドに必要なモジュールをインストールしましょう。

既にインストールされている場合はとりあえずVisual StudioやInstallerを最新のものにしておきます。

Visual Studio Installer

Install Windows SDK


1-2. Unity 2018.4.xのインストール

Unity HubからUnity 2018.4.xをインストールします。

Select Unity

このとき、UWPのBuildに必要なモジュールも選択して一緒にインストールしましょう

Build Support


2. MRTK v2のサンプルシーンの実行

この章ではUnityプロジェクトの作成、MRTK v2のダウンロードおよびプロジェクトへのインポートを行い、MRTK v2のサンプルシーンを実行します。


2-1. Unityプロジェクトの作成とUWPプロジェクトのビルド

Unity HubからUnity 2018.4.xを用いたプロジェクトを作成します。

Create Unity Project

作成したプロジェクトの[File] > [Build Setting]を開き、Build TargetをUniversal Windows Platformに変更(Switch Platform)します。

Switch Platform

まずはこの状態で単純にUWPプロジェクトがBuildできるか試してみましょう。

適当にCubeを置いたSceneを作成し、[File] > [Build Setting] > Buildします。Buildする場所はAssetsと同じ階層にBuildsという名前のフォルダを作成し、選択すると良いと思います。

TestScene

ここで、デフォルトの設定では[Edit] > [Project Setting] > [Player] > [Other Setting] > [Configuration] > Scripting BackendがIL2CPPに設定されているので、Visual Studio側で以下のような警告が出るかもしれません。

IL2CPP Warning

その場合は、ウィンドウの指示に従い必要なモジュールをインストールしましょう。

Install C++ UWP

モジュールのインストールが終わったら再びBuilds/***.slnを開きます。

Open sln

ソリューションの構成やプラットフォームを、UnityのBuild Settingでの設定と同じにします。

Setting solution

ローカルコンピュータでDebugを実行し、Unityで作成したシーンが実行されることを確認しましょう。

Build Conform


2-2. MRTK v2のダウンロードとインポート

Microsoft Mixed Reality Toolkit v2.0.0 RC2.1のページの下を見に行き、以下の2つのunitypackageをダウンロードします。


  • Microsoft.MixedReality.Toolkit.Unity.Examples-v2.0.0-RC2.1.unitypackage

  • Microsoft.MixedReality.Toolkit.Unity.Foundation-v2.0.0-RC2.1.unitypackage

次にUnityの[Assets] > [Import Package] > [Custom Package]からダウンロードしたパッケージをインポートします。このとき、アセンブリの依存関係を破壊しないように、インポートはMicrosoft.MixedReality.Toolkit.Unity.Foundation-v2.0.0-RC2.1.unitypackageから先に行いましょう。


2-3. MRTK v2のサンプルシーンの実行

PCにWindows Mixed Reality Headsetを接続しましょう。また、[Project Setting] > [Player] > [XR Setting]でWindows Mixed Realityが選択されていることを確認します。

Assets/MixedRealityToolkit.Examples/Demos/HandTracking/Scenes/HandInteractionExample.sceneを開き、実行すると、以下のようなサンプルシーンを体験できます。

MRTK Sample


3. 独自のシーンの作成とビルド

独自のシーンでWinMRのコントローラを使えるようにしたり、テレポートできるようにするにはひと手間必要になります。この章ではその方法を解説していきます。


3-1. MRTK Configurationの適用

先ほど作ったTestSceneを開き、[Mixed Reality Toolkit] > [Add to Scene and Configure]を選択します。すると「You must choose a profile for the Mixed Reality Toolkit.」というメッセージが出るので、今回はDefaultMixedRealityToolkitConfigurationProfileを選択しましょう。

Select profile

MRTK v2では、このConfiguration Profileを変更することで、コントローラのモデルや挙動を設定したり、テレポート移動を有効化したり...といった設定を行います。


3-2. シーンの実行とビルド

今回選択したデフォルトのProfileではテレポート移動が有効になっているので、シーンにColider付きの床を作成します。SceneにPlaneを作成し、InspectorでPositionを(x, y, z) = (0, 0.1, 0)に設定しましょう。

また、作成してあるCubeのPositionも(0, 1.5, 0)とかにしておきましょう。

この状態で、UnityでSceneをPlayしてみましょう。

コントローラのアナログスティックを倒せばテレポートを行うことができ、ポインターでCubeを選択し、Triggerを押せば(Cubeを動かしたりすることは出来ませんが)ポインターで掴むことは出来ると思います。

My easy scene

最後に、2-2項の要領で今回のSceneをビルドし、成功すれば完了です。


さいごに

今回は、Unity2018.4 + WinMR + MRTK v2.0.0 RC2.1を使って開発をするうえで最低限必要な手順を記述しました。

しかし今回の手順だけでは、オブジェクトを(ポインターではなく)手で掴むことができなかったり、コントローラの3Dモデルが3軸のベクトルモデルしか使えなかったり、まだまだ独自コンテンツの開発には不十分です。

次回の記事で、独自のConfiguration Profileを設定し、コントローラの3Dモデルを差し替えたり、物を手で掴めるようにしたりしていきます。


参考文献