VRChat UdonのSendCustomNetworkEventとVRCObjectSyncで同期してみたメモ

vrchat sendcustomnetwork event 同期 ネットワーク インスタンス Unity
※記事内に広告が含まれています。

バーチャル3Dクリエイター神部まゆみです(*^-^*)

この記事はVRChat UdonのSendCustomNetworkEventとVRCObjectSyncで同期してみたメモです。

アバターじゃなくてワールドいじる話ね。

上手くできたら私のワールドに反映させたいですね。

動作確認した最新のバージョンはunity2022.3.22、VRChat SDK 3.9.0です。

●PRスペース●

〇まゆみマート|BOOTH

BOOTHでVRoidテクスチャやVRChat向けオブジェクトなどを販売しています。いいねしてくれると励みになります(*^-^*)

なぜこれをいじるか?

ワールドでギミックを仕込んでも、同期する設定をしないとその人の画面でしか動かないらしい。

デフォルトだとローカルということ。

例えばVRC Pickupコンポーネントを追加すればオブジェクトを持てるようになるけど、

vrcpickup

同期なしのローカルでは他の人の画面から見た時に動かないので、オブジェクトを他の人と投げ合ったりできないみたい。

公式ドキュメントやチュートリアル動画など

こちらの公式ページが参考になるかも。

Networking | VRChat Creation
Multiplayer experiences are the heart of VRChat, so creating a world that reacts to players and synchronizes the data be...

公式のチュートリアル動画はこちらです。

同期の実験。デフォルトだとローカルで同期されていないのか?

今まで気にしてなかったけど、公式マニュアルを見たところデフォルトだとローカルって書いてあった。

ローカルだと自分がオブジェクトを動かしても他の人の画面には反映されないらしいので、ちょっと実験してみる。

クライアントを2にして実行するとテストできます。

vrchat udon networling local global

あっホントだ!白い球を動かしてももう一つの画面では反映されない…。

vrchat udon networling local global

ローカルとグローバル?みたいな設定があるのは知っていたけど、デフォルトで同期されているかと思っていたけど違ったみたい。

VRC Object Syncコンポーネントを追加すると同期できるっぽい

これ一個追加するだけでいいらしい。

vrc object sync

おおマジだ…動いておる。

vrc object sync

Interactのギミックも同期できる?

んー照明とスイッチにVRC Object Syncをつけてみたけどダメみたい。

vrc object sync

VRC Object Syncはオブジェクトのトランスフォームやコライダーなど一部の情報しか渡せないっぽいです。

ちなみに照明については以前の記事を参照。

SendCustomNetworkEventをつけたらいけた

こんな感じにしたらいけた。

vrchat sendcustomnetwork event

InteractしたことをSendCustomNetworkEventで全員に(all)送信している感じみたい。

その後はCustom Eventから繋いでいけばいいっぽい。

手順はこんな感じ。

何もないところでスペースキーを押すと検索バーが出せるけど、CustomEventはなぜか「EventCustom」と表記が逆になってるので注意。

vrchat sendcustomnetwork event 同期 ネットワーク インスタンス

先にCustomEventのところに名前をつけると(ここではTrigger)、SendCustomNetworkEventのEventNameにTriggerが指定できるので連携できてるっぽい。

これでちゃんと同期できた!

vrchat sendcustomnetwork event 同期 ネットワーク インスタンス

あれ、ここで詰まって時間食うかと思ったけどそうでもなかった。

まぁできたからいいか(;^_^A

ドアも同期できた

ドアも同期できました。

こちらもInteractだけど操作がSetBoolになってる。

vrchat sendcustomnetwork event 同期 ネットワーク インスタンス

ドアについてはこちら。

おわりに

案外簡単にできて良かった。

同期って難しいかと思ってたけどそうでもなかった。

まぁ複雑な動作をさせる場合は分からないけど、このくらいなら割とすぐできますね。

このあたりはちょっと奥が深そうなのでもう少しいじってみます(*^-^*)

タイトルとURLをコピーしました