(Unreal : 입문) 6. 블루프린트 클래스

Posted by : at

Category : Unreal-entry


기존에 사용했던 MyActor, MyPawn은 삭제하자(코드자체를 삭제 후 언리얼 재빌드)

우선 기존코드의 이런 문제가 있었다.

AMyCharacter::AMyCharacter()
{
 	// ...

    // 메쉬가 변경되면 매번 코드를 변경해야할까?
    // 거기에 앞서 이런 하드코딩은 좋지못한 코딩습관이다.
	static ConstructorHelpers::FObjectFinder<USkeletalMesh> SM(TEXT("SkeletalMesh'/Game/ParagonGreystone/Characters/Heroes/Greystone/Meshes/Greystone.Greystone'"));

	if (SM.Succeeded())
	{
		GetMesh()->SetSkeletalMesh(SM.Object);
	}
}

블루프린트로 해결해보자

캐릭터를 상속받아 BP_MyCharacter 블루프린트를 만들어보자

블루프린트의 Skeletal Mesh를 원하는 캐릭터로 지정하자

  • SpringArm, Camera 설정
    • 컴포넌트 추가 -> SpringArm, Camera를 추가하고 SpringArm 밑에 Camera를 넣자
    • SpringArm의 설정을 아래와 같이 하자

참고로 아래와 같이 블르프린트 내에 변수를 선언할 수 있다.

이벤트 그래프 설정 - BeginPlay

간단하게 설명하자면 ArmLength라는 블루프린트에 설정한 변수를 받아서 BeginPlay시점에 SET해줘라 SpringArm에

이제 블루프린트 클래스를 기본 Pawn으로 설정해보자

AMyGameModeBase::AMyGameModeBase()
{
	//DefaultPawnClass = AMyCharacter::StaticClass();

	static ConstructorHelpers::FClassFinder<ACharacter> BP_Char(TEXT("Blueprint'/Game/Blueprints/BP_MyCharacter.BP_MyCharacter_C'"));

	if (BP_Char.Succeeded())
	{
		DefaultPawnClass = BP_Char.Class;
	}
}

이제 키보드, 마우스 입력을 받아보자

C++과 동일하게 생성! But 성능상의 문제 + 코드가 복잡해 질경우 블루프린트가 더 복잡할 수 있다는 단점이 있다


About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links