UDN
Search public documentation:

ReplicationWeaponsKR
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 홈 > 네트워킹과 리플리케이션 > 웨폰 내 리플리케이션

웨폰 내 리플리케이션


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

무기 발사 개요


언리얼 엔진 3 에서 무기 발사 로직은 다음과 같습니다:

클라이언트

  1. 로컬 클라이언트 콘트롤러가 Weapon 안에서 StartFire() 를 호출합니다.
  2. Weapon 서버 버전에게 ServerStartFire() 를 호출하도록 요구하고, 클라이언트의 버전에서 BeginFire() 도 호출합니다.
  3. InventoryManager 클라이언트 버전 안에서 pending fire (발사 대기) 배열에 바이트를 설정합니다.
  4. Weapon 클라이언트 버전이 'Active' 상태인 경우, Weapon 클라이언트 버전을 적절한 발사 상태로 보냅니다.

서버

  1. 서버는 클라이언트에 의해 ServerStartFire() 호출 요청을 받거나, 수정 권한이 있는(authoritive) 액터에 의해 StartFire() 가 호출되었습니다. 그러면 서버 버전에서 BeginFire() 를 호출합니다.
  2. InventoryManager 서버 버전 안에서 pending fire (발사 대기) 배열에 바이트를 설정합니다.
  3. Weapon 서버 버전이 'Active' 상태인 경우, Weapon 클라이언트 버전을 적합한 발사 상태로 보냅니다.

WeaponReplicationTree_Thumbnail.jpg

무기 발사 중지 개요


언리얼 엔진 3 에서 무기 발사 중지 로직은 다음과 같습니다:

클라이언트

  1. 로컬 클라이언트 콘트롤러가 Weapon 안에서 StopFire() 를 호출합니다.
  2. Weapon 서버 버전에 ServerStopFire() 를 호출할 것을 요구하고, 클라이언트 버전에서 EndFire() 도 호출합니다.
  3. InventoryManager 클라이언트 버전 안에서 pending fire (발사 대기) 배열에 바이트를 지웁니다.
  4. 클라이언트에서 무기 발사를 중지합니다.

서버

  1. 서버는 클라이언트에 의해 ServerStopFire() 호출 요청을 받거나, 수정 권한이 있는(authoritive) 액터에 의해 StopFire() 가 호출되었습니다. 그러면 서버 버전에서 EndFire() 를 호출합니다.
  2. InventoryManager 서버 버전 안에서 pending fire (발사 대기) 배열에 바이트를 설정합니다.
  3. 서버에서 무기 발사를 중지합니다.

Weapon 프로퍼티


  • bOnlyRelevantToOwner 오너에 관련된 것들만 - 웨폰 리플리케이션은 소유중인 플레이어에만 연관된 것이기에 참으로 설정합니다. 다른 플레이어는 거의 다른 플레이어의 무기 상태를 알 필요가 없습니다.
  • bReplicateInstigator 인스티게이터 리플리케이트 - 시뮬레이션 정확도를 높이기 위해 인스티게이터 변수에 일관성을 유지해야 하니 참으로 설정합니다.
  • bOnlyDirtyReplication 더티 리플리케이션만 - 웨폰은 변경됐든 안됐든 모든 것을 업데이트해야 하니 거짓으로 설정합니다.
  • RemoteRole 원격 롤 - 클라이언트가 이 액터를 시뮬레이트할 수 있어야 하므로 ROLE_SimulatedProxy 로 설정합니다.

결론


플레이어의 웨폰은 멀티플레이어 게임에서 두 가지 다른 버전으로 존재합니다. 하나는 서버에 있으며, 다른 하나는 클라이언트에 있습니다. 서버에서 무슨 일이 벌어지나 클라이언트가 적절히 시뮬레이트할 수 있도록 리플리케이션이 두 버전을 관리합니다. 명심할 점은 이러한 리플리케이션 패턴이 웨폰에는 잘 돌아가지만, 모든 경우에 항상 그렇지는 않다는 점입니다. 그러나 마나를 요하는 스킬처럼 이 리플리케이션 패턴이 통하는 경우도 많이 있습니다.