Unreal Engine & C++ Tutorial - 1st Person Shooter Game
https://www.youtube.com/watch?v=4HoJIgyclZ4
참고로 해당 강의는 UE4 기준이다.
해당 영상을 보고 C++를 활용한 FPS게임을 만들어보려고 한다.
여태 배운것들은 기본적인 개념이지, 게임을 만드는 법
에 대한 내용이 아니었다.
그래서 간단하게나마 게임을 만드는 법을 Fps를 통해서 배워보고,
[ 해당 프로젝트 이후 할 것 ] 을 통해서 보다 방대한 게임을 만들어보려고 한다.
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를 두었다.
#include "FPSCharacter.h"
#include "Components/CapsuleComponent.h" //5에서 추가해야하는 부분
#include "Camera/CameraComponent.h" //5에서 추가해야하는 부분
위의 헤더파일을 추가해야만 오류가 없다. UE4강의에선 쓰지 않았던 부분이다.
보면 GunMesh는 Capsule에 종속되지 않고,
ShootLocation만 가지고 있는 상태인데,
BeginPlay에서 종속을 시킬 것이라고 한다.
굳이..왜?
BeginPlay에서 작성한다. 이유는 주석에 나와있듯이 방어적 코딩이라고 한다.
그리고 SetupAttachment대신에 AttachToComponent라는 함수를 사용한다.
왜 해당 함수를 사용하는지 모르겠다.
rule을 지정할 수 있어서 그런가?
해당 rule은 scale변환 없이 종속시키겠다는 의미.