이 퀵 스타트 페이지에서는 멀티 유저 편집 시스템의 기초를 살펴봅니다. 이 튜토리얼을 마치면 다음과 같은 내용을 학습합니다.
-
여러 컴퓨터가 한 세션에 같이 참가할 수 있도록 구성하는 방법
-
서버에서 세션 관리를 시작하는 방법
-
세션을 시작하고 여기에 참가하여 팀원과 같이 작업하는 방법
-
세션 작업 도중의 변경사항을 로컬 컴퓨터의 프로젝트 콘텐츠에 지속시키는 방법
전제 조건: 이 튜토리얼은 동일한 호스트에서 작업 중인 언리얼 에디터의 다중 인스턴스를 사용할 수도 있지만, 여러 대의 컴퓨터에서 동일한 세션에 연결하는 것이 훨씬 더 효과적입니다. 시작하려면 다음을 수행합니다.
-
각 컴퓨터에 동일한 버전의 언리얼 엔진을 설치합니다.
-
모든 컴퓨터가 동일한 LAN 또는 VPN 에 연결되어 있는지 확인합니다.
여기에서는 삼인칭 템플릿 샘플 프로젝트를 사용했으며, 에픽게임즈 런처의 마켓플레이스(Marketplace) 탭에서 다운로드할 수 있습니다. 하지만 사용 중인 어떤 언리얼 엔진 프로젝트에서도 동일한 단계가 똑같이 적용됩니다.
1 - 플러그인 활성화
언리얼 에디터의 다중 인스턴스를 공유 세션에서 작업할 수 있도록 연결하려면 먼저 프로젝트에 대해 멀티 유저 편집(Multi-User Editing) 플러그인을 활성화해야 합니다.
-
언리얼 에디터에서 프로젝트를 엽니다.
-
메인 메뉴에서 편집(Edit) > 플러그인(Plugin) 을 선택합니다.
-
에디터(Editor) 카테고리 아래에서 멀티 유저 편집 플러그인을 찾아 활성화됨(Enabled) 박스를 선택합니다.
-
예(Yes) 를 클릭하여 확인합니다.
-
지금 재시작(Restart Now) 을 눌러 프로젝트를 재시작해야 변경사항이 적용됩니다.
2 - 여러 컴퓨터 구성
동일한 멀티 유저 편집 세션에 연결하려는 각 컴퓨터마다 동일한 버전의 언리얼 엔진이 설치되어 있어야 합니다.
또한 각 컴퓨터에는 동일한 언리얼 엔진 프로젝트 사본이 있어야 하며, 콘텐츠도 똑같아야 합니다.
-
똑같이 만드는 일반적인 방법은 프로젝트를 Perforce, Git 또는 Subversion 같은 버전 컨트롤 시스템에 저장한 후 모든 컴퓨터를 같은 리비전 또는 체인지리스트에 동기화하는 것입니다.
Perforce 를 사용하는 경우, UGS(UnrealGameSync)를 사용하면 이 프로세스가 한결 간편해집니다. 자세한 내용은 UGS 문서를 참고하세요.
-
멀티 유저 편집 시스템에서는 소스 컨트롤을 반드시 사용해야 하는 것은 아닙니다. 한 컴퓨터의 프로젝트 폴더를 세션에 참가하려는 다른 모든 컴퓨터에 복사하기만 해도 됩니다. 멀티 유저 편집 시스템을 처음 테스트하는 경우에는 이 방법이 유용합니다. 하지만 이 방법에 전적으로 의존하지는 마세요. 팀에서 실제로 사용하고 있는 버전 컨트롤 시스템을 사용하는 것이 프로젝트 콘텐츠를 유지관리하고 공유하는 데 가장 안전합니다.
각 컴퓨터에 프로젝트 사본을 만들었으면 몇 가지 세팅을 커스터마이징하는 것이 좋습니다. 각 컴퓨터에서 다음을 수행합니다.
-
언리얼 에디터에서 프로젝트를 열고 메인 메뉴에서 편집 > 프로젝트 세팅(Project Settings) 을 선택합니다.
-
프로젝트 세팅 창에서 플러그인 > 멀티 유저 편집 섹션을 엽니다.
다음 세팅을 변경하여 에디터 UI에 단축키 버튼을 추가하고, 세션에 연결된 동안 각 언리얼 에디터 인스턴스가 다른 인스턴스에 표시되도록 현재상태 정보를 커스터마이징합니다.
세팅 설명 멀티 유저 툴바 버튼 활성화 가장 자주 사용하는 멀티 유저 편집 명령에 대해 단축키를 제공하는 새 버튼을 메인 언리얼 에디터 창의 툴바에 추가합니다. 표시명(Display Name) 멀티 유저 편집 시스템이 현재상태 정보와 이 컴퓨터에 대한 세션 히스토리를 표시할 때 사용할 이름을 구성합니다.
기본적으로 멀티 유저 편집 시스템은 호스트 운영 체제의 현재 사용자에 대한 로그인 정보를 사용하도록 시도하지만, 동일한 사용자 계정이 여러 컴퓨터에 로그인된 경우와 같이 일부 경우에는 이 값을 오버라이드하는 것이 좋을 수 있습니다.아바타 컬러(Avatar Color) 현재상태 정보와 세션 히스토리를 표시할 때 멀티 유저 편집 시스템에서 이 컴퓨터에 사용할 컬러를 구성합니다.
기본적으로 이 컬러는 모든 사용자에 대해 흰색으로 동일하지만, 각 컴퓨터에 다른 컬러를 할당하면 세션 히스토리를 이해하기가 훨씬 쉬워집니다.또한 이 패널에서 사용할 수 있는 모든 세팅과 관련된 자세한 내용은 멀티 유저 편집 레퍼런스를 참고하세요.
-
에디터를 다시 시작하여 새 세팅을 적용합니다.
3 - 서버 시작
같이 연결하려는 각 컴퓨터에서 언리얼 에디터에 프로젝트를 연 후에는 해당 컴퓨터에서 공유하는 세션을 관리할 서버를 시작해야 합니다. 가장 쉬운 방법은 언리얼 에디터의 인스턴스 중 하나에서 시작하는 것입니다.
-
툴바에서 '멀티 유저 편집' 아이콘을 클릭합니다. 이 단계에서는 현재 세션에 연결되지 않았음을 나타내는 탐색(Browse) 이 표시되어야 합니다.
-
멀티 유저 브라우저(Multi-User Browser) 창이 열립니다. 이 패널을 사용하면 멀티 유저 편집 시스템에서 작업할 때 필요한 대부분의 세션 관리 툴에 액세스할 수 있습니다. 이 창은 빈번하게 사용됩니다.
또한 툴바 아이콘이 활성화되어 있지 않아도 언제든지 창(Window) > 멀티 유저 브라우저 를 선택하여 이 패널을 열 수 있습니다.
-
멀티 유저 브라우저 창에서 툴바 왼쪽 끝에 있는 실행(Launch) 아이콘을 클릭하여 컴퓨터에서 멀티 유저 편집 서버를 시작합니다.
-
새 명령 창이 열립니다. 세션을 관리하고 프로젝트 콘텐츠를 변경하면서 서버가 주기적으로 이 창에 상태 메시지를 출력합니다. 예를 들면 다음과 같습니다.
언리얼 엔진이 설치된 컴퓨터의 명령줄에서 서버를 시작할 수도 있습니다. 자세한 내용은 멀티 유저 편집 레퍼런스 페이지의 UnrealMultiUserServer 명령줄 파라미터 섹션을 참고하세요.
4 - 세션 시작
컴퓨터 중 하나에서 서버를 실행했지만, 아직 해당 서버에 연결된 언리얼 에디터 인스턴스가 없습니다. 인스턴스를 연결하려면 새 세션을 생성해야 합니다. 이 세션은 사용자가 이 프로젝트에 대해 수정한 에셋과 레벨의 모든 내용을 관리하고 공유합니다.
새 세션을 생성하려면 다음을 수행합니다.
-
컴퓨터 중 하나에서 이전 섹션에 표시된 대로 멀티 유저 브라우저 창을 엽니다.
아직은 여기에 나열되는 세션이 없을 것입니다. 하지만 서버를 실행하는 컴퓨터가 이 언리얼 에디터 인스턴스를 실행하는 컴퓨터 네트워크에 표시되는 한 새 세션을 생성할 수 있습니다.
-
멀티 유저 브라우저 창의 툴바에서 새 세션 생성(Create a New Session) 아이콘을 클릭합니다.
새 세션을 구성할 수 있도록 목록 뷰에 새 행이 추가된 것을 볼 수 있습니다.
-
새 세션의 이름을 입력하고 드롭다운 목록에서 세션을 관리하려는 서버를 선택합니다. 지금은 목록에 서버가 하나만 표시됩니다. 그런 다음 오른쪽 끝에서 체크박스 아이콘을 선택하여 세션을 생성합니다.
언리얼 에디터를 실행 중인 컴퓨터와 동일한 LAN 또는 VPN에서 서버가 실행 중이지만 새 세션을 생성할 수 없거나 서버(Server) 드롭다운 목록에 서버가 없으면 작업을 중지하고 지금 몇 가지 추가 네트워크 환경설정을 수행해야 할 수 있습니다. 자세한 내용은 고급 멀티 유저 네트워킹을 참고하세요.
새 세션에 자동으로 연결됩니다. 멀티 유저 브라우저 창의 레이아웃이 연결된 세션의 디테일을 표시하도록 변경됩니다.
또한 언리얼 에디터의 툴바 버튼이 업데이트되어 연결되었음을 나타냅니다.

5 - 세션 참가
이제 서버가 실행되었고 컴퓨터 중 하나에 언리얼 에디터에서 이 서버에 세션을 생성했으므로 다른 컴퓨터에서 실행되는 다른 언리얼 에디터 인스턴스에서 동일한 세션에 연결할 수 있습니다.
세션에 참가하려는 다른 컴퓨터 각각에서 다음을 수행합니다.
-
멀티 유저 브라우저 창을 엽니다. 다른 컴퓨터에서 생성한 세션이 여기에 나열됩니다.
-
세션을 선택하여 프로젝트의 디테일과 세션에 현재 연결되어 있는 사용자를 확인합니다.
또한 세션 위로 마우스를 가져가서 디테일을 확인할 수도 있습니다.
-
툴바에서 선택된 세션에 연결(Join the selected session) 아이콘을 클릭하여 연결합니다. 또는 세션 이름을 더블클릭합니다.
연결되는 즉시 멀티 유저 브라우저 창이 변경되어 연결된 세션의 디테일이 표시됩니다. 이제 클라이언트(Clients) 목록의 모든 연결된 사용자와 공유 세션의 모든 참가자가 수행한 변경사항 히스토리가 표시됩니다.
이 세션에서 이미 작업 중인 다른 컴퓨터가 연결 전 프로젝트에서 이미 레벨 또는 에셋을 변경한 경우, 해당 언리얼 에디터 인스턴스가 서버에서 그러한 트랜잭션을 자동으로 가져와서 공유 세션 워크스페이스의 로컬 뷰에 변경사항을 적용합니다. 이제 다른 모든 참가자와 동일한 콘텐츠로 작업하도록 잠궈지지만 언리얼 에디터 UI에 작업을 수행하는 데 필요한 어떠한 방식으로든 콘텐츠를 자유롭게 사용할 수 있습니다. 다른 사용자에게 영향을 미치지 않고 레벨 뷰포트에서 카메라 시점 이동, 콘텐츠 브라우저에서 새 폴더로 이동, 툴 전환, 새 창과 패널 열기 등을 수행할 수 있습니다.
이제 여러 대의 컴퓨터가 하나의 세션에 연결되었으므로 한 컴퓨터에서 변경하면 동일한 세션의 다른 컴퓨터에 어떻게 전파되는지 확인할 수 있습니다.
6 - 공동 작업
여러 사용자가 동일한 라이브 세션에 연결되었으므로 모두 함께 버추얼 월드를 구축할 수 있습니다. 일반적인 방식으로 언리얼 엔진 프로젝트 작업을 하면서 다른 사용자의 변경사항이 적용되는 것도 확인할 수 있습니다.
라이브 작업 도중 예상되는 항목에 대한 자세한 내용은 멀티 유저 편집 개요를 참고하세요.
7 - 세션 변경사항 지속
이 시점이 되면 팀 멤버들이 어느 정도 레벨과 프로젝트의 일부 에셋을 변경했을 것입니다. 하지만 해당 트랜잭션이 컴퓨터의 프로젝트 콘텐츠를 구성하는 실제 파일에는 아직 반영되어 있지 않습니다. 팀이 라이브 세션 도중에 수행한 작업을 유지하려면 해당 변경사항을 지속 해야 합니다. 즉, 멀티 유저 편집 시스템에서 처리한 모든 트랜잭션을 로컬 프로젝트 파일에 적용해야 합니다.
소스 컨트롤 제공자 사용 여부와 관계없이 변경사항을 지속하는 것은 툴바의 소스 컨트롤(Source Control) 툴을 사용합니다.
-
툴바의 소스 컨트롤 버튼 옆에 있는 화살표를 클릭하고 세션 변경사항 지속(Persist Session Changes) 을 선택합니다.
-
'파일 유지 및 제출(Persist & Submit Files) 창에서 라이브 세션 도중에 수정된 모든 파일의 목록을 볼 수 있습니다. 체크박스를 사용하여 수정된 파일 중 로컬 컴퓨터의 프로젝트에 적용할 파일을 선택합니다.
-
세션을 시작하거나 여기에 참가할 때 구성한 소스 컨트롤 제공자가 있으면 지속 중인 변경사항을 새 체인지리스트 또는 리비전의 해당 제공자에 즉시 제출할 수 있습니다.
즉시 제출하도록 선택하지 않으면 멀티 유저 편집 시스템이 소스 컨트롤 제공자에서 수정된 파일을 자동으로 체크아웃하여 세션에서 수행된 변경사항을 컴퓨터의 로컬 파일에 적용하고 저장할 수 있게 합니다. 그런 다음 세션에서 또는 세션을 나간 후 오프라인 상태로 추가 항목을 수정할 수 있고 선택에 따라 표준 소스 컨트롤 워크플로를 사용하여 나중에 모든 변경사항을 제출할 수 있습니다.
세션에서 수행한 변경사항을 소스 컨트롤에 즉시 제출하려면 다음을 수행합니다.
-
창 하단의 소스 컨트롤에 제출(Submit to Source Control) 옵션을 체크합니다.
-
일반 소스 컨트롤 워크플로와 마찬가지로, 제출하려는 변경사항의 설명을 설정해야 합니다. 창 상단의 체인지리스트 설명(Changelist Description) 을 확장하고 박스에 설명을 입력합니다.
-
제출할 파일을 더 수정해야 하는 경우에는 일반적인 소스 컨트롤 워크플로에서와 같이 파일 체크아웃 유지(Keep Files Checked Out) 옵션을 선택하면 됩니다.
-
-
제출하려는 파일 목록이 준비되었고 원하는 소스 컨트롤 옵션을 구성했으면 제출(Submit) 을 클릭합니다.
세션에 연결된 상태로 유지되며 원하는 만큼 계속 작업할 수 있습니다.
8 - 정리
자신과 팀 멤버의 라이브 세션 도중 레벨 및 에셋 변경사항을 디스크의 프로젝트에 적용했고, 선택적으로 해당 변경사항을 소스 컨트롤 시스템에 제출했으면 더이상 세션이 필요하지 않을 것입니다. 언제든지 종료한 지점에서 동일한 세션을 연결하여 선택할 수 있지만, 이전 세션을 장기간 작업 상태로 유지하는 것보다는 업데이트된 체인지리스트에서 새로운 편집 세션을 정기적으로 시작하는 것이 좋습니다.
더 이상 세션이 필요하지 않으면 멀티 유저 브라우저 를 사용하여 삭제할 수 있습니다.
세션을 처음 생성한 사용자만 세션을 삭제할 수 있습니다. 다른 사용자는 해당 세션에 참가해도 멀티 유저 브라우저 에 해당 옵션이 표시되지 않습니다.
-
아직 세션을 종료하지 않은 경우 연결을 끊습니다. 연결된 상태에서는 세션을 삭제할 수 없습니다.
툴바에 '멀티 유저 편집' 버튼이 표시되면 연결된 상태에서 나가기(Leave) 를 수행하라고 표시됩니다. 이를 클릭하여 세션에서 나갈 수 있습니다.
-
연결이 해제된 후 멀티 유저 브라우저 에서 세션을 선택하고 툴바에서 삭제(Delete) 아이콘을 클릭하여 삭제합니다.
-
삭제를 확인합니다.
삭제한 세션에 다른 사용자가 연결되어 있는 경우 자동으로 연결이 끊깁니다.
-
마지막으로 한동안 공유 세션에 다시 연결할 필요가 없으면 콘솔 창에 포커스를 두고 Ctrl+C 를 눌러 서버를 중지할 수 있습니다.
단순히 콘솔 창을 닫는 것은 권장되지 않습니다. 이것은 서버에서 비정상 종료로 간주됩니다. 콘솔 창을 닫을 때 활성 상태인 세션은 다음에 서버를 시작할 때 자동으로 복원됩니다.
이제 이 튜토리얼을 시작한 지점으로 돌아왔지만 공유 편집 세션 도중에 수행한 모든 변경사항이 모든 사용자에게 적용된 상태입니다.
9 - 직접 해보기
위에 언급된 모든 단계를 완료했으면 언리얼 에디터에서 라이브 협업 워크플로가 처음에 어떻게 진행되는지 경험할 수 있습니다. 지금까지 여러 컴퓨터에서 프로젝트를 구성하고, 이러한 컴퓨터를 공유 편집 세션에 하나로 연결하고, 팀원과 함께 버추얼 월드를 구축하는 방법을 배웠습니다. 자신의 프로젝트에서 작업 중인 자체 팀 내에서 이러한 워크플로를 실행하는 방법을 이미 알고 있을지도 모르지만, 이제는 멀티 유저 편집 시스템을 통해 가능해진 인스턴트 협업, 제로 반복 시간, 창의적인 협업의 이점을 활용할 수 있을 것입니다.
-
팀에서 멀티 유저 편집 시스템을 일상적으로 사용하는 경우에는 프로젝트 세팅 에서 디폴트 서버 이름과 세션 이름을 구성해야 할 수 있습니다. 이것을 구성하면 툴바 버튼이 업데이트되어 탐색 대신 참가(Join) 가 표시됩니다. 그러면 툴바 아이콘을 한 번만 클릭하여 디폴트 세션에 연결할 수 있습니다. 또한 프로젝트를 열 때 디폴트 세션에 자동 연결하도록 선택할 수 있습니다.
-
여러 사용자가 동일한 애니메이션을 동기화된 상태로 재생할 수 있게 하려면 시퀀서 UI에서 여러 사용자 간에 작업을 동기화하도록 멀티 유저 편집 시스템을 환경설정하면 됩니다. 각 사용자는 동일한 콘솔 명령을 설정하여 이를 선택해야 합니다.
수정해야 하는 세팅에 대한 자세한 내용은 멀티 유저 편집 레퍼런스를 참고하세요.