[UE5 / C++] C++로 언리얼 캐릭터 생성하기 (1)

Singery00·2024년 4월 12일
0

UE5 C++

목록 보기
2/20
post-thumbnail

개요

💡 C++로 플레이어의 캐릭터에게 메시와 카메라를 입혀보자

C++을 사용해서 플레이의 캐릭터에게 Manny를 입히고, Spring Arm과 카메라를 추가해보겠습니다.

1. 게임 모드 변경
2. 플레이어 메시 입히기
3. 스프링암, 카메라 컴포넌트 추가하기


본론

게임모드 변경

Game Mode Base를 선택해서

BP_MyPlayerGameMode로 생성해줍시다.

BP_MyPlayerGameMode를 켜서 Default Pawn Class를 BP_Player로 변경하고

World Settings에서 우리가 만든 게임모드로 변경해줍니다.


C++ 클래스 생성

우선 MyPlayer를 위한 C++를 새로 생성해줍시다.

캐릭터를 선택해주고

MyPlayer로 이름을 지어 줍시다.

그리고 아래와 같은 창이 Visual Studio에서 뜨면 [모두 다시 로드]를 해줍시다.

BP_Player 생성

그리고 Blueprint 폴더를 생성하고 BP_Player를 생성을 해줍시다.

그리고 BP_Player를 켜서 Class Settings를 눌러서 우측 Details에서 Parent Class를 우리가 생성한 MyPlayer클래스로 변경해주고 컴파일 저장해줍니다.

이제 Visual Studio로 이동합니다.

.cpp와 .h

Visual Studio로 이동하시면 생성한 MyPlayer에 대한 .cpp와 .h가 생성되어 있습니다.

.cpp는 소스파일, .h는 헤더 파일입니다.

.h에 필요한 변수, 컴포넌트, 함수 등을 선언하고 .cpp에서 정의를 통해 실제 구현이 이루어진다고 생각하시면 될 것 같습니다.

플레이어 메시 추가

MyPlayer.cpp로 이동해서 AMyPlayer()함수 부분을 찾아 줍니다.
그리고 아래 코드를 추가해주세요.

AMyPlayer::AMyPlayer()
{
	PrimaryActorTick.bCanEverTick = true;

	// 여기부터
	ConstructorHelpers::FObjectFinder<USkeletalMesh> TempMesh(TEXT(""));

	if (TempMesh.Succeeded())
	{
		GetMesh()->SetSkeletalMesh(TempMesh.Object);
	}
    // 여기까지
}

위 코드는 우리가 원하는 TempMesh를 불러 오는데 성공한다면 할당하겠다.
정도로 생각하시면 됩니다.

우리가 불러올 Mesh는 TEXT("") 이 안에 레퍼런스를 넣어 주어야 합니다.

언리얼에서 기본으로 제공하는 캐릭터를 사용합시다.
Manny와 Quinn중에 하나를 골라서

우클릭 후 Copy Reference를 클릭합니다.
저는 Manny의 레퍼런스를 복사했습니다.

그리고 다시 Visual Studio로 가서 TEXT("")안에 복사한 레퍼런스를 복사 붙여넣기 해줍니다.

	ConstructorHelpers::FObjectFinder<USkeletalMesh> TempMesh(TEXT("/Script/Engine.SkeletalMesh'/Game/Characters/Mannequins/Meshes/SKM_Manny.SKM_Manny'"));

그럼 위와 같이 될 겁니다.

❗저장 후 실행❗해보면 언리얼 에디터 상에서 BP_Player에 메시가 추가된 것을 확인할 수 있습니다!

위치가 조금 안맞네요.
수정해줍시다.

	if (TempMesh.Succeeded())
	{
		GetMesh()->SetSkeletalMesh(TempMesh.Object);
        // 아래 코드 추가
		GetMesh()->SetRelativeLocationAndRotation(FVector(0, 0, -90), FRotator(0, -90, 0));
	}

❗저장 후 실행❗해주면 Location과 Rotation이 조정된 것을 확인할 수 있습니다.


마무리

아주 간단했죠?
다음 포스팅엔 스프링암과 카메라를 추가해보겠습니다.

1. 게임 모드 변경
2. 플레이어 메시 입히기
3. 스프링암, 카메라 컴포넌트 추가하기

profile
게임 개발자가 되어보자

0개의 댓글