Choose your operating system:
Windows
macOS
Linux
이번 단계에서는 엔진의 Character 베이스 클래스를 사용하여 새 캐릭터를 만들어 보겠습니다. (Pawn 클래스에서 파생된) Character 클래스에는 걷기, 달리기, 점프와 같은 이족보행 동작이 기본 내장되어 있습니다.
캐릭터 클래스 추가
Visual Studio 솔루션에 *.h 와 *.cpp 파일을 수동 추가할 수는 있지만, C++ 클래스 마법사를 사용해서 프로젝트에 새 클래스를 추가하는 것도 좋은 방법입니다. C++ 클래스 마법사를 사용하면, 엔진에서는 언리얼 전용 매크로를 알아서 구성해 주는 헤더와 소스 템플릿이 생성됩니다.
-
파일 메뉴에서 새 C++ 클래스... 를 선택하여 새 부모 클래스를 선택합니다.
-
부모 클래스 선택 메뉴가 열립니다. 스크롤해 내려가 Character 를 부모로 선택하고 다음 을 클릭합니다.
-
새 클래스 이름을 "FPSCharacter" 라 한 다음 생성 을 클릭합니다.
FPSCharacter 클래스를 생성했으니, Visual Studio 로 전환하여 새로 생성된 클래스에 코드를 추가하면 됩니다.
FPSCharacter.h
와FPSCharacter.cpp
가 열리며, 언리얼 엔진 에서는 새로운 클래스를 자동으로 컴파일하여 코드를 리로드해 줍니다.
캐릭터 클래스 확인
-
Solution Explorer 에서 FPSProject > Source > FPSProject 를 펼칩니다.
-
FPSCharacter.cpp
를 더블클릭 하여 FPSCharacter 클래스에 대한 구현 파일을 엽니다. -
BeginPlay()
함수에 다음 코드줄을 추가하여FPSCharacter
클래스가 사용중인지 확인합니다:if (GEngine) { // 5 초간 디버그 메시지를 표시합니다. (첫 인수인) -1 "Key" 값은 이 메시지를 업데이트 또는 새로고칠 필요가 없음을 나타냅니다. GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("We are using FPSCharacter.")); }
-
FPSCharacter.cpp
는 다음과 같은 모습일 것입니다:// 프로젝트 세팅의 설명 페이지에 저작권 문구를 채우세요. #include "FPSProject.h" #include "FPSCharacter.h" // 기본값을 설정합니다. AFPSCharacter::AFPSCharacter() { // 매 프레임 Tick() 호출을 위해 이 캐릭터를 설정합니다. 필요치 않은 경우 꺼 주면 퍼포먼스가 향상됩니다. PrimaryActorTick.bCanEverTick = true; } // 게임 시작시 또는 스폰시 호출됩니다. void AFPSCharacter::BeginPlay() { Super::BeginPlay(); if (GEngine) { // 5 초간 디버그 메시지를 표시합니다. (첫 인수인) -1 "Key" 값은 이 메시지를 업데이트 또는 새로고칠 필요가 없음을 나타냅니다. GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("We are using FPSCharacter.")); } } // 매 프레임 호출됩니다. void AFPSCharacter::Tick( float DeltaTime ) { Super::Tick( DeltaTime ); } // 입력을 위한 함수성 바인딩을 위해 호출됩니다. void AFPSCharacter::SetupPlayerInputComponent(class UInputComponent* InputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); }
-
Visual Studio 에서
FPSCharacter
CPP 파일을 저장합니다. -
Solution Explorer 에서 FPSProject 를 찾습니다.
-
지금까지는, 에디터의 빌드 버튼을 사용하여 프로젝트를 컴파일해 왔습니다. 이번 단계에서는, Visual Studio 의 빌드 기능을 사용해서 코드를 컴파일해 보도록 하겠습니다. Visual Studio 안에서 코드를 컴파일하려면, FPSProject 에 우클릭하고 Build 를 선택하면 프로젝트가 컴파일됩니다.
-
빌드가 끝난 후 언리얼 에디터를 열어 새로 컴파일된 FPSCharacter 클래스가 콘텐츠 브라우저 에 보이는지 확인합니다.
CPP FPS 캐릭터 클래스를 블루프린트로 확장
CPP FPS Character 클래스를 블루프린트로 확장하기 좋은 시점이 되었습니다. C++ 클래스를 블루프린트로 확장하는 방법 관련 자세한 정보는 C++ 와 블루프린트 문서를 참고하세요.
-
FPSCharacter
클래스에 우클릭하여 C++ Class Actions 메뉴를 엽니다. -
FPSCharacter 기반 블루프린트 클래스 생성 을 클릭하여 블루프린트 클래스 추가 대화창을 엽니다.
-
블루프린트 클래스 이름은 BP_FPSCharacter 라 하고 Blueprints 폴더를 선택한 뒤 블루프린트 클래스 생성 버튼을 클릭합니다.
-
이제, Blueprints 폴더 안에
BP_FPSCharacter
블루프린트 클래스가 새로 생성되어 있을 것입니다. -
꼭
BP_FPSCharacter
블루프린트를 저장하고 블루프린트 에디터를 닫으세요.
기본 폰 클래스 설정
새로 변경된 게임 모드를 블루프린트로 확장시키는 데 성공했으니, 이 단계에서는 프로젝트가
BP_FPSCharacter
를 기본 폰으로 사용하도록 설정해 주겠습니다.
-
편집 메뉴에서 프로젝트 세팅 을 클릭합니다.
-
프로젝트 세팅 탭 왼편의 프로젝트 제목줄 아래, 맵 & 모드 를 클릭합니다.
-
Default Pawn (기본 폰) 드롭다운 메뉴에서 BP_FPSCharacter 를 선택합니다.
-
프로젝트 세팅 메뉴를 닫습니다.
-
레벨 에디터 툴바의 플레이 버튼을 클릭합니다. 부포트 좌상단 구석 "Hello World, this is FPSGameMode!" 아래 "We are using FPSCharacter." 라는 문구가 빨간 색으로 5 초간 표시됩니다.
움직일 수 없다면, FPSCharacter 가 폰으로 제대로 사용되고 있는 것입니다! 새 캐릭터에 아직 무브먼트 컨트롤이 없는 상태이므로, 레벨에서 이동이 불가능할 것입니다.
-
다음 단계로 넘어가기 전, Esc 키를 누르거나 레벨 에디터의 중지 버튼을 눌러 에디터에서 플레이(PIE) 모드를 빠져나갑니다.