Microsoft Azureクラウド上でHoloLensのSharingService(ホログラム共有)を動かす。
HoloLensのSharingServiceを使うと、複数台のHoloLensでセンサーデータなどの共有が簡単にでき、同じオブジェクトを表示したり、協業ができるようになります。 SharingService自体はUnityEditor上やHoloLensエミュレータ上でも動作します。
SharingServiceをAzure上で動かしたので、そのメモ。
Microsoftのクラウドコンピューティング Windows Azure入門
- 作者: 砂金信一郎,遠藤大樹,酒井達明,藤田昭人
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/11/27
- メディア: 大型本
- 購入: 2人 クリック: 125回
- この商品を含むブログ (6件) を見る
SharingService.exeについて
SharingServiceは、 Unity上でHololensアプリを開発するためのGitHubで公開されている便利なライブラリ集「HoloToolkit-Unity」に付属しています。
HoloLens上で動かすのではなくHoloLensとネットワークでつながった64bitのWindowsマシンで動作するexe形式のアプリケーションです。
SharingServiceの利用方法
使用方法はこのあたりを見てください。
HoloToolkit-UnityのSharingに関するドキュメント
SharingServiceをMicrosoft Azureクラウド上で動かす
通常、SharingServiceを利用するには複数台のHoloLensと、同一ネットワーク上にあるPCが必要になります。 ただ、外出先など、普段と違うネットワーク環境でデモする場合には不便です。 そこでAzureクラウド上に設置すればどこでも利用できるのがメリットです。
また、開発時に、SharingServiceへ接続するエミュレーター上のアプリやUnity環境と同一のPCだと、利用ポートがかぶってしまうため、Sharing機能がうまく動作しません。 そんな時、もう一台PCを用意するよりAzureで動かしたほうが手っ取り早い。
使わない時はクラウドサーバーをOFFにしておけば料金の節約にもなります。
デメリットとしては、ネットワーク情報が暗号化されていないので場合によってはセキュリティー的な問題(VPNがあれば解決?)と、ローカルネットワークと比較すると遅延が発生する可能性があります。
利用するための手順
ざっくりいうと、以下の手順です。
- Azureのアカウントを作成(既にアカウントがあれば不要)
- 新しいVMを立ち上げる(64bitのWindows Server)
- ネットワークまわりの設定を行う(DNS/Firewall)
- SharingService.exeをサービスとしてインストールする
新しいVMを立ち上げて、SharingServiceをサービスに登録するだけです。
[手順1]Azureのアカウントを作成
- 既にアカウントを持っている人は不要。
- 新規作成はこちらからできます。
- 新規作成時には1か月利用できる2万円分のクーポンがついてきます。
- 今回の内容を試すには十分この無料の枠内に収まります。
[手順2]新しいVMを立ち上げる
- Azureのダッシュボードにアクセスして新しいVMを作成します。
- WindowsOSであれば何でもいいんですが、今回は以下の内容にしました。
- OS:Windows Server 2016 Datacenter
- サーバープラン:A1 Standard
- A1 Standardだと1か月動かし続けると8,000円くらい
- ただ、AWSと異なり、Azureは分単位の課金となるので、細かく制御すれば節約可能です。
最初OSに「Windows 10 Enterprise N」を選ぼうとしたのですが、Azure上のWindows10はMSDNサブスクライバに有料登録していないと使えないみたいです。
[手順3]ネットワークまわりの設定を行う
- SharingServiceを使うにはportの開放が必要です。
- 20600-20604あたりが使われます。
- VM作成時に、半自動で作成された「ネットワーク セキュリティ グループ」を選択して、Firewallの設定を追加します。
- 標準ではリモートデスクトップ(TCP/3389)のみが解放されているので、 UDPの20600-20604ポートを追加で開放します。
3-1.ネットワーク セキュリティ グループのFirewallの設定
3-2.DNSの設定
IPアドレスは、VMを終了・起動させるたびに動的に変更されてしまうため、 DNSの設定を行います。DNSを設定すればIPアドレスが変わっても、常に同じホスト名でVMにアクセスできます。 サーバーの設置場所に東日本を選んだので、DNSは
********.japaneast.cloudapp.azure.com
という形になります。
3-3.VMにリモートデスクトップでアクセス
- 手元のPCからリモートデスクトップ接続をします。
- 接続先に、設定したDNSのホスト名、アカウント情報はVM作成時に入力した内容でAzure上のWindowsにログインします。
[手順4]SharingService.exeをサービスとしてインストールする
VMにログインできたら、SharingServiceを設置します。 VM内からブラウザが使えるのでEdgeを立ち上げて以下のURLにアクセスしてSharingService.exeをダウンロードします。
https://github.com/Microsoft/HoloToolkit-Unity/tree/master/External/HoloToolkit/Sharing/Server
- ダウンロードできたらOS内のFirewallにも、SharingService.exeの通信許可を設定します。
- コントロールパネル >システムとセキュリティーメニューから実施してください。
- コマンドプロンプトを立ち上げて
SharingService.exe -install
とするとサービスとして登録ができるのですが、そのままではエラーになってしまいます。(access denied.)
その場合は、OS のサービス一覧メニューからSharingサービスを探して、プロパティーを表示し、 LogonをLocalSystemAccountに変更すると、正常に起動できます。
こうすることで、AzureダッシュボードからVMを起動するだけで、SharingServiceも自動的に起動します。
Unity側の設定
SharingプレハブをHierarcyに配置して接続先に先ほどのDNSの名称を設定してください。
これで動くはず。
以上
関連記事
ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築
- 作者: 横山哲也
- 出版社/メーカー: 日経BP社
- 発売日: 2015/09/10
- メディア: 単行本
- この商品を含むブログ (1件) を見る