선행 작업 :

1. 에픽게임즈 가입

2. 깃허브 가입

3. PC에 Git 설치

4. 최소 300기가 이상의 여유 공간 확보 (SSD 권장)

5. 비주얼 스튜디오 설치 (2019 이상 권장)

 

 

언리얼 엔진을 본격적으로 사용하다보면, (프로그래머 입장에서) 불편한점이 슬슬 나타난다.

특히, 엔진파트의 내용을 추적해야할때, 에픽 런쳐에서 받는 기본 언리얼 엔진을 사용하면 엔진파트 추적이 불가능해서 추적이 막히는 경우가 종종 발생한다.

이런 경우를 막기 위해, 언리얼 엔진의 코드를 받아, 직접 빌드하여 설치하는 방법을 간단히 설명하고자 한다.

 

 

 

 

기본적인 내용은 https://docs.unrealengine.com/5.0/ko/downloading-unreal-engine-source-code/ 을 참고하시기 바랍니다.

 

1. 우선, 언리얼 엔진 사이트에서의 가이드를 따라 깃허브 연동까지 진행합니다.

https://www.unrealengine.com/ue-on-github

 

GitHub 내 언리얼 엔진

GitHub에서 언리얼 엔진 소스 코드에 액세스하는 방법을 알아보세요

www.unrealengine.com

 

 

2. 깃허브 -> 에픽게임즈 -> 언리얼 엔진 레포지토리로 이동

 

 

3. 원하는 폴더로 이동, git 명령어

git clone https://github.com/EpicGames/UnrealEngine.git

입력

 

여기서 약 30기가 가량을 다운받습니다.

 

 

 

4. git을 받은 폴더로 이동하여, Setup.bat 실행

 

5. 파일 다운로드...

이번에도 역시 무지막지한 용량을 받습니다.

 

 

6. GenerateProjectFiles.bat 실행

 

실행 후 UE5.sin 파일 생성되는것 확인

 

7. VS 실행 후 솔루션 빌드 

솔루션 빌드를 통해 언리얼 인사이트 등 각종 추가 모듈도 설치합니다.

 

저는 빌드할때 빌드 세팅을 "DebugGame Editor"로 하고 수행했는데, 필요하다면 다른것으로 바꾸셔도 됩니다.

다만, 밑에서도 추가로 설명하지만 해당 솔루션 구성이 프로젝트 솔루션 구성과 동일해야합니다.

 

대신, 메인 빌드 프로젝트가 UE5로 놓여져있는지는 확인하셔도 나쁘진 않을듯.

 

시작 프로젝트 설정은 다음과 같이 할 수 있습니다.

 

8. 빌드를 기다립니다...

컴퓨터 사양에 따라 다르나, i7 9700K,  램 32기가, M2 SSD 쓰는 환경에서 빌드 약 3시간 걸렸습니다.

 

9. 완료 확인

완료가 되면 약 300기가 가량의 대형 폴더가 생성됩니다..

 

10. 사용하기

해당 엔진 코드를 적용할 프로젝트로 가서 우클릭 -> Switch Unreal Engine Version

다음과 같이 Source Build at ... 으로 되는 경로가 있으면 성공한것입니다.

 

해당 버전 선택후 빌드하시면 프로젝트명.sin 파일이 생성됩니다.

 

이제부터는 프로젝트를 열때 에픽 런쳐가 아닌 프로젝트 파일을 열어서 빌드하여 수행하시면 됩니다.

 

 

11. 주의사항

엔진 빌드시 사용한 솔루션 구성과 프로젝트의 솔루션 구성이 동일해야합니다.

동일하지 않다면, 기껏 빌드한 엔진을 다시 빌드해야하는 불상사가 발생할 수 있으니 주의.

 

(해당 문서는 https://swifter22.tistory.com/17, UE4 Docu, 2BBear 님의 글을 참고하였습니다.)

 

 

언리얼엔진을 거의 처음 접해보면서, 유니티에서 처럼 폴더로 스크립트 관리를 하고자 하니...

처음부터 벽에 막히기 시작했다.

 

콘텐츠 브라우저의 C++ 클래스 항목을 가서 폴더를 만들겠다고 우클릭을 하면 생성할 수 없다고 나온다.

응 안돼 안돼

 

이는, 사실 언리얼에서 소스코드 등을 "모듈" 로 관리하기 때문에 발생하는 문제로, 관리의 용이성 / 실수 방지를 위해서.... 인지는 모르겠으나, 아무튼 에디터에서만으로는 바로 생성이 불가능하다.

 

해서 찾아본 결과.

 

수정할게 좀 많다.

 

일단 모듈을 하나 추가하겠다! 고 한다면...

 

1. Source 폴더 하위에 원하는 모듈명의 폴더를 추가.

PMG라는 폴더가 방금 추가한 폴더이다.

2. 모듈명 폴더 아래에 '모듈명.Build.cs' , '모듈명.cpp', '모듈명.h' 3가지 파일을 추가해준다.

반드시 모듈 폴더와 이름이 동일해야한다는점 잊지말자.

이런식으로.

이 파일들은 에디터에다 '이런 모듈이 있습니다' 하고 인지 시켜주는 목적으로, 설정을 안해주면 빌드할때 빼먹기만 하면 다행이고, 그냥 에러가 터져버린다.

 

잘 설정해주자.

 

1) Build.cs

솔직히 아직 Build.cs 파일의 특성을 덜 이해했습니다.

근데 명칭만 바꾸고 가져다 써도 되긴 하니, 일단 쓰시고 나중에 꼭 이해하시는거로. 나도 꼭 해놓고

 

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;

public class PMG : ModuleRules
{
	public PMG(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine"});
		PrivateDependencyModuleNames.AddRange(new string[] { });
		
	}
}

이렇게만 해두면 일단 에러는 안난다.

 

2) 모듈명.h

얘는 (당장은) 정말 별거 없다.

모든 엔진의 정보가 담긴 Engine.h 헤더를 추가해주거나, 속성만 요약된 CoreMinimal.h 헤더를 추가해주면 된다.

상황에 따라 다르겠지만, 그걸 알 정도면 이런 글은 안 보고 있을테니 그냥 CoreMinimal.h 헤더 추가해주자.

 

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.

#pragma once
#include "CoreMinimal.h"

 

3) 모듈명.cpp

이친구는...

일단 당연히 자신의 헤더파일을 추가해주고, 그 다음 모듈 매니저를 추가해줘야 한다.

그래야 얘가 어떤 모듈타입인지 인식을 하고, 어떤 이름의 모듈인지 에디터에서 알 수 있게 된다.

 

뭐 레퍼런스 문서에 보면 필요에 따라 (혹은 최초 모듈은) IMPLEMENT_PRIMARY_GAME_MODULE( ) 을 사용하여 모듈을 등록해주라고 하는데, 이건 사용할 일이 생기면 추가로 설명하는게 더 나을것같다.

 

#include "PMG.h"
#include "Modules/ModuleManager.h"

IMPLEMENT_MODULE(FDefaultModuleImpl, PMG);

(앞은 모듈 매니저의 기본 모듈 인터페이스, 뒤는 추가할 모듈 명)

 

일단 이렇게 하면 파일 생성해줄것은 끝났다.

 

이게 끝이냐? 에이 설마요.

 

3. Source 폴더의 .Target.cs 파일들을 열어봅시다.

모듈 타겟 설정해주고... 하다가 맨 마지막에 모듈 이름을 추가해주는 항목이 있습니다.

네. 추가해주시면 됩니다.

 

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class FindRandomMapTarget : TargetRules
{
	public FindRandomMapTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.V2;
		ExtraModuleNames.Add("FindRandomMap");
		ExtraModuleNames.Add("PMG");		//추가
	}
}

 

두 파일 모두에 추가해주시면 됩니다.

 

4. 프로젝트 루트의 '.uproject' 

해당 파일을 열면, (실행 말고 코드를 보면...)

JSON 양식으로 되어있는 내용물이 나옵니다.

양식에 맞게 항목을 추가해줍시다.

 

{
	"FileVersion": 3,
	"EngineAssociation": "4.24",
	"Category": "",
	"Description": "",
	"Modules": [
		{
			"Name": "FindRandomMap",
			"Type": "Runtime",
			"LoadingPhase": "Default"
		},
		{
			"Name": "PMG",
			"Type": "Runtime"			
		}
	]

 

일단 이러면 파일 세팅은 끝났습니다.

 

5. Visual Studio에서 솔루션 빌드 1회

성공이 떠야 됩니다.

뭔가 잘못되어있다면 바로 에러밭을 마주칠 수 있으니 주의하시길.

 

6. .uproject 파일에서 Generate

해당 기능을 수행해주면 VS 프로젝트에서 모듈이 폴더로 추가됩니다.

 

자 여기까지 정상적으로 수행되었다면...

에디터로 돌아와서 C++ 클래스 추가를 수행합니다.

 

 

그럼 이런식으로 내가 추가한 모듈이 보이면 성공입니다.

 

 

 

 

Extra :

 

사실 이렇게 해도 여전히 모듈이 에디터에 안뜨는 경우가 있다.

없어!

이 경우, 침착하게 더미 액터 등을 추가해보면...

그런데 짜잔

뭔가 실패했다고 경고가 뜬다.

 

요 상태에서 VS로 들어가면...

 

 

이런 경고가 발생한다.

 

자 이건 또 뭐냐... 그러게요

별거 없다. 결론만 따지면 재 빌드 돌리면 된다.

 

침착하게 에디터를 끄고, 재 빌드를 해주자.

(저는 분명 건든게 없습니다)

성공한다.

 

이후 다시 에디터를 켜주면 

드디어 추가 모듈이 생성되었다.

 

이제부터 모듈 작업을 하시면 됩니다. 네.

 

 

+ Recent posts