Perforce 소스 컨트롤 사용

팀 내 다른 사람들과의 애셋 공유를 위한 Perforce 구성 방법입니다.

언리얼 엔진(UE)에는 Perforce 라는 버전 컨트롤 소프트웨어를 사용하여 프로젝트 작업을 함께 할 수 있도록 해 주는 통합 방식이 내장되어 있습니다. 버전 컨트롤을 통해 팀원끼리 애셋과 코드를 공유할 수 있을 뿐만 아니라, 백업과 변경내역도 제공되어 어떤 파일이든 문제가 생긴 경우 이전 버전으로 되돌릴 수 있습니다.

작업방식

여지껏 주로 사용해 왔다는 이유도 있고, 일반적으로 언리얼 에디터 내의 애셋 작업은 Perforce 작업방식을 따릅니다. 애셋 (확장자 .uasset 및 .umap) 이라 알려진 파일이 주로 에디터에서 작업하는 파일들입니다. 이 파일들은 바이너리 파일이라 텍스트로 열거나 텍스트 기반 병합 툴로 병합할 수 없습니다. 그렇기에 에디터에서 한 파일에 대해 작업을 할 때면 에디터는 그 파일을 잠가 (Perforce 에서는 이것을 Check Out 체크 아웃이라 합니다) 다른 사람들이 동시에 편집하지 못하도록 합니다. 사용자가 잠갔던 파일 작업이 끝나면, 그 파일을 Check In (체크 인) 또는 Submit (제출)하여 서버에 변경사항을 업로드하고 파일의 잠금 상태를 해제합니다.

UE4에 Perforce 사용하기

로컬 머신에 Perforce 서버 구성하기

UnrealGameSync 와 같은 툴 통합 시 발생할 수 있는 문제를 피하려면, case-insensitive (대소문자를 구분하지 않는) Perforce 서버를 실행할 것을 권장합니다.

Perforce 서버를 실행하는 방법은 P4DP4S, 두 가지입니다. P4D 는 명령줄 인스턴스 실행 동안에만 실행되므로, 보통 현장 관리 작업에만 사용됩니다. P4SP4D 의 서비스 기반 버전으로, 서버의 백그라운드 실행이 가능합니다. 이 서비스는 보통 Perforce 서버 툴 설치시 같이 설치되어 시작됩니다.

가끔 서비스가 자동 실행되지 않을 때가 있습니다. 서비스를 켜려면 먼저 Control Panel -> Administrative Tools ->Services applet 으로 갑니다. 그런 다음 리스트에서 Perforce 서비스를 찾아 시작시킵니다:

SC_Enable_P4_Service.png

서비스 실행 이후에는 P4Admin 을 사용하여 서버에 접속할 수 있습니다. 서버에 처음 접속하는 경우, 초기 접속 대화창에서 새 사용자를 만들면 됩니다:

SC_P4_Setup.png

Perforce 서버 접속 정보를 채운 다음 OK 를 누릅니다. P4Admin 에서 서버에 접속한 이후에는, 매우 쉽게 새 디포나 사용자나 그룹을 만들 수 있습니다. 초기 접속 창에 넣은 정보를 가지고 P4v 와 언리얼 에디터를 사용하여 서버에 접속합니다.

Perforce 의 장단점에 대한 보다 심도있는 정보는 P4Admin Documentation 을 확인해 주시기 바랍니다.

P4 Typemap

디포에 파일 추가를 시작하기 전, 언리얼 파일 유형을 어떻게 처리할지 Perforce 가 알 수 있도록 P4 Typemap 을 구성해 줘야 합니다. Typemap 을 설정하면 Perforce 안에서의 파일 읽기전용 또는 쓰기가능 설정에 영향을 끼칩니다. 아무튼 그 작업을 위해서는, cmd 창을 연 다음 p4 환경 변수를 설정해 줘야 합니다.

    p4 set P4USER=your.username
    p4 set P4PORT=localhost:1666

위의 사용자명 및 호스트명 부분을 여러분의 사용자명 및 접속 주소로 대체해 주세요. 다음 명령줄을 입력하여 Typemap 을 엽니다.

    p4 -P YourPassword typemap

그러면 텍스트 창이 뜨는데, 이게 여러분 서버의 Typemap 입니다. 아래 예제 Typemap 은 저희가 과거 사용했던 것입니다:

    # Perforce File Type Mapping Specifications.
    #
    #  TypeMap:             a list of filetype mappings; one per line.
    #                       Each line has two elements:
    #
    #                       Filetype: The filetype to use on 'p4 add'.
    #
    #                       Path:     File pattern which will use this filetype.
    #
    # See 'p4 help typemap' for more information.

    TypeMap:
                    binary+w //depot/....exe
                    binary+w //depot/....dll
                    binary+w //depot/....lib
                    binary+w //depot/....app
                    binary+w //depot/....dylib
                    binary+w //depot/....stub
                    binary+w //depot/....ipa
                    binary //depot/....bmp
                    text //depot/....ini
                    text //depot/....config
                    text //depot/....cpp
                    text //depot/....h
                    text //depot/....c
                    text //depot/....cs
                    text //depot/....m
                    text //depot/....mm
                    text //depot/....py
                    binary+l //depot/....uasset
                    binary+l //depot/....umap
                    binary+l //depot/....upk
                    binary+l //depot/....udk
                    binary+l //depot/....ubulk

편집 이후 Ctrl+S 키를 눌러 파일을 저장한 다음 닫습니다. 명령줄에 Typemap saved 라고 보일 것입니다.

로컬 네트워크의 서버

사람들이 협업시 사용할 서버를 로컬 네트워크에 구성할 수 있습니다. 그러기 위해서는, 서버에서 위 방법을 따른 뒤 클라이언트에서 서버의 URL 을 사용하여 접속하면 됩니다.

클라우드 제공사

다양한 클라우드 제공사를 활용하면 원격 SVN 서버 운영 및 협업이 가능합니다. 간단히 SVN Hosting 을 검색해 보면 몇 개 찾을 수 있습니다. 각 호스팅 제공사마다 다르지만, 모두 다 서버 접속에 사용되는 접속 정보들로 끝날 것입니다. Perforce 클라우드 제공사 접속 관련 참고사항은, 아래 언리얼 에디터에서 접속하기 부분을 참고하세요.

로컬 워크스페이스 구성하기

Perforce 컨트롤 하의 파일 작업을 위해서는, 로컬에서 파일 관리가 가능하도록 Workspace (워크스페이스) 구성을 해 줘야 합니다. 이 작업은 P4V View 드롭다운의 Workspace 탭을 통해 가능합니다:

SC_View_Workspace.png

새 워크스페이스를 만들려면, 워크스페이스 창에 우클릭한 다음 New Workspace 옵션을 선택합니다. 그런 다음 워크스페이스 이름을 입력하고 로컬 머신에 파일을 저장할 장소, 즉 워크스페이스 루트를 선택합니다.

SC_New_Workspace.png

서버와 워크스페이스가 생긴 이후에는 파일을 추가하면 됩니다. 기본 상태에서는 에디터 외부에서 P4V 를 통해서만 가능합니다. 다른 사람이 이미 만들어 둔 워크스페이스 작업을 하는 경우, 다음 부분으로 건너뛰어도 됩니다. 새 프로젝트를 만들 때 C++ 코드용인지 블루프린트용인지 선택할 수 있습니다. 프로젝트에 C++ 코드를 사용하는 경우, Source/ 디렉터리도 보입니다. 기본적으로는 프로젝트에 다음과 같은 디렉터리가 추가됩니다:

SC_P4_Files_To_Add.png

초록 강조된 폴더와 파일은 디포에 추가됩니다. 노랑 Binaries 폴더는 옵션으로, 팀과의 협업이 필요한지에 따라 다릅니다. 반드시 모든 팀원이 에디터/게임을 직접 컴파일할 필요는 없더라도, 초기 추가 에 포함은 되어 있어야 콘텐츠 제작시 디포에서 버전을 받아오는 것이 가능합니다. 참고로 위의 Typemap 구성을 했다면 코더는 바이너리를 읽기 전용 설정할 필요 없이 컴파일 가능합니다.

Perforce 에 파일 추가하기

Perforce 에 파일을 추가하는 방법은 몇 단계로 아주 간단합니다.

  1. Perforce 에 파일/폴더 추가를 위해서는, 먼저 P4V 에서 파일/폴더를 선택한 다음 우클릭 후 Mark For Add 옵션을 선택합니다.

    SC_P4_Mark_For_Add.png

  2. 그러면 기본 Change list 에 파일이 추가됩니다. 추가하는 모든 파일은 Pending (대기중) change list 탭에서 볼 수 있습니다:

    SC_View_Pending_Changelists.png

  3. 무언가를 Submit (제출)하려면, 먼저 Change list 에 우클릭한 다음 Submit 을 선택합니다. 그런 다음 설명을 입력하고 Submit 버튼을 클릭합니다.

    SC_P4_Submit_Files.png

다른 사람에 의해 이미 시작된 프로젝트 작업을 시작하려는 경우, P4V 를 사용하여 Perforce 에서 최신 리비전을 받아야 합니다. 그 방법은 P4V 의 Depot View 에서 받고자 하는 프로젝트를 찾은 다음 우클릭하고 Get Latest Revision 을 선택합니다. 그러면 위의 워크스페이스 루트로 지정한 위치에 모든 파일이 다운로드됩니다.

언리얼 에디터에서 접속하기

에디터에서 툴바 에 있는 소스 컨트롤 아이콘을 클릭하면 에디터 안에서 바로 Perforce 에 접속 가능합니다:

SC_UE4_SC_Enable.png

열린 이후 소스 컨트롤 로그인 창에서 제공사를 Perforce 로 선택한 다음 로그인 정보를 입력합니다. 이미 (현재 프로젝트가 들어있는) 워크스페이스 구성이 된 경우, 로그인 정보는 자동으로 채워질 것입니다. SC_P4_UE4_Setup.png

다수의 클라우드 제공사를 포함한 일부 서버 사용시, 에디터에서 디포에 접근하기 위해서는 Host 와 Password 를 입력해야 할 수도 있습니다. Perforce 로그인 대화창 하단의 고급 칸을 열어보면 입력 가능합니다:

SC_P4_UE4_Setup_Advanced.png

언리얼 엔진의 이전 버전을 위해 작성된 페이지입니다. 현재 언리얼 엔진 5.3 버전을 위해 업데이트되지 않았습니다.
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소