Inflearn brand logo image

인프런 커뮤니티 질문&답변

언리얼공부님의 프로필 이미지
언리얼공부

작성한 질문수

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

4강 : 캐릭터 콤보 공격의 구현

4강에서 콤보 공격시 다음 공격을 할 경우 ActivateAbility가 자동으로 발동되는 이유

작성

·

33

0

언리얼 5.6으로 진행하다가 이상한 버그가 터져서 다시 5.4로 복습도 할겸 해서 처음부터 만들어보고 있는데 콤보 공격할 때 ActivateAbility가 발동되고 콤보의 첫번째 공격이 끝나게 되면 무조건 EndAbility가 발동합니다.

 

5.6으로 했을때와 5.4로 했을때의 코드적으로 다른점도 없는데

왜 처음에는 첫번째 공격을 하고 두번째 콤보 공격을 하면 EndAbility가 아닌 ActivateAbility가 다시 호출되고,

두번째 할때는 왜 첫번째 공격이 끝나면 무조건 EndAbility가 호출될까요..??ㅠ

스크린샷 2025-08-21 143145.png.webp

답변 2

0

이득우님의 프로필 이미지
이득우
지식공유자

애셋 설정이 달라 종료 조건이 파악되지 않을 수도 있을텐데, 버전 문제는 아닌것 같습니다.
원인 파악을 위해 우선 샘플 코드를 5.6버전에서 빌드해보시면 어떨까요?

0

안녕하세요, 인프런 AI 인턴입니다. 언리얼공부님.

언리얼 엔진을 사용하면서 콤보 공격 시 ActivateAbilityEndAbility가 예상치 못한 순서로 호출되는 문제는 여러 가지 요인 때문일 수 있습니다. 특히 언리얼 엔진의 버전 변화에 따라 내부적인 동작이 조금씩 달라질 수 있습니다. 이번 문제를 파악하기 위한 몇 가지 확인사항을 안내드리겠습니다.

원인과 해결책 탐색

  1. Ability Input 및 태그 확인:

    • ActivateAbility가 정상적으로 호출되려면 적절한 입력 설정과 태그가 필요합니다. 블루프린트 혹은 C++ 코드에서 입력 설정을 다시 한번 확인해 보세요.
  2. 상태 관리 및 스택 설정:

    • 각각의 어빌리티가 시작되고 종료될 때 상태가 어떻게 변하는지 점검해야 합니다. 상태 관리가 정확하지 않다면 종료 때마다 EndAbility가 잘못 호출될 수 있습니다.
    • GetAbilityTask_Internal 함수가 콤보 내에서 어떤 역할을 하는지도 확인해 보세요.
  3. 어빌리티 쿨타임 및 비용:

    • 각 콤보가 올바르게 활성화되는지 확인하기 위해 쿨타임과 비용 조건을 체크하세요. 일부 조건이 충족되지 않는 경우 ActivateAbility가 다시 호출되지 않을 수 있습니다.
  4. 버전 간 차이 확인:

    • 언리얼 엔진 5.6과 5.4 간의 버전 차이로 인해 발생하는 문제일 수 있으므로, 변경된 릴리스 노트를 참조하여 관련 업데이트나 수정 사항이 있는지 확인하세요.

유사한 문제의 해결 사례

이와 관련된 문제는 이미 존재하는 질문과 답변에서 해결 방법을 찾을 수 있습니다:

  1. UAbilityTask_WaitTargetData와 관련된 내용은 비슷한 상황에서의 함수 호출 원리에 대한 설명을 포함합니다.
  2. ASC->SpawnedTargetActors 에 추가된 타겟 액터에 관해서 질문있습니다.은 어빌리티 시스템 내의 예상과 다른 동작을 설명합니다.

위의 링크들을 통해 추가적인 해결책을 찾아보시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

서로 애니메이션을 다른거를 사용했는데 5.6프로젝트에서 5.4에서 사용한 애니메이션을 사용하니 똑같이 EndAbility가 불려와지네요..

 

그러면 애니메이션에서 뭔가 설정 문제가 있는건가요?

언리얼공부님의 프로필 이미지
언리얼공부

작성한 질문수

질문하기