2. 카메라 설정

2023. 9. 8. 19:38·[게임 개발] 개발 일지/RPG

캐릭터 설정

GetMesh()->SetRelativeLocationAndRotation(FVector(0.f, 0.f, -90.f), FRotator(0.f, -90.f, 0.f));

캡슐 컴포넌트와 매쉬의 방향이 맞지 않아서 캐릭터가 다른 곳을 보는 현상과

매쉬와 캡슐 컴포넌트의 높이가 맞지 않아 캐릭터가 공중에 뜨는 현상을 해결하기 위하여


캐릭터의 생성자에 코드를 작성 해 주었습니다.

 


카메라 설정

 

이번에는 카메라가 캐릭터의 어깨 뒤를 찍게하기 위해서 스프링암과 팔로우 카메라를 생성하려고 합니다.

 

스프링암과 팔로우 카메라는 이런 형태로, 스프링암은 캐릭터에 고정되어 있고

팔로우 카메라는 스프링암 끝에 고정되어 있습니다.

 

	// 카메라 컴포넌트
	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"));
	class USpringArmComponent* SpringArm;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"));
	class UCameraComponent* FollowCamera;

캐릭터의 헤더파일에 다음과 같은 코드를 입력해서 스프링암과 카메라 컴포넌트를 사용할 준비를 하였습니다.

#include "GameFramework/SpringArmComponent.h"
#include "Camera/CameraComponent.h"

또한 위와 같은 헤더를 include 해줘야 스프링암과 카메라 컴포넌트를 사용할 수 있습니다.

 

	// 컨트롤러 회전에 캐릭터를 회전하지 않음. 컨트롤러 회전은 카메라만 회전
	bUseControllerRotationPitch = false;
	bUseControllerRotationRoll = false;
	bUseControllerRotationYaw = false;
	SpringArm = CreateDefaultSubobject<USpringArmComponent>(TEXT("SpringArm"));
	SpringArm->SetupAttachment(RootComponent);
	SpringArm->TargetArmLength = 1000.f;
	SpringArm->bUsePawnControlRotation = true;

	FollowCamera = CreateDefaultSubobject<UCameraComponent>(TEXT("FollowCamera"));
	FollowCamera->SetupAttachment(SpringArm, USpringArmComponent::SocketName);
	FollowCamera->bUsePawnControlRotation = false;

이후 캐릭터의 CPP 파일에 다음과 같은 코드를 입력하여 마우스로 화면전환을 할 때 캐릭터가 같이 회전하지 않게 하고,
스프링암을 캐릭터에 부착하고 카메라암의 길이, 컨트롤러의 입력에 따른 회전 여부를 설정하였습니다.

팔로우 카메라는 스프링암 끝부분에 부착하였고 스프링암의 회전을 따라가기만 하면 되기 때문에

팔로우 카메라는 컨트롤러의 회전을 따라가지 않도록 하였습니다.

#include "Camera/CameraComponent.h"

또한 다음과 같은 헤더파일을 include 하였습니다.


 

https://docs.unrealengine.com/5.2/en-US/quick-start-guide-to-player-controlled-cameras-in-unreal-engine-cpp/

 

Player-Controlled Cameras

Learn to manipulate a Camera and a Pawn at the same time, using player input.

docs.unrealengine.com

저작자표시 (새창열림)

'[게임 개발] 개발 일지 > RPG' 카테고리의 다른 글

5. 애니메이션 트리밍 및 문제점 수정  (0) 2023.09.12
4. 캐릭터 상태에 따른 애니메이션 추가  (0) 2023.09.10
3. 향상된 입력을 이용한 캐릭터 이동  (0) 2023.09.09
1. 게임 모드와 캐릭터 세팅  (0) 2023.09.07
0. 개발 목표 및 개발 일정  (0) 2023.09.07
'[게임 개발] 개발 일지/RPG' 카테고리의 다른 글
  • 4. 캐릭터 상태에 따른 애니메이션 추가
  • 3. 향상된 입력을 이용한 캐릭터 이동
  • 1. 게임 모드와 캐릭터 세팅
  • 0. 개발 목표 및 개발 일정
람팜팜~
람팜팜~
:)
  • 람팜팜~
    RumPumPum
    람팜팜~
  • 전체
    오늘
    어제
    • 전체 (123)
      • 🎵 일상 (2)
      • JAVA (5)
        • 김영한의 자바 입문 (3)
      • JavaScript (12)
      • ---------------------------.. (0)
      • [게임 개발] 포트폴리오 (2)
        • RPG (1)
        • 슈터-플랫포머 (1)
      • [게임 개발] 개발 일지 (28)
        • RPG (25)
        • TopDownProject (3)
      • [게임 개발] 언리얼엔진 공부 (9)
        • 이득우의 언리얼 프로그래밍 Part.1 (6)
        • 이득우의 언리얼 프로그래밍 Part.2 (1)
        • 개인 메모 (2)
      • [게임 개발] 알고리즘 공부 (60)
        • 프로그래머스 (8)
        • 백준 (52)
        • 개인 메모 (0)
      • [게임 개발] CPP 공부 (2)
        • 이것이 C++ 이다 (1)
        • Effective C++ (0)
        • Effective Modern C++ (0)
        • 홍정모 그래픽스 새싹코스 (1)
      • [게임 개발] CS 공부 (3)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      해시
      메모리구조
      문자열
      그리디
      투포인터
      context switching
      dfs
      dp
      데드락
      브루트포스
      역참조
      스레드
      참조자
      누적합
      우선순위 큐
      프로세스
      슬라이딩 윈도우
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    람팜팜~
    2. 카메라 설정
    상단으로

    티스토리툴바