언리얼 게임 싱크(UnrealGameSync, UGS) 에서 겪는 많은 문제를 해결하기 위해, 제대로 작동해야 할 옵션에서 무엇이 잘못되었는지에 관한 자세한 정보가 툴팁으로 제공됩니다.
기본적인 문제 해결
에픽이나 IT 부서에 언리얼 게임 싱크에 관해 문의할 때는 설정에 관한 기본 정보를 제공해야 합니다. 이를 통해 더 정확하고 효과적으로 지원받을 수 있습니다. 다음은 몇 가지 예입니다.
-
UGS를 사용하지 않고도 문제를 재현할 수 있는지 확인합니다. UGS 관련 문제처럼 보이지만 그렇지 않은 경우가 종종 있습니다. 예시는 다음과 같습니다.
-
충돌이 발생했다면 UGS를 사용하지 않고 에디터를 열어 봅니다.
-
Perforce 동기화에 문제가 있으면 UGS를 거치지 않고 Perforce만 사용해 봅니다.
-
-
UGS가 관련되지 않아도 문제가 계속 발생하면 문제가 실질적으로 발생한 영역을 담당하는 팀이나 부서에 문의하여 정확한 지원을 받을 수 있습니다.
-
UGS의 최신 버전을 사용하고 있는지 확인합니다. 버전 정보는 진단(Diagnostics) 메뉴(메인 페이지 > 옵션(Options) > 진단(Diagnostics)... ) 또는
C:\Users[사용자]\AppData\Local\UnrealGameSync\
의UnrealGameSync.log
에 나와 있습니다. 최신 버전을 사용하지 않는 것은 메타데이터나 UGS 업데이트 관련 문제의 원인일 수 있습니다. -
발생한 문제가 UGS 관련 문제임이 확인되면 먼저 다음의 일반적인 문제들을 참조해주세요.
-
컴파일 오류 문제 해결
많은 컴파일 오류는 간단한 문제 해결 단계를 거쳐 해결할 수 있습니다.
-
컴파일의 어느 단계에서 실패했는지 확인합니다. 예를 들어 UnrealHeaderTool, ShaderCompileWorker 등이 있습니다.
-
프로젝트 개요(Project Overview) 영역에서 더 보기(More…) > 워크스페이스 삭제(Clean Workspace) 를 선택하여 언리얼 게임 싱크에서 워크스페이스를 삭제합니다. 그 후에 동기화 또는 컴파일링을 다시 시도합니다.
-
UE5.sln
을 삭제하고GenerateProjectFiles.bat
(Windows) 또는GenerateProjectFiles.command
(Mac)를 수동으로 실행한 후 동기화 또는 컴파일링을 다시 시도합니다. -
Visual Studio나 Xcode를 사용하여 수동으로 컴파일링을 시도합니다.
-
좋음으로 표시된 체인지리스트(초록색 동그라미 표시)를 동기화 또는 컴파일링 시도합니다.
-
실패가 계속되는 경우 옵션(Options) > 점증식 빌드 사용 False(Use Incremental Builds = False) 를 선택합니다.
-
리컴파일링을 시도합니다.
-
-
사전 컴파일링 에디터 동기화(Sync Precompiled Editor) 가 비활성화되었는지 확인합니다.
특정 스트림에서만 사용 가능합니다.
-
Perforce에서 워크스페이스가 올바르게 환경설정되어 있는지 확인합니다.
이것은 많은 상황에서 유용한 방법이지만 워크스페이스에 추가 파일이 있으면 적용되지 않습니다. 워크스페이스가 너무 복잡해져 관리하기 어려운 경우에는 IT 부서에 문의하여 도움을 받거나 워크스페이스를 다시 만들고 데이터를 재동기화하는 것이 좋습니다.
특정 문제
사전 컴파일링된 바이너리를 탐지할 수 없습니다.
-
PCB를 탐지하는 데 시간이 걸릴 수 있습니다. UGS는 먼저 모든 CL을 로드한 후 사용 가능한 PCB를 확인하기 위해 CL을 상호 참조합니다. 연결 속도가 느리면 이 작업을 처리하는 데 시간이 걸리므로 잠시 기다립니다.
-
그래도 문제가 계속되면, 바이너리가 저장된 스트림에 권한 문제가 있거나 빌드 상태 문제로 인해 제대로 생성/업로드되지 않아서 생기는 문제일 수 있습니다. Perforce 관리자에게 문의하여 빌드에서 사전 컴파일링된 바이너리를 성공적으로 업로드했는지, 자신에게 액세스 권한이 있는지를 확인합니다.
-
사전 컴파일링된 바이너리 동기화(Sync Precompiled Binaries) 에 마우스 커서를 가져갈 때 표시되는 툴팁에서도 이 문제를 디버깅하는 데 유용한 정보를 확인할 수 있습니다.
연결할 수 없습니다.
-
이것은 일반적으로 Perforce 또는 로컬 네트워크 문제입니다. 2019.2 버전에서 확인된 문제이므로 다른 버전을 사용하여 시작하기를 권장합니다. 때로는 P4V를 사용하여 Perforce 서버에 다시 로그인하면 문제가 해결될 수도 있습니다.
-
최초 설정 중에
Failed to sync application
오류가 발생하고 로그에Couldn't find last changelist
가 포함되어 있는 경우에는 Depot 경로 가 Perforce 관리자가 제공한 올바른 Perforce의 위치로 설정되어 있는지 확인합니다. 또한 경로의 형식이 적절한지도 확인합니다. 경로 형식은 다음과 같이 슬래시 2개로 시작되어 Perforce Depot임을 나타내고 종료 슬래시가 없습니다.//depot/path/to/UnrealGameSync/bin
그런 다음 연결(Connect) 을 다시 클릭합니다. -
모든 것이 제대로 설정되었고 Perforce 버전이 2019.2가 아니라면, Perforce 관리자에게 문의하여 자신에게 Depot 경로에 대한 권한이 있는지 확인해야 합니다.
경로가 너무 길어서 동기화 또는 빌드에 실패했습니다.
대부분의 Windows 버전에는 260자 경로 제한이 있고 UGS도 이 제한을 피할 수 없습니다. 실제로 UGS가 260자 이상의 경로를 탐지하는 경우 프로젝트 동기화가 완전히 차단됩니다. 현재로서는 UGS에서 이러한 확인을 비활성화할 방법이 없습니다.
이 문제를 해결하려면 워크스페이스를 루트에서 가까운 폴더로 설정해야 합니다(예: D:/prj/workspace/
). 또한 파일명을 최대한 짧게 만드는 파일 명명 구조를 적용해 봅니다.
이 문제는 또한 프로젝트를 .uproject
파일 대신 .uprojectdirs
파일로 동기화하도록 설정한 경우에 드물게 발생할 수 있습니다. 이 경우 UGS 프로젝트를 .uproject
파일로 설정함으로써 해결할 수 있습니다.
-
세팅(Settings) 을 선택합니다.
-
사용 중인 워크스페이스의 이름(Name) 과 경로(Path) 를 모두 탐색(Browse) 하도록 선택합니다.
-
워크스페이스 이름:
-
워크스페이스 경로:
-
-
설정 튜토리얼에서처럼
.uprojectdirs
를 선택하는 대신 스트림 내에서.uproject
파일을 선택합니다. -
동기화를 다시 시도합니다.
UGS가 자동 업데이트되지 않습니다
-
사례 1 : 이는 일반적으로 머신에서 파일 경합이 일어났기 때문입니다. 이 문제를 해결하려면 UGS를 닫고 실행 중인 UGS 프로세스가 없는지 확인한 후, 일반적으로 업데이트를 방해하는 경합 파일이 있는
[AppData]/Local/UnrealGameSync/Latest/
를 삭제합니다.이 폴더 삭제에 실패하면, 어떤 파일에서 경합이 발생했으며 어떤 프로세스가 이 파일을 사용하고 있는지에 대한 정보가 표시됩니다. 해당 프로세스를 중지할 수 없는 경우, 재부팅하면 문제가 해결되고 폴더를 삭제할 수 있습니다.
그런 다음 UnrealGameSyncLauncher를 사용하여 최신 업데이트를 다운로드할 수 있습니다.
UGS 설정 방법에 따라 먼저 시작 애플리케이션에서 언리얼 게임 싱크를 제거한 다음, 재시작 후 폴더를 삭제하고 시작 애플리케이션에 UGS를 다시 추가한 후에 재시작해야 할 수도 있습니다.
-
사례 2 : 사용자가 적절하게 연결되지 않았거나 적절한 권한이 없어서 UGS의 업데이트된 바이너리가 있는 Perforce 경로를 볼 수 없는 경우, UGS는 무기한으로 멈추고 다음 단계로 진행하지 않습니다. 이런 경우 연결 세팅에서 Depot 경로 를 업데이트하거나 Perforce 담당자에게 문의하여 파일에 대한 올바른 액세스 권한을 얻어야 합니다.
"can not find files"와 관련된 랜덤 빌드 오류
이것은 일반적으로 Perforce 관련 오류로서 UGS 관련 오류가 아닐 수 있습니다. 워크스페이스에 문제가 있다면 우선 전체 엔진 디렉터리를 강제로 동기화해 봅니다. 모두 실패한다면 새 워크스페이스를 생성합니다.
이러한 문제는 동기화 필터가 제대로 환경설정되지 않았을 경우에도 발생합니다. Win64 폴더와 같은 빌드의 중요한 요소가 필터링으로 제외되었거나 동기화 필터가 적용되는 파일에 대한 종속성이 잘못 도입된 경우입니다. 자세한 내용은 UGS 동기화 필터 설정 문서를 참고하세요.
에디터의 UGS 사본이 쿠킹에 실패합니다.
UGS를 통해 배포된 사전 컴파일링 바이너리 버전으로 쿠킹이나 패키징을 시도할 때 ERROR:Failed to find command BuildCookRun
과 비슷한 오류 메시지가 표시되면 이 작업에 소스 폴더가 필요한 것이 원인일 수 있습니다.
현재로서는 실제로 소스 코드를 빌드하지 않는 경우에도 UGS가 사용하는 사전 컴파일링된 바이너리를 통해 쿠킹 및 패키징을 하려면 소스 디렉터리가 필요합니다. 이 작업이 워크플로의 일부인 경우에는 동기화 필터를 확인하여 소스 디렉터리를 직접 사용하지 않더라도 제외하지 않도록 해야 합니다.
컴파일러 제한: 내부 힙 제한에 도달했습니다.
컴파일링할 때 다음과 같은 오류가 발생할 수 있습니다.
Fatal Error C1060: Compiler is out of Heap Space
Fatal Error C1076: compiler limit: internal heap limit reached; use /Zm to specify a higher limit
Error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm123' or greater
이럴 때는 다음과 같은 해결 방법을 사용합니다.
-
단기적인 해결 방법 : 머신을 재시작하여 메모리 캐시를 지우면 일시적으로 컴파일에 대한 차단을 해제할 수 있습니다.
-
장기적인 해결 방법 : IT 부서에 문의해 문제를 자세히 설명합니다. 어떤 경우에는 제어 패널(Control Panel) 에서 최대 페이지 파일의 크기를 늘리면 문제가 개선될 수 있습니다. 하지만 대부분의 스튜디오에서는 IT 부서에서 이 작업을 담당합니다.
(Windows) 게임 또는 에디터를 실행해도 아무 일도 일어나지 않거나, 에디터가 곧바로 충돌하면서 이상한 오류가 발생합니다.
이런 문제는 대부분 언리얼을 실행하도록 환경설정한 적이 없는 머신에서 발생합니다. 새로운 컴퓨터를 사용하게 되어 모든 것을 동기화하였고 다른 모든 기능이 제대로 작동하지만 시작할 때 아무 일도 일어나지 않는다면 다음 위치에 있는 UEPrereqSetup_x64.exe
애플리케이션을 실행해 봅니다.
<Path to Workspace>/Engine/Extras/Redist/en-us
이렇게 하면 이전에 언리얼이 실행되지 않은 머신에 언리얼을 실행하는 데 필요한 필수 구성 요소가 설치됩니다.
UGS를 실행할 때 충돌이 일어납니다.
언리얼 게임 싱크는 P4 명령줄 툴을 사용하여 Perforce에 업데이트가 있는지 쿼리합니다. 명령줄 툴의 미설치가 실행 시 충돌의 가장 일반적인 원인입니다.
이 문제를 해결하려면 다음에 따릅니다.
- Perforce 클라이언트 인스톨러를 재실행합니다.
- 설치할 때 명령줄 툴이 포함되어야 합니다.
P4 명령줄 툴은 다음과 같이 확인합니다.
- 명령 창을 엽니다.
- p4를 입력합니다.
-
Enter를 누릅니다.
- P4 명령줄 툴이 설치되었으면 일련의 도움말 명령이 출력됩니다.
- P4 명령줄 툴이 설치되지 않았으면 오류 메시지
File not found
가 출력됩니다.
프로젝트 파일 생성 시 오류가 발생합니다.
프로젝트 파일을 생성할 때 다음과 같은 오류가 발생합니다.
Setting up Unreal Engine 4 project files...
UnrealBuildTool Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
at System.String.Format(String format, Object[] args)
…
ERROR: UnrealBuildTool was unable to generate project files. Press any key to continue . . . Failed to generate project files (exit code 1).
일반적으로 이러한 오류는 Visual Studio 컴포넌트가 누락되어 발생합니다.
모든 Visual Studio 컴포넌트를 Visual Studio 구성 문서의 지침에 따라 설치합니다.
또한 다음과 같은 오류가 발생할 수 있습니다.
error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.6.2" were not found.
이 경우에는 Microsoft SDK 및 개발자 팩을 설치합니다.
오류: System.ComponentModel.Win32Exception
UGS를 사용해 빌드할 때 다음과 같은 오류가 나타날 수 있습니다.
ubt> Using Visual Studio 2017 14.16.27023 toolchain (C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023) and Windows 10.0.17763.0 SDK (C:\Program Files (x86)\Windows Kits\10).
ubt> ERROR: System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
이러한 오류의 원인은 .NET Framework 및 다른 개발자 패키지를 설치한 후 컴퓨터 재시작 전에 동기화를 시도한 것입니다.
이 문제를 해결하려면 컴퓨터를 재시작하고 프로젝트 파일을 다시 생성한 후 다시 빌드합니다.
오류: System.UnauthorizedAccessException
일반적으로 UGS 버전을 일정 기간 업데이트하지 않은 경우에 나타나는 오류로 다음과 같이 표시됩니다.
UnrealGameSync has crashed.
System.UnauthorizedAccessException: Access to the path <path> is denied.
이 문제를 해결하려면 다음에 따릅니다.
-
C:[user]\AppData\Local\UnrealGameSync
로 이동합니다. -
UnrealGameSync.ini를 삭제합니다.
이 파일을 제거하면 다음 사용자 데이터가 삭제됩니다.
- 저장된 빌드 환경설정.
- 에디터 명령줄 실행인자.
- 즐겨찾기에 등록된 오픈 프로젝트.
- 사전 컴파일링 에디터와 점증식 빌드 선택.
.../.uproject를 포함하는 Perforce 워크스페이스를 찾을 수 없습니다. 연결 세팅을 확인하세요.
처음 UGS를 설정할 때 로컬 파일 대화창을 사용해 프로젝트를 추가했는데 위와 같은 오류가 발생하면 다음을 따릅니다.
-
동일한 파일을 프로젝트 열기(Open Project) > 워크스페이스(Workspace) > 신규(New…) 대화창에서 추가해 봅니다.
-
이 작업을 수행할 수 없다면 Perforce 액세스 권한에 문제가 있는 것입니다. 워크스페이스가 대상으로 하는 스트림 및 파일에 대한 올바른 액세스 권한이 있는지 Perforce 관리자에게 확인해야 합니다.
서버에 연결하지 못했습니다.
인식할 수 없는 포트 번호를 사용하여 Perforce 서버에 연결하면 다음 오류가 반환됩니다.
Perforce client error: Connect to server failed; check $P4PORT
이 문제를 해결하려면 다음에 따릅니다.
-
명령/터미널 창을 엽니다.
-
p4 set P4PORT=<_local P4 port from admin_ >
을 입력합니다. -
Enter 를 누릅니다.
-
UGS를 닫은 후 재실행합니다.
마찬가지로 알 수 없는 사용자로 연결하면 다음과 같은 오류가 표시됩니다.
Access for user 'USERNAME' has not been enabled by 'p4 protect'
이 문제를 해결하려면 명령 창을 열고 다음과 같이 합니다.
-
p4 set P4USER=<perforce.username>
을 입력합니다. -
Enter 를 누릅니다.
-
UGS를 닫은 후 재실행합니다.
System.Io.FileNotFoundException: Ionic.Zip.Reduced
C:\Users[User.name]\AppData\Local\UnrealGameSync\Latest
에 Ionic.Zip.Reduced.dll
이 포함되었는지 확인합니다.
이 파일이 없으면 워크스페이스에서 누락된 파일이 있을 수 있으므로 워크스페이스의 Engine\Binaries
폴더를 강제 동기화해야 합니다.
이 파일이 있으면 바이러스 백신에 의해 격리되지 않았는지 확인합니다. 바이러스 백신의 단계에 따라 파일을 '신뢰함'으로 설정합니다.
방법을 모르는 경우 다음에 따릅니다.
-
작업 관리자에서 UGS를 종료시킵니다.
-
C:\Users[User.name]\AppData\Local\UnrealGameSync\Latest
의 콘텐츠를 삭제합니다. -
UGS를 재시작합니다.
-
UGS가 열리면 파일이 이제 존재하는지 확인합니다.
UGS가 올바른 프록시 서버를 사용하고 있지 않습니다.
진단(Diagnostics) 메뉴(메인 창의 오른쪽 아래 옵션(Options) -> 진단(Diagnostics) 의 목록 맨 아래)를 열었을 때 진단 메뉴 상에 프록시 서버를 사용하고 있지만 계속 동기화에 실패하고 있다고 표시되는 경우 다음 절차에 따릅니다.
-
UGS에서 새 프로젝트를 엽니다.
-
디폴트 Perforce 서버 세팅 사용(Using default Perforce server settings) 을 찾습니다.
-
변경(Change) 을 클릭합니다.
-
디폴트 연결 세팅 사용(Use default connection settings) 을 비활성화합니다.
-
필드에 프록시 서버와 사용자 이름을 입력합니다.
-
확인(Ok) 을 클릭합니다.
-
이제 UGS 진단을 열면 올바른 서버 설정이 표시됩니다.