1.3 - 변수 리플리케이션

Network Feature 예제 레벨에 대한 개요로, 예제 1.3: Variable Replication 입니다.

Windows
MacOS
Linux

1_3.png

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

게임플레이에 중요한 변수는 오직 네트워크 오소리티(서버)에서만 수정되어야 하며, 그 사실을 알 필요가 있는지 여부에 따라 원격 머신(클라이언트)에 리플리케이트시켜야 합니다.

이 예제에서 유령의 생명력은 네트워크 오소리티에만 있는 타이머에 따라 수정되고 있습니다. 리플리케이트되지 않는 유령의 경우, 원격 머신은 생명력 업데이트를 받지 못합니다. 리플리케이트되는 유령의 경우, 서버에서 생명력이 변할 때마다 업데이트를 받습니다.

블루프린트 분석

BP_Ghost_Variable_Replication_None 블루프린트의 (아래 그림과 같은) 이벤트 그래프에서, (매 3초마다 발동되는 타이머를 통해) 서버에서만 발생하는 Initialize HealthUpdate Health 둘 다 호출하는 것을 볼 수 있습니다.

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

또한 변수 값 확인을 위해 매 틱마다 유령의 생명력 텍스트가 표시됩니다. 그러나 이 블루프린트의 경우, Health 에 대한 변수는 리플리케이트 설정되지 않아 변수 값은 항상 그대로 유지됩니다.

(아래 그림과 같은) BP_Ghost_Variable_Replication_Enabled 이벤트 그래프에서, 위와 비슷한 셋업이지만 Health 변수가 리플리케이트 설정된 것을 볼 수 있습니다.

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

Health 변수에 대한 리플리케이션을 켜는 것은 아래와 같이 변수의 디테일 패널에서 체크박스를 통해 가능합니다.

1_3_Rep_Variables.png

변수에 리플리케이트 설정을 하면 이 블루프린트는 아래 게임플레이 예제에서 보듯이 서버에서 이루어지는 변수 업데이트를 받게 됩니다.

Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼