GAS_16_Death Ability 구현 및 캐릭터 사후처리
·
내배캠/GAS(Gameplay Ability System)
📌 Death Ability 구현✅ Gameplay Tag 추가✔️ RPGGameplayTags더보기🔹 RPGGameplayTags.h#pragma once#include "NativeGameplayTags.h"namespace RPGGameplayTags{ /** 생략 */ /** Shared Tags */ RPG_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Ability_HitReact); RPG_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Ability_Death); // Death Ability Tag 추가 RPG_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Shared_Event_MeleeHit); RPG_API ..
GAS_15_GameplayCue로 타격 사운드 재생
·
내배캠/GAS(Gameplay Ability System)
📌 Gameplay Cue로 사운드 재생피격 당하는 Montage에 피격 당하는 대상의 Sound를 입히는 것은 Montage에서 해결할 수 있지만,공격을 하는 경우에도 Montage에서 소리를 재생하면 공격이 성공하지 않았는데도 피격 사운드가 날 것이고 이는 어색하게 느껴지게 된다.공격 모션에는 휘두르는 사운드만 들리게 하고, 타격이 성공 했을 때만 타격 피드백 사운드를 재생할 수 있도록 한다.🔎 GameplayCue 시스템에서 사용되는 두 가지 타입 클래스 GameplayCueNotify_Static정적 클래스(UObject 기반, 액터가 아님)스폰되지 않고, 메모리 상에서 실행한 번 실행하고 끝나는 효과에 적합(피격 사운드 재생, 임펙트 스파크 등)Tick이 필요 없고, 따로 씬 상에 남아있을 ..
GAS_14_피격 시 활성화 되는 GA_HitReact 구현
·
내배캠/GAS(Gameplay Ability System)
📌 Hit React_Ability 구현1. Gameplay Tag 설정2. HitReact 어빌리티 생성3. 하위 Ability 생성4. Anim Montage 생성5. Ability 부여위 순서대로 Hit React Ability를 구현해보자.✅Gameplay Tag 설정✔️ RPGGameplayTags더보기🔹 RPGGameplayTags.h#pragma once#include "NativeGameplayTags.h"namespace RPGGameplayTags{ /** 생략 */ /** Enemy Tags */ RPG_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Enemy_Ability_Melee); // 근거리 공격 추가 RPG_API UE_DECLARE_GAMEPLAY_T..
GAS_13_피격 대상에게 GameEffect 적용
·
내배캠/GAS(Gameplay Ability System)
📌 FGameEffectSpecHandle 생성앞서 진행했던 흐름은 WeaponBase 클래스에서 Collision에 OverlapEvent가 발생하면 델리게이트로 BroadCasting을 하고,이를 구독하고 있는 CombatComponent가 감지된 객체 정보를 Event Tag 기반으로 GameplayAbility로 Event를 송신하였고, 이를 Melee Attack 관련 Gameplay Ability에서 Event를 수신 받아 현재 피격된 대상이 누구인지까지 알게 되었다.이제 무기 데미지, 공격 타입, 콤보 횟수 등의 요소를 저장하는 FGamaEffectSpecHandle을 생성하고 추후 최종 피해량을 계산하고 데미지를 적용시키는 것을 구현하려한다.FGameplayEffectSpecHandle에..
GAS_12_피격 판정
·
내배캠/GAS(Gameplay Ability System)
📌 근접 무기 충돌 Toggle 시스템무기 출돌 활성/ 비활성화를 애니메이션 타이밍에 맞춰 제어하기 위해 Toggle 시스템을 구현한다.공격 애니메이션의 특정 시점에 무기 충돌을 활성화 하고, 이후 다시 비활성화하여 정확한 타격 판정을 가능하게 하기 위함이다.Hero 무기의 Collision을 살펴보면 No Collision으로 되어있고, AnimMontage의 무기 휘두르는 특정 구간을 AnimNotifyState로 Collision 활성화할 것이다. ✅ PawnCombatInterface 클래스 생성"Unreal Interface"를 상속 받는 "PawnCombatInterface" C++ 클래스를 생성한다. 🔹 PawnCombatInterface.h#pragma once#include "Core..
GAS_11_Attribute와 GameplayEffect
·
내배캠/GAS(Gameplay Ability System)
📌 캐릭터에 Attribute 부여초기에 BaseCharacter 클래스를 구현할 때, AttributeSet을 만들어놨지만 아직 내부가 비어있는 상태이다.당연히 BaseCharacter를 상속 받은 플레이어 캐릭터와 Enemy 캐릭터는 모두 AttributeSet을 가지고 있다.이 Attribute Set은 플레이어나 적 캐릭터가 피해량, 체력, 분노, 쉴드 등을 수치적으로 계산하기 위해 필수적으로 필요하다. ✅ Attribute Set 정의FGameplayAttributeData로 선언한 Attribute는 Getter/Setter/Init 함수가 있어야만 GAS 내부에서 올바르게 읽고 쓸 수 있다.이를 매번 수동으로 작성하면 중복 코드가 많아지고 실수할 수 있는 위험도가 높아지므로 Epic에서 매..