본문 바로가기

프로그래밍/Unreal

[UE4] 언리얼 엔진 빌드

빌드툴 설치

빌드시 언리얼 4.19 이하 버전과 vs2017을 사용하는 경우 문제가 발생한다. (4.20에서 해결될 듯...)
아래위치에 디버거툴이 필요한데, vs2017의 최신 윈도우10 sdk에서는 해당 툴이 제외되어 있다.

 

윈도우10 sdk  별도 다운로드.
https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk

 

iso 파일 받아서 전체는 필요없고, iso 파일내 아래 디버거툴을 설치하면 된다. 

.\Installers\X64_Debuggers_And_Tools-x64.en-us.msi

 

추가 : sdk 가 설치되어 있으면 아래와 같은 방식으로도 설치 가능

설정 > 앱 > 앱 및 기능 > Windows Software Development Kit > 수정 > Change > Debugging Tools for Windows 체크

 

설치위치는 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\pdbcopy.exe

 

설치위치도 언리얼 스크립트에 설정된 위치와 다르기에 아래 폴더 생성해 주고 그안에 pdbcopy.exe 를 복사한다.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\AppxPackage

 

추가 : 특정 버전 이후에는 pdbcopy.exe 복사 불필요.
엔진 소스 중  WinPlatform.Automation.cs 에서 pdbcopy.exe를 찾게 되며, 특정 소스부터는 sdk 폴더도 검색
헌데 어느 버전부터 수정된 내용인지 모르겠으니 구버전 사용 시 해당 소스 확인 필요.

수정된 검색 위치

각sdk/Debuggers/x64
Program Files (x86)/MSBuild/Microsoft/VisualStudio/v12.0/AppxPackage
Program Files (x86) /MSBuild/Microsoft/VisualStudio/v14.0/AppxPackage



 

 

자동빌드 스크립트

 

위치 : ./Engine/Build/BatchFiles/RunUAT.bat

 

 

빌드 스크립트 실행

./RunUAT.bat BuildGraph \
    -target="Make Installed Build Win64" \
    -script="Engine/Build/InstalledEngineBuild.xml" \
    -set:HostPlatformOnly=true \
    -set:WithDDC=false \
    -set:SignExecutables=false \
    -clean

 

옵션목록 : 아래 값은 미 설정 시 기본값

-set:HostPlatformOnly=false
-set:WithWin64=true
-set:WithWin32=true
-set:WithMac=true
-set:WithAndroid=true
-set:WithIOS=true
-set:WithTVOS=true
-set:WithLinux=true
-set:WithHTML5=true
-set:WithPS4=false
-set:WithXboxOne=false
-set:WithDDC=false
-set:WithFullDebugInfo=false
-set:SignExecutables=false
-set:AnalyticsTypeOverride=ID
-set:GameConfiguration=Development;Shipping

 

 

 

 

 

설정

 

설정파일 : ./Engine/Build/InstalledEngineBuild.xml

 

기본으로 설정된 $(RootDir) 은 현재 엔진 소스의 루트디렉토리이고, 설치는 루트/LocalBuilds/ 폴더에 파일이 생성된다. 설치될 로컬 디렉토리를 변경하기 위해서는 LocalInstalledDir 프로퍼티 값을 수정해 준다.

<Property Name="LocalInstalledDir" Value="$(RootDir_)/LocalBuilds/Engine"/>

 

설치할 로컬 디렉토리를 명령줄에서 입력받아 적용하려면 option을 추가해주고, 해당 옵션을 사용하도록 수정한다.

<Option Name="OutputDirectory" DefaultValue="$(RootDir)/LocalBuilds/Engine" Description="directory"/>
<Property Name="LocalInstalledDir" Value="$(OutputDirectory)"/>

 

option 을 추가하면 RunUAT.bat 실행시 명령줄에서 -set 명령으로 옵션값을 지정할 수 있다.

-set:OutputDirectory="C:/Engine" 

 

 

기타 설정은 명령줄에 포함한 타겟(-target:"Make Installed Build Win64") 을 찾아 해당 타겟에 맞게 빌드가 이루어진다.
Make Installed Build Win64 노드를 살펴보면 각 플랫폼별 빌드 설정이 정의되어 있음을 알수 있다.

 

 

 

서버 타겟 추가

 

InstalledEngineBuild.xml 에서 "Target Platforms Win64" 에이전트아래 Compile UE4Game Win64 를 찾는다.

 

아래 서버 항목을 추가해준다.

<Compile Target="UE4Server" Platform="Win64" Configuration="Development" Tag="#UE4Game Win64" Arguments="-precompile -nodebuginfo"/>

<Compile Target="UE4Server" Platform="Win64" Configuration="Shipping" Tag="#UE4Game Win64" Arguments="-precompile -nodebuginfo"/>

 

 

<Tag Files="Engine/Intermediate/Build/Win64/UE4Server/Inc/...;Engine/Plugins/.../Intermediate/Build/Win64/UE4Server/Inc/..." With="#UE4Game Win64 Includes"/>

 

 

 

설치후 launcher에서 사용가능하도록 하기 위한 식별자 설정
레지스트리에 추가 : 아래 위치에 원하는 식별값을 추가한다.
해당 위치 아래에 원하는 이름으로 스트링 값 추가, 이름은 원하는데로 값은 위 빌드한 엔진 위치를 지정

HKEY_CURRENT_USER\\SOFTWARE\\Epic Games\UnrealEngine\Builds

.uproject 파일에서 우클릭해 Switch Unreal Engine Version.. 을 선택하면 목록해 위에 빌드한 엔진이 보인다.

 

 

 

 

'프로그래밍 > Unreal' 카테고리의 다른 글

[UE4] 이미지 파일 동적으로 로드하기  (0) 2018.07.05
[UE4] Dedicated Server  (0) 2018.05.31
[UE4] Using Static Library  (0) 2018.03.16
[UE4] VR 컨트롤러 IK  (0) 2018.01.24
[UE4] 관람자 화면  (0) 2018.01.04
[UE4] 동적 텍스처  (0) 2017.12.18
[UE4] 디버그 로그 출력  (0) 2017.11.13
[UE4] 유리 매터리얼  (0) 2017.10.15
[UE4] 레벨 스트리밍  (0) 2017.10.15
[UE4] UI 관련 내용  (0) 2017.09.26