Copy link to clipboard
Copied
hey im making a Premiere CEP plugin thats allow you to manipulate effects on clips to achieve more complex fx using Math and logics,
currently i i got camera movement fx and staff like that (of course it has tons of keyframes lol).
today i got to mess around with the text "effect".
i know it is kinda new and works weirdly relative to other effects,
but i did manage to control and manipulate the text source (change the text itself),
and also to manipulate the 'Tracking' to my will using script.(thats the things i want to animate)
the thing is that from some reason the "TimeVarying()" return an error.
and after small check i found out that "areKeyframesSupported()" return false.
which is weird because at Premiere Pro using the 'Effect Control' panel you can add keyframes to the 'Source Text' in the Text effect.
(yea it doesnt really animate it and its more like jumping from state to state as its move from keyframe to keyframe but it should work in script if i will use very fast keyframes with small change in values..)
i dont know if it is a bug or im missing something..
any help will be great!
thanx.
Yea, it doesn't look like source text interpolates at the moment, but most of the properties like Font, Alignment, etc don't interpolate in AE either, only do hold keyframes basically. So if you wanted an effect of cycling through fonts or something like that, you could make that with a ton of individual keyframes.
Which properties are you trying to animate specifically?
Funny, I completely forgot about this discussion, but it was almost 6 years ago so guess that's why.
Tried today and looks like this "hack" no longer works in the current version of Premiere. Likely the text encoding has changed or something.
I wouldn't recommend going down this path too far, it's undocumented and as we've seen subject to change so even if you could get it working today it could break in the near future without any warning since it's not an offical API.
I'd wait till Adobe
...Copy link to clipboard
Copied
Yea, it doesn't look like source text interpolates at the moment, but most of the properties like Font, Alignment, etc don't interpolate in AE either, only do hold keyframes basically. So if you wanted an effect of cycling through fonts or something like that, you could make that with a ton of individual keyframes.
Which properties are you trying to animate specifically?
Copy link to clipboard
Copied
First of all thanx for answering,
And yea i do want it to act like keyframe holds.
The property that im trying to animete is the "text source"
(the property that contain a huge text in JSON look-alike form (it is a string) with all the text's font, size, tracking, etc)
Basicly it is the "property[0]" in the Text effect.
And as i said earlier i cant activate the TimeVarying() for that property ..
Thanx again!
Copy link to clipboard
Copied
Hmm, might not be possible with the current API. Can you post your full snippet so I can test on my end? (I'm not seeing any JSON type data from text source, just an unknown character: ੤.)
Copy link to clipboard
Copied
Yea that the wired part,
If you take that string you get ('੤') from the GetValue() and split it at the 5 or 6 letter (cant remember, im currntly on a trip so i cant access the code i wrote) you will get a string that you can actually read, that string is looking like json but its isnt realy json.
(i dont know what is the first 5 characters tho)
I know its sounds wierd. Just use it like this:
Var sourceTextVal = propertie[0].getValue().substring(5);
Copy link to clipboard
Copied
Woah, nice detective work! Yea so if you split after the 4th character you can parse the JSON string:
JSON.parse(app.project.activeSequence.videoTracks[0].clips[0].components[3].properties[0].getValue().substring(4));
Copy link to clipboard
Copied
Yep already know that xD.
You can also use setvalue and its actually works and update the text source
(you just need to keep it as the original text was before - with the first 4 letters)
I used string.replace to maintaine the correct string while chaneging things like the text itself.
I just need to find a way to actually use keyframes on it.
Thats my problem T.T
Got any idea how?
Copy link to clipboard
Copied
Hmm, looks like a bug to me: sourceText.isTimeVarying() always returns false even if the stopwatch is enabled and keyframes exist for all the text properties. Also, sourceText.setTimeVarying(true) returns "Bad argument setTimeVarying" on Source Text and appears to do nothing for the rest of the Text properties.
@bbb_999 Can you confirm this behavior?
Copy link to clipboard
Copied
Hi, were you able to change the MOGRT text that was created in PP?
I can get the values ​​in the 2019 version of PP. But when I try to replace the values, I get nothing instead of text, although the new text contains new values, when I get it again
Copy link to clipboard
Copied
hey did you find any solution for your quary , i am also goin through same problem
Copy link to clipboard
Copied
hi @Justin Taylor-Hyper Brew can you plz help me in this code , i am trying to acess the source text for the ppro graphics layer for a log time now, as you discussed that "if you split after the 4th character you can parse the JSON string" but i am only getting a single charecter for
var seq = app.project.activeSequence;
var jsonVal = seq.videoTracks[0].clips[0].components[3].properties.getParamForDisplayName("Source Text").getValue();
var jsonObjPart = jsonVal.substring(0, 4);
alert(jsonObjPart)
var jsonObj = JSON.parse(jsonVal.substring(4));
jsonObj.mTextParam.mStyleSheet.mText = "This is a new text";
var jsonOutstr = JSON.stringify(jsonObj);
var jsonOutstr = jsonObjPart + jsonOutstr;
seq.videoTracks[0].clips[0].components[2].properties.getParamForDisplayName("Source Text").setValue(jsonOutstr, true);
​
Copy link to clipboard
Copied
Funny, I completely forgot about this discussion, but it was almost 6 years ago so guess that's why.
Tried today and looks like this "hack" no longer works in the current version of Premiere. Likely the text encoding has changed or something.
I wouldn't recommend going down this path too far, it's undocumented and as we've seen subject to change so even if you could get it working today it could break in the near future without any warning since it's not an offical API.
I'd wait till Adobe adds text layer cappabilities to UXP or rely on MOGRT text layers for now which are scriptable.
Copy link to clipboard
Copied
ok Sir, thanks for the confermation
Find more inspiration, events, and resources on the new Adobe Community
Explore Now