소규모로 레벨 디자인 팀플을 하게 되었다.
개인적으로 해도 되지만 다같이 협업하는 게 더 좋을 것 같아서 협업 툴을 알아보던 중, 여러 명의 사용자가 하나의 라이브 세션에서 작업한 내용을 실시간으로 동기화하며 동시에 작업할 수 있는 플러그인을 발견했다.

Multi-User Editing 사전 준비 사항
- 모두 같은 언리얼 버전을 사용해야 한다.
- 모두 같은 LAN이나 VPN에 접속해야 한다.
- 같은 사본 프로젝트를 팀원들이 모두 가지고 있어야 한다.
팀원들과 LAN 연결이 불가능한 상황이었기 때문에 Hamachi를 통해 가상 네트워크를 만들어 해결했다.
기본 프로젝트를 수정하는 방식으로 진행했기에 UnrealLearningKit 프로젝트를 새로 생성해서 사용했다.
단, 같은 사본을 각자 가지고 있어야 한다는 점 때문에 실제 프로젝트에서 사용하기는 다소 어려웠다. 버전 컨트롤 프로그램을 함께 사용하는 것이 필수적일 것 같다.
하마치를 설치하고 나면 아래와 같은 세팅을 진행하면 사용 준비가 끝난다.
HOST:


[ 프로젝트 셋팅 > Multi-User-Editing ] 에서 [ Server Port ]를 7000으로 설정
[ 프로젝트 셋팅 -> UDP 메시징 ]에서
[ Unicast Endpoint ]란에 하마치 IPv4 주소를 0.0.0.0:0 형식으로 기입
Other:

[ 프로젝트 셋팅 > UDP 메시징 ] 에서 스태틱 엔드포인트 배열 추가 후 HOST의 하마치 IPv4 주소를 0.0.0.0:7000 형식으로 기입
Multi-User Editing 사용법
1. 서버 역할
- 서버 실행
- 멀티 유저 브라우저에서 서버 실행 버튼을 누르면 서버가 생성된다.
- 세션 생성
- 서버가 생성되면 세션 생성 버튼이 활성화된다.
- 세션 이름과 서버 프로젝트를 설정할 수 있다.
- 팀원 초대
- 세션이 생성되면 팀원들을 초대할 수 있다.
2. 클라이언트 역할
- 세션 접속
- 클라이언트는 서버가 세션을 생성한 후 활성 세션을 통해 접속할 수 있다
세션에 참여하면 작업 히스토리와 팀원들의 변경사항을 실시간으로 확인할 수 있다.

주의할 점
- 세션에서 변경한 내용은 세션을 나가면 세션에만 남아 있고, 로컬 프로젝트에는 적용되지 않는다.
- 세션에서 작업한 내용을 로컬에 적용하고 싶다면 리비전 컨트롤 > 세션 변경 유지를 누르면 된다.
이번 경험을 통해 실시간 협업이 가능한 Multi-User Editing 기능의 장단점을 파악할 수 있었다. 다만 프로젝트가 커지면 버전 관리 도구와 함께 사용하는 것이 필수적이라는 점도 확인할 수 있었다.