はじめに
SteamVR Plugin v2.xを恐れてHTC ViveからWindows Mixed Reality Headsetに逃げたら、思いのほか情報が少なくて余計に苦労したという記録です。
最終的にはMRTK v2.0.0とWinMRコントローラを使って、以下のようにテレポートしたり物をいい感じに掴めるようにします。
ただし今回の記事では、まずMRTK v2.0.0のサンプルシーンを動かし、シンプルなシーンをビルドできるようにすることを目標とします。
追記
2019/10/21の時点でMRTK v2.1.0が正式版としてリリースされており、特にunitypackageの構成などにおいて、後述の内容は多少古くなっています。MRTKの最新版はGitHubから確認してください。
また、HoloLabさんがMRTKの公式ドキュメントを部分的に翻訳したサイトを公開してくださっているので、そちらも確認すると良いかと思います。
開発環境など
- Windows 10 Version 1903
- Unity Hub 2.1.0
- Unity 2018.4.4f1
- Visual Studio Community 2019 v16.2.3
- Windows Mixed Reality Headset (DELL)
- Microsoft Mixed Reality Toolkit v2.0.0 RC2.1
1. 環境構築
最低限必要なソフトウェアなどはMRTKのGetting started guideに載っています。
2019/08/21現在では以下のようになっており、この章では環境構築の手順を書いていきます。なおVisual Studio 2019のインストール手順は省きます。
- Windows SDK 18362 かそれ以上
- Unity 2018.4 かそれ以上
- Visual Studio 2019
1-1. Windows SDK 18362のインストール
Windows SDK 18362はVisual Studio 2019のUWP開発用のパッケージに含まれています。
Visual Studio Installerを立ち上げ、UWPアプリケーションのビルドに必要なモジュールをインストールしましょう。
既にインストールされている場合はとりあえずVisual StudioやInstallerを最新のものにしておきます。
1-2. Unity 2018.4.xのインストール
Unity HubからUnity 2018.4.xをインストールします。
このとき、UWPのBuildに必要なモジュールも選択して一緒にインストールしましょう
2. MRTK v2のサンプルシーンの実行
この章ではUnityプロジェクトの作成、MRTK v2のダウンロードおよびプロジェクトへのインポートを行い、MRTK v2のサンプルシーンを実行します。
2-1. Unityプロジェクトの作成とUWPプロジェクトのビルド
Unity HubからUnity 2018.4.xを用いたプロジェクトを作成します。
作成したプロジェクトの[File] > [Build Setting]を開き、Build TargetをUniversal Windows Platformに変更(Switch Platform)します。
まずはこの状態で単純にUWPプロジェクトがBuildできるか試してみましょう。
適当にCubeを置いたSceneを作成し、[File] > [Build Setting] > Buildします。Buildする場所はAssetsと同じ階層にBuildsという名前のフォルダを作成し、選択すると良いと思います。
ここで、デフォルトの設定では[Edit] > [Project Setting] > [Player] > [Other Setting] > [Configuration] > Scripting BackendがIL2CPPに設定されているので、Visual Studio側で以下のような警告が出るかもしれません。
その場合は、ウィンドウの指示に従い必要なモジュールをインストールしましょう。
モジュールのインストールが終わったら再びBuilds/***.slnを開きます。
ソリューションの構成やプラットフォームを、UnityのBuild Settingでの設定と同じにします。
ローカルコンピュータでDebugを実行し、Unityで作成したシーンが実行されることを確認しましょう。
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を開き、実行すると、以下のようなサンプルシーンを体験できます。
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
を選択しましょう。
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を動かしたりすることは出来ませんが)ポインターで掴むことは出来ると思います。
最後に、2-2項の要領で今回のSceneをビルドし、成功すれば完了です。
さいごに
今回は、Unity2018.4 + WinMR + MRTK v2.0.0 RC2.1を使って開発をするうえで最低限必要な手順を記述しました。
しかし今回の手順だけでは、オブジェクトを(ポインターではなく)手で掴むことができなかったり、コントローラの3Dモデルが3軸のベクトルモデルしか使えなかったり、まだまだ独自コンテンツの開発には不十分です。
次回の記事で、独自のConfiguration Profileを設定し、コントローラの3Dモデルを差し替えたり、物を手で掴めるようにしたりしていきます。
参考文献
- UnityでWindowsMR開発する方法
- Windows Mixed Reality Headsetで自作コンテンツを動かす with Unity
- Getting Started with MRTK
- Unity3d, Currently selected scripting backend (.NET) is not installed
-
The Darkside of VR - Mixed Reality Toolkit
- ↑皮肉の効いたチャンネル名ですが、コントローラの差し替えの手順なども説明されている、非常に参考になる動画リストです(英語)