OptiTrack Unreal Engine Plugin

Main Page → OptiTrack Unreal Engine Plugin

Info2.png

For our streaming applications, Unreal Engine 4 and 5 have essentially the same setup. The main difference is the UI and where to find the appropriate settings and buttons. All our guides on this Wiki have been updated to feature Unreal Engine 5. If you need assistance with Unreal Engine 4 please feel free to reach out to our support team via our website.

Plugin Overview

The OptiTrack Unreal Engine Plugins allow you to stream real-time tracking data from Motive into Unreal Engine. This includes tracking data of rigid bodies, skeletons, and HMDs that are tracked within Motive. This article focuses on the organization of those plugins. For basic instructions on setting up a motion capture system, please refer to the Getting Started guide instead.


Included Plugins:

  • OptiTrack - Live Link
  • OptiTrack - Streaming Client
  • OptiTrack - VR Latency Optimization


HMD Compatibility

  • A variety of head mounted displays (HMDs) can be integrated using the OptiTrack OpenVR Driver.
  • For plugin version 1.23 and above, support for Oculus HMDs has been deprecated.


Motive Data Streaming Setup (Server)


First, you'll want to follow the below instructions to set up the data streaming settings in Motive. Once this is configured, Motive will be broadcasting tracking data onto a designated network interface where client applications can receive them.

Streaming Settings

Broadcast Frame Data set to true for streaming.

Open the Data Streaming Pane in Motive's Settings window and set the following settings:

  • Enable - Turn on the Enable setting at the top of the NatNet section.
  • Local Interface - Choose the desired IP network address from this dropdown to stream data over.
    • Loopback
      • This is the local computer IP address (127.0.0.1 or Localhost).
      • Used for streaming data locally on the PC you are running Motive on that does not interact with the LAN.
      • Good option for testing network issues.
    • 192.168.0.1x (typical, but may be different depending on which interface is used to establish a LAN connection)
      • This IP address is the interface of the LAN either by Wi-Fi or Ethernet.
      • This will be the same address the Client application will use to connect to Motive.
  • Transmission Type
    • For streaming over a Wi-Fi network, setting the Transmission Type to Unicast is strongly advised.
  • Select desired data types to stream under streaming options:
    • Rigid Bodies - Enabled (required).
    • Skeletons - Optional for skeleton tracking.
    • Markers (Labeled, Unlabled, Asset) - Disabled for HMDs (advised).
    • Devices - Disabled.
  • Skeleton Coordinates
    • Set to Local.
  • Bone Naming Convention
    • Set the appropriate bone naming convention for the client application. For example, if the character uses the FBX naming convention, this will need to be set to FBX.

Info2.png

Additional Tips

  • For best results, it is advised to run Motive and Unreal Engine separately on different computers, so that they are not competing for processing resources.
  • When streaming the data over a wifi network, Unicast transmission must be used.
  • In order to stream data from the Edit mode, a capture-recording must be playing back in Motive.
  • For additional information on data streaming in general, read through the Data Streaming page.

Plugins


Unreal Engine 4

OptiTrack - Live Link ver. 2.27

The Unreal Engine: OptiTrack Live Link Plugin is primarily intended for Virtual Production applications that require use of real-time cameras or skeleton tracking in Unreal Engine. It interfaces with Unreal Engine's built-in Live Link plugin to allow for for streaming data from Motive in both real-time and runtime. When timecode data is available in Motive, streamed timestamps can be used to align the data with other components within the project.

OptiTrack - Streaming Client ver. 2.27

The Unreal Engine: OptiTrack Streaming Client Plugin is primarily used for Virtual Reality due to it's low latency optimizations. It provides streaming of rigid body and skeleton tracking data from Motive into Unreal Engine, and it also includes helper functions and actors to provide quick integrating of the plugin into the scene.

OptiTrack - VR Latency Optimization ver. 2.27

The OptiTrack - VR Latency Optimization plugin is an optional plugin for SteamVR projects. When enabled, it provides HMD render compensation to minimize latency in VR applications. For users developing for SteamVR using the OptiTrack plugin, whether or not using the OptiTrack OpenVR Driver, it's suggested to have this plugin enabled.

OptiTrack Unreal Engine plugins shown in the Plugins pane in UE4.

Unreal Engine 5

OptiTrack - Streaming Client ver. 3.0

This version of the plugin is compatible with Unreal Engine 5.

OptiTrack - Streaming Client ver. 3.0

This version of the plugin is compatible with Unreal Engine 5.

OptiTrack Unreal Engine plugins shown in the Plugins pane in UE5.

Intergrating HMDs


OptiTrack motion capture systems can be used to track head mounted displays (HMD) and integrate the tracking data into Unreal Engine for VR applications. For instructions on integrating HMD tracking data into Unreal Engine, please refer to the corresponding page:

Info2.png

Supported HMDs

At the time of writing, the following HMDs are supported:

  • HTC VIVE
  • HTC VIVE Pro 1/2
  • Valve Index
  • HP Reverb G2

Warning2.png

Deprecated support for Oculus HMDs:

  • Support for Oculus Integration have been deprecated starting from UE plugin version 1.23; Plugin version 1.22 or below must be used for Oculus HMDs.
  • Vive and Valve Index HMDs are supported through the OpenVR driver.

Wireless Multiplayer Setup


When setting up multiplayer games on wireless clients, it is more beneficial for each client to make direct connection to both the tracking-server (Motive) and the game-server, rather than rebroadcasting the streamed tracking data through the game-server. Then, any of the game related actions that interacts with the tracking data can be processed on the game-server, and this server can send out the corresponding updates to the wireless clients. This allows the wireless clients to only receive both the tracking data or updates without having to send back any information; in other words, minimizing the number of data transfers needed. If wireless clients are sending data there will be a minimum of two transfers on the wireless network, and each transfer of data through wireless network is at risk of latency or lost packets.

WirelessClientSetup.png

Related Pages