Make Unreal REAL.
article thumbnail
ARAG (A Really Awesome Game) Commit 8b195

 

이번 작업 결과는 다음과 같다.

  • 체력, 마나, 이동 속도 속성을 GAS를 통해 캐릭터에 적용하고 데이터 에셋을 통해 관리했다.

 

 

이번 작업에서 느낀 점 👨‍💻👨‍💻👨‍💻
  • GAS가 생각보다 쉽지 않다..
    한글로 된 국내 참고 자료는 전무한 수준이라서, 공식 문서나 해외 블로그 유튜브 예제를 보면서 파보아야 할 것 같다.
  • 중요한 설정은 BP에 그대로 두지 말고 틈틈이 C++로 옮겨주는 게 좋다.

 

이번 작업과 관련된 주요 구현 내용은 다음과 같다.

 

 

캐릭터에 기본적으로 적용할 이펙트와 부여할 능력을 데이터 에셋을 통해 관리하도록 한다.

 

 

일단 캐릭터는 체력, 마나, 이동 속도 속성을 갖도록 했다.

 

 

캐릭터 클래스에 데이터 에셋을 통해 기본 이펙트 적용과 능력을 부여하기 위한 함수들을 구현했다.

 

 

개발 도중 마주했던 문제들 👇👇👇

 

블루프린트 문제로 Ability System Component가 NULL인 문제가 있었다.

분명 캐릭터의 생성자에서 컴포넌트를 추가해 주었는데 BP에 뜨지도 않고 로그를 찍어봐도 NULL이라고 뜨는 문제가 있었다.

에디터를 껐다 켜봐도 같길래 당최 어떤 문제인지 모르겠어서 UE 포럼에서 컴포넌트가 생성되지 않는 문제에 대해 검색했다.

BP 문제로 생성자 코드가 제대로 적용되지 않을 때가 있다는 쓰레드를 보았고, 기본 ACharacter 클래스로 부모를 바꿔주고 다시 AARAGCharacter 클래스로 Reparent 해주니 해결됐다.

 


Gameplay Effect를 통해 체력, 마나 등의 Gameplay Attribute를 초기화해줄 때, Max 값을 먼저 적용시켜줘야 했다.

PostGameplayEffect() 함수에서 Clamp() 함수를 통해 체력과 마나의 범위를 제한하는데, Max 값은 초기화 전에 0 값을 가지므로 Max의 초기화를 먼저 진행해주어야 했다.

 

profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그