05-03 07:38
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[Unreal Engine] Xcode에서 소스 빌드하기 본문

CG & Video Games/Unreal Engine

[Unreal Engine] Xcode에서 소스 빌드하기

cinema4dr12 2014. 4. 30. 17:34

by Geol Choi | 


최근 Unreal Engine 4.1이 릴리즈 되었다. Unreal Engine4(이하 UE4)의 소스 코드는 Mac OS와 Windows 모두 지원하는데, 이번 글에서는 Mac OS의 Xcode에서 소스 빌드하는 방법에 대해 알아보도록 하겠다.

Github로부터 UE4를 다운로드 하였다면 다음과 같이 4개의 압축파일을 볼 수 있을 것이다:

  • UnrealEngine-4.1.0-release.zip

  • Required_1of3.zip

  • Required_2of3.zip

  • Required_3of3.zip


참고로 Required_3of3.zip은 주로 써드파티에 대한 라이브러리들로써 옵션 사항이다 (없어도 빌드는 가능하다.)

이 글 작성 시 필자의 Xcode 버전은 5.1.1이다. 이하 사용자가 버전 5 이상의 Xcode가 시스템에 설치되어 있다고 가정하고 이 글을 진행하도록 하겠다. 참고로 Xcode는 Mac App Store를 통해 무료로 다운로드가 가능하다.

압축해제 및 소스파일 정리

우선 자신의 프로젝트를 관리하는 적당한 위치에 UnrealEngine-4.1.0-release.zip의 압축을 해제한다. 이해를 돕기 위해 다음 그림과 같은 경로에 압축을 해제하였다:


[그림 1.] UnrealEngine-4.1.0-release.zip의 압축 해제.


Engine이라는 이름의 폴더와 기타 여러 파일들을 볼 수 있을 것이다. 이제 Required_1of3.zip 파일을 적당한 곳(일단 프로젝트 폴더가 아닌 다른 곳)에 압축을 해제한다. 압축을 해제하면 Engine이라는 이름의 폴더가 생성되는데, 이는 UnrealEngine-4.1.0-release.zip을 압축해제한 곳과 동일한 이름의 폴더이다.

Required_1of3.zip 파일 해제한 Engine 폴더 내 파일들을 UnrealEngine-4.1.0-release.zip을 압축해제한 Engine 폴더 내 파일들에 덮어씌워야 하는데, Mac 유저들은 알다시피 파일 이동 시 Mac은 "파일 덮어씌우기"에 대한 기본 옵션을 묻지 않는다("중단" 또는 "대치"만 묻는다).

만약 아무 생각없이 "대치" 옵션을 선택하면 원본 내 폴더에 없는 파일들이 추가되는 것이 아니라 폴더 자체가 바뀌어 버린다. 즉 UnrealEngine-4.1.0-release.zip을 압축해제한 Engine 폴더 내 파일들은 모두 삭제되고 Required_1of3.zip 압축해제 한 폴더 내 파일들만 남게 된다. 


[그림 2.] Engine 폴더 덮어씌우기.


[그림 2.]와 같이 alt를 클릭하고 마우스 드래그를 하면 Engine 폴더의 파일들의 덮어씌우기 옵션이 나온다.

[그림 3.] 파일 복사에 대한 옵션.


"최신으로 유지"를 선택하면 원본 폴더 내 파일들에 존재하는 파일들에 대해서는 덮어쓰기를, 원본 폴더 내 존재하지 않는 파일들에 대해서는 파일 복사가 실행된다.

이제 Required_2of3.zip과 Required_3of3.zip에 대해서도 동일한 방법으로 압축해제 + 폴더 덮어씌우기를 실행한다.

이로써 폴더 파일 정리는 모두 완료되었다.

Xcode 프로젝트 파일 생성하기

프로젝트 폴더 내 파일들 중에 GenerateProjectFiles.command 파일을 볼 수 있을 것이다. Windows에서의 batch 파일과 같은 역할을 하는 것인데, 단순히 명령들을 순서대로 실행하기 위한 명령어 집합이라고 생각하면 된다. 더블클릭을 하면 command 배치 파일이 실행된다.

만약 프로세스가 거부될 경우, Unix 파일 시스템의 권한 문제로 인한 것인데, 이를 해결하기 위한 방법은 다음과 같다:

터미널을 실행하여 해당 폴더가 있는 곳으로 이동한다.

다음과 같이 입력하면 전체 파일에 대한 권한 설정을 확인할 수 있다:

$ ls -al
total 224
drwxr-xr-x  14 gchoi  staff    476  4 30 18:14 .
drwxr-xr-x   4 gchoi  staff    136  4 30 17:42 ..
-rw-r--r--@  1 gchoi  staff   6148  4 30 18:10 .DS_Store
-rwxr-xr-x   1 gchoi  staff    511  4 24 07:21 .gitattributes
-rwxr-xr-x   1 gchoi  staff   3230  4 24 07:21 .gitignore
drwxr-xr-x  13 gchoi  staff    442  4 30 18:14 Engine
-rwxr-xr-x   1 gchoi  staff    484  4 24 07:21 GenerateProjectFiles.bat
-rwxr-xr-x   1 gchoi  staff    238  4 24 07:21 GenerateProjectFiles.command
-rwxr-xr-x   1 gchoi  staff    527  4 24 07:21 GenerateProjectFiles.sh
-rwxr-xr-x   1 gchoi  staff  75172  4 24 07:21 LICENSE.pdf
-rwxr-xr-x   1 gchoi  staff   8143  4 24 07:21 README.md
drwxr-xr-x   3 gchoi  staff    102  4 30 18:08 Samples
drwxr-xr-x  14 gchoi  staff    476  4 30 18:08 Templates
drwxr-xr-x   4 gchoi  staff    136  4 30 18:14 UE4.xcodeproj


"r"은 읽기(read) 권한, "w"는 쓰기(write) 권한, "x"는 실행(eXecute) 권한이다. 이미 필자는 GenerateProjectFiles.command 파일에 대해 실행 권한을 부여하였기 때문에 위와 같이 rwx가 모두 부여된 상태이다.

이 파일에 대해 실행권한이 요구되므로, 소유자에게 rwx 권한(나머지 유저에게 r-x)을 부여하려면 다음과 같이 명령을 실행한다:

$ chmod 755 GenerateProjectFiles.command


다시 ls -al 명령을 입력하면 권한이 변경된 것을 확인할 수 있을 것이다.

이제 GenerateProjectFiles.command 파일을 더블클릭하여 실행하면 다음과 같이 Xcode 프로젝트 파일들이 생성되는 프로세스 진행상황을 볼 수 있을 것이다:


[그림 4.] GenerateProjectFiles.command 파일 실행을 통한 Xcode 프로젝트 파일 생성. 프로세스 진행 중(상). 프로세스 진행 완료(하).


다음 그림과 같이 UE4.xcodeproj라는 이름으로 Xocde 프로젝트 파일이 생성되었다:


[그림 5.] GenerateProjectFiles.command 파일 실행을 통한 Xcode 프로젝트 파일 생성.

Xcode 프로젝트 파일 실행 및 빌드 타겟 설정하기

이 프로젝트 파일을 더블클릭하여 Xcode를 실행한다. 처음 프로젝트 파일을 열면 인덱싱에 상당한 시간이 걸릴 수 있으므로 엄청난(?) 인내가 요구된다. 약 1-2시간 정도 소요된다.

물론 인덱싱 중에도 빌드가 가능하다. cmd + B를 눌러 빌드를 하면 상황에 따라 에러 또는 경고가 뜰 수 있다.

주로 에러는 파일의 권한 설정에 기인한 것이다. Build.sh 파일에 대한 쓰기 권한이 설정되어 있지 않을 때 발생한다. 앞서 설명과 동일한 방법으로 권한 설정을 하면 된다.

터미널을 실행한 후 다음 경로로 이동한다(관련 에러가 나오지 않는다면 이 부분은 넘어간다):

$ cd /[YOUR_UE4_PROJECT]/Engine/Build/BatchFiles/Mac


터미널에서 다음과 입력하여 권한 설정을 변경한다:

$ chmod 755 Build.sh


처음으로 빌드하면 아래 그림과 같이 경고 메시지가 보일 것이다(만약 경고메시지가 안 나오면 이 부분은 넘어가도록 한다):


[그림 6.] 빌드 완료 후 경고 메시지 출력.


이에 대한 경고는 아마도 제공된 프로젝트 파일의 버전이 현재 Xcode 버전보다 하위이기 때문에 발생한 것으로 보인다. 경고이므로 빌드하고 실행하는데 큰 문제는 없지만 해결 방법은 매우 간단하므로 약간이라도 거슬린다면 해결하도록 하자. 해결 방법은 [그림 6.]에서 보이는 바와 같이 경고 메시지를 클릭하면 된다. 다음과 같은 메시지가 출력될 것이다:


[그림 7.] Xcode 프로젝트 빌드 설정 업데이트.


빌드 설정에 대한 업데이트 목록이 쭈~욱 뜨는데 Perform Changes-Enable 버튼을 클릭하여 해결한다. 업데이트도 약간의 시간이 소요된다.

이제 타겟 어플리케이션을 설정하도록 한다. 처음 프로젝트 파일을 열면 디폴트로 타겟 어플리케이션은 BlankProgram으로 설정되어 있다.

빌드 타겟을 한 번 확인해 보자. 총 24개의 빌드 타겟이 있는데, 빌드 타겟을 확인하려면 다음 그림과 같이 Xcode의 좌측 사이드바의 프로젝트 이름(UE4)을 클릭하고 메인 윈도에서 UE4를 클릭한다:


[그림 8.] 빌드 타겟 확인하기.


[그림 9.] 확인된 빌드 타겟들.


이제 UE4Editor - Mac을 빌드 타겟으로 설정한다. 설정하는 방법은 다음 그림과 같이 상단의 BlankProgram - Mac을 클릭한다:


[그림 10.] 빌드 타겟 선택하기.


[그림 10.]과 같이 BlankProgram - Mac을 클릭하면 빌드 타겟 리스트가 보일 것인데 리스트 중 UE4Editor - Mac > My Mac 64-bit를 선택한다:


[그림 11.] 빌드 타겟을 UE4Editor - Mac > My Mac 64-bit 선택.


Xcode 상단 메뉴 바로 아래에 빌드 타겟이 UE4Editor로 변경된 것을 확인할 수 있을 것이다.

프로젝트 빌드 및 UE4 에디터 실행하기

Xcode의 상단 메뉴 바로 아래에 런(Run) 버튼(▶)을 클릭하여 프로젝트를 빌드한다. 빌드를 마무리하는데 상당한 시간이 소요될 것이다.

빌드가 마무리되면 자동으로 UE4 Editor가 실행되며, 차후에 Editor를 실행하려면 다음 경로에서 UE4Editor-Mac-Debug 응용 프로그램을 실행한다.

[YOUR_UE4_XCODE_PROJECT_DIRECTORY]/Engines/Binaries/Mac/


UE4 Editor를 실행하면 다음 그림과 같이 프로젝트를 설정하는 창이 뜬다:


[그림 12.] UE4 Editor의 프로젝트 설정 창.


원하는 템플릿(공백 / 기본 코드 / 코드 일인칭)을 선택 후, 프로젝트 이름을 정하고 프로젝트 생성 버튼을 클릭하여 프로젝트를 생성한다.

자~ 이제 모든 과정이 마무리 되었고, 아래 그림과 같이 UE4 Editor가 실행되었다.


[그림 13.] 실행된 UE4 Editor의 모습.


이로써 Mac OS의 Xcode에서 UE4 Editor 어플리케이션 빌드 및 생성하는 방법에 대하여 알아보았다. UE4Server나 iOS 등 다른 빌드 타겟에 대해서도 동일한 방식으로 빌드가 가능하니 연습해 보기 바란다.

Comments