お手軽簡単ノーコーディングでシェアリング機能を実現する
今回はシェアリング機能を持つアプリを作る時に、ベースとなるシンプルなやつを手軽にパパッと用意したい!という自分自身の要望によりこの記事を書いています。
ちなみにMixedRealityToolkitの中にあるSharingTestも十分シンプルなのですが、IPアドレスの設定がマニュアルで出来るようになっていたりと個人的に余計なものがくっついているので、こいつよりもシンプルを目指します。
仕様
- 起動後、自動的にSharingService.exeへ接続しにいく
- お互いの頭の位置と回転を共有する
用意するもの
- MixedRealityToolkit-Unity ver1.2017.2.0
- Unity 5.6.2f1
手順
- HoloToolkitとHoloToolkit-Examplesをインポートする
- Sharing関連のコンポーネントを配置する
- SharingServiceに接続するための設定を行う
なんとたったこれだけの手順で、上記仕様を満たすシェアリング機能を使ったアプリのベースが出来てしまいます。 なおこの手順の中でスクリプトをコーディングする事は一切ありません。
1. HoloToolkitとHoloToolkit-Examplesをインポートする
https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/tag/v1.2017.2.0へアクセスします。
- HoloToolkit-Unity-Examples-v1.2017.2.0.unitypackage
- HoloToolkit-Unity-v1.2017.2.0.unitypackage
の2つをダウンロードしてきて、Unityのプロジェクトへインポートします。
2. Sharing関連のコンポーネントを配置する
まずHierarchy
パネルから[Create]-[CreateEmpty]を選択して、適当に空のGameObjectを作成します。
これ以降の手順でアタッチするコンポーネントは全て、この新たに作成したGameObjectへアタッチしていきます。
HoloToolkitから必要なコンポーネントをアタッチします
Assets/HoloToolkit/Sharing/Scripts/
からそれぞれ以下の3つのスクリプトをアタッチします。
- SharingStage
- Utilities/SharingWorldAnchorManager
- Utilities/AutoJoinSessionAndRoom
HoloToolkit-Examplesから必要なコンポーネントをアタッチします
Assets/HoloToolkit-Examples/Sharing/SharingService/Scripts/
からそれぞれ以下の2つのスクリプトをアタッチします。
- CustomMessages
- RemoteHeadManager
3. SharingServiceに接続するための設定を行う
ここまでの手順で、シェアリング機能を実現するためのコードは全て揃いました。 ここでは、シェアリング機能を実現するための設定を行います。
SharingService.exeを動かすPCのIPアドレスを設定する
SharingStage
コンポーネントの設定項目「Server Address」に、サーバーとなるPCのIPアドレスを設定してください。
インターネットアクセスを許可する
Unityのメニューバーから、[Edit]-[Project Settings]-[Player]を選択して、Inspector
パネルで「Publishing Settings」を選択します。
その中のCapabilitiesから以下の2つの項目のチェックをいれます。
- InternetClient
- InternetClientServer
SharingServiceを動かす
最後にシェリング機能を実現するためのSharingServiceをサーバーとなるPCで実行します。
Unityのメニューバーから、[Mixed Reality Toolkit]-[Sharing Service]-[Launch Sharing Service]を選択します。 すると以下のようなコマンドプロンプトウィンドウが起動します。
上記までの手順を行ってからHoloLensへデプロイすれば、シェアリング機能は実現できます。もちろんこれだけではアプリケーションとしては不十分なので、これをベースにシェアリング機能の実装をしていくと、理解がなかなか難しいシェアリング機能も理解しやすいのではないでしょうか。
実行画面
これはUnity上で実行したものと、Hololensで実行したものとでシェアリングしている様子をキャプチャしたものです。Unityで実行されたものとシェアリング出来るので、HoloLensが1台あれば一応の動作確認が出来ます。