[이득우 언리얼 C++] 1. 개발 환경 설정

    💻 Code : https://github.com/tedison7/ArenaBattle

    들어가며

    이전에 유니티 엔진으로 개인프로젝트를 진행하며 공부를 하려고 했었다. 진행하다보니 현재 회사에서는 언리얼을 하고 있어서 언리얼의 기본을 더 다져야 한다는 생각이 들었다. 막연히 공식문서를 이것저것 읽어보기 보다 좀더 체계적으로 배우기 위해 책을 한권 구매하였다. 이득우의 언리얼 c++ 게임 개발의 정석 책을 구매하였고, 따라하면서 몇몇 내용들을 기록하고자 한다.

    엔진 설치 및 비주얼 스튜디오는 설치를 한 상태이다. 프로젝트 생성단계부터 시작해보자

    언리얼 프로젝트의 생성

    기본 프로젝트 생성

    책에서는 4.19버전으로 기록되어있으나 현재 최신버전인 4.27버전으로 프로젝트로 생성하였다.

    • 삼인칭 템플릿으로 선택
    • 시작용 콘텐츠 없음

    4.27 버전에서는 C++ 프로젝트로 생성할수 있으나 책 기준인 4.19 버전에서는 블루프린트/C++ 프로젝트를 선택하는 옵션이 없다. 따라서 나는 책과 동일하게 실습하기 위해 블루프린트 프로젝트로 생성하였다.

    • 언리얼 에디터의 레이아웃에 대한 설명은 생략

    프로젝트 폴더로 가보면 Config, Content, Intermediate, Saved폴더와 uproject 파일을 확인할 수 있다.

    • Config : 게임프로젝트의 설정 값을 보관하는 공간
    • Content : 게임 프로젝트에 사용하는 애셋을 관리하는 공간
    • Intermediate : 프로젝트 관리에 필요한 임시파일들을 저장하는 공간
    • Saved : 에디터 작업 중에 생성된 결과물을 저장하는 공간

    게임 프로젝트의 구동

    ArenaBattle.uproject 파일을 메모장으로 열게되면 게임프로젝트를 언리얼 에디터로 불러들이기 위한 정보가 저장되어있음을 확인 할 수 있다. 파일 포멧은 JSON 형태로 기록되어있다.

    {
        "FileVersion": 3,
        "EngineAssociation": "4.27",
        "Category": "",
        "Description": ""
    }

    C++ 프로젝트로 확장

    현재 버전인 4.27 버전에서는 C++프로젝트로 생성이 가능하지만 나는 블루프린트로 프로젝트를 생성하였다. 그래서 C++프로젝트로 확장하기 위해 다음과 같이 진행하였다.

    • 파일 > 새로운 C++ 클래스 메뉴를 선택
    • 부모클래스를 Actor로 선택, 클래스 이름을 Fountain으로 생성
    • 프로젝트의 전환이 끝나면 비주얼 스튜디오가 실행

    다시 탐색기에서 프로젝트 폴더로 가보면 추가된 폴더와 파일을 확인 할 수 있다.

    • Binaries : C++ 코드가 컴파일된 결과물을 저장하는 공간. 삭제해도 빌드할 때 마다 새로 생성
    • Source : C++ 소스 코드가 위치한 공간
    • ArenaBattle.sln : C++ 프로젝트를 관리하기 위한 비주얼 스튜디오의 솔루션 파일

    다시 ArenaBattle.uproject 파일을 열어서 내용을 확인해보자

    {
        "FileVersion": 3,
        "EngineAssociation": "4.27",
        "Category": "",
        "Description": "",
        "Modules": [
            {
                "Name": "ArenaBattle",
                "Type": "Runtime",
                "LoadingPhase": "Default",
                "AdditionalDependencies": [
                    "Engine"
                ]
            }
        ]
    }

    ArenaBattle 이름의 모듈 정보가 추가된 것을 확인 할 수 있다. 언리얼 에디터를 띄울 때 ArenaBattle이라는 이름의 C++ 모듈도 함께 로딩하라는 명령을 의미한다. 모듈의 이름은 UE4Editor-ArenaBattle.dll 이어야 한다.

    • 모듈 : C++코드를 컴파일한 결과물
    • 게임 모듈 : 게임 로직을 담은 모듈

    언리얼 C++ 개발 환경 설정

    언리얼 모듈의 빌드 설정

    사용자 정 다이얼로그에서 명령 탭의 표준 도구 모음에 있는 솔루션 구성 설정을 변경하여 구성 설정 메뉴의 글씨가 넉넉히 보일수 있도록 설정할 수 있다.

    솔루션 구성 설정에 있는 각 빌드 구성의 특징은 다음과 같다.

    • DebugGame : 자세한 디버깅을 위해 최적화가 안 된 결과물을 생성하는 빌드 구성
    • DebugGame Editor : DebugGame과 동일한 수준의 에디터용 DLL파일을 생성
    • Development : 중간 수준의 최적화와 디버깅도 가능한 결과물을 생성하는 구성
    • Development Editor : Development와 동일한 수준의 에디터용 DLL 파일을 생성
    • Shipping : 게임의 최종 배포를 위해 최적화된 코드를 만들어내는 구성

    비주얼 스튜디오의 환경 설정

    언리얼 프로젝트에서 컴파일 에러를 확인 할 때는 오류 목록창 보다 출력창을 이용하는 것이 효과적이다. 도구 > 옵션 > 프로젝트 및 솔루션 > 일반 카테고리에 있는 항상 오류 목록 표시 항목을 끈다.

    예제 프로젝트 준비

    예제 패키지 추가

    Infinity Blade: Grass Lands 패키지를 추가해보자. 마켓플레이스에서 무료로 구매하여 프로젝트 추가할 수 있다.

    예제 레벨의 제작

    애셋링크에서 애셋을 다운받아서 Resource\Chapter1\Book 폴더를 프로젝트의 Content 폴더 안에 복사하였다. 그리고 콘텐츠 브라우저에 추가됨을 확인하였다.

    파일 > 새 레벨 > Default 레벨 생성 이후 SM_SQUARE를 월드에 추가하였고 0,0,0으로 위치를 맞추었다.
    그리고 기본적으로 배치되어있는 Floor를 제거하였다. 다음 Light Source 액터의 모빌리티를 무버블로 변경하고, Sky Light 액터의 모빌리티도 무버블로 변경하였다. 플레이테스트를 한후 Book 폴더 하위에 Maps 폴더를 만들어 해당 폴더에 Step1 이름으로 레벨을 저장하였다.

    프로젝트 세팅의 맵&모드에서 Default Maps의 설정을 Step1으로 변경하여, 에디터 실행시 Step1 레벨이 자동으로 로딩되도록 설정하였다.

    요약

    • 엔진 설치
    • 비주얼 스튜디오 설치 및 설정
    • 예제 프로젝트 생성 및 설정
    반응형

    댓글

    Designed by JB FACTORY