Graphics

 View Only
Expand all | Collapse all

Graphic cycling dynamic material images when taken online

  • 1.  Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 12:18

    Hello everyone!

    I am currently building a graphic for an esports broadcast that is very large. There are over 1000 layers made up of text objects, image objects pulling dynamic materials based on them, and pretty extensive visual logic to sort information. The graphic essentially shows images indicating all items and characters that each of the players is using at any given time in the game. The graphic is pulling JSON data from a text file that is being updated every 1 second to supply all the info we need.

    The problem didn't start happening until adding in one of the last couple players info, leading me to suspect it has to do with the shear amount of images in the graphic, but now when it is taken online, it will display images incorrectly, and then cycle through every element one at a time to erase the improper image, then load the correct one until it eventually has them all swapped out (takes about 20 seconds or so). I have disabled live update on all of the datalinq pulls as well hoping this would remedy the issue but it does not. 

    Is there some kind of work around or fix for this, or would the only solution be to cut down the graphic? Also, when taken online, performance only goes up to about 15% or so, which I thought would be higher. 

    Thanks in advance for any help!



    ------------------------------
    Cole Vierra
    ------------------------------


  • 2.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:02

    Does the graphic go online correctly if it is CUE'd first? 

    Right click CUE or use the decimal key on the numpad. 




  • 3.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:18

    The same problem occurs still, I am wondering if it's the visual logic taking a while to rearrange the assets since I have to use a few sort selectors for each player to determine the order to display their info in. 



    ------------------------------
    Cole Vierra
    ------------------------------



  • 4.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:22

    To complete the dynamic path are you using any macros such as @textobject@? 



    ------------------------------
    Simon Redmile
    Senior Graphic Programmer & Designer
    Ross Video
    Bristol United Kingdom
    ------------------------------



  • 5.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:38

    Correct! Essentially how it goes currently is I have my visual logic looking at 15 possible objects in my JSON data (keep in mind this is per player so there would be 8 of these total). We have 10 display spots for images, and some of those 15 are not relevant so I have sort selectors looking at values relevant to each attribute (in this case each characters current position to see if they are being used or not). I then use sort selectors to order the datalinqs in a way that it prioritizes those characters that are in play first, then puts the out of play characters on the back end of those 10 possible spots. I then have it recheck the board position of those characters and if they are not on the board currently it will hide them from being visible. This then determines the correct order for these character names and applies them to hidden text objects within the graphic, which are then used as @textobject@ macros to complete dynamic material paths in order to display the images of the correctly ordered characters and their related attributes/info.

    Here is the per player visual logic I currently have running: 



    ------------------------------
    Cole Vierra
    ------------------------------



  • 6.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:42

    This is almost definitely your issue. 

    My guess is when the scene comes online and looks at that macro to resolve the path the visual logic isn't complete yet so that text object doesn't yet say the path name you're expecting. 



    ------------------------------
    Simon Redmile
    Senior Graphic Programmer & Designer
    Ross Video
    Bristol United Kingdom
    ------------------------------



  • 7.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:46

    Ok I figured it had to be something with the visual logic since the elements in the graphic that don't go through that were handling it just fine.

    My follow up would be is there a way to sort JSON data so that it would NOT have to go through this visual logic? I know that I can use something like champion<position=0> to find a specific instance to pull, but is there a way to do the opposite where I can have a datalinq field look through to JSON and pull anything that DOES NOT equal 0 for example? I have tried <position<>0> but I don't think that format would work, and since it's a JSON I don't believe SQL would work to filter out specific names or attributes either



    ------------------------------
    Cole Vierra
    ------------------------------



  • 8.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:56

    Yeah for sure, so it would be something like this; 

    so the reason I am doing a search in team for vh=H is because I want the home team so that's a fixed value I am looking for for team.

    Then I am looking for play code in the data because in this case I am looking at College Football and player numbers are repeated so we use codes for look up rather than number. 

    So inside there data tree the above is taking me to 

    the second lookup is taking me to here

    then finally to defense stats and to sacks in this example



    ------------------------------
    Simon Redmile
    Senior Graphic Programmer & Designer
    Ross Video
    Bristol United Kingdom
    ------------------------------



  • 9.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 16:57

    oh damn after writing all that I realise you don't want this, you want something that doesn't equal this. 

    I don't think these are supported because we are looking for a single result and greater/less than logic might yield multiple answers. 



    ------------------------------
    Simon Redmile
    Senior Graphic Programmer & Designer
    Ross Video
    Bristol United Kingdom
    ------------------------------



  • 10.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 17:00

    That's ok! Essentially I need to way to filter out specific data rather than narrow or focus down onto specific things. If I can find a way to filter out all of the champions that have a board position that is less than 0, then I can build the graphic out that way rather than using these visual logic scripts to do the heavy lifting when it comes to sorting everything



    ------------------------------
    Cole Vierra
    ------------------------------



  • 11.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 17:03

    Could you data link the position data to a text object and then use that as a logic to base some scripting off of? 

    So you have your datalinq text object type to that position object.

    Then you can have something like this onOnline;

    dim posData as xpTextObject

    scene.GetObjectByName("PositionData1". posData)

    if posData <> 0

    'do the thing you want

    end if 

    That would be quite easy to turn into a loop as well and do all 15 objects.



    ------------------------------
    Simon Redmile
    Senior Graphic Programmer & Designer
    Ross Video
    Bristol United Kingdom
    ------------------------------



  • 12.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-24-2023 17:10

    I think that could work, but I also thought of another work around that could be similar. If I can get the order of champions and figure out which lines of the 15 they are on, there may be a way for me to assign their positional numbers to text objects as well and then use those numbers as macros to tell my datalinq fields which rows to pull from specifically rather than filtering out the unnecessary ones. I can try both approaches and see what works best if there is no other way to filter through JSON than looking for specific attributes.



    ------------------------------
    Cole Vierra
    ------------------------------



  • 13.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-25-2023 04:48

    Cool, if you want to go down the script route and need help writing something let me know. 



    ------------------------------
    Simon Redmile
    Senior Graphic Programmer & Designer
    Ross Video
    Bristol United Kingdom
    ------------------------------



  • 14.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-25-2023 10:01

    I appreciate it a lot! I'm gonna work on a couple possible solutions today and see if I can get something working before diving into the scripting too much, but if I hit a wall I'll be sure to let you know!



    ------------------------------
    Cole Vierra
    ------------------------------



  • 15.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-26-2023 11:40

    Quick Update: I was able to remedy the situation without scripting! 

    I looked at finding a way to make the visual logic function how I needed it to, without the sort selectors looping back into themselves which I realized would change values as the script ran, even after the graphic went online.

    What I did was restructure the graphic entirely and add in text objects to use datalinqs to pull each characters board position. Instead of resorting the order in which characters were pulled, I simply pulled 15, then use simple visual logic to look at the board position and if it was less than 0 that character would be hidden. From that point, I used simple math logic blocks to offset the XPositions of each character by the amount needed if the previous character was hidden, so instead of having to sort all of them, I would simply hide and collapse and so far that seems to have solved the problem.



    ------------------------------
    Cole Vierra
    ------------------------------



  • 16.  RE: Graphic cycling dynamic material images when taken online

    Posted 07-26-2023 15:59

    Hello again!

    So testing with the data updating live, it still seems we have an issue of previous phantom data that is persisting. Sometimes it will update to the correct images, and sometimes they won't. Are there any cache settings that could be looked at to see why dynamic materials are not displaying properly? I have tried with the @textobjects@ they are linked to with live update enabled and disabled, as well as requery enabled and disable without any luck at finding a consistent result.

    Again, much appreciated!



    ------------------------------
    Cole Vierra
    ------------------------------