OSC Plugin for CryEngine
OSC - Open Sound Control protocol integration for CryEngine
This plugin relies on oscpkt a very lightweight OSC implementation.
About OSC
Open Sound Control (OSC) is a content format for messaging among computers, sound synthesizers, and other multimedia devices that are optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.
Useful Stuff
- Touch-OSC for iOS/Android (connect CryEngine with your phone)
- OSC-Datamonitor monitors the OSC datastream (find out the data types and message names)
- OSCeleton for OpenNI or for KinectSDK for Kinect skeleton data
- Duration is a timeline for creative coding. Create live performances, interactive installations, and music visualizations by synchronously composing servos, lighting, and projection.
- many more...
Installation / Integration
Use the installer or extract the files to your Cryengine SDK Folder so that the Code and BinXX/Plugins directory match up.
The plugin manager will automatically load up the plugin when the game/editor is restarted or if you directly load it.
Tutorial Video
Flownodes
Please note there can be only one connection node for each IP and port. Use the VariousStuff ValueChannel to reuse connections in different flowgraphs.
Connection
OSC_Plugin:Connection
Connection data source or destination- In
Init
Connects or starts listening (will fireInitAll
output) - In
Close
Disconnect or close (resetsInitAll
output) - In
sHost
host/ip to bind/connect - In
nPort
port to listen/connect - In
nType
Server (Receive) or Client (Send) - Out
InitAll
connect allReceive:Message
orSend:Packet
that should use this connection
- In
Receiving Data (UDP Server)
-
OSC_Plugin:Receive:Message
Registers a message that can be received- In
Init
Registers the message with the connectedConnection
- In
sMessage
Messagetext/identifier/path - Out
InitNext
connect the firstReceive:Value:*
of this message (the order is important)
- In
-
OSC_Plugin:Receive:Value:Float32
Registers a message parameter that will be read- In
Init
Registers the value with the connectedReceive:Message
or viaReceive:Value:*
- Out
InitNext
connect the nextReceive:Value:*
of this message (the order is important) - Out
Value
outputs the value if received
- In
-
OSC_Plugin:Receive:Value:Any
Use this to skip over parameters with unsupported or unkown type- In
Init
Registers the value with the connectedReceive:Message
or viaReceive:Value:*
- Out
InitNext
connect the nextReceive:Value:*
of this message (the order is important) - no Value
- In
-
OSC_Plugin:Receive:Value:Int32
same as Float32 -
OSC_Plugin:Receive:Value:Int64
same as Float32 -
OSC_Plugin:Receive:Value:Double64
same as Float32 -
OSC_Plugin:Receive:Value:String
same as Float32 -
OSC_Plugin:Receive:Value:Bool
same as Float32
Sending Data (UDP Client)
-
OSC_Plugin:Send:Packet
Register a packet that can be sent (define at least one Bundle if you have more then one message)- In
Init
registers the packet in the connectedConnection
- In
Send
triggers a manual send on this packets content - In
bAutoSend
Activate automatic sending on value change inside this packet - Out
InitNext
connect the firstSend:Bundle
orSend:Message
that is inside this packet
- In
-
OSC_Plugin:Send:BundleStart
Start a Bundle inside a packet (Bundles can be nested)- In
Init
Start a new Bundle inside the packet/bundle - Out
InitNext
connect the nextSend:Value:*
,Send:Message
orSend:Bundle*
of this packet (the order is important)
- In
-
OSC_Plugin:Send:BundleEnd
End the Bundle- In
Init
End the current Bundle inside the packet/bundle - Out
InitNext
connect the nextSend:Value:*
,Send:Message
orSend:Bundle*
of this packet (the order is important)
- In
-
OSC_Plugin:Send:Message
Register a message in a packet- In
Init
registers the message in the connectedSend:Packet
,Send:Bundle
or viaSend:Value:*
- In
sMessage
Messagetext/identifier/path - Out
InitNext
connect the firstSend:Value
of this message
- In
-
OSC_Plugin:Send:Value:Float32
Registers a message parameter that will be sent- In
Init
receive the value fromSend:Message
- In
Value
if triggered with a new value it will send the packet if auto send is active, if not then it will save the value and it will get sent whenSend:Packet
->Send
is triggered. - Out
InitNext
connect the nextSend:Value:*
,Send:Message
orSend:Bundle*
of this packet (the order is important)
- In
-
OSC_Plugin:Send:Value:Int32
same as Float32 -
OSC_Plugin:Send:Value:Int64
same as Float32 -
OSC_Plugin:Send:Value:Double64
same as Float32 -
OSC_Plugin:Send:Value:String
same as Float32 -
OSC_Plugin:Send:Value:Bool
same as Float32