VS2017+Unity2017.2.0b8でWinMR開発

AcerWindows Mixed Realityヘッドセットが届いたので、Unityから使えるようにセットアップした。 冗長なところがあるかもしれないけれど、環境や手順を記録しておく。

環境

  • Unity: 2017.2.0b8
  • Visual Studio Community 2017: Version 15.2 (26430.16)
  • OS: Windows10 Home Insider Preview Version 1703 (16275.1000)
  • Universal Windows Platform SDK (10.0.16267.0)
  • PC本体:ドスパラ GALLERIA VR WEAR HG (今は売り切れだけど、持ち運びもできてスペックも良いので気に入ってる)
  • mini Display Port - VGA変換アダプタ (miyoshi DPA-2KDS/WH) (メインディスプレイ用。これが無いと、ヘッドセットのセットアップがうまくいかなかった)

www.dospara.co.jp

手順

OS設定

下記のMicrosoftの公式手順に従って Immersive Headset の開発環境を構築する。

Install the tools

ただし「Unity Mixed Reality Technical Preview」の項目と、下の方の「For DirectX development:」と「Update graphics drivers」はパスした。 Windows Insiderの設定は、「次のバージョンのWindows」と「ファースト」を選択した。

f:id:sunasaji:20170829232407p:plain

後は、公式通りアップデートして、Windowsの開発者モードを有効にした。

Visual Studio 2017を設定

Visual Studio 2017をインストールして起動し、ファイル→新規作成→プロジェクトを選ぶ。

f:id:sunasaji:20170829233656p:plain

Visual Studio インストーラーを開く」をクリックする。

f:id:sunasaji:20170829233844p:plain

「ユニバーサルWindowsプラットフォーム開発」を選択する。 右下の「オプション」の「Windows 10 SDK」もチェックした。「VRエンジニア養成読本」のHololens入門の記事に書いてあったため、念のため入れた。 ここでは「C++によるデスクトップ開発」は選択しなかったけれど、私の場合は、後で結局入れることになった。

f:id:sunasaji:20170829234302p:plain

下の方にスクロールして、「Unityによるゲーム開発」もチェックする。

f:id:sunasaji:20170829234407p:plain

「続行」を押してしばし待つ。

f:id:sunasaji:20170829234447p:plain

Unityを設定

適当なプロジェクトを開く。私の場合は、ドットインストールのUnity入門を一通り終えて、BallGameを作るところまでやっていたので、これを流用した。

http://dotinstall.com/lessons/basic_unity

「File」→「Build Settings…」を開く。「Universal Windows Platform」を選択して「Switch Platform」を実行する。 以下の設定をする。

Target device: any device
Build Type: D3D
SDK: Latest Installed
Build and Run on: Local Machine
Development Build: (check)

f:id:sunasaji:20170830014636p:plain

「Player Settings」を開く。

「XR Settings」の「Virtual Reality Supported」をチェックする。

「Stereo Rendering Method」を「Single Pass Instanced (Preview)」にする。

IL2CPPをインストール

私の場合は、このときUnityの「Build Settings」画面に、「Currently selected scripting backend (IL2CPP) is not installed.」という警告が出て、ビルドができなかった。

f:id:sunasaji:20170830000711p:plain

後で気が付いたのだが、scripting backendは、「Player Settings」ボタンをクリックして、「Inspector」ビューの「Other Settings」タブの中で設定できるようで、ここに「IL2CPP」が指定されていたため、出ていたメッセージだったようだ。ここで「IL2CPP」の代わりに「.NET」を選べば「IL2CPP」は入れなくて済んだかもしれないが、私は「IL2CPP」を入れることを選んだ。ちなみにIL2CPPはC#C++に変換する仕組みらしい。

f:id:sunasaji:20170830001502p:plain

Unityのインストーラを再度起動して、「Windows Store IL2CPP Scripting Backend」にチェックを入れて、しばし待つ。

f:id:sunasaji:20170830000958p:plain

f:id:sunasaji:20170830001014p:plain

Unityプロジェクトのビルド

ようやくビルドできるようになったので「Build」を押す。ビルドディレクトリが聞かれるので適当に「Build」などのディレクトリを作ってビルドする。

f:id:sunasaji:20170830001301p:plain

ビルドされたプロジェクトをVS2017で開く

「見つからない機能のインストール」ダイアログが開き、「C++ユニバーサルWindowsプラットフォームツール」と「C++によるデスクトップ開発」のインストールを促されるので、素直に従う。

f:id:sunasaji:20170830002408p:plain

ソリューション操作の再ターゲットをする

以下のようなエラーが出る。

C:\Users\sunas\Documents\BallGame\Build\BallGame\BallGame.vcxproj : warning : Visual Studio 2015 (v140) のビルド ツールが見つかりません。Visual Studio 2017 (v141) ビルド ツールを使用してビルドするには、[プロジェクト] メニューをクリックするかソリューションを右クリックし、[ソリューションの再ターゲット] を選択します。Visual Studio 2015 (v140) ビルド ツールを使用してビルドするには、Visual Studio 2015 (v140) をインストールします。 C:\Users\sunas\Documents\BallGame\Build\Il2CppOutputProject\Il2CppOutputProject.vcxproj : warning : Visual Studio 2015 (v140) のビルド ツールが見つかりません。Visual Studio 2015 (v140) ビルド ツールを使用し、Visual Studio 2015 (v140) をインストールしてビルドします。

エラーメッセージに従って「プロジェクト」メニューから「ソリューションの再ターゲット」を選択する。この後、Ctrl+F5を押してビルド・実行したらPCの全画面が白くなって操作不能になった。ctrl+alt+delを押すとかWinキーを押すなどして何とか復帰した。

再度Unityを開き、ビルドして、Unityの再生ボタンを押す。

Windows Immersive Headsetが反応してVRでアプリがプレビューできた。

参考

・MSの公式手順

https://developer.microsoft.com/en-us/windows/mixed-reality/install_the_tools#installation_checklist_for_immersive_headsets

・MSのMixed Reality開発情報ページ

https://developer.microsoft.com/en-us/windows/mixed-reality/development

・詳細な解説記事。こちらは、Scripting Backendに「.NET」を指定している。

tks-yoshinaga.hatenablog.com

・VRエンジニア開発読本

Hololens関連の記事を参考にした。