Mike Clasby
Forum Replies Created
-
This hack from a Dan expression seems to do what you want. It is applied to the Amount of blur (Copy the expression, Alt Click the Amount Stopwatch, then Paste) I use Fast Blur, but whatever blur you want:
maxBlur = 25 // amount of initial blur;
minBlur = 0 // amount of final blur;
nFrames = 10 // number of frames to change blur;
f = thisComp.frameDuration*nFrames;
linear(time,inPoint,inPoint+f,maxBlur,minBlur)Change maxBlur, minBlur, and nFames to taste.
If you want it to ease in a bit, I like that a little better, change the last line to:
easeIn(time,inPoint,inPoint+f,maxBlur,minBlur)
-
This might work for you.
On the Logo layer, set keyframes for Position for the basic collision.
For the Dust:
Make a duplicate of your logo layer (Ctrl D). On the top logo layer, apply Scatter, amount 0 at impact, then one frame later (Page Down), amount = 50 (to taste) (uncheck Randomize Every Layer). this is the dust. Now set keyframes for the dust falling, if you want it farther below the logo, or if you want it to fall to the base, disconnect the x and y of Scale (S) by clicking the “Constrain Proportions” symbol (looks like an infinity symbol), then drop the Y Scale from 100 to something like 4 (looks like the dust is lying on the floor then) over time to let the dust settle. You should move the anchor point of the copy to the bottom of that dup logo layer with the Pan Behind tool, this lets the dust settle downward. There are probably Particle solutions to the dust, maybe somene else will chime in.On the lower logo, you could add this Marker triggering expression to Scale so that on impact, you get a little shudder of the logo. Copy the expression, then Alt Click the Scale Stopwatch, then Paste:
n = 0;
if (marker.numKeys > 0){
n = marker.nearestKey(time).index;
if (marker.key(n).time > time){
n–;
}
}
if (n == 0){
value;
}else{
maxDev = 5; // max deviation in pixels
spd = 40; //speed of oscillation
decay = 10.0; //how fast it slows down
t = time – marker.key(n).time ;
x = scale[0] + maxDev*Math.sin(spd*t)/Math.exp(decay*t);
y = scale[0]*scale[1]/x;
[x,y]
}You need to add a Marker (* on the numeric pad) and that will trigger the expression. You’ll need to move the anchor Point, again with the pan behind tool, this time move it to the point of impact.
This is a hack of several Dan expressions. Change the maxDev,spd, and decay to taste, it gets rubbery real fast.
-
Note: the 2D shop must be below the 3D text.
-
This is a possible way to do what you want.
Make the text layers 3D, keep the shop 2D, then it will always be in the background.
First add Position keyframes to your text for your basic lift.
Add a Slider (Effect>Expression Control>Slider Control) and name it “Amplitude” (double click “Slider Control” in the Effect Controls Palette and rename).
Add this expression to Position (Copy the expression, Alt Click the Position Stopwatch and Paste):
wiggle (.2,effect(“Amplitude”)(“Slider”))
Add this to Orientation (R):
wiggle (.2,effect(“Amplitude”)(“Slider”)/3)
I divided by three (the “/3”) because it looked better.
Now place keyframes on the slider, one for 0 (zero), where you want the text to lift off (where you initial Position keyframes were set), then down the line set a slider keyframe for what you want the maximum Amplitude (how much wiggle) to be.
This should give you a very controllable floating motion. Tweak to taste (change the .2 to change the frequency of the wiggle, and the slider keyframes to change the Amplitude).
There are other ways to do this, but this should work.
-
Yes, I see what you mean, there no Longevity or Particle Life parameters.
From the Help Files (F1):
Persistent Property manager>Affects>Map Red To: Lifespan
Min:0
Max:5There are similar controls for Green and Blue.
This seems to cut off the particles, but rather abruptly.
I think a large mask (Inverted) on a Soils Layer above, then Feathered (F) way out looks better.
Or you could always use on of the CC Particle generators and adjust the Longevity.
With all that exhaust, another reason to go electric.
-
Hey, I’ve probably already said to much, I’m glad your method worked.
-
Your second line,
linear(z,0,100, -138.2,-150);
is not really doing anything, it’s interpolation is not being used later. With the “-138.2” added to the first line you did your interpolation there, sort of. You can delete line 2 in your expression and nothing will change. Drop the “-138.2” in line 1, make the second line equal to something, I believe it’s called a variable, then drop that into your bottom line, like this.
z=thisComp.layer(“Audio Amplitude”).effect(“Both Channels”)(“Slider”);
a = linear(z,0,100, -138.2,-150);
[352,245,a]Also, look at the values that the Audio Amplitude layer is producing, twirl down to see the curve, it probablyt doesn’t go from 0 to 100 (the slider value) but maybe something like 0 to 35 or 40. You can change line 2 (the linear interpolation) from 0-100 to 0-40(or35, whatever):
a = linear(z,0,40, -138.2,-150);
Also I noticed you changed the interpolation from you first post, it was:
linear(x,0,100,-138.2,-180)
and is now
linear(z,0,100, -138.2,-150);
I’m assuming you now only want a 11.8 pixel bounce when originally you wantd a 41.8 pixel bounce.
It might be easier to setup the ranges as variables, like this, so you can see the maximums and minimums you’re using:minAudio = 0 // the lowest audio amplitude;
maxAudio = 40 // the highest audio amplitude;
minZ = -138.2 // minimum Z bounce;
maxZ = -180 // maximum Z bounce;
z = thisComp.layer(“Audio Amplitude”).effect(“Both Channels”)(“Slider”);
a = linear(z, minAudio, maxAudio, minZ, maxZ);
[352,245,a]
Or maybe not.Dan is a great source for expressions, here:
https://www.motionscript.com/mastering-expressions/language-beginning-2.html
His site is wondrous, here:
-
This will work for you.
x=thisComp.layer(“Audio Amplitude”).effect(“Both Channels”)(“Slider”);
zBounce = linear(x,0,100,-138.2,-180);
[position[0],position[1],zBounce]But changing the x to something else might be clearer to others seeing your expression.
amp = thisComp.layer(“Audio Amplitude”).effect(“Both Channels”)(“Slider”);
zBounce = linear(amp,0,100,-138.2,-180);
[position[0],position[1],zBounce]Explanation
position[0] just tells it to use the original x
position[1] the original y
and then to use “zBounce” as the z -
Here’s a few tuts that should do what you want:
Rick Gerard’s
Using Projection Layers to create a gobos and projector type effects
https://library.creativecow.net/articles/gerard_rick/Projection_tut.php
Andrew does it here:
37. 3D Camera Projection June 25, 2007
https://www.videocopilot.net/videotutorials/3dprojection/index.html
-