CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

HoloLensのエミュレータを起動し、Unityでアプリを作るまでの手順とTips紹介

先日、@kaorun55 さんのご厚意により、HoloLensを試すことができました。
(@kaorun55さん、ありがとうございました)

twitter.com

「百聞は一見に如かず」の通りでした。体験してわかることがたくさんあり、これはすごい!という一言に尽きました。

HoloLensの体験レポートは、PANORAさんやMoguraVRさんがまとめていらっしゃるので、詳細はこちらをご確認ください。私もだいたい同じ印象を持ちました。

日本で一般初公開!! ニコニコ超会議・JALブースのHololensはヌルヌル動作がスゴかった – PANORA

【体験レポ】ニコニコ超会議2016のJALブースで「HoloLens」を体験。その実力は? | Mogura VR

HoloLensは価格やその他条件などが理由で、現状簡単には手に入りません。しかし、Microsoftからエミュレータが公開されています。そこで、エミュレータを動かして、もう少し詳細に調べてみることにしました。

1. インストール

(2016/5/8時点の情報を元に書いています。今後のアップデートで、必要なものや手順が変わる可能性があるのでご了承ください)

大前提が2つあります。

(1)Windowsが10 Pro以上のエディションであること

(2)仮想化機能に対応したCPUであること

以下の手順で確認/設定ができます。

(2-1) PCの電源を切り、BIOSを立ち上げる (機種によって異なりますが、私の環境ではDELキー or F2キーの連打でいけました)

(2-2) Advanced -> CPU Configurationを選択

(2-3) Intel Virtulization Technology をDisabledからEnabledにする

(2-4) Save&Exit (機種によってはSave&Reset)を選択して再起動する

仮想化機能が有効になっているかは、

コントロールパネル→プログラムと機能→Windowsの機能の有効化または無効化 で、Hyper-Vにチェックが付いているかで判断できます。

Hyper-Vの確認方法

その他、64bitで4coreのCPU、8GBのRAMなど、PCの性能自体も高めである必要があります。以下、Windows10Pro、仮想化機能が有効であることを前提に進めます。

このページのリンクから4つのツールを入手できます。

Visual Studioのアップデート

上記のリンクからVisual Studio 2015 Update 2を選択してダウンロードします。

UWPをビルドできるようにするため、インストール時は必ず「カスタム」を選択してください。私の環境では「カスタム」を選択すれば、必要なツールは自動的に選択されていました。

HoloLens Emulator

上記のリンクからHoloLens Emulatorを選択してダウンロードします。画面の指示に従って進めるだけでインストールできます。Virtulization is not set とかのエラーが出てインストールに失敗する場合、冒頭の仮想化機能を有効にしてから再インストールを試してください。

HoloLensアプリ開発用のUnity

上記のリンクからUnityのHPに飛びます。ここで、HoloLensアプリ開発専用のUnityをインストールします。
(なぜかMonoDevelopしか選択肢がありませんでした)

Unity用のUWP Tool

上記のリンクからUWP Toolを選択してダウンロードします。画面の指示に従って進めるだけでインストールできます。周辺に書いてある指示を見ると、Unity -> UWP Toolの順番にインストールする必要があるようです。

ここまでやると、環境構築は完了です。

2. ビルド、エミュレータの起動

2.1 UnityでC#プロジェクトをビルド

再度@yuujii さんにお世話になりました。ありがとうございます。ここで指定されているリンクからサンプルプロジェクトをダウンロードします。

上記ページのリンクから取得できます。300MBくらいあるのでダウンロードに少し時間がかかります。ダウンロード、解凍後にHolographicAcademy-Holograms-101というフォルダができます。今回は以下を使ってみました。

HolographicAcademy-Holograms-101\Catch up Chapters\7-SpatialMapping-Completed

これをUnityで開きます。completeプロジェクトなのでほぼ何もしなくて大丈夫です。ビルド設定だけ調整します。

HoloLens サンプルプロジェクトのビルド設定

Virtual Reality Supportedにチェックを付けます。普段とちがって"Windows Holographic"というリストが表示されます。

Publish SettingsのSpatialPerception

Publish SettingsのSpatialPerceptionにチェックを入れます。マニュアルを見ると、Microphoneにもチェックを入れること、とありました。音声認識を使わなければ不要な気がしますが、私の場合、念のためチェックを付けました。

次はビルドです。

HoloLensアプリのビルド設定
このように、

SDK : Universal 10
UWP Build Type : D3D

Unity C# Projects にチェック

とします。これでBuildをクリックすれば、Visual Studio用のプロジェクトが生成されます。

2.2 Visual Studioからエミュレータを起動

Visual Studioを開き、Open->Project/Solution で先ほど作ったC# Projectのslnファイルを指定します。

ビルド設定を
Release
x86
HoloLens Emulator
と変更します。

Build -> Clean Solutionのあとに、Build -> Build Solutionを選択します。Output Windowにエラーが出なければビルドは無事に完了しています。

次に、エミュレータの起動、およびUnityアプリの実行です。Debug->Start without Debugging を選択します。エミュレータの起動時にこういうメッセージが出たらRetryを選択します。

HoloLensエミュレータ起動失敗画面

この後、数十秒から数分でエミュレータが起動します。Made With Unityというロゴが出たあと、スペースキーを押すとロゴが消え、Origamiが見えます。

[f:id:Takyu:20180716091447j:plainalt=HoloLensエミュレータのOrigami画面]

3. その他Tips

3.1 操作方法

キーボードかマウスを使います。

W : 対象に近づく
A/左 : 対象の左側に移動
S   : 対象から遠ざかる
D/右 : 対象の右側に移動
上  : 上方向に移動
下 : 下方向に移動
Enterキー:カーソルをアイコンに合わせたときに押せば「決定」

また、マウスドラッグで移動させることで上下左右キーを押したことと同じことができます。

HoloLensエミュレータの移動の例

ちなみに、この動画の場合、HoloLensをかぶって実際に前後左右、上下に動いた時の見え方をエミュレートしています。この白い線は、実空間をメッシュにしてスキャンした結果をエミュレートしたものです。

3.2 Spatial Mappingのスキャンの雰囲気を体感する

Unityアプリが起動していないとき(Windowsボタンを押す)に、スペースキーを押します。部屋をスキャンするアニメーションが表示されます。

HoloLensエミュレータの空間スキャン体験

3.1の繰り返しになりますが、この白い線は、実空間をメッシュにしてスキャンした結果をエミュレートしたものです。
エミュレータだと背景が黒いのでわかりづらいですが、HoloLensをかぶって見ると、自分が見える実空間の風景に合わせて、このようなスキャン結果が表示されます。実際に見るととても未来的な感じがします。

これにより、Unity用の空間で実空間の構造を把握できるので、HoloLensを付けたときにこんなシーンを見ることが可能になります。

3.3 エミュレータの中でUnityアプリを起動する

2.2の手順でStart without Debuggingを使っても、Unityアプリが起動せず、スタートメニューが表示されるだけ、というのがありました。

そのときは、エミュレータを×ボタンで終了させてからStart without Debuggingで再起動します。あるいは、以下の手順で直接起動させます。

キーボードのWindowsボタンを押し、このようなメニューが表示されたら、右キーでカーソルを移動させ、+マークが光る位置でEnterキーを押す

HoloLensエミュレータからUnityアプリを起動させるため、アプリ一覧を表示
アプリの一覧が出るので、上下左右キーでカーソルをOrigamiに移動させ、Origamiが光る位置でEnterキーを押す

HoloLensエミュレータからUnityアプリを起動

3.4 全体的にやや不安定?

感覚的に、UnityもVHoloLens Emulatorも、やや不安定な印象を持ちました。不安定であることの事例として、一度こうなったことがありました。

再起動してもBIOSしか表示されなかったのでかなり焦りました。因果関係は不明ですが、直前の操作は、Visual Studio Codeでメモしながらエミュレータを起動してたことでした。

また、HoloLens用のUnityでユニティちゃんアセットをインポートしたら、なぜかシェーダーが認識されませんでした。

ユニティちゃんシェーダがUnity5.4で認識されない

しかし、Space Robot Kyleはなぜかエミュレータでもちゃんと表示されました。

Space Robot KyleをHoloLensエミュレータで表示
==========================================================

2016/5/14 追記

ユニティちゃんがピンク色になってしまうのは、Unity5.4のエディタが悪さしていることが原因のようでした。 @nyaa_toraneko さん、、@kaorun55 さん、@yuujii さん、ありがとうございました。

ユニティちゃんアセットをインポートした後、ここからダウンロードしたunitypackageをインポートすることで(=パッチを当てる)、正しく表示されるようになります。

Unity5.4でパッチをあてたあとのユニティちゃん
パッチを当てることで、いつもの表示に戻りました。

ちなみに、このパッチが効くのは、"Unity-chan Model"です。 モーション配布用のアセット"HQ Fighting Animation FREE" には効かないのでご注意ください。

==========================================================

4. 感想

エミュレータの動きだけではわかりづらいですが、実際にHoloLensをかぶった後だと、個々の動きの意味がわかります。エミュレータで色々作り込んでおけば、いざHoloLensが入手できたときに開発がスムーズに進むと思います。個人的にはHoloLensとMeta2はとても楽しみにしており、勉強しながら色々作ってみたいです。

HoloLensはまだまだ簡単に手に入るものではないですが、ちょうどこのブログを書いている時に、以下のような案内をいただきました。

HoloMagicians 結成! - atelier:mitsuba

この勉強会について
HoloMagiciansはHoloLensに関心のあるデベロッパー、デザイナー、クリエイター集団です。

各地で勉強会を行い、開発セッションやTouch & Try、アイデアソンやハッカソンを行っていきます。ぜひご参加ください。

引用:HoloMagicians 紹介ページ, http://holomagicians.azurewebsites.net , HoloMagicians

次回の名古屋はさすがに難しいですが、今後なるべく参加していきたいなと思います。

5. 参考にさせていただいたサイト

下記を参考にさせていただきました。ありがとうございました。

■エミュレータの概要と操作方法
ツールのインストール - Mixed Reality | Microsoft Docs

■インストール関係
HoloLensのAR世界を疑似体験できる、エミュレーターの基礎知識とインストール、基本的な使い方 (2/3):HoloLens Emulatorアプリ開発入門(1) - @IT


また、灯台下暗しで後で気づきましたが、こちらも簡潔にわかりやすく書かれております。

■Unityで使うサンプルコード
http://www.naturalsoftware.jp/entry/2016/04/07/093200