Hi !
During the french municipal elections I had the following problem to solve :
We get voting datas from 50 cities, each city having multiple candidates.
We have up to 30 journalists on the field, we'll have a video feed for some, for others we won't (we don't know which one will have one)
There will be up to 150 people talking during the live.
TO DO :
1 - Find a way to display a city's voting results from 50 cities, displaying the most voted up, less down, with progress bars, coloured with their political party's colors (does that makes sense ?), showing abstention, "partial results" or "definitive results" sentence.
2 - Find a way to display a journalist's picture if he's not able to be filmed.
3 - Find a way to display lower thirds for hundreds of different people, adding more during the live.
Let's start by the easiest task :
3 - Hundreds of different names on lower thirds :
I chose to use the datas from a google sheet file. I created a "user friendly" sheet where the boss can write the following : "Name" ; "Title" ; "Journalist/Guest dropdown"
Then I created another sheet to parse everything as desired : uppercase, column name corresponding to my GT title's text layer.
Connecting the lower third input to the data sheet.
Et voilà, scrolling in the data table helped finding easily any people's name that could be on screen.
With a refresh rate of 50000ms the boss could write down a new name and I'd get it in 50 sec maximum (I had to used that time because of Google Sheet's requests limitations)
2 - Journalists' pictures
Remember the "Journalist/Guest" dropdown from above ?
I used that to create a "picture_path" column.
Parsing the name to something like "C:/Pictures/Journalists/NAME_JOURNALIST.png" I was able to create a new GT Title with a picture in it.
In VMIX I just needed to associate the picture's path value to that column.
So that every time I was selecting a new row inside the data table, the picture would change (IF the person IS a journalist AND we have the picture) on that particular title.
So that if there's no video, even at the last second, we can display a name with the picture of him/her.
1 - Voting system
3 parts to work on this :
a - Datas
b - Creating a title
c - Using it in real conditions, 2 pages per city, up to 6 cities alternately.
a - I had every datas on a website. To options from here : Getting a feed in JSON ( 1 file per city) OR copying everything manually from the website.
The boss wanted us to be able to change a result in case there would be an issue with the website.
So using the JSON was not an option anymore.
I used the same GSheet binding option to make it.
- Configuration page with every political camps,every cities, colors, many positions (for the XAML display)
- Data page :
The writer can add a candidate, choose the political party from dropdown, add his score (in % OR number of votes)
You got it, if he does a mistake, it can go live. So we created multiple checkpoints.
- Parsing pages : Everything goes in UPPER case, gets sorted to get the best score first.
One name per row.
- VMIX Friendly page : We change the display to on city per row.
There can be up to 16 candidate -> means 16 column for each name, 16 columns for the progress bar color, for the x and y position (position for the bar, the name, the result, etc.)
I have something like 100 columns total.
x6 sheets cause I need to display 6 cities alternately
b - I created the title using XAML in Blend for VS. Huge thanks to user Doggy for his help on this !!!
Every XAML property (position, colour, text, etc.) can be binded to a text value.
The text value are binded in VMIX with our GSheet dataset.
Ex : I need to give the 0x45F2A7 color to my "progress_bar_5" (representing the fifth candidate).
There's a column titled "progress_bar_colour_5" in my GSheet.
I created a Text in my XAML title that I set to 0% opacity, this Text's name will be "progress_bar_colour_5", binding the value to the GSheet corresponding column.
In my Progress Bar Colour property I bind the value to the text value of "progress_bar_colour_5".
Then when I change the value in GSheet (or manually in VMIX), it will change dynamically !
I repeated the process for everything : x and y positions of every elements, colors, text values.
c - In real conditions it can be hard to use. I still have the 50 seconds refresh rate.
There's someone next to me filling the GSheet according to the website's datas.
There's a journalist saying "I want to go on set and talk about those cities"
They check if every values are good.
I have set a streamdeck to preview datas and reload animations
Once everything is good I wait for the director to ask for the desired results to display, page 1, 2, next city etc.
I'll take some time to show some pictures of it !
Don't hesitate if you have some questions or suggestion that could have made the solution easier :)
Again, thanks a lot to doggy and DWAM users, they helped a lot by giving amazing informations.
David