팀과 함께 언리얼 엔진(UE) 프로젝트의 소스 빌드를 작업할 때, 일부 팀원에게 소스에서 언리얼 엔진을 빌드하고 실행하는 데 필요한 소프트웨어나 지식이 없을 수 있습니다. 이러한 경우 언리얼 엔진 바이너리를 빌드하고 이를 설치된 빌드 로 팀에 배포할 수 있습니다. 그러면 에픽게임즈 런처에서 배포하는 것과 비슷한 패키지가 생성됩니다.
설치된 빌드 생성 방법에 대한 더 일반적인 지침은 설치된 빌드 레퍼런스를 참조하세요. 이 페이지에서는 Windows 를 사용하는 개발자를 위한 추가 정보와 단계를 살펴봅니다.
설치된 빌드 생성 방법에 대한 더 일반적인 지침은 설치된 빌드 레퍼런스를 참조하세요. 이 페이지에서는 macOS 를 사용하는 개발자를 위한 추가 정보와 단계를 살펴봅니다.
설치된 빌드 생성 방법에 대한 더 일반적인 지침은 설치된 빌드 레퍼런스를 참조하세요. 이 페이지에서는 Linux 를 사용하는 개발자를 위한 추가 정보와 단계를 살펴봅니다.
전제조건
설치된 빌드를 만들기 전에 다음 전제조건을 확인해야 합니다.
-
Windows 10 SDK용 Windows 디버깅 툴 컴포넌트(Windows 10 전용 - 아래 참조).
-
모든 MacOS 개발 요구 사항과 호환되는 Xcode 설치.
-
Linux에서 UE를 사용하려면 적절한 OS 컴포넌트와 라이브러리가 있어야 합니다.
-
Linux에서 컴파일하려면 소스 코드에 Linux 개행 문자가 있어야 합니다.
권장 사양 하드웨어
빌드용으로 프로세서 코어 및 스레드 수가 많은 컴퓨터를 사용하는 것을 권장합니다. UE는 단일 코어에서도 빌드할 수 있지만, 멀티 코어 프로세서를 사용하면 빌드 시간이 크게 단축됩니다. 권장 사양 하드웨어에 대한 자세한 내용은 권장 사양 하드웨어 및 소프트웨어 사양을 참조하세요.
Windows 10 SDK(Windows 10 사용자 전용)
Windows 10에서는 Windows 10 SDK의 Windows 디버깅 도구 컴포넌트를 설치해야 합니다. 이 컴포넌트를 설치하면 빌드 프로세스에서 심볼을 제거하며 결과 패키지 크기를 최적화하는 데 사용하는 PDBCopy.exe 를 사용할 수 있습니다.
Windows 10 SDK를 아직 설치하지 않았다면 다음 단계를 따릅니다.
-
설치할 기능을 선택 하라는 대화 상자가 나타나면 Windows용 디버깅 도구(Debugging Tools for Windows) 가 선택되어 있는지 확인한 다음 설치를 진행합니다.
-
설치를 진행합니다.
Windows 10 SDK는 구성되어 있지만 Windows용 디버깅 도구는 없다면, 다음 단계를 따릅니다.
-
프로그램 추가/제거(Add or Remove Programs) 를 엽니다.
-
사용할 수 있는 프로그램 목록에서 Windows 소프트웨어 개발 키트 설치를 찾습니다. 수정(Modify) 을 클릭합니다.
-
표시되는 옵션 목록에서 변경(Change) 에 체크하고 다음(Next) 을 클릭합니다.
-
설치할 기능을 선택 하라는 대화 상자가 나타나면 Windows용 디버깅 도구 에 체크한 다음, 변경 을 클릭하여 설치를 진행합니다.
설치된 빌드 만들기
Windows에서 설치된 빌드를 생성하는 절차는 다음과 같습니다.
-
언리얼 엔진 프로젝트 파일을 재생성합니다.
- 프로젝트 파일을 재생성할 때 오류 메시지가 표시되면 Windows DotNet 6.0 런타임이 설치되어 있는지 다시 확인합니다.
-
RunUAT.bat을 사용하여 설치된 빌드를 생성합니다. 다음은 Windows용 설치된 빌드를 생성하기 위한 BuildGraph 명령 예시입니다.명령줄
RunUAT.bat BuildGraph -script=Engine/Build/InstalledEngineBuild.xml -target="Make Installed Build Win64" -nosign -set:GameConfigurations=Development;Shipping -set:WithWin64=true -set:WithAndroid=true -set:WithDDC=false -set:WithLinux=false -set:WithLinuxArm64=false -set:WithIOS=false -set:WithTVOS=false -set:WithMac=false -clean사용할 수 있는 모든 플랫폼을 추가할지 여부를 지정해야 합니다. 여기서 언급하지 않은 추가 플랫폼이 소스 코드에 있다면, 프로젝트에 맞게
-Set:With[Platform]=true또는-Set:With[Platform]=false를 추가합니다. 여기서 [Platform] 자리에 추가된 플랫폼 이름을 입력하면 됩니다.위의 예시에서 사용한 파라미터에 대한 자세한 내용은 다음과 같습니다.
파라미터 필수 또는 선택 사항 설명 -target="Make Installed Build Win64"필수 BuildGraph가 특정 연산을 실행하도록 지시합니다. 이 종속성 그래프는 script="Engine/Build/InstalledEngineBuild.xml"에 설명되어 있으며, 요구 사항에 더 잘 맞는 다른 옵션도 있습니다. 하지만 이 문서의 목적상 이 예시에서는 사용자가 언리얼 엔진 런처 버전에서 받을 수 있는 빌드와 일치하는 빌드를 타깃으로 삼습니다. -set With[Platform]=true또는-set With[Platform]=false필수 특정 플랫폼에 대한 지원을 설치된 빌드에 추가할지 여부를 지정합니다. 여기서 [Platform]의 자리에 활성화하거나 비활성화하려는 플랫폼의 이름을 입력하면 됩니다. 소스 코드가 있는 모든 플랫폼에 이 파라미터를 추가해야 합니다. 어떤 플랫폼을 활성화하거나 비활성화할지에 대한 자세한 내용은 아래의 필요한 플랫폼 섹션을 참조하세요. -set:GameConfigurations=Development;Shipping필수 다양한 버전의 에디터에 대한 플래그입니다. Development 및 Shipping 을 포함하는 것을 권장합니다. -set WithClient=falseand-set WithServer=false선택 사항 네트워크 멀티플레이어 프로젝트에 대한 클라이언트 및 서버 빌드를 생성할지 여부를 지정합니다. 디폴트는 false입니다. -set WithDDC=false선택 사항 파생 데이터 캐시 지원을 포함하는 빌드를 생성할지 여부를 지정합니다. 디폴트는 false입니다. -clean권장 사양 프로젝트를 새로 리컴파일합니다. '기타 컴파일 오류(Other Compilation Error)' 메시지가 표시되면 이 파라미터를 제거합니다. '기타 컴파일 오류' 메시지가 표시되면
-clean파라미터를 제거하고 다시 시도합니다. 왜냐하면 Linux에서 이 명령어에 대해 알려진 문제가 있기 때문입니다. -
셰이더 컴파일 워커(Shader Compile Worker)를 빌드합니다.
Engine\Build\BatchFiles\Build.bat ShaderCompileWorker Win64 Development
배포용 피처 팩(Feature Packs)과 템플릿(Templates), 엔진(Engine)이 있는 Windows 디렉터리에 빌드가 나타납니다.
MacOS에서 설치된 빌드를 생성하려면 다음 단계를 따릅니다.
-
언리얼 엔진 소스 디렉터리를 열고 터미널에서
GenerateProjectFiles.command를 실행합니다.
-
RunUAT.sh를 사용하여 설치된 빌드를 생성합니다.
명령줄
RunUAT.sh BuildGraph -script=Engine/Build/InstalledEngineBuild.xml -target="Make Installed Build Mac" -nosign** **-set:WithWin64=false** -set:WithAndroid=true** -set:WithDDC=false -set:WithLinux=false -set:WithLinuxArm64=false **-set:WithTVOS=false -set:WithIOS=true -set:WithMac=true** -clean위의 예시에서 사용한 파라미터에 대한 자세한 내용은 다음과 같습니다.
파라미터 필수 또는 선택 사항 설명 -target="Make Installed Build Mac"필수 BuildGraph가 특정 연산을 실행하도록 지시합니다. 이 종속성 그래프는 script="Engine/Build/InstalledEngineBuild.xml"에 설명되어 있으며, 요구 사항에 더 잘 맞는 다른 옵션도 있습니다. 하지만 이 문서의 목적상 이 예시에서는 사용자가 언리얼 엔진 런처 버전에서 받을 수 있는 빌드와 일치하는 빌드를 타깃으로 삼습니다. -set With[Platform]=true또는-set With[Platform]=false필수 특정 플랫폼에 대한 지원을 설치된 빌드에 추가할지 여부를 지정합니다. 여기서 [Platform]의 자리에 활성화하거나 비활성화하려는 플랫폼의 이름을 입력하면 됩니다. 소스 코드가 있는 모든 플랫폼에 이 파라미터를 추가해야 합니다. 어떤 플랫폼을 활성화하거나 비활성화할지에 대한 자세한 내용은 아래의 필요한 플랫폼 섹션을 참조하세요. -set:GameConfigurations=Development;Shipping필수 다양한 버전의 에디터에 대한 플래그입니다. Development 및 Shipping 을 포함하는 것을 권장합니다. -set WithClient=falseand-set WithServer=false선택 사항 네트워크 멀티플레이어 프로젝트에 대한 클라이언트 및 서버 빌드를 생성할지 여부를 지정합니다. 디폴트는 false입니다. -set WithDDC=false선택 사항 파생 데이터 캐시 지원을 포함하는 빌드를 생성할지 여부를 지정합니다. 디폴트는 false입니다. -clean권장 사양 프로젝트를 새로 리컴파일합니다. '기타 컴파일 오류(Other Compilation Error)' 메시지가 표시되면 이 파라미터를 제거합니다. 빌드하면 안 되는 모든 플랫폼을 지정해야 합니다. '기타 컴파일 오류' 메시지가 표시되면
-clean파라미터를 제거하고 다시 시도합니다. 왜냐하면 Linux에서 이 명령어에 대해 알려진 문제가 있기 때문입니다. -
셰이더 컴파일 워커(Shader Compile Worker)를 빌드합니다.
명령줄
/Engine/Build/BatchFiles/Mac/Build.sh ShaderCompileWorker MacDevelopment
이 섹션의 단계를 따라 진행하다가 개행 문자 오류나 권한 오류가 발생하면, 아래의 Linux 개행 문자 및 권한 수정 방법에 나온 단계에 따라 개행 문자를 수정한 다음 다시 시도합니다.
Linux에서 설치된 빌드를 생성하는 절차는 다음과 같습니다.
-
Setup.sh를 실행하여 필요한 바이너리 패키지를 얻고 툴 체인 환경설정을 실행합니다. -
GenerateProjectFiles.sh를 실행하여 IDE의 프로젝트 파일을 생성합니다.파일에서
permission denied오류가 발생하면, 이전 섹션을 참조하여 개행 문자를 수정합니다. 추가 파일에 대해chmod명령을 실행해야 할 수도 있습니다. 그런 다음GenerateProjectFiles.sh를 다시 실행합니다. -
RunUAT.sh를 사용하여 설치된 빌드를 생성합니다. 다음은 Linux용 설치된 빌드를 생성하기 위한 BuildGraph 명령 예시입니다.명령줄
/RunUAT.sh BuildGraph -script=Engine/Build/InstalledEngineBuild.xml -target="Make Installed Build Linux" -nosign **-set:GameConfigurations=Development;Shipping **-set:WithWin64=false** -set:WithAndroid=true** -set:WithDDC=false **-set:WithLinux=true** -set:WithLinuxArm64=false -set:WithTVOS=false -set:WithMac=false -clean위의 예시에서 사용한 파라미터에 대한 자세한 내용은 다음과 같습니다.
파라미터 필수 또는 선택 사항 설명 -target="Make Installed Build Linux"필수 BuildGraph가 특정 연산을 실행하도록 지시합니다. 이 종속성 그래프는 script="Engine/Build/InstalledEngineBuild.xml"에 설명되어 있으며, 요구 사항에 더 잘 맞는 다른 옵션도 있습니다. 하지만 이 문서의 목적상 이 예시에서는 사용자가 언리얼 엔진 런처 버전에서 받을 수 있는 빌드와 일치하는 빌드를 타깃으로 삼습니다. -set With[Platform]=true또는-set With[Platform]=false필수 특정 플랫폼에 대한 지원을 설치된 빌드에 추가할지 여부를 지정합니다. 여기서 [Platform]의 자리에 활성화하거나 비활성화하려는 플랫폼의 이름을 입력하면 됩니다. 소스 코드가 있는 모든 플랫폼에 이 파라미터를 추가해야 합니다. 어떤 플랫폼을 활성화하거나 비활성화할지에 대한 자세한 내용은 아래의 필요한 플랫폼 섹션을 참조하세요. -set:GameConfigurations=Development;Shipping필수 다양한 버전의 에디터에 대한 플래그입니다. Development 및 Shipping 을 포함하는 것을 권장합니다. -set WithClient=falseand-set WithServer=false선택 사항 네트워크 멀티플레이어 프로젝트에 대한 클라이언트 및 서버 빌드를 생성할지 여부를 지정합니다. 디폴트는 false입니다. -set WithDDC=false선택 사항 파생 데이터 캐시 지원을 포함하는 빌드를 생성할지 여부를 지정합니다. 디폴트는 false입니다. -clean권장 사양 프로젝트를 새로 리컴파일합니다. '기타 컴파일 오류(Other Compilation Error)' 메시지가 표시되면 이 파라미터를 제거합니다. 빌드하면 안 되는 모든 플랫폼을 지정해야 합니다. '기타 컴파일 오류' 메시지가 표시되면
-clean파라미터를 제거하고 다시 시도합니다. 왜냐하면 Linux에서 이 명령어에 대해 알려진 문제가 있기 때문입니다. -
Build.sh를 사용하여 셰이더 컴파일 워커(Shader Compile Worker) 를 빌드합니다. 다음은 셰이더 컴파일 워커를 빌드하는 명령의 예시입니다.명령줄
/Engine/Build/BatchFiles/Linux/Build.sh ShaderCompileWorker Linux Development
이제 다른 머신이나 도커 이미지에 복사하여 Linux에서 실행할 수 있는 언리얼 에디터 빌드가 LocalBuilds/Engine/Linux 에 생성되었습니다.
필요한 플랫폼
Windows에서 설치된 빌드를 생성할 때는 -With[Platform] 파라미터를 사용하여 다음과 같은 플랫폼을 활성화해야 합니다.
| 플랫폼 | 파라미터 | 설명 |
|---|---|---|
| Android | -set WithAndroid=true |
HMI 프로젝트 대부분의 타깃 플랫폼인 Android에서 퍼블리싱을 지원하기 위해 필요합니다. |
| Windows 64비트 | -set WithWin64=true |
Windows에서 에디터 빌드를 지원하기 위해 필요합니다. |
언리얼 에디터 실행에도 HMI 프로젝트 패키징에도 필요하지 않으므로 다른 모든 플랫폼은 비활성화합니다.
macOS에서 설치된 빌드를 생성할 때는 -With[Platform] 파라미터를 사용하여 다음과 같은 플랫폼을 활성화해야 합니다.
| 플랫폼 | 파라미터 | 설명 |
|---|---|---|
| MacOS | -set WithMac=true |
Windows에서 에디터 빌드를 지원하기 위해 필요합니다. |
| Android | -set WithAndroid=true |
HMI 프로젝트 대부분의 타깃 플랫폼인 Android에서 퍼블리싱을 지원하기 위해 필요합니다. |
| iOS | -set WithIOS=true |
지원해야 할 수도 있는 iOS에서 퍼블리싱을 지원하기 위해 필요합니다. |
| tvOS | -set WithtvOS=false |
HMI 프로젝트에 대해서는 tvOS가 지원되지 않으므로 비활성화해야 합니다. |
언리얼 에디터 실행에도 HMI 프로젝트 패키징에도 필요하지 않으므로 다른 모든 플랫폼은 비활성화합니다.
Linux에서 설치된 빌드를 생성할 때는 -With[Platform] 파라미터를 사용하여 다음과 같은 플랫폼을 활성화해야 합니다.
| 플랫폼 | 파라미터 | 설명 |
|---|---|---|
| Android | -set WithAndroid=true |
HMI 프로젝트 대부분의 타깃 플랫폼인 Android에서 퍼블리싱을 지원하기 위해 필요합니다. |
| Linux | -set WithLinux=true |
Linux에서 에디터 빌드를 지원하기 위해 필요합니다. |
| Linux ARM64 | -set WithLinuxArm64=true |
ARM64 Linux 디바이스를 지원하려는 경우 필요합니다. |
Linux 개행 문자 및 권한 수정 방법
소스 컨트롤에서 소스 코드를 가져오는 방법에 따라 코드의 개행 문자 가 변경될 수 있습니다. Windows는 캐리지 리턴 라인 피드(Carriage Return Line Feed, CR LF)를 사용하지만, Mac과 Linux는 라인 피드(Line Feed, LF)를 사용합니다.
개행 문자에 대한 자세한 내용은 Microsoft의 인코딩 및 개행 문자에 대한 문서를 참조하세요.
Windows 개행 문자는 Linux와 호환되지 않습니다. 따라서 Linux에서 컴파일할 때 오류가 발생할 수 있습니다. 개행 문자 오류가 발생하면, 다음 단계에 따라 수정합니다.
-
개행 문자를 수정하려면 명령줄을 열고
find명령으로 언리얼 엔진 디렉터리에서 확장자가.sh인 모든 파일을 찾은 다음 각 파일에 대해chmod명령을 사용하여 해당 파일들을 실행파일로 만듭니다. 그 예시는 다음과 같습니다.명령줄
find C:/Epic Games/UE-5.3/Source -type f -iname "*.sh" -exec chmod +x {} \;이 명령의 파라미터는 다음과 같습니다.
파라미터 설명 -type f 일반 파일만 찾습니다. 이 파라미터를 사용하면 디렉토리, 심링크, 명명된 파이프 및 소켓, /dev에 있는 특수 파일은 건너뜁니다. -iname 이름에서 대소문자를 무시합니다. "*.sh" find명령에 확장자가.sh인 파일만 찾으라고 지시합니다.-exec chmod +x {} 찾은 각 파일에 chmod명령을 수행하여 각 파일을 실행파일로 만듭니다.\; 명령의 끝을 나타냅니다. -
.sh확장자를 사용하지 않는 파일을 실행파일로 만들려면 디렉터리를 언리얼 엔진 설치 디렉터리로 변경한 다음 chmod 명령을 실행합니다.chmod +x Engine/Binaries/ThirdParty/Mono/Linux/bin/mono chmod +x Engine/Binaries/ThirdParty/Mono/Linux/bin/csc chmod +x Engine/Binaries/ThirdParty/Mono/Linux/bin/xbuild chmod +x Engine/Binaries/ThirdParty/Mono/Linux/bin/mcs chmod +x Engine/Binaries/Linux/dump_syms chmod +x Engine/Binaries/Linux/BreakpadSymbolEncoder chmod +x Engine/Binaries/Linux/UnrealCEFSubProcess chmod +x Engine/Binaries/Linux/UnrealVersionSelector-Linux-Shipping chmod +x Engine/Source/ThirdParty/Intel/ISPC/bin/Linux/ispc
설치된 빌드 실행파일 테스트
설치된 빌드는 LocalBuilds/Engine/Linux/Engine/Binaries/Win64 아래의 LocalBuilds 폴더에 나타납니다. Windows 운영 체제에서는 UnrealEditor.exe 애플리케이션 파일이 언리얼 에디터의 주요 실행파일입니다. 이 실행파일을 실행하여 빌드를 테스트합니다.
처음으로 설치된 빌드를 실행한다면 방화벽 권한을 요청하는 메시지가 표시됩니다. 모든 기능을 사용하려면 방화벽 권한을 허가하는 것이 좋습니다.
빌드를 아카이브 보관하고 배포하려면 설치된 빌드를 소스 컨트롤 저장소의 최상위 디렉터리에 FeaturePacks, Templates 및 Engine 디렉터리와 함께 배치합니다.
셰이더 컴파일 중 'ShaderCompileWorker 실행이 불가능합니다'라는 메시지가 표시되거나 크래시가 발생하면 셰이더 컴파일 워커가 아직 빌드되지 않은 것입니다. 위의 설치된 빌드 만들기 워크플로의 마지막 단계로 돌아갑니다. 셰이더 컴파일러 워커를 별도로 빌드하므로 에디터를 빌드할 때마다 셰이더 컴파일러 워커를 리빌드하지 않아도 됩니다.
설치된 빌드는 LocalBuilds/Engine/Mac/Engine/Binaries/Mac 에 나타납니다. MacOS 운영 체제에서는 UEEditor 애플리케이션 파일이 언리얼 에디터의 주요 실행파일입니다. 터미널 쉘에서 이 실행파일을 실행하여 빌드를 테스트합니다.
빌드를 아카이브 보관하고 배포하려면 설치된 빌드를 소스 컨트롤 저장소의 최상위 디렉터리에 FeaturePacks, Templates 및 Engine 디렉터리와 함께 배치합니다.
설치된 빌드는 LocalBuilds/Engine/Linux/Engine/Binaries/Linux 아래의 LocalBuilds 폴더에 나타납니다. Linux 운영 체제에서는 UnrealEditor 애플리케이션 파일이 언리얼 에디터의 주요 실행파일입니다. 터미널 쉘에서 이 실행파일을 실행하여 빌드를 테스트합니다.
빌드를 아카이브 보관하고 배포하려면 설치된 빌드를 소스 컨트롤 저장소의 최상위 디렉터리에 FeaturePacks, Templates 및 Engine 디렉터리와 함께 배치합니다.