This wiki is intended for older versions of Motive. For the latest documentation, please refer to
docs.optitrack.com

Unreal Engine: Skeleton Streaming

Main PageMotive DocumentationOptiTrack Unreal Engine 4 PluginUnreal Engine Skeleton Streaming

Page Scope

This page provides instructions on how to set up skeleton streaming using the Unreal Engine plugin. Please note that this feature is supported for plugin version 4.19 or above only.

Skeleton Bone Mapping


Info2.png

Skeleton streaming is supported only in plugin versions 1.9 or above.

Tutorial Video

Info2.png

For UE plugin versions higher than 2.0.3

For plugin versions above 2.0.3, the plugin folder must be placed within the UE project directory. Each project in UE is created and stored in a project folder. In this directory, copy and paste the OptiTrack folder extracted from the ZIP file into the Plugins folder. If the folder doesn't exist already, you may need to create a new folder and name it Plugins. After the set up, you will have the OptiTrack plugin included in your project: [Project Folder]\Plugins\Optitrack .

Setup

Follow the below steps to set up skeleton streaming onto Unreal Engine.

1. Create a Animation Blueprint in the 3D View

Step 1. Navigate to the character folder. With Paragon sample characters, it is Characters → Heros → [Character Name] → Meshes.

Step 2. Right-click the blank space in the Content Browser pane, then select Animation → Animation Blueprint.

Step 3. On the pop-up window, select both the OptiTrackAnimInstance at the top parent class section and click on the target skeleton name at the bottom of the popup. Then name the created animation blueprint.

Step 4. Drag the character blueprint into the scene.

Step 5. Select the character blueprint in the 3D View

  • In the Details Pane, select “+ Add Component” and create a new an “OptiTrack Skeleton Component” on the model.
  • Set the “Source Skeleton Asset” equal to the skeleton name in Motive.
  • Adding animation blueprint in UE.
  • Specifying skeleton name under OptiTrack Skeleton Component properties.
  • Creating animation blueprint.

2. Setup the Blueprint

Step 1.Double-click the animation blueprint to open its editor.

Step 2.Right-click the animation graph, then create a new "OptiTrack Skeleton".

Step 3.Right-click the animation graph, then create a new "Get Streaming Client Origin".

Step 4.Right click the animation graph, then create a new "Get Source Skeleton Asset Name".

Step 5.Connect all of the graph nodes together. Specifically, drag the person icon in the "OptiTrack Skeleton" to the person icon on the "Final Animation Pose", then drag the blue and purple circles to each other to connect them.

UE4 BlueprintSetup1.png


3. Assign Bone Mapping

Step 1. Select the OptiTrack Skeleton plugin in the blueprint graph area.

Step 2. Drop down the Bone Mappings property in the Details Pane.

Step 3. Click “Auto Fill Bone Mapping” to automatically assign the bones in the skeleton to the OptiTrack skeleton names.

  • Note: There is no standard for bone naming conventions, so make sure to double check that the auto-assigned names are correct.

Step 4. Hit "Compile" in the top left to build the blueprint.

Auto-mapped skeleton bones.

4. Setup OptiTrack Streaming

Step 1. Open the 3D View

Step 2. Search OptiTrack Client Origin in the Modes pane.

Step 3. Drag the OptiTrack Client Origin into the 3D scene, then select it to access its properties.

  • (Optional) put it at 0,0,0 location.
  • Make sure that streaming settings on both Motive and Unreal match.


5. Click Play

Notes on bone mapping

The OptiTrack Unreal Engine Skeleton Plugin uses bone mapping, not retargeting. This means that the bone segments in Motive map directly to the character model (bone mapping), instead of being translated into something that is usable by a more abstract biped model (retargeting). Because of this non-anatomical skeletons will not map correctly without some additional tweaking.

Practically, this means that you will need to do things like turn off the toe mapping for characters with high heels, adjusting the pelvis bone in Motive or in the model for characters with non-anatomical hip bones, and not use bipeds that are too anatomically different than humans, such as a gorilla or swamp monster.

For example, the character sample below has both a non-anatomical pelvis and high heels. It is preferable to use character models that are more anatomically correct, but in this case, you can do a couple things to mitigate these issues:

1. Turn-off toe streaming

In the example below, since this character is wearing heels, any actor providing data for this model will also need to be wearing heels. To get around this you can just turn off the toe mapping in the OptiTrack Unreal Engine Skeleton Plugin.

UE4 Toe1.png UE4 Toe2.png

2, Adjust the bone segments in Motive

The hip segment on the Countess actor is centered in the stomach rather than in the pelvis, the neck bone in Motive is a bit too long for the model, and the shoulders in Motive do not match the width of the character’s shoulders. By adjusting bones' positions and lengths in Motive, you can make the streamed skeleton to better match the model; however, please note that there are limitations to how much you can do this.)

  • UE4 Bone1.png
  • UE4 Bone2.png