OSC

OSC Route Settings

Location being a Vector, you can set an index value to get only X,Y or Z. But since OSC offers more possibilities than the MIDI protocol, it's now possible to send and receive the whole array of values (for vectors or colors).

When you set a route to receive a full array, you have to make sure that the number of values sent matches what Blender expects (and it's required now to use the "n" parameter accordingly). For colors, for instance, it can be either 3 or 4 values depending if there is an extra Alpha channel added to the R,G,B triplet. 

"From" and "n", allow to extract in a list of messages a subset by specifying the rank of the first item and the number of items.  "0" is the item just after the OSC address (like /blender) and generally doesn't need to change for simple message. "n" however has to reflect the size of the targeted Blender array.  

Pick button: This allows to automatically fill the Address based on the last received OSC message.

Multi routing: Please refer to the MIDI multi route settings as they are mostly the same. In the context of OSC, the purpose is to address messages like the ones presented by Face Cap. Notably the 52 Blendshape parameters (Shape Key values) formated like this:  

/W + 1 Int + 1 Float (blendshape index, value)

When enabling the multi route for OSC, the add-on will search for an index at position "0" of the list and affect it to "VAR", consequently you have to set the "From" parameter to "1" to pass the index and focus on the payload just after. With the Face Cap Blendshape parameters "n" will stay on "1" since there is just a single float value to pick.

Note: OSC multi routes can now send. The add-on will insert the index automatically for you.  

Note2: the index in multi routes should counts from 0 (for the first item). 

Note3: if you use the new actualization mode "expression", be careful that IN may represent an array of values, and that your expression should output in this case an array of the same size. Fortunately Numpy, a scientific module for Python make easy to manipulate arrays (or even simple value most of the time) and is exposed thru the "np" prefix.    

OSC Configuration

As stated in the main page, the OSC engine can now have a default "system wide" configuration, active as soon as you start Blender and open a project. 

Note: if you edit the system configuration from the project panel, you have to explicitly click "Save preferences" as theses properties belong to the Add-on preferences. They are just exposed here for convenience.  

It's still possible however to have a project based configuration like shown in the example below, if you prefer. 

Network devices 

"0.0.0.0" allows to listen to all the network devices of your computer, you might want to restrict that later but it's handy for tests. The connections are updated as soon as you change a parameter if enabled.

The input connection can sometimes appears in red, this reveals a problem with another software blocking the port. The server will try to reconnect automatically and revert to the normal as soon the problem is solved on the other side.

The 2 switches allow to disable temporary sending or receiving. 

The "Debug" option will copy in the console or in the text editor a report as soon something is received/sent by the add-on.  Be carefull, it adds some extra computation and in the context of a rich OSC flux of data it might be less optimal.

File conversion

(Note: theses 2 features are still in beta)

  • Pd/Qlist: PureData from Miller Puckette has a qlist object able to export to a text file its content. It is basically a little sequencer object. The format is very simple and can serve for any one wanting an easy way to insert keyframes into Blender. Each line is processed given its arguments (1: time in milliseconds, 2: OSC address, 3+: the payload)
  • FaceCap: This is for the new text file format that FaceCap can export. For this conversion to work you need to select first the parent object of the head and the 2 eyes. Try this test file.  Bonus: it contains a working set of realtime OSC routes to interact with FaceCap.