UDN
Search public documentation:

ReplicationTornOffKR
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 홈 > 네트워킹과 리플리케이션 > TornOff(떼어낸) 패턴

TornOff(떼어낸) 패턴


문서 변경내역: James Tan 작성. 홍성진 번역.

개요


TornOff(떼어낸) 패턴은 액터로의 리플리케이트를 멈추고자 할 때 사용합니다. 서버는 이후에 참가하는 새로운 클라이언트에는 떼어낸 액터를 리플리케이트하지 않습니다. 액터가 네트워크에서 떨어지면, TornOff 이벤트가 실행됩니다.


언리얼 토너먼트에서 폰에, 특히나 폰이 죽을 때 사용되는 패턴입니다. 폰이 죽을 때, 폰은 보통 사망 애니메이션을 재생하거나 피직스 오브젝트가 되는 경향이 있습니다. 그 도중에는 무엇도 클라이언트에 전송할 필요가 없어집니다.

Pawn.uc
simulated event TornOff()
{
  // 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 와 비슷합니다.

결론


액터가 시뮬레이션 문제 없이 클라이언트상에서 완전히 시뮬레이트 가능할 때, 서버가 클라이언트로 액터를 리플리케이트하는 것을 중지시키고자 할 때 사용하는 패턴입니다. 폰이 죽을 때 말고 이러한 패턴이 유용하게 쓰일 수 있는 경우라면:
  • 콘트롤을 잃은 이후로도 일정 기간동안 플레이어가 콘트롤 가능한 프로젝타일.
  • 일정 기간동안 리플리케이션을 필요로 하는 클라이언트측 이펙트.