💡 C++로 플레이어의 캐릭터에게 메시와 카메라를 입혀보자
C++을 사용해서 플레이의 캐릭터에게 Manny를 입히고, Spring Arm과 카메라를 추가해보겠습니다.
1. 게임 모드 변경
2. 플레이어 메시 입히기
3. 스프링암, 카메라 컴포넌트 추가하기
컴포넌트를 캐릭터에게 추가해주기 위해서 아래의 2단계를 기본적으로 거치겠습니다.
우선 사용할 컴포넌트에 대해서 선언을 해줍니다.
MyPlayer.h로 이동해서 아래 코드를 추가합니다.
public:
// SpingArm
UPROPERTY(VisibleAnywhere, Category = Camera)
class USpringArmComponent* springArmComp;
// Camera
UPROPERTY(VisibleAnywhere, Category = Camera)
class UCameraComponent* cameraComp;
SpringArm과 Camera 컴포넌트를 사용하기 위해서 아래 헤더를 포함해주어야 합니다.
#include "GameFramework/SpringArmComponent.h"
#include <Camera/CameraComponent.h>
MyPlayer.cpp의 생성자 함수에서 정의를 해주어야 합니다.
코드는 아래와 같습니다.
springArmComp = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArmComp"));
springArmComp->SetupAttachment(RootComponent);
springArmComp->SetRelativeLocation(FVector(0, 40, 100));
springArmComp->TargetArmLength = 200;
하나씩 해석해보겠습니다.
아래는 선언한 springArmComp에게 USpringArmComponent 타입의 새로운 객체를 호출해서 생성해주고 있습니다.
springArmComp = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArmComp"));
SetupAttachment를 통해 부착할 대상을 지정해줍니다.
Root Component에게 부착해줍니다.
springArmComp->SetupAttachment(RootComponent);
BP_Player를 Charactor로 생성하면 Capsule Component가 Root Component로 할당됩니다.
이후 빌드 후 실행해보면 위 사진처럼 Spring Arm Comp가 Root Component인 Capsule Component하위에 있는 것을 확인할 수 있습니다.
SpringArm의 Relative Location을 조정해주는 코드입니다.
springArmComp->SetRelativeLocation(FVector(0, 40, 100));
TargetArmLength를 사용해서 SpringArm에게 부착된 카메라의 거리를 설정했었죠?
해당 거리를 설정합니다.
springArmComp->TargetArmLength = 200;
카메라는 더욱 간단합니다.
cameraComp = CreateDefaultSubobject<UCameraComponent>(TEXT("CameraComp"));
cameraComp->SetupAttachment(springArmComp);
위 코드도 한 줄씩 살펴보겠습니다.
SpringArmComp때와 동일하게 UCameraComponent를 호출한 후 생성해주고 있습니다.
cameraComp = CreateDefaultSubobject<UCameraComponent>(TEXT("CameraComp"));
Camera는 SpringArm의 하위에 부착해줘야 합니다.
SetupAttachment를 통해 부착할 대상을 지정해줍니다.
cameraComp->SetupAttachment(springArmComp);
❗저장 후 실행❗해보면 언리얼 에디터 상에서 BP_Player에 각각의 컴포넌트가 추가된 것을 확인할 수 있습니다.
BP_Player를 열어보면 Compnent탭에서 각각 추가된 것을 확인할 수 있습니다.
또한 플레이를 통해 이제는 플레이어의 캐릭터가 온전히 보이는 것을 확인할 수 있습니다.
캐릭터에게 메시와 카메라를 추가함으로서 기본적인 준비가 완료되었습니다.
다음 포스팅에는 Old Input System을 사용해서 캐릭터를 조작해보겠습니다.
1. 게임 모드 변경
2. 플레이어 메시 입히기
3. 스프링암, 카메라 컴포넌트 추가하기