inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

언리얼 엔진 버전 5.3 이상으로 진행하는 경우에 몇가지 수정해야 하는 부분이 존재하는 것 같습니다.

해결된 질문

735

monstro

작성한 질문수 13

2

첫번째로,

무한 무적을 제거하는 블루프린트 게임 이펙트인 BPGE_InvincibleRemove에서

기존의 5.3 이전 버전에서는 교수님이 제작해주신 동영상대로 진행해도 문제가 없지만,

제가 사용하는 버전인 5.4 버전과 같은 5.3 이후의 버전에서는 해당 과정을 적용할 수 없었습니다.

따라서 검색을 통해 다음과 같이 진행하였습니다.

참고링크

https://www.reddit.com/r/UnrealEngine5/comments/18h7wip/how_to_remove_gameplay_tags_with_a_gameplay/?rdt=35472

 

위와 같이 구성하여 확인한 결과, 무적 태그가 잘 삭제되고 무적이 해제되는 것을 확인하였습니다.

정확한 방법은 아닌것 같지만 동작하는데 문제가 없기에 이 설정을 유지하고 있습니다.

 

두번째로,

광역 스킬을 담당하는 블루프린트 게임 어빌리티인 BPGA_Skill에서

기존의 5.3 이전 버전에서는 쿨다운과 코스트에 연결될 GE를 연결만 해줘도 문제없이 동작하지만,

마찬가지로 5.4 버전에서는 쿨다운과 코스트가 작동하지 않음을 확인하였습니다.

검색을 해본 결과, 다음과 같이 진행하였습니다.

참고링크

https://forums.unrealengine.com/t/adding-cooldowns-to-abilities-with-the-gameplay-ability-system-in-5-3/1612390

 

기존의 쿨다운과 코스트에 사용하는 GE를 연결하고 이벤트 그래프에서 위와 같이 노드를 연결한 결과

정상적으로 쿨다운과 코스트가 적용되는 것을 확인하였습니다.

 

혹시 더 나은 설정 방법이나 개선점이 있다면 무엇이 있는지 알 수 있을까요?

추가적으로 캐릭터나 애니메이션에서 사용할 수 있는 물리 요소들을

Attribute Set에서 관리하는 것이 나은지, Character에서 관리하는 것이 나은지 궁금합니다.

unreal-engine ue-blueprint unreal-engine5 언리얼-c++ gas

답변 1

1

이득우

네 GAS는 에픽에서 집중적으로 관리하는 프레임웍이다보니 버전업되면서 계속 달라지고 있습니다.
아직 구현 안된 부분도 존재하고요. 제보주신 내용 검토해서 노트에 추가로 반영하겠습니다.
제 강의로 큰 틀을 파악했다면 API의 변경점은 소스코드 보면서 적용하면 큰 문제 없을 것으로 보여지긴 합니다.

물리 요소 관리에 대해서는 Character에서 직접 관리한다고 큰 차이는 없을 것 같습니다.
개발자마다 쓰기 나름이라고 생각하며, 저라면 다음과 같은 기준으로 고민해보면 어떨까 싶네요.
메타 어트리뷰트를 활용하는 것도 하나의 방법이 될 것 같아요.
- AttributeSet : 변경 작업이 완전히 GAS 시스템 내에서만 이루어지는 경우
- Character : GAS 시스템 외에서도 자유롭게 조정이 이루어지는 경우

1

monstro

5.3 이상의 언리얼 엔진을 사용하시는 다른 분들이 어려움을 겪을 수 있다고 생각하여 이 글을 쓰게 되었는데, 강의 노트에 반영한다고 말씀해주시니 다행입니다.

또 궁금증을 해결해주셔서 감사합니다.

캐릭터의 물리 옵션은 애니메이션에서도 사용하니 Attribute Set이 아닌 Character에서 사용해야 할 것 같습니다.

기획적인 부분에서도 고민할 것이 많다고 느껴집니다.

OnInterruptedCallback()으로 몽타주가 중간에 취소될 경우 CancelAbility를 호출하는게 맞을까요 ?

0

38

1

HasMatchingGameplayTag 역활이 조금 이해가 안갑니다.

0

45

1

캐릭터 스탯 초기 설정 방법 질문

0

86

2

언라얼 공식 홈페이지 튜토리얼 강의에 질문 있습니다

0

84

2

StartAbility, StartInputAbility 둘 다 GiveAbility를 호출해야하나요?

0

75

2

AnimNotify 구현 질문

0

102

2

[6강] ShowDebug에서 Attributes for avater가 변하지 않아요..

0

78

2

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

0

112

2

9강 44:59 부분에서 질문이 있습니다.

0

78

2

8강 24:22 CurrentAttributeSet 질문입니다.

0

65

2

ASC 에서 AttributeSet 함수에 대한 mutable 반환 함수가 없는 이유

0

85

2

SetupGASInputComponent 함수 호출위치가 이해가안갑니다.

0

145

3

[GAS] Player State에 대해 궁금한 점이 있습니다.

0

134

2

AnimNotify를 GA에서 받는방법이 있을까요?

0

84

2

ABP의 skeleton 오류

0

115

1

장판스킬을 만들때 콜리전설정

0

174

2

어빌리티의 쿨다운 GameEffect에 대하여

0

261

2

GAS 구조로 멀티 플레이 게임을 제작할려고 하는데요

0

227

2

5.4버전 기준으로 Remove Gameplay Effect With Tags가 안 보입니다.

0

282

3

8강의 수업 내용들 중 이해가 잘 안가는 부분들이 있습니다.

0

209

2

7강 GE로 NonPlayer의 어트리뷰트셋 값을 초기화시키는 것에 질문이 있습니다.

0

110

2

7강 정리했는데 검토부탁드려요

0

125

1

5강 정리해봤는데 검토부탁드립니다.

0

134

2

4강의 CreateTask 함수 질문입니다,

0

158

2