UE에서 3인칭 게임을 위한 간단한 PlayerCharacter를 만들어 보겠습니다.
우선 기본적인 설정 및 Character를 상속받는 클래스를 만들어 간단한 캐릭터를 만들겠습니다.
우선 GameModeBase, PlayerController, Character를 상속받는 클래스를 만들고 전부 BP로 만듭니다.



그 후에 월드세팅과 프로젝트 세팅에서 직접 만든 GameMode, Controller, Character 로 세팅해줍니다.

이제 기본적인 세팅이 끝났습니다. Character 스크립트를 수정하여 저희가 조종할 캐릭터를 만들겠습니다.
우선, 저는 다양한 직업을 구현하기 위해 PlayerBaseCharacter과 해당 캐릭터를 상속받는 PlayerGunnerCharacter 를 따로 만들었습니다.
아래 내용은 PlayerBaseCharacter 클래스입니다.
/** HeaderFile **/
public:
APlayerBaseCharacter();
private:
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Camera", meta = (AllowPrivateAccess = "true"))
class USpringArmComponent* CameraBoom;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Camera", meta=(AllowPrivateAccess="true"))
class UCameraComponent* FollowCamera;
/** Cpp File **/
APlayerBaseCharacter::APlayerBaseCharacter()
{
PrimaryActorTick.bCanEverTick = false;
PrimaryActorTick.bStartWithTickEnabled = false;
bUseControllerRotationPitch = false;
bUseControllerRotationRoll = false;
bUseControllerRotationYaw = false;
GetCapsuleComponent()->InitCapsuleSize(42.f, 96.f);
/* Spring Arm Component */
CameraBoom = CreateDefaultSubobject<USpringArmComponent>(TEXT("CameraBoom"));
CameraBoom->SetupAttachment(GetRootComponent());
CameraBoom->TargetArmLength = 420.f;
CameraBoom->SocketOffset = FVector(0.f, 60.f, 100.f);
CameraBoom->bUsePawnControlRotation = true;
/* Camera Component */
FollowCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("FollowCamera"));
FollowCamera->SetupAttachment(CameraBoom);
FollowCamera->bUsePawnControlRotation = false;
/* Character Movement Component */
GetCharacterMovement()->bOrientRotationToMovement = true;
GetCharacterMovement()->RotationRate = FRotator(0.f, 800.f, 0.f);
GetCharacterMovement()->MaxWalkSpeed = 500.f;
GetCharacterMovement()->BrakingDecelerationWalking = 2000.f;
}
Tick Variables : 해당 클래스의 Tick 함수 사용여부. 사용하지 않으면 성능향상
bUseControllerRotation : true 면 카메라의 이동에 따라 플레이어가 회전
CameraBoom->SocketOffset : 카메라의 끝 에서 추가적인 소켓 이동.
bUsePawnControlRotation : true 면 마우스의 회전값이 플레이어 이동에 영향을 준다.
bOrientRotationToMovement : true 면 이동하는 방향으로 캐릭터가 회전한다.
여기까지 작성하고 Blueprint에서 확인해보겠습니다.

CameraBoom의 SocketOffset에 의해 살짝 오른쪽으로 기운 모습을 볼 수 있습니다.

위 처럼 원하는 스켈레탈 메시 에셋을 넣고 위치, 회전 및 CapsuleComponent의 크기를 적절하게 조절합니다.

그 후에 실행하면 PlayerStart 에서 저희가 방금 만든 캐릭터가 맵에 나오는 것을 확인할 수 있습니다.
하지만 저희가 입력 처리를 하지 않았기 때문에 움직이지는 않습니다.
다음에는 입력을 받고 움직여보도록 하겠습니다.
해당 프로젝트는 Udemy의 강의를 참고/수정하여 만드는 중입니다.
더 자세하고 정확한 설명을 위해서는 아래 링크의 강의를 참고하시기 바랍니다.
Unity만 사용하다가 UE5를 처음 사용하다보니 미숙한 부분이 많습니다.
좀 더 나은 방법이 있다면 말씀해주세요.
감사합니다.
https://www.udemy.com/course/unreal-engine-5-advanced-action-rpg/learn/lecture/41746600#overview