동기화 필터(Sync Filter) 는 개발자가 언리얼 게임 싱크(UnrealGameSync, UGS) 로 커스터마이징 가능한 구문을 통해 클라이언트 워크스페이스를 업데이트하도록 지원합니다. 계속 읽어보면서 UGS 동기화 필터를 설정하는 방법에 대해 알아보세요.
유저 인터페이스
동기화 필터(Sync Filter) 메뉴에 액세스하려면 UGS 메인 창의 오른쪽 아래에 있는 옵션(Options) 드롭다운을 클릭한 후 동기화 필터(Sync Filter…) 를 클릭합니다.
유저 인터페이스 내에서 다음 옵션에 유의하세요.
| 엘리먼트 | 이름 | 설명 |
|---|---|---|
| 1 | 글로벌 워크스페이스 탭(Global Workspace Tab) | 이 탭의 세팅은 모든 워크스페이스에 적용되지만, 특정 워크스페이스가 상충하는 경우는 예외입니다. 이런 경우에는 해당 특정 워크스페이스가 우선합니다. |
| 2 | 현재 워크스페이스 탭(Current Workspace Tab) | 이 탭의 세팅은 글로벌 세팅과 결합됩니다. 상충하는 세팅이 있는 경우에는 해당 세팅이 글로벌 세팅을 오버라이드합니다. |
| 3 | 일반 세팅(General Settings) | 스트림의 모든 프로젝트 동기화(Sync all projects in stream) 는 스트림의 모든 콘텐츠를 동기화하고, 동기화된 프로젝트 모두 솔루션에 포함(Include all synced projects in solution) 은 UGS에서 이 워크스페이스에 대한 솔루션을 생성할 때 동기화된 모든 프로젝트(및 솔루션)를 포함합니다. |
| 4 | 동기화 카테고리 허용 목록(Sync Category Allowlist) | 여기에서 체크한 항목은 동기화하고 그 외 항목은 무시합니다. 예를 들어 '플랫폼 지원: PS4' 를 체크하면 PS4 플랫폼 파일을 동기화하고 '플랫폼 지원: XboxOne' 를 체크 해제하면 XboxOne 플랫폼 파일이 동기화되지 않습니다. |
| 5 | 커스텀 동기화 필터(Custom Sync Filters) | 위의 구문이나 '구문'(Syntax) 버튼 뒤에 있는 모달 대화창에 기재된 구문을 사용하여, 이 섹션에서 한 줄씩 단일 커스텀 필터를 추가할 수 있습니다. |
| 6 | 결합 필터(Combined Filters) | 이 버튼을 클릭하면 커스텀 필터, 허용 목록에 추가된 필터, 기본 제외된 필터(카테고리에서 체크 안 함) 및 일반 세팅을 포함하여 생성한 모든 필터에 대한 개요가 표시됩니다. 필터 목록의 내용을 정확하게 확인하려면 이 버튼을 사용합니다. |
커스텀 필터 구문
UnrealGameSync.ini 를 직접 편집하든 UGS UI를 사용해 편집하든, 커스텀 동기화 필터를 추가할 때 유의해야 할 구문이 몇 가지 있습니다.
퍼포스(Perforce) 스타일 와일드카드(한 줄에 하나)를 사용하여 스트림의 커스텀 뷰를 지정합니다.
-
기본적으로 모든 파일이 표시됩니다.
-
패턴과 일치하는 파일을 제외하려면 해당 파일 앞에 '-' 문자를 붙입니다(예: -/Engine/Documentation/...).
-
패턴은 어느 파일의 일부와도 일치할 수 있습니다(예: *.pdb). 또는 분기에 루트가 있을 수도 있습니다(예: /Engine/Binaries/.../*.pdb).
현재 워크스페이스의 뷰는 모든 워크스페이스에서 공유되는 뷰에 추가됩니다.
이러한 구문 규칙은 UGS UI 내에도 표시되어, 이 페이지를 다시 방문할 필요가 없습니다.
UnrealGameSync.ini
[언리얼 프로젝트 루트 디렉터리]\Build\UnrealGameSync.ini 에 위치하며 Perforce에 제출되는 프로젝트별 UnrealGameSync.ini 를 생성 및 편집하는 방법에 대한 빠른 설명은 프로젝트 커스터마이징하기를 참조하세요.
추가 레퍼런스 정보
일부 레퍼런스 항목으로는 다음과 같은 추가 사항이 있습니다.
동기화 단계
동기화 단계는 컴파일 단계가 뒤따르는지 여부와 관계없이 모든 동기화 작업 후에 실행됩니다. 이를 통해 커스텀 버전 파일의 동기화된 체인지리스트 정보를 업데이트할 수 있습니다.
[Sync]
+Step=(FileName="$(ProjectDir)\\Path\\To\\SyncStep.bat", Arguments="/arg1")
빌드 단계
[Build]
+Step=(UniqueId="d9610e2f-7f6f-4898-bc98-d39dd7053d75", Description="Launch Game", StatusText="Launching Game...", EstimatedDuration="5", Type="Other", FileName="$(ProjectDir)\\Build\\BatchFiles\\Launch.bat", Arguments="", bUseLogWindow="False", OrderIndex="5", bNormalSync="False", bScheduledSync="False", bShowAsTool="True")
빌드 또는 동기화 단계를 추가할 때 위의 구문과 함께 다음 어트리뷰트를 사용할 수 있습니다.
| 어트리뷰트 | 설명 |
|---|---|
| UniqueId | 무작위로 생성된 GUID입니다. |
| OrderIndex | 단계 목록의 순서에서 이 단계의 위치를 결정하는 오름차순 값입니다. |
| Description | UGS UI에 표시됩니다. |
| StatusText | 이 단계가 실행 중일 때 표시됩니다. |
| EstimatedDuration | 단계의 지속 시간을 분 단위로 지정하며, UGS UI의 프로그레스 바를 올바른 분량만큼 진행시키는 데 사용됩니다. |
| Type | 빌드 단계가 생성되면 컴파일(Compile) (디폴트), 쿡(Cook) 또는 기타(Other) 타입으로 설정되며, 타입에 따라 사용할 수 있는 어트리뷰트가 결정됩니다. 자세한 내용은 아래의 타입 표를 참조하세요. |
| bNormalSync | 단계를 일반 (사용자가 시작하는) 동기화별로 실행할지 여부를 결정하는 플래그를 설정합니다. |
| bScheduledSync | 단계를 예약된 동기화별로 실행할지 여부를 결정하는 플래그를 설정합니다. |
| bShowAsTool | UGS 상태 패널의 '기타 툴(More Tools)' 메뉴에서 단계를 툴로 표시할지 여부를 결정하는 플래그를 설정합니다. |
타입
| 어트리뷰트 | 설명 |
|---|---|
| Type - Compile |
|
| Type - Cook |
|
| Type - Other |
|
폴더 안전 삭제
다음 경로는 UGS에서 '워크스페이스 삭제(Clean Workspace)' 툴을 실행할 때 기본적으로 체크해도 안전합니다.
[Default]
+SafeToDeleteFolders=FolderName
+SafeToDeleteFolders=Path/To/FolderName
Zip 압축 바이너리 동기화 필터
다음은 사전 컴파일링된 바이너리를 사용하는 경우 동기화에서 제외되어야 하는 파일입니다.
[//UE4/Main/Samples/Games/ShooterGame/ShooterGame.uproject]
ZippedBinariesPath=//UE4/Dev-Binaries/++UE4+Main-Editor.zip
ZippedBinariesSyncFilter=-/FolderToFilter/...