Adding OSC to Unreal 4.27

Go to https://hexler.net/touchosc and install  TouchOSC– this is a PC editor that you can use to make TouchOSC interfaces.
Also, download Protokol from Hexler net: “originally built as a MIDI monitor and Open Sound Control network checker, Protokol is designed to handle any complex message stream.”
– 
so we can use Protokol to easily monitor what’s going on.

It’s also possible to use the TouchOSC App to control from your phone.
(You set the IP of the TouchOSC bridge – that’s the PC running Unreal – if its on the network it should show up.)

(For MIDI messages get TouchOSC bridge“TouchOSC Bridge is a standalone application that relays MIDI messages sent from TouchOSC to any MIDI capable application on your computer (and vice versa)”  – TouchOSC Bridge is only needed for MIDI messages, sent wirelessly over the network.)

 

TouchOSC in edit mode

 

TouchOSC in play mode

TouchOSC has an Edit mode, where you create controls and a Play mode where the buttons are working and it sends out OSC messages.
In the image above I have made a single rotary encoder (/encoder1)

In TouchOSC under Edit/Connections/OSC I have set a Connection to the internal network IP of the PC I’m running TouchOSC on and I’ve set the port, and I’ve set another connection for a second PC on the network. (You can set up to 5 other connections to local PCs.

Note seems like if the receive port is set also then the computer TouchOSC is running on wont get messages. AND if you hit browse you may see several connections – I think it gets confused if there are several interfaces 

Note each PC will need its own Port forwarded by your router. (On my router under WAN there is a setting for the Virtual Server/Port Forwarding)
I’m setting the internal and external port for each machine to say 8905 and the Protocol to UDP.

Also for each button or control in TouchOSC you set where the OSC is going to. Select the control – here I’ve got the rotary encoder – and under the Control settings pane under OSC/Connections set the Connections. (1 is always defaulted) here in the diagram the 1, and 2 are lit so OSC from this rotary encoder is going to Connection 1 and Connection 2 to match what I set up above.

Config each control in Touch OSC to fix where its sending its messages to.

Now you can press play in TouchOSC and the controls become active.
Run Protokol on one of the host machines and set it to look at the correct port and data format e.g OSC.
Then when you move the TouchOSC Encoder in play mode you should see data streaming into Protokol like this image:

Protokol getting data

So now we are sending and receiving data on our local network and we can monitor the results. Also the ports are forwarded correctly.

Hexler say
“note that Windows tends to be picky with its firewall settings, so doublecheck firewall settings as TouchOSC, Unreal, etc., applications that are trying to send/receive messages over the network will need firewall permissions.

This tends to be the biggest culprit in connectivity, so make sure to doublecheck firewall settings on the various machines if you are having issues sending or receiving messages.”

Now it’s time to get Unreal involved.

So let’s have a look at that.

. . . . . . . .

In Unreal

Enable the Unreal OSC (Open Sound Control) plugin and restart editor.
Now we need to make a blueprint of type actor and add to the level.

First part – we create an OSC server to get messages. This will receive messages from TouchOSC.
The ReceiveIPaddress can be left blank if TouchOSC is on the same machine, but you do need the port number.


second part looks like this

the OSC message sting comes in looking like this /<NameOfController>/<SomeValue>
Ive made some macros to sort out what happens.
In OSCMessageGettermacro the incoming message is checked to see if it equals a specific string.
If if does, then the value is either printed to the screen, or it passes out so we can use along with a True or False.

This is OSCMessageGetter Macro

OSCMessageGetter macro

The OSC message gets passed through so I can use it with my OSCMesssgeSender Short Versionthis sends the OSC message out over the local network to client PC’s.

This is what OSCMesssgeSender Short Version macro looks like.
Basically, I’m targeting the client computers via their IP address.
This is OK because I only have a couple to deal with.

Ideally multiple PCs could listen for TouchOSC messages from one PC, but IDK how to do that so I send the message to PC1 and send it to PC 2.

OSCMesssgeSender Short Version macro

Over on each client machine the set up is very similarl.
It has its own IP set and its port forwarded in the router.
It just has the messages going to my OSCMessageGetter macro, which I can then use to control things.

Client Machine

Below Ive included the BP code for the Macros

Copy text below and in a BP paste it as a macro like this:

 

OSCMessageGetter macro
. . . . . . . . . . .

BPGraph(GraphName=”OSCMessageGetter”,GraphType=GT_Macro,OriginalBlueprint=Blueprint'”/Game/Blueprints/REALINNNN/OSCINPUT.OSCINPUT”‘,NodesString=”Begin Object Class=/Script/BlueprintGraph.K2Node_Tunnel Name=\”K2Node_Tunnel_0\”\r\n bCanHaveOutputs=True\r\n MetaData=(ToolTip=NSLOCTEXT(\”\”, \”3C6D07DA4D08A3EF804751AA3FD4E82E\”, \”OSCMessageGetter\”),InstanceTitleColor=(R=0.000000,G=0.968281,B=1.000000,A=1.000000))\r\n NodePosX=-5584\r\n NodePosY=-704\r\n NodeGuid=F3328DBE489B45E3F1A818B8D921AA9F\r\n CustomProperties Pin (PinId=DC3B59C24B9823052399B5918776A8B7,PinName=\”In\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_IfThenElse_7 57FE0DC343ADF9B7E3D01BAF1E7EB36D,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=70845EF14B03A2B4AEF7F3A5B02F697C,PinName=\”Incoming Message string\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_32 836BD7EA4D6580B0706F4295FDD8838E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=891B44F7429548F071FB56B93298515B,PinName=\”Equals to Target String?\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_32 ABF7E99C43D0AB241FEF809F12C43E67,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=9E5269844E6A7E3F1696E2B3783CC4C3,PinName=\”OSCMessageIn\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_33 031B4664492711FABA3B3DA508923CFF,K2Node_Tunnel_1 663C2F584A8A9066735B2F95B01C850E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=7C6A71F942139EA47ED4698FA50155D3,PinName=\”bPrintToScreen?\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”bool\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”true\”,AutogeneratedDefaultValue=\”true\”,LinkedTo=(K2Node_CallFunction_34 4DF954544BD024972A8E1EAE6FF47020,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=89F6316846BC742521418B9C3A4FB9A3,PinName=\”TextColor\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/CoreUObject.LinearColor\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”(R=1.000000,G=0.910684,B=0.000000,A=1.000000)\”,AutogeneratedDefaultValue=\”(R=1.000000,G=0.910684,B=0.000000,A=1.000000)\”,LinkedTo=(K2Node_CallFunction_34 B71DC95742C6993225654A84182A22D8,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties UserDefinedPin (PinName=\”In\”,PinType=(PinCategory=\”exec\”),DesiredPinDirection=EGPD_Output)\r\n CustomProperties UserDefinedPin (PinName=\”Incoming Message string\”,PinType=(PinCategory=\”string\”),DesiredPinDirection=EGPD_Output)\r\n CustomProperties UserDefinedPin (PinName=\”Equals to Target String?\”,PinType=(PinCategory=\”string\”),DesiredPinDirection=EGPD_Output)\r\n CustomProperties UserDefinedPin (PinName=\”OSCMessageIn\”,PinType=(PinCategory=\”struct\”,PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,bIsReference=True,bIsConst=True),DesiredPinDirection=EGPD_Output)\r\n CustomProperties UserDefinedPin (PinName=\”bPrintToScreen?\”,PinType=(PinCategory=\”bool\”),DesiredPinDirection=EGPD_Output,PinDefaultValue=\”true\”)\r\n CustomProperties UserDefinedPin (PinName=\”TextColor\”,PinType=(PinCategory=\”struct\”,PinSubCategoryObject=ScriptStruct\’\”/Script/CoreUObject.LinearColor\”\’),DesiredPinDirection=EGPD_Output,PinDefaultValue=\”(R=1.000000,G=0.910684,B=0.000000,A=1.000000)\”)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_Tunnel Name=\”K2Node_Tunnel_1\”\r\n bCanHaveInputs=True\r\n NodePosX=-4144\r\n NodePosY=-304\r\n NodeGuid=196DBFB34D66893DCA9FFD8DAC0C87F8\r\n CustomProperties Pin (PinId=416CBCB6492540976F7E60B0FFBA07BC,PinName=\”True\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_ExecutionSequence_0 608F29204A5EAA3CDFA236929BE72E70,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=B4F531274A411FD387C73A9727C3798E,PinName=\”False\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_IfThenElse_7 1596961C49AA14F0F98883A1FE243C00,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=473B6A6546D8404ADAB8548E33DFD3D7,PinName=\”MessageFloatValue\”,PinType.PinCategory=\”float\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_33 F8534764464A3DED5E8B348407ECD63F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=663C2F584A8A9066735B2F95B01C850E,PinName=\”OSCMessagePassThru\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 9E5269844E6A7E3F1696E2B3783CC4C3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties UserDefinedPin (PinName=\”True\”,PinType=(PinCategory=\”exec\”),DesiredPinDirection=EGPD_Input)\r\n CustomProperties UserDefinedPin (PinName=\”False\”,PinType=(PinCategory=\”exec\”),DesiredPinDirection=EGPD_Input)\r\n CustomProperties UserDefinedPin (PinName=\”MessageFloatValue\”,PinType=(PinCategory=\”float\”),DesiredPinDirection=EGPD_Input)\r\n CustomProperties UserDefinedPin (PinName=\”OSCMessagePassThru\”,PinType=(PinCategory=\”struct\”,PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,bIsReference=True,bIsConst=True),DesiredPinDirection=EGPD_Input)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name=\”K2Node_CallFunction_33\”\r\n FunctionReference=(MemberParent=Class\’\”/Script/OSC.OSCManager\”\’,MemberName=\”GetFloat\”)\r\n NodePosX=-4800\r\n NodePosY=-784\r\n ErrorType=1\r\n ErrorMsg=\”The current value of the \\\’ Message generated from expanding OSCMessage Getter \\\’ pin is invalid: \\\’Message\\\’ in action \\\’Get OSC Message Float At Index\\\’ must have an input wired into it (\\\”by ref\\\” params expect a valid input to operate on).\\nThe current value of the \\\’ Message generated from expanding OSCMessage Getter \\\’ pin is invalid: \\\’Message\\\’ in action \\\’Get OSC Message Float At Index\\\’ must have an input wired into it (\\\”by ref\\\” params expect a valid input to operate on).\”\r\n NodeGuid=C59A5CCE4399DD5D1B879799CC8B4E16\r\n CustomProperties Pin (PinId=EEADFDA34C103770D97863AD674C32AC,PinName=\”execute\”,PinToolTip=\”\\nExec\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_IfThenElse_7 A6EA56A747BB346B57D10DA2C433C321,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=AEB6291142B82342ABE8E6976C5C6BC9,PinName=\”then\”,PinToolTip=\”\\nExec\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_ExecutionSequence_0 C57A0ABD436472BFBCBBCC87D47B0F50,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=78E48AE94971DB1E21000292B119DCF4,PinName=\”self\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”Target\”, \”Target\”),PinToolTip=\”Target\\nOSCManager Object Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/OSC.OSCManager\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultObject=\”/Script/OSC.Default__OSCManager\”,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=031B4664492711FABA3B3DA508923CFF,PinName=\”Message\”,PinToolTip=\”Message\\nOSCMessage Structure (by ref)\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 9E5269844E6A7E3F1696E2B3783CC4C3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=FA3363CD44D2F71D6D8E80B0A6A9E82B,PinName=\”Index\”,PinToolTip=\”Index\\nInteger\”,PinType.PinCategory=\”int\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”0\”,AutogeneratedDefaultValue=\”0\”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=F8534764464A3DED5E8B348407ECD63F,PinName=\”Value\”,PinToolTip=\”Value\\nFloat\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”float\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”0.0\”,AutogeneratedDefaultValue=\”0.0\”,LinkedTo=(K2Node_CallFunction_1 9F129E1449C64E271A1176BD98676EBD,K2Node_Tunnel_1 473B6A6546D8404ADAB8548E33DFD3D7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=43843DA84013F2FA865A2AAC8648B7AF,PinName=\”ReturnValue\”,PinFriendlyName=NSLOCTEXT(\”\”, \”EEE9C3D2447BC68B997F25BD1F61C65A\”, \”Succeeded\”),PinToolTip=\”Succeeded\\nBoolean\\n\\nSet Value to float at provided Index in OSCMessage if in bounds and type matches\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”bool\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”false\”,AutogeneratedDefaultValue=\”false\”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name=\”K2Node_CallFunction_34\”\r\n FunctionReference=(MemberParent=Class\’\”/Script/Engine.KismetSystemLibrary\”\’,MemberName=\”PrintString\”)\r\n NodePosX=-4112\r\n NodePosY=-816\r\n AdvancedPinDisplay=Shown\r\n EnabledState=DevelopmentOnly\r\n NodeGuid=316A135244D7FEC822FBAA8C1603A487\r\n CustomProperties Pin (PinId=0FD747D1430A5BB5C414F0A6A8D66F39,PinName=\”execute\”,PinToolTip=\”\\nExec\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_ExecutionSequence_0 F2D283ED44E530B9E5E02989E44002E0,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=E5123EDD4606A7303D6F29A943EB6825,PinName=\”then\”,PinToolTip=\”\\nExec\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=74D24E9A4D9E0F5140DC459827726FBE,PinName=\”self\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”Target\”, \”Target\”),PinToolTip=\”Target\\nKismet System Library Object Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/Engine.KismetSystemLibrary\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultObject=\”/Script/Engine.Default__KismetSystemLibrary\”,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=066C1A254C5AFFE584DD5FB7A3957E91,PinName=\”WorldContextObject\”,PinToolTip=\”World Context Object\\nObject Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/CoreUObject.Object\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=True,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=7BEB175741EEFA3077F11C821D56F376,PinName=\”InString\”,PinToolTip=\”In String\\nString\\n\\nThe string to log out\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”Hello\”,AutogeneratedDefaultValue=\”Hello\”,LinkedTo=(K2Node_CallFunction_1 4159717A4502CD6A132A318B72B636A9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=4DF954544BD024972A8E1EAE6FF47020,PinName=\”bPrintToScreen\”,PinToolTip=\”Print to Screen\\nBoolean\\n\\nWhether or not to print the output to the screen\”,PinType.PinCategory=\”bool\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”true\”,AutogeneratedDefaultValue=\”true\”,LinkedTo=(K2Node_Tunnel_0 7C6A71F942139EA47ED4698FA50155D3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=C569BB8644FEE8F413A2AA8125982809,PinName=\”bPrintToLog\”,PinToolTip=\”Print to Log\\nBoolean\\n\\nWhether or not to print the output to the log\”,PinType.PinCategory=\”bool\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”false\”,AutogeneratedDefaultValue=\”true\”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=B71DC95742C6993225654A84182A22D8,PinName=\”TextColor\”,PinToolTip=\”Text Color\\nLinear Color Structure\\n\\nWhether or not to print the output to the console\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/CoreUObject.LinearColor\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”(R=0.000000,G=0.660000,B=1.000000,A=1.000000)\”,AutogeneratedDefaultValue=\”(R=0.000000,G=0.660000,B=1.000000,A=1.000000)\”,LinkedTo=(K2Node_Tunnel_0 89F6316846BC742521418B9C3A4FB9A3,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=2DB6D3B94E640F779874E08BA9279F88,PinName=\”Duration\”,PinToolTip=\”Duration\\nFloat\\n\\nThe display duration (if Print to Screen is True). Using negative number will result in loading the duration time from the config.\”,PinType.PinCategory=\”float\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”2.000000\”,AutogeneratedDefaultValue=\”2.000000\”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=True,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name=\”K2Node_CallFunction_1\”\r\n bIsPureFunc=True\r\n FunctionReference=(MemberParent=Class\’\”/Script/Engine.KismetStringLibrary\”\’,MemberName=\”Conv_FloatToString\”)\r\n NodePosX=-4256\r\n NodePosY=-736\r\n NodeGuid=2C962B464E488A7891F8ECB3961D913A\r\n CustomProperties Pin (PinId=FAB208C745EFECBB38B1E182CF9CA845,PinName=\”self\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”Target\”, \”Target\”),PinToolTip=\”Target\\nKismet String Library Object Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/Engine.KismetStringLibrary\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultObject=\”/Script/Engine.Default__KismetStringLibrary\”,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=9F129E1449C64E271A1176BD98676EBD,PinName=\”InFloat\”,PinToolTip=\”In Float\\nFloat\”,PinType.PinCategory=\”float\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”0.0\”,AutogeneratedDefaultValue=\”0.0\”,LinkedTo=(K2Node_CallFunction_33 F8534764464A3DED5E8B348407ECD63F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=4159717A4502CD6A132A318B72B636A9,PinName=\”ReturnValue\”,PinToolTip=\”Return Value\\nString\\n\\nConverts a float value to a string\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_34 7BEB175741EEFA3077F11C821D56F376,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name=\”K2Node_CallFunction_32\”\r\n bIsPureFunc=True\r\n FunctionReference=(MemberParent=Class\’\”/Script/Engine.KismetStringLibrary\”\’,MemberName=\”EqualEqual_StrStr\”)\r\n NodePosX=-5344\r\n NodePosY=-640\r\n NodeGuid=57475E2A415434439139CBB2576E57BF\r\n CustomProperties Pin (PinId=AF7E52A84BB80C8EE2DAE2B456CB3E1B,PinName=\”self\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”Target\”, \”Target\”),PinToolTip=\”Target\\nKismet String Library Object Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/Engine.KismetStringLibrary\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultObject=\”/Script/Engine.Default__KismetStringLibrary\”,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=836BD7EA4D6580B0706F4295FDD8838E,PinName=\”A\”,PinToolTip=\”A\\nString\\n\\nThe string to compare against\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 70845EF14B03A2B4AEF7F3A5B02F697C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=ABF7E99C43D0AB241FEF809F12C43E67,PinName=\”B\”,PinToolTip=\”B\\nString\\n\\nThe string to compare\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 891B44F7429548F071FB56B93298515B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=FE24925A4225A2A603877F808CA52493,PinName=\”ReturnValue\”,PinToolTip=\”Return Value\\nBoolean\\n\\nTrue if the strings are equal, false otherwise\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”bool\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”false\”,AutogeneratedDefaultValue=\”false\”,LinkedTo=(K2Node_IfThenElse_7 C3BBAC8D4FEC5D855A0BA38568569A32,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_IfThenElse Name=\”K2Node_IfThenElse_7\”\r\n NodePosX=-5152\r\n NodePosY=-784\r\n NodeGuid=03324A344481E560D74B7B8B0F0B5244\r\n CustomProperties Pin (PinId=57FE0DC343ADF9B7E3D01BAF1E7EB36D,PinName=\”execute\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 DC3B59C24B9823052399B5918776A8B7,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=C3BBAC8D4FEC5D855A0BA38568569A32,PinName=\”Condition\”,PinType.PinCategory=\”bool\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”true\”,AutogeneratedDefaultValue=\”true\”,LinkedTo=(K2Node_CallFunction_32 FE24925A4225A2A603877F808CA52493,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=A6EA56A747BB346B57D10DA2C433C321,PinName=\”then\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”true\”, \”true\”),Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_33 EEADFDA34C103770D97863AD674C32AC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=1596961C49AA14F0F98883A1FE243C00,PinName=\”else\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”false\”, \”false\”),Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_1 B4F531274A411FD387C73A9727C3798E,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_ExecutionSequence Name=\”K2Node_ExecutionSequence_0\”\r\n NodePosX=-4400\r\n NodePosY=-848\r\n NodeGuid=519A9C0E4F491C92B380B69278E0ADCB\r\n CustomProperties Pin (PinId=C57A0ABD436472BFBCBBCC87D47B0F50,PinName=\”execute\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_33 AEB6291142B82342ABE8E6976C5C6BC9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=608F29204A5EAA3CDFA236929BE72E70,PinName=\”then_0\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_1 416CBCB6492540976F7E60B0FFBA07BC,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=F2D283ED44E530B9E5E02989E44002E0,PinName=\”then_1\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_34 0FD747D1430A5BB5C414F0A6A8D66F39,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name=\”EdGraphNode_Comment_0\”\r\n CommentColor=(R=1.000000,G=0.000000,B=0.000000,A=1.000000)\r\n bCommentBubbleVisible_InDetailsPanel=False\r\n NodePosX=-5626\r\n NodePosY=-1009\r\n NodeWidth=1760\r\n NodeHeight=896\r\n bCommentBubblePinned=False\r\n bCommentBubbleVisible=False\r\n NodeComment=\”This one gets the incoming string and if it equals the string we want then it prints the message, outputs the value and fires true or false. Also passes the origninal message thru so it can be used with my OSCMessageSender_Shortversion.\”\r\n NodeGuid=949BCB8E475BB3BFB0B69AADC0ECBE48\r\nEnd Object\r\n”)

 

. . . . . END. . . . . .

Here is the OSCMesssgeSender Short Version macro

. . . . . . . . . . . .

BPGraph(GraphName=”OSCMessageSender_ShortVersion”,GraphType=GT_Macro,OriginalBlueprint=Blueprint'”/Game/Blueprints/REALINNNN/OSCINPUT.OSCINPUT”‘,NodesString=”Begin Object Class=/Script/BlueprintGraph.K2Node_Tunnel Name=\”K2Node_Tunnel_0\”\r\n bCanHaveOutputs=True\r\n MetaData=(InstanceTitleColor=(R=0.000000,G=0.968281,B=1.000000,A=1.000000))\r\n NodePosX=-4304\r\n NodePosY=-1040\r\n NodeGuid=ECD942F1435DBFBACB887FB67373C57D\r\n CustomProperties Pin (PinId=5C5351B444A35759611351BCC6662B54,PinName=\”In\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_17 E3193C1B4FC0AC14B5CC3BB891E008E9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=CFC82BCF4022434D5CAB2DBDF9739BFA,PinName=\”IPAddress to send to\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”192.168.1.100\”,AutogeneratedDefaultValue=\”192.168.1.100\”,LinkedTo=(K2Node_CallFunction_17 76EFC05B4D0EF595EBFF45B5EF6D3774,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=56B53AE84C31B13780E48FA2D000981F,PinName=\”Port to send to\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”int\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”8900\”,AutogeneratedDefaultValue=\”8900\”,LinkedTo=(K2Node_CallFunction_17 C20240A64676AE52F94D1E95D5B5D889,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=821C20A2455EFBE47A0F7D9CB499AF85,PinName=\”Message\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Knot_0 387D1C8243F2C022DEBCF9B0CED5B87B,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties UserDefinedPin (PinName=\”In\”,PinType=(PinCategory=\”exec\”),DesiredPinDirection=EGPD_Output)\r\n CustomProperties UserDefinedPin (PinName=\”IPAddress to send to\”,PinType=(PinCategory=\”string\”),DesiredPinDirection=EGPD_Output,PinDefaultValue=\”192.168.1.100\”)\r\n CustomProperties UserDefinedPin (PinName=\”Port to send to\”,PinType=(PinCategory=\”int\”),DesiredPinDirection=EGPD_Output,PinDefaultValue=\”8900\”)\r\n CustomProperties UserDefinedPin (PinName=\”Message\”,PinType=(PinCategory=\”struct\”,PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,bIsReference=True),DesiredPinDirection=EGPD_Output)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_Tunnel Name=\”K2Node_Tunnel_1\”\r\n bCanHaveInputs=True\r\n NodePosX=-2464\r\n NodePosY=-1056\r\n NodeGuid=C9565DC340501A59D4A3E19A7147A04A\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name=\”K2Node_CallFunction_17\”\r\n FunctionReference=(MemberParent=Class\’\”/Script/OSC.OSCManager\”\’,MemberName=\”CreateOSCClient\”)\r\n NodePosX=-4032\r\n NodePosY=-1040\r\n NodeGuid=0C293DDF4B9A3B1D7787DDB8FBB3EB7A\r\n CustomProperties Pin (PinId=E3193C1B4FC0AC14B5CC3BB891E008E9,PinName=\”execute\”,PinToolTip=\”\\nExec\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 5C5351B444A35759611351BCC6662B54,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=F4DCB6C247868E8EBAAD2DB5AAB3AF24,PinName=\”then\”,PinToolTip=\”\\nExec\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_18 F979D49640657D7AA16C789432126DFE,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=9A608864419C2057C2DA9397DDB4AF08,PinName=\”self\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”Target\”, \”Target\”),PinToolTip=\”Target\\nOSCManager Object Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/OSC.OSCManager\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultObject=\”/Script/OSC.Default__OSCManager\”,PersistentGuid=00000000000000000000000000000000,bHidden=True,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=76EFC05B4D0EF595EBFF45B5EF6D3774,PinName=\”SendIPAddress\”,PinToolTip=\”Send IPAddress\\nString\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 CFC82BCF4022434D5CAB2DBDF9739BFA,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=C20240A64676AE52F94D1E95D5B5D889,PinName=\”Port\”,PinToolTip=\”Port\\nInteger\”,PinType.PinCategory=\”int\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,DefaultValue=\”0\”,AutogeneratedDefaultValue=\”0\”,LinkedTo=(K2Node_Tunnel_0 56B53AE84C31B13780E48FA2D000981F,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=C76587E84075502C3D31C5A1A7F3F5F1,PinName=\”ClientName\”,PinToolTip=\”Client Name\\nString\”,PinType.PinCategory=\”string\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=31822C704325565FB1F0DA8C550EFD25,PinName=\”Outer\”,PinToolTip=\”Outer\\nObject Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/CoreUObject.Object\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,AutogeneratedDefaultValue=\”None\”,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=84B429DD4B0897A6E0A8B891B3F3C27C,PinName=\”ReturnValue\”,PinToolTip=\”Return Value\\nOSCClient Object Reference\\n\\nCreates an OSC Client. If SendIPAddress left empty (or \\\’0\\\’), attempts to use\\nattempts to use LocalHost IP address.\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/OSC.OSCClient\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_18 D877B8E24B30F2146A3741BEAB1066B9,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_CallFunction Name=\”K2Node_CallFunction_18\”\r\n FunctionReference=(MemberParent=Class\’\”/Script/OSC.OSCClient\”\’,MemberName=\”SendOSCMessage\”)\r\n NodePosX=-3600\r\n NodePosY=-1056\r\n NodeGuid=580EB7A5484A81772552249F57A6EA26\r\n CustomProperties Pin (PinId=F979D49640657D7AA16C789432126DFE,PinName=\”execute\”,PinToolTip=\”\\nExec\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_17 F4DCB6C247868E8EBAAD2DB5AAB3AF24,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=516AD21748C1F3D4FAE65BAFD3B14C8C,PinName=\”then\”,PinToolTip=\”\\nExec\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”exec\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=None,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=D877B8E24B30F2146A3741BEAB1066B9,PinName=\”self\”,PinFriendlyName=NSLOCTEXT(\”K2Node\”, \”Target\”, \”Target\”),PinToolTip=\”Target\\nOSCClient Object Reference\”,PinType.PinCategory=\”object\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=Class\’\”/Script/OSC.OSCClient\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=False,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_17 84B429DD4B0897A6E0A8B891B3F3C27C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=8E0967B04616F4E13A77FE9A2AEC5A8C,PinName=\”Message\”,PinToolTip=\”Message\\nOSCMessage Structure (by ref)\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Knot_0 430C82094FAB69F1852993B37A2FA6E5,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\nBegin Object Class=/Script/UnrealEd.EdGraphNode_Comment Name=\”EdGraphNode_Comment_4\”\r\n CommentColor=(R=1.000000,G=0.910684,B=0.000000,A=1.000000)\r\n bCommentBubbleVisible_InDetailsPanel=False\r\n NodePosX=-4080\r\n NodePosY=-1280\r\n NodeWidth=672\r\n NodeHeight=496\r\n bCommentBubblePinned=False\r\n bCommentBubbleVisible=False\r\n NodeComment=\”Sending Simple Message intended to merely pass on the message recieved from TouchOSC to a client type computer.\”\r\n NodeGuid=71B742F446F1A91E08CC78897890DCFF\r\nEnd Object\r\nBegin Object Class=/Script/BlueprintGraph.K2Node_Knot Name=\”K2Node_Knot_0\”\r\n NodePosX=-3920\r\n NodePosY=-784\r\n NodeGuid=B44E3CCF4ED8D1B07C2522A7B8161B86\r\n CustomProperties Pin (PinId=387D1C8243F2C022DEBCF9B0CED5B87B,PinName=\”InputPin\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_Tunnel_0 821C20A2455EFBE47A0F7D9CB499AF85,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=True,bAdvancedView=False,bOrphanedPin=False,)\r\n CustomProperties Pin (PinId=430C82094FAB69F1852993B37A2FA6E5,PinName=\”OutputPin\”,Direction=\”EGPD_Output\”,PinType.PinCategory=\”struct\”,PinType.PinSubCategory=\”\”,PinType.PinSubCategoryObject=ScriptStruct\’\”/Script/OSC.OSCMessage\”\’,PinType.PinSubCategoryMemberReference=(),PinType.PinValueType=(),PinType.ContainerType=None,PinType.bIsReference=True,PinType.bIsConst=False,PinType.bIsWeakPointer=False,PinType.bIsUObjectWrapper=False,LinkedTo=(K2Node_CallFunction_18 8E0967B04616F4E13A77FE9A2AEC5A8C,),PersistentGuid=00000000000000000000000000000000,bHidden=False,bNotConnectable=False,bDefaultValueIsReadOnly=False,bDefaultValueIsIgnored=False,bAdvancedView=False,bOrphanedPin=False,)\r\nEnd Object\r\n”)

. . . . . END. . . . . .