Skip to content

全員で同じ状態にする ​

VRChat では、ギミックはプレイヤーそれぞれの画面で動いています。何もしなければ、ある人がスイッチを押してライトを消しても、ほかの人の画面ではライトがついたままです。全員で同じ状態を見るには、同期を使います。

どれを使うか ​

やりたいこと使うもの
押した人の画面だけで動けばよい(テレポート、自分だけの演出)そのまま(自分だけ)
全員の画面で同じ状態を保ちたい(ライト、扉、点数)同期する変数 と 変数が変わったとき
その場にいる全員に一度だけ何かを見せたい(効果音、演出)詳細設定の「全員(All)」

迷ったら、同期する変数を使ってください。あとから来た人にも今の状態が届くのは、同期する変数だけです。「全員(All)」で送ったアクションは、その時点でいる人の画面でしか動きません。

同期する変数 ​

変数を「同期する」にすると、値が全員に届きます。値を変えるのは、ふつうのアクション(「変数を切り替える」「変数に足す」など)で構いません。値を変えた人が自動でその変数のオーナーになり、全員に送ります。

値が届いたときに何かを動かすには、「変数が変わったとき」のイベントを使います。このイベントは、自分が変えたときにも、ほかの人が変えたときにも、あとから来て今の値を受け取ったときにも動きます。

いつ変数が変わったとき — ライト⋯
何をする
オブジェクトを表示・非表示⋯
対象Lamp
表示する変数: ライト
+ 何をするかを追加

組み立て方の例は、全員で共有するスイッチ にあります。

気をつけること ​

同期した変数は「自分だけ」で変える

同期した変数を変えるアクションを「全員(All)」で動かすと、全員が同時にオーナーになろうとして、値が人によって食い違います。値の変化はもともと全員に届くので、変えるのは押した人の画面だけで足ります。この組み合わせのカードには、Tripwire がオレンジの枠と注意のメッセージを出します。

  • オブジェクトとプレイヤーは同期できないので、どれかを見分ける番号を同期して、番号から選ぶ
  • 「変数が変わったとき」の中で同じ変数を変えると、変えるたびにまたイベントが動く
  • 毎フレームのイベントやタイマーを「全員(All)」にすると、そのたびにネットワークへ送られる(Tripwire が注意を出す)

同期の送り方 ​

くわしくモードでは、同期する変数があるトリガーに「同期の送り方」が出ます。ふつうは「変えたときに送る」のままで構いません。動き続ける位置のように、1 秒に何回も変わる値だけ「常に送り続ける(なめらか)」にします。