Chris Mellor
Forum Replies Created
-
To clarify:
Duplicate works (but doesn’t quite help me copy a layer from one comp to another).
Copy doesn’t work (hotkey or through the Edit tab)
Cut doesn’t work (hotkey or through Edit tab)
Copy With Property Links and Copy with Relative Links also doesn’t work, but crashes while saving instead of crashing after saving. I have to Force Quit with this one.That’s all I’ve found so far.
Computer specs:
iMac Pro (2017)
3GHz Intel Xeon W
64 GB 2666 MHz DDR4
Radeon Pro Vega 64 16 GB-Chris
-
You’re correct that my reluctance to precomping is about organization/navigation. I’m going to have dozens of assets in my project and animating each in their own comps sounds like a nightmare.
I’ll work with two windows or maybe link all the effects to a master layer using “Copy with Property Links”
Thanks for all the feedback guys! I may send in a feature request. Still seems weird that they have an effect for Drop Shadow and none of the other Layer Styles.
-Chris
-
Here’s the crazy workaround I currently have to keep it all within the Effects of one layer:
Drop Shadow (set to Shadow Only) + Invert (Alpha) + CC Composite (Stencil Alpha)
Then I add my Roughen edges and stylized effects
I guess I could create a Preset… but it currently seems like a lot of processing for what could be a single effect
-Chris
-
Thanks Jonathan,
I was able to solve my problem with some help from a poster in the After Effects forum.
If anyone is curious, the solution was to add the Paint Bucket effect to an adjustment layer, with the coordinate set to the top left corner, and fill in 100% red. Then just key out red. I rendered out a png sequence, and automated a Trim & Save action in Photoshop to crop all of my stamps.
Thanks again,
-Chris
-
John, you are a life-saver!
A lot of these great suggestions didn’t work because the stamps are all different sizes, but John’s Paint Bucket + Key Color worked perfectly.
All I did was align all the stamps to the top left corner, set the coordinates of the Paint Bucket to something like (10, 100) and then Key out the fill color. Rendered out a png sequence, automated a Trim & Save action in Photoshop and BAM, about 1000 stamps over alpha!!
Thanks everyone for the input. You just saved some poor intern thousands of hours…
-Chris
-
Definitely needed to take a step back and think that through logically. Thanks for the help, everyone!
-Chris
-
Chris Mellor
April 27, 2012 at 6:29 pm in reply to: Creating an ocean of text layers, all reacting to a displacement mapYes, I’m simply trying to simulate a large body of water using words. I got very close with Trapcode Form by creating a plane of sprites (my words) and applying the displacement map to it to simulate the subtle waves. But Form won’t allow the words to rotate as they move along the waves so I am using these expressions instead.
I would love to know if there is a simpler solution because all of these expressions are severely affecting AE… I am getting the timeout error almost every time I RAM preview now.
-Chris
-
Chris Mellor
April 27, 2012 at 4:03 pm in reply to: Creating an ocean of text layers, all reacting to a displacement mapThanks so much Dan! Although I am not quite sure how arctangent2 works… it works! Unfortunately these expressions are now causing AE to act really buggy. Sometimes the program crashes, but more often, I get a “Timeout while waiting for engine” error. Sounds to me like there is some kind of infinite loop problem, but I can’t imagine where.
If someone could look over my code and give me some feedback, that would be great. Maybe there are some redundancies or simple syntax errors I am overlooking.
Here is the code for the Position value of my word layer, remember this is one layer meant to be duplicated 500+ times:
leader = thisComp.layer("Attractor"); // null layer// spacial offset from null
seedRandom(index, true);
offsetX = random(0,20)*thisComp.layer("Spacial Slider").effect("X")("Slider")*thisComp.layer("Spacial Slider").effect("XYZ")("Slider");
offsetY = random(-20,20)*thisComp.layer("Spacial Slider").effect("Y")("Slider")*thisComp.layer("Spacial Slider").effect("XYZ")("Slider");
x = leader.position[0] + offsetX*time; // the *time makes it so it is always moving, so the atan2() in the rotation expression is never dividing by 0
y = leader.position[1] + offsetY;// z bump
zMin = thisComp.layer("Wave Height Sliders").effect("zMin")("Slider");
zMax = thisComp.layer("Wave Height Sliders").effect("zMax")("Slider");
target = thisComp.layer("Turbulence Layer");
samplePoint = [Math.abs(x),Math.abs(y)];
sampleRadius = [5,5];
rgb = target.sampleImage(samplePoint, sampleRadius);
lum = rgbToHsl(rgb)[2];
offsetZ = ease(lum, 0, 1, zMin, zMax)*thisComp.layer("Spacial Slider").effect("Z")("Slider");
z = leader.position[2] + offsetZ;[x, y, z]
and the zRotation expression looks like this:
p1 = position;
p2 = position.valueAtTime(time-thisComp.frameDuration*5);
delta = p1-p2;radiansToDegrees(Math.atan2(delta[2],delta[0]))
Does this all make sense? Is there a smarter way I could write this so AE doesn’t get confused reading it??
-Chris
-
Chris Mellor
April 26, 2012 at 8:50 pm in reply to: Creating an ocean of text… problems with Particular and FormScratch that previous expression. I realized I shouldn’t be sampling the Lum (0-1) to base my rotation on, but instead the Delta.
Here is the revised version as it stands. It makes more sense in theory… but the outcome is even jerkier motion… I’m getting too deep into these expressions! Help!!// z sampling
target = thisComp.layer("Turbulence Layer");
samplePoint = [position[0],position[1]];
sampleRadius = [1,1];
rgb = target.sampleImage(samplePoint, sampleRadius, true, time);
lum = rgbToHsl(rgb)[2];
rgbOld = target.sampleImage(samplePoint, sampleRadius, true, time-thisComp.frameDuration);
lumOld = rgbToHsl(rgbOld)[2];delta = (lum-lumOld)*100
if (delta >= 0) {
ease(delta, 0, 4, 0, -30)
}
else {
ease(delta, 0, -4, 0, 30)}-Chris
-
Chris Mellor
April 26, 2012 at 8:25 pm in reply to: Creating an ocean of text… problems with Particular and FormMy thoughts exactly. Unfortunately this is the most processor-heavy approach, especially when there’s 500+ duplicate layers, but I guess there’s no feasible alternative. I have spent all day now making an expression for the Z rotation of my Words. Here’s what I have so far:
// z sampling
target = thisComp.layer("Turbulence Layer");
samplePoint = [position[0],position[1]];
sampleRadius = [1,1];
rgb = target.sampleImage(samplePoint, sampleRadius, true, time);
lum = rgbToHsl(rgb)[2];
rgbOld = target.sampleImage(samplePoint, sampleRadius, true, time-thisComp.frameDuration);
lumOld = rgbToHsl(rgbOld)[2];delta = lum-lumOld // difference between current lum and lum from one frame before
if (delta > 0) {
if (lum < .5) {
ease(lum, 0, .5, 0, -30)}
else {
ease(lum, .5, 1, -30, 0)}
}
else {
if (lum > .5) {
ease(lum, 1, .5, 0, 30)}
else {
ease(lum, .5, 0, 30, 0)}
}The problem is when the word shifts between all of these if() statements, it tweaks out. Any coding advice would be appreciated.
-Chris