2.1 - 네트워크 연관성 [1 부 - 전혀 리플리케이트되지 않음]

Network Feature 예제 레벨에 대한 개요로, 예제 2.1: Network Relevancy, Part 1 - Not Replicated At All 입니다.

Windows
MacOS
Linux
On this page

2_1.png

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

블루프린트를 통해 제대로 된 네트워킹 게임플레이를 만들기 위해서는, Network Relevancy (네트워크 연관성) 개념을 이해하는 것이 중요합니다. 간단히 말해서, 클라이언트 머신에서는 모든 액터에 대한 네트워크 데이터를 항상 수신할 필요가 없다는 것입니다. 커다란 맵 한 쪽에 있는 플레이어는 네트워킹 관점에서 맵 반대편에서 벌어지는 일을 모두 알 필요가 없습니다. 그러한 경우, 어떤 액터는 일정한 시간에 플레이어에게 "연관성이 있다"고 합니다. 연관성이 있는 액터는 주로 플레이어가 볼 수 있거나, 만질 수 있거나, 근처에 있는 것을 말합니다. 플레이어는 일종의 최적화로써, 연관성이 있는 액터에 대해서만 최대 네트워크 업데이트를 받습니다.

이 최적화의 한 가지 부작용은, (보통 플레이어가 근처로 이동한다든가 해서) 액터가 한 때 연관성이 없다가 생기는 경우를 어떻게 처리할 것인지 고려해야 한다는 점입니다. 플레이어가 기존에 진행중인 게임에 참가하는 경우에 대한 처리 문제와도 매우 유사합니다.

이 예제와 나머지 네트워크 연관성 예제에서는, 상자 열기와 연관성에 관련된 관계를 재현해 보겠습니다.

블루프린트 분석

BP_Relevancy_Replication_None 블루프린트의 이벤트 그래프에서, 오소리티가 누군가 트리거에 겹쳤다는 신호를 받았을 때 OnChestTouched 함수가 호출되어 DoOnce 노드에 의해 한 번만 실행되는 것을 볼 수 있습니다.

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

그리고 OnChestTouched 함수는 두 개의 함수를 추가로 실행합니다: 하나는 상자 열기, 다른 하나는 상자 열기에 관련된 이펙트 재생입니다.

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

이 예제에서는 리플리케이션이나 연관성 처리 시도를 하지 않기에, 서버에서만 상자가 열리는 것을 볼 수 있습니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback