Matt Volp
Forum Replies Created
-
This is super impressive.

-
Matt Volp
September 23, 2020 at 7:56 pm in reply to: Script to change the Line Join of shape layer lineIt’s a drop down menu, so you need to set the value to the index of the option you want.
So something like this:
app.project.item(1).layer("Shape Layer 1").property("Contents").property("Shape 1").property("Contents").property("Stroke 1").property("Line Join").setValue(2); -
Matt Volp
September 23, 2020 at 7:44 pm in reply to: Randomly fade up/down opacity of masks in a layerYeah.
seedRandom(a,b)takes two arguments. a is the seed itself and b is ‘timeless’.
If you set timeless = true, the expression won’t reevaluate every frame – I think this is what you need.
So in summary, try this:
seedRandom(index,true);
start = random(1,90);
transComplete = effect(“Mask Fade Controls”)(“Transition Completion”);
linear(transComplete, start, start + 10, 0, 100); -
Matt Volp
September 23, 2020 at 7:25 pm in reply to: Change the position of a NULL object with respect to Rectangle WidthSure, try this. Parent the null to the rectangle, and put this expression in the null’s position property.
myRectangle = //pickwhip your rectangle
l = myRectangle.sourceRectAtTime().left;
t = myRectangle.sourceRectAtTime().top;
h = myRectangle.sourceRectAtTime().height;
[l,t + h/2];It’s worth noting you’ll need to ‘unseparate’ the null’s position dimensions.
-
You could draw the wavy lines as paths, trace them using ‘Create Nulls From Paths’ and then drive the size of the circle by the position of the resulting nulls?
-
Matt Volp
September 3, 2018 at 2:33 pm in reply to: Custom speeds when easing via expression ease(t,a,b,x,y)Hi Tim,
I’d love to know what the solution to this was.
Also, could you explain your workaround in a little more detail; it sounds very interesting!
Cheers.
-
Hi Dan,
What about if the word isn’t surrounded by whitespace?
For example:
string = “Hello you people!”
I want to highlight “people” “you”. Not “people!”.
-
Matt Volp
January 23, 2018 at 4:12 am in reply to: Lock a layer’s position … when it has an expressionOr you could get the text layers’ source text from markers on another layer, perhaps a null.
Apply this to the text layer’s source text:
txt = value;
n = 0;
m = thisComp.layer(“Marker Layer”);if (m.marker.numKeys > 0){
n = m.marker.nearestKey(time).index;
if (m.marker.key(n).time > time) n–;
if (n > 0) txt = m.marker.key(n).comment;
}
txt -
Matt Volp
January 23, 2018 at 4:02 am in reply to: Change the width only in the horizontal direction by sliderTry this (untested):
slider = thisComp.layer(“Controls”).effect(“Scale width”)(“Slider”);
t1 = key(2).time;
t2 = key(3).time;
t4 = key(4).time;
t5 = key(5).time;
v1 = [value[0], value[1]];
v2 = [slider, value[1]];if (numKeys >=6 )
easeOut(time, t1, t2, v1, v2);
else
easeIn(time, t4, t5, v1, v2)Matt
-
This should do it:
inDur = 0.5 // duration of in animation
wiggleDur = 0.5; // duration of wiggle
outDur = 0.5 // duration of out animation
layerWidth = thisLayer.sourceRectAtTime().width; // layer width
layerHeight = thisLayer.sourceRectAtTime().height; // layer heightx = layerWidth – (layerWidth*1.5); // “off screen” x position
y = layerHeight – (layerHeight*1.5); // ”off screen” y positionif (time < inPoint+inDur)
linear (time,inPoint,inPoint+inDur,[x,y],[960,540])
else if (time > inPoint+inDur && time < inPoint+inDur+wiggleDur)
wiggle (10,20); // arbitrary wiggle values
else
linear (time,outPoint,outPoint-outDur,[960,540],[x,y])Feel free to change the value of x and y depending on where you would like the “off screen” position to be.
Assuming that the scale property of the layer you want to animate is set at 100%, the x and y “off screen” positions above will keep the layer perfectly on the edge of the comp, no matter how big the layer. For example, if you were to apply this to a shape layer and resize the shape inside the ‘contents’ parameters, it will automatically adjust.
Obviously, the total layer duration will have to be exactly the sum of all the duration variables. In this case; 1.5 seconds.
If you wanted to have the layer wiggle, regardless of time, between the in and out animation, then try this:
inDur = 0.5 // duration of in animation
outDur = 0.5 // duration of out animation
layerWidth = thisLayer.sourceRectAtTime().width; // layer width
layerHeight = thisLayer.sourceRectAtTime().height; // layer heightx = layerWidth – (layerWidth*1.5); // “off screen” x position
y = layerHeight – (layerHeight*1.5); // ”off screen” y positionif (time < inPoint+inDur)
linear (time,inPoint,inPoint+inDur,[x,y],[960,540])
else if (time > inPoint+inDur && time < outPoint-outDur)
wiggle (10,20); // arbitrary wiggle values
else
linear (time,outPoint,outPoint-outDur,[960,540],[x,y])This now works regardless of the layer duration.
Matt