Overview
Connecting to a Binding Point
Open the Tool properties editor from the popup menu available on the tool. Open the popup menu for property to bind and choose 'Binding...' menu item. Fill in Binding name in the dialog. The name is pre-filled with name of existing binding or name of the property. You can fill in any name you want or you can press the browse button (labeled with '…') and choose from list of available binding points. The dialog contains binding points defined by the user and predefined binding names provided by external plugins.
All properties bound to one binding point are fed with the same values (example: you can change the color of several tools at once).
Properties already bound to a binding point have their name and category visualized in blue color in the Tool property editor. You can clear the Binding (start using the value from the editors) from the popup menu of a Tool property.
Value Updates
Binding points can be fed with new values while the application is running. Clients responsible with feeding values to the binding points can send a single value or list of values to a each binding point.
Binding point with a single value
A Binding point has only one possible value. All properties bound to this point start using this value immediately.
Binding point with multiple values
A Binding point has several possible values (e. g. list of player names). Properties start using the value at the same index as before any update. It starts to use the last value when the index is out of range of updated values.
Set up current value
You can change the current value when multiple values are available. Invoke popup menu for a tool and go to Bindings menu where you can find names of bound Tool properties. You can select one of the values in the next submenu. The value is used until another value is selected or the binding point is fed with different values.
Fast selection of current value
There is another way to set property value for a drawing just in time of drawing creation. You can mark one property with 'Fast selection' flag which is available in the popup menu for a property.
See the Connecting to a Binding point section for more info. |
Each time you click into the preview to create a drawing, a popup menu with available values for the property is shown. Pick one of choices from the menu.
A drawing is created with the binding value applied at the point you clicked into the video.
Updates from a file
This is the easiest way of sending value updates from third-party applications. Paint declares the names of all existing Binding points to a file accessible for third-party applications. Binding names are serialized to XML file and saved to names.xml located at:
Operating System | Location |
Microsoft Windows | Documents/Paint97/Bindings |
Mac OS X | Library/Application Support/ChyronHego/Paint/Tools/Bindings/ |
MS Windows
The format is as follows:
<Bindings version="1">
<Binding name="UserSpecifiedName"/>
<Binding name="UserSpecifiedName2"/>
...
</Bindings>
Delivering update
Application waits for value updates when there's at least one active Binding point. Paint watches for changes of the value update file and when a change is detected, the whole file is reloaded.
The file must be named values.xml located at the same folder as names.xml. The format is as shown below. Binding point that should be fed with multiple values just repeat the Value element with different text content of the element.
Optionally you can define user friendly name of the value displayed in the Bindings popup menu. This is done by adding heading attribute to the Value element. When the attribute is not present, the value itself is displayed in the Bindings popup.
<Bindings>
<Binding name="Color"> <!-- Name of the binding point -->
<Value heading="Red">[1,0,0,1]</Value>
<Value heading="Yellow">[1,1,0,1]</Value>
</Binding>
<Binding name="PlayerName">
<Value>Messi</Value>
<Value>Ronaldo</Value>
<Value>Rodriguez</Value>
</Binding>
</Bindings>
The value must be written in format that is understood by type of the property.
Examples
Type | Value |
Color | “[r,g,b,a]” for a single color or “r1 g1 b1 r2 g2 b2 r3 g3 b3” for matrix syntax. All numbers are in range <0, 1> |
Enum | See Tool Reference chapter for possible values for all properties. Generally it is equal to content of the enum editor. |
File | Relative path to the Tool directory. |
Vectors | “[x,y]” where x, y have correct type (Integer/Float). You can guess the type of the property from the editor. |
Boolean | Both “true”/”false” and “1”/”0” notations are supported. |
Multiple values to one binding
It is possible to bind multiple values to one binding, where different data points can be added to one Tag for example. The values are separated by string properties. For instance if binding to NFL Zebra data for PathPlayerNumber and PathPlayerLastName within a tag, you can set the following formatting:
#$(PathPlayerNumber). $(PathPlayerLastName)
This would result in the tag being populated as per the picture example below.
.
Generic XML Data Binding
Using the XMLDataBinding plugin, it is possible to watch single or multiple files such as .xml or .csv for changes or modifications and transform them into the values.xml using an .xsl transformation file.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/Root">
<Bindings version="1">
<Binding name="Binding">
<xsl:for-each select="XmlFile/XML/*[starts-with(name(), 'PLAYER')]">
<xsl:variable name="id" select="ID"/>
<Value>
<xsl:attribute name="heading"><xsl:value-of select="/Root/CsvFile/CsvFile/Line/Value[1][@value = $id]/../Value[2]/@value"/></xsl:attribute>
<xsl:value-of select="value(DATA)"/> </Value>
</xsl:for-each>
</Binding>
<Binding name="Data">
<xsl:for-each select="XmlFile/XML/*[starts-with(name(), 'PLAYER')]">
<xsl:variable name="id" select="ID"/>
<Value>
<xsl:attribute name="heading"><xsl:value-of select="/Root/CsvFile/CsvFile/Line/Value[1][@value = $id]/../Value[2]/@value"/></xsl:attribute>
<xsl:value-of select="value(DATA2)"/> </Value>
</xsl:for-each>
</Binding>
</Bindings>
</xsl:template>
</xsl:stylesheet>
Binding to Opta feed
Opta provides several data feeds with information from a wide variety of competitions across the world. Currently we support F40 Squad Feed which contains information on each team's registered playing squad for a given competition.
To be able to use data you need an account at Opta with subscription to desired competitions. For more information about provided data and authorized resellers please visit: http://www.optasports.com
Using Opta data within Paint is a licensed feature.
Configuration
In the config editor, go to Plugins tab and list the TeamBindingOpta plugin and enable it. Paste URL of the feed to the corresponding field. The URL is provided by Opta's resellers and contains feed specification, competition, season, username and password. You can specify the suffix for binding names provided by the Opta module which might help to prevent name collisions and orientation in the Bindings dialog.
Value updates
The binding points can be fed with team names and player names. First you have to specify the teams for which the data will be loaded.
- Open the Administration menu on the Clear button
- Choose Opta binding.
- The team selection dialog will be shown and desired feed will be downloaded.
- The application caches the feed data, you have to hit the Refresh button to download it again.
- Select the teams and click the OK button.
- Now the binding points are fed with available values.
See the Value updates section for information on how to assign particular value to a tool property. |
Binding to GSIS Data
GSIS provides information and statistics about NFL games. It's possible to download the game data and use it as binding values within Paint.
We support importing Gamebook data in .xml format. The file can be downloaded at http://nflgsis.com/. Each Gamebook file contains data for one NFL game.
GSIS data within Paint is a licensed feature.
Configuration
In the config editor, go to the Plugins tab, list the TeamBindingGSIS plugin and enable it. You can specify suffix for binding names provided by the GSIS module which might help to prevent name collisions and orientation in the Bindings dialog.
Start using Gamebook
Download the gamebook for the game you are interested in. You can download several gamebooks and change active gamebook file during runtime (this is useful for analysis of multiple games).
Invoke popup menu on the Clear button, choose 'GSIS binding' menu item and browse the gamebook file. Since now the binding points are fed with new values read from the Gamebook.
See the "Value updates" chapter for information how to assign particular value to a tool property. |
See the Connecting to a binding point" section for a list of all supported binding names in the All available binding dialog. |
Binding to Tracab Player Path
Clips imported from ChyronHego Virtual Placement might contain Tracab data (player paths, names etc.) All data from the Tracab players xml file such (player name, jersey number etc.) are held as Path metadata and can be used as binding value.
For example: You'd like to create Tag drawing (that follows the player path) with the player name. Bind TextValue property of the Tag tool to PathPlayerLastName binding point. Link the drawing animation to the player path. Text of the tag is is automatically resolved to contain the player's name.
See the "Linked keyframe animations" section for more info. |
Opta’s SDAPI Event Data
Opta’s Sports Data API (SDAPI) allows users with an Opta OAUTH key to access a live push feed of event data from Opta and sync it to Paint’s record train. This can be set up in the EventLogging section of the plugins tab of the Configuration Editor. You are able to click on events which will take you to the point of the event in the timecode. It is also possible to search for and filter events.
You can also preview upcoming fixtures and offset data and video in order to synchronize the two, if they are out of time.
Controls
- Fixture – Allows you to select your fixture of choice from those available.
- Reconnect – Reconnects to the data feed.
- Time Correction – Allows you to set a time correction between the video and data, in milliseconds.
- Preroll – Sets a preroll time before events.
- Search – Allows you to search through the events that have been logged for the game.
- Export All – Exports the events to XML.
- Close – Closes the dialogue.