昨日たくさんのHoloLensが集まる機会があったので、共有機能を試してみました。
HoloLensにはAnchor(アンカー:碇、目印)の機能があり、空間に目印を置くことができます。HoloLensは空間の座標を記憶できるので、Anchorは完全に実空間の位置となります。これをネットワーク経由で共有することで、複数人のHoloLensの空間位置関係を合わせます。
これによって、複数人の位置を把握でき、見ているものの共有ができます。実際に共有しているものはアンカーやゲームのオブジェクトとなり、アプリ自体はそれぞれのHoloLensで稼働しています。
手っ取り早く共有機能を試すには Holograms 240 を使います。ここにクライアントのUnityアプリと、サーバーのコンソールアプリが入っています。
共有アプリ作成手順
先のサンプルをダウンロード、展開します。展開直後のフォルダ名が非常に長く、場合によってはビルド時のパスが長すぎてエラーになるので、フォルダ名を変えておきます(たとえば「240」とか)。
これをUnityで開きます。
メニューに「HoloToolkit」が追加されるので、その中の「Launch Sharing Service」を起動します。
するとコンソールアプリが立ち上がります。「Sharing Servive」にサーバーIPが表示されるのでコピーしておきます。
クライアント側では、Shareingシーンを開き、Shareing StateスクリプトのServer Addressに先ほど確認したIPアドレスを入力します。
あとはビルドしてHoloLensに配置すればOKです。
アプリのスクリーンショット
サーバー側のアプリを起動した状態でクライアントアプリ(HoloLens)を起動します。
起動するとアバターが4つ現れます。これが自機になります。視線で選択して、AriTapします。
この前後でサーバーに接続され、サーバー側にクライアントが登録されます。
5台までの登録は確認しました。
起動後しばらくは位置関係がおかしいですが、広めの場所で数秒経つと位置が合います。
このように相手の頭上にアバターが現れ、視線とAirTapで球を出すことができます。このゲームが相手と打ち合うゲームなのか、協力して何かを倒すゲームなのかはよくわかっていません^^;
内部的にはまだ不明なところが多いですが、標準機能でこのような機構が用意されているのはいいですね。