초기세팅
게임을 구성하는 요소별로 폴더를 나누어서 관리하려고 합니다.
우선 C++ 클래스들은 클래스 폴더 안의 RPG 폴더에 저장하고
Map에는 레벨 형식의 맵 파일,
Character에는 기본 캐릭터 블루프린트를 저장하기로 하였습니다.
캐릭터 생성
먼저 캐릭터를 맵에 소환해서 움직이는 것을 구현하기 위해서 게임모드, 캐릭터 클래스를 만들었습니다.
이후 RPGCharacter 클래스를 상속받은 블루프린트를 만들어 주었습니다.
static ConstructorHelpers::FObjectFinder<USkeletalMesh> CharacterMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/ParagonGreystone/Characters/Heroes/Greystone/Meshes/Greystone.Greystone'"));
if (CharacterMeshRef.Succeeded())
{
GetMesh()->SetSkeletalMesh(CharacterMeshRef.Object);
}
캐릭터의 생성자에 해당 코드를 작성해서 캐릭터의 스켈레탈 메시를 설정했습니다.
게임 모드 수정
static ConstructorHelpers::FClassFinder<APawn> PlayerPawnClass(TEXT("/Game/Character/BP_RPGCharacter.BP_RPGCharacter_C"));
if (PlayerPawnClass.Class)
{
DefaultPawnClass = PlayerPawnClass.Class;
}
게임모드의 생성자를 생성해서 생성자 함수 내에 다음과 같이 캐릭터의 블루프린트를 가져와
DefaultPawnClass에 넣는 작업을 해주었습니다.
클래스 형식이기 때문에 주소의 마지막에는 _C를 추가합니다.
게임 실행
지금까지 게임 모드 베이스를 수정하여 게임에 넣고자 하는 캐릭터를 적용하였고
게임 시작시 해당 캐릭터에 플레이어가 빙의되게 하였습니다.
또한 캐릭터의 스켈레탈 메시를 다운받은 에셋으로 설정하여 캐릭터가 모습을 가지게 하였습니다.
다음번엔 스프링암을 이용해서 카메라 시점을 캐릭터 뒷쪽에서 찍게 하고
키보드 입력을 받아 해당 방향으로 캐릭터가 움직이게 할 예정입니다.
'[게임 개발] 개발 일지 > RPG' 카테고리의 다른 글
5. 애니메이션 트리밍 및 문제점 수정 (0) | 2023.09.12 |
---|---|
4. 캐릭터 상태에 따른 애니메이션 추가 (0) | 2023.09.10 |
3. 향상된 입력을 이용한 캐릭터 이동 (0) | 2023.09.09 |
2. 카메라 설정 (0) | 2023.09.08 |
0. 개발 목표 및 개발 일정 (0) | 2023.09.07 |