0. 복제(Replication)
서버에서 변경된 각 폰의 로컬 변수의 값을 모든 클라이언트에게 전송하는 것.
이를 통해 모든 클라이언트는 해당 폰의 로컬 변수 값을 동일하게 유지할 수 있다(동기화 된다).
1. 복제 모드(Replication Mode)
- EGameplayEffectReplicationMode 열거형 클래스
게임플레이 이펙트가 클라이언트에 복제되는 방식을 설정한다.
(1) Minimal(최소)
최소한의 상태(State) 또는 게임플레이 이펙트 정보만 복제함.
- AI 컨트롤, 멀티 플레이
(2) Mixed(복합)
상황에 따라 복제할 데이터를 유연하게 선택하여 복제함. 단 보유자에게는 전체 정보를 전달
- 큐와 태그만 복제, 이펙트는 해당 클라이언트에게만 복제
- 플레이어 컨트롤, 멀티 플레이
(3) Full(최대)
모든 게임플레이 정보를 복제함.
- 싱글 플레이
이를 이용하여 AI 캐릭터에서는 Minimum, 플레이어 스테이트에서는 Mixed를 사용한다.
2. 코드
- Enemy 캐릭터 클래스
AAuraEnemy::AAuraEnemy()
{
GetMesh()->SetCollisionResponseToChannel(ECC_Visibility, ECR_Block);
AbilitySystemComponent = CreateDefaultSubobject<UAuraAbilitySystemComponent>("AbilitySystemComponent");
// 멀티에서의 복제
AbilitySystemComponent->SetIsReplicated(true);
AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Minimal);
- 플레이어 스테이트
AAuraPlayerState::AAuraPlayerState()
{
// 서버 업데이트 빈도
// GAS에 적용하기 위해 빈도를 더 빠르게 조정
NetUpdateFrequency = 100.f;
AbilitySystemComponent = CreateDefaultSubobject<UAuraAbilitySystemComponent>("AbilitySystemComponent");
// 멀티에서의 복제
AbilitySystemComponent->SetIsReplicated(true);
AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed);
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
2-7. 속성(Attributes) & 속성 세트(Attributes Set) (0) | 2024.08.20 |
---|---|
2-6. 어빌리티 액터 정보(Ability Actor Info) 초기화하기 (0) | 2024.08.14 |
2-4. 어빌리티 시스템 컴포넌트(Ability System Component)와 속성 세트(Attribute Set) (0) | 2024.08.14 |
2-3. 멀티 플레이어에서의 GAS (0) | 2024.08.14 |
2-2. 플레이어 상태 클래스(Player State Class)와 GAS 기본 설정 (0) | 2024.08.14 |