라이브 링크(Live Link)를 사용하면 MotionBuilder의 콘텐츠를 언리얼 엔진으로 실시간 스트리밍하여 익스포트 및 임포트 없이 언리얼에서 콘텐츠를 미리 볼 수 있습니다. 또한 세션의 IP 주소 및 캐스팅과 관련하여 다양한 제어 세팅이 마련되어 있습니다.
이 문서에서는 MotionBuilder와 언리얼 엔진 간에 라이브 링크 세션을 구성하는 방법과 사용 가능한 세팅을 살펴봅니다.
전제 조건
-
라이브 링크 페이지 내용을 확인하여 라이브 링크 플러그인을 활성화해야 합니다.

- 언리얼 엔진과 MotionBuilder에서 사용할 스켈레탈 메시 액터가 있어야 합니다. 없는 경우, 삼인칭(Third Person) 템플릿을 사용하여 프로젝트를 생성하고 SK_Mannequin 스켈레탈 메시를 FBX로 익스포트 한 다음 MotionBuilder에 임포트 할 수 있습니다.
- 또는 MotionBuilder에서 캐릭터를 캐릭터화 하여 컨트롤 릭에서 사용할 수도 있습니다.
MotionBuilder 구성
다음 단계를 따라 MotionBuilder에서 언리얼 라이브 링크를 구성하고 라이브 링크 신호를 브로드캐스트합니다.
플러그인 설치
MotionBuilder 라이브 링크 플러그인을 다운로드 및 설치해야 합니다. 이렇게 하려면 먼저 MotionBuilder 라이브 링크(MotionBuilder LiveLink) 마켓플레이스 페이지로 이동하여 플러그인을 다운로드합니다.
설치가 완료된 플러그인은 언리얼 엔진 설치 디렉터리의 Plugins 폴더에 있습니다. 기본적으로 다음 경로에 있습니다.
C:\Program Files\Epic Games\UE_4.27\Engine\Plugins\Marketplace\MobuLiveLink
이 폴더에서 Binaries 폴더로 이동하여 각 MotionBuilder 버전에서 사용할 수 있는 플러그인을 확인합니다.
이제 플러그인 경로를 MotionBuilder에 할당할 수 있습니다. MotionBuilder의 메인 메뉴 바에서 Settings > Preferences 를 클릭하여 Preferences 창을 열고 SDK 카테고리로 이동합니다. Add 를 클릭하고 MotionBuilder 버전과 일치하는 버전 폴더를 탐색합니다. 그런 다음 MotionBuilder를 재시작합니다.
MotionBuilder를 재시작하면 Asset Browser 탭의 Devices 카테고리에 UE - LiveLink 항목이 표시됩니다.
라이브 링크 브로드캐스트
MotionBuilder 씬에 사용할 캐릭터가 있는지 확인한 다음 UE - LiveLink 플러그인을 뷰포트로 드래그합니다.
그러면 Live Link Connection 창이 열리며, 이는 Navigator 의 Devices 섹션에서 찾을 수 있습니다.
Subject Selector (...) 버튼을 클릭하여 캐릭터의 루트 본 을 펼치고 선택한 다음 Add 를 클릭합니다. 선택된 루트 본이 프로젝트에서 임포트된 스켈레톤 의 루트(최상단) 본과 일치하는지 확인해야 합니다.
이제 캐릭터가 언리얼 엔진으로 스트리밍할 서브젝트 로 추가됩니다. 선택적으로 Stream Viewport Camera 도 활성화할 수 있습니다. 그러면 MotionBuilder의 카메라가 언리얼 엔진에 라이브 링크 서브젝트로 스트리밍되며, 이를 에디터 카메라를 제어할 소스로 선택할 수 있습니다.
선택적으로 Subject Name 필드를 편집하여 서브젝트 이름을 변경할 수 있습니다. 이렇게 하면 라이브 링크 브로드캐스트에서 서브젝트를 구분하는 데 도움이 됩니다.

Online 옆의 버튼을 클릭하여 콘텐츠 스트리밍을 활성화합니다. 'Online' 상태 버튼이 빨간색(오프라인) 에서 녹색(온라인) 으로 변경됩니다. 이 시점에서 MotionBuilder는 라이브 링크 신호를 브로드캐스트합니다.
MotionBuilder가 포커스를 잃고 백그라운드 애플리케이션으로 전환되면 퍼포먼스가 스로틀링되어 스트리밍 프로세스가 진행되는 동안 끊김이 발생할 수 있습니다. 이를 방지하려면 'Navigator'의 System 메뉴에 있는 Always refresh viewer 옵션을 활성화합니다.
언리얼 엔진 구성
캐릭터에서 연결을 미리 보려면 다음 단계를 따라 언리얼 엔진을 MotionBuilder 라이브 링크 브로드캐스트에 연결합니다.
연결 구성
MotionBuilder가 백그라운드에서 실행 중일 때 언리얼 엔진을 열고 메인 메뉴 바에서 창(Window) > 라이브 링크 를 선택합니다. 그러면 라이브 링크 연결(Live Link Connection) 창이 열리며, 여기에서 MotionBuilder의 실행 중인 인스턴스에 연결할 수 있습니다.
+ 소스(+ Source) 버튼을 클릭하고 메시지 버스 소스(Message Bus Source) 에서 MotionBuilder 브로드캐스트 신호를 선택합니다.
연결 창이 업데이트되고 연결된 소스 타입, 서브젝트 및 상태가 표시됩니다.
라이브 링크 옵션, 역할, 상태 표시기 에 대한 자세한 내용은 라이브 링크 개요 페이지를 참고하세요.
라이브 링크 프리뷰
이제 캐릭터에서 라이브 링크 연결을 미리볼 수 있습니다. 콘텐츠 브라우저(Content Browser) 에서 캐릭터의 스켈레탈 메시 에셋을 엽니다.
프리뷰 씬 세팅(Preview Scene Settings) 탭에서 다음 프로퍼티를 설정합니다.
- 프리뷰 컨트롤러(Preview Controller): 라이브 링크 프리뷰 컨트롤러(Live Link Preview Controller)
- 서브젝트 이름(Subject Name): MotionBuilder의 서브젝트 이름
- 카메라 동기화 활성화(Enable Camera Sync): 활성화됨(Enabled)
MotionBuilder 서브젝트가 이제 이 창과 연결되어 데이터를 스트리밍합니다. 또한 MotionBuilder의 뷰포트는 MotionBuilder에서 Enable Camera Sync 와 Stream Viewport Camera 가 활성화된 경우에도 이 뷰로 스트리밍됩니다.
또는 수동으로 라이브 링크 창을 통해 연결하는 대신 블루프린트 함수 를 사용하여 연결할 수도 있습니다. '프리뷰 컨트롤러'를 사용하지 않고 액터에 어태치된 라이브 링크 컴포넌트 또는 애니메이션 블루프린트의 Live Link Pose 노드를 사용해도 됩니다.
MotionBuilder 세팅
MotionBuilder 라이브 링크 플러그인에는 라이브 링크 캐스팅 행동을 제어하기 위한 여러 고급 세팅이 있습니다. 이 세팅에 액세스하려면 라이브 링크 연결 창에서 세팅 탭을 클릭합니다.
다른 머신에 링크하기
기본적으로 라이브 링크를 사용하여 MotionBuilder를 언리얼 엔진에 연결하는 것은 세션이 동일한 디바이스에서 실행 중일 때만 가능합니다. 여러 디바이스가 사용되고 있는 LAN을 사용 중이고 다른 디바이스로 브로드캐스트하려는 경우에는 유니캐스트(Unicast) 및 스태틱 엔드포인트(Static Endpoints) 를 명시적인 로컬 IPv4 주소 와 함께 사용해야 합니다.
유니캐스트 엔드포인트 를 라이브 링크 브리지의 한쪽 끝으로, 스태틱 엔드포인트 를 반대쪽 끝으로 생각할 수 있습니다. 두 엔드포인트는 함께 활성 라이브 링크 연결을 구성합니다.
유니캐스트 엔드포인트를 구성하려면 IPv4 주소 를 유니캐스트 엔드포인트 프로퍼티로 복사합니다. IPv4 주소를 구하려면 Windows 명령 프롬프트 창에 'ipconfig' 을 입력하여 주소를 확인하고 복사합니다. 주소 끝에는 포트 번호 를 지정해야 합니다.
포트 6666 은 예약되어 있으며 엔드포인트에 사용할 수 없습니다.
다른 수신하는 쪽 PC의 언리얼 엔진에서 편집(Edit) > 프로젝트 세팅(Project Settings) 을 클릭하여 프로젝트 세팅 창을 열고 UPD 메시징(UDP Messaging) 패널로 이동합니다. 트랜스포트(Transport) 카테고리에서 '고급 디테일(Advanced Details)'을 열고 호스트 머신의 유니캐스트 엔드포인트 와 동일한 주소 및 포트를 스태틱 엔드포인트 프로퍼티에 입력합니다.
이제 '라이브 링크 연결' 창에 소스를 추가할 때 원격 라이브 링크 소스를 수신할 수 있습니다.
이 프로세스는 반대로도 잘 작동합니다. 프로젝트 세팅 > UDP 메시징 에서 유니캐스트 엔드포인트 를 설정하고 MotionBuilder에서 스태틱 엔드포인트 를 설정할 수도 있습니다.

브로드캐스트 새틀라이트
하나의 MotionBuilder 라이브 링크 인스턴스로 동시에 여러 언리얼 엔진 대상에 브로드캐스트하는 대신 하나의 언리얼 엔진 리시버를 구성하여 라이브 링크 소스를 다른 머신으로 다시 브로드캐스트할 수 있습니다. 이는 라이브 링크 소스가 모든 리시버로부터 멀리 떨어져 있거나 대역폭이 제한된 경우 유용합니다.
이 행동을 활성화하려면 우선 라이브 링크 소스 와 서브젝트 를 라이브 링크 연결 창에서 선택하고 서브젝트 리브로드캐스트(Rebroadcast Subject) 를 활성화합니다.
다음으로 리브로드캐스트를 수행하는 머신의 프로젝트 세팅 > UDP 메시징 에서 유니캐스트 엔드포인트 를 설정합니다.
라이브 링크 소스를 다른 머신에서 선택할 때 언리얼 엔진 인스턴스에서 리브로드캐스트 소스를 선택할 수 있습니다.
멀티캐스트
멀티캐스트는 클라이언트가 네트워크 커뮤니케이션에 참가할 수 있는 인터넷 사양입니다. 멀티캐스트는 일반적인 엔드포인트 간의 커뮤니케이션에서 볼 수 있는 표준 클래스 주소 공간과 다른 클래스 D(Class D) 주소를 사용하여 표현됩니다. 멀티캐스트 주소는 224.0.0.0부터 239.255.255.255까지입니다.
클라이언트는 지정된 IP에서 멀티캐스트 메시지에 관심이 있는 라우터, 스위치, 운영 체제 등을 알려주는 멀티캐스트 그룹을 구독할 수 있습니다. 언리얼 엔진은 멀티캐스트 그룹 230.0.0.1 을 포트 6666 에서 사용합니다. 스타트업 시 언리얼 엔진은 230.0.0.1:6666 멀티캐스트 그룹에 참가하기를 원하는 네트워크에 신호를 보냅니다. 지정된 IP와 포트에서 수신된 멀티캐스트 메시지는 엔진에서 처리할 수 있도록 언리얼 엔진 인스턴스 인바운드 소켓에 할당됩니다.
멀티캐스트 주소의 목적은 다른 언리얼 엔진 인스턴스에 네트워크상의 다른 언리얼 엔진 인스턴스의 존재를 알리는 것입니다. 이는 멀티캐스트 소켓에 전송되는 탐색 메시지(discovery message)를 통해 수행됩니다. 탐색 메시지는 다른 인스턴스에 의해 수신되며, 해당 메시지에는 언리얼 엔진 인스턴스와 직접 커뮤니케이션하는 데 사용될 수 있는 특정 IP 또는 포트가 포함되어 있습니다. 그런 다음 이 알려진 엔드포인트(IP 및 포트)를 사용하여 직접 커뮤니케이션이 발생하며, 멀티캐스트 그룹에 대해 추가 커뮤니케이션은 발생하지 않습니다. 이는 수동으로 스태틱 엔드포인트를 추가하는 것과 같습니다. 멀티캐스트 메커니즘은 이를 자동으로 수행합니다.
일반적으로 대부분의 라우터는 그렇게 환경설정되지 않는 한 멀티캐스트 메시지를 LAN 너머로 전파하지 않습니다. 대부분의 경우 동일한 LAN에 있는 언리얼 엔진 인스턴스만 탐색할 수 있습니다.
라이브 링크는 일반적으로 멀티캐스트 커뮤니케이션이 발생해도 이를 알지 못합니다. 이 모든 네트워크 커뮤니케이션은 메시지 버스를 통해 UDP 메시징을 사용하여 발생합니다. 라이브 링크는 자체 탐색 메시지를 메시지 버스 프레임워크를 통해 전송할 때 메시지 버스와의 인터랙션을 통해 사용 가능한 엔드포인트에 대해 알게 됩니다. 탐색된 모든 엔드포인트는 리시버와 라이브 링크가 탐색 메시지를 해당 리시버로 전송하면서 라이브 링크에서 사용할 수 있게 됩니다.
멀티캐스트 범위 변경
멀티캐스트 범위 그룹을 변경하려면 프로젝트 세팅 > UDP 메시징 과 라이브 링크 플러그인 Engine.ini 파일에서 모두 변경해야 합니다.
'프로젝트 세팅 > UDP 메시징'에서 멀티캐스트 엔드포인트 를 찾을 수 있습니다.
MotionBuilder 라이브 링크 플러그인 Engine.ini 파일은 언리얼 엔진 설치 디렉터리에서 ...\Engine\Plugins\Marketplace\Engine\Programs\MobuLiveLinkPlugin\Saved\Config\Windows\Engine.ini 로 이동하여 찾을 수 있습니다.
Engine.ini 파일이 텍스트 에디터에서 열리면 MulticastEndpoint 줄을 언리얼 엔진의 세팅과 동일한 값으로 변경해야 합니다.
[/Script/UdpMessaging.UdpMessagingSettings]
EnabledByDefault=False
EnableTransport=True
bAutoRepair=True
MaxSendRate=1.000000
AutoRepairAttemptLimit=10
bStopServiceWhenAppDeactivates=True
UnicastEndpoint=0.0.0.0:0
MulticastEndpoint=230.0.0.1:6666
MessageFormat=CborPlatformEndianness
MulticastTimeToLive=1
EnableTunnel=False
TunnelUnicastEndpoint=
TunnelMulticastEndpoint=
멀티캐스트 네트워킹을 완전히 이해하지 못하는 경우에는 멀티캐스트 그룹을 수정하면 안 됩니다.