본문 바로가기

개발/내일배움캠프

Replicates 설정과 NetLoadOnClient속성

먼저 NetLoadOnClient = True인 액터는

게임이 시작될때(레벨이 로드될 때) 하나의 액터가 서버와 클라이언트에 독립적으로 스폰이 되게 된다.

 

이렇게 생성된 액터는 클라이언트에만 존재하는 로컬 인스턴스라고 할 수 있다.

각각에서 알아서 생성되는만큼 더 가볍게 사용이 가능하다

 

 

Replicates속성은 액터가 서버에서 클라이언트로 복제하여 생성하도록 한다.

이는 런타임에서 값이 변경되거나, 최초 실행시가 아닌 런타임중 액터가 생성되는 등의 상황에서

서버가 복제본을 클라이언트에 동기화 해줘 동일한 환경을 제공할 수 있도록 한다.

 

결국 두 속성 모두 클라이언트에게 액터를 보여주도록 하는 속성이라고 할수는 있는데

 

일단 기본은 처음부터 레벨에 존재하는 액터라면 NetLoadOnClient = true로 사용한다.

로직 작동에 따라 액터가 생성되고, 속성이 런타임 중 변경된다면 Replicate를 사용한다.

 

그러면 둘 다 사용할수도 있지도 않느냐?는 생각이 들 수 있는데 이에 대한 답은 맞다.


언리얼 4.27버전 문서지만 두 값을 동시에 체크하는것에 대해 긍정적이고,

구분하자면 처음부터 존재하는 액터라면 NetLoadOnClient 를 사용하고

동시에 값이 동기화되길 원한다면 Replicate도 사용한다.

 

다만 또 주의할것이 있는데, 이 경우 초기값과 복제될 값이 다를때 보이는것이 크게 다른경우들이 있고,

(특히 위치가 바뀔 수 있는 액터들)

한 자리에서 기능을 작동시키는것들이 있을것이다(문, 레버 등 상호작용 가능한 액터)

 

전자의 경우는 OnRep_  함수를 통해 리플리케이트 받아 생성 및 복제되는것이 자연스러울 것이고,

후자의 경우는 처음부터 생성이 되어있으면서 값을 동기화받는것이 좋을것이다.

 

결론을 표로 정리하면 이와 같을것이다.

NetLoadOnCLient Replicates 결과 사용예시
false false 클라이언트에 자동 로드되지 않고,
복제도 안 됨
서버 전용 트리거, 서버 전용 관리 액터
true false 클라이언트에 맵 로드로 존재하지만
서버 상태 동기화 없음
장식용 배경 액터, 고정 오브젝트
false true 맵 로드로는 클라이언트에 안 올라가지만,
서버가 스폰하면 복제 가능
투사체, 런타임 아이템, 몬스터 스폰
true true 맵 로드 시 클라이언트에도 존재하고,
서버 상태도 복제 가능
문, 레버, 점령 지점, 상호작용 오브젝트

 

다만 추가적인 설정이 없는 기본적인 환경에서는 NetLoadOnClient=false, Replicates=true만 설정해도

처음부터 액터가 생성된것처럼 보인다.

 

이는 다음에 Relevancy와 함꼐 후술.

'개발 > 내일배움캠프' 카테고리의 다른 글

Replicate 관련 속성들  (0) 2026.06.17
언리얼 RPC 이해하기2  (0) 2026.06.09
언리얼 RPC 기초 정리  (0) 2026.06.04
언리얼 네트워크 기초 정리  (0) 2026.06.02
언리얼 멀티플레이어 개발전 설정들  (0) 2026.06.01