Graphics

 View Only
Expand all | Collapse all

NBA data from scorer's table

  • 1.  NBA data from scorer's table

    Posted 11-01-2013 17:47
    Haven't been able to find this one yet. Does anyone know what data is sent from the scorers table with regards to Timeouts (is a number sent?) also in the bonus situation (bonus on/off) We are designing a lower third that includes timeouts and bonus and I'm sure there is a data field for these so the operator doesn't have to manually take care of this. Thanks in advance and sorry if this is a Newby question.


  • 2.  RE: NBA data from scorer's table

    Posted 11-01-2013 17:54
    Malcolm, we would need some more information first.

    What kind of scoreboard are you using? from my experience I have only seen the number of timeouts indicated by a number in the data feed. from there we often run scripts on the template to take that data value and use it to show you something more visual like indicators below the team name.

    For bonus the process is much the same, in all likelihood you will only receive a number of fouls in the data feed, from there we would run a script that checks that value and determines whether we are in a "bonus" situation or not. If so the same script could turn on a conditional object to show the viewer.

    Malcolm can you elaborate?

    #XPression


  • 3.  RE: NBA data from scorer's table

    Posted 11-01-2013 19:36
    Andrew, thank you for the response. I'm just starting the fact finding on this latest build. I wanted a little info before I start digging into the scoreboard system and such. I've only been working with Xpression for a few months now.

    #XPression


  • 4.  RE: NBA data from scorer's table

    Posted 11-03-2013 12:10
    Malcom:

    Over the years I have seen many "bug boxes" IE ESPN, FOX, NBC, ABC, COMCAST, CoxSports to name a few. I am a TD / Director - However, I have set a few up and had to use them also on shows. All of the bug boxes that use data get it via the scoreboard data connection at the scorers table via a back haul modem. The transmitter is connected to the data feed then a coax to the transmit modem, in turn on the truck end the same coax is connect to the receive modem and then connected to the bug box. The data is just 0 and 1 with different baud rates based on the facilities data feed. Datronix is the main provider I see out in the filed and they have several types of data information. In the 'bug box' the user has to select which type of board the facility is using IE Datronix V, VII, etc. ALL of the fields have there own data (number set) be it the home and visitor score to timeouts, (periods / quarters / halves / final - based on the sport), and other data fields based on the scoreboard being used at the facility.

    You may want to look towards a bug box company and pose the question to them - http://www.tv-graphics.com/tv-graphics-bugbox.aspx is one of the many companies out there.

    Best of luck to you in creating your version of a bug box

    #XPression


  • 5.  RE: NBA data from scorer's table

    Posted 11-12-2013 22:40
    OK, after a little more research. Our data source is "OES" and returns numerical values to various columns. So, if I wanted to display remaining full timeouts (3 for example) How would I assign that number to a variable (to be named later). Then how would I use the value of this variable to call up a material with 3 time out lights displayed? I'm the type of person who needs to know HOW and WHY a certain thing works. So if you can get me started I want to take it from there. I don't want to just copy and paste the entire script. Thanks again.

    #XPression


  • 6.  RE: NBA data from scorer's table

    Posted 11-13-2013 00:07
    Hi Malcolm,

    You would first add a Datalinq source for OES to the Datalinq Server. Then you can link a text object to specific data fields in the OES datastream, by using the "Data Source" tab in XPression and assigning the text object to a datalinq. During this process you can browse all the fields in the oes data and select the appropriate field (such as Home or Visitor Timeouts Remaining). The text object that you link to the timeouts should be made invisible, but you would assign a script to this text objects OnSetText script handle. The script would use the value set in the text field to make the timeout indicators visible or invisible depending on its value.

    That's the basic process..

    #XPression


  • 7.  RE: NBA data from scorer's table

    Posted 11-13-2013 16:37
    Thanks Brian. So, basically I would define a variable as an integer calling it something like HomeTOfull. Attach a link to a text field, add a while loop (while HomeTOfull = 1 to 4), add an if loop with something like if the variable=2, (and tell me if this is possible) replace the image in a quad HomeTOdisp with material matTOfull2 displaying two lights turned on. Does that hold water? Do I need to define any other objects? Thanks in advance for your help.

    Malcolm

    #XPression


  • 8.  RE: NBA data from scorer's table

    Posted 11-14-2013 23:55
    Malcolm,

    Its even easier than you described.. Lets say you have five materials called "Timeout4", "Timeout3", "Timeout2", and "Timeout1", "Timeout0" that each have an image with a different number of lights turned on.

    Just put this script in the OnSetText for a text object linked to the OES timeouts.

    It essentially gets the number of timeouts, finds a material with the right name and assigns it to the Quad object.



    dim Timeouts as Integer

    dim Material as xpMaterial

    dim Quad as xpBaseObject

    if Scene.GetObjectByName("TimeoutQuad", Quad) then

    if engine.GetMaterialByName("Timeout" & Text, Material) then

    Quad.SetMaterial(0, Material)

    end if

    end if



    #XPression


  • 9.  RE: NBA data from scorer's table

    Posted 11-15-2013 00:51
    Brian,

    It's obvious I'm over thinking this and don't have the knowledge base just yet. Thank you for this. If our system feed full time outs and 20 sec time outs then I would assume I would just add a different text object and do the same thing but with different images for the 20 sec time outs. Thanks again.

    #XPression


  • 10.  RE: NBA data from scorer's table

    Posted 11-15-2013 02:42
    Yes exactly.. and a quick tip: the easiest way to test/simulate this is to create a Counter Widget in your project and link the text object to the counter widget (instead of linking to OES). That way you can adjust the counter widget and see the immediate results of the value changing. Each time the counter changes it will execute the OnSetText script and change the materials as needed.

    #XPression


  • 11.  RE: NBA data from scorer's table

    Posted 11-15-2013 02:54
    I will try a test run tomorrow morning and hopefully use it tomorrow night when The Jazz play the Spurs. Thanks again and I will let you know how it works out. One last question, how does xpression know which quad I am working with?

    #XPression


  • 12.  RE: NBA data from scorer's table

    Posted 11-15-2013 03:01
    That's part of the script.. In my example the Quad would need to be named "TimeoutQuad"..

    Likely you'll need to change that and have one for Home and one for Visitor..

    #XPression


  • 13.  RE: NBA data from scorer's table

    Posted 11-15-2013 03:02
    Brian, if you are ever in Utah, look me up and I will try and score you some tickets. I really appreciate you walking me through this

    #XPression


  • 14.  RE: NBA data from scorer's table

    Posted 11-16-2013 16:27
    Brian, this worked like a charm. I'm still in the testing phase. I was told that we aren't going to differentiate between full and 20 second timeouts. So, given that these are two different data fields from the OES would that mean a second text object with a similar script and then add the two or could I reference the other data field, add the two together and use the result as my integer?

    #XPression


  • 15.  RE: NBA data from scorer's table

    Posted 11-18-2013 14:50
    Hi Malcolm,

    That makes it a bit trickier but still not too bad.. The reason being is that you would need to update the material when either type of timeout changes. Therefore both text objects would need an OnSetText script that would each look at their own value and add the value of the opposite text object.

    Normally I would highly discourage an OnSetText script from reading a different text object because you run into a race condition. They won't both change at exactly the same time, so one script will always run first, then almost instantly the other script will execute. Since you can't predict in which order they will get updated you can sometimes run into weird side effects you wouldn't expect. This probably won't make any difference to you though, since all you are doing is adding the two values together and setting a material. I have seen cases where people have really complicated scripts with a lot of logic and they'll get bizarre effects they weren't expecting (but make perfect sense when you understand the two text objects won't change at precisely the same time).

    In order to add the two values together you'll first need to convert the strings into integers. This wasn't needed in the first example I gave you because we could just tack the timeout value as a string onto the end of the "Timeout" to form a material name.. The VB function CInt() can convert a string to an integer.

    Here is the two scripts.

    Add this to a text object called Full:



    dim Timeouts as Integer

    dim Material as xpMaterial

    dim Quad as xpBaseObject

    dim Half as xpTextObject

    Scene.GetObjectByName("TimeoutQuad", Quad)

    Scene.GetObjectByName("Half", Half)

    Timeouts = CInt(Half.Text) + CInt(Text)

    engine.GetMaterialByName("Timeout" & Timeouts.ToString, Material)

    Quad.SetMaterial(0, Material)



    and add this to a Text Object called Half:



    dim Timeouts as Integer

    dim Material as xpMaterial

    dim Quad as xpBaseObject

    dim Full as xpTextObject

    Scene.GetObjectByName("TimeoutQuad", Quad)

    Scene.GetObjectByName("Full", Full)

    Timeouts = CInt(Full.Text) + CInt(Text)

    engine.GetMaterialByName("Timeout" & Timeouts.ToString, Material)

    Quad.SetMaterial(0, Material)



    #XPression


  • 16.  RE: NBA data from scorer's table

    Posted 11-21-2013 04:47
    Thanks Brian. We opted for simplicity and I talked them into separate indicators for the two types of time outs. I like the look. You have been great to help me with this. Some day I hope to pay it forward. Has anyone ever included an animation that would for example cause a white flash before the time out light is gone rather than just simply shutting off?

    #XPression


  • 17.  RE: NBA data from scorer's table

    Posted 11-21-2013 21:13
    Instead of just turning off the Visibility you could create Animation Controllers for them to trigger that "blinks" it.

    #XPression


  • 18.  RE: NBA data from scorer's table

    Posted 06-10-2014 20:59
    Les, this basically replaces the material for the various time out states. I'm still new to this and trying to figure out how to trigger an AnimController after material change in the scripting. Any help will be appreciated. I never was one for writing computer scripting, but I'm trying to learn. Thanks for the suggestions.

    #XPression