見出し画像

オープンソース少人数マルチプレイVR空間の開発②

前回のあらすじ

https://note.com/tori29umai/n/n5b38c63e4226

ローカルで動くVR環境を作って終わりました。ぶっちゃけネットワーク関係ほとんど手を出していません。

今回やっていくこと

ネットワーク回り、というかMultiplayer VR Template回りを触っていきましょう。
というか今更ながらMultiplayer VR Templateの公式ドキュメントを見つけたので、グーグル先生が自動翻訳したドキュメントを張ります。
(問題があったら削除します)
なお本来の公式ドキュメント(英語)はAssets\IRONHEAD Games以下に『Documentation For Multiplayer VR Asset ( MVRT ).pdf』という名前で入っています。

なるほどね。私が手探りで調査を頑張ったこと全部がここに書かれているやんけ!
みんなよくわからないアセットをいじるときは公式ドキュメントを最初に読もうね!!とりにくとの約束だよ!!!

というわけで前回の続きからプロジェクトを引き継ぐのでもいいのですが、どうせなら公式ドキュメントに沿って解説したほうがわかりやすいので、書き直します。
前回の内容とかぶっているところもあるので適当に読み飛ばしてね。

Multiplayer VR Templateの導入

まぁ基本は上記の翻訳通りに従ってやれば問題ないです。
とは言えいくつか詰みそうなポイントもあるのでいろいろと補完しておきます。

開発環境

Unity 2021.3.15f1

使用アセット

・XR Interaction Toolkit
・Open XR Plugin
・XR Plug-in Management
・finalIK
・UniVRM
・Multiplayer VR Template
・PUN 2 - FREE
・Photon Voice 2

①Unityのプロジェクトを作成
Unity 2021.3.15f1/3Dでプロジェクト作成。
プロジェクト名は適当に『MultiplayVR』とでも名付けましょう。

②VR開発に必要なアセットをインポートする。
・XR Interaction Toolkit
・Open XR Plugin
・XR Plug-in Management
参照:https://shinrinmusic.com/xr-interaction-toolkit/

③Multiplayer VR Templateをインポート。
大量のエラーがでるけどとりあえず無視。
Assets\IRONHEAD Games\Integrations\FinalIK_Integration ( Unity 2021.3 LTS, FinalIK v2.1).unitypackageをダブルクリックしてインポート。
次に以下のアセットをインポート。
・finalIK
・PUN 2 - FREE
・Photon Voice 2

この時点でもエラーがまだ消えないので、一旦Assets\Photonを削除して、もう一度PUN 2 - FREE、Photon Voice 2をインポートします。(なぜこの手順が必要なのかは謎)。
そのあと、Assets\IRONHEAD Games\Scripts\Voice Chat\NetworkedPlayerVoiceChatManager.cs(21,13): error CS0246: The type or namespace name 'PhotonVoiceNetwork' could not be found (are you missing a using directive or an assembly reference?)
というエラーがでるので、Assets\IRONHEAD Games\Scripts\Voice Chat\NetworkedPlayerVoiceChatManager.csの『PhotonVoiceNetwork』を『PunVoiceClient』に置換してください。

それがようやくエラーがすべて消えると思うので
Window→Photon Unity networking→Locate Photon ServerSettingsからPhoton Unity networkingの設定をします。
サイトに会員登録して、App Id PUNとApp id voiceのアプリ IDを習得してUnityで設定する必要があります。

④次にOpenXRの設定をしていきます
Edit→Project settingからXR Plug-in Managementを開き、OpenXRをチェック。

Edit→Project setting→OpenXR
対応したいコントローラーを追加します。

Edit→Project setting→XR Interaction toolkit
User Layer5:UI
User Layer8:Interactable
User Layer:Teleportation

⑤ログインシーンを開き、FinalIK_Integrator.prefabを設置する。
ログインシーン:Assets\IRONHEAD Games\Scenes\LoginScene.unity
FinalIK_Integrator.prefab:Assets\IRONHEAD Games\Integrations\Final IK Integration\Prefabs\FinalIK_Integrator.prefab

⑥File→Build SettingsにHomeScene_FinalIK.unityをD&Dする。
HomeScene_FinalIK.unity:Assets\IRONHEAD Games\Integrations\Final IK Integration\Scenes\HomeScene_FinalIK.unity

これで設定完了です!お疲れ様でした。
次はこれらのシーンをベースに改造していく方法を書いていきます。

この記事が気に入ったらサポートをしてみませんか?