언어:
페이지 정보
엔진 버전:
언리얼 엔진

2.4 - 네트워크 연관성 [4 부 - 복합 솔루션]

언리얼 엔진

2_4.png

서버클라이언트 시점 모두를 확인하기 위해서는, Play (플레이) 드롭다운 아래 Number of Clients (클라이언트 수) 칸을 2 로 설정합니다.

예제 2.2 와 2.3 모두 실패했는데, 둘 다 상자 예제에 필요한 두 가지 경우에 대한 처리를 못했기 때문입니다:

  • 상호작용 시점에서 이펙트 재생

  • 시간에 따른 액터 내 상태 변화 보존

예제 2.4 는 2.2 와 2.3 에 사용된 기법을 복합적으로 사용하는 하이브리드 솔루션을 통해 문제를 해결하고 있습니다. 멀티캐스트 함수는 일정 시간에 연관성이 있는 클라이언트에 골드 이펙트 재생을 처리하는 반면, 리플리케이트되는 부울 변수는 상자 뚜껑이 열렸는지 닫혔는지를 보존합니다. 어느 한 클라이언트에 대해 상자가 처음 열리는 시점에 연관성이 없었던 경우, 그 클라이언트에 상자가 연관성이 생기면 뚜껑이 열린 것만 보이게 됩니다.

블루프린트 분석

BP_Relevancy_Replication_Combined 블루프린트의 이벤트 그래프에서, 아래 코멘트 섹션에서 보듯이, OnChestTouch 를 덮어써서 RepNotify 변수와 멀티캐스트 리플리케이트된 함수의 조합을 사용하고 있습니다.

2_4_Eventgraph.png

상자 표시는 두 가지 컴포넌트로 이루어집니다: 하나는 즉각적인 것(골드 파티클)이고, 다른 하나는 지속적인 상태(뚜껑 열림)입니다. 멀티캐스트는 즉각적인 이벤트 처리에, RepNotify 변수는 지속적인 상태 처리에 사용되었습니다.

아래는 변수의 bChestOpened 업데이트시 호출되는 OnRep 함수입니다.

클릭하면 크게 볼 수 있습니다.

이 예제는 제기된 문제에 대한 해법과 Multicast 함수와 RepNotify 변수의 적합한 사용법에 대한 데모가 됩니다. 네트워크 게임에서 상자를 열 때 기대하는 결과를 확인할 수 있습니다.