c++ GameMode 및 c++ Character 클래스 제작

DevBison·2025년 8월 14일

언리얼 엔진 C++ 캐릭터 & 게임모드 설정

1. 캐릭터 클래스 생성

언리얼에서 Character는 이미 이동, 점프, 컨트롤러 연동 등 기본 기능이 구현된 클래스이므로, 직접 구현하는 것보다 상속받아 사용하는 것이 효율적이다.

캐릭터 클래스 생성


2. 기본 컴포넌트 구성

Character 클래스를 만들면 기본적으로 다음과 같은 컴포넌트들이 포함된다.

  • CapsuleComponent (충돌 영역)
  • CharacterMovementComponent (이동 처리)
  • SkeletalMeshComponent (캐릭터 모델)
  • ArrowComponent (방향 표시)

기본 컴포넌트 예시


3. 뷰포트 배치 모습

기본 상태로 레벨에 배치하면 다음과 같이 나온다.

레벨 배치 모습


4. 스켈레탈 메쉬 지정

캐릭터에 사용할 Skeletal Mesh의 레퍼런스 경로를 복사한다.
(콘텐츠 브라우저에서 우클릭 → 참조 경로 복사)

레퍼런스 복사


5. C++에서 메쉬 적용

ConstructorHelpers::FObjectFinder를 이용해 Skeletal Mesh를 불러와 GetMesh()에 지정한다.

C++에서 메쉬 적용


6. 기본 배치 시 문제

메쉬의 위치나 회전이 맞지 않아 다음과 같이 어긋날 수 있다.

메쉬 위치 문제


7. APlatformCharacter 생성자에서 조정

APlatformCharacter::APlatformCharacter() 생성자 내부에서 GetMesh()->SetRelativeLocation() 등을 이용해 메쉬 위치와 회전을 조정한다.

위치 조정 코드


8. 정상 적용

조정 후 정상적인 위치에 캐릭터가 배치된다.

정상 작동


9. 게임모드에서 기본 폰 지정

프로젝트 세팅 → Maps & Modes에서 Default Pawn Class를 PlatformCharacter로 변경하면, 게임 시작 시 해당 캐릭터로 플레이 가능하다.

디폴트 폰 클래스 지정
플레이 적용

주의: 클래스 생성 전 변경 사항은 꼭 저장해야 한다. 저장하지 않으면 에디터 재시작 시 날아갈 수 있다.


10. C++ 게임모드 클래스 생성

게임의 규칙, 시작 시 생성할 기본 폰, HUD 등을 지정하기 위해 GameModeBase를 상속한 클래스를 생성한다.

게임모드 클래스 생성


11. TSubclassOf로 객체 타입 지정

TSubclassOf는 특정 클래스 타입만 선택 가능하도록 제한하는 템플릿이다.
게임모드에서 DefaultPawnClass에 캐릭터 타입을 지정할 때 주로 사용한다.

TSubclassOf 설명
코드 예시


12. 월드 세팅에서 게임모드 지정

레벨에서 World Settings → GameMode Override를 PlatformGameMode로 지정하면, 해당 레벨에서만 게임모드가 적용된다.

게임모드 오버라이드
적용 후 폰 클래스 변경


13. 정리

  1. Character 클래스 생성 → 기본 이동, 점프 기능 포함.
  2. Skeletal Mesh 지정 → ConstructorHelpers로 로드.
  3. 위치/회전 조정 → 생성자에서 SetRelativeLocation/Rotation.
  4. GameMode 생성 → DefaultPawnClass에 캐릭터 지정.
  5. World Settings 또는 프로젝트 세팅에서 적용.
profile
응애 개발자

0개의 댓글