Connecting UE4 to Motionbuilder with Live Link

Describes the process for connecting UE4 to Motionbuilder with the Live Link Plugin

Windows
MacOS
Linux

Using Live Link, you can stream content from MotionBuilder into Unreal Engine in real time, in order to preview your content in Unreal without needing to export and import. There are also a variety of settings for controlling the session's IP address and casting.

motionbuilder live link unreal

This document provides an overview of how to set up a Live Link session between MotionBuilder and Unreal Engine, as well as the settings available to you.

Prerequisites

MotionBuilder Setup

Follow these steps to set up Unreal Live Link in MotionBuilder and begin broadcasting a Live Link signal.

Install Plugin

You will need to download and install the MotionBuilder Live Link plugin. To do this, first navigate to the MotionBuilder Live Link Marketplace page and download the plugin.

motionbuilder live link marketplace

When the plugin is installed, it will be located in the Plugins folder of your Unreal Engine install directory. By default, it is located under the following path:

  C:\Program Files\Epic Games\UE_4.27\Engine\Plugins\Marketplace\MobuLiveLink

Within that folder, you can navigate to the Binaries folder and view the plugins available for each MotionBuilder version.

motionbuilder plugin version

Now you will assign the plugin path to MotionBuilder. In MotionBuilder click Settings > Preferences in the main menu bar to open the Preferences window, and navigate to the SDK category. Click Add and browse for the version folder that matches your MotionBuilder version. Restart MotionBuilder afterward.

install motionbuilder plugin

After restarting MotionBuilder, you should now see the UE - LiveLink entry in the Devices category of the Asset Browser tab.

UE LiveLink devices

Ensure your MotionBuilder scene contains the characters you want to use, then drag the UE - LiveLink plugin into the viewport.

drag drop plugin

This will open up the Live Link Connection window, which you can find under the Devices section of the Navigator.

motionbuilder live link window

Click the Subject Selector (...) button, expand and select your character's Root Bone, then click Add. You must ensure the selected root bone also matches the root (top-most) bone from the imported Skeleton in your project.

add live link subject

This will add your character as a Subject to stream over to Unreal Engine. You can optionally enable Stream Viewport Camera. This will make MotionBuilder's camera streamed as a Live Link subject to Unreal Engine, from which you can select it as a source to drive the editor camera.

stream viewport camera

You can optionally rename your Subject by editing the Subject Name field. This will help distinguish it in the Live Link broadcast.

live link subject name

Click the button next to Online to enable content streaming. The Online status button will change from red (Offline) to green (Online). At this point, MotionBuilder is now broadcasting a Live Link signal.

live link online

When MotionBuilder loses focus and becomes a background application, its performance will be throttled, which could lead to stuttering during the streaming process. To prevent this from occurring, enable the Always refresh viewer option, located in the Navigator's System menu.

always refresh viewer

Unreal Engine Setup

Follow these steps to connect Unreal Engine to your MotionBuilder Live Link broadcast, in order to preview the connection on a character.

Setup Connection

With MotionBuilder running in the background, open Unreal Engine and select Window > Live Link from the main menu bar. This will open the Live Link Connection Window, which will enable you to connect to the running instance of MotionBuilder.

live link connection window

Click the + Source button, then select your MotionBuilder broadcast signal from Message Bus Source.

live link

The Connection Window will update to show the connected Source Type, Subjects, and Status.

live link connected

Refer to the Live Link Overview page for more information on Live Link Options, Roles and Status Indicators.

You can now preview the Live Link connection on your character. Open your character's Skeletal Mesh asset from the Content Browser.

skeletal mesh

In the Preview Scene Settings tab, set the following properties:

  • Preview Controller: Live Link Preview Controller

  • Subject Name: Subject name from MotionBuilder

  • Enable Camera Sync: Enabled

skeletal mesh live link preview

Your MotionBuilder Subject is now connected to this window and will stream data. The MotionBuilder viewport will also stream to this view if Enable Camera Sync and Stream Viewport Camera are enabled from MotionBuilder.

skeletal mesh live link preview

You can alternatively use Blueprint functions to establish a connection instead of manually connecting through the Live Link window. Instead of using a Preview Controller, you can also use a Live Link Component attached to an Actor, or the Live Link Pose node in an Animation Blueprint.

MotionBuilder Settings

The MotionBuilder Live Link Plugin contains various advanced settings for controlling your Live Link casting behavior. To access these settings, click the Settings tab in the Live Link Connection window.

motionbuilder settings

Linking to Other Machines

By default, using Live Link to connect MotionBuilder to Unreal Engine works as long as the session is running on the same device. If you are on a local area network where multiple devices are being used, and you want to broadcast to a different device, then you will need to use Unicast and Static Endpoints with explicit Local IPv4 Addresses set on them.

The Unicast Endpoint can be considered as one end of the Live Link bridge, whereas Static Endpoints are the other end of the bridge. Together they form an active Live Link connection.

To set up a Unicast Endpoint, copy your IPv4 Address into the Unicast Endpoint property. To get your IPv4 Address, you can type "ipconfig" into a Windows Command Prompt window to view and copy it. You must also specify a port number at the end of the address.

unicast endpoint

Port 6666 is reserved and cannot be used for Endpoints.

In Unreal Engine, on the other receiving PC, open the Project Settings window by clicking Edit > Project Settings and navigate to the UDP Messaging panel. In the Transport category, expand the advanced details and input the same address and port from the host machine's Unicast Endpoint in the Static Endpoints property.

static endpoint

You should now be able to receive the remote Live Link source when adding sources to the Live Link Connection Window.

remote live link source

The inverse of this process will work as well. You can instead set a Unicast Endpoint in the UDP Messaging Project Setting and set the Static Endpoint in MotionBuilder.

static unicast endpoint

Broadcast Satellites

Rather than a single MotionBuilder live link instance broadcasting to multiple Unreal Engine destinations at the same time, you can set up a single Unreal Engine receiver to re-broadcast the live link source to other machines. This can be useful if the live link source is located far away from all receivers, or has limited bandwidth.

unreal rebroadcast live link signal

To enable this behavior, first select your live link source and subject in the Live Link Connection Window and enable Rebroadcast Subject.

rebroadcast subject

Next, you will need to set a Unicast Endpoint in the UDP Messaging Project Setting on the machine that is performing the rebroadcast.

rebroadcast unicast endpoint

Now when selecting Live Link sources from other machines, you can choose the re-broadcasted source from an Unreal Engine instance.

rebroadcast live link

Multicast

Multicast is an internet specification through which clients can participate in network communication. Multicast is represented using Class D addresses which are different from the standard class address space that you usually see in endpoint to endpoint communication. Multicast addresses range from 224.0.0.0 and to 239.255.255.255.

Clients can subscribe to the multicast group that tells the router, switch, or operating system that it is interested in multicast messages on that given IP. Unreal Engine uses multicast group 230.0.0.1 at port 6666. On startup, Unreal Engine will transmit a signal to the network that it would like to join the 230.0.0.1:6666 multicast group. Any multicast message received with that specified IP and port will then be assigned to that Unreal Engine instance inbound socket for processing by the engine.

The purpose of the multicast address is to notify other Unreal Engine instances about the presence of other Unreal Engine instances on the network. This is done using a discovery message that is sent on the multicast socket. The discovery message will be received by the other instances and contained within that message is the specific IP or port that can be used to directly communicate with the Unreal Engine instance. Direct communication will then occur using this known endpoint (IP and port) and no further communication will occur over the multicast group. This is equivalent to manually adding the static endpoint. The multicast mechanism enables this automatically.

Typically most routers will not propagate multicast messages beyond the local area network (LAN) unless they are configured to do so. In most cases, you can only discover Unreal Engine instances on the same local area network.

Live Link is generally not aware of multicast communication when it is happening. All of this network communication occurs through the message bus and using UDP messaging. Live Link is made aware of the available endpoints through its interaction with message bus and when sending its own discovery message via the message fus framework. All of the endpoints that have been discovered will be made available to Live Link as receivers and Live Link will send its discovery message to those receivers.

Change Multicast Range

If you want to change the multicast range group, it will need to be changed in both the UDP Messaging Project Settings and the Live Link plugin Engine.ini file.

You can locate Multicast Endpoint** in the UDP Messaging Project Setting.

multicast

You can locate the MotionBuilder live link plugin Engine.ini file in your Unreal Engine installation directory, by navigating to: ...\Engine\Plugins\Marketplace\Engine\Programs\MobuLiveLinkPlugin\Saved\Config\Windows\Engine.ini

Once the Engine.ini file is opened in a text editor, you must change the MulticastEndpoint line to be the same value as the setting in Unreal Engine.

  [/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=

The multicast group should not be modified unless you fully understand multicast networking.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss