Copy link to clipboard
Copied
So I've got a very simple AE project with a few text layers. The source text of these text layers uses expressions to grab names from a CSV file & I've set up a slider control on a null object to flick between which name is selected.
This all renders fine in the AE Renderer, but as soon as I try to export via AME, all of the names revert to 'null'. What might I need to change to get this to work?
(Bonus question... I need to eventually have AE / AME cycle through the various names in the CSV and spit out a video for each of them, is there a script/plugin to achieve this?)
That's unfortunately a bug/ limitation in this whole thing. You have to render from AE directly or the exprtessions don't evaluate correctly. That also takes care of your other question - any such stuff like creating separate render comps would have to be done in AE, anyway.
Mylenium
Copy link to clipboard
Copied
That's unfortunately a bug/ limitation in this whole thing. You have to render from AE directly or the exprtessions don't evaluate correctly. That also takes care of your other question - any such stuff like creating separate render comps would have to be done in AE, anyway.
Mylenium
Copy link to clipboard
Copied
Thanks for the help!
Frustrating, but at least I guess it's not an error on my part. Hopefully they work out that limitation at one point.
Copy link to clipboard
Copied
Rufous​ Do you mind sharing your expression for this - specifically how you drive a Column/Row selection offset via the slider? I'm having trouble figuring that out that exact maneuver!
I'm prepping for a conference with over 150 individuals that need ID animations, and was wondering about having CSV drive all that text.
However with out having AME involved, that might be a deal breaker...
Best,
David
Copy link to clipboard
Copied
Never mind- I got it:
I setup a Null with 2 slider controls on it, one for Row, one for Column, and called it MASTER SELECTOR
For the First TEXT Layer (correlates to first line of text in ID video)
ROW_OFFSET=thisComp.layer("MASTER SELECTOR").effect("ROW#")("Slider");
COLUMN_OFFSET=thisComp.layer("MASTER SELECTOR").effect("COLUMN#")("Slider");
footage("TXT2SPREADSHEET TEST 1.csv").dataValue([0+ROW_OFFSET,0+COLUMN_OFFSET])
For the next TEXT Layer (correlates to next line)
ROW_OFFSET=thisComp.layer("MASTER SELECTOR").effect("ROW#")("Slider");
COLUMN_OFFSET=thisComp.layer("MASTER SELECTOR").effect("COLUMN#")("Slider");
footage("TXT2SPREADSHEET TEST 1.csv").dataValue([0+ROW_OFFSET,0+COLUMN_OFFSET+1])
Continue with this for however many text layers remain, incrementing the column by +1 as above.
Now this is some super sloppy expression writing. Mylenium​, this approach would likely bog down the system I'm guessing?
I'm sorry to impose, but do you have a suggestion that would be more efficient, while providing the same result?
Here is a snipit of the CSV I'm using:
SECTION INFO | TEXT |
D1,00 | "Hello World 0" |
D1,00 | NAME |
D1,00 | Title Line 1 |
D1,00 | Title Line 2 |
D1,00 | na |
D1,00 | na |
D1,00 | na |
D1,00 | na |
D1,00 | na |
D1,00 | na |
D1,001 Opening remarks | "Excel is now driving the bus" |
D1,001 Opening remarks | NAME |
D1,001 Opening remarks | Title Line 1 |
D1,001 Opening remarks | Title Line 2 |
D1,001 Opening remarks | na |
D1,001 Opening remarks | na |
D1,001 Opening remarks | na |
D1,001 Opening remarks | na |
D1,001 Opening remarks | na |
And how that displays on screen (please ignore rough layout!):
You can duplicate this comp, and then only have to make one column adjustment in the master selector to have all fields filled in accordingly.
If you don't need to have the flexibility to build your own layouts, you could probably just use this fellows AE script:
New Tool for Modular Lower Third Kits - YouTube
I hope this is helpful to someone out there
David
Copy link to clipboard
Copied
I made my csv text easier by using this expression in source text.
txtInd = thisLayer.index-1; // column in csv
presNum = thisComp.name; // row in csv
footage("lista-csv.csv").dataValue([txtInd,presNum ]);
I call my comps 0, 1, 2, 3, 4 etc (they point to a csv row). The only thing i need to do is duplicate my comp - and the row number will update (presNum).
My data has 3 to 6 inputs (columns) in each row, I don't want to control that manually so each time i duplicate my text, my argument (txtInd) gets a number+1.
in order to hide layers with null values I use this expression on opacity.
if (text.sourceText == "x") 0
else 100;
My csv has "x" in empty columns.
this (opacity expression) also controls other animated layers so if there is no data, the animations do not show.
best