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

Network Feature 예제 레벨에 대한 개요로, 예제 2.4: Network Relevancy, Part 4 - Combination Solution 입니다.

Windows
MacOS
Linux

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 변수의 적합한 사용법에 대한 데모가 됩니다. 네트워크 게임에서 상자를 열 때 기대하는 결과를 확인할 수 있습니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼