언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

2.1 - 새 캐릭터 만들기

언리얼 엔진

이번 단계에서는 엔진의 Character 베이스 클래스를 사용하여 새 캐릭터를 만들어 보겠습니다. (Pawn 클래스에서 파생된) Character 클래스에는 걷기, 달리기, 점프와 같은 이족보행 동작이 기본 내장되어 있습니다.

캐릭터 클래스 추가

Visual Studio 솔루션에 *.h 와 *.cpp 파일을 수동 추가할 수는 있지만, C++ 클래스 마법사를 사용해서 프로젝트에 새 클래스를 추가하는 것도 좋은 방법입니다. C++ 클래스 마법사를 사용하면, 엔진에서는 언리얼 전용 매크로를 알아서 구성해 주는 헤더와 소스 템플릿이 생성됩니다.

  1. 파일 메뉴에서 새 C++ 클래스... 를 선택하여 새 부모 클래스를 선택합니다.

    SelectNewCPPClass.png

  2. 부모 클래스 선택 메뉴가 열립니다. 스크롤해 내려가 Character 를 부모로 선택하고 다음 을 클릭합니다.

    ChooseCharacterClass.png

  3. 새 클래스 이름을 "FPSCharacter" 라 한 다음 생성 을 클릭합니다.

    MakeFPSCharacterClass.png

    FPSCharacter 클래스를 생성했으니, Visual Studio 로 전환하여 새로 생성된 클래스에 코드를 추가하면 됩니다. FPSCharacter.hFPSCharacter.cpp 가 열리며, 언리얼 엔진 에서는 새로운 클래스를 자동으로 컴파일하여 코드를 리로드해 줍니다.

캐릭터 클래스 확인

  1. Solution Explorer 에서 FPSProject > Source > FPSProject 를 펼칩니다.

    ExpandedSolutionExplorer.png

  2. FPSCharacter.cpp더블클릭 하여 FPSCharacter 클래스에 대한 구현 파일을 엽니다.

  3. BeginPlay() 함수에 다음 코드줄을 추가하여 FPSCharacter 클래스가 사용중인지 확인합니다:

    if (GEngine)
    {
        // 5 초간 디버그 메시지를 표시합니다. (첫 인수인) -1 "Key" 값은 이 메시지를 업데이트 또는 새로고칠 필요가 없음을 나타냅니다.
        GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Red, TEXT("We are using FPSCharacter."));
    }
  4. 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);
    
    }
  5. Visual Studio 에서 FPSCharacter CPP 파일을 저장합니다.

  6. Solution Explorer 에서 FPSProject 를 찾습니다.

  7. 지금까지는, 에디터의 빌드 버튼을 사용하여 프로젝트를 컴파일해 왔습니다. 이번 단계에서는, Visual Studio 의 빌드 기능을 사용해서 코드를 컴파일해 보도록 하겠습니다. Visual Studio 안에서 코드를 컴파일하려면, FPSProject 에 우클릭하고 Build 를 선택하면 프로젝트가 컴파일됩니다.

    BuildProject.png

  8. 빌드가 끝난 후 언리얼 에디터를 열어 새로 컴파일된 FPSCharacter 클래스가 콘텐츠 브라우저 에 보이는지 확인합니다.

    FPSCharacterContentBrowser.png

CPP FPS 캐릭터 클래스를 블루프린트로 확장

CPP FPS Character 클래스를 블루프린트로 확장하기 좋은 시점이 되었습니다. C++ 클래스를 블루프린트로 확장하는 방법 관련 자세한 정보는 C++ 와 블루프린트 문서를 참고하세요.

  1. FPSCharacter 클래스에 우클릭하여 C++ Class Actions 메뉴를 엽니다.

    CPPClassActionsMenu.png

  2. FPSCharacter 기반 블루프린트 클래스 생성 을 클릭하여 블루프린트 클래스 추가 대화창을 엽니다.

    CreateDerivedBPClass.png

  3. 블루프린트 클래스 이름은 BP_FPSCharacter 라 하고 Blueprints 폴더를 선택한 뒤 블루프린트 클래스 생성 버튼을 클릭합니다.

    AddBPClass.png

  4. 이제, Blueprints 폴더 안에 BP_FPSCharacter 블루프린트 클래스가 새로 생성되어 있을 것입니다.

    AddedBPClass.png

  5. BP_FPSCharacter 블루프린트를 저장하고 블루프린트 에디터를 닫으세요.

기본 폰 클래스 설정

새로 변경된 게임 모드를 블루프린트로 확장시키는 데 성공했으니, 이 단계에서는 프로젝트가 BP_FPSCharacter 를 기본 폰으로 사용하도록 설정해 주겠습니다.

  1. 편집 메뉴에서 프로젝트 세팅 을 클릭합니다.

  2. 프로젝트 세팅 탭 왼편의 프로젝트 제목줄 아래, 맵 & 모드 를 클릭합니다.

  3. Default Pawn (기본 폰) 드롭다운 메뉴에서 BP_FPSCharacter 를 선택합니다.

    SettingFPSCharacter.png

  4. 프로젝트 세팅 메뉴를 닫습니다.

  5. 레벨 에디터 툴바의 플레이 버튼을 클릭합니다. 부포트 좌상단 구석 "Hello World, this is FPSGameMode!" 아래 "We are using FPSCharacter." 라는 문구가 빨간 색으로 5 초간 표시됩니다.

    VerifyingFPSCharacterResult.png

    움직일 수 없다면, FPSCharacter 가 폰으로 제대로 사용되고 있는 것입니다! 새 캐릭터에 아직 무브먼트 컨트롤이 없는 상태이므로, 레벨에서 이동이 불가능할 것입니다.

  6. 다음 단계로 넘어가기 전, Esc 키를 누르거나 레벨 에디터의 중지 버튼을 눌러 에디터에서 플레이(PIE) 모드를 빠져나갑니다.