Motion Platform Linker Documentation
UE 4.26 - 5.5 | Motion Platform Linker V1.0.1
The Motion Platform Linker plugin is available on the Unreal Engine Marketplace here.
The Motion Platform Linker is a code plugin that integrates an Unreal Engine application with a locally running SimRacingStudio application. With easy-to-use and exposed to blueprint functions you can quickly send Unreal Engine data to SimRacingStudio as telemetry to power a range of motion platforms.
Enable the plugin
First, ensure that the plugin is installed by navigating to the Plugin Window through Edit->Plugins. Then, enable the plugin if it is not already enabled.
Install SimRacingStudio
SimRacingStudio is a plug-and-play application that can power a range of motion platforms and other immersive peripherals. Facilitating the quick and easy transfer of data between Unreal Engine and SimRacingStudio is the purpose of the Motion Platform Linker plugin.
SimRacingStudio can be downloaded for free here. Please note that your Unreal Engine application users will also have to follow the SimRacingStudio related setup if they wish to use their motion platforms with your application.
Configure SimRacingStudio
Once installed, you’re just a couple of clicks away from being able to receive telemetry in SimRacingStudio. When first running the application you will be presented with a screen as shown below. Navigate to the GAMES tab in the top center of the screen.
Once in the GAMES tab, there will be two options on the left-hand side of the screen, Games, and Telemetry. Select Telemetry, and once on the Telemetry screen turn the Capture toggle On. SimRacingStudio is now fully set up to receive and show the telemetry it receives from your Unreal Engine application. SimRacingStudio should look like the following.
Send Data from Unreal Engine
With the plugin enabled and SimRacingStudio installed and configured, you’re ready to send data from your Unreal application. The easiest way to do this is to use the Send Simple Motion Data node, if you need more control over the data you send you can look ahead to the Advanced section of the documentation.
Send Simple Motion Data takes in a Simple Telemetry Packet struct and sends it over UDP to the local SimRacingStudio application. An example of how to use this node can be seen below.
Now, when running your Unreal application SimRacingStudio should be showing your in-game data!
Using the Send Motion Data node
You will want to use the Send Motion Data node for more control over all of the data available to send in the SimRacingStudio API. This node takes in a Telemetry Packet struct and similarly sends it over to a local SimRacingStudio application via UDP. An example of how to use this node can be seen below.
The SimRacingStudio API and Telemetry Packet Struct
Please reference how each of the structs fields will be used and what values are expected to best populate the Telemetry Packet.
Field | Type | Description | Expected Value |
Game | String | Telemetry origin | E.g. Unreal App |
Vehicle Name | String | Vehicle name | E.g. Unreal Vehicle |
Location | String | Venue name | E.g. Unreal Level |
Speed | Float | Wind speed | 0 to 400, in any units |
RPM | Float | Engine current RPM | 0 to 32000 |
Max RPM | Float | Engine max RPM for SLI | 0 to 32000 |
Gear | Int | Vehicle gear | -1 = Reverse, 0 = Neutral, 1 to 9 = Gears |
Roll | Float | Roll | Degrees -180 to +180 |
Pitch | Float | Pitch | Degrees -180 to +180 |
Yaw | Float | Yaw | Degrees -180 to +180 |
Lateral Velocity | Float | Used for traction loss | -10 to 10 |
Lateral Acceleration | Float | Lateral G-Force (Sway) | -10 to 10 |
Vertical Acceleration | Float | Vertical G-Force (Heave) | -10 to 10 |
Longitudinal Acceleration | Float | Longitudinal G-Force (Surge) | -10 to 10 |
Suspension Travel Front Left | Float | Suspension Travel FL | -10 to 10 |
Suspension Travel Front Right | Float | Suspension Travel FR | -10 to 10 |
Suspension Travel Rear Left | Float | Suspension Travel RL | -10 to 10 |
Suspension Travel Rear Right | Float | Suspension Travel RR | -10 to 10 |
Wheel Terrain Front Left | Int | Wheel Terrain Contact Type FL | 0 = All Others, 1 = Rumble Strip, 2 = Asphalt |
Wheel Terrain Front Right | Int | Wheel Terrain Contact Type FR | 0 = All Others, 1 = Rumble Strip, 2 = Asphalt |
Wheel Terrain Rear Left | Int | Wheel Terrain Contact Type RL | 0 = All Others, 1 = Rumble Strip, 2 = Asphalt |
Wheel Terrain Rear Right | Int | Wheel Terrain Contact Type RR | 0 = All Others, 1 = Rumble Strip, 2 = Asphalt |
Motion Platform Linker Demo Project
The demo project that can be downloaded here contains a simple actor undergoing motion with an example of using both of the blueprint exposed functions.
To install, extract the content of the zip into an empty folder and open the Unreal Project by double-clicking on the .uproject file.
This project is designed to run with Unreal 4.26.0 and tested on Unreal 4.26.2