Kevin Camp
Forum Replies Created
-
you could play around with the time displace effect. it will displace time based on the luminance of a layer map. so you could use a simple gradient to have the morph start at the bottom and end at the top.
it may not give you quite what you want, but i think you could get close.
your morphing square-circle will need to be precomped, then create a shape layer with a gradient fill and adjust the gradient to go top-to-bottom.
apply the time displacement effect to the precomp, select the shape layer as the layer map and adjust the displacement time to see if you can get what you need.
i think if you animate the displacement time to start at 0 when the morph starts, then increase to the duration of the morph at the midpoint, then back to zero at the end of the morph, you’ll be close…
ex: say your morph from square to circle is 4 seconds. on the first frame set the time displacement to 0, at the 2 second mark, set it to 4 and ad the 4 second mark set it back to 0.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
i think what you are looking for is Math.min(), a function that will take the smaller of two values…
max = 80; //set maximum value
o = thisComp.layer(index + 1).transform.opacity.valueAtTime(time - .15) + 7
Math.min(o,max)
in this expression, the opacity would never exceed 80. you can set that max value as needed.there’s also a Math.max() function which takes the greater of two values, if you ever needed that. and there’s clamp() which can be used to keep a value between 2 values… say you opacity value needed to stay between 20 and 80, clamp(o, 20, 80) would do that.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
i had thought about using clamp(), but it wouldn’t have allowed the rotation to reach 900.
not that you need to change what you have, but just to show you how clamp() works, rather than the if statements, you could use this:
clamp(r, 0, 900)
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
i would probably use valueAtTime() for something like this…
with your existing sliders, you could use an expression like this to drive y rotation:
ctrl = thisComp.layer("Controls");
yRot = ctrl.effect("Y Rotation")("Slider");
delay = ctrl.effect("Y Rotation Delay")("Slider");
yRot.valueAtTime(time-(index*delay))however the Y Rotation Delay slider will be used for a time delay in seconds rather than a measurement in degrees for the offset.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
all of those will work… i usually go brian’s route, it usually produces the best result. note that you don’t need the invert effect, you can enable invert in the channel combiner settings, but then the remove color matting color will need to be set to white.
you can save that effect combination as a preset (select effects, then animation>save animation preset) then you can easily recall it when needed.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
sorry, by skinny i just meant long and narrow. you’d use that to put your animated texture (or particle system) in and then use that long narrow comp as a ‘branch’ in another comp, using the puppet tool to deform the narrow comp to look like a branch. that setup was just to get the texture to flow along a mesh path, which would tough to do otherwise with a particle system (though you could look for tutorials that use motion paths with particular).
a particle system would necessarily need to loop, but if you wanted to be able to speed things up by pre-rendering (which is not a bad idea) looping a particle system is pretty easy, here’s a tutorial:
https://library.creativecow.net/articles/rabinowitz_aharon/CC_Looping_Particles.php
that music video is really cool, i remember seeing that when it first came out — he actually created it as a study for particular 2, inspired by the music. later the group made it their official video, which is really cool. anyway, you’ll want to spend a lot of time with the physics>air properties. the horizontal movement is mostly generated by using the wind properties, and the organic ‘trail’ movement uses variations in spin amplitude/frequency and turbulent field. i’m sure there’s hours more finesse work, but those are the properties i’d focus on.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
Kevin Camp
June 19, 2014 at 6:12 pm in reply to: Trying to build an expression that will output to a file outside AE..if writing a simple(r) parsing script might be more up your alley (it would be for me), if you convert you sampleImage() expression to keyframes, then select the keyframes and copy them, you can then paste that data into a text file — i haven’t actually done this for a color property (i have for position), but i assume you’ll get rgba values for every keyframe.
at that point you’d need to write a script that will parse that file up and write a file with the data in the order that you need.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
it could be due to the artwork not filling the art board fully in illustrator (thus leaving a slight edge).
what if you drag that ai file onto the make comp icon, then set the comp to be 2 pixels less wide (to trim any bad edges), then take that comp into another comp and try offset/motion tile.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
Kevin Camp
June 18, 2014 at 9:28 pm in reply to: Is there a way to keep a block of text always vertically centred?that would be nice (you might suggest it with a feature request):
https://www.adobe.com/cfusion/mmform/index.cfm?name=wishform
you can do it if you force the user to type hard returns (so you wouldn’t want to use a block). if you do that, you can use an expression like this to count the hard returns and the change the position accordingly:
offset = 24;
txt = text.sourceText.split(‘\r’);
y = (txt.length-1)*offset;
value-[0,y]you just need to figure out the offset value for the font/size that you are using.
Kevin Camp
Art Director
KCPQ, KZJO & KRCW -
Kevin Camp
June 18, 2014 at 5:02 pm in reply to: How to generate a static waveform presentation of an audio file.yep.. that line had a typo…
smplT = framesToTime((index – target.index) * smpl – (smpl / 2));
Kevin Camp
Art Director
KCPQ, KZJO & KRCW