Kevin Camp
Forum Replies Created
-
I think the OP in this thread was going for a similar effect:
https://forums.creativecow.net/thread/227/28555
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
Kevin Camp
January 16, 2015 at 10:10 pm in reply to: Rotating 2 objects but keeping one object uprighthere’s a more universal expression.
v = toWorldVec([1,0]);
radiansToDegrees(Math.atan2(v[1],v[0]))it’s a slight variation of dan ebberts’ found here (he provides a good description of what it is doing, if you’re curious):
https://www.motionscript.com/mastering-expressions/lst-2d-auto-orient.html
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
Kevin Camp
December 25, 2014 at 1:03 am in reply to: pseudo-tech explanation of the effect named echo and it’s operators?i’m not sure which echo tutorial you are following, but this one addresses some of the issues you first mention:
https://library.creativecow.net/articles/rabinowitz_aharon/Echo_Time/video-tutorial
in short, composite in back or in front can only work on keyed layers, the others are similar to ae’s layer blending modes and will work on footage or other layers. add, screen and blend will make layers brighter. if you are applying to footage layers it is often helpful to set the echo time to the frame duration of the footage — ie, 1/24 or 1/29.97, 1/59.94 etc.
if you want to blend frames but not effect the brightness as much as echo, cc time blend and cc wide time may be a better choice. wide time is pretty straight forward, but time blend isn’t as intuitive…
time blend uses cached frames, which is very fast, but you have to express the number of frames to blend as a percentage of your cached frames. i don’t have a way to calculate that, but higher values belnd more frames and lower values blend fewer frames. you’ll also always want to ram preview from the first frame of the comp and after making any change to the settings you’ll want to hit ‘clear’ at the top of the effect settings to purge the cached frames, otherwise it will blend your previously cached frames with the new settings, and things start to get wonky fast. also, before rendering, i’d choose edit>purge>all to avoid getting bad frames in the render.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
particular would be the way i’d try it.
you’d probably want to use a layer as an emitter (one for each wheel) and parent the position of the layer to the wheels (rather than true parenting, you may need to use expressions). that way you can use a tread-like texture as the layer to emit a tread like pattern, and you can keep the emitter parallel to the ground.
you may even be able to rig the birthrate or particle opacity to the speed of the wheel rotation to have the skid marks turn on and off by themselves. it might be a little tricky, but it would be fun to try.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
I don’t see how rotation of another layer is being used in your expression (it looks like it is evaluating keyframed values), but you may be able to loop the position output in a similar way to how Dan proposed looping a rotation input.
try something like this for the position:
x = value[0]%thisComp.width;
[x,value[1]]it’s impossible to test it out on my end since i don’t have the whole picture of how you have things set up.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
i’m sure there is a way to do this with expressions, here’s a way to do it using particle playground:
https://forums.creativecow.net/thread/227/15897#15939
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
i’m not sure if this will work for your set up, but in a simple situation with a layer moving from offscreen-right to offscreen-left this would make it repeat:
loopOut()Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
you can use sample Image() to help with this:
target = thisComp.layer("gradient"); // this is the layer to sample
sMin = 10; // min scale for the square
sMax = 100; // max scale for the square
radius = .5; // sample radiussmpl = target.sampleImage(position,[radius,radius], true, time)[0];
s = linear(smpl, sMin, sMax);
[s,s]just change the target layer name to your gradient layer’s name and use the layer. note that you may need to precomp your gradient layer(s) depending on how you are creating the gradient map. then apply the expression to all the squares.
you can also use an effect like card wipe. it will divide up a layer into a grid of ‘cards’ and then allow you to control the ‘card’ attributes with a gradient. if you choose you gradient layer as ‘gradient layer 1’ and set the x and y scale attributes to use ‘intensity 1’ for the source, .5 for the multiplier and .6 as the offset it may start to get you close.
trapcaode’s particular can do this too if you have it. harry frank has an old tutorial that you could adapt to use square particles:
https://www.motion-graphics-exchange.com/after-effects/Particular-Halftone-Effect/4a872de7c592c
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
Sorry Chris, there was an inadvertent period in the tenth line, change it to this:
hr = t[0].split(”)[1];
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
see if this works for you:
xA = 100; // x value for point A
tA = 0; // time value for point A in hoursxB = 1000; // x value for point B
tB = 1.25; // time value for point B in hoursv = linear(position[0],xA,xB,tA,tB)*60*60/thisComp.frameDuration;
t = timeToTimecode(framesToTime(v)).split(':');
hr = t[0].split('').[1];
min = t[1];
sec = t[2];hr+'hr'+' '+min+'min'+' '+sec+'secs'
set the xA and xB values as needed for the x values of points A and B. You didn’t mention a time values for point A, i assumed zero, but you can change if needed.since the expression uses the timeToTimcode() function, it is limited to 3 hours max, but this method makes it a little easier to get leading zeros for minutes and seconds, which I think you want. if the 3hr limit doesn’t work, there are other ways to get that formatting that aren’t limited to 3hrs.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW