3인칭 카메라를 붙이기 위해 블루프린트에서 SpringArm과 Camera 컴포넌트를 추가할수도 있지만 여기서는 바로 C++에서 추가하겠습니다.
우선 필요한 스프링암, 카메라 컴포넌트 변수들을 추가해줍니다.
TPSPlayer.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Character.h"
#include "TPSPlayer.generated.h"
UCLASS()
class TPSPROJECT_API ATPSPlayer : public ACharacter
{
GENERATED_BODY()
...
//추가
public:
UPROPERTY(VisibleAnywhere, Category = Camera)
class USpringArmComponent* springArmComp;
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera)
class UCameraComponent* tpsCamComp;
};
스프링암, 카메라 컴포넌트를 생성해 변수에 연결해 주고 루트컴포넌트에 연결해줍니다. 헤더파일도 추가해 줍니다.
TPSPlayer.cpp
#include "TPSPlayer.h"
#include <GameFramework/SpringArmComponent.h>
#include <Camera/CameraComponent.h>
#include "TPSProject.h"
// Sets default values
ATPSPlayer::ATPSPlayer()
{
// Set this character to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
PRINT_LOG(TEXT("%s"), TEXT("TPSPlayer Loading"));
ConstructorHelpers::FObjectFinder<USkeletalMesh> tempMesh(TEXT("SkeletalMesh'/Game/Characters/Mannequins/Meshes/SKM_Manny.SKM_Manny'"));
if (tempMesh.Succeeded()) {
GetMesh()->SetSkeletalMesh(tempMesh.Object);
GetMesh()->SetRelativeLocationAndRotation(FVector(0, 0, -90), FRotator(0, -90, 0));
}
// 3. TPS 카메라를 붙이고 싶다.
// 3-1. SpringArm 컴포넌트 붙이기
springArmComp = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArmComp"));
springArmComp->SetupAttachment(RootComponent);
springArmComp->SetRelativeLocation(FVector(0, 70, 90));
springArmComp->TargetArmLength = 400;
springArmComp->bUsePawnControlRotation = true;
// 3-2. Camera 컴포넌트 붙이기
tpsCamComp = CreateDefaultSubobject<UCameraComponent>(TEXT("TpsCamComp"));
tpsCamComp->SetupAttachment(springArmComp);
tpsCamComp->bUsePawnControlRotation = false;
bUseControllerRotationYaw = true;
// 2단 점프
JumpMaxCount = 2;
}
블루프린트에서 BP_TPSPlayer를 확인해보면 카메라, 스프링암 컴포넌트들이 C++클래스를 통해 추가되어 있는걸 확인할수 있습니다.
'인생언리얼TPS' 카테고리의 다른 글
3.1-5 총알 제작하기 (0) | 2023.12.13 |
---|---|
3.1-4 플레이어 이동 처리하기 (1) | 2023.12.12 |
3.1-3 플레이어 메시 적용 (1) | 2023.12.12 |
3.1-2 플레이어 생성하기 - 게임모드 설정 (0) | 2023.12.12 |
3.1 프로토타입 버전 - 로그카테고리 (0) | 2023.12.12 |