えむにわリソース

ITのスキマ的なあれこれを書きます。

HoloLensのSharingServeiceの歩き方(ツール編)

前回の記事 で予告したように、
今回はSharing Serviceの実践方法について、深掘りしていきます。
今回取り上げるのは、コードを書く前の段階のツールの準備と使い方の話です。
ここまで準備すれば、Academyのチュートリアルも理解が捗ることでしょう。

目次


Sharing周りのサンプルとツールのダウンロード

プロジェクトの成果物に必要なファイルは、unitypackageファイルに入っていますが、
サンプルやデバッグツールはソースファイルから展開しなければいけません。

まずリリース用のパッケージをダウンロードします。
Releases · Microsoft/MixedRealityToolkit-Unity · GitHub
最新バージョンのアセット(HoloToolkit-Unity-v1.2017.2.0.unitypackage)とSourceCodeをそれぞれダウンロードしましょう。

f:id:m2wasabi:20171128085722j:plain:w500

ツールの紹介と使い方

アセットからインストールした場合、UnityEditor上でSharing Serviceツールの下2つへのリンクが切れている状態で展開されます。

f:id:m2wasabi:20171128120737j:plain:w300

その場合はプロジェクトのディレクトリに、SourceCode.zipから展開した \External\HoloToolkit\Sharing\Tools 以下をコピーすることで使えるようになります。
※初回実行時にネットワークアクセスの許可について確認が求められるかもしれません。
Sharingを使うなら確実に、導入したほうが良いです。
Assets ディレクトリの外に設置することになりますので、UnityEditorでなくエクスプローラーなどでコピーするとよいでしょう。

Sharing Service

サーバーの役割を果たすファイルです。
アセットファイルにもソースコードにも入っています。

\External\HoloToolkit\Sharing\Server\SharingService.exe

cliアプリケーションなので、コマンドラインから実行します。

SharingService.exe -local

のようにすることでローカルサーバーとして実行されます。
開始時にローカルIPアドレスが表示されるので、そこに繋ぎに行きましょう。

f:id:m2wasabi:20171128095327j:plain

Session Manager

Sharing Serviceに接続したり、サービスの様子を見たりすることが出来ます。

存在さえ知っていれば、後は使って「なるほど」と分かるレベルなので、使ってみましょう。

一応最初の一歩だけ説明すると、右上の ... ボタンで、Sharing Serviceの接続先を設定します。
あとはCreate SessionなりJoinなりで色々試してみましょう。

ソースコードの方にしか入っていないアプリケーションなので、展開して実行しましょう。

\External\HoloToolkit\Sharing\Tools\SessionManager\(x64|x86)\SessionManager.UI.exe

f:id:m2wasabi:20171128095429j:plain

ProfilerX

Sharing Serviceで実際にやりとりされている情報を覗くことが出来ます。

これもソースコードの方にしか入っていないアプリケーションなので、展開して実行しましょう。

\External\HoloToolkit\Sharing\Tools\Profiler\(x64|x86)\ProfilerX.exe

f:id:m2wasabi:20171128095442j:plain

使い方は、以下の手順で操作します。

  1. XTools AppsAdd ボタンをクリックし、App追加ウィンドウを開く
  2. Address にSharing ServiceのIPアドレスを登録し、Roleを選択して Add ボタンを押す
  3. 左上のPause / Record ボタンをクリックする。Record状態で情報をキャプチャするので、欲しい情報を取得して止める
  4. Recorded Frames にパケットが目盛として並んでいるので、調査したいパケットをクリックする
  5. Samplesにパケットの構造が出る。ツリー展開して中身を確認できる

カスタムした情報も確認することが出来るので、デバッグもこれがあれば百人力です。

HoloLens Emulator

Sharingの動作は1台で検証することは困難です。
HoloLensの実機を複数買えるようなブルジョワなら使わなくてもいいですが、 個人の開発者ならエミュレーターのお世話になることでしょう。

インストール

環境要件として、Hyper-V と VisualStudio のインストールが必要です。

以下のリンクから HoloLens Emulator and Holographic Templates をダウンロードしてインストールします。

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

起動

VisualStudioから、アプリをビルドしたあとのデプロイ先に指定して起動するのが一般的な使い方です。

f:id:m2wasabi:20171128122950j:plain:w250

操作

Key Action
右クリック, [Enter] Air Tap
[⊞ Win],[F2] Bloom
[W][A][S][D] 移動
左クリックドラッグ, [カーソルキー] 視線方向
[E][Q] ロール
[Alt]+[右クリックドラッグ] ドラッグやGrub動作

空間マップの移植

エミュレーターは空間認識機能を持っていないので、HoloLensから空間マップを移植します。

1. 空間マップの取得

HoloLens実機で充分部屋を探索した後に、デバイスポータルに接続し、「Simulation」メニューからxefファイルをダウンロードします。

f:id:m2wasabi:20171128115443j:plain

2. 空間マップの設定

エミュレーター上の アイコンをクリックし、Additional Toolsを呼び出し、
Roomタブからxefファイルをアップロードします。 f:id:m2wasabi:20171128075537j:plain

実践のためのノウハウ

最初に接続を確認する

最初に利用中のネットワークでSharingServiceが利用できるか確認します。

Sharing Serviceの動作するサーバーに別PCからSession Managerから繋ぎに行きます。
無事新しいセッションが作成できれば、Sharing Serviceが利用できます。

まとめ

ツールに関して知っていれば、Sharingの実装はかなり助かります。
独自実装をするにしても、まずは原型の仕組みを理解するのが肝要です。