inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

캐릭터의 기본 설정 값을 Attribute와 연동

203

강건희

작성한 질문수 22

0

캐릭터에서 기본적으로 제공되는 MaxWalkSpeed나 JumpZVelocity같은 값들을 AttributeSet과 연동하여 사용할 수 있는 방법이 있을까요?

이런 값들도 GAS를 통해서 조정할 수 있다면 좋을 것 같아 질문 남깁니다.

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

답변 2

1

이득우

안녕하세요. 출장중이라 답신이 늦었습니다.
강의에서 설명하는 AttributeSet 클래스의 PostGameplayEffectExecute 혹은 PostAttributeChange 함수를 사용해 관련 어트리뷰트 변동시 처리하는 로직을 만들면 될 것 같습니다.
다만 위 함수는 모든 어트리뷰트에 대해 동작하기 때문에 특정 어트리뷰트에 대해서만 짤막하게 처리하고 싶다면 GameplayAttributeValueChangeDelegate 델리게이트를 사용해 연동해주면 더 간편하게 제작 가능할 것 같습니다.
아래와 같은 형식의 델리게이트 함수를 제작합니다.

void AABGASCharacterPlayer::HandleHealthChanged(const FOnAttributeChangeData& ChangeData)
{
//ChangeData.OldValue, ChangeData.NewValue
}

그리고나서 ASC 초기화시 어트리뷰트에 이를 연동해주면 해당 어트리뷰트가 변할 때마다 델리게이트 콜백함수에서 변하기 이전 값과 새롭게 변한 값을 확인할 수 있으므로 NewValue값의 범위가 유효한지 체크하고, 캐릭터무브먼트컴포넌트에 반영해주면 될 것 같습니다.

ASC->GetGameplayAttributeValueChangeDelegate(UABCharacterAttributeSet::GetHealthAttribute()).AddUObject(this, &ThisClass::OnHealthChanged);  

0

강건희

언리얼에서 연동하는 기능을 따로 제공하지는 않고 델리게이트를 이용해서 자동화 처리하는 방식인가보네요. 감사합니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

죄송합니다만, 제공된 정보에는 UE4나 Unreal Engine에서의 게임플레이 어빌리티 시스템(GAS)에 관련된 내용이 없어 직접적인 답변을 드리기 어렵습니다.

Unreal Engine의 게임플레이 어빌리티 시스템은 게임 내에서 캐릭터의 능력치, 상태 효과, 스킬 시스템 등을 관리하는 데 사용됩니다. MaxWalkSpeed나 JumpZVelocity와 같은 캐릭터의 기본 설정 값들을 AttributeSet과 연동하여 사용하는 것은 가능합니다. AttributeSet은 GAS를 사용하여 캐립터의 다양한 능력치나 상태 값을 관리할 때 기본적으로 활용되는 클래스 중 하나입니다. 이를 통해 게임 내 캐릭터의 동작이나 상태에 변화를 주는 로직을 구현할 수 있습니다.

UE4의 공식 문서나 관련 강의, 커뮤니티 포럼에서 더 구체적인 방법을 찾아보는 것을 추천드립니다. Unreal Engine 공식 문서나 튜토리얼은 Unreal Engine의 기능을 학습하는 데에 매우 유용한 자료입니다.

원하는 답변을 찾지 못하셨나요? 그럼 우측 하단의 ‘문의하기’ 에서 직접 문의해주세요. 최대한 빠르게 답변드리도록 하겠습니다!

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