バーチャルキャスト公式Wiki
メニュー
Steam版
デバイス
アセット
配信
その他
リリース情報
- wiki編集者用ページ
-
以前のリビジョンの文書です
SubItem・同期・所有権の関係性について説明します。
VCIのアイテムは複数プレイヤーでネットワーク同期する必要があります。
ネットワーク同期はサーバを介して行われます。
※ここでの「同期」とは、位置・回転・拡大縮小が同じになるようにすることです。
VCIでは、SubItem毎に同期します。
SubItemは、0個(背景等の動かないもの)、1個(普通のアイテム)、2個以上(複数の物体がセットになっている)ができます。
また、VCIアイテムには親(VCIまたはSubItemの所有権を持つ者。所有者)と子の関係があります。
親側では物理挙動やUpdate関数などで動作した結果の情報が送信され、
子側ではその結果を受信して再生しています。(子は親の過程を知らず、結果だけを受信)
VCIアイテムを握ると所有権が移ります。
その他、以下のような特徴があります。
(細かい動きや機敏な動きは同期した時に相手側で見た目が変になる場合がある) - 同期には遅延があるため、完全に同じ見た目・同じ動きにはならず、若干のズレが発生する場合がある
SubItemの位置・回転・拡大縮小を変更できる権利です。
SubItemごとにスタジオで一人だけが親になれます。 同期は、親から子への一方通行になされます。
※所有権は、ネットワーク同期の所有権でauthorのことではありません
バーチャルキャストでは、誰でもアイテムを掴む(Grab)ことができて、アイテムを掴むと所有権が移ります。
SubItemの所有権に加えて、VCIの所有権があります。
VCIの所有権は、アイテムをシーンに呼び出したユーザーが持っていて、Grabで移動することはありません。
VCIスクリプトのUpdate関数はVCIアイテムだけで呼ばれます。
このことより例えば、VCIアイテム内のSubItemの所有権が無い状態で、Update関数内で位置・回転・拡大縮小を変更しても、所有権が無いSubItemの位置・回転・拡大縮小は変更されません。
(所有権のあるプレイヤーに位置・回転・拡大縮小の状態を上書きされる)
※所有権のあるプレイヤーのみが実行されるようにするには SubItem.BindUpdate を使用します
所有権と物理は密接な関係があり、物理アイテムは所有権のあるアイテムだけ物理挙動します。
所有権の無いアイテムは、所有者の結果をコピーします。
所有者の結果は間引きして送信されるので、間が補完されて奇妙な動きをする場合があります。
高速になるほど顕著になります。