複製

ゲームでは通常、プレイヤーとオブジェクトがクライアント間で複製される必要があります。他のプレイヤーやオブジェクトと相互作用するためには、プレイヤーがそれらを見ることができる必要もあります。これらのアクターのプロパティは確実に同期されていなければなりません。

Strix Unreal SDKでは、複製はReplicatorコンポーネントによって処理されます。このコンポーネントは、このコンポーネントが追加されたアクターのクラスをStrixに登録し、Strixは他のプレイヤーのゲームワールドにこのアクターのレプリカを生成します。

アクターがプレイヤー間で複製される場合は、各プレイヤーのレベルを同じにすることを強く勧めます。複製されたアクターはプレイヤーのワールドの実際のオブジェクトであるため、内部の任意のアクターと相互作用できます。Strixは非専用サーバーで構成されているため、同期逸脱の問題が起きないように注意してください。

Strix Replicatorコンポーネント

Strix Replicatorコンポーネントは複製を行う基本のコンポーネントであり、他の全てのStrixコンポーネントもこれを必要とします。他の4つのコンポーネントのいずれかを使用するアクターには、このコンポーネントも配置する必要があります。これは、Strix ReplicatorがタイプIDの割り当てを行うコンポーネントだからです。タイプIDとは、扱うアクターの種類を認識するためにStrixが使用するプロパティです。

Strix ReplicatorはアクターのクラスをStrixに登録します。プレイヤーがルームに参加すると、Replicatorはそのアクターの複製を、他のクライアントのワールドの位置0,0,0にインスタンス化します。他のクライアント上にReplicatorコンポーネントを持っているアクターが存在すれば、それが新しいプレイヤーのワールドに複製されもします。

オプション

Strix Replicatorは、静的なワールドオブジェクト以外の任意のアクターに追加できます。Strix Replicatorには次のオプションがあります。

Ticks Per Second

int

アクターのプロパティに対する1秒あたりの更新回数。

Instantiable By

AnyoneまたはRoom Owner

他のクライアントでこのアクターのレプリカをインスタンス化するユーザーを決定します。
これをAnyoneに設定した場合、ルームの全てのプレイヤーが、他の全てのクライアントでこのアクターの新しいレプリカをインスタンス化します。
これをRoom Ownerに設定した場合、ルームオーナーのみがレプリカをインスタンス化します。その結果、他のどのクライアントにもこのアクターの複数のレプリカが存在することはなくなります。これは、ピックアップのようなオブジェクトで役立ちます。

Connection Closed Behaviour

DeleteまたはChange Ownership

接続が失われたときの動作を決定します。
デフォルトはDeleteで、接続が失われたときにアクターを破壊します。
Change Ownershipに変更すると、オブジェクトの新しいオーナーが選択されて、そのオーナーに権限が移るようになります。これを使用すると、ルームが空になるまでアクターを存続させることができます。

Should Receive Destroy Events

bool

オリジナルが破壊されたときにこのアクターも破壊されるかどうかを決定します。
デフォルトはtrueです。
falseの場合、アクターはサーバーから届く削除のメッセージを無視します。
つまり、オリジナルのアクターが破壊されても他のクライアントにレプリカが残ります。これは、プレイヤーが予期せず切断したときにレベルからアクターをスムーズに削除するために必要になる場合があります。

Auto Register Properties

bool

デフォルトはtrueです。
trueの場合、Replicatorはこのアクターのブループリント変数のうち、複製できるもの(全ての基本型と構造体)であって複製条件がReplicatedに設定されているものを全て同期します。

注釈

ブループリントではないアクターの複製はサポートされていません。

Replicatorイベント

同期イベントを参照してください