Copy link to clipboard
Copied
Is there any way a custom HTML panel fill in Live Text Templates fields?
No, but a panel can send ExtendScript to AE, and change the text content of a Text layer.
Copy link to clipboard
Copied
No, but a panel can send ExtendScript to AE, and change the text content of a Text layer.
Copy link to clipboard
Copied
We've actually got an AE panel auto-generating MOV files for lower thirds from a list of names & titles, data held externally. That's fantastic for a project where we're editing in Avid and generating graphics in Adobe. But on another project we're editing in Premiere -- 100% Adobe -- and I'd love to achieve the same degree of automation via Live Text Templates.
Any plans to open up Live Text Template fields entries to automation?
Copy link to clipboard
Copied
No such plans, as we already provide much broader capability, running AE scripts from within PPro...
Copy link to clipboard
Copied
More and more customers ask me these kind of automation...
We absolutely need this feature on the ExtendScript inside Premiere Pro.
Copy link to clipboard
Copied
What, specifically, do you think is missing?
AE scripting from within PPro panels already gives panels MORE capability, than just modifying Live Text Templates...
Copy link to clipboard
Copied
It's more an assets management problem, exemple :
If a panel needs to generate 20 lower third, currently, i need to generate 20 After Effects compositions, save the AEP or a copy, and import 20 compositions inside Premiere, even if only texts changes.
If i can manage live text inside premiere pro with ExtendScript, i have to only duplicate an After Effects composition inside Premiere, no import to do inside Premiere... No After Effects project to manage, or update, or save as... from my opinion it's much cleaner in that way...
Copy link to clipboard
Copied
Today, you can manipulate text in the AE comp using AE ExtendScript (from within a PPro panel), render out the updated PPro sequence, then manipulate the text again...no import todo inside Premiere, no AE project to manage, update, or save as...
Copy link to clipboard
Copied
Yes, but no Dynamic link magic in that case.
Copy link to clipboard
Copied
So the goal would be to achieve this without having to render anything.
Here's what I'm trying to do. Maybe you can point me in the right direction...
I've got a graphics & text template I want to use in AE. (I'm testing Live Text Templates, but I'm open to any solution).
I've also got an external data source, e.g. a list of Names and IDs.
The graphics template is constantly being revised per change notes by network execs and producers.
The data is constantly changing as we discover typos and make ID changes.
The traditional way of handling this is to walk into the edit bay, stop the editor from editing, and make the latest round of text changes.
We could use an AE panel, per your suggestion above, to generate and update a bunch of Comps (or render a bunch of MOV files) being used in a Premiere timeline. The problem with that workflow becomes apparent when you want to make a design change. Ideally you make one design change that ripples across all the Comps, but if you generated multiple Comps, one for each name, that becomes cumbersome. (And if you're rendering a bunch of MOVs, you have to constantly re-render)
Alternatively there's the Live Text Templates approach: One Comp from AE, multiple instances of that Comp in Premiere, each modified by filling in the Text Fields on the Premiere side. Now, a single design change in AE automatically iterates out through all the instances in Premiere. Great! BUT any Name/ID changes in the external data source have to be manually entered into the appropriate Live Text Template instance in Premiere, so you're back to stopping the editor to make those changes.
So right now you either get design change automation but manual text updating,
or automated text updating but a cumbersome batch of design changes.
Automating the field entries of Live Text Templates would resolve the problem -- a have-your-cake-and-eat-it-too solution.
Copy link to clipboard
Copied
[Haven't forgotten you, but haven't had a chance to do any testing, either...]
Copy link to clipboard
Copied
Thanks for the followup
Copy link to clipboard
Copied
Came across two scenarios today that are relevant here:
Clients have been updating their lower thirds requests, making multiple changes to multiple interviewees.
This is precisely the circumstances in which automation really starts to matter.
Where there used to be 1 line identifying interviewees, they now want 4 lines. That raised several issues at once:
1 - It doesn't seem possible to put line feeds in Effect Controls field entries on the Premiere side
2 - AE side expressions don't reliably respond to data from the Premiere side field entries.
3 - It's not possible on the Premiere side to replace a Live Text Template instance with a different source Comp from AE without starting from scratch and re-entering all the data.
That's my impression so far, but maybe there's more to it (?)
Posted those issues as questions here:
Multi-line Live Text Templates -- Allow for line feeds instead of subfields?
Is it possible to Replace a Live Text Template with a different AE Comp?
Copy link to clipboard
Copied
A PPro panel can, today, send ExtendScript to AE to access and manipulate the text contents (and other scriptable params) of AE Text Layers, and get responses back from AE.
So, while today it may not be possible (using only supported APIs) to change the strings in Live Text Templates, it IS entirely possible to drive programmatic text changes in AE comps, from within PPro.
Copy link to clipboard
Copied
Thanks Bruce, a couple of questions from that...
1 - You've mentioned before that a PPro panel can send ExtendScript to AE. For this particular issue I don't think it's creates the kind of fluency and efficiency that would really explode the power of Live Text Templates. Nonetheless, that sounds really cool and useful. How does that work? The manifest XML (as I've understood it so far) ties the JS to the JSX, and both are bound to a specific App -- PPro, AE, PS, etc. So how do you send commands from AE from PPro?
2 - You mentioned "using only supported APIs" -- are there any unsupported avail for testing?
Copy link to clipboard
Copied
"Fluency & Efficiency" = Explosive power sounds cool, AND...you can accomplish and manipulate more today by sending AE ExtendScript between PPro <---> AE, than you could EVER do with live text templates.
> ...how do you send commands from AE from PPro?
Like this!
Copy link to clipboard
Copied
Bruce Bullis wrote:
> ...how do you send commands from AE from PPro?
Like this!
Thanks Bruce,
Just tested the BridgeTalk method from link you posted. Works. Very cool. Got the alert to work.
Questions:
1 - How to retrieve a variable / values back from a AE BridgeTalk call to the Premiere JSX?
2 - Is it possible, from a Premiere JSX to call custom functions that reside in an existing custom-created AE JSX?
3 - For this to be an approach that outperforms Live Text Templates, I'd be looking to move more then data back and forth. I'd need to be able to create Comps in AE, import instances of those Comps, and maintain control, in short, a comprehensive control over objects in both Apps.
Copy link to clipboard
Copied
1 - How to retrieve a variable / values back from a AE BridgeTalk call to the Premiere JSX?
I'd return them as strings, to the calling function. For large/complex blobs of data, perhaps saving a textual (JSON?) representation of [same] to a temporary text file, and reading that back in from the PPro side, might be more robust.
2 - Is it possible, from a Premiere JSX to call custom functions that reside in an existing custom-created AE JSX?
#include "custom_created_AE.jsx"
3 - For this to be an approach that outperforms Live Text Templates, I'd be looking to move more then data back and forth. I'd need to be able to create Comps in AE, import instances of those Comps, and maintain control, in short, a comprehensive control over objects in both Apps.
Create comps in AE = possible today, via AE ExtendScript
Import instances of those comps = Sorry, no API for that today. Cold comfort; it was considered for our forthcoming release, and remains near the top of our API backlog. Workaround = keep some 'template' .prproj files around, which already contain instances of 'LikelyAEProjectname.aep/LikelyComp'.
But once the connection is made, PPro <--> AE ExtendScript gives you control over EVERYTHING in that comp, not just what the AE artist has decided to expose via LTT.
Copy link to clipboard
Copied
Bruce Bullis wrote:
1 - How to retrieve a variable / values back from a AE BridgeTalk call to the Premiere JSX?
I'd return them as strings, to the calling function. For large/complex blobs of data, perhaps saving a textual (JSON?) representation of [same] to a temporary text file, and reading that back in from the PPro side, might be more robust.
2 - Is it possible, from a Premiere JSX to call custom functions that reside in an existing custom-created AE JSX?
#include "custom_created_AE.jsx"
So no luck yet on my end for the above 2 notes.
Say I've got the following folder/file structures.
PanelFolderForPPro/PPro.jsx
PanelFolderForAe/AE.jsx
In PPro.jsx I've got the following function:
function TestAeControl(){
var AeBt;
#include "../PanelFolderForAe/Ae.jsx";
AeBt=new BridgeTalk();
AeBt.target="aftereffects";
AeBt.body="TestBridgeTalk();";
return AeBt.send();
}
in AE.jsx, I've got the the following function:
function TestBridgeTalk(){
return "'Ere I am";
}
What I'm seeing is that
AeBt.send();
returns true or false, not the result of the command issued in AeBt.body.
In fact, even when running the above code but for the following difference:
AeBt.body="app.project.rootFolder.numItems;";
I'm wasn't able to get the return numItems value returned, only the boolean.
How to retrieve the result?
Copy link to clipboard
Copied
Sorry, I misdirected you.
You're right, the returnVal has to do with what BridgeTalk.send() returns ("successfully sent!"), rather than the return value of your function.
I'll look for a good snippet, for returning values (without resorting to a temporary text file).
Nice job with the example code, above!
Copy link to clipboard
Copied
On my end, from BridgeTalk.send(), I get true when AE is up and running, false when it's not.
A little Googling turned up two seemingly promising BridgeTalk events, but unfortunately neither worked in this context:
From https://www.adobe.com/content/dam/Adobe/en/devnet/scripting/pdfs/javascript_tools_guide.pdf
BridgeTalk.onReceive=function(bridgeTalkObject) {
//Commands here.
};
and from https://www.ps-scripts.com/viewtopic.php?t=11379&start=10
BridgeTalk.onResult = function(bridgeTalkObject) {
//Commands here.
};
Since neither worked, who knows, but it raises the question:
Is BridgeTalk.send() an asynchronous call?
And if so, I get the impression two layers of async -- (from PPro.js (i.e. panel.js) to PPro.jsx and then to Ae.jsx -- would make it impossible be able to get a return value all the way back out to the PPro panel.js.
Copy link to clipboard
Copied
Hi Bruce,
Following up on the above questions...
1 - Is BridgeTalk.send() an asynchronous call?
2 - Regarding your note
I'll look for a good snippet, for returning values (without resorting to a temporary text file).
Any luck on your quest for a snippet that demonstrates the ability to return values?
3 - Do the PPro / AE 2017 updates include the changes to the SDK? If so, how to learn more?
Copy link to clipboard
Copied
1. ¯\_(ツ)_/¯ (I think so)
2. Yes! Sending via email.
3. Yes! I'll post something here soon.
Copy link to clipboard
Copied
Looking forward to #3!
Copy link to clipboard
Copied
Hi Bruce, hope you had great tech-free T'Day.
Any word on AE / PPro 2017 SDK update documentation?