Copy link to clipboard
Copied
Hello,
I've been trying to make a wiggle effect by scripting just like in AE (example: ([position[0],wiggle(44,22)[1]])) and I've came to this demo:
//gather project/clip/effects properties for this demo
var activeSequence = app.project.activeSequence;
var trackOne = activeSequence.videoTracks[0];//first track for testing
var clip = trackOne.clips[0];//first clip for testing + His time Properties
var start = clip.inPoint;
var end = clip.outPoint;
var duration = end.seconds-start.seconds;
var components = clip.components;
var transformComponent = components[2].properties[1];
//Represent how much the clip will Vertically move (increase value to move less)
var range = 80;
//Represent gap in seconds
var gap = 0.04;
//how many times it needs to repeat
var loopTimes = (duration/gap).toString();
//Allow the changes
if (!transformComponent.isTime) transformComponent.setTimeVarying(true);
for(var i = 1;i < loopTimes;i++){
var time = new Time();
time.seconds = gap *i ;
var diff = (Math.random())/80;
transformComponent.addKey(start.seconds+time.seconds);
transformComponent.setValueAtKey(start.seconds+time.seconds,[0.5,0.5+diff],1 );
}
It works fine but, as you can see it the screenshot, it is really demanding. for a 18second clip and the desired gap to make the desired look it can take around 30seconds or so (sadly I do not own a i9 & RTX3090). Just imagine for a 30min footage!
I tought about a solution in regard the ineficiency. It would be to make the effect for a 2second clip & repeat it multiple times to enhance the speed but I do not see how that could be possible since the projectItem.clone() does not seems in yet (DVAPR-4211779).
Any ideas of what alterate solution I could use?
thank you very much,
Maxime LP
Copy link to clipboard
Copied
>I do not see how that could be possible since the projectItem.clone() does not seems in yet (DVAPR-4211779).
I don't understand how sequence cloning is related, to keyframing speed...?
Also, to speed things up, you could re-use a time object, instead of making a new one each time through the loop...
Copy link to clipboard
Copied
That would help because instead of creating the Keyframes for example on a 20 seconds clip it would only be 2seconds duplicated 10 times since the loop is the demanding part.
Also, I've removed the time object from the loop and, if it helps, it is only by 1second.
**does the dev team plan on adding the feature DVAPR-4211779? its seems like its getting nowhere since 1st post was in 2018... Same goes for DVAPR-4224243. I've tried multiples time to contact support and they just say they will contact me and they dont. I have emails where they gave me 3 days to anwser but closed it -8h later and a following chat logs saying a dev senior would contact me a few week back without any comeback..
Copy link to clipboard
Copied
DVAPR-4211779 seems unlikely to get implemented, before we move from ExtendScript --> UXP. You could instead create a sub-clip of that 2 second region, right?
DVAPR-4224243 may eventually get attention, but there is a workaround; just catch() anything it throws, and it'll work.
Copy link to clipboard
Copied
Sub-clips uses rootItems therefore effects should not follow if im not mistaken
Copy link to clipboard
Copied
That could be.
Copy link to clipboard
Copied
sorry that is'nt the correct answer. it does not work