자동화 툴(Automation Tool) 은 C#를 사용할 때 언리얼 엔진(UE) 관련 무인 프로세스를 스크립팅할 수 있는 호스트 프로그램 및 유틸리티 라이브러리 세트입니다. 내부적으로는 게임 빌드, 제작 및 실행, 자동화 테스트 실행, 빌드 팜에서 실행할 다른 작업 스크립팅 등 다양한 작업에 자동화 툴을 사용합니다.
자동화 툴의 소스 코드와 그곳에서 실행되는 다양한 스크립트는 Engine/Source/Programs/AutomationTool
에서 찾을 수 있습니다.
툴은 무료로 제공되지만, 제공 가능한 지원 수준에는 제한이 있습니다.
자동화 툴 작동 방식
자동화 프로젝트
자동화 툴을 실행하면 확장자가 .Automation.csproj
인 Visual Studio C# 프로젝트로 저장된 모든 자동화 프로젝트를 찾아 컴파일한 다음, 리플렉션을 사용하여 실행할 적절한 명령을 찾습니다. 이러한 명령은 BuildCommand
베이스 클래스에서 파생된 클래스로 구현되며 클래스 명으로 식별됩니다.
자세한 내용은 자동화 프로젝트 추가 및 명령 추가 방법을 참고하세요.
자동화 툴 실행
Windows의 Visual Studio 디버거 또는 Windows, Mac 및 Linux의 명령줄에서 명령을 실행할 수 있습니다.
디버거에서 명령 실행
Visual Studio의 디버거에서 자동화 툴을 실행하려면 다음을 수행합니다.
-
자동화 툴 프로젝트를 우클릭하고 컨텍스트 메뉴에서 프로퍼티(Properties) 를 선택합니다.
-
디버그(Debug) 탭을 선택하고 시작 옵션(Options) > 명령줄 실행인자(Command line arguments): 필드에 명령 이름을 입력합니다. 여기서는
SampleCommand
를 사용합니다. -
F5를 누르거나 Visual Studio 툴바에서 시작(Start) 버튼을 클릭하기 전에 스크립트에 중단점을 설정합니다.
명령줄에서 명령 실행(Windows)
명령줄에서 자동화 툴을 실행하려면 다음을 수행합니다.
-
명령 프롬프트 창을 엽니다.
-
작업 디렉터리를
Engine/Build/BatchFiles
로 변경합니다. -
다음을 명령줄에 입력합니다.
RunUAT.bat SampleCommand
터미널에서 명령 실행(Mac/Linux)
터미널에서 자동화 툴을 실행하려면 다음을 수행합니다.
-
터미널을 엽니다.
-
작업 디렉터리를
Engine/Build/BatchFiles
로 변경합니다. -
다음을 명령줄에 입력합니다.
./RunUAT.sh SampleCommand
명령줄 구문
자동화 툴 명령줄의 일반적인 구문은 다음과 같습니다.
RunUAT.bat COMMAND_1 [-ARG_1 -ARG_2...] COMMAND_2 [-ARG_3 -ARG_4...] ...
여기서 두 명령은 순차적으로 실행됩니다. -ARG_1
과 -ARG_2
는 COMMAND_1
에 전달되고, -ARG_3
과 -ARG_4
는 COMMAND_2
로 전달됩니다.
전역 옵션:
옵션 | 설명 |
---|---|
-Help |
일반적으로 자동화 툴에 대한 도움말 및 옵션을 표시하거나 또는 명령 이름 뒤에 지정된 경우 해당 명령에 대한 도움말을 표시합니다. |
-List |
사용할 수 있는 모든 자동화 툴 명령 목록을 표시합니다. |
-P4 |
퍼포스(Perforce) 지원을 사용하도록 설정합니다. |
-Submit |
자동화된 프로세스의 파일 제출을 허용합니다. |
-NoCompile |
자동화 툴이 시작 시 .Automation.csproj 파일을 컴파일하는 것을 방지합니다. |
설정하면 다음의 환경 변수를 사용하여 빌드 머신에 대한 퍼포스 지원을 구성합니다. VARNAME=VALUE
구문의 자동화 툴 명령줄을 통해 설정하거나 현재 세션에서 상속할 수 있습니다.
환경 변수 | 설명 |
---|---|
uebp_PORT |
퍼포스 서버 및 포트(예: perforce:1666 )입니다. |
uebp_CLIENT_ROOT |
현재 클라이언트의 로컬 루트 디렉터리 경로(예: D:\P4 )입니다. |
uebp_CL |
동기화된 현재 체인지리스트입니다. |
uebp_CodeCL |
동기화된 현재 코드 체인지리스트입니다. uebp_CL 로 지정된 현재 체인지리스트보다 이전일 수 있습니다. |
uebp_USER |
퍼포스 사용자입니다. |
uebp_CLIENT |
퍼포스에 액세스하는 데 사용한 클라이언트 이름입니다. |
uebp_BuildRoot_P4 |
현재 분기 또는 스트림의 루트 경로(예: //UE4/Release-4.22 )입니다. |