[UE5] BlueprintGeneratedClass

ChangJin·2024년 11월 17일
0

Unreal Engine5

목록 보기
111/114
post-thumbnail

BlueprintGeneratedClass블루프린트로 생성된 클래스를 의미하며, Unreal Engine에서 블루프린트가 컴파일되었을 때 자동으로 생성되는 클래스입니다. 이 클래스는 블루프린트에서 작성한 모든 함수, 변수, 로직을 포함하며, 최종적으로 객체로 스폰되기 위해 필요한 정보를 담고 있습니다.

간단히 말해, BlueprintGeneratedClass블루프린트의 실행 가능한 코드와 데이터가 결합된 결과물로, C++의 UClass와는 다소 차이가 있습니다. 일반적으로 BlueprintGeneratedClass는 블루프린트로 작성된 액터, 컴포넌트, UI 등의 기능을 실제 게임에서 사용할 수 있게 해줍니다.

특징 및 용도

  • UClass와 BlueprintGeneratedClass의 차이점

    • UClass는 C++ 코드에서 직접 정의된 클래스입니다. BlueprintGeneratedClass는 블루프린트에서 정의된 클래스의 실행 가능한 형태를 뜻합니다.
    • BlueprintGeneratedClassUClass로부터 파생된 클래스이므로, 모든 BlueprintGeneratedClassUClass처럼 사용할 수 있지만, 반대는 성립하지 않습니다.
    • BlueprintGeneratedClass에는 블루프린트 이벤트 그래프와 함수가 포함되어 있어, 런타임 중 Event Graph 로직을 실행할 수 있게 합니다.
  • 블루프린트 클래스의 로드와 사용

    • BlueprintGeneratedClass를 통해 블루프린트의 모든 논리와 변수 정의가 포함된 런타임에 실행 가능한 클래스가 생성됩니다.
    • 이 클래스는 StaticLoadClassLoadObject 등을 통해 C++에서 로드한 후 스폰하여 사용할 수 있습니다.

BlueprintGeneratedClass의 로드 및 사용 예제

블루프린트 클래스의 경로에서 BlueprintGeneratedClass를 로드하여 사용하려면 다음과 같은 절차를 따릅니다.

  1. 경로를 통한 BlueprintGeneratedClass 로드: StaticLoadClass를 사용하여 블루프린트 클래스의 경로에서 BlueprintGeneratedClass를 로드할 수 있습니다.
  2. 로드된 클래스를 UClass로 캐스팅하여 스폰: BlueprintGeneratedClassUClass에서 파생된 클래스이기 때문에 UClass로 캐스팅하여 SpawnActor로 스폰할 수 있습니다.

예제 코드:

// 블루프린트 경로에서 BlueprintGeneratedClass 로드
FString BlueprintPath = "/Game/Blueprints/MyWeaponBlueprint.MyWeaponBlueprint_C";
UClass* LoadedClass = StaticLoadClass(AActor::StaticClass(), nullptr, *BlueprintPath);

if (LoadedClass && LoadedClass->IsChildOf(AActor::StaticClass()))
{
    AActor* SpawnedActor = GetWorld()->SpawnActor<AActor>(LoadedClass);
    if (SpawnedActor)
    {
        UE_LOG(LogTemp, Warning, TEXT("BlueprintGeneratedClass에서 액터 스폰 성공: %s"), *SpawnedActor->GetName());
    }
    else
    {
        UE_LOG(LogTemp, Error, TEXT("스폰 실패"));
    }
}
else
{
    UE_LOG(LogTemp, Error, TEXT("BlueprintGeneratedClass 로드 실패 또는 AActor의 하위 클래스가 아닙니다."));
}

BlueprintGeneratedClass의 사용 용도

  • 런타임 중 블루프린트 로직 실행: BlueprintGeneratedClass는 블루프린트에서 정의한 모든 논리, 이벤트, 함수가 포함된 형태로 런타임에 객체를 생성하고 동작시킬 수 있습니다.
  • C++와 블루프린트 통합: BlueprintGeneratedClass는 C++와 블루프린트를 통합하여 사용할 때 매우 유용합니다. 예를 들어, C++ 코드에서 블루프린트를 로드하고 특정 클래스의 하위 클래스를 확인한 후, 동적으로 스폰하여 게임에 추가할 수 있습니다.

BlueprintGeneratedClass를 사용하는 상황

  • AI 캐릭터, 무기, 아이템 등 다양한 기능을 가진 오브젝트를 블루프린트로 정의하고, C++ 코드에서 이를 동적으로 로드하여 사용할 때.
  • C++와 블루프린트 기반 시스템을 함께 통합하고 싶을 때, C++에서 블루프린트로 만든 자산들을 제어하거나 수정하려는 경우.

BlueprintGeneratedClass는 이러한 기능을 통해 블루프린트를 통해 작성된 로직을 C++ 코드에서 쉽게 사용할 수 있도록 하는 Unreal Engine의 중요한 시스템입니다.

profile
게임 프로그래머

0개의 댓글