1. 캐릭터 유형
캐릭터의 유형에 따라 강점과 약점이 있을 것이다.
(전사 클래스는 힘이 높고 지능이 낮음)
레벨이 높아짐에 따라 클래스의 스텟이 변화할 수 있도록 캐릭터 유형을 다분화한다.
열거형을 이용하여 캐릭터의 유형을 생성한다.
데이터 에셋을 이용하여 각 캐릭터의 정보를 저장한다.
커브 테이블을 사용하여 값들의 증가 정도를 조정한다.
2. 데이터 에셋 생성
(1) C++ 클래스 생성
GameplayAbility - Data 폴더 내에 DataAsset을 상속받는 CharacterClassInfo 클래스를 생성한다.
#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "CharacterClassInfo.generated.h"
class UGameplayEffect;
UENUM(BlueprintType)
enum class ECharacterClass : uint8
{
Elementalist,
Warrior,
Ranger
};
USTRUCT(BlueprintType)
struct FCharacterClassDefaultInfo
{
GENERATED_BODY()
// 1차 속성의 기본값을 적용하는 게임플레이 이펙트 - 공통
UPROPERTY(EditDefaultsOnly, Category="Class Defaults")
TSubclassOf<UGameplayEffect> PrimaryAttributes;
};
UCLASS()
class AURA_API UCharacterClassInfo : public UDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, Category = "Character Class Defaults")
TMap<ECharacterClass, FCharacterClassDefaultInfo> CharacterClassInformation;
// 2차, 바이탈 속성의 기본값을 적용하는 게임플레이 이펙트 - 유형별
UPROPERTY(EditDefaultsOnly, Category = "Common Class Defaults")
TSubclassOf<UGameplayEffect> SecondaryAttributes;
UPROPERTY(EditDefaultsOnly, Category = "Class Defaults")
TSubclassOf<UGameplayEffect> VitalAttributes;
FCharacterClassDefaultInfo GetClassDefaultInfo(ECharacterClass CharacterClass);
};
(1-1) ECharacterClass 열거형 클래스
캐릭터의 유형을 세가지로 정의하는 열거형 클래스이다.
(1-2) CharacterClassDefaultInfo 구조체
각 캐릭터가 개별로 가져가는 1차 속성을 세팅하는 게임플레이 이펙트를 가지는 구조체이다.
(1-3) CharacterClassInfo 클래스
모든 캐릭터가 공통으로 소유하는 2차, 바이탈 속성을 초기화하는 게임플레이 이펙트를 가지는 클래스이다.
클래스의 정보를 저장하는 맵이 존재하며, 캐릭터 유형을 넣어서 기본 정보를 가져오는 함수도 구현되어있다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
10-3. 게임플레이 이펙트 - (6) 커브 테이블(Curve Table)에 따른 수정자 값 적용, CSV 및 JSON 적용 (0) | 2024.12.17 |
---|---|
10-2. 게임플레이 이펙트 클래스 - (7) 캐릭터 유형(직업)별 속성 기본값 적용 (0) | 2024.12.17 |
9-11. UI - (7) 줄어드는 체력 바 효과, 체력 바 숨기기 (0) | 2024.12.17 |
9-10. UI - (6) 몬스터 체력 바 (0) | 2024.12.13 |
9-9. 게임플레이 이펙트 클래스 - (6) 투사체 기본 데미지 게임플레이 이펙트 적용하기 (0) | 2024.12.13 |