Copy link to clipboard
Copied
Hello!
My name is Sergey, I work as a motion designer and often create projects not only for After Effects, but also for Premiere Pro, including presets. It's very popular and in demand, people love it and actively use it. But there is one very unpleasant nuance in the creation of such projects is masks in Premiere Pro. Working with masks in PR is completely inconvenient, unlike After Effects. I have a lot of ideas that I can't implement just because masks in Premiere Pro are extremely inconvenient to work with.
And I have a question: there is a method for extending the functionality of Premiere Pro and it's the great and mighty C++, right? 🙂 But considering that Premiere Pro is largely based on After Effects and their SDK is so similar, is it possible in theory to write a plugin that would improve communication between After Effects and Premiere Pro by passing information from one software to another? It is known that Premiere Pro masks can be easily and natively exported to After Effects, but it doesn't work the other way around. After Effects masks definitely have values that Premiere Pro understands exactly, it's just that such functionality is not provided by default in the interaction between the two programs. But, for example, if you output a mask from After Effects to Mocha Pro, you can copy it from there to Premiere Pro and it understands those masks with all the settings and animations, but it creates an inconvenience.
I tried to find a freelancer who specializes in creating plug-ins for Adobe, to pay whatever money I can for such a tool, but I haven't found any, because if a person is programming in C++, it doesn't mean that he knows how to create plug-ins for Adobe software, so I turn to the experts in this forum with one question: am I wasting my time searching for such an expert and can such connection be implemented if Premiere Pro really understand After Effects masks in practice?
Thank you!
There is no API in PPro that would allow the pasting of mask data from AE.
> So when we export a mask from AE to Mocha Pro, we get a different mask than the one in AE, so it can be exported to PR?
I believe Mocha uses AE's AEGP APIs, to get mask information.
>AE has an API that allows to accept PR masks, but PR doesn't have an API that allows to accept AE masks?
AE's AEGP API can add and manipulate masks, within AE. PPro has no API to apply mask data.
Copy link to clipboard
Copied
> There is a method for extending the functionality of Premiere Pro and it's the great and mighty C++, right?
PPro supports both C++ plug-ins, and (JavaScript/ExtendScript-based) CEP panels.
> But considering that Premiere Pro is largely based on After Effects
That's not at all the case; they're very different applications, each created independently.
> and their SDK is so similar,
AE and PPro offer a variety of APIs. PPro supports AE-style visual effect plug-ins.
> is it possible in theory to write a plugin that would improve communication between
> After Effects and Premiere Pro by passing information from one software to another?
Passing information is possible, but contributes to a fragile workflow. Specifically, what information are you hoping to get from each app?
Copy link to clipboard
Copied
> Passing information is possible, but contributes to a fragile workflow. Specifically, what information are you hoping to get from each app?
There are quite a few things that would be convenient to export from After Effects to Premiere Pro, as it would greatly simplify the work.
But now we are talking about exporting masks (without "track matte" or "dynamic link"). That is, about the native export of masks. I know that Premiere Pro understands the meaning of After Effects masks, but I can't program to write a plug-in that could transmit this information to Premiere Pro ("transmit information" means open AE, create a mask, animate a mask, open a plug-in, click button "Export Mask / Shape Data", press "Copy", go to PR, paste the mask Ctrl + V). This is how it works in Mocha Pro when transferring masks from AE to it.
Of course, it would be great if such a tool were available by default, as is the case with the reverse export of PRtoAE, but this is not so, so I want to find a solution on how to create such a tool on my own.
Copy link to clipboard
Copied
I suppose from your answer, we can assume that my search for a programmer who would understand the AE and PR SDK is not a waste of time and that such a tool can be made by Adobe means using C++, bypassing third-party software?
Copy link to clipboard
Copied
There is no API in PPro that would allow the pasting of mask data from AE.
Copy link to clipboard
Copied
So when we export a mask from AE to Mocha Pro, we get a different mask than the one in AE, so it can be exported to PR? If yes, then I suppose that in this case you should not only write a function to output mask, but also a function to preconvert it to the format that PR understands (like it is done in Mocha Pro).
And also AE has an API that allows to accept PR masks, but PR doesn't have an API that allows to accept AE masks?
Copy link to clipboard
Copied
> So when we export a mask from AE to Mocha Pro, we get a different mask than the one in AE, so it can be exported to PR?
I believe Mocha uses AE's AEGP APIs, to get mask information.
>AE has an API that allows to accept PR masks, but PR doesn't have an API that allows to accept AE masks?
AE's AEGP API can add and manipulate masks, within AE. PPro has no API to apply mask data.
Copy link to clipboard
Copied
> "I believe Mocha uses AE's AEGP APIs..."
> "...AE's AEGP API can add and manipulate masks, within AE. PPro has no API to apply mask data."
I'm sorry, but either I misunderstand you or you misunderstand me...
If Mocha uses AEGP APIs and Premiere Pro doesn't understand them, why is it that by clicking the "Export Shape Data" button in Mocha Pro, I can insert masks into Premiere Pro, the same ones in AE, natively and with support for precise animation and configured interpolation in AE?
Copy link to clipboard
Copied
I'm unfamiliar with their implementation, but suspect Mocha must be decomposing that mask data into a paste-able format.
Copy link to clipboard
Copied
Thanks!
Now that sounds like the truth. And if you create a similar transformation in the interaction plugin without changing the base, as Mocha does, can such a plugin be written for AEtoPR interaction ?
I recorded a short video to show how it works:
Copy link to clipboard
Copied
.jsxbin files contain obfuscated ExtendScript code, executed within AE's ExtendScript API (which allows for getting/setting nearly all parameter streams associated with composition items).
The Mocha stand-alone application appears to be doing exactly what I described; decomposing the AE mask data into a text-based format, paste-able onto PPro mask streams. Note: No PPro API is involved, or necessary, for that pasting to occur.
>...can such a plugin be written for AEtoPR interaction ?
No. As previously stated, there is no API in PPro that would allow the pasting of mask data from AE.
It remains possible for you to use AE's ExtendScript API to get the data Mocha is accessing, and [whatever coding magic you'd like to perform] to convert that data into text, paste-able (by a user, with no API involved) onto PPro mask streams.
Copy link to clipboard
Copied
To be honest, as an active user of Adobe products, in particular AE and PR, I will not really care how technically this or that part works, for me it is more important that it works. :))
If I'm understanding you correctly, I need not even a plugin, but a script that can decompose AE masks into numeric values, displaying them in a plain txt file (like this: https://youtu.be/IxNo82TpOX0), and then these numeric values need [somehow magically] converted into masks in PR, but without API AE. Right?
Copy link to clipboard
Copied
> If I'm understanding you correctly...
You understand me correctly, except it's "but without PPro API"; you'd still need to use the AE ExtendScript API to obtain those values.
Copy link to clipboard
Copied
Yes, I understand that, but it's not the same as writing a plugin 🙂 I even seem to know how to do it. Only one thing I don't know: what to do with the values? How to insert them into PR? Do I need to write a JavaScript script for PR too, which will do that? Sorry for so many questions, I'm just so close to a solution... 🙂
Copy link to clipboard
Copied
> Only one thing I don't know: what to do with the values?
Put them onto the system clipboard, in a format consume-able by PPro mask streams.
[There is no documentation around that format]
Copy link to clipboard
Copied
Is this format to be guessed? 🙂 I thought that Adobe employees know what formats their software uses) Maybe you can ask some specialists from a particular department at Adobe to tell them where the value should be packaged? Getting that value is easy (there's already written code for that https://pastebin.com/6TvF12NW), but how to copy it so that you can paste it as a mask into Premiere Pro is a question. The fact that it is possible to do this, but how to do it is likely to know the developers who are involved in this particular direction in Adobe (Premiere Pro development). How can I contact any of them about this issue?
Copy link to clipboard
Copied
> Is this format to be guessed?
That format is to be determined by any interested third parties.
> I thought that Adobe employees know what formats their software uses
Correct! I said it wasn't documented, not that it wasn't known. We don't maintain or distribute that information.
The fact that it is possible to do this, but how to do it is likely to know the developers who are involved in this particular direction in Adobe (Premiere Pro development). How can I contact any of them about this issue?
You're already contacting them; I'm a Senior Engineering Manager for Premiere Pro (and in previous roles, was responsible for both the PPro and AE SDKs). The information you've requested is unavailable.
Copy link to clipboard
Copied
I'm sorry. I didn't know that this information was a secret, because it's essentially information for, somehow, making the tools easy to use by the users of Adobe products themselves.
Unfortunately, I'm an interested person, but far from a programmer, I'm a motion designer, so I don't know how to define such information. But I understand that there is such a rule. In any case, very thank you for the feedback! You've clarified a lot for me.
Have a great day! 😉
Copy link to clipboard
Copied
Thanks to you I discovered that Premiere Pro does not understand After Effects masks, but judging from my experience with other software for such exports, it is possible to convert the mask to the one that Premiere Pro understands, while leaving all the settings (animation, interpolation). And I have a question, if I may: what format should the PR mask be in? If I find a programmer who can do it, he, as I already found out, can't do a direct export, because it requires a preliminary conversion, and who if not you know what format you need to convert the AE mask into in order to be accepted by PR.
Copy link to clipboard
Copied
> what format should the PR mask be in?
That's not something we document, but if you paste Mocha's data into a plain text editor instead of a PPro mask stream, you'll see exactly how it's formatted.
Copy link to clipboard
Copied
Hah)) In fact, I've been beating my head against the wall for a week trying to solve this issue and tried to insert the data into a text document, but nothing happens, it can only be inserted into effects in Premiere Pro)