5.4 KiB
Unreal Rundown Server API
Descrption
As I understand, this experimental feature of Motion Design Plugin that allow us to make several action with rundowns. This documentation based on Unreal Engine 5.5.1 and Motion Design v1.0. The initial setup of the rundown server is describe here.
Establishing connection
The port number and the server bind address is setup in unreal engine project setting window section Plugins|Websocket Messaging|Transport. Another important thing is to select the right transport type (JSON|CBOR).
After establishing the websocket connection, you will receive a lot of messages that does not you need. First of all, you must send an AvaRundownPing and the the rundown server will send you back an AvaRundownPong with a Sender field needed to start sending other commands.
The Pong message Sender field is the UUID of the Rundown server’s endpoint in the message bus system. This is then used as the Recipients field for all other messages from the Websocket client.
--- Message Bus Handshake with Rundown Server in Unreal Engine 5.5 Official documentation
Once you have this precious (it takes me days to finnaly understand that without at least on Recipients in the array nothing will happen), just run some commands
Common Fields
Sender
An Id you can choose. It's something like your the expeditor and the rundownServer will respond backl to you by placing Sender yopu provided in the Recipients field.
Recipients
Array of recipients of the message
MessageType
This is the real endpoints of the message, something like the command address. The MessageType can have multiple usage out of RundownServer. For example, with http commands via websockets or managing remote control presets.
Scope
Enum determinig the scope of the message bus system. For the rundownServer it always will be "Network"
Expiration
Unix time at which the message gets discarded. Important
Annotations
Optional message annotations. I've never use this for now.
Message
Content of the message. This is the specific part of the messaging system. It's parameters that you send to the server.
Commands
ServerInfo/Script/AvalancheMedia.AvaRundownPing
example:
{
"Sender": "F2DCD99C267C4F84B50CF091AA4ED608",
"Recipients": [],
"MessageType": "/Script/AvalancheMedia.AvaRundownPing",
"Expiration": 253402300799,
"Scope": "Network",
"Annotations": {},
"Message":
{
"requestId" : -1 // could be customize to your needs
}
}
ServerInfo/Script/AvalancheMedia.AvaRundownGetServerInfo
example:
{
"Sender": "F2DCD99C267C4F84B50CF091AA4ED608",
"Recipients": [
"139696A842C8861F52E756BB60AA8661"
],
"MessageType": "/Script/AvalancheMedia.AvaRundownGetServerInfo",
"Expiration": 253402300799,
"Scope": "Network",
"Annotations": {},
"Message":
{
"requestId" : -1 // could be customize to your needs
}
}
ServerInfo/Script/AvalancheMedia.AvaRundownGetRundowns
example:
{
"Sender": "F2DCD99C267C4F84B50CF091AA4ED608",
"Recipients": [
"139696A842C8861F52E756BB60AA8661"
],
"MessageType": "/Script/AvalancheMedia.AvaRundownGetRundowns",
"Expiration": 253402300799,
"Scope": "Network",
"Annotations": {},
"Message":
{
"requestId" : -1 // could be customize to your needs
}
}
ServerInfo/Script/AvalancheMedia.AvaRundownLoadRundown
example:
{
"Sender": "F2DCD99C267C4F84B50CF091AA4ED608",
"Recipients": [
"139696A842C8861F52E756BB60AA8661"
],
"MessageType": "/Script/AvalancheMedia.AvaRundownLoadRundown",
"Expiration": 253402300799,
"Scope": "Network",
"Annotations": {},
"Message":
{
"rundown": "/Game/Rundowns/001Rundow.001Rundown", // rundown Path within unreal
"requestId" : -1 // could be customize to your needs
}
}
More infos and useful links
Unreal Engine 5.5 Official Documentation
- Rundown Server WebSocket API Reference
- Setting Up Rundown Server for Motion
- General Documentation for Motion Design