VRChat 非公式日本語ドキュメント

ネットワーク変数

ネットワーク変数(同期変数とも呼ばれます)を使用すると、UdonスクリプトはVRChatインスタンス内のすべてのプレイヤー間でデータを共有できるようになります。一度限りのトリガーで状態が保持されないネットワークイベントとは異なり、ネットワーク変数を使用すると、途中参加者を含むすべてのプレイヤーがオブジェクトの正しい状態を確実に確認できます。

このガイドでは、ネットワーク変数の仕組み、使用すべきタイミング、そしてネットワーク通信を効率的に保つためのベストプラクティスについて解説します。

同期変数の仕組み

VRChatでは「synced」チェックボックスをオンにすると変数が同期されます。

An Udon Graph screenshot showing the OnPlayerLeft event connected to an IsValid node.

同期変数は、通常の変数とは異なる動作をします。

変数の同期タイプ

利用可能な同期には2つのタイプがあります。

1. Continuous Sync(連続同期)

2. Manual Sync(手動同期)

同期モードの設定

インスペクターでSync Typeを設定する方法

上の画像のように、UdonBehaviourのインスペクターにあるSynchronizationドロップダウンを使用して、同期モードを設定できます。

UdonSharpBehaviourの場合は、代わりに UdonBehaviourSyncMode 属性を使用して、以下のようにスクリプトから制御することも可能です。

[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class Example : UdonSharpBehaviour 
{
  // This class's sync mode is manual.
}

例:Manual Syncの使用

[SerializeField, UdonSynced] private bool isDoorOpen;

public void ToggleDoor()
{
    isDoorOpen = !isDoorOpen;
    RequestSerialization(); // Manually send update to all players
}

変数を使用して途中参加者を処理する

途中参加者向けの変数の同期方法について、必ず確認しておきましょう!

ネットワーク互換性の取り扱い

ワールドのプラットフォーム間やリリースバージョン間におけるネットワーク互換性がどのように決定されるかを必ず確認してください。

最終更新: