[Unreal Engine] 언리얼엔진5에서 협업하기(+Github 추가 예정)

E0u0n·2024년 4월 2일
1

Unreal Engine

목록 보기
6/10
post-thumbnail

언리얼 엔진의 Multi-User Editing 관련 Unreal Engine Documentation을 참고하여 작성되었습니다. 여러 컴퓨터의 다중 사용자가 공유 언리얼 에디터 세션에 접속해서 라이브로 협업하며 같이 콘텐츠를 만드는 기능을 서술합니다.

언리얼 엔진에서는 협업을 위한 아주 강력한 도구를 제공합니다. 바로 'Multi-User Editing' 이라는 플러그인으로, 공유 편집 세션에서 무려 실시간 협업이 가능합니다.

이 Multi-User Editing 워크플로우는 하나의 서버가 여러 세션을 호스팅하는 클라이언트-서버 모델을 기반으로 구축되어 있어, 협업을 하기 위해서는 먼저 몇가지 조건을 만족해야합니다.

  • 각 컴퓨터에 동일한 버전의 언리얼 엔진을 설치해야 합니다.
  • 모든 컴퓨터가 동일한 LAN 또는 VPN 에 연결되어 있어야합니다.
  • 모든 컴퓨터가 하나의 프로젝트(주로 Server)의 복사본을 가지고 있어야 합니다.

1. Multi-User Editing 플러그인 활성화

해당 기능을 사용하기 위해 [Edit] - [Plugins] 에서 'Multi-User Editing' 플러그인을 활성화시켜줍니다.

플러그인을 활성화하면, 각 컴퓨터 마다 고유 색상을 커스터마이징하여 서로 구별하기 쉬운 아이덴티티를 가질 수 있습니다.

  • [Edit] - [Project Settings] - [Multi-User Editing]
    • 'Enable Multi-User Toolbar Button'을 활성화
    • 'Display Name'과 'Avatar Color'를 변경

2. 서버(Server)

서버 시작

먼저 공유 편집 세션을 구축하기 위해서 서버를 열어야합니다. [Window] - 'Mullti-User Browser'를 선택하여 열린 블라우저 창에서 왼쪽 위에 있는 Launch 아이콘을 클릭하여 서버를 시작할 수 있습니다.

혹은 이전 단계에서 'Enable Multi-User Toolbar Button'을 활성화했다면 툴바에 있는 Multi-User Editing 아이콘을 눌러 'Mullti-User Browser'를 표시할 수도 있습니다.

서버가 제대로 시작했다면 아래와 같이 서버 관리 창이 실행됩니다.

세션 시작

서버를 시작했다면, 이제 협업을 위한 방을 만들 차례입니다. 즉, 아직 해당 서버에 연결된 언리얼 에디터 인스턴스가 없다는 뜻이며, 인스턴스를 연결하기 위해서는 새로운 세션을 구축할 필요가 있습니다.

'Mullti-User Browser'에서 왼쪽 위에 Launch 오른쪽에 있는 Create 아이콘을 클릭하여 세션을 구성할 수 있습니다.

새롭게 생성할 세션의 이름을 입력하고 서버를 선택하여 세션을 생성합니다.

별다른 행동없이도 자동으로 세션에 참가됩니다. 아래와 같이 세션에 참가되었다면 성공적으로 세션을 시작한 것입니다.

3. 클라이언트(Client)

이제 생성된 세션에 다른 컴퓨터가 들어갈 준비가 되었습니다. 세션에 들어가려는 클라이언트도 서버와 마찬가지로 'Mullti-User Browser'를 열어 세션 목록을 확인하면, 서버에서 만든 세션이 보입니다.

이 세션에 참가하면 모든 참가자가 수행한 변경 사항 히스토리가 표시되며 자동으로 변경 사항을 공유합니다.

4. 트랜잭션 동기화

작업 중인 에셋 타입과 적용된 변경 사항의 특성에 따라 연결된 클라이언트 사이에 변경 사항을 동기화합니다.

레벨: 즉시 동기화

레벨 콘텐츠에 적용된 모든 변경 사항은 해당 세션의 다른 모든 컴퓨터에 즉시 동기화됩니다.

시퀀서: 재생 동기화 및 선택적 UI 동기화

이 협업 시스템은 레벨 시퀀스와 마스터 시퀀스를 레벨과 같이 취급하기때문에, 사용자가 '트랙 추가나 제거, 새 키프레임 추가'와 같이 시퀀스를 변경하면 이러한 변경사항을 세션의 다른 모든 사용자에게 즉시 동기화합니다.

또한 한 사용자가 시퀀스를 열면 모든 클라이언트에서 시퀀서 UI를 자동으로 열도록 선택할 수 있으며, 시퀀스를 재생하면 동일한 시퀀스가 열려 있는 모든 사용자에 대해 동일한 시퀀스가 즉시 재생됩니다.

시퀀서 UI 동기화를 활성화하려면 Concert.EnableOpenRemoteSequencer 콘솔 명령을 사용하면 됩니다.

기타 에셋: 저장 시 동기화

프로젝트에 포함되어 있는 대부분의 에셋 타입(머티리얼, 머티리얼 인스턴스, 스태틱 메시 에셋, 블루프린트 클래스)은 수정될 때마다 즉시 동기화되지 않습니다. 누군가가 편집 중인 에셋에는 자물쇠 모양의 더티 상태의 아이콘이 표시됩니다. 이 경우 다른 사용자는 해당 에셋을 수정하지 못하도록 '잠금' 상태가 됩니다.

이후 변경한 에셋을 저장하면 세션의 다른 모든 사용자에게 트랜젝션을 전송하며, 잠금 상태였던 에셋의 잠금이 해제됩니다. 수정하지 않은 에셋을 잠그거나 해제하고자 한다면, 에셋을 우클릭하여 [Multi-User] - 'Lock Asset(s)'을 선택하면 됩니다.

5. 세션 변경사항 지속

여러 컴퓨터에서 세션의 레벨과 에셋을 변경하면, 이 트랜잭션이 본인이 사용하고 있는 컴퓨터의 프로젝트를 구성하는 실제 로컬 파일에는 아직 반영되어 있지 않습니다. 이 라이브 세션의 에디터는 일종의 가상 샌드박스 방식으로 로컬 프로젝트 콘텐츠 위에 트랜잭션을 적용하기 때문입니다.

따라서 다른 사람이 라이브 세션 도중에 수행한 작업을 본인의 로컬 프로젝트 파일에 유지하려면 해당 변경 사항을 동기화해야 합니다. 이를 위해서는 에디터 오른쪽 아래에 있는 'Source Control' 아이콘을 눌러 'Persist Session Change...'를 선택합니다. 세션 참가자가 이를 선택하면, 현재 세션에서 이루어진 모든 수정 사항을 디스크의 로컬 파일에 적용합니다.

이후 라이브 세션 도중 수정된 파일에서 로컬 컴퓨터의 프로젝트에 적용할 파일을 선택할 수 있습니다.

만약 변경 사항을 지속시키지 않고 세션을 나가버린다면 에디터는 세션 시작 또는 참가 이전 상태로 프로젝트를 자동으로 되돌립니다. 하지만 이는 이전 트랜잭션이 완전히 사라진 것이 아니고, 이후에 같은 세션에 다시 참가하면 멀티 유저 편집 시스템이 모든 해당 트랜잭션을 그대로 에디터에 다시 적용합니다.


Reference

profile
이세계 개발자입니다.

0개의 댓글