|사용 예시|EGameplayAbilityInstancingPolicy는 GAS에서 게임플레이 어빌리티가 어떻게 인스턴스화되는지를 결정하는 열거형이다.즉, 어빌리티를 실행할 때 새로운 개체(Instance)를 만들지, 기존 개체를 재사용할지를 정의한다.이 설정은 성능과 메모리 관리에 큰 영향을 미치므로, 적절히 선택해야 한다. 이는 C++과 블루프린트 모두 설정할 수 있다. EGameplayAbilityInstancingPolicy는 총 3가지 옵션이 있다.NonInstanced (인스턴스 없음)InstancingPolicy = EGameplayAbilityInstancingPolicy::NonInstanced;✅ 동작 과정어빌리티 인스턴스를 만들지 않는다, 즉, 어빌리티 클래스 자체가 직접 실행된다...
|사용 예시|EGameplayAbilityNetExecutionPolicy는 GAS에서 게임플레이 어빌리티가 실행되는 네트워크 권한을 결정하는 열거형이다.어떤 주체(서버 또는 클라이언트)가 해당 어빌리티를 실행할지를 정의한다. EGameplayAbilityNetExecutionPolicy는 총 4가지 옵션이 있다. LocalPredicted (로컬 예측 실행)NetExecutionPolicy = EGameplayAbilityNetExecutionPolicy::LocalPredicted;✅ 동작 방식클라이언트에서 먼저 어빌리티를 실행 → 서버에서 확인 후 동기화지연 시간이 긴 네트워크 환경에서 유저 경험(UX) 최적화서버가 틀린 예측을 감지하면 롤백(수정) 가능✅ 예시: FPS 게임에서 총기 발사총을 쏘..
|사용 예시|EGameplayEffectReplicationMode는 GAS에서 게임플레이 이펙트가 리플리케이션되는 방식을 설정하는 열거형이다. ASC에서도 SetReplicationMode 함수를 통해 설정할 수 있다.게임플레이 이펙트에서도 설정할 수 있다.AbilitySystemComponent->SetReplicationMode(EGameplayEffectReplicationMode::Mixed); EGameplayEffectReplicationMode는 총 3가지 옵션이 있다.Minimal (최소 복제)EGameplayEffectReplicationMode::Minimal✅ 동작 방식서버에서 최소한의 데이터만 클라이언트로 복제하는 방식이다.클라이언트는 Gameplay Effect의 기본적인 정보..
|사용 예시|어빌리티에 재사용 대기 시간(쿨타임)을 적용해 보자.어빌리티를 한 번 활성화(사용) 하면, 일정 시간이 지나야 다시 활성화(사용)할 수 있도록 한다. 어빌리티 설정을 보면, Cooldowns 카테고리에 적용시킬 쿨타임 게임플레이 이펙트를 추가할 수 있다.그래프에서 CommitAbility 노드를 실행하면, 쿨타임 배열의 이펙트들이 모두 적용된다. 쿨타임을 적용시킬 게임플레이 이펙트를 만들어 보자. 쿨타임 게임플레이 이펙트는 두 가지로 구성된다.재사용 대기 시간 CurveTable쿨타임이 몇 초인지를 지정하기 위해 CurveTable의 ScalableFloat이 필요하다.쿨타임 태그어떤 쿨타임을 적용시킬 건지를 확인하기 위해 게임플레이 태그를 추가해야 한다. 먼저, 쿨타임 태그를 추가한다./..
|사용 예시|일반적으로 게임플레이 어빌리티에서는 Tick 함수가 없어 사용할 수 없다.그러면, 어빌리티에서 매 틱마다 호출해야 하는 기능은 어떻게 구현해야 할까?어빌리티 태스크를 통해 Tick 함수를 사용해야 한다. AbilityTask 클래스를 상속받아 Tick 기능을 수행할 새 어빌리티 태스크 클래스를 생성한다.UGameplayTask Class의 TickTask 함수를 재정의하여 사용한다.// AbilityTask_ExecuteTaskOnTick.hDECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAbilityTaskTickDelegate, float, DeltaTime);public: UAbilityTask_ExecuteTaskOnTick(); // 태스크 틱 실..
|사용 예시|지정한 이벤트 태그를 전달받으면 호출되는 델리게이트를 생성하여 사용해 보자. ASC에는 GenericGameplayEventCallbacks의 TMap 형태의 변수가 있다.Key로 FGameplayTag를, Value로 FGameplayEventMulticastDelegate를 가지고 있다. 어빌리티 태스크에서 사용한 예시 상황특정 스킬을 사용하는 어빌리티를 구현한다.키를 누르면 어빌리티를 활성화하고, 어빌리티에서는 몽타주를 플레이하여 이벤트 태그를 전달한다.전달받은 이벤트 태그를 통해 어빌리티 태스크를 호출하고, 어빌리티 태스크에서는 이벤트 태그를 통해 스킬 구현 함수를 수행한다.태스크에서 이벤트 태그를 통해 스킬을 구현하는 과정에서, ASC의 이벤트 태그 델리게이트 생성을 활용해 보자. ..