夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

複数のHoloLens 2でホログラムを共有する その② Photonを使用した自己位置の共有

本日は昨日に引き続き複数台のHoloLens 2を使用してホログラムを共有するチュートリアルを進めます。

〇環境構築

前回は環境構築を行いました。

redhologerbera.hatenablog.com

UnityのバージョンはUnity2021.3.18f1でMRTKのバージョンは2.73です。

〇Photonとは?

[Photon Engine]はExit Gamesが提供している通信サービスのことを指します。Unityの場合[Photon Unity Networking]で[PUN]と呼ばれることもあります。

その特徴として、マルチプレイヤーゲームを簡単に実装できるというものがあります。

通常複数人のゲーム同期となると、サーバーを立て条件分岐を作り始めてゲーム内の実装に取り掛かれますが、PUNを使用することでUnityゲームのことだけ実装し、サーバーを含めゲーム同期に関する多くの部分を実装せずに作ることができます。

www.photonengine.com

今回の複数台でのホログラムの同期もPUNを使用することでサーバー側などの通信を全く気にすることなく行うことができます。

〇Photon Engineの設定

①Photon Engineのサイトでサインインを行います。

id.photonengine.com

まだアカウントが無い場合アカウントを作成します。

②上部バナーから[ダッシュボード]を開きます。

f:id:Holomoto-Sumire:20220117171614j:plain

ダッシュボードでは自身のアプリやIDなどを管理することができます。

③[新しくアプリを作成する]を選択します。

f:id:Holomoto-Sumire:20220117171720j:plain

④[Photonの種類]を[PUN]に設定して任意の名前のアプリケーションを登録します。

f:id:Holomoto-Sumire:20220117171836j:plain

⑤ダッシュボードに表示される作成したアプリから[アプリケーション ID]をコピーします。

f:id:Holomoto-Sumire:20220117172119j:plain

以上でPhoton側の設定は完了しました。次にここで設定した情報とUnityアプリケーション側を紐づけます。

⑥Unityの[Photonwizard]に[アプリケーション ID]をペーストします。

f:id:Holomoto-Sumire:20220117203357p:plain

もしくは[Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset]から[Server/settings]に加えます。

f:id:Holomoto-Sumire:20220117203602p:plain

以上でUnityとPhotonの紐づけが完了します。

〇ユーザーの配置

①MRTKの設定を終えたシーンに以下のオブジェクトを配置します。

f:id:Holomoto-Sumire:20220117204220p:plain

・SharedPlayground

・DebugWindow

・NetworkLobby

②[NetworkLobby]オブジェクトの子オブジェクト[NetworkRoom]を開き[PhotonRoom]の[Photon User Prefab]に[PhotonUser]をアタッチします。

f:id:Holomoto-Sumire:20220117204711p:plain

[PhotonUser]は[Assets/MRTK.Tutorials.MultiUserCapabilities/Resources/PhotonUser.prefab]にあります。

これが各ユーザーのカメラになります。

以上で自己位置の共有が完成しました。

ビルドしてHoloLens 2同士、もしくはHoloLens 2とPCのUnityEditorで動作を見ることができます。