공부/UE

[UE] Notify, AbilityTask, TargetActor를 이용한 공격 판정

sudo 2025. 9. 17. 00:33
반응형

애니메이션 특정 프레임에 쏠 UAnimNotify를 상속받은 UAnimNotify_GASAttackHitCheck클래스 생성

 

특정 시점에 UAnimNotify_GASAttackHitCheck::Notify가 호출

 

UAnimNotify_GASAttackHitCheck::Notify 내부에서 UAbilitySystemBlueprintLibrary::SendGameplayEventToActor 호출

 

블루프린트에서 AnimationNotify를 UAnimNotify_GASAttackHitCheck로, SendGameplayEventToActor 인자로 날릴 Tag를 세팅

 

UABGA_AttackHitCheck라는 GameplayAbility를 생성해준다

 - 해당 GA가 필요한 이유는 노티파이로 이 GA의 활성화(ActivateAbility 호출) 시켜줘야 하기 때문이다

 - 해당 GA의 ActivateAbility 내부에서 

 - 노티파이가 발생할때 GA를 활성화 하는 방법은 Ability Triggers 라는 세팅을 통해 가능하다. 이 세팅을 하면 노티파이에서 SendGameplayEventToActor 함수가 ASC에게 날려준 태그에 해당 GA가 반응한다

 

Ability Task(이하 AT)를 추가

 - AT가 필요한 이유는 CreateTask로 자신을 생성한 GA가 델리게이트를 구독하고 있고, AT는 TargetActor(이하 TA)의 델리게이트를 구독하고 있기 때문

UABGA_Jump라는 GA가 UABAT_JumpAndWaitForLanding이라는 점프하는 AT를 생성하고, 착지했을때 델리게이트를 구독하는 코드

 

Target Actor가 필요한 이유

 - 게임플레이 어빌리티에서 대상에 대한 판정(주로 물리 판정)을 구현할 때 필요

 

Target Actor 주요 함수

StartTargeting : 타겟팅 시작

ConfirmTargetingAndContinue : 타겟팅을 확정하고 이후 남은 어빌리티 태스크 진행

ConfirmTargeting : 타겟팅만 확정

CancelTargeting : 타겟팅 취소

 

게임 어빌리티 타겟 데이터

 - 타겟 액터에서 판정한 결과를 담은 데이터(ex. HitResult, 판정된 다수의 액터 포인터, 시작/끝 지점)

 - 게임 어빌리티 타겟 데이터 여러개를 담고 있는 것을 Gameplay Ability Target Data Handle이라고 함

 

 

Reference

https://www.inflearn.com/course/%EC%9D%B4%EB%93%9D%EC%9A%B0-%EC%96%B8%EB%A6%AC%EC%96%BC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-part-4/dashboard

 

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템| 이득우 - 인프런 강의

현재 평점 5.0점 수강생 1,040명인 강의를 만나보세요. 언리얼 엔진5의 게임플레이 어빌리티 시스템을 활용해 RPG게임의 각종 스킬 시스템을 효과적으로 구현하는 방법을 학습합니다. 게임플레이

www.inflearn.com

 

https://designerd.tistory.com/entry/UE-GAS-%EA%B3%B5%EA%B2%A9-%ED%8C%90%EC%A0%95-%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%98-%EA%B5%AC%ED%98%84

 

[UE GAS] 공격 판정 시스템의 구현

게임플레이 이벤트를 사용해 게임플레이 어빌리티를 트리거하는 방법의 학습 타겟액터를 사용한 물리 판정의 구현 어빌리티 태스크와 타겟액터 사이세 발생하는 실행 흐름의 이해 목차 공격

designerd.tistory.com

 

반응형