OSCToolset is a plugin for Unreal Engine 5 that simplifies the OSC workflow from TouchDesginer. It is designed to only send messages during runtime (while playing) in the UE5 session. This helps to improve performance and creates a two way communication between TouchDesigner and UE5.
In the files, docs and examples are included as OSCToolset_Examples.
The plugin comes in two parts:
OSCToolset.tox (the component for TouchDesigner that will send data)
To be able to send data to Unreal Engine you use the OSCToolset component in TouchDesigner. It currently supports the following data types. Event, Float, Vector 2, Vector 3, Color and Transform.
-
Message FPS - Limits the OSC send rate to improve performance.
-
Fix UE5 frame rate - On certain computers or setups, the GPU and CPU load of the project can be too great to handle for your PC. In Windows, it could automatically lower the performance of TouchDesigner by reducing its CPU budget. You can fix by toggling this On and choosing a working frame rate.
-
Channel pool - Shows you how many channels there are from all the selected CHOPs.
-
Connected channels - Shows the number of channels that UE5 has connected to.
-
Channel count warning - Allows you to set a warning for a number of connected channels.
-
CHOP Out - UE5 events like BeginPlay, EndPlay and the PlayState.
-
DAT Out - A list of connected addresses and what Actors in UE5 are owners for debugging.
There are two different types of message that you can send from TD. A normal OSC message and a Bundle.
Messages - [Event, Float]
- For Event and Float the channel name becomes the address of the message.
Bundles - [Vec2, Vec3, Color, Transform]
The naming of your channels in a bundle type is not important, as the Address paramter in the OSCToolset component will dictate the name to set in the UE5 component.
Bundles are packed by the channel index order, you should be carefull how you set them up. The orders are as follows:
-
Vec2 - [0-X, 1-Y]
-
Vec3 - [0-X, 1-Y, 2-Z]
-
Color- [0-R, 1-G, 2-B, 3-A]
-
Transform - [0-tX, 1-tY, 2-tZ, 3-rX, 4-rY, 5-rZ, 6-sX, 7-sY, 8-sZ]
OSCToolset.uplugin (the plugin for Unreal Engine that will receive and parse data)
- A collection of actor components that can be attached or bound to any actor. There is also the option to get the value on UE5's tick rate. This ensures that the values are smoothed properly while giving you room to lower the Message FPS rate from TouchDesigner.
-
A game mode, that inherits from GM_OSCToolset. You will not need to setup any OSC server or client in Unreal. The way that the plugin is structured, ensures that actors and components are initialized properly and with ease.