UE5/RPG Character 타입

[UE5] RPG 캐릭터 종류 설계, 레벨별 속성값 설정

Mini_96 2024. 6. 19. 00:48

 

종류

 

공통속성, 개별속성 설계

 

 

* 캐릭정보 DA 만들기

c++ 생성

설계에 맞춰 구현

// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "CharacterClassInfo.generated.h"

class UGameplayEffect;

UENUM(BlueprintType) 
enum class ECharacterClass : uint8 //캐릭구분용
{
    Elementalist, //0
    Warrior, //1
    Ranger //2
};

USTRUCT(BlueprintType)
struct FCharacterClassDefaultInfo
{
    GENERATED_BODY()

    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;

    //공통속성
    UPROPERTY(EditDefaultsOnly, Category="Common Class Defaults")
    TSubclassOf<UGameplayEffect> SecondaryAttributes;

    UPROPERTY(EditDefaultsOnly, Category="Common Class Defaults")
    TSubclassOf<UGameplayEffect> VitalAttributes;

    FCharacterClassDefaultInfo GetClassDefaultInfo(ECharacterClass CharacterClass); //@Getter
    
};
FCharacterClassDefaultInfo UCharacterClassInfo::GetClassDefaultInfo(ECharacterClass CharacterClass)
{
    return CharacterClassInformation.FindChecked(CharacterClass); //map.find(key)
}

c++ 상속받은 BP 만들기
설계대로 잘 구현된 모습

 

* GE 만들기

아우라용, 적용 폴더구분
살펴보니 보조속성은 적도 아우라의것을 공통으로 사용할것임

 

Vital 속성도 마찬가지
세컨드, 바이털은 공용 / 나머지는 각각 설정

 

* 커브테이블 만들기 => 

큐빅(곡선)으로 만들고
GETag와 이름을 맞춰서 생성
우클릭 > addkey > x축은 레벨, y축은 값으로 설계
원소술사의 레벨5의 힘은 7이다.
선 선택후 auto하면 곡선으로 만들어줌
레벨10의 힘은 9.5다.

 

레벨40까지 힘설정 완료

 

int도 똑같이 노가다

 

만든커브를 GE 수정자에 적용

 

* 전사, 레인저도 또 노가다? ㅇㅇ, csv - json 으로 만들어볼거임

data 폴더만들기
우클릭후 data 폴더로 내보내기
엑셀에서 레벨별 능력치 설정하기

 

CT에서 엑셀 불러오기
단점 : 자동 곡선기능 제공 안됨
Ranger CT 만든 결과

 

- JSON 으로 내보내고 실습

json 임포트하기
json 장점 : 자동곡선 가능!
레인저 GE 에서 적용
전사 GE에서 적용

 

* 생각 : Second속성은 무한효과로 만들었음 => 런타임중 계속 변화

but, 적은 고정속성을 사용할것임.

복사함
즉시로 수정
DA에서도 수정

 

https://github.com/DongHoonYu96/GameplayAbilitySystem_Aura/commit/558542c850094c17bdce9825db82f19aafde169a

 

feat : 캐릭터 종류 설계, 레벨별 속성값 설정 · DongHoonYu96/GameplayAbilitySystem_Aura@558542c

Bisu96 committed Jun 18, 2024

github.com