GameplayAbility

김지윤·2025년 5월 20일
0

UE5_GAS

목록 보기
7/22

GameplayEffect는 단순 효과 적용이었다면, GameplayAbility는 스킬이다.
로직 실행이 최우선 목적이며, 당연히 원한다면 GameplayEffect도 적용 가능하다.
일단 먼저 Tags에 대해 알아보자.

좀 많긴 한데 있으면 다 편리하다.
예를 들어 은신 상태일 때 공격하면 은신이 풀리는 걸 구현하고 싶다면?
Cancel Abilities with Tag 쓰면 된다.
아군에겐 사용할 수 없는 스킬을 구현하고 싶다면?
Target Blocked Tags 쓰면 된다.
정말 편리하다.
아래에 표로 정리하겠다.

이름설명
Ability Tags이 어빌리티 자체에 지정할 태그들
Cancel Abilities with Tag이 어빌리티가 실행되면, 이 태그를 가진 다른 어빌리티들이 취소됨
Block Abilities with Tag이 어빌리티가 활성화된 동안, 이 태그를 가진 다른 어빌리티들은 활성화될 수 없음
Activation Owned Tags이 어빌리티가 활성화된 동안, 시전자(Activating Actor)에게 임시로 부여되는 태그
Activation Required Tags이 어빌리티를 실행하려면, 시전자에게 이 태그가 모두 있어야 함
Activation Blocked Tags이 태그 중 하나라도 시전자에게 있다면, 어빌리티는 실행되지 않음
Source Required TagsSource 액터/컴포넌트에게 이 태그가 모두 있어야 활성화됨
Source Blocked TagsSource 액터/컴포넌트가 이 태그 중 하나라도 갖고 있다면, 어빌리티는 실행되지 않음
Target Required TagsTarget 액터/컴포넌트에게 이 태그가 모두 있어야 활성화됨
Target Blocked TagsTarget 액터/컴포넌트가 이 태그 중 하나라도 갖고 있다면, 어빌리티는 실행되지 않음
Activating Actor와 Source가 헷갈릴 수 있다.
Activating Actor는 Ability를 실행한 AbilitySystemComponent의 OwnerActor이며,
Source는 별다른 설정 없이 Ability를 실행할 경우 Activating Actor와 동일하고 
GameplayEffectContextHandle을 만들 때 수동으로 설정이 가능하다.

Input 탭

  • Replicate Input Directly
    • 당연한 얘기지만 모든 입력에 대해 패킷을 보내는 건 성능상 좋지 않으니 안 쓰는 편이 좋다고 한다.

Advanced 탭

  • Replication Policy
    • 인스턴스를 클라이언트에게 복제할지 말지 정하는 정책. Ability는 이미 자동으로 최적화되어 복제되므로 신경 쓰지 않아도 되는 옵션. 그냥 쓸모 없는 옵션이라고 생각해도 됨.
  • Instancing Policy
    • Instanced Per Actor
      Ability당 하나의 인스턴스가 생성되며 재사용됨
    • Instanced Per Execution
      Ability 실행 한 번마다 인스턴스가 생성됨
    • Non-Instanced
      인스턴스를 만들지 않음. 상태 저장, 델리게이트 사용 등의 로직은 구현 불가
  • Server Respects Remote Ability Cancellation
    • 클라이언트가 Ability를 취소할 권한을 준다는 뜻. 안 쓰는 게 나음.
  • Retrigger Instanced Ability
    • 다시 실행될 경우 어떻게 처리할 것인지
    • true - 기존 인스턴스를 종료하고 새로 실행
    • false - 무시, 기본 설정
  • Net Execution Policy
    • Local Only
      Ability가 클라이언트에서만 실행됨
    • Local Predicted
      클라이언트 예측으로 실행
    • Server Only
      서버에서만 실행
    • Server Initiated
      서버에서 실행한 뒤 클라이언트에서 실행
  • Net Security Policy
    • 보안과 관련된 설정, 클라이언트와 서버 중 Ability 실행과 종료에 대해 누가 권한을 가질지 결정
    • ClientOrServer
      서버와 클라이언트 모두 실행 및 종료 가능, 즉 보안 필요 없음
    • ServerOnlyExecution
      서버에서만 실행 가능, 종료는 클라이언트도 가능
    • ServerOnlyTermination
      서버에서만 종료 가능, 실행은 클라이언트도 가능
    • ServerOnly
      실행 및 종료 둘 다 서버에서만 가능
profile
공부한 거 시간 날 때 작성하는 곳

0개의 댓글