UE5FPS - Character

JUSTICE_DER·2023년 3월 3일
0

🌵UNREAL

목록 보기
21/42
post-thumbnail

Unreal Engine & C++ Tutorial - 1st Person Shooter Game
https://www.youtube.com/watch?v=4HoJIgyclZ4
참고로 해당 강의는 UE4 기준이다.

해당 영상을 보고 C++를 활용한 FPS게임을 만들어보려고 한다.
여태 배운것들은 기본적인 개념이지, 게임을 만드는 법에 대한 내용이 아니었다.
그래서 간단하게나마 게임을 만드는 법을 Fps를 통해서 배워보고,
[ 해당 프로젝트 이후 할 것 ] 을 통해서 보다 방대한 게임을 만들어보려고 한다.


Character

  • UE5FPS
    Game - FirstPirson템플릿으로,
    StartContent를 포함하여 시작해보았다.

  • 우선 당장은 쓰이지 않지만, Content에 Meshes폴더를 만들고,
    뱀파이어 에셋 예제를 다운받아 넣어놓는다.

  • 이제 C++폴더에 게임 캐릭터를 생성한다.

  • FPSCharacter라고 이름지었고, 헤더 public에 아래의 코드를 작성하였다.

public:
	UPROPERTY(VisibleDefaultsOnly, Category = Mesh)
		class USkeletalMeshComponent* HandMesh;
  • UPROPERTY설정은 각각
    아키타입의 속성 창에서만 볼 수 있으며 편집할 수 없음을 나타냅니다
    청사진 편집 도구에 표시될 때 속성의 범주를 지정합니다 를 의미한다.

  • 변수들을 다음과 같이 연속적으로 추가하였다.
    Mesh와 관련된 HandMesh / GunMesh / ShootLocation을 두었다.
    Camera와 관련된 FirstPersonCamera / TurnRate / LookupRate를 추가하였다.
    해당 3개의 변수는 BP에서도 쓰기 위해서 ReadOnly를 붙였다.
    마지막으로 GunOffset이라는 FVector를 두었다.

  • 같은 패키지 내에서만 접근이 되도록 protected화 하였다.
    캐릭터의 사격 / 이동 그리고 카메라의 이동을 모두 구현할 수 있다.

#include "FPSCharacter.h"
#include "Components/CapsuleComponent.h" //5에서 추가해야하는 부분
#include "Camera/CameraComponent.h" //5에서 추가해야하는 부분

위의 헤더파일을 추가해야만 오류가 없다. UE4강의에선 쓰지 않았던 부분이다.

  • 생성자에는, 헤더에 선언해두었던 각 변수에 대해서
    각각 객체를 생성하고 할당한다.
    주석을 달았으니 설명 생략.

  • 보면 GunMesh는 Capsule에 종속되지 않고,
    ShootLocation만 가지고 있는 상태인데,
    BeginPlay에서 종속을 시킬 것이라고 한다.
    굳이..왜?

  • BeginPlay에서 작성한다. 이유는 주석에 나와있듯이 방어적 코딩이라고 한다.
    그리고 SetupAttachment대신에 AttachToComponent라는 함수를 사용한다.

  • 왜 해당 함수를 사용하는지 모르겠다.
    rule을 지정할 수 있어서 그런가?
    해당 rule은 scale변환 없이 종속시키겠다는 의미.


참고사이트

참고하면 도움이 된다 1 - 액터 배치

참도된 2 - 상속

참도된 3 - bUsePawnRotation

참도된 4 - FAttachmentTransformRules

profile
Time Waits for No One

0개의 댓글