本日はUnity枠です。
先日マルチプレイを実現する方法としてPhotonのほかにNormcoreというサービスを知ったため今回挑戦していきます。
〇Normcoreとは?
NormcoreはUnityで使用可能なマルチプレイソリューションです。
Photonと同様にユーザーはサーバー側のことを考えずに比較的簡単にマルチプレイアプリケーションを開発することができます。
リアルタイムゲームとしてオブジェクトやイベントの同期だけではなく声の同期も可能です。
〇環境
今回は以下の環境で実行します。
・Unity 2021.3.5f1
・UniversalRenderPipeline
・MRTK3
・Windows 11PC
〇導入
①Normcoreのサイトへ飛びます。
②サインアップを行います。
登録したメールアドレスにメールが届きますのでアカウントをアクティベイトします。
③プランを選択します。今回は個人利用のためフリープランを選択しています。
これによりダッシュボードへ入ることができます。
④ダッシュボードよりDonwloadを選択します。
これによってUnityAssetsStoreのリンクが開きます。
Add to MyAssetsでアセットとして加えます。
⑤Unityプロジェクトを開きPackageManagerからNormcor Free -Multiplayer + Voice Chat for All Platformsを選択します。
⑥ダウンロードおよびインポートを行います。
⑦NormcoreのダッシュボードからCreate Applicationを選択します。
ここではアプリケーションの登録を行います。
⑧アプリ名を入力します。
これによってAPIキーが発行されます。
⑨Unityへ戻りからのゲームオブジェクトを作成しRealtimeコンポーネントをアタッチします。
またAPIキーには先ほど発行されたAPIキーを使用します。
⑩Unityエディタを実行しNormcoreの接続ログを確認します。
ここで正常に接続が確認されていれば同期準備が整いました。
⑪⑨で作成したオブジェクトにRuntime Avator Managerコンポーネントをアタッチします。
またLocal Avator PrefabにはExample内にあるVR Player URPを指定します。
これが共有して表示されるアバターオブジェクトになります。
以上で設定は完了しましたがHoloLens 2でnormcoreを使用するためにはNormcore privateという別プランが必要です。
ここまで行ってHoloLensで実行しましたがうまくいかずドキュメントを読んだところ気が付きました。
Normcore Privateを使用する必要がある主なプラットフォームは以下になります。
・HoloLens
・UWP
・Nintendo Switch
・Playstation
・XBox
・WebGL
・PlayStation VR
デフォルトの状態で実行した場合Dllが足りずに接続ができません。
基本的に料金等はクローズドの状態で利用するためには以下のフォームから問い合わせることができます。
今回はPrivateまで使用することができませんでしたが、また問い合わせの結果を受けてチャレンジしてみます。