UDN
Search public documentation:

ReplicationTornOffJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > ネットワーク & レプリケーション > テアオフのパターン

テアオフ (引き離し) のパターン


概要


このパターンは、アクタへのレプリケーションを中止するために使用されます。サーバーは、テアオフされた (torn off) アクタを、以後参加する新たなクライアントにレプリケートしません。アクタがネットワークからテアオフされると、TornOff イベントが実行されます。

ポーン


「Unreal Tournament」ではポーンにこのパターンが使用されます。特にポーンが死んだときに使用されます。通常ポーンが死ぬと、デス (機能停止) のアニメーションが再生され、ポーンは物理オブジェクトになります。その時間、何もクライアントにレプリケートする必要はありません。


simulated event TornOff()
{
  // assume dead if bTearOff
  if (!bPlayedDeath)
  {
    PlayDying(HitDamageType,TakeHitLocation);
  }
}

simulated function PlayDying(class<DamageType> DamageType, vector HitLoc)
{
  GotoState('Dying');
  bReplicateMovement = false;
  bTearOff = true;
  Velocity += TearOffMomentum;
  SetDyingPhysics();
  bPlayedDeath = true;
  KismetDeathDelayTime = default.KismetDeathDelayTime + WorldInfo.TimeSeconds;
}

理想的には、サーバー上でまず bTearOff をセットして、クライアントにレプリケートされるようにすべきです。クライアントは、bTearOff への更新を受け取ると、TornOff() を実行します。 RepNotify と同様の設計となっています。

結論


このパターンが使用されるのは、サーバーがアクタをクライアントにレプリケートするのを中止する場合 (シミュレーション問題を引き起こすことなくクライアント上で完全にシミュレートすることができる場合) です。ポーン死んだ時以外に、このパターンが役立つ有用なインスタンスには、他にも次のものがあります。
  • プレイヤーが一定時間制御することができる (一定時間過ぎるとプレイヤーが制御できなくなる) 発射物。
  • 一定時間レプリケーションが必要なクライアントサイドのエフェクト。