WN_인생기록

[UE_5] 언리얼 멀티플레이 시스템의 이해 (Replication Mode) 본문

언리얼 개발/탐구(이론)

[UE_5] 언리얼 멀티플레이 시스템의 이해 (Replication Mode)

WhNi 2024. 5. 9. 00:20

AbilitySystemComponent를 상속받는 Player State에 대한 세팅을 진행할때,

 

ReplicationMode  라는게 있다. 

 

ARPGPlayerState::ARPGPlayerState()
{
	AbilitySystemComponent = CreateDefaultSubobject<UAbilitySystemComponent>(TEXT("AbilitySystemComponent"));
	AbilitySystemComponent->SetIsReplicated(true);
	AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed);

	AttributeSet = CreateDefaultSubobject<UAttributeSet>(TEXT("ArributeSetComponent"));


	NetUpdateFrequency = 100.f;

}

EGameplayEffectReplicationMode 라는 데이터형으로 이루어져 있는데 

이는

 

총 3가지 모드가 나뉜다. 

 

Full

Mixed

Minimal

 

이렇게 3가지가 있다. 

 

Full의 경우는 주로 싱글 플레이에 쓰이고, GameplayEffect라는 캐릭터의 체력, 스태미나같은 수치를 담당하는 부분에서, 모든 클라에게 복사하는것을 의미하는 모드이다. 즉,  대역폭의 한계가 있는 Replicate 네트워크에서 얼마나 Replicate를 할지 설정하는 것인 셈이다. 

 

Mixed의 경우는 PlayerControlled 를 소유한 경우 선택하는 모드이다. 체력과 스태미나같은 수치가 소유하고 있는 클라에게만 Replicate 되는 것을 의미한다. 

 

Minimal의 경우는 AI-Controlled를 소유한 경우 선택하는 모드이다. GameplayEffect가 Replicate 되지 않는다. 

 

또한 중요한 점은 Mixed의 경우는 소유하고 있는 액터가 반드시 Controller이어야 한다. Pawn의 경우는 자동으로 PossessedBy() 기능을 통해서 Controller 가 된다. 

PlayerState또한 자동적으로 Controller를 소유하고 있다. 

그러므로, 만약 소유하고 있는 액터가 PlayerState가 아닌데 Mixed를 쓴다면 SetOwner() 기능을 통해서 꼭 Controller로 세팅을 해줘야 하는게 중요한 점이다.