Phil Aupperle
Forum Replies Created
-
Phil Aupperle
February 2, 2017 at 5:20 pm in reply to: Animating portions of a pattern to change colorI’ve done effects like this by creating the hex pattern in Illustrator and converting to shape layers in AE with the Explode Shape Layers script ( https://aescripts.com/explode-shape-layers/ ) and then hooking whatever parameters you want; fill color, opacity, size, etc. to a control layer via a sampleImage() expression. You could also make the hexagons by pasting from Illustrator into masks, or just coloring Illustrator layers with the Fill effect, but you’ll have a separate layer for each hexagon with those methods. There is also a script called Divide and Corner that will create the hex-pattern as shapes in AE. If you’re working with tons of shape layers, I recommend having the Explode Shape Layers and Motion2 scripts to wrangle them and manage the anchor points.
Here’s dan’s guide to using sampleImage():
https://www.motionscript.com/design-guide/obscuration.htmlCheers
-
Phil Aupperle
September 8, 2016 at 5:12 pm in reply to: General: What text editors and other tools do you like for AE expressions?That. Is. Awesome.
That unlocks a huge amount of potential. Can’t wait to start testing this!
-
Oh wow–way better strategy!
Thank you again, Sensei.
I have this wired up to some sliders and it is working great!
-
Phil Aupperle
April 4, 2016 at 7:30 pm in reply to: General: What text editors and other tools do you like for AE expressions?Now that I’ve had a day to bang on Expressionist pretty hard, I’d say it’s going to be a major tool for me from now on. The ability to grab expressions out of properties, and then blast them back onto multiple layers simultaneously without copy-pasting is awesome. This means you can actually keep the ram preview going while you tweak an expression, reapply it to multiple layers, and see the results immediately. I still think it’s a good idea to have another text editor open so you can keep variations, save text files, etc., but for AE productivity the extension is huge. Also, the ability to catch open perens and brackets without my eyes going googly is a big bonus. 😉
-
Oh man! Well, that makes me feel a little better anyway. Hopefully someone from the Adobe team is reading this. 😉
-
Awesome! Thank you. Works perfectly.
I could get the size correct in my attempts, but the position was making me insane. I’ll admit I don’t understand the implementation of shape and path sizes/positions/anchor points in shape layers relative to normal layer parameters and comp coordinates at all, apparently, and I get totally lost in the vectors. Is the position of a path the center of it’s bounds, or does it have some default anchor point? Are a path’s coordinates based on the shape layer anchor point and position? If you happen to know where in the Adobe documentation this is, I’d love to get up to speed on it.
Thanks again for the help–this is something I can think of a million uses for. You are the man.
-
Phil Aupperle
December 23, 2015 at 10:23 pm in reply to: Inverse Track+Puppet Pin Expression to Freeze PointsSo, using the reverse stabilize pre-comp trick as a point of departure, I’m currently using this solution, and it seems to be working:
-Track a point
-Make a solid the same size as the comp, and pickwhip the anchor point to the tracker attach point
-Make a null, and position it over the track point at the first frame
-parent the null to the solid
-make a puppet pin on the target layer
-Add Dan’s code found elsewhere to get world position from the null:There has to be an easier way, but this does seem to work….
L = thisComp.layer("child null");
L.toWorld(L.anchorPoint); -
Well, there would have to be a unique chain of precomps for each lower third. What I’d like to achieve is a single comp that I can just change the text with formatting and not have to duplicate and replace a bunch of nested comps. In this instance, I’m trying to make a lower third that can be either left or right justified, generate the backplate sizes with an expression based on the text length, and have the option of mixing fonts and bolding certain words. The whole thing is hooked up to a spreadsheet with the Templater script. I had wanted to just make a comp that had several controller layers that would make everything else happen, but if I get into precomps I’ll have to generate that whole hierarchy for each version, and updates will put me back to square one.
If there were a way to grab the text parameters, it would be dead simple. Thanks for the suggestions though.
-
That’s what I thought. Another reason I don’t want to precomp is so I can redesign it and have it cascade through the whole hierarchy with out having to use True Comp Duplicator or something to make and replace a zillion nested comps.
I don’t have the time to mess with it right now, but I think one way to do it might be to have several text layers stuck together with anchor points that are attached to the end of the previous text layer. It would probably be pretty janky, but I imagine with a free day one could sort it out…
-
Ah, yes. Thanks for the link!
Right out of the box that expression does almost exactly what I was looking for, except I need to restrict layer motion to XY so the layers don’t get pushed through each other in Z as the camera approaches.
I fiddled around with it and have it almost doing exactly what I want, but the problem with my solution is that the layer now only moves a tiny bit before the camera gets to it. Experimenting with the controller variables makes me think I’ve messed up the easing somehow by taking out the Z motion.
Thanks again for any input…I’m sure there’s a much more graceful way to do this!
//Here's the original expression from the Colin Braley tutorial:avoidPos = thisComp.layer("Avoid Me").position;
maxDisplacement = 85; //maximum amount to move the layer
minDistance = 50; //minimum distance to begin displacing at
//--
vec = avoidPos - position;
directionVec = normalize( vec );
distance = length( vec );
displaceAmt = ease( distance , 0 , minDistance , 0, maxDisplacement );
displacementVec = displaceAmt * directionVec;
position + displacementVec//This expression keeps the layer motion in XY, but doesn't work quite right.
fieldPos = thisComp.layer("Avoid Camera").position;
maxDisplacement = thisComp.layer("Controls").effect("effect force")("Slider"); //maximum amount to move the layer
minDistance = thisComp.layer("Controls").effect("effect radius")("Slider"); //minimum distance to begin displacing at
//--
vec = position - fieldPos;
directionVec = normalize( vec );
distance = length( vec );
displaceAmt = ease( distance , 0 , minDistance , maxDisplacement , 0 );
displacementVec = displaceAmt * directionVec;
[position[0]+displacementVec[0], position[1]+displacementVec[1], position[2]]