BossFight - 무기별 공격 구현(일반 공격)

김대겸·2025년 4월 14일

무기별 공격 구현(일반 공격)

이번에는 무기별 공격을 구현 해보자. 플레이어의 공격은 총 2가지 방식으로 작동 하며 좌클릭과, 우클릭으로 구분 된다.

이번에 구현할 내용은 좌클릭에 해당하는 공격 이다. 해당 공격은 일반 공격으로, 가장 기초적인 공격이다. 또한 무기의 종류와 관계없이 Combo 형식의 공격이다.

우선 입력에 해당하는 Input_Tag과 공격 Tag, InputAction을 정의 해주자.

다음으로 PlayerAbility를 상속 받아 GA_Player_Combo_Base를 작성하고 작동하는지 문자열 출력을 통해 태스트 해보자.

문자열 출력이 잘되는 것을 확인 하였으면, 본격적으로 GA_Player_Combo_Base를 구현 해보자.

기본적인 틀은 위와 같이 Montage를 실행 -> Gameplay Event 대기, AnimNotify를 통해 다음 콤보로 연계 가능한지 Tag를 부착 및 제거함으로 제어 하도록 구현 하였다.

또한 콤보를 이어가지 않고 몽타주가 종료 되어 End Ability가 호출되었으면 부착 했던 Tag를 제거 해주도록 예외처리를 해주었다.

해당 기능이 작동하는지 확인 하기 위해, GameplayTag를 추가하고, AN_SendGameplayEvent 블루프린트를 구현 해보자.

BOSSFIGHT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Player_Ability_Combo);

BOSSFIGHT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Player_Status_ReadyCombo2);
BOSSFIGHT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Player_Status_ReadyCombo3);
BOSSFIGHT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Player_Status_ReadyCombo4);

BOSSFIGHT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Player_Event_ReadyCombo);
BOSSFIGHT_API UE_DECLARE_GAMEPLAY_TAG_EXTERN(Player_Event_EndCombo);

위와같이 GameplayTag를 추가 해주었다.

AN_SendGameplayEvent는 아래와 같이 노드를 구성 해주었다.

또한 AnimMontage 창에서 EventTag를 확인 할 수 있도록 GetNotifyName()함수를 오버라이드 해주었다.

그리고 애님 몽타주에 Notify를 추가하였다.

마지막으로 GA_Player_Combo_Base를 상속받아 해당하는 Tag 및 Montage를 할당 해주었다.

< Combo1 >

< Combo2 >

< Combo3 >

< Combo4 >

마지막으로 다른 무기들도 콤보 공격을 구현 하고 테스트 해보자.

작동 영상

양손 도끼

쌍검

검&방패

다음에는 우클릭을 이용한 공격을 구현 해보겠다.

0개의 댓글